fix(ci): complete suites and repair macOS runtime failures - #1130
Merged
8 commits merged intoSep 12, 2026
Merged
8 commits merged into
8 commits merged into
Conversation
Check portable sentinel substitution, bound owned-child teardown, and preserve cleanup across repeated signals. Reject incomplete SIGUSR1 populations and nonzero child exits. Support Bash 3 cleanup ownership and BSD wc padding. Validation: 10 focused commands completed; SIGUSR1 default 15/15 and forced 13/13; strict 11/11; replay 6/6; portability 25/25; cleanup-deferral-disabled control failed with the required delivered-signal/live-child witness. Full remote release/ASan/macOS CI required before merge. Addresses #1126.
Run HTTP/model, gfx, zlib and net suites in separate fresh jobs with the existing 30-minute limits. Preserve the current required extensions check as an always-running aggregate that rejects every unsuccessful worker. Validation: exact coverage of all 18 original non-checkout steps; dropped and duplicated suite mutations rejected; 18 aggregate status cases passed. Independent root rerun exit 0, chunk97b521. Actual four-worker CI pending. Addresses #1126.
Assemble E000 before applying the existing UTF-8 message limit. Keep short messages byte-identical and preserve the separate file-field behavior. Cover short, long ASCII and multibyte missing paths with exact case enrollment. Fixes #1132. Validation: 10 bounded local commands; 3 original-path CLI checks and 3 dedicated cases; old-binary and missing-case faults both rejected. UTF-8 gate: 40 checks, 30 documented codes, 8 exemptions, 2000 identifier sweep runs, 1125 source-byte runs. All 9 original gate selftests passed. 1036 frozen inputs unchanged. Full release/ASan CI remains required before merge. Evidence: /tmp/ems-close-20260911/lint-e000-focused-r1/result.json SHA256: 4aa4729cdaa784b41e155591acafee5d7728bf48a2808aed568a1147640c23d5
Show the first five explicit assertion lines and the last twenty captured lines for failed EigenScript and lint children. Expected parser diagnostics previously hid the later assertion. Consume the existing capture without rerunning the child or changing its verdict, and preserve complete lines. Fail setup if the formatter dependency is missing. Validation: formatter 3 positive cases and 2 attributed fault rejections; shell syntax and git diff checks passed. Full suite execution remains CI work. Evidence: /tmp/ems-close-20260911/failure-output-controls/result-r1.json SHA256: 326c1e3c0c9e06411d49740461fc39e4bf68d8c62ea717219a7466f59dd98282
Core ASan plus LSP and HTTP/model ASan now own separate checkouts and retain the original 45-minute limits. Keep the existing required status as an always aggregate that requires both workers and a successful scope check. The prior job passed core 5060/5060 and LSP 110/110, then exhausted its cumulative budget during the second suite. No checks or sanitizer options are removed, and no incomplete suite is accepted. Validation: exact preservation of all 4 original non-checkout steps; dropped and duplicated suite controls rejected; 15 actual aggregate-shell cases passed, including rejection of failure, cancellation, skipped or missing workers and unknown scope output. Full remote completion remains required. Evidence: /tmp/ems-close-20260911/sanitizer-split-review/result-r1.json SHA256: d663ca4fdd2925f908cebddec29c691de53fc289a02ad4be4d50fa21fafffd4f
Resolve and own the executable path before chdir, use separate rounded matrix multiply/add operations, and preserve the pinned buffer NaN result. Use upstream LLVM for macOS gfx leak checks and retain invalid-path lint coverage on filesystems that reject invalid UTF-8 names. Measured gate results: EXE PATH: 5 passed, 0 failed (native and no-proc); old no-proc: 1/5. STRICT: 103 passed, 0 failed. identical-when-off: 99 differing: 0 raises-under-strict: 99 silent: 0 misattributed: 0 answer-pins held: 31 broken: 0 valid-input rows unchanged in BOTH modes: 170 / 170 UTF-8: 40 checks, 30 documented codes, 8 pinned exemptions; 2000 identifier runs and 1125 source-byte runs. Results: 247 passed, 0 failed, 247 total (lint). Doc examples: 88 checked, 88 passed, 0 failed, 5 skipped. Changed compiler audit: 4/4 and recognizer coverage passed; compiler-audit integration and synthetic fault selftests: OK. gfx startup controls: 2/2; original wrongly 15/15, fixed rejects startup. gfx symbol controls: 3/3; independent corpus decisions: 20/20. Independent runtime and gate reviews: PASS within local scope. Full integrated platform and sanitizer CI pending; no native macOS pass is claimed from the local controls.
| * changing buffer-NaN reads generally is a separate reform tracked | ||
| * in ROADMAP.md. Finite results and infinities remain untouched. */ | ||
| for (int i = 0; i < res->data.buffer.count; i++) { | ||
| if (res->data.buffer.data[i] != res->data.buffer.data[i]) { |
The Apple Silicon job hung for 28 minutes in the tiny ASan startup control with Homebrew LLVM 20.1.8. Select LLVM 22, whose released runtime contains llvm-project#182943 via the release/22.x backport #188913. Keep the interpreter on Apple Clang and retain the deliberate leak control. Bound sanitizer children with TERM after 120s and KILL after 5s, including the startup and SDL probes. Require a completed positive leak control; a timeout after leak output is a failure. Missing coreutils fails loudly. Give the full native job 45 minutes: Intel completed the gfx gate and 540 compiler invocations but hit 30 minutes in compiler audit selftests. No test populations or required checks are removed. Validation: timeout controls 17 passed, 0 failed under Bash 5 and Bash 3.2; 5 private timeout/exit mutations rejected, 0 missed. Changed compiler audit 4/4 invocations; recognizer coverage 102 scripts, 7 shape waivers. Workflow parse/native coverage, bash syntax and diff checks are green. Native macOS CI must verify the selected runtime and integrated suite.
| if pidfile.exists(): | ||
| try: | ||
| os.killpg(os.getpgid(int(pidfile.read_text())), signal.SIGKILL) | ||
| except ProcessLookupError: |
LLVM22 fixed the macOS26 ARM startup hang, but the original -O0 leak fixture exited 0 without a report. Allocate inside a joined worker which returns NULL so the main thread never retains an allocation pointer. The clean twin differs only by freeing that allocation. Scanner settings stay unchanged, and thread/allocation failures cannot pass either control. Add --toolchain-only to the same gate and run it as an early native CI step. It validates startup and both leak controls before any gfx build, fails when ASan is unavailable, and does not replace the full suite. Validation: real GCC preflight 2/2; timeout controls 17/17; invalid arguments rejected 3/3; independent review PASS. Full graphics population remains 15. Changed compiler audit 4/4; recognizer 102 scripts, 7 shape waivers. Workflow preflight ordering, shell syntax and diff checks are green. Native macOS must verify the real joined-thread controls and full suite.
7b4302e
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.
The extension and sanitizer variants shared worker budgets that expired before every suite completed. Once those workers completed independently, macOS exposed executable-path imports after
chdir, matrix rounding differences on ARM, unsupported leak detection, and invalid-filename fixture failures.Run each extension and sanitizer variant in its own checkout while retaining the existing required aggregate checks. Preserve the absolute executable path before user code changes directory, and make all three matrix kernels round multiplication before addition on both platforms. Preserve the existing default buffer NaN result and strict-mode rejection. The macOS graphics gate uses LLVM 22 on Apple Silicon (the macOS 26 ASan startup fix) and LLVM 18 on Intel. It validates startup and instrumentation, gives each sanitizer child a hard deadline, and rejects unexpected exits. The deliberate-leak fixture allocates inside a joined worker so stale main-thread pointers cannot hide the leak. An early native preflight requires both the leak and clean controls; the full graphics corpus remains in the suite. The full native job has a 45-minute budget after Intel exhausted 30 minutes during compiler-audit fault tests. Lint tests retain missing-path diagnostics when the filesystem rejects invalid UTF-8 filenames. Portable harness cleanup, bounded E000 messages, and useful child failure output are included.
Validation of the assembled update:
/proc/self/exeunavailable; the original runtime failed 4/5 of the latter cases.2c30282: all 26 checks completed successfully. Native Apple Silicon 5,072/5,072; Intel 5,075/5,075. Both sanitizer workers and the required sanitizer aggregate are green.Addresses #1126. Fixes #1131, #1132, and #1133.