Dear Mark,
On Wed, Oct 23, 2013 at 8:23 AM, Mark Evenson evenson@panix.com wrote:
On Oct 22, 2013, at 20:26, Faré fahree@gmail.com wrote:
Testing ASDF found several bugs in ABCL.
cd ~/cl/asdf/
abcl --noinform --eval '(or`#.(load(string`|test/script-support.lisp|)`:verbose():print())#.(asdf-test::exit-lisp`0))' Failed to require LOOP because 'Illegal function object: (bqv).'
Maximum error depth exceeded (11 nested errors) with 'Illegal function object: (bqv).'.
abcl --noinform --eval "(or'#.(load(string'|test/script-support.lisp|):verbose():print())#.(asdf-test::exit-lisp'0))"
So your backquote parser is broken somehow.
I have confirmed this bug on my end.
I would file a ticket for this, but we are in the process of moving abcl.org to another machine with better connectivity, so am trying to get that finished (famous last words: “next day or two”) before updating state that will need to be resynced.
OK. Now is two days later. Are things ready to file a bug?
make u l=abcl ASDF_UPGRADE_TEST_TAGS=2.25
works for me with an ASDF at git version
commit 10fa87ab70d7db14b45ad822558382fe3dad4540
Did you change the constant 2.27 to 2.25 near the bottom of header.lisp? I bumped it to 2.27 so that on older versions, it will just rename away package ASDF. But things used to work with 2.25 (strangely, not 2.24, if I trust myself to have put 2.25 for a good reason, though I don't see what could have tripped ABCL in the diff from 2.24 to 2.25)
I get the following error, now with a semi-useful backtrace:
TEST ABORTED: The slot ASDF/BACKWARD-INTERFACE:ON-WARNINGS is missing from the class #<STANDARD-CLASS ASDF/LISP-ACTION:COMPILE-OP {3CEB7830}>. ... (ERROR "The slot ~S is missing from the class ~S." ASDF/BACKWARD-INTERFACE:ON-WARNINGS #<STANDARD-CLASS ASDF/LISP-ACTION:COMPILE-OP {3CEB7830}>) (#<FUNCTION {31B8C5E3}> #<STANDARD-CLASS ASDF/LISP-ACTION:COMPILE-OP {3CEB7830}> #<ASDF/LISP-ACTION:COMPILE-OP > ASDF/BACKWARD-INTERFACE:ON-WARNINGS SLOT-VALUE) (APPLY #<FUNCTION {31B8C5E3}> (#<STANDARD-CLASS ASDF/LISP-ACTION:COMPILE-OP {3CEB7830}> #<ASDF/LISP-ACTION:COMPILE-OP > ASDF/BACKWARD-INTERFACE:ON-WARNINGS SLOT-VALUE)) (#<FUNCTION {29F01381}> (#<STANDARD-CLASS ASDF/LISP-ACTION:COMPILE-OP {3CEB7830}> #<ASDF/LISP-ACTION:COMPILE-OP > ASDF/BACKWARD-INTERFACE:ON-WARNINGS SLOT-VALUE)) (SYSTEM:STD-SLOT-VALUE #<ASDF/LISP-ACTION:COMPILE-OP > ASDF/BACKWARD-INTERFACE:ON-WARNINGS) (#<FUNCTION {4A8270D7}> (#<ASDF/LISP-ACTION:COMPILE-OP >)) (#<STANDARD-GENERIC-FUNCTION ASDF/BACKWARD-INTERFACE:OPERATION-ON-WARNINGS {70B125BD}> #<ASDF/LISP-ACTION:COMPILE-OP >) (#<FUNCTION {4E5FD9FB}> (#<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "asdf" "build" "asdf">)) (#<STANDARD-GENERIC-FUNCTION ASDF/ACTION:PERFORM {5C8032DF}> #<ASDF/LISP-ACTION:COMPILE-OP > #<ASDF/LISP-ACTION:CL-SOURCE-FILE "asdf" "build" "asdf">) ... upgrade FAILED for abcl from 2.25 using method 'load-asdf-lisp'load-asdf-system you can retry just that test with: ASDF_UPGRADE_TEST_TAGS="2.25" ASDF_UPGRADE_TEST_METHODS="'load-asdf-lisp'load-asdf-system" ./test/run-tests.sh -u abcl or more interactively (and maybe with rlwrap or in emacs), start with: abcl --noinit --nosystem --noinform then copy/paste: (load "test/script-support.lisp") (asdf-test::da) (test-upgrade 'load-asdf-lisp'load-asdf-system "2.25")
How can we narrow the possibilities for why it works for me, but not for you?
Note that some of the upgrade scenarios work. In this scenario, we load the old version 2.25 as a lisp file, then use it to load version 3.1.0.2 as a system, and it fails. The probable cause is that we are using an object of class COMPILE-OP, but class COMPILE-OP itself is redefined, and more subtly, the name of the slot, as a symbol, is rehomed from package ASDF to package ASDF/LISP-ACTION.
You might have recently changed the way you represent lisp objects or classes as java objects or classes, making the assumption that symbols naming slots will never change package. This assumption is incorrect. Symbols can be made to not have a package anymore, or to have a new package home. The ASDF upgrade from before 2.27 relies on that.
NB: I'm still using Armed Bear Common Lisp 1.2.1 Java 1.6.0_27 Sun Microsystems Inc. OpenJDK 64-Bit Server VM
Finally, there are many instances of abcl in #+ or #- in the test/ directory, including two new ones in test-bundle on Mac (which is a regression from abcl 1.1.0) and in test-stamp-propagation (which is a new test, and a bug shared with XCL).
That’s an implicit invitation for help quashing bugs, right? Probably I do not have the cycles to help for your impending release, but will throw it on my TODO stack.
Yes. There are probably ABCL bugs lurking that cause test-bundle and test-stamp-propagation to fail.
The test-bundle issue only appears on Mac. To trigger it, disable the #+(and darwin (or abcl ecl))
To If you get to test-stamp-propagation, you have to (defparameter asdf::*asdf-cache* nil) and disable the #+(or abcl xcl) to trigger the bug, which is possibly due to some wrongful caching in file-write-date by the runtime.
Regards,
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Hi! I'm a signature virus. Copy me into your sig file and help me spread!