Skip to content

php-in-php: drop leftover Type always-on xmlrpc ABI shells (ext/xmlrpc/xmlrpc.c) #32902

Description

@PurHur

Category

php-in-php · trust / ABI drift · leftover of #32122 class

Problem

Builtin\Type::register still always-on addFunctions empty __compiler_xmlrpc_encode_value / __compiler_xmlrpc_decode decls. NestedJIT/AOT bodies are owned by StringXmlrpc (getNamedFunction first; JitVmHelperLink::ensureBridge / decode emit create the symbol if absent). Leftover Type empty decls risk name.1 vs Runtime ABI drift (#31894 / #32122) — same class as #32897 json / #32250 (already dropped __compiler_xmlrpc_encode_array).

Path Today Target
User-script xmlrpc_encode() / xmlrpc_decode() ext/xmlrpc/JitXmlrpcStringXmlrpc unchanged
Type always-on empty decl present removed; StringXmlrpc::ensureLinked from Type::initialize

php-src reference

PHP implementation target

  • lib/JIT/Builtin/Type.php — drop always-on xmlrpc ABI shells; ensureLinked StringXmlrpc from Type::initialize
  • Keep ownership in StringXmlrpc / ext/xmlrpc/JitXmlrpc.php
  • Update TypeDeadCompilerAbiRuntimeShrinkTest sentinel that still requires registerFunction('__compiler_xmlrpc_encode_value'

Done when

  • Type.php no longer addFunctions the xmlrpc ABIs
  • AOT xmlrpc_encode / xmlrpc_decode still match Zend
  • ./script/aot-smoke.sh stays 8/8
  • Shrink unit test (peer TypeDeadJsonAbiRuntimeShrinkTest)

Parent

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:compilerCompiler / CFG / JITenhancementNew feature or requestimplementation-readySpec complete: repro, php-src ref, done-when — safe for workers to claimphase-0:FoundationPhase 0 – foundation & DevEx

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions