xo-umbrella2/xo-arena
Roland Conybeare d6407312e2
Some checks failed
cmake-docker / cmake-build (clang, clang++) (push) Failing after 12m6s
cmake-docker / cmake-build (gcc, g++) (push) Successful in 42m35s
CI / smoke-test (push) Successful in 54m57s
xo-arena etc. fixes for OSX utest suite [UTEST] [TIDY]
2026-09-26 00:28:49 -04:00
..
cmake build: generate deps for arenaConfig.cmake automagically [BUILD] 2026-07-31 10:18:08 -04:00
docs xo-arena: doc: tighten prose around arena example 2026-08-18 00:31:23 -04:00
include/xo/arena xo-arena etc. fixes for OSX utest suite [UTEST] [TIDY] 2026-09-26 00:28:49 -04:00
src/arena xo-arena etc. fixes for OSX utest suite [UTEST] [TIDY] 2026-09-26 00:28:49 -04:00
utest xo-arena etc. fixes for OSX utest suite [UTEST] [TIDY] 2026-09-26 00:28:49 -04:00
.gitrepo git subrepo push xo-arena 2026-08-16 13:30:01 -04:00
CMakeLists.txt build: xo-arena: no bench/ subdir just yet [BUGFIX] 2026-08-22 17:18:29 -04:00
README.md xo-arena: + link to CI-maintained docs [DOC] 2026-08-16 21:31:53 -04:00

arena library

Arena library with mmap-based superpowers.

Features:

  • separate reserve (for address space) and commit (for physical pages) features.
  • superpages for larger (> 2MB) extents.
  • optional per-alloc header with type hints.
  • checkpoint/restore.
  • iterator support over allocations.
  • supports linux and osx.

Limitations:

  • requires =mmap=.

Documentation

Getting started

Install dependencies

Installs cmake ingredients along with build assistant xo-build for XO projects such as this one.

Build + install other XO dependencies

$ xo-build --with-deps --clone --configure --build --install xo-arena

Note: can use -n to dry-run here

Clone xo-arena repository locally

$ xo-build --clone xo-arena

or equivalently

$ git clone git@github.com:Rconybea/xo-arena.git

Build and install xo-arena

$ xo-build --configure --build --install xo-arena

or equivalently:

$ PREFIX=/usr/local  # for example
$ cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} -S xo-arena -B xo-arena/.build
$ cmake --build xo-reflect/.build
$ cmake --install xo-reflect/.build

Build for unit test coverage

$ cmake -DCMAKE_BUILD_TYPE=coverage -DCMAKE_INSTALL_PREFIX=$PREFIX xo-arena/.build-ccov
$ cmake --build xo-arena/.build-ccov

LSP support

$ cd xo-arena
$ ln -s .build/compile_commands.json  # lsp will look for compile_commands.json in the root of the source tree