Skip to content

php-in-php: lazy undef-array-key from HashTable::implement (Re #32122) - #35649

Merged
PurHur merged 1 commit into
masterfrom
php-in-php/hashtable-lazy-undef-key-35648
Aug 28, 2026
Merged

php-in-php: lazy undef-array-key from HashTable::implement (Re #32122)#35649
PurHur merged 1 commit into
masterfrom
php-in-php/hashtable-lazy-undef-key-35648

Conversation

@PurHur

@PurHur PurHur commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Summary

Why

Thin hello-world and other scripts that allocate hashtables but never read missing string keys were still NestedJIT-ing StringTriggerError during HashTable::implement() — leftover Runtime vs NestedJIT ABI drift can mint undefined_array_key_warning_*.1 and abort cold-build (#31894 / #32122).

Test plan

  • ./script/phpunit.sh --filter 'HashTableLazyUndefinedArrayKeyRuntimeShrinkTest|TypeRegisterLazyStringTriggerErrorRuntimeShrinkTest|TypeDeadUndefinedArrayKeyAbiRuntimeShrinkTest|TypeDeadTriggerErrorAbiRuntimeShrinkTest|TypeDeadTypeInitializeLazyTimeEnvTriggerPendingRuntimeShrinkTest' → OK (21 tests, 138 assertions)
  • ./script/aot-smoke.sh → 8/8
  • ./script/docker-exec.sh -- bash -lc './script/cold-build-check.sh' → ok (~4s)

Not run: full ci-local.sh, differential sweep (no observable behavior change — lazy link only moves when NestedJIT runs).

Made with Cursor

…#35392)

Move StringTriggerError declare/ensure from HashTable::implement entry to
implementReadStringKeyValue only — peer #35626 strcoll lazy pattern. Scripts
that use arrays but never read missing string keys skip NestedJIT trigger_error
during init, reducing cold-build LLVM surface (#31894 / #32122 .1 mint class).

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit d1d14a8 into master Aug 28, 2026
@PurHur
PurHur deleted the php-in-php/hashtable-lazy-undef-key-35648 branch August 28, 2026 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant