1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00
Commit Graph

140908 Commits

Author SHA1 Message Date
Calvin Buckley
d4242a6310 Update versions for PHP 8.4.19 php-8.4.19 2026-03-10 12:51:04 -03:00
Calvin Buckley
233fa86d86 Update NEWS for PHP 8.4.19 2026-03-10 12:50:49 -03:00
Dmitry Stogov
002ae9fab5 Update IR
IR commit: d8fbd3b198007f633a255b855cad036758deefb6

Fixes function JIT failures introduced by e792511179
2026-02-26 23:13:30 -05:00
David Carlier
6c45f7a000 ext/pcre: preg_match() fix memory leak with invalid regexes.
close GH-21290
2026-02-24 22:19:27 +00:00
Ilija Tovilo
ec5a1e001d Fix preloaded constant erroneously propagated to file-cached script
Since GH-15021 preloaded constants are propagated to compiled scripts. This is
problematic for file cache, which assumes all referenced zvals are either
persistently allocated or local to the current script. However, preloaded
constants live in shm as immutable, but not persistent.

To solve this, we'd need to duplicate propagated constants in the optimizer when
file cache is used. This is error prone given it needs to happen in many places.
It's debatable whether constant propagation is even correct in this case, as
running the preloaded script on a restart isn't guaranteed to produce the same
result.

Hence, avoid the issue for now by just not relying on preloaded symbols when
file cache is used.

Fixes GH-21052
Closes GH-21281
2026-02-24 17:28:56 +01:00
Dmitry Stogov
e792511179 Update IR (#21288)
IR commit: ef9341183cdd0489a188a87e74f5b02a359df21b
2026-02-24 18:40:53 +03:00
Ilija Tovilo
b003f5f147 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix benchmarking head sha
  Fix ccache for alpine and msan
  Fix coverage label job selection
  Fix ccache for coverage and pecl builds
2026-02-24 12:58:51 +01:00
Ilija Tovilo
90d604e2c4 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix benchmarking head sha
  Fix ccache for alpine and msan
  Fix coverage label job selection
  Fix ccache for coverage and pecl builds
2026-02-24 12:58:44 +01:00
Ilija Tovilo
46073db990 Fix benchmarking head sha
See https://github.com/orgs/community/discussions/47804

Closes GH-21287
2026-02-24 12:53:33 +01:00
Ilija Tovilo
68d4ee357b Fix ccache for alpine and msan
Declare CC/CXX through the ccache action.

Closes GH-21286
2026-02-24 12:53:16 +01:00
Ilija Tovilo
ee40ca3fe2 Fix coverage label job selection 2026-02-24 12:52:34 +01:00
Ilija Tovilo
c8cd3aeb1e Fix ccache for coverage and pecl builds
Coverage cannot use ccache as it is incompatible with gcov. Pecl clones PHP to
the ./php directory, rather than the cwd.

Closes GH-21285
2026-02-24 12:52:21 +01:00
Ilija Tovilo
f07809f495 Tweak stack limit values for gh20840.phpt
Graciously tested by Andy Postnikov (andypost).

See GH-21086
Closes GH-21275
2026-02-24 02:11:19 +01:00
Ilija Tovilo
9a6a841d77 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Tweak stack limit values for gh20583.phpt
2026-02-24 02:11:09 +01:00
Ilija Tovilo
3692a5fa57 Tweak stack limit values for gh20583.phpt
Graciously tested by Andy Postnikov (andypost).

See GH-21086
Closes GH-21274
2026-02-24 02:10:47 +01:00
David Carlier
296fad10fb ext/pcntl: fix pcntl_signal_dispatch() stale tail pointer and exception handling.
close GH-21259
2026-02-23 21:24:38 +00:00
Michael Orlitzky
db6cca26dd sapi/*/Makefile.frag: install programs built with libtool, with libtool
When installing executables that were built using libtool, we are
supposed to use

  $ libtool --mode-install <install-command>

rather than the bare <install-command>. This is discussed ever so
briefly in the "Installing executables" section of the GNU libtool
documentation:

  https://www.gnu.org/software/libtool/manual/libtool.html

So far this has not caused a problem with GNU libtool on the platforms
that PHP supports, but there is an alternate libtool implementation
called slibtool that stores wrappers at the locations where PHP is
expecting the true executables to live. As a result, the wrappers (and
not the executables) are installed when slibtool is used to build PHP.

This is fixed by replacing,

  $(INSTALL)

with

  $(LIBTOOL) --mode=install $(INSTALL)

in the install-foo rules for the executables that are built with
libtool.

Closes GH-13674
2026-02-23 17:19:23 +01:00
David Carlier
6a1bde5d38 ext/pcntl: Fix signal table updated before php_signal4 succeeds in pcntl_signal
Move the signal table update after the php_signal4 call, mirroring
what is already done in the SIG_DFL/SIG_IGN (integer) code path.
This prevents a stale entry in the table if sigaction fails.

close GH-21270
2026-02-23 12:47:55 +00:00
David Carlier
37ce67f276 ext/pcntl: Fix cpuset leak in pcntl_setcpuaffinity on out-of-range CPU ID
Add missing PCNTL_CPU_DESTROY(mask) call before RETURN_THROWS() when
the cpu id is out of range, matching the cleanup on other error paths.

close GH-21268
2026-02-22 19:57:19 +00:00
David Carlier
e2a5909ba3 ext/pcntl: fix pcntl_setns() error handling.
Save errno into a local int before calling close(fd), as close() may
clobber errno on failure. Use int rather than errno_t because errno_t
is defined in C11 Annex K (bounds-checking interfaces) which is
optional and not widely implemented — many platforms (Linux/glibc,
musl, macOS, FreeBSD) do not provide it.

close GH-21256
2026-02-22 19:05:55 +00:00
Ilija Tovilo
70b2761d98 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [CI] Fix ineffective ccache
2026-02-20 17:46:36 +01:00
Ilija Tovilo
c3734bd298 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [CI] Fix ineffective ccache
2026-02-20 17:46:31 +01:00
Ilija Tovilo
7a4da1040b [CI] Fix ineffective ccache
Cache on GHA is immutable. For this reason, hendrikmuhs/ccache-action creates a
new cache entry for each push, each with an appended timestamp, which fills the
cache very quickly. In an attempt to fix this, we've disabled the
append-timestamp option and appended a hash of php_version.h. Hence, we'll only
get a new cache file once this file is touched.

However, since this file rarely ever updates for master, we're relying on an
extremely outdated cache. To fix this, append the current year+week to rebuild
the cache each week instead, as suggested by Tim. Also use major.minor.release
version instead of the has of php_version.h for readability.

Fixes GH-14154
Closes GH-21258
2026-02-20 17:45:57 +01:00
Ilija Tovilo
fcb55f8c06 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix nightly ref name
2026-02-19 11:49:15 +01:00
Ilija Tovilo
60e035c7db Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix nightly ref name
2026-02-19 11:49:07 +01:00
Ilija Tovilo
636fd3453b Fix nightly ref name
git rev-parse fails with the long GH ref, but we need github.ref to check out
branches from PRs. Hence, use github.ref only for PRs, and the ref_name for
everything else.

Closes GH-21255
2026-02-19 11:48:24 +01:00
Ilija Tovilo
6ff7fa5b0d Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci] Rename PUSH job to TEST
2026-02-19 00:57:31 +01:00
Ilija Tovilo
5c0989dbcd Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Rename PUSH job to TEST
2026-02-19 00:57:24 +01:00
Ilija Tovilo
10b1da00d0 [skip ci] Rename PUSH job to TEST 2026-02-19 00:57:08 +01:00
Ilija Tovilo
dc4b8ba0e3 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci] Sigh, fix "" -> '' in GHA syntax
2026-02-18 23:20:16 +01:00
Ilija Tovilo
2757b7042f Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Sigh, fix "" -> '' in GHA syntax
2026-02-18 23:20:13 +01:00
Ilija Tovilo
3671c6dea7 [skip ci] Sigh, fix "" -> '' in GHA syntax 2026-02-18 23:19:59 +01:00
Ilija Tovilo
6b7bff052c Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci][CI] Fix || on 0 value, being treated as falsy
2026-02-18 23:15:03 +01:00
Ilija Tovilo
ecb299c501 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci][CI] Fix || on 0 value, being treated as falsy
2026-02-18 23:14:58 +01:00
Ilija Tovilo
88bd45728a [skip ci][CI] Fix || on 0 value, being treated as falsy 2026-02-18 23:13:33 +01:00
Ilija Tovilo
085f139427 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Rename nightly_matrix.php to matrix.php
2026-02-18 19:52:02 +01:00
Ilija Tovilo
f06de7c79a Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Rename nightly_matrix.php to matrix.php
2026-02-18 19:51:53 +01:00
Ilija Tovilo
37528afdad Rename nightly_matrix.php to matrix.php 2026-02-18 19:49:42 +01:00
Ilija Tovilo
873095d7df Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Adjust nightly-results.yml for test.yml
  Improve displayed workflow_call name
  Combine push.yml and root.yml into test.yml
  Rename push.yml to test.yml
  Rename nightly.yml to test-suite.yml
2026-02-18 19:44:39 +01:00
Ilija Tovilo
cbbe046a99 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Adjust nightly-results.yml for test.yml
  Improve displayed workflow_call name
  Combine push.yml and root.yml into test.yml
  Rename push.yml to test.yml
  Rename nightly.yml to test-suite.yml
2026-02-18 19:44:33 +01:00
Ilija Tovilo
be96ae607d Adjust nightly-results.yml for test.yml 2026-02-18 19:44:14 +01:00
Ilija Tovilo
cbb3ff0a5b Improve displayed workflow_call name
The ref is very long and makes things unreadable.
2026-02-18 19:44:14 +01:00
Ilija Tovilo
12148a5b49 Combine push.yml and root.yml into test.yml 2026-02-18 19:44:12 +01:00
Ilija Tovilo
dca6e5efd3 Rename push.yml to test.yml 2026-02-18 19:44:01 +01:00
Ilija Tovilo
bcbc9c2f00 Rename nightly.yml to test-suite.yml 2026-02-18 19:44:01 +01:00
Ilija Tovilo
59cb3aba5f Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  [skip ci] Add missing benchmarking checkout ref
2026-02-18 16:53:45 +01:00
Ilija Tovilo
c990df8655 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Add missing benchmarking checkout ref
2026-02-18 16:53:39 +01:00
Ilija Tovilo
9c8780dad0 [skip ci] Add missing benchmarking checkout ref 2026-02-18 16:53:16 +01:00
Ilija Tovilo
1317a17127 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Move benchmarking job to nightly
2026-02-18 15:56:12 +01:00
Ilija Tovilo
43e2c0135f Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Move benchmarking job to nightly
2026-02-18 15:56:08 +01:00