From c3141fc3b3c8d6fb7270a3a1cd15be4895ea052d Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Thu, 13 Jul 2023 17:29:26 +0100 Subject: flailing about with MOPs --- meta-stuff.rst.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 meta-stuff.rst.txt (limited to 'meta-stuff.rst.txt') 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 -- cgit v1.2.3