Repository navigation
Move IR, assemblers and bytecode to Wave under Meson - #398
Merged
Merged
Conversation
Signed-off-by: LunaStev <luna@lunastev.org>
Signed-off-by: LunaStev <luna@lunastev.org>
Implement the complete typed body/global builder model, versioned parser, bounded canonical printer, layout and SSA verifier in role-separated Wave sources. Lower the supported AST and pinned Wave typed-HIR boundary through Wave, preserving evaluation order, source identities and transactional errors. Keep Rust allocation/typed transport and explicit conformance references. Numeric evaluation and runtime migration remain the following ordered batches. Validate actual Wave O0/O2 against independent bounded native vectors, all workspace features, CLI publication, Meson install and Rust 1.86 checks. Signed-off-by: LunaStev <luna@lunastev.org>
Implement fixed-width and exact IEEE arithmetic, lazy constant evaluation, indexed dependencies, tracked memory and call frames in role-specific Wave sources. Route the interpreter and transactional pass runner through typed buffer transports; preserve Rust reference algorithms for migration checks. Add a bounded sparse integer constant folder without changing O0 defaults. Verify final native O0/O2 archives against independent numeric, memory, call and folding models; exercise complete workspace, resource, rollback, CLI and compatibility tests. Keep native host claims limited to Linux AMD64. Refs wavefnd#352, wavefnd#353, wavefnd#354, wavefnd#355, wavefnd#118. Signed-off-by: LunaStev <luna@lunastev.org>
LunaStev
force-pushed
the
feat/wave-meson-modules
branch
from
October 31, 2026 04:02
c5669b3 to
cfe74b2
Compare
Implement a bounded UTF-8 lexer, checked two-word expressions and neutral output accounting in shared Wave sources. Move the supported AMD64 grammar, namespace, relaxation, integer/SSE encoding and public encoding helpers into role-specific Wave files. Rust retains typed allocation/data bridges and explicit independent migration references. Link shared and ISA archives separately through explicit Meson options and validate pinned source/ABI/provenance before Cargo links either module. Bound materialized output, sparse storage, work, workspace and copied symbol names. Verify native O0/O2, exact parser diagnostics, mathematical layouts, NASM vectors, static Linux executions, workspace tests, Clippy and MSRV 1.86. Refs wavefnd#356, wavefnd#357. Signed-off-by: LunaStev <luna@lunastev.org>
LunaStev
force-pushed
the
feat/wave-meson-modules
branch
from
October 31, 2026 04:47
fe80ea0 to
62f7eb1
Compare
Implement the supported AArch64, RV64I and LoongArch64 assemblers in role-specific Wave sources with a shared bounded source/section/symbol driver. Keep instruction selection in each ISA, including direct helper compatibility, and retain independent Rust migration references. Split asmobj ELF/COFF/Mach-O relocation policy into explicitly dispatched architecture files. Add selected archive provenance guards and Meson paths. Preserve sparse BSS, target profiles, exact diagnostics and failure order. Verify official native O0/O2 archives, independent LLVM/math/source vectors, whole workspace default/all-feature tests, Clippy, Rust 1.86 and Meson source products. Foreign instruction words and objects are not native host claims. Refs wavefnd#358, wavefnd#359, wavefnd#360, wavefnd#361. Signed-off-by: LunaStev <luna@lunastev.org>
Define canonical bounded little-endian bytecode and admit complete images in Wave, deriving type, CFG, SSA, call and source facts before execution. Compile verified IR through the Wave writer and use the resumable Wave runtime with typed allocation and memory transport. Compose the explicit bytecode target and bounded atomic CLI commands. Allow products without an assembler or native linker. Check independent binary fixtures, exact writer goldens, O0/O2 mutations and Rust reference execution. References wavefnd#362, wavefnd#363, wavefnd#364, wavefnd#365. Signed-off-by: LunaStev <luna@lunastev.org>
…ecked Require selected Wave source modules by default, isolate explicit Rust references, and check the identities of linked modules. Bound retained and temporary bytecode metadata before allocation and reclaim rejected argument transport completely. Embed portable source/compiler/module provenance, validate standalone packages, and remap build paths. Cover native modules with bounded replayable local conformance and provide real CLI benchmarks and concise contribution guidance. Update workflow definitions for native and explicitly labelled reference paths. References wavefnd#368, wavefnd#369, wavefnd#370, wavefnd#371. Signed-off-by: LunaStev <luna@lunastev.org>
LunaStev
force-pushed
the
feat/wave-meson-modules
branch
from
October 31, 2026 09:46
f1f2ec3 to
9a36ce5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR delivers the eight ordered batches of #335 in exactly eight DCO-signed commits.
Wave owns core algorithms in role-specific source files. Rust retains typed data/allocation, file/OS/CLI/FFI and object/linker infrastructure. Architecture contributions edit explicit source, dispatch and build lists. Default Meson products require the selected Wave modules; reference algorithms require explicit
rust-reference.build-info --jsonreports actual linked module stamps and portable compiler/source/archive provenance.Local validation of the eight-batch implementation:
77f36ad8e70668f8aef5f286ae415770b1d2853ad7ebc51cbdb0a9f88c290abe.f1f2ec3: real CLI benchmarks cover 64/32,768 workloads, 20 phases, 60 measurements and 20 warmups, with independent output checks, full hashes, elapsed time, RSS and embedded module provenance.Native Wave execution evidence is Linux x86_64 GNU. Other host builds explicitly use reference paths; cross-produced objects do not establish native execution support. The Wave compiler pin is
e0952ed65d07e14c6ed0aa64f3c9a5532dd7533b(bootstrap Rust 1.89.0/LLVM 21). Bytecode v1 supports the documented executable subset and rejects external runtime imports. Broader targets and native IR generation remain in their existing roadmaps; #232 remains open.CI portability fixes keep the Rust 1.86-compatible atomic API, isolate assembler guard fixtures from all ambient module paths, normalize worktree paths, and mock the Linux benchmark timer for portable publication tests. Reduced-product tests check both enabled and disabled native-linker behavior. Local revalidation passes Rust 1.99.1 Clippy (default/all), all eight CLI product configurations, seven dependency graphs, 123 Python tests with native module environment variables, and Rust 1.86 bytecode execution.
GitHub CI on
9a36ce5is all green: Rust (17 jobs), Quality, Coverage, and Bounded fuzz campaigns. Linux, Windows and macOS native-host test jobs pass; Wave execution support remains limited to the validated Linux x86_64 GNU host described above. No merge or release publication was performed.