Skip to content

Replace the STL with equilibrium base and build without exceptions - #66

Merged
Force67 merged 2 commits into
mainfrom
stl-free
Sep 26, 2026
Merged

Force67 merged 2 commits into
mainfrom
stl-free

Conversation

@Force67

@Force67 Force67 commented Sep 26, 2026

Copy link
Copy Markdown
Owner

rx now builds on equilibrium base instead of the C++ standard library, with -fno-exceptions, and takes zetanet, kinema and libultragui in their base configurations (ZNET_USE_STL=OFF, KINEMA_USE_BASE, ULTRAGUI_USE_BASE). base::Atomic uses its native backend; EQ_USE_STD_ATOMIC is forced off. BASE_NO_STD_FORMAT keeps out.

Helpers in engine/core: scalar.h (Min/Max/Clamp/Lerp with std semantics), format.h (exact std::format/to_string text), file_system.h, text_reader.h/text_writer.h, sort.h (StableSort, NthElement), shared.h. VMA takes base locks and atomics through vma_config.h.

std stays only where a third-party API demands it: tinyusdz in usd_loader.cc, Jolt in physics_world.cc and kinema_jolt.cc.

std symbols in the build (unique names, excluding initializer_list/align_val_t/nothrow), before -> after:

before after
rx archives 1627 67 (tinyusdz + Jolt boundary)
zetanet 54 0
kinema 30 0
libultragui 318 0
__cxa_throw/__cxa_begin_catch importers in rx/zetanet/libultragui 140 0

Only yoga still throws. The binaries' remaining std symbols come from tinyusdz (8640), Jolt (244) and FidelityFX (28).

Verification: ctest 152/152 under vkrun; all seven runtime/scenes captures pass rxdiff at 24 frames; --dump-schema, --dump-materials and --validate output identical; loopback server/client session joins and replicates.

Needs the sibling checkouts at: zetanet develop (Force67/zetanet#6), kinema main (Force67/kinema#1), libultragui main (Force67/libultragui#12, #13). equilibrium is bumped to devel5 (Force67/equilibrium#20).

@Force67
Force67 merged commit 6159ff6 into main Sep 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant