On Thursday, 22 February 2018 at 08:04:19 UTC, Timothee Cour
wrote:
it actually does reduce compilation times if the imports go
directly to the module in
question rather than to a module that publicly imports the
symbols
time1=compilation time of `import std.algorithm : find;` before
split time21=compilation time of `import std.algorithm : find;`
after split time22=compilation time of `import
std.algorithm.searching : find;` after split
my understand is that we have:
time22 < time1 but time21 ~= time1
so we're in no way worse than before the split
unless time21 > time1 (noticably) in which case you have a
strong argument
On Wed, Feb 21, 2018 at 11:57 PM, Jonathan M Davis via
Digitalmars-d <digitalmars-d@puremagic.com> wrote:
On Wednesday, February 21, 2018 23:48:32 Timothee Cour via
Digitalmars-d wrote:
```
import std.algorithm.searching : find;
not
import std.algorithm : find;
```
that's just a missed opportunity to benefit from the split;
we're in no way worse after the split than before the split
in that regard. We can just leave it as `import std.algorithm
: find;` with no adverse effect.
Maybe, but the CI stuff for Phobos doesn't like that, and it
actually does reduce compilation times if the imports go
directly to the module in question rather than to a module
that publicly imports the symbols.
- Jonathan M Davis
Regarding import time:
Apart from the fact that you usually end up importing almost
entire Phobos anyways, the import cost for importing entire
Phobos is about 0.2s on my system with the upcoming 2.079 and we
are working on getting it even further towards 0 which shouldn't
be too hard (there's still a lot of unnecessary work being done
by default).
I'm really looking forward to the point where we can just tell
people to use `import std;` because there's almost no overhead.
(I am aware that there are downsides to importing everything but
that's not what this discussion is about)