On 26/04/2011 16:09, Andrei Alexandrescu wrote:
On 4/26/11 7:50 AM, Russel Winder wrote:
On Tue, 2011-04-26 at 08:32 -0400, dsimcha wrote:
[ . . . ]

Soon. I'm praying that I can figure out makefiles in that time to check
std.parallelism in, since I think they're harder to work with than
multithreading. (Ok, I'm exaggerating.) Among the other major
improvements in this release:

Isn't Make 1970s technology, I'd have thought D would use more
up-to-date build technology than that -- even though Go uses it and
refuses to look at other options.

The debate about make being inadequate is almost as old as make itself
:o). Our gnu makefile for Posix isn't in any way difficult or scary,
although it did take a few iterations to get it right. It has 312 lines
to control a build of 143KLOC, which is a good ratio. The only
difficulty David would have to modify that makefile is to find the one
place where all modules are enumerated, and insert his module's name
there, so I have no idea why he finds that task daunting. (The Windows
makefile is crappier and repeats itself a lot of times so that's more
annoying to deal with.)

The simple fact is that if someone wants to improve our build system
they'd have to define it and argue successfully for its superiority. The
issues I'm seeing as a build-systems-outsider who doesn't pay much
attention are: (a) there are TONS of them; (b) each has issues that
prevents it from becoming a new de facto standard; (c) the "best" one
depends a lot on who you ask.


Andrei


My current favorite build tool is redo - it's about 200 lines of python and build scripts are about 5 lines for entire projects. It supports full dependencies (a depends on b depends on c, c is changed, a, b, and c recompiled), parallel compilation etc. I've set mine up to need zero modification too when I add new files to my library. Heck, you can even write your build scripts in D! That said, they'll be rather ugly unless you port the python to D, once that is done you could write a beautiful build script using D, it's on my todo list for when I get some free time... (When is that btw? :D).

https://github.com/apenwarr/redo more info at http://cr.yp.to/redo.html which is linked from the github page anyway.

--
Robert
http://octarineparrot.com/

Reply via email to