seth@ucla-cs.UUCP (12/16/85)
A long time ago... I wrote a Flavors package for T (Yale dialect of Scheme) which has been in use here at UCLA for the past few years. Finally having some time to play with ExperLisp 1.04, I decided to try a port and have achieved some success. There were some minor constraints imposed by T on the original implementation (some of which I consider features, of course) but for the most part it is a reasonable subset of the tangled mess that constitutes the Zetalisp flavor system. My implementation provides: define-flavor, define-method, undefine-method, send, make-instance, describe-flavor, vanilla, (vanilla describe), (vanilla apropos), (vanilla get-handler-for), and others. It does not provide support for whoppers, wrappers, or other obscenities that render code even more obscure. The T implementation does not allow instance variables to be used freely in method bodies, rather they must be preceded by a readmacro (&). Since EL doesn't provide readmacros yet, this must be finessed which I'm working on now. I happen to like the idea of flagging instance variables because it makes it easier to read someone else's code. Anyway, the EL version is almost ready for beta-test (I'm specifically interested in better error-handling because EL is particularly unforgiving in this respect). If you are interested in obtaining a copy, send me a message and when I feel the code is sufficiently stable I will mail out the source code. What I am asking in return is that people respect the copyright notice (i.e. do not try to sell this code as part of another system without including the copyright notice and notifying me). I would also ask people to send me any bug reports, suggestions, and enhancements. One final note, this implementation is primarily commonlisp so I expect that it should either run directly in CL or require only minor modifications. I will check this out when I get a chance. Enjoy, Seth Goldman ARPA: seth@LOCUS.UCLA.EDU UUCP: ...!{ihnp4,cepu,trwspp,sdcrdcf,ucbvax}!ucla-cs!seth USMail: A.I. Lab, 3531 Boelter Hall, UCLA, Los Angeles, CA 90024 MaBell: (213) 825-5199