Skip to content

php-in-php: drop always-on LibcExtern strtol (#31988) - #31989

Merged
PurHur merged 1 commit into
masterfrom
agent/runtime-php-strtol-31988
Aug 17, 2026
Merged

php-in-php: drop always-on LibcExtern strtol (#31988)#31989
PurHur merged 1 commit into
masterfrom
agent/runtime-php-strtol-31988

Conversation

@PurHur

@PurHur PurHur commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Summary

C runtime shrink: 1 always-on row removed from lib/JIT/LibcExtern.php; 12 lines of duplicate module-local decl logic removed from HashTable.php + Module.php.

Closes #31988

Test plan

./script/phpunit.sh --filter 'LibcExternDeadDeclsRuntimeShrinkTest|StrtolRuntimeShrinkTest'

Output:

OK (28 tests, 486 assertions)
./script/docker-exec.sh -- bash -lc 'php -l lib/JIT/LibcExtern.php && php -l ext/standard/JitChr.php'

Output:

No syntax errors detected in lib/JIT/LibcExtern.php
No syntax errors detected in ext/standard/JitChr.php

Not run: differential sweep (no user-visible strtol/intval behavior change), full compliance suite.

Made with Cursor

…ocal (#31988)

Remove libc strtol(3) from the always-on LibcExtern table; NestedJIT
numeric-parse leaves now call ensureStrtolDecl() before lookup. Drops
Module::jitInit fallback and routes HashTable through the shared helper.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 88d9597 into master Aug 17, 2026
@PurHur
PurHur deleted the agent/runtime-php-strtol-31988 branch August 17, 2026 23:46
PurHur added a commit that referenced this pull request Aug 18, 2026
…nction-static (#31966) (#32005)

LLVM verify aborted these four probes after the #31989 strtol rewrite stole call results (parse error in HashTableWriteLlvm). Restore strtol Values, load __string__** before writeString, and keep NestedJIT helper results in the dest box Zend reads.

Co-authored-by: PurHur <PurHur@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
PurHur added a commit that referenced this pull request Aug 18, 2026
…ray prop (#31967) (#32011)

Finish remaining #31967 lowering after numeric-string/NAN merge (#31981): enum case
class constants, $obj::method(), interface self:: in const expr, and non-empty array
static property defaults. Fix #31989 strtol ensureStrtolDecl() parse regression that
blocked all AOT compiles.

php-src: Zend/zend_enum.c, zend_execute.c (INIT_STATIC_METHOD_CALL),
zend_inheritance.c, zend_compile.c (static prop defaults).

Co-authored-by: PurHur <PurHur@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
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.

php-in-php: drop always-on LibcExtern strtol after NestedJIT module-local (#31971 shape)

1 participant