Makefile experts, unite!

Russel Winder via Digitalmars-d digitalmars-d at puremagic.com
Tue Jun 13 00:45:02 PDT 2017


On Mon, 2017-06-12 at 10:39 -0700, H. S. Teoh via Digitalmars-d wrote:
> 
[…]
> Don't forget tup, and others inspired by it, which use modern OS
> features to reduce the cost of determining what to build to an O(1)
> database lookup rather than an O(n) whole-source tree scan. I.e.,
> much
> faster code-compile-test cycle.  Much as I have come to love SCons, I
> think ultimately the build system of the future will be something
> derived from the tup model.

Ninja.

However good Tup may be, I think Ninja has the mindshare as the build
engine underneath CMake, Meson, etc.

I am ambivalent about SCons. It is a huge improvement over Make, great
strides are being made in performance along with the Python 2 → Python
3 thing (removing all the Python < 2.7 stuff and replacing with modern
Python code), but it's model is from the 2000s and as you say the 2010s
have new things which are not getting in to SCons, mostly because it is
a pure volunteer project with no companies putting any resources in. I
am doing work on it for D builds mostly because I can't really cope
with Dub as a build tool.

> [...]
> 
> I don't agree with the notion that everything must be "forward
> looking"
> in order to be "good".  If something existing works well and does
> what
> we need it to do, there's no reason to keep reinventing the wheel.

Forward looking is always good, this does not exclude leaving things as
is, or bringing things that got forgotten from the past, it is about
thinking about what is right next year, not what we have last year.

> However, I do agree that where there is room for improvement,
> improvements ought to be made. On this front, make leaves a lot to be
> desired.  It requires far too much babysitting, manual work, and
> dependence on human infallibility (which we all know works all too
> well). Not to mention that it fails the basic tenet of a reliable
> build
> system: reproducible builds, i.e., given *any* arbitrary workspace
> state, running the build command ought to produce products
> (executables,
> etc.) that are *guaranteed* to reflect the current state of the
> source
> code.
> 
[…]

It all comes down to two things:

1. Is anyone willing to create the new build.
2. Will the new build be accepted and used.

Given some people's tone here, and the lack of contribution from Walter
and Andrei on replacing Make, the answer to 2 is NO. Thus the answer to
1 is "don't bother". Thus this thread is useless. Thus D will continue
to use an outdated and increasingly difficult to use build system. Not
a way of attracting new contributors. Its not the outdated so much as
the difficult to use.

-- 
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 winder.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: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20170613/62ef6924/attachment.sig>


More information about the Digitalmars-d mailing list