]> granicus.if.org Git - php/log
php
5 years agoUpdate versions for PHP 7.4.0beta1 php-7.4.0beta1
Derick Rethans [Tue, 23 Jul 2019 08:05:05 +0000 (08:05 +0000)]
Update versions for PHP 7.4.0beta1

5 years agoUpdate NEWS for PHP 7.4.0beta1
Derick Rethans [Tue, 23 Jul 2019 08:05:05 +0000 (08:05 +0000)]
Update NEWS for PHP 7.4.0beta1

5 years agoUpdate NEWS
Peter Kokot [Tue, 23 Jul 2019 00:32:38 +0000 (02:32 +0200)]
Update NEWS

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Peter Kokot [Tue, 23 Jul 2019 00:13:54 +0000 (02:13 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Update NEWS
  Update NEWS

5 years agoUpdate NEWS
Peter Kokot [Tue, 23 Jul 2019 00:13:36 +0000 (02:13 +0200)]
Update NEWS

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Peter Kokot [Tue, 23 Jul 2019 00:13:12 +0000 (02:13 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Update NEWS

5 years agoUpdate NEWS
Peter Kokot [Tue, 23 Jul 2019 00:13:00 +0000 (02:13 +0200)]
Update NEWS

5 years agoFix FR #71885 (Allow escaping question mark placeholders)
Matteo Beccati [Mon, 22 Jul 2019 17:22:07 +0000 (19:22 +0200)]
Fix FR #71885 (Allow escaping question mark placeholders)

5 years agoRemove HAVE_OCILOBISTEMPORARY and HAVE_OCICOLLASSIGN
Peter Kokot [Sun, 21 Jul 2019 23:27:22 +0000 (01:27 +0200)]
Remove HAVE_OCILOBISTEMPORARY and HAVE_OCICOLLASSIGN

Symbols are not used in the current code.

Also remove not needed ocijdbc8 library addition and checks whcih were
removed also via b8e1d4d4e5af74a9d5a95d03adbe2b93e58301b7 so Oracle 8
is no longer supported.

Closes GH-4454

5 years agoAdd upgrading entries
Nikita Popov [Mon, 22 Jul 2019 15:56:16 +0000 (17:56 +0200)]
Add upgrading entries

[ci skip]

5 years agoAlso report errors from Zend stream reader operation
Nikita Popov [Mon, 22 Jul 2019 15:49:08 +0000 (17:49 +0200)]
Also report errors from Zend stream reader operation

5 years agoReport errors from stream read and write operations
Nikita Popov [Thu, 18 Jul 2019 13:25:59 +0000 (15:25 +0200)]
Report errors from stream read and write operations

The php_stream_read() and php_stream_write() functions now return
an ssize_t value, with negative results indicating failure. Functions
like fread() and fwrite() will return false in that case.

As a special case, EWOULDBLOCK and EAGAIN on non-blocking streams
should not be regarded as error conditions, and be reported as
successful zero-length reads/writes instead. The handling of EINTR
remains unclear and is internally inconsistent (e.g. some code-paths
will automatically retry on EINTR, while some won't).

I'm landing this now to make sure the stream wrapper ops API changes
make it into 7.4 -- however, if the user-facing changes turn out to
be problematic we have the option of clamping negative returns to
zero in php_stream_read() and php_stream_write() to restore the
old behavior in a relatively non-intrusive manner.

5 years agoSpecial-case rc=1 self-referential arrays in ReflectionReference
Nikita Popov [Mon, 22 Jul 2019 14:59:23 +0000 (16:59 +0200)]
Special-case rc=1 self-referential arrays in ReflectionReference

New fix for bug #78263. This is special-cased elsewhere in the engine,
so we need to mirror it here.

5 years agoRevert "Add ReflectionReference::getRefcount()"
Nikita Popov [Mon, 22 Jul 2019 14:49:08 +0000 (16:49 +0200)]
Revert "Add ReflectionReference::getRefcount()"

This reverts commit 428cfdd1810b17f0064b7691276f0eb92dc963b6.

5 years agocleanup gd build with system libgd - drop need to use libpng with system libgd -...
Remi Collet [Mon, 22 Jul 2019 09:47:38 +0000 (11:47 +0200)]
cleanup gd build with system libgd - drop need to use libpng with system libgd - drop need to use libjpeg with system libgd - drop need to use libXpm with system libgd - drop need to use libfreetype with system libgd - improve configure comments

5 years agoRemove HAVE_PQPUTCOPYEND
Peter Kokot [Mon, 22 Jul 2019 14:05:26 +0000 (16:05 +0200)]
Remove HAVE_PQPUTCOPYEND

Symbol is not used anywhere in the code and also Postgresql 7.x is
EOL anyway.

Closes GH-4453

5 years agoFix internals upgrading log
Peter Kokot [Mon, 22 Jul 2019 14:04:07 +0000 (16:04 +0200)]
Fix internals upgrading log

5 years agoRemove HAVE_DSA_DEFAULT_METHOD
Peter Kokot [Mon, 22 Jul 2019 14:01:25 +0000 (16:01 +0200)]
Remove HAVE_DSA_DEFAULT_METHOD

Last usage removed via 6a813634052710f3f4bf6e2e03ca1b6c7be3bcee.

Closes GH-4455

5 years agoRemove superfluous HAVE_GD_BUNDLED checks
Christoph M. Becker [Mon, 22 Jul 2019 13:10:08 +0000 (15:10 +0200)]
Remove superfluous HAVE_GD_BUNDLED checks

If we're compiling the bundled libgd, `HAVE_GD_BUNDLED` is set, so
there is no need to check for this macro again.

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 22 Jul 2019 10:41:15 +0000 (12:41 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoRemove test for bug #77185
Nikita Popov [Mon, 22 Jul 2019 10:40:26 +0000 (12:40 +0200)]
Remove test for bug #77185

Seems to be very unreliable in CI.

5 years agoMerge branch 'PHP-7.4' of git.php.net:/php-src into PHP-7.4
Nikita Popov [Mon, 22 Jul 2019 10:29:00 +0000 (12:29 +0200)]
Merge branch 'PHP-7.4' of git.php.net:/php-src into PHP-7.4

5 years agoDrop superfluous ENABLE_GD_TTF
Christoph M. Becker [Sun, 21 Jul 2019 15:28:49 +0000 (17:28 +0200)]
Drop superfluous ENABLE_GD_TTF

If we `HAVE_LIBFREETYPE`, we define `ENABLE_GD_TTF` if it is not
defined.  Therefore we can check for `HAVE_LIBFREETYPE` in the first
place.

5 years agoAdd deprecations to UPGRADING
Nikita Popov [Mon, 22 Jul 2019 09:53:50 +0000 (11:53 +0200)]
Add deprecations to UPGRADING

5 years agoDeprecate unbinding $this from non-static closure
Nikita Popov [Fri, 12 Jul 2019 10:53:09 +0000 (12:53 +0200)]
Deprecate unbinding $this from non-static closure

5 years agoDeprecate allow_url_include
Nikita Popov [Fri, 12 Jul 2019 10:42:32 +0000 (12:42 +0200)]
Deprecate allow_url_include

5 years agoDeprecate restore_include_path()
Nikita Popov [Fri, 12 Jul 2019 10:20:41 +0000 (12:20 +0200)]
Deprecate restore_include_path()

5 years agoDeprecate convert_cyr_string()
Nikita Popov [Fri, 12 Jul 2019 10:14:02 +0000 (12:14 +0200)]
Deprecate convert_cyr_string()

5 years agoDeprecate (real) cast
Nikita Popov [Fri, 12 Jul 2019 10:09:50 +0000 (12:09 +0200)]
Deprecate (real) cast

5 years agoDeprecate implode() with swapped parameter order
Nikita Popov [Fri, 12 Jul 2019 08:31:16 +0000 (10:31 +0200)]
Deprecate implode() with swapped parameter order

5 years agoDeprecate FILTER_SANITIZE_MAGIC_QUOTES
Nikita Popov [Fri, 12 Jul 2019 08:21:21 +0000 (10:21 +0200)]
Deprecate FILTER_SANITIZE_MAGIC_QUOTES

5 years agoDeprecate is_real() function
Nikita Popov [Thu, 11 Jul 2019 15:18:01 +0000 (17:18 +0200)]
Deprecate is_real() function

5 years agoDeprecate money_format()
Nikita Popov [Thu, 11 Jul 2019 15:12:08 +0000 (17:12 +0200)]
Deprecate money_format()

5 years agoDeprecate hebrevc()
Nikita Popov [Thu, 11 Jul 2019 15:06:54 +0000 (17:06 +0200)]
Deprecate hebrevc()

5 years agoDeprecate ezmlm_hash()
Nikita Popov [Thu, 11 Jul 2019 15:04:36 +0000 (17:04 +0200)]
Deprecate ezmlm_hash()

5 years agoDeprecate encoding as 3rd param to mb_strrpos()
Nikita Popov [Thu, 11 Jul 2019 15:02:04 +0000 (17:02 +0200)]
Deprecate encoding as 3rd param to mb_strrpos()

5 years agoDeprecate Reflection export() methods
Nikita Popov [Thu, 11 Jul 2019 11:41:10 +0000 (13:41 +0200)]
Deprecate Reflection export() methods

And remove the Reflector::export() interface method.

5 years agoDeprecate array_key_exists() on objects
Nikita Popov [Thu, 11 Jul 2019 11:35:44 +0000 (13:35 +0200)]
Deprecate array_key_exists() on objects

5 years agoDeprecate get_magic_quotes_gpc() and get_magic_quotes_runtime()
Nikita Popov [Thu, 11 Jul 2019 11:32:10 +0000 (13:32 +0200)]
Deprecate get_magic_quotes_gpc() and get_magic_quotes_runtime()

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 22 Jul 2019 09:19:24 +0000 (11:19 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoReduce number of workers in test
Nikita Popov [Mon, 22 Jul 2019 09:18:38 +0000 (11:18 +0200)]
Reduce number of workers in test

4 seems to be enough to reliably reproduce the issue. Let's see
if this works better in CI.

5 years agoInitialize static_members_table
Dmitry Stogov [Mon, 22 Jul 2019 09:02:16 +0000 (12:02 +0300)]
Initialize static_members_table

5 years agoEvaluate constant in class scope
Dmitry Stogov [Mon, 22 Jul 2019 08:59:24 +0000 (11:59 +0300)]
Evaluate constant in class scope

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 22 Jul 2019 08:34:32 +0000 (10:34 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoPrevent use after free in fpm_event_epoll_wait
Maksim Nikulin [Wed, 23 Jan 2019 05:19:29 +0000 (12:19 +0700)]
Prevent use after free in fpm_event_epoll_wait

epoll event backend does not guarantee that child input/output events
are reported before SIGCHILD due to finished worker. While a bunch of
events received by epoll is being processed, child-related structures
may be removed before dispatching of an I/O event for the same child.
The result may be attempt to access to memory region allocated for
another purpose, segfault of the master process, and unavailable web
sites.

Postpone processing of SIGCHILD events till other events in the same
bunch are processed.

Fix Bug #62418 php-fpm master process crashes
Fix Bug #65398 Race condition between SIGCHLD and child stdout/stderr event leads to segfault
Fix Bug #75112 php-fpm crashing, hard to reproduce
Fix Bug #77114 php-fpm master segfaults in fpm_event_epoll_wait/fpm_event_fire
Fix Bug #77185 Use-after-free in FPM master event handling

5 years agoimprove temporary fix for system libgd
Remi Collet [Mon, 22 Jul 2019 07:11:32 +0000 (09:11 +0200)]
improve temporary fix for system libgd

- PHP_GD_PNG needed to set include path for png.h
- PHP_GD_JPEG needed to set include path for jpeglib.h

5 years agoRemove build.mk usage
Peter Kokot [Sun, 21 Jul 2019 09:40:23 +0000 (11:40 +0200)]
Remove build.mk usage

First step when creating the `configure` script is currently using
make. This is helpful when developing buildsystem to only rebuild
`configure` and `main/php_config.h.in` files when one of the *.m4
or configure.ac file changes and saves the developer time a little.

Realistically however, it is not needed that much considering the
times of several seconds to fully rebuild the configure script and
configuration header. The next step when running the `configure`
script is much more time consuming so performance on buildconf
level is a bit questionable and won't be noticed on today's
systems.

Additionally:
- buildconf now removes cache and all targets and uses -f option on
  the first step i.e. autoconf. The autoheader does not need the -f
  option in this case.

Closes GH-4437

5 years agoRemove some unused HAVE_* symbols
Peter Kokot [Sun, 21 Jul 2019 09:34:18 +0000 (11:34 +0200)]
Remove some unused HAVE_* symbols

- HAVE_NET_SNMP removed via cab643f615d4f592778b7234dabed772d5d66866
- HAVE_CRYPTO_AEAD_AES256GCM ad120c5ae93b49aeb4661b84f981beda2b31cde8
- Remove HAVE_FREETDS and HAVE_LIBDNET_STUB (not used in current
  extension; copy paste from other removed extensions)

Closes GH-4448

5 years agoRemove HAVE_LIBZIP
Peter Kokot [Sun, 21 Jul 2019 09:31:23 +0000 (11:31 +0200)]
Remove HAVE_LIBZIP

The libzip library is now always used from the system.

Closes GH-4450

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
George Wang [Sun, 21 Jul 2019 04:01:39 +0000 (00:01 -0400)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
George Wang [Sun, 21 Jul 2019 04:01:06 +0000 (00:01 -0400)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoChecked in LiteSpeed SAPI 7.5, addressed two main problems in "clean shutdown" introd...
George Wang [Sun, 21 Jul 2019 03:59:43 +0000 (23:59 -0400)]
Checked in LiteSpeed SAPI 7.5, addressed two main problems in "clean shutdown" introduced in 7.4.3,
1. falls in an infinite loop because PHP engine's inconsistent state, now override the ITIMER_PROF to 0.1 second, clean shutdown must finish before that.
2. generate too much error log, we completely disable "error_reporting" before calling php_request_shutdown().

5 years agoRenamed MySQLi test to remove duplicate 'mysqli_'
George Peter Banyard [Sat, 20 Jul 2019 23:10:31 +0000 (01:10 +0200)]
Renamed MySQLi test to remove duplicate 'mysqli_'

Closes GH-4441

5 years agoFix typos
Markus Staab [Sat, 20 Jul 2019 23:01:36 +0000 (01:01 +0200)]
Fix typos

Closes GH-4447

5 years agoFix failed tests for phar
Peter Kokot [Sat, 20 Jul 2019 22:49:35 +0000 (00:49 +0200)]
Fix failed tests for phar

- when $status is boolean, E_NOTICE appears and tests fail
- opcache is never enabled on these tests anyway.
- Add opcache.revalidate_freq=0 to testing script

  Instead of checking this in the tests files it can be used directly in
  the main testing script. Also this fixes failed tests.

- Use opcache_invalidate() instead of sleep() delay in some tests. Some
  delays are still used since the opcache_invalidate seems to be buggy
  and not working as expected.

Closes GH-4392

5 years agoMove HAVE_SQLITE3_CLOSE_V2 to pdo_sqlite
Peter Kokot [Sat, 20 Jul 2019 22:40:59 +0000 (00:40 +0200)]
Move HAVE_SQLITE3_CLOSE_V2 to pdo_sqlite

Closes GH-4444

5 years agoFixed bug #78314 (missing freetype support/functions with external gd)
Remi Collet [Sat, 20 Jul 2019 05:57:13 +0000 (07:57 +0200)]
Fixed bug #78314 (missing freetype support/functions with external gd)

5 years agoRemove unused sqlite symbols
Peter Kokot [Fri, 19 Jul 2019 22:27:10 +0000 (00:27 +0200)]
Remove unused sqlite symbols

- HAVE_SQLITE3_KEY is no longer used in php-src
- SQLITE_ENABLE_COLUMN_METADATA is no longer used in php-src

Closes GH-4443

5 years agoFix typos in FFI
Peter Kokot [Fri, 19 Jul 2019 21:07:04 +0000 (23:07 +0200)]
Fix typos in FFI

Closes GH-4438

5 years agoPut oniguruma include path to proper CFLAGS
Christoph M. Becker [Fri, 19 Jul 2019 18:03:41 +0000 (20:03 +0200)]
Put oniguruma include path to proper CFLAGS

5 years agoMove Oniguruma related config stuff to where it belongs
Christoph M. Becker [Fri, 19 Jul 2019 17:27:23 +0000 (19:27 +0200)]
Move Oniguruma related config stuff to where it belongs

Oniguruma is exclusively used by ext/mbstring, and only if mbregex is
enabled.  Therefore it is unnecessary and confusing to have Oniguruma
related config stuff scattered elsewhere.

While we're at it, we also remove the referral to the bundled libonig
which is removed as of PHP 7.4.0, and the duplicated call to
`PHP_INSTALL_HEADERS()`.

5 years agoMerge Linux & Windows fwrite test
Nikita Popov [Fri, 19 Jul 2019 08:58:00 +0000 (10:58 +0200)]
Merge Linux & Windows fwrite test

The test files are the same, just with a different OS check...

5 years agoUse run-time cache to avoid repeatable hash lookups in ZEND_DECLARE_CLASS_DELAYED
Dmitry Stogov [Fri, 19 Jul 2019 08:46:03 +0000 (11:46 +0300)]
Use run-time cache to avoid repeatable hash lookups in ZEND_DECLARE_CLASS_DELAYED

5 years agoDeprecate alternative array access syntax
rjhdby [Wed, 13 Mar 2019 10:51:31 +0000 (13:51 +0300)]
Deprecate alternative array access syntax

RFC: https://wiki.php.net/rfc/deprecate_curly_braces_array_access

5 years agoUse run-time cache to avoid repeatable hash lookups when creating anonymous functions...
Dmitry Stogov [Fri, 19 Jul 2019 07:43:49 +0000 (10:43 +0300)]
Use run-time cache to avoid repeatable hash lookups when creating anonymous functions and classes

5 years agoZEND_DECLARE_ANON_CLASS doesn't need to skip anything now. It's immediatelly followed...
Dmitry Stogov [Fri, 19 Jul 2019 07:09:26 +0000 (10:09 +0300)]
ZEND_DECLARE_ANON_CLASS doesn't need to skip anything now. It's immediatelly followed by ZEND_NEW.

5 years agoRemove safe_mode directive when installing ext/phar
Peter Kokot [Thu, 18 Jul 2019 22:02:12 +0000 (00:02 +0200)]
Remove safe_mode directive when installing ext/phar

Closes GH-4436

5 years agoMerge common code
Dmitry Stogov [Thu, 18 Jul 2019 13:46:25 +0000 (16:46 +0300)]
Merge common code

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Thu, 18 Jul 2019 12:42:20 +0000 (14:42 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Thu, 18 Jul 2019 12:41:22 +0000 (14:41 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoFixed bug #77946
Abyr Valg [Wed, 17 Jul 2019 18:46:40 +0000 (21:46 +0300)]
Fixed bug #77946

Save multi_info_read() result into easy handle.

5 years agoRemove remaining lightnings from run-tests.php
Christoph M. Becker [Thu, 18 Jul 2019 10:12:41 +0000 (12:12 +0200)]
Remove remaining lightnings from run-tests.php

The classic Windows console only supports the Unicode BMP, so it can't
handle the LIGHTNING MOOD character (U+1F5F2).  It also seems that
common fonts do not support the LIGHTNING (U+2607) character, so a
general removal is appropriate.

However, Windows is already "ready for the future"[1], but PHP for
Windows is not (yet).

[1] <https://devblogs.microsoft.com/commandline/windows-command-line-unicode-and-utf-8-output-text-buffer/>

5 years agoRemove duplicate socklen_t check
Peter Kokot [Thu, 18 Jul 2019 10:11:19 +0000 (12:11 +0200)]
Remove duplicate socklen_t check

- Use Autoconf's default AC_CHECK_TYPES

Closes GH-4418

5 years agoRemove lightning
Nikita Popov [Thu, 18 Jul 2019 09:15:44 +0000 (11:15 +0200)]
Remove lightning

Windows is not quite ready for the future.

5 years agoConvert E_STRICT into E_NOTICE for htmlentities() function
George Peter Banyard [Sun, 14 Jul 2019 19:47:01 +0000 (21:47 +0200)]
Convert E_STRICT into E_NOTICE for htmlentities() function

5 years agoUpdate NEWS and UPGRADING wrt. opcache.cache_id [ci skip]
Christoph M. Becker [Thu, 18 Jul 2019 07:16:56 +0000 (09:16 +0200)]
Update NEWS and UPGRADING wrt. opcache.cache_id [ci skip]

5 years agoUse regedit to register event source
Christoph M. Becker [Thu, 18 Jul 2019 07:06:10 +0000 (09:06 +0200)]
Use regedit to register event source

ext/win32std is unmaintained for years, so it is highly unlikely that
it is available.  We therefore use regedit instead to register the
event source.  We also remove the bundled syslog.reg, since it is of no
use, unless generated for the respective installation.

5 years agoUpdate changelogs
Peter Kokot [Thu, 18 Jul 2019 00:27:14 +0000 (02:27 +0200)]
Update changelogs

5 years agoFix typo
Peter Kokot [Thu, 18 Jul 2019 00:23:39 +0000 (02:23 +0200)]
Fix typo

5 years agoRemove unused defines
Peter Kokot [Thu, 18 Jul 2019 00:21:39 +0000 (02:21 +0200)]
Remove unused defines

Used in php-src the past and today removed and not used anymore:
- HAVE_CURL_EASY_STRERROR
- HAVE_CURL_MULTI_STRERROR
- HAVE_NEW_MIME2TEXT
- HAVE_MBSTR_CN
- HAVE_MBSTR_JA
- HAVE_MBSTR_KR
- HAVE_MBSTR_RU
- HAVE_MBSTR_TW

Part of oniguruma which doesn't use these anymore
- NOT_RUBY
- HAVE_STDARG_PROTOTYPES

Unused:
- HAVE_MPIR

Closes GH-4427

5 years agoUpdate changelog
Peter Kokot [Thu, 18 Jul 2019 00:18:14 +0000 (02:18 +0200)]
Update changelog

5 years agoRemove unused MISSING_MSGHDR_MSGFLAGS
Peter Kokot [Thu, 18 Jul 2019 00:17:14 +0000 (02:17 +0200)]
Remove unused MISSING_MSGHDR_MSGFLAGS

Closes GH-4426

5 years agoRemove duplicate AC_PROG_CPP call
Peter Kokot [Thu, 18 Jul 2019 00:14:31 +0000 (02:14 +0200)]
Remove duplicate AC_PROG_CPP call

AC_PROG_CPP is already called in configure.ac.

Closes GH-4425

5 years agoUpdate changelog
Peter Kokot [Thu, 18 Jul 2019 00:13:13 +0000 (02:13 +0200)]
Update changelog

5 years agoRemove unused HAVE_SHM_MMAP_ZERO and HAVE_SHM_MMAP_FILE
Peter Kokot [Thu, 18 Jul 2019 00:11:19 +0000 (02:11 +0200)]
Remove unused HAVE_SHM_MMAP_ZERO and HAVE_SHM_MMAP_FILE

Closes GH-4424

5 years agoAllow multiple cache instances per user/host on Windows
Christoph M. Becker [Tue, 16 Jul 2019 19:14:57 +0000 (21:14 +0200)]
Allow multiple cache instances per user/host on Windows

Formerly, there was at most a single OPcache instance per user and the
so called system ID (which is determined from the PHP version).
Sometimes multiple OPcaches might be desired, though, particularly for
unrelated CLI scripts, which may even be necessary (e.g. for our test
suite in parallel mode).

We therefore introduce a new INI directive `opcache.cache_id` which
allows to configure independent OPcache instances for the same user.

We also use `GetUserNameW()` instead of `php_win32_get_username()`,
because the latter retrieves the user name encoded in the
`default_charset`, which can obviously yield different results for
different charsets, leading to OPcache "incompatibilities".  Slightly
worse, some characters may not even be encodeable in the
`default_charset` and would be replaced by question marks, which could
result in different users sharing the same OPcache.

We also refactor, and re-use existing APIs to avoid duplicated code.

5 years agoRevert "Remove Windows syslog script and syslog.reg"
Christoph M. Becker [Wed, 17 Jul 2019 17:25:36 +0000 (19:25 +0200)]
Revert "Remove Windows syslog script and syslog.reg"

This reverts commit cc44bad1f6ded6a62c9bbe4d145b5b418aa775f4, since its
assumptions were not correct.  Actually, the classic event logging is
still used by PHP, because Windows 7 is still to be supported for a
while.  Without the respective registry entries, the event log entries
show an error message regarding missing ID descriptions.

Thanks to ab@php.net for hinting at this!

Obviously, the part depending on ext/win32std has still to be
overhauled, and further improvements are conceivable; we will address
this in due course.

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Wed, 17 Jul 2019 13:59:22 +0000 (15:59 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Wed, 17 Jul 2019 13:59:05 +0000 (15:59 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoFixed bug #69100
Nikita Popov [Wed, 17 Jul 2019 13:58:29 +0000 (15:58 +0200)]
Fixed bug #69100

5 years agoAvoid duplicate fstat() for includes
Nikita Popov [Wed, 17 Jul 2019 12:43:53 +0000 (14:43 +0200)]
Avoid duplicate fstat() for includes

By adding a flag to avoid forced fstat for includes. The two fstats
will happen back to back and we don't care about a possible
invalidation.

I was hoping to move this higher up in the stack and make the
ISREG check somewhere in fsizer of fixup, but this doesn't really
seem to be possible. E.g. an FP stdin handle will not be a regular
file but of course needs to be allowed. Additionally custom stream
wrappers may not implement this functionality.

5 years agoAvoid extra specialization for cold opcodes
Dmitry Stogov [Wed, 17 Jul 2019 11:03:48 +0000 (14:03 +0300)]
Avoid extra specialization for cold opcodes

5 years agoUse reported fstat filesize for PHP streams
Nikita Popov [Wed, 17 Jul 2019 09:56:00 +0000 (11:56 +0200)]
Use reported fstat filesize for PHP streams

5 years agoRevert "Avoid unused fstat() call"
Nikita Popov [Wed, 17 Jul 2019 09:49:10 +0000 (11:49 +0200)]
Revert "Avoid unused fstat() call"

This reverts commit 5a90dc77b8f244f603082aea022fadc0ce2c009c.

Let's try to go with the reverse direction here and actually trust
the reported size...

5 years agoAvoid unused fstat() call
Nikita Popov [Wed, 17 Jul 2019 09:01:57 +0000 (11:01 +0200)]
Avoid unused fstat() call

If we're including a file via PHP streams, we're not going to trust
the reported file size anyway and populate in a loop -- so don't
bother determining the file size in the first place. Only do this
for non-tty HANDLE_FP now, which is the only case where this
information was used.

5 years agoRemove old hack
Dmitry Stogov [Wed, 17 Jul 2019 09:05:23 +0000 (12:05 +0300)]
Remove old hack

5 years agoAvoid double buffering in Zend streams
Nikita Popov [Wed, 17 Jul 2019 08:20:06 +0000 (10:20 +0200)]
Avoid double buffering in Zend streams

Disable buffering in PHP streams, to avoid storing and copying the
file contents twice.

This will call stream_set_option() on custom stream wrapper as
well, so the method needs to be implemented to avoid a warning.

5 years agoAdded specialization for comparison instructions and QM_ASSIGN
Dmitry Stogov [Wed, 17 Jul 2019 06:12:01 +0000 (09:12 +0300)]
Added specialization for comparison instructions and QM_ASSIGN

5 years agoFix typo
Peter Kokot [Wed, 17 Jul 2019 01:54:54 +0000 (03:54 +0200)]
Fix typo

5 years agoSimplify functions checks in m4
Peter Kokot [Wed, 17 Jul 2019 01:50:47 +0000 (03:50 +0200)]
Simplify functions checks in m4

- AC_CHECK_FUNCS already automatically defines belonging HAVE_function
  symbols and executes given shell code.