Commit Graph

2092 Commits

Author SHA1 Message Date
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
da919a8b65 Remove copyright years. 2019-02-05 10:33:28 +03: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
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
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
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
Peter Kokot
782352c54a Trim trailing whitespace in *.phpt 2018-10-14 19:45:12 +02:00
Peter Kokot
17ccbeec32 Trim trailing whitespace in *.phpt 2018-10-14 19:44:14 +02:00
Peter Kokot
7af945e271 Trim trailing whitespace in *.phpt 2018-10-14 19:43:12 +02:00
Gabriel Caruso
9c144e0d82
Trim trailing whitespace in tests 2018-10-14 12:07:20 -03:00
Peter Kokot
1ad08256f3 Sync leading and final newlines in source code files
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.

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-14 12:56:38 +02:00
Peter Kokot
1c850bfcca Sync leading and final newlines in source code files
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.

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-14 12:55:24 +02:00
Peter Kokot
60a69daec6 Sync leading and final newlines in source code files
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.

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-14 12:54:08 +02:00
Peter Kokot
03f3b8479b Sync leading and final newlines in source code files
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.

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-14 12:51:01 +02:00
Peter Kokot
37c329d715 Trim trailing whitespace in source code files 2018-10-13 14:17:28 +02:00
Peter Kokot
3362620b5f Trim trailing whitespace in source code files 2018-10-13 14:16:33 +02: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
ca7ccd01e4 During size calculation, pointer should be kept unchanged 2018-10-08 23:52:24 +03:00
Dmitry Stogov
34a491d1ed Turn accel_activate into module callback. 2018-10-01 14:10:54 +03:00
Dmitry Stogov
c25e7439ae Get rid of accel_deactivate() calback 2018-10-01 13:53:15 +03:00
Dmitry Stogov
3a3840a847 Avoid useless store and checks in xlat_table. 2018-09-26 17:05:49 +03: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
Dmitry Stogov
b8ffa3707c Fixed bug #76711 (OPcache enabled triggers false-positive "Illegal string offset") 2018-09-20 12:33:46 +03:00
Dmitry Stogov
a5208c393d Use macro 2018-09-19 18:09:32 +03:00
Dmitry Stogov
f5e1868601 Improved hash copying 2018-09-19 17:53:10 +03:00
Dmitry Stogov
b634ded197 Class constants and default property values can't be IS_REFERENCE anymore. 2018-09-18 18:46:10 +03:00
Dmitry Stogov
689c6fb188 Replace ZEND_ACC_ANON_BOUND, ZEND_ACC_UNRESOLVED_PARENT and ZEND_ACC_UNRESOLVED_INTERFACES with single ZEND_ACC_LINKED. 2018-09-18 11:41:40 +03:00
Anatol Belski
321c0cc349 Fix localized error messages and memory leaks
The FormatMessage API needs to LocalFree the delivered error messages.
In cases where messages are delivered in non ASCII compatible encoding,
the messages might be unreadable. This aligns the error message encoding
with the encoding settings in PHP, the focus is UTF-8 as default.

Initialize error buffer

Avoid code duplication
2018-09-17 10:56:50 +02:00
Dmitry Stogov
5d2894c8e7 Merge branch 'PHP-7.3'
* PHP-7.3:
  Fixed wrong assertion
2018-09-10 15:27:48 +03:00
Dmitry Stogov
64dad57d19 Fixed wrong assertion 2018-09-10 15:26:38 +03:00
Nikita Popov
1038c4b4ce Merge branch 'PHP-7.3' 2018-09-07 14:03:04 +02:00
Nikita Popov
a32c563e50 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-07 14:02:51 +02:00
Nikita Popov
cfdd828163 Fixed bug #76796 2018-09-07 14:02:03 +02:00
Peter Kokot
eff22dc511
Remove AC_HEADER_DIRENT
Autoconf 2.59d (released in 2006) [1] started promoting several macros
as not relevant for newer systems anymore, including the `AC_HEADER_DIRENT`.

This macro checks which header defines the `DIR` type. If `<dirent.h>`
is available it defines the `HAVE_DIRENT_H` symbol. Since the `<dirent.h>`
header is already checked in the `configure.ac`, this check is not needed
anymore. This macro also additionally checks for SCO Xenix (discontinued,
latest release 1989) dir and x libraries. [2]

Commit 6ed790685f introduced also
`<sys/dir.h>`. This header exists from times of UNIX System V and
provided definition of DIR type on these systems such as 4.3BSD.
Today `<sys/dir.h>` is kept for backwards compatibility and includes
the `<dirent.h>` on current systems. With `dirent.h>` present this
include is no longer required.

Refs:
[1] http://git.savannah.gnu.org/cgit/autoconf.git/tree/NEWS
[2] https://www.gnu.org/software/autoconf/manual/autoconf-2.69/autoconf.html

Remove unused dirent.h includes
2018-09-04 12:01:24 +02:00
Anatol Belski
e0b91051ae Merge branch 'PHP-7.3'
* PHP-7.3:
  Fixed bug #76832 ZendOPcache.MemoryBase periodically deleted by the OS
2018-09-03 15:11:45 +02:00
Anatol Belski
1640d9182a Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #76832 ZendOPcache.MemoryBase periodically deleted by the OS
2018-09-03 15:11:10 +02:00
Anatol Belski
a6b8651d94 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #76832 ZendOPcache.MemoryBase periodically deleted by the OS
2018-09-03 15:10:25 +02:00
Anatol Belski
f26172f934 Fixed bug #76832 ZendOPcache.MemoryBase periodically deleted by the OS 2018-09-03 15:09:23 +02:00
Dmitry Stogov
03fc3d85d8 Allow opcache_compile_file() to perform compilation even if opcache is disabled. 2018-08-29 00:42:38 +03:00
Dmitry Stogov
002aa30786 Added check for "user" method 2018-08-28 23:56:12 +03:00
Dmitry Stogov
684354be72 Removed incorrect efree() (run_time_cache(s) are usually allocated in CG(arena)). 2018-08-28 17:46:26 +03:00
Dmitry Stogov
4151a3fa64 Revert "Removed redundand code"
This reverts commit 57e2b7d53b.
2018-08-28 11:51:08 +03:00
Dmitry Stogov
57e2b7d53b Removed redundand code 2018-08-28 11:03:17 +03:00
Dmitry Stogov
6136a20544 ZEND_DECLARE_CLASS, ZEND_DECLARE_INHERITED_CLASS and ZEND_DECLARE_INHERITED_CLASS_DELAYED don't need return value anymore. 2018-08-24 15:40:53 +03:00
Dmitry Stogov
8050f4a334 Keep information about unresolved parent class in zend_class_entry->parent_name 2018-08-24 00:20:57 +03:00
Dmitry Stogov
d140df58e6 Keep information about unresolved interfaces in zend_class_entry->interface_names.
Move interface implementation code into ZEND_DECLARE_*CLASS opcodes.
Remove ZEND_ADD_INTERFACE and ZEND_VERIFY_ABSTRACT_CLASS opcodes.
2018-08-23 17:16:28 +03:00
Dmitry Stogov
67397970b2 Replace zend_class_entry->traits by persistent zend_class_entry->trait_names.
Move trait binding code into ZEND_DECLARE_*CLASS opcodes.
Remove ZEND_ADD_TRIAIT and ZEND_BIND_TRAITS opcodes.
2018-08-23 02:02:26 +03:00
Dmitry Stogov
93f9ee7217 Use zend_class_entry/zend_function type names instead of _zend_class_entry/_zend_function tags. 2018-08-22 14:01:14 +03:00
Dmitry Stogov
fc8d6b6797 Introduced ZEND_COMPILE_IGNORE_OTHER_FILES compiler option, to allow "separate" file compilation (unaffected but previously compiled files), without CG(function_table)/CG(class_table) manipulation. 2018-08-22 13:45:56 +03:00
Dmitry Stogov
168376e98e Cleanup 2018-08-21 13:21:56 +03:00
Dmitry Stogov
64f8b0185f Merge branch 'PHP-7.3'
* PHP-7.3:
  Avoid hash lookups in BIND_STATIC and BIND_LEXICAL opcode handlers. Encode static variable offset into opline->extended_value.
2018-08-20 16:11:40 +03:00
Dmitry Stogov
b8828926f2 Avoid hash lookups in BIND_STATIC and BIND_LEXICAL opcode handlers.
Encode static variable offset into opline->extended_value.
2018-08-20 16:10:09 +03:00
Xinchen Hui
a8394a9f12 Merge branch 'PHP-7.3'
* PHP-7.3:
  Update NEWS
  Update NEWS
  Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file)
2018-08-16 13:58:00 +08:00
Xinchen Hui
1ea2395712 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update NEWS
  Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file)
2018-08-16 13:57:05 +08:00
Xinchen Hui
a879f4dd22 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file)
2018-08-16 13:56:37 +08:00
Xinchen Hui
8c92442b49 Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file) 2018-08-16 13:56:20 +08:00