Open jimsynz opened 5 months ago
Open to any of these. The generated modules are hidden and any public use of them is incorrect. So honestly I'm down for "anything that works" 😅
@jimsynz if you've got some time to tackle this that would be great, got a lot on ye olde plate at the moment.
Yeah, I've added it to my list :)
Describe the bug Deeply nested DSLs create module names such as
Elixir.Wayfarer.Dsl.Wayfarer.Config.Wayfarer.Targets.Targets.Wayfarer.Targets.Targets.Http.Wayfarer.Targets.Targets.HealthChecks.HealthChecks
which will triggerenametoolong
on some systems:To be clear this an issue with BEAM and not Spark or Elixir and in response to a similar bug report against Elixir José's response boils down to "just use shorter module names". I think he's right. There are a couple of strategies I can think of;
Elixir.
namespace (I suggestSpark.
).:erlang.phash2
since it should always be available. It doesn't really matter if the modules are "discoverable" as they're only ever imported by Spark anyway. We can always add a flag to disable this behaviour while debugging.To Reproduce I triggered it by using eCryptfs on a portable Linux device because the effective file length limit is ~140 bytes. It is possible to reproduce on Linux & macOS (255 byte limit) by creating a DSL with very long entity names.
Expected behavior The DSL extension should cleanly compile.
Runtime
1.17.1
27.0
2.2.4
Additional context Add any other context about the problem here.