🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.clos
Article #76

Re: Attempting to circumvent Symbolics' Reader Method

#76
From: Gregor Kiczales
Date: Fri, 10 Apr 1992 16:38
35 lines
2276 bytes
   Date:	Fri, 10 Apr 1992 08:19:14 -0700
   From:	Jeff Dalton <jeff@aiai.edinburgh.ac.uk>

   Is it really the only reason?  It's certainly not the only thing
   SLOT-VALUE is used for.

Yes, I probably overstated this case before.  You aren't the first
person who has caught me on it.  I think the other reasons you mention
are, in and of themselves, good reasons to have SLOT-VALUE in the
language.  All I really wanted to say is that its important for accessor
methods to go through SLOT-VALUE so that methods on
SLOT-VALUE-USING-CLASS will be called.

   You can do an optimization, but don't you have to be able to
   de-optimize if someone later defines an applicable method on
   SLOT-VALUE-USING-CLASS?

This depends on whether you are supporting a development environment or
a delivery environment.  The text in the AMOP tries to help implementors
out by letting them off this hook for delivery environments.  Page 144
says: 

 \item Portable methods on specified generic functions specialized to portable
 metaobject classes must be defined before any instances of those classes (or
 any subclasses) are created, either directly or indirectly by a call to {\bf
 make-instance}.  Methods can be defined after instances are created by {\bf
 allocate-instance} however.  Portable metaobject classes cannot be redefined.

 \begin{ImplNote}
 The purpose of this last restriction is to permit implementations to provide
 performance optimizations by analyzing, at the time the first instance of a
 metaobject class is initialized, what portable methods will be applicable to
 it.  This can make it possible to optimize calls to those specified generic
 functions which would have no applicable portable methods.
 \end{ImplNote}
Technical Details
Message-ID: <92Apr10.093839pdt.29192@tracer-bullet.parc.xerox.com>
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!parc.xerox.COM!Gregor
References: <17996.9204101519@subnode.aiai.ed.ac.uk>

Show Full Headers
Complete Article Headers
Newsgroups: comp.lang.clos
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!parc.xerox.COM!Gregor
From: Gregor@parc.xerox.COM (Gregor Kiczales)
Subject: Re: Attempting to circumvent Symbolics' Reader Method
Message-ID: <92Apr10.093839pdt.29192@tracer-bullet.parc.xerox.com>
Sender: Gregor Kiczales <gregor@parc.xerox.com>
Organization: The Ohio State University Department of Computer and Information Science
References: <17996.9204101519@subnode.aiai.ed.ac.uk>
Date: Fri, 10 Apr 1992 16:38:26 GMT
Lines: 36