-
Notifications
You must be signed in to change notification settings - Fork 1
Inspiration and References
These are some of the sources of inspiration behind fix. They are listed in chronological order (unless noted the date of each project is taken from the first commit to its repository).
-
djb redo (by Daniel J. Bernstein)
In 2003 djb wrote a series of notes on a hypothetical build system of his own devising. He never publicly released any code, but his insightful comments inspired many others. (October 13, 2003)
-
Grosskurth redo (by Alan Grosskurth)
Alan Grosskurth wrote a his 2007 master’s thesis, Purely top-down software rebuilding, on redo. The thesis included a Bourne shell implementation of the redo commands (redo, redo-ifcreate and redo-ifchange). He also held a presentation, “Reliable Software Rebuilding,” in which he discusses some of the ideas involved. (April 10, 2006 – date from slides)
-
tup (by Mike Shal)
Written in C. Tup seems not to have been inspired by redo at all, but offers a different take on the top-down building tool. The main focus of tup is speed and correctness of build (deleted source files automatically results in deleted targets). Tup (like Make) uses a single buildscript (with its own syntax). Shal wrote a paper on tup called Build System Rules and Algorithms. (February 16, 2008)
-
apenwarr redo (by Avery Pennarun)
Written in Python. Well documented and feature-rich, implements parallel builds, and some other fine stuff. Usually when I want to refresh my knowledge about some particular detail of redo I go to Apenwarr’s documentation. (November 12, 2010)
-
Pollard redo (by Jonathan de Boyne Pollard)
Written in C. A small reimplementation of Grosskurth redo (with no extra features, but fixing the problems Grosskurth himself noted in his thesis). Pollard also wrote an excellent analysis, “Introduction to Redo”, describing some of the problems with the redo design and the apenwarr implementation. (November 4, 2012 – date from web page)
-
Jekor redo (by Chris Forno)
Written on-camera in Haskell. Videos of him writing it is available on YouTube. It is written mostly as an introduction to programming in Haskell, and is not the most feature rich version of redo out there, it is however instructive to listen to Jekor’s reasoning while he’s writing it. (March 31, 2013)
-
gup (by Tim Cuthbertson)
Written in Python. This is a fix for a design error in redo (the fix is incompatible with redo, hence a different name). The problem lies in the way redo determines whether a something is a source file or a target that needs to be built – something which at times (eg if the build metadata is deleted) can cause builds to silently fail. See: “Announcing the gup build tool.” (November 2, 2013)