Category
stdlib
Problem
The msgpack extension procedural API is absent. msgpack_pack() / msgpack_unpack() (and related helpers) are undefined, blocking libraries that serialize PHP values to MessagePack (caching, RPC, queue payloads).
No open issue tracks ext/msgpack (distinct from serialize()/json_encode() parity work).
php-src reference
Repro (failure today)
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
php bin/vm.php -r "var_export(function_exists(\"msgpack_pack\")); echo \"\\n\";
var_export(function_exists(\"msgpack_unpack\")); echo \"\\n\";"'
# bool(false) bool(false)
Zend (with ext/msgpack):
./script/docker-exec.sh -- bash -lc 'php -r "var_export(function_exists(\"msgpack_pack\")); echo \"\\n\";"'
# bool(true) when extension installed
Scope
| Module |
Path |
| Extension |
ext/msgpack/ module + msgpack_pack.php, msgpack_unpack.php |
| VM |
Pure PHP encoder/decoder first (subset: null/bool/int/float/string/array/map); optional native fast path later |
| Registry |
ext/msgpack/Module.php, capability matrix entry |
| Tests |
test/compliance/cases/stdlib/msgpack_roundtrip.phpt |
PHP-in-PHP first: avoid a permanent C codec in runtime/*.c; thin ABI only if a native fast path is proven necessary.
Done when
function_exists('msgpack_pack') and msgpack_unpack() true when module enabled
- Round-trip repro for scalar + associative/nested arrays matches Zend on same inputs
- Invalid payload throws/returns
false with msgpack_unserialize() error semantics per php-src
- Compliance
.phpt passes: ./script/ci-fast.sh --filter msgpack
Verification
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && php bin/vm.php test/repro-maintainer/parity_msgpack_roundtrip.php'
./script/ci-fast.sh --filter msgpack
Category
stdlibProblem
The msgpack extension procedural API is absent.
msgpack_pack()/msgpack_unpack()(and related helpers) are undefined, blocking libraries that serialize PHP values to MessagePack (caching, RPC, queue payloads).No open issue tracks
ext/msgpack(distinct fromserialize()/json_encode()parity work).php-src reference
ext/msgpack/msgpack.c—PHP_FUNCTION(msgpack_pack),PHP_FUNCTION(msgpack_unpack)ext/msgpack/php_msgpack.h— flags / class entriesRepro (failure today)
Zend (with ext/msgpack):
Scope
ext/msgpack/module +msgpack_pack.php,msgpack_unpack.phpext/msgpack/Module.php, capability matrix entrytest/compliance/cases/stdlib/msgpack_roundtrip.phptPHP-in-PHP first: avoid a permanent C codec in
runtime/*.c; thin ABI only if a native fast path is proven necessary.Done when
function_exists('msgpack_pack')andmsgpack_unpack()true when module enabledfalsewithmsgpack_unserialize()error semantics per php-src.phptpasses:./script/ci-fast.sh --filter msgpackVerification
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && php bin/vm.php test/repro-maintainer/parity_msgpack_roundtrip.php' ./script/ci-fast.sh --filter msgpack