Testing the waters.

Marcus G. Daniels marcus@cathcart.sysc.pdx.edu
07 May 1997 17:23:35 -0700

>>>>> "AA" == Adam Alpern <Alpern@brightware.com> writes:

AA> I would notwant a LispOS that did not have a) Macros, or B) CLOS.
AA> I shouldn't have to preach about the joys of CLOS to anyone on this
AA> list, or how useful it would be for high-level OS services.

A few data points:

MIT Scheme
Scheme saved on Monday April 8, 1996 at 7:52:19 PM
  Release 7.4.4
  Microcode 11.151
  Runtime 14.168
1 ]=> (define-macro (incr x) `(set! ,x (+ ,x 1)))
;Value: incr
1 ]=> (let ((a 1)) (incr a) a)
;Value: 2
1 ]=>

STk> (define-macro (incr x) `(set! ,x (+ ,x 1)))
STk> (let ((a 1)) (incr a) a)
STk> (define-class <complex> (<number>) (r i))

guile> (define-macro (incr x) `(set! ,x (+ ,x 1)))
guile> (let ((a 1)) (incr a) a)

(note also that there is interest by the Guile developers to port
STk's STklos to Guile)

AA> But more importantly, I want CLOS - every object system add-on for
AA> Scheme that I've used had single-inheritance, no MOP, no method
AA> combination.  I want mulitple inheritance, multiple dispatch,
AA> method combination, and a full MOP.

>From Appendix-C of the STk reference manual:

  Briefly stated, the {\stklos} extension gives the user a full object
  oriented system with meta-classes, multiple inheritance, generic
  functions and multi-methods.  Furthermore, the whole implementation
  relies on a true meta object protocol, in the spirit of the one
  defined for CLOS\cite{AMOP}.