Specify and validate the Wave ABI independently from the C ABI
- Dominant language
- Rust
- Stars
- 53
- Forks
- 16
- Avg merge
- 4h 22m
- Merged PRs (30d)
- 46
Description
## Roadmap context
Wave needs a language ABI that is defined independently from the existing C ABI classifier and can be implemented consistently by both the LLVM backend and the Whale toolchain.
## Specification scope
- Scalar, pointer, and aggregate argument and return rules.
- Object representation versus ABI transport representation.
- Target-specific register classification, stack layout, alignment, padding, indirect arguments, and hidden return pointers.
- Function symbols, name mangling, visibility, imports, exports, and cross-module interfaces.
- Generic and Wave-specific type eligibility at ABI boundaries.
- ABI versioning and compatibility detection.
- A backend-neutral fixture and expected-result format shared by LLVM and Whale.
- Separation of C ABI comparison fixtures from native Wave ABI fixtures.
## Completion criteria
- [ ] The ABI specification defines observable behavior for every supported target family.
- [ ] ABI version and compatibility rules are machine-readable.
- [ ] LLVM and Whale consume the same contract fixtures.
- [ ] Cross-module calls are tested independently from C interoperability.
- [ ] C ABI classifiers do not implicitly define Wave ABI behavior.
This is a design and tracking issue. Concrete fixture, documentation, and validation tools should be split into smaller issues once their contracts are fixed.
Contributor guide
Research direction
No files, tests, or entry points are named. Start by reviewing the ABI scope and completion criteria, then identify smaller fixture, documentation, and validation issues; done means the listed specification, compatibility, shared-fixture, cross-module, and C-ABI separation requirements have concrete contracts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, rust
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100