#
83a77015 |
| 08-Jun-2020 |
twosee |
Add helper APIs for maybe-interned string creation Add ZVAL_CHAR/RETVAL_CHAR/RETURN_CHAR as a shortcut for using ZVAL_INTERNED_STRING and ZSTR_CHAR. Add zend_string_init_fast()
Add helper APIs for maybe-interned string creation Add ZVAL_CHAR/RETVAL_CHAR/RETURN_CHAR as a shortcut for using ZVAL_INTERNED_STRING and ZSTR_CHAR. Add zend_string_init_fast() as a helper for the empty string / one char interned string / zend_string_init() pattern. Also add corresponding ZVAL_STRINGL_FAST etc macros. Closes GH-5684.
show more ...
|
Revision tags: php-7.4.7RC1, php-7.3.19RC1 |
|
#
e18f631a |
| 19-May-2020 |
Dmitry Stogov |
Use light version of zend_array_destroy() to free arrays without refcounted elements and string indexes.
|
Revision tags: php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1 |
|
#
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>
|
Revision tags: php-7.2.30, php-7.4.5, php-7.3.17, php-7.4.5RC1, php-7.3.17RC1 |
|
#
36935e42 |
| 30-Mar-2020 |
Máté Kocsis |
Improve undefined variable error messages Closes GH-5312
|
#
37154753 |
| 20-Mar-2020 |
Dmitry Stogov |
JIT for INIT_NS_FCALL_BY_NAME
|
#
12cdab2d |
| 18-Mar-2020 |
Dmitry Stogov |
Improved JIT for BIND_GLOBAL
|
Revision tags: php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16 |
|
#
941a3b6c |
| 06-Mar-2020 |
Nikita Popov |
Remove unnecessary uses of CHECK_SILENT If no error is passed, it is always silent.
|
Revision tags: php-7.4.4RC1, php-7.3.16RC1, php-7.4.3, php-7.2.28, php-7.3.15RC1, php-7.4.3RC1, php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14 |
|
#
43443857 |
| 07-Jan-2020 |
Nikita Popov |
Add static return type RFC: https://wiki.php.net/rfc/static_return_type The "static" type is represented as MAY_BE_STATIC, rather than a class type like "self" and "parent", as
Add static return type RFC: https://wiki.php.net/rfc/static_return_type The "static" type is represented as MAY_BE_STATIC, rather than a class type like "self" and "parent", as it has special resolution semantics, and cannot be cached in the runtime cache. Closes GH-5062.
show more ...
|
Revision tags: php-7.3.14RC1, php-7.4.2RC1, php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1 |
|
#
bc6bab6c |
| 06-Dec-2019 |
Nikita Popov |
Basic JIT support for verify return
|
#
170cc105 |
| 06-Feb-2020 |
Dmitry Stogov |
Fixed JIT for PTR_INC instruction to return de-referenced value of reference
|
#
daee9857 |
| 04-Feb-2020 |
Dmitry Stogov |
Fixed JIT for BIND_GLOBAL
|
#
bd197728 |
| 16-Jan-2020 |
Nikita Popov |
Use zend_type inside type lists Instead of having a completely independent encoding for type list entries. This is going to use more memory, but I'm not particularly concerned about
Use zend_type inside type lists Instead of having a completely independent encoding for type list entries. This is going to use more memory, but I'm not particularly concerned about that, as type unions that contain multiple classes should be uncommon. On the other hand, this allows us to treat top-level types and types inside lists mostly the same. A new ZEND_TYPE_FOREACH macros allows to transparently treat list and non-list types the same way. I'm not using it everywhere it could be used for now, just the places that seemed most obvious. Of course, this will make any future type system changes much simpler, as it will not be necessary to duplicate all logic two times.
show more ...
|
#
bfe3f934 |
| 07-Jan-2020 |
George Peter Banyard |
Add warning and convert to exception in string offset assignment: Convert the empty string assignment to an Error as per RFC [1] Add a warning that only the first byte will be assigned t
Add warning and convert to exception in string offset assignment: Convert the empty string assignment to an Error as per RFC [1] Add a warning that only the first byte will be assigned to the offset if provided a needle that is longer than one byte. [1] https://wiki.php.net/rfc/engine_warnings
show more ...
|
#
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 ...
|