fix: make CI case results reliable and restore ARM64 validation - #630
Merged
Conversation
Fixes wavefnd#577 Signed-off-by: LunaStev <luna@lunastev.org>
Fixes wavefnd#610 Signed-off-by: LunaStev <luna@lunastev.org>
Use the same explicit Cargo target as the working native build and release paths. Preserve static CRT allocator ownership and stage the verified compiler for the existing case runner. Fixes wavefnd#608 Signed-off-by: LunaStev <luna@lunastev.org>
Replace recursive owned expression reconstruction with an in-place worklist while preserving traversal and diagnostic order. Regress the executor import graph under a 1 MiB process stack and retain native crash inputs. Fixes wavefnd#609 Signed-off-by: LunaStev <luna@lunastev.org>
Fixes wavefnd#607 Signed-off-by: LunaStev <luna@lunastev.org>
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.
Case execution currently lets a compiler error satisfy an expected nonzero program exit, while the all-target precheck stops at the first error and prevents native results from being collected. Windows ARM64 also fails before meaningful runtime validation: implicit-target Cargo builds misclassify SDK import libraries, and debug module resolution exhausts a small process stack.
This PR contains one commit per issue:
Reject compiler failures in cases that expect a nonzero program exit #577: build into a fresh directory, require successful executable production, then supervise the program separately. Compiler/linker/launch failures cannot satisfy its exit contract; stdin, target selection and process-tree cleanup are retained.
Collect all case precheck failures without suppressing native execution and reports #610: collect every manifest source-check result and preserve its diagnostics. Native cases remain eligible after a precheck failure only when compiler/std prerequisites succeeded. The workflow remains failing when either phase fails.
Restore Windows ARM64 case builds when static CRT linking cannot locate psapi #608: use the explicit ARM64 Cargo target already used by the working build/release paths, keeping target CRT flags off host build scripts. llvm-sys 211 uses its own
cfg!(target_feature = "crt-static")to classify system libraries; the implicit-target build changes this to static bundling of SDK imports such aspsapi. Keep the required static CRT allocator configuration and stage the verified compiler for the existing case runner.Fix native Windows ARM64 compiler stack overflow on the executor restart fixture #609: replace recursive expression reconstruction in module resolution with an in-place worklist, preserving traversal and diagnostic order. The original executor fixture now passes check/IR/ARM64 MSVC object emission under a 1 MiB process stack; retain compiler/PDB/fixture/std/diagnostics on native runtime failures.
Repair the stale process helper import in the Linux amd64 case suite #607: remove the unused import of the retired
_proc_dup_child_fdhelper from the Linux amd64 process case; preserve the test workload.Validation:
linux/amd64/test13.waveexecutes successfully locally. Full-suite testing on this machine is affected by the existing server-port isolation issue Require the server case to validate its own generated process #580 (another service uses port 8080).sockets_survive_executor_restart_and_release_their_completion_port).Fixes #577
Fixes #610
Fixes #608
Fixes #609
Fixes #607
CI follow-up: the macOS ARM64 Python process-tree timeout test once returned a failure classification instead of the expected timeout, but the assertion discarded the captured subprocess output. The assertion now includes that output and the classification detail without changing timeout or pass/fail behavior. The macOS ARM64 job, including Python tooling and Rust validation, passes on rerun; the original intermittent failure's cause has not been identified, so this is diagnostic hardening rather than a claimed fix for a proven subprocess cause.