[asdf-devel] Changes to ASDF for LW6

james anderson james.anderson at setf.de
Fri Feb 26 17:09:27 UTC 2010


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





More information about the asdf-devel mailing list