Skip to content

Prepare for PHP 8.1 #6305

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,8 @@ Currently we have the following branches in use:

| Branch | |
| --------- | --------- |
| master | Active development branch for PHP 8.0, which is open for backwards incompatible changes and major internal API changes. |
| master | Active development branch for PHP 8.1, which is open for backwards incompatible changes and major internal API changes. |
| PHP-8.0 | Is used to release the PHP 8.0.x series. This is a current stable version and is open for bugfixes only. |
| PHP-7.4 | Is used to release the PHP 7.4.x series. This is a current stable version and is open for bugfixes only. |
| PHP-7.3 | Is used to release the PHP 7.3.x series. This is a current stable version and is open for bugfixes only. |
| PHP-7.2 | Is used to release the PHP 7.2.x series. This is an old stable version and is open for security fixes only. |
Expand Down
385 changes: 1 addition & 384 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,388 +1,5 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? ????, PHP 8.0.0rc2

- Curl:
. Fixed bug #80121 (Null pointer deref if CurlHandle directly instantiated).
(Nikita)

- Opcache:
. Fixed bug #80184 (Complex expression in while / if statements resolves to
false incorrectly). (Nikita)

- Reflection:
. Fixed bug #80190 (ReflectionMethod::getReturnType() does not handle static
as part of union type). (Nikita)

- SPL:
. Fixed bug #65387 (Circular references in SPL iterators are not garbage
collected). (Nikita)

- Standard:
. Fixed bug #64060 (lstat_stat_variation7.phpt fails on certain file systems).
(M. Voelker, cmb)

01 Oct 2020, PHP 8.0.0rc1

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

- Core:
. Fixed bug #80109 (Cannot skip arguments when extended debug is enabled).
(Nikita)

- ODBC:
. Fixed bug #22986 (odbc_connect() may reuse persistent connection). (cmb)

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

- SPL:
. SplFixedArray is now IteratorAggregate rather than Iterator. (alexdowad)

- Zlib:
. Fixed bug #78792 (zlib.output_compression disabled by Content-Type: image/).
(cmb)

17 Sep 2020, PHP 8.0.0beta4

- Core:
. Implement #[Attr] Attribute syntax as per final vote in RFC
https://wiki.php.net/rfc/shorter_attribute_syntax_change
. 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 faulty generator cleanup with yield from. (Bob)

- Date:
. Fixed bug #80057 (DateTimeImmutable::createFromFormat() does not populate
time). (Derick)

- FFI:
. Added FFI\CType::getName() method. (chopins)

03 Sep 2020, PHP 8.0.0beta3

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

- COM:
. Fixed bug #55847 (DOTNET .NET 4.0 GAC new location). (cmb)

- DOM:
. Fixed bug #79968 (DOMChildNode API crash on unattached nodes). (Benjamin)

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

- Opcache:
. Fixed bug #80030 (Optimizer segfault with isset on static property with
undef dynamic class name). (Nikita)

20 Aug 2020, PHP 8.0.0beta2

- SPL:
. Fixed bug #79987 (Memory leak in SplFileInfo because of missing
zend_restore_error_handling()). (Dmitry)

06 Aug 2020, PHP 8.0.0beta1

- Core:
. Fixed bug #78236 (convert error on receiving variables when duplicate [).
(cmb)
. Fixed bug #79108 (Referencing argument in a function makes it a reference
in the stack trace). (Nikita)
. Fixed bug #79897 (Promoted constructor params with attribs cause crash).
(Deus Kane)
. Fixed bug #79946 (Build fails due to undeclared UINT32_C). (Nikita)
. Fixed bug #77561 (Shebang line not stripped for non-primary script).
(Nikita)
. Fixed bug #79948 (Exit in auto-prepended file does not abort PHP execution).
(Nikita)
. Fixed bug #65275 (Calling exit() in a shutdown function does not change the
exit value in CLI). (Nikita)
. Fixed bug #62294 (register_shutdown_function() does not correctly handle
exit code). (Nikita)
. Fixed bug #79927 (Generator doesn't throw exception after multiple yield
from iterable). (Nikita)
. Fixed bug #78770 (Incorrect callability check inside internal methods).
(Nikita)

- Date:
. Fixed bug #60302 (DateTime::createFromFormat should new static(), not new
self()). (Derick)
. Implemented FR #79903 (datetime: new format "p", same as "P" but returning
"Z" for UTC). (gharlan)

- JIT:
. Fixed bug #79864 (JIT segfault in Symfony OptionsResolver). (Dmitry)
. Fixed bug #79888 (Incorrect execution with JIT enabled). (Dmitry)

- LDAP:
. Fixed memory leaks. (ptomulik)

- OCI8:
. Modernized oci_register_taf_callback() callable argument parsing
implementation. (girgias)

23 Jul 2020, PHP 8.0.0alpha3

- Core:
. 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 #79841 (Syntax error in configure / unescaped "[]" in php.m4).
(Nikita)
. Fixed bug #79828 (Segfault when trying to access non-existing variable).
(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)

- Standard:
. Fixed bug #79868 (Sorting with array_unique gives unwanted result). (Nikita)

09 Jul 2020, PHP 8.0.0alpha2

- FFI:
. Fixed bug #79749 (Converting FFI instances to bool fails). (cmb)

- JIT:
. Fixed bug #79743 (Fatal error when assigning to array property
with JIT enabled). (Laruence)

- PCRE:
. Updated to PCRE2 10.35. (cmb)

25 Jun 2020, PHP 8.0.0alpha1

- Core:
. Removed the pdo_odbc.db2_instance_name php.ini directive. (Kalle)
. Fixed bug #77619 (Wrong reflection on MultipleIterator::__construct).
(Fabien Villepinte)
. Fixed bug #65274 (Enhance undefined class constant error with class name).
(Nikita)
. Fixed bug #49555 (Fatal error "Function must be a string" message should be
renamed). (Nikita)
. Fixed bug #70839 (Converting optional argument to variadic forbidden by LSP
checks). (Nikita)
. Fixed bug #69084 (Unclear error message when not implementing a renamed
abstract trait function). (Nikita)
. Fixed bug #62609 (Allow implementing Traversable on abstract classes).
(Nikita)
. Fixed bug #79462 (method_exists and property_exists incoherent behavior).
(cmb)
. Fixed bug #79368 ("Unexpected end of file" is not an acceptable error
message). (Alex Dowad)
. Fixed bug #36365 (scandir duplicates file name at every 65535th file).
(cmb)
. Use SSE2 instructions do locale independent strtolower. (Laruence)
. Fixed bug #79521 (Check __set_state structure). (carusogabriel)
. Fixed bug #79467 (data:// wrappers are writable). (cmb)
. Implemented FR #47074 (phpinfo() reports "On" as 1 for the some
extensions). (cmb)
. Implemented FR #72089 (require() throws fatal error instead of exception).
(Nikita)
. Fixed bug #77966 (Cannot alias a method named "namespace"). (Nikita)

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

- CURL:
. Bumped required libcurl version to 7.29.0. (cmb)

- Date:
. Fixed bug #65547 (Default value for sunrise/sunset zenith still wrong).
(cmb)
. Fixed bug #69044 (discrepancy between time and microtime). (krakjoe)

- DOM:
. Add property DOMXPath::$registerNodeNamespaces and constructor argument
that allow global flag to configure query() or evaluate() calls.

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

- FPM:
. Fixed bug #64865 (Search for .user.ini files from script dir up to
CONTEXT_DOCUMENT_ROOT). (Will Bender)
. Add pm.status_listen option. (Jakub Zelenka)

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

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

- Intl:
. Removed deprecated INTL_IDNA_VARIANT_2003. (cmb)

- JIT:
. Fixed bug #79582 (Crash seen when opcache.jit=1235 and
opcache.jit_debug=2). (Laruence)
. Fixed bug #77857 (Wrong result if executed with JIT). (Laruence)
. Fixed bug #79255 (PHP cannot be compiled with enable JIT).
(Laruence, 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:
. 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)
. Removed obsolete no-op function oci_internal_debug(). (Jens de Nies)

- OpCache:
. Fixed bug #78654 (Incorrectly computed opcache checksum on files with
non-ascii characters). (mhagstrand)
. Fixed bug #76535 (Opcache does not replay compile-time warnings). (Nikita)
. Fixed bug #79665 (ini_get() and opcache_get_configuration() inconsistency).
(cmb)

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

- PCRE:
. Don't ignore invalid escape sequences. (sjon)

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

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

- 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)

- 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 #78697 (ReflectionClass::implementsInterface - inaccurate error
message with traits). (villfa)
. Implement ReflectionProperty::hasDefaultValue and
Reflection::getDefaultValue (beberlei)
. Fixed bug #64592 (ReflectionClass::getMethods() returns methods out of
scope). (Nikita)
. Fixed bug #77325 (ReflectionClassConstant::$class returns wrong class when
extending). (Nikita)
. Fixed bug #69180 (Reflection does not honor trait conflict resolution /
method aliasing). (Nikita)
. Fixed bug #74939 (Nested traits' aliased methods are lowercased). (Nikita)
. Implement #79628 (Add $filter parameter for ReflectionClass::getConstants
and ReflectionClass::getReflectionConstants) (carusogabriel)

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

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

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

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

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

- SPL:
. Fixed bug #71236 (Second call of spl_autoload_register() does nothing if it
has no arguments). (Nikita)
. Fixed bug #65006 (spl_autoload_register fails with multiple callables using
self, same method). (Nikita)

- Standard:
. Implemented FR #78638 (__PHP_Incomplete_Class should be final). (Laruence)
. Fixed bug #77204 (getimagesize(): Read error! should mention file path).
(peter279k)
. Fixed bug #76859 (stream_get_line skips data if used with data-generating
filter). (kkopachev)
. Fixed bug #78385 (parse_url() does not include 'query' when question mark
is the last char). (Islam Israfilov)
. Fixed bug #75902 (str_replace should warn when misused with nested arrays).
(Nikita)
. Fixed bug #47983 (mixed LF and CRLF line endings in mail()). (cmb)
. Made quoting of cmd execution functions consistent. (cmb)

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

- 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)

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

- Zlib:
. Fixed bug #71417 (fread() does not report zlib.inflate errors). (cmb)
?? ??? ????, PHP 8.1.0alpha1

<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
Loading