Repository navigation
Expand Whale scalar support and remove unused std::libc bindings - #924
Merged
Merged
Conversation
Remove the ten unused binding modules and their policy-checker exemption. Document the removed import paths and external-binding migration while preserving the existing OS providers and generated C I/O behavior. Refs: wavefnd#923 Signed-off-by: LunaStev <luna@lunastev.org>
Resolve the official master dependency to 9eed1958 and adapt format-5 round trips and explicit interpreter resource budgets. Consume canonical scalar aliases from Typed HIR and lower eager bool bitwise operations with verified select and comparison instructions. Exercise direct integer/void calls, recursion, evaluation order, traps and shared execution budgets through the bounded upstream interpreter. Refs: wavefnd#875 Refs: wavefnd#915 Refs: wavefnd#916 Refs: wavefnd#917 Signed-off-by: LunaStev <luna@lunastev.org>
4 tasks
Use the same LLVM prerequisite as the successful macOS build/test lanes instead of refreshing Homebrew before packaging. Disable automatic metadata updates and upgrades of installed requested formulae while retaining installation, version checks and existing timeout budgets. Cover both macOS architectures and all shared lanes, failure propagation, wrong LLVM majors and non-provisioning behavior in tooling regressions. Refs: wavefnd#925 Signed-off-by: LunaStev <luna@lunastev.org>
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
Remove the ten unused
std::libcbinding modules, their policy exemption, and obsolete documentation. Add a migration note for users of the removed import paths.Update the official Whale master dependency to
9eed1958d37a02000c440a5efcbf87beeb60aa7a, adapt format-5 round trips, and set explicit interpreter resource budgets.Accept canonical scalar aliases and alias chains from Typed HIR. Lower bool
&,|and^eagerly, preserving source order and once-only evaluation.Execute generated direct integer/void calls, nesting and recursion in bounded oracle tests, including shared fuel, memory, depth, frame and live-value limits.
Share the macOS LLVM prerequisite between build/test and packaging; disable automatic Homebrew metadata updates and upgrades of installed requested formulae.
Motivation
Closes #875
Closes #915
Closes #916
Closes #917
Closes #923
Closes #925
Scalar alias declarations previously rejected otherwise supported programs, and bool bitwise operations were incorrectly dispatched as comparisons. The upstream dependency update enables direct-call oracle coverage while keeping unsupported instructions and resource exhaustion distinct from successful execution. The unused C bindings are being removed from std so they can be supplied independently.
The initial CI run passed 34 of 35 jobs. The macOS amd64 package job alone timed out during LLVM provisioning: its unconditional Homebrew update triggered a 29-minute CMake source build. Packaging now uses the same prerequisite as the successful build/test lane and applies Homebrew's documented update and upgrade controls.
Related to #773; full cross-backend and native execution parity remains separate.
Target and compatibility impact
LLVM remains the default, with the existing
--whaleCLI and Linux amd64/O0 textual-IR scope unchanged. Consume existing HIR types and ordered conversions without changing frontend semantics. Aggregate, pointer and over-128-bit aliases remain unsupported by Whale and produce source diagnostics; failed builds preserve previous output.Existing
std::libc::*imports no longer resolve. Users must use the relevant Wave APIs or provide external C bindings. Existingstd/sysproviders, generated C I/O, supported LLVM targets, version and release behavior are unchanged. No external binding repository is created here.Oracle coverage uses the upstream bounded interpreter and reader/verifier. It does not add native Whale execution, floating execution, or an automatic LLVM fallback. Contributor-owned #714 and #909 remain separate.
Validation
Rust 1.89.0, Cargo jobs=2, LLVM 21:
std::libcimports remain in std Wave sources.Commands used:
The workspace invocation initially stopped on a new test's source-location expectation; another new positive fixture used a frontend-rejected void alias. Both test fixtures were corrected and the final CLI and Whale runs above passed, without changing production code for those corrections. Existing local socket regressions ran with the required permission. Remote platform CI remains to run on this PR.
Checklist
Signed-off-byline.std/.