1
0
mirror of https://github.com/php/php-src.git synced 2026-04-28 10:43:30 +02:00
Commit Graph

131659 Commits

Author SHA1 Message Date
Arnaud Le Blanc bdd782e267 Merge branch 'PHP-8.2'
* PHP-8.2:
  Remove xfail from tests that do not fail anymore (#10871)
2023-03-17 18:15:03 +01:00
Arnaud Le Blanc d87b670544 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Remove xfail from tests that do not fail anymore (#10871)
2023-03-17 18:13:31 +01:00
Arnaud Le Blanc 53763e14b7 Remove xfail from tests that do not fail anymore (#10871) 2023-03-17 18:12:51 +01:00
Niels Dossche ac9964502c Fix GH-10634: Lexing memory corruption (#10866)
We're not relying on re2c's bounds checking mechanism because
re2c:yyfill:check = 0; is set. We just return 0 if we read over the end
of the input in YYFILL. Note that we used to use the "any character"
wildcard in the comment regexes.
But that means if we go over the end in the comment regexes,
we don't know that and it's just like the 0 bytes are part of the token.
Since a 0 byte already is considered as an end-of-file, we can just block
those in the regex.

For the regexes with newlines, I had to not only include \x00 in the
denylist, but also \n and \r because otherwise it would greedily match
those and let the single-line comment run over multiple lines.
2023-03-17 17:09:14 +01:00
Niels Dossche 4da0da7f2d Implement GH-10854: TSRM should set a smarter value for expected_threads (#10867)
The tsrm_startup() function is currently always called with expected_threads = 1.
This means that the hashtable used in the TSRM will only contain a single bucket,
and all thread resources will therefore be in the same linked list.
So it's not really a hashtable right now, even though it's supposed to be.

This patch adds a function tsrm_startup_ex() which takes the expected
thread count as an argument. It also keeps the tsrm_startup() function
so there are no BC breaks.

In the Apache SAPI we query how many threads we have, and pass that to
the tsrm_startup_ex() function.
2023-03-17 17:08:47 +01:00
Jakub Zelenka 31ccfbd6f6 Merge branch 'PHP-8.2' 2023-03-17 14:57:14 +00:00
Jakub Zelenka 4ac12006ae Merge branch 'PHP-8.1' into PHP-8.2 2023-03-17 14:56:45 +00:00
Jakub Zelenka 7d987ebbbf Fix FPM tester $scriptName logic 2023-03-17 14:55:51 +00:00
Jakub Zelenka 856925ccb4 Merge branch 'PHP-8.2' 2023-03-17 10:45:49 +00:00
Jakub Zelenka e9bbddcdaf Merge branch 'PHP-8.1' into PHP-8.2 2023-03-17 10:45:14 +00:00
Jakub Zelenka 38d2e7ea9a Test FPM FCGI envs with path info fix for Apache proxy pass 2023-03-17 10:42:16 +00:00
Jakub Zelenka 8cf621e0e4 Test FPM FCGI envs with path info fix for Apache proxy handler 2023-03-17 10:42:16 +00:00
Jakub Zelenka b53b0ac2ea Test FPM FCGI envs with path info fix for Apache proxy balancer 2023-03-17 10:42:15 +00:00
Jakub Zelenka 92d2cd5cb8 Test FPM FCGI envs without path info fix for custom source 2023-03-17 10:42:15 +00:00
Jakub Zelenka 3125155b5d Add extra option to FPM tester for handling script filename 2023-03-17 10:42:14 +00:00
Tony Su d835de1993 [zend_hash]: Use AVX2 instructions for better code efficiency (#10858)
We prefer to use AVX2 instructions for code efficiency improvement
1) Reduce instruction path length
   Generic x86 Instr: 16, SSE2: 6, AVX2: 4
2) Better ICache locality and density

To enable AVX2 instructions, compile with '-mavx2' option via CFLAGS
environment variable or command line argument.

Note: '-mavx' option still leads to using SSE2 instructions.
      _mm256_cmpeq_epi64() requires AVX2 (-mavx2).

Testing:
    Build with and without '-mavx2', 'make TEST_PHP_ARGS=-j8 test'
    presented the same test report.

Signed-off-by: Tony Su <tao.su@intel.com>
2023-03-17 10:54:13 +01:00
Ilija Tovilo cd0c6bc74b Merge branch 'PHP-8.2'
* PHP-8.2:
  Windows CI log verbosity, CI bat file guard
2023-03-16 00:05:36 +01:00
Ilija Tovilo 40ae629462 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Windows CI log verbosity, CI bat file guard
2023-03-16 00:05:21 +01:00
Michael Voříšek f42e56286a Windows CI log verbosity, CI bat file guard
Closes GH-10817
2023-03-16 00:04:53 +01:00
David CARLIER feb82d91b9 pgsql_insert fix unit tests (#10860) 2023-03-15 22:57:25 +00:00
Ilija Tovilo 5ef46020b6 Merge branch 'PHP-8.2'
* PHP-8.2:
  Another attempt to fix MSAN nightly on master
2023-03-15 23:38:22 +01:00
Ilija Tovilo 6343975f34 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Another attempt to fix MSAN nightly on master
2023-03-15 23:38:09 +01:00
Ilija Tovilo 471105abd7 Another attempt to fix MSAN nightly on master 2023-03-15 23:37:36 +01:00
Niels Dossche c822c2dddd Merge branch 'PHP-8.2'
* PHP-8.2:
  Remove CTE flag from array_diff_ukey(), which was added by mistake
  Fix missing and inconsistent error check on SQLAllocHandle
2023-03-15 21:47:34 +01:00
Michael Voříšek 5239f9fc86 Remove CTE flag from array_diff_ukey(), which was added by mistake
This was accidentally added in GH-7780, but since it takes a callable
argument, this flag is useless on this function.

Closes GH-10859.
2023-03-15 21:40:11 +01:00
Niels Dossche ff2f882c09 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix missing and inconsistent error check on SQLAllocHandle
2023-03-15 21:38:12 +01:00
nielsdos c4c8d6ced7 Fix missing and inconsistent error check on SQLAllocHandle
* Missing check: SQLAllocHandle() for the environment wasn't checked in
  pdo_odbc_handle_factory(). Add a check similar to the other ones for
  SQLAllocHandle().
* Inconsistent check: one of the SQLAllocHandle() calls wasn't checked
  for SQL_SUCCESS_WITH_INFO. However, looking at the other uses and the
  documentation we should probably check this as well.

Furthermore, since there was a mix of "SQLAllocHandle: reason" and
"SQLAllocHandle (reason)" in the error reporting, I made them
consistently use the first option as that seems to be the most used for
error reporting in this file.

Closes GH-10740.
2023-03-15 21:36:50 +01:00
David Carlier 90a39fd52c ext/mysqi: mysqli_poll raises a ValueError on absent 1st and 2ng arguments. 2023-03-15 17:49:31 +00:00
David Carlier 394470c052 php_pgsql_meta_data raises a ValueError when table name is invalid. 2023-03-15 17:49:27 +00:00
Alex Dowad 0ce755be26 Implement mb_encode_mimeheader using fast text conversion filters
The behavior of the new mb_encode_mimeheader implementation closely
follows the old implementation, except for three points:

• The old implementation was missing a call to the mbfl_convert_filter
  flush function. So it would sometimes truncate the input string just
  before its end.

• The old implementation would drop zero bytes when QPrint-encoding.
  So for example, if you tried to QPrint-encode the UTF-32BE string
  "\x00\x00\x12\x34", its QPrint-encoding would be "=12=34", which
  does not decode to a valid UTF-32BE string. This is now fixed.

• In some rare corner cases, the new implementation will choose to
  Base64-encode or QPrint-encode the input string, where the old
  implementation would have just added newlines to it. Specifically,
  this can happen when there is a non-space ASCII character, followed
  by a large number of ASCII spaces, followed by a non-ASCII character.

The new implementation is around 2.5-8x faster than the old one,
depending on the text encoding and transfer encoding used. Performance
gains are greater with Base64 transfer encoding than with QPrint
transfer encoding; this is not because QPrint-encoding bytes is slow,
but because QPrint-encoded output is much bigger than Base64-encoded
output and takes more lines, so we have to go through the process of
finding the right place to break a line many more times.
2023-03-15 15:53:08 +02:00
Ilija Tovilo 6ebb506637 Upgrade cirrus arm build to GCC 12 (#10855) 2023-03-15 13:03:42 +01:00
Remi Collet dd109926ed Merge branch 'PHP-8.2'
* PHP-8.2:
  remove assert raising strange behavior with GCC 10
2023-03-15 09:06:29 +01:00
Remi Collet 420469bd25 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  remove assert raising strange behavior with GCC 10
2023-03-15 09:06:05 +01:00
Remi Collet bdf2f722ca remove assert raising strange behavior with GCC 10 2023-03-15 09:05:44 +01:00
Ilija Tovilo 3a9a950472 Merge branch 'PHP-8.2'
* PHP-8.2:
  [skip ci] Skip upload_2G.phpt on Cirrus
2023-03-15 02:11:59 +01:00
Ilija Tovilo 70c29f84b1 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  [skip ci] Skip upload_2G.phpt on Cirrus
2023-03-15 02:11:49 +01:00
Ilija Tovilo 84e7d4a3c8 [skip ci] Skip upload_2G.phpt on Cirrus 2023-03-15 02:11:11 +01:00
Ilija Tovilo eae80389c4 Merge branch 'PHP-8.2'
* PHP-8.2:
  Move ARM64 build to Cirrus
2023-03-15 01:40:06 +01:00
Ilija Tovilo 1e434fbcd8 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Move ARM64 build to Cirrus
2023-03-15 01:37:31 +01:00
Ilija Tovilo ccca59728e Move ARM64 build to Cirrus
Travis is very unreliable lately

Closes GH-10795
2023-03-15 01:35:01 +01:00
Ilija Tovilo 3fbdb132c8 [skip ci] Fix misleading xfail message 2023-03-15 00:08:11 +01:00
Ilija Tovilo ff1e07c10c Fix mysql tests on Cirrus ASAN
We used localhost instead of 127.0.0.1, so the tests were never actually run.

Closes GH-10802
2023-03-15 00:03:09 +01:00
Matteo Beccati a141543594 Fix test on non-UTC platforms 2023-03-14 17:52:19 +01:00
Ilija Tovilo a5da519d59 Merge branch 'PHP-8.2'
* PHP-8.2:
  use_tls=0 on MSAN
2023-03-14 17:43:12 +01:00
Ilija Tovilo ca7c7e9c05 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  use_tls=0 on MSAN
2023-03-14 17:43:02 +01:00
Ilija Tovilo 63525ee600 use_tls=0 on MSAN
Attempt to fix MSAN failure in CI

Closes GH-10851
2023-03-14 17:42:23 +01:00
Remi Collet bb97ae7c24 Merge branch 'PHP-8.2'
* PHP-8.2:
  avoid test file being consider binary
2023-03-14 15:54:53 +01:00
Remi Collet f575027b56 avoid test file being consider binary 2023-03-14 15:54:38 +01:00
David Carlier 974a3d8441 ext/mysqli/pgsql: mysqli_fetch_object/pgsql_fetch_object raises ValueError on constructor args error.
Closes GH-10832.
2023-03-13 19:54:49 +00:00
Niels Dossche f9375dc723 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix module shutdown crash during ZTS JIT shutdown
2023-03-13 20:12:37 +01:00