Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
767 commits
Select commit Hold shift + click to select a range
f4c3097
array_map: Avoid needing refcounted copies and cleanup
ndossche Oct 31, 2025
080cf10
array_map: Move fci configuration outside of loop
ndossche Oct 31, 2025
9bf1240
array_map: Delay allocation of array_pos
ndossche Oct 31, 2025
60a0f10
array_map: Rely on VM to clean up in case of an exception
ndossche Oct 31, 2025
79adb01
array_map: Avoid allocation by using Z_EXTRA storage of parameters
ndossche Oct 31, 2025
7b4270a
Update UPGRADING for array_map() performance
ndossche Nov 8, 2025
f765c36
Zend: Remove useless zval & dtor from define()
ndossche Nov 9, 2025
0d3f9ce
Zend: Get rid of goto in define()
ndossche Nov 9, 2025
e97c0dc
ext/intl: migrate C to C++ code step 5. (#20424)
devnexen Nov 9, 2025
3e982a8
standard: Remove redundant code in range() (#20432)
ndossche Nov 10, 2025
15b9963
standard: Use specialised macro in array_merge()
ndossche Nov 9, 2025
e32c2c3
standard: Use RETURN_COPY()/RETVAL_ARR() in array_merge()
ndossche Nov 9, 2025
aafb8a6
standard: Use booleans in array_merge()
ndossche Nov 9, 2025
9d9f979
Merge branch 'PHP-8.5'
ndossche Nov 10, 2025
5185d46
Fix zero-extension on range() char parameters
ndossche Nov 10, 2025
da238e7
ext/spl: convert `zend_parse_parameters_none()` to fast ZPP (#20441)
alexandre-daubois Nov 10, 2025
999e16a
Merge branch 'PHP-8.5'
iluuu1994 Nov 11, 2025
4227106
Merge branch 'PHP-8.5'
iluuu1994 Nov 11, 2025
08ba240
simplexml: Avoid double lookups and unnecessary allocations in getNam…
ndossche Nov 11, 2025
d766a73
Merge branch 'PHP-8.5'
ndossche Nov 11, 2025
618e576
Minor DOM cleanups
ndossche Nov 11, 2025
a596e05
phar: Make phar_is_tar() and referenced functions const correct (#20451)
ndossche Nov 11, 2025
fc3ab98
Merge branch 'PHP-8.5'
ndossche Nov 11, 2025
be3c56d
Merge branch 'PHP-8.5'
ndossche Nov 11, 2025
0413447
Merge branch 'PHP-8.5'
TimWolla Nov 11, 2025
aa96baa
Merge branch 'PHP-8.5'
TimWolla Nov 11, 2025
27a2caa
zend_attributes: add const qualifiers (#20448)
Girgias Nov 11, 2025
af46c3f
Merge branch 'PHP-8.5'
ndossche Nov 11, 2025
c95a944
Zend: Factor out is_sensitive check
ndossche Nov 11, 2025
f15c712
Zend: Use object_init_with_constructor() for SensitiveParameterValue
ndossche Nov 11, 2025
81ed8bf
Merge branch 'PHP-8.5'
ndossche Nov 11, 2025
3747e93
Merge branch 'PHP-8.5'
DanielEScherzer Nov 11, 2025
ad35ef3
Merge branch 'PHP-8.5'
iluuu1994 Nov 11, 2025
d8ac527
Merge branch 'PHP-8.5'
DanielEScherzer Nov 12, 2025
b9562ad
standard: Simplify array_chunk() (#20423)
ndossche Nov 12, 2025
7db647d
Verify bundled PCRE2 in CI
mvorisek Nov 12, 2025
4743dd6
ext/session: Remove unused source files and headers on Windows (#20463)
petk Nov 12, 2025
c463770
Merge branch 'PHP-8.5'
ndossche Nov 12, 2025
db8d35e
tree-wide: Replace `ZEND_WRONG_PARAM_COUNT()` by its definition (#20066)
TimWolla Nov 12, 2025
f502493
Merge branch 'PHP-8.5'
ndossche Nov 12, 2025
0c97fe0
Merge branch 'PHP-8.5'
Girgias Nov 13, 2025
31bd92d
ext/standard/array.c: refactor sort functions (#20462)
Girgias Nov 13, 2025
9483180
xml: Drop unused version function (#20467)
ndossche Nov 13, 2025
9cd3673
[ci skip] UPGRADING.INTERNALS entry for 94831808
ndossche Nov 13, 2025
1107050
xml: Drop unused XML_GetCurrentByteCount() compatibility wrapper (#20…
ndossche Nov 14, 2025
0375060
xml: Don't make copies of the object, remove self-reference (#20471)
ndossche Nov 15, 2025
3e7672c
Merge branch 'PHP-8.5'
ndossche Nov 15, 2025
363dd91
Merge branch 'PHP-8.5'
ndossche Nov 15, 2025
40ff6e0
Merge branch 'PHP-8.5'
ndossche Nov 15, 2025
b3061df
Merge branch 'PHP-8.5'
ndossche Nov 15, 2025
48aefb5
Merge branch 'PHP-8.5'
devnexen Nov 15, 2025
94c256f
Properly silence set-but-unused-var warning
ndossche Nov 15, 2025
0194b38
[ci skip] Update my username
ndossche Nov 16, 2025
035f95c
Deprecate ZEND_SIZE_MAX and point to SIZE_MAX directly (#19244)
marc-mabe Nov 16, 2025
5bed2a8
Avoid string copy in ZipArchive::addFromString() (#20497)
ndossche Nov 16, 2025
e844700
ext/standard/tests/filter: Add zlib dependency
Girgias Oct 2, 2025
c6d8ccb
Move stream filter tests to ext/standard/tests/filters/ folder
Girgias Oct 2, 2025
9c33091
ext/standard: add a bunch of whacky stream filter tests
Girgias Oct 2, 2025
ac7fddf
ext/zip: further micro optimisations. (#20362)
devnexen Nov 16, 2025
bc08fa3
ext/bz2: use `uint64_t` type instead of conditional defined code
marc-mabe Nov 16, 2025
3977650
Merge branch 'PHP-8.5'
ndossche Nov 16, 2025
88d8117
Remove PHP_HAVE_STREAMS (#20508)
petk Nov 17, 2025
f411e7f
Fix 32-bit failure of ext-zip oo_setcompression.phpt (GH-20511)
iluuu1994 Nov 17, 2025
a1ed754
Merge branch 'PHP-8.5'
ndossche Nov 17, 2025
45a819d
Merge branch 'PHP-8.5'
TimWolla Nov 17, 2025
566d959
Merge branch 'PHP-8.5'
edorian Nov 17, 2025
d750d30
Merge branch 'PHP-8.5'
iluuu1994 Nov 17, 2025
1d4b53a
Merge branch 'PHP-8.5'
TimWolla Nov 18, 2025
4a12745
xml: Optimize attribute array construction (#20515)
ndossche Nov 18, 2025
9c2c341
Merge branch 'PHP-8.5'
ndossche Nov 18, 2025
e929602
ext/soap: HTTP request micro optimisations. (#20516)
devnexen Nov 18, 2025
9762c44
Merge branch 'PHP-8.5'
ndossche Nov 18, 2025
e28e891
Merge branch 'PHP-8.5'
ndossche Nov 19, 2025
15ca366
Merge branch 'PHP-8.5'
kocsismate Nov 19, 2025
abc1910
ext/standard/array.c: refactor php_valid_var_name()
Girgias Nov 14, 2025
6cd80f7
ext/standard/array.c: assert on conditions which are always false
Girgias Nov 14, 2025
8587bb2
ext/standard/array.c: refactor php_prefix_varname()
Girgias Nov 14, 2025
095fd26
ext/standard/array.c: add const qualifiers for extract() related func…
Girgias Nov 14, 2025
d026e2b
ext/standard/array.c: add tests when extracting negative keys
Girgias Nov 16, 2025
d40ae97
Zend language scanner: minor refactorings (#20480)
Girgias Nov 19, 2025
d9d55f0
ext/gd: Enable HAVE_GD_GET_INTERPOLATION (#20535)
petk Nov 20, 2025
c0cf841
Merge branch 'PHP-8.5'
ndossche Nov 20, 2025
4e2bd0c
ext/soap: SoapClient::__setCookie() to deal with name as digits. (#20…
devnexen Nov 20, 2025
586eba9
[skip ci] Forgotten NEWS update
devnexen Nov 20, 2025
ca7f556
xml: Use strlen() (#20544)
ndossche Nov 20, 2025
8398038
Merge branch 'PHP-8.5'
remicollet Nov 21, 2025
3abdef2
VM: Reuse result variable in ICALL_0 implementation (#20561)
ndossche Nov 22, 2025
94e65d3
Merge branch 'PHP-8.5'
devnexen Nov 22, 2025
509cb06
Merge branch 'PHP-8.5'
devnexen Nov 22, 2025
56dd321
Merge branch 'PHP-8.5'
devnexen Nov 22, 2025
ca914ee
Merge branch 'PHP-8.5'
ndossche Nov 23, 2025
1ee8dfd
Remove pointless EG(exception) checks when parsing coercive string ar…
ndossche Nov 24, 2025
ada7400
[skip ci] Update year in LICENSE (GH-20598)
returntruejoy Nov 26, 2025
56795d2
Merge branch 'PHP-8.5'
ndossche Nov 28, 2025
dcac024
spl: Avoid pointless copies for internal construction calls (#20610)
ndossche Nov 29, 2025
5ae1261
phar: Remove dead store (#20611)
ndossche Nov 29, 2025
dddd050
Merge branch 'PHP-8.5'
devnexen Nov 29, 2025
927830d
phar: Remove unused min_timestamp field (#20617)
ndossche Nov 29, 2025
71d11bd
Merge branch 'PHP-8.5'
devnexen Nov 29, 2025
b074c5c
reflection: Remove dead code
ndossche Nov 28, 2025
b64cd42
reflection: Use RETURN_COPY_VALUE()
ndossche Nov 28, 2025
e025f2a
reflection: Test ReflectionFunction::__toString() with bound variable…
ndossche Nov 30, 2025
13bf672
reflection: Use zend_hash_str_find_ptr_lc() where possible
ndossche Nov 28, 2025
157864a
reflection: Use zend_hash_find_ptr_lc() where possible
ndossche Nov 28, 2025
1848bcd
Merge branch 'PHP-8.5'
ndossche Nov 30, 2025
6b197ee
mbstring: fix missing copying of detect_order_list to current_detect_…
Nov 18, 2025
8fa4bf0
Merge branch 'PHP-8.5'
DanielEScherzer Dec 1, 2025
b9e0445
Merge branch 'PHP-8.5'
DanielEScherzer Dec 1, 2025
596eec7
Merge branch 'PHP-8.5'
edorian Dec 2, 2025
92dc0d0
Merge branch 'PHP-8.5'
iluuu1994 Dec 2, 2025
5a629d4
Merge branch 'PHP-8.5'
iluuu1994 Dec 2, 2025
94ae775
Merge branch 'PHP-8.5'
ericmann Dec 2, 2025
08f7323
Merge branch 'PHP-8.5'
iluuu1994 Dec 2, 2025
9155a96
Merge branch 'PHP-8.5'
ndossche Dec 2, 2025
012bf8e
Merge branch 'PHP-8.5'
ndossche Dec 2, 2025
1e7deee
Merge branch 'PHP-8.5'
ndossche Dec 2, 2025
64d8b2a
Merge branch 'PHP-8.5'
ndossche Dec 2, 2025
2f2544e
Merge branch 'PHP-8.5'
SakiTakamachi Dec 3, 2025
314daba
Merge branch 'PHP-8.5'
iluuu1994 Dec 3, 2025
50abef9
Merge branch 'PHP-8.5'
devnexen Dec 3, 2025
d998a79
Merge branch 'PHP-8.5'
ndossche Dec 3, 2025
114260b
Merge branch 'PHP-8.5'
ndossche Dec 3, 2025
3f1409b
Merge branch 'PHP-8.5'
alexandre-daubois Dec 4, 2025
f35a497
Merge branch 'PHP-8.5'
iluuu1994 Dec 4, 2025
fc592c7
WeakMap: convert zend_parse_parameters_none() to fast ZPP (#20643)
alexandre-daubois Dec 4, 2025
8504b18
Merge branch 'PHP-8.5'
devnexen Dec 4, 2025
4cc5f02
Merge branch 'PHP-8.5'
devnexen Dec 4, 2025
26e0bfa
Fixed some typos in docs and fpm pool config (GH-20587)
Schleuse Dec 5, 2025
9ed85aa
Add php.github.io/php-src to CONTRIBUTING.md Technical Resources lis…
sad270 Dec 5, 2025
824c389
Merge branch 'PHP-8.5'
devnexen Dec 5, 2025
1fb4e57
Merge branch 'PHP-8.5'
alexandre-daubois Dec 6, 2025
88a323e
Fix Zend/zend_simd.h file whitespaces sync (#20486)
mvorisek Dec 7, 2025
d4f1300
opcache: Remove unused sys/ipc.h include from ZendAccelerator.c (#20662)
linusg Dec 7, 2025
1498694
ext/ffi: convert zend_parse_parameters_none() to fast ZPP (#20644)
alexandre-daubois Dec 8, 2025
55c8d4a
Merge branch 'PHP-8.5'
iluuu1994 Dec 8, 2025
9e6acb4
Merge branch 'PHP-8.5'
ndossche Dec 8, 2025
8908a81
ldap: Use cheaper checks for getting a string (#20652)
ndossche Dec 8, 2025
5695cee
Merge branch 'PHP-8.5'
ndossche Dec 8, 2025
9c81b52
Merge branch 'PHP-8.5'
iluuu1994 Dec 8, 2025
9a754d0
Merge branch 'PHP-8.5'
TimWolla Dec 9, 2025
c380f7e
Merge branch 'PHP-8.5'
Girgias Dec 9, 2025
f16ef85
Merge branch 'PHP-8.5'
TimWolla Dec 10, 2025
50131de
Zend: Use zend_hash_str_find_ptr_lc() in zend_get_module_version()
ndossche Dec 10, 2025
c27368c
cli: Use zend_hash_str_find_ptr_lc() in get_mime_type()
ndossche Dec 10, 2025
19deb91
pdo_pgsql: Reset persistent session state on disconnect-equivalent pr…
KentarouTakeda Nov 24, 2025
1f3fe93
Add GB18030-2022 to default encoding list for zh-CN (#20604)
HeRaNO Dec 12, 2025
2ee5e6b
Fix GH-7737: openssl_seal/openssl_open do not handle tagged algorithm…
sgolemon Dec 12, 2025
040ea4a
Revert "Fix GH-7737: openssl_seal/openssl_open do not handle tagged a…
bukka Dec 13, 2025
fa15b7e
Merge branch 'PHP-8.5'
ndossche Dec 13, 2025
521c0c5
Refactor path name processing in phar_build()
ndossche May 5, 2024
c9008f6
Make buildFromIterator() work with custom SplFileInfo objects
ndossche May 5, 2024
8ab11e7
Merge branch 'PHP-8.5'
iluuu1994 Dec 13, 2025
b8ee9bb
Merge branch 'PHP-8.5'
devnexen Dec 14, 2025
1f648c3
Merge branch 'PHP-8.5'
ndossche Dec 14, 2025
3de6dd1
Merge branch 'PHP-8.5'
kamil-tekiela Dec 14, 2025
ae59c69
ext/spl: DirectoryIterator to support modern filesytems.
devnexen Dec 14, 2025
ec33712
Merge branch 'PHP-8.5'
ndossche Dec 14, 2025
683075b
Merge branch 'PHP-8.5'
ndossche Dec 14, 2025
85913fc
Fix GH-20674 mb_decode_mimeheader does not handle separator
youkidearitai Dec 10, 2025
42b7fba
Merge branch 'PHP-8.5'
youkidearitai Dec 15, 2025
bc79897
Merge branch 'PHP-8.5'
ndossche Dec 15, 2025
37d677d
Merge branch 'PHP-8.5'
TimWolla Dec 15, 2025
626f3c3
Unify arg info representation for internal and user functions
arnaud-lb Jun 18, 2025
eb88c0a
Merge branch 'PHP-8.5'
dstogov Dec 15, 2025
2ef60d0
Merge branch 'PHP-8.5'
ndossche Dec 15, 2025
0d7e535
Fix NUL byte truncation in sqlite3 TEXT column handling
ndossche Dec 13, 2025
5de5216
Merge branch 'PHP-8.5'
TimWolla Dec 15, 2025
7dd5f31
Merge branch 'PHP-8.5'
iluuu1994 Dec 15, 2025
122a94e
Merge branch 'PHP-8.5'
bukka Dec 16, 2025
a35e616
Merge branch 'PHP-8.5'
iluuu1994 Dec 16, 2025
aee5fce
Merge branch 'PHP-8.5'
ndossche Dec 16, 2025
f26a691
Merge branch 'PHP-8.5'
adoy Dec 17, 2025
25d9629
Merge branch 'PHP-8.5'
TimWolla Dec 17, 2025
dc045c0
Update GitHub Action workflows to `actions/checkout@v6` (master)
TimWolla Dec 17, 2025
b010aa8
ext/intl/ERROR_CONVENTIONS.md: fix typo (not -> note) [skip ci] (#20696)
DanielEScherzer Dec 17, 2025
3502c65
ext/standard: refactor Windows codepage tests
Girgias Dec 12, 2025
4ca4be5
ext/standard: use sapi_windows_cp_*() functions directly
Girgias Dec 12, 2025
95abeba
ext/standard: create_data() is never called with a 4th argument
Girgias Dec 12, 2025
65c367f
pdo_mysql___construct_options.phpt: remove unexpected Cedilla (#20692)
DanielEScherzer Dec 18, 2025
c0b16e0
reflection: set `key_initialized` global to proper booleans (#20691)
DanielEScherzer Dec 18, 2025
833120e
Trim WS
arnaud-lb Dec 18, 2025
06ea0e5
[RFC] Add clamp function (#19434)
kylekatarnls Dec 18, 2025
f4538c6
Remove unused macro
kamil-tekiela Dec 18, 2025
cf62b6c
[ci skip] dom: Remove outdated comment
ndossche Dec 18, 2025
b6f786a
Merge branch 'PHP-8.5'
ndossche Dec 18, 2025
46e55dd
ext/sockets: adding Linux's TCP_USER_TIMEOUT constant.
lucasnetau Dec 15, 2025
77eedd7
Merge branch 'PHP-8.5'
ndossche Dec 19, 2025
4315c3a
standard: Remove nonsensical dtor of return value in fread() (#20739)
ndossche Dec 19, 2025
420f3dc
standard: Move freeing of temp buffer and use efree variant (#20738)
ndossche Dec 19, 2025
cec087e
ext/standard/tests/file/windows_mb_path/util.inc: fix typo (#20723)
DanielEScherzer Dec 20, 2025
3e87cfa
Merge branch 'PHP-8.5'
ndossche Dec 20, 2025
5dd5a42
enchant: Use an array of the correct size before filling it (#20743)
ndossche Dec 20, 2025
93ca2ab
Merge branch 'PHP-8.5'
remicollet Dec 21, 2025
42f994c
ext/zlib: minor internal changes. (#20654)
devnexen Dec 21, 2025
0880433
Merge branch 'PHP-8.5'
ndossche Dec 21, 2025
9fffe41
Merge branch 'PHP-8.5'
ndossche Dec 21, 2025
1faf17b
Use packed fill in scandir() (#20737)
ndossche Dec 21, 2025
4f3c28a
phar: Simplify phar_open_archive_fp() (#20753)
ndossche Dec 22, 2025
898c945
Merge branch 'PHP-8.5'
ndossche Dec 22, 2025
18c560d
Merge branch 'PHP-8.5'
ndossche Dec 22, 2025
4d1829c
Merge branch 'PHP-8.5'
arnaud-lb Dec 22, 2025
c1e450d
Merge branch 'PHP-8.5'
devnexen Dec 22, 2025
670d300
Merge branch 'PHP-8.5'
iluuu1994 Dec 22, 2025
ef87a14
pgsql: Don't allocate memory for default arguments (#20757)
ndossche Dec 22, 2025
f80338c
Merge branch 'PHP-8.5'
ndossche Dec 23, 2025
341d2d1
Merge branch 'PHP-8.5'
ndossche Dec 23, 2025
13411ef
Merge branch 'PHP-8.5'
ndossche Dec 24, 2025
e861608
Merge branch 'PHP-8.5'
devnexen Dec 24, 2025
580b9a4
Merge branch 'PHP-8.5'
Girgias Dec 25, 2025
85b681a
Merge branch 'PHP-8.5'
kocsismate Dec 25, 2025
f207014
mbstring: Transform RETURN_STR(zend_string_init_fast(...)) to RETURN_…
ndossche Dec 26, 2025
913d308
[ci skip] Remove useless test
ndossche Dec 26, 2025
004934c
Merge branch 'PHP-8.5'
ndossche Dec 26, 2025
69166c3
Merge branch 'PHP-8.5'
ndossche Dec 26, 2025
7e8c636
win32/sendmail.c: mark error messages array as const
Girgias Dec 24, 2025
4dad723
win32/sendmail.c/Post(): refactor function
Girgias Dec 24, 2025
6f28370
win32/sendmail.c: remove mailRPath parameter that is always NULL
Girgias Dec 24, 2025
0e19bc1
win32/sendmail.c: remove mailBbc parameter that is always NULL
Girgias Dec 24, 2025
4431aa9
win32/sendmail.c: remove mailCc parameter that is always NULL
Girgias Dec 24, 2025
84e63bf
win32/sendmail.c/php_win32_mail_trim_header(): use ZSTR_INIT_LITERAL()
Girgias Dec 24, 2025
f1a8944
win32/sendmail.c/SendText(): use zend_string* for headers{_lc} parame…
Girgias Dec 24, 2025
6bd9c55
win32/sendmail.c/SendText(): move string duplication code to a more l…
Girgias Dec 25, 2025
004c630
win32/sendmail.c/addToHeader(): voidify function
Girgias Dec 26, 2025
8aa64bb
win32/sendmail.c/SendText(): move posting of DATA prior to stripped h…
Girgias Dec 26, 2025
fc276ae
win32/sendmail.c/SendText(): use zend_string for stripped_headers
Girgias Dec 26, 2025
77d306e
win32/sendmail.c/PostHeader(): refactor function
Girgias Dec 26, 2025
6dad206
Merge branch 'PHP-8.5'
kocsismate Dec 27, 2025
fd13afd
Merge branch 'PHP-8.5'
ndossche Dec 27, 2025
b86f107
ext/standard: refactor _php_error_log()
Girgias Dec 24, 2025
8727816
ext/standard: use RETURN_BOOL() when possible
Girgias Dec 24, 2025
e101706
ext/standard/mail.c: add const qualifiers
Girgias Dec 24, 2025
d3a372c
ext/standard/mail.c: use zend_string for mail_log
Girgias Dec 24, 2025
1042553
ext/standard/mail.c: use smart_str_append when we have zend_string*
Girgias Dec 24, 2025
67a89f6
ext/standard/mail.c: refactor php_mail_build_headers_check_field_name()
Girgias Dec 24, 2025
402f084
ext/standard/mail.c: use php_mail_build_headers_elem() directly
Girgias Dec 24, 2025
5f8c7dc
ext/standard/mail.c: refactor php_mail_build_headers_check_field_value()
Girgias Dec 24, 2025
c727f4d
ext/standard/mail: use zend_string* for extra_cmd param of php_mail()
Girgias Dec 24, 2025
ecbdd2b
Merge branch 'PHP-8.5'
ndossche Dec 28, 2025
e6906db
Merge branch 'PHP-8.5'
ndossche Dec 28, 2025
04bf2e5
Merge branch 'PHP-8.5'
ndossche Dec 28, 2025
b6a89b5
Merge branch 'PHP-8.5'
alexandre-daubois Dec 29, 2025
434b14e
Merge branch 'PHP-8.5'
bwoebi Dec 29, 2025
bd8da04
Merge branch 'PHP-8.5'
bukka Dec 30, 2025
9582d8e
Add stream socket keepalive context options
bukka Nov 3, 2025
0fd8aae
Fix TCP_KEEPALIVE no inheriting for accepted sockets on MacOS
bukka Dec 30, 2025
c0be847
Prevent possible future precedence issues in PHP_SOCKVAL_IS_SET
bukka Dec 30, 2025
0578279
Merge branch 'PHP-8.5'
NattyNarwhal Dec 30, 2025
ab5c2a8
Use long conversion for stream context keepalive int values (#20805)
bukka Dec 30, 2025
bc15a0d
Merge branch 'PHP-8.5'
DanielEScherzer Dec 30, 2025
55cb39b
make preserve_none check lto compatible, fix #20806
henderkes Dec 30, 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
  •  
  •  
  •  
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/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 .
32 changes: 32 additions & 0 deletions .github/scripts/download-bundled/pcre2.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/sh
set -ex
cd "$(dirname "$0")/../../.."

revision=refs/tags/pcre2-10.44

git clone --depth 1 --recurse-submodules --revision="$revision" https://github.com/PCRE2Project/pcre2.git /tmp/php-src-bundled/pcre2

rm -rf ext/pcre/pcre2lib
cp -R /tmp/php-src-bundled/pcre2/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
13 changes: 13 additions & 0 deletions .github/scripts/test-directory-unchanged.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh
set -ex

cd "$(dirname "$0")/../../$1"

# notify git about untracked (except ignored) files
git add -N .

# display overview of changed files
git status .

# display diff of working directory vs HEAD commit and set exit code
git diff -a --exit-code HEAD .
17 changes: 10 additions & 7 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ on:
libmysqlclient_with_mysqli:
required: true
type: boolean
macos_arm64_version:
required: true
type: string
run_alpine:
required: true
type: boolean
Expand Down Expand Up @@ -350,11 +353,11 @@ jobs:
matrix:
debug: [true, false]
zts: [true, false]
os: ['13', '14']
arch: ['X64', 'ARM64']
exclude:
- os: ${{ !inputs.run_macos_arm64 && '14' || '*never*' }}
name: "MACOS_${{ matrix.os == '13' && 'X64' || 'ARM64' }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
runs-on: macos-${{ matrix.os }}
- arch: ${{ !inputs.run_macos_arm64 && 'ARM64' || '*never*' }}
name: "MACOS_${{ matrix.arch }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
runs-on: macos-${{ matrix.arch == 'X64' && '15-intel' || inputs.macos_arm64_version }}
steps:
- name: git checkout
uses: actions/checkout@v6
Expand All @@ -379,7 +382,7 @@ jobs:
- name: Test
uses: ./.github/actions/test-macos
- name: Test Tracing JIT
if: matrix.os != '14' || !matrix.zts
if: matrix.arch == 'X64' || !matrix.zts
uses: ./.github/actions/test-macos
with:
jitType: tracing
Expand All @@ -391,7 +394,7 @@ jobs:
runTestsParameters: >-
-d opcache.enable_cli=1
- name: Test Function JIT
if: matrix.os != '14' || !matrix.zts
if: matrix.arch == 'X64' || !matrix.zts
uses: ./.github/actions/test-macos
with:
jitType: function
Expand Down Expand Up @@ -989,7 +992,7 @@ jobs:
PHP_BUILD_CACHE_BASE_DIR: C:\build-cache
PHP_BUILD_OBJ_DIR: C:\obj
PHP_BUILD_CACHE_SDK_DIR: C:\build-cache\sdk
PHP_BUILD_SDK_BRANCH: php-sdk-2.3.0
PHP_BUILD_SDK_BRANCH: php-sdk-2.5.0
PHP_BUILD_CRT: ${{ inputs.vs_crt_version }}
PLATFORM: ${{ matrix.x64 && 'x64' || 'x86' }}
THREAD_SAFE: "${{ matrix.zts && '1' || '0' }}"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ jobs:
PHP_BUILD_CACHE_BASE_DIR: C:\build-cache
PHP_BUILD_OBJ_DIR: C:\obj
PHP_BUILD_CACHE_SDK_DIR: C:\build-cache\sdk
PHP_BUILD_SDK_BRANCH: php-sdk-2.3.0
PHP_BUILD_SDK_BRANCH: php-sdk-2.5.0
PHP_BUILD_CRT: vs17
PLATFORM: x64
THREAD_SAFE: "1"
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/root.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ jobs:
branch: ${{ matrix.branch.ref }}
community_verify_type_inference: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
libmysqlclient_with_mysqli: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1) }}
macos_arm64_version: ${{ ((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 5) || matrix.branch.version[0] >= 9) && '15' || '14' }}
run_alpine: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
run_linux_ppc64: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
run_macos_arm64: ${{ (matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) || matrix.branch.version[0] >= 9 }}
Expand Down
75 changes: 75 additions & 0 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Unit Tests
on:
push:
paths:
- 'main/network.c'
- 'tests/unit/**'
- '.github/workflows/unit-tests.yml'
branches:
- master
pull_request:
paths:
- 'main/network.c'
- 'tests/unit/**'
- '.github/workflows/unit-tests.yml'
branches:
- '**'
workflow_dispatch: ~

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.url || github.run_id }}
cancel-in-progress: true

env:
CC: ccache gcc
CXX: ccache g++

jobs:
UNIT_TESTS:
if: github.repository == 'php/php-src' || github.event_name == 'pull_request'
name: UNIT_TESTS_LINUX_X64
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- name: git checkout
uses: actions/checkout@v6

- name: Install dependencies
run: |
set -x
sudo apt-get update
sudo apt-get install -y \
libcmocka-dev \
autoconf \
gcc \
make \
unzip \
bison \
re2c \
locales \
ccache

- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: "unit-tests-${{hashFiles('main/php_version.h')}}"
append-timestamp: false
save: ${{ github.event_name != 'pull_request' }}

- name: ./configure (minimal build)
uses: ./.github/actions/configure-unit-tests

- name: make libphp.a
run: |
set -x
make -j$(/usr/bin/nproc) >/dev/null

- name: Run unit tests
run: |
set -x
cd tests/unit
make test

43 changes: 43 additions & 0 deletions .github/workflows/verify-bundled-files.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Verify Bundled Files

on:
push:
paths: &paths
- '.github/scripts/download-bundled/pcre2.sh'
- 'ext/pcre/pcre2lib/**'
pull_request:
paths: *paths
schedule:
- cron: "0 1 * * *"
workflow_dispatch: ~

permissions:
contents: read

jobs:
VERIFY_BUNDLED_FILES:
name: Verify Bundled Files
runs-on: ubuntu-24.04
steps:
- name: git checkout
uses: actions/checkout@v6

- name: Detect changed files
uses: dorny/paths-filter@v3
id: changes
with:
base: master
filters: |
pcre2:
- '.github/scripts/download-bundled/pcre2.sh'
- 'ext/pcre/pcre2lib/**'

- name: PCRE2
if: ${{ !cancelled() && (steps.changes.outputs.pcre2 == 'true' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') }}
run: |
echo "::group::Download"
.github/scripts/download-bundled/pcre2.sh
echo "::endgroup::"
echo "::group::Verify files"
.github/scripts/test-directory-unchanged.sh ext/pcre/pcre2lib
echo "::endgroup::"
2 changes: 1 addition & 1 deletion CODING_STANDARDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@ rewritten to comply with these rules.

1. The length of constant string literals should be calculated via ``strlen()``
instead of using ``sizeof()-1`` as it is clearer and any modern compiler
will optimize it away. Legacy usages of the latter style exists within the
will optimize it away. Legacy usages of the latter style exist within the
codebase but should not be refactored, unless larger refactoring around that
code is taking place.

Expand Down
4 changes: 3 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ scattered across different websites, and often outdated. Nonetheless, they can
provide a good starting point for learning about the fundamentals of the code
base.

* https://php.github.io/php-src/
* https://www.phpinternalsbook.com/
* https://www.npopov.com/
* [Internal value representation](https://www.npopov.com/2015/05/05/Internal-value-representation-in-PHP-7-part-1.html), [part 2](https://www.npopov.com/2015/06/19/Internal-value-representation-in-PHP-7-part-2.html)
Expand Down Expand Up @@ -357,7 +358,8 @@ Currently, we have the following branches in use:

| Branch | |
| --------- | --------- |
| master | Active development branch for PHP 8.5, which is open for backwards incompatible changes and major internal API changes. |
| master | Active development branch for PHP 8.6, which is open for backwards incompatible changes and major internal API changes. |
| PHP-8.5 | Is used to release the PHP 8.5.x series. This is a current stable version and is open for bugfixes only. |
| PHP-8.4 | Is used to release the PHP 8.4.x series. This is a current stable version and is open for bugfixes only. |
| PHP-8.3 | Is used to release the PHP 8.3.x series. This is a current stable version and is open for bugfixes only. |
| PHP-8.2 | Is used to release the PHP 8.2.x series. This is an old stable version and is open for security fixes only. |
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--------------------------------------------------------------------
The PHP License, version 3.01
Copyright (c) 1999 - 2024 The PHP Group. All rights reserved.
Copyright (c) 1999 - 2025 The PHP Group. All rights reserved.
--------------------------------------------------------------------

Redistribution and use in source and binary forms, with or without
Expand Down
Loading