summaryrefslogtreecommitdiff
path: root/meta-stuff.rst.txt
diff options
context:
space:
mode:
authorGianni Ceccarelli <gianni.ceccarelli@broadbean.com>2023-07-13 17:29:26 +0100
committerGianni Ceccarelli <gianni.ceccarelli@broadbean.com>2023-07-13 17:29:26 +0100
commitc3141fc3b3c8d6fb7270a3a1cd15be4895ea052d (patch)
tree51e0ab1cca45f5d9491ab04b2a9ea80425a40474 /meta-stuff.rst.txt
parentsome docs (diff)
downloadbash-object-system-c3141fc3b3c8d6fb7270a3a1cd15be4895ea052d.tar.gz
bash-object-system-c3141fc3b3c8d6fb7270a3a1cd15be4895ea052d.tar.bz2
bash-object-system-c3141fc3b3c8d6fb7270a3a1cd15be4895ea052d.zip
flailing about with MOPs
Diffstat (limited to 'meta-stuff.rst.txt')
-rw-r--r--meta-stuff.rst.txt14
1 files changed, 14 insertions, 0 deletions
diff --git a/meta-stuff.rst.txt b/meta-stuff.rst.txt
new file mode 100644
index 0000000..df8061e
--- /dev/null
+++ b/meta-stuff.rst.txt
@@ -0,0 +1,14 @@
+class ``Foo`` has class-level storage vars ``bos_class__Foo__$thing``
+
+* ``bos_class__${class}__isa``
+* ``bos_class__${class}__meta``
+
+``invoke $class $id $method @etc`` if ``$class/$method`` is defined,
+call it; otherwise delegate to the meta-class
+``bos_class__${class}__meta`` by calling ``$metaclass/invoke $class
+$id $method @etc``
+
+then we have ``bos/mop/base/invoke`` and
+``bos/mop/base/find-method-into`` and
+``bos_class__bos__mop__base__meta="bos-dispatch/invoke bos/mop/base 0"``
+so its metaclass instance is an instance of itself