Skip to content

Stdlib: register array_uasort/array_uksort/array_udiff* aliases in Module.php (ext/standard array.c names) #5698

Description

@PurHur

Category

stdlib · php-src-strict

Status (updated 2026-06-18 — alias registration GREEN)

Verified on bin/vm.php:

array_uasort=true  array_uksort=true  array_udiff=true
array_uintersect=true  array_replace_key=true

Alias registration is done. Remaining work is comparator semantics and JIT native lowering — track in #5649, #5644, #9155, #9356 (SPL uasort/uksort).

Problem (original)

php-src registers legacy short names (uasort, uksort) and array_* aliases. Alias function_exists probes were false; now true.

php-src reference

Repro (closure check)

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
php bin/vm.php -r "
foreach ([\"array_uasort\",\"array_uksort\",\"array_udiff\",\"array_uintersect\",\"array_replace_key\"] as \$f) {
    echo \$f, \"=\", var_export(function_exists(\$f), true), PHP_EOL;
}
"'
# All true → alias portion of this issue is satisfied

Scope (this repo)

Path Status
ext/standard/Module.php Aliases registered ✅
array_u*sort / array_udiff* VM comparators #5649 / #9155
JIT array_udiff native call() #9155

Done when

  • All array_* alias names in repro return function_exists true
  • Comparator parity issues above closed (then close this issue as registration-only tracker)

Related

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 machineenhancementNew 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