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)))
#[undefined]
STk> (let ((a 1)) (incr a) a)
2
STk> (define-class <complex> (<number>) (r i))
#[undefined]
STk>
guile> (define-macro (incr x) `(set! ,x (+ ,x 1)))
guile> (let ((a 1)) (incr a) a)
2
guile>
(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}.