[asdf-devel] Semantic of ASDF Dependencies

Benjamin Benninghofen Benjamin.Benninghofen at eads.com
Tue Jul 6 09:08:52 UTC 2010

Assume we have files "packages" "macros" "classes" "methods" "functions"
and we want the following dependencies:

1. In order to compile or load any of the other files the file
   "packages.fasl" must be loaded.

2. In order to compile or load "methods" the file "classes.fasl"
   must be loaded.

3. The file "macros" contains macros used in "methods" and "functions"
   and hence "macros.fasl" must be loaded before any of these 2 files
   is compiled or loaded. Furthermore when "macros" is changed also
   "methods" and "functions" have to be recompiled even if they are

4. There shall be no more dependencies, i.e. when a file different from
   "macros" is changed, only this file shall be recompiled.

With the Symbolics System Construction Tool (SCT) one would use
(:USES-DEFINITIONS-FROM macros) for methods and functions
and (:IN-ORDER-TO (:COMPILE :LOAD) (:LOAD packages ...)) for the
other dependencies.

(asdf:defsystem :test1
    :description "Test Dependency Processing"
     (:file "packages")
     (:file "macros"
        :in-order-to ((asdf:compile-op (asdf:load-op "packages"))
              (asdf:load-op (asdf:load-op "packages"))))
     (:file "classes"
        :in-order-to ((asdf:compile-op (asdf:load-op "packages"))
              (asdf:load-op (asdf:load-op "packages"))))
     (:file "methods"
        :depends-on ("macros")
        :in-order-to ((asdf:compile-op (asdf:load-op "packages" "classes"))
              (asdf:load-op (asdf:load-op "packages" "classes"))))
     (:file "functions"
        :depends-on ("macros")
        :in-order-to ((asdf:compile-op (asdf:load-op "packages"))
              (asdf:load-op (asdf:load-op "packages"))))

Unfortunately this does not work. All of the ASDF dependencies
:DEPENDS-ON and :IN-ORDER-TO seem to behave like the SCT 

For example when "classes" is changed it will recompile "methods" too.
Is there anything in ASDF that provides the functionality of the SCT 

Benjamin Benninghofen

Defence & Security
Military Air Systems 
Application Software and Processes - OPEM22

Rechliner Straße
85077 Manching - Germany
Telephone: +49 (0) 8459 81 78125 
Telephone: +49 (0) 89607 78125

Fax: +49 (0) 8459 81 78105
e-Mail: Benjamin.Benninghofen at eads.com

EADS Deutschland GmbH
Registered Office: Ottobrunn
District Court of Munich HRB 107 648
Chairman of the Supervisory Board: Dr. Thomas Enders
Managing Directors: Dr. Stefan Zoller (chairman), Michael Hecht

NOTICE: This message, together with any attachments, may contain privileged
and/or confidential information. If you have received this e-mail in error
or are not an intended recipient, you may not use, reproduce, disseminate or
distribute it; do not open nor save any attachments, delete it immediately from
your system and notify the sender promptly by e- mail that you have done so. 
Thank you.

More information about the asdf-devel mailing list