wavefnd / wavefnd/Wave

Track LLVM backend retirement and migration to Whale

Open
#93 0 comments 1 reaction 1 assignee Claimed by @LunaStev View on GitHub
build discussion technical debt
Dominant language
Rust
Stars
53
Forks
16
Avg merge
4h 22m
Merged PRs (30d)
46

Description

## Current status

LLVM 21 is Wave's current functional backend and is required for supported compilation, target, ABI, and release workflows. It must not be removed while it is the only backend that satisfies those contracts.

Wave intends to move native toolchain responsibilities to Whale over time and exclude LLVM from the eventual bootstrap path.

## Migration scope

- Define a backend-neutral compiler-to-toolchain interface.
- Preserve target, relocation, code model, ABI, inline assembly, object, linker, and diagnostic contracts.
- Reuse target and ABI fixtures across LLVM and Whale where possible.
- Add explicit backend selection during the transition.
- Establish feature-parity and artifact-compatibility gates.
- Define the bootstrap path and supported host requirements.
- Deprecate LLVM only after Whale passes the required language, ABI, platform, and release tests.

## Completion criteria

- [ ] Whale can compile the maintained Wave corpus for supported targets.
- [ ] Backend-neutral ABI fixtures, including the work tracked in #350 and #368, pass.
- [ ] Release and bootstrap workflows no longer require LLVM.
- [ ] Users receive a documented migration path.
- [ ] LLVM removal is a deliberate final step, not an intermediate breakage.

This issue records the long-term toolchain direction. Concrete migration components should be opened as focused implementation issues.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.