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 |
|
#
1417352d |
| 22-Oct-2019 |
Dmitry Stogov |
Allow loading FFI bindings through ffi.preload directive
|
Revision tags: php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3, php-7.2.23, php-7.3.10, php-7.4.0RC2 |
|
#
ee0bf4b2 |
| 13-Sep-2019 |
Nikita Popov |
Define OBJ_PROP_TO_OFFSET() using XtOffsetOf() This avoids null pointer arithmetic UB.
|
#
4b9ebd83 |
| 11-Sep-2019 |
Nikita Popov |
Allow throwing exception while loading parent class This is a fix for symfony/symfony#32995. The behavior is: * Throwing exception when loading parent/interface is allowed
Allow throwing exception while loading parent class This is a fix for symfony/symfony#32995. The behavior is: * Throwing exception when loading parent/interface is allowed (and we will also throw one if the class is simply not found). * If this happens, the bucket key for the class is reset, so it's possibly to try registering the same class again. * However, if the class has already been used due to a variance obligation, the exception is upgraded to a fatal error, as we cannot safely unregister the class stub anymore.
show more ...
|
#
270e5e3c |
| 11-Sep-2019 |
Nikita Popov |
Only allow "nearly linked" classes for parent/interface The requirements for parent/interface are difference than for the variance checks in type declarations. The latter can work on ful
Only allow "nearly linked" classes for parent/interface The requirements for parent/interface are difference than for the variance checks in type declarations. The latter can work on fully unlinked classes, but the former need inheritance to be essentially finished, only variance checks may still be outstanding. Adding a new flag for this because we have lots of space, but we could also represent these "inheritance states" more compactly in the future.
show more ...
|
Revision tags: php-7.2.23RC1, php-7.3.10RC1, php-7.4.0RC1 |
|
#
c739023a |
| 02-Sep-2019 |
Dmitry Stogov |
Free two bits in fn_flags by merging ZEND_ACC_HEAP_RT_CACHE/ZEND_ACC_USER_ARG_INFO and ZEND_ACC_DONE_PASS_TWO/ZEND_ACC_ARENA_ALLOCATED that may be used only for user/internal functions
|
#
e6d3a218 |
| 02-Sep-2019 |
Dmitry Stogov |
Fixed information about unused flags
|
Revision tags: php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4 |
|
#
d1157cbc |
| 16-Aug-2019 |
Nikita Popov |
Relax closure $this unbinding deprecation Only deprecate unbinding of $this from a closure if $this is syntactically used within the closure. This is desired to support Laravel'
Relax closure $this unbinding deprecation Only deprecate unbinding of $this from a closure if $this is syntactically used within the closure. This is desired to support Laravel's macro system, see laravel/framework#29482. This should still allow us to implement the performance improvements we're interested in for PHP 8, without breaking existing use-cases.
show more ...
|
Revision tags: 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 |
|
#
445d5134 |
| 19-Jul-2019 |
Dmitry Stogov |
Use run-time cache to avoid repeatable hash lookups in ZEND_DECLARE_CLASS_DELAYED
|
Revision tags: php-7.2.21RC1, php-7.3.8RC1, 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, 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, php-7.2.17, php-7.3.4, php-7.1.28, php-7.3.4RC1, php-7.2.17RC1 |
|
#
d574df63 |
| 13-Mar-2019 |
rjhdby |
Deprecate alternative array access syntax RFC: https://wiki.php.net/rfc/deprecate_curly_braces_array_access
|
#
48ca5a1e |
| 05-Jul-2019 |
Dmitry Stogov |
Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP
|
#
56b8b165 |
| 03-Jul-2019 |
Dmitry Stogov |
Optimization of INC/DEC helpers
|
#
36983035 |
| 28-Jun-2019 |
Nikita Popov |
Fix arginfo leak in disable_functions Arginfo is allocated if types are used, we need to free it.
|
#
759f4ecd |
| 25-Jun-2019 |
Dmitry Stogov |
Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time
|
#
a8477157 |
| 21-Jun-2019 |
Nikita Popov |
Make ZEND_SEND_* flags unsigned These may be shifted to the limit for the arg mask.
|
#
3d429869 |
| 19-Jun-2019 |
Nikita Popov |
Fix shift UB in constants We were shifting out the top bit of a signed integer.
|
#
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.
|
#
1df9f238 |
| 31-May-2019 |
Dmitry Stogov |
Better hot/cold code splitting
|
#
64918c77 |
| 22-May-2019 |
Nikita Popov |
Forbid use of not fully linked classes
|
#
e11233dc |
| 20-May-2019 |
Joe Watkins |
Revert "Rename *.l files to *.re" This reverts commit 969047749d33bb88a0573aa91a57e2070335111a.
|
#
96904774 |
| 17-May-2019 |
Peter Kokot |
Rename *.l files to *.re This syncs PHP lexer files to all use *.re extension. The *.re files are processed with the RE2C tool.
|
#
f9e80158 |
| 15-May-2019 |
Dmitry Stogov |
Removed ability to compile PHP without EX(run_time_cache). ZEND_EX_USE_RUN_TIME_CACHE was always defined.
|
#
09ea55cb |
| 09-Apr-2019 |
Nikita Popov |
Deprecate left-associative ternary Deprecate nesting ternary operators without explicit parentheses. RFC: https://wiki.php.net/rfc/ternary_associativity
|
#
f3e5bbe6 |
| 02-May-2019 |
Nikita Popov |
Implement arrow functions Per RFC: https://wiki.php.net/rfc/arrow_functions_v2 Co-authored-by: Levi Morrison <levim@php.net> Co-authored-by: Bob Weinand <bobwei9@hotmail.com>
|
#
8cdd2158 |
| 29-Apr-2019 |
Dmitry Stogov |
Also, use ZEND_ACC_PRELOADED for classes
|