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/CAGnRm4JBSGAK5ctxbkDuZkduxhSXThu4fbJE3A5UJ0bd6yypZA%40mail.gmail.com.
