diff options
author | Gianni Ceccarelli <gianni.ceccarelli@broadbean.com> | 2023-07-13 17:29:26 +0100 |
---|---|---|
committer | Gianni Ceccarelli <gianni.ceccarelli@broadbean.com> | 2023-07-13 17:29:26 +0100 |
commit | c3141fc3b3c8d6fb7270a3a1cd15be4895ea052d (patch) | |
tree | 51e0ab1cca45f5d9491ab04b2a9ea80425a40474 /meta-stuff.rst.txt | |
parent | some docs (diff) | |
download | bash-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.txt | 14 |
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 |