wavefnd / wavefnd/Wave

Implement NetBSD amd64 code generation, std providers and executable cases

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

Description

NetBSD case entries are disabled and the compiler target registry contains no NetBSD triples. Existing generated arithmetic/assembly placeholders do not test NetBSD runtime behavior.

Implement `x86_64-unknown-netbsd` under #471: target registration, Clang C ABI comparison, NetBSD startup and dynamic-loader selection, sysroot discovery/validation, and std filesystem/time/memory/process/socket providers using NetBSD headers. Versioned libc symbols and architecture-specific ABI layouts must be checked explicitly. Add a native VM execution job with substantive language and std cases, then extend to arm64 using independently verified platform information.

Acceptance: Wave and C call each other for scalar, small/large aggregate and variadic arguments; shared language cases plus OS provider/error-path cases execute in a NetBSD VM. Distinguish compile-only coverage from executable support. Do not enable unsupported architecture cells merely to complete a rectangular matrix.

Official ports: https://www.netbsd.org/ports/
Parent: #471. Keep the handwritten frontend and existing dependency choices.

Contributor guide

Open the contributing guide

Research direction

Read parent issue #471, the disabled NetBSD case entries, and the compiler target registry first; use the official NetBSD ports information to verify platform details. Map the target, ABI, startup, loader, sysroot, provider, and VM-job requirements before changing them. Done means the stated scalar, aggregate, variadic, language, standard-library, and error-path cases execute in a NetBSD VM, with unsupported architecture cells left disabled.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, rust
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.