Nikita Popov
2e56e14e39
Swap implode() argument order in some tests
2019-07-12 12:54:10 +02:00
Nikita Popov
9a274de4f4
Improve bless_tests
...
If a string var_dump contains a wildcard, also make the length a
wildcard.
2019-07-12 12:54:01 +02:00
Dmitry Stogov
0793af0673
Use common code for double math
2019-07-12 11:40:56 +03:00
Christoph M. Becker
d0d02ecc4e
Revert "Temporarily skip test"
...
This reverts commit 4e5a717866
.
As of commit 17f7fb7605
the test should
no longer hang.
2019-07-11 23:33:34 +02:00
Dmitry Stogov
350f2212ff
Allow GOTO style helpers in HYBRID VM
2019-07-12 00:00:55 +03:00
Dmitry Stogov
ef1a1a0698
Separate "cold" parts of comparison instructions
2019-07-11 20:44:39 +03:00
Dmitry Stogov
be94c0c3c6
Separate "cold" parts of binary op instructions
2019-07-11 18:23:08 +03:00
Nikita Popov
59852c0321
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.
2019-07-11 17:09:18 +02:00
Nikita Popov
cbda1b1c6a
Add ZEND_DEP_ME macro
2019-07-11 17:09:03 +02:00
George Peter Banyard
e6c2b28865
Convert short tag to standard tag in Zend test file
...
Closes GH-4389.
2019-07-11 16:20:05 +02:00
Nikita Popov
17f7fb7605
Switch to using shell-less proc_open() in various server tests
2019-07-11 15:48:10 +02:00
Nikita Popov
6285bb52fa
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.
2019-07-11 15:48:10 +02:00
Nikita Popov
42cac9d7d7
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().
2019-07-11 14:14:55 +02:00
Christoph M. Becker
17997a908d
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #78212 : Segfault in built-in webserver
2019-07-11 13:11:08 +02:00
Christoph M. Becker
fa65f5ecf5
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 >
2019-07-11 13:09:54 +02:00
Nikita Popov
c02dfddda3
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.
2019-07-11 12:46:56 +02:00
Nikita Popov
d20fc5a192
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.
2019-07-11 12:46:56 +02:00
Sebastian Pop
3b73c9fb86
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.
2019-07-11 12:04:29 +03:00
Sebastian Pop
2a535a9707
[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;
}
}
2019-07-11 10:29:45 +02:00
Nikita Popov
ba8c4894d8
Add server conflict to soap custom content type test
2019-07-11 10:26:53 +02:00
Peter Kokot
a6daded1a4
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
2019-07-11 02:00:51 +02:00
Peter Kokot
d63fdced2e
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
2019-07-10 21:19:44 +02:00
Dmitry Stogov
0e3d4911fa
Set expectation to reduce hot code fragmentation
2019-07-10 18:29:35 +03:00
Nikita Popov
a54ee8a947
Merge branch 'PHP-7.3' into PHP-7.4
2019-07-10 17:28:37 +02:00
Nikita Popov
e7a83ec8df
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...
2019-07-10 17:25:40 +02:00
Cyril Pascal
6791107319
Align segments on huge page boundary only for x86
...
Closes GH-4387.
2019-07-10 15:19:24 +02:00
Nikita Popov
ee18687f97
Merge branch 'PHP-7.3' into PHP-7.4
2019-07-10 13:10:07 +02:00
Nikita Popov
3fa9f9cfae
Add CONFLICTS to recognized sections
...
It does nothing on 7.3, but this makes it easier to write tests in
3rd party extensions.
2019-07-10 13:09:06 +02:00
Nikita Popov
07bbc54658
Fix file collisions in phar tests
2019-07-10 12:55:40 +02:00
Nikita Popov
852e35317d
Additional fix for mysqli_fork test
2019-07-10 12:42:17 +02:00
Nikita Popov
c42b7dd6d3
Throw notice on array access on illegal type
...
No notice is thrown for list() accesses, because we did not come
to an agreement regarding patterns like
while ([$key, $value] = yield $it->next()) { ... }
where silent null access may be desirable.
No effort is made to suppress multiple notices in access chains
likes $x[0][0][0], because the technical complexity this causes
does not seem worthwhile.
RFC: https://wiki.php.net/rfc/notice-for-non-valid-array-container
2019-07-10 12:02:14 +02:00
Nikita Popov
a63422029e
Fix invalid array access in mysqli_fork test
2019-07-10 11:59:27 +02:00
Dmitry Stogov
d57d74b271
Reduce cost for references to strings and resources
2019-07-10 12:27:59 +03:00
Nikita Popov
2bca35eacc
Rename support_strings to !is_list
...
In preparation for more behavior that depends on whether it it is
a list() access. Using support_strings for that would be
confusing.
2019-07-10 11:10:17 +02:00
Nikita Popov
0c450967e1
Simplify two unserialize() tests
...
unserialize() returns false for these now, so it doesn't make sense
to try and do something with the result.
2019-07-10 11:09:54 +02:00
Nikita Popov
a207b3574b
Fix iteration limits in SXE test
...
Test doesn't look like it's specifically testing out of bounds
access, just two different iteration patterns, so make sure the
limits are correct.
2019-07-10 11:09:47 +02:00
Nikita Popov
9d82a01d01
Clean up DateTimeZone::getLocation() test
...
And avoid invalid array access.
2019-07-10 11:09:41 +02:00
Nikita Popov
dfe5fd2a37
Avoid invalid array access in fcgi.inc
2019-07-10 11:09:34 +02:00
Remi Collet
db0eaa8cf1
improve libargon2/libsodium compatibility
2019-07-10 09:00:41 +02:00
Peter Kokot
48abed7fd8
Use e.g. instead of less common f.e. [ci skip]
2019-07-09 17:53:46 +02:00
Sara Golemon
f65956e4fb
Relax argon2 mem_cost down to 64k, bump time_cost to 4
2019-07-09 11:36:48 -04:00
David Carlier
aa0e29a668
CGI: Fix memory leak on error paths
2019-07-09 16:19:41 +02:00
Dmitry Stogov
8f0c87e1b6
Avoid unintended inlining
2019-07-09 14:01:48 +03:00
Nikita Popov
ba05b2c6b0
Merge branch 'PHP-7.3' into PHP-7.4
2019-07-09 11:05:54 +02:00
Nikita Popov
825f47564a
Merge branch 'PHP-7.2' into PHP-7.3
2019-07-09 11:05:18 +02:00
Nikita Popov
22ed362810
Revert "Fixed bug #76980 "
...
This reverts commit 35353dc49a
.
This changes causes issues for Symfony, see
https://github.com/symfony/symfony/issues/32395 . I'm reverting it
from PHP 7.2 and PHP 7.3 and only leaving it in PHP 7.4.
2019-07-09 11:04:16 +02:00
Derick Rethans
432ad35b55
Merge remote-tracking branch 'origin/PHP-7.4' into PHP-7.4
2019-07-09 09:14:01 +01:00
Christoph M. Becker
726c07e9af
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Upgrade to SQLite 3.28.0
2019-07-09 10:08:09 +02:00
Christoph M. Becker
7404d756e9
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Upgrade to SQLite 3.28.0
2019-07-09 10:04:41 +02:00
Christoph M. Becker
40f7533cc1
Merge branch 'PHP-7.1' into PHP-7.2
...
* PHP-7.1:
Upgrade to SQLite 3.28.0
2019-07-09 10:02:47 +02:00