#
6cd0b48c |
| 19-Apr-2021 |
Matt Brown |
Implement never return type The never type can be used to indicate that a function never returns, for example because it always unwinds. RFC: https://wiki.php.net/rfc/noreturn_t
Implement never return type The never type can be used to indicate that a function never returns, for example because it always unwinds. RFC: https://wiki.php.net/rfc/noreturn_type Closes GH-6761.
show more ...
|
#
462da6e0 |
| 31-Mar-2021 |
Josh Soref |
Fix spelling and grammar mistakes This PR corrects misspellings identified by the check-spelling action. The misspellings have been reported at jsoref@b6ba3e2#commitcomment-48946465
Fix spelling and grammar mistakes This PR corrects misspellings identified by the check-spelling action. The misspellings have been reported at jsoref@b6ba3e2#commitcomment-48946465 The action reports that the changes in this PR would make it happy: jsoref@602417c Closes GH-6822.
show more ...
|
#
4dcde9cf |
| 09-Apr-2021 |
Dmitry Stogov |
Don't evalutae ZEND_AST_CLASS_CONST to ZEND_AST_CONSTANT ar compile-time. Keep at to run-time and use Fast Class Cache during run-time evaluation. |
#
d8e4fbae |
| 08-Apr-2021 |
Dmitry Stogov |
Fast Class Cache This is generalization of idea, that was previously usesd for caching resolution of class_entries in zend_type. Now very similar mechanizm is used for general zend_s
Fast Class Cache This is generalization of idea, that was previously usesd for caching resolution of class_entries in zend_type. Now very similar mechanizm is used for general zend_string into zend_class_entry resolution. Interned zend_string with IS_STR_CLASS_NAME_MAP_PTR GC_FLAG uses its refcount to adress corresponding zend_class_entry cache slot. The refcount keeps an offset to this slot from CG(map_ptr_base). Flag may be checked by ZSTR_HAS_CE_CACHE(str), cache slot may be read by ZSTR_GET_CE_CACHE(str) and set by ZSTR_SET_CE_CACHE(str, ce).
show more ...
|
#
fba8b955 |
| 30-Mar-2021 |
Nikita Popov |
Fix incorrect prop_name release After 2c4346f9deaca4604fea4783fabc894af352f35b the property name should no longer be released. This should fix the preloading failure under asan. |
#
2c4346f9 |
| 26-Mar-2021 |
Nikita Popov |
Remove unnecessary property unmangling in trait binding The unmangled name is already available as the hashtable key, use it directly. |
#
5fd2a5b1 |
| 19-Mar-2021 |
Nikita Popov |
Fix handling of unknown class in trait precedence list Fixes oss-fuzz #31983. |
Revision tags: php-8.0.3RC1, php-7.4.16RC1, php-8.0.2, php-7.4.15, php-7.3.27, php-8.0.2RC1, php-7.4.15RC2, php-7.4.15RC1, php-8.0.1, php-7.4.14, php-7.3.26, php-7.4.14RC1, php-8.0.1RC1, php-7.3.26RC1, php-8.0.0, php-7.3.25, php-7.4.13, php-8.0.0RC5, php-7.4.13RC1, php-8.0.0RC4, php-7.3.25RC1, php-7.4.12, php-8.0.0RC3, php-7.3.24, php-8.0.0RC2, php-7.4.12RC1, php-7.3.24RC1, php-7.2.34, php-8.0.0rc1, php-7.4.11, php-7.3.23, php-8.0.0beta4, php-7.4.11RC1, php-7.3.23RC1, php-8.0.0beta3, php-7.4.10, php-7.3.22, php-8.0.0beta2, php-7.3.22RC1, php-7.4.10RC1, 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 |
|
#
269c8dac |
| 10-Jun-2020 |
Ilija Tovilo |
Implement enums RFC: https://wiki.php.net/rfc/enumerations Co-authored-by: Nikita Popov <nikita.ppv@gmail.com> Closes GH-6489. |
#
fe3dbe52 |
| 12-Mar-2021 |
Dmitry Stogov |
Fixed compilation warning |
#
65859fe1 |
| 11-Mar-2021 |
Dmitry Stogov |
Inheritance cache optimization |
#
5d160e30 |
| 17-Feb-2021 |
Nikita Popov |
Fix static variable behavior with inheritance When a method is inherited, the static variables will now always use the initial values, rather than the values at the time of inheritan
Fix static variable behavior with inheritance When a method is inherited, the static variables will now always use the initial values, rather than the values at the time of inheritance. As such, behavior no longer depends on whether inheritance happens before or after a method has been called. This is implemented by always keeping static_variables as the original values, and static_variables_ptr as the modified copy. Closes GH-6705.
show more ...
|
#
e1fda102 |
| 10-Feb-2021 |
Dmitry Stogov |
Link unbound simple classes (without parent/intefaces/traits) in first place. |
#
ef516481 |
| 10-Feb-2021 |
Dmitry Stogov |
Use zend_type.ce_cache__ptr for caching class resulution during argument/result type checks |
#
4b79dba9 |
| 09-Feb-2021 |
Dmitry Stogov |
Added Inheritance Cache. This is a new transparent technology that eliminates overhead of PHP class inheritance. PHP classes are compiled and cached (by opcahce) separately, howeve
Added Inheritance Cache. This is a new transparent technology that eliminates overhead of PHP class inheritance. PHP classes are compiled and cached (by opcahce) separately, however their "linking" was done at run-time - on each request. The process of "linking" may involve a number of compatibility checks and borrowing methods/properties/constants form parent and traits. This takes significant time, but the result is the same on each request. Inheritance Cache performs "linking" for unique set of all the depending classes (parent, interfaces, traits, property types, method types involved into compatibility checks) once and stores result in opcache shared memory. As a part of the this patch, I removed limitations for immutable classes (unresolved constants, typed properties and covariant type checks). So now all classes stored in opcache are "immutable". They may be lazily loaded into process memory, if necessary, but this usually occurs just once (on first linking). The patch shows 8% improvement on Symphony "Hello World" app.
show more ...
|
#
b3bbb8fe |
| 19-Jan-2021 |
Dmitry Stogov |
Mark classes cached by opcache by ZEND_ACC_CACHED flag and prevent useless copying and desrpoying of immutable data. |
#
c195fcd6 |
| 19-Jan-2021 |
Dmitry Stogov |
Avoid modification of trait info |
#
3e01f5af |
| 15-Jan-2021 |
Nikita Popov |
Replace zend_bool uses with bool We're starting to see a mix between uses of zend_bool and bool. Replace all usages with the standard bool type everywhere. Of course, zend_bool
Replace zend_bool uses with bool We're starting to see a mix between uses of zend_bool and bool. Replace all usages with the standard bool type everywhere. Of course, zend_bool is retained as an alias.
show more ...
|
#
dd335359 |
| 05-Jan-2021 |
Nikita Popov |
Fix infinite recursion in unlinked_instanceof I suspect this is only a partial fix for the issue, it's probably possible to recurse through a more complex pathway as well. Fixes
Fix infinite recursion in unlinked_instanceof I suspect this is only a partial fix for the issue, it's probably possible to recurse through a more complex pathway as well. Fixes oss-fuzz #28961.
show more ...
|
#
912cb8b8 |
| 24-Nov-2020 |
Nikita Popov |
Fixed bug #80391 Iterable was not considered a subtype of array|object, and thus also not a subtype of mixed. |
#
670fe594 |
| 04-Nov-2020 |
Nikita Popov |
Fix static variable in methods inheritance during preloading This is now "bug compatible" with the normal behavior, and more imporantly, does not crash :) |
#
9fd8e00f |
| 03-Nov-2020 |
Nikita Popov |
Fix use of type copy ctor when importing trait properties We shouldn't call the copy constructor inside the original type, duh. |
#
7e553175 |
| 03-Nov-2020 |
Nikita Popov |
Allow unlinked classes when performing in_compilation variance check As preloading runs in in_compilation mode, we also need to allow use of unlinked classes in lookup_class(). |
#
ee934f82 |
| 03-Nov-2020 |
Nikita Popov |
Fix variance checks on resolved union types This is a bit annoying: When preloading is used, types might be resolved during inheritance checks, so we need to deal with CE types rathe
Fix variance checks on resolved union types This is a bit annoying: When preloading is used, types might be resolved during inheritance checks, so we need to deal with CE types rather than just NAME types everywhere.
show more ...
|
#
4ece62fb |
| 15-Oct-2020 |
Nikita Popov |
Fix bug #80055 We need to perform trait scope fixup for both methods involved in the inheritance check. For that purpose we already need to thread through a separate fn scope through
Fix bug #80055 We need to perform trait scope fixup for both methods involved in the inheritance check. For that purpose we already need to thread through a separate fn scope through the entire inheritance checking machinery.
show more ...
|
#
ec484a07 |
| 06-Oct-2020 |
Nikita Popov |
Merge branch 'PHP-7.4' * PHP-7.4: Fix bug #80126
|