Skip to content
Closed
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
4516 commits
Select commit Hold shift + click to select a range
f52da75
Merge branch 'PHP-8.5'
Feb 24, 2026
ff73aec
Merge branch 'PHP-8.4' into PHP-8.5
Feb 24, 2026
68d96e3
Merge branch 'PHP-8.5'
Feb 24, 2026
ee1e5f2
PHP-8.5 is now for PHP 8.5.5-dev
Feb 24, 2026
27a88a3
Merge branch 'PHP-8.5'
Feb 24, 2026
8206eb1
Merge branch 'PHP-8.4' into PHP-8.5
Feb 24, 2026
4156b52
Merge branch 'PHP-8.5'
Feb 24, 2026
022793e
Fix missed php_version changes
Feb 24, 2026
9a76133
Merge branch 'PHP-8.5'
Feb 24, 2026
955f82f
Merge branch 'PHP-8.4' into PHP-8.5
Feb 24, 2026
300892a
Merge branch 'PHP-8.5'
Feb 24, 2026
d7f2ff3
Merge branch 'PHP-8.4' into PHP-8.5
Feb 24, 2026
6f2ccd4
Merge branch 'PHP-8.5'
Feb 24, 2026
c2d204b
Merge branch 'PHP-8.4' into PHP-8.5
Feb 24, 2026
5fc9d9d
Merge branch 'PHP-8.5'
Feb 24, 2026
908723a
Merge branch 'PHP-8.4' into PHP-8.5
Feb 25, 2026
031b4c6
Merge branch 'PHP-8.5'
Feb 25, 2026
5bd1bbd
ext/pcre: Fix preg_grep() returning partial array instead of false on…
Feb 26, 2026
e045b88
run-tests.php: Use PHP_SHLIB_SUFFIX (#21301)
Feb 26, 2026
9b01f51
ext/pcntl: Reject negative values in pcntl_alarm()
Feb 23, 2026
5406176
Merge branch 'PHP-8.4' into PHP-8.5
Feb 26, 2026
9cc1d32
Merge branch 'PHP-8.5'
Feb 26, 2026
e64e8b0
ext/pcre: fix new pcre2 test
Feb 26, 2026
7bc80c0
Merge branch 'PHP-8.5'
Feb 26, 2026
f46bc8e
ext/mbstring: Replace RETVAL_TRUE/RETVAL_FALSE with RETVAL_BOOL (#21276)
Feb 26, 2026
8a907a9
ext/sodium: Add support for libsodium 1.0.21 APIs (#20960)
Feb 27, 2026
7a105ec
Merge branch 'PHP-8.4' into PHP-8.5
Feb 27, 2026
1b106df
Merge branch 'PHP-8.5'
Feb 27, 2026
fbb822f
Merge branch 'PHP-8.4' into PHP-8.5
Feb 27, 2026
7923dc2
Merge branch 'PHP-8.5'
Feb 27, 2026
e4f727d
Implement ReflectionProperty::is{Readable,Writable}()
Oct 3, 2024
07e29ac
Merge branch 'PHP-8.4' into PHP-8.5
Feb 27, 2026
073dcf6
Merge branch 'PHP-8.5'
Feb 27, 2026
be6038a
[skip ci] Also add ReflectionProperty::is{Readable,Writable}() to NEWS
Feb 27, 2026
3842168
Merge branch 'PHP-8.4' into PHP-8.5
Feb 27, 2026
4b0a4f4
Merge branch 'PHP-8.5'
Feb 27, 2026
27e12b5
ext/pcre: drop negative-length match tests
Feb 26, 2026
d1ff85f
Merge branch 'PHP-8.5'
Feb 27, 2026
7a8a863
Merge branch 'PHP-8.4' into PHP-8.5
Feb 27, 2026
114c0d6
Merge branch 'PHP-8.5'
Feb 27, 2026
9248a6c
Merge branch 'PHP-8.4' into PHP-8.5
Feb 27, 2026
c68ede9
Merge branch 'PHP-8.5'
Feb 27, 2026
b2bc70c
Update time periods in mbstring section of EXTENSIONS
Feb 28, 2026
9200768
Merge branch 'PHP-8.4' into PHP-8.5
Feb 28, 2026
15a58cf
Merge branch 'PHP-8.5'
Feb 28, 2026
2bbca7c
Merge branch 'PHP-8.4' into PHP-8.5
Feb 28, 2026
2fd3433
Merge branch 'PHP-8.5'
Feb 28, 2026
1da8ff9
Merge branch 'PHP-8.4' into PHP-8.5
Mar 2, 2026
41c436a
Merge branch 'PHP-8.5'
Mar 2, 2026
56d515a
Merge branch 'PHP-8.4' into PHP-8.5
Mar 2, 2026
ffd58ea
Merge branch 'PHP-8.5'
Mar 2, 2026
fa3c8ee
Merge branch 'PHP-8.4' into PHP-8.5
Mar 2, 2026
daf1d32
Merge branch 'PHP-8.5'
Mar 2, 2026
11e625f
Empty merge
Mar 2, 2026
043ade6
Updated to version 2026.1 (2026a)
Mar 2, 2026
5ca1598
Empty merge
Mar 2, 2026
832a5ea
Updated to version 2026.1 (2026a)
Mar 2, 2026
2107042
Merge branch 'PHP-8.4' into PHP-8.5
Mar 2, 2026
bfd66bb
Merge branch 'PHP-8.5'
Mar 2, 2026
a83c025
Use zend_always_inline for frameless function template functions (GH-…
Mar 2, 2026
f17c5ad
Windows build: Add new function CHECK_HEADER() (#21191)
Mar 3, 2026
84b0a73
Fix GH-13204: glob() fails if square bracket is in current directory …
Mar 3, 2026
0e2cc18
Merge branch 'PHP-8.4' into PHP-8.5
Mar 3, 2026
c7824b3
Merge branch 'PHP-8.5'
Mar 3, 2026
7a1c261
[RFC] Add grapheme_strrev function (#20949)
Mar 4, 2026
099769d
Merge branch 'PHP-8.4' into PHP-8.5
Mar 4, 2026
ce1cadb
Fix Solaris tests and add nightly CI job
Dec 12, 2025
5307a67
Merge branch 'PHP-8.5'
Mar 4, 2026
471ae15
Fix incorrect zend_hash_find_ptr() on non-ptr in ReflectionProperty::…
Mar 4, 2026
11a9574
Convert more zend_parse_parameters_none() to fast ZPP (#21330)
Mar 4, 2026
7e78b0f
Add support for generating the namespace for the manual (#21313)
Mar 5, 2026
c506142
Merge branch 'PHP-8.5'
Mar 5, 2026
d08d80c
Merge branch 'PHP-8.4' into PHP-8.5
Mar 5, 2026
39f1ed4
Merge branch 'PHP-8.5'
Mar 5, 2026
449361a
Fix GH-21333: use-after-free when unlinking entries during iteration …
Mar 3, 2026
77925b9
Merge branch 'PHP-8.5'
Mar 5, 2026
1d7cddd
Merge branch 'PHP-8.4' into PHP-8.5
Mar 6, 2026
806e0d0
Merge branch 'PHP-8.5'
Mar 6, 2026
f99ca63
Windows build: Use GREP_HEADER() instead of CHECK_FUNC_IN_HEADER() (#…
Mar 6, 2026
37fbbbc
Merge branch 'PHP-8.4' into PHP-8.5
Mar 7, 2026
61fd5ce
Merge branch 'PHP-8.5'
Mar 7, 2026
1177670
Merge branch 'PHP-8.4' into PHP-8.5
Mar 7, 2026
242445e
Merge branch 'PHP-8.5'
Mar 7, 2026
c2a1d39
Merge branch 'PHP-8.4' into PHP-8.5
Mar 7, 2026
be8ac28
Merge branch 'PHP-8.5'
Mar 7, 2026
ceae788
Merge branch 'PHP-8.4' into PHP-8.5
Mar 7, 2026
873468c
Merge branch 'PHP-8.5'
Mar 7, 2026
10e02b0
Merge branch 'PHP-8.4' into PHP-8.5
Mar 7, 2026
f2d96c8
Merge branch 'PHP-8.5'
Mar 7, 2026
f830fa9
Sockets refactoring 2026 (#21365)
Mar 7, 2026
58acc67
ext/mbstring: Fix deprecation warning (#21363)
Mar 7, 2026
eedbffe
Empty some values of mysqli_get_charset() (#21361)
Mar 7, 2026
53e31d5
Fix GH-21362: ReflectionMethod::invoke() allows different Closures (#…
Mar 8, 2026
c56e8ca
ext/pgsql, ext/pdo_pgsql: Remove preprocessor guards for symbols pred…
Mar 8, 2026
b0470d1
Merge branch 'PHP-8.4' into PHP-8.5
Mar 9, 2026
148dc1d
Merge branch 'PHP-8.5'
Mar 9, 2026
ff3f59b
Fix incorrect property_info sizing for locally shadowed trait properties
Mar 6, 2026
cccc548
Merge branch 'PHP-8.5'
Mar 9, 2026
f38058d
ext/pcntl: Bump num_signals to uint16_t (#21347)
Mar 9, 2026
06f9389
Update NEWS for pcntl fix [skip ci]
Mar 9, 2026
d81db0b
Merge branch 'PHP-8.5'
Mar 9, 2026
0155b50
phar: Fix const-generic compile warnings
Mar 9, 2026
da1e89f
RFC: Add Form Feed in Trim Functions (#20788)
Mar 9, 2026
8bff644
Zend: remove unused scope parameter of add_intersection_type()
Mar 9, 2026
6880a6c
Zend: mark scope parameter of zend_type_to_string_resolved() const
Mar 9, 2026
2b20627
Zend: mark zend_perform_covariant_type_check() as static
Mar 9, 2026
032e5f6
Zend: mark arg_info parameters of zend_do_perform_arg_type_hint_check…
Mar 9, 2026
1096ea1
Zend: mark variable as const
Mar 9, 2026
f93b170
Zend: inherit interfaces early (#18622)
Mar 9, 2026
f29bc08
reflection: Remove `_DO_THROW()` macro (#21399)
Mar 10, 2026
6e664a0
reflection: Check against the known string in `is_closure_invoke()` (…
Mar 10, 2026
3b8aac8
Merge branch 'PHP-8.4' into PHP-8.5
Mar 10, 2026
6409235
Merge branch 'PHP-8.5'
Mar 10, 2026
14f0f86
Merge branch 'PHP-8.4' into PHP-8.5
Mar 10, 2026
98ededc
Merge branch 'PHP-8.5'
Mar 10, 2026
bc0871d
Merge branch 'PHP-8.4' into PHP-8.5
Mar 10, 2026
d305591
Merge branch 'PHP-8.5'
Mar 10, 2026
f33091c
Merge branch 'PHP-8.4' into PHP-8.5
Mar 10, 2026
9a73c00
Merge branch 'PHP-8.5'
Mar 10, 2026
7f20223
ext/soap: use zend_string_equals_literal() instead of strcmp() (#21405)
Mar 10, 2026
f04873c
Merge branch 'PHP-8.4' into PHP-8.5
Mar 10, 2026
ed88724
Merge branch 'PHP-8.5'
Mar 10, 2026
c658d3c
ext/pgsql: use smart_str_append_double() instead of snprintf call (#2…
Mar 11, 2026
35ee95a
Merge branch 'PHP-8.4' into PHP-8.5
Mar 11, 2026
79556df
Merge branch 'PHP-8.5'
Mar 11, 2026
13b83a4
Bump libtool to serial 63 from 2.5.4 (#21067)
Mar 11, 2026
a3f486d
Merge branch 'PHP-8.4' into PHP-8.5
Mar 11, 2026
8b7c70d
Merge branch 'PHP-8.5'
Mar 11, 2026
113893b
Zend: create a IS_VOID type AST rather a string (#21415)
Mar 11, 2026
28c6659
dom: Simplify return value management of xpath callback
Mar 11, 2026
46357cb
dom: Merge declaration and assignment
Mar 11, 2026
b0aa6b9
ext/soap: various optimisations
Mar 12, 2026
757dadc
Merge branch 'PHP-8.4' into PHP-8.5
Mar 12, 2026
e9b3ea8
Merge branch 'PHP-8.5'
Mar 12, 2026
ed3eb85
Merge branch 'PHP-8.4' into PHP-8.5
Mar 12, 2026
a026333
Merge branch 'PHP-8.5'
Mar 12, 2026
5ccaccd
ext/reflection: Use smart_str_append instead of smart_str_appendl (#2…
Mar 13, 2026
44d4f0e
ext/soap: Use smart_str_appends() instead of smart_str_appendl(..., s…
Mar 13, 2026
80b1ede
[skip ci] Fix uninitialized fn_flags2 for internal functions
Mar 13, 2026
92ba1e4
Prevent closing of innerstream of php://temp stream
Feb 15, 2026
a2fc8fe
ext/openssl: openssl: use zend_string_init() instead of manual alloca…
Mar 14, 2026
31962aa
ext/pgsql: Enable lo_tell64/lo_truncate64 by removing dead VE_PG_LO64…
Mar 14, 2026
a5ffcf3
Use zend_string_init_fast() for single-character string creation (#21…
Mar 14, 2026
006f141
ext/phar: Use zend_string_concat2 instead of manual zend_string_alloc…
Mar 14, 2026
605c075
ext/zip: add ZipArchive::openString() method
Apr 29, 2024
e0ac74f
Merge branch 'PHP-8.4' into PHP-8.5
Mar 14, 2026
c197fad
Merge branch 'PHP-8.5'
Mar 14, 2026
91134db
ReflectionFiber::getCallable(): remove stray backslash (#21439)
Mar 14, 2026
277a016
Merge branch 'PHP-8.4' into PHP-8.5
Mar 14, 2026
7e16d4e
Merge branch 'PHP-8.5'
Mar 14, 2026
4561e92
Fix ReflectionMethod::invoke() for first class callables (#21389)
Mar 15, 2026
3927630
Remove unused config.h inclusion in SAPIs (#21377)
Mar 15, 2026
45157d2
ext/zip: Remove unreachable break after RETURN_STRING (#21458)
Mar 16, 2026
f44609c
ext/standard: Remove unreachable break after RETURN_STRING (#21459)
Mar 16, 2026
0039af0
Propagate bind error for stream_socket_server()
Mar 3, 2026
a8543df
Convert remaining zend_parse_parameters_none() to ZPP (#21343)
Mar 16, 2026
a1d8e52
gen_stub: drop unused parameter in `ConstInfo::getClassConstDeclarati…
Sep 4, 2025
8ee5a52
gen_stub: polyfill and use `array_any()`
Sep 4, 2025
777fa5d
gen_stub: fix typo `$minPHPCompatability` to `$minPHPCompatibility`
Sep 4, 2025
f1dd3f2
gen_stub: move `generateArgInfoCode()` into `FileInfo`
Mar 14, 2026
25f62cf
gen_stub: simplify with early returns
Sep 4, 2025
81504d3
Merge branch 'PHP-8.4' into PHP-8.5
Mar 16, 2026
00ff93d
Fix support for TAILCALL VM
Mar 16, 2026
0bd3a6b
Merge branch 'PHP-8.5'
Mar 16, 2026
c438805
Update IR (#21462)
Mar 16, 2026
0b2d813
Merge branch 'PHP-8.4' into PHP-8.5
Mar 16, 2026
8cf9179
Merge branch 'PHP-8.5'
Mar 16, 2026
c9a6743
Merge branch 'PHP-8.4' into PHP-8.5
Mar 17, 2026
a16ace8
Merge branch 'PHP-8.5'
Mar 17, 2026
cefdfc9
Merge branch 'PHP-8.4' into PHP-8.5
Mar 17, 2026
e6db18b
Merge branch 'PHP-8.5'
Mar 17, 2026
9b022c4
ext/standard: replace RETVAL_EMPTY_ARRAY() + return with RETURN_EMPT…
Mar 18, 2026
769258f
[skip ci] Update `php -v` placeholder in bug_report.yml template
Mar 18, 2026
ab043ee
[skip ci] Update versioned binary name in bug_report.yml template
Mar 18, 2026
aa9964e
Merge branch 'PHP-8.4' into PHP-8.5
Mar 19, 2026
db37779
Merge branch 'PHP-8.5'
Mar 19, 2026
7b16f81
ext/session: code cleanup - use tab for indent
Mar 18, 2026
a680273
ext/session: code cleanup - use consistent pointer declarations
Mar 18, 2026
3b20ccd
ext/session: code cleanup - don't use tabs for alignments
Mar 18, 2026
adba504
ext/session: code cleanup - space after control flow keywords
Mar 18, 2026
d63fb99
ext/session: code cleanup - use single empty line except for sections
Mar 18, 2026
103e35d
ext/session: code refactoring - improve readability and consistency
Mar 18, 2026
f775360
Merge branch 'PHP-8.4' into PHP-8.5
Mar 19, 2026
8c42cf4
Merge branch 'PHP-8.5'
Mar 19, 2026
38cbbee
Zend: add const qualifiers to the majority of compare functions (#21304)
Mar 19, 2026
f134227
Merge branch 'PHP-8.4' into PHP-8.5
Mar 20, 2026
e39b6b9
Merge branch 'PHP-8.5'
Mar 20, 2026
5485f8e
Merge branch 'PHP-8.4' into PHP-8.5
Mar 20, 2026
2e20074
Merge branch 'PHP-8.5'
Mar 20, 2026
b83dd10
gen_stub: use real `mixed` type
Mar 18, 2026
ef5771d
gen_stub: use real `readonly` modifier
Mar 18, 2026
362f5fd
gen_stub: use `match` rather than `switch` when possible
Mar 18, 2026
36e1469
gen_stub: use first class callables where possible
Mar 18, 2026
6932260
Fix replacement of class signatures when a packagesynopsis element is…
Mar 20, 2026
30b2d77
Merge branch 'PHP-8.5'
Mar 20, 2026
614b22a
Add array size maximum to array_diff()
Mar 14, 2026
0d7ce4c
Merge branch 'PHP-8.4' into PHP-8.5
Mar 21, 2026
a6a7b39
Merge branch 'PHP-8.5'
Mar 21, 2026
d3727f4
ext/pgsql: Remove unreachable break (#21482)
Mar 21, 2026
c524773
ext/ftp: Remove unreachable break (#21481)
Mar 21, 2026
d8560ad
use lexbor version from library
Mar 20, 2026
f102735
Merge branch 'PHP-8.5'
Mar 21, 2026
4d52853
ext/spl: extract AppendIterator constructor (#21367)
Mar 21, 2026
f40b356
Use smart_str_append() if we have a zend_string* (#21414)
Mar 21, 2026
74fad61
Add test for array_diff() array maximum
Mar 21, 2026
9011bd3
[skip ci] Fix CI badge in README
Mar 21, 2026
afbca75
Merge branch 'PHP-8.4' into PHP-8.5
Mar 21, 2026
61c83f8
Merge branch 'PHP-8.5'
Mar 21, 2026
b0215e9
Merge branch 'PHP-8.4' into PHP-8.5
Mar 22, 2026
cb8d3a2
Merge branch 'PHP-8.5'
Mar 22, 2026
99365b8
Merge branch 'PHP-8.4' into PHP-8.5
Mar 22, 2026
be539d9
Merge branch 'PHP-8.5'
Mar 22, 2026
b6b26f4
Merge branch 'PHP-8.4' into PHP-8.5
Mar 22, 2026
00c0a9b
Merge branch 'PHP-8.5'
Mar 22, 2026
be1ae8e
Zend: add const modifiers (#19571)
Mar 23, 2026
d34c840
zend_builtin_functions.c: add const qualifiers (#21487)
Mar 23, 2026
2918cae
ext/*: Remove `break` after `return` (#21485)
Mar 23, 2026
8f9a8c0
Fix GH-21421: SoapClient typemap property breaks engine assumptions
Mar 12, 2026
0516a76
/build/gen_stub.php: typo fix from 'seperate' to 'separate' (#21505)
Mar 24, 2026
04ae8d9
[skip ci] Recommend LLM disclosure for GH comments (GH-21506)
Mar 24, 2026
0f2ddec
PHP-8.5 is now for PHP 8.5.6-dev
Mar 24, 2026
f8e4f64
[skip ci] Regenerate ext/fileinfo/libmagic.patch (GH-21509)
Mar 24, 2026
00c4295
Merge branch 'PHP-8.5'
Mar 24, 2026
9caa0a7
Fix bc_str2num accepting strings with embedded null bytes
Mar 22, 2026
ce1761e
ext/dom: add a const qualifier in dom_objects_set_class_ex()(#21511)
Mar 24, 2026
118fa2c
ext/mysqli: add a const qualifier in mysqli_objects_new() (#21510)
Mar 24, 2026
674473d
ext/xsl: add const qualifiers when iteration over a CE's parents (#21…
Mar 24, 2026
a8cc04d
Optimize JSON pretty print indentation performance (GH-21474)
Mar 24, 2026
8af4e80
ext/opcache: formalize return type of accel_restart_is_active() to bool
Mar 9, 2026
046b44e
ext/opcache: formalize return type of zend_get_stream_timestamp() to …
Mar 9, 2026
c136801
ext/opcache: formalize return type of do_validate_timestamps() to zen…
Mar 9, 2026
b431c36
ext/opcache: formalize return type of check_persistent_script_access(…
Mar 9, 2026
e7ffec3
ext/opcache: reduce scope of variable
Mar 9, 2026
d50b91f
ext/opcache: add const qualifiers
Mar 9, 2026
bcdadd5
ext/opcache: use type size_t instead of type int
Mar 23, 2026
022fc4c
zend_builtin_functions.c: Use RETURN_THROW() for clarity
Nov 7, 2025
5b5b17a
zend_builtin_functions.c: use type uint32_t instead of int
Nov 7, 2025
82866cc
zend_builtin_functions.c: use known string when possible
Nov 7, 2025
4852e7f
zend_builtin_functions.c: add const qualifiers
Nov 7, 2025
db8b4b5
zend_builtin_functions.c: remove some variable shadowing
Nov 7, 2025
afd04af
zend_builtin_functions.c: refactor is_a_impl() to use early returns
Nov 7, 2025
ee7d02d
zend_builtin_functions.c: use RET{URN|VAL}_BOOL() when possible
Nov 7, 2025
deb5997
zend_objects_API.h: add some const qualifiers
Mar 24, 2026
66e4ba1
zend_objects_API.c: reduce scope of variable
Mar 24, 2026
e4dcd2e
zend_objects_API.c: use uint32_t type instead of int type
Mar 24, 2026
dccf5f9
Merge branch 'PHP-8.4' into PHP-8.5
Mar 25, 2026
7d40bae
Merge branch 'PHP-8.5'
Mar 25, 2026
07a51a5
rerun test
Mar 25, 2026
dc21966
Update gh21499.phpt
Mar 25, 2026
6e8c140
delete env configure
Mar 25, 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.
8 changes: 3 additions & 5 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ jobs:
arm:
resource_class: arm.medium
docker:
- image: cimg/base:current-22.04
- image: cimg/base:current-24.04
- image: mysql:8.4
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: true
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 @@ -169,7 +168,6 @@ jobs:
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
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,7 @@ max_line_length = 80

[*.patch]
trim_trailing_whitespace = false

[*.rst]
indent_style = space
max_line_length = 100
6 changes: 4 additions & 2 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@

# Collapse generated files within git and pull request diff.
**/*_arginfo.h linguist-generated -diff
/main/gdb_inlined_script.c 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
/Zend/zend_vm_opcodes.[ch] linguist-generated -diff
Expand All @@ -30,4 +31,5 @@
/ext/date/tests/ossfuzz*.txt binary

# Vendored libraries
/ext/dom/lexbor/lexbor linguist-vendored
/ext/lexbor/lexbor linguist-vendored
/ext/uri/uriparser linguist-vendored
4 changes: 3 additions & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

/.github @TimWolla
/build/gen_stub.php @kocsismate
/ext/bcmath @Girgias @ndossche @SakiTakamachi
/ext/bcmath @ndossche @SakiTakamachi
/ext/curl @adoy
/ext/date @derickr
/ext/dba @Girgias
Expand All @@ -27,6 +27,7 @@
/ext/gmp @Girgias
/ext/intl @devnexen
/ext/json @bukka
/ext/lexbor @kocsismate @ndossche
/ext/libxml @ndossche
/ext/mbstring @alexdowad @youkidearitai
/ext/mysqli @bukka @kamil-tekiela
Expand All @@ -52,6 +53,7 @@
/ext/spl @Girgias
/ext/standard @bukka
/ext/tidy @ndossche
/ext/uri @kocsismate @TimWolla
/ext/xml @ndossche
/ext/xmlreader @ndossche
/ext/xmlwriter @ndossche
Expand Down
17 changes: 13 additions & 4 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,24 @@ body:
```
validations:
required: true
- type: input
- type: textarea
attributes:
label: PHP Version
description: "The used PHP version. Make sure it is [supported](https://www.php.net/supported-versions.php)."
placeholder: "PHP 8.0.12"
description: |
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.5.2 (cli) (built: Jan 21 2026 17:35:28) (NTS)
Copyright (c) The PHP Group
Built by Ubuntu
Zend Engine v4.5.2, Copyright (c) Zend Technologies
with Zend OPcache v8.5.2, Copyright (c), by Zend Technologies
render: plain
validations:
required: true
- type: input
attributes:
label: Operating System
description: "The used operating system, if relevant."
placeholder: "Ubuntu 20.04"
placeholder: "Ubuntu 24.04"
4 changes: 1 addition & 3 deletions .github/actions/apt-x32/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,11 @@ runs:
libsodium-dev:i386 \
libsqlite3-dev:i386 \
libssl-dev:i386 \
libtidy-dev:i386 \
libwebp-dev:i386 \
libxml2-dev:i386 \
libxml2-dev:i386 \
libxpm-dev:i386 \
libxslt1-dev:i386 \
libzip-dev:i386 \
firebird-dev:i386 \
locales \
make \
pkg-config:i386 \
Expand Down
3 changes: 2 additions & 1 deletion .github/actions/brew/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ runs:
tidy-html5 \
libzip \
libsodium \
icu4c
icu4c \
curl
brew install -v \
bison \
re2c
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
4 changes: 2 additions & 2 deletions .github/actions/configure-x32/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ runs:
run: |
set -x

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/lib/i386-linux-gnu/pkgconfig"
./buildconf --force
export CFLAGS="-m32 -msse2"
export CXXFLAGS="-m32 -msse2"
Expand All @@ -26,19 +27,18 @@ runs:
--with-pgsql \
--with-pdo-pgsql \
--with-pdo-sqlite \
--with-pdo-firebird \
--without-pear \
--enable-gd \
--with-jpeg \
--with-webp \
--with-freetype \
--with-xpm \
--enable-exif \
--with-zip \
--with-zlib \
--enable-soap \
--enable-xmlreader \
--with-xsl \
--with-tidy \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
Expand Down
3 changes: 1 addition & 2 deletions .github/actions/freebsd/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,7 @@ runs:
--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
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/setup-mssql/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ runs:
-p 1433:1433 \
--name sql1 \
-h sql1 \
-d mcr.microsoft.com/mssql/server:2022-CU14-ubuntu-22.04
-d mcr.microsoft.com/mssql/server:2025-latest
2 changes: 1 addition & 1 deletion .github/actions/test-alpine/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ runs:
export SKIP_IO_CAPTURE_TESTS=1
export STACK_LIMIT_DEFAULTS_CHECK=1
sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \
${{ inputs.enableOpcache == 'true' && '-d zend_extension=opcache.so -d opcache.enable_cli=1' || '' }} \
${{ inputs.enableOpcache == 'true' && '-d opcache.enable_cli=1' || '' }} \
-d opcache.jit=${{ inputs.jitType }} \
-d opcache.jit_buffer_size=64M \
-j$(nproc) \
Expand Down
6 changes: 4 additions & 2 deletions .github/actions/test-linux/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ runs:
export PDO_PGSQL_TEST_DSN="pgsql:host=localhost port=5432 dbname=test user=postgres password=postgres"
fi
export PDO_FIREBIRD_TEST_DATABASE=test.fdb
export PDO_FIREBIRD_TEST_DSN=firebird:dbname=localhost:test.fdb
if [[ -z "$PDO_FIREBIRD_TEST_DSN" ]]; then
export PDO_FIREBIRD_TEST_DSN=firebird:dbname=localhost:test.fdb
fi
export PDO_FIREBIRD_TEST_PASS=test
export PDO_FIREBIRD_TEST_USER=test
export ODBC_TEST_USER="odbc_test"
Expand All @@ -44,7 +46,7 @@ runs:
export STACK_LIMIT_DEFAULTS_CHECK=1
export RUN_RESOURCE_HEAVY_TESTS=1
sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \
${{ inputs.enableOpcache == 'true' && '-d zend_extension=opcache.so -d opcache.enable_cli=1' || '' }} \
${{ inputs.enableOpcache == 'true' && '-d opcache.enable_cli=1' || '' }} \
-d opcache.jit=${{ inputs.jitType }} \
-d opcache.protect_memory=1 \
-d opcache.jit_buffer_size=64M \
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/test-macos/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ runs:
export STACK_LIMIT_DEFAULTS_CHECK=1
export RUN_RESOURCE_HEAVY_TESTS=1
sapi/cli/php run-tests.php -P -q ${{ inputs.runTestsParameters }} \
${{ inputs.enableOpcache == 'true' && '-d zend_extension=opcache.so -d opcache.enable_cli=1' || '' }} \
${{ inputs.enableOpcache == 'true' && '-d opcache.enable_cli=1' || '' }} \
-d opcache.jit=${{ inputs.jitType }} \
-d opcache.protect_memory=1 \
-d opcache.jit_buffer_size=64M \
Expand Down
4 changes: 2 additions & 2 deletions .github/actions/verify-generated-files/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ runs:
Zend/zend_vm_gen.php
ext/tokenizer/tokenizer_data_gen.php
build/gen_stub.php -f --generate-optimizer-info --verify
# Use the -a flag for a bug in git 2.46.0, which doesn't consider changed -diff files.
git add . -N && git diff -a --exit-code
ext/phar/makestub.php
.github/scripts/test-directory-unchanged.sh .
7 changes: 6 additions & 1 deletion .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,11 @@
- any-glob-to-any-file:
- ext/tokenizer/**/*

"Extension: uri":
- changed-files:
- any-glob-to-any-file:
- ext/uri/**/*

"Extension: xml":
- changed-files:
- any-glob-to-any-file:
Expand Down Expand Up @@ -464,7 +469,6 @@
- 'ext/pdo/php_pdo.h'
- 'ext/pdo/php_pdo_driver.h'
- 'ext/pdo/php_pdo_error.h'
- 'ext/phar/php_phar.h'
- 'ext/random/php_random.h'
- 'ext/random/php_random_csprng.h'
- 'ext/random/php_random_uint128.h'
Expand All @@ -488,6 +492,7 @@
- 'ext/spl/spl_iterators.h'
- 'ext/spl/spl_observer.h'
- 'ext/standard/*.h'
- 'ext/uri/*.h'
- 'ext/xml/expat_compat.h'
- 'ext/xml/php_xml.h'
- 'main/*.h'
Expand Down
1 change: 1 addition & 0 deletions .github/lsan-suppressions.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
leak:acommon::DictInfoList::elements
leak:timer_create
leak:netsnmp_init_mib_internals
leak:isc_attach_database
1 change: 1 addition & 0 deletions .github/scripts/download-bundled/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
!*.patch
41 changes: 41 additions & 0 deletions .github/scripts/download-bundled/boost-context.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/bin/sh
set -ex
cd "$(dirname "$0")/../../.."

tmp_dir=/tmp/php-src-download-bundled/boost-context
rm -rf "$tmp_dir"

revision=refs/tags/boost-1.86.0

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

rm -rf Zend/asm
cp -R "$tmp_dir"/src/asm Zend/asm

cd Zend/asm

# remove unneeded files
rm jump_arm_aapcs_pe_armasm.asm
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_i386_ms_pe_clang_gas.S
rm make_i386_ms_pe_gas.asm
rm make_i386_x86_64_sysv_macho_gas.S
rm make_ppc32_ppc64_sysv_macho_gas.S
rm make_x86_64_ms_pe_clang_gas.S
rm ontop_*.S
rm ontop_*.asm
rm tail_ontop_ppc32_sysv.cpp

# move renamed files
# GH-13896 introduced these 2 files named as .S but since https://github.com/boostorg/context/pull/265 they are named as .asm
mv jump_x86_64_ms_pe_gas.asm jump_x86_64_ms_pe_gas.S
mv make_x86_64_ms_pe_gas.asm make_x86_64_ms_pe_gas.S

# add extra files
git restore LICENSE
git restore save_xmm_x86_64_ms_masm.asm # added in GH-18352, not an upstream boost.context file
35 changes: 35 additions & 0 deletions .github/scripts/download-bundled/pcre2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/sh
set -ex
cd "$(dirname "$0")/../../.."

tmp_dir=/tmp/php-src-download-bundled/pcre2
rm -rf "$tmp_dir"

revision=refs/tags/pcre2-10.44

git clone --depth 1 --recurse-submodules --revision="$revision" https://github.com/PCRE2Project/pcre2.git "$tmp_dir"

rm -rf ext/pcre/pcre2lib
cp -R "$tmp_dir"/src ext/pcre/pcre2lib

cd ext/pcre/pcre2lib

# remove unneeded files
rm config.h.generic
rm pcre2.h.in
rm pcre2_dftables.c
rm pcre2_fuzzsupport.c
rm pcre2_jit_test.c
rm pcre2demo.c
rm pcre2grep.c
rm pcre2posix.c
rm pcre2posix.h
rm pcre2posix_test.c
rm pcre2test.c

# move renamed files
mv pcre2.h.generic pcre2.h
mv pcre2_chartables.c.dist pcre2_chartables.c

# add extra files
git restore config.h # based on config.h.generic but with many changes
14 changes: 14 additions & 0 deletions .github/scripts/download-bundled/uriparser.config.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/ext/uri/uriparser/src/UriConfig.h b/ext/uri/uriparser/src/UriConfig.h
index b9a85a8..ab78b96 100644
--- a/ext/uri/uriparser/src/UriConfig.h
+++ b/ext/uri/uriparser/src/UriConfig.h
@@ -41,7 +41,9 @@

# define PACKAGE_VERSION "@PROJECT_VERSION@"

+/*
#cmakedefine HAVE_WPRINTF
#cmakedefine HAVE_REALLOCARRAY
+*/

#endif /* !defined(URI_CONFIG_H) */
Loading