Repository navigation
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced Oct 23, 2026
Comment on lines
+81
to
+86
| } else if (e.kind === "let" || e.kind === "var") { | ||
| lines.push(`let ${local} = __s.bind(${mod}, ${slot}, (v) => { ${local} = v; });`); | ||
| lines.push(`export { ${local} as ${name} };`); | ||
| } else { | ||
| lines.push(`const ${local} = __s.get(${mod}, ${slot});`); | ||
| lines.push(`export { ${local} as ${name} };`); |
Contributor
…ooks (NI-6) Node islands stack, part 5 of 11 (scriptc-perf/results/islands-prs/PLAN.md). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cramforce
force-pushed
the
ni/i5-shared-modules
branch
from
October 23, 2026 01:50
999213f to
5fa44d9
Compare
cramforce
force-pushed
the
ni/i4-deferred
branch
from
October 23, 2026 01:50
47dd67b to
2f8e8b2
Compare
# Conflicts: # packages/compiler/src/backend/llvm/lib-shared.ts # packages/compiler/src/ir/builtin-effects.ts # packages/compiler/src/ir/builtin-signatures.ts # packages/libnode-common/bridge/scr_node_bridge.cc
…uires ABI 7 takes sharedPush from the bootstrap's dispatcher as well. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # packages/compiler/src/frontend/lowering/lower-modules.ts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch was successfully deployed
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.
Stacked on #1901. Fifth of nine Node islands PRs.
What it does
A module that both the program and island code import must exist once.
frontend/lowering/lower-shared-modules.ts). Island code is made ofrequireModule()targets, the JS files of island packages, and the uncompiled files they import. A specifier that resolves to a compiled module makes that module a candidate.scriptc.packages.<name>.shareoverrides this, and duplicating a stateful package is SC8020.%initheader callsnodeIsland.share(realpath, exports, accessor)per shared module. Exported let/const read a TDZ flag. Exported classes get method tables and a construct helper.shared_table,shared_getandshared_tdz.scr_ni_shared_refreshpushes changed bindings at every boundary crossing. Class representatives answerSymbol.hasInstance. Export tables, class tables and the registry are released at exit.sharedTable/sharedGet/sharedTdzand theshared_pushentry.scr_node_island_hooks.cjs, appended to the embedded bootstrap).module.registerHooks({resolve, load})serves a generated ES module at the shared module's own file URL, sorequire()andimportsee the same instance. Cycles that hit a TDZ go through an entry module, so V8 throws its ownReferenceError.sharedPush.Evidence
6850–6854, byte-identical with Node:letandrequire(...) === ns;instanceofboth ways;Shortcuts
new.targetthrows a TypeError.export default <expression>and CommonJS modules are not shared (SC8020 when stateful).Gate results
node-island*.test.ts,npm.test.ts,packages/compiler/src/node-islands, differential68xx): plain 223/223 + diff 57/57; sanitized 223/223 + 57/57.pnpm lint,pnpm format:checkandpnpm test:ts7 --baselines-onlypass.packages/compiler/src/native/cli.ts --emit=llvm) builds.corpus/fs-extra-package(%m0.settleVoid). It differs in every gate of the stack, including Bound V8's stack scan by Node's own stack in Node islands #1898, which does not touch the compiler, so it is nondeterministic on the base.both-failcovers only the island programs, because the gate host has no libnode pack. Compile time stays within tolerance.CI on the first push found failures outside the focused island set: the ABI in
bridge.test.ts, the runtime ABI header declarations, the effect gate on the ts7 allowlist, weak collections in the compiler, the pipeline scout and the Node version line. The fixes are folded into the PRs that introduce each piece, and they are re-checked in a Sandbox on the final tree.Stack
#1898
#1899
#1900
#1901
→ #1902
#1903
#1904
#1905
#1906
#1907
#1908
🤖 Generated with Claude Code