On 1/5/2014 9:22 PM, Andrei Alexandrescu wrote:
On 1/5/14 8:44 PM, Kenji Hara wrote:
Honestly, "lazy import" (== defer loading module file and running
semantic analysis for symbol search) would improve compilation speed for
selective imports and static imports, but it would have no merit for
basic imports.
So precisely, "all imports lazy would be a net large win." is not correct.
Consider:
import std.stdio;
void main() { writeln("Hello, world!"); }
Currently std.stdio and all modules transitively imported by it would be opened.
With lazy imports, std.stdio gets opened and then writeln() gets semantically
analyzed. Only modules required by writeln() itself will actually be opened. Big
difference.
import bar;
import foo;
Importing foo can never be done lazily if there are unqualified references to
symbols in bar.