From f9298daa51f5800f31ee7cdca5797ee57ae2e163 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Thu, 3 Nov 2022 20:28:27 -0700 Subject: New feature: struct preludes. A struct prelude definition associates one or more future defstruct (by struct name) with clauses which are implicitly inserted into the defstruct. It is purely a macro-time construct, customizing the expansion behavior of defstruct. * stdlib/struct.tl (*struct-prelude, *struct-prelude-alists*): New special variables holding hash tables. (defstruct): Before processing slot-specs, augment it with the contents of the prelude definitions associated with this struct name. (define-struct-prelude): New macro. * autoload.c (struct_set_entries): define-struct-prelude is interned and triggers autoload of struct module. * tests/012/oop-prelude.tl: New file. * tests/012/oop-prelude.expected: Likewise. * txr.1: Documented. * stdlib/doc-syms.tl: Updated. --- tests/012/oop-prelude.expected | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tests/012/oop-prelude.expected (limited to 'tests/012/oop-prelude.expected') diff --git a/tests/012/oop-prelude.expected b/tests/012/oop-prelude.expected new file mode 100644 index 00000000..daf379e0 --- /dev/null +++ b/tests/012/oop-prelude.expected @@ -0,0 +1,5 @@ +#S(fox) created +#S(bear) created +inside with-object +#S(bear) finalized +#S(fox) finalized -- cgit v1.2.3