Skip to content

Improve test runner, LLVM type inference, and environment setup#317

Merged
LunaStev merged 12 commits into
wavefnd:masterfrom
LunaStev:chore-improve-test-runner,-LLVM-type-inference,-and-environment-setup
Jun 20, 2026
Merged

Improve test runner, LLVM type inference, and environment setup#317
LunaStev merged 12 commits into
wavefnd:masterfrom
LunaStev:chore-improve-test-runner,-LLVM-type-inference,-and-environment-setup

Conversation

@LunaStev

Copy link
Copy Markdown
Member

Summary

This PR improves the Wave testing infrastructure, LLVM code generation, CI validation, and development environment configuration.

Changes

Test Runner

  • Added selective test execution through:
    • --only
    • --skip
  • Extended Wave test metadata support:
    • mode
    • expected_exit
    • freestanding
    • additional execution-related fields
  • Improved test filtering and execution workflow.

LLVM Code Generation

  • Improved type inference for complex expressions.
  • Enhanced handling of:
    • nested pointer dereferences
    • field accesses
    • indexed accesses
  • Reduced ambiguity during IR generation by preserving more specific type information.

Environment Setup

  • Added support for custom MinGW toolchain configuration through:
    • WAVE_MINGW_CC
    • WAVE_MINGW_CXX
  • Added LLVM path validation to provide earlier and clearer diagnostics.
  • Improved cross-platform setup behavior, especially on Windows.

CI and Tooling

  • Added Clippy validation to Rust CI workflows.
  • Added Rustfmt validation.
  • Added Python validation checks.
  • Improved workflow consistency across development environments.

Developer Experience

  • Added targeted lint exceptions where explicit code improves readability and maintainability.
  • Improved development ergonomics without affecting runtime behavior.

Motivation

These changes make the Wave toolchain easier to test, improve LLVM code generation correctness, strengthen CI validation, and simplify development environment configuration across platforms.

Impact

  • Better test execution flexibility.
  • More reliable LLVM IR generation.
  • Improved Windows development experience.
  • Stronger CI quality checks.
  • Better developer productivity.

LunaStev added 6 commits June 20, 2026 12:20
- Added selective test execution via `--only`/`--skip`.
- Enhanced Wave test metadata parsing with new fields (`mode`, `expected_exit`, `freestanding`, etc.).
- Improved compatibility for Windows by accommodating environment variables for MinGW (`WAVE_MINGW_CC`, `WAVE_MINGW_CXX`) and validating LLVM paths.
- Upgraded IR generation to better handle nested dereferences and field/index accesses with specific types.
- Changed Rust and Python CI steps to include Clippy, Rustfmt, and Python validation.
- Added lint exceptions for development ergonomics and explicit code clarity.

Signed-off-by: LunaStev <luna@lunastev.org>
…ckaging and GitHub release creation

Signed-off-by: LunaStev <luna@lunastev.org>
Signed-off-by: LunaStev <luna@lunastev.org>
…in binary.rs and plan.rs

Signed-off-by: LunaStev <luna@lunastev.org>
Signed-off-by: LunaStev <luna@lunastev.org>
@LunaStev LunaStev force-pushed the chore-improve-test-runner,-LLVM-type-inference,-and-environment-setup branch from 9e0c2f4 to d2b6409 Compare June 20, 2026 03:42
…m_instruction_text` function

Signed-off-by: LunaStev <luna@lunastev.org>
@LunaStev LunaStev force-pushed the chore-improve-test-runner,-LLVM-type-inference,-and-environment-setup branch from d2b6409 to 11699ee Compare June 20, 2026 03:45
LunaStev added 5 commits June 20, 2026 12:51
…macOS version string syntax in `version.rs`

Signed-off-by: LunaStev <luna@lunastev.org>
- Added explicit "Setup Rust" step using `dtolnay/rust-toolchain` (v1.89.0) with `rustfmt` and `clippy`.
- Refactored Wave stdlib installation into a dedicated step.
- Separated LLVM environment configuration into its own step for better readability.
- Adjusted step ordering for consistency between Linux and macOS workflows.

Signed-off-by: LunaStev <luna@lunastev.org>
…ion step

Signed-off-by: LunaStev <luna@lunastev.org>
…vironment setup

Signed-off-by: LunaStev <luna@lunastev.org>
…egister normalization in plan.rs

Signed-off-by: LunaStev <luna@lunastev.org>
@LunaStev LunaStev merged commit 4f6dcb6 into wavefnd:master Jun 20, 2026
2 checks passed
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