diff --git a/default.nix b/default.nix index 59a80c66..e6204753 100644 --- a/default.nix +++ b/default.nix @@ -150,6 +150,7 @@ let xo-allocutil = self.callPackage pkgs/xo-allocutil.nix { stdenv = jitStdenv; }; xo-alloc = self.callPackage pkgs/xo-alloc.nix { stdenv = jitStdenv; buildDocs = true; }; xo-alloc2 = self.callPackage pkgs/xo-alloc2.nix { stdenv = jitStdenv; buildDocs = true; }; + xo-stringtable2 = self.callPackage pkgs/xo-stringtable2.nix { stdenv = jitStdenv; }; xo-gc = self.callPackage pkgs/xo-gc.nix { stdenv = jitStdenv; buildDocs = true; }; xo-object = self.callPackage pkgs/xo-object.nix { stdenv = jitStdenv; }; xo-object2 = self.callPackage pkgs/xo-object2.nix { stdenv = jitStdenv; }; @@ -500,6 +501,7 @@ in allocutil = pkgs.xo-allocutil; alloc = pkgs.xo-alloc; alloc2 = pkgs.xo-alloc2; + stringtable2 = pkgs.xo-stringtable2; gc = pkgs.xo-gc; object = pkgs.xo-object; object2 = pkgs.xo-object2; diff --git a/pkgs/xo-object2.nix b/pkgs/xo-object2.nix index 93de3b0c..7a6b22fa 100644 --- a/pkgs/xo-object2.nix +++ b/pkgs/xo-object2.nix @@ -10,8 +10,9 @@ # xo-reflectutil, # xo-alloc, # xo-randomgen, + xo-stringtable2, xo-reflect, - xo-gc, + xo-alloc2, xo-printable2, xo-facet, xo-subsys, @@ -40,7 +41,8 @@ stdenv.mkDerivation (finalattrs: ]; propagatedBuildInputs = [ xo-reflect - xo-gc + xo-alloc2 + xo-stringtable2 xo-printable2 xo-subsys xo-facet diff --git a/xo-alloc2/idl/GCObject.json5 b/xo-alloc2/idl/GCObject.json5 index 43747582..0bbb170d 100644 --- a/xo-alloc2/idl/GCObject.json5 +++ b/xo-alloc2/idl/GCObject.json5 @@ -1,24 +1,26 @@ { mode: "facet", - output_cpp_dir: "src/gc", - output_hpp_dir: "include/xo/gc", - output_impl_subdir: "detail", + output_cpp_dir: "src/alloc2", + output_hpp_dir: "include/xo/alloc2", + output_impl_subdir: "gc", includes: [ "", - "", + "", "", "", ], // extra includes in GCObject.hpp, if any - user_hpp_includes: [], + user_hpp_includes: [ + "\"gc/RCollector_aux.hpp\"", + ], namespace1: "xo", namespace2: "mm", pretext: [ "namespace xo { namespace mm { class ACollector; }}", ], facet: "GCObject", - detail_subdir: "detail", - brief: "xxx", + detail_subdir: "gc", + brief: "gc-aware object, providing collector hooks", using_doxygen: true, doc: [ "GC hooks for collector-aware data" diff --git a/xo-alloc2/include/xo/alloc2/GCObject.hpp b/xo-alloc2/include/xo/alloc2/GCObject.hpp index b7758ace..4733b019 100644 --- a/xo-alloc2/include/xo/alloc2/GCObject.hpp +++ b/xo-alloc2/include/xo/alloc2/GCObject.hpp @@ -18,30 +18,6 @@ #include "gc/IGCObject_Xfer.hpp" #include "gc/RGCObject.hpp" -namespace xo { - namespace mm { - /** defined here to avoid #include cycle, since - * template obj awkward to make available there - **/ - 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 - auto iface = xo::facet::impl_for(); - - this->forward_inplace(&iface, (void **)p_repr); - } - } -} +#include "gc/RCollector_aux.hpp" /* end GCObject.hpp */ diff --git a/xo-gc/include/xo/gc/GCObjectConversion.hpp b/xo-alloc2/include/xo/alloc2/GCObjectConversion.hpp similarity index 100% rename from xo-gc/include/xo/gc/GCObjectConversion.hpp rename to xo-alloc2/include/xo/alloc2/GCObjectConversion.hpp diff --git a/xo-alloc2/include/xo/alloc2/gc/AGCObject.hpp b/xo-alloc2/include/xo/alloc2/gc/AGCObject.hpp index 87fc6664..c420f0ff 100644 --- a/xo-alloc2/include/xo/alloc2/gc/AGCObject.hpp +++ b/xo-alloc2/include/xo/alloc2/gc/AGCObject.hpp @@ -31,7 +31,7 @@ using Copaque = const void *; using Opaque = void *; /** - GC hooks for collector-aware data +GC hooks for collector-aware data **/ class AGCObject { public: diff --git a/xo-alloc2/include/xo/alloc2/gc/RCollector_aux.hpp b/xo-alloc2/include/xo/alloc2/gc/RCollector_aux.hpp new file mode 100644 index 00000000..b85c73b5 --- /dev/null +++ b/xo-alloc2/include/xo/alloc2/gc/RCollector_aux.hpp @@ -0,0 +1,40 @@ +/** @file RCollector_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 + +namespace xo { + namespace mm { + /** 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 + auto iface = xo::facet::impl_for(); + + this->forward_inplace(&iface, (void **)p_repr); + } + } +} + +/* end RCollector_aux.hpp */ diff --git a/xo-alloc2/include/xo/gc/GCObject.hpp b/xo-alloc2/include/xo/gc/GCObject.hpp deleted file mode 100644 index 759e9376..00000000 --- a/xo-alloc2/include/xo/gc/GCObject.hpp +++ /dev/null @@ -1,22 +0,0 @@ -/** @file GCObject.hpp - * - * Generated automagically from ingredients: - * 1. code generator: - * [xo-facet/codegen/genfacet] - * arguments: - * --input [idl/GCObject.json5] - * 2. jinja2 template for facet .hpp file: - * [facet.hpp.j2] - * 3. idl for facet methods - * [idl/GCObject.json5] - **/ - -#pragma once - -#include "detail/AGCObject.hpp" -#include "detail/IGCObject_Any.hpp" -#include "detail/IGCObject_Xfer.hpp" -#include "detail/RGCObject.hpp" - - -/* end GCObject.hpp */ diff --git a/xo-alloc2/include/xo/gc/detail/AGCObject.hpp b/xo-alloc2/include/xo/gc/detail/AGCObject.hpp deleted file mode 100644 index 6f6e7b92..00000000 --- a/xo-alloc2/include/xo/gc/detail/AGCObject.hpp +++ /dev/null @@ -1,87 +0,0 @@ -/** @file AGCObject.hpp - * - * Generated automagically from ingredients: - * 1. code generator: - * [xo-facet/codegen/genfacet] - * arguments: - * --input [idl/GCObject.json5] - * 2. jinja2 template for abstract facet .hpp file: - * [abstract_facet.hpp.j2] - * 3. idl for facet methods - * [idl/GCObject.json5] - **/ - -#pragma once - -// includes (via {facet_includes}) -#include -#include -#include -#include -#include -#include -#include - -namespace xo { namespace mm { class ACollector; }} - -namespace xo { -namespace mm { - -using Copaque = const void *; -using Opaque = void *; - -/** -GC hooks for collector-aware data -**/ -class AGCObject { -public: - /** @defgroup mm-gcobject-type-traits **/ - ///@{ - // types - /** integer identifying a type **/ - using typeseq = xo::facet::typeseq; - using Copaque = const void *; - using Opaque = void *; - /** type for an amount of memory **/ - using size_type = std::size_t; - /** fomo allocator type **/ - using AAllocator = xo::mm::AAllocator; - /** fomo collector type **/ - using ACollector = xo::mm::ACollector; - ///@} - - /** @defgroup mm-gcobject-methods **/ - ///@{ - // 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; - /** memory consumption for this instance **/ - virtual size_type shallow_size(Copaque data) const noexcept = 0; - /** copy instance using allocator **/ - virtual Opaque shallow_copy(Copaque data, obj mm) const noexcept = 0; - - // nonconst methods - /** during GC: forward immdiate children **/ - virtual size_type forward_children(Opaque data, obj gc) const noexcept = 0; - ///@} -}; /*AGCObject*/ - -/** Implementation IGCObject_DRepr of AGCObject for state DRepr - * should provide a specialization: - * - * template <> - * struct xo::facet::FacetImplementation { - * using Impltype = IGCObject_DRepr; - * }; - * - * then IGCObject_ImplType --> IGCObject_DRepr - **/ -template -using IGCObject_ImplType = xo::facet::FacetImplType; - -} /*namespace mm*/ -} /*namespace xo*/ - -/* AGCObject.hpp */ diff --git a/xo-alloc2/include/xo/gc/detail/IGCObject_Any.hpp b/xo-alloc2/include/xo/gc/detail/IGCObject_Any.hpp deleted file mode 100644 index 9ff7bb2e..00000000 --- a/xo-alloc2/include/xo/gc/detail/IGCObject_Any.hpp +++ /dev/null @@ -1,93 +0,0 @@ -/** @file IGCObject_Any.hpp - * - * Generated automagically from ingredients: - * 1. code generator: - * [xo-facet/codegen/genfacet] - * arguments: - * --input [idl/GCObject.json5] - * 2. jinja2 template for abstract facet .hpp file: - * [iface_facet_any.hpp.j2] - * 3. idl for facet methods - * [idl/GCObject.json5] - **/ - -#pragma once - -#include "AGCObject.hpp" -#include - -namespace xo { namespace mm { class IGCObject_Any; } } - -namespace xo { -namespace facet { - -template <> -struct FacetImplementation -{ - using ImplType = xo::mm::IGCObject_Any; -}; - -} -} - -namespace xo { -namespace mm { - - /** @class IGCObject_Any - * @brief AGCObject implementation for empty variant instance - **/ - class IGCObject_Any : public AGCObject { - public: - /** @defgroup mm-gcobject-any-type-traits **/ - ///@{ - - /** integer identifying a type **/ - using typeseq = xo::facet::typeseq; - using size_type = AGCObject::size_type; - using AAllocator = AGCObject::AAllocator; - using ACollector = AGCObject::ACollector; - - ///@} - /** @defgroup mm-gcobject-any-methods **/ - ///@{ - - const AGCObject * iface() const { return std::launder(this); } - - // from AGCObject - - // builtin methods - typeseq _typeseq() const noexcept override { return s_typeseq; } - [[noreturn]] void _drop(Opaque) const noexcept override { _fatal(); } - - // const methods - [[noreturn]] size_type shallow_size(Copaque) const noexcept override { _fatal(); } - [[noreturn]] Opaque shallow_copy(Copaque, obj) const noexcept override { _fatal(); } - - // nonconst methods - [[noreturn]] size_type forward_children(Opaque, obj) const noexcept override; - - ///@} - - private: - /** @defgraoup mm-gcobject-any-private-methods **/ - ///@{ - - [[noreturn]] static void _fatal(); - - ///@} - - public: - /** @defgroup mm-gcobject-any-member-vars **/ - ///@{ - - static typeseq s_typeseq; - static bool _valid; - - ///@} - }; - -} /*namespace mm */ -} /*namespace xo */ - -/* IGCObject_Any.hpp */ diff --git a/xo-alloc2/include/xo/gc/detail/IGCObject_Xfer.hpp b/xo-alloc2/include/xo/gc/detail/IGCObject_Xfer.hpp deleted file mode 100644 index 7f094ab7..00000000 --- a/xo-alloc2/include/xo/gc/detail/IGCObject_Xfer.hpp +++ /dev/null @@ -1,95 +0,0 @@ -/** @file IGCObject_Xfer.hpp - * - * Generated automagically from ingredients: - * 1. code generator: - * [xo-facet/codegen/genfacet] - * arguments: - * --input [idl/GCObject.json5] - * 2. jinja2 template for abstract facet .hpp file: - * [iface_facet_any.hpp.j2] - * 3. idl for facet methods - * [idl/GCObject.json5] - **/ - -#pragma once - -#include -#include -#include -#include - -namespace xo { -namespace mm { - /** @class IGCObject_Xfer - **/ - template - class IGCObject_Xfer : public AGCObject { - public: - /** @defgroup mm-gcobject-xfer-type-traits **/ - ///@{ - /** actual implementation (not generated; often delegates to DRepr) **/ - using Impl = IGCObject_DRepr; - /** integer identifying a type **/ - using typeseq = AGCObject::typeseq; - using size_type = AGCObject::size_type; - using AAllocator = AGCObject::AAllocator; - using ACollector = AGCObject::ACollector; - ///@} - - /** @defgroup mm-gcobject-xfer-methods **/ - ///@{ - - static const DRepr & _dcast(Copaque d) { return *(const DRepr *)d; } - static DRepr & _dcast(Opaque d) { return *(DRepr *)d; } - - // from AGCObject - - // builtin methods - typeseq _typeseq() const noexcept override { return s_typeseq; } - void _drop(Opaque d) const noexcept override { _dcast(d).~DRepr(); } - - // const methods - size_type shallow_size(Copaque data) const noexcept override { - return I::shallow_size(_dcast(data)); - } - Opaque shallow_copy(Copaque data, obj mm) const noexcept override { - return I::shallow_copy(_dcast(data), mm); - } - - // non-const methods - size_type forward_children(Opaque data, obj gc) const noexcept override { - return I::forward_children(_dcast(data), gc); - } - - ///@} - - private: - using I = Impl; - - public: - /** @defgroup mm-gcobject-xfer-member-vars **/ - ///@{ - - /** typeseq for template parameter DRepr **/ - static typeseq s_typeseq; - /** true iff satisfies facet implementation **/ - static bool _valid; - - ///@} - }; - - template - xo::facet::typeseq - IGCObject_Xfer::s_typeseq - = xo::facet::typeseq::id(); - - template - bool - IGCObject_Xfer::_valid - = xo::facet::valid_facet_implementation(); - -} /*namespace mm */ -} /*namespace xo*/ - -/* end IGCObject_Xfer.hpp */ diff --git a/xo-alloc2/include/xo/gc/detail/RGCObject.hpp b/xo-alloc2/include/xo/gc/detail/RGCObject.hpp deleted file mode 100644 index d24994a8..00000000 --- a/xo-alloc2/include/xo/gc/detail/RGCObject.hpp +++ /dev/null @@ -1,93 +0,0 @@ -/** @file RGCObject.hpp - * - * Generated automagically from ingredients: - * 1. code generator: - * [xo-facet/codegen/genfacet] - * arguments: - * --input [idl/GCObject.json5] - * 2. jinja2 template for abstract facet .hpp file: - * [iface_facet_any.hpp.j2] - * 3. idl for facet methods - * [idl/GCObject.json5] - **/ - -#pragma once - -#include "AGCObject.hpp" - -namespace xo { -namespace mm { - -/** @class RGCObject - **/ -template -class RGCObject : public Object { -private: - using O = Object; - -public: - /** @defgroup mm-gcobject-router-type-traits **/ - ///@{ - using ObjectType = Object; - using DataPtr = Object::DataPtr; - using typeseq = xo::reflect::typeseq; - using size_type = AGCObject::size_type; - using AAllocator = AGCObject::AAllocator; - using ACollector = AGCObject::ACollector; - ///@} - - /** @defgroup mm-gcobject-router-ctors **/ - ///@{ - RGCObject() {} - RGCObject(Object::DataPtr data) : Object{std::move(data)} {} - RGCObject(const AGCObject * iface, void * data) - requires std::is_same_v - : Object(iface, data) {} - - ///@} - /** @defgroup mm-gcobject-router-methods **/ - ///@{ - - // explicit injected content - - // builtin methods - typeseq _typeseq() const noexcept { return O::iface()->_typeseq(); } - void _drop() const noexcept { O::iface()->_drop(O::data()); } - - // const methods - size_type shallow_size() const noexcept { - return O::iface()->shallow_size(O::data()); - } - Opaque shallow_copy(obj mm) const noexcept { - return O::iface()->shallow_copy(O::data(), mm); - } - - // non-const methods (still const in router!) - size_type forward_children(obj gc) noexcept { - return O::iface()->forward_children(O::data(), gc); - } - - ///@} - /** @defgroup mm-gcobject-member-vars **/ - ///@{ - - static bool _valid; - - ///@} -}; - -template -bool -RGCObject::_valid = xo::facet::valid_object_router(); - -} /*namespace mm*/ -} /*namespace xo*/ - -namespace xo { namespace facet { - template - struct RoutingFor { - using RoutingType = xo::mm::RGCObject; - }; -} } - -/* end RGCObject.hpp */ diff --git a/xo-gc/include/xo/gc/detail/ICollector_DX1Collector.hpp b/xo-gc/include/xo/gc/detail/ICollector_DX1Collector.hpp index 0475a535..1db50e23 100644 --- a/xo-gc/include/xo/gc/detail/ICollector_DX1Collector.hpp +++ b/xo-gc/include/xo/gc/detail/ICollector_DX1Collector.hpp @@ -3,6 +3,8 @@ * @author Roland Conybeare, Dec 2025 **/ +#pragma once + #include #include #include "DX1Collector.hpp" diff --git a/xo-object2/CMakeLists.txt b/xo-object2/CMakeLists.txt index 1735dd5b..09ebb96e 100644 --- a/xo-object2/CMakeLists.txt +++ b/xo-object2/CMakeLists.txt @@ -48,7 +48,7 @@ xo_add_genfacetimpl( # note: manual target; generated code committed to git xo_add_genfacetimpl( TARGET xo-object2-facetimpl-gcobject-list - FACET_PKG xo_gc + FACET_PKG xo_alloc2 FACET GCObject REPR List INPUT idl/IGCObject_DList.json5 @@ -68,7 +68,7 @@ xo_add_genfacetimpl( # note: manual target; generated code committed to git xo_add_genfacetimpl( TARGET xo-object2-facetimpl-gcobject-boolean - FACET_PKG xo_gc + FACET_PKG xo_alloc2 FACET GCObject REPR Boolean INPUT idl/IGCObject_DBoolean.json5 @@ -88,7 +88,7 @@ xo_add_genfacetimpl( # note: manual target; generated code committed to git xo_add_genfacetimpl( TARGET xo-object2-facetimpl-gcobject-float - FACET_PKG xo_gc + FACET_PKG xo_alloc2 FACET GCObject REPR Float INPUT idl/IGCObject_DFloat.json5 @@ -108,7 +108,7 @@ xo_add_genfacetimpl( # note: manual target; generated code committed to git xo_add_genfacetimpl( TARGET xo-object2-facetimpl-gcobject-integer - FACET_PKG xo_gc + FACET_PKG xo_alloc2 FACET GCObject REPR Integer INPUT idl/IGCObject_DInteger.json5 @@ -137,7 +137,7 @@ xo_add_genfacetimpl( # note: manual target; generated code committed to git xo_add_genfacetimpl( TARGET xo-object2-facetimpl-gcobject-array - FACET_PKG xo_gc + FACET_PKG xo_alloc2 FACET GCObject REPR Array INPUT idl/IGCObject_DArray.json5 @@ -157,7 +157,7 @@ xo_add_genfacetimpl( # note: manual target; generated code committed to git xo_add_genfacetimpl( TARGET xo-object2-facetimpl-gcobject-dictionary - FACET_PKG xo_gc + FACET_PKG xo_alloc2 FACET GCObject REPR Dictionary INPUT idl/IGCObject_DDictionary.json5 @@ -177,7 +177,7 @@ xo_add_genfacetimpl( # note: manual target; generated code committed to git xo_add_genfacetimpl( TARGET xo-object2-facetimpl-gcobject-runtimeerror - FACET_PKG xo_gc + FACET_PKG xo_alloc2 FACET GCObject REPR RuntimeError INPUT idl/IGCObject_DRuntimeError.json5 diff --git a/xo-object2/cmake/xo_object2Config.cmake.in b/xo-object2/cmake/xo_object2Config.cmake.in index 78ee9e0f..b34f76ff 100644 --- a/xo-object2/cmake/xo_object2Config.cmake.in +++ b/xo-object2/cmake/xo_object2Config.cmake.in @@ -2,8 +2,8 @@ include(CMakeFindDependencyMacro) find_dependency(reflect) -find_dependency(xo_gc) find_dependency(xo_stringtable2) +find_dependency(xo_alloc2) find_dependency(xo_printable2) find_dependency(subsys) find_dependency(indentlog) diff --git a/xo-object2/idl/IGCObject_DArray.json5 b/xo-object2/idl/IGCObject_DArray.json5 index bef5bd62..96507a75 100644 --- a/xo-object2/idl/IGCObject_DArray.json5 +++ b/xo-object2/idl/IGCObject_DArray.json5 @@ -4,7 +4,7 @@ output_hpp_dir: "include/xo/object2", output_impl_subdir: "array", includes: [ - "", + "", "" ], local_types: [ ], diff --git a/xo-object2/idl/IGCObject_DBoolean.json5 b/xo-object2/idl/IGCObject_DBoolean.json5 index c9aaf26b..c739ccda 100644 --- a/xo-object2/idl/IGCObject_DBoolean.json5 +++ b/xo-object2/idl/IGCObject_DBoolean.json5 @@ -4,8 +4,8 @@ output_hpp_dir: "include/xo/object2", output_impl_subdir: "boolean", includes: [ - "", - "" +// "", +// "" ], local_types: [ ], namespace1: "xo", diff --git a/xo-object2/idl/IGCObject_DDictionary.json5 b/xo-object2/idl/IGCObject_DDictionary.json5 index 636413be..ebf8fd8b 100644 --- a/xo-object2/idl/IGCObject_DDictionary.json5 +++ b/xo-object2/idl/IGCObject_DDictionary.json5 @@ -4,7 +4,7 @@ output_hpp_dir: "include/xo/object2", output_impl_subdir: "dictionary", includes: [ - "", + "", "" ], local_types: [ ], diff --git a/xo-object2/idl/IGCObject_DFloat.json5 b/xo-object2/idl/IGCObject_DFloat.json5 index eec1e3e3..2255f414 100644 --- a/xo-object2/idl/IGCObject_DFloat.json5 +++ b/xo-object2/idl/IGCObject_DFloat.json5 @@ -5,7 +5,7 @@ output_impl_subdir: "number", includes: [ "", - "", + "", "" ], local_types: [ ], diff --git a/xo-object2/idl/IGCObject_DInteger.json5 b/xo-object2/idl/IGCObject_DInteger.json5 index 37d603e5..18093306 100644 --- a/xo-object2/idl/IGCObject_DInteger.json5 +++ b/xo-object2/idl/IGCObject_DInteger.json5 @@ -4,7 +4,7 @@ output_hpp_dir: "include/xo/object2", output_impl_subdir: "number", includes: [ - "", + "", "" ], local_types: [ ], diff --git a/xo-object2/idl/IGCObject_DList.json5 b/xo-object2/idl/IGCObject_DList.json5 index 28fb3352..ecb48980 100644 --- a/xo-object2/idl/IGCObject_DList.json5 +++ b/xo-object2/idl/IGCObject_DList.json5 @@ -4,7 +4,7 @@ output_hpp_dir: "include/xo/object2", output_impl_subdir: "list", includes: [ -// "", +// "", // "" ], local_types: [ ], diff --git a/xo-object2/idl/IGCObject_DRuntimeError.json5 b/xo-object2/idl/IGCObject_DRuntimeError.json5 index cfcbe9f6..a0e15042 100644 --- a/xo-object2/idl/IGCObject_DRuntimeError.json5 +++ b/xo-object2/idl/IGCObject_DRuntimeError.json5 @@ -4,7 +4,7 @@ output_hpp_dir: "include/xo/object2", output_impl_subdir: "error", includes: [ -// "", +// "", // "" ], local_types: [ ], diff --git a/xo-object2/idl/Sequence.json5 b/xo-object2/idl/Sequence.json5 index 20271697..0b022f0b 100644 --- a/xo-object2/idl/Sequence.json5 +++ b/xo-object2/idl/Sequence.json5 @@ -3,7 +3,7 @@ output_cpp_dir: "src/object2", output_hpp_dir: "include/xo/object2", output_impl_subdir: "sequence", - includes: [""], + includes: [""], // extra includes in Sequence.hpp, if any user_hpp_includes: [], namespace1: "xo", diff --git a/xo-object2/include/xo/object2/array/IGCObject_DArray.hpp b/xo-object2/include/xo/object2/array/IGCObject_DArray.hpp index 08f78aa8..6eb571e5 100644 --- a/xo-object2/include/xo/object2/array/IGCObject_DArray.hpp +++ b/xo-object2/include/xo/object2/array/IGCObject_DArray.hpp @@ -64,4 +64,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end */ +/* end */ \ No newline at end of file diff --git a/xo-object2/include/xo/object2/boolean/IGCObject_DBoolean.hpp b/xo-object2/include/xo/object2/boolean/IGCObject_DBoolean.hpp index 358aad18..9afd9646 100644 --- a/xo-object2/include/xo/object2/boolean/IGCObject_DBoolean.hpp +++ b/xo-object2/include/xo/object2/boolean/IGCObject_DBoolean.hpp @@ -14,8 +14,6 @@ #pragma once #include "GCObject.hpp" -#include -#include #include "DBoolean.hpp" namespace xo { namespace scm { class IGCObject_DBoolean; } } @@ -64,4 +62,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end */ +/* end */ \ No newline at end of file diff --git a/xo-object2/include/xo/object2/dictionary/IGCObject_DDictionary.hpp b/xo-object2/include/xo/object2/dictionary/IGCObject_DDictionary.hpp index 7fe1bc55..2d69f990 100644 --- a/xo-object2/include/xo/object2/dictionary/IGCObject_DDictionary.hpp +++ b/xo-object2/include/xo/object2/dictionary/IGCObject_DDictionary.hpp @@ -64,4 +64,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end */ +/* end */ \ No newline at end of file diff --git a/xo-object2/include/xo/object2/number/GCObjectConversion_DFloat.hpp b/xo-object2/include/xo/object2/number/GCObjectConversion_DFloat.hpp index 959eeca0..4cc47517 100644 --- a/xo-object2/include/xo/object2/number/GCObjectConversion_DFloat.hpp +++ b/xo-object2/include/xo/object2/number/GCObjectConversion_DFloat.hpp @@ -7,7 +7,7 @@ #include "DFloat.hpp" #include "number/IGCObject_DFloat.hpp" -#include +#include namespace xo { namespace scm { diff --git a/xo-object2/include/xo/object2/number/GCObjectConversion_DInteger.hpp b/xo-object2/include/xo/object2/number/GCObjectConversion_DInteger.hpp index 458312c9..5b01e571 100644 --- a/xo-object2/include/xo/object2/number/GCObjectConversion_DInteger.hpp +++ b/xo-object2/include/xo/object2/number/GCObjectConversion_DInteger.hpp @@ -7,7 +7,7 @@ #include "DInteger.hpp" #include "number/IGCObject_DInteger.hpp" -#include +#include namespace xo { namespace scm { diff --git a/xo-object2/include/xo/object2/number/IGCObject_DFloat.hpp b/xo-object2/include/xo/object2/number/IGCObject_DFloat.hpp index b8e15b73..ee2eecfd 100644 --- a/xo-object2/include/xo/object2/number/IGCObject_DFloat.hpp +++ b/xo-object2/include/xo/object2/number/IGCObject_DFloat.hpp @@ -65,4 +65,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end */ +/* end */ \ No newline at end of file diff --git a/xo-object2/include/xo/object2/number/IGCObject_DInteger.hpp b/xo-object2/include/xo/object2/number/IGCObject_DInteger.hpp index fd2ea642..799372ad 100644 --- a/xo-object2/include/xo/object2/number/IGCObject_DInteger.hpp +++ b/xo-object2/include/xo/object2/number/IGCObject_DInteger.hpp @@ -64,4 +64,4 @@ namespace xo { } /*namespace scm*/ } /*namespace xo*/ -/* end */ +/* end */ \ No newline at end of file diff --git a/xo-object2/src/object2/CMakeLists.txt b/xo-object2/src/object2/CMakeLists.txt index f0aaefb7..b2370cf4 100644 --- a/xo-object2/src/object2/CMakeLists.txt +++ b/xo-object2/src/object2/CMakeLists.txt @@ -45,8 +45,8 @@ set(SELF_SRCS xo_add_shared_library4(${SELF_LIB} ${PROJECT_NAME}Targets ${PROJECT_VERSION} 1 ${SELF_SRCS}) # note: deps here must also appear in cmake/xo_object2Config.cmake.in xo_dependency(${SELF_LIB} reflect) -xo_dependency(${SELF_LIB} xo_gc) xo_dependency(${SELF_LIB} xo_stringtable2) +xo_dependency(${SELF_LIB} xo_alloc2) xo_dependency(${SELF_LIB} xo_printable2) xo_dependency(${SELF_LIB} subsys) xo_dependency(${SELF_LIB} indentlog) diff --git a/xo-object2/src/object2/ISequence_Any.cpp b/xo-object2/src/object2/ISequence_Any.cpp index 77da7d31..5e0583f0 100644 --- a/xo-object2/src/object2/ISequence_Any.cpp +++ b/xo-object2/src/object2/ISequence_Any.cpp @@ -3,8 +3,8 @@ **/ #include "sequence/ISequence_Any.hpp" -#include #include +#include namespace xo { namespace scm { diff --git a/xo-object2/utest/CMakeLists.txt b/xo-object2/utest/CMakeLists.txt index 7843e0e9..e4532c26 100644 --- a/xo-object2/utest/CMakeLists.txt +++ b/xo-object2/utest/CMakeLists.txt @@ -12,5 +12,6 @@ set(UTEST_SRCS xo_add_utest_executable(${UTEST_EXE} ${UTEST_SRCS}) xo_self_dependency(${UTEST_EXE} xo_object2) +xo_dependency(${UTEST_EXE} xo_gc) #xo_dependency(${UTEST_EXE} randomgen) xo_external_target_dependency(${UTEST_EXE} Catch2 Catch2::Catch2) diff --git a/xo-object2/utest/Printable.test.cpp b/xo-object2/utest/Printable.test.cpp index 15de595d..edf230a4 100644 --- a/xo-object2/utest/Printable.test.cpp +++ b/xo-object2/utest/Printable.test.cpp @@ -20,7 +20,8 @@ #include #include -#include + +#include #include #include diff --git a/xo-procedure2/include/xo/procedure2/DPrimitive.hpp b/xo-procedure2/include/xo/procedure2/DPrimitive.hpp index 5003ba02..17c19435 100644 --- a/xo-procedure2/include/xo/procedure2/DPrimitive.hpp +++ b/xo-procedure2/include/xo/procedure2/DPrimitive.hpp @@ -7,7 +7,7 @@ #include "RuntimeContext.hpp" #include -#include +#include #include #include #include diff --git a/xo-procedure2/src/procedure2/init_primitives.cpp b/xo-procedure2/src/procedure2/init_primitives.cpp index 1fd3950c..142ad868 100644 --- a/xo-procedure2/src/procedure2/init_primitives.cpp +++ b/xo-procedure2/src/procedure2/init_primitives.cpp @@ -6,13 +6,11 @@ #include "init_primitives.hpp" #include "DPrimitive.hpp" #include -//#include #include -//#include #include -#include #include #include +#include #include #include