Trust: skip static RewriteVars::add in RuntimeIndirect (#23468) - #23647
Merged
Merged
Conversation
Prevent HashTable->$add from dispatching to OutputRewriteVarsJitHelper::add during gen-0 argv AOT. Guard VmZlib literal encoding defaults (#23646). Co-authored-by: Cursor <cursoragent@cursor.com>
PurHur
force-pushed
the
agent/issue-23468-gen0-argv-refresh
branch
from
July 27, 2026 01:02
cb02fdd to
7f50567
Compare
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.
Summary
VmZlibZLIB_ENCODING_*param defaults with numeric literals so Zend full-spine AOT can parse the unit (Language: non-literal default parameter values — class/global constants and null (Zend zend_compile.c parity) #3803 / Bootstrap: committed gen-0 driver cannot compile anything — every input fails at parseAndCompile #23468). Exclusive refreshagent-harness-phpc-gen0-23468-r1died after ~71 m onVmZlib.php: Parameter default must be a compile-time constant.OutputRewriteVarsJitHelper::addfromRuntimeIndirectInstanceMethodCallcandidates (FLAG_STATIC + explicit class guard) so HashTable->$addis not dispatched to the rewrite-vars helper during argv-driver rebuild.Not closed yet: top-level AOT of
HashTable::addstill hits a pre-existing LLVM "Terminator in the middle of a basic block" on master (repro: tinynew HashTable(); $ht->add(...)). NestedJIT HashTableWriteNested path is fine; argvbin/compile.phprebuild still needs that lowering fixed after this lands.Test plan
vendor/bin/phpunit --filter 'VmZlibLiteralDefaultsTest|VmPregMatchesAotHashTableAddTest'(host + Docker) → OKBOOTSTRAP_GEN0_REFRESH_ARGV_DRIVER=1 ./script/bootstrap-gen0-refresh-exclusive-docker.shon this tip after merge./script/bootstrap-gen0-driver-functional-smoke.shgreen → flipBOOTSTRAP_GEN0_DRIVER_FUNCTIONAL_GATEdefault-onCloses nothing yet — Refs #23468.
Made with Cursor