AST files instead of DI interface files for faster compilation and easier distribution
Walter Bright
newshound2 at digitalmars.com
Wed Jun 13 07:29:51 PDT 2012
On 6/13/2012 1:07 AM, Don Clugston wrote:
> On 12/06/12 18:46, Walter Bright wrote:
>> On 6/12/2012 2:07 AM, timotheecour wrote:
>>> There's a current pull request to improve di file generation
>>> (https://github.com/D-Programming-Language/dmd/pull/945); I'd like to
>>> suggest
>>> further ideas.
>>> As far as I understand, di interface files try to achieve these
>>> conflicting goals:
>>>
>>> 1) speed up compilation by avoiding having to reparse large files over
>>> and over.
>>> 2) hide implementation details for proprietary reasons
>>> 3) still maintain source code in some form to allow inlining and CTFE
>>> 4) be human readable
>>
>> (4) was not a goal.
>>
>> A .di file could very well be a binary file, but making it look like D
>> source enabled them to be loaded with no additional implementation work
>> in the compiler.
>
> I don't understand (1) actually.
>
> For two reasons:
> (a) Is lexing + parsing really a significant part of the compilation time? Has
> anyone done some solid profiling?
It is for debug builds.
> (b) Wasn't one of the goals of D's module system supposed to be that you could
> import a symbol table? Why not just implement that? Seems like that would be
> much faster than .di files can ever be.
Yes, it is designed so you could just import a symbol table. It is done as
source code, however, because it's trivial to implement.
More information about the Digitalmars-d
mailing list