[asdf-devel] dependency bug?

Robert Brown robert.brown at gmail.com
Sat Jan 23 00:20:18 UTC 2010


ASDF is behaving in a way I find mysterious.  Maybe I've found a
bug, but more likely I just don't understand ASDF dependencies.

To demonstrate the problem, create the three files below.

==========
bug.asd
==========

    (cl:in-package #:common-lisp-user)

    (defpackage #:bug-system
      (:use #:common-lisp #:asdf))

    (in-package #:bug-system)

    (defsystem bug
      :components
      ((:cl-source-file "bug1")
       (:cl-source-file "bug2"
        :in-order-to ((load-op (load-op "bug1"))
                      (compile-op (load-op "bug1"))))))

==========
bug1.lisp
==========

  (defun bug1 ())

==========
bug2.lisp
==========

  (defun bug2())

==========

Execute the following:

  (load "bug.asd")
  (let ((*load-verbose* t)) (asdf:operate 'asdf:load-op 'bug))

Next, exit your Lisp session, start up your Lisp environment
again and execute the two lines above for a second time.  ASDF
recompiles bug2.lisp.  I expect it to instead just load
bug2.fasl.

Can someone explain what's going on?

My example is intended to mirror the situation where you need to
have some in-line functions or macros loaded into the Lisp system
before another file can be compiled or loaded.  Maybe I should be
expressing this dependency differently to ASDF.

bob




More information about the asdf-devel mailing list