ASDF 3.1.7.43 is 3.2 release candidate

Attila Lendvai attila at lendvai.name
Sun Dec 25 18:18:38 UTC 2016


> Looks like ASDF wants to signal a warning "please only define systems in .asd file with a corresponding name" and SBCL fails into an index out of bounds error.
> I'm not sure if it's SBCL or ASDF bug:

i managed to reproduce this but it's a very annoying bug.

looks like that it requires both of the following conditions:

 - no quicklisp fasls, so some compilation happens

 - sb-posix and/or sb-bsd-sockets being loaded as a sideffect of the
   toplevel form: (load "~/quicklisp/setup.lisp")

if i load sb-posix and sb-bsd-sockets by themselves, it works and i
get the expected warning from ASDF without any errors. even if i make
sure ASDF is upgraded.

if it once loads fine, then it'll work until i delete the quicklisp
fasls (thus debugging it in swank is not easily possible because
loading swank while sitting in the error would trigger a recursive
dependency error for sb-posix).

this is probably an SBCL bug, but i couldn't find a short way to
reproduce it.



this way it fails:

$ rlwrap sbcl-1.1.10-x86-64-linux/run-sbcl.sh --no-userinit
This is SBCL 1.1.10, an implementation of ANSI Common Lisp.
* (load "~/quicklisp/setup.lisp")

debugger invoked on a SB-INT:INVALID-ARRAY-INDEX-ERROR in thread
#<THREAD "main thread" RUNNING {1002B23A63}>: Index 22 out of bounds
for (AND (VECTOR T 10) (NOT SIMPLE-ARRAY)), should be nonnegative and
<10.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY                        ] Retry EVAL of current toplevel form.
  1: [CONTINUE                     ] Ignore error and continue loading
file "/media/store/work/sbcl-1.1.10-x86-64-linux/contrib/sb-posix/sb-posix.asd".
  2: [ABORT                        ] Abort loading file
"/media/store/work/sbcl-1.1.10-x86-64-linux/contrib/sb-posix/sb-posix.asd".
  3: [RETRY                        ] Retry compiling #<CL-SOURCE-FILE
"quicklisp" "impl">.
  4: [ACCEPT                       ] Continue, treating compiling
#<CL-SOURCE-FILE "quicklisp" "impl"> as having been successful.
  5:                                 Retry ASDF operation.
  6: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after
resetting the configuration.
  7:                                 Retry EVAL of current toplevel form.
  8:                                 Ignore error and continue loading
file "/home/alendvai/quicklisp/setup.lisp".
  9:                                 Abort loading file
"/home/alendvai/quicklisp/setup.lisp".
 10:                                 Exit debugger, returning to top level.

(SB-C::FIND-SOURCE-ROOT 22 #<SB-C::SOURCE-INFO >)
0]



but when i preemtively require sb-posix and sb-bsd-sockets, then it works:


$ rlwrap sbcl-1.1.10-x86-64-linux/run-sbcl.sh --no-userinit
This is SBCL 1.1.10, an implementation of ANSI Common Lisp.
* (require :sb-bsd-sockets)
WARNING: System definition file
#P"/media/store/work/sbcl-1.1.10-x86-64-linux/contrib/sb-bsd-sockets/sb-bsd-sockets.asd"
contains definition for system "sb-bsd-sockets-tests". Please only
define "sb-bsd-sockets" and secondary systems with a name starting
with "sb-bsd-sockets/" (e.g. "sb-bsd-sockets/test") in that file.

("SB-BSD-SOCKETS" "SB-GROVEL" "asdf" "UIOP" "uiop" "ASDF")
* (require :sb-posix)
WARNING: System definition file
#P"/media/store/work/sbcl-1.1.10-x86-64-linux/contrib/sb-posix/sb-posix.asd"
contains definition for system "sb-posix-tests". Please only define
"sb-posix" and secondary systems with a name starting with "sb-posix/"
(e.g. "sb-posix/test") in that file.

("SB-POSIX")
* (load "~/quicklisp/setup.lisp")

T



after the above, it continues working (no compilation happens):

$ rlwrap sbcl-1.1.10-x86-64-linux/run-sbcl.sh --no-userinit
This is SBCL 1.1.10, an implementation of ANSI Common Lisp.
* (load "~/quicklisp/setup.lisp")
WARNING: System definition file
#P"/media/store/work/sbcl-1.1.10-x86-64-linux/contrib/sb-posix/sb-posix.asd"
contains definition for system "sb-posix-tests". Please only define
"sb-posix" and secondary systems with a name starting with "sb-posix/"
(e.g. "sb-posix/test") in that file.
WARNING: System definition file
#P"/media/store/work/sbcl-1.1.10-x86-64-linux/contrib/sb-bsd-sockets/sb-bsd-sockets.asd"
contains definition for system "sb-bsd-sockets-tests". Please only
define "sb-bsd-sockets" and secondary systems with a name starting
with "sb-bsd-sockets/" (e.g. "sb-bsd-sockets/test") in that file.

T
*



until i remove the fasl's:

$ rmfasl quicklisp
/home/alendvai/.cache/common-lisp/ccl-1.11-f96-linux-x64/home/alendvai/quicklisp
/home/alendvai/.cache/common-lisp/sbcl-1.1.10-linux-x64/home/alendvai/quicklisp
/home/alendvai/.cache/common-lisp/sbcl-1.3.12.43.hu.dwim.3-75d5678-dirty-linux-x64/home/alendvai/quicklisp
$ rlwrap sbcl-1.1.10-x86-64-linux/run-sbcl.sh --no-userinit
This is SBCL 1.1.10, an implementation of ANSI Common Lisp.
* (load "~/quicklisp/setup.lisp")

debugger invoked on a SB-INT:INVALID-ARRAY-INDEX-ERROR in thread
#<THREAD "main thread" RUNNING {1002B23A63}>: Index 22 out of bounds
for (AND (VECTOR T 10) (NOT SIMPLE-ARRAY)), should be nonnegative and
<10.

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY                        ] Retry EVAL of current toplevel form.
  1: [CONTINUE                     ] Ignore error and continue loading
file "/media/store/work/sbcl-1.1.10-x86-64-linux/contrib/sb-posix/sb-posix.asd".
  2: [ABORT                        ] Abort loading file
"/media/store/work/sbcl-1.1.10-x86-64-linux/contrib/sb-posix/sb-posix.asd".
  3: [RETRY                        ] Retry compiling #<CL-SOURCE-FILE
"quicklisp" "impl">.
  4: [ACCEPT                       ] Continue, treating compiling
#<CL-SOURCE-FILE "quicklisp" "impl"> as having been successful.
  5:                                 Retry ASDF operation.
  6: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after
resetting the configuration.
  7:                                 Retry EVAL of current toplevel form.
  8:                                 Ignore error and continue loading
file "/home/alendvai/quicklisp/setup.lisp".
  9:                                 Abort loading file
"/home/alendvai/quicklisp/setup.lisp".
 10:                                 Exit debugger, returning to top level.

(SB-C::FIND-SOURCE-ROOT 22 #<SB-C::SOURCE-INFO >)
0]

hth,

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“All authority of any kind, especially in the field of thought and
understanding, is the most destructive, evil thing. Leaders destroy
the followers and followers destroy the leaders. You have to be your
own teacher and your own disciple. You have to question everything
that man has accepted as valuable, as necessary.”
	— Jiddu Krishnamurti (1895–1986), 'Freedom from the Known'



More information about the asdf-devel mailing list