wavefnd / wavefnd/Wave

Specify and validate the Wave ABI independently from the C ABI

Open
#350 0 comments 0 reactions 0 assignees View on GitHub
discussion enhancement feature request
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.