Conversation
|
Updated 7:49 PM PT - Apr 9th, 2026
❌ @alii, your commit af468c1 has 2 failures in
🧪 To try this PR locally: bunx bun-pr 29097That installs a local version of the PR into your bun-29097 --bun |
WalkthroughThe PR updates the pinned commit hash for the parallel Zig compiler toolchain from Changes
Possibly related PRs
🚥 Pre-merge checks | ✅ 1 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
LGTM — single-line commit hash bump with no logic changes.
Extended reasoning...
Overview
One line changed in scripts/build/zig.ts: ZIG_COMMIT_PARALLEL is bumped from 7d3c0c9b36... to f6231adad3.... No logic, structure, or behavior of the build system is altered.
Security risks
None. This only affects which prebuilt Zig compiler binary is downloaded for local (non-CI) developer builds. CI stays on the stable ZIG_COMMIT constant, which is unchanged.
Level of scrutiny
Minimal — this is a mechanical version-pin update, the same class of change as a dependency version bump. The parallel compiler is explicitly scoped to local dev builds only (defaultZigCommit returns ZIG_COMMIT_PARALLEL only when \!ci && hostOs \!== "windows"), so there is no risk to release or CI builds.
Other factors
No bugs were found by the automated system. The PR description notes the autobuild for the new commit must finish before merging; that is a merge-timing concern for the author, not a code correctness issue. The code change itself is trivially correct.
Picks up: - 14 parallel-sema race fixes (ARM64 seqlock fence, .removed/.existing cluster, retry leaks, deleteUnitReferences UAF) - COFF COMDAT support (sharded build-obj on Windows) - module-level asm + @export alias cross-shard fixes - IES yield-instead-of-park (~6% faster sema) - ELF writeRelocatable batched preads (linux flush no longer hangs) - self-ref global + union field_types_wip false-positive fixes - error-set @typeinfo order tests made order-agnostic - -fno-sanitize=address + clock_getres fork bugfixes
fc85ad4 to
af468c1
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@scripts/build/zig.ts`:
- Line 42: ZIG_COMMIT_PARALLEL is pinned to a commit that has no autobuild
release, causing fetches to 404; update the constant ZIG_COMMIT_PARALLEL in
scripts/build/zig.ts to point to an oven-sh/zig commit that has an officially
published autobuild release tag (or wait for the autobuild workflow to publish
the release and then update/merge), and ensure you verify that all expected
release assets (macos/linux/windows x86_64/aarch64 Release/ReleaseSafe) are
accessible before merging.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 93bb738a-ac7e-4efb-b4db-5562ddd9e667
📒 Files selected for processing (1)
scripts/build/zig.ts
| */ | ||
| export const ZIG_COMMIT = "365343af4fc5a1a632e6b54aadd0b87be30edd81"; | ||
| export const ZIG_COMMIT_PARALLEL = "7d3c0c9b3698d6ce57ef632833e71cab05b783b6"; | ||
| export const ZIG_COMMIT_PARALLEL = "c38724a97991213e5e7e8d85076e17e8ea4f350d"; |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
commit="c38724a97991213e5e7e8d85076e17e8ea4f350d"
base="https://github.com/oven-sh/zig/releases/download/autobuild-${commit}"
assets=(
"bootstrap-x86_64-macos-none.zip"
"bootstrap-aarch64-macos-none.zip"
"bootstrap-x86_64-linux-musl.zip"
"bootstrap-aarch64-linux-musl.zip"
"bootstrap-x86_64-windows-gnu.zip"
"bootstrap-aarch64-windows-gnu.zip"
"bootstrap-x86_64-macos-none-ReleaseSafe.zip"
"bootstrap-aarch64-macos-none-ReleaseSafe.zip"
"bootstrap-x86_64-linux-musl-ReleaseSafe.zip"
"bootstrap-aarch64-linux-musl-ReleaseSafe.zip"
"bootstrap-x86_64-windows-gnu-ReleaseSafe.zip"
"bootstrap-aarch64-windows-gnu-ReleaseSafe.zip"
)
missing=0
for asset in "${assets[@]}"; do
url="${base}/${asset}"
code="$(curl -sS -L -o /dev/null -w "%{http_code}" "$url" || true)"
if [[ "$code" == "200" ]]; then
echo "OK $url"
else
echo "MISSING $code $url"
missing=1
fi
done
exit $missingRepository: oven-sh/bun
Length of output: 1864
🏁 Script executed:
#!/bin/bash
# Check git log for recent changes to this file to understand PR intent
git log --oneline -20 scripts/build/zig.ts 2>/dev/null || echo "No git history available"
# Check if there's a commit message or PR details in the working tree
git show HEAD:scripts/build/zig.ts 2>/dev/null | head -50 || echo "Unable to read HEAD"Repository: oven-sh/bun
Length of output: 2404
🏁 Script executed:
#!/bin/bash
# Check if the f6231ad commit mentioned in the original comment has assets
commit="f6231ad"
base="https://github.com/oven-sh/zig/releases/download/autobuild-${commit}"
url="${base}/bootstrap-x86_64-linux-musl.zip"
code="$(curl -sS -L -o /dev/null -w "%{http_code}" "$url" || true)"
echo "Status for f6231ad: $code"
# Also check for other possible recent autobuild releases
for commit in "36534386" "365343a" "365343a" "c031cbe"; do
base="https://github.com/oven-sh/zig/releases/download/autobuild-${commit}"
url="${base}/bootstrap-x86_64-linux-musl.zip"
code="$(curl -sS -L -o /dev/null -w "%{http_code}" "$url" || true)"
echo "Status for ${commit}: $code"
doneRepository: oven-sh/bun
Length of output: 175
🏁 Script executed:
#!/bin/bash
# Query GitHub releases API for oven-sh/zig to see what tags actually exist
curl -s "https://api.github.com/repos/oven-sh/zig/releases?per_page=30" | \
python3 << 'EOF'
import sys, json
try:
data = json.load(sys.stdin)
if isinstance(data, list):
print(f"Total releases fetched: {len(data)}")
for rel in data[:10]:
tag = rel.get('tag_name', 'N/A')
assets_count = len(rel.get('assets', []))
print(f" {tag}: {assets_count} assets")
else:
print("Response is not a list (may be paginated or error)")
print(json.dumps(data, indent=2)[:500])
except Exception as e:
print(f"Error: {e}")
EOF
# Also try checking if c38724a release exists with any naming pattern
echo ""
echo "Checking for any release matching c38724a:"
curl -s "https://api.github.com/repos/oven-sh/zig/releases?per_page=100" | \
grep -i "c38724a" || echo "Not found in first 100 releases"Repository: oven-sh/bun
Length of output: 179
🏁 Script executed:
#!/bin/bash
# Check the actual oven-sh/zig repo structure and recent commits
# to understand if autobuild releases are being generated at all
git ls-remote --tags https://github.com/oven-sh/zig.git | grep -E "(autobuild|c38724|365343)" | head -20Repository: oven-sh/bun
Length of output: 2094
🏁 Script executed:
#!/bin/bash
# Search entire autobuild tag list for c38724a
git ls-remote --tags https://github.com/oven-sh/zig.git | grep autobuild | grep -c c38724a && echo "FOUND" || echo "NOT FOUND: c38724a has no autobuild tag"
# Count total autobuild tags to see scope
git ls-remote --tags https://github.com/oven-sh/zig.git | grep autobuild | wc -lRepository: oven-sh/bun
Length of output: 99
Do not merge until autobuild-c38724a… release is published.
ZIG_COMMIT_PARALLEL is pinned to c38724a97991213e5e7e8d85076e17e8ea4f350d, but this commit has no autobuild release tag on oven-sh/zig. All bootstrap assets (macos/linux/windows, x86_64/aarch64, Release/ReleaseSafe variants) return 404. Local parallel builds will fail at fetch time. Wait for the autobuild workflow to complete and publish the release before merging.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/build/zig.ts` at line 42, ZIG_COMMIT_PARALLEL is pinned to a commit
that has no autobuild release, causing fetches to 404; update the constant
ZIG_COMMIT_PARALLEL in scripts/build/zig.ts to point to an oven-sh/zig commit
that has an officially published autobuild release tag (or wait for the
autobuild workflow to publish the release and then update/merge), and ensure you
verify that all expected release assets (macos/linux/windows x86_64/aarch64
Release/ReleaseSafe) are accessible before merging.
| */ | ||
| export const ZIG_COMMIT = "365343af4fc5a1a632e6b54aadd0b87be30edd81"; | ||
| export const ZIG_COMMIT_PARALLEL = "7d3c0c9b3698d6ce57ef632833e71cab05b783b6"; | ||
| export const ZIG_COMMIT_PARALLEL = "c38724a97991213e5e7e8d85076e17e8ea4f350d"; |
There was a problem hiding this comment.
🟡 The PR description states the bump targets f6231adad3 (tip of oven-sh/zig upgrade-0.15.2) and the NOTE says "Don't merge until autobuild for f6231adad3 finishes", but the actual code sets ZIG_COMMIT_PARALLEL to c38724a97991213e5e7e8d85076e17e8ea4f350d — an unlisted intermediate commit not present among the 5 described commits. The PR appears to have been merged in its intermediate/WIP state, missing the final listed commit (f6231adad3: error-set @typeInfo order-agnostic test). Before or shortly after merging, the constant should be updated to f6231adad307ef52dc390eb3aa6db844d1b261a3 to match the stated intent.
Extended reasoning...
What the bug is: The PR description explicitly states the parallel compiler is being bumped "from 7d3c0c9b36 → f6231adad3" and lists 5 specific commits to be picked up, ending with f6231adad3 (error-set @typeInfo order test made order-agnostic). A NOTE in the description says "Don't merge until autobuild for f6231adad3 finishes on oven-sh/zig." However, the actual code change sets ZIG_COMMIT_PARALLEL to c38724a97991213e5e7e8d85076e17e8ea4f350d, which begins with c38724a979.
The mismatch: The commit c38724a979 does not appear anywhere in the 5-commit chain listed in the description (c2983b5f2c, a59bd0a09e, 6c33e106df, d05d437103, f6231adad3). The PR title was updated to match the code (c38724a979), making the title internally consistent with the code — but both contradict the description's stated target.
Why existing checks don't prevent it: The NOTE itself was the intended guard: "Don't merge until autobuild for f6231adad3 finishes". However, based on the git log (af468c1 build: bump ZIG_COMMIT_PARALLEL to c38724a979), the PR was merged with c38724a979 rather than the intended f6231adad3. The automated bot (CodeRabbit) incorrectly summarized the change as bumping to f6231adad307ef52dc390eb3aa6db844d1b261a3 — hallucinating from the description rather than reading the diff — so the review tooling did not catch the discrepancy.
Addressing refutations: Refuters correctly note the PR title matches the code and the intermediate state appears intentional. However, the intent expressed in the description and NOTE was that the code would be updated to f6231adad3 before merging. The fact that it was merged with the placeholder c38724a979 means the final commit (f6231adad3: error-set @typeInfo order-agnostic test) was never picked up. The intermediate state was meant to be temporary, not the final merged state.
Step-by-step proof:
- PR description says target is
f6231adad3(last of 5 listed commits). - Code sets
ZIG_COMMIT_PARALLEL = "c38724a97991213e5e7e8d85076e17e8ea4f350d"(starts withc38724a979). c38724a979appears nowhere in the 5-commit list (c2983b5f2c,a59bd0a09e,6c33e106df,d05d437103,f6231adad3).- Git log confirms
af468c1(this PR) merged with hashc38724a979. - Therefore
f6231adad3(error-set@typeInfoorder-agnostic test) was never included in any Bun local dev build.
How to fix: Create a follow-up PR setting ZIG_COMMIT_PARALLEL = "f6231adad307ef52dc390eb3aa6db844d1b261a3" once (or after confirming) its autobuild on oven-sh/zig has completed.
Bumps the parallel-sema compiler from
7d3c0c9b36→f6231adad3(oven-sh/zigupgrade-0.15.2tip).Picks up 5 commits:
c2983b5f2c— 14 parallel-sema race fixes (ARM64 seqlock missing acquire fence,.removed/.existingcluster, retry leaks,deleteUnitReferencesUAF, etc.)a59bd0a09e—-Dllvm-codegen-threadsthreaded through behavior tests;std.mem.lencomptime guard6c33e106df— COFF COMDAT support (shardedbuild-objon Windows now links); module-level asm routed to source-file shard; cross-shard@exportalias collapse; IES yield-instead-of-parkd05d437103— self-ref global false-positive cycle fix; union.field_types_wipcross-thread gate;-fno-sanitize=address+clock_getresfork bugfixesf6231adad3— error-set@typeInfoorder test made order-agnosticNet: behaviour suite under psema+sharding now clean (was 17 failing); Bun debug build ~11s.
Note
Don't merge until autobuild for
f6231adad3finishes on oven-sh/zig.