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

Russel Winder russel at russel.org.uk
Tue Jul 12 22:10:05 PDT 2011


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.

I started using SCons (and recently Waf -- which also has a D tool) in
preference to Rake because SCons has very superior support for C, C++,
Fortran and LaTeX.  Using Rake for these is like using assembly language
to write a GUI application:  with Rake you have to build everything
yourself, with SCons most of the work is done for you in the tool
infrastructure.  There was Rant which tried to replace Rake in the C, C
++, Fortran arena but the project died.  Rake appears to have almost no
traction outside the Ruby community.  Even Buildr (which tried to build
on Rake to combat Maven seems to have no headway in the market.

Clearly there is always a trend for a language to demand a specialist
build tool:  Scala has SBT, Clojure has Leiningen, Ruby has Rake, but
there is also a section of the universe that thinks the same build tool
should be usable across all languages.  Ant and Maven were Java specific
but now can handle anything targeting the JVM.  SCons and Waf come from
a C, C++, Fortran, LaTeX, D background but can now handle Java, Scala,
etc.  Gradle arose as a replacement for Maven on the JVM, but is now
(finally) branching out into C, C++, etc.

Note also that systems like Gradle and indeed Maven, are not just code
compiler and link systems, they also manage code review tools for
creating coverage reports, bug reports, documentation generation, even
whole websites.

Currently, from what I can tell, we have a number of individuals making
proposals for ideas.  Nothing wrong with that per se.  However I think
this is the third time this debate has occurred since I have been
(peripherally) involved with the core D community.  This does strike me
as wrong since it means that there is no momentum being created, the
energy associated with each debate simply dissipates.

I think that in order to create a momentum, a fundamental choice needs
to be made:

--  Should D have a specialist tool (à la SBT/Scala, Leiningen/Clojure
-- at the risk of massive NIH-ism, just as the Scala and Clojure folk
appear to have) or go with a generalist tool such as Gradle or SCons.

True there has to be debate about the possibilities in each category so
as to get the "lay of the land" and a feel for the "pluses" and
"minuses", but always the aim should be to answer the above question.

Then we can move to debating the possibilities.

Then we can create some momentum behind doing something by creating a
group of activists.

Then D build wins.


-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder at ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20110713/69518dec/attachment.pgp>


More information about the Digitalmars-d mailing list