Skip to content

Commit d8df823

Browse files
committed
Merge remote-tracking branch 'origin/master' into true-async
# Conflicts: # main/output.c
2 parents af61820 + 07f1cfd commit d8df823

File tree

224 files changed

+6096
-1299
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

224 files changed

+6096
-1299
lines changed

.github/workflows/nightly.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ on:
3232
windows_version:
3333
required: true
3434
type: string
35+
vs_crt_version:
36+
required: true
37+
type: string
3538
skip_laravel:
3639
required: true
3740
type: boolean
@@ -1034,7 +1037,7 @@ jobs:
10341037
PHP_BUILD_OBJ_DIR: C:\obj
10351038
PHP_BUILD_CACHE_SDK_DIR: C:\build-cache\sdk
10361039
PHP_BUILD_SDK_BRANCH: php-sdk-2.3.0
1037-
PHP_BUILD_CRT: ${{ inputs.windows_version == '2022' && 'vs17' || 'vs16' }}
1040+
PHP_BUILD_CRT: ${{ inputs.vs_crt_version }}
10381041
PLATFORM: ${{ matrix.x64 && 'x64' || 'x86' }}
10391042
THREAD_SAFE: "${{ matrix.zts && '1' || '0' }}"
10401043
INTRINSICS: "${{ matrix.zts && 'AVX2' || '' }}"

.github/workflows/root.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ jobs:
6060
(((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 5) || matrix.branch.version[0] >= 9) && '24.04')
6161
|| '22.04' }}
6262
windows_version: '2022'
63+
vs_crt_version: ${{ ((matrix.branch.version[0] == 8 && matrix.branch.version[1] >= 4) && 'vs17') || 'vs16' }}
6364
skip_laravel: ${{ matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1 }}
6465
skip_symfony: ${{ matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1 }}
6566
skip_wordpress: ${{ matrix.branch.version[0] == 8 && matrix.branch.version[1] == 1 }}

EXTENSIONS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ MAINTENANCE: Maintained
196196
STATUS: Working
197197
-------------------------------------------------------------------------------
198198
EXTENSION: lexbor
199-
PRIMARY MAINTAINER: Niels Dossche <[email protected]> (2023 - 2025)
199+
PRIMARY MAINTAINER: Niels Dossche <[email protected]> (2025 - 2025)
200200
Mate Kocsis <[email protected]> (2025 - 2025)
201201
MAINTENANCE: Maintained
202202
STATUS: Working

NEWS

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3-
?? ??? ????, PHP 8.5.0alpha1
3+
?? ??? ????, PHP 8.5.0alpha2
4+
5+
- Standard:
6+
. Optimized pack(). (nielsdos, divinity76)
7+
8+
- URI:
9+
. Return the singleton UrlValidationErrorType instances from Uri\WhatWg\Url
10+
instead of creating new objects that are different from the singleton.
11+
(timwolla)
12+
13+
03 Jul 2025, PHP 8.5.0alpha1
414

515
- BCMath:
616
. Simplify `bc_divide()` code. (SakiTakamachi)

UPGRADING

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,19 @@ PHP 8.5 UPGRADE NOTES
259259
4. Deprecated Functionality
260260
========================================
261261

262+
- Core:
263+
. Returning a non-string from a user output handler is deprecated. The
264+
deprecation warning will bypass the handler with the bad return to ensure
265+
it is visible; if there are nested output handlers the next one will still
266+
be used.
267+
RFC: https://wiki.php.net/rfc/deprecations_php_8_4
268+
. Trying to produce output (e.g. with `echo`) within a user output handler
269+
is deprecated. The deprecation warning will bypass the handler producing the
270+
output to ensure it is visible; if there are nested output handlers the next
271+
one will still be used. If a user output handler returns a non-string and
272+
produces output, the warning about producing an output is emitted first.
273+
RFC: https://wiki.php.net/rfc/deprecations_php_8_4
274+
262275
- Hash:
263276
. The MHASH_* constants have been deprecated. These have been overlooked
264277
when the mhash*() function family has been deprecated per
@@ -619,6 +632,7 @@ PHP 8.5 UPGRADE NOTES
619632
. Improved performance of urlencode() and rawurlencode().
620633
. Improved unpack() performance with nameless repetitions by avoiding
621634
creating temporary strings and reparsing them.
635+
. Improved pack() performance.
622636

623637
- XMLReader:
624638
. Improved property access performance.

UPGRADING.INTERNALS

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,29 @@ PHP 8.5 INTERNALS UPGRADE NOTES
4343
. Added the zend_update_exception_properties() function for instantiating
4444
Exception child classes. It updates the $message, $code, and $previous
4545
properties.
46+
. zend_exception_get_default() was removed, use zend_ce_exception directly.
47+
. zend_get_error_exception() was removed, use zend_ce_error_exception
48+
directly.
4649
. ZEND_IS_XDIGIT() macro was removed because it was unused and its name
4750
did not match its actual behavior.
51+
. The following zend_string-related legacy aliases were removed:
52+
* IS_INTERNED() - use ZSTR_IS_INTERNED()
53+
* STR_EMPTY_ALLOC() - use ZSTR_EMPTY_ALLOC()
54+
* _STR_HEADER_SIZE - use _ZSTR_HEADER_SIZE
55+
* STR_ALLOCA_ALLOC() - use ZSTR_ALLOCA_ALLOC()
56+
* STR_ALLOCA_INIT() - use ZSTR_ALLOCA_INIT()
57+
* STR_ALLOCA_FREE() - use ZSTR_ALLOCA_FREE()
4858
. zend_register_constant() now returns a pointer to the added constant
4959
on success and NULL on failure instead of SUCCESS/FAILURE.
60+
The specialized registration methods that previously had void returns
61+
also return pointers to the added constants:
62+
* zend_register_bool_constant()
63+
* zend_register_null_constant()
64+
* zend_register_long_constant()
65+
* zend_register_double_constant()
66+
* zend_register_string_constant()
67+
* zend_register_stringl_constant()
68+
. EG(fake_scope) now is a _const_ zend_class_entry*.
5069

5170
========================
5271
2. Build system changes
@@ -72,11 +91,14 @@ PHP 8.5 INTERNALS UPGRADE NOTES
7291
. Autoconf macro PHP_AP_EXTRACT_VERSION has been removed.
7392
. Autoconf macro PHP_BUILD_THREAD_SAFE has been removed (set enable_zts
7493
manually).
94+
. Autoconf macro PHP_CHECK_SIZEOF is obsolete (use AC_CHECK_SIZEOF).
7595
. Autoconf macro PHP_DEF_HAVE has been removed (use AC_DEFINE).
7696
. Autoconf macro PHP_OUTPUT has been removed (use AC_CONFIG_FILES).
7797
. Autoconf macro PHP_TEST_BUILD has been removed (use AC_* macros).
7898
. Preprocessor macro HAVE_PTRDIFF_T has been removed.
7999
. Preprocessor macro HAVE_INTMAX_T has been removed.
100+
. Preprocessor macro HAVE_SSIZE_T has been removed.
101+
. Preprocessor macro SIZEOF_SSIZE_T has been removed.
80102

81103
========================
82104
3. Module changes

Zend/Optimizer/zend_inference.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2409,7 +2409,7 @@ static const zend_property_info *lookup_prop_info(const zend_class_entry *ce, ze
24092409
/* If the class is linked, reuse the precise runtime logic. */
24102410
if ((ce->ce_flags & ZEND_ACC_LINKED)
24112411
&& (!scope || (scope->ce_flags & ZEND_ACC_LINKED))) {
2412-
zend_class_entry *prev_scope = EG(fake_scope);
2412+
const zend_class_entry *prev_scope = EG(fake_scope);
24132413
EG(fake_scope) = scope;
24142414
prop_info = zend_get_property_info(ce, name, 1);
24152415
EG(fake_scope) = prev_scope;

Zend/tests/closures/closure_016.phpt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ Foo::__invoke
4242
bool(true)
4343
Foo::__invoke
4444
bool(true)
45-
Closure::__invoke
45+
{closure:foo():9}
4646
bool(true)
47-
Closure::__invoke
47+
{closure:foo():9}
4848
bool(true)
4949
Closure::__invoke
5050
bool(true)

Zend/tests/concat/bug79836.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ $counter = 0;
88
ob_start(function ($buffer) use (&$c, &$counter) {
99
$c = 0;
1010
++$counter;
11+
return '';
1112
}, 1);
1213
$c .= [];
1314
$c .= [];

Zend/tests/concat/bug79836_1.phpt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ opcache.optimization_level = 0x7FFEBFFF & ~0x400
77
$x = 'non-empty';
88
ob_start(function () use (&$c) {
99
$c = 0;
10+
return '';
1011
}, 1);
1112
$c = [];
1213
$x = $c . $x;

0 commit comments

Comments
 (0)