5 ms·
Redo: a recursive, general-purpose build system for fast parallel builds
- jnxx 8y agoWhat is also interesting is that the appenwar implementation has now support for serializing logs in parallel builds: https://apenwarr.ca./log/20181106 https://apenwarr.ca./log/20181106 The linked documentation does a good job why redo is a very, very interesting (and for the complexity of the task, stunningly simple) approach to a build system. I find the approach to support parallel builds quite enlightening, and I also like a lot the property that it is language-agnostic, which is very helpful for larger projects, but also makes it easier to include special tools in C/C++ projects. There are also some shortcomings of the design and some implementations of redo which are discussed here: https://jdebp.eu/FGA/introduction-to-redo.html https://jdebp.eu/FGA/introduction-to-redo.html
- JdeBP 8y agoMore past discussions that might be of interest: * https://news.ycombinator.com/item?id=15060146 https://news.ycombinator.com/item?id=15060146 * https://news.ycombinator.com/item?id=15060193 https://news.ycombinator.com/item?id=15060193 * https://news.ycombinator.com/item?id=18425734 https://news.ycombinator.com/item?id=18425734 * https://news.ycombinator.com/item?id=15182585 https://news.ycombinator.com/item?id=15182585
- JdeBP 8y agoBy the way: > At the time of this writing, none of them except apenwarr/redo (ie. this project) support parallel builds (redo -j). I don't know where this information came from, but my (second) redo supported the --jobs option and interoperability with GNU make's jobs system (in either direction, make invoking redo or redo invoking make) from its very first version onwards. That's over half a decade ago, now. The Neukirchen one has similarly had -j, albeit using a mechanism that does not interoperate with GNU make, since at least 2015.