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.