#
2bc0a6e9 |
| 20-Dec-2019 |
Nikita Popov |
Fix string offset signed int UB in jit as well
|
Revision tags: php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, 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, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3 |
|
#
999e32b6 |
| 25-Sep-2019 |
Nikita Popov |
Implement union types According to RFC: https://wiki.php.net/rfc/union_types_v2 The type representation now makes use of both the pointer payload and the type mask at the same t
Implement union types According to RFC: https://wiki.php.net/rfc/union_types_v2 The type representation now makes use of both the pointer payload and the type mask at the same time. Additionall, zend_type_list is introduced as a new kind of pointer payload, which is used to store multiple class types. Each of the class types is a tagged pointer, which may be either a class name or class entry. The latter is only used for typed properties, while arguments/returns will instead use cache slots. A type list can contain a mix of both names and CEs at the same time, as not all classes may be resolvable. One thing this is missing is support for union types in arginfo and stubs, which I want to handle separately. I've also dropped the special object code from the JIT implementation for now -- I plan to add this back in a different form at a later time. For now I did not want to include non-trivial JIT changes together with large functional changes. Another possible piece of follow-up work is to implement "iterable" as an internal alias for "array|Traversable". I believe this will eliminate quite a few special-cases that had to be implemented. Closes GH-4838.
show more ...
|
Revision tags: php-7.2.23, php-7.3.10 |
|
#
ac4e0f08 |
| 20-Sep-2019 |
Nikita Popov |
Make zend_type a 2-field struct We now store the pointer payload and the type mask separately. This is in preparation for union types, where we will be using both at the same time.
Make zend_type a 2-field struct We now store the pointer payload and the type mask separately. This is in preparation for union types, where we will be using both at the same time. To avoid increasing the size of arginfo structures, the pass_by_reference and is_variadic fields are now stored as part of the type_mask (8-bit are reserved for custom use). Different types of pointer payloads are distinguished based on bits in the type_mask.
show more ...
|
#
14bdb0cf |
| 04-Nov-2019 |
Máté Kocsis |
Fix consistency issues with array accesses warnings/exceptions * Change a number of "resource used as offset" notices to warnings, which were previously missed. * Throw the "res
Fix consistency issues with array accesses warnings/exceptions * Change a number of "resource used as offset" notices to warnings, which were previously missed. * Throw the "resource used as offset" warning for isset() as well. * Make array_key_exists() behavior with regard to different key types consistent with isset() and normal array accesses. All key types now use the usual coercions and array/object keys throw TypeError. Closes GH-4887.
show more ...
|
#
fe6c420b |
| 23-Oct-2019 |
Nikita Popov |
JIT: Handle typed refs in assign dim
|
#
2f80fbe3 |
| 22-Oct-2019 |
Nikita Popov |
JIT: Fix handling of typed ref in assign op
|
#
097184ca |
| 22-Oct-2019 |
Nikita Popov |
JIT: UNDEF result on "Illegal offset type" exception
|
#
e80934d7 |
| 17-Oct-2019 |
Nikita Popov |
Pass cache slot when printing type errors Instead of using a separate ce.
|
#
51da0237 |
| 15-Oct-2019 |
Dmitry Stogov |
Fixed exception handling
|
#
0d55456d |
| 15-Oct-2019 |
Dmitry Stogov |
Use "const" qualifier
|
#
2f92957f |
| 01-Oct-2019 |
Nikita Popov |
Convert some notices to warnings Part of https://wiki.php.net/rfc/engine_warnings.
|
#
01fc1a30 |
| 27-Sep-2019 |
Nikita Popov |
Remove most uses of the ERROR type It is now only used to signal exceptions for property reads. ERROR zvals are never returned back to the VM anymore, so there's no need to check for
Remove most uses of the ERROR type It is now only used to signal exceptions for property reads. ERROR zvals are never returned back to the VM anymore, so there's no need to check for them when receiving a VAR. Also return MAY_BE_ERROR, as ERROR is now no longer relevant for inference.
show more ...
|
#
e8b0163e |
| 27-Sep-2019 |
Nikita Popov |
Promote write "use scalar as array" warning to Error
|
#
0ebf2bdb |
| 26-Sep-2019 |
Nikita Popov |
Convert "Illegal offset type" warnings to exceptions
|
#
9e8ba789 |
| 19-Sep-2019 |
Nikita Popov |
Change representation of zend_type from type code to MAY_BE_* mask This switches zend_type from storing a single IS_* type code to storing a MAY_BE_* type mask. Right now most code still
Change representation of zend_type from type code to MAY_BE_* mask This switches zend_type from storing a single IS_* type code to storing a MAY_BE_* type mask. Right now most code still assumes that there is only a single type in the mask (or two together with MAY_BE_NULL). But this will make it a lot simpler to introduce union types. An additional advantage (and why I'm doing this separately), is that a number of special cases no longer need to be handled separately: We can do a single mask & (1 << type) check to handle all simple types, booleans (true|false) and null.
show more ...
|
#
cdd4e591 |
| 18-Sep-2019 |
Nikita Popov |
Don't make argument nullable based on AST null initializer Closes GH-4720.
|
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, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1 |
|
#
26431d19 |
| 10-Jul-2019 |
Nikita Popov |
Implement array access notice in JIT
|
Revision tags: php-7.4.0alpha3, php-7.3.7, php-7.2.20, 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 |
|
#
4d90848d |
| 06-Jun-2019 |
Nikita Popov |
Don't verify arginfo types for internal functions To avoid duplicate type checks. In debug builds arginfo is still checked and will generate an assertions if the function doesn't sub
Don't verify arginfo types for internal functions To avoid duplicate type checks. In debug builds arginfo is still checked and will generate an assertions if the function doesn't subsequently throw an exception. Some test results change due to differences in zpp and arginfo error messages.
show more ...
|
#
792e38d8 |
| 13-Jun-2019 |
Nikita Popov |
Fix bug #78154 with JIT
|
#
45a0656e |
| 29-May-2019 |
Nikita Popov |
Remove get() object handler Now that set() is gone, there is little point in keeping get(), as it is essentially just a different way of writing cast_object() now. Closes GH
Remove get() object handler Now that set() is gone, there is little point in keeping get(), as it is essentially just a different way of writing cast_object() now. Closes GH-4202.
show more ...
|
Revision tags: php-7.2.19, php-7.3.6, php-7.1.30, 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 |
|
#
cc900edd |
| 10-Apr-2019 |
Dmitry Stogov |
Simplify call frame initialization
|
#
914b27ac |
| 06-Apr-2019 |
David Carlier |
Fix few compiler warnings.
|
Revision tags: php-7.2.17, php-7.3.4, php-7.1.28 |
|
#
ba67d44e |
| 02-Apr-2019 |
Christoph M. Becker |
Fix misplacement of calling convention declaration MSVC is particularly picky about this, and won't compile as it is.
|
#
4e1d545d |
| 01-Apr-2019 |
Dmitry Stogov |
Fixed edge cases in ZEND_ASSIGN_OP+ASSIGN_DIM and replaced specialized helpers with single one
|
#
8bf2de04 |
| 01-Apr-2019 |
Dmitry Stogov |
Removed checks for required object handlers
|