[asdf-devel] always load/compile from sources.

Faré fahree at gmail.com
Fri Mar 16 19:20:33 UTC 2012


Dear Pascal,

sorry for a slow reply.

If you want something to only load from source, you'll have to do
something like:

(defclass asdf::uncompiled-cl-source-file (cl-source-file) ())
(defmethod perform-op ((op load-op) (c asdf::uncompiled-cl-source-file))
  (perform-op (make-instance 'load-source-op) c))
(defmethod perform-op ((op compile-op) (c asdf::uncompiled-cl-source-file))
  (values))
(defmethod output-files ((op compile-op) (c asdf::uncompiled-cl-source-file))
  nil)
(defmethod input-files ((op load-op) (c asdf::uncompiled-cl-source-file))
  (input-files (make-instance 'load-source-op) c))

You can afterwards have a defsystem form that uses
:uncompiled-cl-source-file as your component type.

Wholly untested. Hope this helps.

Now, if your problem is conditional dependency, I believe the whole
idea is bunk.
I recommend instead that you should use asdf::find-symbol*
to detect at runtime whether the dependency is present.
Otherwise, you'll have weird results when the dependency is loaded
after the conditional thing was evaluated to the negative.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
The common argument that crime is caused by poverty
is a kind of slander on the poor.
	— H. L. Mencken




More information about the asdf-devel mailing list