Repository navigation
fix(jsc): initialize VM entry and deferred-scope storage on main - #26
Merged
Merged
Conversation
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.
Main-branch companion of #24. Initialize newly created VM-entry scratch and alignment storage, and replace deferred optional entry scopes with two initialized pointers. This removes the two observed sources of conservative retention while preserving lazy entry, global-object updates, reset, nested ownership, ordinary unwinding and teardown, without adding a heap allocation.
The ten production and native-regression source files are byte-identical to merged release commit
235ca71a1f0a4c177b0a609fa6e5c2dda8a73986. Main uses its existing mimalloc objects without the release-only idle-hook shims. Its Linux x64jscbuild now includes both native storage probes, and the artifact check executes them. Lane, Docker and toolchain recipes are unchanged.Main keeps its existing paired qualification pipeline. It receives the exact collected-realm fixture from merged openclaw/bun#151 in both arms, plus three-day retention of the two Linux Bun executables and hashes. The release branch's separate feature-sync, compatibility and Windows pipeline is not imported. No other test assertion, selection or limit changes.
The whole-word-state remedy is also documented by @robobun in oven-sh#694; the fixture adapts oven-sh/bun#44544. Thanks @robobun. #24 contains the original native negative controls, catalog ownership evidence and accepted real-workload measurements; this companion preserves that implementation.
Local validation: 14 main-branch release-integrity tests, four JSC-result verifier tests, actionlint, shell syntax, whitespace and exact merged-fixture reconstruction pass. Independent P2 review is scoped-clean. Exact-head engine checks and ARM64 regressions pass at
08c7db4d85a0cc3cfb7223fe0d1b44f6da853a79. The Linux artifact check executes both native storage probes successfully; both paired Bun arms pass all 46 result entries. The full VM test file reports 319 passes on baseline and 323 on candidate, with the existing 3 skips and 60 todos unchanged. Native ARM64 passes 1,779 stress and 1,639 module cases, assembler/FFI and accounting/sampling modes; macOS compilation passes.Both retained Linux Bun executables were downloaded and matched to their qualification hashes, and the VM fixture inputs match the reviewed merged source. The inherited runner recovers unfinished files after its existing epoll setup errors; it reports zero failed-file retries. No failed test or workflow was rerun to obtain green. This PR remains unmerged and performs no publication.