Skip to content

[pull] master from php:master - #1177

Merged
pull[bot] merged 8 commits into
turkdevops:masterfrom
php:master
Aug 11, 2026
Merged

[pull] master from php:master#1177
pull[bot] merged 8 commits into
turkdevops:masterfrom
php:master

Conversation

@pull

@pull pull Bot commented Aug 11, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

NickSdot and others added 8 commits August 10, 2026 21:24
touch_variation5-win32.phpt and touch_variation6-win32.phpt write to the same
file, causing a race.
* PHP-8.4:
  Fix test file conflict
* PHP-8.5:
  Fix test file conflict
RFC: https://wiki.php.net/rfc/closure-optimizations#stateless_closure_caching

Extracted from GH-19941. Sadly, @DanielEScherzer discovered an edge-case I did
not consider:

    class Foo {
        public function instanceCall() {
            return $this;
        }

        public function test($c) {
            return array_map($c, [1]);
        }
    }

    $foo = new Foo();
    var_dump($foo->test('Foo::instanceCall'));

Here, the internal function array_map() can perform instance calls through a
previous stack frame with just a named closure. Same with ['Foo',
'instanceCall']. That's quite esoteric, but this behavior should first be
deprecated and removed before assuming it isn't being used.

For the time being, merge only the latter half of the RFC. Code with all
relevant functions properly annotated as static will get the full performance
benefit.

Closes GH-23203
@pull pull Bot locked and limited conversation to collaborators Aug 11, 2026
@pull pull Bot added the ⤵️ pull label Aug 11, 2026
@pull
pull Bot merged commit 4226d16 into turkdevops:master Aug 11, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants