Repository navigation
Elemental 1.0.0-dev.10
Pre-release
Pre-release
Elemental 1.0.0-dev.10
Includes changes since v1.0.0-dev.9.
Pull requests
#115 — Extract shared runtime into Foundations
Goal
Extract the shared low-level runtime from Elemental into src/Foundations so Elemental and ElementalTools consume the same layer without direct cross-project runtime paths.
This PR is intentionally limited to extraction and build/test structure. Runtime behavior changes will be handled in focused follow-up PRs.
Changes
- move the generic runtime files from
src/Elemental/Commontosrc/Foundations; - move platform
SystemPlatformFunctions.cppimplementations underFoundations/{Microsoft,Linux,Apple}; - keep Elemental-specific
Common/GraphicsandCommon/Inputsunder Elemental; - introduce separate
foundationsandelemental_commonCMake interface targets; - make
ElementalToolsconsumefoundationsinstead of reaching into Elemental platform runtime directories; - align the CMake dependency graph so Elemental owns its
Commonlayer andelemental_commondepends onfoundations; - rename
SystemFunctionsTeststoFoundationsTests; - give Foundations its own minimal platform precompiled headers so Foundations tests no longer use Elemental platform PCHs or link
ElementalInterface; - remove the Apple Foundations executable-path dependency on Elemental's Foundation wrapper by using the macOS system executable-path API;
- update the test workflow for the renamed Foundations test package.
Follow-up PRs
Runtime hardening will be split by area, with tests strengthened alongside each change. Planned areas include:
- Dictionary concurrency and contract;
- DataPool concurrency and reuse;
- Memory arenas / virtual memory;
- strings and UTF conversion;
- IO and process execution;
- logging boundary and remaining Elemental type coupling;
- other platform correctness fixes discovered during the review.
Do not merge yet while CI for the final extraction structure is being validated.