PHP                                                                        NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
02 Sep 2021, PHP 8.1.0RC1

- Core:
  . Fixed bug #81377 (unset() of $GLOBALS sub-key yields warning). (Nikita)

- COM:
  . Dispatch using LANG_NEUTRAL instead of LOCALE_SYSTEM_DEFAULT. (Dmitry
    Maksimov)

- Date:
  . Fixed bug #80998 (Missing second with inverted interval). (Derick)
  . Speed up finding timezone offset information. (Derick)

19 Aug 2021, PHP 8.1.0beta3

- Core:
  . Fixed bug #81342 (New ampersand token parsing depends on new line after it).
    (Nikita)
  . Fixed bug #81280 (Unicode characters in cli.prompt causes segfault).
    (krakjoe)
  . Fixed bug #81192 ("Declaration should be compatible with" gives incorrect
    line number with traits). (Nikita)
  . Fixed bug #78919 (CLI server: insufficient cleanup if request startup
    fails). (cataphract, cmb)

- Date:
  . Fixed bug #79580 (date_create_from_format misses leap year). (Derick)
  . Fixed bug #80963 (DateTimeZone::getTransitions() truncated). (Derick)
  . Fixed bug #80974 (Wrong diff between 2 dates in different timezones).
    (Derick)
  . Fixed bug #80998 (Missing second with inverted interval). (Derick)
  . Fixed bug #81097 (DateTimeZone silently falls back to UTC when providing an
    offset with seconds). (Derick)
  . Fixed bug #81106 (Regression in 8.1: add() now truncate ->f). (Derick)
  . Fixed bug #81273 (Date interval calculation not correct). (Derick)

- Mbstring:
  . Fixed bug #81349 (mb_detect_encoding misdetcts ASCII in some cases).
    (Nikita)

- PDO PgSQL:
  . Fixed bug #81343 (pdo_pgsql: Inconsitent boolean conversion after calling
    closeCursor()). (Philip Hofstetter)

- Phar:
  . Use SHA256 by default for signature. (remi)
  . Add support for OpenSSL_SHA256 and OpenSSL_SHA512 signature. (remi)

- SNMP:
  . Implement SHA256 and SHA512 for security protocol. (remi)

- Standard:
  . Fixed bug #81142 (PHP 7.3+ memory leak when unserialize() is used on an
    associative array). (Nikita)

05 Aug 2021, PHP 8.1.0beta2

- Core:
  . Fixed bug #81303 (match error message improvements). (krakjoe)

- Mbstring:
  . Fixed bug #81298 (mb_detect_encoding() segfaults when 7bit encoding is
    specified). (Nikita)

- MySQLnd:
  . Fixed bug #63327 (Crash (Bus Error) in mysqlnd due to wrong alignment).
    (Nikita)

- Opcache:
  . Fixed Bug #81255 (Memory leak in PHPUnit with functional JIT)
  . Fixed Bug #80959 (infinite loop in building cfg during JIT compilation)
    (Nikita, Dmitry)

- Reflection:
  . Fixed bug #80821 (ReflectionProperty::getDefaultValue() returns current
    value for statics). (Nikita)
  . Fixed bug #80564 (ReflectionProperty::__toString() renders current value,
    not default value). (Nikita)

- SimpleXML:
  . Fixed bug #81325 (Segfault in zif_simplexml_import_dom). (remi)

22 Jul 2021, PHP 8.1.0beta1

- Core:
 . Fixed bug #81238 (Fiber support missing for Solaris Sparc). (trowski)
 . Fixed bug #81237 (Comparison of fake closures doesn't work). (krakjoe)

- Opcache:
  . Fixed bug #81225 (Wrong result with pow operator with JIT enabled).
    (Dmitry)
  . Fixed bug #81249 (Intermittent property assignment failure with JIT
    enabled). (Dmitry)
  . Fixed bug #81256 (Assertion `zv != ((void *)0)' failed for "preload" with
    JIT). (Dmitry)

- Reflection:
 . Fixed bug #80097 (ReflectionAttribute is not a Reflector). (beberlei)

- Standard:
 . Fixed bug #81111 (Serialization is unexpectedly allowed on anonymous classes
   with __serialize()). (Nikita)

08 Jul 2021, PHP 8.1.0alpha3

- Core:
  . Fixed bug #81202 (powerpc64 build fails on fibers). (krakjoe)
  . Fixed bug #80072 (Cyclic unserialize in TMPVAR operand may leak). (Nikita)

- Curl:
  . Fixed bug #81085 (Support CURLOPT_SSLCERT_BLOB for cert strings).
    (camporter)

- Reflection:
  . Fixed bug #81200 (no way to determine if Closure is static). (krakjoe)

24 Jun 2021, PHP 8.1.0alpha2

- Core:
  . Fixed bug #81163 (__sleep allowed to return non-array). (krakjoe)

- Opcache:
  . Fixed bug #81133 (building opcache with phpize fails). (krakjoe)
  . Fixed bug #81136 (opcache header not installed). (krakjoe)

- PDO OCI:
  . Fixed bug #77120 (Support 'success with info' at connection).
    (Sergei Morozov)
    
- phpdbg:
  . Fixed bug #81135 (unknown help topic causes assertion failure). (krakjoe)

- SPL:
  . Fixed bug #81112 (Special json_encode behavior for SplFixedArray). (Nikita)
  . Fixed bug #80945 ("Notice: Undefined index" on unset() ArrayObject
    non-existing key). (Nikita)
    
- Standard:
  . Fixed bug #81137 (hrtime breaks build on OSX before Sierra). (krakjoe)

10 Jun 2021, PHP 8.1.0alpha1

- Core:
  . Fixed inclusion order for phpize builds on Windows. (cmb)
  . Added missing hashtable insertion APIs for arr/obj/ref. (Sara)
  . Fixed bug #75474 (function scope static variables are not bound to a unique
    function). (Nikita)
  . Fixed bug #53826 (__callStatic fired in base class through a parent call if
    the method is private). (Nikita)
  . Implemented FR #77372 (Relative file path is removed from uploaded file).
    (Björn Tantau)
  . Fixed bug #81076 (incorrect debug info on Closures with implicit binds).
    (krakjoe)
 
 - Standard:
  . Fixed bug #77627 (method_exists on Closure::__invoke inconsistency).
    (krakjoe)

- Date:
  . Fixed bug #52480 (Incorrect difference using DateInterval) (Derick)
  . Fixed bug #62326 (date_diff() function returns false result) (Derick)
  . Fixed bug #64992 (dst not handled past 2038) (Derick)
  . Fixed bug #65003 (Wrong date diff) (Derick)
  . Fixed bug #66545 (DateTime. diff returns negative values) (Derick)
  . Fixed bug #68503 (date_diff on two dates with timezone set localised
    returns wrong results) (Derick)
  . Fixed bug #69806 (Incorrect date from timestamp) (Derick)
  . Fixed bug #71700 (Extra day on diff between begin and end of march 2016)
    (Derick)
  . Fixed bug #71826 (DateTime::diff confuse on timezone 'Asia/Tokyo') (Derick)
  . Fixed bug #73460 (Datetime add not realising it already applied DST
    change) (Derick)
  . Fixed bug #74173 (DateTimeImmutable::getTimestamp() triggers DST switch in
    incorrect time) (Derick)
  . Fixed bug #74274 (Handling DST transitions correctly) (Derick)
  . Fixed bug #74524 (Date diff is bad calculated, in same time zone) (Derick)
  . Fixed bug #75167 (DateTime::add does only care about backward DST
    transition, not forward) (Derick)
  . Fixed bug #76032 (DateTime->diff having issues with leap days for
    timezones ahead of UTC) (Derick)
  . Fixed bug #76374 (Date difference varies according day time) (Derick)
  . Fixed bug #77571 (DateTime's diff DateInterval incorrect in timezones from
    UTC+01:00 to UTC+12:00 (Derick)
  . Fixed bug #78452 (diff makes wrong in hour for Asia/Tehran) (Derick)
  . Fixed bug #79452 (DateTime::diff() generates months differently between
    time zones) (Derick)
  . Fixed bug #79698 (timelib mishandles future timestamps (triggered by 'zic
    -b slim')) (Derick)
  . Fixed bug #79716 (Invalid date time created (with day "00")) (Derick)
  . Fixed bug #80610 (DateTime calculate wrong with DateInterval) (Derick)
  . Fixed bug #80664 (DateTime objects behave incorrectly around DST
    transition) (Derick)
  . Fixed bug #80913 (DateTime(Immutable)::sub around DST yield incorrect
    time) (Derick)

- FPM:
  . Added openmetrics status format. (Cees-Jan Kiewiet)
  . Enable process renaming on macOS. (devnexen)
  . Added pm.max_spawn_rate option to configure max spawn child processes rate.
    (Paulius Sapragonas)
  . Fixed bug #65800 (Events port mechanism). (psumbera)

- FTP:
  . Convert resource<ftp> to object \FTP\Connection. (Sara)

- GD:
  . Convert resource<gd font> to object \GdFont. (Sara)

- hash:
  . Implemented FR #68109 (Add MurmurHash V3). (Anatol, Michael)
  . Implemented FR #73385 (Add xxHash support). (Anatol)

- LDAP:
  . Convert resource<ldap link> to object \LDAP\Connection. (Máté)
  . Convert resource<ldap result> to object \LDAP\Result. (Máté)
  . Convert resource<ldap result entry> to object \LDAP\ResultEntry. (Máté)

- MySQLi:
  . Fixed bug #70372 (Emulate mysqli_fetch_all() for libmysqlclient). (Nikita)
  . Fixed bug #80330 (Replace language in APIs and source code/docs).
    (Darek Ślusarczyk)
  . Fixed bug #80329 (Add option to specify LOAD DATA LOCAL white list folder
    (including libmysql)). (Darek Ślusarczyk)

- MySQLnd:
  . Fixed bug #80761 (PDO uses too much memory). (Nikita)

- OPcache:
  . Added inheritance cache. (Dmitry)

- OpenSSL:
  . Bump minimal OpenSSL version to 1.0.2. (Jakub Zelenka)

- PCRE:
  . Bundled PCRE2 is 10.37.

- PDO:
  . Fixed bug #40913 (PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for
    fetching a BLOB). (Nikita)

. PDO MySQL:
  . Fixed bug #80908 (PDO::lastInsertId() return wrong). (matt)
  . Fixed bug #81037 (PDO discards error message text from prepared
    statement). (Kamil Tekiela)

. PDO ODBC:
  . Implement PDO_ATTR_SERVER_VERSION and PDO_ATTR_SERVER_INFO for
    PDO::getAttribute(). (Calvin Buckley)

. PDO SQLite:
  . Fixed bug #38334 (Proper data-type support for PDO_SQLITE). (Nikita)

- PgSQL:
  . Convert resource<pgsql link> to object \PgSql\Connection. (Máté)
  . Convert resource<pgsql result> to object \PgSql\Result. (Máté)
  . Convert resource<pgsql large object> to object \PgSql\Lob. (Máté)

- PSpell:
  . Convert resource<pspell> to object \PSpell\Dictionary. (Sara)
  . Convert resource<pspell config> to object \PSpell\Config. (Sara)

- readline:
  . Fixed bug #72998 (invalid read in readline completion). (krakjoe)

- Reflection:
  . Implement ReflectionFunctionAbstract::getClosureUsedVariables (krakjoe)

- Sodium:
  . Added the XChaCha20 stream cipher functions. (P.I.E. Security Team)
  . Added the Ristretto255 functions, which are available in libsodium 1.0.18.
    (P.I.E. Security Team)

- SPL:
  . Fixed bug #80724 (FilesystemIterator::FOLLOW_SYMLINKS remove KEY_AS_FILE
    from bitmask). (Cameron Porter)

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