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:
I tried the followingI know I should RTFM, but in this case it is more of a RTFC, which is far more difficult.HiI 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.(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, doingcl-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