[asdf-devel] Cannot use latest git ECL (asdf/quicklisp are involved)
Robert Goldman
rpgoldman at sift.info
Mon Jun 24 13:08:17 UTC 2013
Didier Verna wrote:
> Robert Goldman <rpgoldman at sift.info> wrote:
>
>> Can you get a backtrace from the failed call to delete the directory?
>
> OK. So I restarted ecl -norc and then did a (load ".clrc") with the
> contents mentioned in my previous message. This is what I get. FWIW,
> the directory in which UIOP is trying to delete the non-existent
> asdf.fas file contains 2 files: asdf.o and asdf-ASDF-TMP.fas.
Thanks, Didier. Would you please file a launchpad ticket?
I am afraid I cannot be very helpful in the near future -- my
neighborhood lost power last Friday in a storm, so I am having a bit of
trouble staying on top of things.
The name of Faré's function (delete-file-if-exists) suggests that Faré
expects the deletion to fail gracefully, instead of raising an error.
He attempts to catch a FILE-ERROR there. I note that ECL seems to be
raising a SIMPLE-ERROR instead of a FILE-ERROR.
The hyperspec states of DELETE-FILE:
If the deletion operation is not successful, an error of type file-error
is signaled.
So if ECL is raising a SIMPLE-ERROR instead, that would be a bug in ECL,
and not in ASDF.
One thing that seems odd is that it seems ECL is claiming that it's
asked to delete a directory, not a file. Can you trap the argument to
DELETE-FILE-IF-EXISTS?
Best,
r
>
>
> didier(pts/1)% ecl -norc 14:48 06/24/13
> ECL (Embeddable Common-Lisp) 12.7.1 (git:52ca46e054d72cb0b0802e376890fcfbdfc96e5a)
> Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya
> Copyright (C) 1993 Giuseppe Attardi
> Copyright (C) 2000 Juan J. Garcia-Ripoll
> ECL is free software, and you are welcome to redistribute it
> under certain conditions; see file 'Copyright' for details.
> Type :h for Help.
> Top level in: #<process TOP-LEVEL>.
>> (load ".clrc")
>
> ;;; Loading #P"/home/didier/.clrc"
> ;;; Loading "/usr/local/share/common-lisp/source/asdf/build/asdf.lisp"
>
> Condition of type: SIMPLE-ERROR
> Cannot delete the directory #P"/home/didier/.cache/common-lisp/ecl-12.7.1-52ca46e0-linux-x86/usr/local/share/common-lisp/source/asdf/build/asdf.fas".
> C library explanation: No such file or directory.
> Available restarts:
>
> 1. (RETRY) Retry compiling #<cl-source-file "asdf" "build" "asdf">.
> 2. (ACCEPT) Continue, treating compiling #<cl-source-file "asdf" "build" "asdf"> as having been successful.
> 3. (RESTART-TOPLEVEL) Go back to Top-Level REPL.
>
> Broken at UIOP/FILESYSTEM:DELETE-FILE-IF-EXISTS. In: #<process TOP-LEVEL>.
> File: #P"/usr/local/share/common-lisp/source/asdf/build/asdf.lisp" (Position #139589)
>>> :b
>
> Backtrace:
> > UIOP/FILESYSTEM:DELETE-FILE-IF-EXISTS
> > uiop/lisp-build:compile-file*
> > lambda
> > uiop/utility:call-with-muffled-conditions
> > uiop/lisp-build:call-with-muffled-compiler-conditions
> > lambda
> > uiop/utility:call-function
> > uiop/lisp-build:call-around-hook
> > lambda
> > asdf/lisp-action:perform-lisp-compilation
> > lambda
> > lambda
> > lambda
> > lambda
> > lambda
> > lambda
> > call-next-method
> > lambda
> > asdf/cache:call-with-asdf-cache
> > asdf/find-system::call-with-system-definitions
> > lambda
> > lambda
> > call-next-method
> > lambda
> > asdf/cache:call-with-asdf-cache
> > asdf/find-system::call-with-system-definitions
> > lambda
> > asdf/operate:load-system
> > uiop/package:symbol-call
> > asdf/upgrade:upgrade-asdf
> > lambda
> > asdf/operate:oos
> > si:bytecodes [Evaluation of: (let ((*compile-print* nil) (*compile-verbose* nil) (*load-verbose* nil) (*load-print* nil)) (asdf/operate:oos 'asdf/lisp-action:load-op "quicklisp" :verbose nil))]
> > si:bytecodes [Evaluation of: (let ((quicklisp-init "/usr/local/share/common-lisp/source/quicklisp/setup.lisp")) (when (probe-file quicklisp-init) (load quicklisp-init)))]
> > si:bytecodes [Evaluation of: (load ".clrc")]
> > si:bytecodes [Evaluation of: (si:top-level t)]
>
>
More information about the asdf-devel
mailing list