Revision tags: php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1, php-7.2.30, php-7.4.5, php-7.3.17 |
|
#
d92229d8 |
| 06-Apr-2020 |
Nikita Popov |
Implement named parameters From an engine perspective, named parameters mainly add three concepts: * The SEND_* opcodes now accept a CONST op2, which is the argument nam
Implement named parameters From an engine perspective, named parameters mainly add three concepts: * The SEND_* opcodes now accept a CONST op2, which is the argument name. For now, it is looked up by linear scan and runtime cached. * This may leave UNDEF arguments on the stack. To avoid having to deal with them in other places, a CHECK_UNDEF_ARGS opcode is used to either replace them with defaults, or error. * For variadic functions, EX(extra_named_params) are collected and need to be freed based on ZEND_CALL_HAS_EXTRA_NAMED_PARAMS. RFC: https://wiki.php.net/rfc/named_params Closes GH-5357.
show more ...
|
#
a6e63b42 |
| 31-Jul-2020 |
Nikita Popov |
Make check in RECV_VARIADIC more precise Fetch arg_info only once (it's always the same one...) and check ZEND_TYPE_IS_SET on it, rather than checking if *any* parameter has a type.
|
#
9bf11983 |
| 24-May-2020 |
Ilija Tovilo |
Implement nullsafe ?-> operator RFC: https://wiki.php.net/rfc/nullsafe_operator Closes GH-5619. Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
|
#
213852de |
| 13-Jul-2020 |
Nikita Popov |
Fixed bug #79828
|
#
d30cd7d7 |
| 26-May-2020 |
Máté Kocsis |
Review the usage of apostrophes in error messages Closes GH-5590
|
#
65568467 |
| 10-Jul-2020 |
Nikita Popov |
Fixed bug #79818 Only destroy the variable directly before reassigning it. The value could be read in the meantime.
|
#
9fa1d133 |
| 09-Apr-2020 |
Ilija Tovilo |
Implement match expression RFC: https://wiki.php.net/rfc/match_expression_v2 Closes GH-5371.
|
#
613a56d1 |
| 09-Jul-2020 |
Nikita Popov |
Remove FREE_UNFETCHED concept In master normal FREE_OPs work like FREE_UNFETCHED_OP used to, so there is no point in keeping this distinction anymore, it's just confusing.
|
#
8318379d |
| 09-Jul-2020 |
Nikita Popov |
Switch back to FREE_UNFETCHED_OP_DATA Some of the code paths leading to this do not fetch op data. Hopefully this fixes the release build failure.
|
#
5795dfda |
| 09-Jul-2020 |
Nikita Popov |
Fix bug #79599 in a different way Move the emission of the undefined variable notice before the array separation.
|
#
5d0687e8 |
| 07-Jul-2020 |
Nikita Popov |
Assert exception set in HANDLE_EXCEPTION() Some code paths were checking this manually, but we can turn this into a general assertion to avoid surprises (functions returning failure
Assert exception set in HANDLE_EXCEPTION() Some code paths were checking this manually, but we can turn this into a general assertion to avoid surprises (functions returning failure without throwing).
show more ...
|
#
49396f81 |
| 04-Jul-2020 |
Nikita Popov |
Fixed bug #79777
|
Revision tags: php-7.4.5RC1, php-7.3.17RC1, php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16 |
|
#
75a04eac |
| 06-Mar-2020 |
Nikita Popov |
Make exit() unwind properly exit() is now internally implemented by throwing an exception, performing a normal stack unwind and a clean shutdown. This ensures that no persistent reso
Make exit() unwind properly exit() is now internally implemented by throwing an exception, performing a normal stack unwind and a clean shutdown. This ensures that no persistent resource leaks occur. The exception is internal, cannot be caught and does not result in the execution of finally blocks. This may be relaxed in the future. Closes GH-5768.
show more ...
|
#
bb3d4456 |
| 15-Jun-2020 |
Dmitry Stogov |
Change GC_COLLECTABLE flag into GC_NOT_COLLECTABLE to simplify GC_MAY_LEAK() check
|
#
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.
|
#
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
|