From cf5029274fef56f736cb623d4789ba3920451cb4 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Wed, 4 Feb 2026 16:25:37 -0500 Subject: [PATCH] xo-procedure2: streamline DSimpleRcx + regen facet *.pp --- CMakeLists.txt | 6 +++--- include/xo/procedure2/Procedure.hpp | 4 ++-- include/xo/procedure2/RuntimeContext.hpp | 4 ++-- include/xo/procedure2/SimpleRcx.hpp | 11 +++++++++++ include/xo/procedure2/detail/AProcedure.hpp | 6 ++++-- include/xo/procedure2/detail/ARuntimeContext.hpp | 6 ++++-- .../detail/IGCObject_DPrimitive_gco_2_gco_gco.hpp | 2 +- .../detail/IPrintable_DPrimitive_gco_2_gco_gco.hpp | 2 +- include/xo/procedure2/detail/IProcedure_Any.hpp | 9 ++++++--- .../detail/IProcedure_DPrimitive_gco_2_gco_gco.hpp | 2 +- include/xo/procedure2/detail/IProcedure_Xfer.hpp | 9 ++++++--- .../xo/procedure2/detail/IRuntimeContext_Any.hpp | 9 ++++++--- .../detail/IRuntimeContext_DSimpleRcx.hpp | 2 +- .../xo/procedure2/detail/IRuntimeContext_Xfer.hpp | 9 ++++++--- include/xo/procedure2/detail/RProcedure.hpp | 9 ++++++--- include/xo/procedure2/detail/RRuntimeContext.hpp | 9 ++++++--- .../IGCObject_DPrimitive_gco_2_gco_gco.cpp | 4 ++-- .../IPrintable_DPrimitive_gco_2_gco_gco.cpp | 4 ++-- src/procedure2/IProcedure_Any.cpp | 2 +- .../IProcedure_DPrimitive_gco_2_gco_gco.cpp | 4 ++-- src/procedure2/IRuntimeContext_Any.cpp | 2 +- src/procedure2/IRuntimeContext_DSimpleRcx.cpp | 4 ++-- src/procedure2/procedure2_register_facets.cpp | 13 +++++++------ 23 files changed, 83 insertions(+), 49 deletions(-) create mode 100644 include/xo/procedure2/SimpleRcx.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index ad8673d..a6fd4d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -91,12 +91,12 @@ xo_add_genfacetimpl( OUTPUT_CPP_DIR src/procedure2 ) -add_subdirectory(src/procedure2) -add_subdirectory(utest) +xo_add_genfacet_all(xo-procedure2-genfacet-all) # ---------------------------------------------------------------- -xo_add_genfacet_all(xo-procedure2-genfacet-all) +add_subdirectory(src/procedure2) +add_subdirectory(utest) # ---------------------------------------------------------------- # cmake export diff --git a/include/xo/procedure2/Procedure.hpp b/include/xo/procedure2/Procedure.hpp index 784608e..05d1b66 100644 --- a/include/xo/procedure2/Procedure.hpp +++ b/include/xo/procedure2/Procedure.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/Procedure.json5] * 2. jinja2 template for facet .hpp file: @@ -19,4 +19,4 @@ #include "detail/RProcedure.hpp" -/* end Procedure.hpp */ \ No newline at end of file +/* end Procedure.hpp */ diff --git a/include/xo/procedure2/RuntimeContext.hpp b/include/xo/procedure2/RuntimeContext.hpp index 3241451..4889194 100644 --- a/include/xo/procedure2/RuntimeContext.hpp +++ b/include/xo/procedure2/RuntimeContext.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/RuntimeContext.json5] * 2. jinja2 template for facet .hpp file: @@ -19,4 +19,4 @@ #include "detail/RRuntimeContext.hpp" -/* end RuntimeContext.hpp */ \ No newline at end of file +/* end RuntimeContext.hpp */ diff --git a/include/xo/procedure2/SimpleRcx.hpp b/include/xo/procedure2/SimpleRcx.hpp new file mode 100644 index 0000000..2fdc492 --- /dev/null +++ b/include/xo/procedure2/SimpleRcx.hpp @@ -0,0 +1,11 @@ +/** @file SimpleRcx.hpp + * + * @author Roland Conybeare, Feb 2026 + **/ + +#pragma once + +#include "DSimpleRcx.hpp" +#include "detail/IRuntimeContext_DSimpleRcx.hpp" + +/* end SimpleRcx.hpp */ diff --git a/include/xo/procedure2/detail/AProcedure.hpp b/include/xo/procedure2/detail/AProcedure.hpp index 63a4da9..eb119fb 100644 --- a/include/xo/procedure2/detail/AProcedure.hpp +++ b/include/xo/procedure2/detail/AProcedure.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/Procedure.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -49,6 +49,8 @@ public: // const methods /** RTTI: unique id# for actual runtime data representation **/ virtual typeseq _typeseq() const noexcept = 0; + /** destroy instance @p d; calls c++ dtor only for actual runtime type; does not recover memory **/ + virtual void _drop(Opaque d) const noexcept = 0; /** true iff procedure takes n arguments **/ virtual bool is_nary(Copaque data) const noexcept = 0; /** number of arguments. -1 for n-ary **/ @@ -76,4 +78,4 @@ using IProcedure_ImplType = xo::facet::FacetImplType; } /*namespace scm*/ } /*namespace xo*/ -/* AProcedure.hpp */ \ No newline at end of file +/* AProcedure.hpp */ diff --git a/include/xo/procedure2/detail/ARuntimeContext.hpp b/include/xo/procedure2/detail/ARuntimeContext.hpp index 4e96bc8..0983187 100644 --- a/include/xo/procedure2/detail/ARuntimeContext.hpp +++ b/include/xo/procedure2/detail/ARuntimeContext.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/RuntimeContext.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -47,6 +47,8 @@ public: // const methods /** RTTI: unique id# for actual runtime data representation **/ virtual typeseq _typeseq() const noexcept = 0; + /** destroy instance @p d; calls c++ dtor only for actual runtime type; does not recover memory **/ + virtual void _drop(Opaque d) const noexcept = 0; /** default allocator to use for objects **/ virtual obj allocator(Copaque data) const noexcept = 0; @@ -70,4 +72,4 @@ using IRuntimeContext_ImplType = xo::facet::FacetImplType allocator(Copaque) const noexcept override { _fatal(); } // nonconst methods @@ -83,4 +86,4 @@ namespace scm { } /*namespace scm */ } /*namespace xo */ -/* IRuntimeContext_Any.hpp */ \ No newline at end of file +/* IRuntimeContext_Any.hpp */ diff --git a/include/xo/procedure2/detail/IRuntimeContext_DSimpleRcx.hpp b/include/xo/procedure2/detail/IRuntimeContext_DSimpleRcx.hpp index 06f14bc..247b676 100644 --- a/include/xo/procedure2/detail/IRuntimeContext_DSimpleRcx.hpp +++ b/include/xo/procedure2/detail/IRuntimeContext_DSimpleRcx.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/IRuntimeContext_DSimpleRcx.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp b/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp index cd71b73..a4545b8 100644 --- a/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp +++ b/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/RuntimeContext.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -39,8 +39,11 @@ namespace scm { // from ARuntimeContext - // const methods + // builtin methods typeseq _typeseq() const noexcept override { return s_typeseq; } + void _drop(Opaque d) const noexcept override { _dcast(d).~DRepr(); } + + // const methods obj allocator(Copaque data) const noexcept override { return I::allocator(_dcast(data)); } @@ -78,4 +81,4 @@ namespace scm { } /*namespace scm */ } /*namespace xo*/ -/* end IRuntimeContext_Xfer.hpp */ \ No newline at end of file +/* end IRuntimeContext_Xfer.hpp */ diff --git a/include/xo/procedure2/detail/RProcedure.hpp b/include/xo/procedure2/detail/RProcedure.hpp index 93599ae..61bcb7f 100644 --- a/include/xo/procedure2/detail/RProcedure.hpp +++ b/include/xo/procedure2/detail/RProcedure.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/Procedure.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -46,8 +46,11 @@ public: /** @defgroup scm-procedure-router-methods **/ ///@{ - // const methods + // builtin methods typeseq _typeseq() const noexcept { return O::iface()->_typeseq(); } + void _drop() const noexcept { O::iface()->_drop(O::data()); } + + // const methods bool is_nary() const noexcept { return O::iface()->is_nary(O::data()); } @@ -83,4 +86,4 @@ namespace xo { namespace facet { }; } } -/* end RProcedure.hpp */ \ No newline at end of file +/* end RProcedure.hpp */ diff --git a/include/xo/procedure2/detail/RRuntimeContext.hpp b/include/xo/procedure2/detail/RRuntimeContext.hpp index b06227c..a6df812 100644 --- a/include/xo/procedure2/detail/RRuntimeContext.hpp +++ b/include/xo/procedure2/detail/RRuntimeContext.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/RuntimeContext.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -46,8 +46,11 @@ public: /** @defgroup scm-runtimecontext-router-methods **/ ///@{ - // const methods + // builtin methods typeseq _typeseq() const noexcept { return O::iface()->_typeseq(); } + void _drop() const noexcept { O::iface()->_drop(O::data()); } + + // const methods obj allocator() const noexcept { return O::iface()->allocator(O::data()); } @@ -77,4 +80,4 @@ namespace xo { namespace facet { }; } } -/* end RRuntimeContext.hpp */ \ No newline at end of file +/* end RRuntimeContext.hpp */ diff --git a/src/procedure2/IGCObject_DPrimitive_gco_2_gco_gco.cpp b/src/procedure2/IGCObject_DPrimitive_gco_2_gco_gco.cpp index bd88e9f..b889d0d 100644 --- a/src/procedure2/IGCObject_DPrimitive_gco_2_gco_gco.cpp +++ b/src/procedure2/IGCObject_DPrimitive_gco_2_gco_gco.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/IGCObject_DPrimitive_gco_2_gco_gco.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -36,4 +36,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end IGCObject_DPrimitive_gco_2_gco_gco.cpp */ \ No newline at end of file +/* end IGCObject_DPrimitive_gco_2_gco_gco.cpp */ diff --git a/src/procedure2/IPrintable_DPrimitive_gco_2_gco_gco.cpp b/src/procedure2/IPrintable_DPrimitive_gco_2_gco_gco.cpp index 2c79132..c8b7c2d 100644 --- a/src/procedure2/IPrintable_DPrimitive_gco_2_gco_gco.cpp +++ b/src/procedure2/IPrintable_DPrimitive_gco_2_gco_gco.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DPrimitive_gco_2_gco_gco.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -25,4 +25,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end IPrintable_DPrimitive_gco_2_gco_gco.cpp */ \ No newline at end of file +/* end IPrintable_DPrimitive_gco_2_gco_gco.cpp */ diff --git a/src/procedure2/IProcedure_Any.cpp b/src/procedure2/IProcedure_Any.cpp index d28d98e..dcdf9ee 100644 --- a/src/procedure2/IProcedure_Any.cpp +++ b/src/procedure2/IProcedure_Any.cpp @@ -44,4 +44,4 @@ IProcedure_Any::apply_nocheck(Opaque, obj, const DArray *) -> } /*namespace scm*/ } /*namespace xo*/ -/* end IProcedure_Any.cpp */ \ No newline at end of file +/* end IProcedure_Any.cpp */ diff --git a/src/procedure2/IProcedure_DPrimitive_gco_2_gco_gco.cpp b/src/procedure2/IProcedure_DPrimitive_gco_2_gco_gco.cpp index 67e73c9..1207429 100644 --- a/src/procedure2/IProcedure_DPrimitive_gco_2_gco_gco.cpp +++ b/src/procedure2/IProcedure_DPrimitive_gco_2_gco_gco.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/IProcedure_DPrimitive_gco_2_gco_gco.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -36,4 +36,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end IProcedure_DPrimitive_gco_2_gco_gco.cpp */ \ No newline at end of file +/* end IProcedure_DPrimitive_gco_2_gco_gco.cpp */ diff --git a/src/procedure2/IRuntimeContext_Any.cpp b/src/procedure2/IRuntimeContext_Any.cpp index a9c5b55..1ea5859 100644 --- a/src/procedure2/IRuntimeContext_Any.cpp +++ b/src/procedure2/IRuntimeContext_Any.cpp @@ -38,4 +38,4 @@ IRuntimeContext_Any::_valid } /*namespace scm*/ } /*namespace xo*/ -/* end IRuntimeContext_Any.cpp */ \ No newline at end of file +/* end IRuntimeContext_Any.cpp */ diff --git a/src/procedure2/IRuntimeContext_DSimpleRcx.cpp b/src/procedure2/IRuntimeContext_DSimpleRcx.cpp index 4ec8378..f057220 100644 --- a/src/procedure2/IRuntimeContext_DSimpleRcx.cpp +++ b/src/procedure2/IRuntimeContext_DSimpleRcx.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [xo-facet/codegen/genfacet] * arguments: * --input [idl/IRuntimeContext_DSimpleRcx.json5] * 2. jinja2 template for abstract facet .hpp file: @@ -25,4 +25,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end IRuntimeContext_DSimpleRcx.cpp */ \ No newline at end of file +/* end IRuntimeContext_DSimpleRcx.cpp */ diff --git a/src/procedure2/procedure2_register_facets.cpp b/src/procedure2/procedure2_register_facets.cpp index 5b84b4d..6905e0b 100644 --- a/src/procedure2/procedure2_register_facets.cpp +++ b/src/procedure2/procedure2_register_facets.cpp @@ -3,12 +3,9 @@ * @author Roland Conybeare, Jan 2026 **/ -#include "DSimpleRcx.hpp" -#include "detail/IRuntimeContext_DSimpleRcx.hpp" - -#include "DPrimitive_gco_2_gco_gco.hpp" -#include "detail/IGCObject_DPrimitive_gco_2_gco_gco.hpp" -#include "detail/IPrintable_DPrimitive_gco_2_gco_gco.hpp" +#include "Procedure.hpp" +#include "SimpleRcx.hpp" +#include "Primitive_gco_2_gco_gco.hpp" #include #include @@ -28,12 +25,16 @@ namespace xo { FacetRegistry::register_impl(); + FacetRegistry::register_impl(); FacetRegistry::register_impl(); FacetRegistry::register_impl(); log && log(xtag("DSimpleRcx.tseq", typeseq::id())); log && log(xtag("DPrimitive_gco_2_gco_gco.tseq", typeseq::id())); + log && log(xtag("ARuntimeContext.tseq", typeseq::id())); + log && log(xtag("AProcedure.tseq", typeseq::id())); + return true; }