On Wed, Sep 24, 2014 at 11:14:30PM -0700, Walter Bright via Digitalmars-d wrote:
[...]
> You noted my preference for simple makefiles (even if they tend to get
> verbose). I've been using make for 30 years now, and rarely have
> problems with it. Of course, I also eschew using every last feature of
> make, which too many people feel compelled to do. So no, my makefiles
> don't consist of "arcane hacks". They're straightforward and rather
> boring.
> 
> And I use make -j on posix for parallel builds, it works fine on dmd.

Well, I *am* grateful that building dmd is as simple as identifying
which makefile to use for your platform, and make away. And the fact
that building dmd with -j works. Sadly, 95% of non-trivial make-based
projects out there require all manner of arcane hacks that break across
platforms, requiring patch upon patches (*ahem*autotools*cough*)
ostensibly to work, but in practice ends up breaking anyway and you're
left with a huge mess to debug. And -j generally doesn't work. :-/ (It
either crashes with obscure non-reproducible compile errors caused by
race conditions, or gives you a binary that may or may not represent the
source code. Sigh.)

In fact, one thing that impressed me immensely is the fact that building
the dmd toolchain is as simple as it is. I know of no other compiler
project that is comparable. Building gcc, for example, is a wondrous
thing to behold -- when it works. When it doesn't (which is anytime you
dare do the slightest thing not according to the meticulous build
instructions)... it's nightmarish.

But even then, I *did* run into the problem of non-reproducible builds
with dmd. So there's still a blemish there. :-P  Makes me want to alias
`make` to `make clean; make` just for this alone... Oh wait, I've
already done that -- I have a script for pulling git HEAD from github
and rebuilding dmd, druntime, phobos, and it *does* run make clean
before rebuilding everything! Sigh. The only redeeming thing is that
dmd/druntime/phobos builds at lightning speed (relative to, say, the gcc
toolchain), so this isn't *too* intolerable a cost. But still. It's one
of my pet peeves about make...


T

-- 
Many open minds should be closed for repairs. -- K5 user

Reply via email to