Skip to content

Stdlib/AOT: DOMXPath::evaluate() dedicated LLVM leaf (#18526)#18527

Merged
PurHur merged 1 commit into
masterfrom
agent/issue-18526-dom-xpath-evaluate-aot
Jul 13, 2026
Merged

Stdlib/AOT: DOMXPath::evaluate() dedicated LLVM leaf (#18526)#18527
PurHur merged 1 commit into
masterfrom
agent/issue-18526-dom-xpath-evaluate-aot

Conversation

@PurHur

@PurHur PurHur commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

php-src reference

  • ext/dom/xpath.cdom_xpath_object_evaluate_read

PHP implementation

  • ext/dom/JitDomXPathEvaluate.php, JitDomXPathEvaluateUserScript.php, DomXPathEvaluateJitHelper.php
  • lib/JIT/Call/DomXPathEvaluate.php, lib/JIT/Builtin/DomXPathEvaluateRuntime.php
  • lib/JIT/DomInstanceMethodJit.php — register dedicated proxy

Verification

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
php bin/vm.php test/repro/maintainer_gap_dom_xpath_evaluate_aot.php'
# 1
# 1

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
php bin/compile.php -o /tmp/xe test/repro/maintainer_gap_dom_xpath_evaluate_aot.php && /tmp/xe; echo exit=$?'
# 1
# 1
# exit=0

./script/docker-exec.sh -- bash -lc 'source script/php-env.sh
vendor/bin/phpunit test/aot/AotTest.php --filter dom_xpath'
# OK (2 tests, 10 assertions)

php bin/vm.php test/compliance/cases/stdlib/dom_xpath_evaluate_boolean.phpt
# 1
# 1

php script/check-selfhost-spine-coverage-sync.php
# (green)

Closes #18526

Made with Cursor

#18493 fixed query() only; evaluate() still routed through generic
VmDomInstanceInvoke and aborted in user-script standalone. Add
JitDomXPathEvaluate + compile-time boolean/count fast path and
scalar runtime bridges matching php-src ext/dom/xpath.c.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PurHur
PurHur merged commit 232d396 into master Jul 13, 2026
@PurHur
PurHur deleted the agent/issue-18526-dom-xpath-evaluate-aot branch July 13, 2026 06:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stdlib/AOT: DOMXPath::evaluate() runtime abort — dedicated LLVM leaf missing (re-#18493, ext/dom/xpath.c)

1 participant