Skip to content

Regression: ResourceBundle ICUDATA-region count/keys — extra Countries%chagos (ext/intl/resourcebundle) #22898

Description

@PurHur

Category

Regression · php-src-strict · stdlib (ext/intl ResourceBundle)

Problem

ResourceBundle::create('en', 'ICUDATA-region') (and count() / foreach) disagree with Zend/php-src on the host ICU catalog: VM exposes an extra top-level key Countries%chagos and a larger Countries child count.

Repro Zend 8.2.32 VM (2026-07-24)
count(ResourceBundle::create('en','ICUDATA-region')) 3 4
Top-level keys Countries, Countries%short, Countries%variant + Countries%chagos
count($rb->get('Countries')) 294 295

Same ICU library family should yield Zend-identical key sets for the stock ICUDATA-region table; extra keys indicate wrong ures open path, alias expansion, or unfiltered enumeration in VmResourceBundle.

php-src reference

PHP implementation target

Repro

./script/docker-exec.sh -- bash -lc 'cat > /tmp/rb_region.php <<'\''PHP'\''
<?php
$r = ResourceBundle::create(\"en\", \"ICUDATA-region\");
echo \"count=\", count($r), \"\n\";
foreach ($r as $k => $_) { echo $k, \"\n\"; }
$c = $r->get(\"Countries\");
echo \"countries=\", count($c), \"\n\";
PHP
php /tmp/rb_region.php; php bin/vm.php /tmp/rb_region.php'

Done when

  • count + foreach key order/set for ICUDATA-region match Zend on the same ICU
  • Countries child count matches Zend
  • Compliance / unit guard under test/unit/IntlModuleTest.php or test/compliance/cases/
  • php-src-strict; no php-compiler-strict shortcut

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:vmVirtual machinebugSomething isn't workingimplementation-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