Re Build tools for D [ was Re: Prototype buildsystem "Drake" ]

Jonathan M Davis jmdavisProg at gmx.com
Tue Jul 12 23:00:11 PDT 2011


On Wednesday 13 July 2011 06:53:28 Russel Winder wrote:
> On Tue, 2011-07-12 at 22:28 -0700, Jonathan M Davis wrote:
> [ . . . ]
> 
> > From previous discussions, it seems that one of the primary reasons for
> > having a D build tool in many people's minds is to also handle package
> > management of D libraries (like Haskell's cabal or rubygems for ruby).
> > And as great as cmaked, scons, gradle, waf, and other such tools may
> > be, they don't do that.
> 
> Go is currently using Make for this -- they have a structured Makefile
> hierarchy that handles most compilation and linking in the context of a
> rigidly enforced filestore structure, and goinstall for bringing in
> packages from outside into the filestore hierarchy.  It is a bit
> primitive at the minute, but is being worked on and rapidly improved.
> 
> Go actually has a plethora of build tools, include a couple of
> SCons-based ones, most of which are falling by the wayside.  I think the
> effort expended doing this has not been a waste as information is being
> generated that is adding to the pool.  I think they will replace the
> Makefile system shortly with one of the tools, possibly GoBuild, but I
> can't remember exactly.
> 
> Haskell and Ruby both have inward looking approaches -- to put it
> bluntly (at the risk of causing offense to some), Haskell build only
> cares about Haskell source and Ruby build only cares about Ruby source.
> Almost by definition D has to live in a mixed C, C++, Fortran, D
> universe, so this has to be an issue from the outset.
> 
> I agree with the premise that package management must be a core part of
> the build management, but I disagree that Gradle, SCons, and Waf cannot
> handle this.  They cannot handle this today true, but in the same way
> that there is currently no system that does it properly as yet.  So I
> would suggest that package management is currently a "green field"
> problem that can be handled by a D-specific tool or one of Gradle, SCons
> or Waf.

Feel free to propose whatever you'd like for a D build system (be it something 
entirely new or an improvement of an existing build tool). I'm just pointing 
out that one of the primary reasons that a number of the people on this list 
want a build tool is to handle package management of D libraries, so whatever 
solution you propose should incorporate that or a lot of people aren't going 
to be all that interested in it or will at least see it as inferior to another 
solution which does incorporate package management.

- Jonathan M Davis


More information about the Digitalmars-d mailing list