On Sat, Jun 14, 2014 at 1:26 PM, Faré fahree@gmail.com wrote:
Could you please do
rm /home/tunes/src/common-lisp/mkcl/src/gc/include/private/config.h
and then do again the sequence:
make distclean; configure <your options>; make
I'll try to make a better fix in the next hours...
That worked, as far as building mkcl goes. Of course, mkcl still has the same class redefinition bug.
I think the full fix is now in git repo master head. Could you please do a "make distclean" then pull from git repo master head, configure again, and finally do a "make install" or whatever you need to re-attempt the ASDF upgrade that broke.
Please tell me the result.
That worked, as far as building mkcl goes. Of course, mkcl still has the same class redefinition bug.
I think the full fix is now in git repo master head. Could you please do a "make distclean" then pull from git repo master head, configure again, and finally do a "make install" or whatever you need to re-attempt the ASDF upgrade that broke.
Please tell me the result.
Nope, still the same bug with ASDF.
Note that ASDF already has #+mkcl (eval-when (:load-toplevel :compile-toplevel :execute) (require :cmp) (setq clos::*redefine-class-in-place* t)) ;; Make sure we have strict ANSI class redefinition semantics since release 2.27 (the first ASDF3 pre-release) so binding it to T once again in another place is unlikely to help much, unless something else in the system is changing it.
Though indeed I do see that the example I give works when the flag is set. Sigh.
I don't have time to deal with this anymore. Please work with Robert Goldman to get ASDF upgrade fixed on MKCL. You can test it by having a checkout of an asdf git repo in your source-registry.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Personal dishonesty is not needed to produce a dishonest business plan or research proposal. Wishful thinking suffices. — John McCarthy
I have replicated this bug by doing the following:
1. update my copy of mkcl from git 2. build and install new mkcl 3. update my copy of ASDF, checking out master 4. do make in the ASDF root directory 5. do make test-upgrade l=mkcl in the ASDF root directory
From this I get the following error:
TEST ABORTED: The index 35 (max: 31) is not a valid slot index in the object #<ASDF/SYSTEM:SYSTEM "asdf">. 0: (#<bytecompiled-function 00000000063ea980> (((NIL) (#:G-30736-4735 . 0)) (#:G-30736-4734) ((NIL) . #:G-30736-4733) (CONDITION . #<a MKCL:INVALID-SLOT 135798880>) (COUNT . 69) (STREAM . #<output stream "stdout">) (UIOP/IMAGE::KEYS :STREAM #<output stream "stdout"> :COUNT 69 :CONDITION #<a MKCL:INVALID-SLOT 135798880>) (#:|%the-lock--30736-4725| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-4726| . T))) 1: (#<bytecompiled-function UIOP/UTILITY:CALL-FUNCTION> ((UIOP/UTILITY::ARGUMENTS) (UIOP/UTILITY::FUNCTION-SPEC . #<bytecompiled-closure 000000000a938ea0>) (#:|%the-lock--30736-2091| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-2092| . T))) 2: (#<bytecompiled-function UIOP/STREAM:CALL-WITH-SAFE-IO-SYNTAX> ((PACKAGE . :CL) (FUNCTION . #<bytecompiled-closure 000000000a938ea0>) (#:|%the-lock--30736-3878| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-3879| . T))) 3: (#<bytecompiled-function UIOP/IMAGE:PRINT-BACKTRACE> ((CONDITION . #<a MKCL:INVALID-SLOT 135798880>) (COUNT . 69) (STREAM . #<output stream "stdout">) (UIOP/IMAGE::KEYS :STREAM #<output stream "stdout"> :COUNT 69 :CONDITION #<a MKCL:INVALID-SLOT 135798880>) (#:|%the-lock--30736-4725| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-4726| . T))) 4: (#<bytecompiled-function UIOP/IMAGE:PRINT-CONDITION-BACKTRACE> ((COUNT . 69) (STREAM . #<output stream "stdout">) (CONDITION . #<a MKCL:INVALID-SLOT 135798880>) (#:|%the-lock--30736-4739| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-4740| . T))) 5: (#<bytecompiled-function ASDF-TEST:ACALL> ((ASDF-TEST::ARGS #<a MKCL:INVALID-SLOT 135798880> :COUNT 69 :STREAM #<output stream "stdout">) (ASDF-TEST::NAME . :PRINT-CONDITION-BACKTRACE) (#:|%the-lock--30736-510| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-511| . T))) 6: (#<bytecompiled-function 0000000004d86e80> (((NIL) (#:G-30736-948 . 0)) (#:G-30736-947) ((NIL) . #:G-30736-946) (ASDF-TEST::C . #<a MKCL:INVALID-SLOT 135798880>) (:ASDF-TEST-DONE . :ASDF-TEST-DONE) (ASDF-TEST::THUNK . #<bytecompiled-closure 0000000004fb2960>) (#:|%the-lock--30736-932| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-933| . T))) 7: (#<bytecompiled-function ASDF/SYSTEM::CALL-WITH-UPDATED-SYSTEM-VARIABLES> ((ASDF/SYSTEM:SYSTEM . #<ASDF/SYSTEM:SYSTEM "asdf">) (ASDF/SYSTEM::THUNK . #<bytecompiled-closure 0000000008182180>) (ASDF/COMPONENT:COMPONENT . #<ASDF/SYSTEM:SYSTEM "asdf">) (#:|%the-lock--30736-7534| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-7535| . T))) 8: (#<bytecompiled-function 000000000625fe00> ((ASDF/ACTION::THUNK . #<bytecompiled-closure 00000000081821e0>) (ASDF/ACTION::C . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "asdf" "build" "asdf">) (ASDF/ACTION::O . #<ASDF/LISP-ACTION:LOAD-OP :VERBOSE NIL>) (CLOS::.THIS-GENERIC-FUNC. . #<STANDARD-GENERIC-FUNCTION ASDF/ACTION:CALL-WITH-ACTION-CONTEXT 108475808>) (CLOS::.THIS-METHOD. . #<STANDARD-METHOD CALL-WITH-ACTION-CONTEXT (#<The STANDARD-CLASS ASDF/OPERATION:OPERATION 83822752> #<The STANDARD-CLASS ASDF/COMPONENT:COMPONENT 80465472> #<The BUILT-IN-CLASS T 61887520>) 103107680>) (#:|%the-lock--30736-10209| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-10210| . T))) 9: (#<bytecompiled-function 000000000625f000> ((ASDF/COMPONENT:COMPONENT . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "asdf" "build" "asdf">) (ASDF/OPERATION:OPERATION . #<ASDF/LISP-ACTION:LOAD-OP :VERBOSE NIL>) (CLOS::.THIS-GENERIC-FUNC. . #<STANDARD-GENERIC-FUNCTION ASDF/ACTION:PERFORM-WITH-RESTARTS 117185536>) (CLOS::.THIS-METHOD. . #<STANDARD-METHOD PERFORM-WITH-RESTARTS (#<The BUILT-IN-CLASS T 61887520> #<The BUILT-IN-CLASS T 61887520>) 104710528>) (#:|%the-lock--30736-10233| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-10234| . T))) 10: (#<bytecompiled-function 000000000600f000> (((NIL) (#:G-30736-10810 . 0)) (#:G-30736-10809) ((NIL) . #:G-30736-10808) ((NIL) (#:G-30736-10807 . 0)) ((NIL)) (ASDF/LISP-ACTION::C . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "asdf" "build" "asdf">) (ASDF/LISP-ACTION::O . #<ASDF/LISP-ACTION:LOAD-OP :VERBOSE NIL>) (CLOS::.THIS-GENERIC-FUNC. . #<STANDARD-GENERIC-FUNCTION ASDF/ACTION:PERFORM-WITH-RESTARTS 117185536>) (CLOS::.THIS-METHOD. . #<STANDARD-METHOD PERFORM-WITH-RESTARTS (#<The STANDARD-CLASS ASDF/LISP-ACTION:LOAD-OP 79667680> #<The STANDARD-CLASS ASDF/LISP-ACTION:CL-SOURCE-FILE 78177024>) 101393344>) (#:|%the-lock--30736-10793| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-10794| . T))) 11: (#<bytecompiled-function 0000000005d1e000> (((NIL) (#:G-30736-10291 . 1) (#:G-30736-10290 . 0)) (#:G-30736-10289) ((NIL) . #:G-30736-10288) ((NIL) (#:G-30736-10287 . 0)) ((NIL)) (ASDF/COMPONENT:COMPONENT . #<ASDF/LISP-ACTION:CL-SOURCE-FILE "asdf" "build" "asdf">) (ASDF/OPERATION:OPERATION . #<ASDF/LISP-ACTION:LOAD-OP :VERBOSE NIL>) (CLOS::.THIS-GENERIC-FUNC. . #<STANDARD-GENERIC-FUNCTION ASDF/ACTION:PERFORM-WITH-RESTARTS 117185536>) (CLOS::.THIS-METHOD. . #<STANDARD-METHOD PERFORM-WITH-RESTARTS (#<The BUILT-IN-CLASS T 61887520> #<The BUILT-IN-CLASS T 61887520>) 99525376>) (#:|%the-lock--30736-10272| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-10273| . T))) 12: (#<bytecompiled-function 0000000004ddfd80> ((ASDF-TEST::KEYS) (#:|%the-lock--30736-1020| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-1021| . T))) 13: (#<bytecompiled-function ASDF-TEST::CALL-QUIETLY> ((ASDF-TEST::THUNK . #<bytecompiled-closure 000000000556c3c0>) (#:|%the-lock--30736-962| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-963| . T))) 14: (#<bytecompiled-function ASDF-TEST:LOAD-ASDF-SYSTEM> ((ASDF-TEST::KEYS) (#:|%the-lock--30736-1020| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-1021| . T))) 15: (#<bytecompiled-function 0000000004f3c200> ((ASDF-TEST::TAG . "REQUIRE") (ASDF-TEST::NEW-METHOD . ASDF-TEST:LOAD-ASDF-SYSTEM) (ASDF-TEST::OLD-METHOD . ASDF-TEST:LOAD-ASDF-LISP) (#:|%the-lock--30736-1320| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-1321| . T))) 16: (#<bytecompiled-function ASDF-TEST::CALL-WITH-TEST> ((:ASDF-TEST-DONE . :ASDF-TEST-DONE) (ASDF-TEST::THUNK . #<bytecompiled-closure 0000000004fb2960>) (#:|%the-lock--30736-932| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-933| . T))) 17: (#<bytecompiled-function ASDF-TEST::TEST-UPGRADE> ((ASDF-TEST::TAG . "REQUIRE") (ASDF-TEST::NEW-METHOD . ASDF-TEST:LOAD-ASDF-SYSTEM) (ASDF-TEST::OLD-METHOD . ASDF-TEST:LOAD-ASDF-LISP) (#:|%the-lock--30736-1320| . #<lock (recursive) MT:+LOAD-COMPILE-LOCK+ 000000000282f280>) (#:|%lock-acquired--30736-1321| . T))) 18: (#<bytecompiled-function SI:BYTECODE> NIL) 19: (#<bytecompiled-function SI:BYTECODE> ((SI::OUTPUT-FILE . T) (SI::C-FILE) (SI::H-FILE) (SI::DATA-FILE) (SI::EXTERNAL-FORMAT . :DEFAULT) (SI::VERBOSE . T) (SI::FASL-P . T) (MKCL:QUIT))) 20: (#<bytecompiled-function SI:BYTECODE> NIL) 21: (NIL NIL) Above backtrace due to this condition: The index 35 (max: 31) is not a valid slot index in the object #<ASDF/SYSTEM:SYSTEM "asdf">. Script failed upgrade FAILED for mkcl from REQUIRE using method 'load-asdf-lisp'load-asdf-system you can retry just that test with: ASDF_UPGRADE_TEST_TAGS="REQUIRE" ASDF_UPGRADE_TEST_METHODS="'load-asdf-lisp'load-asdf-system" ./test/run-tests.sh -u mkcl or more interactively (and maybe with rlwrap or in emacs), start with: mkcl -norc then copy/paste: (load "test/script-support.lisp") (asdf-test::da) (test-upgrade 'load-asdf-lisp'load-asdf-system "REQUIRE")
We should probably move this to a launchpad ticket....
On Mon, Jun 16, 2014 at 12:38 PM, Robert Goldman rpgoldman@sift.net wrote:
I have replicated this bug by doing the following:
- update my copy of mkcl from git
- build and install new mkcl
- update my copy of ASDF, checking out master
- do make in the ASDF root directory
- do make test-upgrade l=mkcl in the ASDF root directory
I have also been able to replicate it in an instance of MKCL with full debug information. That has allowed me to find the root cause of the problem. I should have a fix in the next 12 hours...
Thank you Robert.
Interestingly, uiop/common-lisp.lisp sets clos::*redefine-class-in-place* in uiop/common-lisp — is the problem due to your compiling asdf/defsystem separately, and bind r-c-i-p in LOAD, so that this setting doesn't apply to asdf/defsystem?
At first, your solution looked like it wasn't working. Then, I tried to reproduce, and then it worked against ASDF 3.1.2. But still not against the syntax-control branch. I'm confused.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org If it's not worth doing, it's not worth doing well — Donald Hebb