Git, the D package manager
Daniel Kozak via Digitalmars-d
digitalmars-d at puremagic.com
Mon Feb 2 00:46:39 PST 2015
On Monday, 2 February 2015 at 08:09:39 UTC, Vladimir Panteleev
wrote:
> 1a. rdmd and D's module system:
>
> When you run `dmd -o- program.d`, the compiler will
> automatically read all modules imported by your program, and
> their imports, and so on. It does so by searching the
> filesystem across its search path for matches which correspond
> with D's module system, and only reads those files that are
> needed.
>
> rdmd leverages this by collecting (and caching) the list of
> modules used in the program, and passing that list to the
> compiler. The compiler will then compile no more and no less
> than the exact set of modules transitively imported by the
> program.
>
> In contrast, Dub's default modus operandi is to blindly send to
> the compiler all *.d files found in the "src" folder, whether
> they're actually used or not. Not only can this be slower if
> not all modules are always used, but it also won't work if the
> source code contains multiple entry points, forcing you to
> write complicated configuration files (i.e. do the computer's
> work for it).
And this is reason why rdmd suck (in my case).
Example:
return
cast(EntityManagerFactory)Object.factory("cz.dlang.ddpa.EntityManagerFactoryImpl");
// this does not work with rdmd but works ok with dub
More information about the Digitalmars-d
mailing list