[asdf-devel] updating ccl's bundled asdf
Daniel Herring
dherring at tentpost.com
Wed Sep 23 06:17:46 UTC 2009
On Wed, 23 Sep 2009, Robert Goldman wrote:
> Daniel Herring wrote:
>> On the CCL front, I have an old ccl-init.lisp that contained
>>
>> ;;; Hook ASDF into REQUIRE
>> (defun asdf::module-provide-asdf (name)
>> (handler-bind ((style-warning #'muffle-warning))
>> (let* ((asdf::*verbose-out* (make-broadcast-stream))
>> (system (asdf:find-system name nil)))
>> (when system
>> (asdf:operate 'asdf:load-op name)
>> t))))
>> (pushnew 'asdf::module-provide-asdf *module-provider-functions*)
>>
>> I forget where I found this. What do you think about putting (something
>> like) this into mainline ASDF?
>
> I'm out of town at a conference, and am not able to check this right
> now, but I would suggest we proceed with caution here. I use Allegro a
> lot and I know that they have already hooked require into their
> proprietary extensions. I don't have any idea what would happen if we
> were to jump in there.
>
> I also don't know how portable the means are to inject ASDF into
> require. *MODULE-PROVIDER-FUNCTIONS* isn't ANSI CL, is it?
In mainline ASDF, the above code snippet would be conditioned to only
activate on CCL. If an equivalent is possible for Allegro, it would
supplement the built-in methods, not replace them.
> It's always bothered me a little to use REQUIRE and PROVIDE anyway, on
> aesthetic grounds, since they are officially deprecated.
IMO, REQUIRE and PROVIDE are a better API than asdf:do-something. The
former are conceptually extensible (but unfortunately abandoned by ANSI);
well-defined replacements could allow defsystems like ASDF to peacefully
coexist with each other.
Enjoy your conference,
Daniel
More information about the asdf-devel
mailing list