asdf merge requestshttps://gitlab.common-lisp.net/asdf/asdf/-/merge_requests2017-11-12T21:05:31Zhttps://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/87Rename stamp to timestamp in uiop/utility2017-11-12T21:05:31ZFrançois-René RideauRename stamp to timestamp in uiop/utilityRestore backward compatibility with older versions of ASDF (before 3.3.0)
by renaming stamp< and its friends to timestamp<, etc.
Sometime in the lead-up to ASDF 3.3.0, I changed the encoding of infinities
from NIL is -infinity and T is +...Restore backward compatibility with older versions of ASDF (before 3.3.0)
by renaming stamp< and its friends to timestamp<, etc.
Sometime in the lead-up to ASDF 3.3.0, I changed the encoding of infinities
from NIL is -infinity and T is +infinity to T is -infinity and T is +infinity
which made the code notably nicer on the ASDF side, because file-write-date
would return directly the correct result instead of having to constantly switch
between inverse conventions. However --- big mistake --- I kept the same
function name, after checking that the functions had no user in Quicklisp,
no one who had ever discussed them but me, and no documentation before 3.2.0
except a single comment line for the entire family of functions.
This doesn't matter as long as ASDF and UIOP are kept in synch, but such is
not the case with Quicklisp, where Xach both welcomes recent UIOP releases
but refuses to include updates to ASDF itself. Then, loading a new UIOP
with reverse conventions totally confuses the old ASDF, and causes spurious
rebuilds of everything after UIOP is loaded -- multiple times if present
in multiple phases (that and slower build times is how Xach noticed the bug).
The solution adopted is to give a new name to the functions with a different
convention -- timestamp< instead of stamp<, and so on. Therefore,
the new ASDF 3.3.1 will expect the new convention from UIOP 3.3.1,
that will no longer overwrite the functions from ASDF 3.2.1 and older with
backward-incompatible variants. If an old ASDF 3.2.1 or earlier loads
a newer UIOP 3.3.1 or later, it will keep using the old functions:
the symbols for these functions will be uninterned, but
the values for these functions which won't be clobbered anymore.
Backward compatibility is a strong requirement not to to break lightly,
not even in a subtle way, not even if "nobody else is using it" ---
an older version of ASDF is already "somebody else" with respect to UIOP.3.3.1Robert GoldmanRobert Goldmanhttps://gitlab.common-lisp.net/asdf/asdf/-/merge_requests/88Extend the set of versions from which to test upgrade2017-10-22T22:40:10ZFrançois-René RideauExtend the set of versions from which to test upgradeA recent manual test found a bug upgrading from 3.2.1.
So include that in the test set.
New policy: include first and last of the last few ASDF series, not just last.A recent manual test found a bug upgrading from 3.2.1.
So include that in the test set.
New policy: include first and last of the last few ASDF series, not just last.3.3.1Robert GoldmanRobert Goldman