AST files instead of DI interface files for faster compilation and easier distribution

Don Clugston dac at nospam.com
Tue Jun 12 04:09:03 PDT 2012


On 12/06/12 11:07, 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

Is that actually true? My recollection is that the original motivation 
was only goal (2), but I was fairly new to D at the time (2005).

Here's the original post where it was implemented:
http://www.digitalmars.com/d/archives/digitalmars/D/29883.html
and it got partially merged into DMD 0.141 (Dec 4 2005), first usable in 
DMD0.142

Personally I believe that.di files are *totally* the wrong approach for 
goal (1). I don't think goal (1) and (2) have anything in common at all 
with each other, except that C tried to achieve both of them using 
header files. It's an OK solution for (1) in C, it's a failure in C++, 
and a complete failure in D.

IMHO: If we want goal (1), we should try to achieve goal (1), and stop 
pretending its in any way related to goal (2).


More information about the Digitalmars-d mailing list