Skip to content

perf(jsc): carry stack coordinate cache into rebased release - #9

Merged
steipete merged 2 commits into
openclaw/release-5718a6ecfrom
codex/w171-release-8
Oct 5, 2026
Merged

steipete merged 2 commits into
openclaw/release-5718a6ecfrom
codex/w171-release-8

Conversation

@steipete

@steipete steipete commented Oct 5, 2026 •

Copy link
Copy Markdown

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.h and stack-position-regressions-cache.js have identical final bytes and identical raw patch bytes to 54b0b3a67adadb8edeb066c7a76c3b83b1d053c3. 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 9d96953151513e834a39477554b82158e470a161 passed 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.

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
steipete merged commit 641c15f into openclaw/release-5718a6ec Oct 5, 2026
3 checks passed
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant