#
0a74da38 |
| 19-May-2020 |
Nikita Popov |
Add support for replaying warnings in opcache If opcache.record_warnings is enabled, opcache will record compilation warnings and replay them when the file is included again. The pri
Add support for replaying warnings in opcache If opcache.record_warnings is enabled, opcache will record compilation warnings and replay them when the file is included again. The primary use case I have in mind for this is automated testing of the opcache file cache. This resolves bug #76535.
show more ...
|
#
db0cdcbb |
| 20-May-2020 |
Nikita Popov |
Fix static property indirections in file cache If the class is already linked, we need to serialize and unserialize INDIRECTed static properties. Normally these would be set up when
Fix static property indirections in file cache If the class is already linked, we need to serialize and unserialize INDIRECTed static properties. Normally these would be set up when copying from cache.
show more ...
|
#
0695048e |
| 18-May-2020 |
Dmitry Stogov |
JIT refactoring to allow run-time changes of JIT options (triggers, optimization_level, debug flags, etc)
|
Revision tags: php-7.4.5RC1, php-7.3.17RC1, php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16, 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 |
|
#
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 ...
|
Revision tags: php-7.3.14RC1, php-7.4.2RC1 |
|
#
8abb2ced |
| 02-Jan-2020 |
Nikita Popov |
Fixed bug #79055 Fix file cache serialization of property types. I'm changing the overall type serialization format to perform additional adjustments in order to yield a plausible po
Fixed bug #79055 Fix file cache serialization of property types. I'm changing the overall type serialization format to perform additional adjustments in order to yield a plausible pointer for zend_type, rather than using an entirely separate serialization format, as was previously done. That would have been annoying to extend to the case of CE pointers.
show more ...
|
#
48622970 |
| 02-Jan-2020 |
Nikita Popov |
Extract functions for file cache type serialization This is already done in master.
|
#
36d5fbbd |
| 02-Jan-2020 |
Nikita Popov |
Fix file cache run_time_cache unserialization If the script was serialized as file_cache_only (thus non-immutable) and then gets unserialized into SHM, we need to allocate a new run_
Fix file cache run_time_cache unserialization If the script was serialized as file_cache_only (thus non-immutable) and then gets unserialized into SHM, we need to allocate a new run_time_cache slot and can't use the serialized arena pointer.
show more ...
|
Revision tags: php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1, 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 ...
|
#
e2a6bf48 |
| 09-Oct-2019 |
Mitch Hagstrand |
Fix checksum calculation for opcache
|
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 |
|
#
b065fbde |
| 19-Jul-2019 |
Dmitry Stogov |
ZEND_DECLARE_ANON_CLASS doesn't need to skip anything now. It's immediatelly followed by ZEND_NEW.
|
#
e2ed7e67 |
| 16-Jul-2019 |
Christoph M. Becker |
Allow multiple cache instances per user/host on Windows Formerly, there was at most a single OPcache instance per user and the so called system ID (which is determined from the PHP versi
Allow multiple cache instances per user/host on Windows Formerly, there was at most a single OPcache instance per user and the so called system ID (which is determined from the PHP version). Sometimes multiple OPcaches might be desired, though, particularly for unrelated CLI scripts, which may even be necessary (e.g. for our test suite in parallel mode). We therefore introduce a new INI directive `opcache.cache_id` which allows to configure independent OPcache instances for the same user. We also use `GetUserNameW()` instead of `php_win32_get_username()`, because the latter retrieves the user name encoded in the `default_charset`, which can obviously yield different results for different charsets, leading to OPcache "incompatibilities". Slightly worse, some characters may not even be encodeable in the `default_charset` and would be replaced by question marks, which could result in different users sharing the same OPcache. We also refactor, and re-use existing APIs to avoid duplicated code.
show more ...
|
Revision tags: php-7.2.21RC1, php-7.3.8RC1, php-7.4.0alpha3, php-7.3.7, php-7.2.20 |
|
#
da06f7f3 |
| 01-Jul-2019 |
Nikita Popov |
Msan: Unpoison buffer written by file cache It would be great if this were fully initialized, but it's not really a problem either (as long as we don't care about reproducible file c
Msan: Unpoison buffer written by file cache It would be great if this were fully initialized, but it's not really a problem either (as long as we don't care about reproducible file cache), so ignore this for now.
show more ...
|
Revision tags: php-7.4.0alpha2 |
|
#
1707f664 |
| 21-Jun-2019 |
Dmitry Stogov |
Additional fix for bug #78185 (File cache no longer works)
|
#
fcd6f2de |
| 20-Jun-2019 |
Christoph M. Becker |
Fix #78189: file cache strips last character of uname hash We must not forget to increase `len` by one to cater to the directory separator.
|
Revision tags: php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2 |
|
#
04a6aac5 |
| 17-Jun-2019 |
Christoph M. Becker |
Turn system_id into a true global The system_id is identical for all threads and can be computed during module startup, so there is no need to calculate and store it for each thread.
|
Revision tags: php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1, php-7.2.19, php-7.3.6, php-7.1.30 |
|
#
89b2d886 |
| 24-May-2019 |
Nikita Popov |
Register class before fetching parent We want the class declaration to be available while compiling the parent class.
|
Revision tags: 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 |
|
#
5477d683 |
| 11-Apr-2019 |
Anatol Belski |
Fix potential OPcache file cache related issues To solve issues detected during testing, we backport the following commits to PHP 7.2: 129c5c1181bf344b37e13fd6dc5dfe76c13d7208
Fix potential OPcache file cache related issues To solve issues detected during testing, we backport the following commits to PHP 7.2: 129c5c1181bf344b37e13fd6dc5dfe76c13d7208 9ac133a0b3863ca4d9659140154ee237e5f4669a ce72bc6b658c335dd37393d0beb28584e6805e97
show more ...
|
#
6dd74504 |
| 11-Apr-2019 |
Nikita Popov |
Fix opcache build without JIT
|
#
f31d7ca8 |
| 10-Apr-2019 |
Anatol Belski |
Fix phar:// include handling with file cache
|
Revision tags: php-7.2.17, php-7.3.4, php-7.1.28 |
|
#
9a068760 |
| 01-Apr-2019 |
Dmitry Stogov |
Added JIT compiler for x86 and x86_64
|
Revision tags: php-7.3.4RC1, php-7.2.17RC1, php-7.1.27, php-7.3.3, php-7.2.16, php-7.3.3RC1, php-7.2.16RC1 |
|
#
c32da66e |
| 07-Feb-2019 |
Nikita Popov |
Remove --disable-opcache-filecache option This is no longer an experimental feature, and we have the ability to control this at runtime via an ini setting.
|
Revision tags: php-7.2.15, php-7.3.2 |
|
#
da919a8b |
| 05-Feb-2019 |
Dmitry Stogov |
Remove copyright years.
|
Revision tags: php-7.2.15RC1, php-7.3.2RC1, php-5.6.40, php-7.1.26, php-7.3.1, php-7.2.14 |
|
#
e219ec14 |
| 07-Jan-2019 |
Nikita Popov |
Implement typed properties RFC: https://wiki.php.net/rfc/typed_properties_v2 This is a squash of PR #3734, which is a squash of PR #3313. Co-authored-by: Bob Weinand <bobwe
Implement typed properties RFC: https://wiki.php.net/rfc/typed_properties_v2 This is a squash of PR #3734, which is a squash of PR #3313. Co-authored-by: Bob Weinand <bobwei9@hotmail.com> Co-authored-by: Joe Watkins <krakjoe@php.net> Co-authored-by: Dmitry Stogov <dmitry@zend.com>
show more ...
|
#
fbdaabba |
| 08-Jan-2019 |
jvoisin |
Fix some sign-related issues in comparisons
|