summaryrefslogtreecommitdiff
path: root/NEWS
blob: 7719b3788959efe04942a4093602826389c07724 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
PHP                                                                        NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? ????, PHP 8.0.1RC1


26 Nov 2020, PHP 8.0.0

- BZ2:
  . Fixed bug #71263 (fread() does not report bzip2.decompress errors). (cmb)

- CLI:
  . Allow debug server binding to an ephemeral port via `-S localhost:0`. (Sara)

- COM:
  . Fixed bug #55847 (DOTNET .NET 4.0 GAC new location). (cmb)
  . Fixed bug #62474 (com_event_sink crashes on certain arguments). (cmb)

- Calendar:
  . Fixed bug #80007 (Potential type confusion in unixtojd() parameter parsing).
    (Andy Postnikov)

- Core:
  . Fixed bug #36365 (scandir duplicates file name at every 65535th file).
    (cmb)
  . Fixed bug #49555 (Fatal error "Function must be a string" message should be
    renamed). (Nikita)
  . Fixed bug #62294 (register_shutdown_function() does not correctly handle
    exit code). (Nikita)
  . Fixed bug #62609 (Allow implementing Traversable on abstract classes).
    (Nikita)
  . Fixed bug #65274 (Enhance undefined class constant error with class name).
    (Nikita)
  . Fixed bug #65275 (Calling exit() in a shutdown function does not change the
    exit value in CLI). (Nikita)
  . Fixed bug #69084 (Unclear error message when not implementing a renamed
    abstract trait function). (Nikita)
  . Fixed bug #70839 (Converting optional argument to variadic forbidden by LSP
    checks). (Nikita)
  . Fixed bug #74558 (Can't rebind closure returned by Closure::fromCallable()).
    (cmb)
  . Fixed bug #77561 (Shebang line not stripped for non-primary script).
    (Nikita)
  . Fixed bug #77619 (Wrong reflection on MultipleIterator::__construct).
    (Fabien Villepinte)
  . Fixed bug #77966 (Cannot alias a method named "namespace"). (Nikita)
  . Fixed bug #78236 (convert error on receiving variables when duplicate [).
    (cmb)
  . Fixed bug #78770 (Incorrect callability check inside internal methods).
    (Nikita)
  . Fixed bug #79108 (Referencing argument in a function makes it a reference
    in the stack trace). (Nikita)
  . Fixed bug #79368 ("Unexpected end of file" is not an acceptable error
    message). (Alex Dowad)
  . Fixed bug #79462 (method_exists and property_exists incoherent behavior).
    (cmb)
  . Fixed bug #79467 (data:// wrappers are writable). (cmb)
  . Fixed bug #79521 (Check __set_state structure). (carusogabriel)
  . Fixed bug #79790 ("Illegal offset type" exception during AST evaluation
    not handled properly). (Nikita)
  . Fixed bug #79791 (Assertion failure when unsetting variable during binary
    op). (Nikita)
  . Fixed bug #79828 (Segfault when trying to access non-existing variable).
    (Nikita)
  . Fixed bug #79841 (Syntax error in configure / unescaped "[]" in php.m4).
    (Nikita)
  . Fixed bug #79852 (count(DOMNodeList) doesn't match
    count(IteratorIterator(DOMNodeList))). (Nikita)
  . Fixed bug #79867 (Promoted untyped properties should get null default
    value). (Nikita)
  . Fixed bug #79897 (Promoted constructor params with attribs cause crash).
    (Deus Kane)
  . Fixed bug #79927 (Generator doesn't throw exception after multiple yield
    from iterable). (Nikita)
  . Fixed bug #79946 (Build fails due to undeclared UINT32_C). (Nikita)
  . Fixed bug #79948 (Exit in auto-prepended file does not abort PHP execution).
    (Nikita)
  . Fixed bug #80045 (memleak after two set_exception_handler calls with
    __call). (Nikita)
  . Fixed bug #80096 (Segmentation fault with named arguments in nested call).
    (Nikita)
  . Fixed bug #80109 (Cannot skip arguments when extended debug is enabled).
    (Nikita)
  . Fixed bug #80225 (broken namespace usage in eval code). (Nikita)
  . Fixed bug #80258 (Windows Deduplication Enabled, randon permission errors).
    (cmb)
  . Fixed bug #80280 (ADD_EXTENSION_DEP() fails for ext/standard and ext/date).
    (cmb)
  . Fixed bug #80334 (assert() vs named parameters - confusing error). (Nikita)
  . Fixed bug #8055 (Abstract trait methods returning "self" cannot be
    fulfilled by traits). (Nikita)
  . Fixed faulty generator cleanup with yield from. (Bob)
  . Implement #[Attr] Attribute syntax as per final vote in RFC
    https://wiki.php.net/rfc/shorter_attribute_syntax_change
  . Implemented FR #47074 (phpinfo() reports "On" as 1 for the some
    extensions). (cmb)
  . Implemented FR #72089 (require() throws fatal error instead of exception).
    (Nikita)
  . Removed the pdo_odbc.db2_instance_name php.ini directive. (Kalle)
  . Use SSE2 instructions do locale independent strtolower. (Laruence)

- Curl:
  . Bumped required libcurl version to 7.29.0. (cmb)
  . Fixed bug #80121 (Null pointer deref if CurlHandle directly instantiated).
    (Nikita)

- DOM:
  . Add property DOMXPath::$registerNodeNamespaces and constructor argument
    that allow global flag to configure query() or evaluate() calls.
  . Fixed bug #79968 (DOMChildNode API crash on unattached nodes). (Benjamin)
  . Fixed bug #80268 (loadHTML() truncates at NUL bytes). (cmb)

- Date:
  . Fixed bug #60302 (DateTime::createFromFormat should new static(), not new
    self()). (Derick)
  . Fixed bug #65547 (Default value for sunrise/sunset zenith still wrong).
    (cmb)
  . Fixed bug #69044 (discrepancy between time and microtime). (krakjoe)
  . Fixed bug #80057 (DateTimeImmutable::createFromFormat() does not populate
    time). (Derick)
  . Implemented FR #79903 (datetime: new format "p", same as "P" but returning
    "Z" for UTC). (gharlan)

- Enchant:
  . Add LIBENCHANT_VERSION macro.
  . Add enchant_dict_add and enchant_dict_is_added functions.
  . Deprecate enchant_broker_set_dict_path, enchant_broker_get_dict_path,
    enchant_dict_add_to_personal and enchant_dict_is_in_session.
  . Use libenchant-2 when available.

- FFI:
  . Added FFI\CType::getName() method. (chopins)
  . Fixed bug #79177 (FFI doesn't handle well PHP exceptions within callback).
    (cmb, Dmitry, Nikita)
  . Fixed bug #79749 (Converting FFI instances to bool fails). (cmb)

- FPM:
  . Add pm.status_listen option. (Jakub Zelenka)

- Fileinfo:
  . Upgrade to libmagic 5.39. (Anatol)

- GD:
  . Added imagegetinterpolation(). (cmb)
  . Fixed bug #55005 (imagepolygon num_points requirement). (cmb)
  . Made the $num_points parameter of php_imagepolygon optional. (cmb)
  . Removed deprecated image2wbmp(). (cmb)
  . Removed deprecated png2wbmp() and jpeg2wbmp(). (cmb)
  . Replaced gd resources with objects. (Mark Randall)

- IMAP:
  . Fixed bug #64076 (imap_sort() does not return FALSE on failure). (cmb)
  . Fixed bug #76618 (segfault on imap_reopen). (girgias)
  . Fixed bug #80213 (imap_mail_compose() segfaults on certain $bodies). (cmb)
  . Fixed bug #80215 (imap_mail_compose() may modify by-val parameters). (cmb)
  . Fixed bug #80216 (imap_mail_compose() does not validate types/encodings).
    (cmb)
  . Fixed bug #80220 (imap_mail_compose() may leak memory). (cmb)
  . Fixed bug #80223 (imap_mail_compose() leaks envelope on malformed bodies).
    (cmb)
  . Fixed bug #80226 (imap_sort() leaks sortpgm memory). (cmb)
  . Fixed bug #80239 (imap_rfc822_write_address() leaks memory). (cmb)
  . Fixed bug #80242 (imap_mail_compose() segfaults for multipart with rfc822).
    (cmb)
  . Fixed minor regression caused by fixing bug #80220. (cmb)

- Iconv:
  . Dropped support for iconv without proper errno setting. (cmb)

- Intl:
  . Removed deprecated INTL_IDNA_VARIANT_2003. (cmb)

- JIT:
  . Fixed bug #77857 (Wrong result if executed with JIT). (Laruence)
  . Fixed bug #79255 (PHP cannot be compiled with enable JIT).
    (Laruence, Dmitry)
  . Fixed bug #79582 (Crash seen when opcache.jit=1235 and
    opcache.jit_debug=2). (Laruence)
  . Fixed bug #79743 (Fatal error when assigning to array property
    with JIT enabled). (Laruence)
  . Fixed bug #79864 (JIT segfault in Symfony OptionsResolver). (Dmitry)
  . Fixed bug #79888 (Incorrect execution with JIT enabled). (Dmitry)

- JSON:
  . The JSON extension is now an integral part of PHP and cannot be disabled
    as per RFC: https://wiki.php.net/rfc/always_enable_json (tandre)

- LDAP:
  . Fixed memory leaks. (ptomulik)
  . Removed deprecated ldap_sort. (mcmic)

- MBString:
  . Fixed bug #76999 (mb_regex_set_options() return current options). (cmb)
  . Removed the unused $is_hex parameter from mb_decode_numericentity(). (cmb)

- MySQLi:
  . Fixed bug #76809 (SSL settings aren't respected when persistent connections
    are used). (fabiomsouto)

- Mysqlnd:
  . Fixed #60594 (mysqlnd exposes 160 lines of stats in phpinfo). (PeeHaa)

- OCI8:
  . Deprecated old OCI8 function aliases. (Jens de Nies)
  . Modernized oci_register_taf_callback() callable argument parsing
    implementation. (girgias)
  . Removed obsolete no-op function oci_internal_debug(). (Jens de Nies)

- ODBC:
  . Fixed bug #22986 (odbc_connect() may reuse persistent connection). (cmb)
  . Fixed bug #44618 (Fetching may rely on uninitialized data). (cmb)

- Opcache:
  . Fixed bug #76535 (Opcache does not replay compile-time warnings). (Nikita)
  . Fixed bug #78654 (Incorrectly computed opcache checksum on files with
    non-ascii characters). (mhagstrand)
  . Fixed bug #79665 (ini_get() and opcache_get_configuration() inconsistency).
    (cmb)
  . Fixed bug #80030 (Optimizer segfault with isset on static property with
    undef dynamic class name). (Nikita)
  . Fixed bug #80175 (PHP8 RC1 - JIT Buffer not working). (cmb)
  . Fixed bug #80184 (Complex expression in while / if statements resolves to
    false incorrectly). (Nikita)
  . Fixed bug #80255 (Opcache bug (bad condition result) in 8.0.0rc1). (Nikita)
  . Fixed run-time binding of preloaded dynamically declared function. (Dmitry)

- OpenSSL:
  . Added Cryptographic Message Syntax (CMS) support. (Eliot Lear)

- PCRE:
  . Don't ignore invalid escape sequences. (sjon)
  . Updated to PCRE2 10.35. (cmb)

- PDO:
  . Changed default PDO error mode to exceptions. (AllenJB)
  . Fixed bug #77849 (Disable cloning of PDO handle/connection objects).
    (camporter)

- PDO_Firebird:
  . Fixed bug #64937 (Firebird PDO preprocessing sql). (Simonov Denis)

- PDO_OCI:
  . Added support for setting and getting the oracle OCI 18c call timeout.
    (camporter)

- PDO_PGSQL:
  . Bumped required libpq version to 9.1. (cmb)

- PGSQL:
  . Bumped required libpq version to 9.1. (cmb)

- Phpdbg:
  . Fixed bug #76596 (phpdbg support for display_errors=stderr). (kabel)
  . Fixed bug #76801 (too many open files). (alekitto)
  . Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints).
    (krakjoe)
  . Fixed bug #77805 (phpdbg build fails when readline is shared). (krakjoe)

- Reflection:
  . Fixed bug #64592 (ReflectionClass::getMethods() returns methods out of
    scope). (Nikita)
  . Fixed bug #69180 (Reflection does not honor trait conflict resolution /
    method aliasing). (Nikita)
  . Fixed bug #74939 (Nested traits' aliased methods are lowercased). (Nikita)
  . Fixed bug #77325 (ReflectionClassConstant::$class returns wrong class when
    extending). (Nikita)
  . Fixed bug #78697 (ReflectionClass::implementsInterface - inaccurate error
    message with traits). (villfa)
  . Fixed bug #80190 (ReflectionMethod::getReturnType() does not handle static
    as part of union type). (Nikita)
  . Fixed bug #80299 (ReflectionFunction->invokeArgs confused in arguments).
    (Nikita)
  . Fixed bug #80370 (getAttributes segfault on dynamic properties). (Benjamin
    Eberlei)
  . Implement #79628 (Add $filter parameter for ReflectionClass::getConstants
    and ReflectionClass::getReflectionConstants) (carusogabriel)
  . Implement ReflectionProperty::hasDefaultValue and
    Reflection::getDefaultValue (beberlei)

- SNMP:
  . Fixed bug #70461 (disable md5 code when it is not supported in net-snmp).
    (Alexander Bergmann, cmb)

- SPL:
  . Fixed bug #65006 (spl_autoload_register fails with multiple callables using
    self, same method). (Nikita)
  . Fixed bug #65387 (Circular references in SPL iterators are not garbage
    collected). (Nikita)
  . Fixed bug #71236 (Second call of spl_autoload_register() does nothing if it
    has no arguments). (Nikita)
  . Fixed bug #79987 (Memory leak in SplFileInfo because of missing
    zend_restore_error_handling()). (Dmitry)
  . SplFixedArray is now IteratorAggregate rather than Iterator. (alexdowad)

- SQLite3:
  . Added SQLite3::setAuthorizer() and respective class constants. (bohwaz)

- Session:
  . Fixed bug #73529 (session_decode() silently fails on wrong input). (cmb)
  . Fixed bug #78624 (session_gc return value for user defined session
    handlers). (bshaffer)

- Shmop:
  . Converted shmop resources to objects. (cmb)

- SimpleXML:
  . Fixed bug #63575 (Root elements are not properly cloned). (cmb)
  . Fixed bug #75245 (Don't set content of elements with only whitespaces).
    (eriklundin)

- Sodium:
  . Fixed bug #77646 (sign_detached() strings not terminated). (Frank)

- Standard:
  . Don't force rebuild of symbol table, when populating $http_response_header
    variable by the HTTP stream wrapper. (Dmitry)
  . Fixed bug #47983 (mixed LF and CRLF line endings in mail()). (cmb)
  . Fixed bug #64060 (lstat_stat_variation7.phpt fails on certain file systems).
    (M. Voelker, cmb)
  . Fixed bug #75902 (str_replace should warn when misused with nested arrays).
    (Nikita)
  . Fixed bug #76859 (stream_get_line skips data if used with data-generating
    filter). (kkopachev)
  . Fixed bug #77204 (getimagesize(): Read error! should mention file path).
    (peter279k)
  . Fixed bug #78385 (parse_url() does not include 'query' when question mark
    is the last char). (Islam Israfilov)
  . Fixed bug #79868 (Sorting with array_unique gives unwanted result). (Nikita)
  . Fixed bug #80256 (file_get_contents strip first line with chunked encoding
    redirect). (Nikita)
  . Fixed bug #80266 (parse_url silently drops port number 0). (cmb, Nikita)
  . Fixed bug #80290 (Double free when ASSERT_CALLBACK is used with a dynamic
    message). (Nikita)
  . Implemented FR #78638 (__PHP_Incomplete_Class should be final). (Laruence)
  . Made quoting of cmd execution functions consistent. (cmb)

- Tidy:
  . Removed the unused $use_include_path parameter from tidy_repair_string().
    (cmb)

- Tokenizer:
  . Fixed bug #80328 (PhpToken::getAll() confusing name). (Nikita)

- XML:
  . Fixed bug #76874 (xml_parser_free() should never leak memory). (Nikita)

- XMLWriter:
  . Changed functions to accept/return XMLWriter objects instead of resources.
    (cmb)
  . Implemented FR #79344 (xmlwriter_write_attribute_ns: $prefix should be
    nullable). (cmb)
  . Removed return types from XMLWriter stubs. (cmb)

- Zip:
  . Add "flags" options to ZipArchive::addGlob and addPattern methods
    keeping previous behavior having FL_OVERWRITE by default. (Remi)
  . Add ZipArchive::EM_UNKNOWN and ZipArchive::EM_TRAD_PKWARE constants. (Remi)
  . Add ZipArchive::isCompressionMethodSupported() and
    ZipArchive::isEncryptionMethodSupported() method (libzip 1.7.0). (Remi)
  . Add ZipArchive::replaceFile() method. (Remi)
  . Add ZipArchive::setCancelCallback method (since libzip 1.6.0). (Remi)
  . Add ZipArchive::setMtimeName and ZipArchive::setMtimeIndex methods. (Remi)
  . Add ZipArchive::setProgressCallback method (since libzip 1.3.0). (Remi)
  . Add lastId property to ZipArchive. (Remi)
  . Add optional "flags" parameter to ZipArchive::addEmptyDir, addFile and
    addFromString methods. (Remi)
  . Fixed bug #50678 (files extracted by ZipArchive class lost their
    original modified time). (Remi)
  . Fixed bug #72374 (remove_path strips first char of filename). (tyage, Remi)
  . Implemented FR #77960 (add compression / encryption options for
    ZipArchive::addGlob and ZipArchive::addPattern). (Remi)
  . ZipArchive::status and ZipArchive::statusSys properties and
    ZipArchive::getStatusString() method stay valid after the archive
    is closed. (Remi)

- Zlib:
  . Fixed bug #71417 (fread() does not report zlib.inflate errors). (cmb)
  . Fixed bug #78792 (zlib.output_compression disabled by Content-Type: image/).
    (cmb)