<div class="gmail_quote">On Fri, Aug 6, 2010 at 1:24 AM, Stelian Ionescu <span dir="ltr"><<a href="mailto:sionescu@cddr.org">sionescu@cddr.org</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Try something like this:<br>
<br>
(defmethod asdf:perform ((op asdf:compile-op) (c protobuf-source-file))<br>
(let* ((output-defaults (pathname (car (asdf:output-files op c))))<br>
(generated-source-file (make-pathname :name (pathname-name (asdf:component-pathname c))<br>
:type "lisp"<br>
:defaults output-defaults)))<br>
))<br>
<br>
You need to call OUTPUT-FILES which will apply the output translations you've configured</blockquote><div><br></div><div>Your suggestion does work, but it's a bit mysterious. Note that you didn't</div><div>redefine INPUT-FILES for components of type PROTOBUF-SOURCE-FILE</div>
<div>and the suggestion involves copying PERFORM code from asdf.lisp into my</div><div>protobuf.asd file.</div><div><br></div><div>Also, your change appears to just affect compilation, but due to ASDF's</div><div>handling of so called "self dependencies" (at least I think this is the cause)</div>
<div>your change also magically makes LOAD-OP function correctly.</div><div><br></div><div>I agree with Robert Goldman that it would be nice to pin down the semantics</div><div>of INPUT-FILES and OUTPUT-FILES. Maybe the self-dependency code</div>
<div>can be eliminated or made more general. Right now I think it's a special</div><div>case just used to make LOAD-OP capable of doing two things,</div><div>compiling and then loading the compiled products.</div><div>
<br></div><div>In any case, thanks for the suggestion. It does indeed solve my problem.</div><div><br></div><div>bob</div><div><br></div></div>