Spine: defer TimezoneAbbreviationsData from native link (#16866); sidecar refresh restored (#16828) - #16873
Merged
Conversation
…6828 layers 1-2). Two of the regressions breaking the spine bundle native emit: - Foo::class is a pure name literal — Zend resolves it without the class being declared or autoloadable. The const-expr evaluator (ClassConstExpr) and the VM class-const-fetch opcode both demanded a class entry first, so native 8.3+ exception names in const maps (\DateException::class in ThrowableManifest since #16780) died with 'Forward reference to class constant' / 'Unknown class for constant fetch' on the 8.2 reference profile. Both sites now short-circuit 'class' fetches on plain names to the resolved name string (self/static/parent excluded). Unit test covers const-expr and expression positions. - JIT assignOperandValue() threw 'Cannot assign to a value' when the destination temp was pre-bound as a folded KIND_VALUE — the defined()/class_exists() spine-guard folding registers NATIVE_BOOL value bindings and the real producer emits afterwards. assignOperand() already rebinds these; assignOperandValue() now mirrors it via makeVariableFromValueOp. Hit at bundle scale on ext/sodium/bootstrap_sodiumexception.php line 8 ('if (!\class_exists(\SodiumException::class, false))'). Also: emit-helper-runtime-object.php gains an experimental --preload=<paths> child flag (dependency-corpus experiments for the 25 undefined-method helper units), and the spine bundle test assertion catches up to 4151 (missed in #16809's final resync). Bundle emit now progresses past both errors; the next blocker ('Array offset access requires hashtable or boxed array, got __string__*', top-level main) is still under investigation on #16828. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ecar refresh restored (#16828). Third and final blocker on the spine bundle emit (#16828): the huge nested array literal in ext/standard/TimezoneAbbreviationsData.php breaks the AOT lowering (compile error at bundle scale, standalone binary segfault — filed as #16866 with repros). Deferred honestly via bootstrap_spine_native_link_deferred(): VM inventory coverage is unaffected, footnotes show 4158/4159 with the 1-deferred annotation across the six tracked docs + bundle test, and every spine sync check is green. spine-sync.sh discovery now consults the deferred SSOT so it stops re-adding deferred paths to the bundle. With this plus #16850 (layers 1-2), the honest gen-0 sidecar refresh works again: make bootstrap-gen0-refresh-sidecar green, stamp matches spine entry SHA-1 368eaa303685. Refreshed prelinked/bootstrap-gen0 included. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PurHur
added a commit
that referenced
this pull request
Jul 6, 2026
…pine-sync keeps the deferred ratio comment fresh (#1802). (#16895) The fleet grew the inventory to 4169 without bundle requires (10 DOM/ misc files); full spine-sync chain: entries added, footnotes 4168/4169 (1 deferred #16866), inventory/profile regen, honest gen-0 sidecar refresh (works again post-#16881/#16873 — stamp 2e4285d9). spine-sync now also rewrites the deferred ratio comment in the bundle test so it cannot rot like a hand-synced footnote. Co-authored-by: PurHur <tedyyyyy@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This was referenced Aug 8, 2026
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.
Closes out #16828's blocking impact. Layer 3 of the bundle emit failure is the huge nested array literal in
ext/standard/TimezoneAbbreviationsData.php— breaks the AOT lowering at bundle scale and segfaults standalone (filed as #16866 with repros; VM handles it fine).bootstrap_spine_native_link_deferred()(the SSOT built for exactly this): VM inventory coverage unaffected, six tracked docs + bundle test carry the4158/4159ratio with the 1-deferred annotation, all four spine sync checks green.spine-sync.shdiscovery now consults the deferred SSOT (it was re-adding deferred paths to the bundle).make bootstrap-gen0-refresh-sidecaris green again — honest native emit, stamp matches spine entry SHA-1368eaa30. Refreshedprelinked/bootstrap-gen0included. Master's sidecar gate has been red since the 4114-era stamp (Bootstrap: sync spine to 4114/4114 inventory (curl, fastcgi, libcrypt) #16732).Un-defer when #16866 lands.
🤖 Generated with Claude Code