Skip to content
Commit 1a241a5c authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Fix issue upgrading from 3.1.7 or earlier

To reproduce the bug, on sbcl, allegro, cmucl (and presumably all other
implementations?) try:

ASDF_UPGRADE_TEST_TAGS=3.1.7 \
ASDF_UPGRADE_TEST_METHODS="'load-asdf-lisp'compile-load-asdf-upgrade" \
make u l=sbcl ; \
make t l=sbcl t=test-utilities.script

TEST ABORTED: These two expressions fail comparison with EQUAL:
 NIL evaluates to NIL
 (FISHY-ASDF-EXPORTED-SYMBOLS) evaluates to
 (("ASDF/INTERFACE" "REQUIRED-COMPONENTS")
  ("ASDF/PLAN" "TRAVERSE-SUB-ACTIONS" "REQUIRED-COMPONENTS" "TRAVERSE-ACTIONS"))

After loading the FASL compiled from 3.1.7 (or earlier ASDF3),
the symbols are unexported in their old package ASDF/ACTION,
and the same-named symbols in ASDF/PLAN (and ASDF/INTERFACE)
are fresh symbols that are not fbound.

The solution is for ASDF/ACTION to :UNINTERN those symbols.
ASDF/PLAN cannot include ASDF/ACTION in its :RECYCLE clause,
because it comes *after* ASDF/ACTION, and that would negatively affect
other symbols from ASDF/ACTION that ASDF/PLAN imports (at least on CCL).
parent f66917e8
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment