[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