> 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'