[Ecls-list] ASDF redesign

Dustin Long dlong at progmatism.com
Tue May 13 14:52:49 UTC 2008


I was running into this same problem. It's caused by the fact that the
"output-files" override with "load-op" defined in adsf-ecl.lisp returns
[file].fas, which causes "operation-done-p" to assume the load has already
occurred as long as the [file].fas exists. "output-files" should always
return nil.

As a workaround, you can erase the contents of asdf-ecl.lisp before
building, or compile-file asdf.lisp and use the result to replace your
installed asdf.fas.

On Tue, May 13, 2008 at 9:00 AM, Samium Gromoff <_deepfire at feelingofgreen.ru>
wrote:

>
> Good day Juan,
>
> I've encountered a rebuild problem that might be related to the
> load-at-once behavior.
>
> Testcase is as follows:
>
> a1.lisp: -------------------
>
> (defpackage a1)
>
> a1.asd: --------------------
>
> (defpackage :a1.system
>  (:use :cl :asdf))
>
> (in-package :a1.system)
>
> (defsystem :a1
>  :depends-on ()
>  :components
>  ((:file "a1")))
>
> a2.lisp: -------------------
>
> (defpackage a2
>  (:use :a1))
>
> a2.asd: --------------------
>
> (defpackage :a2.system
>  (:use :cl :asdf))
>
> (in-package :a2.system)
>
> (defsystem :a2
>  :depends-on (:a1)
>  :components
>  ((:file "a2")))
>
>
> With that in place we perform the following sequence:
>
> 1. The first, successful build:
>
>  ecl -eval '(require :asdf)' -eval '(asdf:make-build :a2 :type :fasl
> :monolithic t)' -eval '(quit)'
>
> 2. Simulation of change, either
>
>  sleep 2s; touch a2.lisp
>
> or
>
>  rm a2.o liba2.a a2.fasb
>
>
> 3. Problem point:
>
> deepfire at canopus:~/local$ ecl -eval '(require :asdf)' -eval
> '(asdf:make-build :a2 :type :fasl :monolithic t)' -eval '(quit)'
> ;;; Loading #P"/usr/lib/ecl/asdf.fas"
> ;;; Loading #P"/usr/lib/ecl/cmp.fas"
> ;;; Loading #P"/usr/lib/ecl/sysfun.lsp"
> ; loading system definition from a2.asd into #<ASDF0 package>
> ;;; Loading "/mnt/ext/home/deepfire/local/a2.asd"
> ; registering #<SYSTEM :A2 138027488> as A2
> ; loading system definition from a1.asd into #<ASDF0 package>
> ;;; Loading "/mnt/ext/home/deepfire/local/a1.asd"
> ; registering #<SYSTEM :A1 138096640> as A1
> ;;; Compiling /mnt/ext/home/deepfire/local/a2.lisp.
> ;;; Compiling (SI::DODEFPACKAGE "A2" ...).
> ;;; The form (SI::DODEFPACKAGE "A2" 'NIL NIL '("A1") 'NIL 'NIL 'NIL 'NIL
> 'NIL 'NIL) was not evaluated successfully.
> ;;; You are recommended to compile again.
> An error occurred during initialization:
> There exists no package with name "A1".
>
>
> regards, Samium Gromoff
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Ecls-list mailing list
> Ecls-list at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ecls-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20080513/6dfab36e/attachment.html>


More information about the ecl-devel mailing list