AST files instead of DI interface files for faster compilation and easier distribution
Iain Buclaw
ibuclaw at ubuntu.com
Sat Jun 16 02:18:07 PDT 2012
On 13 June 2012 12:47, Iain Buclaw <ibuclaw at ubuntu.com> wrote:
> On 13 June 2012 12:33, Kagamin <spam at here.lot> wrote:
>> On Wednesday, 13 June 2012 at 11:29:45 UTC, Kagamin wrote:
>>>
>>> The measurements should be done for modules being imported, not the module
>>> being compiled.
>>> Something like this.
>>> ---
>>> import std.algorithm;
>>> import std.stdio;
>>> import std.typecons;
>>> import std.datetime;
>>>
>>> int ok;
>>> ---
>>
>>
>> Oh and let it import .d files, not .di
>
> std.datetime is one reason for me to run it again. I can imagine that
> *that* module will have an impact on parse times. But I'm still
> persistent that the majority of the compile time in the frontend is
> done in the first semantic pass, and not the read/parser stage. :~)
>
>
Rebuilt a compile log with latest gdc as of writing on the 2.059
frontend / library.
http://iainbuclaw.files.wordpress.com/2012/06/d2time_report32_2059.pdf
http://iainbuclaw.files.wordpress.com/2012/06/d2time_report64_2059.pdf
Notes about it:
- GCC has 4 new time counters
- phase setup (time spent loading the compile time environment)
- phase parsing (time spent in the frontend)
- phase generate (time spent in the backend)
- phase finalize (time spent cleaning up and exiting)
- Of the phase parsing stage, it is broken down into 5 components
- Module::parse
- Module::semantic
- Module::semantic2
- Module::semantic3
- Module::genobjfile
- Module::read, Module::parse and Module::importAll in the one I did 2
years ago are now counted as part of just the one parsing stage,
rather than separate just to make it a little bit more balanced. :-)
I'll post a tl;dr later on it.
--
Iain Buclaw
*(p < e ? p++ : p) = (c & 0x0f) + '0';
More information about the Digitalmars-d
mailing list