From: Dave Wallace
Subject: Re: CKOS performance (was Re: ANSI CLISP: strengths vs. weaknesses?)
Date: 
Message-ID: <87wwwsuimr.fsf@ice>
Is there a generally available lightweight object system for CL that
might be more efficient?
From: Martin Cracauer
Subject: Re: CKOS performance (was Re: ANSI CLISP: strengths vs. weaknesses?)
Date: 
Message-ID: <1996Oct18.175038.2525@wavehh.hanse.de>
········@ice (Dave Wallace) writes:

>Is there a generally available lightweight object system for CL that
>might be more efficient?

It's not a simple problem of beeing heavyweight. What needs to be done
is to allow an object to have slots that are simple types stored
without further pointer indirection (on demand, of
course). Additionally, one needs to be able to declare an object and
the class that the object will have at runtime in a way that the
compiler can be sure it knows the class at compile time. Then, static
binding and inlining is possible.

With current Common Lisp compilers, you can do this with structures
and some clever macros. I've been told several times to do so, but I
didn't have the time to look out for or think over a solution that
preserves overloading of generic functions/memeber functions (whatever
you call them) in an elegant way.

Dylan is designed to provide the above features with it's native
object system.

If you happen to have a slow CLOS implementation, then you might have
a look at the KR (knowledge representation) system that Garnet is
build on. It is simpler and may be faster than a generic CLOS without
any compiler support. See the Lisp FAQ for "Garnet".

Martin
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <········@wavehh.hanse.de>  http://www.bik-gmbh.de/~cracauer
"As far as I'm concerned,  if something is so complicated that you can't ex-"
"plain it in 10 seconds, then it's probably not worth knowing anyway"- Calvin