#
2aba10be |
| 09-Oct-2019 |
Nikita Popov |
Reduce ZEND_THROW specialization Throwing is very expensive due to the need of gathering the backtrace, so it makes little sense to optimize refcounting to this degree. |
Revision tags: php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3, php-7.2.23, php-7.3.10 |
|
#
6e226c18 |
| 23-Sep-2019 |
Dmitry Stogov |
Change ZEND_RECV and ZEND_RECV_VARIADIC to use extended_value for cache slot (instead of op2), to be consistent with ZEND_RECV_INIT. |
Revision tags: php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1, php-7.4.0RC1, php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1, php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8 |
|
#
853b426e |
| 24-Jul-2019 |
Dmitry Stogov |
Avoid over-specialization |
Revision tags: php-7.4.0beta1 |
|
#
1eb70617 |
| 24-Jul-2019 |
Nikita Popov |
Avoid references in TMP var Make sure we deref the OBJ_IS result, because we store it in a TMP var, which is not allowed to contain references and will cause assertion failures in th
Avoid references in TMP var Make sure we deref the OBJ_IS result, because we store it in a TMP var, which is not allowed to contain references and will cause assertion failures in the unspecialized VM. This also partially reverts fd463a9a6078074f8f648982b42bdd14423fb614, which merged the TMP and VAR specializations of COALESCE to work around this bug. An alternative would be to change the result type of OBJ_IS back to VAR.
show more ...
|
#
d5943f5a |
| 19-Jul-2019 |
Dmitry Stogov |
Use run-time cache to avoid repeatable hash lookups when creating anonymous functions and classes |
#
b065fbde |
| 19-Jul-2019 |
Dmitry Stogov |
ZEND_DECLARE_ANON_CLASS doesn't need to skip anything now. It's immediatelly followed by ZEND_NEW. |
Revision tags: php-7.2.21RC1, php-7.3.8RC1 |
|
#
ef1a1a06 |
| 11-Jul-2019 |
Dmitry Stogov |
Separate "cold" parts of comparison instructions |
#
be94c0c3 |
| 11-Jul-2019 |
Dmitry Stogov |
Separate "cold" parts of binary op instructions |
Revision tags: php-7.4.0alpha3 |
|
#
1305d9c0 |
| 08-Jul-2019 |
Dmitry Stogov |
Fixed opcode description |
#
48ca5a1e |
| 05-Jul-2019 |
Dmitry Stogov |
Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP |
#
ef05eab4 |
| 04-Jul-2019 |
Dmitry Stogov |
Improve zend_binary_assign_op helpers. Reorder opcode numbers to make ADD-POW and ASSIGN_ADD-ASSIGN_POW opcodes sequencional. |
Revision tags: php-7.3.7 |
|
#
56b8b165 |
| 03-Jul-2019 |
Dmitry Stogov |
Optimization of INC/DEC helpers |
Revision tags: php-7.2.20 |
|
#
e8f1f701 |
| 25-Jun-2019 |
Dmitry Stogov |
Reduce overhead of delayed early binding |
Revision tags: php-7.4.0alpha2, php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30 |
|
#
89b2d886 |
| 24-May-2019 |
Nikita Popov |
Register class before fetching parent We want the class declaration to be available while compiling the parent class. |
#
1814308e |
| 30-May-2019 |
Dmitry Stogov |
Don't specialize "cold" handlers |
#
4e567ed1 |
| 30-May-2019 |
Dmitry Stogov |
Removed useless specialization. Specialized handlers called not specialized helpers. |
Revision tags: php-7.2.19RC1, php-7.3.6RC1, php-7.1.29, php-7.2.18, php-7.3.5, php-7.2.18RC1, php-7.3.5RC1, php-7.2.17, php-7.3.4, php-7.1.28, php-7.3.4RC1, php-7.2.17RC1, php-7.1.27, php-7.3.3, php-7.2.16, php-7.3.3RC1, php-7.2.16RC1, php-7.2.15, php-7.3.2, php-7.2.15RC1, php-7.3.2RC1, php-5.6.40, php-7.1.26, php-7.3.1, php-7.2.14, php-7.2.14RC1, php-7.3.1RC1, php-5.6.39, php-7.1.25, php-7.2.13, php-7.0.33, php-7.3.0, php-7.1.25RC1, php-7.2.13RC1, php-7.3.0RC6, php-7.1.24, php-7.2.12, php-7.3.0RC5, php-7.1.24RC1, php-7.2.12RC1, php-7.3.0RC4, php-7.1.23, php-7.2.11, php-7.3.0RC3 |
|
#
e829d087 |
| 06-Oct-2018 |
CHU Zhaowei |
Implement spread operator in arrays RFC: https://wiki.php.net/rfc/spread_operator_for_array Closes GH-3640. |
#
d4bef4ce |
| 15-Feb-2019 |
Dmitry Stogov |
Avoid useless code duplication, because of unused specialization |
#
a81202ac |
| 30-Jan-2019 |
Zeev Suraski |
Adios, yearly copyright ranges |
#
a50198d0 |
| 15-Jan-2019 |
Nikita Popov |
Implement ??= operator RFC: https://wiki.php.net/rfc/null_coalesce_equal_operator $a ??= $b is $a ?? ($a = $b), with the difference that $a is only evaluated once, to the degree
Implement ??= operator RFC: https://wiki.php.net/rfc/null_coalesce_equal_operator $a ??= $b is $a ?? ($a = $b), with the difference that $a is only evaluated once, to the degree that this is possible. In particular in $a[foo()] ?? $b function foo() is only ever called once. However, the variable access themselves will be reevaluated.
show more ...
|
#
e219ec14 |
| 07-Jan-2019 |
Nikita Popov |
Implement typed properties RFC: https://wiki.php.net/rfc/typed_properties_v2 This is a squash of PR #3734, which is a squash of PR #3313. Co-authored-by: Bob Weinand <bobwe
Implement typed properties RFC: https://wiki.php.net/rfc/typed_properties_v2 This is a squash of PR #3734, which is a squash of PR #3313. Co-authored-by: Bob Weinand <bobwei9@hotmail.com> Co-authored-by: Joe Watkins <krakjoe@php.net> Co-authored-by: Dmitry Stogov <dmitry@zend.com>
show more ...
|
Revision tags: php-7.1.23RC1, php-7.2.11RC1, php-7.3.0RC2, php-5.6.38, php-7.1.22, php-7.3.0RC1, php-7.2.10, php-7.0.32, php-7.1.22RC1, php-7.3.0beta3, php-7.2.10RC1, php-7.1.21, php-7.2.9, php-7.3.0beta2, php-7.1.21RC1, php-7.3.0beta1, php-7.2.9RC1, php-5.6.37, php-7.1.20, php-7.3.0alpha4, php-7.0.31, php-7.2.8, php-7.1.20RC1, php-7.2.8RC1, php-7.3.0alpha3 |
|
#
f5044a12 |
| 02-Jul-2018 |
Michael Moravec |
Implement ZEND_ARRAY_KEY_EXISTS opcode to speed up array_key_exists() |
#
54dc07f3 |
| 01-Nov-2018 |
Zeev Suraski |
Update email addresses. We're still @Zend, but future proofing it... |
#
d140df58 |
| 23-Aug-2018 |
Dmitry Stogov |
Keep information about unresolved interfaces in zend_class_entry->interface_names. Move interface implementation code into ZEND_DECLARE_*CLASS opcodes. Remove ZEND_ADD_INTERFACE and ZEND_VER
Keep information about unresolved interfaces in zend_class_entry->interface_names. Move interface implementation code into ZEND_DECLARE_*CLASS opcodes. Remove ZEND_ADD_INTERFACE and ZEND_VERIFY_ABSTRACT_CLASS opcodes.
show more ...
|
#
67397970 |
| 22-Aug-2018 |
Dmitry Stogov |
Replace zend_class_entry->traits by persistent zend_class_entry->trait_names. Move trait binding code into ZEND_DECLARE_*CLASS opcodes. Remove ZEND_ADD_TRIAIT and ZEND_BIND_TRAITS opcodes. |