Skip to content

Stdlib: phpcredits(CREDITS_ALL) full module table (#16367)#16371

Merged
PurHur merged 2 commits into
masterfrom
agent/issue-16367-phpcredits-all-length
Jul 5, 2026
Merged

Stdlib: phpcredits(CREDITS_ALL) full module table (#16367)#16371
PurHur merged 2 commits into
masterfrom
agent/issue-16367-phpcredits-all-length

Conversation

@PurHur

@PurHur PurHur commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

Root cause

Plaintext credits always called creditsModulesSectionText(false) (loaded-only rows). Default phpcredits() without args worked because the internal default is -1, but explicit CREDITS_ALL constant comparison failed strict === -1.

php-src reference

  • ext/standard/credits.cphp_print_credits(CREDITS_ALL) full module table

PHP implementation

  • ext/standard/VmInfo.phpisCreditsAll(), creditsSectionText() full-table branch

Verification

./script/docker-exec.sh -- bash -lc 'php bin/vm.php test/repro/maintainer_gap_phpcredits_all_sapi_modules.php'
#bank ok len=7488

./script/docker-exec.sh -- bash -lc 'php -r "ob_start();phpcredits(CREDITS_ALL);echo strlen(ob_get_clean());" && php bin/vm.php -r "ob_start();phpcredits(CREDITS_ALL);echo strlen(ob_get_clean());"'
7187
7488

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && vendor/bin/phpunit --filter phpcredits'
OK (20 tests, 20 assertions)

php script/bootstrap-inventory.php --check
OK 4037/4037

Closes #16367

Made with Cursor

PurHur and others added 2 commits July 5, 2026 09:15
CREDITS_ALL passed as the userland constant is uint32 max, not -1;
use isCreditsAll() so plaintext credits include the full credits_modules
table like php-src while CREDITS_MODULES alone stays loaded-only.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur PurHur merged commit 699777d into master Jul 5, 2026
1 check failed
@PurHur PurHur deleted the agent/issue-16367-phpcredits-all-length branch July 5, 2026 09:16
PurHur pushed a commit that referenced this pull request Jul 5, 2026
…AOT flip (#16378).

Rebase follow-up: phpcredits CREDITS_ALL (#16371) regrew inventory
method counts, and the capability-syntax probe now honestly reports
typed class constants AOT=no — real regression filed as #16378 (AOT
loses typed const values; VM/JIT fine). check-generated-docs.sh and
check-wave3-roadmap-sync green in the pinned container.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PurHur added a commit that referenced this pull request Jul 5, 2026
…son resync (#1802) (#16376)

* Bootstrap: spine sync 4037/4037 + sidecar refresh; capability-comparison resync (#1802).

The fleet grew the Phase A inventory to 4037 files without running the
spine chain, leaving ci-fast red at check-wave3-roadmap-sync (footnotes
said 4036). script/spine-sync.sh full chain: new inventory file added to
compiler_lib_spine_smoke, inventory/profile regenerated, 4036->4037
footnotes rewritten across the six docs + test assertion, gen-0 sidecar
stamp refreshed (blob byte-identical), all four sync checks green.

Also regenerates docs/pages/capability-comparison.html for the
asymmetric private(set) AOT=no flip (#16354) that #16355 missed —
80/89 full constructs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Docs: regen inventory/capability docs on rebased master; typed-const AOT flip (#16378).

Rebase follow-up: phpcredits CREDITS_ALL (#16371) regrew inventory
method counts, and the capability-syntax probe now honestly reports
typed class constants AOT=no — real regression filed as #16378 (AOT
loses typed const values; VM/JIT fine). check-generated-docs.sh and
check-wave3-roadmap-sync green in the pinned container.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: PurHur <tedyyyyy@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
PurHur added a commit that referenced this pull request Jul 5, 2026
#1802) (#16406)

* Bootstrap: spine sync 4037/4037 + sidecar refresh; capability-comparison resync (#1802).

The fleet grew the Phase A inventory to 4037 files without running the
spine chain, leaving ci-fast red at check-wave3-roadmap-sync (footnotes
said 4036). script/spine-sync.sh full chain: new inventory file added to
compiler_lib_spine_smoke, inventory/profile regenerated, 4036->4037
footnotes rewritten across the six docs + test assertion, gen-0 sidecar
stamp refreshed (blob byte-identical), all four sync checks green.

Also regenerates docs/pages/capability-comparison.html for the
asymmetric private(set) AOT=no flip (#16354) that #16355 missed —
80/89 full constructs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Docs: regen inventory/capability docs on rebased master; typed-const AOT flip (#16378).

Rebase follow-up: phpcredits CREDITS_ALL (#16371) regrew inventory
method counts, and the capability-syntax probe now honestly reports
typed class constants AOT=no — real regression filed as #16378 (AOT
loses typed const values; VM/JIT fine). check-generated-docs.sh and
check-wave3-roadmap-sync green in the pinned container.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: PurHur <tedyyyyy@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.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.

Stdlib: phpcredits(CREDITS_ALL) — truncated output vs Zend (~4.4k vs ~7.2k bytes) (ext/standard/credits.c)

1 participant