"How-to" request

Marco Antoniotti marco.antoniotti at unimib.it
Sat Mar 20 14:23:21 UTC 2021


Hi Robert

isn't :properties a kitchen sink for "plist" stuff?  Just using it does not
require subclassing ASDF:SYSTEM, but I see that there may be some issues.
I guess I can come up with something different.

All the best

Marco




On Sat, Mar 20, 2021 at 3:19 PM Robert P. Goldman <rpgoldman at sift.net>
wrote:

> Neat! Thanks for posting the pointer!  BTW, you might want to change the
> name from :properties to something like :doc-properties to avoid potential
> name collisions...
>
> --
> Robert P. Goldman
>
> On March 20, 2021 at 09:11:45, Marco Antoniotti (
> marco.antoniotti at unimib.it) wrote:
>
>> Cool, thanks!
>>
>> Turns out that just using :properties in the system definition works.
>>
>> Check out (within parens...): HEΛPing ASDF (within-parens.blogspot.com)
>> <https://within-parens.blogspot.com/2021/03/he-asdf.html>
>>
>> Cheers
>>
>> Marco
>>
>>
>>
>>
>> On Sat, Mar 20, 2021 at 2:41 PM Robert P. Goldman <rpgoldman at sift.net>
>> wrote:
>>
>>> Yes, if you look at FIVEAM-ASDF, that is how John Maraist and I do it.
>>> We introduce a subclass of systems that has an extra slot holding the list
>>> of tests to be performed, and PERFORM reads that slot when doing TEST-OP.
>>>
>>> --
>>> Robert P. Goldman
>>>
>>> On March 20, 2021 at 02:45:57, Marco Antoniotti (
>>> marco.antoniotti at unimib.it) wrote:
>>>
>>>> Ok.
>>>>
>>>> Well, can you at least have a plist or something in the component
>>>> specification?  I presume yes.  I am just allergic to RTFM as you know :)
>>>>
>>>> Marco
>>>>
>>>> On Sat, Mar 20, 2021 at 12:04 AM Robert Goldman <rpgoldman at sift.info>
>>>> wrote:
>>>>
>>>>> We don't actually. Faré deprecated that. The reasons are complicated,
>>>>> but basically, it wasn't possible to propagate arguments through a plan.
>>>>> What do you need an argument for? Maybe there's a work-around.
>>>>>
>>>>> On 19 Mar 2021, at 16:24, Marco Antoniotti wrote:
>>>>>
>>>>> BTW.
>>>>>
>>>>> If you do not advise to specialize OPERATE, how do you pass arguments
>>>>> to PERFORM?
>>>>>
>>>>> MA
>>>>>
>>>>> On Fri, Mar 19, 2021 at 7:45 PM Robert Goldman <rpgoldman at sift.info>
>>>>> wrote:
>>>>>
>>>>>> P.S. I don't recommend writing your own OPERATE methods -- OPERATE
>>>>>> is quite complicated and messing with it could lead you into very deep
>>>>>> water. I don't believe you should ever need to.
>>>>>>
>>>>>> On 19 Mar 2021, at 13:42, Robert Goldman wrote:
>>>>>>
>>>>>> Hi. I'm happy to help you work through this, but so that it doesn't
>>>>>> recur as a problem, I'd appreciate it if you would help me fix the manual's
>>>>>> discussion of this.
>>>>>>
>>>>>> First, have you read this page
>>>>>> https://common-lisp.net/project/asdf/asdf.html#Creating-new-operations
>>>>>> ?
>>>>>>
>>>>>> Please have a look at that -- it's not very long -- and let us know
>>>>>> what more needs to be supplied.
>>>>>>
>>>>>> I note the discussion of operation-done-p. I suspect that is your
>>>>>> problem -- your new operation is not aware that it needs to be performed.
>>>>>>
>>>>>> This page is substantially redundant with the pages on the object
>>>>>> model, and should be beefed up with cross-references, and more inclusion of
>>>>>> docstrings...
>>>>>>
>>>>>> On 19 Mar 2021, at 12:58, Marco Antoniotti wrote:
>>>>>>
>>>>>> Hi
>>>>>>
>>>>>> I am trying to create a new ASDF:OPERATION, but I must be missing
>>>>>> something and the manual (or Google) does not seem to help much.
>>>>>>
>>>>>> How do you create a new operation, which may be quite simple?  Or
>>>>>> better, how do you get PERFORM and/or OPERATE to actually do something for
>>>>>> you.
>>>>>>
>>>>>> I know I should RTFM, but in this case it is more of a RTFC, which is
>>>>>> far more difficult.
>>>>>>
>>>>>> I tried the following
>>>>>>
>>>>>> (defclass my-op (non-propagating-operation) ())
>>>>>>
>>>>>> (defmethod perform ((o my-op) (s system))
>>>>>>    (print 42))
>>>>>>
>>>>>> (defmethod operate ((o my-op) (s system) &key &allow-other-keys)
>>>>>>    (print 666))
>>>>>>
>>>>>> But then, doing
>>>>>>
>>>>>> cl-user 42> (operate 'my-op (find-system "somesys") :bar 1024)
>>>>>> #<MY-OP >
>>>>>> #<ASDF/PLAN:SEQUENTIAL-PLAN 2301B97B>
>>>>>>
>>>>>> is all I get.
>>>>>>
>>>>>> Any tutorial or advice?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> --
>>>>>> Marco Antoniotti, Associate Professor         tel. +39 - 02 64 48 79
>>>>>> 01
>>>>>> DISCo, Università Milano Bicocca U14 2043 http://dcb.disco.unimib.it
>>>>>> Viale Sarca 336
>>>>>> I-20126 Milan (MI) ITALY
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> Marco Antoniotti, Associate Professor         tel. +39 - 02 64 48 79
>>>>> 01
>>>>> DISCo, Università Milano Bicocca U14 2043 http://dcb.disco.unimib.it
>>>>> Viale Sarca 336
>>>>> I-20126 Milan (MI) ITALY
>>>>>
>>>>>
>>>>
>>>> --
>>>> Marco Antoniotti, Associate Professor         tel. +39 - 02 64 48 79 01
>>>> DISCo, Università Milano Bicocca U14 2043 http://dcb.disco.unimib.it
>>>> Viale Sarca 336
>>>> I-20126 Milan (MI) ITALY
>>>>
>>>
>>
>> --
>> Marco Antoniotti, Associate Professor         tel. +39 - 02 64 48 79 01
>> DISCo, Università Milano Bicocca U14 2043 http://dcb.disco.unimib.it
>> Viale Sarca 336
>> I-20126 Milan (MI) ITALY
>>
>

-- 
Marco Antoniotti, Associate Professor         tel. +39 - 02 64 48 79 01
DISCo, Università Milano Bicocca U14 2043 http://dcb.disco.unimib.it
Viale Sarca 336
I-20126 Milan (MI) ITALY
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20210320/131c46dd/attachment-0001.html>


More information about the asdf-devel mailing list