xref: /PHP-8.4/NEWS (revision 179ca2bf)
1PHP                                                                        NEWS
2|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3?? ??? ????, PHP 8.4.0
4
5- Calendar:
6  . Fixed jdtogregorian overflow. (David Carlier)
7
8- Core:
9  . Fail early in *nix configuration build script. (hakre)
10
11- Curl:
12  . Fixed bug GH-16723 (CURLMOPT_PUSHFUNCTION issues). (cmb)
13
14- GD:
15  . Fixed GH-16776 (imagecreatefromstring overflow). (David Carlier)
16
17- Hash:
18  . Fixed GH-16711: Segfault in mhash(). (Girgias)
19
20- PCNTL:
21  . Fixed bug GH-16769: (pcntl_sigwaitinfo aborts on signal value
22    as reference). (David Carlier)
23
24- PDO:
25  . Fixed memory leak of `setFetchMode()`. (SakiTakamachi)
26
27- Readline:
28  . Fixed UAF with readline_info(). (David Carlier)
29
30- Reflection:
31  . Fixed the name of the second parameter of
32    ReflectionClass::resetAsLazyGhost(). (Arnaud)
33
34- Standard:
35  . Fixed parameter names of fpow() to be identical to pow(). (Girgias)
36
3707 Nov 2024, PHP 8.4.0RC4
38
39- BcMath:
40  . Fixed bug GH-16265 (Added early return case when result is 0)
41    (Saki Takamachi).
42  . Fixed bug GH-16262 (Fixed a bug where size_t underflows) (Saki Takamachi).
43
44- Core:
45  . Fixed bug GH-16574 (Incorrect error "undefined method" messages).
46    (nielsdos)
47  . Fixed bug GH-16577 (EG(strtod_state).freelist leaks with opcache.preload).
48    (nielsdos)
49  . Fixed bug GH-16615 (Assertion failure in zend_std_read_property). (Arnaud)
50  . Fixed bug GH-16342 (Added ReflectionProperty::isLazy()). (Arnaud)
51  . Fixed bug GH-16648 (Use-after-free during array sorting). (ilutov)
52
53- Date:
54  . Fixed bug GH-14732 (date_sun_info() fails for non-finite values). (cmb)
55
56- DOM:
57  . Fixed bug GH-16594 (Assertion failure in DOM -> before). (nielsdos)
58  . Fixed bug GH-16593 (Assertion failure in DOM->replaceChild). (nielsdos)
59  . Fixed bug GH-16595 (Another UAF in DOM -> cloneNode). (nielsdos)
60
61- FPM:
62  . Fixed bug GH-16628 (FPM logs are getting corrupted with this log
63    statement). (nielsdos)
64
65- GD:
66  . Fixed bug GH-16559 (UBSan abort in ext/gd/libgd/gd_interpolation.c:1007).
67    (nielsdos)
68
69- GMP:
70  . Fixed segfaults and other issues related to operator overloading with
71    GMP objects. (Girgias)
72
73- Opcache:
74  . Fixed bug GH-16572 (Incorrect result with reflection in low-trigger JIT).
75    (nielsdos)
76
77- OpenSSL:
78  . Fix various memory leaks on error conditions in openssl_x509_parse().
79    (nielsdos)
80
81- PDO:
82  . Fixed bug GH-16167 (Prevent mixing PDO sub-classes with different DSN).
83    (kocsismate)
84  . Fixed bug GH-16314 ("Pdo\Mysql object is uninitialized" when opening a
85    persistent connection). (kocsismate)
86
87- PDO_ODBC:
88  . Fixed bug GH-16450 (PDO_ODBC can inject garbage into field values). (cmb)
89
90- Reflection:
91  . Fixed bug GH-16601 (Memory leak in Reflection constructors). (nielsdos)
92
93- Session:
94  . Fixed bug GH-16590 (UAF in session_encode()). (nielsdos)
95
96- SPL:
97  . Fixed bug GH-16588 (UAF in Observer->serialize). (nielsdos)
98  . Fix GH-16477 (Segmentation fault when calling __debugInfo() after failed
99    SplFileObject::__constructor). (Girgias)
100  . Fixed bug GH-16589 (UAF in SplDoublyLinked->serialize()). (nielsdos)
101  . Fixed bug GH-16604 (Memory leaks in SPL constructors). (nielsdos)
102  . Fixed bug GH-16646 (UAF in ArrayObject::unset() and
103    ArrayObject::exchangeArray()). (ilutov)
104
105- SysVShm:
106  . Fixed bug GH-16591 (Assertion error in shm_put_var). (nielsdos, cmb)
107
10824 Oct 2024, PHP 8.4.0RC3
109
110- Cli:
111  . Fixed bug GH-16373 (Shebang is not skipped for router script in cli-server
112    started through shebang). (ilutov)
113
114- COM:
115  . Fixed out of bound writes to SafeArray data. (cmb)
116
117- Core:
118  . Fixed bug OSS-Fuzz #371445205 (Heap-use-after-free in attr_free).
119    (nielsdos)
120  . Fixed bug GH-16168 (php 8.1 and earlier crash immediately when compiled
121    with Xcode 16 clang on macOS 15). (nielsdos)
122  . Fixed bug GH-16371 (Assertion failure in Zend/zend_weakrefs.c:646). (Arnaud)
123  . Fixed missing error when adding asymmetric visibility to static properties.
124    (ilutov)
125  . Fixed bug OSS-Fuzz #71407 (Null-dereference WRITE in
126    zend_lazy_object_clone). (Arnaud)
127  . Fixed bug GH-16515 (Incorrect propagation of ZEND_ACC_RETURN_REFERENCE for
128    call trampoline). (ilutov)
129  . Fixed bug GH-16509 (Incorrect line number in function redeclaration error).
130    (ilutov)
131  . Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed
132    early bound classes). (ilutov)
133
134- Curl:
135  . Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if
136    curl_multi_add_handle fails). (timwolla)
137  . Fixed bug GH-16359 (crash with curl_setopt* CURLOPT_WRITEFUNCTION
138    without null callback). (David Carlier)
139
140- Date:
141  . Fixed bug GH-16454 (Unhandled INF in date_sunset() with tiny $utcOffset).
142    (cmb)
143
144- DBA:
145  . Fixed bug GH-16390 (dba_open() can segfault for "pathless" streams). (cmb)
146
147- DOM:
148  . Fixed bug GH-16316 (DOMXPath breaks when not initialized properly).
149    (nielsdos)
150  . Add missing hierarchy checks to replaceChild. (nielsdos)
151  . Fixed bug GH-16465 (Heap buffer overflow in DOMNode->getElementByTagName).
152    (nielsdos)
153  . Fixed bug GH-16336 (Attribute intern document mismanagement). (nielsdos)
154  . Fixed bug GH-16338 (Null-dereference in ext/dom/node.c). (nielsdos)
155  . Fixed bug GH-16473 (dom_import_simplexml stub is wrong). (nielsdos)
156  . Fixed bug GH-16533 (Segfault when adding attribute to parent that is not
157    an element). (nielsdos)
158  . Fixed bug GH-16535 (UAF when using document as a child). (nielsdos)
159
160- EXIF:
161  . Fixed bug GH-16409 (Segfault in exif_thumbnail when not dealing with a
162    real file). (nielsdos, cmb)
163
164- FFI:
165  . Fixed bug GH-16397 (Segmentation fault when comparing FFI object).
166    (nielsdos)
167
168- Filter:
169  . Fixed bug GH-16523 (FILTER_FLAG_HOSTNAME accepts ending hyphen). (cmb)
170
171- GD:
172  . Fixed bug GH-16334 (imageaffine overflow on matrix elements).
173    (David Carlier)
174  . Fixed bug GH-16427 (Unchecked libavif return values). (cmb)
175
176- GMP:
177  . Fixed floating point exception bug with gmp_pow when using
178    large exposant values. (David Carlier).
179  . Fixed bug GH-16411 (gmp_export() can cause overflow). (cmb)
180  . Fixed bug GH-16501 (gmp_random_bits() can cause overflow).
181    (David Carlier)
182  . Fixed gmp_pow() overflow bug with large base/exponents.
183    (David Carlier)
184
185- MBstring:
186  . Fixed bug GH-16361 (mb_substr overflow on start/length arguments).
187    (David Carlier)
188
189- Opcache:
190  . Fixed bug GH-16408 (Array to string conversion warning emitted in
191    optimizer). (ilutov)
192
193- OpenSSL:
194  . Fixed bug GH-16357 (openssl may modify member types of certificate arrays).
195    (cmb)
196  . Fixed bug GH-16433 (Large values for openssl_csr_sign() $days overflow).
197    (cmb)
198
199- Phar:
200  . Fixed bug GH-16406 (Assertion failure in ext/phar/phar.c:2808). (nielsdos)
201
202- PHPDBG:
203  . Fixed bug GH-16174 (Empty string is an invalid expression for ev). (cmb)
204
205- Session:
206  . Fixed bug GH-16385 (Unexpected null returned by session_set_cookie_params).
207    (nielsdos)
208  . Fixed bug GH-16290 (overflow on cookie_lifetime ini value).
209    (David Carlier)
210
211- SOAP:
212  . Fixed bug GH-16318 (Recursive array segfaults soap encoding). (nielsdos)
213  . Fixed bug GH-16429 (Segmentation fault access null pointer in SoapClient).
214    (nielsdos)
215
216- Sockets:
217  . Fixed bug with overflow socket_recvfrom $length argument. (David Carlier)
218
219- SPL:
220  . Fixed bug GH-16337 (Use-after-free in SplHeap). (nielsdos)
221  . Fixed bug GH-16464 (Use-after-free in SplDoublyLinkedList::offsetSet()).
222    (ilutov)
223  . Fixed bug GH-16479 (Use-after-free in SplObjectStorage::setInfo()). (ilutov)
224  . Fixed bug GH-16478 (Use-after-free in SplFixedArray::unset()). (ilutov)
225
226- Standard:
227  . Fixed bug GH-16293 (Failed assertion when throwing in assert() callback with
228    bail enabled). (ilutov)
229
230- XMLReader:
231  . Fixed bug GH-16292 (Segmentation fault in ext/xmlreader/php_xmlreader.c).
232    (nielsdos)
233
234- Zlib:
235  . Fixed bug GH-16326 (Memory management is broken for bad dictionaries.)
236    (cmb)
237
23810 Oct 2024, PHP 8.4.0RC2
239
240- CGI:
241  . Fixed bug GHSA-p99j-rfp4-xqvq (Bypass of CVE-2024-4577, Parameter Injection
242    Vulnerability). (CVE-2024-8926) (nielsdos)
243  . Fixed bug GHSA-94p6-54jq-9mwp (cgi.force_redirect configuration is
244    bypassable due to the environment variable collision). (CVE-2024-8927)
245    (nielsdos)
246
247- Calendar:
248  . Fixed GH-16240: jdtounix overflow on argument value. (David Carlier)
249  . Fixed GH-16241: easter_days/easter_date overflow on year argument.
250    (David Carlier)
251  . Fixed GH-16263: jddayofweek overflow. (cmb)
252  . Fixed GH-16234: jewishtojd overflow. (nielsdos)
253
254- CLI:
255  . Fixed bug GH-16137: duplicate http headers when set several times by
256    the client. (David Carlier)
257
258- Core:
259  . Fixed bug GH-16040 (Use-after-free of object released in hook). (ilutov)
260  . Fixed bug GH-16054 (Segmentation fault when resizing hash table iterator
261    list while adding). (nielsdos)
262  . Fixed bug GH-15905 (Assertion failure for TRACK_VARS_SERVER). (cmb)
263  . Fixed bug GH-15907 (Failed assertion when promoting Serialize deprecation to
264    exception). (ilutov)
265  . Fixed bug GH-15851 (Segfault when printing backtrace during cleanup of
266    nested generator frame). (ilutov)
267  . Fixed bug GH-16026 (Reuse of dtor fiber during shutdown). (Arnaud)
268  . Fixed bug GH-15999 (zend_std_write_property() assertion failure with lazy
269    objects). (Arnaud)
270  . Fixed bug GH-15866 (Core dumped in Zend/zend_generators.c). (Arnaud)
271  . Fixed bug GH-15960 (Foreach edge cases with lazy objects). (Arnaud)
272  . Fixed bug GH-16188 (Assertion failure in Zend/zend_exceptions.c). (Arnaud)
273  . Fixed bug GH-16233 (Observer segfault when calling user function in
274    internal function via trampoline). (nielsdos)
275  . Fixed bug GH-16185 (Various hooked object iterator issues). (ilutov)
276
277- DOM:
278  . Fixed bug GH-16039 (Segmentation fault (access null pointer) in
279    ext/dom/parentnode/tree.c). (nielsdos)
280  . Fixed bug GH-16149 (Null pointer dereference in
281    DOMElement->getAttributeNames()). (nielsdos)
282  . Fixed bug GH-16151 (Assertion failure in ext/dom/parentnode/tree.c).
283    (nielsdos)
284  . Fixed bug GH-16190 (Using reflection to call Dom\Node::__construct
285    causes assertion failure). (nielsdos)
286  . Fixed bug GH-16150 (Use after free in php_dom.c). (nielsdos)
287  . Fixed bug GH-16152 (Memory leak in DOMProcessingInstruction/DOMDocument).
288    (nielsdos)
289  . Fix edge-case in DOM parsing decoding. (nielsdos)
290
291- FPM:
292  . Fixed bug GHSA-865w-9rf3-2wh5 (Logs from childrens may be altered).
293    (CVE-2024-9026) (Jakub Zelenka)
294
295- JSON:
296  . Fixed bug GH-15168 (stack overflow in json_encode()). (nielsdos)
297
298- GD:
299  . Fixed bug GH-16232 (bitshift overflow on wbmp file content reading /
300    fix backport from upstream). (David Carlier)
301  . Fixed bug GH-12264 (overflow/underflow on imagerotate degrees value)
302    (David Carlier)
303  . Fixed bug GH-16274 (imagescale underflow on RBG channels /
304    fix backport from upstream). (David Carlier)
305
306- LDAP:
307  . Fixed bug GH-16032 (Various NULL pointer dereferencements in
308    ldap_modify_batch()). (Girgias)
309  . Fixed bug GH-16101 (Segfault in ldap_list(), ldap_read(), and ldap_search()
310    when LDAPs array is not a list). (Girgias)
311  . Fix GH-16132 (php_ldap_do_modify() attempts to free pointer not allocated
312    by ZMM.). (Girgias)
313  . Fix GH-16136 (Memory leak in php_ldap_do_modify() when entry is not a
314    proper dictionary). (Girgias)
315
316- MBString:
317  . Fixed bug GH-16261 (Reference invariant broken in mb_convert_variables()).
318    (nielsdos)
319
320- Opcache:
321  . Fixed bug GH-16009 (Segmentation fault with frameless functions and
322    undefined CVs). (nielsdos)
323  . Fixed bug GH-16186 (Assertion failure in Zend/zend_operators.c). (Arnaud)
324
325- PCRE:
326  . Fixed bug GH-16184 (UBSan address overflowed in ext/pcre/php_pcre.c).
327    (nielsdos)
328
329- PHPDBG:
330  . Fixed bug GH-16181 (phpdbg: exit in exception handler reports fatal error).
331    (cmb)
332  . Fixed bug GH-16041 (Support stack limit in phpdbg). (Arnaud)
333
334- Reflection:
335  . Fixed bug GH-16122 (The return value of ReflectionFunction::getNamespaceName()
336    and ReflectionFunction::inNamespace() for closures is incorrect). (timwolla)
337  . Fixed bug GH-16187 (Assertion failure in ext/reflection/php_reflection.c).
338    (DanielEScherzer)
339  . Fixed bug GH-16162 (No ReflectionProperty::IS_VIRTUAL) (DanielEScherzer)
340
341- SAPI:
342  . Fixed bug GHSA-9pqp-7h25-4f32 (Erroneous parsing of multipart form data).
343    (CVE-2024-8925) (Arnaud)
344
345- SOAP:
346  . Fixed bug GH-16237 (Segmentation fault when cloning SoapServer). (nielsdos)
347  . Fix Soap leaking http_msg on error. (nielsdos)
348  . Fixed bug GH-16256 (Assertion failure in ext/soap/php_encoding.c:460).
349    (nielsdos)
350  . Fixed bug GH-16259 (Soap segfault when classmap instantiation fails).
351    (nielsdos)
352
353- Standard:
354  . Fixed bug GH-16053 (Assertion failure in Zend/zend_hash.c). (Arnaud)
355  . Fixed bug GH-15169 (stack overflow when var serialization in
356    ext/standard/var). (nielsdos)
357
358- Windows:
359  . Fixed bug GH-16199 (GREP_HEADER() is broken). (Peter Kokot)
360
36126 Sep 2024, PHP 8.4.0RC1
362
363- BcMath:
364  . bcpow() performance improvement. (Jorg Sowa)
365  . ext/bcmath: Check for scale overflow. (SakiTakamachi)
366  . [RFC] ext/bcmath: Added bcdivmod. (SakiTakamachi)
367  . Fix GH-15968 (Avoid converting objects to strings in operator calculations).
368    (SakiTakamachi)
369
370- Curl:
371  . Added CURLOPT_DEBUGFUNCTION as a Curl option. (Ayesh Karunaratne)
372
373- Debugging:
374  . Fixed bug GH-15923 (GDB: Python Exception <class 'TypeError'>:
375    exceptions must derive from BaseException). (nielsdos)
376
377- DOM:
378  . Fix XML serializer errata: xmlns="" serialization should be allowed.
379    (nielsdos)
380  . Fixed bug GH-15910 (Assertion failure in ext/dom/element.c). (nielsdos)
381  . Fix unsetting DOM properties. (nielsdos)
382
383- MBString:
384  . Fixed bug GH-15824 (mb_detect_encoding(): Argument $encodings contains
385    invalid encoding "UTF8"). (Yuya Hamada)
386  . Updated Unicode data tables to Unicode 16.0. (Ayesh Karunaratne)
387
388- Opcache:
389  . Fixed bug GH-15657 (Segmentation fault in dasm_x86.h). (nielsdos)
390  . Added opcache_jit_blacklist() function. (Bob)
391
392- PCRE:
393  . Fixed GH-16189 (underflow on offset argument). (David Carlier)
394
395- PHPDBG:
396  . Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs). (cmb)
397
398- PCRE:
399  . Fix UAF issues with PCRE after request shutdown. (nielsdos)
400
401- PDO_MYSQL:
402  . Fixed GH-15949 (PDO_MySQL not properly quoting PDO_PARAM_LOB binary
403    data). (mbeccati, lcobucci)
404
405- PDO_PGSQL:
406  . Fixed GH-15986 (Double-free due to Pdo\Pgsql::setNoticeCallback()). (cmb,
407    nielsdos)
408  . Fixed GH-12940 (Using PQclosePrepared when available instead of
409    the DEALLOCATE command to free statements resources). (David Carlier)
410
411- Reflection:
412  . Add missing ReflectionProperty::hasHook[s]() methods. (ilutov)
413  . Add missing ReflectionProperty::isFinal() method. (ilutov)
414
415- SimpleXML:
416  . Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c).
417    (nielsdos)
418
419- Sockets:
420  . Fixed bug GH-16267 (socket_strerror overflow on errno argument).
421    (David Carlier)
422
423- SOAP:
424  . Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP
425    headers in array form). (nielsdos)
426  . Fixed bug #62900 (Wrong namespace on xsd import error message). (nielsdos)
427  . Fixed bug GH-15711 (SoapClient can't convert BackedEnum to scalar value).
428    (nielsdos)
429
430- SPL:
431  . Fixed bug GH-15918 (Assertion failure in ext/spl/spl_fixedarray.c).
432    (nielsdos)
433
434- Standard:
435  . Add support for backed enums in http_build_query(). (ilutov)
436  . Fixed bug GH-15982 (Assertion failure with array_find when references are
437    involved). (nielsdos)
438
439- Streams:
440  . Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c).
441    (nielsdos)
442  . Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c).
443    (cmb)
444
445- TSRM:
446  . Prevent closing of unrelated handles. (cmb)
447
448- Windows:
449  . Fixed minimal Windows version. (cmb)
450
451- Zip:
452  . Added ZipArchive::ER_TRUNCATED_ZIP added in libzip 1.11. (Remi)
453
45412 Sep 2024, PHP 8.4.0beta5
455
456- BCMath:
457  . Fixed LONG_MAX in BCMath ext. (Saki Takamachi)
458  . Fixed bcdiv() div by one. (Saki Takamachi)
459  . [RFC] Support object types in BCMath. (Saki Takamachi)
460
461- Core:
462  . Fixed bug GH-15330 (Do not scan generator frames more than once). (Arnaud)
463  . Fixed bug GH-15644 (Asymmetric visibility doesn't work with hooks). (ilutov)
464  . Implemented lazy objects RFC. (Arnaud)
465  . Fixed bug GH-15686 (Building shared iconv with external iconv library).
466    (Peter Kokot, zeriyoshi)
467  . Fixed missing error when adding asymmetric visibility to unilateral virtual
468    property. (ilutov)
469  . Fixed bug GH-15693 (Unnecessary include in main.c bloats binary).
470    (nielsdos)
471  . Fixed bug GH-15731 (AllowDynamicProperties validation should error on
472    enums). (DanielEScherzer)
473  . Fixed uninitialized lineno in constant AST of internal enums. (ilutov)
474
475- Curl:
476  . The CURLOPT_DNS_USE_GLOBAL_CACHE option is now silently ignored. (Ayesh Karunaratne)
477
478- DOM:
479  . Fixed bug GH-13988 (Storing DOMElement consume 4 times more memory in
480    PHP 8.1 than in PHP 8.0). (nielsdos)
481  . Fixed bug GH-15654 (Signed integer overflow in ext/dom/nodelist.c).
482    (nielsdos)
483
484- GD:
485  . Added gdImageClone to bundled libgd. (David Carlier)
486
487- Hash:
488  . Fixed bug GH-15742 (php_hash_sha.h incompatible with C++). (cmb)
489
490- OpenSSL:
491  . Implement GH-13514 PASSWORD_ARGON2 from OpenSSL 3.2. (Remi)
492
493- PDO:
494  . The internal header php_pdo_int.h is no longer installed; it is not
495    supposed to be used by PDO drivers. (cmb)
496
497- PDO_Firebird:
498  . Fixed GH-15604 (Always make input parameters nullable). (sim1984)
499
500- Reflection:
501  . Fixed bug GH-15718 (Segfault on ReflectionProperty::get{Hook,Hooks}() on
502    dynamic properties). (DanielEScherzer)
503  . Fixed bug GH-15694 (ReflectionProperty::isInitialized() is incorrect for
504    hooked properties). (ilutov)
505
506- SOAP:
507  . Fixed bug #61525 (SOAP functions require at least one space after HTTP
508    header colon). (nielsdos)
509  . Implement request #47317 (SoapServer::__getLastResponse()). (nielsdos)
510
511- Standard:
512  . Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c). (cmb)
513  . Implemented GH-15685 (improve proc_open error reporting on Windows). (cmb)
514
515- Streams:
516  . Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated).
517    (cmb)
518
51929 Aug 2024, PHP 8.4.0beta4
520
521- Core:
522  . Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer).
523    (zeriyoshi)
524  . Fixed bug GH-15438 (Hooks on constructor promoted properties without
525    visibility are ignored). (ilutov)
526  . Fixed bug GH-15419 (Missing readonly+hook incompatibility check for readonly
527    classes). (ilutov)
528  . Fixed bug GH-15187 (Various hooked object iterator issues). (ilutov)
529  . Fixed bug GH-15456 (Crash in get_class_vars() on virtual properties).
530    (ilutov)
531  . Fixed bug GH-15501 (Windows HAVE_<header>_H macros defined to 1 or
532    undefined). (Peter Kokot)
533  . Fixed bug GH-15565 (--disable-ipv6 during compilation produces error
534    EAI_SYSTEM not found). (nielsdos)
535  . Implemented asymmetric visibility for properties. (ilutov)
536
537- Curl:
538  . Added CURLOPT_PREREQFUNCTION Curl option to set a custom callback
539    after the connection is established, but before the request is
540    performed. (Ayesh Karunaratne)
541  . Added CURLOPT_SERVER_RESPONSE_TIMEOUT, which was formerly known as
542    CURLOPT_FTP_RESPONSE_TIMEOUT. (Ayesh Karunaratne)
543
544- Date:
545  . Fixed bug GH-13773 (DatePeriod not taking into account microseconds for end
546    date). (Mark Bennewitz, Derick)
547
548- DOM:
549  . Fixed bug GH-15551 (Segmentation fault (access null pointer) in
550    ext/dom/xml_common.h). (nielsdos)
551  . Fixed bug GH-15570 (Segmentation fault (access null pointer) in
552    ext/dom/html5_serializer.c). (nielsdos)
553
554- FPM:
555  . Added memory peak to the scoreboard / status page. (Flávio Heleno)
556
557- MySQLnd:
558  . Fixed bug GH-15432 (Heap corruption when querying a vector). (cmb,
559    Kamil Tekiela)
560
561- Opcache:
562  . Fixed bug GH-15490 (Building of callgraph modifies preloaded symbols).
563    (ilutov)
564  . Fixed bug GH-15178 (Assertion in tracing JIT on hooks). (ilutov)
565
566- PDO_MYSQL:
567  . mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT. (Appla)
568
569- Session:
570  . Emit warnings for non-positive values of session.gc_divisor and negative values
571    of session.gc_probability. (Jorg Sowa)
572
573- Standard:
574  . The "allowed_classes" option for unserialize() now throws TypeErrors and
575    ValueErrors	if it is not an	array of class names. (Girgias)
576
577- Streams:
578  . Fixed bug GH-14930 (Custom stream wrapper dir_readdir output truncated to
579    255 characters in PHP 8.3). (Joe Cai)
580
581
58215 Aug 2024, PHP 8.4.0beta3
583
584- Core:
585  . Exiting a namespace now clears seen symbols. (ilutov)
586  . The exit (and die) language constructs now behave more like a function.
587    They can be passed liked callables, are affected by the strict_types
588    declare statement, and now perform the usual type coercions instead of
589    casting any non-integer value to a string.
590    As such, passing invalid types to exit/die may now result in a TypeError
591    being thrown. (Girgias)
592
593- CURL:
594  . Added CURLOPT_TCP_KEEPCNT to set the number of probes to send before
595    dropping the connection. (David Carlier)
596
597- Hash:
598  . Fix GH-15384 (Build fails on Alpine / Musl for amd64). (timwolla)
599
600- Sockets:
601  . Added SO_BINDTOIFINDEX to bind a socket to an interface index.
602    (David Carlier)
603
604- Standard:
605  . php_uname() now throws ValueErrors on invalid inputs. (Girgias)
606
60715 Aug 2024, PHP 8.4.0beta1
608
609- Core:
610  . Updated build system scripts config.guess to 2024-07-27 and config.sub to
611    2024-05-27. (Peter Kokot)
612  . Fixed bug GH-15240 (Infinite recursion in trait hook). (ilutov)
613  . Fixed bug GH-15140 (Missing variance check for abstract set with asymmetric
614    type). (ilutov)
615  . Fixed bug GH-15181 (Disabled output handler is flushed again). (cmb)
616  . Passing E_USER_ERROR to trigger_error() is now deprecated. (Girgias)
617  . Fixed bug GH-15292 (Dynamic AVX detection is broken for MSVC). (nielsdos)
618  . Using "_" as a class name is now deprecated. (Girgias)
619
620- Curl:
621  . Added constants CURL_HTTP_VERSION_3 (libcurl 7.66) and CURL_HTTP_VERSION_3ONLY
622    (libcurl 7.88) as options for CURLOPT_HTTP_VERSION (Ayesh Karunaratne)
623
624- Date:
625  . Constants SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING, and SUNFUNCS_RET_DOUBLE
626    are now deprecated. (Jorg Sowa)
627
628- DBA:
629  . Passing null or false to dba_key_split() is deprecated. (Grigias)
630
631- DOM:
632  . Fixed bug GH-15192 (Segmentation fault in dom extension
633    (html5_serializer)). (nielsdos)
634  . Deprecated DOM_PHP_ERR constant. (nielsdos)
635  . Removed DOMImplementation::getFeature(). (nielsdos)
636  . Fixed bug GH-15331 (Element::$substitutedNodeValue test failed). (nielsdos)
637
638- Hash:
639  . Deprecated passing incorrect data types for options to ext/hash functions.
640    (nielsdos)
641  . Added SSE2 and SHA-NI implementation of SHA-256. (timwolla, Colin Percival,
642    Graham Percival)
643
644- Mysqli:
645  . The mysqli_ping() function and mysqli::ping() method are now deprecated,
646    as the reconnect feature was removed in PHP 8.2. (Kamil Tekiela)
647  . The mysqli_kill() function and mysqli::kill() method are now deprecated.
648    If this functionality is needed a SQL "KILL" command can be used instead.
649    (Kamil Tekiela)
650  . The mysqli_refresh() function and mysqli::refresh() method are now deprecated.
651    If this functionality is needed a SQL "FLUSH" command can be used instead.
652    (Kamil Tekiela)
653  . Passing explicitly the $mode parameter to mysqli_store_result() has been
654    deprecated. As the MYSQLI_STORE_RESULT_COPY_DATA constant was only used in
655    conjunction with this function it has also been deprecated. (Girgias)
656
657- PDO_Firebird:
658  . Support proper formatting of time zone types. (sim1984)
659
660- PHPDBG:
661  . array out of bounds, stack overflow handled for segfault handler on windows.
662    (David Carlier)
663
664- Random:
665  . lcg_value() is now deprecated. (timwolla)
666
667- Readline:
668  . Fixed bug #51558 (Shared readline build fails). (Peter Kokot)
669
670- Session:
671  . INI settings session.sid_length and session.sid_bits_per_character are now
672    deprecated. (timwolla)
673
674- SOAP:
675  . Passing an int to SoapServer::addFunction() is now deprecated.
676    If all PHP functions need to be provided flatten the array returned by
677    get_defined_functions(). (Girgias)
678  . The SOAP_FUNCTIONS_ALL constant is now deprecated. (Girgias)
679
680- Sockets:
681  . Added IP_PORTRANGE* constants for BSD systems to control ephemeral port
682    ranges. (David Carlier)
683  . Added SOCK_NONBLOCK/SOCK_CLOEXEC constants for socket_create and
684    socket_create_pair to apply O_NONBLOCK/O_CLOEXEC flags to the
685    newly created sockets. (David Carlier)
686
687- SPL:
688  . The SplFixedArray::__wakeup() method has been deprecated as it implements
689    __serialize() and __unserialize() which need to be overwritten instead.
690    (TysonAndre)
691  . Passing a non-empty string for the $escape parameter of:
692    - SplFileObject::setCsvControl()
693    - SplFileObject::fputcsv()
694    - SplFileObject::fgetcsv()
695    is now deprecated. (Girgias)
696
697- Standard:
698  . Unserializing the uppercase 'S' tag is now deprecated. (timwolla)
699  . Enables crc32 auxiliary detection on OpenBSD. (David Carlier)
700  . Passing a non-empty string for the $escape parameter of:
701    - fputcsv()
702    - fgetcsv()
703    - str_getcsv()
704    is now deprecated. (Girgias)
705  . The str_getcsv() function now throws ValueErrors when the $separator and
706    $enclosure arguments are not one byte long, or if the $escape is not one
707    byte long or the empty string. This aligns the behaviour to be identical
708    to that of fputcsv() and fgetcsv(). (Girgias)
709
710- Streams:
711  . Implemented GH-15155 (Stream context is lost when custom stream wrapper is
712    being filtered). (Quentin Dreyer)
713
714- XML:
715  . The xml_set_object() function has been deprecated. (Girgias)
716  . Passing non-callable strings to the xml_set_*_handler() functions is now
717    deprecated. (Girgias)
718
71901 Aug 2024, PHP 8.4.0alpha4
720
721- GMP:
722  . RFC: Change GMP bool cast behavior. (Saki Takamachi)
723
72401 Aug 2024, PHP 8.4.0alpha3
725
726- Core:
727  . Fix GH-14978 (The xmlreader extension phpize build). (Peter Kokot)
728  . Throw Error exception when encountering recursion during comparison, rather
729    than fatal error. (ilutov)
730  . Added missing cstddef include for C++ builds. (cmb)
731  . Fixed bug GH-15108 (Segfault when destroying generator during shutdown).
732    (Arnaud)
733  . Fixed bug GH-15275 (Crash during GC of suspended generator delegate).
734    (Arnaud)
735
736- BCMath:
737  . Adjust bcround()'s $mode parameter to only accept the RoundingMode
738    enum. (timwolla, saki)
739
740- DOM:
741  . Fix trampoline leak in xpath callables. (nielsdos)
742  . Throw instead of silently failing when creating a too long text node in
743    (DOM)ParentNode and (DOM)ChildNode. (nielsdos)
744
745- FPM:
746  . /dev/poll events.mechanism for Solaris/Illumos setting had been retired.
747    (David Carlier)
748
749- GMP:
750  . The GMP class is now final and cannot be extended anymore. (Girgias)
751
752- Intl:
753  . Added SpoofChecker::setAllowedChars to set unicode chars ranges.
754    (David Carlier)
755  . Fixed bug GH-15087 (IntlChar::foldCase()'s $option is not optional). (cmb)
756
757- Opcache:
758  . Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement).
759    (Arnaud, nielsdos)
760
761- OpenSSL:
762  . Bumped minimum required OpenSSL version to 1.1.0. (cmb)
763
764- PDO_FIREBIRD:
765  . Added Pdo\Firebird::ATTR_API_VERSION. (SakiTakamachi)
766  . Added getApiVersion() and removed from getAttribute().
767    (SakiTakamachi)
768  . Supported Firebird 4.0 datatypes. (sim1984)
769
770- PGSQL:
771  . pg_convert/pg_insert/pg_update/pg_delete ; regexes are now cached.
772    (David Carlier)
773
774- Random:
775  . Fixed bug GH-15094 (php_random_default_engine() is not C++ conforming).
776    (cmb)
777
778- Readline:
779  . Fixed readline_info, rl_line_buffer_length/rl_len globals on update.
780    (David Carlier)
781
782- Standard:
783  . Fix references in request_parse_body() options array. (nielsdos)
784  . Add RoundingMode enum. (timwolla, saki)
785
786- Tidy:
787  . Failures in the constructor now throw exceptions rather than emitting
788    warnings and having a broken object. (nielsdos)
789  . Add tidyNode::getNextSibling() and tidyNode::getPreviousSibling().
790    (nielsdos)
791
792- XMLReader:
793  . Fixed bug GH-15123 (var_dump doesn't actually work on XMLReader).
794    (nielsdos)
795
796- XSL:
797  . Fix trampoline leak in xpath callables. (nielsdos)
798
79918 Jul 2024, PHP 8.4.0alpha2
800
801- Core:
802  . Fixed bug GH-14801 (Fix build for armv7). (andypost)
803  . Implemented property hooks RFC. (ilutov)
804
805- DOM:
806  . Improve support for template elements. (nielsdos)
807
808- GD:
809  . Check overflow/underflow for imagescale/imagefilter. (David Carlier)
810
811- LibXML:
812  . Added LIBXML_NO_XXE constant. (nielsdos)
813
814- Opcache:
815  . Fixed bug GH-14873 (PHP 8.4 min function fails on typed integer).
816    (nielsdos)
817
818- PDO:
819  . Fixed bug GH-14792 (Compilation failure on pdo_* extensions).
820    (Peter Kokot)
821
822- Standard:
823  . Change highlight_string() and print_r() return type to string|true. (Ayesh)
824
825- Windows:
826  . Update the icon of the Windows executables, e.g. php.exe. (Ayesh,
827    Nurudin Imširović)
828
829- XML:
830  . Fixed bug #81481 (xml_get_current_byte_index limited to 32-bit numbers on
831    64-bit builds). (nielsdos)
832
83304 Jul 2024, PHP 8.4.0alpha1
834
835- BCMath:
836  . [RFC] Add bcfloor, bcceil and bcround to BCMath. (Saki Takamachi)
837  . Improve performance. (Saki Takamachi, nielsdos)
838
839- Core:
840  . Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD,
841    Solaris and Haiku. (David Carlier)
842  . Enabled ifunc checks on FreeBSD from the 12.x releases. (Freaky)
843  . Changed the type of PHP_DEBUG and PHP_ZTS constants to bool. (haszi)
844  . Fixed bug GH-13142 (Undefined variable name is shortened when contains \0).
845    (nielsdos)
846  . Fixed bug GH-13178 (Iterator positions incorrect when converting packed
847    array to hashed). (ilutov)
848  . Fixed zend fiber build for solaris default mode (32 bits). (David Carlier)
849  . Fixed zend call stack size for macOs/arm64. (David Carlier)
850  . Added support for Zend Max Execution Timers on FreeBSD. (Kévin Dunglas)
851  . Ensure fiber stack is not backed by THP. (crrodriguez)
852  . Implement GH-13609 (Dump wrapped object in WeakReference class). (nielsdos)
853  . Added sparc64 arch assembly support for zend fiber. (Claudio Jeker)
854  . Fixed GH-13581 no space available for TLS on NetBSD. (Paul Ripke)
855  . Added fiber Sys-V loongarch64 support. (qiangxuhui)
856  . Adjusted closure names to include the parent function's name. (timwolla)
857  . Improve randomness of uploaded file names and files created by tempnam().
858    (Arnaud)
859  . Added gc and shutdown callbacks to zend_mm custom handlers.
860    (Florian Engelhardt)
861  . Fixed bug GH-14650 (Compute the size of pages before allocating memory).
862    (Julien Voisin)
863  . Fixed bug GH-11928 (The --enable-re2c-cgoto doesn't add the -g flag).
864    (Peter Kokot)
865  . Added the #[\Deprecated] attribute. (beberlei, timwolla)
866  . Fixed GH-11389 (Allow suspending fibers in destructors). (Arnaud, trowski)
867
868- Curl:
869  . Deprecated the CURLOPT_BINARYTRANSFER constant. (divinity76)
870  . Bumped required libcurl version to 7.61.0. (Ayesh)
871  . Added feature_list key to the curl_version() return value. (Ayesh)
872
873- Date:
874  . Added DateTime[Immutable]::createFromTimestamp. (Marc Bennewitz)
875  . Added DateTime[Immutable]::[get|set]Microsecond. (Marc Bennewitz)
876
877- DOM:
878  . Added DOMNode::compareDocumentPosition(). (nielsdos)
879  . Implement #53655 (Improve speed of DOMNode::C14N() on large XML documents).
880    (nielsdos)
881  . Fix cloning attribute with namespace disappearing namespace. (nielsdos)
882  . Implement DOM HTML5 parsing and serialization RFC. (nielsdos)
883  . Fix DOMElement->prefix with empty string creates bogus prefix. (nielsdos)
884  . Handle OOM more consistently. (nielsdos)
885  . Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos)
886  . Added DOMXPath::quote() static method. (divinity76)
887  . Implemented opt-in ext/dom spec compliance RFC. (nielsdos)
888  . Fixed bug #79701 (getElementById does not correctly work with duplicate
889    definitions). (nielsdos)
890  . Implemented "New ext-dom features in PHP 8.4" RFC. (nielsdos)
891  . Fixed GH-14698 (segfault on DOM node dereference). (David Carlier)
892
893- Fileinfo:
894  . Update to libmagic 5.45. (nielsdos)
895  . Fixed bug #65106 (PHP fails to compile ext/fileinfo). (Guillaume Outters)
896
897- FPM:
898  . Implement GH-12385 (flush headers without body when calling flush()).
899    (nielsdos)
900  . Added DragonFlyBSD system to the list which set FPM_BACKLOG_DEFAULT
901    to SOMAXCONN. (David Carlier)
902
903- FTP:
904  . Removed the deprecated inet_ntoa call support. (David Carlier)
905  . Fixed bug #63937 (Upload speed 10 times slower with PHP). (nielsdos)
906
907- GD:
908  . Fix parameter numbers and missing alpha check for imagecolorset().
909    (Giovanni Giacobbi)
910  . imagepng/imagejpeg/imagewep/imageavif now throw an exception on
911    invalid quality parameter. (David Carlier)
912
913- Gettext:
914  . bind_textdomain_codeset, textdomain and d(*)gettext functions
915    now throw an exception on empty domain. (David Carlier)
916
917- Hash:
918  . Changed return type of hash_update() to true. (nielsdos)
919  . Added HashContext::__debugInfo(). (timwolla)
920
921- IMAP:
922  . Moved to PECL. (Derick Rethans)
923
924- Intl:
925  . Added IntlDateFormatter::PATTERN constant. (David Carlier)
926  . Fixed Numberformatter::__construct when the locale is invalid, now
927    throws an exception. (David Carlier)
928  . Added NumberFormatter::ROUND_TOWARD_ZERO and ::ROUND_AWAY_FROM_ZERO as
929    aliases for ::ROUND_DOWN and ::ROUND_UP. (Jorg Sowa)
930  . Added NumberFormatter::ROUND_HALFODD. (Ayesh Karunaratne)
931  . Added PROPERTY_IDS_UNARY_OPERATOR, PROPERTY_ID_COMPAT_MATH_START and
932    PROPERTY_ID_COMPAT_MATH_CONTINUE constants. (David Carlier)
933  . Added IntlDateFormatter::getIanaID/intltz_get_iana_id method/function.
934    (David Carlier)
935  . Set to C++17 standard for icu 74 and onwards. (David Carlier)
936  . resourcebundle_get(), ResourceBundle::get(), and accessing offsets on a
937    ResourceBundle object now throw:
938    - TypeError for invalid offset types
939    - ValueError for an empty string
940    - ValueError if the integer index does not fit in a signed 32 bit integer
941  . ResourceBundle::get() now has a tentative return type of:
942    ResourceBundle|array|string|int|null
943  . Added the new Grapheme function grapheme_str_split. (youkidearitai)
944  . Added IntlDateFormatter::parseToCalendar. (David Carlier)
945
946- LDAP:
947  . Added LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3
948    constants. (StephenWall)
949
950- LibXML:
951  . Added LIBXML_RECOVER constant. (nielsdos)
952  . libxml_set_streams_context() now throws immediately on an invalid context
953    instead of at the use-site. (nielsdos)
954
955- MBString:
956  . Added mb_trim, mb_ltrim and mb_rtrim. (Yuya Hamada)
957  . Added mb_ucfirst and mb_lcfirst. (Yuya Hamada)
958  . Updated Unicode data tables to Unicode 15.1. (Ayesh Karunaratne)
959
960- MySQLnd:
961  . Fixed bug GH-13440 (PDO quote bottleneck). (nielsdos)
962  . Fixed bug GH-10599 (Apache crash on Windows when using a self-referencing
963    anonymous function inside a class with an active mysqli connection).
964    (nielsdos)
965
966- Opcache:
967  . Added large shared segments support for FreeBSD. (David Carlier)
968  . If JIT is enabled, PHP will now exit with a fatal error on startup in case
969    of JIT startup initialization issues. (danog)
970  . Increased the maximum value of opcache.interned_strings_buffer to 32767 on
971    64bit archs. (Arnaud)
972  . Fixed bug GH-13834 (Applying non-zero offset 36 to null pointer in
973    zend_jit.c). (nielsdos)
974  . Fixed bug GH-14361 (Deep recursion in zend_cfg.c causes segfault).
975    (nielsdos)
976
977- OpenSSL:
978  . Fixed bug #80269 (OpenSSL sets Subject wrong with extraattribs parameter).
979    (Jakub Zelenka)
980  . Implement request #48520 (openssl_csr_new - allow multiple values in DN).
981    (Jakub Zelenka)
982  . Introduced new serial_hex parameter to openssl_csr_sign. (Jakub Zelenka,
983    Florian Sowade)
984  . Added X509_PURPOSE_OCSP_HELPER and X509_PURPOSE_TIMESTAMP_SIGN constants.
985    (Vincent Jardin)
986  . Bumped minimum required OpenSSL version to 1.1.1. (Ayesh Karunaratne)
987  . Added compile-time option --with-openssl-legacy-provider to enable legacy
988    provider. (Adam Saponara)
989  . Added support for Curve25519 + Curve448 based keys. (Manuel Mausz)
990  . Fixed bug GH-13343 (openssl_x509_parse should not allow omitted seconds in
991    UTCTimes). (Jakub Zelenka)
992
993- Output:
994  . Clear output handler status flags during handler initialization. (haszi)
995  . Fixed bug with url_rewriter.hosts not used by output_add_rewrite_var().
996    (haszi)
997
998- PCNTL:
999  . Added pcntl_setns for Linux. (David Carlier)
1000  . Added pcntl_getcpuaffinity/pcntl_setcpuaffinity. (David Carlier)
1001  . Updated pcntl_get_signal_handler signal id upper limit to be
1002    more in line with platforms limits. (David Carlier)
1003  . Added pcntl_getcpu for Linux/FreeBSD/Solaris/Illumos. (David Carlier)
1004  . Added pcntl_getqos_class/pcntl_setqos_class for macOs. (David Carlier)
1005  . Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD. (David Carlier)
1006  . Added FreeBSD's SIGTRAP handling to pcntl_siginfo_to_zval. (David Carlier)
1007  . Added POSIX pcntl_waitid. (Vladimir Vrzić)
1008
1009- PCRE:
1010  . Upgrade bundled pcre2lib to version 10.43. (nielsdos)
1011  . Add "/r" modifier. (Ayesh)
1012  . Upgrade bundled pcre2lib to version 10.44. (Ayesh)
1013
1014- PDO:
1015  . Fixed setAttribute and getAttribute. (SakiTakamachi)
1016  . Implemented PDO driver-specific subclasses RFC. (danack, kocsismate)
1017  . Added support for PDO driver-specific SQL parsers. (Matteo Beccati)
1018
1019- PDO_DBLIB:
1020  . Fixed setAttribute and getAttribute. (SakiTakamachi)
1021  . Added class Pdo\DbLib. (danack, kocsismate)
1022
1023- PDO_FIREBIRD:
1024  . Fixed setAttribute and getAttribute. (SakiTakamachi)
1025  . Feature: Add transaction isolation level and mode settings to pdo_firebird.
1026    (SakiTakamachi)
1027  . Added class Pdo\Firebird. (danack, kocsismate)
1028
1029- PDO_MYSQL:
1030  . Fixed setAttribute and getAttribute. (SakiTakamachi)
1031  . Added class Pdo\Mysql. (danack, kocsismate)
1032  . Added custom SQL parser. (Matteo Beccati)
1033
1034- PDO_ODBC:
1035  . Added class Pdo\Odbc. (danack, kocsismate)
1036
1037- PDO_PGSQL:
1038  . Fixed GH-12423, DSN credentials being prioritized over the user/password
1039    PDO constructor arguments. (SakiTakamachi)
1040  . Fixed native float support with pdo_pgsql query results. (Yurunsoft)
1041  . Added class Pdo\Pgsql. (danack, kocsismate)
1042  . Retrieve the memory usage of the query result resource. (KentarouTakeda)
1043  . Added Pdo\Pgsql::setNoticeCallBack method to receive DB notices.
1044    (outtersg)
1045  . Added custom SQL parser. (Matteo Beccati)
1046
1047- PDO_SQLITE:
1048  . Added class Pdo\Sqlite. (danack, kocsismate)
1049  . Fixed bug #81227 (PDO::inTransaction reports false when in transaction).
1050    (nielsdos)
1051  . Added custom SQL parser. (Matteo Beccati)
1052
1053- PGSQL:
1054  . Added the possibility to have no conditions for pg_select. (OmarEmaraDev)
1055  . Persistent connections support the PGSQL_CONNECT_FORCE_RENEW flag.
1056    (David Carlier)
1057  . Added pg_result_memory_size to get the query result memory usage.
1058    (KentarouTakeda)
1059  . Added pg_change_password to alter an user's password. (David Carlier)
1060  . Added pg_put_copy_data/pg_put_copy_end to send COPY commands and signal
1061    the end of the COPY. (David Carlier)
1062  . Added pg_socket_poll to poll on the connection. (David Carlier)
1063  . Added pg_jit to get infos on server JIT support. (David Carlier)
1064  . Added pg_set_chunked_rows_size to fetch results per chunk. (David Carlier)
1065
1066- Phar:
1067  . Fixed bug GH-12532 (PharData created from zip has incorrect timestamp).
1068    (nielsdos)
1069
1070- POSIX:
1071  . Added POSIX_SC_CHILD_MAX and POSIX_SC_CLK_TCK constants. (Jakub Zelenka)
1072  . Updated posix_isatty to set the error number on file descriptors.
1073    (David Carlier)
1074
1075- PSpell:
1076  . Moved to PECL. (Derick Rethans)
1077
1078- Reflection:
1079  . Implement GH-12908 (Show attribute name/class in ReflectionAttribute dump).
1080    (nielsdos)
1081  . Make ReflectionGenerator::getFunction() legal after generator termination.
1082    (timwolla)
1083  . Added ReflectionGenerator::isClosed(). (timwolla)
1084
1085- SimpleXML:
1086  . Fixed bug GH-12192 (SimpleXML infinite loop when getName() is called
1087    within foreach). (nielsdos)
1088  . Fixed bug GH-12208 (SimpleXML infinite loop when a cast is used inside a
1089    foreach). (nielsdos)
1090  . Fixed bug #55098 (SimpleXML iteration produces infinite loop). (nielsdos)
1091  . Fix signature of simplexml_import_dom(). (nielsdos)
1092
1093- Sockets:
1094  . Added multicast group support for ipv4 on FreeBSD. (jonathan@tangential.ca)
1095  . Added the TCP_SYNCNT constant for Linux to set number of attempts to send
1096    SYN packets from the client. (David Carlier)
1097  . Added the SO_EXCLBIND constant for exclusive socket binding on illumos/solaris.
1098    (David Carlier)
1099  . Updated the socket_create_listen backlog argument default value to SOMAXCONN.
1100    (David Carlier)
1101  . Added the SO_NOSIGPIPE constant to control the generation of SIGPIPE for
1102    macOs and FreeBSD. (David Carlier)
1103  . Added SO_LINGER_SEC for macOs, true equivalent of SO_LINGER in other platforms.
1104    (David Carlier)
1105  . Add close-on-exec on socket created with socket_accept on unixes. (David Carlier)
1106
1107- SNMP:
1108  . Removed the deprecated inet_ntoa call support. (David Carlier)
1109
1110- SOAP:
1111  . Add support for clark notation for namespaces in class map. (lxShaDoWxl)
1112  . Mitigate #51561 (SoapServer with a extented class and using sessions,
1113    lost the setPersistence()). (nielsdos)
1114  . Fixed bug #49278 (SoapClient::__getLastResponseHeaders returns NULL if
1115    wsdl operation !has output). (nielsdos)
1116  . Fixed bug #44383 (PHP DateTime not converted to xsd:datetime). (nielsdos)
1117  . Fixed bug GH-11941 (soap with session persistence will silently fail when
1118    "session" built as a shared object). (nielsdos)
1119
1120- Sockets:
1121  . Removed the deprecated inet_ntoa call support. (David Carlier)
1122  . Added the SO_EXECLUSIVEADDRUSE windows constant. (David Carlier)
1123  . Added the SOCK_CONN_DGRAM/SOCK_DCCP netbsd constants. (David Carlier)
1124
1125- Sodium:
1126  . Add support for AEGIS-128L and AEGIS-256. (jedisct1)
1127  . Enable AES-GCM on aarch64 with the ARM crypto extensions. (jedisct1)
1128
1129- SPL:
1130  . Implement SeekableIterator for SplObjectStorage. (nielsdos)
1131
1132- Standard:
1133  . Implement GH-12188 (Indication for the int size in phpinfo()). (timwolla)
1134  . Partly fix GH-12143 (Incorrect round() result for 0.49999999999999994).
1135    (timwolla)
1136  . Fix GH-12252 (round(): Validate the rounding mode). (timwolla)
1137  . Increase the default BCrypt cost to 12. (timwolla)
1138  . Fixed bug GH-12592 (strcspn() odd behaviour with NUL bytes and empty mask).
1139    (nielsdos)
1140  . Removed the deprecated inet_ntoa call support. (David Carlier)
1141  . Cast large floats that are within int range to int in number_format so
1142    the precision is not lost. (Marc Bennewitz)
1143  . Add support for 4 new rounding modes to the round() function. (Jorg Sowa)
1144  . debug_zval_dump() now indicates whether an array is packed. (Max Semenik)
1145  . Fix GH-12143 (Optimize round). (SakiTakamachi)
1146  . Changed return type of long2ip to string from string|false. (Jorg Sowa)
1147  . Fix GH-12143 (Extend the maximum precision round can handle by one digit).
1148    (SakiTakamachi)
1149  . Added the http_get_last_response_headers() and
1150    http_clear_last_response_headers() that allows retrieving the same content
1151    as the magic $http_response_header variable.
1152  . Add php_base64_encode_ex() API. (Remi)
1153  . Implemented "Raising zero to the power of negative number" RFC. (Jorg Sowa)
1154  . Added array_find(), array_find_key(), array_all(), and array_any(). (josh)
1155
1156- XML:
1157  . Added XML_OPTION_PARSE_HUGE parser option. (nielsdos)
1158
1159- XMLReader:
1160  . Declares class constant types. (Ayesh)
1161  . Add XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(). (nielsdos)
1162
1163- XMLWriter:
1164  . Add XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory(). (nielsdos)
1165
1166- XSL:
1167  . Implement request #64137 (XSLTProcessor::setParameter() should allow both
1168    quotes to be used). (nielsdos)
1169  . Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos)
1170  . Added XSLTProcessor::$maxTemplateDepth and XSLTProcessor::$maxTemplateVars.
1171    (nielsdos)
1172
1173<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
1174