lib/keyword.c (kw_parseempty): Use correct variable scanning `kwval' list.
[sod] / NOTES
diff --git a/NOTES b/NOTES
index c22622c..07e1180 100644 (file)
--- a/NOTES
+++ b/NOTES
@@ -1,37 +1,25 @@
-* Stuff from the ABI spec
+* Things to think about
 
 
-** Notation
+  + Reorganize output protocol so that metaclasses can override the
+    layout.  Split ~hook-output~ into a pair of generic functions: one
+    for walking the tree, which should continue to be
+    ~progn~-combination, and one for producing output, which subclasses
+    can override.
 
 
-     * sizeof(O) :: size of an object O
-     * align(O) :: alignment of the object O
-     * offset(C) :: offset of the component C within O
-     * dsize(O) :: data size of the object O (without tail padding)
-     * nvsize(O) :: the /non-virtual/ size of the object O (i.e.,
-       without virtual bases)
-     * nvalign(O) :: the non-virtual alignment of the object O
+  + Implement `indirect' slots and messages, which can be added (once a
+    class has declared support) /without/ breaking the class's ABI.
+    Indirect messages can be added to an indirect `vtmsgs' structure via
+    a pointer in the main vtable.  Indirect slots must be added to a
+    region of the `ilayout' located via an offset stored in the vtable.
 
 
-** Other concepts
+  * Add `documentation' methods for all of the myriad kinds of things
+    that can be defined.  A useful utility will find methods on a
+    generic function with an `eql'-specializer in some specified place.
 
 
-     * POD for the purpose of layout :: 
+  * Define static initializers for class layouts which obviate the need
+    for imprinting.
 
 
-
-* Order of stuff in output files
-
-** Header
-
-  * Multiple inclusion and C++ guards
-  * Forward declarations of structs and typedef names.
-  * User code
-  * Structure definitions
-  * Macros
-  * Function declarations for methods
-
-** Implementation
-
-  * User code
-  * Method and table definitions
-
-* COMMENT
+* COMMENT Emacs cruft
 
 # Local variables:
 # mode: org
 
 # Local variables:
 # mode: org