On Thu, Nov 7, 2013 at 12:32 PM, Robert Goldman rpgoldman@sift.net wrote:
Faré wrote:
On Thu, Nov 7, 2013 at 9:35 AM, Zach Beane xach@xach.com wrote:
Thanks. I started to implement this idea, but I'm concerned because ASDF already defines an unspecialized :before method on OPERATE. Is it safe to clobber it? If not, what should I do instead?
Well, I would use a :before method with slightly different specializers than (operation component), e.g. (operation system), since you're only interested in systems. (beware: poiu does that, too, on (operation t))
Didn't we once upon a time have method specialization internal to ASDF done by an alternate set of method combination keywords to avoid clashes with extensions like Xach's?
I have a vague memory of this, but an even vaguer one that you had ripped this out because of inconsistencies in different implementations' handling of the extended form of method combination....
Yes, I removed it before 2.000, because it was causing non-portability on many platforms (including earlier versions of CLISP and ABCL), and because frankly it didn't bring much that couldn't be done better by splitting a gf in two (e.g. perform-with-restarts). I don't believe in this "clash" theory too much, or in the theory that the convoluted method combination helped. You still have just as much and as little clash when defining new methods, and still need to be somewhat careful not to step on anyone else's toes.
It's one more of these fancy experiments that the original ASDF authors did, that doesn't amount to much in the end. Of course, if they hadn't experimented, they wouldn't have discovered the *good* things about ASDF. In retrospect, my job with ASDF2 & ASDF3 will have been to distill the good stuff, complete and fix it, and throw away or deprecate the bad stuff.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org To converse at the distance of the Indes by means of sympathetic contrivances may be as natural to future times as to us is a literary correspondence. — Joseph Glanvill, 1661