Daniel J. Bernstein's redo idea is a system for incrementally building
target files from source files. This is the redo implementation by
Jonathan de Boyne Pollard written in C++.