#
7dc4dd4d |
| 25-Jun-2019 |
Dmitry Stogov |
Merge branch 'PHP-7.4' * PHP-7.4: Fixed variance check for abstract constructor during erlay binding
|
#
f09d41ff |
| 25-Jun-2019 |
Dmitry Stogov |
Fixed variance check for abstract constructor during erlay binding |
#
c6ce1593 |
| 25-Jun-2019 |
Dmitry Stogov |
Merge branch 'PHP-7.4' * PHP-7.4: Cleanup
|
#
ccbc121c |
| 25-Jun-2019 |
Dmitry Stogov |
Cleanup |
#
83c2e678 |
| 25-Jun-2019 |
Dmitry Stogov |
Merge branch 'PHP-7.4' * PHP-7.4: Prevent useless hash lookups Update NEWS for 7.4.0alpha3 Update NEWS for PHP 7.4.0alpha2
|
#
bd0cb99d |
| 25-Jun-2019 |
Dmitry Stogov |
Prevent useless hash lookups |
Revision tags: php-7.4.0alpha2 |
|
#
ca22c456 |
| 25-Jun-2019 |
Dmitry Stogov |
Merge branch 'PHP-7.4' * PHP-7.4: Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time
|
#
759f4ecd |
| 25-Jun-2019 |
Dmitry Stogov |
Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time |
#
e18c60cd |
| 24-Jun-2019 |
Dmitry Stogov |
Merge branch 'PHP-7.4' * PHP-7.4: Fixed bug 78175 (Preloading must store default values of static variables and properties)
|
#
0f29fb5c |
| 24-Jun-2019 |
Dmitry Stogov |
Fixed bug 78175 (Preloading must store default values of static variables and properties) |
Revision tags: php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1 |
|
#
e4fae9c0 |
| 11-Jun-2019 |
Nikita Popov |
Merge branch 'PHP-7.4'
|
Revision tags: php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30 |
|
#
8f8fcbbd |
| 27-May-2019 |
Nikita Popov |
Support full variance if autoloading is used Keep track of delayed variance obligations and check them after linking a class is otherwise finished. Obligations may either be unresolv
Support full variance if autoloading is used Keep track of delayed variance obligations and check them after linking a class is otherwise finished. Obligations may either be unresolved method compatibility (because the necessecary classes aren't available yet) or open parent/interface dependencies. The latter occur because we allow the use of not fully linked classes as parents/interfaces now. An important aspect of the implementation is we do not require classes involved in variance checks to be fully linked in order for the class to be fully linked. Because the involved types do have to exist in the class table (as partially linked classes) and we do check these for correct variance, we have the guarantee that either those classes will successfully link lateron or generate an error, but there is no way to actually use them until that point and as such no possibility of violating the variance contract. This is important because it ensures that a class declaration always either errors or will produce an immediately usable class afterwards -- there are no cases where the finalization of the class declaration has to be delayed until a later time, as earlier variants of this patch did. Because variance checks deal with classes in various stages of linking, we need to use a special instanceof implementation that supports this, and also introduce finer-grained flags that tell us which parts have been linked already and which haven't. Class autoloading for variance checks is delayed into a separate stage after the class is otherwise linked and before delayed variance obligations are processed. This separation is needed to handle cases like A extends B extends C, where B is the autoload root, but C is required to check variance. This could end up loading C while the class structure of B is in an inconsistent state.
show more ...
|
#
89b2d886 |
| 24-May-2019 |
Nikita Popov |
Register class before fetching parent We want the class declaration to be available while compiling the parent class. |
#
13f675b8 |
| 27-May-2019 |
Nikita Popov |
Merge branch 'PHP-7.4'
|
#
e6fac86d |
| 24-May-2019 |
Nikita Popov |
Accept flags argument in zend_lookup_class_ex() Instead of a single boolean, so we have space for extension here. |
#
e06ec226 |
| 24-May-2019 |
Nikita Popov |
Merge branch 'PHP-7.4'
|
Revision tags: php-7.2.19RC1, php-7.3.6RC1 |
|
#
49a3b03e |
| 08-May-2019 |
Nikita Popov |
Implement basic variance support This is a minimal variance implementation: It does not support any cyclic type dependencies. Additionally the preloading requirements are much more r
Implement basic variance support This is a minimal variance implementation: It does not support any cyclic type dependencies. Additionally the preloading requirements are much more restrictive than necessary. Hopefully we can relax these in the future.
show more ...
|
#
afec3a92 |
| 09-May-2019 |
Nikita Popov |
Avoid early-binding on unresolved types Fixes bug #76451, and more importantly lays necessary groundwork for covariant/contravariant types. Bug #76451 is just an edge case, but once
Avoid early-binding on unresolved types Fixes bug #76451, and more importantly lays necessary groundwork for covariant/contravariant types. Bug #76451 is just an edge case, but once covariance is introduced this will become a common problem instead.
show more ...
|
#
c3ee12e7 |
| 23-May-2019 |
Nikita Popov |
Merge branch 'PHP-7.4'
|
#
64918c77 |
| 22-May-2019 |
Nikita Popov |
Forbid use of not fully linked classes |
#
6ada4db0 |
| 08-May-2019 |
Nikita Popov |
Merge branch 'PHP-7.4'
|
#
f778e1a0 |
| 08-May-2019 |
Nikita Popov |
Refactor inheritance type check implementation Extract the self/parent name resolution code and drop unnecessary string copies/releases. Store the fe/proto types in local variables. |
#
11655d09 |
| 08-May-2019 |
Nikita Popov |
Merge branch 'PHP-7.4'
|
#
5c474010 |
| 08-May-2019 |
Nikita Popov |
Deduplicate inheritance type check implementation Make the check covariant (insofar as it is allowed now, i.e. nullability and iterable) and call it with appropriate argument order f
Deduplicate inheritance type check implementation Make the check covariant (insofar as it is allowed now, i.e. nullability and iterable) and call it with appropriate argument order for both parameter and return types. This makes it simpler to extend to full variance support.
show more ...
|
#
97cce70e |
| 08-May-2019 |
Nikita Popov |
Merge branch 'PHP-7.4'
|