Skip to content

Commit 327c952

Browse files
committed
Prepare for PHP 8.3
1 parent 853181a commit 327c952

11 files changed

+15
-950
lines changed

CONTRIBUTING.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,8 @@ Currently we have the following branches in use:
331331

332332
| Branch | |
333333
| --------- | --------- |
334-
| master | Active development branch for PHP 8.2, which is open for backwards incompatible changes and major internal API changes. |
334+
| master | Active development branch for PHP 8.3, which is open for backwards incompatible changes and major internal API changes. |
335+
| PHP-8.2 | Is used to release the PHP 8.2.x series. This is a current stable version and is open for bugfixes only. |
335336
| PHP-8.1 | Is used to release the PHP 8.1.x series. This is a current stable version and is open for bugfixes only. |
336337
| PHP-8.0 | Is used to release the PHP 8.0.x series. This is a current stable version and is open for bugfixes only. |
337338
| PHP-7.4 | Is used to release the PHP 7.4.x series. This is an old stable version and is open for security fixes only. |

NEWS

+1-381
Original file line numberDiff line numberDiff line change
@@ -1,386 +1,6 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3-
?? ??? ????, PHP 8.2.0RC1
3+
?? ??? ????, PHP 8.3.0alpha1
44

5-
- CLI:
6-
. Implement built-in web server responding without body to HEAD request on
7-
a static resource. (Vedran Miletic, Marin Martuslovic)
8-
. Implement built-in web server responding with HTTP status 405 to
9-
DELETE/PUT/PATCH request on a static resource.
10-
(Vedran Miletic, Marin Martuslovic)
11-
12-
- Core:
13-
. Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function)
14-
(Tim Starling)
15-
. Fixed bug GH-9227 (Trailing dots and spaces in filenames are ignored).
16-
(cmb)
17-
. Fixed bug GH-9285 (Traits cannot be used in readonly classes).
18-
(kocsismate)
19-
. Fixed bug GH-9186 (@strict-properties can be bypassed using
20-
unserialization). (kocsismate)
21-
22-
- Date:
23-
. Fixed bug GH-9431 (DateTime::getLastErrors() not returning false when no
24-
errors/warnings). (Derick)
25-
26-
- ODBC:
27-
. Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate). (Calvin
28-
Buckley)
29-
30-
- Opcache:
31-
. Fixed bug GH-9371 (Crash with JIT on mac arm64)
32-
(jdp1024/David Carlier)
33-
34-
- OpenSSL:
35-
. Fixed bug GH-9310 (SSL local_cert and local_pk do not respect
36-
open_basedir). (Jakub Zelenka)
37-
. Implement FR #76935 ("chacha20-poly1305" is an AEAD but does not work like
38-
AEAD). (Jakub Zelenka)
39-
. Added openssl_cipher_key_length function. (Jakub Zelenka)
40-
41-
- PDO_ODBC:
42-
. Fixed bug GH-9347 (Current ODBC liveness checks may be inadequate). (Calvin
43-
Buckley)
44-
45-
- Random:
46-
. Fixed bug GH-9415 (Randomizer::getInt(0, 2**32 - 1) with Mt19937
47-
always returns 1). (timwolla)
48-
. Fixed Randomizer::getInt() consistency for 32-bit engines. (timwolla)
49-
50-
- Streams:
51-
. Fixed bug GH-9316 ($http_response_header is wrong for long status line).
52-
(cmb, timwolla)
53-
54-
- XML:
55-
. Added libxml_get_external_entity_loader() function. (Tim Starling)
56-
57-
18 Aug 2022, PHP 8.2.0beta3
58-
59-
- Core:
60-
. Fixed incorrect double to long casting in latest clang. (zeriyoshi)
61-
. Added support for defining constants in traits. (sj-i)
62-
. Stop incorrectly emitting false positive deprecation notice alongside
63-
unsupported syntax fatal error for `"{$g{'h'}}"`. (TysonAndre)
64-
. Fix unexpected deprecated dynamic property warning, which occurred when
65-
exit() in finally block after an exception was thrown without catching.
66-
(Twosee)
67-
68-
- MBString:
69-
. Fixed bug GH-9248 (Segmentation fault in mb_strimwidth()). (cmb)
70-
71-
- Random:
72-
. Fixed bug GH-9235 (non-existant $sequence parameter in stub for
73-
PcgOneseq128XslRr64::__construct()). (timwolla)
74-
. Fixed bug GH-9190, GH-9191 (undefined behavior for MT_RAND_PHP when
75-
handling large ranges). (timwolla)
76-
. Fixed bug GH-9249 (Xoshiro256StarStar does not reject the invalid
77-
all-zero state). (timwolla)
78-
. Removed redundant RuntimeExceptions from Randomizer methods. The
79-
exceptions thrown by the engines will be exposed directly. (timwolla)
80-
. Added extension specific Exceptions/Errors (RandomException, RandomError,
81-
BrokenRandomEngineError). (timwolla)
82-
83-
- Session:
84-
. Fixed GH-9200 (setcookie has an obsolete expires date format). (timwolla)
85-
86-
- Standard:
87-
. Fixed bug #65489 (glob() basedir check is inconsistent). (Jakub Zelenka)
88-
. Fixed GH-9200 (setcookie has an obsolete expires date format). (Derick)
89-
. Fixed GH-9244 (Segfault with array_multisort + array_shift). (cmb)
90-
. Fixed bug GH-9296 (`ksort` behaves incorrectly on arrays with mixed keys).
91-
(Denis Vaksman)
92-
93-
04 Aug 2022, PHP 8.2.0beta2
94-
95-
- Core:
96-
. Fixed bug GH-7900 (Arrow function with never return type compile-time
97-
errors). (ilutov)
98-
99-
- Date:
100-
. Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of
101-
different type). (Derick)
102-
. Fixed bug GH-8964 (DateTime object comparison after applying delta less
103-
than 1 second). (Derick)
104-
. Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded
105-
down since PHP 8.1.0). (Derick)
106-
. Fixed bug #75035 (Datetime fails to unserialize "extreme" dates).
107-
(Derick)
108-
. Fixed bug #80483 (DateTime Object with 5-digit year can't unserialized).
109-
(Derick)
110-
. Fixed bug #81263 (Wrong result from DateTimeImmutable::diff). (Derick)
111-
112-
- DBA:
113-
. Fixed LMDB driver memory leak on DB creation failure (Girgias)
114-
. Fixed GH-8856 (dba: lmdb: allow to override the MDB_NOSUBDIR flag). (Girgias)
115-
116-
- FFI:
117-
. Fixed bug GH-9090 (Support assigning function pointers in FFI). (Adam
118-
Saponara)
119-
120-
- Intl:
121-
. Declared Transliterator::$id as readonly to unlock subclassing it. (Nicolas
122-
Grekas)
123-
124-
- OPcache:
125-
. Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy).
126-
(Arnaud, Sergei Turchanov)
127-
128-
- PCNTL:
129-
. Fixed pcntl_(get|set)priority error handling for MacOS. (Juan Morales)
130-
131-
- Random:
132-
. Fixed bug GH-9067 (random extension is not thread safe). (cmb)
133-
. Fixed bug GH-9055 (segmentation fault if user engine throws). (timwolla)
134-
. Fixed bug GH-9066 (signed integer overflow). (zeriyoshi)
135-
. Fixed bug GH-9083 (undefined behavior during shifting). (timwolla)
136-
. Fixed bug GH-9088, GH-9056 (incorrect expansion of bytes when
137-
generating uniform integers within a given range). (timwolla)
138-
. Fixed bug GH-9089 (Fix memory leak on Randomizer::__construct()
139-
call twice). (zeriyoshi)
140-
. Fixed bug GH-9212 (PcgOneseq128XslRr64::jump() should not allow negative
141-
$advance). (Anton Smirnov)
142-
. Changed Mt19937 to throw a ValueError instead of InvalidArgumentException
143-
for invalid $mode. (timwolla)
144-
. Splitted Random\Randomizer::getInt() (without arguments) to
145-
Random\Randomizer::nextInt(). (zeriyoshi)
146-
147-
- Sockets:
148-
. Added SOL_FILTER socket option for Solaris. (David Carlier)
149-
150-
- SPL:
151-
. Fixed bug #69181 (READ_CSV|DROP_NEW_LINE drops newlines within fields).
152-
(cmb)
153-
. Fixed bug #65069 (GlobIterator incorrect handling of open_basedir check).
154-
(Jakub Zelenka)
155-
156-
21 Jul 2022, PHP 8.2.0beta1
157-
158-
- CLI:
159-
. Updated the mime-type table for the builtin-server. (Ayesh Karunaratne)
160-
. Fixed potential overflow for the builtin server via the
161-
PHP_CLI_SERVER_WORKERS environment variable. (yiyuaner)
162-
. Fixed GH-8575 by changing STDOUT, STDERR and STDIN to not close on resource
163-
destruction. (Jakub Zelenka)
164-
165-
- Core:
166-
. Reduced the memory footprint of strings returned by var_export(),
167-
json_encode(), serialize(), iconv_*(), mb_ereg*(), session_create_id(),
168-
http_build_query(), strstr(), Reflection*::__toString(). (Arnaud)
169-
. Fixed bug GH-8995 (WeakMap object reference offset causing TypeError).
170-
(Tobias Bachert)
171-
. Added error_log_mode ini setting. (Mikhail Galanin)
172-
. Updated request startup messages. (Eric Norris)
173-
174-
- COM:
175-
. Fixed bug GH-8750 (Can not create VT_ERROR variant type). (cmb)
176-
177-
- Filter:
178-
. Added FILTER_FLAG_GLOBAL_RANGE to filter Global IPs. (vnsavage)
179-
180-
- FPM:
181-
. Added listen.setfib pool option to set route FIB on FreeBSD. (David Carlier)
182-
. Added access.suppress_path pool option to filter access log entries.
183-
(Mark Gallagher)
184-
. Fixed on fpm scoreboard occasional warning on acquisition failure.
185-
(Felix Wiedemann)
186-
187-
- Opcache:
188-
. Added initial support for JIT performance profiling generation
189-
for macOs Instrument. (David Carlier)
190-
. Fixed bug GH-8030 (Segfault with JIT and large match/switch statements).
191-
(Arnaud)
192-
. Added JIT support improvement for macOs for segments and executable permission
193-
bit handling. (David Carlier)
194-
. Added JIT buffer allocation near the .text section on FreeNSD. (David Carlier)
195-
196-
- PCRE:
197-
. Updated bundled libpcre to 10.40. (cmb)
198-
199-
- PDO_Firebird:
200-
. Fixed bug GH-8576 (Bad interpretation of length when char is UTF-8). (cmb)
201-
202-
- Random:
203-
. Added new random extension. (Go Kudo)
204-
205-
- SPL:
206-
. Widen iterator_to_array() and iterator_count()'s $iterator parameter to
207-
iterable. (timwolla)
208-
209-
- Standard:
210-
. Implemented FR GH-8924 (str_split should return empty array for empty
211-
string). (Michael Vorisek)
212-
. Added ini_parse_quantity function to convert ini quantities shorthand
213-
notation to int. (Dennis Snell)
214-
. Enable arc4random_buf for Linux glibc 2.36 and onwards
215-
for the random_bytes. (Cristian Rodriguez)
216-
. Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier).
217-
218-
- Windows:
219-
. Added preliminary support for (cross-)building for ARM64. (Yun Dou)
220-
221-
07 Jul 2022, PHP 8.2.0alpha3
222-
223-
- Core:
224-
. Uses safe_perealloc instead of perealloc for the
225-
ZEND_PTR_STACK_RESIZE_IF_NEEDED to avoid possible overflows. (David Carlier)
226-
227-
- DBA:
228-
. Fixed LMDB driver hanging when attempting to delete a non-existing key
229-
(Girgias)
230-
231-
- Intl:
232-
. Fixed build for ICU 69.x and onwards. (David Carlier)
233-
234-
- Opcache:
235-
. Allocate JIT buffer close to PHP .text segemnt to allow using direct
236-
IP-relative calls and jumps.
237-
(Su Tao, Wang Xue, Chen Hu, Lizhen Lizhen, Dmitry)
238-
239-
- Sockets:
240-
. Added TCP_CONGESTION socket option. (David Carlier)
241-
. Added SO_ZEROCOPY/MSG_ZEROCOPY options. (David Carlier)
242-
243-
- SPL:
244-
. Uses safe_erealloc instead of erealloc to handle heap growth
245-
for the SplHeap::insert method to avoid possible overflows. (David Carlier)
246-
247-
- Standard:
248-
. Fixed the crypt_sha256/512 api build with clang > 12. (David Carlier)
249-
. Uses safe_erealloc instead of erealloc to handle options in getopt
250-
to avoid possible overflows. (David Carlier)
251-
252-
- Zip:
253-
254-
. Implement fseek for zip stream when possible with libzip 1.9.1. (Remi)
255-
256-
23 Jun 2022, PHP 8.2.0alpha2
257-
258-
- Core:
259-
. Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1
260-
references). (Nicolas Grekas)
261-
. Fixed bug GH-8661 (Nullsafe in coalesce triggers undefined variable
262-
warning). (ilutov)
263-
. Fixed bug GH-7821 and GH-8418 (Allow arbitrary const expressions in backed
264-
enums). (ilutov)
265-
. Fixed bug GH-8810 (Incorrect lineno in backtrace of multi-line function
266-
calls). (ilutov)
267-
. Optimised code path for newly created file with the stream plain wrapper. (Max Kellermann)
268-
269-
- Curl:
270-
. Added new constants from cURL 7.62 to 7.80. (Pierrick)
271-
. New function curl_upkeep(). (Pierrick)
272-
273-
- OpenSSL:
274-
. Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann)
275-
276-
- PCRE:
277-
. Implemented FR #77726 (Allow null character in regex patterns). (cmb)
278-
279-
- Standard:
280-
. Deprecated utf8_encode() and utf8_decode(). (Rowan Tommins)
281-
282-
- Streams:
283-
. Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann)
284-
285-
09 Jun 2022, PHP 8.2.0alpha1
286-
287-
- CLI:
288-
. Fixed bug #81496 (Server logs incorrect request method). (lauri)
289-
290-
- Core:
291-
. Fixed bug #81380 (Observer may not be initialized properly). (krakjoe)
292-
. Fixed bug GH-7771 (Fix filename/lineno of constant expressions). (ilutov)
293-
. Fixed bug GH-7792 (Improve class type in error messages). (ilutov)
294-
. Support huge pages on MacOS. (David CARLIER)
295-
296-
- Curl:
297-
. Added support for CURLOPT_XFERINFOFUNCTION. (David Carlier)
298-
. Added support for CURLOPT_MAXFILESIZE_LARGE. (David Carlier)
299-
300-
- Date:
301-
. Fixed GH-8458 (DateInterval::createFromDateString does not throw if
302-
non-relative items are present). (Derick)
303-
. Fixed bug #52015 (Allow including end date in DatePeriod iterations)
304-
(Daniel Egeberg, Derick)
305-
. idate() now accepts format specifiers "N" (ISO Day-of-Week) and "o" (ISO
306-
Year). (Pavel Djundik)
307-
308-
- FPM:
309-
. Emit error for invalid port setting. (David Carlier)
310-
. Added extra check for FPM proc dumpable on SELinux based systems.
311-
(David Carlier)
312-
. Added support for listening queue on macOS. (David Carlier)
313-
. Changed default for listen.backlog on Linux to -1. (Cristian Rodríguez)
314-
315-
- FTP:
316-
. Fix datetime format string to follow POSIX spec in ftp_mdtm(). (Jihwan Kim)
317-
318-
- Intl:
319-
. Update all grandfathered language tags with preferred values
320-
. Fixed GH-7939 (Cannot unserialize IntlTimeZone objects). (cmb)
321-
322-
- OCI8:
323-
. Added oci8.prefetch_lob_size directive to tune LOB query performance
324-
. Support for building against Oracle Client libraries 10.1 and 10.2 has been
325-
dropped. Oracle Client libraries 11.2 or newer are now required.
326-
327-
- ODBC:
328-
. Fixed bug GH-8300 (User input not escaped when building connection string).
329-
(Calvin Buckley)
330-
331-
- PDO_ODBC:
332-
. Fixed bug #80909 (crash with persistent connections in PDO_ODBC). (Calvin
333-
Buckley)
334-
. Fixed bug GH-8300 (User input not escaped when building connection string).
335-
(Calvin Buckley)
336-
337-
- Reflection:
338-
. Added ReflectionFunction::isAnonymous(). (Nicolas Grekas)
339-
. Added ReflectionMethod::hasPrototype(). (Ollie Read)
340-
. Narrow ReflectionEnum::getBackingType() return type to ReflectionNamedType.
341-
(SamMousa)
342-
343-
- Session:
344-
. Fixed bug GH-7787 (Improve session write failure message for user error
345-
handlers). (ilutov)
346-
347-
- Sockets:
348-
. Added TCP_NOTSENT_LOWAT socket option. (David Carlier)
349-
. Added SO_MEMINFO socket option. (David Carlier)
350-
. Added SO_RTABLE socket option (OpenBSD), equivalent of SO_MARK (Linux).
351-
(David Carlier)
352-
. Added TCP_KEEPALIVE, TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT socket
353-
options. (David Carlier)
354-
. Added ancillary data support for FreeBSD. (David Carlier)
355-
. Added ancillary data support for NetBSD. (David Carlier)
356-
. Added SO_BPF_EXTENSIONS socket option. (David Carlier)
357-
. Added SO_SETFIB socket option. (David Carlier)
358-
359-
- Sodium:
360-
. Added sodium_crypto_stream_xchacha20_xor_ic(). (Scott)
361-
362-
- SQLite3:
363-
. Changed sqlite3.defensive from PHP_INI_SYSTEM to PHP_INI_USER. (bohwaz)
364-
365-
- Standard:
366-
. net_get_interfaces() also reports wireless network interfaces on Windows.
367-
(Yurun)
368-
. Finished AVIF support in getimagesize(). (Yannis Guyon)
369-
. Fixed bug GH-7847 (stripos with large haystack has bad performance).
370-
(ilutov)
371-
. New function memory_reset_peak_usage(). (Patrick Allaert)
372-
. Fixed parse_url(): can not recognize port without scheme. (pandaLIU)
373-
374-
- Streams:
375-
. Set IP_BIND_ADDRESS_NO_PORT if available when connecting to remote host.
376-
(Cristian Rodríguez)
377-
. Fixed bug GH-8548 (stream_wrapper_unregister() leaks memory). (ilutov)
378-
379-
- Zip:
380-
. add ZipArchive::clearError() method
381-
. add ZipArchive::getStreamName() method
382-
. add ZipArchive::getStreamIndex() method
383-
. On Windows, the Zip extension is now built as shared library (DLL) by
384-
default. (cmb)
3855

3866
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>

0 commit comments

Comments
 (0)