|
1 | 1 | PHP NEWS
|
2 | 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
3 |
| -?? ??? ????, PHP 8.2.0RC1 |
| 3 | +?? ??? ????, PHP 8.3.0alpha1 |
4 | 4 |
|
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) |
385 | 5 |
|
386 | 6 | <<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
|
0 commit comments