[armedbear-devel] Bugs

Faré fahree at gmail.com
Fri Oct 25 05:06:00 UTC 2013


Dear Mark,

On Wed, Oct 23, 2013 at 8:23 AM, Mark Evenson <evenson at panix.com> wrote:
>
> On Oct 22, 2013, at 20:26, Faré <fahree at 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!



More information about the armedbear-devel mailing list