[asdf-devel] Changes to ASDF for LW6

Chun Tian (binghe) binghe.lisp at gmail.com
Fri Feb 26 17:20:06 UTC 2010


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 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
> 
> 
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2603 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20100227/0ba5611b/attachment.bin>


More information about the asdf-devel mailing list