[sorry if this is duplicate]
We bundle an ASDF version that's about a year old or so (1.130) with Clozure CL.
If I want to bundle a newer ASDF with CCL, what version should it be? There seem to have been half a dozen releases in the past couple of months. Would it be best to wait a little longer for things to settle down?
On Tue, 22 Sep 2009, R. Matthew Emerson wrote:
We bundle an ASDF version that's about a year old or so (1.130) with Clozure CL.
If I want to bundle a newer ASDF with CCL, what version should it be? There seem to have been half a dozen releases in the past couple of months. Would it be best to wait a little longer for things to settle down?
I'd wait a week or two; A-B-L was recently merged into ASDF, ECL has some changes to merge in, ABCL may as well, and I have a minor tweak to submit for Clisp on Windows and a SBCL change that needs discussion.
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?
Later, Daniel
Daniel Herring wrote:
On Tue, 22 Sep 2009, R. Matthew Emerson wrote:
We bundle an ASDF version that's about a year old or so (1.130) with Clozure CL.
If I want to bundle a newer ASDF with CCL, what version should it be? There seem to have been half a dozen releases in the past couple of months. Would it be best to wait a little longer for things to settle down?
I'd wait a week or two; A-B-L was recently merged into ASDF, ECL has some changes to merge in, ABCL may as well, and I have a minor tweak to submit for Clisp on Windows and a SBCL change that needs discussion.
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?
It's always bothered me a little to use REQUIRE and PROVIDE anyway, on aesthetic grounds, since they are officially deprecated.
best, r
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
On Sep 23, 2009, at 2:17 AM, Daniel Herring wrote:
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?
Right now, there's code in the CCL trunk that uses ASDF to provide modules.
http://trac.clozure.com/openmcl/changeset/12260
I would certainly prefer to see something like that in ASDF itself, rather than having code in CCL looking up symbols at run-time.
If that is added to ASDF (which would be fine with me), I would like for the user to have some sort of way to tell ASDF not to provide modules. That could be via a function, a special variable, whatever. The user's init file could contain something like this:
(require 'asdf) (asdf:provide-modules) ;or some better name ;; or else (setq asdf:*provide-modules* nil) ;or whatever
If it does it automatically, I would prefer to see MODULE-PROVIDE-ASDF added to the end of CCL:*MODULE-PROVIDER-FUNCTIONS* rather than to the front.
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.
Hi,
As others have pointed out, there is some current foment which will, I hope, die down once I find some time to do some polishing (this weekend?).
I think it makes sense to hook into provide/require (even though I agree with Robert that I'd rather not use them because they are deprecated unless, of course, some magic committee is going to undeprecate them!?) and if CLL already does that, then moving this to ASDF would be a-good-thing.
On Sep 22, 2009, at 3:16 PM, R. Matthew Emerson wrote:
[sorry if this is duplicate]
We bundle an ASDF version that's about a year old or so (1.130) with Clozure CL.
If I want to bundle a newer ASDF with CCL, what version should it be? There seem to have been half a dozen releases in the past couple of months. Would it be best to wait a little longer for things to settle down?
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter
Gary King wrote:
Hi,
As others have pointed out, there is some current foment which will, I hope, die down once I find some time to do some polishing (this weekend?).
I think it makes sense to hook into provide/require (even though I agree with Robert that I'd rather not use them because they are deprecated unless, of course, some magic committee is going to undeprecate them!?) and if CLL already does that, then moving this to ASDF would be a-good-thing.
Agreed. But I think James is right --- this must be controlled by a variable and not by *features*.
cheers, r
On Sep 22, 2009, at 3:16 PM, R. Matthew Emerson wrote:
[sorry if this is duplicate]
We bundle an ASDF version that's about a year old or so (1.130) with Clozure CL.
If I want to bundle a newer ASDF with CCL, what version should it be? There seem to have been half a dozen releases in the past couple of months. Would it be best to wait a little longer for things to settle down?
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
-- Gary Warren King, metabang.com Cell: (413) 559 8738 Fax: (206) 338-4052 gwkkwg on Skype * garethsan on AIM * gwking on twitter
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel