#
23ee4d4b |
| 03-Apr-2020 |
Max Semenik |
Support catching exceptions without capturing them to variables RFC: https://wiki.php.net/rfc/non-capturing_catches Closes GH-5345.
|
#
4a08ca12 |
| 26-May-2020 |
Nikita Popov |
Respect typed references in catch assignment I decided to null out EG(exception) early here, which means only the exception from the dtor / ref assign is preserved, and the previous
Respect typed references in catch assignment I decided to null out EG(exception) early here, which means only the exception from the dtor / ref assign is preserved, and the previous exception is not chained in. This is more robust, and I don't think this situation is common enough to be bothered about the precise behavior.
show more ...
|
#
81c824f4 |
| 26-May-2020 |
Nikita Popov |
Clarify ZEND_CATCH code UNDEF the opcode result instead of addref'ing the exception.
|
#
a582931f |
| 20-May-2020 |
Christoph M. Becker |
Revert "Revert "Merge branch 'PHP-7.4'"" This reverts commit 28e650a, which reverted commit 046dcfb, which had to be reverted due to phpdbg issues. The culprit was that we did not p
Revert "Revert "Merge branch 'PHP-7.4'"" This reverts commit 28e650a, which reverted commit 046dcfb, which had to be reverted due to phpdbg issues. The culprit was that we did not properly reset `zend_handler_table` to `NULL`, which is required for SAPIs which may restart the engine after shutdown. [1] <http://git.php.net/?p=php-src.git;a=commit;h=28e650abf8097a28789a005e5028fee095359583> [2] <http://git.php.net/?p=php-src.git;a=commit;h=046dcfb531e242d36a7af2942b9b148290c3c7fe>
show more ...
|
#
1179686f |
| 24-Apr-2020 |
Máté Kocsis |
Improve error messages for invalid property access Closes GH-5446 Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
|
#
c6a6ca07 |
| 13-May-2020 |
Nikita Popov |
Use zend_zval_type_name() API where possible Rather than zend_get_type_by_const(Z_TYPE_P()).
|
#
3f51d82b |
| 13-May-2020 |
Nikita Popov |
Rename zend_zval_get_type() API We have a bunch of APIs for getting type names and it's sometimes hard to keep them apart ... make it clear that this is the one you definitely do not
Rename zend_zval_get_type() API We have a bunch of APIs for getting type names and it's sometimes hard to keep them apart ... make it clear that this is the one you definitely do not want to use.
show more ...
|
#
f0960879 |
| 06-May-2020 |
Alex Dowad |
zend_timeout is not a signal handler function The 'int dummy' parameter to this function makes it appear that it was intended as a signal handler, but it is not being used as such. So re
zend_timeout is not a signal handler function The 'int dummy' parameter to this function makes it appear that it was intended as a signal handler, but it is not being used as such. So remove the redundant parameter.
show more ...
|
#
cd56395d |
| 19-Apr-2020 |
Tyson Andre |
Speed up ZEND_SWITCH_STRING/ZEND_SWITCH_LONG for wrong type This has the minor benefit of avoiding loading the address of the jump table when the expression for the switch isn't a string
Speed up ZEND_SWITCH_STRING/ZEND_SWITCH_LONG for wrong type This has the minor benefit of avoiding loading the address of the jump table when the expression for the switch isn't a string/long. gcc doesn't seem to optimize that. The previous function body is the original implementation: ad8652818a5 ``` // Before: 0.267s, after: 0.265s function test_switch($x) { for ($i = 0; $i < 10000000; $i++) { switch ($x) { case 'a': case 'b': echo "i=$i\n"; } } } test_switch(null); ``` Closes GH-5419
show more ...
|
#
7352213b |
| 17-Apr-2020 |
Nikita Popov |
Early return if variadic type check fails Don't check all the remaining arguments after one check failed. I don't think this makes an observable behavior difference, because we alrea
Early return if variadic type check fails Don't check all the remaining arguments after one check failed. I don't think this makes an observable behavior difference, because we already suppress duplicate exceptions in argument type error reporting.
show more ...
|
#
d31ccb5f |
| 17-Apr-2020 |
Dmitry Stogov |
zend_timeout() may access EX(opline)
|
#
36935e42 |
| 30-Mar-2020 |
Máté Kocsis |
Improve undefined variable error messages Closes GH-5312
|
#
517c30b0 |
| 20-Mar-2020 |
Dmitry Stogov |
JIT for FETCH_THIS
|
#
12cdab2d |
| 18-Mar-2020 |
Dmitry Stogov |
Improved JIT for BIND_GLOBAL
|
#
df79277d |
| 18-Mar-2020 |
Nikita Popov |
Revert "Fetch for read in nested property assignments" This reverts commit bb43a3822e42dbd15b1d416a166549d3980b379a. After thinking about this a bit more, this is now going to be
Revert "Fetch for read in nested property assignments" This reverts commit bb43a3822e42dbd15b1d416a166549d3980b379a. After thinking about this a bit more, this is now going to be a complete solution for the "readonly properties" case, for example: unset($foo->readOnly->bar); should also be legal and $foo->readOnly['bar'] = 42; should also be legal if $foo->readOnly is not an array but an ArrayAccess object. I think it may be better to distinguish better on the BP_VAR flag level. Reverting for now.
show more ...
|
#
bb43a382 |
| 10-Mar-2020 |
Nikita Popov |
Fetch for read in nested property assignments $a->b->c = 'd'; is now compiled the same way as $b = $a->b; $b->c = 'd'; That is, we perform a read f
Fetch for read in nested property assignments $a->b->c = 'd'; is now compiled the same way as $b = $a->b; $b->c = 'd'; That is, we perform a read fetch on $a->b, rather than a write fetch. This is possible, because PHP 8 removed auto-vivification support for objects, so $a->b->c = 'd' may no longer modify $a->b proper (i.e. not counting interior mutability of the object). Closes GH-5250.
show more ...
|
#
c5159b38 |
| 12-Mar-2020 |
Dmitry Stogov |
Check asserts early
|
#
2dddab01 |
| 12-Mar-2020 |
Dmitry Stogov |
Avoid "Anonymous class wasn't preloaded" error by lazely loading of not preloaded part of a preloaded script
|
#
760faa12 |
| 09-Mar-2020 |
Nikita Popov |
Fixed bug #79357 Peculiarly, for once the cause was not SOAPs "interesting" error handling, but a bug in the call trampoline for internal functions...
|
#
c6d941dc |
| 09-Mar-2020 |
Máté Kocsis |
Regenerate the VM Some error message changes were missed out previously.
|
#
f44dd16b |
| 05-Mar-2020 |
Máté Kocsis |
Improve error message of foreach Closes GH-5240
|
Revision tags: php-7.4.4RC1, php-7.3.16RC1 |
|
#
960318ed |
| 25-Feb-2020 |
Máté Kocsis |
Change argument error message format Closes GH-5211
|
Revision tags: php-7.4.3, php-7.2.28, php-7.3.15RC1, php-7.4.3RC1 |
|
#
ac0853eb |
| 29-Jan-2020 |
Máté Kocsis |
Make type error messages more consistent Closes GH-5092
|
Revision tags: php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14 |
|
#
d9335916 |
| 08-Jan-2020 |
Nikita Popov |
Add support for $obj::class This allows $obj::class, which gives the same result as get_class($obj). Anything other than an object results in TypeError. RFC: https://wiki.php.ne
Add support for $obj::class This allows $obj::class, which gives the same result as get_class($obj). Anything other than an object results in TypeError. RFC: https://wiki.php.net/rfc/class_name_literal_on_object Closes GH-5065.
show more ...
|
#
fc0c71ad |
| 10-Feb-2020 |
Nikita Popov |
Deref slow-path ASSIGN_OBJ result We should not store a reference inside IS_TMP_VAR.
|