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

H. S. Teoh via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Fri Jun 10 19:48:59 PDT 2016


On Mon, May 30, 2016 at 07:16:50PM +0000, Jason White via Digitalmars-d-announce wrote:
> I am pleased to finally announce the build system I've been slowly
> working on for over a year in my spare time:
> 
>     Docs:   http://jasonwhite.github.io/button/
>     Source: https://github.com/jasonwhite/button
> 
> Features:
> 
> - Correct incremental builds.
> - Automatic dependency detection (for any build task, even shell scripts).
> - Build graph visualization using GraphViz.
> - Language-independent. It can build anything.
> - Can automatically build when an input file is modified (using inotify).
> - Recursive: It can build the build description as part of the build.
> - Lua is the primary build description language.

Finally got around to looking at this (albeit just briefly). It looks
very nice!  Perhaps I'll try using it for my next project.

I'm particularly pleased with the bipartite graph idea. It's a very nice
way of sanely capturing the idea of build commands that generate
multiple outputs.  Also big plusses in my book are implicit dependencies
and use of inotify to eliminate the infamous "thinking pause" that older
build systems all suffer from (this idea was also advanced by tup, but
IMO Button looks a tad more polished than tup in terms of overall
design).  Of course, being written in D is a bonus in my book. :-D
Though realistically speaking it probably doesn't really matter to me as
an end user, other than just giving me warm fuzzies.

Unfortunately I don't have the time right now to actually do anything
non-trivial with it... but I'll try to give feedback when I do get
around to it (and I definitely plan to)!


T

-- 
Life is unfair. Ask too much from it, and it may decide you don't deserve what you have now either.


More information about the Digitalmars-d-announce mailing list