[Bese-devel] Re: rfc2109

Lou Vanek vanek at acd.net
Mon Jun 26 21:54:37 UTC 2006


Attila Lendvai wrote:
> hi!
> 
> here's the case with rfc2109: it conditionally reads the 5am tests in
> its single lisp file with #+5am tests.
> 
> the trouble comes when a user loads rfc2109 with 5am already loaded
> (fasl gets compiled with 5am references) and later loads it when 5am
> is not loaded (fasl fails to load).
> 
> this seems to be rare at first look, but still many ucw users report this.
> 
> the usual solution for this is to create an rfc2109.test system in
> rfc2109.asd but it won't work with a single file project and too
> complicated for a project of this size anyway.
> 
> another solution would be if we could force asdf to always load
> rfc2109 from source and leave alone fasl's. anyone knows how to do
> that?

There are several ways of doing that with asdf. The simplest is to
use :load-source-op instead of :load-op.
Example:

(asdf:oos 'asdf:load-source-op :hello)

[at least on asdf revision 1.98 it works]



Here's another (more complicated) example
(by Gary King):

(defclass load-only-file-mixin ()
    ())

(defclass load-only-cl-source-file (load-only-file-mixin cl-source-file)
    ())

(defmethod perform ((op compile-op) (component load-only-file-mixin))
    nil)

(defmethod perform ((op load-op) (component load-only-cl-source-file))
    (load (component-pathname component)))

(defsystem asdf-binary-locations
    :version "0.1"
    :author "Gary Warren King <gwking at metabang.com>"
    :maintainer "Gary Warren King <gwking at metabang.com>"
    :licence "MIT Style License"
    :description "Put compiled Lisp files in their places."

    :components ((:module
                  "dev"
                  :components ((:load-only-cl-source-file "main")

                               (:static-file "notes.text")))

                 (:module
                  "website"
                  :components ((:module "source"
                                        :components ((:static-file
"index.lml")))))))



> until it's properly resolved i've pushed an UNDO of my patch that
> added 5am unconditionally to the dependencies. this will render the
> box-set working again except the situation described above.
> 




More information about the bese-devel mailing list