[asdf-devel] 1.675 bug
szergling
senatorzergling at gmail.com
Thu Apr 15 00:46:19 UTC 2010
Hi list,
I'm having trouble hot-upgrading asdf. My old setup was not checked
out of a repository, but does have a file modified date of
2007-06-18. I also use asdf-binary-locations version "0.3.8".
To begin with, I have created the following config file
(~ is at c:/home)
~/.config/common-lisp/source-registry.conf
(:source-registry
(:directory "e:/src/ltk-0.90/")
(:tree "c:/home/code/lisp/libs/")
(:exclude "_darcs")
:ignore-inherited-configuration)
I then load-file asdf.lisp from Slime. My clisp-2.47 (non-cygwin
Windows) is previously already running with asdf,
asdf-binary-locations, and many systems loaded (and other random work
done).
I then tried to load a system that I could previously load just fine,
in this case ironclad_0.27.
CL-USER> (asdf:load-system :ironclad)
; loading system definition from
C:\home\code\lisp\libs\ironclad_0.27\ironclad.asd into #<PACKAGE
ASDF0>
;; Loading file C:\home\code\lisp\libs\ironclad_0.27\ironclad.asd ...
; registering #<SYSTEM :IRONCLAD #x26F7286D> as IRONCLAD
; registering #<SYSTEM IRONCLAD-TESTS #x26FE5225> as IRONCLAD-TESTS
;; Loaded file C:\home\code\lisp\libs\ironclad_0.27\ironclad.asd
; No value
This gave the following error.
TRANSLATE-PATHNAME: replacement pieces (NIL NIL
(:DIRECTORY #1="home" #2="code" #3="lisp" #4="libs"
#5="ironclad_0.27")
"package" "fas" :NEWEST) do not fit into #P"C:\\Documents and
Settings\\chewyong\\Local Settings\\Temporary Internet
Files\\common-lisp\\**\\*.*"
[Condition of type SIMPLE-ERROR]
I browsed around in the stack trace (yes clisp stack traces are ugly),
and looked deeper into this particular frame:
...
17: <1/1718> #<SYSTEM-FUNCTION TRANSLATE-PATHNAME>
[1712] EVAL frame for form (TRANSLATE-PATHNAME
(ASDF::DIRECTORIZE-PATHNAME-HOST-DEVICE ASDF::P) ASDF::ABSOLUTE-SOURCE
ASDF::DESTINATION)
Locals:
ASDF::ABSOLUTE-SOURCE = #P"\\**\\*.*"
ASDF::ROOT = #P"\\"
ASDF::DESTINATION = #P"C:\\Documents and
Settings\\chewyong\\Local Settings\\Temporary Internet..
ASDF::SOURCE = T
#:LIST-13280 = ((T
..))
ASDF::P = #P"\\home\\code\\lisp\\libs\\ironclad_0.27\\package.fas"
#:PATTERN-13281 = (T
..)
#:TYPECASE-KEY-13279 =
#P"C:\\home\\code\\lisp\\libs\\ironclad_0.27\\package.fas"
#:TYPECASE-KEY-13278 =
#P"C:\\home\\code\\lisp\\libs\\ironclad_0.27\\package.fas"
ASDF::PATH = #P"C:\\home\\code\\lisp\\libs\\ironclad_0.27\\package.fas"
...
In particular, I'm guessing that this is related to truenamize (has it
taken the wrong branch?) with respect to (line 677 on my version of
asdf.lisp)
(ignore-errors (return (truename p)))
Am I close enough? See the following:
CL-USER> (truename (merge-pathnames
#P"\\home\\code\\lisp\\libs\\ironclad_0.27\\package.fas"))
==>
TRUENAME: File #1=#P"C:\\home\\code\\lisp\\libs\\ironclad_0.27\\package.fas"
does not exist
[Condition of type SYSTEM::SIMPLE-FILE-ERROR]
My package.fas, due to asdf-binary-locations, has been stored
previously in
~/code/lisp/libs/ironclad_0.27/clisp-2.47-win32-i386/package.fas
I hope this is useful for fixing asdf + a-b-l hot upgrade. I can restart a
new Lisp and give full backtraces or other further info, should that
be necessary.
Cheers.
More information about the asdf-devel
mailing list