xref: /php-src/NEWS (revision 956c3c2c)
1PHP                                                                        NEWS
2|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3?? ??? ????, PHP 8.4.0alpha1
4
5- Core:
6  . Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD,
7    Solaris and Haiku. (David Carlier)
8  . Enabled ifunc checks on FreeBSD from the 12.x releases. (Freaky)
9  . Changed the type of PHP_DEBUG and PHP_ZTS constants to bool. (haszi)
10  . Fixed bug GH-13142 (Undefined variable name is shortened when contains \0).
11    (nielsdos)
12  . Fixed bug GH-13178 (Iterator positions incorrect when converting packed
13    array to hashed). (ilutov)
14  . Fixed zend fiber build for solaris default mode (32 bits). (David Carlier)
15  . Fixed zend call stack size for macOs/arm64. (David Carlier)
16  . Added support for Zend Max Execution Timers on FreeBSD. (Kévin Dunglas)
17  . Ensure fiber stack is not backed by THP. (crrodriguez)
18  . Implement GH-13609 (Dump wrapped object in WeakReference class). (nielsdos)
19  . Added sparc64 arch assembly support for zend fiber. (Claudio Jeker)
20  . Fixed GH-13581 no space available for TLS on NetBSD. (Paul Ripke)
21  . Added fiber Sys-V loongarch64 support. (qiangxuhui)
22  . Adjusted closure names to include the parent function's name. (timwolla)
23
24- Curl:
25  . Deprecated the CURLOPT_BINARYTRANSFER constant. (divinity76)
26  . Bumped required libcurl version to 7.61.0. (Ayesh)
27  . Added feature_list key to the curl_version() return value (Ayesh)
28
29- Date:
30  . Added DateTime[Immutable]::createFromTimestamp. (Marc Bennewitz)
31  . Added DateTime[Immutable]::[get|set]Microsecond. (Marc Bennewitz)
32
33- DOM:
34  . Added DOMNode::compareDocumentPosition(). (nielsdos)
35  . Implement #53655 (Improve speed of DOMNode::C14N() on large XML documents).
36    (nielsdos)
37  . Fix cloning attribute with namespace disappearing namespace. (nielsdos)
38  . Implement DOM HTML5 parsing and serialization RFC. (nielsdos)
39  . Fix DOMElement->prefix with empty string creates bogus prefix. (nielsdos)
40  . Handle OOM more consistently. (nielsdos)
41  . Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos)
42  . Added DOMXPath::quote() static method. (divinity76)
43  . Implemented opt-in ext/dom spec compliance RFC. (nielsdos)
44
45- Fileinfo:
46  . Update to libmagic 5.45. (nielsdos)
47  . Fixed bug #65106 (PHP fails to compile ext/fileinfo). (Guillaume Outters)
48
49- FPM:
50  . Implement GH-12385 (flush headers without body when calling flush()).
51    (nielsdos)
52  . Added DragonFlyBSD system to the list which set FPM_BACKLOG_DEFAULT
53    to SOMAXCONN. (David Carlier)
54
55- FTP:
56  . Removed the deprecated inet_ntoa call support. (David Carlier)
57  . Fixed bug #63937 (Upload speed 10 times slower with PHP). (nielsdos)
58
59- Gettext:
60  . bind_textdomain_codeset, textdomain and d(*)gettext functions
61    now throw an exception on empty domain. (David Carlier)
62
63- Hash:
64  . Changed return type of hash_update() to true. (nielsdos)
65
66- IMAP:
67  . Moved to PECL. (Derick Rethans)
68
69- Intl:
70  . Added IntlDateFormatter::PATTERN constant. (David Carlier)
71  . Fixed Numberformatter::__construct when the locale is invalid, now
72    throws an exception. (David Carlier)
73  . Added NumberFormatter::ROUND_TOWARD_ZERO and ::ROUND_AWAY_FROM_ZERO as
74    aliases for ::ROUND_DOWN and ::ROUND_UP. (Jorg Sowa)
75  . Added NumberFormatter::ROUND_HALFODD. (Ayesh Karunaratne)
76  . Added PROPERTY_IDS_UNARY_OPERATOR, PROPERTY_ID_COMPAT_MATH_START and
77    PROPERTY_ID_COMPAT_MATH_CONTINUE constants. (David Carlier)
78  . Added IntlDateFormatter::getIanaID/intltz_get_iana_id method/function.
79    (David Carlier)
80  . Set to C++17 standard for icu 74 and onwards. (David Carlier)
81  . resourcebundle_get(), ResourceBundle::get(), and accessing offsets on a
82    ResourceBundle object now throw:
83    - TypeError for invalid offset types
84    - ValueError for an empty string
85    - ValueError if the integer index does not fit in a signed 32 bit integer
86  . ResourceBundle::get() now has a tentative return type of:
87    ResourceBundle|array|string|int|null
88  . Added the new Grapheme function grapheme_str_split. (youkidearitai)
89
90- LDAP:
91  . Added LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3
92    constants. (StephenWall)
93
94- LibXML:
95  . Added LIBXML_RECOVER constant. (nielsdos)
96
97- MBString:
98  . Added mb_trim, mb_ltrim and mb_rtrim. (Yuya Hamada)
99  . Added mb_ucfirst and mb_lcfirst. (Yuya Hamada)
100
101- MySQLnd:
102  . Fixed bug GH-13440 (PDO quote bottleneck). (nielsdos)
103  . Fixed bug GH-10599 (Apache crash on Windows when using a self-referencing
104    anonymous function inside a class with an active mysqli connection).
105    (nielsdos)
106
107- Opcache:
108  . Added large shared segments support for FreeBSD. (David Carlier)
109  . If JIT is enabled, PHP will now exit with a fatal error on startup in case
110    of JIT startup initialization issues. (danog)
111  . Increased the maximum value of opcache.interned_strings_buffer to 32767 on
112    64bit archs. (Arnaud)
113  . Fixed bug GH-13834 (Applying non-zero offset 36 to null pointer in
114    zend_jit.c). (nielsdos)
115
116- OpenSSL:
117  . Fixed bug #80269 (OpenSSL sets Subject wrong with extraattribs parameter).
118    (Jakub Zelenka)
119  . Implement request #48520 (openssl_csr_new - allow multiple values in DN).
120    (Jakub Zelenka)
121  . Introduced new serial_hex parameter to openssl_csr_sign. (Jakub Zelenka,
122    Florian Sowade)
123  . Added X509_PURPOSE_OCSP_HELPER and X509_PURPOSE_TIMESTAMP_SIGN constants.
124    (Vincent Jardin)
125  . Bumped minimum required OpenSSL version to 1.1.1. (Ayesh Karunaratne)
126  . Added compile-time option --with-openssl-legacy-provider to enable legacy
127    provider. (Adam Saponara)
128
129- Output:
130  . Clear output handler status flags during handler initialization. (haszi)
131  . Fixed bug with url_rewriter.hosts not used by output_add_rewrite_var().
132    (haszi)
133
134- PCNTL:
135  . Added pcntl_setns for Linux. (David Carlier)
136  . Added pcntl_getaffinity/pcntl_setaffinity. (David Carlier)
137  . Updated pcntl_get_signal_handler signal id upper limit to be
138    more in line with platforms limits. (David Carlier)
139  . Added pcntl_getcpu for Linux/FreeBSD. (David Carlier)
140  . Added pcntl_getqos_class/pcntl_setqos_class for macOs. (David Carlier)
141  . Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD. (David Carlier)
142
143- PCRE:
144  . Upgrade bundled pcre2lib to version 10.43. (nielsdos)
145  . Add "/r" modifier. (Ayesh)
146
147- PDO:
148  . Fixed setAttribute and getAttribute. (SakiTakamachi)
149  . Implemented PDO driver-specific subclasses RFC. (danack, kocsismate)
150
151- PDO_DBLIB:
152  . Fixed setAttribute and getAttribute. (SakiTakamachi)
153  . Added class PdoDbLib (danack, kocsismate)
154
155- PDO_FIREBIRD:
156  . Fixed setAttribute and getAttribute. (SakiTakamachi)
157  . Feature: Add transaction isolation level and mode settings to pdo_firebird.
158    (SakiTakamachi)
159  . Added class PdoFirebird. (danack, kocsismate)
160
161- PDO_MYSQL:
162  . Fixed setAttribute and getAttribute. (SakiTakamachi)
163  . Added class PdoMysql. (danack, kocsismate)
164
165- PDO_ODBC:
166  . Added class PdoOdbc. (danack, kocsismate)
167
168- PDO_PGSQL:
169  . Fixed GH-12423, DSN credentials being prioritized over the user/password
170    PDO constructor arguments. (SakiTakamachi)
171  . Fixed native float support with pdo_pgsql query results. (Yurunsoft)
172  . Added class PdoPgsql. (danack, kocsismate)
173
174- PDO_SQLITE:
175  . Added class PdoSqlite. (danack, kocsismate)
176
177- PGSQL:
178  . Added the possibility to have no conditions for pg_select. (OmarEmaraDev)
179  . Persistent connections support the PGSQL_CONNECT_FORCE_RENEW flag.
180    (David Carlier)
181
182- Phar:
183  . Fixed bug GH-12532 (PharData created from zip has incorrect timestamp).
184    (nielsdos)
185
186- POSIX:
187  . Added POSIX_SC_CHILD_MAX and POSIX_SC_CLK_TCK constants. (Jakub Zelenka)
188  . Updated posix_isatty to set the error number on file descriptors.
189    (David Carlier)
190
191- PSpell:
192  . Moved to PECL. (Derick Rethans)
193
194- Reflection:
195  . Implement GH-12908 (Show attribute name/class in ReflectionAttribute dump).
196    (nielsdos)
197
198- SimpleXML:
199  . Fixed bug GH-12192 (SimpleXML infinite loop when getName() is called
200    within foreach). (nielsdos)
201  . Fixed bug GH-12208 (SimpleXML infinite loop when a cast is used inside a
202    foreach). (nielsdos)
203  . Fixed bug #55098 (SimpleXML iteration produces infinite loop). (nielsdos)
204  . Fix signature of simplexml_import_dom(). (nielsdos)
205
206- Sockets:
207  . Added multicast group support for ipv4 on FreeBSD. (jonathan@tangential.ca)
208  . Added the TCP_SYNCNT constant for Linux to set number of attempts to send
209    SYN packets from the client. (David Carlier)
210  . Added the SO_EXCLBIND constant for exclusive socket binding on illumos/solaris.
211    (David Carlier)
212  . Updated the socket_create_listen backlog argument default value to SOMAXCONN.
213    (David Carlier)
214  . Added the SO_NOSIGPIPE constant to control the generation of SIGPIPE for
215    macOs and FreeBSD. (David Carlier)
216
217- SNMP:
218  . Removed the deprecated inet_ntoa call support. (David Carlier)
219
220- SOAP:
221  . Add support for clark notation for namespaces in class map. (lxShaDoWxl)
222  . Mitigate #51561 (SoapServer with a extented class and using sessions,
223    lost the setPersistence()). (nielsdos)
224  . Fixed bug #49278 (SoapClient::__getLastResponseHeaders returns NULL if
225    wsdl operation !has output). (nielsdos)
226  . Fixed bug #44383 (PHP DateTime not converted to xsd:datetime). (nielsdos)
227
228- Sockets:
229  . Removed the deprecated inet_ntoa call support. (David Carlier)
230  . Added the SO_EXECLUSIVEADDRUSE windows constant. (David Carlier)
231  . Added the SOCK_CONN_DGRAM/SOCK_DCCP netbsd constants. (David Carlier)
232
233- Sodium:
234  . Add support for AEGIS-128L and AEGIS-256 (jedisct1)
235  . Enable AES-GCM on aarch64 with the ARM crypto extensions (jedisct1)
236
237- Standard:
238  . Implement GH-12188 (Indication for the int size in phpinfo()). (timwolla)
239  . Partly fix GH-12143 (Incorrect round() result for 0.49999999999999994).
240    (timwolla)
241  . Fix GH-12252 (round(): Validate the rounding mode). (timwolla)
242  . Increase the default BCrypt cost to 12. (timwolla)
243  . Fixed bug GH-12592 (strcspn() odd behaviour with NUL bytes and empty mask).
244    (nielsdos)
245  . Removed the deprecated inet_ntoa call support. (David Carlier)
246  . Cast large floats that are within int range to int in number_format so
247    the precision is not lost. (Marc Bennewitz)
248  . Add support for 4 new rounding modes to the round() function. (Jorg Sowa)
249  . debug_zval_dump() now indicates whether an array is packed. (Max Semenik)
250  . Fix GH-12143 (Optimize round). (SakiTakamachi)
251  . Changed return type of long2ip to string from string|false. (Jorg Sowa)
252  . Fix GH-12143 (Extend the maximum precision round can handle by one digit).
253    (SakiTakamachi)
254  . Added the http_get_last_response_headers() and
255    http_clear_last_response_headers() that allows retrieving the same content
256    as the magic $http_response_header variable.
257  . Add php_base64_encode_ex() API. (Remi)
258
259- XML:
260  . Added XML_OPTION_PARSE_HUGE parser option. (nielsdos)
261
262- XMLReader:
263  . Declares class constant types. (Ayesh)
264
265- XSL:
266  . Implement request #64137 (XSLTProcessor::setParameter() should allow both
267    quotes to be used). (nielsdos)
268  . Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos)
269  . Added XSLTProcessor::$maxTemplateDepth and XSLTProcessor::$maxTemplateVars.
270    (nielsdos)
271
272<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
273