#
9e94bcfd |
| 17-Sep-2020 |
Sammy Kaye Powers |
Remove specialization of SPEC(OBSERVER) handlers
|
Revision tags: php-8.0.0beta4, php-7.4.11RC1, php-7.3.23RC1, php-8.0.0beta3 |
|
#
66c3e900 |
| 01-Sep-2020 |
Levi Morrison |
Add zend_observer API Closes GH-5857. Co-authored-by: Nikita Popov <nikita.ppv@gmail.com> Co-authored-by: Sammy Powers <sammyk@datadoghq.com>
|
Revision tags: php-7.4.10, php-7.3.22, php-8.0.0beta2, php-7.3.22RC1, php-7.4.10RC1 |
|
#
42eda516 |
| 11-Aug-2020 |
Nikita Popov |
SAVE_OPLINE in NULL_HANDLER Let's avoid crashing before the nice error message gets printed...
|
Revision tags: php-8.0.0beta1, php-7.4.9, php-7.2.33, php-7.3.21, php-8.0.0alpha3, php-7.4.9RC1, php-7.3.21RC1, php-7.4.8, php-7.2.32, php-8.0.0alpha2, php-7.3.20, php-8.0.0alpha1, php-7.4.8RC1, php-7.3.20RC1, php-7.4.7, php-7.3.19, php-7.4.7RC1, php-7.3.19RC1, 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 ...
|
#
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.
|
#
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 ...
|
#
fb916112 |
| 07-Jul-2020 |
Nikita Popov |
Remove #undefs from vm_gen Possibly these were needed for VM_EXPORT, but they don't serve a purpose now.
|
#
002c264d |
| 07-Jul-2020 |
Nikita Popov |
Remove ZEND_VM_EXPORT functionality This hasn't been used since forever and makes things more confusing than they already are.
|
#
d114812f |
| 25-Jun-2020 |
Ayesh Karunaratne |
[ci skip] Various typo fixes in stub comments and CHANGES file
|
#
f4b46314 |
| 22-May-2020 |
Dmitry Stogov |
Prevent CGG reordering if hanlers order is defined by zend_vm_order.txt
|
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, php-7.4.4RC1, php-7.3.16RC1, php-7.4.3, php-7.2.28 |
|
#
d4de3f95 |
| 06-Feb-2020 |
Nikita Popov |
Remove spurious const qualifier from function return type
|
Revision tags: php-7.3.15RC1, php-7.4.3RC1 |
|
#
58b17906 |
| 03-Feb-2020 |
Nikita Popov |
Apply tidy formatting Mostly reindent PHP scripts to spaces.
|
Revision tags: php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14, php-7.3.14RC1, php-7.4.2RC1, php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1, php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12 |
|
#
a7580899 |
| 13-Nov-2019 |
Tyson Andre |
Support the same handler for multiple opcodes
|
#
e8525c2f |
| 13-Nov-2019 |
Tyson Andre |
Optimize int === int/double === double Do this by reusing the implementation used for `==` when both arguments are ints (IS_LONG) or both are floats (IS_DOUBLE) ```php // Be
Optimize int === int/double === double Do this by reusing the implementation used for `==` when both arguments are ints (IS_LONG) or both are floats (IS_DOUBLE) ```php // Before: nestedloop_ni took 0.442 seconds // After: nestedloop_ni takes 0.401 seconds (same as nestedloop_ne) function nestedloop_ni(int $k) { $x = 0; for ($i=0; $i < 50000000; $i++) { if ($i === $k) { $x++; } } print "$x\n"; } function nestedloop_ne(int $k) { $x = 0; for ($i=0; $i < 50000000; $i++) { if ($i == $k) { $x++; } } print "$x\n"; } ```
show more ...
|
Revision tags: php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4 |
|
#
f6f32f2c |
| 09-Oct-2019 |
Dmitry Stogov |
SAMRT BRANCH improvement. Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ. Now instead of checking the opcode of following instruct
SAMRT BRANCH improvement. Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ. Now instead of checking the opcode of following instruction, the same information is encoded into SMART BRANH result_type.
show more ...
|
#
eec04f6b |
| 08-Oct-2019 |
Dmitry Stogov |
Encapsulate all SMART BRANCH related logic inside macros. Result of SMART BRANCH may be uninitialized (on exception).
|
Revision tags: php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3 |
|
#
a66c60cc |
| 26-Sep-2019 |
Nikita Popov |
Throw Error when writing property of non-object This removes object auto-vivification support. This also means that we can remove the corresponding special handling for typed pr
Throw Error when writing property of non-object This removes object auto-vivification support. This also means that we can remove the corresponding special handling for typed properites: We no longer need to check that a property is convertible to stdClass if such a conversion might take place indirectly due to a nested property write. Additionally OBJ_W style operations now no longer modify the object operand, and as such we no longer need to treat op1 as a def in SSA form. The next step would be to actually compile the whole LHS of OBJ_W operations in R rather than W mode, but that causes issues with SimpleXML, whose object handlers depend on the current compilation structure. Part of https://wiki.php.net/rfc/engine_warnings.
show more ...
|
#
470bbb8c |
| 25-Sep-2019 |
Dmitry Stogov |
Avoid code dupliction
|
Revision tags: php-7.2.23, php-7.3.10, php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1 |
|
#
02c83b80 |
| 10-Sep-2019 |
Dmitry Stogov |
ceanup
|
#
7237da27 |
| 05-Sep-2019 |
Dmitry Stogov |
Remove HOT attribute from some VM handlers. Comparisons almost always followed by JMPZ/JMPNZ; JMPZNZ is rare used.
|
Revision tags: 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 |
|
#
57d9b94d |
| 24-Jul-2019 |
Dmitry Stogov |
Simplify TMP/VAR operand releasing
|
Revision tags: php-7.4.0beta1 |
|
#
9e4603f7 |
| 24-Jul-2019 |
Nikita Popov |
Try to fix macos build By avoiding unused variable opline warnings. Also clean up the replacement of ZEND_VM_SPEC -- we were sometimes treating it as an always-defined constant with
Try to fix macos build By avoiding unused variable opline warnings. Also clean up the replacement of ZEND_VM_SPEC -- we were sometimes treating it as an always-defined constant with a value (what it actually is) and sometimes as a conditionally defined constant (which it isn't, but which still worked thanks to the specializer). Switch to only treating it as a constant with a value.
show more ...
|
#
8d51af9b |
| 23-Jul-2019 |
Dmitry Stogov |
Fixed CALL VM
|
#
b30e4a5a |
| 17-Jul-2019 |
Dmitry Stogov |
Avoid extra specialization for cold opcodes
|
#
6fbab09e |
| 17-Jul-2019 |
Dmitry Stogov |
Remove old hack
|