On Sat, 24 Dec 2016 14:03:26 -0500, Andrei Alexandrescu wrote: > * Your post provided no description of the methodology used beyond > "relatively simple regex" to come up with the magic number 26, so I > tried to use interpretation. > > * There is no answer to "where is cmp on that list for example?" to shed > light on what 26 is about.
You mentioned that in another branch of the conversation. It took some time for me to get to it. I'm a human. >> In part, you are assuming that imports on non-template declarations >> will be handled lazily, even though that is not part of this DIP, even >> though that is likewise possible with static and selective imports. > > Imports in non-template declarations ARE handled lazily when those > non-templates are imported. Consider: ... Y'know, I make assumptions, but I tend to test them. But that kind of depends on me writing valid tests, and in this case, I didn't. My face is egged, and I concede. Thank you for providing example code. That cleared everything up very fast. With this new understanding, most modules become nearly free to import under your proposal. It does require a lot of work to get there, but on the plus side, it should be possible to automate that with a tool. I'd be willing to add that to my build process for anything I publish if it'll help others. >> In part, you are using lines of code as a proxy for compile time. > > What do you suggest to use? You did write a script to check compile times for importing individual phobos modules. >>> The findings of DIP1005 are the following: >>> >>> * Importing a single std module also imports on average 10.5 other >>> modules. >> >> Seems reasonable. Between 2 and 3.5 direct dependencies, by my count, >> and you're counting transitive dependencies. > > Shouldn't I? Shouldn't you? I was agreeing with you. At the time, I didn't have a convenient way to check the number of transitive dependencies of a module. >> We're concerned with the effects of DIP1005, though, which only affects >> template constraints. >> >>> * Importing a single std module costs on average 64.6 ms. >> >> 55-ish for your hardware, you reported elsewhere. 47-ish for mine. > > Let's stick with the numbers published in the DIP. Sure. You insinuated that I should run your script to verify your numbers, so I did.
