Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
...
(ensure-shadow (package symbols) (shadow symbols package))
(ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern)
(ensure-shadow p shadow)
(ensure-export p export) p))) (ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf
#:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname
#-:LISPWORKS #:getenv
#:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize)) (ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '()
:export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
... (ensure-shadow (package symbols) (shadow symbols package)) (ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) p))) (ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif #-:LISPWORKS #:appendf #:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname #-:LISPWORKS #:getenv #:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize)) (ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*) :shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '() :export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
I beg to differ... I simply loaded ASDF into the boot-up configuration of LW, which happens to be in package LW-USER. There is no overt (:USE :LISPWORKS) anywhere in sight, and certainly not in the ASDF source code.
So the fact is, I already have :LISPWORKS in use, and I have no choice about the matter during initial bootup.
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
... (ensure-shadow (package symbols) (shadow symbols package)) (ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) p)))
(ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf #:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname #-:LISPWORKS #:getenv #:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize))
(ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '() :export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
... (ensure-shadow (package symbols) (shadow symbols package)) (ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) p)))
(ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf #:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname #-:LISPWORKS #:getenv #:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize))
(ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '() :export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl-user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
...
(ensure-shadow (package symbols) (shadow symbols package))
(ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern)
(ensure-shadow p shadow)
(ensure-export p export) p))) (ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf
#:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname
#-:LISPWORKS #:getenv
#:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize)) (ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '()
:export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL-USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl-user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
... (ensure-shadow (package symbols) (shadow symbols package)) (ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) p)))
(ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf #:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname #-:LISPWORKS #:getenv #:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize))
(ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '() :export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL-USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl-user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
... (ensure-shadow (package symbols) (shadow symbols package)) (ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) p)))
(ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf #:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname #-:LISPWORKS #:getenv #:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize))
(ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '() :export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
On 2010-02-26, at 16:17 , Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL-USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
if it is necessary, something is out-of-order.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
in particular, - when does an error actually happen? - what is the error? - what is the "another" package, which already exported symbols with the same name? - what visibility relations exist between that package and the package in use at the point of the error. - between that package and :asdf, :asdf-extensions, :cl-user, :cl? - between the package in use and those four packages?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl- user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http:// fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
... (ensure-shadow (package symbols) (shadow symbols package)) (ensure-package (name &key nicknames use export
unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern)
(ensure-shadow p shadow) (ensure-export p export) p)))
(ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf #:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname #-:LISPWORKS #:getenv #:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-
directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize)) (ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '() :export '(#:defsystem #:oos #:operate #:find-system #:run-shell-
command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
good evening;
as an aside, in light of these changes.
? is there some reason that they are not coded to expand at compile time into a second phase of operations in terms of strings. that two-phase method gets the symbols out of the image earlier as they're not needed in fasls. as a side-effect, #: idiom would not be necessary.
? in terms of self-documentation the "ensure-" terms are unhappy. in several cases the semantics is "-exactly" or "-only" rather than "ensure-".
On 2010-02-26, at 16:17 , Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
[...]
[...]
...
On 2/26/10 Feb 26 -10:17 AM, james anderson wrote:
good evening;
as an aside, in light of these changes.
? is there some reason that they are not coded to expand at compile time into a second phase of operations in terms of strings. that two-phase method gets the symbols out of the image earlier as they're not needed in fasls. as a side-effect, #: idiom would not be necessary.
I suspect that this may be necessary in order to make this work on ACL in "modern," case-sensitive mode. Using the symbol-name of an uninterned symbol is usually the way I code for portability across mlisp and other lisps.
Note that you can't reliably just do this at compile-time, since you can toggle the case mode in ACL.
best, r
? in terms of self-documentation the "ensure-" terms are unhappy. in several cases the semantics is "-exactly" or "-only" rather than "ensure-".
On 2010-02-26, at 16:17 , Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
[...]
[...]
...
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
hmmm...
On 2010-02-26, at 17:42 , Robert Goldman wrote:
On 2/26/10 Feb 26 -10:17 AM, james anderson wrote:
good evening;
as an aside, in light of these changes.
? is there some reason that they are not coded to expand at compile time into a second phase of operations in terms of strings. that two-phase method gets the symbols out of the image earlier as they're not needed in fasls. as a side-effect, #: idiom would not be necessary.
I suspect that this may be necessary in order to make this work on ACL in "modern," case-sensitive mode. Using the symbol-name of an uninterned symbol is usually the way I code for portability across mlisp and other lisps.
Note that you can't reliably just do this at compile-time, since you can toggle the case mode in ACL.
you mean, you actually build with one case mode and load into a lisp which is runnign with another. and the fasl loader adjust the symbol names? i have used "modern" acl's but, yes, that order of pain never occurred to me.
when life gets boring, does one toggle the case-mode of running production systems?
On 2/26/10 Feb 26 -10:52 AM, james anderson wrote:
hmmm...
On 2010-02-26, at 17:42 , Robert Goldman wrote:
On 2/26/10 Feb 26 -10:17 AM, james anderson wrote:
good evening;
as an aside, in light of these changes.
? is there some reason that they are not coded to expand at compile time into a second phase of operations in terms of strings. that two-phase method gets the symbols out of the image earlier as they're not needed in fasls. as a side-effect, #: idiom would not be necessary.
I suspect that this may be necessary in order to make this work on ACL in "modern," case-sensitive mode. Using the symbol-name of an uninterned symbol is usually the way I code for portability across mlisp and other lisps.
Note that you can't reliably just do this at compile-time, since you can toggle the case mode in ACL.
you mean, you actually build with one case mode and load into a lisp which is runnign with another. and the fasl loader adjust the symbol names? i have used "modern" acl's but, yes, that order of pain never occurred to me.
when life gets boring, does one toggle the case-mode of running production systems?
One certainly can, if one is the sort of person for whom hang-gliding has gotten too boring.
"The functions set-case-mode and convert-mixed-case-symbols, and two variables *current-case-mode* and *ignore-package-name-case* are provided for controlling and sensing case modes." from the ACL docs....
best, r
Hi Guys,
I think I'm beginning to glean your sense of confusion here. Let me just have you try loading ASDF.lisp in a freshly booted LW6 image and see for yourselves.
The ASDF.lisp that I am using was take off the web last night,
;;; -- LICENSE START ;;; (This is the MIT / X Consortium license as taken from ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009)
For APPENDF and GET-ENV, if I don't conditionalize to *not* export those symbols from your list of exports, then I get the error message:
"Redefining xxx visible from Lispworks"
The same message appears once APPENDF and GET-ENV have been dealt with, regarding LOAD-SYSTEM, COMPILE-SYSTEM, and DEFSYSTEM. In those cases, however, you really want your own definitions to be in effect, and not just inherit behavior that already exists from Lispworks.
What can I say here? The LW6 system behaves the way it does, right or wrong, and my changes seemed to be the least needed to get things rolling again.
- DM
On Feb 26, 2010, at 08:17 AM, Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL-USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl-user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
... (ensure-shadow (package symbols) (shadow symbols package)) (ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) p)))
(ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf #:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname #-:LISPWORKS #:getenv #:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize))
(ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '()
:export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
On 2/26/10 Feb 26 -10:46 AM, David McClain wrote:
Hi Guys,
I think I'm beginning to glean your sense of confusion here. Let me just have you try loading ASDF.lisp in a freshly booted LW6 image and see for yourselves.
For those of us who aren't lispworks users, it would help if you were to give us a transcript with error messages and backtrace.
I just went to the lispworks.com website, and LW version 6 is not available in a free (personal) edition.
So we really need you to send us (or better yet, post into a launchpad ticket) such a transcript.
I will try pulling LW 5.1, but if that isn't going to show the bug, I'd like to save myself the trouble.
The ASDF.lisp that I am using was take off the web last night,
;;; -- LICENSE START ;;; (This is the MIT / X Consortium license as taken from ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009)
For APPENDF and GET-ENV, if I don't conditionalize to *not* export those symbols from your list of exports, then I get the error message:
"Redefining xxx visible from Lispworks"
The same message appears once APPENDF and GET-ENV have been dealt with, regarding LOAD-SYSTEM, COMPILE-SYSTEM, and DEFSYSTEM. In those cases, however, you really want your own definitions to be in effect, and not just inherit behavior that already exists from Lispworks.
What can I say here? The LW6 system behaves the way it does, right or wrong, and my changes seemed to be the least needed to get things rolling again.
- DM
On Feb 26, 2010, at 08:17 AM, Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL-USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl-user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
> Hi, > > I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them) > > ... > > (ensure-shadow (package symbols) > (shadow symbols package)) > > (ensure-package (name &key nicknames use export unintern shadow) > (let* ((p (ensure-exists name nicknames))) > (ensure-use p use) > (ensure-unintern p unintern) > > (ensure-shadow p shadow) > > (ensure-export p export) > p))) > (ensure-package > ':asdf-utilities > :nicknames '(#:asdf-extensions) > :use '(#:common-lisp) > :export > '(#:absolute-pathname-p > #:aif > > #-:LISPWORKS #:appendf > > #:asdf-message > #:coerce-name > #:directory-pathname-p > #:ends-with > #:ensure-directory-pathname > > #-:LISPWORKS #:getenv > > #:get-uid > #:length=n-p > #:make-collector > #:pathname-directory-pathname > #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname > #:read-file-forms > #:remove-keys > #:remove-keyword > #:resolve-symlinks > #:split > #:component-name-to-pathname-components > #:system-registered-p > #:truenamize)) > (ensure-package > ':asdf > :use '(:common-lisp :asdf-utilities) > :unintern '(#:*asdf-revision*) > > :shadow #+:LISPWORKS '(#:load-system > #:compile-system > #:defsystem) > #-:LISPWORKS '() > > :export > '(#:defsystem #:oos #:operate #:find-system #:run-shell-command > #:system-definition-pathname #:find-component ; miscellaneous > #:compile-system #:load-system #:test-system > #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
good evening;
On 2010-02-26, at 17:46 , David McClain wrote:
Hi Guys,
I think I'm beginning to glean your sense of confusion here. Let me just have you try loading ASDF.lisp in a freshly booted LW6 image and see for yourselves.
send me one, and i will.
The ASDF.lisp that I am using was take off the web last night,
;;; -- LICENSE START ;;; (This is the MIT / X Consortium license as taken from ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009)
For APPENDF and GET-ENV, if I don't conditionalize to *not* export those symbols from your list of exports, then I get the error message:
"Redefining xxx visible from Lispworks"
The same message appears once APPENDF and GET-ENV have been dealt with, regarding LOAD-SYSTEM, COMPILE-SYSTEM, and DEFSYSTEM. In those cases, however, you really want your own definitions to be in effect, and not just inherit behavior that already exists from Lispworks.
What can I say here? The LW6 system behaves the way it does, right or wrong, and my changes seemed to be the least needed to get things rolling again.
this approach is suspect. it may be, that it succeeds sufficiently to get you past the stumbling point, but it should not be committed to a release, as it is a symptom of some other problem which would remain unresolved and which could well reappear in variations.
given just the information in the asdf definitions, the suspicion arises, that either the lispworks release, lispworks site installation, or the individual runtime has arranged package and symbol visibility such that symbols from some lispworks extension package are visible through the common-lisp package, as that is the only package from which :asdf-extensions can inherit symbols. the first two would surprise me, but without a runtime one cannot say.
what do (package-use-list :asdf-utilities) (symbol-package (find-symbol (string :appendf) :asdf-utilities)) yield? without the patches.
in general, such a problem is to be resolved at the point which sets the stage for the conflict, not in the asdf extension package definition. a more specific answer requires more information about the state of the runtime at the point of the redefinition.
- DM
On Feb 26, 2010, at 08:17 AM, Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL- USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl- user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http:// fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
> Hi, > > I just installed the latest available source for ASDF and had > to make a few minor changes to the way the ASDF Package was > being defined, for compatibility with Lispworks 6.0: (changes > highlighted in red -- if you can see them) > > ... > > (ensure-shadow (package symbols) > (shadow symbols package)) > > (ensure-package (name &key nicknames use export > unintern shadow) > (let* ((p (ensure-exists name nicknames))) > (ensure-use p use) > (ensure-unintern p unintern) > > (ensure-shadow p shadow) > > (ensure-export p export) > p))) > (ensure-package > ':asdf-utilities > :nicknames '(#:asdf-extensions) > :use '(#:common-lisp) > :export > '(#:absolute-pathname-p > #:aif > > #-:LISPWORKS #:appendf > > #:asdf-message > #:coerce-name > #:directory-pathname-p > #:ends-with > #:ensure-directory-pathname > > #-:LISPWORKS #:getenv > > #:get-uid > #:length=n-p > #:make-collector > #:pathname-directory-pathname > #:pathname-sans-name+type ;; deprecated. Use pathname- > directory-pathname > #:read-file-forms > #:remove-keys > #:remove-keyword > #:resolve-symlinks > #:split > #:component-name-to-pathname-components > #:system-registered-p > #:truenamize)) > (ensure-package > ':asdf > :use '(:common-lisp :asdf-utilities) > :unintern '(#:*asdf-revision*) > > :shadow #+:LISPWORKS '(#:load-system > #:compile-system > #:defsystem) > #-:LISPWORKS '() > > :export > '(#:defsystem #:oos #:operate #:find-system #:run-shell- > command > #:system-definition-pathname #:find-component ; > miscellaneous > #:compile-system #:load-system #:test-system > #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
CL-USER 14 > (package-use-list (find-package :asdf)) (#<The ASDF-UTILITIES package, 0/64 internal, 20/64 external> #<The COMMON-LISP package, 2/4 internal, 978/1024 external> #<The HARLEQUIN-COMMON-LISP package, 0/4 internal, 266/512 external> #<The LISPWORKS package, 65/128 internal, 225/256 external>)
CL-USER 15 > (package-use-list (find-package :asdf-utilities)) (#<The COMMON-LISP package, 2/4 internal, 978/1024 external> #<The HARLEQUIN-COMMON-LISP package, 0/4 internal, 266/512 external> #<The LISPWORKS package, 65/128 internal, 225/256 external>)
On Feb 26, 2010, at 10:09 AM, james anderson wrote:
good evening;
On 2010-02-26, at 17:46 , David McClain wrote:
Hi Guys,
I think I'm beginning to glean your sense of confusion here. Let me just have you try loading ASDF.lisp in a freshly booted LW6 image and see for yourselves.
send me one, and i will.
The ASDF.lisp that I am using was take off the web last night,
;;; -- LICENSE START ;;; (This is the MIT / X Consortium license as taken from ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009)
For APPENDF and GET-ENV, if I don't conditionalize to *not* export those symbols from your list of exports, then I get the error message:
"Redefining xxx visible from Lispworks"
The same message appears once APPENDF and GET-ENV have been dealt with, regarding LOAD-SYSTEM, COMPILE-SYSTEM, and DEFSYSTEM. In those cases, however, you really want your own definitions to be in effect, and not just inherit behavior that already exists from Lispworks.
What can I say here? The LW6 system behaves the way it does, right or wrong, and my changes seemed to be the least needed to get things rolling again.
this approach is suspect. it may be, that it succeeds sufficiently to get you past the stumbling point, but it should not be committed to a release, as it is a symptom of some other problem which would remain unresolved and which could well reappear in variations.
given just the information in the asdf definitions, the suspicion arises, that either the lispworks release, lispworks site installation, or the individual runtime has arranged package and symbol visibility such that symbols from some lispworks extension package are visible through the common-lisp package, as that is the only package from which :asdf-extensions can inherit symbols. the first two would surprise me, but without a runtime one cannot say.
what do (package-use-list :asdf-utilities) (symbol-package (find-symbol (string :appendf) :asdf-utilities)) yield? without the patches.
in general, such a problem is to be resolved at the point which sets the stage for the conflict, not in the asdf extension package definition. a more specific answer requires more information about the state of the runtime at the point of the redefinition.
- DM
On Feb 26, 2010, at 08:17 AM, Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL- USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl- user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http:// fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
> Hi, David > > I don't think it's necessary to make ASDF and LISPWORKS two > packages live together. What you met can only happen when you > try to defined a package which use above two packages at the > same time: > > (defpackage xxx > (:use :cl :asdf :lispworks)) > > I don't think you have any good reason to use such a package. > > Regards, > > Chun Tian (binghe) > > 在 2010-2-26,15:44, David McClain 写道: > >> Hi, >> >> I just installed the latest available source for ASDF and had >> to make a few minor changes to the way the ASDF Package was >> being defined, for compatibility with Lispworks 6.0: (changes >> highlighted in red -- if you can see them) >> >> ... >> >> (ensure-shadow (package symbols) >> (shadow symbols package)) >> >> (ensure-package (name &key nicknames use export >> unintern shadow) >> (let* ((p (ensure-exists name nicknames))) >> (ensure-use p use) >> (ensure-unintern p unintern) >> >> (ensure-shadow p shadow) >> >> (ensure-export p export) >> p))) >> (ensure-package >> ':asdf-utilities >> :nicknames '(#:asdf-extensions) >> :use '(#:common-lisp) >> :export >> '(#:absolute-pathname-p >> #:aif >> >> #-:LISPWORKS #:appendf >> >> #:asdf-message >> #:coerce-name >> #:directory-pathname-p >> #:ends-with >> #:ensure-directory-pathname >> >> #-:LISPWORKS #:getenv >> >> #:get-uid >> #:length=n-p >> #:make-collector >> #:pathname-directory-pathname >> #:pathname-sans-name+type ;; deprecated. Use pathname- >> directory-pathname >> #:read-file-forms >> #:remove-keys >> #:remove-keyword >> #:resolve-symlinks >> #:split >> #:component-name-to-pathname-components >> #:system-registered-p >> #:truenamize)) >> (ensure-package >> ':asdf >> :use '(:common-lisp :asdf-utilities) >> :unintern '(#:*asdf-revision*) >> >> :shadow #+:LISPWORKS '(#:load-system >> #:compile-system >> #:defsystem) >> #-:LISPWORKS '() >> >> :export >> '(#:defsystem #:oos #:operate #:find-system #:run-shell- >> command >> #:system-definition-pathname #:find-component ; >> miscellaneous >> #:compile-system #:load-system #:test-system >> #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
David, thanks a lot for your help and your patience!
That was a bug I just introduced in ASDF: I forgot to put an explicit :use in my (make-package ...), naively thinking it would lead to an empty use-list as in SBCL, but the CLHS says: http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_make-p... use---a list of package designators. The default is implementation-defined. and in Lispworks, the default legitimately is COMMON-LISP HARLEQUIN-COMMON-LISP LISPWORKS.
It should be fixed in 1.627. Can you give it a try?
My sincere apologies for the inconvenience.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Atheism is a non-prophet organization.
On 26 February 2010 12:17, David McClain dbm@refined-audiometrics.com wrote:
CL-USER 14 > (package-use-list (find-package :asdf)) (#<The ASDF-UTILITIES package, 0/64 internal, 20/64 external> #<The COMMON-LISP package, 2/4 internal, 978/1024 external> #<The HARLEQUIN-COMMON-LISP package, 0/4 internal, 266/512 external> #<The LISPWORKS package, 65/128 internal, 225/256 external>)
CL-USER 15 > (package-use-list (find-package :asdf-utilities)) (#<The COMMON-LISP package, 2/4 internal, 978/1024 external> #<The HARLEQUIN-COMMON-LISP package, 0/4 internal, 266/512 external> #<The LISPWORKS package, 65/128 internal, 225/256 external>)
On Feb 26, 2010, at 10:09 AM, james anderson wrote:
good evening;
On 2010-02-26, at 17:46 , David McClain wrote:
Hi Guys,
I think I'm beginning to glean your sense of confusion here. Let me just have you try loading ASDF.lisp in a freshly booted LW6 image and see for yourselves.
send me one, and i will.
The ASDF.lisp that I am using was take off the web last night,
;;; -- LICENSE START ;;; (This is the MIT / X Consortium license as taken from ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009)
For APPENDF and GET-ENV, if I don't conditionalize to *not* export those symbols from your list of exports, then I get the error message:
"Redefining xxx visible from Lispworks"
The same message appears once APPENDF and GET-ENV have been dealt with, regarding LOAD-SYSTEM, COMPILE-SYSTEM, and DEFSYSTEM. In those cases, however, you really want your own definitions to be in effect, and not just inherit behavior that already exists from Lispworks.
What can I say here? The LW6 system behaves the way it does, right or wrong, and my changes seemed to be the least needed to get things rolling again.
this approach is suspect. it may be, that it succeeds sufficiently to get you past the stumbling point, but it should not be committed to a release, as it is a symptom of some other problem which would remain unresolved and which could well reappear in variations.
given just the information in the asdf definitions, the suspicion arises, that either the lispworks release, lispworks site installation, or the individual runtime has arranged package and symbol visibility such that symbols from some lispworks extension package are visible through the common-lisp package, as that is the only package from which :asdf-extensions can inherit symbols. the first two would surprise me, but without a runtime one cannot say.
what do (package-use-list :asdf-utilities) (symbol-package (find-symbol (string :appendf) :asdf-utilities)) yield? without the patches.
in general, such a problem is to be resolved at the point which sets the stage for the conflict, not in the asdf extension package definition. a more specific answer requires more information about the state of the runtime at the point of the redefinition.
- DM
On Feb 26, 2010, at 08:17 AM, Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL- USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl- user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http:// fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com: > ... rather, in package :CL-USER, not :LW-USER. But apparently, > LISPWORKS is automatically being used in CL-USER... > > - DM > > On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote: > >> Hi, David >> >> I don't think it's necessary to make ASDF and LISPWORKS two >> packages live together. What you met can only happen when you >> try to defined a package which use above two packages at the >> same time: >> >> (defpackage xxx >> (:use :cl :asdf :lispworks)) >> >> I don't think you have any good reason to use such a package. >> >> Regards, >> >> Chun Tian (binghe) >> >> 在 2010-2-26,15:44, David McClain 写道: >> >>> Hi, >>> >>> I just installed the latest available source for ASDF and had >>> to make a few minor changes to the way the ASDF Package was >>> being defined, for compatibility with Lispworks 6.0: (changes >>> highlighted in red -- if you can see them) >>> >>> ... >>> >>> (ensure-shadow (package symbols) >>> (shadow symbols package)) >>> >>> (ensure-package (name &key nicknames use export >>> unintern shadow) >>> (let* ((p (ensure-exists name nicknames))) >>> (ensure-use p use) >>> (ensure-unintern p unintern) >>> >>> (ensure-shadow p shadow) >>> >>> (ensure-export p export) >>> p))) >>> (ensure-package >>> ':asdf-utilities >>> :nicknames '(#:asdf-extensions) >>> :use '(#:common-lisp) >>> :export >>> '(#:absolute-pathname-p >>> #:aif >>> >>> #-:LISPWORKS #:appendf >>> >>> #:asdf-message >>> #:coerce-name >>> #:directory-pathname-p >>> #:ends-with >>> #:ensure-directory-pathname >>> >>> #-:LISPWORKS #:getenv >>> >>> #:get-uid >>> #:length=n-p >>> #:make-collector >>> #:pathname-directory-pathname >>> #:pathname-sans-name+type ;; deprecated. Use pathname- >>> directory-pathname >>> #:read-file-forms >>> #:remove-keys >>> #:remove-keyword >>> #:resolve-symlinks >>> #:split >>> #:component-name-to-pathname-components >>> #:system-registered-p >>> #:truenamize)) >>> (ensure-package >>> ':asdf >>> :use '(:common-lisp :asdf-utilities) >>> :unintern '(#:*asdf-revision*) >>> >>> :shadow #+:LISPWORKS '(#:load-system >>> #:compile-system >>> #:defsystem) >>> #-:LISPWORKS '() >>> >>> :export >>> '(#:defsystem #:oos #:operate #:find-system #:run-shell- >>> command >>> #:system-definition-pathname #:find-component ; >>> miscellaneous >>> #:compile-system #:load-system #:test-system >>> #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Hello Rene,
Yes, indeed. I just downloaded from your GIT repository, version 1.627, and pulled out only the asdf.lisp file. Placed that in my /usr/local/Lisp/source directory, removed the previous FASL, and then tried booting up my LW6. Indeed, whatever you did fixed the former problems.
Thanks a lot.
Cheers,
Dr. David McClain dbm@refined-audiometrics.com
So now... while I have deep admiration for the package synthesis code shown in asdf.lisp, for curiosity, why? What is the problem you had with just using CL:DEFPACKAGE?
- DM
On Feb 26, 2010, at 11:21 AM, Faré wrote:
David, thanks a lot for your help and your patience!
That was a bug I just introduced in ASDF: I forgot to put an explicit :use in my (make-package ...), naively thinking it would lead to an empty use-list as in SBCL, but the CLHS says: http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_make-p... use---a list of package designators. The default is implementation-defined. and in Lispworks, the default legitimately is COMMON-LISP HARLEQUIN-COMMON-LISP LISPWORKS.
It should be fixed in 1.627. Can you give it a try?
My sincere apologies for the inconvenience.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Atheism is a non-prophet organization.
On 26 February 2010 12:17, David McClain dbm@refined-audiometrics.com wrote:
CL-USER 14 > (package-use-list (find-package :asdf)) (#<The ASDF-UTILITIES package, 0/64 internal, 20/64 external> #<The COMMON-LISP package, 2/4 internal, 978/1024 external> #<The HARLEQUIN-COMMON-LISP package, 0/4 internal, 266/512 external> #<The LISPWORKS package, 65/128 internal, 225/256 external>)
CL-USER 15 > (package-use-list (find-package :asdf-utilities)) (#<The COMMON-LISP package, 2/4 internal, 978/1024 external> #<The HARLEQUIN-COMMON-LISP package, 0/4 internal, 266/512 external> #<The LISPWORKS package, 65/128 internal, 225/256 external>)
On Feb 26, 2010, at 10:09 AM, james anderson wrote:
good evening;
On 2010-02-26, at 17:46 , David McClain wrote:
Hi Guys,
I think I'm beginning to glean your sense of confusion here. Let me just have you try loading ASDF.lisp in a freshly booted LW6 image and see for yourselves.
send me one, and i will.
The ASDF.lisp that I am using was take off the web last night,
;;; -- LICENSE START ;;; (This is the MIT / X Consortium license as taken from ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009)
For APPENDF and GET-ENV, if I don't conditionalize to *not* export those symbols from your list of exports, then I get the error message:
"Redefining xxx visible from Lispworks"
The same message appears once APPENDF and GET-ENV have been dealt with, regarding LOAD-SYSTEM, COMPILE-SYSTEM, and DEFSYSTEM. In those cases, however, you really want your own definitions to be in effect, and not just inherit behavior that already exists from Lispworks.
What can I say here? The LW6 system behaves the way it does, right or wrong, and my changes seemed to be the least needed to get things rolling again.
this approach is suspect. it may be, that it succeeds sufficiently to get you past the stumbling point, but it should not be committed to a release, as it is a symptom of some other problem which would remain unresolved and which could well reappear in variations.
given just the information in the asdf definitions, the suspicion arises, that either the lispworks release, lispworks site installation, or the individual runtime has arranged package and symbol visibility such that symbols from some lispworks extension package are visible through the common-lisp package, as that is the only package from which :asdf-extensions can inherit symbols. the first two would surprise me, but without a runtime one cannot say.
what do (package-use-list :asdf-utilities) (symbol-package (find-symbol (string :appendf) :asdf-utilities)) yield? without the patches.
in general, such a problem is to be resolved at the point which sets the stage for the conflict, not in the asdf extension package definition. a more specific answer requires more information about the state of the runtime at the point of the redefinition.
- DM
On Feb 26, 2010, at 08:17 AM, Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL- USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
> I don't understand. Do you mean that there is a problem when you > (load > "asdf") itself, or are you trying to (use-package :asdf) from cl- > user? > The latter is probably a bad idea, and wasn't supported so far > (so far > I know). > > [ François-René ÐVB Rideau | Reflection&Cybernethics | http:// > fare.tunes.org ] > Can anyone please squash this butterfly in Tokyo? I'm sick with > its flapping > wings changing the outcome of my life. > > > > > 2010/2/26 David McClain dbm@refined-audiometrics.com: >> ... rather, in package :CL-USER, not :LW-USER. But apparently, >> LISPWORKS is automatically being used in CL-USER... >> >> - DM >> >> On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote: >> >>> Hi, David >>> >>> I don't think it's necessary to make ASDF and LISPWORKS two >>> packages live together. What you met can only happen when you >>> try to defined a package which use above two packages at the >>> same time: >>> >>> (defpackage xxx >>> (:use :cl :asdf :lispworks)) >>> >>> I don't think you have any good reason to use such a package. >>> >>> Regards, >>> >>> Chun Tian (binghe) >>> >>> 在 2010-2-26,15:44, David McClain 写道: >>> >>>> Hi, >>>> >>>> I just installed the latest available source for ASDF and had >>>> to make a few minor changes to the way the ASDF Package was >>>> being defined, for compatibility with Lispworks 6.0: (changes >>>> highlighted in red -- if you can see them) >>>> >>>> ... >>>> >>>> (ensure-shadow (package symbols) >>>> (shadow symbols package)) >>>> >>>> (ensure-package (name &key nicknames use export >>>> unintern shadow) >>>> (let* ((p (ensure-exists name nicknames))) >>>> (ensure-use p use) >>>> (ensure-unintern p unintern) >>>> >>>> (ensure-shadow p shadow) >>>> >>>> (ensure-export p export) >>>> p))) >>>> (ensure-package >>>> ':asdf-utilities >>>> :nicknames '(#:asdf-extensions) >>>> :use '(#:common-lisp) >>>> :export >>>> '(#:absolute-pathname-p >>>> #:aif >>>> >>>> #-:LISPWORKS #:appendf >>>> >>>> #:asdf-message >>>> #:coerce-name >>>> #:directory-pathname-p >>>> #:ends-with >>>> #:ensure-directory-pathname >>>> >>>> #-:LISPWORKS #:getenv >>>> >>>> #:get-uid >>>> #:length=n-p >>>> #:make-collector >>>> #:pathname-directory-pathname >>>> #:pathname-sans-name+type ;; deprecated. Use pathname- >>>> directory-pathname >>>> #:read-file-forms >>>> #:remove-keys >>>> #:remove-keyword >>>> #:resolve-symlinks >>>> #:split >>>> #:component-name-to-pathname-components >>>> #:system-registered-p >>>> #:truenamize)) >>>> (ensure-package >>>> ':asdf >>>> :use '(:common-lisp :asdf-utilities) >>>> :unintern '(#:*asdf-revision*) >>>> >>>> :shadow #+:LISPWORKS '(#:load-system >>>> #:compile-system >>>> #:defsystem) >>>> #-:LISPWORKS '() >>>> >>>> :export >>>> '(#:defsystem #:oos #:operate #:find-system #:run-shell- >>>> command >>>> #:system-definition-pathname #:find-component ; >>>> miscellaneous >>>> #:compile-system #:load-system #:test-system >>>> #:compile-op #:load-op #:load-source-op >
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
We were using DEFPACKAGE until recently. However, we had "interesting" problems when upgrading from 1.604 to 1.620 or later, where I had renamed ASDF-EXTENSIONS to ASDF-UTILITIES with ASDF-EXTENSIONS as a nickname (as reported by tcr while using ecl). This was fixed by not using DEFPACKAGE, but rolling our own version of it. But that fix had a bug that hit you (plus others that apparently didn't).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] A nazi deathcamp survivor defined truth as follows: believing it does not increase your chance of dying.
On 26 February 2010 14:26, David McClain dbm@refined-audiometrics.com wrote:
So now... while I have deep admiration for the package synthesis code shown in asdf.lisp, for curiosity, why? What is the problem you had with just using CL:DEFPACKAGE?
- DM
On Feb 26, 2010, at 11:21 AM, Faré wrote:
David, thanks a lot for your help and your patience!
That was a bug I just introduced in ASDF: I forgot to put an explicit :use in my (make-package ...), naively thinking it would lead to an empty use-list as in SBCL, but the CLHS says: http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_make-p... use---a list of package designators. The default is implementation-defined. and in Lispworks, the default legitimately is COMMON-LISP HARLEQUIN-COMMON-LISP LISPWORKS.
It should be fixed in 1.627. Can you give it a try?
My sincere apologies for the inconvenience.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Atheism is a non-prophet organization.
On 26 February 2010 12:17, David McClain dbm@refined-audiometrics.com wrote:
CL-USER 14 > (package-use-list (find-package :asdf)) (#<The ASDF-UTILITIES package, 0/64 internal, 20/64 external> #<The COMMON-LISP package, 2/4 internal, 978/1024 external> #<The HARLEQUIN-COMMON-LISP package, 0/4 internal, 266/512 external> #<The LISPWORKS package, 65/128 internal, 225/256 external>)
CL-USER 15 > (package-use-list (find-package :asdf-utilities)) (#<The COMMON-LISP package, 2/4 internal, 978/1024 external> #<The HARLEQUIN-COMMON-LISP package, 0/4 internal, 266/512 external> #<The LISPWORKS package, 65/128 internal, 225/256 external>)
On Feb 26, 2010, at 10:09 AM, james anderson wrote:
good evening;
On 2010-02-26, at 17:46 , David McClain wrote:
Hi Guys,
I think I'm beginning to glean your sense of confusion here. Let me just have you try loading ASDF.lisp in a freshly booted LW6 image and see for yourselves.
send me one, and i will.
The ASDF.lisp that I am using was take off the web last night,
;;; -- LICENSE START ;;; (This is the MIT / X Consortium license as taken from ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009)
For APPENDF and GET-ENV, if I don't conditionalize to *not* export those symbols from your list of exports, then I get the error message:
"Redefining xxx visible from Lispworks"
The same message appears once APPENDF and GET-ENV have been dealt with, regarding LOAD-SYSTEM, COMPILE-SYSTEM, and DEFSYSTEM. In those cases, however, you really want your own definitions to be in effect, and not just inherit behavior that already exists from Lispworks.
What can I say here? The LW6 system behaves the way it does, right or wrong, and my changes seemed to be the least needed to get things rolling again.
this approach is suspect. it may be, that it succeeds sufficiently to get you past the stumbling point, but it should not be committed to a release, as it is a symptom of some other problem which would remain unresolved and which could well reappear in variations.
given just the information in the asdf definitions, the suspicion arises, that either the lispworks release, lispworks site installation, or the individual runtime has arranged package and symbol visibility such that symbols from some lispworks extension package are visible through the common-lisp package, as that is the only package from which :asdf-extensions can inherit symbols. the first two would surprise me, but without a runtime one cannot say.
what do (package-use-list :asdf-utilities) (symbol-package (find-symbol (string :appendf) :asdf-utilities)) yield? without the patches.
in general, such a problem is to be resolved at the point which sets the stage for the conflict, not in the asdf extension package definition. a more specific answer requires more information about the state of the runtime at the point of the redefinition.
- DM
On Feb 26, 2010, at 08:17 AM, Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote: > No, I take a stock LW6 system and want to load up the ASDF > package as soon as possible, so that I can then use ASDF to load > in systems. When I take a look at the PACKAGE-USE-LIST of CL- > USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS. > > Have a look at the very front of the asdf.lisp file --- it places > itself into package :CL-USER. So we are screwed up from the get go. > > All I did was conditionalilze exports of two symbols that were > already exported from another package and which performed > identical functionality, and then I added a section to the rather > elaborate package construction kit for ASDF to permit the > declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
> > - DM > > On Feb 26, 2010, at 07:31 AM, Faré wrote: > >> I don't understand. Do you mean that there is a problem when you >> (load >> "asdf") itself, or are you trying to (use-package :asdf) from cl- >> user? >> The latter is probably a bad idea, and wasn't supported so far >> (so far >> I know). >> >> [ François-René ÐVB Rideau | Reflection&Cybernethics | http:// >> fare.tunes.org ] >> Can anyone please squash this butterfly in Tokyo? I'm sick with >> its flapping >> wings changing the outcome of my life. >> >> >> >> >> 2010/2/26 David McClain dbm@refined-audiometrics.com: >>> ... rather, in package :CL-USER, not :LW-USER. But apparently, >>> LISPWORKS is automatically being used in CL-USER... >>> >>> - DM >>> >>> On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote: >>> >>>> Hi, David >>>> >>>> I don't think it's necessary to make ASDF and LISPWORKS two >>>> packages live together. What you met can only happen when you >>>> try to defined a package which use above two packages at the >>>> same time: >>>> >>>> (defpackage xxx >>>> (:use :cl :asdf :lispworks)) >>>> >>>> I don't think you have any good reason to use such a package. >>>> >>>> Regards, >>>> >>>> Chun Tian (binghe) >>>> >>>> 在 2010-2-26,15:44, David McClain 写道: >>>> >>>>> Hi, >>>>> >>>>> I just installed the latest available source for ASDF and had >>>>> to make a few minor changes to the way the ASDF Package was >>>>> being defined, for compatibility with Lispworks 6.0: (changes >>>>> highlighted in red -- if you can see them) >>>>> >>>>> ... >>>>> >>>>> (ensure-shadow (package symbols) >>>>> (shadow symbols package)) >>>>> >>>>> (ensure-package (name &key nicknames use export >>>>> unintern shadow) >>>>> (let* ((p (ensure-exists name nicknames))) >>>>> (ensure-use p use) >>>>> (ensure-unintern p unintern) >>>>> >>>>> (ensure-shadow p shadow) >>>>> >>>>> (ensure-export p export) >>>>> p))) >>>>> (ensure-package >>>>> ':asdf-utilities >>>>> :nicknames '(#:asdf-extensions) >>>>> :use '(#:common-lisp) >>>>> :export >>>>> '(#:absolute-pathname-p >>>>> #:aif >>>>> >>>>> #-:LISPWORKS #:appendf >>>>> >>>>> #:asdf-message >>>>> #:coerce-name >>>>> #:directory-pathname-p >>>>> #:ends-with >>>>> #:ensure-directory-pathname >>>>> >>>>> #-:LISPWORKS #:getenv >>>>> >>>>> #:get-uid >>>>> #:length=n-p >>>>> #:make-collector >>>>> #:pathname-directory-pathname >>>>> #:pathname-sans-name+type ;; deprecated. Use pathname- >>>>> directory-pathname >>>>> #:read-file-forms >>>>> #:remove-keys >>>>> #:remove-keyword >>>>> #:resolve-symlinks >>>>> #:split >>>>> #:component-name-to-pathname-components >>>>> #:system-registered-p >>>>> #:truenamize)) >>>>> (ensure-package >>>>> ':asdf >>>>> :use '(:common-lisp :asdf-utilities) >>>>> :unintern '(#:*asdf-revision*) >>>>> >>>>> :shadow #+:LISPWORKS '(#:load-system >>>>> #:compile-system >>>>> #:defsystem) >>>>> #-:LISPWORKS '() >>>>> >>>>> :export >>>>> '(#:defsystem #:oos #:operate #:find-system #:run-shell- >>>>> command >>>>> #:system-definition-pathname #:find-component ; >>>>> miscellaneous >>>>> #:compile-system #:load-system #:test-system >>>>> #:compile-op #:load-op #:load-source-op
Hi,
Yes, it seems that the package is not the place to be declaring nicknames. How can one know in advance, all preferred future designations?
I faced a situation similar to this (decisions being made too early) the other day when examining the use of tail-call optimization in a micro-Lisp compiled to Forth for use in embedded systems. Forth (ITC) has a little code-word header on each compiled verb. That code word points to executable behavior for the verb.
For machine (Assembly language) routines, it merely points to the following body of compiled code. But for higher level threaded code, it points to a kernel entry named DOCOL (do-colon) which pushes the current IP (akin to an instruction pointer) onto the return stack and then loads the IP with the address of the following words.
The problem here is that the decision to stack a return address should have been up to the call-site, not the callee. On its face, this prevents tail-call optimization. There are ways around it -- at the call site -- but it isn't pretty.
Some things are just better left to users, rather than attempting to anticipate every possible future use...
Dr. David McClain dbm@refined-audiometrics.com
Would you perchance have already loaded some evil version of ASDF that already has a package named ASDF that somehow uses package LISPWORKS or such, and/or some package that already uses package ASDF or ASDF-EXTENSIONS as well as package LISPWORKS or some such?
That could explain the lossage...
PS: there is a bug in rename-away that caused things to not be renamed away, which could make things bad in the case someone is using ASDF-EXTENSIONS. Just rename "name" to "n" in the last clause and see if it works better.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] It is a miracle that curiosity survives formal education. — Albert Einstein
On 26 February 2010 12:09, james anderson james.anderson@setf.de wrote:
good evening;
On 2010-02-26, at 17:46 , David McClain wrote:
Hi Guys,
I think I'm beginning to glean your sense of confusion here. Let me just have you try loading ASDF.lisp in a freshly booted LW6 image and see for yourselves.
send me one, and i will.
The ASDF.lisp that I am using was take off the web last night,
;;; -- LICENSE START ;;; (This is the MIT / X Consortium license as taken from ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009)
For APPENDF and GET-ENV, if I don't conditionalize to *not* export those symbols from your list of exports, then I get the error message:
"Redefining xxx visible from Lispworks"
The same message appears once APPENDF and GET-ENV have been dealt with, regarding LOAD-SYSTEM, COMPILE-SYSTEM, and DEFSYSTEM. In those cases, however, you really want your own definitions to be in effect, and not just inherit behavior that already exists from Lispworks.
What can I say here? The LW6 system behaves the way it does, right or wrong, and my changes seemed to be the least needed to get things rolling again.
this approach is suspect. it may be, that it succeeds sufficiently to get you past the stumbling point, but it should not be committed to a release, as it is a symptom of some other problem which would remain unresolved and which could well reappear in variations.
given just the information in the asdf definitions, the suspicion arises, that either the lispworks release, lispworks site installation, or the individual runtime has arranged package and symbol visibility such that symbols from some lispworks extension package are visible through the common-lisp package, as that is the only package from which :asdf-extensions can inherit symbols. the first two would surprise me, but without a runtime one cannot say.
what do (package-use-list :asdf-utilities) (symbol-package (find-symbol (string :appendf) :asdf-utilities)) yield? without the patches.
in general, such a problem is to be resolved at the point which sets the stage for the conflict, not in the asdf extension package definition. a more specific answer requires more information about the state of the runtime at the point of the redefinition.
- DM
On Feb 26, 2010, at 08:17 AM, Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL- USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl- user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http:// fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
> Hi, David > > I don't think it's necessary to make ASDF and LISPWORKS two > packages live together. What you met can only happen when you > try to defined a package which use above two packages at the > same time: > > (defpackage xxx > (:use :cl :asdf :lispworks)) > > I don't think you have any good reason to use such a package. > > Regards, > > Chun Tian (binghe) > > 在 2010-2-26,15:44, David McClain 写道: > >> Hi, >> >> I just installed the latest available source for ASDF and had >> to make a few minor changes to the way the ASDF Package was >> being defined, for compatibility with Lispworks 6.0: (changes >> highlighted in red -- if you can see them) >> >> ... >> >> (ensure-shadow (package symbols) >> (shadow symbols package)) >> >> (ensure-package (name &key nicknames use export >> unintern shadow) >> (let* ((p (ensure-exists name nicknames))) >> (ensure-use p use) >> (ensure-unintern p unintern) >> >> (ensure-shadow p shadow) >> >> (ensure-export p export) >> p))) >> (ensure-package >> ':asdf-utilities >> :nicknames '(#:asdf-extensions) >> :use '(#:common-lisp) >> :export >> '(#:absolute-pathname-p >> #:aif >> >> #-:LISPWORKS #:appendf >> >> #:asdf-message >> #:coerce-name >> #:directory-pathname-p >> #:ends-with >> #:ensure-directory-pathname >> >> #-:LISPWORKS #:getenv >> >> #:get-uid >> #:length=n-p >> #:make-collector >> #:pathname-directory-pathname >> #:pathname-sans-name+type ;; deprecated. Use pathname- >> directory-pathname >> #:read-file-forms >> #:remove-keys >> #:remove-keyword >> #:resolve-symlinks >> #:split >> #:component-name-to-pathname-components >> #:system-registered-p >> #:truenamize)) >> (ensure-package >> ':asdf >> :use '(:common-lisp :asdf-utilities) >> :unintern '(#:*asdf-revision*) >> >> :shadow #+:LISPWORKS '(#:load-system >> #:compile-system >> #:defsystem) >> #-:LISPWORKS '() >> >> :export >> '(#:defsystem #:oos #:operate #:find-system #:run-shell- >> command >> #:system-definition-pathname #:find-component ; >> miscellaneous >> #:compile-system #:load-system #:test-system >> #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Perhaps the correct thing to do there is start in the :COMMON-LISP package, and define your ASDF packages. Seems the source of difficulty is caused by starting in CL-USER.
On Feb 26, 2010, at 10:17 AM, Faré wrote:
Would you perchance have already loaded some evil version of ASDF that already has a package named ASDF that somehow uses package LISPWORKS or such, and/or some package that already uses package ASDF or ASDF-EXTENSIONS as well as package LISPWORKS or some such?
That could explain the lossage...
PS: there is a bug in rename-away that caused things to not be renamed away, which could make things bad in the case someone is using ASDF-EXTENSIONS. Just rename "name" to "n" in the last clause and see if it works better.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] It is a miracle that curiosity survives formal education. — Albert Einstein
On 26 February 2010 12:09, james anderson james.anderson@setf.de wrote:
good evening;
On 2010-02-26, at 17:46 , David McClain wrote:
Hi Guys,
I think I'm beginning to glean your sense of confusion here. Let me just have you try loading ASDF.lisp in a freshly booted LW6 image and see for yourselves.
send me one, and i will.
The ASDF.lisp that I am using was take off the web last night,
;;; -- LICENSE START ;;; (This is the MIT / X Consortium license as taken from ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009)
For APPENDF and GET-ENV, if I don't conditionalize to *not* export those symbols from your list of exports, then I get the error message:
"Redefining xxx visible from Lispworks"
The same message appears once APPENDF and GET-ENV have been dealt with, regarding LOAD-SYSTEM, COMPILE-SYSTEM, and DEFSYSTEM. In those cases, however, you really want your own definitions to be in effect, and not just inherit behavior that already exists from Lispworks.
What can I say here? The LW6 system behaves the way it does, right or wrong, and my changes seemed to be the least needed to get things rolling again.
this approach is suspect. it may be, that it succeeds sufficiently to get you past the stumbling point, but it should not be committed to a release, as it is a symptom of some other problem which would remain unresolved and which could well reappear in variations.
given just the information in the asdf definitions, the suspicion arises, that either the lispworks release, lispworks site installation, or the individual runtime has arranged package and symbol visibility such that symbols from some lispworks extension package are visible through the common-lisp package, as that is the only package from which :asdf-extensions can inherit symbols. the first two would surprise me, but without a runtime one cannot say.
what do (package-use-list :asdf-utilities) (symbol-package (find-symbol (string :appendf) :asdf-utilities)) yield? without the patches.
in general, such a problem is to be resolved at the point which sets the stage for the conflict, not in the asdf extension package definition. a more specific answer requires more information about the state of the runtime at the point of the redefinition.
- DM
On Feb 26, 2010, at 08:17 AM, Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL- USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl- user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http:// fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com: > ... rather, in package :CL-USER, not :LW-USER. But apparently, > LISPWORKS is automatically being used in CL-USER... > > - DM > > On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote: > >> Hi, David >> >> I don't think it's necessary to make ASDF and LISPWORKS two >> packages live together. What you met can only happen when you >> try to defined a package which use above two packages at the >> same time: >> >> (defpackage xxx >> (:use :cl :asdf :lispworks)) >> >> I don't think you have any good reason to use such a package. >> >> Regards, >> >> Chun Tian (binghe) >> >> 在 2010-2-26,15:44, David McClain 写道: >> >>> Hi, >>> >>> I just installed the latest available source for ASDF and had >>> to make a few minor changes to the way the ASDF Package was >>> being defined, for compatibility with Lispworks 6.0: (changes >>> highlighted in red -- if you can see them) >>> >>> ... >>> >>> (ensure-shadow (package symbols) >>> (shadow symbols package)) >>> >>> (ensure-package (name &key nicknames use export >>> unintern shadow) >>> (let* ((p (ensure-exists name nicknames))) >>> (ensure-use p use) >>> (ensure-unintern p unintern) >>> >>> (ensure-shadow p shadow) >>> >>> (ensure-export p export) >>> p))) >>> (ensure-package >>> ':asdf-utilities >>> :nicknames '(#:asdf-extensions) >>> :use '(#:common-lisp) >>> :export >>> '(#:absolute-pathname-p >>> #:aif >>> >>> #-:LISPWORKS #:appendf >>> >>> #:asdf-message >>> #:coerce-name >>> #:directory-pathname-p >>> #:ends-with >>> #:ensure-directory-pathname >>> >>> #-:LISPWORKS #:getenv >>> >>> #:get-uid >>> #:length=n-p >>> #:make-collector >>> #:pathname-directory-pathname >>> #:pathname-sans-name+type ;; deprecated. Use pathname- >>> directory-pathname >>> #:read-file-forms >>> #:remove-keys >>> #:remove-keyword >>> #:resolve-symlinks >>> #:split >>> #:component-name-to-pathname-components >>> #:system-registered-p >>> #:truenamize)) >>> (ensure-package >>> ':asdf >>> :use '(:common-lisp :asdf-utilities) >>> :unintern '(#:*asdf-revision*) >>> >>> :shadow #+:LISPWORKS '(#:load-system >>> #:compile-system >>> #:defsystem) >>> #-:LISPWORKS '() >>> >>> :export >>> '(#:defsystem #:oos #:operate #:find-system #:run-shell- >>> command >>> #:system-definition-pathname #:find-component ; >>> miscellaneous >>> #:compile-system #:load-system #:test-system >>> #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
On 2/26/10 Feb 26 -11:21 AM, David McClain wrote:
Perhaps the correct thing to do there is start in the :COMMON-LISP package, and define your ASDF packages. Seems the source of difficulty is caused by starting in CL-USER.
I think rather than doing that we should create our own package that uses only :common-lisp and work there.
I don't think of COMMON-LISP as a package I ever want to work in....
Cheers, r
On Feb 26, 2010, at 10:17 AM, Faré wrote:
Would you perchance have already loaded some evil version of ASDF that already has a package named ASDF that somehow uses package LISPWORKS or such, and/or some package that already uses package ASDF or ASDF-EXTENSIONS as well as package LISPWORKS or some such?
That could explain the lossage...
PS: there is a bug in rename-away that caused things to not be renamed away, which could make things bad in the case someone is using ASDF-EXTENSIONS. Just rename "name" to "n" in the last clause and see if it works better.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] It is a miracle that curiosity survives formal education. — Albert Einstein
On 26 February 2010 12:09, james anderson james.anderson@setf.de wrote:
good evening;
On 2010-02-26, at 17:46 , David McClain wrote:
Hi Guys,
I think I'm beginning to glean your sense of confusion here. Let me just have you try loading ASDF.lisp in a freshly booted LW6 image and see for yourselves.
send me one, and i will.
The ASDF.lisp that I am using was take off the web last night,
;;; -- LICENSE START ;;; (This is the MIT / X Consortium license as taken from ;;; http://www.opensource.org/licenses/mit-license.html on or about ;;; Monday; July 13, 2009)
For APPENDF and GET-ENV, if I don't conditionalize to *not* export those symbols from your list of exports, then I get the error message:
"Redefining xxx visible from Lispworks"
The same message appears once APPENDF and GET-ENV have been dealt with, regarding LOAD-SYSTEM, COMPILE-SYSTEM, and DEFSYSTEM. In those cases, however, you really want your own definitions to be in effect, and not just inherit behavior that already exists from Lispworks.
What can I say here? The LW6 system behaves the way it does, right or wrong, and my changes seemed to be the least needed to get things rolling again.
this approach is suspect. it may be, that it succeeds sufficiently to get you past the stumbling point, but it should not be committed to a release, as it is a symptom of some other problem which would remain unresolved and which could well reappear in variations.
given just the information in the asdf definitions, the suspicion arises, that either the lispworks release, lispworks site installation, or the individual runtime has arranged package and symbol visibility such that symbols from some lispworks extension package are visible through the common-lisp package, as that is the only package from which :asdf-extensions can inherit symbols. the first two would surprise me, but without a runtime one cannot say.
what do (package-use-list :asdf-utilities) (symbol-package (find-symbol (string :appendf) :asdf-utilities)) yield? without the patches.
in general, such a problem is to be resolved at the point which sets the stage for the conflict, not in the asdf extension package definition. a more specific answer requires more information about the state of the runtime at the point of the redefinition.
- DM
On Feb 26, 2010, at 08:17 AM, Robert Goldman wrote:
On 2/26/10 Feb 26 -9:00 AM, David McClain wrote:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL- USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
Faré's right. There's something mysterious here. We are only momentarily in CL-USER, and only while we construct (or modify) the ASDF package. AFAICT the ASDF package modification/creation code only manipulates uninterned symbols (if it doesn't, that's a bug), so there's no way it should be messing up the CL-USER package.
Will you please clarify?
thanks, r
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
> I don't understand. Do you mean that there is a problem when you > (load > "asdf") itself, or are you trying to (use-package :asdf) from cl- > user? > The latter is probably a bad idea, and wasn't supported so far > (so far > I know). > > [ François-René ÐVB Rideau | Reflection&Cybernethics | http:// > fare.tunes.org ] > Can anyone please squash this butterfly in Tokyo? I'm sick with > its flapping > wings changing the outcome of my life. > > > > > 2010/2/26 David McClain dbm@refined-audiometrics.com: >> ... rather, in package :CL-USER, not :LW-USER. But apparently, >> LISPWORKS is automatically being used in CL-USER... >> >> - DM >> >> On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote: >> >>> Hi, David >>> >>> I don't think it's necessary to make ASDF and LISPWORKS two >>> packages live together. What you met can only happen when you >>> try to defined a package which use above two packages at the >>> same time: >>> >>> (defpackage xxx >>> (:use :cl :asdf :lispworks)) >>> >>> I don't think you have any good reason to use such a package. >>> >>> Regards, >>> >>> Chun Tian (binghe) >>> >>> 在 2010-2-26,15:44, David McClain 写道: >>> >>>> Hi, >>>> >>>> I just installed the latest available source for ASDF and had >>>> to make a few minor changes to the way the ASDF Package was >>>> being defined, for compatibility with Lispworks 6.0: (changes >>>> highlighted in red -- if you can see them) >>>> >>>> ... >>>> >>>> (ensure-shadow (package symbols) >>>> (shadow symbols package)) >>>> >>>> (ensure-package (name &key nicknames use export >>>> unintern shadow) >>>> (let* ((p (ensure-exists name nicknames))) >>>> (ensure-use p use) >>>> (ensure-unintern p unintern) >>>> >>>> (ensure-shadow p shadow) >>>> >>>> (ensure-export p export) >>>> p))) >>>> (ensure-package >>>> ':asdf-utilities >>>> :nicknames '(#:asdf-extensions) >>>> :use '(#:common-lisp) >>>> :export >>>> '(#:absolute-pathname-p >>>> #:aif >>>> >>>> #-:LISPWORKS #:appendf >>>> >>>> #:asdf-message >>>> #:coerce-name >>>> #:directory-pathname-p >>>> #:ends-with >>>> #:ensure-directory-pathname >>>> >>>> #-:LISPWORKS #:getenv >>>> >>>> #:get-uid >>>> #:length=n-p >>>> #:make-collector >>>> #:pathname-directory-pathname >>>> #:pathname-sans-name+type ;; deprecated. Use pathname- >>>> directory-pathname >>>> #:read-file-forms >>>> #:remove-keys >>>> #:remove-keyword >>>> #:resolve-symlinks >>>> #:split >>>> #:component-name-to-pathname-components >>>> #:system-registered-p >>>> #:truenamize)) >>>> (ensure-package >>>> ':asdf >>>> :use '(:common-lisp :asdf-utilities) >>>> :unintern '(#:*asdf-revision*) >>>> >>>> :shadow #+:LISPWORKS '(#:load-system >>>> #:compile-system >>>> #:defsystem) >>>> #-:LISPWORKS '() >>>> >>>> :export >>>> '(#:defsystem #:oos #:operate #:find-system #:run-shell- >>>> command >>>> #:system-definition-pathname #:find-component ; >>>> miscellaneous >>>> #:compile-system #:load-system #:test-system >>>> #:compile-op #:load-op #:load-source-op >
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Dr. David McClain dbm@refined-audiometrics.com
asdf-devel mailing list asdf-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
Hello, David
First, what you're talking here is not LispWorks 6.0 specific, but happens in all LispWorks versions.
Second, you're using ASDF in a wrong way. I assume your final goal is to automatically load some ASDF-based CL packages when LispWorks starts up. This can be done by putting forms as below into your ".lispworks" file:
(compile-file "asdf.lisp" :load t) ; or just (load "asdf") if you have already compile it into fasl. (pushnew ... asdf:*central-registry*) (asdf:oos 'asdf:load-op :xxx)
What you changed in asdf.lisp will cause a few symbols not being exported any more. Wrong.
Regards,
Chun Tian (binghe)
在 2010-2-26,23:00, David McClain 写道:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL-USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl-user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
... (ensure-shadow (package symbols) (shadow symbols package)) (ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) p)))
(ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf #:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname #-:LISPWORKS #:getenv #:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize))
(ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '()
:export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
Hi Thanks for your suggestions, I'll give them a try.
Right now the way it is being loaded is as follows:
;; loads (and compiles, if needed) ASDF unless it's already in the ;; image #-:asdf (progn #+(OR :SBCL :CLOZURE) (require "asdf") #-(OR :SBCL :CLOZURE) (handler-case (when *asdf-pathname* (load #+:LISPWORKS (or (compile-file-if-needed *asdf-pathname*) *asdf-pathname*) #+:SBCL *asdf-pathname*)) (#+:LISPWORKS conditions:fasl-error #+:SBCL sb-ext:invalid-fasl () (load (compile-file *asdf-pathname*)))))
This is running while the current package is set to :CL-USER. I tried changing the USE-PACKAGE in this section, and in the main ASDF.LISP to be :COMMON-LISP instead of :CL-USER, but the error message persists.
So it seems that COMPILE-FILE-IF-NEEDED is setting us back to CL-USER.
- DM
On Feb 26, 2010, at 10:20 AM, Chun Tian (binghe) wrote:
Hello, David
First, what you're talking here is not LispWorks 6.0 specific, but happens in all LispWorks versions.
Second, you're using ASDF in a wrong way. I assume your final goal is to automatically load some ASDF-based CL packages when LispWorks starts up. This can be done by putting forms as below into your ".lispworks" file:
(compile-file "asdf.lisp" :load t) ; or just (load "asdf") if you have already compile it into fasl. (pushnew ... asdf:*central-registry*) (asdf:oos 'asdf:load-op :xxx)
What you changed in asdf.lisp will cause a few symbols not being exported any more. Wrong.
Regards,
Chun Tian (binghe)
在 2010-2-26,23:00, David McClain 写道:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL-USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl-user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
... (ensure-shadow (package symbols) (shadow symbols package)) (ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) p)))
(ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf #:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname #-:LISPWORKS #:getenv #:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize))
(ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '()
:export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
Dr. David McClain dbm@refined-audiometrics.com
Hi,
Well, if you were using the DEFPACKAGE, the way to arrange a continued export of an inherited symbol is to declare it as exported, possibly after importing from a specific package, if not already in the use-list.
But you aren't using DEFPACKAGE here. So between LW DEFPACKAGE and your synthesis system, LW must be doing some magic under the hood that your synthesis code is not performing in the same way -- right or wrong.
AFAIK I am using ASDF in a correct manner, have been for years now. I don't see the difference between what I'm doing and what you suggested. It is somewhat irksome to be told by strangers that you are doing something wrong, when they haven't even seen what you are doing.
I do appreciate the goal to which you all strive -- that of having a perfectly logical system across numerous Lisp implementations. But invariably, it becomes a quest of tilting at windmills -- a lot like the FPL guys striving for typed-perfection. Seems like a lost cause in the end, and people like me just want to get it going and move along.
I never intended my suggested changes to become part of some release. That is for the maintainers to wrestle with. But in the interim I thought my findings might help a few folks out there now using the new LW6.
Cheers,
- DM
On Feb 26, 2010, at 10:20 AM, Chun Tian (binghe) wrote:
Hello, David
First, what you're talking here is not LispWorks 6.0 specific, but happens in all LispWorks versions.
Second, you're using ASDF in a wrong way. I assume your final goal is to automatically load some ASDF-based CL packages when LispWorks starts up. This can be done by putting forms as below into your ".lispworks" file:
(compile-file "asdf.lisp" :load t) ; or just (load "asdf") if you have already compile it into fasl. (pushnew ... asdf:*central-registry*) (asdf:oos 'asdf:load-op :xxx)
What you changed in asdf.lisp will cause a few symbols not being exported any more. Wrong.
Regards,
Chun Tian (binghe)
在 2010-2-26,23:00, David McClain 写道:
No, I take a stock LW6 system and want to load up the ASDF package as soon as possible, so that I can then use ASDF to load in systems. When I take a look at the PACKAGE-USE-LIST of CL-USER, it shows COMMON-LISP, HARLEQUIN-COMMON-LISP, and LISPWORKS.
Have a look at the very front of the asdf.lisp file --- it places itself into package :CL-USER. So we are screwed up from the get go.
All I did was conditionalilze exports of two symbols that were already exported from another package and which performed identical functionality, and then I added a section to the rather elaborate package construction kit for ASDF to permit the declaration of some shadowed symbols. Simple. Effective. It works.
- DM
On Feb 26, 2010, at 07:31 AM, Faré wrote:
I don't understand. Do you mean that there is a problem when you (load "asdf") itself, or are you trying to (use-package :asdf) from cl-user? The latter is probably a bad idea, and wasn't supported so far (so far I know).
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Can anyone please squash this butterfly in Tokyo? I'm sick with its flapping wings changing the outcome of my life.
2010/2/26 David McClain dbm@refined-audiometrics.com:
... rather, in package :CL-USER, not :LW-USER. But apparently, LISPWORKS is automatically being used in CL-USER...
- DM
On Feb 26, 2010, at 01:13 AM, Chun Tian (binghe) wrote:
Hi, David
I don't think it's necessary to make ASDF and LISPWORKS two packages live together. What you met can only happen when you try to defined a package which use above two packages at the same time:
(defpackage xxx (:use :cl :asdf :lispworks))
I don't think you have any good reason to use such a package.
Regards,
Chun Tian (binghe)
在 2010-2-26,15:44, David McClain 写道:
Hi,
I just installed the latest available source for ASDF and had to make a few minor changes to the way the ASDF Package was being defined, for compatibility with Lispworks 6.0: (changes highlighted in red -- if you can see them)
... (ensure-shadow (package symbols) (shadow symbols package)) (ensure-package (name &key nicknames use export unintern shadow) (let* ((p (ensure-exists name nicknames))) (ensure-use p use) (ensure-unintern p unintern) (ensure-shadow p shadow) (ensure-export p export) p)))
(ensure-package ':asdf-utilities :nicknames '(#:asdf-extensions) :use '(#:common-lisp) :export '(#:absolute-pathname-p #:aif
#-:LISPWORKS #:appendf #:asdf-message #:coerce-name #:directory-pathname-p #:ends-with #:ensure-directory-pathname #-:LISPWORKS #:getenv #:get-uid #:length=n-p #:make-collector #:pathname-directory-pathname #:pathname-sans-name+type ;; deprecated. Use pathname-directory-pathname #:read-file-forms #:remove-keys #:remove-keyword #:resolve-symlinks #:split #:component-name-to-pathname-components #:system-registered-p #:truenamize))
(ensure-package ':asdf :use '(:common-lisp :asdf-utilities) :unintern '(#:*asdf-revision*)
:shadow #+:LISPWORKS '(#:load-system #:compile-system #:defsystem) #-:LISPWORKS '()
:export '(#:defsystem #:oos #:operate #:find-system #:run-shell-command #:system-definition-pathname #:find-component ; miscellaneous #:compile-system #:load-system #:test-system #:compile-op #:load-op #:load-source-op
Dr. David McClain dbm@refined-audiometrics.com
Dr. David McClain dbm@refined-audiometrics.com