#
38e1b0ac |
| 24-Oct-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16572: Incorrect result with reflection in low-trigger JIT When a recursive call happens with invalid arguments, the maximum valid arguments are computed and stored in `num_args`,
Fix GH-16572: Incorrect result with reflection in low-trigger JIT When a recursive call happens with invalid arguments, the maximum valid arguments are computed and stored in `num_args`, but the RECV entry block we jump to is `call_num_args` instead. This can skip argument validation checks. Fix this by using `num_args` instead. Closes GH-16575.
show more ...
|
#
8b5668ef |
| 18-Oct-2024 |
Dmitry Stogov |
Fix invalid target opline with jit->reuse_ip active (#16457) This is an alternative for #16440
|
#
daba40c6 |
| 23-Sep-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-16009: Segmentation fault with frameless functions and undefined CVs The frameless function handlers do not update the op variables when handling the result is undefined. In this
Fix GH-16009: Segmentation fault with frameless functions and undefined CVs The frameless function handlers do not update the op variables when handling the result is undefined. In this case this causes propagating an UNDEF value into a temporary, which results in an extra undefined variable warning for a temporary in this case. The original issue also reports a crash in some cases, which is also fixed by this patch. Closes GH-16012.
show more ...
|
#
654b787e |
| 24-Sep-2024 |
Bob Weinand |
Add API to exempt function from being traced in JIT (#15559) Internally accessible via zend_jit_blacklist_function / externally via opcache_jit_blacklist. The functionality currently onl
Add API to exempt function from being traced in JIT (#15559) Internally accessible via zend_jit_blacklist_function / externally via opcache_jit_blacklist. The functionality currently only affects tracing JIT, but may be extended to other JIT modes in future.
show more ...
|
#
8f00430a |
| 24-Sep-2024 |
Dmitry Stogov |
Fix GH-15972: Assertion failure in ext/opcache/jit/zend_jit_vm_helpers.c with function JIT (#16001)
|
#
888eb370 |
| 14-Sep-2024 |
Peter Kokot |
Fix -Wundef/C4668 warnings (#15853) - ZTS is either undefined or defined (to 1) - PHP_WIN32 is either undefined or defined (to 1) - HAVE_LIBEDIT is either undefined or defined (to 1)
|
#
98f07fcf |
| 12-Sep-2024 |
Dmitry Stogov |
Fix more issues reported in GH-15852 * Fix incorrect register allocation * Avoid IR binding/spilling conflict * Add missing type guard
|
#
4c11168f |
| 09-Sep-2024 |
Dmitry Stogov |
Fix GH-15656: php8.4beta4 JIT erronous results (#15732) * Improve trace SSA construction and type inference * Fix incorrect abstract stack maintenance * Add missing regist
Fix GH-15656: php8.4beta4 JIT erronous results (#15732) * Improve trace SSA construction and type inference * Fix incorrect abstract stack maintenance * Add missing register store * Avoid IR binding for the dangerous case * Fix access to possibly uninitilezed variable * Improve trace SSA construction and type inference * Fix IR constuction Force load values into regesters before any branches to guarantee SSA dominance property
show more ...
|
#
25d76162 |
| 06-Sep-2024 |
Bob Weinand |
Make internal run_time_cache a persistent allocation (#15040) We also add zend_map_ptr_static, so that we do not incur the overhead of constantly recreating the internal run_time_cache point
Make internal run_time_cache a persistent allocation (#15040) We also add zend_map_ptr_static, so that we do not incur the overhead of constantly recreating the internal run_time_cache pointers on each request. This mechanism might be extended for mutable_data of internal classes too.
show more ...
|
#
6435bb5a |
| 04-Sep-2024 |
Levi Morrison |
Interrupt while internal frame is on the stack (#14627) * Check VM interrupt while internal frame is on top * Use tab instead of spaces * fix frame used in interrupt and re
Interrupt while internal frame is on the stack (#14627) * Check VM interrupt while internal frame is on top * Use tab instead of spaces * fix frame used in interrupt and refactor * remove unused failures for zend_jit_check_timeout * Fix JIT support Co-authored-by: Bob Weinand <bobwei9@hotmail.com> * Fix the missing store to vm_interrupt * Rename new functions * Special case zend_interrupt_function in JIT code * refactor to use ZEND_VM_SET_OPCODE_NO_INTERRUPT * Split atomic exchange into load + store It is difficult to determine performance of atomics sometimes. In this case, the separate load+store is still correct, and a load does not cause a modification, and might be faster for some platforms than an exchange. A load+store is slower than an exchange, but we're fine trading the penalty to the slow path and keeping the happy path faster. --------- Co-authored-by: Bob Weinand <bobwei9@hotmail.com>
show more ...
|
#
58aa6fc8 |
| 19-May-2023 |
Arnaud Le Blanc |
Lazy objects RFC: https://wiki.php.net/rfc/lazy-objects Closes GH-15019
|
#
8df557ac |
| 27-Aug-2024 |
Ilija Tovilo |
[RFC] Asymmetric visibility v2 (GH-15063) Co-authored-by: Larry Garfield <larry@garfieldtech.com>
|
#
a79c70f5 |
| 14-Aug-2024 |
Gina Peter Banyard |
[RFC] Convert exit (and die) from language constructs to functions (#13483) RFC: https://wiki.php.net/rfc/exit-as-function
|
#
46ee0fb3 |
| 09-Aug-2024 |
Ilija Tovilo |
Disallow indirect modification on readonly properties within __clone() (#15012) Indirect modification isn't allowed in __construct() because it allows references to leak, so it doesn't m
Disallow indirect modification on readonly properties within __clone() (#15012) Indirect modification isn't allowed in __construct() because it allows references to leak, so it doesn't make much sense to allow it in __clone().
show more ...
|
#
7a2d5efa |
| 09-Aug-2024 |
Ilija Tovilo |
[JIT] Avoid generating fast property assign path for readonly properties (#15260) readonly properties will usually be IS_UNDEF on assignment, dodging the fast path anyway. The fast path
[JIT] Avoid generating fast property assign path for readonly properties (#15260) readonly properties will usually be IS_UNDEF on assignment, dodging the fast path anyway. The fast path does not handle the readonly scope check. The alternative would be handling scope there, but since there are some many variants that might be more trouble than it's worth.
show more ...
|
#
53b329e2 |
| 29-Jul-2024 |
Dmitry Stogov |
Fix GH-15101: _ir_RSTORE: Assertion `ctx->control' (#15153)
|
#
a0a86243 |
| 25-Jul-2024 |
Ilija Tovilo |
Fix throw in IS_IDENTICAL in JIT (#15103) We need to persist opline in case zend_is_identical() throws.
|
#
fdbe910b |
| 16-Jul-2024 |
Ilija Tovilo |
Fix indirect readonly error messages (#14979) $obj->ro[] = 42;, passByRef($obj->ro); and the likes should emit an indirect modification error message. This message already existed but wa
Fix indirect readonly error messages (#14979) $obj->ro[] = 42;, passByRef($obj->ro); and the likes should emit an indirect modification error message. This message already existed but was used inconsistently.
show more ...
|
#
780a8280 |
| 14-Jul-2024 |
Ilija Tovilo |
[RFC] Property hooks (#13455) RFC: https://wiki.php.net/rfc/property-hooks Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
|
#
9e94d2b0 |
| 08-Jul-2024 |
Peter Kokot |
Autotools: Refactor builtin checks (#14835) This creates a single M4 macro PHP_CHECK_BUILTIN and removes other PHP_CHECK_BUILTIN_* macros. Checks are wrapped in AC_CACHE_CHECK and PH
Autotools: Refactor builtin checks (#14835) This creates a single M4 macro PHP_CHECK_BUILTIN and removes other PHP_CHECK_BUILTIN_* macros. Checks are wrapped in AC_CACHE_CHECK and PHP_HAVE_BUILTIN_* CPP macro definitions are defined to 1 if builtin is found and undefined if not. This also changes all PHP_HAVE_BUILTIN_ symbols to be either undefined or defined (to value 1) and syncs all #if/ifdef/defined usages of them in the php-src code. This way it is simpler to use them because they don't need to be defined to value 0 on Windows, for example. This is done as previous usages in php-src were mixed and on many places they were only checked with ifdef.
show more ...
|
#
fa5e29f7 |
| 01-Jul-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Remove always-false if check prop_info is NULL in this branch.
|
#
00691f43 |
| 01-Jul-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Remove always-true if check
|
#
00b36ce4 |
| 01-Jul-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Remove always-false opcode check opcode cannot be ZEND_POST_INC because of the if check above.
|
#
72c87469 |
| 02-Jul-2024 |
Benjamin Eberlei |
RFC: Add `#[\Deprecated]` Attribute (#11293) see https://wiki.php.net/rfc/deprecated_attribute Co-authored-by: Tim Düsterhus <tim@tideways-gmbh.com> Co-authored-by: Ilija Tovilo
RFC: Add `#[\Deprecated]` Attribute (#11293) see https://wiki.php.net/rfc/deprecated_attribute Co-authored-by: Tim Düsterhus <tim@tideways-gmbh.com> Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>
show more ...
|
#
c44834d8 |
| 29-Jun-2024 |
Peter Kokot |
Trim trailing whitespace (#14721)
|