Repository navigation
Conversation
#3165 (7e33559) compiles a read of an instance's class through x.constructor. The value matrix pinned twelve such reads as refused with SC2020, in five cells (class.control.-, class.p, class.w, class.u and error-class.control.-), and #3165 did not regenerate the table, so island-value-matrix.test.ts has failed on main since. The twelve entries are removed: each read now compiles and prints what Node prints ("Counter", or "AppError" in the error-class control) for a class instance made natively, read natively before and after it crossed into an island and back. Regenerated with the test's update mode for those five cells; nothing else in the table changed. Co-Authored-By: Claude Code <noreply@anthropic.com>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
cramforce
added a commit
that referenced
this pull request
Nov 7, 2026
Written by SCRIPTC_ISLAND_MATRIX=update on the merge of main d2bbe4d, not merged by hand. Against the textual merge it drops twelve refused:SC2020 observations of x.constructor (class.control, class.p, class.w, class.u, error-class.control), which compile on main since #3165; #3298 removes the same twelve on main. Co-Authored-By: Claude Code <noreply@anthropic.com>
This was referenced Nov 7, 2026
Make coverage report the islands a build runs, and warn when a build ships a reachable refusal
#3186
Open
cramforce
added a commit
that referenced
this pull request
Nov 7, 2026
…e with main With main merged, reads of x.constructor.name compile (#3165), so the ".ctor" observations the table pins as refused:SC2020 in class.control.-, class.p, class.u and class.w are no longer refused and the four cells fail. Regenerated those cells on this tree (SCRIPTC_ISLAND_MATRIX=update with a filter for them): ten entries go, nothing else changes. These are the ten lines #3298 removes on main; merging #3298 into this tree gives a byte-identical table. The two error-class.control.- entries removed earlier on this branch are right for the same reason, now that the branch contains main. Co-Authored-By: Claude Code <noreply@anthropic.com>
cramforce
added a commit
that referenced
this pull request
Nov 7, 2026
Written by SCRIPTC_ISLAND_MATRIX=update on the merge of main 50bcfe1, not merged by hand. Against the textual merge it drops twelve refused:SC2020 observations of x.constructor (class.control, class.p, class.w, class.u, error-class.control), which compile on main since #3165; #3298 removes the same twelve on main. Co-Authored-By: Claude Code <noreply@anthropic.com>
This was referenced Nov 7, 2026
cramforce
added a commit
that referenced
this pull request
Nov 7, 2026
ScrNiDynOps (scr_node_island.h and its initializer): main appended function_identity and function_of_identity (#3234), this branch json_query. All three are kept, main's first. scr_json_stringify_value: #3234 made an island function a replacer function, and this branch had made an island function or an island array one. After the merge the branch's function arm could not be reached, so main's block takes the function and the branch's block the array alone. The island value matrix is recorded again on the merged tree: 3,515 entries become 3,499. The 16 that are gone now match Node: the twelve x.constructor reads main compiles since #3165 (pinned refused:SC2020; main's own table still has them, #3298 removes them) and four identity facts of an island function that #3234 fixes. None is new and none changed status. Co-Authored-By: Claude Code <noreply@anthropic.com>
Contributor
Author
|
Superseded by #3318, which landed the same re-pin of the island value matrix on main. Closing. |
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.
tests/harness/island-value-matrix.test.tshas failed on main since7e33559a0(#3165). This re-pins the five cells that fail. It changestests/harness/island-value-matrix/expected.jsonand nothing else.What went stale
The matrix pins every observation that is not a match with Node. #3161 pinned the reads of
v.constructor.nameon a class instance asrefused:SC2020, which is what the compiler said then. #3165 compiles a read of an instance's class throughx.constructor, and did not regenerate the table, so the pinned refusals no longer occur and five cells fail:refused:SC2020)class.control.-N.read.ctor,N.cast.read.ctor,N.read@nat.ctorclass.pn2i/N.read@isl.ctor,n2i2n/N.read.ctor,n2i2n/P.read@back.ctor,n2i2n/N.read@isl.ctorclass.wn2i/P.read@isl.ctor,n2i2n/P.read@back.ctorclass.un2i/P.read@isl.ctorerror-class.control.-N.read.ctor,N.cast.read.ctorThe change
The twelve entries are removed, by the test's update mode narrowed to those cells:
$ SCRIPTC_ISLAND_MATRIX=update SCRIPTC_ISLAND_MATRIX_FILTER='^(class\.(control\.-|p|w|u)|error-class\.control\.-)$' pnpm vitest run tests/harness/island-value-matrix.test.tsAn entry leaves the table when the observation matches Node, and also when its line is no longer part of the program, so each of the twelve was checked by its output. All twelve lines are in the built programs, and Node and the native binary print the same value on each:
"Counter"for the class cells and"AppError"for the error-class control. These are native reads of a class instance the program made, before and after the instance crossed into an island and back. No entry was added and none changed.Not touched, and still pinned as before: what island code sees when it reads
constructorof a native class instance (thector=wrongfacts insiden2i/I.read,n2i/I.inspect,clo-n2i/I.thunkand the like). That is the other side of the boundary and has its own PR (#3252).Proof
On this head (main
bfb1c70f8plus this commit), Linux x64 Sandbox, Node 24.22.1, a libnode pack assembled from this tree's bridge:SCRIPTC_SAN=1. On main the five cells above fail.async-iterable.p: three lines pinned asexitno longer end the program, so the lines behind them are observed for the first time. A pinned run cannot show that (it leaves a line pinned as fatal out of the program), so main is not red for it, and it is not in this PR: those new observations need their own review.For the open PRs that regenerate this file
#3190, #3234, #3252, #3289 and the nullable-reads branch each regenerate
expected.jsonfor their own cells. After this merges they merge main and regenerate on top; the twelve entries above must not come back.🤖 Generated with Claude Code