<div dir="ltr">I have not been following every last detail of this conversation,<div>so please forgive me if what I'm about to suggest is a terrible idea.</div><div><br></div><div>It appears that Robert is concerned about breaking ASDF files</div>
<div>containing code that defines classes that inherit from OPERATION.</div><div>I have written code like this and had to do some serious searching</div><div>before I found an example to follow, so I personally believe that</div>
<div>such code is rare and not worth worrying too much about breaking.</div><div><br></div><div>However, can't we find and fix 95% of the breakage by running</div><div>"grep 'defclass.*operation' *.asd" on all the Quicklisp libraries?  That</div>
<div>would find my PROTO-TO-LISP class, which is presumably now</div><div>broken.  In addition to Quicklisp libraries, my Slurp code can check</div><div>out several hundred other Lisp packages from web repositories.  I</div>
<div>could run the same check on those.</div><div><br></div><div>By the way, regarding my PROTO-TO-LISP class.  I want to inherit</div><div>from DOWNWARD-OPERATION, right?</div><div><br></div><div>Bob</div><div><br></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Jan 24, 2014 at 11:23 AM, Robert Goldman <span dir="ltr"><<a href="mailto:rpgoldman@sift.net" target="_blank">rpgoldman@sift.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Well, this should teach me to think more than 2.4 seconds before<br>
responding to emails.<br>
<br>
I'm afraid my proposed CHANGE-CLASS solution won't work.  The problem is<br>
that we would be required to change the parent classes of a new<br>
OPERATION to remove OPERATION and add BACKWARDS-COMPATIBLE-OPERATION,<br>
and this is precisely what Pascal has explained cannot be done portably,<br>
or at least not without a very big new body of compatibility code,<br>
because of the non-standard nature of the MOP.<br>
<br>
So you are suggesting that we modify the traversal code to check for<br>
non-updated OPERATION classes, and then replicate a fixed version of the<br>
old logic?<br>
<br>
I'm willing to entertain this as a suggestion, but it seems to me very<br>
likely to involve adding a large layer of cruft to ASDF.  The error<br>
check involves only 10 lines.  It also has the virtue of forcing people<br>
to fix their systems, instead of moving responsibility for their<br>
continued correct functioning to the shoulders of the not-very-large<br>
ASDF team.<br>
<br>
Do you see a way around these issues?<br>
<br>
Best,<br>
Robert<br>
<br>
</blockquote></div><br></div>