]> granicus.if.org Git - php/log
php
5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Tue, 16 Jul 2019 11:45:23 +0000 (13:45 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Update NEWS [ci skip]

5 years agoUpdate NEWS [ci skip]
Christoph M. Becker [Tue, 16 Jul 2019 11:44:13 +0000 (13:44 +0200)]
Update NEWS [ci skip]

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Remi Collet [Tue, 16 Jul 2019 11:00:44 +0000 (13:00 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  move NEWS entry [ci skip]

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Remi Collet [Tue, 16 Jul 2019 11:00:30 +0000 (13:00 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  move NEWS entry [ci skip]

5 years agomove NEWS entry [ci skip]
Remi Collet [Tue, 16 Jul 2019 11:00:13 +0000 (13:00 +0200)]
move NEWS entry [ci skip]

5 years agoReplace deprecated conditions by ZEND_ASSERT.
Dmitry Stogov [Tue, 16 Jul 2019 10:50:25 +0000 (13:50 +0300)]
Replace deprecated conditions by ZEND_ASSERT.

5 years agoUse ZEND_HASH_FOREACH APIs in a few more places
Nikita Popov [Tue, 16 Jul 2019 10:07:09 +0000 (12:07 +0200)]
Use ZEND_HASH_FOREACH APIs in a few more places

5 years agoSupport <?php followed by EOF
Nikita Popov [Mon, 15 Jul 2019 15:26:26 +0000 (17:26 +0200)]
Support <?php followed by EOF

This is an annoying edge-case for canonicalization.

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Tue, 16 Jul 2019 09:11:00 +0000 (11:11 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Tue, 16 Jul 2019 09:10:02 +0000 (11:10 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoFixed bug #78297
Nikita Popov [Tue, 16 Jul 2019 09:08:27 +0000 (11:08 +0200)]
Fixed bug #78297

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Remi Collet [Tue, 16 Jul 2019 08:39:24 +0000 (10:39 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  next is 7.2.22

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Remi Collet [Tue, 16 Jul 2019 08:39:03 +0000 (10:39 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  next is 7.2.22

5 years agonext is 7.2.22
Remi Collet [Tue, 16 Jul 2019 08:38:20 +0000 (10:38 +0200)]
next is 7.2.22

5 years agoFix name collisions in fputcsv tests
Nikita Popov [Tue, 16 Jul 2019 08:24:20 +0000 (10:24 +0200)]
Fix name collisions in fputcsv tests

5 years agoCanonicalize file-names in zip tests
Nikita Popov [Tue, 16 Jul 2019 08:21:38 +0000 (10:21 +0200)]
Canonicalize file-names in zip tests

There were a number of name collisions in there.

5 years agoDelay IS_UNDEF checks
Dmitry Stogov [Tue, 16 Jul 2019 08:16:45 +0000 (11:16 +0300)]
Delay IS_UNDEF checks

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Dmitry Stogov [Mon, 15 Jul 2019 22:54:22 +0000 (01:54 +0300)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fixed incorrect specialization (missed IS_INDIRECT handling)

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Dmitry Stogov [Mon, 15 Jul 2019 22:52:11 +0000 (01:52 +0300)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fixed incorrect specialization (missed IS_INDIRECT handling)

5 years agoFixed incorrect specialization (missed IS_INDIRECT handling)
Dmitry Stogov [Mon, 15 Jul 2019 22:50:10 +0000 (01:50 +0300)]
Fixed incorrect specialization (missed IS_INDIRECT handling)

5 years agoSmall typo and proto name fix
George Peter Banyard [Mon, 15 Jul 2019 16:15:17 +0000 (18:15 +0200)]
Small typo and proto name fix

Closes GH-4415

5 years agoRemove win32/php_stdbool.h
Peter Kokot [Mon, 15 Jul 2019 16:00:04 +0000 (18:00 +0200)]
Remove win32/php_stdbool.h

File usage was removed via 33fc7d77d7d0f7c85025b8aa82d62b154c4bc71f.

Closes GH-4411

5 years agoRemove unused files
Peter Kokot [Mon, 15 Jul 2019 15:58:46 +0000 (17:58 +0200)]
Remove unused files

These were introduced in 504b9beae60a45e1b1e6466e97a6bd246dfc74f6
and their usages were removed via
4b3e19802385c5874eefd3ba4565f2efbc55dc96.

Closes GH-4410

5 years agoRemove Windows syslog script and syslog.reg
Peter Kokot [Mon, 15 Jul 2019 15:57:11 +0000 (17:57 +0200)]
Remove Windows syslog script and syslog.reg

These were used on old Windows systems before Vista and also were
used together with unmaintained win32std extension.

https://docs.microsoft.com/en-us/windows/win32/eventlog/event-logging

Closes GH-4409

5 years agoRemove some *.dsp/*.dsw leftovers
Peter Kokot [Mon, 15 Jul 2019 15:55:37 +0000 (17:55 +0200)]
Remove some *.dsp/*.dsw leftovers

Usage of this was removed via 4b3e19802385c5874eefd3ba4565f2efbc55dc96

Closes GH-4408

5 years agoCombine SKIP_TOKEN+RETURN_TOKEN into one macro
Nikita Popov [Mon, 15 Jul 2019 15:29:27 +0000 (17:29 +0200)]
Combine SKIP_TOKEN+RETURN_TOKEN into one macro

5 years agoMove shebang handling into the lexer
Nikita Popov [Mon, 15 Jul 2019 14:21:46 +0000 (16:21 +0200)]
Move shebang handling into the lexer

Instead of handling shebang lines by adjusting the file pointer in
individual SAPIs, move the handling into the lexer, where this is
both a lot simpler and more robust. Whether the shebang should be
skipped is controlled by CG(skip_shebang) -- we might want to do
that in more cases.

This fixed bugs #60677 and #78066.

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 15 Jul 2019 13:20:36 +0000 (15:20 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Mon, 15 Jul 2019 13:19:43 +0000 (15:19 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoFix bug #77124
Nikita Popov [Tue, 25 Jun 2019 10:09:47 +0000 (12:09 +0200)]
Fix bug #77124

This is a backport of 6fcae63f614d1ed4aaeaff7b13a7a4627b1f1312
to PHP 7.2.

5 years agoSync mysqlnd version with PHP version
Christoph M. Becker [Mon, 15 Jul 2019 09:43:09 +0000 (11:43 +0200)]
Sync mysqlnd version with PHP version

Since mysqlnd is solely developed in the php-src repository, it makes
not much sense to have its own version number, particularly since
nobody cares to update it.  Therefore we use PHP's version number, but
stick with the "mysqlnd" prefix which can be important to distinguish
the mysqli driver (libmysqlclient vs. mysqlnd).

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Remi Collet [Mon, 15 Jul 2019 12:17:23 +0000 (14:17 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  typo [ci skip]

5 years agotypo [ci skip]
Remi Collet [Mon, 15 Jul 2019 12:17:13 +0000 (14:17 +0200)]
typo [ci skip]

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Remi Collet [Mon, 15 Jul 2019 12:11:57 +0000 (14:11 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #78269 password_hash uses weak options for argon2
  Fix #78269 password_hash uses weak options for argon2

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Remi Collet [Mon, 15 Jul 2019 12:11:38 +0000 (14:11 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

* PHP-7.2:
  Fix #78269 password_hash uses weak options for argon2

5 years agoFix #78269 password_hash uses weak options for argon2
Remi Collet [Mon, 15 Jul 2019 12:11:30 +0000 (14:11 +0200)]
Fix #78269 password_hash uses weak options for argon2

5 years agoFix #78269 password_hash uses weak options for argon2
Remi Collet [Mon, 15 Jul 2019 12:10:38 +0000 (14:10 +0200)]
Fix #78269 password_hash uses weak options for argon2

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Mon, 15 Jul 2019 11:49:29 +0000 (13:49 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoEmit T_BAD_CHARACTER for unexpected characters
Nikita Popov [Mon, 15 Jul 2019 10:51:01 +0000 (12:51 +0200)]
Emit T_BAD_CHARACTER for unexpected characters

Avoid having holes in the token stream which are annoying and
inefficient to reconstruct on the consumer side.

5 years agoFixed bug #78010
Nikita Popov [Mon, 15 Jul 2019 10:00:30 +0000 (12:00 +0200)]
Fixed bug #78010

Prevent the gc_info from becoming all zero for a registered root
by setting the top bit to one for compressed root addresses.

5 years agovectorize string-escape with NEON
Sebastian Pop [Wed, 10 Jul 2019 18:31:27 +0000 (18:31 +0000)]
vectorize string-escape with NEON

On this benchmark:
function simple_string_escape() {
    $a = "test'asd'asd'' asd\'\"asdfasdf";
    for($i=0; $i<512; $i++) {
        $a .= chr($i%256);
    }
    for ($i = 0; $i < 100000; $i++) {
        if ($a === stripslashes(addslashes($a)))
            $a .= chr($i%256);
        else {
            echo "error at i=".$i."\n";
            return;
        }
    }
}
the execution time goes from 21.619s to 8.139s (165% speedup) on an A1 Graviton instance.

When removing the characters that need escaping, i.e., this benchmark:
function simple_string() {
  $a = "testasdasd asdasdfasdf";
  for ($i = 0; $i < 10000; $i++) {
      if ($a === stripslashes(addslashes($a)))
          $a .= "test dedeasdf";
      else {
          echo "error at i=".$i."\n";
          return;
      }
  }
}
the execution time goes from 2.932s down to 0.516s (468% speedup) on an A1 Graviton instance.

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

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Mon, 15 Jul 2019 08:23:27 +0000 (10:23 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoFix bug #78291 Missing opcache directives
Andrew Collington [Sun, 14 Jul 2019 13:49:38 +0000 (14:49 +0100)]
Fix bug #78291 Missing opcache directives

New opcache directives have been added recently which are returned
if using `ini_get_all('zend opcache')` but are not listed in the
directives if using `opcache_get_configuration()`.  This fix adds
those missing directives as well as if `opcache.mmap_base` is used
instead of `opcache.lockfile_path`.  Also adds a test to ensure the
directives match with both methods of fetching.

5 years agoRemove usage of PHP_AIX_LDFLAGS
Peter Kokot [Sun, 14 Jul 2019 21:44:01 +0000 (23:44 +0200)]
Remove usage of PHP_AIX_LDFLAGS

These are currently not defined since their usage has been removed via
51ca2dba530883a8e07d6869e66ee6c5b3c978a6
and
53349d69ddf7a2ba128f0928fb3b376422611a3b

5 years agoRemove conditional calls of always available macros
Peter Kokot [Sun, 14 Jul 2019 20:24:21 +0000 (22:24 +0200)]
Remove conditional calls of always available macros

These checks were once relevant for these extensions in PECL and PHP
versions without availability of the checked macros.

Closes GH-4405

5 years agoRemove unsed zts check for sqlite3
Peter Kokot [Sun, 14 Jul 2019 19:06:15 +0000 (21:06 +0200)]
Remove unsed zts check for sqlite3

This check was relevant with bundled sqlite library. Removed via
6083a387a81dbbd66d6316a3a12a63f06d5f7109

Closes GH-4403

5 years agoRemove duplicate PTHREADS template define
Peter Kokot [Sun, 14 Jul 2019 12:45:27 +0000 (14:45 +0200)]
Remove duplicate PTHREADS template define

The undef PTHREADS converts to define if thread safety is configured.
This step is already done by pthreads m4 macros from TSRM so this now
removes duplicated PTHREADS defines from php_config.h.

5 years agoRemove timelib outdated defines
Peter Kokot [Sun, 14 Jul 2019 11:50:05 +0000 (13:50 +0200)]
Remove timelib outdated defines

- TIMELIB_OMIT_STDINT is not used anymore since
  https://github.com/derickr/timelib/commit/a171f99cf02baf39549ab7209e37565b8b8f6529
- HAVE_GETTIMEOFDAY was defined multiple times in Windows headers
- ext/date/lib/timelib_config.h.win32 does not seem to be used

Closes GH-4400

5 years agoRemove PHP_MYSQL variable
Peter Kokot [Sun, 14 Jul 2019 11:48:44 +0000 (13:48 +0200)]
Remove PHP_MYSQL variable

PHP_MYSQL variable was once defined by the ext/mysql (--with-mysql).

Closes GH-4399

5 years agoUpdate changelogs
Peter Kokot [Sat, 13 Jul 2019 13:37:36 +0000 (15:37 +0200)]
Update changelogs

- PHP-7.4 alpha, beta, RC versions already include bugs logged in the
  NEWS
- some links to RFCs
- php_error_docref0

5 years agoRemove php_multiple_shlib_versions_ok
Peter Kokot [Sat, 13 Jul 2019 13:06:35 +0000 (15:06 +0200)]
Remove php_multiple_shlib_versions_ok

Variable usage was removed via
913cec65517f11ebd972f920d1d320b853a175dd

5 years agoRemove unused recode extension artefacts
Peter Kokot [Sat, 13 Jul 2019 12:52:36 +0000 (14:52 +0200)]
Remove unused recode extension artefacts

Closes GH-4395

5 years agoRemove checks for always enabled spl and pcre
Peter Kokot [Sat, 13 Jul 2019 12:47:37 +0000 (14:47 +0200)]
Remove checks for always enabled spl and pcre

Closes GH-4397

5 years agoRemove WARNING_LEVEL fix for QNX
Peter Kokot [Sat, 13 Jul 2019 12:39:29 +0000 (14:39 +0200)]
Remove WARNING_LEVEL fix for QNX

Fix is no longer relevant since the environment variable WARNING_LEVEL
is no longer used to define the value of the -w option for cc.

Closes GH-4398

5 years agoFix #78283: no output for explicit environment
Christoph M. Becker [Sat, 13 Jul 2019 10:01:33 +0000 (12:01 +0200)]
Fix #78283: no output for explicit environment

This test does not work on Windows, if the child process has OPcache
enabled via php.ini, since TEMP is not set in the environment, so
OPcache can't find the base address file, and terminates the childs.

To avoid this (and potentially some other issues regarding missing
environment variables, such as PATH), we force the child process to
ignore any ini files.

5 years agoFix #78282: atime and mtime mismatch
Christoph M. Becker [Sat, 13 Jul 2019 07:40:50 +0000 (09:40 +0200)]
Fix #78282: atime and mtime mismatch

The fix for bug #78241 assumed that `time_t` would always be 64bit, but
actually is 32bit for x86.  We therefore enforce 64bit arithmetic to
avoid wrapping.

5 years agoConvert all php_error_docref0 to php_error_docref
George Peter Banyard [Sat, 13 Jul 2019 00:05:17 +0000 (02:05 +0200)]
Convert all php_error_docref0 to php_error_docref

Closes GH-4394

5 years agoRemove tsrm_config_common.h
Peter Kokot [Fri, 12 Jul 2019 00:57:52 +0000 (02:57 +0200)]
Remove tsrm_config_common.h

- Checks and defines are not relevant for files that include it anymore
- Some code is not used anymore
- Defines are a bit duplicated in zend_portability.h and TSRM.h file
- MAXPATHLEN defs moved to zend_virtual_cwd.h

5 years agoNo more need to cater to pre-PHP-5.3 or PHP-6 versions
Christoph M. Becker [Fri, 12 Jul 2019 16:50:54 +0000 (18:50 +0200)]
No more need to cater to pre-PHP-5.3 or PHP-6 versions

5 years agoDon't split T_INLINE_HTML at partial PHP tag
Nikita Popov [Fri, 12 Jul 2019 15:22:11 +0000 (17:22 +0200)]
Don't split T_INLINE_HTML at partial PHP tag

If <?php occurs without required trailing whitespace, we should keep
it as part of a single T_INLINE_HTML region.

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Fri, 12 Jul 2019 14:51:52 +0000 (16:51 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Fri, 12 Jul 2019 14:51:47 +0000 (16:51 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoUse TRY_ADDREF/TRY_DELREF in soap
Nikita Popov [Fri, 12 Jul 2019 14:50:43 +0000 (16:50 +0200)]
Use TRY_ADDREF/TRY_DELREF in soap

The DELREF part is a possible fix for bug #78278, the ADDREF part
is a drive-by fix.

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Fri, 12 Jul 2019 14:30:47 +0000 (16:30 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

5 years agoMerge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Fri, 12 Jul 2019 14:29:55 +0000 (16:29 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3

5 years agoFixed bug #78279
Nikita Popov [Fri, 12 Jul 2019 14:29:18 +0000 (16:29 +0200)]
Fixed bug #78279

Even if we don't initialize the callback on every request, we
should still reset our globals to default values...

5 years agoUpdate NEWS and UPGRADING wrt. ext/recode unbundling
Christoph M. Becker [Fri, 12 Jul 2019 12:35:44 +0000 (14:35 +0200)]
Update NEWS and UPGRADING wrt. ext/recode unbundling

5 years agoRemoved ext/recode
Christoph M. Becker [Fri, 12 Jul 2019 11:58:17 +0000 (13:58 +0200)]
Removed ext/recode

Cf. <https://wiki.php.net/rfc/unbundle_recode>.

5 years agoSwap implode() argument order in the test helper
Christoph M. Becker [Fri, 12 Jul 2019 11:26:54 +0000 (13:26 +0200)]
Swap implode() argument order in the test helper

5 years agoRemove duplicate XtOffsetOf() definitions in php.h
Nikita Popov [Fri, 12 Jul 2019 11:18:18 +0000 (13:18 +0200)]
Remove duplicate XtOffsetOf() definitions in php.h

These are already defined in zend_portability.h.

5 years agoRemove unused tsrm_strtok_r() function
Nikita Popov [Fri, 12 Jul 2019 11:12:56 +0000 (13:12 +0200)]
Remove unused tsrm_strtok_r() function

There is also a php_strtok_r() function, which is actually used,
but nothing uses the tsrm_strtok_r() variant...

5 years agoRemove unnecessary uses of allow_url_include in tests
Nikita Popov [Fri, 12 Jul 2019 10:43:41 +0000 (12:43 +0200)]
Remove unnecessary uses of allow_url_include in tests

5 years agoRemove unnecessary uses of restore_include_path() in tests
Nikita Popov [Fri, 12 Jul 2019 10:17:24 +0000 (12:17 +0200)]
Remove unnecessary uses of restore_include_path() in tests

5 years agoSwap implode() argument order in some tests
Nikita Popov [Fri, 12 Jul 2019 08:43:32 +0000 (10:43 +0200)]
Swap implode() argument order in some tests

5 years agoImprove bless_tests
Nikita Popov [Fri, 12 Jul 2019 08:34:49 +0000 (10:34 +0200)]
Improve bless_tests

If a string var_dump contains a wildcard, also make the length a
wildcard.

5 years agoUse common code for double math
Dmitry Stogov [Fri, 12 Jul 2019 08:40:56 +0000 (11:40 +0300)]
Use common code for double math

5 years agoRevert "Temporarily skip test"
Christoph M. Becker [Thu, 11 Jul 2019 21:33:34 +0000 (23:33 +0200)]
Revert "Temporarily skip test"

This reverts commit 4e5a717866ed18c5ee539e339e33cc71f0ac8a88.

As of commit 17f7fb76053cabe20225472debe4d1801221ef9f the test should
no longer hang.

5 years agoAllow GOTO style helpers in HYBRID VM
Dmitry Stogov [Thu, 11 Jul 2019 21:00:55 +0000 (00:00 +0300)]
Allow GOTO style helpers in HYBRID VM

5 years agoSeparate "cold" parts of comparison instructions
Dmitry Stogov [Thu, 11 Jul 2019 17:44:39 +0000 (20:44 +0300)]
Separate "cold" parts of comparison instructions

5 years agoSeparate "cold" parts of binary op instructions
Dmitry Stogov [Thu, 11 Jul 2019 15:23:08 +0000 (18:23 +0300)]
Separate "cold" parts of binary op instructions

5 years agoRemove redundant 64-bit ezmlm_hash() test
Nikita Popov [Thu, 11 Jul 2019 15:03:48 +0000 (17:03 +0200)]
Remove redundant 64-bit ezmlm_hash() test

This test is the same as the as ezmlm_hash_basic.phpt. This function
does not behave differently on 32-bit and 64-bit.

5 years agoAdd ZEND_DEP_ME macro
Nikita Popov [Thu, 11 Jul 2019 11:40:20 +0000 (13:40 +0200)]
Add ZEND_DEP_ME macro

5 years agoConvert short tag to standard tag in Zend test file
George Peter Banyard [Thu, 11 Jul 2019 14:06:41 +0000 (16:06 +0200)]
Convert short tag to standard tag in Zend test file

Closes GH-4389.

5 years agoSwitch to using shell-less proc_open() in various server tests
Nikita Popov [Mon, 1 Jul 2019 11:07:30 +0000 (13:07 +0200)]
Switch to using shell-less proc_open() in various server tests

5 years agoSupport redirect+null descriptors in proc_open
Nikita Popov [Fri, 5 Jul 2019 15:41:59 +0000 (17:41 +0200)]
Support redirect+null descriptors in proc_open

This adds support for doing something like:

    [1 => ['pipe', 'w'], 2 => ['redirect', 1]]

This will make descriptor 2 on the child end a dup'd descriptor 1.
This is mainly useful in conjunction with shell-less mode, because
we don't have an easy way to do "2>&1" there.

Additionally we support:

    [1 => ['pipe', 'w'], 2 => ['null']]

Which would be the same as a >/dev/null or >nul redirect, depending
on platform.

5 years agoDon't call Reflection::export() internally
Nikita Popov [Thu, 11 Jul 2019 12:13:05 +0000 (14:13 +0200)]
Don't call Reflection::export() internally

export() methods were implemented in a roundabout way, where they
would call Reflection::export(), which would then call __toString().
Cut out the middleman by directly calling __toString().

5 years agoMerge branch 'PHP-7.3' into PHP-7.4
Christoph M. Becker [Thu, 11 Jul 2019 11:10:41 +0000 (13:10 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4

* PHP-7.3:
  Fix #78212: Segfault in built-in webserver

5 years agoFix #78212: Segfault in built-in webserver
Christoph M. Becker [Thu, 27 Jun 2019 09:34:51 +0000 (11:34 +0200)]
Fix #78212: Segfault in built-in webserver

Since syslog's ident and facility parameters have been added to
config[1], vsyslog() segfaults on Windows, if openlog() has not been
called before.  We bring back the removed lines to fix this.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=2475337bd8a0fad0dac03db3f5e7e9d331d53653>

5 years agoInclude test name in JUnit testcase name
Nikita Popov [Thu, 11 Jul 2019 10:45:49 +0000 (12:45 +0200)]
Include test name in JUnit testcase name

Azure does not show the classname attribute in any convenient way,
and the file name is the part we usually care about.

5 years agoMake proc_open_bug64438.phpt more robust
Nikita Popov [Thu, 11 Jul 2019 10:32:57 +0000 (12:32 +0200)]
Make proc_open_bug64438.phpt more robust

The test currently assumes that we'll first read the data of
stdout and stderr and then see eof on stdout and stderr. However
we could also read stdout, see eof on stdout, read stderr and see
eof on stderr, depending on timing.

Avoid output ordering issues by collecting events into a per-pipe
array, so interleaving is not visible.

5 years agoneon vectorization for base64
Sebastian Pop [Wed, 3 Jul 2019 20:10:38 +0000 (20:10 +0000)]
neon vectorization for base64

A similar algorithm is used to vectorize on x86_64, with a good description in
https://arxiv.org/abs/1704.00605 . On AArch64 the implementation differs in that
instead of using multiplies to shift bits around, it uses the vld3+vst4 and
vld4+vst3 combinations to load and store interleaved data.  This patch is based
on the NEON implementation of Wojciech Mula:
https://github.com/WojciechMula/base64simd/blob/master/encode/encode.neon.cpp
https://github.com/WojciechMula/base64simd/blob/master/encode/lookup.neon.cpp
and
https://github.com/WojciechMula/base64simd/blob/master/encode/encode.neon.cpp
https://github.com/WojciechMula/base64simd/blob/master/encode/encode.neon.cpp
adapted to php/ext/standard/base64.c and vectorized with factor 16 instead of 8.

On a Graviton A1 instance and on the synthetic benchmarks in
https://github.com/lemire/fastbase64 I see 175% speedup on base64 encoding and
60% speedup on base64 decode compared to the scalar implementation.

The patch passes `make test` regression testing on aarch64-linux.

5 years ago[AArch64] Use crc32 instructions when available
Sebastian Pop [Wed, 1 May 2019 16:05:11 +0000 (16:05 +0000)]
[AArch64] Use crc32 instructions when available

The time goes from 0.838s down to 0.029s (a 28x speedup) on a Graviton A1
instance and the following benchmark:

function simple_crc32() {
  $a = "foo";
  for ($i = 0; $i < 10000; $i++) {
      crc32($a);
      $a .= "o".$i;
  }
}

5 years agoAdd server conflict to soap custom content type test
Nikita Popov [Thu, 11 Jul 2019 08:26:19 +0000 (10:26 +0200)]
Add server conflict to soap custom content type test

5 years agoRefactor undefining PACKAGE_* symbols
Peter Kokot [Thu, 11 Jul 2019 00:00:51 +0000 (02:00 +0200)]
Refactor undefining PACKAGE_* symbols

Instead of patching configuration headers template generated by
the given tools - autoheader, this moves patching these symbols to
the configure step before creating and invoking the config.status
and before the configuration header file is generated from the
patched template.

Closes GH-4374

5 years agoRemove TSRM/tsrm_config.w32.h
Peter Kokot [Wed, 10 Jul 2019 19:19:44 +0000 (21:19 +0200)]
Remove TSRM/tsrm_config.w32.h

The tsrm_config.w32.h file is a simple wrapper for already defined
symbols and includes elsewhere.

Closes GH-4383

5 years agoSet expectation to reduce hot code fragmentation
Dmitry Stogov [Wed, 10 Jul 2019 15:29:35 +0000 (18:29 +0300)]
Set expectation to reduce hot code fragmentation

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

5 years agoFix bug #78271
Nikita Popov [Wed, 10 Jul 2019 15:25:04 +0000 (17:25 +0200)]
Fix bug #78271

When cleaning nops in the dfa pass, we were always keeping the
smart branch inhibiting nop that occurs directly before the jump
instruction. However, as we skip unreachable blocks entirely, it
may happen that we need to keep a nop that occurs further back,
prior to the unreachable blocks. Account for that case now.

We should really do something about the smart branch situation,
this is very fragile...

5 years agoAlign segments on huge page boundary only for x86
Cyril Pascal [Wed, 10 Jul 2019 11:50:46 +0000 (12:50 +0100)]
Align segments on huge page boundary only for x86

Closes GH-4387.