It is possible to "punt" more aggressively by introducing #+cmu before (< existing-version 2.27) in header.lisp, but this doesn't help. It looks like CMUCL somehow fails to properly finalize classes that are redefined in an eval-when, and/or the old objects end up not upgraded properly. Or something.
make u l=cmucl ASDF_UPGRADE_TEST_TAGS=2.27
Error in function KERNEL:CLASS-TYPEP:
Class is currently invalid: #<KERNEL::STANDARD-CLASS ASDF/SYSTEM:SYSTEM {581E57F5}>
This is actually a CMUCL bug.
It is possible to "punt" more aggressively by introducing #+cmu before (< existing-version 2.27) in header.lisp, but this doesn't help. It looks like CMUCL somehow fails to properly finalize classes that are redefined in an eval-when, and/or the old objects end up not upgraded properly. Or something.
make u l=cmucl ASDF_UPGRADE_ TEST_TAGS= 2.27
Error in function KERNEL:CLASS-TYPEP: :STANDARD- CLASS ASDF/SYSTEM:SYSTEM
{581E57F5} >
Class is currently invalid: #<KERNEL:
0: (SIGNAL #<SIMPLE-ERROR {599FDA15}>)
#<KERNEL: :STANDARD- CLASS ASDF/SYSTEM:SYSTEM {581E57F5}>) SYSTEM: LOCATE- SYSTEM "asdf") FIND-SYSTEM (STRING)) #<unused-arg> FIND-SYSTEM (STRING)) 4 #<unused-arg> COMPONENT: FIND-COMPONENT (STRING T)) COMPONENT: FIND-COMPONENT (STRING T)) 4 COMPONENT: FIND-COMPONENT (SYMBOL T)) COMPONENT: FIND-COMPONENT (SYMBOL T)) 4 COMPONENT: FIND-COMPONENT (SYMBOL T)) COMPONENT: FIND-COMPONENT (SYMBOL T)) 4 OPERATE (SYMBOL T)) #<unused-arg> ACTION: LOAD-OP :ASDF ...) OPERATE (SYMBOL T)) 5 #<unused-arg> ACTION: LOAD-OP ...)[:EXTERNAL] CALL-WITH- ASDF-CACHE SYSTEM: :CALL-WITH- SYSTEM- DEFINITIONS OPERATE :AROUND (T T)) #<unused-arg> PCL::FAST- METHOD- CALL
{59815309} >
:NEXT- METHOD- CALL NIL LISP-ACTION: LOAD-OP :ASDF ...) OPERATE :AROUND (T T)) 5 #<unused-arg> PCL::FAST- METHOD- CALL
{59815309} >
:NEXT- METHOD- CALL NIL LISP-ACTION: LOAD-OP ...)[:EXTERNAL] LOAD-SYSTEM :ASDF :VERBOSE NIL)[:OPTIONAL] UPGRADE- ASDF) OPERATE :AROUND (T T)) #<unused-arg> PCL::FAST- METHOD- CALL
{597E1199} >
:NEXT- METHOD- CALL NIL LISP-ACTION: LOAD-OP :TEST-ASDF/ALL ...) OPERATE :AROUND (T T)) 5 #<unused-arg> PCL::FAST- METHOD- CALL
{597E1199} >
:NEXT- METHOD- CALL NIL LISP-ACTION: LOAD-OP ...)[:EXTERNAL] INTERACTIVE- EVAL LISP-CLEAN "2.27")) SAVE-LISP) )
1: (ERROR "Class is currently invalid: ~S"
2: (KERNEL:CLASS-TYPEP #<unavailable-arg> #<unavailable-arg> #<unavailable-arg>)
3: (ASDF/FIND-
4: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. NAME .REST-ARG.)")
5: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. NAME .REST-ARG.)" 0)[:EXTERNAL]
6: ((PCL:FAST-METHOD ASDF/SYSTEM:
#<unused-arg> "asdf" (NIL))
7: ((PCL:FAST-METHOD ASDF/SYSTEM:
#<unused-arg> "asdf" ...)[:EXTERNAL]
8: ((PCL:FAST-METHOD ASDF/FIND-
(#() . #(#)) #<unused-arg> "asdf" NIL)
9: ((PCL:FAST-METHOD ASDF/FIND-
(#() . #(#)) #<unused-arg> "asdf" ...)[:EXTERNAL]
10: ((PCL:FAST-METHOD ASDF/FIND-
#<unused-arg> #<unused-arg> :ASDF NIL)
11: ((PCL:FAST-METHOD ASDF/FIND-
#<unused-arg> #<unused-arg> :ASDF ...)[:EXTERNAL]
12: ((PCL:FAST-METHOD ASDF/FIND-
#<unused-arg> #<unused-arg> NIL :ASDF)
13: ((PCL:FAST-METHOD ASDF/FIND-
#<unused-arg> #<unused-arg> NIL ...)[:EXTERNAL]
14: ((PCL:FAST-METHOD ASDF/OPERATE:
#<unused-arg> ASDF/LISP-
15: ((PCL:FAST-METHOD ASDF/OPERATE:
#<unused-arg> ASDF/LISP-
16: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OPERATION COMPONENT .REST-ARG.)")
17: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OPERATION COMPONENT .REST-ARG.)" 0)[:EXTERNAL]
18: (ASDF/CACHE:
#<Closure Over Function "LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OPERATION COMPONENT .REST-ARG.)"
{59815861}>
:OVERRIDE NIL)[:OPTIONAL]
19: (ASDF/FIND-
#<Closure Over Function "LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OPERATION COMPONENT .REST-ARG.)"
{59815861}>)
20: ((PCL:FAST-METHOD ASDF/OPERATE:
#S(
:FUNCTION #<Closure Over Function "LAMBDA (.KEYARGS-START. .VALID-KEYS. G4744 G4745 G4746)"
:PV-CELL NIL
:ARG-INFO (2 . T))
ASDF/
21: ((PCL:FAST-METHOD ASDF/OPERATE:
#S(
:FUNCTION #<Closure Over Function "LAMBDA (.KEYARGS-START. .VALID-KEYS. G4744 G4745 G4746)"
:PV-CELL NIL
:ARG-INFO (2 . T))
ASDF/
22: (ASDF/OPERATE:
23: (ASDF/UPGRADE:
24: ((PCL:FAST-METHOD ASDF/OPERATE:
#S(
:FUNCTION #<Closure Over Function "LAMBDA (.KEYARGS-START. .VALID-KEYS. G4744 G4745 G4746)"
:PV-CELL NIL
:ARG-INFO (2 . T))
ASDF/
25: ((PCL:FAST-METHOD ASDF/OPERATE:
#S(
:FUNCTION #<Closure Over Function "LAMBDA (.KEYARGS-START. .VALID-KEYS. G4744 G4745 G4746)"
:PV-CELL NIL
:ARG-INFO (2 . T))
ASDF/
26: (LOAD-TEST-SYSTEM :TEST-ASDF/ALL :VERBOSE NIL)[:OPTIONAL]
27: (NIL)
28: (CALL-WITH-TEST
#<Interpreted Function "LAMBDA (OLD-METHOD NEW-METHOD TAG)" {582D2C51}>)
29: (CALL-WITH-TEST
#<Interpreted Function "LAMBDA (OLD-METHOD NEW-METHOD TAG)" {582D2C51}>)
30: (EXTENSIONS:
(TEST-UPGRADE 'LOAD-ASDF-LISP 'LOAD-ASDF-
31: (LISP::%TOP-LEVEL)
32: ((LABELS LISP::RESTART-LISP EXTENSIONS: