Nikita Popov
e219ec144e
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 >
2019-01-11 15:49:06 +01:00
Nikita Popov
61b0122698
Merge branch 'PHP-7.3'
2019-01-10 10:27:57 +01:00
Nikita Popov
ade702a0d2
Fixed bug #77434
...
Mark arrays containing partial arrays as partial. This was already
done for the ADD_ARRAY_ELEMENT case, but not for ASSIGN_DIM.
2019-01-10 10:25:55 +01:00
Xinchen Hui
b1a4f90ea9
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Incase of invalid read
2019-01-10 14:53:36 +08:00
Xinchen Hui
16176ad0e3
Incase of invalid read
2019-01-10 14:50:39 +08:00
Nikita Popov
a22881520c
Merge branch 'PHP-7.3'
2019-01-09 09:28:04 +01:00
Nikita Popov
bf4dab0163
Make operator swapping depend on IGNORE_OVERLOADING flag
...
Add MUL back to the list and instead make the entire optimization
depend on IGNORE_OVERLOADING, which is there exactly so we can make
these kinds of assumptions.
2019-01-09 09:27:56 +01:00
Xinchen Hui
dd61845cf8
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Fixed bug #77266 (Assertion failed in dce_live_ranges)
2019-01-08 19:19:44 +08:00
Xinchen Hui
cd49db9d47
Fixed bug #77266 (Assertion failed in dce_live_ranges)
2019-01-08 19:19:01 +08:00
Nikita Popov
c8a5deaddd
Merge branch 'PHP-7.3'
2019-01-08 09:38:11 +01:00
Nikita Popov
7f8cab2535
Merge branch 'PHP-7.2' into PHP-7.3
2019-01-08 09:38:02 +01:00
Nikita Popov
1165a9068c
Don't swap operands of ZEND_MUL
...
If this is used with operator overloading, then the operation does
not necessarily commute (for example, matrix multiplication).
2019-01-08 09:37:49 +01:00
Nikita Popov
767cbd93c9
Merge branch 'PHP-7.3'
2019-01-07 10:05:33 +01:00
Nikita Popov
6f75890e7b
Fix one issue reported in bug #77310
...
SCCP did not handle array ASSIGN_* with a BOT operand correctly.
2019-01-07 10:05:23 +01:00
Nikita Popov
31375c5ca3
Merge branch 'PHP-7.3'
2019-01-02 14:14:07 +01:00
Nikita Popov
325a113974
Possible fix for bug #77287
...
The cache size could be off by 4, if we're on a 32-bit system and
the slot had to be bumped for alignment reasons.
I wasn't able to reproduce the issue reported in bug #77287 , but I
think this might be the cause.
2019-01-02 14:12:58 +01:00
Nikita Popov
685307b081
Merge branch 'PHP-7.3'
2019-01-02 09:32:59 +01:00
Nikita Popov
91888cc372
Fixed bug #77257
...
Correctly handle the case of duplicate predecessors, by removing the
duplicate predecessor and corresponding phi node operands.
For the future, it would be better to instead allow duplicate
predecessors and avoid this kind of fragile code...
2019-01-02 09:31:50 +01:00
Dmitry Stogov
9bf80ef385
Respect static method visibility
2018-12-27 10:42:52 +03:00
Nikita Popov
0bbfebb6d9
Add SCCP support for ZEND_ARRAY_KEY_EXISTS
2018-12-26 23:54:11 +03:00
Michael Moravec
f5044a12dd
Implement ZEND_ARRAY_KEY_EXISTS opcode to speed up array_key_exists()
2018-12-26 23:54:11 +03:00
Nikita Popov
da1e6679b7
CFG construction: Avoid code duplication
...
These code for those two cases is the same nowadays, so merge them.
2018-12-17 11:29:23 +01:00
Nikita Popov
6debea2fd8
Merge branch 'PHP-7.3'
2018-12-10 13:36:54 +01:00
Nikita Popov
93aabf1533
Fixed bug #77275
...
Instead of juggling with this problem during literal compaction,
make sure that we always initialize Z_EXTRA for literals, which
seems like the more robust solution.
2018-12-10 13:36:23 +01:00
Nikita Popov
59cacdcefd
Fix typos in compact literals debugging code
2018-12-10 13:35:55 +01:00
Nikita Popov
745e250a21
Merge branch 'PHP-7.3'
2018-11-28 20:10:32 +01:00
Nikita Popov
f4eec70260
Merge branch 'PHP-7.2' into PHP-7.3
2018-11-28 20:10:17 +01:00
Nikita Popov
17f8b9fb36
Fixed bug #77215
...
Remove invalid assertion: A block can have multiple switch frees,
so if we don't do live range block splitting, it is not necessarily
true that the free is located at the start of a block.
2018-11-28 20:08:39 +01:00
Dmitry Stogov
ba99aa133c
Fixed issues related to optimization and persitence of classes linked with interfaces, traits or internal classes.
2018-11-14 16:32:07 +03:00
Dmitry Stogov
8c7aa88e2d
Fixed crash introduced by bfaf662ac2
2018-11-07 09:36:21 +03:00
Dmitry Stogov
bfaf662ac2
Micro-optimization
2018-11-06 17:04:17 +03:00
Nikita Popov
429c5a0a82
Merge branch 'PHP-7.3'
2018-11-02 14:34:11 +01:00
Nikita Popov
d92f7630f7
Merge branch 'PHP-7.2' into PHP-7.3
2018-11-02 14:30:50 +01:00
Nikita Popov
4daa413898
Fixed bug #77092
...
Weird that this worked for so long, probably because nearly all
ext/standard functions use fast ZPP rather than ordinary ZPP.
2018-11-02 14:29:03 +01:00
Zeev Suraski
9afce019e0
Future-proof email addresses
2018-11-01 18:35:32 +02:00
Zeev Suraski
67e0138c0d
Future-proof email addresses...
2018-11-01 18:30:28 +02:00
Dmitry Stogov
bf38e6c10a
Keep original value of "prototype"
2018-10-30 16:13:45 +03:00
Dmitry Stogov
ebf44fbbda
Reslove inherited op_array references once afrer all optimizations.
2018-10-30 13:16:49 +03:00
Dmitry Stogov
2491b7b65a
Removed dead code
2018-10-29 21:38:25 +03:00
Gabriel Caruso
388c21e764
Add is_iterable to opcache Optimizer
2018-10-26 08:14:45 -03:00
Nikita Popov
3d415644f7
Merge branch 'PHP-7.3'
2018-10-25 16:44:54 +02:00
Nikita Popov
b9431ef4d5
Don't optimize function if inference failed
...
This was respected only for the single-function optimizations, not
in func-info mode.
2018-10-25 16:44:24 +02:00
Nikita Popov
78c2e0e342
Merge branch 'PHP-7.2' into PHP-7.3
2018-10-25 16:44:19 +02:00
Nikita Popov
902ec36710
Merge branch 'PHP-7.1' into PHP-7.2
2018-10-25 16:43:36 +02:00
Nikita Popov
f1ceec5533
Fixed bug #77058
...
Account for the fact that undef must be interpreted as null for
the purposes of INC/DEC inference.
2018-10-25 16:37:41 +02:00
Nikita Popov
e7153e8a2f
Improve "narrowing" error message
...
By including the opcode name.
2018-10-25 16:36:23 +02:00
Dmitry Stogov
d57cd36e47
Immutable clases and op_arrays.
...
Squashed commit of the following:
commit cd0c36c3f9
Merge: 4740dabb84 ad6738e886
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Oct 17 14:43:38 2018 +0300
Merge branch 'master' into immutable
* master:
Remove the "auto" encoding
Fixed bug #77025
Add vtbls for EUC-TW encoding
commit 4740dabb84
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Oct 17 14:12:28 2018 +0300
Reverted back ce->iterator_funcs_ptr. Initialize ce->iterator_funcs_ptr fields in immutable classes.
commit ad7a78b253
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Oct 17 11:46:30 2018 +0300
Added comment
commit 0276ea5187
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Oct 17 11:42:43 2018 +0300
Added type cast
commit c63fc5d5f1
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Oct 17 11:36:51 2018 +0300
Moved static class members initialization into the proper place.
commit b945548e93
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Oct 17 11:21:03 2018 +0300
Removed redundand assertion
commit d5a4108840
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Oct 17 11:19:13 2018 +0300
Removed duplicate code
commit 8dadca8864
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Oct 17 11:05:43 2018 +0300
Hide offset encoding magic in ZEND_MAP_PTR_IS_OFFSET(), ZEND_MAP_PTR_OFFSET2PTR() and ZEND_MAP_PTR_PTR2OFFSET() macros.
commit 9ef07c88bd
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Oct 17 10:48:29 2018 +0300
typo
commit a06f0f3d3a
Merge: 94099586ec 3412345ffe
Author: Dmitry Stogov <dmitry@zend.com >
Date: Wed Oct 17 10:47:07 2018 +0300
Merge branch 'master' into immutable
* master:
Remove unused variable makefile_am_files
Classify object handlers are required/optional
Add support for getting SKIP_TAGSTART and SKIP_WHITE options
Remove some obsolete config_vars.mk occurrences
Remove bsd_converted from .gitignore
Remove configuration parser and scanners ignores
Remove obsolete buildconf.stamp from .gitignore
[ci skip] Add magicdata.patch exception to .gitignore
Remove outdated ext/spl/examples items from .gitignore
Remove unused test.inc in ext/iconv/tests
commit 94099586ec
Author: Dmitry Stogov <dmitry@zend.com >
Date: Mon Oct 15 23:34:01 2018 +0300
Immutable clases and op_arrays
2018-10-17 15:52:50 +03:00
Peter Kokot
902d39a3a7
Trim trailing whitespace in source code files
2018-10-13 14:14:50 +02:00
Peter Kokot
7f6387b59a
Trim trailing whitespace in source code files
2018-10-13 14:12:55 +02:00
Dmitry Stogov
c1b649d448
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Fixed bug #76711 (OPcache enabled triggers false-positive "Illegal string offset")
2018-09-20 12:34:31 +03:00