perf(jsc): carry stack coordinate cache into rebased release - #9
Merged
Merged
Conversation
Port #8 with identical engine and regression patch bytes. Compose only CI checkout-depth and release-documentation overlaps, retain all rebased qualification gates, and require the cache regression across execution and cache modes.
Include baseline-only, DFG-only and concurrent-GC stack runs from the original cache qualification, preserve the existing direct/cache modes, and cover the surrounding error-stack stress selection. Keep the engine port unchanged.
steipete
added a commit
that referenced
this pull request
Oct 5, 2026
Windows ARM64 Bun ships upstream, but the published OpenClaw WebKit matrix omits its non-LTO engine archive. Add the existing upstream `bun-webkit-windows-arm64` lane as the tenth archive, without changing engine source, Dockerfiles, toolchain pins or upstream lane recipes relative to the qualified release tip `641c15f9283845195dd3520dddc1fbd668379350`. A native `windows-11-arm` job verifies the archive/source receipt and ARM64 PE identity of both JSC and testFFI, then runs startup/DFG and FFI checks. Assembly binds this receipt to the exact archive hash, and publication authorization requires the native job alongside every existing build, Linux qualification and assembly gate. Missing or failed proof fails closed. The existing protected publication and immutability controls remain intact. Validation on head `e760c66892141e4028fd13b18bd2b0a242cf7be2`: - All four checks pass in [37293130816](https://github.com/openclaw/WebKit/actions/runs/37293130816): Linux native qualification, Linux-hosted macOS fork artifact, Windows ARM64 build, and native Windows ARM64 qualification. - Native testFFI executes 1,509,848 checks with zero failures. JSC startup and DFG JIT pass. Both executables are verified ARM64, preventing an emulated x64 binary from satisfying the native gate. - CI merge source `8b1a979c5ac866d8c927c3d7a0179b2002185f7d` has the same tree as the reviewed head: `006761875cd6ed9d4d64e478b7ed144651d99c0f`. Independent download verification matches the 367,107,253-byte CI archive's SHA-256 `dbe30b56af503584b2fc512c1669217bb8ef7daf4d155fb614387d219052b9b7` and both PE architectures. - 25 publication-integrity tests, four JSC-result verifier tests, actionlint and whitespace checks pass. Local integration and final committed-branch P2 Codex autoreviews are scoped-clean. Incoming #9 engine/regression/qualification source is byte-identical to its released tip. The predecessor nine-archive publication completed immutable readback before this PR's landing. This PR does not publish a release or change repository settings. A separately authorized ten-archive publication and matching Bun checksum pin are required before openclaw/bun#128 can qualify its ARM64 release lane; CI artifact hashes must not be substituted for a published pin. Upstream Bun cross-compiles Windows aarch64 from Debian ARM64 with clang-cl/lld-link and xwin, then tests on Windows 11 ARM64; bun-v1.4.2 publishes the target. This WebKit lane follows the existing Linux x64 Docker recipe. ARM64 deliberately stays non-LTO because LLVM CodeView cannot encode its LTO register tuples (oven-sh/bun#31345). No compiler workaround is introduced.
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.
Repeated syntax-selected stack reads still decode the source provider's compressed line table in the published rebased engine. Carry the merged cache from #8 onto
openclaw/release-5718a6ec, preserving the engine delta and its regression byte for byte.SourceProvider.cpp,SourceProvider.handstack-position-regressions-cache.jshave identical final bytes and identical raw patch bytes to54b0b3a67adadb8edeb066c7a76c3b83b1d053c3. No engine overlap or redesign was needed. The only port conflicts were CI checkout depth and release documentation: retain the full rebased qualification from #6, use #8's exact-head/full-history checkout, add its Linux-hosted macOS arm64 compilation lane, and preserve the release/compatibility notes.The cache regression is mandatory in the stress matrix and seven direct stack modes, including interpreter, baseline-only, DFG-only, eager FTL and concurrent GC, plus owned/persistent cache replay. The original surrounding error-stack selection is included. Every existing paired-Bun, upstream-sync compatibility, feature, stack/source-map, accounting and memory-release gate remains enabled. Publication workflow/tooling, variant pins and upstream Docker/lane/ICU/cross-tool recipes are unchanged.
Exact head
9d96953151513e834a39477554b82158e470a161passed both lanes in run 37282530932. Downloaded proof verifies 1,778 JSC stress and 1,639 module configurations, including 138 stack configurations and all 17 new-cache configurations; seven direct stack modes and both cache forms; 46/46 paired rows per arm; 85/85 sync rows; 343 stack/source-map and 68 minifier tests; compatibility startup and three unchanged memory-release tests; and 100 idle-inspection assertions with 40 inspections/eight notification races. Runtime cache-only marker execution preserves all 56 coordinates. The existing runner retried 26 unfinished files per paired arm and 55 in the sync arm after its shared stdio bootstrap issue; all final rows pass and no retry policy changed.The complete candidate is scoped-clean through P2. All 23 release-integrity tests, four result-verifier tests, actionlint, shell syntax and patch-preservation checks pass. Runtime proof is Linux x64; the macOS lane is compilation proof on Linux. #8's original performance results were on engine main, so this is not a new benchmark claim for the rebased release.
Protected nine-lane publication follows the merge. Bun's checksum manifest/version bump is a separate draft after the pending sync and batch integrations. Engine main history is unchanged.