Skip to content

Regression: PHP 8.4 builtins advertised via function_exists on 8.2 reference profile (re-#16292, ext/standard) #16357

Description

@PurHur

Category

stdlib · php-src-strict · version-gate regression

Problem

On the default PHP 8.2 reference profile, function_exists() must be false for PHP 8.4-only symbols. This compiler returns true for several gated builtins Zend does not expose.

Symbol Zend 8.2+ VM (2026-07-05)
str_increment false true
str_decrement false true
zend_thread_id false true
readonly false true

php-src reference

PHP implementation target

Repro

./script/docker-exec.sh -- bash -lc 'php test/repro/maintainer_gap_profile_phantom_function_exists.php'
./script/docker-exec.sh -- bash -lc 'php bin/vm.php test/repro/maintainer_gap_profile_phantom_function_exists.php'

Done when

  • All four symbols false on 8.2 reference profile (still callable only when profile/version gate allows)
  • Unit guard in CompilerVersionBuiltinAdvertisementTest or equivalent
  • php-src-strict

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:vmVirtual machinebugSomething isn't workingenhancementNew feature or requestimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimphase-4:stdlibPhase 4 – stdlib for web appsstdlib

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions