/[guile]/guile/guile-core/doc/goops/goops.texi
ViewVC logotype

Diff of /guile/guile-core/doc/goops/goops.texi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by ossau, Fri Nov 8 00:36:46 2002 UTC revision 1.6 by mdj, Fri Jan 10 12:40:21 2003 UTC
# Line 26  Guile Line 26  Guile
26  @ifinfo  @ifinfo
27  This file documents GOOPS, an object oriented extension for Guile.  This file documents GOOPS, an object oriented extension for Guile.
28    
29  Copyright (C) 1999, 2000, 2001 Free Software Foundation  Copyright (C) 1999, 2000, 2001, 2003 Free Software Foundation
30    
31  Permission is granted to make and distribute verbatim copies of  Permission is granted to make and distribute verbatim copies of
32  this manual provided the copyright notice and this permission notice  this manual provided the copyright notice and this permission notice
# Line 2651  The default @code{class-redefinition} me Line 2651  The default @code{class-redefinition} me
2651  with the default metaclass @code{<class>}, has the following internal  with the default metaclass @code{<class>}, has the following internal
2652  protocol.  protocol.
2653    
 [ *fixme*  I'm not sure that I understand this sufficiently to explain  
 it.  Also, the internals of the default class redefinition method are  
 extremely implementation-specific, and I'm not sure that there is that  
 much point trying to describe the internal protocol such that it could  
 be customized without going to look at the source code. ]  
   
2654  @code{class-redefinition @var{(old <class>)} @var{(new <class>)}}  @code{class-redefinition @var{(old <class>)} @var{(new <class>)}}
2655  (method)  (method)
2656    
# Line 2671  be customized without going to look at t Line 2665  be customized without going to look at t
2665  @code{update-direct-subclass! @var{subclass} @var{old} @var{new}} (generic)  @code{update-direct-subclass! @var{subclass} @var{old} @var{new}} (generic)
2666  @end itemize  @end itemize
2667    
2668    This protocol cleans up things that the definition of the old class
2669    once changed and modifies things to work with the new class.
2670    
2671    The default @code{remove-class-accessors!} method removes the
2672    accessor methods of the old class from all classes which they
2673    specialize.
2674    
2675    The default @code{update-direct-method!} method substitutes the new
2676    class for the old in all methods specialized to the old class.
2677    
2678  The default @code{update-direct-subclass!} method invokes  The default @code{update-direct-subclass!} method invokes
2679  @code{class-redefinition} recursively to handle the redefinition of the  @code{class-redefinition} recursively to handle the redefinition of
2680  subclass.  subclasses.
2681    
2682  When a class is redefined, any existing instance of the redefined class  When a class is redefined, any existing instance of the redefined class
2683  will be modified for the new class definition before the next time that  will be modified for the new class definition before the next time that
2684  any of the instance's slot is referenced or set.  GOOPS modifies each  any of the instance's slot is referenced or set.  GOOPS modifies each
2685  instance by calling the generic function @code{change-class}.  [ *fixme*  instance by calling the generic function @code{change-class}.
 Actually it sometimes calls @code{change-class} and sometimes  
 @code{change-object-class}, and I don't understand why. ]  
2686    
2687  The default @code{change-class} method copies slot values from the old  The default @code{change-class} method copies slot values from the old
2688  to the modified instance, and initializes new slots, as described in  to the modified instance, and initializes new slots, as described in

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26