Skip to content

AOT: mb_output_handler() runtime string via NestedJIT (#20014 leftover) - #35582

Merged
PurHur merged 1 commit into
masterfrom
fix/mb-output-handler-runtime-aot-20014
Aug 28, 2026
Merged

AOT: mb_output_handler() runtime string via NestedJIT (#20014 leftover)#35582
PurHur merged 1 commit into
masterfrom
fix/mb-output-handler-runtime-aot-20014

Conversation

@PurHur

@PurHur PurHur commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add JitMbOutputHandler + MbOutputHandlerJitHelper + MbOutputHandlerRuntime so mb_output_handler() accepts a runtime string under AOT (previously LogicException: requires compile-time string and int arguments).
  • Runtime conversion reads mb_http_output / mb_internal_encoding module globals (peer JitMbGetInfo / JitMbHttpOutput) and calls MbConvertEncodingJitHelper::convertArgv.
  • Compile-time literal fold unchanged (MbstringAotFoldState).

Closes leftover from #20014 (parent closed; runtime-string gap remained after #35570 landed mb_get_info).

php-src: ext/mbstring/mbstring.cPHP_FUNCTION(mb_output_handler)

Test plan

./script/aot-smoke.sh
# aot-smoke: 8 passed, 0 failed

./script/phpunit.sh --filter MbOutputHandlerRuntimeAotTest
# OK (2 tests, 12 assertions)

./script/docker-exec.sh -- bash -lc 'php script/check-selfhost-spine-coverage-sync.php'
# check-selfhost-spine-coverage-sync: OK (spine covers all 7965 inventory files)

Not covered: ob_start('mb_output_handler') still requires JitObStart callback support (separate from this builtin lowering). Runtime status int variable has a separate compiler-path quirk — repro uses literal 9 like the compliance case.

Made with Cursor

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur force-pushed the fix/mb-output-handler-runtime-aot-20014 branch from 5bdff76 to 2ef8ee4 Compare August 28, 2026 02:24
@PurHur
PurHur merged commit 0e45bf3 into master Aug 28, 2026
0 of 2 checks passed
@PurHur
PurHur deleted the fix/mb-output-handler-runtime-aot-20014 branch August 28, 2026 02:24
PurHur added a commit that referenced this pull request Aug 28, 2026
…35586)

WAVE3_ROADMAP_SYNC_GATE and BootstrapSelfhostBundleTest expected 7962 while
bootstrap-spine-count reports 7965 after #35582 mb_output_handler and spine
inventory regen; refresh docs, inventory/profile tables, and test assertion.

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 28, 2026
…ts (#35582). (#35589)

#35582/#35579 changed compiler_lib_spine_smoke/main.php but omitted the stamp
refresh; check-selfhost-spine-sidecar-sync was red on master. Stamp-only
follow-up, peer #35577.

Verification:
- php script/check-selfhost-spine-sidecar-sync.php → OK
- ./script/aot-smoke.sh → 8 passed, 0 failed

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.

1 participant