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,