Skip to content

php-in-php: unlink() JIT via UnlinkJitHelper PHP — drop libc LLVM (#15471) - #15472

Merged
PurHur merged 1 commit into
masterfrom
agent/runtime-php-unlink-jit
Jul 3, 2026
Merged

PurHur merged 1 commit into
masterfrom
agent/runtime-php-unlink-jit

Conversation

@PurHur

@PurHur PurHur commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Summary

php-src reference

  • ext/standard/filestat.c — php_unlink

PHP implementation

Path Role
ext/standard/UnlinkJitHelper.php invokeArgv() + warning on failure
lib/JIT/Builtin/StringUnlink.php __phpc_jit_unlink ABI bridge
ext/standard/JitUnlink.php Thin wrapper (was libc LLVM)

Verification

# Architectural — no libc unlink in JIT lowering
grep "lookupFunction('unlink')" ext/standard/JitUnlink.php
# (no output)

# Unit guard
./script/docker-exec.sh -- bash -lc 'source script/php-env.sh && vendor/bin/phpunit --filter UnlinkRuntimeShrink'
# OK (4 tests, 11 assertions)

# Spine sync
php script/check-selfhost-spine-coverage-sync.php
# check-selfhost-spine-coverage-sync: OK

# Bootstrap probe
make bootstrap-selfhost-vm-driver-execute-probe
# bootstrap-selfhost-vm-driver-execute-probe: OK

Closes #15471

Made with Cursor

…5471)

Route JIT unlink() through VmFs::unlink() SSOT like chmod (#15458), removing
direct libc unlink(2) lowering from JitUnlink.php.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

php-in-php: unlink() JIT via UnlinkJitHelper PHP — drop libc LLVM in JitUnlink.php

1 participant