From 3625758272c5de407e0db3f9e8414edec5654f63 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sat, 2 May 2026 13:49:29 -0400 Subject: [PATCH] xo-gc stack: refactor + streamline. Retiring unused Collector typealiases. Fix #include topology. Fix/improve write barrier setup. --- xo-alloc2/idl/Collector.json5 | 3 +- xo-alloc2/idl/GCObject.json5 | 14 ++-- xo-alloc2/include/xo/alloc2/GCObject.hpp | 2 - .../include/xo/alloc2/GCObjectVisitor.hpp | 1 + .../include/xo/alloc2/alloc/RAllocator.hpp | 7 ++ .../xo/alloc2/alloc/RAllocator_aux.hpp | 17 ++++ xo-alloc2/include/xo/alloc2/gc/ACollector.hpp | 1 + xo-alloc2/include/xo/alloc2/gc/AGCObject.hpp | 3 - .../include/xo/alloc2/gc/ICollector_Xfer.hpp | 8 ++ .../xo/alloc2/gc/IGCObjectVisitor_Xfer.hpp | 8 ++ .../include/xo/alloc2/gc/IGCObject_Any.hpp | 1 - .../include/xo/alloc2/gc/IGCObject_Xfer.hpp | 10 ++- .../include/xo/alloc2/gc/RCollector_aux.hpp | 77 +------------------ xo-alloc2/include/xo/alloc2/gc/RGCObject.hpp | 1 - .../xo/alloc2/gc/RGCObjectVisitor_aux.hpp | 61 +++++++++++++++ .../xo/alloc2/visitor/AResourceVisitor.hpp | 2 +- .../alloc2/visitor/IResourceVisitor_Xfer.hpp | 8 ++ .../define/IGCObject_DDefineExpr.hpp | 1 - .../expression2/detail/IExpression_Xfer.hpp | 8 ++ .../detail/IGCObject_DApplyExpr.hpp | 1 - .../detail/IGCObject_DConstant.hpp | 1 - .../detail/IGCObject_DIfElseExpr.hpp | 1 - .../detail/IGCObject_DLambdaExpr.hpp | 1 - .../detail/IGCObject_DSequenceExpr.hpp | 1 - .../expression2/detail/IGCObject_DVarRef.hpp | 1 - .../symtab/IGCObject_DGlobalSymtab.hpp | 1 - .../symtab/IGCObject_DLocalSymtab.hpp | 1 - .../expression2/symtab/ISymbolTable_Xfer.hpp | 8 ++ .../typename/IGCObject_DTypename.hpp | 1 - .../variable/IGCObject_DVariable.hpp | 1 - xo-facet/codegen/genfacet | 4 +- xo-facet/codegen/iface_facet_xfer.hpp.j2 | 8 ++ xo-gc/include/xo/gc/DX1Collector.hpp | 4 +- xo-gc/include/xo/gc/MutationLogStore.hpp | 22 ++++-- .../xo/gc/detail/ICollector_DX1Collector.hpp | 1 + xo-gc/src/gc/DX1Collector.cpp | 30 +++----- xo-gc/src/gc/MutationLogStore.cpp | 40 ++++++---- xo-gc/utest/DMockCollector.cpp | 7 +- .../define/IGCObject_DVsmDefContFrame.hpp | 1 - .../detail/IGCObject_DClosure.hpp | 1 - .../IGCObject_DVsmApplyClosureFrame.hpp | 1 - .../detail/IGCObject_DVsmApplyFrame.hpp | 1 - .../detail/IGCObject_DVsmEvalArgsFrame.hpp | 1 - .../interpreter2/env/IGCObject_DLocalEnv.hpp | 1 - .../ifelse/IGCObject_DVsmIfElseContFrame.hpp | 1 - .../sequence/IGCObject_DVsmSeqContFrame.hpp | 3 +- .../IGCObject_DVirtualSchematikaMachine.hpp | 1 - .../xo/numeric/detail/INumeric_Xfer.hpp | 8 ++ .../xo/object2/array/IGCObject_DArray.hpp | 1 - .../xo/object2/boolean/IGCObject_DBoolean.hpp | 1 - .../dictionary/IGCObject_DDictionary.hpp | 1 - .../object2/error/IGCObject_DRuntimeError.hpp | 1 - .../xo/object2/list/IGCObject_DList.hpp | 1 - .../xo/object2/number/IGCObject_DFloat.hpp | 1 - .../xo/object2/number/IGCObject_DInteger.hpp | 1 - .../xo/object2/sequence/ISequence_Xfer.hpp | 8 ++ xo-object2/src/object2/DArray.cpp | 4 +- xo-object2/src/object2/DList.cpp | 8 +- .../detail/IGCObject_DPrimitive_gco_0.hpp | 1 - .../detail/IGCObject_DPrimitive_gco_1_gco.hpp | 1 - ...IGCObject_DPrimitive_gco_2_dict_string.hpp | 1 - .../IGCObject_DPrimitive_gco_2_gco_gco.hpp | 1 - ...bject_DPrimitive_gco_3_dict_string_gco.hpp | 1 - .../xo/procedure2/detail/IProcedure_Xfer.hpp | 8 ++ .../detail/IRuntimeContext_Xfer.hpp | 8 ++ .../xo/reader2/env/IGCObject_DGlobalEnv.hpp | 1 - .../parser/IGCObject_DSchematikaParser.hpp | 1 - .../reader2/ssm/ISyntaxStateMachine_Xfer.hpp | 8 ++ .../stringtable2/string/IGCObject_DString.hpp | 3 +- .../uniquestring/IGCObject_DUniqueString.hpp | 1 - .../xo/type/array/IGCObject_DArrayType.hpp | 1 - .../xo/type/atomic/IGCObject_DAtomicType.hpp | 1 - .../type/function/IGCObject_DFunctionType.hpp | 1 - .../xo/type/list/IGCObject_DListType.hpp | 1 - xo-type/include/xo/type/type/IType_Xfer.hpp | 8 ++ .../xo/type/typevar/IGCObject_DTypeVarRef.hpp | 1 - 76 files changed, 279 insertions(+), 182 deletions(-) create mode 100644 xo-alloc2/include/xo/alloc2/gc/RGCObjectVisitor_aux.hpp diff --git a/xo-alloc2/idl/Collector.json5 b/xo-alloc2/idl/Collector.json5 index 9803afeb..6bc4755d 100644 --- a/xo-alloc2/idl/Collector.json5 +++ b/xo-alloc2/idl/Collector.json5 @@ -4,7 +4,7 @@ output_hpp_dir: "include/xo/alloc2", output_impl_subdir: "gc", includes: [ - "", + "", "", "", // "", @@ -254,6 +254,7 @@ name: "assign_member", doc: [ "Assign pointer @p p_lhs to destination @p rhs, within parent allocation @p parent", + "DEPRECATED. Only used in MockCollector for gc unit test", "", "Require: gc not in progress", ], diff --git a/xo-alloc2/idl/GCObject.json5 b/xo-alloc2/idl/GCObject.json5 index cd320d06..2cd7eed8 100644 --- a/xo-alloc2/idl/GCObject.json5 +++ b/xo-alloc2/idl/GCObject.json5 @@ -4,8 +4,8 @@ output_hpp_dir: "include/xo/alloc2", output_impl_subdir: "gc", includes: [ - "", - "", + "", +// "", "", "", "", @@ -38,11 +38,11 @@ doc: ["fomo allocator type"], definition: "xo::mm::AAllocator", }, - { - name: "ACollector", - doc: ["fomo collector type"], - definition: "xo::mm::ACollector", - }, +// { +// name: "ACollector", +// doc: ["fomo collector type"], +// definition: "xo::mm::ACollector", +// }, { name: "AGCObjectVisitor", doc: ["fomo collector type"], diff --git a/xo-alloc2/include/xo/alloc2/GCObject.hpp b/xo-alloc2/include/xo/alloc2/GCObject.hpp index 4733b019..dc018e44 100644 --- a/xo-alloc2/include/xo/alloc2/GCObject.hpp +++ b/xo-alloc2/include/xo/alloc2/GCObject.hpp @@ -18,6 +18,4 @@ #include "gc/IGCObject_Xfer.hpp" #include "gc/RGCObject.hpp" -#include "gc/RCollector_aux.hpp" - /* end GCObject.hpp */ diff --git a/xo-alloc2/include/xo/alloc2/GCObjectVisitor.hpp b/xo-alloc2/include/xo/alloc2/GCObjectVisitor.hpp index 7805cc93..3573b56a 100644 --- a/xo-alloc2/include/xo/alloc2/GCObjectVisitor.hpp +++ b/xo-alloc2/include/xo/alloc2/GCObjectVisitor.hpp @@ -18,5 +18,6 @@ #include "gc/IGCObjectVisitor_Xfer.hpp" #include "gc/RGCObjectVisitor.hpp" +#include "gc/RGCObjectVisitor_aux.hpp" /* end GCObjectVisitor.hpp */ diff --git a/xo-alloc2/include/xo/alloc2/alloc/RAllocator.hpp b/xo-alloc2/include/xo/alloc2/alloc/RAllocator.hpp index e661e59d..f15dffca 100644 --- a/xo-alloc2/include/xo/alloc2/alloc/RAllocator.hpp +++ b/xo-alloc2/include/xo/alloc2/alloc/RAllocator.hpp @@ -85,6 +85,13 @@ namespace xo { obj * p_lhs, obj rhs) noexcept; + // Need _drepr suffix to distinguish from .barrier_assign() + // see [RAllocator_aux.hpp] for implementation + template + void barrier_assign_drepr(void * parent, + DRepr ** lhs_data, + DRepr * rhs_data); + static bool _valid; }; diff --git a/xo-alloc2/include/xo/alloc2/alloc/RAllocator_aux.hpp b/xo-alloc2/include/xo/alloc2/alloc/RAllocator_aux.hpp index b6e6f0dd..c83a1dda 100644 --- a/xo-alloc2/include/xo/alloc2/alloc/RAllocator_aux.hpp +++ b/xo-alloc2/include/xo/alloc2/alloc/RAllocator_aux.hpp @@ -38,6 +38,23 @@ namespace xo { rhs.iface(), rhs.opaque_data()); } + template + template + void + RAllocator::barrier_assign_drepr(void * parent, + DRepr ** lhs_data, + DRepr * rhs_data) + { + // need to get AGCObject i/face that goes with DRepr. + obj rhs_gco(rhs_data); + + this->barrier_assign_aux(parent, + nullptr /*not needed*/, + lhs_data, + rhs_gco.iface(), + rhs_data); + } + } /*namespace mm*/ } /*namespace xo*/ diff --git a/xo-alloc2/include/xo/alloc2/gc/ACollector.hpp b/xo-alloc2/include/xo/alloc2/gc/ACollector.hpp index 2daab3ca..19be0039 100644 --- a/xo-alloc2/include/xo/alloc2/gc/ACollector.hpp +++ b/xo-alloc2/include/xo/alloc2/gc/ACollector.hpp @@ -116,6 +116,7 @@ Return false if installation fails (e.g. memory exhausted) **/ **/ virtual void request_gc(Opaque data, Generation upto) = 0; /** Assign pointer @p p_lhs to destination @p rhs, within parent allocation @p parent +DEPRECATED. Only used in MockCollector for gc unit test Require: gc not in progress **/ virtual void assign_member(Opaque data, void * parent, obj * p_lhs, obj & rhs) = 0; diff --git a/xo-alloc2/include/xo/alloc2/gc/AGCObject.hpp b/xo-alloc2/include/xo/alloc2/gc/AGCObject.hpp index dc6e79dd..fb0add50 100644 --- a/xo-alloc2/include/xo/alloc2/gc/AGCObject.hpp +++ b/xo-alloc2/include/xo/alloc2/gc/AGCObject.hpp @@ -15,7 +15,6 @@ // includes (via {facet_includes}) #include -#include #include #include #include @@ -48,8 +47,6 @@ public: /** fomo allocator type **/ using AAllocator = xo::mm::AAllocator; /** fomo collector type **/ - using ACollector = xo::mm::ACollector; - /** fomo collector type **/ using AGCObjectVisitor = xo::mm::AGCObjectVisitor; /** hint arg when navigating object graph **/ using VisitReason = xo::mm::VisitReason; diff --git a/xo-alloc2/include/xo/alloc2/gc/ICollector_Xfer.hpp b/xo-alloc2/include/xo/alloc2/gc/ICollector_Xfer.hpp index 77975287..00881e8c 100644 --- a/xo-alloc2/include/xo/alloc2/gc/ICollector_Xfer.hpp +++ b/xo-alloc2/include/xo/alloc2/gc/ICollector_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/Collector.json5] + * + * variables: + * {facet_hpp_fname} -> Collector.hpp + * {impl_hpp_subdir} -> gc + * {facet_ns1} -> xo + * {facet_detail_subdir} -> gc + * {abstract_facet_fname} -> ACollector.hpp **/ #pragma once +#include "ACollector.hpp" #include #include #include diff --git a/xo-alloc2/include/xo/alloc2/gc/IGCObjectVisitor_Xfer.hpp b/xo-alloc2/include/xo/alloc2/gc/IGCObjectVisitor_Xfer.hpp index 0cc60872..d09d1800 100644 --- a/xo-alloc2/include/xo/alloc2/gc/IGCObjectVisitor_Xfer.hpp +++ b/xo-alloc2/include/xo/alloc2/gc/IGCObjectVisitor_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/GCObjectVisitor.json5] + * + * variables: + * {facet_hpp_fname} -> GCObjectVisitor.hpp + * {impl_hpp_subdir} -> gc + * {facet_ns1} -> xo + * {facet_detail_subdir} -> gc + * {abstract_facet_fname} -> AGCObjectVisitor.hpp **/ #pragma once +#include "AGCObjectVisitor.hpp" #include #include #include diff --git a/xo-alloc2/include/xo/alloc2/gc/IGCObject_Any.hpp b/xo-alloc2/include/xo/alloc2/gc/IGCObject_Any.hpp index f9ff5f87..c1e2854f 100644 --- a/xo-alloc2/include/xo/alloc2/gc/IGCObject_Any.hpp +++ b/xo-alloc2/include/xo/alloc2/gc/IGCObject_Any.hpp @@ -46,7 +46,6 @@ namespace mm { using typeseq = xo::facet::typeseq; using size_type = AGCObject::size_type; using AAllocator = AGCObject::AAllocator; - using ACollector = AGCObject::ACollector; using AGCObjectVisitor = AGCObject::AGCObjectVisitor; using VisitReason = AGCObject::VisitReason; diff --git a/xo-alloc2/include/xo/alloc2/gc/IGCObject_Xfer.hpp b/xo-alloc2/include/xo/alloc2/gc/IGCObject_Xfer.hpp index bceec9a2..f5a1ff47 100644 --- a/xo-alloc2/include/xo/alloc2/gc/IGCObject_Xfer.hpp +++ b/xo-alloc2/include/xo/alloc2/gc/IGCObject_Xfer.hpp @@ -9,12 +9,19 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/GCObject.json5] + * + * variables: + * {facet_hpp_fname} -> GCObject.hpp + * {impl_hpp_subdir} -> gc + * {facet_ns1} -> xo + * {facet_detail_subdir} -> gc + * {abstract_facet_fname} -> AGCObject.hpp **/ #pragma once +#include "AGCObject.hpp" #include -#include #include #include #include @@ -34,7 +41,6 @@ namespace mm { using typeseq = AGCObject::typeseq; using size_type = AGCObject::size_type; using AAllocator = AGCObject::AAllocator; - using ACollector = AGCObject::ACollector; using AGCObjectVisitor = AGCObject::AGCObjectVisitor; using VisitReason = AGCObject::VisitReason; ///@} diff --git a/xo-alloc2/include/xo/alloc2/gc/RCollector_aux.hpp b/xo-alloc2/include/xo/alloc2/gc/RCollector_aux.hpp index 0aa86f0d..8198f644 100644 --- a/xo-alloc2/include/xo/alloc2/gc/RCollector_aux.hpp +++ b/xo-alloc2/include/xo/alloc2/gc/RCollector_aux.hpp @@ -17,82 +17,6 @@ namespace xo { class ACollector; class AGCObject; - /** defined here to avoid #include cycle, since - * template obj awkward to make available - * in RCollector.hpp - **/ - template - template - void - RGCObjectVisitor::visit_child(VisitReason reason, - xo::facet::obj * p_obj) - { - this->visit_child(reason, p_obj->iface(), (void **)&(p_obj->data_)); - } - - template - template - void - RGCObjectVisitor::visit_child(VisitReason reason, DRepr ** p_repr) - { - // fetch static interface for DRepr (strip const: FacetImplementation specializations use non-const DRepr) - auto iface = xo::facet::impl_for>(); - - this->visit_child(reason, &iface, (void **)p_repr); - } - - template - template - requires (!std::is_same_v) - void - RGCObjectVisitor::visit_poly_child(VisitReason reason, obj * p_objs) - { - if (*p_objs) { - auto e = xo::facet::FacetRegistry::instance().variant(*p_objs); - - this->visit_child(reason, e.iface(), (void **)&(p_objs->data_)); - } - } - - // ----- DEPRECATED ----- - // - // Moving these methods to RGCObjectVisitor - - /** defined here to avoid #include cycle, since - * template obj awkward to make available - * in RCollector.hpp - **/ - template - template - void - RCollector::forward_inplace(xo::facet::obj * p_obj) - { - this->forward_inplace(p_obj->iface(), (void **)&(p_obj->data_)); - } - - template - template - void - RCollector::forward_inplace(DRepr ** p_repr) - { - // fetch static interface for DRepr (strip const: FacetImplementation specializations use non-const DRepr) - auto iface = xo::facet::impl_for>(); - - this->forward_inplace(&iface, (void **)p_repr); - } - - template - template - requires (!std::is_same_v) - void - RCollector::forward_pivot_inplace(obj * p_objs) - { - if (*p_objs) { - auto e = xo::facet::FacetRegistry::instance().variant(*p_objs); - this->forward_inplace(e.iface(), (void **)&(p_objs->data_)); - } - } - // ----- mm_do_assign ----- /** gc-aware assignment; engage special book-keeping for cross-gen pointers **/ @@ -110,6 +34,7 @@ namespace xo { *p_lhs = rhs; } }; + } /*namespace mm*/ } /*namespace xo*/ diff --git a/xo-alloc2/include/xo/alloc2/gc/RGCObject.hpp b/xo-alloc2/include/xo/alloc2/gc/RGCObject.hpp index 5b401554..871a55ec 100644 --- a/xo-alloc2/include/xo/alloc2/gc/RGCObject.hpp +++ b/xo-alloc2/include/xo/alloc2/gc/RGCObject.hpp @@ -33,7 +33,6 @@ public: using typeseq = xo::reflect::typeseq; using size_type = AGCObject::size_type; using AAllocator = AGCObject::AAllocator; - using ACollector = AGCObject::ACollector; using AGCObjectVisitor = AGCObject::AGCObjectVisitor; using VisitReason = AGCObject::VisitReason; ///@} diff --git a/xo-alloc2/include/xo/alloc2/gc/RGCObjectVisitor_aux.hpp b/xo-alloc2/include/xo/alloc2/gc/RGCObjectVisitor_aux.hpp new file mode 100644 index 00000000..c393b40a --- /dev/null +++ b/xo-alloc2/include/xo/alloc2/gc/RGCObjectVisitor_aux.hpp @@ -0,0 +1,61 @@ +/** @file RGCObjectVisitor_aux.hpp + * + * Out-of-line definitions for RCollector template methods + * that depend on RGCObject (avoiding #include cycle in RCollector.hpp). + * + * Included via user_hpp_includes in GCObject.json5. + * + * @author Roland Conybeare + **/ + +#pragma once + +#include "gc/RGCObjectVisitor.hpp" +#include + +namespace xo { + namespace mm { + class ACollector; + class AGCObject; + + /** defined here to avoid #include cycle, since + * template obj awkward to make available + * in RCollector.hpp + **/ + template + template + void + RGCObjectVisitor::visit_child(VisitReason reason, + xo::facet::obj * p_obj) + { + this->visit_child(reason, p_obj->iface(), (void **)&(p_obj->data_)); + } + + template + template + void + RGCObjectVisitor::visit_child(VisitReason reason, DRepr ** p_repr) + { + // fetch static interface for DRepr (strip const: FacetImplementation specializations use non-const DRepr) + auto iface = xo::facet::impl_for>(); + + this->visit_child(reason, &iface, (void **)p_repr); + } + + template + template + requires (!std::is_same_v) + void + RGCObjectVisitor::visit_poly_child(VisitReason reason, obj * p_objs) + { + if (*p_objs) { + auto e = xo::facet::FacetRegistry::instance().variant(*p_objs); + + this->visit_child(reason, e.iface(), (void **)&(p_objs->data_)); + } + } + + } /*namespace mm*/ +} /*namespace xo*/ + +/* end RCollector_aux.hpp */ diff --git a/xo-alloc2/include/xo/alloc2/visitor/AResourceVisitor.hpp b/xo-alloc2/include/xo/alloc2/visitor/AResourceVisitor.hpp index 16a9b0b4..64d9b136 100644 --- a/xo-alloc2/include/xo/alloc2/visitor/AResourceVisitor.hpp +++ b/xo-alloc2/include/xo/alloc2/visitor/AResourceVisitor.hpp @@ -14,7 +14,7 @@ #pragma once // includes (via {facet_includes}) -#include "Allocator_basic.hpp" +#include "Allocator.hpp" #include #include #include diff --git a/xo-alloc2/include/xo/alloc2/visitor/IResourceVisitor_Xfer.hpp b/xo-alloc2/include/xo/alloc2/visitor/IResourceVisitor_Xfer.hpp index ded806e4..7d6a6f46 100644 --- a/xo-alloc2/include/xo/alloc2/visitor/IResourceVisitor_Xfer.hpp +++ b/xo-alloc2/include/xo/alloc2/visitor/IResourceVisitor_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/ResourceVisitor.json5] + * + * variables: + * {facet_hpp_fname} -> ResourceVisitor.hpp + * {impl_hpp_subdir} -> visitor + * {facet_ns1} -> xo + * {facet_detail_subdir} -> visitor + * {abstract_facet_fname} -> AResourceVisitor.hpp **/ #pragma once +#include "AResourceVisitor.hpp" #include "Allocator.hpp" namespace xo { diff --git a/xo-expression2/include/xo/expression2/define/IGCObject_DDefineExpr.hpp b/xo-expression2/include/xo/expression2/define/IGCObject_DDefineExpr.hpp index c07c8e4e..e98403fe 100644 --- a/xo-expression2/include/xo/expression2/define/IGCObject_DDefineExpr.hpp +++ b/xo-expression2/include/xo/expression2/define/IGCObject_DDefineExpr.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-expression2/include/xo/expression2/detail/IExpression_Xfer.hpp b/xo-expression2/include/xo/expression2/detail/IExpression_Xfer.hpp index 095e21ed..c1e78815 100644 --- a/xo-expression2/include/xo/expression2/detail/IExpression_Xfer.hpp +++ b/xo-expression2/include/xo/expression2/detail/IExpression_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/Expression.json5] + * + * variables: + * {facet_hpp_fname} -> Expression.hpp + * {impl_hpp_subdir} -> detail + * {facet_ns1} -> xo + * {facet_detail_subdir} -> detail + * {abstract_facet_fname} -> AExpression.hpp **/ #pragma once +#include "AExpression.hpp" #include "TypeRef.hpp" #include "exprtype.hpp" #include diff --git a/xo-expression2/include/xo/expression2/detail/IGCObject_DApplyExpr.hpp b/xo-expression2/include/xo/expression2/detail/IGCObject_DApplyExpr.hpp index a1a2fac4..9ce7cdda 100644 --- a/xo-expression2/include/xo/expression2/detail/IGCObject_DApplyExpr.hpp +++ b/xo-expression2/include/xo/expression2/detail/IGCObject_DApplyExpr.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-expression2/include/xo/expression2/detail/IGCObject_DConstant.hpp b/xo-expression2/include/xo/expression2/detail/IGCObject_DConstant.hpp index 82783948..f5c9de84 100644 --- a/xo-expression2/include/xo/expression2/detail/IGCObject_DConstant.hpp +++ b/xo-expression2/include/xo/expression2/detail/IGCObject_DConstant.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-expression2/include/xo/expression2/detail/IGCObject_DIfElseExpr.hpp b/xo-expression2/include/xo/expression2/detail/IGCObject_DIfElseExpr.hpp index 3156fe58..ad5862a2 100644 --- a/xo-expression2/include/xo/expression2/detail/IGCObject_DIfElseExpr.hpp +++ b/xo-expression2/include/xo/expression2/detail/IGCObject_DIfElseExpr.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-expression2/include/xo/expression2/detail/IGCObject_DLambdaExpr.hpp b/xo-expression2/include/xo/expression2/detail/IGCObject_DLambdaExpr.hpp index ec4faded..71b37d58 100644 --- a/xo-expression2/include/xo/expression2/detail/IGCObject_DLambdaExpr.hpp +++ b/xo-expression2/include/xo/expression2/detail/IGCObject_DLambdaExpr.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-expression2/include/xo/expression2/detail/IGCObject_DSequenceExpr.hpp b/xo-expression2/include/xo/expression2/detail/IGCObject_DSequenceExpr.hpp index 1b927e01..d11f6341 100644 --- a/xo-expression2/include/xo/expression2/detail/IGCObject_DSequenceExpr.hpp +++ b/xo-expression2/include/xo/expression2/detail/IGCObject_DSequenceExpr.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-expression2/include/xo/expression2/detail/IGCObject_DVarRef.hpp b/xo-expression2/include/xo/expression2/detail/IGCObject_DVarRef.hpp index 085999f9..9b3172d8 100644 --- a/xo-expression2/include/xo/expression2/detail/IGCObject_DVarRef.hpp +++ b/xo-expression2/include/xo/expression2/detail/IGCObject_DVarRef.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-expression2/include/xo/expression2/symtab/IGCObject_DGlobalSymtab.hpp b/xo-expression2/include/xo/expression2/symtab/IGCObject_DGlobalSymtab.hpp index ee24adfb..0731ab56 100644 --- a/xo-expression2/include/xo/expression2/symtab/IGCObject_DGlobalSymtab.hpp +++ b/xo-expression2/include/xo/expression2/symtab/IGCObject_DGlobalSymtab.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-expression2/include/xo/expression2/symtab/IGCObject_DLocalSymtab.hpp b/xo-expression2/include/xo/expression2/symtab/IGCObject_DLocalSymtab.hpp index cbd98904..92226d63 100644 --- a/xo-expression2/include/xo/expression2/symtab/IGCObject_DLocalSymtab.hpp +++ b/xo-expression2/include/xo/expression2/symtab/IGCObject_DLocalSymtab.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-expression2/include/xo/expression2/symtab/ISymbolTable_Xfer.hpp b/xo-expression2/include/xo/expression2/symtab/ISymbolTable_Xfer.hpp index db81237f..03b32ada 100644 --- a/xo-expression2/include/xo/expression2/symtab/ISymbolTable_Xfer.hpp +++ b/xo-expression2/include/xo/expression2/symtab/ISymbolTable_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/SymbolTable.json5] + * + * variables: + * {facet_hpp_fname} -> SymbolTable.hpp + * {impl_hpp_subdir} -> symtab + * {facet_ns1} -> xo + * {facet_detail_subdir} -> symtab + * {abstract_facet_fname} -> ASymbolTable.hpp **/ #pragma once +#include "ASymbolTable.hpp" #include "Binding.hpp" #include "DUniqueString.hpp" diff --git a/xo-expression2/include/xo/expression2/typename/IGCObject_DTypename.hpp b/xo-expression2/include/xo/expression2/typename/IGCObject_DTypename.hpp index cdd91734..14c0f336 100644 --- a/xo-expression2/include/xo/expression2/typename/IGCObject_DTypename.hpp +++ b/xo-expression2/include/xo/expression2/typename/IGCObject_DTypename.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-expression2/include/xo/expression2/variable/IGCObject_DVariable.hpp b/xo-expression2/include/xo/expression2/variable/IGCObject_DVariable.hpp index 9e173090..fbb60525 100644 --- a/xo-expression2/include/xo/expression2/variable/IGCObject_DVariable.hpp +++ b/xo-expression2/include/xo/expression2/variable/IGCObject_DVariable.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-facet/codegen/genfacet b/xo-facet/codegen/genfacet index cb6517a6..e1b32be6 100755 --- a/xo-facet/codegen/genfacet +++ b/xo-facet/codegen/genfacet @@ -154,11 +154,13 @@ def gen_facet(env, # RFoo.hpp router_facet_hpp_fname = f'{router_facet}.hpp' + # REMINDER: this context for FACET definition, e.g. AGCObject context = { 'genfacet': 'xo-facet/codegen/genfacet', 'genfacet_input': idl_fname, 'using_dox': using_dox, - 'impl_hpp_subdir': facet_detail_subdir, + 'impl_hpp_subdir': facet_detail_subdir, # legacy name + 'facet_detail_subdir': facet_detail_subdir, # 'facet_hpp_j2': 'facet.hpp.j2', 'facet_includes': facet_includes, diff --git a/xo-facet/codegen/iface_facet_xfer.hpp.j2 b/xo-facet/codegen/iface_facet_xfer.hpp.j2 index 80bd79c1..0a418f68 100644 --- a/xo-facet/codegen/iface_facet_xfer.hpp.j2 +++ b/xo-facet/codegen/iface_facet_xfer.hpp.j2 @@ -9,10 +9,18 @@ * [{{ iface_facet_any_hpp_j2 }}] * 3. idl for facet methods * [{{ idl_fname }}] + * + * variables: + * {facet_hpp_fname} -> {{facet_hpp_fname}} + * {impl_hpp_subdir} -> {{impl_hpp_subdir}} + * {facet_ns1} -> {{facet_ns1}} + * {facet_detail_subdir} -> {{facet_detail_subdir}} + * {abstract_facet_fname} -> {{abstract_facet_fname}} **/ #pragma once +#include "{{abstract_facet_fname}}" {% for include_fname in facet_includes %} #include {{include_fname}} {% endfor %} diff --git a/xo-gc/include/xo/gc/DX1Collector.hpp b/xo-gc/include/xo/gc/DX1Collector.hpp index 84e04c5c..e8b930fe 100644 --- a/xo-gc/include/xo/gc/DX1Collector.hpp +++ b/xo-gc/include/xo/gc/DX1Collector.hpp @@ -307,7 +307,9 @@ namespace xo { // ----- mutation ----- - /** Modify a gc-owned pointer @p *p_lhs, within allocation @p parent, + /** DEPRECATED. Prefer .barrier_assign_aux(). + * + * Modify a gc-owned pointer @p *p_lhs, within allocation @p parent, * to point to @p rhs. * * Motivation: need special handling for cross-generational pointers with diff --git a/xo-gc/include/xo/gc/MutationLogStore.hpp b/xo-gc/include/xo/gc/MutationLogStore.hpp index 018b2869..cc389555 100644 --- a/xo-gc/include/xo/gc/MutationLogStore.hpp +++ b/xo-gc/include/xo/gc/MutationLogStore.hpp @@ -55,14 +55,22 @@ namespace xo { void verify_ok() noexcept; /** on behalf of gc-aware object store @p gc, - * change the value of a child pointer at @p p_lhs - * with parent object @p parent. p_lhs and parent must belong - * to the same allocation. + * change the value of a child pointer {@p lhs_iface, @p *lhs_data} + * with parent object @p parent, to point to {@p rhs_iface, @p rhs_data} + * p_lhs and parent must belong to the same allocation. + * + * @p lhs_iface can be nullptr, if parent holds ordinary pointer + * instead of fop (i.e. DRepr* instead of obj). + * + * @p rhs_iface must be non-null, it's load-bearing for mlog entry + * snapshot member. **/ - void assign_member(GCObjectStore * gc, - void * parent, - obj * p_lhs, - obj rhs); + void assign_member_aux(GCObjectStore * gc, + void * parent, + AGCObject * lhs_iface, + void ** lhs_data, + AGCObject * rhs_iface, + void * rhs_data); /** swap {to, from} roles **/ diff --git a/xo-gc/include/xo/gc/detail/ICollector_DX1Collector.hpp b/xo-gc/include/xo/gc/detail/ICollector_DX1Collector.hpp index d9b43a5c..285db9ff 100644 --- a/xo-gc/include/xo/gc/detail/ICollector_DX1Collector.hpp +++ b/xo-gc/include/xo/gc/detail/ICollector_DX1Collector.hpp @@ -104,6 +104,7 @@ Return false if installation fails (e.g. memory exhausted) **/ **/ static void request_gc(DX1Collector & self, Generation upto); /** Assign pointer @p p_lhs to destination @p rhs, within parent allocation @p parent +DEPRECATED. Only used in MockCollector for gc unit test Require: gc not in progress **/ static void assign_member(DX1Collector & self, void * parent, obj * p_lhs, obj & rhs); diff --git a/xo-gc/src/gc/DX1Collector.cpp b/xo-gc/src/gc/DX1Collector.cpp index af7adff9..076f3480 100644 --- a/xo-gc/src/gc/DX1Collector.cpp +++ b/xo-gc/src/gc/DX1Collector.cpp @@ -620,24 +620,11 @@ namespace xo { void DX1Collector::assign_member(void * parent, obj * p_lhs, obj rhs) { - scope log(XO_DEBUG(config_.debug_flag_), - xtag("parent", parent), xtag("lhs", p_lhs), xtag("rhs", rhs.data())); - - // ++ stats.n_mutation_; - - if (runstate_.is_running()) { - *p_lhs = rhs; - - // for removal of all doubt: - // don't log mutations during GC cycle. - // That said: should not be happening! - assert(false); - - return; - } else { - mlog_store_.assign_member(&gco_store_, parent, p_lhs, rhs); - - } + this->barrier_assign_aux(parent, + p_lhs->iface(), + p_lhs->opaque_data_addr(), + rhs.iface(), + rhs.opaque_data()); } /*assign_member*/ DX1CollectorIterator @@ -702,7 +689,12 @@ namespace xo { xtag("lhs.iface", lhs_iface), xtag("&lhs.data", lhs_data), xtag("rhs.iface", rhs_iface), xtag("rhs.data", rhs_data)); - // see .assign_member() + mlog_store_.assign_member_aux(&gco_store_, + parent, + lhs_iface, + lhs_data, + rhs_iface, + rhs_data); } } /*namespace mm*/ } /*namespace xo*/ diff --git a/xo-gc/src/gc/MutationLogStore.cpp b/xo-gc/src/gc/MutationLogStore.cpp index e57f40d4..82a7d782 100644 --- a/xo-gc/src/gc/MutationLogStore.cpp +++ b/xo-gc/src/gc/MutationLogStore.cpp @@ -139,17 +139,31 @@ namespace xo { } /*verify_ok*/ void - MutationLogStore::assign_member(GCObjectStore * gco_store, - void * parent, - obj * p_lhs, - obj rhs) + MutationLogStore::assign_member_aux(GCObjectStore * gco_store, + void * parent, + AGCObject * lhs_iface, + void ** lhs_addr, + AGCObject * rhs_iface, + void * rhs_data) { scope log(XO_DEBUG(config_.debug_flag_), - xtag("parent", parent), xtag("lhs", p_lhs), xtag("rhs", rhs.data())); + xtag("parent", parent), + xtag("lhs.iface", lhs_iface), + xtag("&lhs.data", lhs_addr), + xtag("rhs.iface", rhs_iface), + xtag("rhs.data", rhs_data)); // ++ stats.n_mutation_; - *p_lhs = rhs; + assert(parent); + assert(lhs_addr); + assert(rhs_iface); + assert(rhs_data); + + if (lhs_iface) + *lhs_iface = *rhs_iface; + + *lhs_addr = rhs_data; if (!config_.enabled_flag_) { log && log(xtag("msg", "noop b/c incremental gc disabled")); @@ -162,7 +176,7 @@ namespace xo { // 1. generation of lhs // 2. generation of rhs - Generation src_g = gco_store->generation_of(Role::to_space(), p_lhs); + Generation src_g = gco_store->generation_of(Role::to_space(), lhs_addr); if (src_g.is_sentinel()) { log && log(xtag("msg", "noop because src not gc-owned")); @@ -172,7 +186,7 @@ namespace xo { return; } - Generation dest_g = gco_store->generation_of(Role::to_space(), rhs.data()); + Generation dest_g = gco_store->generation_of(Role::to_space(), rhs_data); if (dest_g.is_sentinel()) { log && log(xtag("msg", "noop because dest not gc-owned")); @@ -197,7 +211,7 @@ namespace xo { const DArena * arena = gco_store->get_space(Role::to_space(), src_g); const DArena::header_type * src_hdr = arena->obj2hdr(parent); - const DArena::header_type * dest_hdr = arena->obj2hdr(rhs.data()); + const DArena::header_type * dest_hdr = arena->obj2hdr(rhs_data); assert(src_hdr && dest_hdr); @@ -222,16 +236,16 @@ namespace xo { // control here: we have an older->younger pointer, need to log it - void ** lhs_addr = reinterpret_cast(&(p_lhs->data_)); + obj snap(rhs_iface, rhs_data); - this->_append_mutation(dest_g, parent, lhs_addr, rhs); + this->_append_mutation(dest_g, parent, lhs_addr, snap); } void MutationLogStore::_append_mutation(Generation dest_g, void * parent, void ** addr, - obj rhs) + obj snap) { // mlog keyed by generation in which pointer _destination_ resides: // collection that moves destination generation around needs to also @@ -239,7 +253,7 @@ namespace xo { // MutationLog * mlog = this->mlog_[Role::to_space()][dest_g]; - mlog->push_back(MutationLogEntry(parent, addr, rhs)); + mlog->push_back(MutationLogEntry(parent, addr, snap)); } void diff --git a/xo-gc/utest/DMockCollector.cpp b/xo-gc/utest/DMockCollector.cpp index eb180685..a4573f2d 100644 --- a/xo-gc/utest/DMockCollector.cpp +++ b/xo-gc/utest/DMockCollector.cpp @@ -91,7 +91,12 @@ namespace xo { void DMockCollector::assign_member(void * parent, obj * p_lhs, obj & rhs) { - mls_->assign_member(gcos_, parent, p_lhs, rhs); + mls_->assign_member_aux(gcos_, + parent, + p_lhs->iface(), + p_lhs->opaque_data_addr(), + rhs.iface(), + rhs.opaque_data()); } void * diff --git a/xo-interpreter2/include/xo/interpreter2/define/IGCObject_DVsmDefContFrame.hpp b/xo-interpreter2/include/xo/interpreter2/define/IGCObject_DVsmDefContFrame.hpp index 972cbbbd..ed1ba4c2 100644 --- a/xo-interpreter2/include/xo/interpreter2/define/IGCObject_DVsmDefContFrame.hpp +++ b/xo-interpreter2/include/xo/interpreter2/define/IGCObject_DVsmDefContFrame.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DClosure.hpp b/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DClosure.hpp index e7326396..26985fd6 100644 --- a/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DClosure.hpp +++ b/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DClosure.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmApplyClosureFrame.hpp b/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmApplyClosureFrame.hpp index 1113a679..3f3a452c 100644 --- a/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmApplyClosureFrame.hpp +++ b/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmApplyClosureFrame.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmApplyFrame.hpp b/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmApplyFrame.hpp index 469d3a0c..0228f54e 100644 --- a/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmApplyFrame.hpp +++ b/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmApplyFrame.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmEvalArgsFrame.hpp b/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmEvalArgsFrame.hpp index 0a3ce07f..0bdf0784 100644 --- a/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmEvalArgsFrame.hpp +++ b/xo-interpreter2/include/xo/interpreter2/detail/IGCObject_DVsmEvalArgsFrame.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-interpreter2/include/xo/interpreter2/env/IGCObject_DLocalEnv.hpp b/xo-interpreter2/include/xo/interpreter2/env/IGCObject_DLocalEnv.hpp index 84207c36..ce5789bd 100644 --- a/xo-interpreter2/include/xo/interpreter2/env/IGCObject_DLocalEnv.hpp +++ b/xo-interpreter2/include/xo/interpreter2/env/IGCObject_DLocalEnv.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-interpreter2/include/xo/interpreter2/ifelse/IGCObject_DVsmIfElseContFrame.hpp b/xo-interpreter2/include/xo/interpreter2/ifelse/IGCObject_DVsmIfElseContFrame.hpp index ff3545a1..77accb20 100644 --- a/xo-interpreter2/include/xo/interpreter2/ifelse/IGCObject_DVsmIfElseContFrame.hpp +++ b/xo-interpreter2/include/xo/interpreter2/ifelse/IGCObject_DVsmIfElseContFrame.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-interpreter2/include/xo/interpreter2/sequence/IGCObject_DVsmSeqContFrame.hpp b/xo-interpreter2/include/xo/interpreter2/sequence/IGCObject_DVsmSeqContFrame.hpp index f45f9d0b..d289f7ff 100644 --- a/xo-interpreter2/include/xo/interpreter2/sequence/IGCObject_DVsmSeqContFrame.hpp +++ b/xo-interpreter2/include/xo/interpreter2/sequence/IGCObject_DVsmSeqContFrame.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; @@ -67,4 +66,4 @@ when @p fn invokes garbage collector reentry point **/ } /*namespace scm*/ } /*namespace xo*/ -/* end */ +/* end */ \ No newline at end of file diff --git a/xo-interpreter2/include/xo/interpreter2/vsm/IGCObject_DVirtualSchematikaMachine.hpp b/xo-interpreter2/include/xo/interpreter2/vsm/IGCObject_DVirtualSchematikaMachine.hpp index 85faa8ee..62856b6a 100644 --- a/xo-interpreter2/include/xo/interpreter2/vsm/IGCObject_DVirtualSchematikaMachine.hpp +++ b/xo-interpreter2/include/xo/interpreter2/vsm/IGCObject_DVirtualSchematikaMachine.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-numeric/include/xo/numeric/detail/INumeric_Xfer.hpp b/xo-numeric/include/xo/numeric/detail/INumeric_Xfer.hpp index c9cd2473..bca62e2f 100644 --- a/xo-numeric/include/xo/numeric/detail/INumeric_Xfer.hpp +++ b/xo-numeric/include/xo/numeric/detail/INumeric_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/Numeric.json5] + * + * variables: + * {facet_hpp_fname} -> Numeric.hpp + * {impl_hpp_subdir} -> detail + * {facet_ns1} -> xo + * {facet_detail_subdir} -> detail + * {abstract_facet_fname} -> ANumeric.hpp **/ #pragma once +#include "ANumeric.hpp" namespace xo { namespace scm { diff --git a/xo-object2/include/xo/object2/array/IGCObject_DArray.hpp b/xo-object2/include/xo/object2/array/IGCObject_DArray.hpp index 4cd5f026..31ab5742 100644 --- a/xo-object2/include/xo/object2/array/IGCObject_DArray.hpp +++ b/xo-object2/include/xo/object2/array/IGCObject_DArray.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-object2/include/xo/object2/boolean/IGCObject_DBoolean.hpp b/xo-object2/include/xo/object2/boolean/IGCObject_DBoolean.hpp index 8ab00b09..a3cff7ca 100644 --- a/xo-object2/include/xo/object2/boolean/IGCObject_DBoolean.hpp +++ b/xo-object2/include/xo/object2/boolean/IGCObject_DBoolean.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-object2/include/xo/object2/dictionary/IGCObject_DDictionary.hpp b/xo-object2/include/xo/object2/dictionary/IGCObject_DDictionary.hpp index 52d093bb..acaffdf4 100644 --- a/xo-object2/include/xo/object2/dictionary/IGCObject_DDictionary.hpp +++ b/xo-object2/include/xo/object2/dictionary/IGCObject_DDictionary.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-object2/include/xo/object2/error/IGCObject_DRuntimeError.hpp b/xo-object2/include/xo/object2/error/IGCObject_DRuntimeError.hpp index 19e378b4..7f31367c 100644 --- a/xo-object2/include/xo/object2/error/IGCObject_DRuntimeError.hpp +++ b/xo-object2/include/xo/object2/error/IGCObject_DRuntimeError.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-object2/include/xo/object2/list/IGCObject_DList.hpp b/xo-object2/include/xo/object2/list/IGCObject_DList.hpp index 10463fef..94de87d4 100644 --- a/xo-object2/include/xo/object2/list/IGCObject_DList.hpp +++ b/xo-object2/include/xo/object2/list/IGCObject_DList.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-object2/include/xo/object2/number/IGCObject_DFloat.hpp b/xo-object2/include/xo/object2/number/IGCObject_DFloat.hpp index 0d9042f6..9383014f 100644 --- a/xo-object2/include/xo/object2/number/IGCObject_DFloat.hpp +++ b/xo-object2/include/xo/object2/number/IGCObject_DFloat.hpp @@ -42,7 +42,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-object2/include/xo/object2/number/IGCObject_DInteger.hpp b/xo-object2/include/xo/object2/number/IGCObject_DInteger.hpp index 5d6d944f..b116532f 100644 --- a/xo-object2/include/xo/object2/number/IGCObject_DInteger.hpp +++ b/xo-object2/include/xo/object2/number/IGCObject_DInteger.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-object2/include/xo/object2/sequence/ISequence_Xfer.hpp b/xo-object2/include/xo/object2/sequence/ISequence_Xfer.hpp index e0511e41..a18ad124 100644 --- a/xo-object2/include/xo/object2/sequence/ISequence_Xfer.hpp +++ b/xo-object2/include/xo/object2/sequence/ISequence_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/Sequence.json5] + * + * variables: + * {facet_hpp_fname} -> Sequence.hpp + * {impl_hpp_subdir} -> sequence + * {facet_ns1} -> xo + * {facet_detail_subdir} -> sequence + * {abstract_facet_fname} -> ASequence.hpp **/ #pragma once +#include "ASequence.hpp" #include namespace xo { diff --git a/xo-object2/src/object2/DArray.cpp b/xo-object2/src/object2/DArray.cpp index 49c3d64f..b22b748e 100644 --- a/xo-object2/src/object2/DArray.cpp +++ b/xo-object2/src/object2/DArray.cpp @@ -4,7 +4,7 @@ **/ #include "DArray.hpp" -#include "gc/RCollector_aux.hpp" +//#include "gc/RCollector_aux.hpp" #include #include #include @@ -16,7 +16,7 @@ namespace xo { using xo::print::APrintable; using xo::facet::FacetRegistry; using xo::mm::AGCObject; - using xo::mm::mm_do_assign; + //using xo::mm::mm_do_assign; using xo::facet::typeseq; namespace scm { diff --git a/xo-object2/src/object2/DList.cpp b/xo-object2/src/object2/DList.cpp index b8494c34..98c82a09 100644 --- a/xo-object2/src/object2/DList.cpp +++ b/xo-object2/src/object2/DList.cpp @@ -6,7 +6,13 @@ #include "DList.hpp" #include "list/IPrintable_DList.hpp" #include "list/IGCObject_DList.hpp" +#include #include + +// need Collector for mm_do_assign() +#include +#include // for mm_do_assign() + #include #include #include @@ -137,7 +143,7 @@ namespace xo { { scope log(XO_DEBUG(true), xtag("gc.data", gc.data_)); - mm_do_assign(gc, this, &head_, rhs); + xo::mm::mm_do_assign(gc, this, &head_, rhs); } void diff --git a/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_0.hpp b/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_0.hpp index 63986f85..93e4f5d4 100644 --- a/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_0.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_0.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_1_gco.hpp b/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_1_gco.hpp index c15dedb4..40388dff 100644 --- a/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_1_gco.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_1_gco.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_2_dict_string.hpp b/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_2_dict_string.hpp index 6cc1754d..29705521 100644 --- a/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_2_dict_string.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_2_dict_string.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_2_gco_gco.hpp b/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_2_gco_gco.hpp index 52c46f49..13ab7b3e 100644 --- a/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_2_gco_gco.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_2_gco_gco.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_3_dict_string_gco.hpp b/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_3_dict_string_gco.hpp index cc8294e2..bcf0f9ba 100644 --- a/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_3_dict_string_gco.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/IGCObject_DPrimitive_gco_3_dict_string_gco.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-procedure2/include/xo/procedure2/detail/IProcedure_Xfer.hpp b/xo-procedure2/include/xo/procedure2/detail/IProcedure_Xfer.hpp index 59742f32..ebbbeb41 100644 --- a/xo-procedure2/include/xo/procedure2/detail/IProcedure_Xfer.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/IProcedure_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/Procedure.json5] + * + * variables: + * {facet_hpp_fname} -> Procedure.hpp + * {impl_hpp_subdir} -> detail + * {facet_ns1} -> xo + * {facet_detail_subdir} -> detail + * {abstract_facet_fname} -> AProcedure.hpp **/ #pragma once +#include "AProcedure.hpp" #include "RuntimeContext.hpp" #include diff --git a/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp b/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp index 07b30748..ad33ea54 100644 --- a/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp +++ b/xo-procedure2/include/xo/procedure2/detail/IRuntimeContext_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/RuntimeContext.json5] + * + * variables: + * {facet_hpp_fname} -> RuntimeContext.hpp + * {impl_hpp_subdir} -> detail + * {facet_ns1} -> xo + * {facet_detail_subdir} -> detail + * {abstract_facet_fname} -> ARuntimeContext.hpp **/ #pragma once +#include "ARuntimeContext.hpp" #include #include #include diff --git a/xo-reader2/include/xo/reader2/env/IGCObject_DGlobalEnv.hpp b/xo-reader2/include/xo/reader2/env/IGCObject_DGlobalEnv.hpp index 8efa3c27..b8fb15f0 100644 --- a/xo-reader2/include/xo/reader2/env/IGCObject_DGlobalEnv.hpp +++ b/xo-reader2/include/xo/reader2/env/IGCObject_DGlobalEnv.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-reader2/include/xo/reader2/parser/IGCObject_DSchematikaParser.hpp b/xo-reader2/include/xo/reader2/parser/IGCObject_DSchematikaParser.hpp index 586678cd..0143ba76 100644 --- a/xo-reader2/include/xo/reader2/parser/IGCObject_DSchematikaParser.hpp +++ b/xo-reader2/include/xo/reader2/parser/IGCObject_DSchematikaParser.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-reader2/include/xo/reader2/ssm/ISyntaxStateMachine_Xfer.hpp b/xo-reader2/include/xo/reader2/ssm/ISyntaxStateMachine_Xfer.hpp index 1d971d3b..e0c3bee5 100644 --- a/xo-reader2/include/xo/reader2/ssm/ISyntaxStateMachine_Xfer.hpp +++ b/xo-reader2/include/xo/reader2/ssm/ISyntaxStateMachine_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/SyntaxStateMachine.json5] + * + * variables: + * {facet_hpp_fname} -> SyntaxStateMachine.hpp + * {impl_hpp_subdir} -> ssm + * {facet_ns1} -> xo + * {facet_detail_subdir} -> ssm + * {abstract_facet_fname} -> ASyntaxStateMachine.hpp **/ #pragma once +#include "ASyntaxStateMachine.hpp" #include "ParserStateMachine.hpp" #include "syntaxstatetype.hpp" #include diff --git a/xo-stringtable2/include/xo/stringtable2/string/IGCObject_DString.hpp b/xo-stringtable2/include/xo/stringtable2/string/IGCObject_DString.hpp index 3f8ec159..5d8a9063 100644 --- a/xo-stringtable2/include/xo/stringtable2/string/IGCObject_DString.hpp +++ b/xo-stringtable2/include/xo/stringtable2/string/IGCObject_DString.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - //using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; @@ -67,4 +66,4 @@ when @p fn invokes garbage collector reentry point **/ } /*namespace scm*/ } /*namespace xo*/ -/* end */ +/* end */ \ No newline at end of file diff --git a/xo-stringtable2/include/xo/stringtable2/uniquestring/IGCObject_DUniqueString.hpp b/xo-stringtable2/include/xo/stringtable2/uniquestring/IGCObject_DUniqueString.hpp index 77c0ea6d..7fe96c5b 100644 --- a/xo-stringtable2/include/xo/stringtable2/uniquestring/IGCObject_DUniqueString.hpp +++ b/xo-stringtable2/include/xo/stringtable2/uniquestring/IGCObject_DUniqueString.hpp @@ -43,7 +43,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-type/include/xo/type/array/IGCObject_DArrayType.hpp b/xo-type/include/xo/type/array/IGCObject_DArrayType.hpp index 9cbede83..067608e2 100644 --- a/xo-type/include/xo/type/array/IGCObject_DArrayType.hpp +++ b/xo-type/include/xo/type/array/IGCObject_DArrayType.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-type/include/xo/type/atomic/IGCObject_DAtomicType.hpp b/xo-type/include/xo/type/atomic/IGCObject_DAtomicType.hpp index d29bd6a7..a4c7f1d6 100644 --- a/xo-type/include/xo/type/atomic/IGCObject_DAtomicType.hpp +++ b/xo-type/include/xo/type/atomic/IGCObject_DAtomicType.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-type/include/xo/type/function/IGCObject_DFunctionType.hpp b/xo-type/include/xo/type/function/IGCObject_DFunctionType.hpp index 0d544878..38d9f005 100644 --- a/xo-type/include/xo/type/function/IGCObject_DFunctionType.hpp +++ b/xo-type/include/xo/type/function/IGCObject_DFunctionType.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-type/include/xo/type/list/IGCObject_DListType.hpp b/xo-type/include/xo/type/list/IGCObject_DListType.hpp index edb17816..5d5c5fb8 100644 --- a/xo-type/include/xo/type/list/IGCObject_DListType.hpp +++ b/xo-type/include/xo/type/list/IGCObject_DListType.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque; diff --git a/xo-type/include/xo/type/type/IType_Xfer.hpp b/xo-type/include/xo/type/type/IType_Xfer.hpp index dbc82bc1..7e5ab5ea 100644 --- a/xo-type/include/xo/type/type/IType_Xfer.hpp +++ b/xo-type/include/xo/type/type/IType_Xfer.hpp @@ -9,10 +9,18 @@ * [iface_facet_any.hpp.j2] * 3. idl for facet methods * [idl/Type.json5] + * + * variables: + * {facet_hpp_fname} -> Type.hpp + * {impl_hpp_subdir} -> type + * {facet_ns1} -> xo + * {facet_detail_subdir} -> type + * {abstract_facet_fname} -> AType.hpp **/ #pragma once +#include "AType.hpp" #include #include diff --git a/xo-type/include/xo/type/typevar/IGCObject_DTypeVarRef.hpp b/xo-type/include/xo/type/typevar/IGCObject_DTypeVarRef.hpp index 1ba0a87c..8b6b382b 100644 --- a/xo-type/include/xo/type/typevar/IGCObject_DTypeVarRef.hpp +++ b/xo-type/include/xo/type/typevar/IGCObject_DTypeVarRef.hpp @@ -41,7 +41,6 @@ namespace xo { ///@{ using size_type = xo::mm::AGCObject::size_type; using AAllocator = xo::mm::AGCObject::AAllocator; - using ACollector = xo::mm::AGCObject::ACollector; using AGCObjectVisitor = xo::mm::AGCObject::AGCObjectVisitor; using VisitReason = xo::mm::AGCObject::VisitReason; using Copaque = xo::mm::AGCObject::Copaque;