Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!newsstand.cit.cornell.edu!portc01.blue.aol.com!news-peer.gsl.net!news.gsl.net!news.mathworks.com!fu-berlin.de!unlisys!news.maz.net!news.ppp.net!news.Hanse.DE!wavehh.hanse.de!cracauer
From: cracauer@wavehh.hanse.de (Martin Cracauer)
Subject: Re: ANSI CLISP: strengths vs. weaknesses?
Message-ID: <1996Nov4.132337.408@wavehh.hanse.de>
Organization: BSD User Group Hamburg
References: <slrn55n3fg.5p.psci@teleport.com> <1996Oct18.115909.28857@wavehh.hanse.de> <TMB.96Oct19010039@best.best.com> <1996Oct20.112936.25643@wavehh.hanse.de> <846731153.9803.0@iiltd.demon.co.uk>
Date: Mon, 4 Nov 96 13:23:37 GMT
Lines: 39

jeff@interactive.co.uk (Jeff Dalton) writes:

>In article <1996Oct20.112936.25643@wavehh.hanse.de>,
>Martin Cracauer <cracauer@wavehh.hanse.de> wrote:

>>Also, as Jim Veitch of Franz wrote, there are actually CLOS versions
>>that can represent a CLOS object's slots as a flat array, so my former
>>claim that slot accesses (not functions calls) have to be slower in
>>CLOS was not right. 

>I have never seen any _other_ way of representing slots than a flat
>array, though it's usually an array of pointers.  What do you have in
>mind?

An array not construcuted of pointers, but of direct values.

I remember a posting in comp.lang.lisp from someone of Franz who
explained why a CLOS objects that conforms to the standard has to be
represented as a collection of pointers.

I think it was simply that the class redifinition wouldn't work
anymore when the size of entries to the slots collcetion is no longer
of the same size for all elements (that is the case for pointers).

As I understand Jim Veitch, in Allegro you can promise you won't
change the class and then you may get a pointerless representation of
certain data types.

>As for pointers, boxing, etc, most implementation of struucture
>classes (as in defstruct) support unboxed slot values fixnums and
>the like.  So you don't need an especially fancy CLOS implementation
>to get some cases of that sort.

Yes, right, but what if I want a CLOS object for some reasons?

Martin
-- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Martin Cracauer <cracauer@wavehh.hanse.de>  http://cracauer.cons.org
