[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