Skip to content

Commit d1b74e9

Browse files
committed
Merge remote-tracking branch 'origin/master' into opcache/opcache_is_script_cached_file
2 parents b3b9501 + 9306c95 commit d1b74e9

File tree

1,026 files changed

+21158
-1014216
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,026 files changed

+21158
-1014216
lines changed

.circleci/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ jobs:
153153
`#--enable-werror`
154154
- run:
155155
name: make
156+
no_output_timeout: 30m
156157
command: make -j2 > /dev/null
157158
- run:
158159
name: make install

.gitattributes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
# Collapse generated files within git and pull request diff.
2323
**/*_arginfo.h linguist-generated -diff
24-
/main/gdb_inlined_script.c linguist-generated -diff
24+
/main/debug_gdb_scripts.c linguist-generated -diff
2525
/Zend/zend_vm_execute.h linguist-generated -diff
2626
/Zend/zend_vm_handlers.h linguist-generated -diff
2727
/Zend/zend_vm_opcodes.[ch] linguist-generated -diff

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
/ext/pdo_sqlite @SakiTakamachi
4545
/ext/pgsql @devnexen
4646
/ext/random @TimWolla @zeriyoshi
47+
/ext/reflection @DanielEScherzer
4748
/ext/session @Girgias
4849
/ext/simplexml @nielsdos
4950
/ext/soap @nielsdos

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,22 @@ body:
2222
```
2323
validations:
2424
required: true
25-
- type: input
25+
- type: textarea
2626
attributes:
2727
label: PHP Version
28-
description: "The used PHP version. Make sure it is [supported](https://www.php.net/supported-versions.php)."
29-
placeholder: "PHP 8.0.12"
28+
description: |
29+
Please run PHP with the `-v` flag (e.g. `php -v`, `php8.3 -v`, `php-fpm -v` or similar) and provide the full output of that command. If executing that command is not possible, please provide the full version number as given in PHPInfo.
30+
31+
Please make sure that the used PHP version [is a supported version](https://www.php.net/supported-versions.php).
32+
placeholder: |
33+
PHP 8.3.19 (cli) (built: Mar 13 2025 17:44:40) (NTS)
34+
Copyright (c) The PHP Group
35+
Zend Engine v4.3.19, Copyright (c) Zend Technologies
36+
with Zend OPcache v8.3.19, Copyright (c), by Zend Technologies
3037
validations:
3138
required: true
3239
- type: input
3340
attributes:
3441
label: Operating System
3542
description: "The used operating system, if relevant."
36-
placeholder: "Ubuntu 20.04"
43+
placeholder: "Ubuntu 24.04"
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: ./configure
2+
inputs:
3+
configurationParameters:
4+
default: ''
5+
required: false
6+
skipSlow:
7+
default: false
8+
required: false
9+
runs:
10+
using: composite
11+
steps:
12+
- shell: bash
13+
run: |
14+
set -x
15+
./buildconf --force
16+
./configure \
17+
--enable-option-checking=fatal \
18+
--prefix=/usr \
19+
--with-libdir=lib64 \
20+
--enable-phpdbg \
21+
--enable-fpm \
22+
--with-pdo-mysql=mysqlnd \
23+
--with-mysqli=mysqlnd \
24+
${{ inputs.skipSlow == 'false' && '--with-pgsql' || '' }} \
25+
${{ inputs.skipSlow == 'false' && '--with-pdo-pgsql' || '' }} \
26+
${{ inputs.skipSlow == 'false' && '--with-pdo-sqlite' || '' }} \
27+
--enable-intl \
28+
--without-pear \
29+
--enable-gd \
30+
--with-jpeg \
31+
--with-webp \
32+
--with-freetype \
33+
--with-xpm \
34+
--enable-exif \
35+
--with-zip \
36+
--with-zlib \
37+
--enable-soap \
38+
--enable-xmlreader \
39+
--with-xsl \
40+
${{ inputs.skipSlow == 'false' && '--with-tidy' || '' }} \
41+
--enable-sysvsem \
42+
--enable-sysvshm \
43+
--enable-shmop \
44+
--enable-pcntl \
45+
--with-readline \
46+
--enable-mbstring \
47+
--with-iconv \
48+
--with-curl \
49+
--with-gettext \
50+
--enable-sockets \
51+
--with-bz2 \
52+
--with-openssl \
53+
--with-gmp \
54+
--enable-bcmath \
55+
--enable-calendar \
56+
--enable-ftp \
57+
${{ inputs.skipSlow == 'false' && '--with-enchant=/usr' || '' }} \
58+
--enable-sysvmsg \
59+
--with-ffi \
60+
--enable-zend-test \
61+
${{ inputs.skipSlow == 'false' && '--enable-dl-test=shared' || '' }} \
62+
${{ inputs.skipSlow == 'false' && '--with-ldap' || '' }} \
63+
${{ inputs.skipSlow == 'false' && '--with-ldap-sasl' || '' }} \
64+
--with-password-argon2 \
65+
--with-mhash \
66+
--with-sodium \
67+
--enable-dba \
68+
--with-cdb \
69+
--enable-flatfile \
70+
--enable-inifile \
71+
--with-tcadb \
72+
--with-lmdb \
73+
--with-qdbm \
74+
${{ inputs.skipSlow == 'false' && '--with-snmp' || '' }} \
75+
${{ inputs.skipSlow == 'false' && '--with-unixODBC' || '' }} \
76+
${{ inputs.skipSlow == 'false' && '--with-pdo-odbc=unixODBC,/usr' || '' }} \
77+
--with-config-file-path=/etc \
78+
--with-config-file-scan-dir=/etc/php.d \
79+
${{ inputs.skipSlow == 'false' && '--with-pdo-dblib' || '' }} \
80+
--enable-werror \
81+
${{ inputs.configurationParameters }} || cat config.log

.github/actions/freebsd/action.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ runs:
2727
bzip2 \
2828
t1lib \
2929
gmp \
30-
tidyp \
3130
libsodium \
3231
libzip \
3332
libxml2 \
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Test
2+
inputs:
3+
runTestsParameters:
4+
default: ''
5+
required: false
6+
runs:
7+
using: composite
8+
steps:
9+
- shell: bash
10+
run: |
11+
set -x
12+
# XXX: Set up other database tests?
13+
# XXX: These tests are not running containerized
14+
export MYSQL_TEST_USER=ci
15+
export MYSQL_TEST_PASSWD=ci
16+
if [[ -z "$PDO_MYSQL_TEST_DSN" ]]; then
17+
export PDO_MYSQL_TEST_DSN="mysql:host=localhost;dbname=test"
18+
fi
19+
export PDO_MYSQL_TEST_USER=ci
20+
export PDO_MYSQL_TEST_PASS=ci
21+
export PGSQL_TEST_CONNSTR="host=localhost dbname=test port=5432 user=ci password=ci"
22+
if [[ -z "$PDO_PGSQL_TEST_DSN" ]]; then
23+
export PDO_PGSQL_TEST_DSN="pgsql:host=localhost port=5432 dbname=test user=ci password=ci"
24+
fi
25+
# Slow tests criteron is doubled because this runner isn't as fast as others
26+
export SKIP_IO_CAPTURE_TESTS=1
27+
export STACK_LIMIT_DEFAULTS_CHECK=1
28+
sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \
29+
-j$(nproc) \
30+
-g FAIL,BORK,LEAK,XLEAK \
31+
--no-progress \
32+
--show-diff \
33+
--show-slow 2000 \
34+
--set-timeout 120

.github/scripts/windows/test_task.bat

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,15 @@ if "%PLATFORM%" == "x64" (
5858
curl -sLo Firebird.zip %PHP_FIREBIRD_DOWNLOAD_URL%
5959
7z x -oC:\Firebird Firebird.zip
6060
set PDO_FIREBIRD_TEST_DATABASE=C:\test.fdb
61-
set PDO_FIREBIRD_TEST_DSN=firebird:dbname=%PDO_FIREBIRD_TEST_DATABASE%
61+
set PDO_FIREBIRD_TEST_DSN=firebird:dbname=127.0.0.1:%PDO_FIREBIRD_TEST_DATABASE%
6262
set PDO_FIREBIRD_TEST_USER=SYSDBA
6363
set PDO_FIREBIRD_TEST_PASS=phpfi
64+
echo create user %PDO_FIREBIRD_TEST_USER% password '%PDO_FIREBIRD_TEST_PASS%';> C:\Firebird\create_user.sql
65+
echo commit;>> C:\Firebird\create_user.sql
6466
echo create database '%PDO_FIREBIRD_TEST_DATABASE%' user '%PDO_FIREBIRD_TEST_USER%' password '%PDO_FIREBIRD_TEST_PASS%';> C:\Firebird\setup.sql
6567
C:\Firebird\instsvc.exe install -n TestInstance
6668
C:\Firebird\isql -q -i C:\Firebird\setup.sql
69+
C:\Firebird\isql -q -i C:\Firebird\create_user.sql -user sysdba %PDO_FIREBIRD_TEST_DATABASE%
6770
C:\Firebird\instsvc.exe start -n TestInstance
6871
if %errorlevel% neq 0 exit /b 3
6972
path C:\Firebird;%PATH%

.github/workflows/nightly.yml

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ on:
1717
run_alpine:
1818
required: true
1919
type: boolean
20+
run_linux_ppc64:
21+
required: true
22+
type: boolean
2023
run_macos_arm64:
2124
required: true
2225
type: boolean
@@ -35,6 +38,44 @@ on:
3538
permissions:
3639
contents: read
3740
jobs:
41+
LINUX_PPC64:
42+
if: inputs.run_linux_ppc64
43+
name: LINUX_PPC64_ASAN_UBSAN_DEBUG_ZTS
44+
# This runs on a self-hosted runner; see https://wiki.php.net/systems/ci
45+
runs-on: [self-hosted, gentoo, ppc64]
46+
steps:
47+
- name: git checkout
48+
uses: actions/checkout@v4
49+
with:
50+
ref: ${{ inputs.branch }}
51+
- name: System info
52+
run: |
53+
echo "::group::Show host CPU info"
54+
lscpu
55+
echo "::endgroup::"
56+
echo "::group::Show installed packages"
57+
cat /var/lib/portage/world
58+
echo "::endgroup::"
59+
- name: ./configure
60+
uses: ./.github/actions/configure-gentoo
61+
with:
62+
configurationParameters: >-
63+
CFLAGS="-fsanitize=undefined,address -fno-sanitize=function -DZEND_TRACK_ARENA_ALLOC"
64+
LDFLAGS="-fsanitize=undefined,address -fno-sanitize=function"
65+
CC=clang-17
66+
CXX=clang++-17
67+
--enable-debug
68+
--enable-zts
69+
skipSlow: false # FIXME: This should likely include slow extensions
70+
- name: make
71+
run: make -j$(/usr/bin/nproc) >/dev/null
72+
# Skip an install action for now
73+
- name: Tests
74+
uses: ./.github/actions/test-gentoo
75+
# There is no PPC JIT, so rip this out
76+
with:
77+
runTestsParameters: >-
78+
--asan -x
3879
ALPINE:
3980
if: inputs.run_alpine
4081
name: ALPINE_X64_ASAN_UBSAN_DEBUG_ZTS
@@ -520,7 +561,7 @@ jobs:
520561
- name: Test Laravel
521562
if: ${{ !cancelled() }}
522563
run: |
523-
git clone https://github.com/laravel/framework.git --branch=master --depth=1
564+
git clone https://github.com/laravel/framework.git --depth=1
524565
cd framework
525566
git rev-parse HEAD
526567
php /usr/bin/composer install --no-progress --ignore-platform-reqs

.github/workflows/push.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,7 @@ jobs:
368368
path: ${{ github.workspace }}/benchmark/profiles
369369
retention-days: 30
370370
FREEBSD:
371+
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
371372
name: FREEBSD
372373
runs-on: ubuntu-latest
373374
steps:

.github/workflows/root.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,16 @@ jobs:
4848
with:
4949
asan_ubuntu_version: ${{
5050
(((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 5) || matrix.branch.version[0] >= 9) && '24.04')
51-
|| '20.04' }}
51+
|| '22.04' }}
5252
branch: ${{ matrix.branch.ref }}
5353
community_verify_type_inference: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
5454
libmysqlclient_with_mysqli: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1) }}
5555
run_alpine: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
56+
run_linux_ppc64: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
5657
run_macos_arm64: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
5758
ubuntu_version: ${{
5859
(((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 5) || matrix.branch.version[0] >= 9) && '24.04')
59-
|| ((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 3) && '22.04')
60-
|| '20.04' }}
60+
|| '22.04' }}
6161
windows_version: ${{ ((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9) && '2022' || '2019' }}
6262
skip_symfony: ${{ matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1 }}
6363
skip_wordpress: ${{ matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1 }}

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
# Libtool library files generated during build process
3030
*.la
3131

32+
# Mac shared library files generated during build process
33+
*.dylib
34+
3235
# Directories created by Libtool for storing generated library files
3336
.libs/
3437

@@ -234,6 +237,7 @@ php
234237
**/tests/**/*.exp
235238
**/tests/**/*.log
236239
**/tests/**/*.sh
240+
**/tests/**/*.stdin
237241

238242
# Generated by some test cases
239243
**/tests/**/*.db

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ Currently, we have the following branches in use:
353353
| master | Active development branch for PHP 8.5, which is open for backwards incompatible changes and major internal API changes. |
354354
| PHP-8.4 | Is used to release the PHP 8.4.x series. This is a current stable version and is open for bugfixes only. |
355355
| PHP-8.3 | Is used to release the PHP 8.3.x series. This is a current stable version and is open for bugfixes only. |
356-
| PHP-8.2 | Is used to release the PHP 8.2.x series. This is a current stable version and is open for bugfixes only. |
356+
| PHP-8.2 | Is used to release the PHP 8.2.x series. This is an old stable version and is open for security fixes only. |
357357
| PHP-8.1 | Is used to release the PHP 8.1.x series. This is an old stable version and is open for security fixes only. |
358358
| PHP-8.0 | This branch is closed. |
359359
| PHP-7.4 | This branch is closed. |

EXTENSIONS

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ STATUS: Working
412412
-------------------------------------------------------------------------------
413413
EXTENSION: random
414414
PRIMARY MAINTAINER Go Kudo <[email protected]> (2022 - 2024)
415-
Tim Düsterhus <[email protected]> (2022 - 2024)
415+
Tim Düsterhus <[email protected]> (2022 - 2025)
416416
MAINTENANCE: Maintained
417417
STATUS: Working
418418
SINCE: 8.2.0
@@ -426,6 +426,7 @@ EXTENSION: reflection
426426
PRIMARY MAINTAINER: Marcus Börger <[email protected]> (2003 - 2009)
427427
Johannes Schlüter <[email protected]> (2006 - 2014)
428428
Nikita Popov <[email protected]> (2019 - 2020)
429+
Daniel Scherzer <[email protected]> (2025 - 2025)
429430
MAINTENANCE: Maintained
430431
STATUS: Working
431432
-------------------------------------------------------------------------------

0 commit comments

Comments
 (0)