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

Nick Sabalausky a at a.a
Wed Jul 13 00:01:04 PDT 2011


"Russel Winder" <russel at russel.org.uk> wrote in message 
news:mailman.1585.1310533819.14074.digitalmars-d at puremagic.com...
>On Tue, 2011-07-12 at 21:02 -0400, Nick Sabalausky wrote:
>[ . . . ]
>> Before I go implemeting everything, I'd like to get input on it. Is it
>> something that could be a major D tool?
>[ . . . ]
>
>Given the nature of the debate, I will add to the mix that SCons, a
>pre-existing -- and indeed working :-) -- system, has a D tool and can
>compile and link D code.  What it needs is some love to bring it up to
>the level of the C and C++ support.
>
>SCons has a built-in D tool which needs work, but rather than fork SCons
>to work on the tool I have created a separate tool that can be used with
>any SCons installation.  See https://bitbucket.org/russel/scons_dmd_new.
>Prior to any SCons release a patch between this version and the one in
>the SCons core will be made and applied.
>
[...Waf, Rake, Ant, Maven, etc...]

First of all, just to be clear, Drake isn't D-specific. Like Rake, it's 
designed to work with anything you can programmatically invoke (and doesn't 
require any special module to support a particular language or tool). After 
having worked on projects that, by necessity, involved multiple languages, I 
find that quality essential in a build system.

Regarding SCons, Waf, Rake, etc, the point of Drake is that 1: it doesn't 
force D projects to be reliant on Python, Ruby, etc. And 2: It allows D 
users to use D for their buildscript instead of needing to switch to a 
different (and less preferable IMO) langauge. (And I *hate* language-soup 
projects - projects that use a totally different language for every little 
damn thing.)

The *make tools (whether they use makefiles directly or indirectly) aren't 
even worth consideration. Makefiles need to just die, period.

Regarding this topic's frequent ressurection, I see that as a direct result 
of it all being *merely* talk, with very little concrete progress. We don't 
even *have* a proper package management system (there's DSSS, but it's dead, 
bitrotted, and I don't think it handles dependencies or multiple versions of 
the same package). So naturally that topic's going to keep coming up until 
we have something. And as for build systems, everything either lacks 
multiple-target/configuration management (rdmd), or creates a dependency on 
(and a need to write in) some other langauge (SCons, Rake, etc). So 
naturally there's also going to be people that feel unsatisfied with the 
build systems until something fills that role. I'm trying to get past 
"talk", so I've started some actual code to address what I see as the 
current issues for build systems.

Of course, it doesn't help that everyone seems to want something completely 
different from what everyone else wants. ;)




More information about the Digitalmars-d mailing list