Button: A fast, correct, and elegantly simple build system.

Andrei Alexandrescu via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Wed Jun 15 05:00:52 PDT 2016


On 6/15/16 1:29 AM, Jason White wrote:
> On Tuesday, 14 June 2016 at 14:57:52 UTC, Andrei Alexandrescu wrote:
>> On 6/12/16 8:27 PM, Walter Bright wrote:
>>> On 5/30/2016 12:16 PM, Jason White wrote:
>>>> Here is an example build description for DMD:
>>>>
>>>> https://github.com/jasonwhite/dmd/blob/button/src/BUILD.lua
>>>>
>>>> I'd say that's a lot easier to read than this crusty thing:
>>>>
>>>>     https://github.com/dlang/dmd/blob/master/src/posix.mak
>>>
>>> Yes, the syntax looks nice.
>>
>> Cool. Difference in size is also large. Do they do the same things? --
>> Andrei
>
> Not quite. It doesn't download a previous version of dmd for
> bootstrapping and it doesn't handle configuration (e.g., x86 vs x64).
> About all it does is the bare minimum work necessary to create the dmd
> executable. I basically ran `make all -n` and converted the output
> because it's easier to read than the Makefile itself.

OK. I guess at least some of that stuff should be arguably scripted.

> Building from scratch takes about 7 seconds on my machine (using 8 cores
> and building in /tmp). Make takes about 5 seconds. Guess I need to do
> some optimizing. :-)

I'd say the gating factor is -j. If an build system doesn't implement 
the equivalent of make -j, that's a showstopper.


Andrei



More information about the Digitalmars-d-announce mailing list