Dmitry Stogov
32b16338b6
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed SCCP support for ZEND_ASSIGN_OBJ_REF
2019-04-03 11:23:37 +03:00
Dmitry Stogov
c941f1d8c7
Fixed SCCP support for ZEND_ASSIGN_OBJ_REF
2019-04-03 11:22:59 +03:00
Dmitry Stogov
b9c639d7ac
JIT code improvement for ocache.jit=1 (IP consistency)
2019-04-03 03:56:39 +03:00
Dmitry Stogov
85c249c9fd
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed CFG construction for SWITCH opcodes
2019-04-03 03:12:13 +03:00
Dmitry Stogov
e03f532829
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fixed CFG construction for SWITCH opcodes
2019-04-03 03:11:15 +03:00
Dmitry Stogov
0f811bb7b6
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fixed CFG construction for SWITCH opcodes
2019-04-03 03:09:47 +03:00
Dmitry Stogov
56a5d0bd91
Fixed CFG construction for SWITCH opcodes
2019-04-03 03:09:03 +03:00
Dmitry Stogov
6cfa490786
Improve JIT code for smart branches
2019-04-03 02:00:54 +03:00
Dmitry Stogov
7f63b84a39
Merge branch 'PHP-7.4'
...
* PHP-7.4:
array_merge() may return argument with incremented reference counter
2019-04-03 00:45:52 +03:00
Dmitry Stogov
9ef2377d33
array_merge() may return argument with incremented reference counter
2019-04-03 00:44:31 +03:00
Dmitry Stogov
803d322240
Use fastcall calling convention
2019-04-02 22:10:57 +03:00
Dmitry Stogov
672d80f5dc
Fixed clang compiler warnings
2019-04-02 21:54:32 +03:00
Dmitry Stogov
12da21b1c1
Avoid NEW opcode inlining when opcache.jit=1
2019-04-02 18:44:58 +03:00
Dmitry Stogov
278c8e7b59
Avoid generation of dead jumps
2019-04-02 18:18:00 +03:00
Dmitry Stogov
0d6fce887b
Added comments
2019-04-02 15:41:25 +03:00
Christoph M. Becker
ba67d44e07
Fix misplacement of calling convention declaration
...
MSVC is particularly picky about this, and won't compile as it is.
2019-04-02 14:10:10 +02:00
Dmitry Stogov
b6dc1d2466
typo
2019-04-02 00:37:34 +03:00
Dmitry Stogov
4e1d545d47
Fixed edge cases in ZEND_ASSIGN_OP+ASSIGN_DIM and replaced specialized helpers with single one
2019-04-01 23:17:45 +03:00
Dmitry Stogov
8bf2de045b
Removed checks for required object handlers
2019-04-01 21:50:20 +03:00
Dmitry Stogov
d196ec9b93
Eliminate hash lookup for immutable op_arrays
2019-04-01 21:20:52 +03:00
Dmitry Stogov
6fccca54a2
Use Zend MM for JIT temporary buffres allocation
2019-04-01 19:22:22 +03:00
Joe Watkins
e9c49b73b7
fix zts jit build
2019-04-01 11:45:32 +02:00
Dmitry Stogov
9a06876072
Added JIT compiler for x86 and x86_64
2019-04-01 10:27:11 +03:00
Nikita Popov
9b7a78b1c2
Merge branch 'PHP-7.4'
2019-03-27 12:43:23 +01:00
Nikita Popov
251f293cb7
Make line numbers for inheritance errors more precise
...
Use the line of the conflicting child method, rather than either the
first or last line of the class.
2019-03-27 12:42:35 +01:00
Nikita Popov
d49371fbd4
Merge branch 'PHP-7.4'
2019-03-26 15:48:02 +01:00
Nikita Popov
0122f395c7
Add zend_error_at API that accepts a filename and lineno
...
Use this for the opcache preloading warnings, as an example usage.
2019-03-26 15:47:00 +01:00
Nikita Popov
c5b2aa2f6c
Merge branch 'PHP-7.4'
2019-03-26 10:11:47 +01:00
Nikita Popov
a9b01b60d8
Make PCRE cache per-request on CLI
...
There will only be one request on the CLI SAPI, so there is no
advantage to having a persistent PCRE cache. Using a non-persistent
cache allows us to use arbitrary strings as cache keys.
2019-03-26 10:10:41 +01:00
Joe Watkins
bd73607b9e
TSRM cleanup for PHP8
2019-03-25 08:00:17 +01:00
Peter Kokot
61d9e53ed9
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Remove extension readmes
2019-03-19 20:26:07 +01:00
Peter Kokot
38b22448f8
Remove extension readmes
...
This patch removes several extension readmes in favor of the PHP manual
and where possible.
2019-03-19 20:25:32 +01:00
Christoph M. Becker
9ca9394f5b
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Simplfy test case
2019-03-18 14:59:08 +01:00
Xinchen Hui
59db08e3a2
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Simplfy test case
2019-03-18 19:30:20 +08:00
Xinchen Hui
ab8782d1e6
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Simplfy test case
2019-03-18 19:30:11 +08:00
Xinchen Hui
e072537e7f
Simplfy test case
...
(I was working on the same bug while nikic committed the similar fix
2019-03-18 19:28:23 +08:00
Nikita Popov
5b391599d1
Merge branch 'PHP-7.4'
2019-03-18 10:51:40 +01:00
Nikita Popov
f7abb1e253
Merge branch 'PHP-7.3' into PHP-7.4
2019-03-18 10:51:20 +01:00
Nikita Popov
da7add3525
Merge branch 'PHP-7.2' into PHP-7.3
2019-03-18 10:51:00 +01:00
Nikita Popov
54bf8c820f
Fixed bug #77743
2019-03-18 10:49:53 +01:00
Peter Kokot
347128a12b
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Sync AC_CHECK_SIZEOF m4 macro calls
2019-03-18 02:13:12 +01:00
Peter Kokot
ccc29473ec
Sync AC_CHECK_SIZEOF m4 macro calls
...
- AC_CHECK_SIZEOF is now called mostly only in PHP_CHECK_STDINT_TYPES()
macro except for some parts checking for the 32 or 64 bit architecture.
- SIZEOF_CHAR removed since it is always 1
- ZEND_BIN_ID is now of a more logical pattern `BIN_48888` on 64bit
architectures and `BIN_44444` on 32bit instead of literal string
`BIN_SIZEOF_CHAR48888` on 64bit and `BIN_SIZEOF_CHAR44444` on 32bit.
The unneeded SIZEOF_CHAR part has been removed.
- XMLRPC_TYPE_CHECKS removed
- The `long long int` is the same as `long long` and redundant checks
removed accordingly.
- Removed PHP_CHECK_64BIT macro. Checking if current platform is 64bit
or not can be also done simply by using a check of the long type on
place. This removes redundant m4 macro PHP_CHECK_64BIT.
2019-03-18 02:11:23 +01:00
Peter Kokot
6426420f61
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Replace dirname(__FILE__) by __DIR__ in tests
2019-03-15 23:36:47 +01:00
Fabien Villepinte
26dfce7f36
Replace dirname(__FILE__) by __DIR__ in tests
2019-03-15 22:55:30 +01:00
Peter Kokot
4b3da12363
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Remove HAVE_STRFTIME
2019-03-14 19:43:45 +01:00
Peter Kokot
3a857852a8
Remove HAVE_STRFTIME
...
Function strftime is part of the C89 standard [1] and current systems
don't need to check for its presence anymore.
Additionally, checks for strftime function in tests have been removed
since the PHP strftime function is now always available.
1: https://port70.net/~nsz/c/c89/c89-draft.html
2019-03-14 19:42:29 +01:00
Nikita Popov
852485d8ec
Adjust tests for zpp TypeError change
2019-03-11 11:32:20 +01:00
Nikita Popov
d40889e408
Merge branch 'PHP-7.4'
2019-03-11 10:19:50 +01:00
David Carlier
f8a2497584
Fix shm api detection test for opcache module on FreeBSD
...
Per man page the shm_open path should start with / and contain no
further slashes.
2019-03-11 10:19:35 +01:00
Peter Kokot
d0fd9fe977
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Add AS_HELP_STRING to *nix build configure options
2019-03-07 20:38:04 +01:00
Peter Kokot
9df6a1e4dd
Add AS_HELP_STRING to *nix build configure options
...
The Autoconf's default AS_HELP_STRING macro can properly format help
strings [1] so watching out if columns are aligned manually is not
anymore.
[1] https://www.gnu.org/software/autoconf/manual/autoconf.html#Pretty-Help-Strings
2019-03-07 20:36:59 +01:00
Peter Kokot
2968a1d7f2
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Remove legacy AC_CHECK_TYPE calls for uint and ulong
2019-03-06 22:50:46 +01:00
Peter Kokot
bebcdcc745
Remove legacy AC_CHECK_TYPE calls for uint and ulong
...
The AC_CHECK_TYPE was refactored in more recent versions of Autoconf
and the call with two arguments is obsolete and not recommended anymore.
This patch also refactors some leftovers of using ulong and uint which
are not standard nor common usages of types in C.
The ulong can be used as zend_ulong and uint usage is actually
`unsigned int`.
The usage of HAVE_ULONG removed since it is not used in current code
base.
Legacy edgecase for some legacy HPUX systems removed:
- sys/stream.h header is not checked and the HAVE_SYS_STREAM_H is
not defined with current build system.
- flags are unsigned int
- max_allowed_packet changed to unsigned int
2019-03-06 22:49:16 +01:00
Stanislav Malyshev
db777e9199
Fix shifting signed values too far
...
Signed shift of 31 for int and 63 for long is flagged as undefined
behavior by UBSan (-fsanitize=undefined) and seems to be indeed so
according to the standard.
The patch converts such cases to use unsigned.
2019-03-06 00:50:09 -08:00
Stanislav Malyshev
f90a1a472a
Fix shifting signed values too far
...
Signed shift of 31 for int and 63 for long is flagged as undefined
behavior by UBSan (-fsanitize=undefined) and seems to be indeed so
according to the standard.
The patch converts such cases to use unsigned.
2019-03-05 21:41:22 -08:00
Nikita Popov
5db64d695a
Merge branch 'PHP-7.4'
2019-03-04 13:16:33 +01:00
Nikita Popov
ade5474792
Merge branch 'PHP-7.3' into PHP-7.4
2019-03-04 13:16:25 +01:00
Nikita Popov
4c68aaabf1
Merge branch 'PHP-7.2' into PHP-7.3
2019-03-04 13:16:01 +01:00
Nikita Popov
3f00c9367d
Fixed bug #77691
...
We cannot replace an op1_def opcode with an ASSIGN, if it also has
a used res_def. Usually this doesn't happen because the res_def use
can be eliminated first. The example is a case where operand replacement
on the res_def use fails.
2019-03-04 13:11:12 +01:00
Dmitry Stogov
3a119912ad
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Enable Posix Shared Memory on Linux
2019-03-01 12:16:30 +03:00
Dmitry Stogov
7d5e2e532c
Enable Posix Shared Memory on Linux
2019-03-01 12:15:56 +03:00
Nikita Popov
25859315b1
Merge branch 'PHP-7.4'
2019-02-28 16:43:24 +01:00
Nikita Popov
105a04aaac
Don't remove CONST CAST in CONCAT operand
...
CONCAT assumes that CONST operands are strings, so we cannot
blindly remove CAST operands.
2019-02-28 16:42:30 +01:00
Nikita Popov
1b998bb9cb
Remove unnecessary convert_to_string_safe macro
...
I'm assuming that the reason this existed was to avoid modifying
an interned string. However, the current code handles this case
fine already.
2019-02-28 16:30:05 +01:00
Nikita Popov
3cfe80dfce
Merge branch 'PHP-7.4'
2019-02-22 13:42:22 +01:00
Nikita Popov
dda2074bf7
Merge branch 'PHP-7.3' into PHP-7.4
2019-02-22 13:42:13 +01:00
Nikita Popov
66fda0cdb1
Remove result def during jmp_set optimization
2019-02-22 13:41:47 +01:00
Nikita Popov
7cf177cd42
Merge branch 'PHP-7.4'
2019-02-22 12:45:39 +01:00
Nikita Popov
ea115a617f
Fix removal of unreachable code in SCCP
...
Due to a wrongly placed check, we were only performing the
unreachable code removal if there were loop vars...
2019-02-22 12:44:36 +01:00
Nikita Popov
b8866a5a0e
Merge branch 'PHP-7.4'
2019-02-22 12:00:49 +01:00
Nikita Popov
4a98f42330
Merge branch 'PHP-7.3' into PHP-7.4
2019-02-22 12:00:35 +01:00
Nikita Popov
33c2b47de3
Merge branch 'PHP-7.2' into PHP-7.3
2019-02-22 12:00:20 +01:00
Nikita Popov
2cfb09caa7
Fix inference warning about missing key type
2019-02-22 11:55:16 +01:00
Nikita Popov
93ee216966
Merge branch 'PHP-7.4'
2019-02-22 11:26:26 +01:00
Nikita Popov
bb75a53771
Fix get_unresolved_initializer for static props
...
For static props the offset is a simple index.
2019-02-22 11:25:52 +01:00
Dmitry Stogov
258c7fb56e
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Use different method to suppress "false" memory leak reports
2019-02-22 10:12:49 +03:00
Dmitry Stogov
22691f9ef7
Use different method to suppress "false" memory leak reports
2019-02-22 10:11:43 +03:00
Nikita Popov
d3b7a8bef7
Merge branch 'PHP-7.4'
2019-02-21 11:00:52 +01:00
Nikita Popov
6b110b151d
Fixed bug #77643
...
Resolve property initializers against the correct class, even when
parent slots are reused.
2019-02-21 10:59:30 +01:00
Nikita Popov
4c2a86c47a
Merge branch 'PHP-7.4'
2019-02-21 10:36:49 +01:00
Nikita Popov
0989b70015
Print more precise warning for unresolved constants
2019-02-21 10:35:59 +01:00
Dmitry Stogov
21c59a6134
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Supress memory leak reports
2019-02-20 18:19:36 +03:00
Dmitry Stogov
16d0824aef
Supress memory leak reports
2019-02-20 18:18:44 +03:00
Dmitry Stogov
5ce6d2ff63
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Remember __COMPILER_HALT_OFFSET__(s) in preloaded scripts
2019-02-20 17:10:33 +03:00
Dmitry Stogov
4f2ad75dbe
Remember __COMPILER_HALT_OFFSET__(s) in preloaded scripts
2019-02-20 17:10:10 +03:00
Nikita Popov
c8e2b333cb
Merge branch 'PHP-7.4'
2019-02-20 11:22:31 +01:00
Nikita Popov
c0e15a3b7f
Implement fine-grained conflict handling
...
Tests can specify conflict keys, either in --CONFLICTS-- or
a per-directory CONFLICTS file. Non-conflicting tests may be run
in parallel.
2019-02-20 11:20:40 +01:00
Dmitry Stogov
db9323c56a
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Disable preloading for sensetive opcache tests
2019-02-20 11:47:39 +03:00
Dmitry Stogov
12edc453e5
Disable preloading for sensetive opcache tests
2019-02-20 11:47:19 +03:00
Dmitry Stogov
4fe2cff5a5
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Prevent error reporting during preloading request start-up
2019-02-20 11:36:24 +03:00
Dmitry Stogov
c143794dd9
Prevent error reporting during preloading request start-up
2019-02-20 11:35:56 +03:00
Dmitry Stogov
ba25306e98
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Order of classes may matter
2019-02-19 23:51:08 +03:00
Dmitry Stogov
6b00238979
Order of classes may matter
2019-02-19 23:50:17 +03:00
Dmitry Stogov
b1a9d10608
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Don't restrict preloading with "open_basedir" directive.
2019-02-19 23:18:35 +03:00
Dmitry Stogov
0510b41a06
Don't restrict preloading with "open_basedir" directive.
2019-02-19 23:17:38 +03:00
Dmitry Stogov
65c14c6203
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Check for USER_FUNCTION
2019-02-19 18:40:05 +03:00
Dmitry Stogov
1133ee1167
Check for USER_FUNCTION
2019-02-19 18:39:44 +03:00
Dmitry Stogov
b06067e39c
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Accurate handling of not preloaded classes
2019-02-19 18:10:10 +03:00
Dmitry Stogov
26ab6edffc
Accurate handling of not preloaded classes
2019-02-19 18:09:44 +03:00
Dmitry Stogov
04af0020e8
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Don't try to eliminate requre/include with stream wrappers
2019-02-19 16:55:37 +03:00
Dmitry Stogov
1f2dc0492d
Don't try to eliminate requre/include with stream wrappers
2019-02-19 16:54:51 +03:00
Dmitry Stogov
bf77e635ac
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Stop PHP in case of fatal error during preloading
2019-02-19 16:47:24 +03:00
Dmitry Stogov
440cdf7837
Stop PHP in case of fatal error during preloading
2019-02-19 16:46:56 +03:00
Dmitry Stogov
d42b3cad06
Merge branch 'PHP-7.4'
...
* PHP-7.4:
ws
2019-02-19 15:51:37 +03:00
Dmitry Stogov
eb03df813c
ws
2019-02-19 15:51:12 +03:00
Nikita Popov
f37c70c7fb
Merge branch 'PHP-7.4'
2019-02-19 10:12:01 +01:00
Joe Watkins
f8cd8eb740
ZEND_COMPILE_EXTENDED_INFO split Currently a tool may not decide between debugging and profiling behaviour: We split ZEND_COMPILE_EXTENDED_INFO into ZEND_COMPILE_EXTENDED_FCALL and ZEND_COMPILE_EXTENDED_STMT We define ZEND_COMPILE_EXTENDED_INFO as ZEND_COMPILE_EXTENDED_STMT|ZEND_COMPILE_EXTENDED_FCALL
2019-02-19 10:07:02 +01:00
Dmitry Stogov
820a9952cb
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed use-after-free during preloading, when q class with unresolved constant uses a preloaded trait.
2019-02-18 13:48:06 +03:00
Dmitry Stogov
3ef9f23fce
Fixed use-after-free during preloading, when q class with unresolved constant uses a preloaded trait.
2019-02-18 13:46:13 +03:00
Nikita Popov
8ee78441f8
Merge branch 'PHP-7.4'
2019-02-18 11:17:45 +01:00
Nikita Popov
05363890a0
Release constant names during preloading
2019-02-18 11:15:32 +01:00
Nikita Popov
2f3d61971f
Don't catch opcache_compile_file failures during preloading
...
Compiler failures are not side-effect free, they may leave behind
parts of the file that were successfully compiled before the
failure occurred. The preloading code is not prepared to deal with
this.
2019-02-18 11:03:38 +01:00
Nikita Popov
e982e91590
Merge branch 'PHP-7.4'
2019-02-15 17:53:27 +01:00
Nikita Popov
e15d657c1a
Link anonymous classes during preloading
2019-02-15 17:50:40 +01:00
Nikita Popov
9df07d6168
Merge branch 'PHP-7.4'
2019-02-15 17:37:47 +01:00
Nikita Popov
970dcd240f
Don't assume that all includes have been executed
2019-02-15 17:36:40 +01:00
Nikita Popov
1b31b45f6f
Set filename & lineno information for preload inheritance error
2019-02-15 17:03:57 +01:00
Nikita Popov
92fae00ee0
Handle bailouts during preload linking
2019-02-15 16:56:32 +01:00
Nikita Popov
ff2c27b326
Merge branch 'PHP-7.4'
2019-02-15 16:37:19 +01:00
Nikita Popov
a9497cecf3
Fix preload auto globals handling
...
We need to compute the auto globals mask before EG(symbol_table)
is cleaned out.
2019-02-15 16:37:12 +01:00
Nikita Popov
f39e821c7e
Merge branch 'PHP-7.4'
2019-02-15 14:43:55 +01:00
Nikita Popov
e6e9bea257
Avoid uninitialized entries in properties_info_table
...
Also don't place it into xlat, there's only ever one user.
2019-02-15 14:43:37 +01:00
Nikita Popov
68ed34005c
Merge branch 'PHP-7.4'
2019-02-15 13:04:24 +01:00
Nikita Popov
ade9d5e95b
Suppress zend_throw_error during preload constant resolution
...
Related to bug #77615 .
2019-02-15 13:03:46 +01:00
Nikita Popov
029a8cd644
Merge branch 'PHP-7.4'
2019-02-15 12:41:52 +01:00
Nikita Popov
c15007956d
Add preloading support for typed properties
...
During preloading, try to resolve all property types to CEs. Add a
flag that tracks this. If not all property types can be resolved,
then the class is not eligible for preloading.
2019-02-15 12:41:45 +01:00
Nikita Popov
c3b63706a6
Merge branch 'PHP-7.4'
2019-02-15 10:28:13 +01:00
Nikita Popov
ffc7e953ea
properties_info_table may be in arena or shm
...
For immutable classes it should be shm instead of in arena.
Related to bug #77615 .
2019-02-15 10:27:30 +01:00
Johannes Schlüter
d373d13d4a
Merge branch 'PHP-7.4'
2019-02-12 15:02:18 +01:00
Dmitry Stogov
26e26969c1
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Avoid dependency on "struct flock" fields order.
2019-02-12 10:22:13 +03:00
Dmitry Stogov
470f5891d4
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Avoid dependency on "struct flock" fields order.
2019-02-12 10:21:59 +03:00
Dmitry Stogov
9222702633
Avoid dependency on "struct flock" fields order.
2019-02-12 10:15:16 +03:00
Nikita Popov
fdb85a828a
Return empty str from quotemeta() on empty str
2019-02-11 09:58:10 +01:00
Peter Kokot
17baa87fad
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Update and fix remaining year ranges (2019)
2019-02-08 23:15:49 +01:00
Peter Kokot
c245898bfa
Update and fix remaining year ranges (2019)
...
This patch follows previous license year ranges updates. With new
approach source code files now have simplified headers with license
information without year ranges.
2019-02-08 23:14:29 +01:00
Joe Watkins
51b9d72a36
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Remove --disable-opcache-filecache option
2019-02-07 12:07:44 +01:00
Nikita Popov
c32da66e12
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.
2019-02-07 12:07:25 +01:00
Dmitry Stogov
cdade2e35d
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Remove copyright years.
2019-02-05 10:33:57 +03:00
Dmitry Stogov
da919a8b65
Remove copyright years.
2019-02-05 10:33:28 +03:00
Peter Kokot
623911f993
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Remove local variables
2019-02-03 21:23:18 +01:00
Peter Kokot
92ac598aab
Remove local variables
...
This patch removes the so called local variables defined per
file basis for certain editors to properly show tab width, and
similar settings. These are mainly used by Vim and Emacs editors
yet with recent changes the once working definitions don't work
anymore in Vim without custom plugins or additional configuration.
Neither are these settings synced across the PHP code base.
A simpler and better approach is EditorConfig and fixing code
using some code style fixing tools in the future instead.
This patch also removes the so called modelines for Vim. Modelines
allow Vim editor specifically to set some editor configuration such as
syntax highlighting, indentation style and tab width to be set in the
first line or the last 5 lines per file basis. Since the php test
files have syntax highlighting already set in most editors properly and
EditorConfig takes care of the indentation settings, this patch removes
these as well for the Vim 6.0 and newer versions.
With the removal of local variables for certain editors such as
Emacs and Vim, the footer is also probably not needed anymore when
creating extensions using ext_skel.php script.
Additionally, Vim modelines for setting php syntax and some editor
settings has been removed from some *.phpt files. All these are
mostly not relevant for phpt files neither work properly in the
middle of the file.
2019-02-03 21:03:00 +01:00
Joe Watkins
4752aecdaf
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Properly check for array_replace_recursive in sccp.c
2019-02-03 08:42:22 +01:00
Joe Watkins
ed1afdd617
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Properly check for array_replace_recursive in sccp.c
2019-02-03 08:42:07 +01:00
Joe Watkins
e1c93d1fb2
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Properly check for array_replace_recursive in sccp.c
2019-02-03 08:41:26 +01:00
Tyson Andre
cf56832d00
Properly check for array_replace_recursive in sccp.c
...
Due to a typo, this code used to check for array_merge_recursive
twice.
2019-02-03 08:40:21 +01:00
Nikita Popov
aad39879f2
Remove bareword fallback for constants
...
Access to undefined constants will now always result in an Error
exception being thrown.
This required quite a few test changes, because there were many
buggy tests that unintentionally used bareword fallback in combination
with error suppression.
2019-01-31 13:52:06 +01:00
Nikita Popov
3d39479f4d
Remove support for case-insensitive constants
...
The only remaining case-insensitive constants are null, true and
false, which are handled explicitly.
In the future we may convert them from constants to reserved keywords.
2019-01-31 13:52:06 +01:00
Gabriel Caruso
4e0dd6b0ed
Remove unnecessary CLI checks in tests
2019-01-31 00:21:32 -02:00
Nikita Popov
1870283e45
Merge branch 'PHP-7.4'
2019-01-30 12:02:47 +01:00
David Carlier
6a8260a0ac
opcache/FreeBSD huge code page pragma support
...
Sort of following up on super pages support earlier, here
we also detect page mappings possibly eligible to go to
super pages.
2019-01-30 12:01:44 +01:00
Nikita Popov
6c73b50cf6
Remove static calls to non-static methods
2019-01-30 09:19:02 +01:00
Nikita Popov
c7d7af8069
Remove fgetss and friends
...
These were deprecated in PHP 7.3 as part of
https://wiki.php.net/rfc/deprecations_php_7_3 .
2019-01-29 09:43:00 +01:00
Nikita Popov
6db97f5e3e
Remove each()
...
This has been deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2 .
2019-01-29 09:42:59 +01:00
Nikita Popov
9bc2cacf7f
Remove special treatment of strings in asserts
...
This was deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2 .
2019-01-29 09:42:59 +01:00
Nikita Popov
ff780feca4
Require second argument on (mb_)parse_str()
...
This was deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2 .
2019-01-28 15:58:24 +01:00
Nikita Popov
331e56ce38
Remove mbstring.func_overload
...
Deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2 .
2019-01-28 15:58:23 +01:00
Nikita Popov
920b4b249f
Remove track_errors and $php_errormsg
...
This has been deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2 .
2019-01-28 15:58:23 +01:00
Nikita Popov
ee16d99504
Remove create_function()
...
Deprecated in PHP 7.2 as part of
https://wiki.php.net/rfc/deprecations_php_7_2 .
2019-01-28 15:58:23 +01:00
Dmitry Stogov
0ff71aead1
Fixed crash
2019-01-25 11:53:31 +03:00
Dmitry Stogov
4887896e21
Fixed crash
2019-01-24 18:00:45 +03:00
Nikita Popov
d3e5a2487f
Merge branch 'PHP-7.3'
2019-01-22 12:28:44 +01:00
Nikita Popov
76760901fa
Fixed bug #77287
...
There may be an EXT_NOP opcode before the parameter list, we should
skip over it.
2019-01-22 12:15:06 +01:00
Nikita Popov
a50198d0fe
Implement ??= operator
...
RFC: https://wiki.php.net/rfc/null_coalesce_equal_operator
$a ??= $b is $a ?? ($a = $b), with the difference that $a is only
evaluated once, to the degree that this is possible. In particular
in $a[foo()] ?? $b function foo() is only ever called once.
However, the variable access themselves will be reevaluated.
2019-01-22 11:12:04 +01:00
Dmitry Stogov
8cb1ae92e6
Use SSA instead of bogus reverse linear scan.
2019-01-22 01:33:35 +03:00
Dmitry Stogov
6c983c6221
Use ZEND_FUNC_FREE_LOOP_VAR flag to avoid useless iterations.
2019-01-21 22:18:07 +03:00
Dmitry Stogov
abd0651020
Avoid double live ranges recalculation.
2019-01-21 18:17:10 +03:00
Dmitry Stogov
97ccafd4c6
Live ranges construction optimization
2019-01-21 17:25:24 +03:00
Nikita Popov
3269e88468
Implement single-pass live range calculation
...
Instead of interleaving creation of live-ranges with the main
compiler code, compute them in a separate pass over the opcodes
as part of pass_two. Additionally, do not keep live ranges
synchronized during optimization in opcache and instead use the
same mechanism to recompute them after optimization.
2019-01-21 11:47:27 +01:00
Dmitry Stogov
2f89baf5c7
Fixed 32/64-bit mismatch
2019-01-14 13:15:52 +03:00
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
42cd5db142
Merge branch 'PHP-7.3'
2019-01-11 10:29:45 +01:00
Nikita Popov
e6eac08abd
Merge branch 'PHP-7.2' into PHP-7.3
2019-01-11 10:29:34 +01:00
Kevin Adler
332b58f865
Fix bug #77361 (configure fails on 64-bit AIX when opcache enabled)
...
In f904830012
, support for GNU Hurd was added to the opcache and
the configure check to ensure the opcache knows the flock struct
layout prior to building was changed check for two cases: BSD layout
and Linux layout. All the existing hard-coded cases in
ZendAccelerator.h follow these two cases, except for 64-bit AIX.
This means that even though building on 64-bit AIX would work,
the configure script refuses to continue.
Add a new configure check for the 64-bit AIX case and a new
compiler definition HAVE_FLOCK_AIX64. Now that all the cases are
covered, simplify the ifdef logic around these three HAVE_FLOCK_*
macros:
- The macOS and the various BSD flavors fall under HAVE_FLOCK_BSD
- Linux, HP-UX, GNU Hurd, 32-bit AIX, and SVR4 environments
fall under HAVE_FLOCK_LINUX
- 64-bit AIX falls under HAVE_FLOCK_AIX64
The only difference between the existing HAVE_FLOCK_LINUX and
the hard-coded Linux/HP-UX/Hurd case is that the latter
initialized the 5th member to 0, but since the C standard already
says that un-initialized members will be initialized to 0,
it's effectively the same.
2019-01-11 10:21:02 +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
jvoisin
fbdaabba62
Fix some sign-related issues in comparisons
2019-01-09 10:01:12 +01: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
76d8f3923e
Revert HASH_FLAG_INITIALIZED into HASH_FLAG_UNINITIALIZED.
2018-12-28 11:22:18 +03: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
Dmitry Stogov
cec091176c
Replace zend_hash_apply... with ZEND_HASH_FOREACH...
2018-12-19 02:49:56 +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
Anatol Belski
282581ee8c
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Remove BOM
2018-12-11 00:39:55 +01:00
Anatol Belski
7dc1c7f630
Remove BOM
2018-12-11 00:38:54 +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
Dmitry Stogov
4f26b3b51b
Mark preloaded op_arrays
2018-12-03 16:57:27 +03: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
23d3deb8be
Added ZEND_COMPILE_WITHOUT_EXECUTION and ZEND_COMPILE_PRELOAD to determine when PHP compiler is invoked by opcache_compile_file() or preloading.
2018-11-27 11:52:53 +03:00
Dmitry Stogov
48b9594227
Don't preload functions and classes declared outside of preloaded scripts (e.g. by eval code).
2018-11-23 03:59:47 +03:00
Dmitry Stogov
b076a91c50
Refactored script creation and classes/functions copying.
2018-11-23 03:19:16 +03:00
Nikita Popov
c6009dae34
Remove unused do_free parameter from ADD_INTERNED_STRING
2018-11-22 16:23:03 +01:00
Mizunashi Mana
10ae8b685f
Fix opcache blacklist test on macOS
2018-11-20 21:11:56 +01:00
Dmitry Stogov
05875bcfc6
Improved error messages
2018-11-20 17:50:22 +03:00
Dmitry Stogov
d5955d9587
typo
2018-11-15 00:10:17 +03:00
Dmitry Stogov
f6d227ed4f
Implemented preloading RFC: https://wiki.php.net/rfc/preload .
...
Squashed commit of the following:
commit 106c815fffb8eb3efe00a27a5229cb1f8ffc9736
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Nov 14 16:36:44 2018 +0300
Added NEWS entry
commit 1dacd5e20b7043368ef9e80db296d1781134b6fd
Merge: d516139abf ba99aa133c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Nov 14 16:33:37 2018 +0300
Merge branch 'master' into preload
* master:
Fixed issues related to optimization and persitence of classes linked with interfaces, traits or internal classes.
Added possiblity to avoid signal handlers reinitialization on each request.
commit d516139abf5ffbd495ee6037f1dc04a1cfe588a7
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Nov 14 16:13:15 2018 +0300
Override opcache.preload for testing
commit 162b154d0bbfbaf8ef93975f7e56a1353236903d
Merge: 45fdd034ce
8bda22592e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Nov 14 15:38:09 2018 +0300
Merge branch 'master' into preload
* master: (34 commits)
Eliminate useless $this related check
Eliminate useless $this related checks
Replace zend_parse_method_parameters() by zend_parse_parameters() and avoid useless checks.
Replace getThis() by EX(This), when additional check is not necessary.
Fixed tests
Validate length on socket_write
Fix compilation on x32
Fix #77141 : Signedness issue in SOAP when precision=-1
Support SQLite3 @name notation
Remove lexer files generated by RE2C
Update libmagic.patch [ci skip]
Update libmagic.patch [ci skip]
Fork test with pcre.jit=0
Rework magic data
Fix regex
Fix regex
Rework magic data
Sync one more upstream libmagic piece
Suppress already used warning
Ignore getaddrinfo failed message
...
commit 45fdd034ce
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Nov 9 13:07:03 2018 +0300
Properly resolve magic method of preloaded classes inherited from internal ones.
commit 34645aeb42
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Nov 8 15:29:17 2018 +0300
Don't preload constants defined during preload script excution.
commit cef0d67c3e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Nov 7 15:56:54 2018 +0300
Support for class aliasses
commit 08ffc9a552
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Nov 7 15:34:39 2018 +0300
Resolve constants only in linked classes
commit 8d3429cda8
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Nov 6 11:56:39 2018 +0300
Fixed preloading of references to internal classes.
commit 7ae3a47d20
Merge: 9b0a53ed1c
049f239cfc
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Nov 6 11:37:15 2018 +0300
Merge branch 'master' into preload
* master:
Update NEWS [ci skip]
Update NEWS [ci skip]
Update libmagic.patch [ci skip]
Update libmagic.patch [ci skip]
Declare function proto in header
Declare function proto in header
Fix #76825 : Undefined symbols ___cpuid_count
NEWS
Fix : #77110 undefined symbol zend_string_equal_val in C++ build
Fix #77105 : Use position:sticky for <th> in `phpinfo()`
Implement handling for JIT recognition when cross compiling
Backport 7f5f4601
for 7.2
Fix #76348 : WSDL_CACHE_MEMORY causes Segmentation fault
Rework places in libmagic regarding previous CVE-2014-3538 fixes
Change the way JIT availability is checked
Fix a test for ldap extension
Fixed bug #77092
Future-proof email addresses
commit 9b0a53ed1c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Nov 2 14:54:44 2018 +0300
We don't need preload_restart() here
commit 0bd17bd438
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Nov 2 14:44:30 2018 +0300
EG(*) may be not initializd at this point - use CG(*).
commit b610467051
Merge: 3a9d90f74a
67e0138c0d
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Nov 2 11:33:37 2018 +0300
Merge branch 'master' into preload
* master:
Future-proof email addresses...
Update email addresses. We're still @Zend, but future proofing it...
commit 3a9d90f74a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Nov 1 15:19:48 2018 +0300
Fexed resolution of method clones
commit aea85c65bd
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Nov 1 11:45:50 2018 +0300
Prevent inlining of method copied from trait
commit 36b644fbb7
Merge: 7a20781d2e
b91690c892
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Nov 1 10:56:02 2018 +0300
Merge branch 'master' into preload
* master:
Fix stray newline that caused this test to fail
Fix session tests that fail if error_log is set
This test needs to log to stdout
Fix error condition
Fixed bug #77081 ftruncate() changes seek pointer in c mode
Fix and improve test case
commit 7a20781d2e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 31 00:52:46 2018 +0300
Added test
commit 4a57b5d563
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 31 00:50:21 2018 +0300
Fixed preloading of classes linked with traits
commit 68c4f99e23
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Oct 30 16:25:14 2018 +0300
Added test
commit 38ab7ef4cf
Merge: eb6e2c529f
bf38e6c10a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Oct 30 16:14:39 2018 +0300
Merge branch 'master' into preload
* master:
Keep original value of "prototype"
commit eb6e2c529f
Merge: 562049510f
2fefa8c61e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Oct 30 15:35:39 2018 +0300
Merge branch 'master' into preload
* master:
Call function_add_ref() in proper place
Updated to version 2018.7 (2018g)
Updated to version 2018.7 (2018g)
Updated to version 2018.7 (2018g)
Reslove inherited op_array references once afrer all optimizations.
commit 562049510f
Merge: e806cb732a
4828fb7b6b
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Oct 30 10:29:49 2018 +0300
Merge branch 'master' into preload
* master:
[ci skip] Update NEWS
[ci skip] Update NEWS
[ci skip] Update NEWS
fix bug #77079
Add missing null initialization
Remove redundant mbfl_string_init calls
Use zend_string for mbstring last encoding cache
commit e806cb732a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 29 22:32:15 2018 +0300
Fixed double-free
commit 2f697ef8af
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 29 22:07:32 2018 +0300
typo
commit c559f22b3e
Merge: 310631cc05
ea2e67876a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 29 21:59:27 2018 +0300
Merge branch 'master' into preload
* master:
Stop Apache if PHP wasn't started successful.
Execute zend_post_startup() with module_initialized flag set.
Removed dead code
Fix mb_strrpos() with encoding passed as 3rd param
commit 310631cc05
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 29 16:48:42 2018 +0300
Stop Apache if PHP wasn't started successful.
commit 0a24d7ba8f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 29 16:25:49 2018 +0300
Avoid use-after-free in main thread
commit 17a3cb4a2a
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 29 15:25:17 2018 +0300
Execute zend_post_startup() with module_initialized flag set.
commit 6d4b22c518
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 29 14:12:20 2018 +0300
Override SAPI.ub_write and SAPI.flush for preloading
commit 386c9d3470
Merge: d7fbb4d402
359f19edc9
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 29 13:49:24 2018 +0300
Merge branch 'master' into preload
* master:
Optimize substr() edge-case conditions
[ci skip] Update UPGRADING
Fix #71592 : External entity processing never fails
Add TIDY_TAG_* constants supported by libtidy 5
Add is_iterable to opcache Optimizer
commit d7fbb4d402
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Oct 26 13:11:54 2018 +0300
Restore preload state if it was already loaded in another process.
commit 0fe9ea1c07
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Oct 26 12:29:06 2018 +0300
Removed dead code
commit 3a2d1bcc1f
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Oct 26 00:19:40 2018 +0300
Support for builds without ZEND_SIGNALS
commit e6b76ecb4b
Merge: 4531fbf931
68694c9997
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Oct 25 23:43:25 2018 +0300
Merge branch 'master' into preload
* master:
Don't wrap php_module_shutdown() with zend_try. executor_globals are released in ZTS build, and this leads to crash.
[ci skip] Fix indentation in UPGRADING.
commit 4531fbf931
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Oct 25 22:44:49 2018 +0300
Disable linking and preloading of classes those parent or one of interface or trait is an internal class.
commit a594a618ce
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Oct 25 22:30:51 2018 +0300
Cleanup
- remove useless ZCSG(saved_map_ptr_last)
- move preloaded classes/functions clean-up code back into better place
commit ab9a40f63c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Oct 25 20:52:51 2018 +0300
Added support for preloaded classes/functions in ZTS build
commit e3c65db099
Merge: 4f57c1e029
33e777acbf
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Oct 25 20:52:26 2018 +0300
Merge branch 'master' into preload
* master:
Improved shared interned strings handling. The previous implementation worked incorrectly in ZTS build. It changed strings only in function/class tables of one thread. Now all threads gets the same shared interned strings. Also, on shutdown, we don't try to replace SHM interned strings back to process strings, but delay dettachment of SHM instead.
Don't use request heap at shutdown
Don't optimize function if inference failed
Fixed bug #77058
Improve "narrowing" error message
bump versions
commit 4f57c1e029
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Oct 25 15:29:58 2018 +0300
Cleanup (move preload_shutdown() call to better place)
commit 26587a95c0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Oct 25 14:30:51 2018 +0300
eol
commit d70cb10480
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Oct 25 14:30:20 2018 +0300
cleanup
commit aabe685dbb
Merge: d9fc51bc3b
40808ac41e
Author: Dmitry Stogov <dmitry@zend.com>
Date: Thu Oct 25 12:42:51 2018 +0300
Merge branch 'master' into preload
* master:
Remove unused var
Remove ext/json parser files generated by bison
Fix run-tests.php for running phpdbg and certain test sections
Normalize .gitignore
commit d9fc51bc3b
Merge: b5ffba0faf
b6ef8998d5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 24 15:59:24 2018 +0300
Merge branch 'master' into preload
* master:
Fixed reseting of interned strings buffer.
commit b5ffba0faf
Merge: e4a7ef0c43
a404383118
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 24 12:46:28 2018 +0300
Merge branch 'master' into preload
* master:
Fixed build in directory different from source
commit e4a7ef0c43
Merge: 811f20aaa5
d1e14e2cc0
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 24 11:59:43 2018 +0300
Merge branch 'master' into preload
* master: (29 commits)
Make php_plain_files_wrapper to be writable (workaround for swoole)
Remove phpdbg parser files generated by bison
Fix conflicts in phpdbg parser
Refetetch function name on exceptional path to allow better code on fast code path.
fix typo in sysvsem.c
Fixed bug #50675
bump to 7.2.13-dev
[ci skip] Update NEWS wrt. php-7.3.0RC4 tagging
Inlining in the most frequently used code paths
Fixed test failurs introduced by 9c144e0d82
Use persistent strings only for persistent connections
Fix accessibility checks for dynamic properties
Updated to version 2018.6 (2018f)
Updated to version 2018.6 (2018f)
Updated to version 2018.6 (2018f)
Fix arginfo and clean up fpm_get_status
Defragment two Zend related Makefile fragments together
[ci skip] Remove automake and aclocal in comments
Fix #75282 : xmlrpc_encode_request() crashes
Fix tests for ICU 63.1
...
commit 811f20aaa5
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 22 14:10:49 2018 +0300
Added information about preloading to opcache_get_status()
commit 093e8b1bbf
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Oct 19 13:46:23 2018 +0300
Added warning message
commit a2ba970ce3
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Oct 19 13:35:40 2018 +0300
Added test
commit b67e28367c
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Oct 19 13:33:12 2018 +0300
Don't preload functions declared at run-time.
commit b0139dc228
Merge: a609520adb
3fe698b904
Author: Dmitry Stogov <dmitry@zend.com>
Date: Fri Oct 19 13:23:14 2018 +0300
Merge branch 'master' into preload
* master:
Mark "top-level" functions.
Don't initialize static_member_tables during start-up, when inherit internal classes.
[ci skip] Update NEWS
[ci skip] Update NEWS
[ci skip] Update NEWS
Fix #77035 : The phpize and ./configure create redundant .deps file
Remove outdated PEAR artefacts
Fix tests/output/bug74815.phpt generating errors.log
Revert "Use C++ symbols, when C++11 or upper is compiled"
Use C++ symbols, when C++11 or upper is compiled
Added new line
Remove stamp-h
Move all testing docs to qa.php.net
Fix a typo in UPGRADING.INTERNALS
Fix test when it's run on another drive
[ci skip] Update UPGRADING wrt. tidyp support
Fixed incorrect reallocation
Fix #77027 : tidy::getOptDoc() not available on Windows
Run CI tests under opcache.protect_memory=1
commit a609520adb
Merge: ac8f45f61b
b6ac50f9e6
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 17:01:05 2018 +0300
Merge branch 'master' into preload
* master:
Fixed comment
Micro optimizations
Mark "top-level" classes
commit ac8f45f61b
Merge: 632b30b545
d57cd36e47
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 15:53:41 2018 +0300
Merge branch 'master' into preload
* master:
Immutable clases and op_arrays.
commit 632b30b545
Merge: d33908a99a
cd0c36c3f9
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 15:04:43 2018 +0300
Merge branch 'immutable' into preload
* immutable:
Remove the "auto" encoding
Fixed bug #77025
Add vtbls for EUC-TW encoding
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 d33908a99a
Merge: 21e0bebca3
4740dabb84
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 14:14:23 2018 +0300
Merge branch 'immutable' into preload
* immutable:
Reverted back ce->iterator_funcs_ptr. Initialize ce->iterator_funcs_ptr fields in immutable classes.
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 21e0bebca3
Merge: c78277ae84
ad7a78b253
Author: Dmitry Stogov <dmitry@zend.com>
Date: Wed Oct 17 12:29:59 2018 +0300
Merge branch 'immutable' into preload
* immutable:
Added comment
Added type cast
Moved static class members initialization into the proper place.
Removed redundand assertion
Removed duplicate code
Hide offset encoding magic in ZEND_MAP_PTR_IS_OFFSET(), ZEND_MAP_PTR_OFFSET2PTR() and ZEND_MAP_PTR_PTR2OFFSET() macros.
typo
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 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 c78277ae84
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Oct 16 17:25:35 2018 +0300
Preloadsing support for opcache restart
commit f76a955c02
Author: Dmitry Stogov <dmitry@zend.com>
Date: Tue Oct 16 13:52:36 2018 +0300
Fixed incorrect signal handlers overriding
commit 0810ce0d81
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 15 23:38:48 2018 +0300
An attempt to implemnt "preloading" ability.
commit 94099586ec
Author: Dmitry Stogov <dmitry@zend.com>
Date: Mon Oct 15 23:34:01 2018 +0300
Immutable clases and op_arrays
2018-11-14 16:46:05 +03: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
Nikita Popov
12cbe930cd
Merge branch 'PHP-7.3'
2018-11-13 12:31:44 +01:00
Jan Rękorajski
f76be1a0d6
Fix compilation on x32
...
Signed-off-by: Elan Ruusamäe <glen@pld-linux.org>
2018-11-13 12:31:00 +01:00
Dmitry Stogov
f200298075
Avoid double copying
2018-11-07 14:23:34 +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
Dmitry Stogov
33e777acbf
Improved shared interned strings handling. The previous implementation worked incorrectly in ZTS build. It changed strings only in function/class tables of one thread. Now all threads gets the same shared interned strings. Also, on shutdown, we don't try to replace SHM interned strings back to process strings, but delay dettachment of SHM instead.
2018-10-25 20:30:51 +03:00
Dmitry Stogov
f33da6f338
Don't use request heap at shutdown
2018-10-25 19:24:39 +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
b6ef8998d5
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Fixed reseting of interned strings buffer.
2018-10-24 15:46:22 +03:00
Dmitry Stogov
335fb94d54
Fixed reseting of interned strings buffer.
2018-10-24 15:45:34 +03:00
Anatol Belski
7e6ad00cc9
Merge branch 'PHP-7.3'
...
* PHP-7.3:
Fix test when it's run on another drive
2018-10-18 00:45:43 +02:00
Anatol Belski
bca89bb735
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fix test when it's run on another drive
2018-10-18 00:45:17 +02:00
Anatol Belski
6a5254bc96
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Fix test when it's run on another drive
2018-10-18 00:44:43 +02:00
Anatol Belski
fda06127fa
Fix test when it's run on another drive
2018-10-18 00:43:24 +02:00
Dmitry Stogov
a0a1c8990e
Fixed incorrect reallocation
2018-10-17 17:44:03 +03: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
d679f02295
Sync leading and final newlines in *.phpt sections
...
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.
According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.
C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."
Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:33:09 +02:00
Peter Kokot
b746e69887
Sync leading and final newlines in *.phpt sections
...
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.
According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.
C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."
Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:32:30 +02:00
Peter Kokot
f1d7e3ca0b
Sync leading and final newlines in *.phpt sections
...
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.
According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.
C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."
Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:31:31 +02:00
Peter Kokot
113213f027
Sync leading and final newlines in *.phpt sections
...
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.
According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.
C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."
Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.
[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:29:24 +02:00
Peter Kokot
d7a3edd45d
Trim trailing whitespace in *.phpt
2018-10-14 19:46:15 +02:00