On 18 August 2010 14:49, James Fleming <l...@electronic-quill.net> wrote: > The very short version of the question: what changed between 1.0.39 and > 1.0.40, regarding the expected locations of source files, and when/how > they're expected to be copied there during asdf::perform operations?
ASDF version supplied with SBCL changing is the probable culprit for at least some of this -- adding asdf-devel to CC. (It seems the NEWS entry for ASDF2 was forgotten, oops...) However, this bit right here > ; compiling file > "/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-grovel/def-to-lisp.lisp" (written 15 indicates that something else is wrong too: loading SB-GROVEL should not cause it to be compiled. If your ASDF-LOAD uses :FORCE, that's a the obvious reason, but if not I suspect something funny is going on with timestamps on those files since ASDF feels the need to recompile them. Cheers, -- Nikodemus > The context: I'm writing a wiki (yes, yet another one), and its back-end > consists of plain-text files while I get to grips with writing a parser. > > The text-file wrangling calls on cl-fad, which uses sb-posix, which in > turn makes use of sb-grovel. > Somewhere between 1.0.39 and 1.0.40, a change was made that broke > sb-posix, at least on the two machines I use - both run 64-bit Linux, one > on AMD and one on Intel. > > The symptom: sb-grovel's def-to-lisp fails to compile at line 244, where > it tries to evaluate (compile-file tmp-constants :output-file output-file) > after defining 'tmp-constants in this manner: > (let ((tmp-constants (merge-pathnames #p"constants.lisp-temp" > real-output-file))) > > It seems to come down to where source-files are expected to be, i.e. the > ~/.cache tree, and how they're copied there. The problem can be reproduced > on cue by invoking (asdf:oos 'asdf:load-op :sb-posix). This appears as > (asdf-load :sb-posix) below because I'm a lazy git and defined that > abbreviation in my .sbclrc. > > I've been trying to follow along in the source-code, and the nearest > relevant changes appear to be in contrib/asdf/asdf.lisp, but my thinking > has been addled by a nasty head-cold. Could somebody please give me a > pointer to what I need to look at next? What have I missed? Help! > > > Thanks in advance for any useful tips, > James > > > P.S. For those who'd like to see exactly what happens, a bleeding great > copy-and-paste follows... > > * (asdf-load :sb-posix) > > ; compiling file > "/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-grovel/def-to-lisp.lisp" (written 15 > AUG 2010 07:51:57 PM): > ; compiling (IN-PACKAGE #:SB-GROVEL) > ; compiling (DEFVAR *DEFAULT-C-STREAM* ...) > ; compiling (DEFUN ESCAPE-FOR-STRING ...) > ; compiling (DEFUN SPLIT-CFLAGS ...) > ; compiling (DEFUN C-ESCAPE ...) > ; compiling (DEFUN AS-C ...) > ; compiling (DEFUN PRINTF ...) > ; compiling (DEFUN C-FOR-ENUM ...) > ; compiling (DEFUN C-FOR-STRUCTURE ...) > ; compiling (DEFUN PRINT-C-SOURCE ...) > ; compiling (DEFUN C-CONSTANTS-EXTRACT ...) > ; compiling (DEFCLASS GROVEL-CONSTANTS-FILE ...) > ; compiling (DEFINE-CONDITION C-COMPILE-FAILED ...) > ; compiling (DEFINE-CONDITION A-DOT-OUT-FAILED ...) > ; compiling (DEFMETHOD PERFORM ...) > > ; > /home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-grovel/ASDF-TMP-def-to-lisp.fasl > written > ; compilation finished in 0:00:00.558 > (/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp > /home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.fasl > /home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.fasl > /home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/foo.c > /home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/a.out > /home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp) > > debugger invoked on a SB-INT:SIMPLE-FILE-ERROR in thread #<THREAD > "initial > thread" RUNNING > {1002AC20A1}>: > failed to find the TRUENAME of > /home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp: > No such file or directory > > Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL. > > restarts (invokable by number or by possibly-abbreviated name): > 0: [TRY-RECOMPILING] Try recompiling constants > 1: [RETRY ] Retry performing #<ASDF:COMPILE-OP NIL > {1003B23C31}> on > #<SB-GROVEL:GROVEL-CONSTANTS-FILE > "sb-posix" "constants">. > 2: [ACCEPT ] Continue, treating #<ASDF:COMPILE-OP NIL {1003B23C31}> > on > #<SB-GROVEL:GROVEL-CONSTANTS-FILE > "sb-posix" "constants"> > as having been successful. > 3: [ABORT ] Exit debugger, returning to top level. > > (SB-IMPL::SIMPLE-FILE-PERROR > "failed to find the TRUENAME of ~A" > #P"/home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp" > 2) > 0] backtrace > > 0: (SB-IMPL::SIMPLE-FILE-PERROR > "failed to find the TRUENAME of ~A" > > #P"/home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp" > 2) > 1: ((FLET SB-IMPL::FAIL) > "failed to find the TRUENAME of ~A" > > #P"/home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp" > 2) > 2: (SB-IMPL::QUERY-FILE-SYSTEM > > #P"/home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp" > :TRUENAME > T) > 3: (TRUENAME > > #P"/home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp") > 4: ((FLET SB-C::TRY-WITH-TYPE) > > #P"/home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp" > "lisp" > T) > 5: (SB-C::VERIFY-SOURCE-FILE > > #P"/home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp") > 6: (SB-C::VERIFY-SOURCE-FILE > > #P"/home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp")[:EXTERNAL] > 7: (COMPILE-FILE > > #P"/home/james/.cache/common-lisp/sbcl-1.0.41-linux-x86-64/opt/pkgs/sbcl-1.0.41/lib/sbcl/sb-posix/constants.lisp-temp")[:EXTERNAL] > 8: ((SB-PCL::FAST-METHOD ASDF:PERFORM > (ASDF:COMPILE-OP SB-GROVEL:GROVEL-CONSTANTS-FILE)) > #<unavailable argument> > #<unavailable argument> > #<ASDF:COMPILE-OP NIL {1003B23C31}> > #<SB-GROVEL:GROVEL-CONSTANTS-FILE "sb-posix" "constants">) > 9: ((LAMBDA > (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. > SB-PCL::.ARG1.)) > #<unavailable argument> > #<unavailable argument> > #<ASDF:COMPILE-OP NIL {1003B23C31}> > #<SB-GROVEL:GROVEL-CONSTANTS-FILE "sb-posix" "constants">) > 10: ((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS > (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) > #<unavailable argument> > #S(SB-PCL::FAST-METHOD-CALL > :FUNCTION #<FUNCTION #> > :PV NIL > :NEXT-METHOD-CALL NIL > :ARG-INFO (2)) > #<ASDF:COMPILE-OP NIL {1003B23C31}> > #<SB-GROVEL:GROVEL-CONSTANTS-FILE "sb-posix" "constants">) > 11: ((LAMBDA ())) > 12: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK)) > 13: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]324)) > 14: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK > #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK) {7FFFF79AB6C9}> > #S(SB-THREAD:MUTEX > :NAME "World Lock" > :%OWNER #<SB-THREAD:THREAD "initial thread" RUNNING {1002AC20A1}> > :STATE 1)) > 15: ((FLET SB-C::WITH-IT)) > 16: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) > #<unavailable argument> > #<unavailable argument> > ASDF:LOAD-OP > :SB-POSIX)[:EXTERNAL] > 17: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF-LOAD :SB-POSIX) #<NULL-LEXENV>) > 18: (INTERACTIVE-EVAL (ASDF-LOAD :SB-POSIX))[:EXTERNAL] > 19: (SB-IMPL::REPL-FUN NIL) > 20: ((LAMBDA ())) > 21: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<CLOSURE (LAMBDA #) {1002EBD309}>) > 22: (SB-IMPL::TOPLEVEL-REPL NIL) > 23: (SB-IMPL::TOPLEVEL-INIT) > 24: ((LABELS SB-IMPL::RESTART-LISP)) > > 0] > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Sbcl-help mailing list > sbcl-h...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sbcl-help > _______________________________________________ asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel