Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
4533 commits
Select commit Hold shift + click to select a range
d4c195c
Zend/Optimizer/block_pass.c: remove code disabled with `#if 0` (#21791)
DanielEScherzer May 2, 2026
d71eadc
ext/xsl: Update gh21496.phpt (#21928)
dwo0 May 2, 2026
b9f64f7
Improve ZPP weak parsing by returning value directly when possible
Girgias May 2, 2026
c130d42
Validate SameSite cookie attribute against allowed values (#21670)
jorgsowa May 2, 2026
28f668d
ext/standard: Reject null bytes in proc_open() $cwd (#21871)
LamentXU123 May 2, 2026
cb3dc62
ext/spl: Fix SplFixedArray::setSize leak when destructor grows during…
devnexen Apr 30, 2026
86250c0
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 2, 2026
794a35c
Merge branch 'PHP-8.5'
devnexen May 2, 2026
a0d743c
ext/pdo_dblib: Added dblib_handle_check_liveness handler (#21681)
freddy77 Apr 9, 2026
334287d
Fix indentation in UPGRADING
SakiTakamachi May 3, 2026
e228395
Use pemalloc/perealloc for persistent allocations
iliaal Apr 3, 2026
87258eb
ext/phar: Fix path overread from recent refactoring (#21943)
bukka May 4, 2026
d694135
Fix GH-21831: Disallow SplObjectStorage mutation during getHash() (#2…
prateekbhujel May 4, 2026
241767c
ext/session: remove dead condition in session.c (#21939)
jorgsowa May 4, 2026
7192664
Fix GH-21927: Use-after-free of self-freeing MultipleIterator children.
devnexen May 2, 2026
a8f1cef
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 4, 2026
eb34063
Merge branch 'PHP-8.5'
devnexen May 4, 2026
eba954d
ext/phar: Readability Improvements in phar_fancy_stat() (#21865)
LamentXU123 May 4, 2026
2f4a214
ext/standard: Reject null bytes in parse_str() (#21942)
LamentXU123 May 4, 2026
6e87107
ext/mysqlnd: Fix persistent free of non-persistent connect_attr key.
devnexen May 2, 2026
92015ec
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 4, 2026
8d8f5f7
Merge branch 'PHP-8.5'
devnexen May 4, 2026
c94cb02
ext/pcre: simplify pattern info error handling
devnexen Feb 27, 2026
de90598
zend_types: Remove deprecated `Z_*()` macros (#21946)
TimWolla May 5, 2026
ac86e10
Fix compiler warning with GCC 16: variable 'offset' set but not used …
arnaud-lb May 5, 2026
efc4203
ext/pcntl: Ensure `$array` is a list array in `pcntl_exec` (#21951)
LamentXU123 May 5, 2026
631c366
[ci skip] fix NEWS last entry
devnexen May 5, 2026
6872432
Fix incorrect trace stop type
arnaud-lb Apr 27, 2026
5d7a15f
Merge branch 'PHP-8.5'
arnaud-lb May 5, 2026
608c3ed
ext/intl: Use ICU U16_APPEND_UNSAFE macro for UTF-16 surrogate pair e…
LamentXU123 May 5, 2026
e5fa4ec
ext/mysqlnd: Use iterated struct and remove dulicate SET_AFFECTED_ROW…
kamil-tekiela May 5, 2026
6a27514
Fix compiler warning with glibc 2.43 support of C23 const-preserving …
arnaud-lb May 5, 2026
178a5e7
Fix compiler warning with GCC 16: variable 'offset' set but not used …
arnaud-lb May 5, 2026
ac1390f
Fix compiler warning with glibc 2.43 support of C23 const-preserving …
arnaud-lb May 5, 2026
50aebf3
Merge branch 'PHP-8.5'
arnaud-lb May 6, 2026
33caad7
Fix bad merge
arnaud-lb May 6, 2026
45d9684
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 May 6, 2026
72cbc1f
Merge branch 'PHP-8.5'
iluuu1994 May 6, 2026
aee3b3a
GHSA-85c2-q967-79q5: [soap] Fix stale SOAP_GLOBAL(ref_map) pointer wi…
iluuu1994 May 3, 2026
db2a7f9
GHSA-m33r-qmcv-p97q: [soap] Fix use-after-free after header parsing f…
iluuu1994 May 3, 2026
79551ab
GHSA-hmxp-6pc4-f3vv: [soap] Fix broken Apache map value NULL check
iluuu1994 Apr 24, 2026
99a5ad7
GHSA-7qg2-v9fj-4mwv: [fpm] XSS within status endpoint
bukka May 3, 2026
79a054e
GHSA-wm6j-2649-pv75: [mbstring] Fix null pointer dereference in php_m…
vi3tL0u1s May 3, 2026
86bb29d
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 May 6, 2026
a2ee688
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 May 6, 2026
9db4c1a
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 May 6, 2026
257cb3a
Merge branch 'PHP-8.5'
iluuu1994 May 6, 2026
3f40b65
GHSA-w476-322c-wpvm: [pdo_firebird] Fix SQL injection via NUL bytes i…
SakiTakamachi May 3, 2026
0842621
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 May 6, 2026
4cf8fb3
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 May 6, 2026
a02c0ce
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 May 6, 2026
3e57595
Merge branch 'PHP-8.5'
iluuu1994 May 6, 2026
47def8c
GHSA-96wq-48vp-hh57: [metaphone] Fix signed integer overflow of char …
TimWolla May 3, 2026
411c0de
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 May 6, 2026
f5d445e
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 May 6, 2026
3f6f38b
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 May 6, 2026
63dcfb4
Merge branch 'PHP-8.5'
iluuu1994 May 6, 2026
a384187
GHSA-m8rr-4c36-8gq4: Consistently pass unsigned char to ctype.h funct…
iluuu1994 May 3, 2026
398b7da
GHSA-m8rr-4c36-8gq4: Consistently pass unsigned char to ctype.h funct…
iluuu1994 May 6, 2026
dc9e21b
GHSA-m8rr-4c36-8gq4: Consistently pass unsigned char to ctype.h funct…
iluuu1994 May 6, 2026
b8dad93
GHSA-m8rr-4c36-8gq4: Consistently pass unsigned char to ctype.h funct…
iluuu1994 May 6, 2026
529b145
Merge branch 'PHP-8.5'
iluuu1994 May 6, 2026
56ee76f
GHSA-74r9-qxhc-fx53: [mbstring] Fix out-of-bounds access in mbfl_name…
iluuu1994 May 3, 2026
f30cb44
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 May 6, 2026
388f307
Merge branch 'PHP-8.5'
iluuu1994 May 6, 2026
72e3d85
Fix mbstring test with oniguruma deprecation
iluuu1994 May 6, 2026
887e649
[skip ci] Add NEWS entries for 8.2.31 security issues
saundefined May 5, 2026
5f5245c
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 May 6, 2026
e77f582
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 May 6, 2026
7596239
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 May 6, 2026
d056b6e
Merge branch 'PHP-8.5'
iluuu1994 May 6, 2026
e9e41af
PHP-8.2 is now for PHP 8.2.32-dev
saundefined May 6, 2026
e754e7d
Merge branch 'PHP-8.2' into PHP-8.3
saundefined May 6, 2026
80f0661
Merge branch 'PHP-8.3' into PHP-8.4
saundefined May 6, 2026
3ef978f
Merge branch 'PHP-8.4' into PHP-8.5
saundefined May 6, 2026
242fee9
Merge branch 'PHP-8.5'
saundefined May 6, 2026
fee84dd
[skip ci] Adjust credits for GHSA-96wq-48vp-hh57.phpt
iluuu1994 May 6, 2026
cbf6598
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 May 6, 2026
14f2071
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 May 6, 2026
0017e9b
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 May 6, 2026
0173ef4
Merge branch 'PHP-8.5'
iluuu1994 May 6, 2026
32a9fcc
ext/phar: use zend_string for alias arg of phar_open_or_create_filena…
Girgias Apr 30, 2026
78da37f
ext/phar: use zend_string for alias arg of phar_open_or_create_filena…
Girgias Apr 30, 2026
ee14c99
ext/phar: remove const qualifier for alias zend_string param
Girgias Apr 30, 2026
b5b2c5d
ext/phar: use zend_string for alias arg of phar_open_from_fp()
Girgias May 2, 2026
8bec211
ext/phar: remove pphar argument of phar_find_in_include_path() (#21975)
Girgias May 7, 2026
f79f921
Preserve full XMM registers in Windows VM wrapper (#21976)
shivammathur May 7, 2026
359b9a5
Merge branch 'PHP-8.4' into PHP-8.5
shivammathur May 7, 2026
8d0777e
Merge branch 'PHP-8.5'
shivammathur May 7, 2026
f777ce3
ext/phar: use zend_string* for alias argument of phar_open_parsed_pha…
Girgias May 8, 2026
2582710
ext/phar: refactor phar_copy_cached_phar() to return allocated pointe…
Girgias May 8, 2026
eedda2a
Add consumed_args callback optimization and apply to array_reduce() f…
drealecs May 8, 2026
630555f
[skip ci] ext/intl: Remove stale TODO in common_date (#21959)
LamentXU123 May 9, 2026
115eb0f
zend: avoid potential integer overflow in zend_string_concat2 and zen…
LamentXU123 May 9, 2026
0d7a0a4
ext/intl: Throw TypeError for non-stringable timezone objects (#21990)
LamentXU123 May 9, 2026
fe52e5b
[skip ci] Fix the blog link of The Mysterious PHP RFC Process in CONT…
LamentXU123 May 9, 2026
463c5dc
[RFC] Allow __debugInfo() on enums (#21425)
DanielEScherzer May 10, 2026
eb32042
UPGRADING: Document `__debugInfo()` for enums
DanielEScherzer May 10, 2026
e88e049
ext/standard: Fix ip2long in AIX to treat IPs with leading zeros as i…
reshmavk Feb 25, 2026
f340037
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 11, 2026
43b56c9
Merge branch 'PHP-8.5'
devnexen May 11, 2026
769441b
ext/gmp: Emit deprecation for precision-losing float RHS in ** / << /…
LamentXU123 May 11, 2026
b114db0
streams: split filter seekability into read and write fields (#21878)
bukka May 11, 2026
ac8248b
ext/gd: imagebmp_basic.phpt test require PNG support.
orlitzky May 8, 2026
10dad92
Merge branch 'PHP-8.5'
devnexen May 11, 2026
6f1f465
ext/intl: Throw ValueError for invalid break iterator locale type (#2…
LamentXU123 May 12, 2026
8fa692b
Update IR (#22019)
dstogov May 12, 2026
fa7ab23
Merge branch 'PHP-8.4' into PHP-8.5
dstogov May 12, 2026
c2d11de
Merge branch 'PHP-8.5'
dstogov May 12, 2026
6114857
Fix COMMUNITY_asan failure on src/Symfony/Component/HttpClient (#22021)
dstogov May 12, 2026
9e3e41f
Merge branch 'PHP-8.4' into PHP-8.5
dstogov May 12, 2026
061f90a
Merge branch 'PHP-8.5'
dstogov May 12, 2026
ef589ce
JIT: Fix TSSA of ZEND_FE_FETCH_R with key operand
arnaud-lb May 11, 2026
c4aa851
Merge branch 'PHP-8.4' into PHP-8.5
arnaud-lb May 12, 2026
c0af268
Merge branch 'PHP-8.5'
arnaud-lb May 12, 2026
05afc37
JIT: Fix escape_if_undef on PHP-8.4 CALL VM
iliaal May 12, 2026
0dae1e7
Merge branch 'PHP-8.4' into PHP-8.5
iliaal May 13, 2026
bba2dc3
Merge branch 'PHP-8.5'
iliaal May 13, 2026
37bb1c3
ext/gd: fix gh16559 and gh17349 tests
orlitzky May 8, 2026
8680c3d
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 14, 2026
0078a27
Merge branch 'PHP-8.5'
devnexen May 14, 2026
cde32be
sqlite3: fix internal return type violation in escapeString() (#22026)
ndossche May 15, 2026
b89e0ef
Fix GH-22000: Unwrap references in ReflectionProperty::isReadable() (…
zaaarf May 15, 2026
3ed80a1
ext/intl: Migrate formatter, listformatter, and rangeformatter from I…
devnexen May 16, 2026
f1c6357
Deprecate making `__debugInfo()` nullable (#21984)
TimWolla May 16, 2026
10704f0
ext/intl: Fix out-of-bounds argument positions in calendar date/time …
LamentXU123 May 15, 2026
0288015
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 16, 2026
69b9ef2
Merge branch 'PHP-8.5'
devnexen May 16, 2026
d5a57af
ext/xml: Use zend_string_safe_realloc() for cdata concatenation.
devnexen May 15, 2026
c8c48f5
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 16, 2026
51911cc
Merge branch 'PHP-8.5'
devnexen May 16, 2026
438ad64
ext/intl: Expose Spoofchecker restriction-level APIs on all supported…
LamentXU123 May 15, 2026
4f94715
ext/intl: Expose Spoofchecker restriction-level APIs on all supported…
LamentXU123 May 15, 2026
7959359
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 17, 2026
6bc2f9f
Merge branch 'PHP-8.5'
devnexen May 17, 2026
0859e1e
Zend: Fix sizeof(pointer) usage in zend_observer memmove calls (#22054)
crystarm May 17, 2026
7827754
ext/intl: Fix merge conflict markers in spoofchecker_arginfo.h (#22072)
jorgsowa May 17, 2026
2d78489
ext/intl: use PATTERN constant name in dateformat errors
LamentXU123 May 17, 2026
6e2e6e2
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 18, 2026
26504b6
Merge branch 'PHP-8.5'
devnexen May 18, 2026
ed2c6ba
ext/intl: fix build due to 2d78489 merge.
devnexen May 18, 2026
1603252
Merge branch 'PHP-8.5'
devnexen May 18, 2026
33a49bb
ext/dom: Fix UAF in custom XPath function
afflerbach May 18, 2026
27d2555
Merge branch 'PHP-8.5'
devnexen May 18, 2026
fa3b5a1
* ext/intl: master community build fix (attempt). (#22080)
devnexen May 18, 2026
a791534
[ext/standard] Specialize array_sum()/array_product() for long arrays…
mehmetcansahin May 18, 2026
f99989f
ext/phar: improve .phar madic directory preservation logic in phar::a…
LamentXU123 May 18, 2026
48d588d
ext/session: reject null bytes in session.cookie_path, session.cookie…
jorgsowa May 18, 2026
0a03d10
ext/pcre: fix duplicate MARK key in matches array
iliaal May 12, 2026
3a8307d
Fix compiler warning with glibc 2.43 support of C23 const-preserving …
arnaud-lb May 13, 2026
ea8487d
Merge branch 'PHP-8.4' into PHP-8.5
arnaud-lb May 18, 2026
6c0efb7
Merge branch 'PHP-8.5'
arnaud-lb May 18, 2026
bb73942
uri: Update to uriparser-1.0.2 (#22070)
TimWolla May 18, 2026
62b9ce9
Merge branch 'PHP-8.5'
TimWolla May 18, 2026
2c32bdf
Fix GH-22023 crash during ZTS thread startup (#22027)
shivammathur May 18, 2026
05574fc
Merge branch 'PHP-8.5'
shivammathur May 18, 2026
06bfe15
Fix tailcall helper dispatch after VM interrupt
morrisonlevi Apr 30, 2026
fc450ae
Merge branch 'PHP-8.5'
arnaud-lb May 18, 2026
09ca095
Fix GH-18422: int overflow in php_date_llabs
iliaal May 18, 2026
1746b58
Merge branch 'PHP-8.4' into PHP-8.5
iliaal May 18, 2026
696ea50
Merge branch 'PHP-8.5'
iliaal May 18, 2026
d6b7bd0
Fix GH-22062: SplDoublyLinkedList iterator UAF via destructor releasi…
devnexen May 16, 2026
ad7cce6
zend_portability: Add `ZEND_CONTAINER_OF()` (#21903)
TimWolla May 19, 2026
5212b81
zend_objects: Make old_object a const* in `zend_objects_clone_member…
TimWolla May 19, 2026
27ead91
ext/session: secure session configuration defaults (RFC) (#21938)
jorgsowa May 19, 2026
945b9e9
PHP-8.4 is now for PHP 8.4.23-dev
SakiTakamachi May 19, 2026
1687d81
Merge branch 'PHP-8.4' into PHP-8.5
SakiTakamachi May 19, 2026
5394a8a
Merge branch 'PHP-8.5'
SakiTakamachi May 19, 2026
a846c8f
PHP-8.5 is now for PHP 8.5.8-dev
edorian May 19, 2026
7f7238e
Merge branch 'PHP-8.5'
edorian May 19, 2026
f5db09d
ext/soap: Fix integer overflow when decoding SOAP array indexes
LamentXU123 May 9, 2026
9d72072
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 19, 2026
4c027ea
Merge branch 'PHP-8.5'
devnexen May 19, 2026
b2de3cf
Fix GH-21986: PharData::getContent() crash on infinite recursion with…
devnexen May 8, 2026
71eff10
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 19, 2026
0e34806
Merge branch 'PHP-8.5'
devnexen May 19, 2026
f51c8d5
ext/phar: fix for GH-21986 for master
devnexen May 19, 2026
1088c7d
Make curl brotli and zstd optional on Windows (#21925)
shivammathur May 20, 2026
6fe086a
Merge branch 'PHP-8.2' into PHP-8.3
shivammathur May 20, 2026
6e90c02
Merge branch 'PHP-8.3' into PHP-8.4
shivammathur May 20, 2026
c288b40
Merge branch 'PHP-8.4' into PHP-8.5
shivammathur May 20, 2026
27a7298
Merge branch 'PHP-8.5'
shivammathur May 20, 2026
a03961b
Switch to VS18 for the master branch (#22094)
shivammathur May 20, 2026
f3938c3
Merge branch 'PHP-8.2' into PHP-8.3
shivammathur May 20, 2026
8708c9d
Merge branch 'PHP-8.3' into PHP-8.4
shivammathur May 20, 2026
3ec0670
Merge branch 'PHP-8.4' into PHP-8.5
shivammathur May 20, 2026
900afbb
Merge branch 'PHP-8.5'
shivammathur May 20, 2026
38e0aca
Fix GH-22071: JIT assertion on abstract static method call.
devnexen May 18, 2026
755f4e6
Merge branch 'PHP-8.5'
devnexen May 20, 2026
27d593e
ext/intl: Fix argument position for uninitialized calendar arguments
LamentXU123 May 18, 2026
87efb35
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 21, 2026
cd2e060
Merge branch 'PHP-8.5'
devnexen May 21, 2026
8e3befd
Fix Windows clang VM handler declaration (#22103)
shivammathur May 21, 2026
c56f5ad
Merge branch 'PHP-8.5'
shivammathur May 21, 2026
c4105b6
[skip ci] Add classification section to SECURITY.md (GH-22109)
iluuu1994 May 22, 2026
b0ef5fc
zlib: fix memory leak if deflate initialization fails and there is a …
ndossche May 20, 2026
ba9dfa7
Merge branch 'PHP-8.4' into PHP-8.5
ndossche May 22, 2026
a544b8b
Merge branch 'PHP-8.5'
ndossche May 22, 2026
6b68d94
Fix GH-22121: double-free in gdImageSetStyle() after overflow early r…
iliaal May 22, 2026
89f7cbd
Merge branch 'PHP-8.4' into PHP-8.5
iliaal May 22, 2026
e22ba55
Merge branch 'PHP-8.5'
iliaal May 22, 2026
946d687
ext/intl: fix IntlListFormatter object error state after format() fai…
LamentXU123 May 22, 2026
cd55746
Merge branch 'PHP-8.5'
devnexen May 24, 2026
eeb12a4
ext/Intl: Return PHP_INT_MIN as int from MessageFormatter::parse() on…
LamentXU123 May 24, 2026
6cc51fe
ext/curl: Use CHECK_HEADER (#22106)
petk May 24, 2026
900797e
ext/intl: various optimization (#22069)
LamentXU123 May 24, 2026
b92c1a7
[ci skip] ext/session: add missing NEWS entries (#22098)
jorgsowa May 24, 2026
5f2ed88
main: remove OPENBASEDIR_CHECKPATH() compatibility macro (#22140)
Girgias May 24, 2026
17b262e
ext/getopt.c: simplify and cleanup (#22139)
DanielEScherzer May 24, 2026
7727193
zlib: fix test skipif sections (#22099)
ndossche May 24, 2026
daa9b09
Merge branch 'PHP-8.4' into PHP-8.5
ndossche May 24, 2026
5fd337e
Merge branch 'PHP-8.5'
ndossche May 24, 2026
ec8342c
Fix GH-19666: imageconvolution() unexpected nan filter value.
devnexen May 22, 2026
1414ae6
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 24, 2026
825e734
Merge branch 'PHP-8.5'
devnexen May 24, 2026
7500c86
ext/intl: fix deprecation warning for GH-19666 test.
devnexen May 24, 2026
973d511
Merge branch 'PHP-8.5'
devnexen May 24, 2026
5dd3909
Fix GH-19739: imageellipse/imagefilledellipse overflow.
devnexen May 22, 2026
4659762
Merge branch 'PHP-8.4' into PHP-8.5
devnexen May 24, 2026
68d01d2
Merge branch 'PHP-8.5'
devnexen May 24, 2026
27d7b79
Add lxb_url_is_special to the public API of Lexbor (#22093)
kocsismate May 24, 2026
f58b95e
ini_get_all(): Add `builtin_default_value` column (#22134)
sebastianbergmann May 24, 2026
1bf64ce
Implement "Followup improvements for ext/uri" RFC - URI type detectio…
kocsismate May 24, 2026
d8a5aec
Implement "Followup improvements for ext/uri" RFC - Host type detecti…
kocsismate May 24, 2026
6cdf46f
openssl: Introduce TLS PSK support
bukka May 15, 2026
9e1b285
Fix GH-22142: Assertion failure in zendi_try_get_long() on IS_UNDEF.
devnexen May 25, 2026
dc4f19e
[skip ci] Remove PECL build
iluuu1994 May 8, 2026
2a9aedd
Merge branch 'PHP-8.2' into PHP-8.3
iluuu1994 May 26, 2026
cc0e5d3
Merge branch 'PHP-8.3' into PHP-8.4
iluuu1994 May 26, 2026
7260b27
Merge branch 'PHP-8.4' into PHP-8.5
iluuu1994 May 26, 2026
5a9f7c5
Merge branch 'PHP-8.5'
iluuu1994 May 26, 2026
3447c58
Zend: no need to fetch method name for constructor (#22153)
Girgias May 26, 2026
533162d
ext/intl: document IntlBreakIterator::getPartsIterator() $type change…
jordikroon May 26, 2026
b012b68
Bound-Erased Generic Types Implementation
azjezz May 10, 2026
8612f88
fix deriving concrete type enforcement
withinboredom May 19, 2026
44c4472
monomorphize class generics
withinboredom May 19, 2026
4f26aae
reify method/functions
withinboredom May 19, 2026
a83635d
more reification
withinboredom May 19, 2026
6548d32
add benchmarks
withinboredom May 19, 2026
2a97708
finish instanceof/catch impl
withinboredom May 20, 2026
5c5d8d4
documentation
withinboredom May 20, 2026
288a27c
get opcache working-ish
withinboredom May 20, 2026
e3933b3
optimize turbofish
withinboredom May 20, 2026
b05e2dc
so many fixes...
withinboredom May 22, 2026
5ad9c0d
fix synthesis inside generic methods
withinboredom May 23, 2026
0db2304
fix inheritance chaining
withinboredom May 23, 2026
9f7f681
cache resolved monomorph per call site for new X::<...>
henderkes Jun 15, 2026
9e661f1
Cache non-turbofish tables, turbofish lookups, concrete monomorphs
henderkes Jun 15, 2026
f563dd2
Monomorphize generic function/method calls (reified generics)
henderkes Jun 16, 2026
9135e2f
fix tests
henderkes Jun 16, 2026
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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
11 changes: 5 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ jobs:
arm:
resource_class: arm.medium
docker:
- image: cimg/base:current-22.04
- image: mysql:8.3
- image: cimg/base:current-24.04
- image: mysql:8.4
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: true
MYSQL_ROOT_PASSWORD: ''
Expand Down Expand Up @@ -60,7 +60,7 @@ jobs:
libreadline-dev \
libldap2-dev \
libsodium-dev \
libargon2-0-dev \
libargon2-dev \
libmm-dev \
libsnmp-dev \
snmpd \
Expand All @@ -78,7 +78,7 @@ jobs:
libqdbm-dev \
libjpeg-dev \
libpng-dev \
libfreetype6-dev
libfreetype-dev
- run:
name: ./configure
command: |
Expand All @@ -90,7 +90,6 @@ jobs:
--prefix=/usr \
--enable-phpdbg \
--enable-fpm \
--enable-opcache \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pgsql \
Expand Down Expand Up @@ -167,8 +166,8 @@ jobs:
name: Test
no_output_timeout: 30m
command: |
export RUN_RESOURCE_HEAVY_TESTS=1
sapi/cli/php run-tests.php \
-d zend_extension=opcache.so \
-d opcache.enable_cli=1 \
-d opcache.jit_buffer_size=64M \
-d opcache.jit=tracing \
Expand Down
2 changes: 1 addition & 1 deletion .gdbinit
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ define print_cvs

printf "Compiled variables count: %d\n\n", $cv_count
while $cv_idx < $cv_count
printf "[%d] '%s'\n", $cv_idx, $cv[$cv_idx].val
printf "[%d] '$%s'\n", $cv_idx, $cv[$cv_idx].val@$cv[$cv_idx].len
set $zvalue = ((zval *) $cv_ex_ptr) + $callFrameSize + $cv_idx
printzv $zvalue
set $cv_idx = $cv_idx + 1
Expand Down
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

# Collapse generated files within git and pull request diff.
**/*_arginfo.h linguist-generated -diff
**/*_decl.h linguist-generated -diff
/main/debug_gdb_scripts.c linguist-generated -diff
/Zend/zend_vm_execute.h linguist-generated -diff
/Zend/zend_vm_handlers.h linguist-generated -diff
Expand Down
22 changes: 11 additions & 11 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 @Girgias @nielsdos @SakiTakamachi
/ext/bcmath @SakiTakamachi
/ext/curl @adoy
/ext/date @derickr
/ext/dba @Girgias
/ext/dom @nielsdos
/ext/dom @devnexen
/ext/ffi @dstogov
/ext/gd @devnexen
/ext/gettext @devnexen
/ext/gmp @Girgias
/ext/intl @devnexen
/ext/libxml @devnexen
/ext/json @bukka
/ext/lexbor @kocsismate @nielsdos
/ext/libxml @nielsdos
/ext/lexbor @kocsismate
/ext/mbstring @alexdowad @youkidearitai
/ext/mysqli @bukka @kamil-tekiela
/ext/mysqlnd @bukka @kamil-tekiela @SakiTakamachi
Expand All @@ -47,16 +47,16 @@
/ext/random @TimWolla @zeriyoshi
/ext/reflection @DanielEScherzer
/ext/session @Girgias
/ext/simplexml @nielsdos
/ext/soap @nielsdos
/ext/simplexml @devnexen
/ext/soap @devnexen
/ext/sockets @devnexen
/ext/spl @Girgias
/ext/standard @bukka
/ext/uri @kocsismate
/ext/xml @nielsdos
/ext/xmlreader @nielsdos
/ext/xmlwriter @nielsdos
/ext/xsl @nielsdos
/ext/uri @kocsismate @TimWolla
/ext/xml @devnexen
/ext/xmlreader @devnexen
/ext/xmlwriter @devnexen
/ext/xsl @devnexen
/main @bukka
/sapi/fpm @bukka
/Zend/Optimizer @dstogov
Expand Down
11 changes: 6 additions & 5 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,15 @@ body:
attributes:
label: PHP Version
description: |
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.
Please run PHP with the `-v` flag (e.g. `php -v`, `php8.5 -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.

Please make sure that the used PHP version [is a supported version](https://www.php.net/supported-versions.php).
placeholder: |
PHP 8.3.19 (cli) (built: Mar 13 2025 17:44:40) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.19, Copyright (c) Zend Technologies
with Zend OPcache v8.3.19, Copyright (c), by Zend Technologies
PHP 8.5.2 (cli) (built: Jan 21 2026 17:35:28) (NTS)
Copyright © The PHP Group and Contributors
Built by Ubuntu
Zend Engine v4.5.2, Copyright © Zend by Perforce
with Zend OPcache v8.5.2, Copyright ©, Zend by Perforce
render: plain
validations:
required: true
Expand Down
11 changes: 9 additions & 2 deletions .github/actions/apk/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ runs:
run: |
set -x

OPCACHE_TLS_TESTS_DEPS="clang gcc binutils-gold lld"
# compiler-rt provides libclang_rt.asan-x86_64.a for clang20
# https://pkgs.alpinelinux.org/contents?file=libclang_rt.asan-x86_64.a&path=&name=&branch=v3.22
ASAN_DEPS="clang20 compiler-rt"

apk update -q
apk add \
util-linux \
Expand Down Expand Up @@ -50,7 +55,9 @@ runs:
net-snmp-dev \
openldap-dev \
unixodbc-dev \
postgresql14-dev \
postgresql-dev \
tzdata \
musl-locales \
musl-locales-lang
musl-locales-lang \
$OPCACHE_TLS_TESTS_DEPS \
$ASAN_DEPS
6 changes: 4 additions & 2 deletions .github/actions/apt-x32/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ runs:
run: |
set -x

OPCACHE_TLS_TESTS_DEPS="gcc clang lld"

export DEBIAN_FRONTEND=noninteractive
dpkg --add-architecture i386
apt-get update -y | true
Expand Down Expand Up @@ -35,7 +37,6 @@ runs:
libssl-dev:i386 \
libwebp-dev:i386 \
libxml2-dev:i386 \
libxml2-dev:i386 \
libxpm-dev:i386 \
libxslt1-dev:i386 \
firebird-dev:i386 \
Expand All @@ -45,4 +46,5 @@ runs:
re2c \
unzip \
wget \
zlib1g-dev:i386
zlib1g-dev:i386 \
$OPCACHE_TLS_TESTS_DEPS
5 changes: 4 additions & 1 deletion .github/actions/apt-x64/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ runs:
run: |
set -x

OPCACHE_TLS_TESTS_DEPS="gcc clang lld"

export DEBIAN_FRONTEND=noninteractive

# Install sudo in Docker for consistent actions
Expand Down Expand Up @@ -74,4 +76,5 @@ runs:
libqdbm-dev \
libjpeg-dev \
libpng-dev \
libfreetype6-dev
libfreetype6-dev \
$OPCACHE_TLS_TESTS_DEPS
13 changes: 10 additions & 3 deletions .github/actions/brew/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,18 @@ runs:

# Some packages exist on x86 but not arm, or vice versa.
# Install them with reinstall to avoid warnings.
brew reinstall autoconf webp tidy-html5 libzip libsodium icu4c curl
brew install \
brew reinstall -v \
autoconf \
webp \
tidy-html5 \
libzip \
libsodium \
icu4c \
curl
brew install -v \
bison \
re2c
brew install \
brew install -v \
bzip2 \
enchant \
libffi \
Expand Down
6 changes: 1 addition & 5 deletions .github/actions/build-libmysqlclient/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ inputs:
required: false
libmysql:
required: true
withMysqli:
required: true
runs:
using: composite
steps:
Expand All @@ -21,13 +19,11 @@ runs:
wget -nv $URL
tar -xf $LIBMYSQL --strip-components=1 -C $MYSQL_DIR
PDO_MYSQL=${MYSQL_DIR}
${{ inputs.withMysqli == 'true' && 'MYSQLI=${MYSQL_DIR}/bin/mysql_config' || '' }}
./buildconf --force
./configure ${{ inputs.configurationParameters }} \
--enable-option-checking=fatal \
--disable-all \
--enable-pdo \
--with-pdo-mysql=${PDO_MYSQL} \
${{ inputs.withMysqli == 'true' && '--with-mysqli=${MYSQLI}' || '' }}
--with-pdo-mysql=${PDO_MYSQL}
make clean
make -j$(/usr/bin/nproc) >/dev/null
39 changes: 39 additions & 0 deletions .github/actions/ccache/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: ccache
inputs:
name:
required: true
php_directory:
required: false
default: '.'
cc:
required: false
default: 'gcc'
cxx:
required: false
default: 'g++'
runs:
using: composite
steps:
- name: Get cache key
shell: bash
id: cache_key
run: |
major=$(cat ${{ inputs.php_directory }}/main/php_version.h | sed -En 's/^#define PHP_MAJOR_VERSION ([0-9]+)/\1/p')
minor=$(cat ${{ inputs.php_directory }}/main/php_version.h | sed -En 's/^#define PHP_MINOR_VERSION ([0-9]+)/\1/p')
release=$(cat ${{ inputs.php_directory }}/main/php_version.h | sed -En 's/^#define PHP_RELEASE_VERSION ([0-9]+)/\1/p')
week=$(date +"%Y-%W")
prefix="${{ inputs.name }}-$major.$minor.$release"
echo "key=$prefix-$week" >> $GITHUB_OUTPUT
echo "prefix=$prefix-" >> $GITHUB_OUTPUT
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: "${{ steps.cache_key.outputs.key }}"
append-timestamp: false
restore-keys: "${{ steps.cache_key.outputs.prefix }}"
save: ${{ github.event_name != 'pull_request' }}
- name: Export CC/CXX
shell: bash
run: |
echo "CC=ccache ${{ inputs.cc }}" >> $GITHUB_ENV
echo "CXX=ccache ${{ inputs.cxx }}" >> $GITHUB_ENV
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@1.1/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/openssl/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
10 changes: 10 additions & 0 deletions .github/actions/configure-unit-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: ./configure (unit tests)
description: Configure PHP with minimal settings for unit testing
runs:
using: composite
steps:
- shell: bash
run: |
set -x
./buildconf --force
./configure --disable-all --enable-embed=static
7 changes: 7 additions & 0 deletions .github/actions/extra-tests/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: Extra tests
runs:
using: composite
steps:
- shell: sh
run: |
sapi/cli/php run-extra-tests.php
34 changes: 25 additions & 9 deletions .github/actions/freebsd/action.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,28 @@
name: FreeBSD
inputs:
configurationParameters:
default: ''
required: false
runExtraTests:
default: false
required: false
runs:
using: composite
steps:
- name: FreeBSD
uses: vmactions/freebsd-vm@v1
with:
release: '13.3'
release: '13.5'
usesh: true
copyback: false
disable-cache: true
# Temporarily disable sqlite, as FreeBSD ships it with disabled double quotes. We'll need to fix our tests.
# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269889
prepare: |
cd $GITHUB_WORKSPACE

OPCACHE_TLS_TESTS_DEPS="gcc"

kldload accf_http
pkg install -y \
autoconf \
Expand All @@ -36,18 +46,18 @@ runs:
pkgconf \
webp \
libavif \
`#sqlite3` \
curl
sqlite3 \
curl \
$OPCACHE_TLS_TESTS_DEPS

./buildconf -f
CC=clang CXX=clang++ \
./configure \
--prefix=/usr/local \
--enable-debug \
--enable-option-checking=fatal \
--enable-fpm \
`#--with-pdo-sqlite` \
--without-sqlite3 \
--without-pdo-sqlite \
--with-pdo-sqlite \
--without-pear \
--with-bz2 \
--with-avif \
Expand Down Expand Up @@ -80,7 +90,9 @@ runs:
--with-sodium \
--enable-werror \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d
--with-config-file-scan-dir=/etc/php.d \
${{ inputs.configurationParameters }}

gmake -j2
mkdir /etc/php.d
gmake install > /dev/null
Expand All @@ -93,12 +105,16 @@ runs:
export SKIP_IO_CAPTURE_TESTS=1
export CI_NO_IPV6=1
export STACK_LIMIT_DEFAULTS_CHECK=1
export RUN_RESOURCE_HEAVY_TESTS=1
sapi/cli/php run-tests.php \
-P -q -j2 \
-g FAIL,BORK,LEAK,XLEAK \
--no-progress \
--offline \
--show-diff \
--show-slow 1000 \
--set-timeout 120 \
-d zend_extension=opcache.so
--set-timeout 120

if test "${{ inputs.runExtraTests }}" = "true"; then
sapi/cli/php run-extra-tests.php
fi
Loading