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