Abandoned atoms work: hardly any performance benefit.
[sod] / lib / sod-structs.3
index 48364cc..161fc4e 100644 (file)
@@ -705,7 +705,7 @@ it doesn't matter that there are
 multiple method entry pointers
 for the same effective method
 as long as they all work correctly.
-Indeed, it's essential that they do,
+Indeed, it's essential that there are multiple entry pointers,
 because each chain's method entry function
 will need to apply a different offset to the receiver pointer
 before invoking the effective method.
@@ -1114,6 +1114,12 @@ Finally, the class object is defined as
 .B #define
 .IB C __class
 .BI (& C __classobj. j . r )
+.br
+.B #define
+.IB C __cls_ k
+.BI (& C __classobj. k . n )
+.br
+\&...
 .PP
 The exported symbol
 .IB C __classobj
@@ -1132,7 +1138,32 @@ is the root metaclass of
 i.e., the metaclass of the least specific superclass of
 .IR C ;
 usually this is
-.BR "const SodClass *" .
+.BR "const SodClass\ *" .
+For each chain of
+.IR C 's
+metaclass, a macro
+.IB C __cls_ k
+is defined, usable as a pointer of type
+.B const
+.IR N \ \c
+.BR * ,
+where
+.I K
+and
+.I N
+are the chain's head and tail classes
+(i.e., the least- and most-specific classes in the chain)
+respectively;
+this macro is
+.I omitted
+if
+.IR N "\ =\ " R ,
+i.e., in the common case where
+.IR C 's
+metaclass is precisely the root metaclass,
+since the existing
+.IB C __class
+macro is already sufficient.
 .
 .\"--------------------------------------------------------------------------
 .SH SEE ALSO