#
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 ...
|
#
1a5a6d72 |
| 17-Apr-2020 |
Dmitry Stogov |
Merge branch 'PHP-7.4' * PHP-7.4: zend_timeout() may access EX(opline)
|
#
b2376be8 |
| 17-Apr-2020 |
Dmitry Stogov |
Merge branch 'PHP-7.3' into PHP-7.4 * PHP-7.3: zend_timeout() may access EX(opline)
|
#
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 ...
|
#
78b64bd4 |
| 13-Mar-2020 |
Dmitry Stogov |
Merge branch 'PHP-7.4' * PHP-7.4: Check asserts early identation fix Call global code of preloaded script in global context Avoid "Anonymous class wasn't preloaded" e
Merge branch 'PHP-7.4' * PHP-7.4: Check asserts early identation fix Call global code of preloaded script in global context Avoid "Anonymous class wasn't preloaded" error by lazely loading of not preloaded part of a preloaded script
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 |
#
b2f7be72 |
| 09-Mar-2020 |
Nikita Popov |
Merge branch 'PHP-7.4' * PHP-7.4: Fixed bug #79357
|
#
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... |
#
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. |
#
b5344542 |
| 06-Feb-2020 |
Dmitry Stogov |
Merge branch 'PHP-7.4' * PHP-7.4: Make opcodes to return de-refereced values of typed references (in the same was as for non-typed)
|
#
5d0ef4c2 |
| 06-Feb-2020 |
Dmitry Stogov |
Make opcodes to return de-refereced values of typed references (in the same was as for non-typed) |
#
58b17906 |
| 03-Feb-2020 |
Nikita Popov |
Apply tidy formatting Mostly reindent PHP scripts to spaces. |
#
ec0ce49f |
| 31-Jan-2020 |
Nikita Popov |
Merge branch 'PHP-7.4' * PHP-7.4: Fix bug #76047
|
#
d422478f |
| 31-Jan-2020 |
Nikita Popov |
Merge branch 'PHP-7.3' into PHP-7.4 * PHP-7.3: Fix bug #76047
|