History log of /PHP-8.4/ext/opcache/tests/jit/closure_001.phpt (Results 1 – 3 of 3)
Revision Date Author Comments
# 08b2ab22 12-Apr-2024 Tim Düsterhus

Include the source location in Closure names (#13550)

* Include the source location in Closure names

This change makes stack traces involving Closures, especially multiple
diffe

Include the source location in Closure names (#13550)

* Include the source location in Closure names

This change makes stack traces involving Closures, especially multiple
different Closures, much more useful, because it's more easily visible *which*
closure was called for a given stack frame.

The implementation is similar to that of anonymous classes which already
include the file name and line number within their generated classname.

* Update scripts/dev/bless_tests.php for closure naming

* Adjust existing tests for closure naming

* Adjust tests for closure naming that were not caught locally

* Drop the namespace from closure names

This is redundant with the included filename.

* Include filename and line number as separate keys in Closure debug info

* Fix test

* Fix test

* Include the surrounding class and function name in closure names

* Fix test

* Relax test expecations

* Fix tests after merge

* NEWS / UPGRADING

show more ...


# c16ad918 28-Nov-2023 Daniil Gentili

Change default method of disabling JIT

https://wiki.php.net/rfc/jit_config_defaults
Closes GH-12678


# 45cb3f91 21-Nov-2022 Dmitry Stogov

Fix a memory leak in tracig JIT when the same closure is called through Closure::call() and natively.

Closure::call() makes a temporary copy of original closure function, modifies its
sc

Fix a memory leak in tracig JIT when the same closure is called through Closure::call() and natively.

Closure::call() makes a temporary copy of original closure function, modifies its
scope, resets ZEND_ACC_CLOSURE flag and call it through zend_call_function().
As result the same function may be called with and without
ZEND_ACC_CLOSURE flag, that confuses JIT and may lead to memory leak or
even worse memory errors.

The patch allocates "fake" closure object and keep ZEND_ACC_CLOSURE flag
to always behave in the same way.

show more ...