configure.ac: Complicate ASDF version-number generation.
[sod] / NOTES
diff --git a/NOTES b/NOTES
index c22622c..c22de92 100644 (file)
--- a/NOTES
+++ b/NOTES
@@ -1,37 +1,22 @@
-* 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
+  + Investigate a `robust-ABI' layout using pointers rather than simple
+    inclusion.  Each class's islots and vtmsgs will be found by
+    following a pointer rather than just magically knowing the offsets.
+    If you allocate objects dynamically, using ~CLASS->cls.initsz~
+    rather than ~sizeof(CLASS__ilayout)~ then this isolates you from
+    added slots and messages at all superclasses.  I expect this to
+    require a separate root class, but it /might/ be possible to
+    mix-and-match.
 
-** Other concepts
 
-     * POD for the purpose of layout :: 
-
-
-* 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