在 Sun, 22 Mar 2009 12:18:03 +0800,Andrei Alexandrescu <[email protected]> 写道:

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;

Reply via email to