It just occurred to me what the problem may have been that made me abandon the Corman and CLisp ports. The key Cells mechanism called "echoing" works via the generic function c-echo-slot-name. Two problems: the method combination is progn, and the dispatch requires EQL specialization.
The first question is whether those limitations still apply to either implementation. Perhaps newer versions have fixed these. If not..
The method combo can be dispensed with. It did make a rare edge case easier to manage and then struck me as more appropriate to the necessary semantics, but normal method combo could have been made to work without too much work. Indeed, you'll see the defgeneric for c-echo-slot-name is featured-out for clisp and corman.
As for the eql dispatch, that would require modifying def-c-echo to stash anonymous functions with gensym'ed names into a hash table...well, it would be ugly, and I think this is where I ran out of patience with corman and clisp.
hopefully they have mended their CLOS ways. if not, I think someone really determined to make the port should not have that much trouble. these are nicely localized little problems, and I would certainly help and accept the changes into Cells/Cello.
kenneth
Kenny Tilton writes:
It just occurred to me what the problem may have been that made me abandon the Corman and CLisp ports. The key Cells mechanism called "echoing" works via the generic function c-echo-slot-name. Two problems: the method combination is progn, and the dispatch requires EQL specialization.
The first question is whether those limitations still apply to either implementation. Perhaps newer versions have fixed these. If not..
After years of harassment, flaming, threats, pleading, flames, begging, Erik Naggum, and periodic diaspora of users, CLISP is finally working on supporting CLOS in ernest. Meaning that as of February 2004, method combinations should work. Mind you, I checked out a copy of the CLISP source today, and couldn't get it to compile on OS X -- but that's a bug, and it should be safe to say that bleeding-edge CLISP has proper support for method combinations. Finally!
hopefully they have mended their CLOS ways.
It looks like CLISP has started considering CLOS shortcomings as bugs, and not only that, but they have hacker(s) willing to work on those bugs.
As for Corman, I got the impression from R.C. that he had the same attitude as I had with the Anaconda/CL-80 project: sure, there are bugs, CL is a big language -- tell me the problems you actually run into and I'll fix them, on a need-to-use basis. As a former implementor, I recommend telling Corman, "I can't use your lisp for Cello because of X, Y, and Z".