On Monday, 12 August 2013 at 16:29:36 UTC, H. S. Teoh wrote:
On Mon, Aug 12, 2013 at 11:16:19AM +0100, Russel Winder wrote:
On Sun, 2013-08-11 at 15:41 -0700, H. S. Teoh wrote:
> On Sun, Aug 11, 2013 at 09:26:11AM +0100, Russel Winder > wrote:
> > On Sat, 2013-08-10 at 14:27 -0400, Nick Sabalausky wrote:
> > […]
> > > is discovering and dealing with all the fun little > > > differences > > > between the posix and win32 makefiles (and now we have > > > some
> > > win64 makefiles as well).
> > […]
> > > > Isn't this sort of problem solved by using SCons, Waf or > > (if you
> > really have to) CMake?
> [...]
> > +1. But people around here seems to have a beef against > anything
> that isn't make. *shrug*

Make was a revolution and a revelation in 1977, it changed my life. However, it is sad to see projects such as Rust, Julia and D clinging to a 35 year old build concept when it has been proved time and time
again that external DSL frameworks for build do not work for
cross-platform working. Only internal DSL build frameworks have
succeeded in that arena, cf. Gradle, SBT, SCons, Waf,…

+1. If I were the one making the decisions, I'd go for SCons. Or tup (http://gittup.org/tup/), but tup seems to be currently posix-specific,
so SCons still wins if you want cross-platform building.


The only part of this thread that has any up side at all is to ditch all build frameworks and write the build in D over the bootstrap D that will be essential for the D build since D is written in D. It's a
pity Rust hasn't twigged to this.

I think the D build tool should extend / be built on top of rdmd to be able to handle non-D sources. Once we have that, we basically already
have a working build system.


I note that the Go tooling is written is C and Go, they ditched make when they realized their vision for packaging – which works very well indeed, particularly pulling in source packages from GitHub, BitBucket and Launchpad, compiling and installing the compiled package into the
appropriate place for use.

I ditched make about a decade ago, and I would never go back if I had the choice. Sadly, most of the rest of the world still seems stuck in
that quagmirem, unable to move on.


On the other hand, I bet a cross-platform SCons build of D could be in
place and production within days as opposed to the
<substitute-your-favourite-long-time> that a D rewrite in D will take. It doesn't matter than the SCons build may be thrown away down the
line, it solves a problem now for not that much effort.

What do you say? Let's throw together an SConstruct for DMD, druntime,
and phobos, and submit a pull for it?

The only downside is that I can predict people will start complaining about the Python dependency. (Which is why I proposed writing a build system in D -- it will be superior to make (anything would be!), and
people will have no excuse about what language it's written in.)


Still if the core D community are clinging to "build == make", then they will have to suffer the irritant of having to have a separate build system for each and every platform. That's they way Make is.
[...]

I used to evangelize SCons to everybody I meet... but after people adamantly refused to abandon their precious outdated crappy makefiles, I gave up. If they wish to continue suffering, it's not really my business
to stop them.


T

Thanks for the link! I found this excellent paper there: http://gittup.org/tup/build_system_rules_and_algorithms.pdf . :)

Reply via email to