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.

Reply via email to