wavefnd / wavefnd/Wave

Mark shared Wave cases as compile-portable or runtime-portable

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

Description

## Problem

PR #457 makes `shared/` compile on every enabled target, but QEMU and WebAssembly runtime selection cannot safely execute every shared case. Some otherwise portable sources require process I/O or custom WebAssembly host imports. The current runner therefore executes only `shared/` and `/` for those targets.

## Scope

- Define an explicit, backend-neutral contract for cases that are safe to execute on a target runtime.
- Distinguish compile portability from runtime portability and required host capabilities.
- Make `runtime-sources` include eligible root `shared/` cases.
- Keep missing browser host imports aligned with #453 and target capability diagnostics aligned with #451.
- Add unit tests for native, QEMU, bare WebAssembly, and WASI selection.

## Completion criteria

- Self-contained shared cases run under every compatible enabled target.
- Cases requiring unavailable host services remain compiled but are excluded or reported as capability skips.
- Selection is manifest/metadata driven, not based on filenames or source-text heuristics.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the runtime-sources selection and the existing shared/ and / paths. Review how target capabilities, browser host imports, and capability diagnostics relate to #453 and #451, then add unit tests for native, QEMU, bare WebAssembly, and WASI selection. Done means metadata-driven selection includes compatible root shared/ cases while skipping or reporting unavailable host services.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.