wavefnd / wavefnd/Wave

Define a wasm64 WASI ABI and runtime contract

Open
#466 0 comments 0 reactions 0 assignees View on GitHub
cross-platform enhancement feature request help wanted
Dominant language
Rust
Stars
53
Forks
16
Avg merge
4h 22m
Merged PRs (30d)
46

Description

## Problem

PR #457 adds a working `wasm64-unknown-unknown` Memory64 target but intentionally leaves `wasi/wasm64` disabled. Wave must not reuse the wasm32 WASI Preview 1 pointer ABI without a defined 64-bit host/runtime contract.

## Scope

- Select and document the WASI ABI/version used for 64-bit pointers.
- Define entry, imports, strings, iovec, filesystem, clock, environment, and process-exit layouts.
- Add a compatible host runner and linker contract.
- Reuse the wasm64 allocator without pointer narrowing.
- Activate `wasi/wasm64` only after object and runtime fixtures pass.

## Completion criteria

- The target has an exact triple and published ABI contract.
- Standard-library smoke tests execute through a maintained runtime.
- Pointer-bearing imports are validated against an independent host fixture.
- `supported` and `ci` are enabled only when the lane is reliable.

Related: #451, #457

Contributor guide

Open the contributing guide

Research direction

Start with PR #457 and related issue #451, then inspect the existing wasm64-unknown-unknown target and disabled wasi/wasm64 lane. Map the listed ABI, runtime, allocator, host, linker, and fixture requirements; done means the exact triple is documented, independent fixtures and standard-library smoke tests pass, and supported/CI are enabled only when reliable.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, wasm
Domain
compilers, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.