Please integrate build framework into the compiler

davidl davidl at 126.com
Sat Mar 21 23:27:38 PDT 2009


在 Sun, 22 Mar 2009 12:18:03 +0800,Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> 写道:

> grauzone wrote:
>> My rdmd doesn't know --chatty. Probably the zip file for dmd 1.041  
>> contains an outdated, buggy version. Where can I find the up-to-date  
>> source code?
>
> Hold off on that for now.
>
>> Another question, rdmd just calls dmd, right? How does it scan for  
>> dependencies, or is this step actually done by dmd itself?
>
> rdmd invokes dmd -v to get deps. It's a interesting idea to add a  
> compilation mode to rdmd that asks dmd to generate headers and diff them  
> against the old headers. That way we can implement incremental rebuilds  
> without changing the compiler.
>
> Andrei

The bad news is that public imports ruin the simplicity of dependencies.  
Though most cases d projs uses private imports.

Maybe we can further restrict the public imports.

I suggest we add a new module style of interfacing. Public imports are  
only allowed in those modules. Interface module can only have public  
imports.

example: all.d

module(interface) all;
public import blah;
public import blah.foo;

interface module can not import another interface module. Thus no public  
import chain will be created. The shortcoming of it is:

module(interface) subpack.all;
public import subpack.mod;

module(interface) all;
public import subpack.mod;     	// duplication here.
public import subpack1.mod1;



More information about the Digitalmars-d mailing list