Thanks José! I suspect a lot of it might be the callbacks depending on remote types, but indeed, some of these modules have functions too, I'll work on it and experiment, thanks!
I wouldn't mind a `defbehaviour` at all eheh, if it would help reduce this coupling. On Wednesday, October 7, 2020 at 9:28:41 AM UTC+2 José Valim wrote: > Unfortunately this is a bit complicated, implementation wise, because > "@behaviour Foo" is just a regular attribute. > > I assume that your @behaviour modules define both callbacks and functions, > I would suggest splitting those for now into two separate modules and see > how/if it changes things. > > On Wed, Oct 7, 2020 at 9:20 AM Victor Rodrigues <[email protected]> wrote: > >> Hi there! >> >> We have a project with hundreds of modules, and it has been pretty bad on >> recompilation times. I was waiting for 1.11 to see how that would improve, >> and it actually did, but only marginally (~10% less modules), still ~300 >> modules-ish on every change. >> >> There’s definitely work to do in our end to reduce that dependency chain, >> but it seems `@behaviour` is a important culprit here. >> >> I wonder if `@behaviour` could become a “export” type dependency in the >> future, does this make sense from the point of view of the compiler? From a >> user perspective, it looks to me it would be fine if modules that implement >> a behaviour would only need to recompile if callbacks changed. I think this >> would improve a lot on our case. >> >> Thanks! >> >> -- >> You received this message because you are subscribed to the Google Groups >> "elixir-lang-core" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/2e71f930-999b-46aa-9231-15b62838b0ccn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/elixir-lang-core/2e71f930-999b-46aa-9231-15b62838b0ccn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/a315462a-1d97-4960-872e-82a91759f322n%40googlegroups.com.
