POS, OOFS, CL v Scheme, etc.

BRIAN SPILSBURY zhivago@iglou.com
Mon, 12 May 1997 08:56:27 -0400 (EDT)

MW> Obviously, if we're going towards this, we'll have to do a major
MW> surgery of the base language and will essentially need to think
MW> about the semantics of all existing functionality. If we're to
MW> do this, I'd indeed suggest to extend Scheme rather than Common
MW> Lisp, since a sufficiently careful and exhaustive review and re-
MW> implementation of Common Lisp would probably be beyond our short-
MW> term capacity (note that this would affect the optimizer deeply).
MW> On the other hand, Scheme is small enough to do this, and would
MW> also be more suitable in other ways for a "kernel Lisp" approach
MW> (or does anyone consider Common Lisp's state-based and mutable
MW> package system to fit into a mostly-functional environment? ;-).

Um, I don't see why you need any surgery at all. Just define types
without mutators.

In CLOS for example it should be straightforward enough to place
more specific setf methods over the default mutators which invoke
(error) or (cerror) or  a condition, etc. And do likewise for
any other mutator methods.

Ideally you would probably want a clean slate, but um, its not
major surgery, you would probably want to specify immutability in
the type definition/guard though.

I'm not really pushing CL here, but there are reasons against scheme
I'd prefer a proto-lisp which could be refined into either at a later stage.

Then at least you'd have the option of something standard without making
the possible mistake of C++ - Lets base an oop language on something
never designed for it - be wary of basing an os on a dialect never
really designed for it.