xo-gc xo-alloc: refactor for file organization
This commit is contained in:
parent
093cf3c969
commit
8b5e2dd59f
13 changed files with 21 additions and 21 deletions
|
|
@ -24,8 +24,7 @@ Abstraction tower for *xo-alloc2* components
|
||||||
| IAllocator_DArena |
|
| IAllocator_DArena |
|
||||||
+--------------------------------+
|
+--------------------------------+
|
||||||
| IAllocator_Xfer |
|
| IAllocator_Xfer |
|
||||||
+--------------------------------+
|
| IAllocator_Any |
|
||||||
| IAllocator_ImplType |
|
|
||||||
+--------------+-----------------+
|
+--------------+-----------------+
|
||||||
| | DArena |
|
| | DArena |
|
||||||
| AAllocator +-----------------+
|
| AAllocator +-----------------+
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,11 @@ xo-alloc2 documentation
|
||||||
|
|
||||||
xo-alloc2 is intended to provide fast vm-aware arena allocation.
|
xo-alloc2 is intended to provide fast vm-aware arena allocation.
|
||||||
Next-generation version of xo-alloc.
|
Next-generation version of xo-alloc.
|
||||||
At present (Dec 2025) xo-alloc is fully functional,
|
|
||||||
while xo-alloc2 is aspirational.
|
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
|
|
||||||
* allocates uncommitted virtual memory, and commits on demand.
|
* allocates uncommitted virtual memory, and commits on demand.
|
||||||
* ses THP (Transparent Huge Pages) when available.
|
* uses THP (Transparent Huge Pages) when available.
|
||||||
|
|
||||||
Implemented using FOMO (faceted rust-like object model) from xo-facet
|
Implemented using FOMO (faceted rust-like object model) from xo-facet
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "gcobject/AGCObject.hpp"
|
#include "AGCObject.hpp"
|
||||||
#include "gcobject/IGCObject_Any.hpp"
|
#include "detail/IGCObject_Any.hpp"
|
||||||
#include "gcobject/IGCObject_Xfer.hpp"
|
#include "detail/IGCObject_Xfer.hpp"
|
||||||
#include "gcobject/RGCObject.hpp"
|
#include "detail/RGCObject.hpp"
|
||||||
|
|
||||||
/* end GCObject.hpp */
|
/* end GCObject.hpp */
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "gcobject/IGCObject_Any.hpp"
|
#include "IGCObject_Any.hpp"
|
||||||
|
|
||||||
#include <xo/facet/facet_implementation.hpp>
|
#include <xo/facet/facet_implementation.hpp>
|
||||||
#include <xo/facet/typeseq.hpp>
|
#include <xo/facet/typeseq.hpp>
|
||||||
|
|
@ -34,9 +34,12 @@ namespace xo {
|
||||||
|
|
||||||
virtual int32_t _typeseq() const noexcept = 0;
|
virtual int32_t _typeseq() const noexcept = 0;
|
||||||
|
|
||||||
virtual size_type allocated(Copaque d, generation g, role r) const noexcept = 0;
|
virtual size_type allocated(Copaque d,
|
||||||
virtual size_type reserved(Copaque d, generation g, role r) const noexcept = 0;
|
generation g, role r) const noexcept = 0;
|
||||||
virtual size_type committed(Copaque d, generation g, role r) const noexcept = 0;
|
virtual size_type reserved(Copaque d,
|
||||||
|
generation g, role r) const noexcept = 0;
|
||||||
|
virtual size_type committed(Copaque d,
|
||||||
|
generation g, role r) const noexcept = 0;
|
||||||
|
|
||||||
/** install interface @p iface for representation with typeseq @p tseq
|
/** install interface @p iface for representation with typeseq @p tseq
|
||||||
* in collector @p d.
|
* in collector @p d.
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
* @author Roland Conybeare, Dec 2025
|
* @author Roland Conybeare, Dec 2025
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#include "gcobject/IGCObject_Any.hpp"
|
#include "detail/IGCObject_Any.hpp"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
namespace xo {
|
namespace xo {
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <xo/alloc2/alloc/AAllocator.hpp>
|
#include <xo/alloc2/alloc/AAllocator.hpp>
|
||||||
#include <xo/gc/gcobject/AGCObject.hpp>
|
#include <xo/gc/AGCObject.hpp>
|
||||||
#include <xo/gc/gcobject/IGCObject_Xfer.hpp>
|
#include <xo/gc/detail/IGCObject_Xfer.hpp>
|
||||||
#include "DFloat.hpp"
|
#include "DFloat.hpp"
|
||||||
|
|
||||||
namespace xo {
|
namespace xo {
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "xo/alloc2/alloc/AAllocator.hpp"
|
#include "xo/alloc2/alloc/AAllocator.hpp"
|
||||||
#include <xo/gc/gcobject/AGCObject.hpp>
|
#include <xo/gc/AGCObject.hpp>
|
||||||
#include <xo/gc/gcobject/IGCObject_Xfer.hpp>
|
#include <xo/gc/detail/IGCObject_Xfer.hpp>
|
||||||
#include "DInteger.hpp"
|
#include "DInteger.hpp"
|
||||||
|
|
||||||
namespace xo {
|
namespace xo {
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@
|
||||||
#include <xo/alloc2/alloc/AAllocator.hpp>
|
#include <xo/alloc2/alloc/AAllocator.hpp>
|
||||||
#include <xo/alloc2/alloc/RAllocator.hpp>
|
#include <xo/alloc2/alloc/RAllocator.hpp>
|
||||||
#include <xo/gc/Collector.hpp>
|
#include <xo/gc/Collector.hpp>
|
||||||
#include <xo/gc/gcobject/AGCObject.hpp>
|
#include <xo/gc/AGCObject.hpp>
|
||||||
#include <xo/gc/gcobject/IGCObject_Xfer.hpp>
|
#include <xo/gc/detail/IGCObject_Xfer.hpp>
|
||||||
#include "DList.hpp"
|
#include "DList.hpp"
|
||||||
|
|
||||||
namespace xo {
|
namespace xo {
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ Library dependency tower for *xo-tokenizer*:
|
||||||
.. ditaa::
|
.. ditaa::
|
||||||
|
|
||||||
+-----------------+
|
+-----------------+
|
||||||
| xo_unit |
|
| xo_tokenizer |
|
||||||
+-----------------+
|
+-----------------+
|
||||||
| xo_indentlog |
|
| xo_indentlog |
|
||||||
+-----------------+
|
+-----------------+
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue