a cabal for D ?

Jacob Carlborg doob at me.com
Sat Mar 19 04:19:58 PDT 2011


On 2011-03-18 22:20, Jason E. Aten wrote:
> On Fri, 18 Mar 2011 18:42:36 +0000, Russel Winder wrote:
>> I still think basing a D packaging system on Git to be the best
>> direction.
>
> Basing package distribution on Git or hg could be a big win, and would
> help establish a customary case for revision control which is one of the
> things that make cabal work so well (they use darcs for everything). I
> find these revision control systems ver fast and very easy to use.
>
> The other thing that cabal standardizes is the make/build system.  I've
> updated bud/build to compile under D2, with all the latest patches, but
> I'm far from convinced that it should be a make system of choice.  I have
> limited experience here, but a "D aware" build system would seem to be
> highly preferable.
>
> What are people's experiences with the various options for build systems
> with D?

It's not very easy to make an incremental build system for D because of 
several reasons. Some are due to how the language works and some are due 
to how DMD works:

* DMD doesn't output all data in all the object files - This can perhaps 
be solved by compiling with the -lib switch

* When you change one D file you need to recompile ALL files that depend 
on the changed file. To compare with C/C++ which has source and header 
files you only need to recompile the source file if you change it

* DMD doesn't keep the fully qualified module name when naming object 
files resulting in foo.bar will conflict with bar.bar. Issue 3541.

> To me, I like the design goals of Andreas Fredriksson's Tundra build
> system (he wants speed of incremental of builds prioritized over all
> else, which means utilizing multicores for builds as much as possible to
> get the quickest build), because fast builds are critical for game
> development, where D is very attractive.  Game projects compile tens of
> thousands of files. Tundra is GPL and it would be easy to extend to
> support D.
>
> http://voodoo-slide.blogspot.com/2010/08/tundra-my-build-system.html
> https://github.com/deplinenoise/tundra
> https://github.com/deplinenoise/tundra/downloads


-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list