E46 environment — ENV + WO-01

Date: 7 October 2026. Scope: local C++20 hash library and reproducible tests.

Repository

  • Remote: https://github.com/Mik3XC/Ciphers-and-Chains.git; verified private.

  • Existing remote main starts at 5b92a87 (license). Its history is preserved.

  • Reference baseline: 47236cd, committed before library construction.

  • Review branch: wo-01-librl. No merge or release is authorized by this report.

  • New implementation: e46/src, e46/include, e46/tests, e46/golden; command-line tools under e46/tools, measured logs under e46/reports.

  • The initial reference baseline and subsequent owner map edits are separate from the implementation, for review. Local historical experiments and access test runs are not blanket-staged or uploaded.

Existing tools used

Component

Measured version / setting

Host

macOS 26.3, arm64

Release and sanitizer compiler

Apple Clang 21.0.0

Fuzz compiler / formatter

Homebrew LLVM / clang-format 22.1.8

CMake

4.3.2

Ninja

1.13.2

Python

3.14.7; standard library for WO-01

Language / warnings

C++20; -Wall -Wextra -Werror

Sanitizers

AddressSanitizer + UndefinedBehaviorSanitizer; no recovery

Parallelism

At most four compile jobs; tests, fuzzing and benchmark one worker

No packages were installed. No external hash library is needed for WO-01. XKCP/OpenSSL and liboqs remain later work orders requiring installation approval.

Build configuration

Root CMakePresets.json defines release, sanitize and fuzz. Output goes to ignored build/ directories. Presets clear inherited generic C++/executable linker flags so unrelated local LDFLAGS do not enter the build. Compilation retains the normal build-type optimization flags.

Apple’s command-line toolchain could build/run ASan and UBSan but could not link libFuzzer: its libclang_rt.fuzzer_osx.a is missing. The already-installed Homebrew LLVM supplied that runtime; its fuzz build is in build/fuzz-llvm. The failure and successful alternative are documented in the WO-01 report.

No system settings, default compilers, global Git configuration or credentials were changed. Builds are limited to the local project. Current platform support requires a 64-bit compiler with __int128; a portable MSVC arithmetic backend has not been implemented or tested.

Review and style

Commands: root README and API/reproduction guide. Evidence: WO-01 report.

.clang-format records the owner’s UNC brace convention. .editorconfig records indentation and line endings. Formatting applies to the new C++ work, leaving the existing research code intact. Claude re-runs the tests and checks the specification before the owner approves a merge.