Fix arithmetic runtime, platform errors, diagnostics, and trig accuracy - #806
Merged
LunaStev merged 2 commits intoSep 28, 2026
Merged
Conversation
Signed-off-by: LunaStev <luna@lunastev.org>
Signed-off-by: LunaStev <luna@lunastev.org>
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Motivation
Valid native i128 programs currently fail to link because arithmetic runtime symbols are missing. Thin archives bypass ABI inspection, errno values collide between operating systems, async sleep discards duration errors, diagnostic carets drift on Unicode/tabbed source, and large trigonometric inputs lose their phase.
Closes #805
Closes #651
Closes #508
Closes #535
Closes #489
Closes #600
Target and compatibility impact
std::task::sleep_msnow returnsFuture<i32>: success is0(including a zero duration); negative durations and deadline overflow return-22.awaitandblock_onexpose the same result. ExplicitFuture<void>consumers must update. Compiler/std compatibility revision increases from 4 to 5.Validation
Using Rust 1.89 and LLVM 21:
WAVE_RUN_WASM_RUNTIME_TESTS=1 cargo +1.89 test --locked --workspace --all-targets --no-fail-fast --jobs 2: 350 passed, 0 failed, including WASM execution.cargo +1.89 test --locked --jobs 2 --lib link_validation: 5 passed, including shared-suffix long-name offsets.cargo +1.89 test --locked --jobs 2 --test native_providers network_error: 2 passed, including bare/WASI/freestanding target selection.cargo +1.89 clippy --locked --workspace --all-targets --jobs 2 -- -D warningscargo +1.89 fmt --all -- --checkgit diff --checkNative execution outside Linux is covered by PR CI, not claimed as locally verified.
Checklist
Signed-off-byline.std/.