Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
251 commits
Select commit Hold shift + click to select a range
28ce1b0
intl: Fix memory leak on error in locale_filter_matches()
ndossche Oct 17, 2025
7c79a91
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 18, 2025
bb3559b
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 18, 2025
bd82e8d
Merge branch 'PHP-8.5'
ndossche Oct 18, 2025
560a16f
phar: Fix potential double free on Windows (#20211)
ndossche Oct 18, 2025
cf3b70d
pgsql: Fix memory leak when first string conversion fails
ndossche Oct 18, 2025
d992cd8
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 18, 2025
9282111
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 18, 2025
81fef09
Merge branch 'PHP-8.5'
ndossche Oct 18, 2025
1cb166c
pdo: Fix scope for PDO mixins in pdo_hash_methods() (#20200)
TimWolla Oct 19, 2025
0fcd0be
Merge branch 'PHP-8.5'
TimWolla Oct 19, 2025
7c9c395
zend_inheritance: Improve formatting of return-by-ref `&` in zend_get…
TimWolla Oct 19, 2025
ebbb1b4
Fix GH-19021: improve tidyOptGetCategory detection
devnexen Oct 19, 2025
b5c4435
Merge branch 'PHP-8.3' into PHP-8.4
petk Oct 19, 2025
c2523ed
Merge branch 'PHP-8.4' into PHP-8.5
petk Oct 19, 2025
552c588
Merge branch 'PHP-8.5'
petk Oct 19, 2025
a29c5d6
phar: Simplify phar_wrapper_stat() (#20222)
ndossche Oct 19, 2025
63e534d
phar: Remove no-op bool casts (#20227)
ndossche Oct 19, 2025
3472174
PHP 8.5 | UPGRADING: add missing entries for FILTER_THROW_ON_FAILURE …
jrfnl Oct 19, 2025
e6c52bc
Merge branch 'PHP-8.5'
DanielEScherzer Oct 19, 2025
1ef7abf
zend_long: Remove `ZEND_LTOA()` (#20236)
TimWolla Oct 20, 2025
c03215b
Fix missing deprecation message for default case statement followed b…
theodorejb Oct 20, 2025
3ac9efe
uri: Make uri_parser_rfc3986.h usable for external extensions (#20173)
TimWolla Oct 20, 2025
cea52f7
PHP 8.5 | UPGRADING: fix entry about new grapheme $locale parameter (…
jrfnl Oct 20, 2025
0a7695c
Merge branch 'PHP-8.5'
TimWolla Oct 20, 2025
3273ebe
.github: Bust the nightly CI cache on Sunday instead of Monday (#20242)
TimWolla Oct 20, 2025
f250fd6
Merge branch 'PHP-8.1' into PHP-8.2
TimWolla Oct 20, 2025
75b770e
Merge branch 'PHP-8.2' into PHP-8.3
TimWolla Oct 20, 2025
b0a3f7a
Merge branch 'PHP-8.3' into PHP-8.4
TimWolla Oct 20, 2025
28d8b8f
Merge branch 'PHP-8.4' into PHP-8.5
TimWolla Oct 20, 2025
adb90d0
Merge branch 'PHP-8.5'
TimWolla Oct 20, 2025
01e339d
ext/tidy: Enable tidyOptGetCategory on Windows (#20226)
petk Oct 20, 2025
02c67b4
Fix accessing of overridden private property in get_object_vars()
iluuu1994 Oct 15, 2025
f5fc755
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 20, 2025
fbf11f9
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 20, 2025
8c239d1
Merge branch 'PHP-8.5'
iluuu1994 Oct 20, 2025
939b972
Improve bug60602.phpt portability
iluuu1994 Oct 17, 2025
e37a207
NEWS
arnaud-lb Oct 20, 2025
92f3d90
Merge branch 'PHP-8.4' into PHP-8.5
arnaud-lb Oct 20, 2025
43549ea
NEWS
arnaud-lb Oct 20, 2025
5f062de
Merge branch 'PHP-8.5'
arnaud-lb Oct 20, 2025
4289bda
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 20, 2025
9e96637
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 20, 2025
5ce8a86
Merge branch 'PHP-8.5'
iluuu1994 Oct 20, 2025
45a50d0
phar: Remove pointless efree() (#20232)
ndossche Oct 20, 2025
40b3f88
phar: Avoid string duplication just for error message, use truncation…
ndossche Oct 20, 2025
0805953
phar: Restructure code to get rid of a goto
ndossche Oct 19, 2025
0098f3e
phar: De-indent code
ndossche Oct 19, 2025
6291f97
phar: Move code to avoid goto
ndossche Oct 19, 2025
a69b353
phar: Re-indent code
ndossche Oct 19, 2025
9c90e16
phar: Avoid an error goto in phar_zip_flush() (#20233)
ndossche Oct 20, 2025
df8ce6d
Zend: remove zval_dtor() compatibility macro
ndossche Oct 19, 2025
8e84e9a
pgsql: Use cheaper string conversion functions
ndossche Oct 18, 2025
e2396a6
pgsql: Simplify pgsql_copy_from_query() by using character buffers
ndossche Oct 18, 2025
da96382
pgsql: Avoid unnecessary work in pgsql_copy_from_query() if the input…
ndossche Oct 18, 2025
5eec4d8
pgsql: Avoid duplicating strings and factor out parameter building code
ndossche Oct 18, 2025
020bbea
phar: Fix memory leak when openssl polyfill returns garbage
ndossche Oct 17, 2025
4c043d8
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 20, 2025
90eabf5
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 20, 2025
41d6d36
Merge branch 'PHP-8.5'
ndossche Oct 20, 2025
fba06d8
Fix merge issue
ndossche Oct 20, 2025
4094bf7
Merge branch 'PHP-8.5'
ndossche Oct 20, 2025
90bc40e
Create separate workflow for nightly slack notification
iluuu1994 Oct 20, 2025
0bd904b
Merge branch 'PHP-8.1' into PHP-8.2
iluuu1994 Oct 20, 2025
0a2717e
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 Oct 20, 2025
e76c2e2
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 20, 2025
8bce65d
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 20, 2025
3943bb0
Merge branch 'PHP-8.5'
iluuu1994 Oct 20, 2025
0e17dcf
Fix Windows test for openssl-3.5 upgrade (#19384)
shivammathur Aug 6, 2025
5d8a392
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 Oct 20, 2025
43621e1
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 20, 2025
80ebe86
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 20, 2025
0ff366a
Merge branch 'PHP-8.5'
iluuu1994 Oct 20, 2025
1bfe934
[skip ci] Skip openssl tests currently failing on 8.2
iluuu1994 Oct 20, 2025
d37e454
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 Oct 20, 2025
f86e8ce
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 20, 2025
0ea8aca
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 20, 2025
d0dcec0
Merge branch 'PHP-8.5'
iluuu1994 Oct 20, 2025
3f6c86a
Revert "Fix Windows test for openssl-3.5 upgrade (#19384)"
iluuu1994 Oct 20, 2025
f65a574
[skip ci] Also skip check_default_conf_path.phpt on Windows & 8.2
iluuu1994 Oct 20, 2025
b751582
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 Oct 20, 2025
ed8a45c
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 20, 2025
b8ba859
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 20, 2025
1765240
Merge branch 'PHP-8.5'
iluuu1994 Oct 20, 2025
94f2bb0
[skip ci] Fix Windows test for openssl-3.5 upgrade (#19384)
shivammathur Aug 6, 2025
02d187d
Merge branch 'PHP-8.5'
iluuu1994 Oct 21, 2025
79a5804
uri: Make `php_uri_parser` structs PHPAPI (#20243)
TimWolla Oct 21, 2025
3562f81
Merge branch 'PHP-8.5'
TimWolla Oct 21, 2025
99076eb
[skip ci] Auto-mark SKIP_PERF_SENSITIVE tests as flaky
iluuu1994 Oct 21, 2025
db98c57
Merge branch 'PHP-8.1' into PHP-8.2
iluuu1994 Oct 21, 2025
217fcea
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 Oct 21, 2025
dc74dd5
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 21, 2025
801e587
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 21, 2025
3be2dd6
Merge branch 'PHP-8.5'
iluuu1994 Oct 21, 2025
7877de2
[skip ci] Fix nightly notification workflow url
iluuu1994 Oct 21, 2025
270e3da
Merge branch 'PHP-8.1' into PHP-8.2
iluuu1994 Oct 21, 2025
4043e5f
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 Oct 21, 2025
ff1c9fa
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 21, 2025
d78faac
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 21, 2025
0b145f5
Merge branch 'PHP-8.5'
iluuu1994 Oct 21, 2025
cc83761
phar: Fix file descriptor leak in phar_zip_flush() on failure.
ndossche Oct 19, 2025
40efac0
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 21, 2025
d05f88e
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 21, 2025
75426c5
Merge branch 'PHP-8.5'
ndossche Oct 21, 2025
ce0df1a
phar: Fix memory leak when opening temp file fails while trying to op…
ndossche Oct 18, 2025
913327d
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 21, 2025
c4333a7
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 21, 2025
752b53c
Merge branch 'PHP-8.5'
ndossche Oct 21, 2025
920847e
[ci skip] Update NEWS for PHP 8.5.0 RC4
DanielEScherzer Oct 21, 2025
8eddd64
Merge branch 'PHP-8.5'
DanielEScherzer Oct 21, 2025
d0ad286
Zend: use type uint32_t for zend_lineno global
Girgias Oct 3, 2025
f5e782e
Zend: use type uint32_t for ticks_count global
Girgias Oct 3, 2025
3db0ea6
Zend: use type uint32_t for lineno ini scanner global
Girgias Oct 3, 2025
51a4e06
Zend: use type uint32_t for refcount CE field
Girgias Oct 3, 2025
40a42cf
Zend: use type uint32_t for default_static_members_count CE field
Girgias Oct 3, 2025
25de02b
uri: Improve type safety for `php_uri_parser_rfc3986_userinfo_*()` (#…
TimWolla Oct 22, 2025
572652e
Fix GH-20217: ReflectionClass::isIterable() should return false for c…
alexandre-daubois Oct 22, 2025
39d5cbb
Merge branch 'PHP-8.4' into PHP-8.5
alexandre-daubois Oct 22, 2025
206395f
Merge branch 'PHP-8.5'
alexandre-daubois Oct 22, 2025
48e3608
[ci skip] Add myself to tidy extension maintainers
ndossche Oct 22, 2025
42787fe
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 22, 2025
7ac83a2
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 22, 2025
c48795a
Merge branch 'PHP-8.5'
ndossche Oct 22, 2025
f8d804b
Add Tim as a maintainer of ext/uri
kocsismate Sep 30, 2025
375b6c2
Merge branch 'PHP-8.5'
ndossche Oct 22, 2025
d378dce
Fix GH-20257: heap overflow on empty message in `lf` mode.
devnexen Oct 22, 2025
f06e79e
Merge branch 'PHP-8.5'
devnexen Oct 22, 2025
f8656fa
Zend: use uint32_t type instead of int for extended_value counter
Girgias Oct 22, 2025
09c39a8
Fix OSS-Fuzz #454273637: UAF with printf optimization and const outpu…
ndossche Oct 23, 2025
025e16c
zend_compile: Optimize arguments for ZEND_NEW (#20259)
TimWolla Oct 23, 2025
eef11e0
Fix GH-19798: XP_SOCKET XP_SSL: Incorrect condition for Win
bukka Sep 19, 2025
2a0931d
Merge branch 'PHP-8.3' into PHP-8.4
bukka Oct 23, 2025
4545174
Merge branch 'PHP-8.4' into PHP-8.5
bukka Oct 23, 2025
b3d8465
Merge branch 'PHP-8.5'
bukka Oct 23, 2025
005d04a
zend_call_function: emit function deprecation before setting up call …
Girgias Oct 23, 2025
c7fc819
Use MYSQL_TYPE constants instead of FIELD_TYPE
ndossche Oct 20, 2025
ef32a3b
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 23, 2025
dd6a320
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 23, 2025
5887c76
Merge branch 'PHP-8.5'
ndossche Oct 23, 2025
18687e4
UPGRADING 8.5: fix misplaced `()` (#20272)
DanielEScherzer Oct 23, 2025
27948dc
Merge branch 'PHP-8.5'
DanielEScherzer Oct 23, 2025
eafbc6b
[skip ci] Fix opcache dump test for VARIATION job
iluuu1994 Oct 24, 2025
58df9fc
Fix UAF in tidy when tidySetErrorBuffer() fails
ndossche Oct 24, 2025
aebe5c9
Fix macro check that I forgot to commit
ndossche Oct 24, 2025
9e4fbb5
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 24, 2025
67926db
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 24, 2025
7455f6a
Merge branch 'PHP-8.5'
ndossche Oct 24, 2025
149015a
[ci skip] ext/sockets: PHP 8.5 | UPGRADING: add some missing socket c…
jrfnl Oct 25, 2025
9b23fb2
Merge branch 'PHP-8.5'
devnexen Oct 25, 2025
5a7fd1d
Make bug70417.phpt less flaky
ndossche Oct 25, 2025
fd54fb2
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 25, 2025
79dd8f2
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 25, 2025
341014c
Merge branch 'PHP-8.5'
ndossche Oct 25, 2025
ed9529a
Make bug70417.phpt less flaky
ndossche Oct 25, 2025
e9c9b1f
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 25, 2025
d3ee9aa
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 25, 2025
af3f150
Merge branch 'PHP-8.5'
ndossche Oct 25, 2025
cb1f932
Fix GH-20281: \Dom\Document::getElementById() is inconsistent after n…
ndossche Oct 24, 2025
6267bde
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 25, 2025
77858ae
Merge branch 'PHP-8.5'
ndossche Oct 25, 2025
0af4f27
Fix GH-20274 SoapClient::__doRequest undocumented backwards incompati…
kocsismate Oct 25, 2025
c930a98
Merge branch 'PHP-8.5'
kocsismate Oct 25, 2025
27bc7c0
Reorganize ext/uri tests - withers (#19970)
kocsismate Oct 25, 2025
0cdf7be
Merge branch 'PHP-8.5'
kocsismate Oct 25, 2025
3a9d599
phar: Use a loop instead of goto when looking for extensions (#20289)
ndossche Oct 25, 2025
86a15f9
phar: Remove redundant *error check (#20288)
ndossche Oct 25, 2025
3884438
ext/zip: ZipArchive callback missing zend_release_fcall_info_cache
devnexen Oct 25, 2025
bac62bf
Merge branch 'PHP-8.5'
devnexen Oct 25, 2025
275ec6f
Zend: make zend_copy_parameters_array() private (#20265)
Girgias Oct 25, 2025
5d0499a
Don't duplicate protoname for stream wrappers (#20292)
ndossche Oct 26, 2025
61b0d58
ftp: Fix weird typo (#20295)
ndossche Oct 26, 2025
d403036
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 26, 2025
393302b
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 26, 2025
23674d9
Merge branch 'PHP-8.5'
ndossche Oct 26, 2025
c0214e4
Zend: remove zend_make_callable() function (#20269)
Girgias Oct 26, 2025
8761c4e
Fix GH-20240: FTP with SSL: ftp_fput(): Connection timed out on succe…
ndossche Oct 25, 2025
6dab33a
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 26, 2025
6bcc4e2
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 26, 2025
64b30ce
Merge branch 'PHP-8.5'
ndossche Oct 26, 2025
b150eb3
Fix parent hook call with named args
iluuu1994 Oct 23, 2025
a1911ad
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 27, 2025
932241f
Merge branch 'PHP-8.5'
iluuu1994 Oct 27, 2025
1292037
Fix stale EG(opline_before_exception) pointer through eval
iluuu1994 Oct 15, 2025
aa7265b
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 27, 2025
1a74e9b
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 27, 2025
d4946a5
Merge branch 'PHP-8.5'
iluuu1994 Oct 27, 2025
3c063ab
ext/gd: Fix GH-19955 unit test.
devnexen Oct 27, 2025
f1a5c53
Merge branch 'PHP-8.3' into PHP-8.4
devnexen Oct 27, 2025
1b220cb
Merge branch 'PHP-8.4' into PHP-8.5
devnexen Oct 27, 2025
7ba7b30
Merge branch 'PHP-8.5'
devnexen Oct 27, 2025
6c14020
ext/zip: code refactoring.
devnexen Oct 18, 2025
20654ce
[skip ci] Unparallelize imap
iluuu1994 Oct 27, 2025
fc1bc9c
Merge branch 'PHP-8.1' into PHP-8.2
iluuu1994 Oct 27, 2025
76e26c6
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 Oct 27, 2025
7c483c1
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 27, 2025
6fd6de3
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 27, 2025
be1993b
Merge branch 'PHP-8.5'
iluuu1994 Oct 27, 2025
ed6218d
phar: Use ZEND_PARSE_PARAMETERS_NONE() (#20313)
ndossche Oct 28, 2025
94f48f1
NEWS
arnaud-lb Oct 28, 2025
157713a
Merge branch 'PHP-8.4' into PHP-8.5
arnaud-lb Oct 28, 2025
df91410
NEWS
arnaud-lb Oct 28, 2025
bc7b8bd
Merge branch 'PHP-8.5'
arnaud-lb Oct 28, 2025
b35b5e0
ext/lexbor: use PHP_VERSION for extension version (#20291)
DanielEScherzer Oct 28, 2025
c262045
Merge branch 'PHP-8.5'
DanielEScherzer Oct 28, 2025
336fbf0
[ci skip] Remove very outdated comment
ndossche Oct 28, 2025
7815ab9
Zend: add const qualifiers when possible for _zend_execute_data.func …
Girgias Oct 29, 2025
23162d8
Add UPGRADING information for Zend API change
Girgias Oct 29, 2025
fee4e18
mbstring: Avoid pointless refcounted copy (#20325)
ndossche Oct 29, 2025
d9bae1d
Move iconv const check into autoconf (8.3) (#20247)
NattyNarwhal Oct 29, 2025
0a8cb02
Merge branch 'PHP-8.3' into PHP-8.4
NattyNarwhal Oct 29, 2025
0960689
Merge branch 'PHP-8.4' into PHP-8.5
NattyNarwhal Oct 29, 2025
b5747c3
Merge branch 'PHP-8.5'
NattyNarwhal Oct 29, 2025
9a1b8a7
Fix GH-20194: null offset deprecation not emitted for writes (#20238)
Girgias Oct 29, 2025
ebf9d84
Update NEWS for null deprecation bug fix
Girgias Oct 29, 2025
0df31e5
Merge branch 'PHP-8.5'
Girgias Oct 29, 2025
0b974dd
Fix GH-20201: AVIF images misdetected as HEIF after introducing HEIF …
ndossche Oct 19, 2025
6cf45c4
Merge branch 'PHP-8.5'
ndossche Oct 29, 2025
ee40791
Zend/zend_compile.c: remove unused fbc parameter of zend_try_compile_…
Girgias Oct 29, 2025
c669fbf
Zend/zend_compile: add const qualifiers
Girgias Sep 24, 2025
4098613
[ci skip] Fix CODEOWNERS name
ndossche Oct 30, 2025
a585ace
Merge branch 'PHP-8.2' into PHP-8.3
ndossche Oct 30, 2025
0929f73
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 30, 2025
2e0ab27
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 30, 2025
2523491
Merge branch 'PHP-8.5'
ndossche Oct 30, 2025
425b97e
phar: Remove unused macro (#20343)
ndossche Oct 30, 2025
6fe40de
Fix GH-20302: Freeing a phar alias may invalidate PharFileInfo objects
ndossche Oct 30, 2025
ae7117b
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Oct 31, 2025
1dd866d
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Oct 31, 2025
455893e
Merge branch 'PHP-8.5'
ndossche Oct 31, 2025
5518165
Fix EG(current_execute_data) introduced in 1292037
iluuu1994 Oct 30, 2025
a5e1baf
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Oct 31, 2025
80a6adc
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 31, 2025
a6da3e6
Merge branch 'PHP-8.5'
iluuu1994 Oct 31, 2025
50c7f49
Reset Z_EXTRA_P(op2) of ZEND_INIT_FCALL for opcache file cache
iluuu1994 Oct 29, 2025
ab0a915
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Oct 31, 2025
2d45069
Merge branch 'PHP-8.5'
iluuu1994 Oct 31, 2025
c3d6bf6
Update zlib test to use separate file for flock()
ndossche Oct 31, 2025
df423e4
Merge branch 'PHP-8.1' into PHP-8.2
ndossche Nov 1, 2025
be8c8a9
Merge branch 'PHP-8.2' into PHP-8.3
ndossche Nov 1, 2025
981b8c6
Merge branch 'PHP-8.3' into PHP-8.4
ndossche Nov 1, 2025
cda8daa
Merge branch 'PHP-8.4' into PHP-8.5
ndossche Nov 1, 2025
2f0a0c5
Merge branch 'PHP-8.5'
ndossche Nov 1, 2025
81f6ba5
uri: Use the “includes credentials” rule for WhatWg user/password get…
TimWolla Nov 1, 2025
82249dc
Merge branch 'PHP-8.5'
TimWolla Nov 1, 2025
a979e9f
ext/zip: lifting libzip minimum support.
devnexen Nov 1, 2025
4bd3a90
Use release_ex consistently in php_strtr_array_ex() (#20359)
ndossche Nov 2, 2025
9300a50
Reduce code size of strripos() (#20358)
ndossche Nov 2, 2025
8d1a42f
ext/zip: Sync remaining parts for libzip >= 1.0.0 (#20365)
petk Nov 2, 2025
83e3a6d
ext/intl: migrate C code to C++ step 4. (#20170)
devnexen Nov 2, 2025
75c3267
Implement followup for ext/uri
kocsismate Sep 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
21 changes: 11 additions & 10 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,19 @@

/.github @TimWolla
/build/gen_stub.php @kocsismate
/ext/bcmath @nielsdos @SakiTakamachi
/ext/bcmath @ndossche @SakiTakamachi
/ext/curl @adoy
/ext/date @derickr
/ext/dba @Girgias
/ext/dom @nielsdos
/ext/dom @ndossche
/ext/ffi @dstogov
/ext/gd @devnexen
/ext/gettext @devnexen
/ext/gmp @Girgias
/ext/intl @devnexen
/ext/json @bukka
/ext/lexbor @kocsismate @nielsdos
/ext/libxml @nielsdos
/ext/lexbor @kocsismate @ndossche
/ext/libxml @ndossche
/ext/mbstring @alexdowad @youkidearitai
/ext/mysqli @bukka @kamil-tekiela
/ext/mysqlnd @bukka @kamil-tekiela @SakiTakamachi
Expand All @@ -47,16 +47,17 @@
/ext/random @TimWolla @zeriyoshi
/ext/reflection @DanielEScherzer
/ext/session @Girgias
/ext/simplexml @nielsdos
/ext/soap @nielsdos
/ext/simplexml @ndossche
/ext/soap @ndossche
/ext/sockets @devnexen
/ext/spl @Girgias
/ext/standard @bukka
/ext/tidy @ndossche
/ext/uri @kocsismate @TimWolla
/ext/xml @nielsdos
/ext/xmlreader @nielsdos
/ext/xmlwriter @nielsdos
/ext/xsl @nielsdos
/ext/xml @ndossche
/ext/xmlreader @ndossche
/ext/xmlwriter @ndossche
/ext/xsl @ndossche
/main @bukka
/sapi/fpm @bukka
/Zend/Optimizer @dstogov
Expand Down
10 changes: 0 additions & 10 deletions .github/actions/notify-slack/action.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/nightly_matrix.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ function get_current_version(): array {

$trigger = $argv[1] ?? 'schedule';
$attempt = (int) ($argv[2] ?? 1);
$monday = date('w', time()) === '1';
$discard_cache = $monday
$sunday = date('w', time()) === '0';
$discard_cache = $sunday
|| ($trigger === 'schedule' && $attempt !== 1)
|| $trigger === 'workflow_dispatch';
if ($discard_cache) {
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/nightly-results.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Nightly results
on:
workflow_run:
workflows:
- Nightly
types:
- completed
jobs:
on-failure:
runs-on: ubuntu-latest
if: ${{ github.repository == 'php/php-src' && github.event.workflow_run.conclusion == 'failure' }}
steps:
- run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get install -y curl
curl -X POST -H 'Content-type: application/json' --data '{"attachments": [{"text": "Job(s) in *nightly* failed", "footer": "<${{ github.event.workflow_run.html_url }}|View Run>", "color": "danger", "mrkdwn_in": ["text"]}]}' ${{ secrets.ACTION_MONITORING_SLACK }}
51 changes: 0 additions & 51 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,12 +138,6 @@ jobs:
-d opcache.enable_cli=1
- name: Extra tests
uses: ./.github/actions/extra-tests
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}

LINUX_X64:
services:
mysql:
Expand Down Expand Up @@ -272,11 +266,6 @@ jobs:
uses: ./.github/actions/extra-tests
- name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
LINUX_X32:
strategy:
fail-fast: false
Expand Down Expand Up @@ -358,11 +347,6 @@ jobs:
-d opcache.enable_cli=1
- name: Extra tests
uses: ./.github/actions/extra-tests
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
MACOS:
strategy:
fail-fast: false
Expand Down Expand Up @@ -418,11 +402,6 @@ jobs:
uses: ./.github/actions/extra-tests
- name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
COVERAGE_DEBUG_NTS:
if: inputs.branch == 'master'
services:
Expand Down Expand Up @@ -483,11 +462,6 @@ jobs:
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
COMMUNITY:
strategy:
fail-fast: false
Expand Down Expand Up @@ -674,11 +648,6 @@ jobs:
if [ $EXIT_CODE -gt 128 ]; then
exit 1
fi
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
OPCACHE_VARIATION:
services:
mysql:
Expand Down Expand Up @@ -760,11 +729,6 @@ jobs:
-d opcache.file_cache_only=1
- name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
MSAN:
name: MSAN
runs-on: ubuntu-${{ inputs.ubuntu_version }}
Expand Down Expand Up @@ -851,11 +815,6 @@ jobs:
-d opcache.enable_cli=1
- name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
LIBMYSQLCLIENT:
name: LIBMYSQLCLIENT
runs-on: ubuntu-${{ inputs.ubuntu_version }}
Expand Down Expand Up @@ -898,11 +857,6 @@ jobs:
withMysqli: ${{ inputs.libmysqlclient_with_mysqli }}
- name: Verify generated files are up to date
uses: ./.github/actions/verify-generated-files
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
PECL:
if: inputs.branch == 'master'
runs-on: ubuntu-22.04
Expand Down Expand Up @@ -1010,11 +964,6 @@ jobs:
/opt/php/bin/phpize
./configure --prefix=/opt/php --with-php-config=/opt/php/bin/php-config
make -j$(/usr/bin/nproc)
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
WINDOWS:
strategy:
fail-fast: false
Expand Down
5 changes: 0 additions & 5 deletions .github/workflows/root.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,6 @@ jobs:
- name: Generate Matrix
id: set-matrix
run: php .github/nightly_matrix.php "${{ github.event_name }}" "${{ github.run_attempt }}" "${{ github.head_ref || github.ref_name }}"
- name: Notify Slack
if: failure()
uses: ./.github/actions/notify-slack
with:
token: ${{ secrets.ACTION_MONITORING_SLACK }}
NIGHTLY:
needs: GENERATE_MATRIX
name: ${{ matrix.branch.ref }}
Expand Down
1 change: 1 addition & 0 deletions EXTENSIONS
Original file line number Diff line number Diff line change
Expand Up @@ -495,6 +495,7 @@ EXTENSION: tidy
PRIMARY MAINTAINER: John Coggeshall <[email protected]> (2003 - 2006)
Ilia Alshanetsky <[email protected]> (2003 - 2009)
Nuno Lopes <[email protected]> (2006 - 2012)
Niels Dossche <[email protected]> (2025 - 2025)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
Expand Down
6 changes: 6 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,18 @@ PHP NEWS
. Invalid values now throw in Phar::mungServer() instead of being silently
ignored. (nielsdos)

- Reflection:
. Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true
for classes with property hooks). (alexandre-daubois)

- Standard:
. Fixed bug GH-19926 (reset internal pointer earlier while splicing array
while COW violation flag is still set). (alexandre-daubois)

- Zip:
. Fixed ZipArchive callback being called after executor has shut down.
(ilutov)
. Support minimum version for libzip dependency updated to 1.0.0.
(David Carlier)

<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
7 changes: 7 additions & 0 deletions UPGRADING
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,11 @@ PHP 8.6 UPGRADE NOTES
- Phar:
. Phar::mungServer() now supports reference values.

- Zip:
. ZipArchive::extractTo now raises a TypeError for the
files argument if one or more of the entries is not
a string.

========================================
6. New Functions
========================================
Expand Down Expand Up @@ -103,6 +108,8 @@ PHP 8.6 UPGRADE NOTES
. `printf()` using only `%s` and `%d` will be compiled into the equivalent
string interpolation, avoiding the overhead of a function call and repeatedly
parsing the format string.
. Arguments are now passed more efficiently to known constructors (e.g. when
using new self()).

- JSON:
. Improve performance of encoding arrays and objects.
12 changes: 12 additions & 0 deletions UPGRADING.INTERNALS
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,18 @@ PHP 8.6 INTERNALS UPGRADE NOTES
. CHECK_ZVAL_NULL_PATH() and CHECK_NULL_PATH() have been removed, use
zend_str_has_nul_byte(Z_STR_P(...)) and zend_char_has_nul_byte()
respectively.
. ZEND_LTOA() (and ZEND_LTOA_BUF_LEN) has been removed, as it was
unsafe. Directly use ZEND_LONG_FMT with a function from the
printf family.
. The zval_dtor() alias of zval_ptr_dtor_nogc() has been removed.
Call zval_ptr_dtor_nogc() directly instead.
. The internal zend_copy_parameters_array() function is no longer exposed.
. The zend_make_callable() function has been removed, if a callable zval
needs to be obtained use the zend_get_callable_zval_from_fcc() function
instead. If this was used to store a callable, then an FCC should be
stored instead.
. The zend_active_function{_ex}() functions now return a const zend_function
pointer.

========================
2. Build system changes
Expand Down
5 changes: 5 additions & 0 deletions Zend/Optimizer/sccp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1106,6 +1106,11 @@ static void sccp_visit_instr(scdf_ctx *scdf, zend_op *opline, zend_ssa_op *ssa_o

if (op2) {
SKIP_IF_TOP(op2);
if (Z_TYPE_P(op2) == IS_NULL) {
/* Emits deprecation at run-time. */
SET_RESULT_BOT(result);
return;
}
}

/* We want to avoid keeping around intermediate arrays for each SSA variable in the
Expand Down
2 changes: 1 addition & 1 deletion Zend/Optimizer/zend_inference.c
Original file line number Diff line number Diff line change
Expand Up @@ -5253,7 +5253,7 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
case ZEND_INIT_ARRAY:
return (opline->op2_type != IS_UNUSED) && (t2 & (MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
case ZEND_ADD_ARRAY_ELEMENT:
return (opline->op2_type == IS_UNUSED) || (t2 & (MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
return (opline->op2_type == IS_UNUSED) || (t2 & (MAY_BE_NULL|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
case ZEND_STRLEN:
return (t1 & MAY_BE_ANY) != MAY_BE_STRING;
case ZEND_COUNT:
Expand Down
2 changes: 2 additions & 0 deletions Zend/tests/constexpr/constant_expressions_dynamic.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ var_dump(
Warning: A non-numeric value encountered in %s on line %d

Deprecated: Implicit conversion from float 3.14 to int loses precision in %s on line %d

Deprecated: Using null as an array offset is deprecated, use an empty string instead in %s on line %d
int(3)
string(4) "1foo"
bool(false)
Expand Down
25 changes: 25 additions & 0 deletions Zend/tests/functions/zend_call_function_deprecated_frame.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
--TEST--
Deprecated function notice promoted to exception within zend_call_function()
--FILE--
<?php

#[Deprecated]
function foo(string $v) {
return $v . '!';
}

set_error_handler(function ($number, $message) {
throw new Exception($message);
});

$a = array_map(foo(...), ['Hello', 'World']);
var_dump($a);

?>
--EXPECTF--
Fatal error: Uncaught Exception: Function foo() is deprecated in %s:%d
Stack trace:
#0 [internal function]: {closure:%s:%d}(16384, 'Function foo() ...', '%s', %d)
#1 %s(%d): array_map(Object(Closure), Array)
#2 {main}
thrown in %s on line %d
25 changes: 25 additions & 0 deletions Zend/tests/gh20177.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
--TEST--
GH-20177: Access overridden private property in get_object_vars()
--FILE--
<?php

class A {
private $prop = 'A::$prop';

public function __construct() {
var_dump(get_object_vars($this));
}
}

class B extends A {
protected $prop = 'B::$prop';
}

new B;

?>
--EXPECT--
array(1) {
["prop"]=>
string(8) "A::$prop"
}
24 changes: 24 additions & 0 deletions Zend/tests/gh20183_001.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
--TEST--
GH-20183: Stale EG(opline_before_exception) pointer through eval
--CREDITS--
Viet Hoang Luu (@vi3tL0u1s)
--FILE--
<?php

class A {
function __destruct() {
eval('try { throw new Error(); } catch (Error $e) {}');
debug_print_backtrace();
}
}

B::$b = new A;

?>
--EXPECTF--
#0 %s(10): A->__destruct()

Fatal error: Uncaught Error: Class "B" not found in %s:10
Stack trace:
#0 {main}
thrown in %s on line 10
Loading
Loading