[asdf-devel] Changes to ASDF for LW6

David McClain dbm at refined-audiometrics.com
Fri Feb 26 19:26:21 UTC 2010


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-package.html
> 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 at 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 at 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 at refined-audiometrics.com
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> asdf-devel mailing list
>>>>>> asdf-devel at common-lisp.net
>>>>>> http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> asdf-devel mailing list
>>>>> asdf-devel at common-lisp.net
>>>>> http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
>>>> 
>>>> Dr. David McClain
>>>> dbm at refined-audiometrics.com
>>>> 
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> asdf-devel mailing list
>>>> asdf-devel at common-lisp.net
>>>> http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
>>> 
>>> 
>>> _______________________________________________
>>> asdf-devel mailing list
>>> asdf-devel at common-lisp.net
>>> http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
>> 
>> Dr. David McClain
>> dbm at refined-audiometrics.com
>> 
>> 
>> 
>> 
>> _______________________________________________
>> asdf-devel mailing list
>> asdf-devel at common-lisp.net
>> http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
>> 
> 

Dr. David McClain
dbm at refined-audiometrics.com







More information about the asdf-devel mailing list