Forked from
asdf / asdf
Source project has a limited visibility.
-
Francois-Rene Rideau authored
This fixes the major issue whereby asdf's operation-done-p was failing to check the timestamps of dependencies, only checking those of the immediate operation. https://bugs.launchpad.net/asdf/+bug/1087609 This rewrite is also a vast simplification: * we rely purely on filesystem timestamps of files * we stop using get-universal-time and therefore eschew clock skews issues between processor and filesystem * we do away with the ugly do-first dependencies, previously made necessary by the way get-universal-time messed with load timestamps. * we simplify the protocol to visit components, with a better internal API that we use twice: once, recursively, in traverse, and once, shallowly, in compute-action-stamp (the new internals for operation-done-p). * make-sub-operation is drastically simplified. For the sake of backward-compatibility, the code style had to be contrived, notably introducing a special variable *stamp*, supporting dual modes for operation-done-p, and keeping the old names of many functions that would better be renamed.
Francois-Rene Rideau authoredThis fixes the major issue whereby asdf's operation-done-p was failing to check the timestamps of dependencies, only checking those of the immediate operation. https://bugs.launchpad.net/asdf/+bug/1087609 This rewrite is also a vast simplification: * we rely purely on filesystem timestamps of files * we stop using get-universal-time and therefore eschew clock skews issues between processor and filesystem * we do away with the ugly do-first dependencies, previously made necessary by the way get-universal-time messed with load timestamps. * we simplify the protocol to visit components, with a better internal API that we use twice: once, recursively, in traverse, and once, shallowly, in compute-action-stamp (the new internals for operation-done-p). * make-sub-operation is drastically simplified. For the sake of backward-compatibility, the code style had to be contrived, notably introducing a special variable *stamp*, supporting dual modes for operation-done-p, and keeping the old names of many functions that would better be renamed.