Skip to content
Snippets Groups Projects
Commit da0d1380 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

2.26.9: Another major rewrite of traverse, to propagate timestamps correctly.

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.
parent 331df45f
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment