On Wednesday, 18 December 2013 at 21:40:08 UTC, Andrei Alexandrescu wrote:
1. Improve the compiler to handle imports lazily, i.e. an unused import is never opened. That's unlikely to help a lot of uses because most unqualified name lookups require all imports to be loaded (even after the name if resolved, the compiler must still look for ambiguities).

2. Push imports from top level into the entities (functions, classes etc) that use them.

3. Apply classic dependency management (break larger modules in smaller ones, accept some code duplication etc).

I favor (2).


Andrei

2 + 3 (breaking modules into packages part) should do the tricky as far as I can see. Lot of current dependency bloat comes from importing whole std.range / std.algorithm to use one or two utility functions in few places.

On topic of (2) I propose to add it to Phobos style guide and start enforcing during PR review.

Reply via email to