Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
320 commits
Select commit Hold shift + click to select a range
cf2f699
ext/soap: backport GH-22586 fix.
devnexen Jul 4, 2026
130164b
Merge branch 'PHP-8.4' into PHP-8.5
devnexen Jul 4, 2026
3111fb2
Merge branch 'PHP-8.5'
devnexen Jul 4, 2026
21bf7f6
phpdbg: Fix off-by-one in phpdbg_safe_class_lookup() signal-safe clas…
jorgsowa Jul 4, 2026
88193e5
Merge branch 'PHP-8.4' into PHP-8.5
TimWolla Jul 4, 2026
dcfa40c
Merge branch 'PHP-8.5'
TimWolla Jul 4, 2026
4078021
Add and use known string for NoDiscard (#21810)
DanielEScherzer Jul 5, 2026
aa12a65
ext/soap: Add `UNEXPECTED()` in obvious error path (#22596)
LamentXU123 Jul 5, 2026
2ddbc0a
main/poll: Record wait() error on every backend (#22326)
iliaal Jul 5, 2026
c889faa
ext/zip: memory leak when zip cancel callback bails out.
devnexen May 29, 2026
8613e0e
ext/Intl: Add `UNEXPECTED()` in obvious error path (#22601)
LamentXU123 Jul 5, 2026
9cefeea
Sync Boost.Context assembly with 1.91.0
kn1g78 Jul 4, 2026
f08491b
ext/standard: getimagesize()/getimagesizefromstring() overflow.
devnexen Jul 3, 2026
3372f2b
Merge branch 'PHP-8.4' into PHP-8.5
devnexen Jul 6, 2026
750074b
Merge branch 'PHP-8.5'
devnexen Jul 6, 2026
33d243c
ext/dom: fix GH-22570 new test
devnexen Jul 5, 2026
1e6f8df
Merge branch 'PHP-8.4' into PHP-8.5
devnexen Jul 6, 2026
1a7f3c0
Merge branch 'PHP-8.5'
devnexen Jul 6, 2026
76c40ec
Fix incorrect method case for SplFileInfo::getPathname() in gen_stub.…
jorgsowa Jul 6, 2026
016a1f1
Zend: reuse zend_get_unqualified_name() in zend_add_const_name_litera…
jorgsowa Jul 6, 2026
de6828f
Remove several useless `include <sys/param.h>` (#22611)
LamentXU123 Jul 6, 2026
5ab3b33
session: ensure expected INI directives are set (#22577)
remicollet Jul 6, 2026
6beb089
ext/standard: Fix `sleep` and `usleep` unsigned integer overflow (#22…
LamentXU123 Jul 6, 2026
f04eaec
Fix GH-22549: GMP compound pow/shift assign asserts on negative opera…
iliaal Jul 6, 2026
3704518
ext/uri: Increase minimum uriparser version dependency (#22575)
kocsismate Jul 6, 2026
d6be30e
iconv: Fix memory management in autoconf test for `//IGNORE` (#22620)
TimWolla Jul 6, 2026
e758d88
zend_types: Remove `Z_*CONSTANT_*()` (#22295)
TimWolla Jul 6, 2026
7330366
zend_ast: Wrap class names in parens during export when they are an e…
TimWolla Jul 6, 2026
21204bf
Fix performance of gh22443.phpt
iluuu1994 Jul 7, 2026
c28199f
Merge branch 'PHP-8.5'
iluuu1994 Jul 7, 2026
ba32d70
[skip ci] Add -DZEND_VERIFY_TYPE_INFERENCE to CXXFLAGS for variation …
iluuu1994 Jul 7, 2026
008df99
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 Jul 7, 2026
bb51a68
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Jul 7, 2026
3cf46eb
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Jul 7, 2026
01c4124
Merge branch 'PHP-8.5'
iluuu1994 Jul 7, 2026
53b80f0
Check the stack limit when calling internal functions (#22545)
iliaal Jul 7, 2026
4afc970
[skip ci] Add NEWS entry for GH-15672 and GH-15911
iliaal Jul 7, 2026
12c1f1c
ext/calendar: Fix integer overflow in GregorianToSdn() and JulianToJd…
arshidkv12 Jul 7, 2026
f0f26c7
Merge branch 'PHP-8.4' into PHP-8.5
LamentXU123 Jul 7, 2026
ad48d1c
Merge branch 'PHP-8.5'
LamentXU123 Jul 7, 2026
dd86a8a
Implement `ReflectionClass::isAnonymous()` using `_class_check_flag()`
DanielEScherzer Jul 2, 2026
ed27dbc
Reflection: use `RETURN_BOOL` in `_class_check_flag()`
DanielEScherzer Jul 3, 2026
f98ebbf
Implement `ReflectionClassConstant::isEnumCase()` using existing helper
DanielEScherzer Jul 2, 2026
22f80dc
Implement `ReflectionClassConstant::isDeprecated()` using existing he…
DanielEScherzer Jul 2, 2026
0a858ea
Fix inline documentation of `ReflectionProperty::getName()`
DanielEScherzer Jul 2, 2026
36a602b
Update inline documentation of `ReflectionProperty::setAccessible()`
DanielEScherzer Jul 2, 2026
ff39477
Fix inline documentation of `Reflection*::getModifiers()` methods
DanielEScherzer Jul 2, 2026
4795c51
Fix inline documentation of `ReflectionType::allowsNull()`
DanielEScherzer Jul 2, 2026
5dfab10
Fix inline documentation of `ReflectionMethod::getClosure()`
DanielEScherzer Jul 2, 2026
6a19160
Avoid unnecessary concatenation in `zend_named_reflection_type_to_str…
DanielEScherzer Jul 2, 2026
f44ae1b
Reflection: use `true` and `false` for booleans rather than `0`/`1`
DanielEScherzer Jul 2, 2026
4f8f798
Reflection: convert some integers used for conditions to booleans
DanielEScherzer Jul 2, 2026
5370fc8
Reflection: remove unneeded indentation support from `_extension_stri…
DanielEScherzer Jul 2, 2026
4427cb4
Reflection: remove unneeded indentation support from `_extension_ini_…
DanielEScherzer Jul 2, 2026
0d680a2
Reflection: remove unneeded indentation support from `_zend_extension…
DanielEScherzer Jul 2, 2026
7eef7c9
Reflection: access common function fields through `zend_function.common`
DanielEScherzer Jul 2, 2026
c89e3df
`ReflectionNamedType::getName()`: inline logic for legacy behavior
DanielEScherzer Jul 2, 2026
09eaaae
`ReflectionFunction::__toString()`: stop accessing `intern->ce`
DanielEScherzer Jul 2, 2026
0465961
`ReflectionFunctionAbstract::getClosureUsedVariables()`: optimize arrays
DanielEScherzer Jul 2, 2026
08c039c
`ReflectionClass::getStaticProperties()`: optimize array initialization
DanielEScherzer Jul 2, 2026
dca2c72
Fix inline documentation of tentative return methods
DanielEScherzer Jul 2, 2026
4ba8651
`ReflectionFunctionAbstract::getClosureCalledClass()`: remove pointer…
DanielEScherzer Jul 2, 2026
9b5f5e7
Reflection: remove `reflection_extension_factory()`, avoid extra lookups
DanielEScherzer Jul 2, 2026
86b0eaa
Reflection: rename `reflection_extension_factory_ex()`
DanielEScherzer Jul 2, 2026
fc6aaf7
Reflection: improve string release in `reflection_property_factory_st…
DanielEScherzer Jul 2, 2026
35f2e88
Simplify `ReflectionProperty::getSettableType()` property handling
DanielEScherzer Jul 2, 2026
e7b1d99
Rename `ReflectionParameter_isDefault.phpt` to reflect actual contents
DanielEScherzer Jul 2, 2026
3b284ed
Update `ReflectionMethod_getClosureThis.phpt` to match actual contents
DanielEScherzer Jul 2, 2026
69f23e7
Fix inline comment in `ReflectionMethod::isConstructor()`
DanielEScherzer Jul 2, 2026
22d2e41
Reflection: minor whitespace cleanup
DanielEScherzer Jul 2, 2026
f6a4702
`ReflectionAttribute::getArguments()`: optimize array initialization
DanielEScherzer Jul 2, 2026
85f2424
`ReflectionClass::get(Reflection)Constants()`: optimize array initial…
DanielEScherzer Jul 2, 2026
2e2b03e
`ReflectionClass::isSubclassOf()`: remove extraneous parentheses
DanielEScherzer Jul 2, 2026
9390b68
Change bless to clean up absolute paths (#22067)
NattyNarwhal Jul 7, 2026
8ae6a8f
Use PHP version for zip extension
remicollet Jul 3, 2026
ee0f2b9
[ci skip] add CVE ref
remicollet Jul 8, 2026
dd10c43
Merge branch 'PHP-8.2' into PHP-8.3
remicollet Jul 8, 2026
427089c
[ci skip] add CVE ref
remicollet Jul 8, 2026
7c310ff
Merge branch 'PHP-8.3' into PHP-8.4
remicollet Jul 8, 2026
5ec033c
[ci skip] add CVE ref
remicollet Jul 8, 2026
2701837
Merge branch 'PHP-8.4' into PHP-8.5
remicollet Jul 8, 2026
735748f
[ci skip] add CVE ref
remicollet Jul 8, 2026
ffb93fe
Merge branch 'PHP-8.5'
remicollet Jul 8, 2026
edcd94d
ext/intl: don't include C++ ICU headers from C translation units (#22…
oerdnj Jul 8, 2026
ff480bc
ext/dom: Fix Dom\DtdNamedNodeMap index overflow in dimension access (…
LamentXU123 Jul 8, 2026
c993aa6
Zend: add test for <=> comparing against different types (#22634)
Girgias Jul 8, 2026
35881e1
sapi/cli: support HTTP QUERY method in built-in server (#22615)
Afcyy Jul 8, 2026
e7eebb9
sapi/phpdbg: remove dead str_type assignments before goto (#22600)
jorgsowa Jul 8, 2026
0b96441
ext/iconv/tests/bug76249.phpt: fallback for non-GNU iconv() (#22552)
orlitzky Jul 8, 2026
215ddb7
ext/iconv/tests/bug52211.phpt: use per-iconv charset names (#22543)
orlitzky Jul 8, 2026
8328868
Merge branch 'PHP-8.4' into PHP-8.5
Girgias Jul 8, 2026
476da42
Merge branch 'PHP-8.5'
Girgias Jul 8, 2026
4daefbf
bz2: use C23 enum and pack filter data struct (#22641)
Girgias Jul 8, 2026
e790541
[skip ci] Add various missing UPGRADING entries for 8.6 BC breaks
LamentXU123 Jul 8, 2026
9b1cdc5
ext/standard: Add test for headers_sent() by ref args
Girgias Sep 28, 2024
66966e6
ext/standard/head.c: no need to rely on ZEND_NUM_ARGS()
Girgias Sep 28, 2024
6f1beed
[skip ci] Fix CXXFLAGS for type verification build
iluuu1994 Jul 8, 2026
5df5863
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 Jul 8, 2026
db8cabd
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Jul 8, 2026
c3966f7
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Jul 8, 2026
39675b6
Merge branch 'PHP-8.5'
iluuu1994 Jul 8, 2026
ebbfb3c
ext/iconv/tests/eucjp2iso2022jp.phpt: skip for "unknown" iconv
orlitzky Nov 17, 2024
863263a
ext/iconv/tests/iconv_mime_encode.phpt: skip for "unknown" iconv
orlitzky Nov 17, 2024
a8a2eb6
Merge branch 'PHP-8.4' into PHP-8.5
Girgias Jul 8, 2026
d4f4f4f
Merge branch 'PHP-8.5'
Girgias Jul 8, 2026
8d1d4e3
Zend: Add new zend APIs for `bin2hex` to remove `ext/hash` usage in v…
LamentXU123 Jul 8, 2026
d0ce868
iconv: fix test with duplicate SKIPIF from merge up
Girgias Jul 8, 2026
9dc29aa
CI: fix encoding errors in iconv tests (#22646)
LamentXU123 Jul 8, 2026
6bc7c26
Replace dependencies on /ext/hash in various extensions (#21832)
LamentXU123 Jul 9, 2026
29f8f56
Updated to version 2026.3 (2026c)
derickr Jul 9, 2026
9bd15cf
Merge branch 'PHP-8.4' into PHP-8.5
derickr Jul 9, 2026
46e9291
Merge branch 'PHP-8.5'
derickr Jul 9, 2026
d83851d
Update timelib to 2022.17, which has fixes for PHP bugs
derickr Jul 9, 2026
119163a
Merge branch 'PHP-8.4' into PHP-8.5
derickr Jul 9, 2026
93e2349
Merge branch 'PHP-8.5'
derickr Jul 9, 2026
c3f1015
Add information about PIE extensions (#22613)
asgrim Jul 9, 2026
201e3cc
ext/zip: stricter numeric handling for archive array options.
devnexen Nov 16, 2025
ebed41a
Fix GH-22649: avoid ZipArchive comment reset crash (#22652)
LamentXU123 Jul 10, 2026
b686856
Merge branch 'PHP-8.4' into PHP-8.5
LamentXU123 Jul 10, 2026
658b29b
Merge branch 'PHP-8.5'
LamentXU123 Jul 10, 2026
34951bf
[skip ci] NEWS entry for zip extension
devnexen Jul 10, 2026
3c15cf1
Add support for -1 as valid year for idate() output. (#22657)
derickr Jul 10, 2026
d1d144e
Throw an error on null byte in curl array options (#22662)
Sjord Jul 10, 2026
8b1079a
Fix GH-11310: __debugInfo does nothing on userland classes extending …
derickr Jul 10, 2026
e4dbda9
Merge branch 'PHP-8.4' into PHP-8.5
derickr Jul 10, 2026
b2011f2
Merge branch 'PHP-8.5'
derickr Jul 10, 2026
5b00437
Add regression tests for `ReflectionConstant::__toString()` with null…
DanielEScherzer Jul 9, 2026
ed3e06a
GH-22658: avoid truncation on null bytes in `ReflectionConstant::__to…
DanielEScherzer Jul 9, 2026
834bdce
NEWS
DanielEScherzer Jul 10, 2026
032b2d3
Fixed __debugInfo() usage on PHP 8.5 and later for DatePeriod (#22677)
derickr Jul 10, 2026
a71a321
Merge branch 'PHP-8.5'
derickr Jul 10, 2026
0836518
Merge branch 'PHP-8.4' into PHP-8.5
DanielEScherzer Jul 10, 2026
955a2ce
[8.5] NEWS: add entry for bugfix from GH-22659
DanielEScherzer Jul 10, 2026
830bb6c
Merge branch 'PHP-8.5'
DanielEScherzer Jul 10, 2026
65a69b4
Fix GH-22671: assert.bail must not unwind with a pending exception (#…
iliaal Jul 10, 2026
9073875
ext/dom: Use-after-free with namespace nodes from XSLTProcessor::regi…
devnexen Jul 6, 2026
6e20480
Doc: Rename ZSTR_INIT to ZSTR_INIT_LITERAL in documentation
LamentXU123 Jul 11, 2026
838a9c2
Doc: Fix typo in zend_string.rst documentation
LamentXU123 Jul 11, 2026
1fd15d4
ext/soap: Fix SOAP xsd:hexBinary odd-length decoding (#22698)
LamentXU123 Jul 11, 2026
8ce99bc
Fix GH-21720: macOS posix_spawn_file_actions_addchdir availability ha…
arshidkv12 Jul 12, 2026
93fa5f3
ext/curl: add CURLOPT_SEEKFUNCTION
GrahamCampbell Jun 5, 2026
f40c8f2
Fix macOS compatibility of update-lexbor.sh
kocsismate Jul 12, 2026
ca2399e
Merge branch 'PHP-8.4' into PHP-8.5
TimWolla Jul 12, 2026
a182b7f
Merge branch 'PHP-8.5'
TimWolla Jul 12, 2026
2014eb2
ext/uri: Fix GH-22629 WHATWG validation error incorrect with empty ho…
kocsismate Jul 12, 2026
1bf4be9
Merge branch 'PHP-8.5'
TimWolla Jul 12, 2026
c6c8db5
main/poll: Fix kqueue event buffer overflow in grouped mode (#22606)
bukka Jul 12, 2026
c025bc4
ext/uri: Fix GH-22628 Percent-encoding of caret in WHATWG URL paths i…
kocsismate Jul 12, 2026
b84bd9e
Merge branch 'PHP-8.5'
TimWolla Jul 12, 2026
2a712fb
Fix flaky stream_socket_get_crypto_status handshake test (#22707)
bukka Jul 12, 2026
68d0f56
json: Report unterminated JSON strings as syntax errors (#22528)
TimWolla Jul 12, 2026
dbf6d1f
[skip ci] Update UPGRADING.INTERNALS with ext/intl changes
LamentXU123 Jul 12, 2026
3eaa338
Fix flaky poll socket close tests on Solaris event ports (#22708)
bukka Jul 12, 2026
f36660d
ext/dom: fix use-after-free with XPath callback returning foreign-doc…
devnexen Jul 2, 2026
7f97b83
ext/dom: getElementsByClassName() item() returns wrong element on ran…
devnexen Jul 11, 2026
0a5edc5
Merge branch 'PHP-8.5'
devnexen Jul 12, 2026
1e9f56c
Fix GH-22678: array_multisort() use-after-free on mutating comparator
iliaal Jul 10, 2026
6493ea6
Merge branch 'PHP-8.4' into PHP-8.5
iliaal Jul 13, 2026
75cdbcd
Merge branch 'PHP-8.5'
iliaal Jul 13, 2026
1feb201
Fix use-after-free on re-entrant ftp_close() during a transfer
iliaal Jun 22, 2026
765fe90
Merge branch 'PHP-8.4' into PHP-8.5
iliaal Jul 13, 2026
95a4724
Merge branch 'PHP-8.5'
iliaal Jul 13, 2026
b51f575
ext/gd/tests/gh19{666,739}.phpt: skip for external libgd
orlitzky Jul 12, 2026
35452fb
Merge branch 'PHP-8.4' into PHP-8.5
devnexen Jul 13, 2026
f0c603b
Merge branch 'PHP-8.5'
devnexen Jul 13, 2026
7809f94
ext/ldap: fix ldap_explode_dn result ordering
arshidkv12 Jul 2, 2026
1d82cbd
Merge branch 'PHP-8.5'
MCMic Jul 13, 2026
e2c5b3c
zend_objects: Readonly properties must be re-locked after clone-with …
NickSdot Jul 13, 2026
f96f0c2
Merge branch 'PHP-8.5'
TimWolla Jul 13, 2026
841b5bf
CI: Revert timeout fix for Symfony community build (#22682)
jorgsowa Jul 13, 2026
da0b12b
Merge branch 'PHP-8.4' into PHP-8.5
TimWolla Jul 13, 2026
4288479
Merge branch 'PHP-8.5'
TimWolla Jul 13, 2026
cf3c803
`abort()` in OOM case
realFlowControl Jul 8, 2026
13169cd
json: Stop tracking columns in the success path (#22487)
henderkes Jul 13, 2026
0b0284e
perf: move AG and SCNG into native __thread storage
henderkes Jul 4, 2026
a095c57
Alpine CI: don't install gnu-libiconv-dev
orlitzky Jul 8, 2026
f71c28d
Merge branch 'PHP-8.4' into PHP-8.5
arnaud-lb Jul 13, 2026
7cc47ff
Merge branch 'PHP-8.5'
arnaud-lb Jul 13, 2026
c559d6f
Fix GH-22683: Reflection(Class)Constant::__toString() should not warn…
khaledalam Jul 13, 2026
aaa141a
Merge branch 'PHP-8.5'
DanielEScherzer Jul 13, 2026
3129b3b
bz2: refactor filter creation to do parameter validation (#22307)
Girgias Jul 13, 2026
4fa10e2
ext/soap: Improve SOAP scalar decoding error messages (#22706)
LamentXU123 Jul 13, 2026
1db6c84
Add regression tests for `Reflection*::__toString()` with null bytes
DanielEScherzer Jul 10, 2026
8706cd4
GH-22681: avoid truncation on null bytes in `Reflection*::__toString()`
DanielEScherzer Jul 10, 2026
4804d17
NEWS
DanielEScherzer Jul 13, 2026
fd7e1e2
Merge branch 'PHP-8.4' into PHP-8.5
DanielEScherzer Jul 13, 2026
fc30d31
Merge branch 'PHP-8.5'
DanielEScherzer Jul 13, 2026
c3236b9
Install the SQLite ODBC driver in CI
iliaal Jul 10, 2026
6eb21e3
Merge branch 'PHP-8.4' into PHP-8.5
iliaal Jul 13, 2026
2c7c630
Merge branch 'PHP-8.5'
iliaal Jul 13, 2026
4ba42f6
curl: Use correct format string in curl debug messages (#22723)
Sjord Jul 14, 2026
7d1118b
[ci skip] Update NEWS for 8.6.0alpha3
svpernova09 Jul 14, 2026
0fca39d
Add regression tests for `ReflectionEnum::__toString()` with null bytes
DanielEScherzer Jul 13, 2026
1b2c0ab
GH-22681: avoid truncation on null bytes in `ReflectionEnum::__toStri…
DanielEScherzer Jul 13, 2026
d403061
Merge branch 'PHP-8.5'
DanielEScherzer Jul 14, 2026
e2c975d
Update NEWS
DanielEScherzer Jul 14, 2026
3199f89
[skip ci] UPGRADING: document several added functions and classes
LamentXU123 Jul 14, 2026
df5e361
[skip ci] UPGRADING: sort extensions alphabetically
LamentXU123 Jul 14, 2026
103c84f
Fix GH-22667: pdo_odbc heap over-read on oversized column value
iliaal Jul 10, 2026
4eced77
Merge branch 'PHP-8.4' into PHP-8.5
iliaal Jul 14, 2026
0fbe257
Merge branch 'PHP-8.5'
iliaal Jul 14, 2026
0fef3c3
CI: fix unstable test \ext\sockets\tests\socket_recvfrom_afpacket_no_…
LamentXU123 Jul 14, 2026
207dd1d
Fix GH-22480: phpdbg use-after-free re-watching a watched variable (#…
iliaal Jul 14, 2026
df77309
GH-22617: avoid null byte truncation of persistent stream keys
devnexen Jul 12, 2026
3583a7b
Merge branch 'PHP-8.4' into PHP-8.5
devnexen Jul 14, 2026
84f90c5
Merge branch 'PHP-8.5'
devnexen Jul 14, 2026
8e4daef
Fix GH-22668: odbc heap over-read on oversized column value
iliaal Jul 10, 2026
0c11f48
Merge branch 'PHP-8.4' into PHP-8.5
iliaal Jul 14, 2026
df2c6bb
Merge branch 'PHP-8.5'
iliaal Jul 14, 2026
a7539ff
Fix GH-22666: pdo_odbc heap overflow on oversized output param
iliaal Jul 10, 2026
9a47981
Merge branch 'PHP-8.4' into PHP-8.5
iliaal Jul 14, 2026
3a40e29
Merge branch 'PHP-8.5'
iliaal Jul 14, 2026
345b88d
Fix GH-22665: pdo_odbc OOB write on oversized diagnostic length
iliaal Jul 10, 2026
c9f2800
Merge branch 'PHP-8.4' into PHP-8.5
iliaal Jul 14, 2026
29647e6
Merge branch 'PHP-8.5'
iliaal Jul 14, 2026
665bab2
PHP-8.5 is now for PHP 8.5.10-dev
edorian Jul 15, 2026
b6ebae1
Merge branch 'PHP-8.5'
edorian Jul 15, 2026
923814c
PHP-8.4 is now for PHP 8.4.25-dev
SakiTakamachi Jul 15, 2026
e801368
Merge branch 'PHP-8.4' into PHP-8.5
SakiTakamachi Jul 15, 2026
29cec7f
Merge branch 'PHP-8.5'
SakiTakamachi Jul 15, 2026
a6f85c3
Re-enable JIT for ZTS builds on Apple Silicon
realFlowControl Jul 15, 2026
e2ea940
ext/gmp: Fix GMP operator RHS overflow for GMP values (#22656)
LamentXU123 Jul 15, 2026
7f49606
standard/file.c: use normal docref function for E_WARNINGs in popen()…
Girgias Jul 15, 2026
1986088
exif: change usage of php_error_docref1() to php_error_docref() (#22747)
Girgias Jul 15, 2026
345b2a6
ext/exif: Fix EXIF warning format specifiers for size_t values (#22750)
LamentXU123 Jul 15, 2026
0f78dba
streams: use built-in argument handling for warnings instead of 2 par…
Girgias Jul 15, 2026
90245a1
Run oversized bz2 resource tests in isolation to avoid OOM (#22744)
iliaal Jul 15, 2026
2d86f8c
Fix leak on double DatePeriod::__construct() call
iluuu1994 Jul 7, 2026
f3c50bf
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 Jul 15, 2026
0fbd104
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 Jul 15, 2026
670ccf8
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 Jul 15, 2026
80a147a
Merge branch 'PHP-8.5'
iluuu1994 Jul 15, 2026
070f8b2
Adjust XtOffsetOf() to offsetof() for master
iluuu1994 Jul 15, 2026
bdcf9ce
Fix pdo_odbc output-buffer leak and stale-binding out-of-bounds read
iliaal Jul 14, 2026
f97387a
Merge branch 'PHP-8.4' into PHP-8.5
iliaal Jul 15, 2026
00dc391
Merge branch 'PHP-8.5'
iliaal Jul 15, 2026
cc8abaf
Fix use-after-free serializing an array grown by an element's hook (#…
iliaal Jul 15, 2026
6441f89
Fix GH-21691: OPcache CFG optimizer drops QM_ASSIGN feeding JMPZ/JMPZ…
iliaal Apr 9, 2026
fa47ae1
CI: Enable JIT testing on Apple Silicon ZTS 8.6+
arnaud-lb Jul 15, 2026
0d24b90
Merge branch 'PHP-8.2' into PHP-8.3
arnaud-lb Jul 16, 2026
5fd38ba
Merge branch 'PHP-8.3' into PHP-8.4
arnaud-lb Jul 16, 2026
6c89faa
Merge branch 'PHP-8.4' into PHP-8.5
arnaud-lb Jul 16, 2026
9c7bb94
Merge branch 'PHP-8.5'
arnaud-lb Jul 16, 2026
d826d49
Sync gd 2 4 (#22532)
pierrejoye Jul 16, 2026
9674d84
main: convert win32_docref functions to a new function using new stre…
Girgias Jul 16, 2026
0549c8e
ext/filter: fix use-after-free in parse_str() with filter.default
iliaal Jul 16, 2026
27e3f6b
Merge branch 'PHP-8.4' into PHP-8.5
iliaal Jul 16, 2026
524ae41
Merge branch 'PHP-8.5'
iliaal Jul 16, 2026
e60d756
zend_API: Add `_ex` variants of `zend_argument_error*` (#21829)
arnaud-lb Jul 16, 2026
228a294
Partial function application
arnaud-lb Aug 5, 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
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
/ext/pdo_pgsql @devnexen @SakiTakamachi
/ext/pdo_sqlite @SakiTakamachi
/ext/pgsql @devnexen
/ext/phar @LamentXU123
/ext/random @TimWolla @zeriyoshi
/ext/reflection @DanielEScherzer
/ext/session @Girgias
Expand All @@ -57,6 +58,7 @@
/ext/xmlreader @devnexen
/ext/xmlwriter @devnexen
/ext/xsl @devnexen
/ext/zip @LamentXU123
/main @bukka
/sapi/fpm @bukka
/Zend/Optimizer @dstogov
Expand Down
1 change: 0 additions & 1 deletion .github/actions/apk/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ runs:
curl-dev \
freetype-dev \
gettext-dev \
gnu-libiconv-dev \
gmp-dev \
icu-dev \
icu-data-full \
Expand Down
1 change: 1 addition & 0 deletions .github/actions/apt-x64/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ runs:
snmp-mibs-downloader \
freetds-dev \
unixodbc-dev \
libsqliteodbc \
llvm \
clang \
dovecot-core \
Expand Down
4 changes: 3 additions & 1 deletion .github/actions/brew/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,6 @@ runs:
t1lib \
libxml2 \
libjpeg \
libxslt
libxslt \
openssl@4
brew link --force --overwrite openssl@4
2 changes: 1 addition & 1 deletion .github/actions/configure-alpine/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ runs:
--enable-pcntl \
--with-readline \
--enable-mbstring \
--with-iconv=/usr \
--with-iconv \
--with-curl \
--with-gettext \
--enable-sockets \
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/configure-macos/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ runs:
set -x
BREW_OPT="$(brew --prefix)"/opt
export PATH="$BREW_OPT/bison/bin:$PATH"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/openssl/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/openssl@4/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/curl/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/libffi/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/libxml2/lib/pkgconfig"
Expand Down
14 changes: 13 additions & 1 deletion .github/matrix.php
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,19 @@ function select_jobs($repository, $trigger, $nightly, $labels, $php_version, $re
$test_arm = version_compare($php_version, '8.4', '>=');
$jobs['MACOS']['matrix'] = $all_variations
? ['arch' => $test_arm ? ['X64', 'ARM64'] : ['X64'], 'debug' => [true, false], 'zts' => [true, false]]
: ['include' => [['arch' => $test_arm ? 'ARM64' : 'X64', 'debug' => true, 'zts' => false]]];
: ['include' => [['arch' => $test_arm ? 'ARM64' : 'X64', 'debug' => true, 'zts' => false, 'jit' => true]]];
if ($all_variations) {
// Set the jit variable on X64 jobs
$jobs['MACOS']['matrix']['include'][] = ['arch' => 'X64', 'jit' => true];
if ($test_arm) {
// Set the jit variable on ARM64 NTS jobs
$jobs['MACOS']['matrix']['include'][] = ['arch' => 'ARM64', 'zts' => false, 'jit' => true];
// Set the jit variable on ARM64 ZTS jobs on 8.6+
if (version_compare($php_version, '8.6', '>=')) {
$jobs['MACOS']['matrix']['include'][] = ['arch' => 'ARM64', 'zts' => true, 'jit' => true];
}
}
}
$jobs['MACOS']['config']['arm64_version'] = version_compare($php_version, '8.4', '>=') ? '15' : '14';
}
if ($all_jobs || $test_msan) {
Expand Down
4 changes: 3 additions & 1 deletion .github/scripts/download-bundled/boost-context.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ cd "$(dirname "$0")/../../.."
tmp_dir=/tmp/php-src-download-bundled/boost-context
rm -rf "$tmp_dir"

revision=refs/tags/boost-1.86.0
revision=refs/tags/boost-1.91.0

git clone --depth 1 --revision="$revision" https://github.com/boostorg/context.git "$tmp_dir"

Expand All @@ -16,12 +16,14 @@ cd Zend/asm

# remove unneeded files
rm jump_arm_aapcs_pe_armasm.asm
rm jump_arm64_aapcs_pe_armclang.S
rm jump_i386_ms_pe_clang_gas.S
rm jump_i386_ms_pe_gas.asm
rm jump_i386_x86_64_sysv_macho_gas.S
rm jump_ppc32_ppc64_sysv_macho_gas.S
rm jump_x86_64_ms_pe_clang_gas.S
rm make_arm_aapcs_pe_armasm.asm
rm make_arm64_aapcs_pe_armclang.S
rm make_i386_ms_pe_clang_gas.S
rm make_i386_ms_pe_gas.asm
rm make_i386_x86_64_sysv_macho_gas.S
Expand Down
12 changes: 4 additions & 8 deletions .github/workflows/test-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ jobs:
${{ matrix.variation && 'CFLAGS="-DZEND_RC_DEBUG=1 -DPROFITABILITY_CHECKS=0 -DZEND_VERIFY_FUNC_INFO=1 -DZEND_VERIFY_TYPE_INFERENCE"' || '' }}
${{ (matrix.variation && fromJson(inputs.branch).jobs.LINUX_X64.config.variation_enable_zend_max_execution_timers) && '--enable-zend-max-execution-timers' || '' }}
--${{ matrix.debug && 'enable' || 'disable' }}-debug
${{ matrix.debug && 'CXXFLAGS="-D_GLIBCXX_ASSERTIONS"' || '' }}
${{ (matrix.variation || matrix.debug) && format('CXXFLAGS="{0} {1}"', matrix.variation && '-DZEND_VERIFY_TYPE_INFERENCE' || '', matrix.debug && '-D_GLIBCXX_ASSERTIONS' || '') || '' }}
--${{ matrix.zts && 'enable' || 'disable' }}-zts
asan: ${{ matrix.asan && 'true' || 'false' }}
skipSlow: ${{ (matrix.asan && !inputs.all_variations) && 'true' || 'false' }}
Expand Down Expand Up @@ -345,18 +345,18 @@ jobs:
if: ${{ inputs.all_variations }}
uses: ./.github/actions/test-macos
- name: Test Tracing JIT
if: ${{ matrix.arch == 'X64' || !matrix.zts }}
if: ${{ matrix.jit }}
uses: ./.github/actions/test-macos
with:
enableOpcache: true
jitType: tracing
- name: Test OpCache
if: ${{ inputs.all_variations || (matrix.arch == 'ARM64' && matrix.zts) }}
if: ${{ inputs.all_variations }}
uses: ./.github/actions/test-macos
with:
enableOpcache: true
- name: Test Function JIT
if: ${{ inputs.all_variations && (matrix.arch == 'X64' || !matrix.zts) }}
if: ${{ inputs.all_variations && matrix.jit }}
uses: ./.github/actions/test-macos
with:
enableOpcache: true
Expand Down Expand Up @@ -573,10 +573,6 @@ jobs:
php -r '$c = file_get_contents("src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerCustomTest.php"); $c = str_replace("public function testSanitizeDeepNestedString()", "#[\\PHPUnit\\Framework\\Attributes\\Group('"'"'skip'"'"')]\n public function testSanitizeDeepNestedString()", $c); file_put_contents("src/Symfony/Component/HtmlSanitizer/Tests/HtmlSanitizerCustomTest.php", $c);'
# Buggy FFI test in Symfony, see https://github.com/symfony/symfony/issues/47668
php -r '$c = file_get_contents("src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php"); $c = str_replace("public function testCastNonTrailingCharPointer()", "#[\\PHPUnit\\Framework\\Attributes\\Group('"'"'skip'"'"')]\n public function testCastNonTrailingCharPointer()", $c); file_put_contents("src/Symfony/Component/VarDumper/Tests/Caster/FFICasterTest.php", $c);'
# Causes massive amounts of system calls with USE_ZEND_ALLOC=0, exceeding the timeout
if [ -e 'src/Symfony/Component/Console/Tests/Helper/FileInputHelperTest.php' ]; then
php -r '$c = file_get_contents("src/Symfony/Component/Console/Tests/Helper/FileInputHelperTest.php"); $c = str_replace("public function testReadWithPasteDetectionAbortsBeyondMaxBytes()", "#[\\PHPUnit\\Framework\\Attributes\\Group('"'"'skip'"'"')]\n public function testReadWithPasteDetectionAbortsBeyondMaxBytes()", $c); file_put_contents("src/Symfony/Component/Console/Tests/Helper/FileInputHelperTest.php", $c);'
fi
export SYMFONY_DEPRECATIONS_HELPER=max[total]=999
X=0
for component in $(find src/Symfony -mindepth 2 -type f -name phpunit.xml.dist -printf '%h\n'); do
Expand Down
4 changes: 3 additions & 1 deletion EXTENSIONS
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,7 @@ PRIMARY MAINTAINER: Greg Beaver <cellog@php.net> (2008 - 2009)
Marcus Börger <helly@php.net> (2008 - 2008)
Steph Fox <sfox@php.net> (2008 - 2008)
Bishop Bettini <bishop@php.net> (2018 - 2019)
Weilin Du <weilindu@php.net> (2026 - 2026)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
Expand Down Expand Up @@ -515,7 +516,8 @@ SINCE: 8.5.0
-------------------------------------------------------------------------------
EXTENSION: zip
PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net> (2006 - 2011)
Remi Collet <remi@php.net> (2013-2020)
Remi Collet <remi@php.net> (2013 - 2020)
Weilin Du <weilindu@php.net> (2026 - 2026)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
Expand Down
172 changes: 170 additions & 2 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,7 +1,171 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? ????, PHP 8.6.0alpha2
?? ??? ????, PHP 8.6.0alpha3

- Core:
. Implemented partial function application RFC. (Arnaud)

- GMP:
. Fixed GMP power and shift operators to reject GMP right operands outside
the unsigned long range instead of silently truncating them. (Weilin Du)

- ODBC:
. Fixed bug GH-22668 (Heap buffer over-read when a column value exceeds the
driver-reported display size). (iliaal)

- Opcache:
. Re-enable JIT for ZTS builds on Apple Silicon. (realFlowControl)

- PDO_ODBC:
. Fixed bug GH-22667 (Heap buffer over-read when a column value exceeds the
driver-reported display size). (iliaal)
. Fixed bug GH-22666 (Heap buffer overflow when an output parameter value is
longer than the declared maxlen). (iliaal)
. Fixed bug GH-22665 (Out-of-bounds write when the ODBC driver reports a
diagnostic message length beyond the error buffer). (iliaal)

- Reflection:
. Fixed bug GH-22681 (Reflection*::__toString() truncates on null bytes).
(DanielEScherzer)

16 Jul 2026, PHP 8.6.0alpha2

- Core:
. Sync Boost.Context assembly with 1.91.0. (kn1g78)
. Fixed bug GH-22387 (AST pretty-printing drops meaningful parentheses around
RHS of instanceof). (timwolla)
. Fixed bug GH-15672 and GH-15911 (Stack overflow when an internal function
recurses through zend_call_function, such as a self-attached SPL
iterator). (iliaal)
. Lock unmodified readonly properties for modification after clone-with.
(NickSdot)
. abort() instead of exit() on hard OOM. (realFlowControl)
. perf: ZTS: move AG and SCNG into native __thread storage. (henderkes)

- Calendar:
. Fixed bug GH-22602 (gregoriantojd() and juliantojd() integer overflow with
INT_MAX year). (arshidkv12)

- Curl:
. Added CURLOPT_SEEKFUNCTION and the CURL_SEEKFUNC_OK, CURL_SEEKFUNC_FAIL
and CURL_SEEKFUNC_CANTSEEK constants, letting libcurl rewind a streamed
request body to resend it on a redirect, multi-pass authentication or a
retried reused connection. (GrahamCampbell)

- Date:
. Update timelib to 2022.17. (Derick)
. Fixed bug GH-19803 (Parsing a string with a single white space does create
an error). (Derick)
. Fixed Unix timestamps in February of the year 0 are misparsed with
@-notation. (LukasGelbmann)
. Fixed bug GH-11368 (idate() doesn't work for the year -1). (Derick)
. Fixed bug GH-11310 (__debugInfo does nothing on userland classes extending
Date classes). (Derick)

- DBA:
. Fixed OOB read on malformed length field in dba flatfile handler. (alhudz)

- DOM:
. Fixed bug GH-22570 (Stack overflow when serializing a deeply nested
Dom\XMLDocument). (iliaal)
. Fixed Dom\DtdNamedNodeMap integer dimension access so negative indexes
return NULL and indexes outside the int range throw ValueError instead of
returning the first entity or notation. (Weilin Du)
. Fixed bug GH-22623 (use after free with namespace nodes from
XSLTProcessor::registerFunctions())/ (David Carlier)
. Fixed bug GH-22554 (use-after-free with XPath callback returning a node
from a foreign document). (David Carlier)

- Exif:
. Fixed bug GH-11020 (exif_read_data() emits a spurious "Illegal IFD size"
warning when an IFD is not followed by a next-IFD offset). (Eyüp Can Akman)

- GMP:
. Fixed bug GH-22549 (Assertion failure / UB on a compound GMP power or shift
assignment with a negative exponent). (iliaal)

- Intl:
. Fixed NumberFormatter::parse() and NumberFormatter::parseCurrency() to
reject offset values outside the 32-bit range instead of silently
truncating them. (Weilin Du)
. IntlDateFormatter::parse()/datefmt_parse() and
IntlDateFormatter::localtime()/datefmt_localtime() now raise TypeError
when the offset argument is not of type int. (Weilin Du)

- JSON:
. Report unterminated JSON strings as syntax errors. (timwolla)
. Improve performance error position tracking during JSON decoding.
(henderkes)
. Fixed bug GH-22514 (Incorrect error column in PHP 8.6 JSON parser).
(henderkes, timwolla)

- Opcache:
. Fixed bug GH-21770 (Infinite recursion in property hook getter in opcache
preloaded trait). (iliaal)

- OpenSSL:
. Fixed timeout for supplemental read at end of a blocking stream in SSL
stream wrapper. (ilutov)
. Fixed stream_socket_get_crypto_status() after supplemental read. (ilutov)

- PDO_ODBC:
. Fixed bug GH-20726 (Crash with ODBC connection pooling when the DSN
carries no credentials). (iliaal)

- PHPDBG:
. Fixed fleaked lowercased lookup keys in phpdbg_resolve_opline_break.
(jorgsowa)
. Fixed off-by-one in phpdbg_safe_class_lookup() causing class lookups to
always fail during phpdbg's signal-safe interruption path. (jorgsowa)

- Reflection:
. Fixed bug GH-22683 (Reflection(Class)Constant::__toString() should not warn
on NAN conversions). (Khaled Alam)
. Fixed bug GH-22681 (Reflection*::__toString() truncates on null bytes).
(DanielEScherzer)

- Session:
. Fixed bug GH-21314 (Different session garbage collector behavior between
PHP 8.3 and PHP 8.5). (jorgsowa)

- SOAP:
. Fixed bug GH-22585 (OOM on bailout with uninitialized
do_request() parameters). (David Carlier)
. Fixed xsd:hexBinary decoding to reject odd-length values instead of
silently truncating the last nibble. (Weilin Du)
. Made SOAP encoding errors report the affected type or failing operation
instead of the generic "Violation of encoding rules" message. (Weilin Du)

- Standard:
. Fixed sleep() and usleep() to reject values that overflow the underlying
unsigned int timeout. (Weilin Du)
. Fixed bug GH-22671 (assert.bail aborts the process when the assert callback
throws an exception whose reporting re-throws). (iliaal)
. Fixed bug GH-22678 (Use-after-free in array_multisort() when the comparator
mutates the array being sorted). (azchin, iliaal)

- Streams:
. Fixed bug GH-21468 (Segfault in file_get_contents w/ a https URL
and a proxy set). (CVE-2026-12184) (ndossche)

- URI:
. Fixed bug GH-22628 (Percent-encoding of caret in WHATWG URL paths is not
performed). (kocsismate)
. Fixed bug GH-22629 (WHATWG Validation error incorrect with empty host and
non-empty userinfo). (kocsismate)

- Zip:
. Fixed bug GH-22649 (ZipArchive::setCommentName() and setCommentIndex()
could crash after overwriting an entry and resetting its inherited
unchanged comment). (Weilin Du)
. Fixed bug GH-21705 (ZipArchive::getFromIndex() ignores
ZipArchive::FL_UNCHANGED for deleted entries). (Weilin Du)
. Fixed bug GH-22176 (memory leak with ZipArchive::registerCancelBack()
is used with reference returning function during shutdown).
(David Carlier)
. ZipArchive::addGlob() and ZipArchive::addPattern() now raise a TypeError
for invalid "remove_all_path", "comp_method", "comp_flags", and
"enc_method" options instead of emitting a warning. (David Carlier)

02 Jul 2026, PHP 8.6.0alpha1

Expand Down Expand Up @@ -165,7 +329,7 @@ PHP NEWS
. pcntl_exec() now throws a ValueError if the $args array is not a list
array. (Weilin Du)

- PDO_DBLIB;
- PDO_DBLIB:
. Added dblib_handle_check_liveness handler. (freddy77)

- PDO_PGSQL:
Expand Down Expand Up @@ -194,6 +358,10 @@ PHP NEWS
. Mark Phar::buildFromIterator() base directory argument as a path.
(ndossche)

- phpdbg:
. Fixed GH-22480 (Use-after-free when re-watching an already-watched
variable). (iliaal)

- Posix:
. Added validity check to the flags argument for posix_access(). (arshidkv12)

Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,10 @@ permissions.
## PHP extensions

Extensions provide additional functionality on top of PHP. PHP consists of many
essential bundled extensions. Additional extensions can be found in the PHP
Extension Community Library - [PECL](https://pecl.php.net).
essential bundled extensions. Additional extensions can be found on the
[PIE Extensions](https://packagist.org/extensions) list, and installed with
[🥧 PIE, the PHP Installer for Extensions](https://github.com/php/pie) or the
deprecated PHP Extension Community Library - [PECL](https://pecl.php.net).

## Contributing

Expand Down
Loading
Loading