xo-reader2: enable alloc headers for parser stack

This commit is contained in:
Roland Conybeare 2026-02-16 11:03:36 -05:00
commit 02b33d13be
4 changed files with 12 additions and 3 deletions

View file

@ -11,6 +11,13 @@
namespace xo { namespace xo {
namespace mm { namespace mm {
/** @brief per-alloc header
*
* Appears immediately before each allocation when
* ArenaConfig.store_header_flag_ is set.
*
* See AllocInfo.hpp for encoding of @ref repr_
**/
struct AllocHeader { struct AllocHeader {
using repr_type = std::uintptr_t; using repr_type = std::uintptr_t;
using size_type = std::size_t; using size_type = std::size_t;

View file

@ -20,7 +20,7 @@ namespace xo {
ArenaConfig parser_arena_config_ { .name_ = "parser-arena", ArenaConfig parser_arena_config_ { .name_ = "parser-arena",
.size_ = 2*1024*1024, .size_ = 2*1024*1024,
.hugepage_z_ = 2*1024*1024, .hugepage_z_ = 2*1024*1024,
.store_header_flag_ = false, .store_header_flag_ = true,
.header_{}, .header_{},
.debug_flag_ = false }; .debug_flag_ = false };

View file

@ -77,6 +77,8 @@ namespace xo {
// misc types showing up in aux arena // misc types showing up in aux arena
TypeRegistry::register_type<SchematikaParser>(); TypeRegistry::register_type<SchematikaParser>();
// misc types showing up in parser stack arena
TypeRegistry::register_type<ParserStack>();
log && log(xtag("DExprSeqState.tseq", typeseq::id<DExprSeqState>())); log && log(xtag("DExprSeqState.tseq", typeseq::id<DExprSeqState>()));
log && log(xtag("DDefineSsm.tseq", typeseq::id<DDefineSsm>())); log && log(xtag("DDefineSsm.tseq", typeseq::id<DDefineSsm>()));

View file

@ -194,7 +194,7 @@ namespace xo {
{ {
const auto & testname = Catch::getResultCapture().getCurrentTestName(); const auto & testname = Catch::getResultCapture().getCurrentTestName();
constexpr bool c_debug_flag = true; constexpr bool c_debug_flag = false;
scope log(XO_DEBUG(c_debug_flag), xtag("test", testname)); scope log(XO_DEBUG(c_debug_flag), xtag("test", testname));
ParserFixture fixture(testname, c_debug_flag); ParserFixture fixture(testname, c_debug_flag);
@ -740,7 +740,7 @@ namespace xo {
const auto & testname = Catch::getResultCapture().getCurrentTestName(); const auto & testname = Catch::getResultCapture().getCurrentTestName();
constexpr bool c_debug_flag = false; constexpr bool c_debug_flag = true;
scope log(XO_DEBUG(c_debug_flag), xtag("test", testname)); scope log(XO_DEBUG(c_debug_flag), xtag("test", testname));
ParserFixture fixture(testname, c_debug_flag); ParserFixture fixture(testname, c_debug_flag);