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

Reply via email to