failure to check timestamps of dependencies
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ASDF |
Fix Released
|
High
|
Faré |
Bug Description
What if A, system or not depends on B, and A was recompiled in a previous session, but not B, causing B to miss a modified macro definition in A? ASDF fails to recompile B.
The problem is easier to reproduce between systems (compile B, modify A, compile A, compile B), but a compilation of a single system interrupted by an error can make it happen even within a single system.
It's a bug whereby from dependency to dependency we propagate a flag that means "needs to be recompiled in current image", rather than a timestamp (or content digest) saying "needs to be recompiled if not up-to-date with respect to THIS". Will you report that bug? Create a test case?
Within a system and/or if we don't omit system dependencies we could wipe all obsolete output-files at the beginning of the perform-plan. Meh. That's ugly.
We could instrument ASDF to pass stamps around, but it might not be compatible: operation-done-p and mark-operation-done would have to be replaced by something very different. Is the incompatibility worth it? How many extensions are there that use these?
Originally from https:/
I believe this is as important a bug as it can get: a failing in the fundamental way that ASDF computes and propagates dependency changes.