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