Skip to content

php-in-php: drop always-on LibcExtern snprintf after NestedJIT module-local (#32092) - #32093

Merged
PurHur merged 1 commit into
masterfrom
agent/runtime-php-snprintf-32092
Aug 18, 2026
Merged

php-in-php: drop always-on LibcExtern snprintf after NestedJIT module-local (#32092)#32093
PurHur merged 1 commit into
masterfrom
agent/runtime-php-snprintf-32092

Conversation

@PurHur

@PurHur PurHur commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • Drop always-on LibcExtern snprintf(3) row after NestedJIT leaves call ensureSnprintf() (peer #32068 strlen / #31706 printf).
  • User-script sprintf()/printf() stay on JitPrintf / SprintfSnprintfRuntime (php-src ext/standard/formatted_print.c); EMBED MCJIT keeps __phpc_host_snprintf.
  • Folded duplicate module-local ensureSnprintf in JitNlLanginfo and JitDate into LibcExtern::ensureSnprintf.

Closes #32092

php-src: ext/standard/formatted_print.c, ext/standard/math.c
PHP: lib/JIT/LibcExtern.php (ensureSnprintf), NestedJIT consumers

C surface: always-on 'snprintf' => row removed from LibcExtern::register(); two per-kernel local decl helpers deleted (JitNlLanginfo::ensureSnprintf, JitDate::ensureSnprintf). Thin ABI trampoline remains as ensureSnprintf() for NestedJIT C-string format.

Test plan

  • ./script/phpunit.sh --filter 'LibcExternDeadDeclsRuntimeShrinkTest|SnprintfRuntimeShrinkTest|LibcExternMathRuntimeShrinkTest'
    • OK (34 tests, 624 assertions)
  • ./script/docker-exec.sh -- bash -lc 'php bin/vm.php /tmp/snprintf_smoke.php'12 / ff / 42 (decoct(10), dechex(255), sprintf("%d", 42))
  • Full ci-fast.sh / LLVM compile not run (static shrink + VM smoke only; same gate class as php-in-php: drop always-on LibcExtern strlen after NestedJIT module-local (#31997 shape) #32068)

Made with Cursor

…-local (#32092)

User-script sprintf()/printf() already live in JitPrintf / SprintfSnprintfRuntime.
NestedJIT C-string format leaves now call ensureSnprintf() instead of an always-on libc row.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 15d8867 into master Aug 18, 2026
1 check failed
@PurHur
PurHur deleted the agent/runtime-php-snprintf-32092 branch August 18, 2026 05:31
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 snprintf after NestedJIT module-local (#32068 shape)

1 participant