-
Notifications
You must be signed in to change notification settings - Fork 27
Compile-time dependencies #162
Copy link
Copy link
Open
Labels
help wantedExtra attention is neededExtra attention is neededperformance (too slow)Usage of TypeCheck leading to unusably slow compile times or running timeUsage of TypeCheck leading to unusably slow compile times or running time
Milestone
Metadata
Metadata
Assignees
Labels
help wantedExtra attention is neededExtra attention is neededperformance (too slow)Usage of TypeCheck leading to unusably slow compile times or running timeUsage of TypeCheck leading to unusably slow compile times or running time
The error in #160 made me suspect that
type_checkmight introduce compile-time dependencies just about everywhere.To double check this:
This compiles, but also introduces a compile-time dependency that should not be there:
I understand that
type_checkneeds to generate code at compile time to check that inputs and outputs corresponds to the specified specs, but hopefully there's way for that generation to not rely on the actual spec inEmptyMix.Exampleand only generate calls to that module. This would only introduce a runtime dependency onExampleand not a compile-time one.Compile-time dependencies can easily lead to many transitive dependencies and make it necessary to recompile most of a project whenever just about anything changes (see e.g. https://dashbit.co/blog/speeding-up-re-compilation-of-elixir-projects)