mirror of
https://github.com/php/php-src.git
synced 2024-11-23 01:44:06 +08:00
Prepare for PHP 8.4
This commit is contained in:
parent
f5f05e886e
commit
7bd0bcadaa
@ -350,7 +350,8 @@ Currently, we have the following branches in use:
|
|||||||
|
|
||||||
| Branch | |
|
| Branch | |
|
||||||
| --------- | --------- |
|
| --------- | --------- |
|
||||||
| master | Active development branch for PHP 8.4, which is open for backwards incompatible changes and major internal API changes. |
|
| master | Active development branch for PHP 8.5, which is open for backwards incompatible changes and major internal API changes. |
|
||||||
|
| PHP-8.4 | Is used to release the PHP 8.4.x series. This is a current stable version and is open for bugfixes only. |
|
||||||
| PHP-8.3 | Is used to release the PHP 8.3.x series. This is a current stable version and is open for bugfixes only. |
|
| PHP-8.3 | Is used to release the PHP 8.3.x series. This is a current stable version and is open for bugfixes only. |
|
||||||
| PHP-8.2 | Is used to release the PHP 8.2.x series. This is a current stable version and is open for bugfixes only. |
|
| PHP-8.2 | Is used to release the PHP 8.2.x series. This is a current stable version and is open for bugfixes only. |
|
||||||
| PHP-8.1 | Is used to release the PHP 8.1.x series. This is an old stable version and is open for security fixes only. |
|
| PHP-8.1 | Is used to release the PHP 8.1.x series. This is an old stable version and is open for security fixes only. |
|
||||||
|
801
NEWS
801
NEWS
@ -1,804 +1,5 @@
|
|||||||
PHP NEWS
|
PHP NEWS
|
||||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||
?? ??? ????, PHP 8.4.0RC1
|
?? ??? ????, PHP 8.5.0alpha1
|
||||||
|
|
||||||
- BcMath:
|
|
||||||
. bcpow() performance improvement. (Jorg Sowa)
|
|
||||||
. ext/bcmath: Check for scale overflow. (SakiTakamachi)
|
|
||||||
. [RFC] ext/bcmath: Added bcdivmod. (SakiTakamachi)
|
|
||||||
. Fix GH-15968 (Avoid converting objects to strings in operator calculations).
|
|
||||||
(SakiTakamachi)
|
|
||||||
|
|
||||||
- Curl:
|
|
||||||
. Added CURLOPT_DEBUGFUNCTION as a Curl option. (Ayesh Karunaratne)
|
|
||||||
|
|
||||||
- Debugging:
|
|
||||||
. Fixed bug GH-15923 (GDB: Python Exception <class 'TypeError'>:
|
|
||||||
exceptions must derive from BaseException). (nielsdos)
|
|
||||||
|
|
||||||
- DOM:
|
|
||||||
. Fix XML serializer errata: xmlns="" serialization should be allowed.
|
|
||||||
(nielsdos)
|
|
||||||
. Fixed bug GH-15910 (Assertion failure in ext/dom/element.c). (nielsdos)
|
|
||||||
. Fix unsetting DOM properties. (nielsdos)
|
|
||||||
|
|
||||||
- MBString:
|
|
||||||
. Fixed bug GH-15824 (mb_detect_encoding(): Argument $encodings contains
|
|
||||||
invalid encoding "UTF8"). (Yuya Hamada)
|
|
||||||
. Updated Unicode data tables to Unicode 16.0. (Ayesh Karunaratne)
|
|
||||||
|
|
||||||
- Opcache:
|
|
||||||
. Fixed bug GH-15657 (Segmentation fault in dasm_x86.h). (nielsdos)
|
|
||||||
. Added opcache_jit_blacklist() function. (Bob)
|
|
||||||
|
|
||||||
- PHPDBG:
|
|
||||||
. Fixed bug GH-15901 (phpdbg: Assertion failure on i funcs). (cmb)
|
|
||||||
|
|
||||||
- PCRE:
|
|
||||||
. Fix UAF issues with PCRE after request shutdown. (nielsdos)
|
|
||||||
|
|
||||||
- PDO_PGSQL:
|
|
||||||
. Fixed GH-15986 (Double-free due to Pdo\Pgsql::setNoticeCallback()). (cmb,
|
|
||||||
nielsdos)
|
|
||||||
. Fixed GH-12940 (Using PQclosePrepared when available instead of
|
|
||||||
the DEALLOCATE command to free statements resources). (David Carlier)
|
|
||||||
|
|
||||||
- Reflection:
|
|
||||||
. Add missing ReflectionProperty::hasHook[s]() methods. (ilutov)
|
|
||||||
. Add missing ReflectionProperty::isFinal() method. (ilutov)
|
|
||||||
|
|
||||||
- SimpleXML:
|
|
||||||
. Fixed bug GH-15837 (Segmentation fault in ext/simplexml/simplexml.c).
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
- SOAP:
|
|
||||||
. Fixed bug #73182 (PHP SOAPClient does not support stream context HTTP
|
|
||||||
headers in array form). (nielsdos)
|
|
||||||
. Fixed bug #62900 (Wrong namespace on xsd import error message). (nielsdos)
|
|
||||||
. Fixed bug GH-15711 (SoapClient can't convert BackedEnum to scalar value).
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
- SPL:
|
|
||||||
. Fixed bug GH-15918 (Assertion failure in ext/spl/spl_fixedarray.c).
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
- Standard:
|
|
||||||
. Add support for backed enums in http_build_query(). (ilutov)
|
|
||||||
. Fixed bug GH-15982 (Assertion failure with array_find when references are
|
|
||||||
involved). (nielsdos)
|
|
||||||
|
|
||||||
- Streams:
|
|
||||||
. Fixed bugs GH-15908 and GH-15026 (leak / assertion failure in streams.c).
|
|
||||||
(nielsdos)
|
|
||||||
. Fixed bug GH-15980 (Signed integer overflow in main/streams/streams.c).
|
|
||||||
(cmb)
|
|
||||||
|
|
||||||
- TSRM:
|
|
||||||
. Prevent closing of unrelated handles. (cmb)
|
|
||||||
|
|
||||||
- Windows:
|
|
||||||
. Fixed minimal Windows version. (cmb)
|
|
||||||
|
|
||||||
- Zip:
|
|
||||||
. Added ZipArchive::ER_TRUNCATED_ZIP added in libzip 1.11. (Remi)
|
|
||||||
|
|
||||||
12 Sep 2024, PHP 8.4.0beta5
|
|
||||||
|
|
||||||
- BCMath:
|
|
||||||
. Fixed LONG_MAX in BCMath ext. (Saki Takamachi)
|
|
||||||
. Fixed bcdiv() div by one. (Saki Takamachi)
|
|
||||||
. [RFC] Support object types in BCMath. (Saki Takamachi)
|
|
||||||
|
|
||||||
- Core:
|
|
||||||
. Fixed bug GH-15330 (Do not scan generator frames more than once). (Arnaud)
|
|
||||||
. Fixed bug GH-15644 (Asymmetric visibility doesn't work with hooks). (ilutov)
|
|
||||||
. Implemented lazy objects RFC. (Arnaud)
|
|
||||||
. Fixed bug GH-15686 (Building shared iconv with external iconv library).
|
|
||||||
(Peter Kokot, zeriyoshi)
|
|
||||||
. Fixed missing error when adding asymmetric visibility to unilateral virtual
|
|
||||||
property. (ilutov)
|
|
||||||
. Fixed bug GH-15693 (Unnecessary include in main.c bloats binary).
|
|
||||||
(nielsdos)
|
|
||||||
. Fixed bug GH-15731 (AllowDynamicProperties validation should error on
|
|
||||||
enums). (DanielEScherzer)
|
|
||||||
. Fixed uninitialized lineno in constant AST of internal enums. (ilutov)
|
|
||||||
|
|
||||||
- Curl:
|
|
||||||
. The CURLOPT_DNS_USE_GLOBAL_CACHE option is now silently ignored. (Ayesh Karunaratne)
|
|
||||||
|
|
||||||
- DOM:
|
|
||||||
. Fixed bug GH-13988 (Storing DOMElement consume 4 times more memory in
|
|
||||||
PHP 8.1 than in PHP 8.0). (nielsdos)
|
|
||||||
. Fixed bug GH-15654 (Signed integer overflow in ext/dom/nodelist.c).
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
- GD:
|
|
||||||
. Added gdImageClone to bundled libgd. (David Carlier)
|
|
||||||
|
|
||||||
- Hash:
|
|
||||||
. Fixed bug GH-15742 (php_hash_sha.h incompatible with C++). (cmb)
|
|
||||||
|
|
||||||
- OpenSSL:
|
|
||||||
. Implement GH-13514 PASSWORD_ARGON2 from OpenSSL 3.2. (Remi)
|
|
||||||
|
|
||||||
- PDO:
|
|
||||||
. The internal header php_pdo_int.h is no longer installed; it is not
|
|
||||||
supposed to be used by PDO drivers. (cmb)
|
|
||||||
|
|
||||||
- PDO_Firebird:
|
|
||||||
. Fixed GH-15604 (Always make input parameters nullable). (sim1984)
|
|
||||||
|
|
||||||
- Reflection:
|
|
||||||
. Fixed bug GH-15718 (Segfault on ReflectionProperty::get{Hook,Hooks}() on
|
|
||||||
dynamic properties). (DanielEScherzer)
|
|
||||||
. Fixed bug GH-15694 (ReflectionProperty::isInitialized() is incorrect for
|
|
||||||
hooked properties). (ilutov)
|
|
||||||
|
|
||||||
- SOAP:
|
|
||||||
. Fixed bug #61525 (SOAP functions require at least one space after HTTP
|
|
||||||
header colon). (nielsdos)
|
|
||||||
. Implement request #47317 (SoapServer::__getLastResponse()). (nielsdos)
|
|
||||||
|
|
||||||
- Standard:
|
|
||||||
. Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c). (cmb)
|
|
||||||
. Implemented GH-15685 (improve proc_open error reporting on Windows). (cmb)
|
|
||||||
|
|
||||||
- Streams:
|
|
||||||
. Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated).
|
|
||||||
(cmb)
|
|
||||||
|
|
||||||
29 Aug 2024, PHP 8.4.0beta4
|
|
||||||
|
|
||||||
- Core:
|
|
||||||
. Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer).
|
|
||||||
(zeriyoshi)
|
|
||||||
. Fixed bug GH-15438 (Hooks on constructor promoted properties without
|
|
||||||
visibility are ignored). (ilutov)
|
|
||||||
. Fixed bug GH-15419 (Missing readonly+hook incompatibility check for readonly
|
|
||||||
classes). (ilutov)
|
|
||||||
. Fixed bug GH-15187 (Various hooked object iterator issues). (ilutov)
|
|
||||||
. Fixed bug GH-15456 (Crash in get_class_vars() on virtual properties).
|
|
||||||
(ilutov)
|
|
||||||
. Fixed bug GH-15501 (Windows HAVE_<header>_H macros defined to 1 or
|
|
||||||
undefined). (Peter Kokot)
|
|
||||||
. Fixed bug GH-15565 (--disable-ipv6 during compilation produces error
|
|
||||||
EAI_SYSTEM not found). (nielsdos)
|
|
||||||
. Implemented asymmetric visibility for properties. (ilutov)
|
|
||||||
|
|
||||||
- Curl:
|
|
||||||
. Added CURLOPT_PREREQFUNCTION Curl option to set a custom callback
|
|
||||||
after the connection is established, but before the request is
|
|
||||||
performed. (Ayesh Karunaratne)
|
|
||||||
. Added CURLOPT_SERVER_RESPONSE_TIMEOUT, which was formerly known as
|
|
||||||
CURLOPT_FTP_RESPONSE_TIMEOUT. (Ayesh Karunaratne)
|
|
||||||
|
|
||||||
- Date:
|
|
||||||
. Fixed bug GH-13773 (DatePeriod not taking into account microseconds for end
|
|
||||||
date). (Mark Bennewitz, Derick)
|
|
||||||
|
|
||||||
- DOM:
|
|
||||||
. Fixed bug GH-15551 (Segmentation fault (access null pointer) in
|
|
||||||
ext/dom/xml_common.h). (nielsdos)
|
|
||||||
. Fixed bug GH-15570 (Segmentation fault (access null pointer) in
|
|
||||||
ext/dom/html5_serializer.c). (nielsdos)
|
|
||||||
|
|
||||||
- FPM:
|
|
||||||
. Added memory peak to the scoreboard / status page. (Flávio Heleno)
|
|
||||||
|
|
||||||
- MySQLnd:
|
|
||||||
. Fixed bug GH-15432 (Heap corruption when querying a vector). (cmb,
|
|
||||||
Kamil Tekiela)
|
|
||||||
|
|
||||||
- Opcache:
|
|
||||||
. Fixed bug GH-15490 (Building of callgraph modifies preloaded symbols).
|
|
||||||
(ilutov)
|
|
||||||
. Fixed bug GH-15178 (Assertion in tracing JIT on hooks). (ilutov)
|
|
||||||
|
|
||||||
- PDO_MYSQL:
|
|
||||||
. mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT. (Appla)
|
|
||||||
|
|
||||||
- Session:
|
|
||||||
. Emit warnings for non-positive values of session.gc_divisor and negative values
|
|
||||||
of session.gc_probability. (Jorg Sowa)
|
|
||||||
|
|
||||||
- Standard:
|
|
||||||
. The "allowed_classes" option for unserialize() now throws TypeErrors and
|
|
||||||
ValueErrors if it is not an array of class names. (Girgias)
|
|
||||||
|
|
||||||
- Streams:
|
|
||||||
. Fixed bug GH-14930 (Custom stream wrapper dir_readdir output truncated to
|
|
||||||
255 characters in PHP 8.3). (Joe Cai)
|
|
||||||
|
|
||||||
|
|
||||||
15 Aug 2024, PHP 8.4.0beta3
|
|
||||||
|
|
||||||
- Core:
|
|
||||||
. Exiting a namespace now clears seen symbols. (ilutov)
|
|
||||||
. The exit (and die) language constructs now behave more like a function.
|
|
||||||
They can be passed liked callables, are affected by the strict_types
|
|
||||||
declare statement, and now perform the usual type coercions instead of
|
|
||||||
casting any non-integer value to a string.
|
|
||||||
As such, passing invalid types to exit/die may now result in a TypeError
|
|
||||||
being thrown. (Girgias)
|
|
||||||
|
|
||||||
- CURL:
|
|
||||||
. Added CURLOPT_TCP_KEEPCNT to set the number of probes to send before
|
|
||||||
dropping the connection. (David Carlier)
|
|
||||||
|
|
||||||
- Hash:
|
|
||||||
. Fix GH-15384 (Build fails on Alpine / Musl for amd64). (timwolla)
|
|
||||||
|
|
||||||
- Sockets:
|
|
||||||
. Added SO_BINDTOIFINDEX to bind a socket to an interface index.
|
|
||||||
(David Carlier)
|
|
||||||
|
|
||||||
- Standard:
|
|
||||||
. php_uname() now throws ValueErrors on invalid inputs. (Girgias)
|
|
||||||
|
|
||||||
15 Aug 2024, PHP 8.4.0beta1
|
|
||||||
|
|
||||||
- Core:
|
|
||||||
. Updated build system scripts config.guess to 2024-07-27 and config.sub to
|
|
||||||
2024-05-27. (Peter Kokot)
|
|
||||||
. Fixed bug GH-15240 (Infinite recursion in trait hook). (ilutov)
|
|
||||||
. Fixed bug GH-15140 (Missing variance check for abstract set with asymmetric
|
|
||||||
type). (ilutov)
|
|
||||||
. Fixed bug GH-15181 (Disabled output handler is flushed again). (cmb)
|
|
||||||
. Passing E_USER_ERROR to trigger_error() is now deprecated. (Girgias)
|
|
||||||
. Fixed bug GH-15292 (Dynamic AVX detection is broken for MSVC). (nielsdos)
|
|
||||||
. Using "_" as a class name is now deprecated. (Girgias)
|
|
||||||
|
|
||||||
- Curl:
|
|
||||||
. Added constants CURL_HTTP_VERSION_3 (libcurl 7.66) and CURL_HTTP_VERSION_3ONLY
|
|
||||||
(libcurl 7.88) as options for CURLOPT_HTTP_VERSION (Ayesh Karunaratne)
|
|
||||||
|
|
||||||
- Date:
|
|
||||||
. Constants SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING, and SUNFUNCS_RET_DOUBLE
|
|
||||||
are now deprecated. (Jorg Sowa)
|
|
||||||
|
|
||||||
- DBA:
|
|
||||||
. Passing null or false to dba_key_split() is deprecated. (Grigias)
|
|
||||||
|
|
||||||
- DOM:
|
|
||||||
. Fixed bug GH-15192 (Segmentation fault in dom extension
|
|
||||||
(html5_serializer)). (nielsdos)
|
|
||||||
. Deprecated DOM_PHP_ERR constant. (nielsdos)
|
|
||||||
. Removed DOMImplementation::getFeature(). (nielsdos)
|
|
||||||
. Fixed bug GH-15331 (Element::$substitutedNodeValue test failed). (nielsdos)
|
|
||||||
|
|
||||||
- Hash:
|
|
||||||
. Deprecated passing incorrect data types for options to ext/hash functions.
|
|
||||||
(nielsdos)
|
|
||||||
. Added SSE2 and SHA-NI implementation of SHA-256. (timwolla, Colin Percival,
|
|
||||||
Graham Percival)
|
|
||||||
|
|
||||||
- Mysqli:
|
|
||||||
. The mysqli_ping() function and mysqli::ping() method are now deprecated,
|
|
||||||
as the reconnect feature was removed in PHP 8.2. (Kamil Tekiela)
|
|
||||||
. The mysqli_kill() function and mysqli::kill() method are now deprecated.
|
|
||||||
If this functionality is needed a SQL "KILL" command can be used instead.
|
|
||||||
(Kamil Tekiela)
|
|
||||||
. The mysqli_refresh() function and mysqli::refresh() method are now deprecated.
|
|
||||||
If this functionality is needed a SQL "FLUSH" command can be used instead.
|
|
||||||
(Kamil Tekiela)
|
|
||||||
. Passing explicitly the $mode parameter to mysqli_store_result() has been
|
|
||||||
deprecated. As the MYSQLI_STORE_RESULT_COPY_DATA constant was only used in
|
|
||||||
conjunction with this function it has also been deprecated. (Girgias)
|
|
||||||
|
|
||||||
- PDO_Firebird:
|
|
||||||
. Support proper formatting of time zone types. (sim1984)
|
|
||||||
|
|
||||||
- PHPDBG:
|
|
||||||
. array out of bounds, stack overflow handled for segfault handler on windows.
|
|
||||||
(David Carlier)
|
|
||||||
|
|
||||||
- Random:
|
|
||||||
. lcg_value() is now deprecated. (timwolla)
|
|
||||||
|
|
||||||
- Readline:
|
|
||||||
. Fixed bug #51558 (Shared readline build fails). (Peter Kokot)
|
|
||||||
|
|
||||||
- Session:
|
|
||||||
. INI settings session.sid_length and session.sid_bits_per_character are now
|
|
||||||
deprecated. (timwolla)
|
|
||||||
|
|
||||||
- SOAP:
|
|
||||||
. Passing an int to SoapServer::addFunction() is now deprecated.
|
|
||||||
If all PHP functions need to be provided flatten the array returned by
|
|
||||||
get_defined_functions(). (Girgias)
|
|
||||||
. The SOAP_FUNCTIONS_ALL constant is now deprecated. (Girgias)
|
|
||||||
|
|
||||||
- Sockets:
|
|
||||||
. Added IP_PORTRANGE* constants for BSD systems to control ephemeral port
|
|
||||||
ranges. (David Carlier)
|
|
||||||
. Added SOCK_NONBLOCK/SOCK_CLOEXEC constants for socket_create and
|
|
||||||
socket_create_pair to apply O_NONBLOCK/O_CLOEXEC flags to the
|
|
||||||
newly created sockets. (David Carlier)
|
|
||||||
|
|
||||||
- SPL:
|
|
||||||
. The SplFixedArray::__wakeup() method has been deprecated as it implements
|
|
||||||
__serialize() and __unserialize() which need to be overwritten instead.
|
|
||||||
(TysonAndre)
|
|
||||||
. Passing a non-empty string for the $escape parameter of:
|
|
||||||
- SplFileObject::setCsvControl()
|
|
||||||
- SplFileObject::fputcsv()
|
|
||||||
- SplFileObject::fgetcsv()
|
|
||||||
is now deprecated. (Girgias)
|
|
||||||
|
|
||||||
- Standard:
|
|
||||||
. Unserializing the uppercase 'S' tag is now deprecated. (timwolla)
|
|
||||||
. Enables crc32 auxiliary detection on OpenBSD. (David Carlier)
|
|
||||||
. Passing a non-empty string for the $escape parameter of:
|
|
||||||
- fputcsv()
|
|
||||||
- fgetcsv()
|
|
||||||
- str_getcsv()
|
|
||||||
is now deprecated. (Girgias)
|
|
||||||
. The str_getcsv() function now throws ValueErrors when the $separator and
|
|
||||||
$enclosure arguments are not one byte long, or if the $escape is not one
|
|
||||||
byte long or the empty string. This aligns the behaviour to be identical
|
|
||||||
to that of fputcsv() and fgetcsv(). (Girgias)
|
|
||||||
|
|
||||||
- Streams:
|
|
||||||
. Implemented GH-15155 (Stream context is lost when custom stream wrapper is
|
|
||||||
being filtered). (Quentin Dreyer)
|
|
||||||
|
|
||||||
- XML:
|
|
||||||
. The xml_set_object() function has been deprecated. (Girgias)
|
|
||||||
. Passing non-callable strings to the xml_set_*_handler() functions is now
|
|
||||||
deprecated. (Girgias)
|
|
||||||
|
|
||||||
01 Aug 2024, PHP 8.4.0alpha4
|
|
||||||
|
|
||||||
- GMP:
|
|
||||||
. RFC: Change GMP bool cast behavior. (Saki Takamachi)
|
|
||||||
|
|
||||||
01 Aug 2024, PHP 8.4.0alpha3
|
|
||||||
|
|
||||||
- Core:
|
|
||||||
. Fix GH-14978 (The xmlreader extension phpize build). (Peter Kokot)
|
|
||||||
. Throw Error exception when encountering recursion during comparison, rather
|
|
||||||
than fatal error. (ilutov)
|
|
||||||
. Added missing cstddef include for C++ builds. (cmb)
|
|
||||||
. Fixed bug GH-15108 (Segfault when destroying generator during shutdown).
|
|
||||||
(Arnaud)
|
|
||||||
. Fixed bug GH-15275 (Crash during GC of suspended generator delegate).
|
|
||||||
(Arnaud)
|
|
||||||
|
|
||||||
- BCMath:
|
|
||||||
. Adjust bcround()'s $mode parameter to only accept the RoundingMode
|
|
||||||
enum. (timwolla, saki)
|
|
||||||
|
|
||||||
- DOM:
|
|
||||||
. Fix trampoline leak in xpath callables. (nielsdos)
|
|
||||||
. Throw instead of silently failing when creating a too long text node in
|
|
||||||
(DOM)ParentNode and (DOM)ChildNode. (nielsdos)
|
|
||||||
|
|
||||||
- FPM:
|
|
||||||
. /dev/poll events.mechanism for Solaris/Illumos setting had been retired.
|
|
||||||
(David Carlier)
|
|
||||||
|
|
||||||
- GMP:
|
|
||||||
. The GMP class is now final and cannot be extended anymore. (Girgias)
|
|
||||||
|
|
||||||
- Intl:
|
|
||||||
. Added SpoofChecker::setAllowedChars to set unicode chars ranges.
|
|
||||||
(David Carlier)
|
|
||||||
. Fixed bug GH-15087 (IntlChar::foldCase()'s $option is not optional). (cmb)
|
|
||||||
|
|
||||||
- Opcache:
|
|
||||||
. Fixed bug GH-13775 (Memory leak possibly related to opcache SHM placement).
|
|
||||||
(Arnaud, nielsdos)
|
|
||||||
|
|
||||||
- OpenSSL:
|
|
||||||
. Bumped minimum required OpenSSL version to 1.1.0. (cmb)
|
|
||||||
|
|
||||||
- PDO_FIREBIRD:
|
|
||||||
. Added Pdo\Firebird::ATTR_API_VERSION. (SakiTakamachi)
|
|
||||||
. Added getApiVersion() and removed from getAttribute().
|
|
||||||
(SakiTakamachi)
|
|
||||||
. Supported Firebird 4.0 datatypes. (sim1984)
|
|
||||||
|
|
||||||
- PGSQL:
|
|
||||||
. pg_convert/pg_insert/pg_update/pg_delete ; regexes are now cached.
|
|
||||||
(David Carlier)
|
|
||||||
|
|
||||||
- Random:
|
|
||||||
. Fixed bug GH-15094 (php_random_default_engine() is not C++ conforming).
|
|
||||||
(cmb)
|
|
||||||
|
|
||||||
- Readline:
|
|
||||||
. Fixed readline_info, rl_line_buffer_length/rl_len globals on update.
|
|
||||||
(David Carlier)
|
|
||||||
|
|
||||||
- Standard:
|
|
||||||
. Fix references in request_parse_body() options array. (nielsdos)
|
|
||||||
. Add RoundingMode enum. (timwolla, saki)
|
|
||||||
|
|
||||||
- Tidy:
|
|
||||||
. Failures in the constructor now throw exceptions rather than emitting
|
|
||||||
warnings and having a broken object. (nielsdos)
|
|
||||||
. Add tidyNode::getNextSibling() and tidyNode::getPreviousSibling().
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
- XMLReader:
|
|
||||||
. Fixed bug GH-15123 (var_dump doesn't actually work on XMLReader).
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
- XSL:
|
|
||||||
. Fix trampoline leak in xpath callables. (nielsdos)
|
|
||||||
|
|
||||||
18 Jul 2024, PHP 8.4.0alpha2
|
|
||||||
|
|
||||||
- Core:
|
|
||||||
. Fixed bug GH-14801 (Fix build for armv7). (andypost)
|
|
||||||
. Implemented property hooks RFC. (ilutov)
|
|
||||||
|
|
||||||
- DOM:
|
|
||||||
. Improve support for template elements. (nielsdos)
|
|
||||||
|
|
||||||
- GD:
|
|
||||||
. Check overflow/underflow for imagescale/imagefilter. (David Carlier)
|
|
||||||
|
|
||||||
- LibXML:
|
|
||||||
. Added LIBXML_NO_XXE constant. (nielsdos)
|
|
||||||
|
|
||||||
- Opcache:
|
|
||||||
. Fixed bug GH-14873 (PHP 8.4 min function fails on typed integer).
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
- PDO:
|
|
||||||
. Fixed bug GH-14792 (Compilation failure on pdo_* extensions).
|
|
||||||
(Peter Kokot)
|
|
||||||
|
|
||||||
- Standard:
|
|
||||||
. Change highlight_string() and print_r() return type to string|true. (Ayesh)
|
|
||||||
|
|
||||||
- Windows:
|
|
||||||
. Update the icon of the Windows executables, e.g. php.exe. (Ayesh,
|
|
||||||
Nurudin Imširović)
|
|
||||||
|
|
||||||
- XML:
|
|
||||||
. Fixed bug #81481 (xml_get_current_byte_index limited to 32-bit numbers on
|
|
||||||
64-bit builds). (nielsdos)
|
|
||||||
|
|
||||||
04 Jul 2024, PHP 8.4.0alpha1
|
|
||||||
|
|
||||||
- BCMath:
|
|
||||||
. [RFC] Add bcfloor, bcceil and bcround to BCMath. (Saki Takamachi)
|
|
||||||
. Improve performance. (Saki Takamachi, nielsdos)
|
|
||||||
|
|
||||||
- Core:
|
|
||||||
. Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD,
|
|
||||||
Solaris and Haiku. (David Carlier)
|
|
||||||
. Enabled ifunc checks on FreeBSD from the 12.x releases. (Freaky)
|
|
||||||
. Changed the type of PHP_DEBUG and PHP_ZTS constants to bool. (haszi)
|
|
||||||
. Fixed bug GH-13142 (Undefined variable name is shortened when contains \0).
|
|
||||||
(nielsdos)
|
|
||||||
. Fixed bug GH-13178 (Iterator positions incorrect when converting packed
|
|
||||||
array to hashed). (ilutov)
|
|
||||||
. Fixed zend fiber build for solaris default mode (32 bits). (David Carlier)
|
|
||||||
. Fixed zend call stack size for macOs/arm64. (David Carlier)
|
|
||||||
. Added support for Zend Max Execution Timers on FreeBSD. (Kévin Dunglas)
|
|
||||||
. Ensure fiber stack is not backed by THP. (crrodriguez)
|
|
||||||
. Implement GH-13609 (Dump wrapped object in WeakReference class). (nielsdos)
|
|
||||||
. Added sparc64 arch assembly support for zend fiber. (Claudio Jeker)
|
|
||||||
. Fixed GH-13581 no space available for TLS on NetBSD. (Paul Ripke)
|
|
||||||
. Added fiber Sys-V loongarch64 support. (qiangxuhui)
|
|
||||||
. Adjusted closure names to include the parent function's name. (timwolla)
|
|
||||||
. Improve randomness of uploaded file names and files created by tempnam().
|
|
||||||
(Arnaud)
|
|
||||||
. Added gc and shutdown callbacks to zend_mm custom handlers.
|
|
||||||
(Florian Engelhardt)
|
|
||||||
. Fixed bug GH-14650 (Compute the size of pages before allocating memory).
|
|
||||||
(Julien Voisin)
|
|
||||||
. Fixed bug GH-11928 (The --enable-re2c-cgoto doesn't add the -g flag).
|
|
||||||
(Peter Kokot)
|
|
||||||
. Added the #[\Deprecated] attribute. (beberlei, timwolla)
|
|
||||||
. Fixed GH-11389 (Allow suspending fibers in destructors). (Arnaud, trowski)
|
|
||||||
|
|
||||||
- Curl:
|
|
||||||
. Deprecated the CURLOPT_BINARYTRANSFER constant. (divinity76)
|
|
||||||
. Bumped required libcurl version to 7.61.0. (Ayesh)
|
|
||||||
. Added feature_list key to the curl_version() return value. (Ayesh)
|
|
||||||
|
|
||||||
- Date:
|
|
||||||
. Added DateTime[Immutable]::createFromTimestamp. (Marc Bennewitz)
|
|
||||||
. Added DateTime[Immutable]::[get|set]Microsecond. (Marc Bennewitz)
|
|
||||||
|
|
||||||
- DOM:
|
|
||||||
. Added DOMNode::compareDocumentPosition(). (nielsdos)
|
|
||||||
. Implement #53655 (Improve speed of DOMNode::C14N() on large XML documents).
|
|
||||||
(nielsdos)
|
|
||||||
. Fix cloning attribute with namespace disappearing namespace. (nielsdos)
|
|
||||||
. Implement DOM HTML5 parsing and serialization RFC. (nielsdos)
|
|
||||||
. Fix DOMElement->prefix with empty string creates bogus prefix. (nielsdos)
|
|
||||||
. Handle OOM more consistently. (nielsdos)
|
|
||||||
. Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos)
|
|
||||||
. Added DOMXPath::quote() static method. (divinity76)
|
|
||||||
. Implemented opt-in ext/dom spec compliance RFC. (nielsdos)
|
|
||||||
. Fixed bug #79701 (getElementById does not correctly work with duplicate
|
|
||||||
definitions). (nielsdos)
|
|
||||||
. Implemented "New ext-dom features in PHP 8.4" RFC. (nielsdos)
|
|
||||||
. Fixed GH-14698 (segfault on DOM node dereference). (David Carlier)
|
|
||||||
|
|
||||||
- Fileinfo:
|
|
||||||
. Update to libmagic 5.45. (nielsdos)
|
|
||||||
. Fixed bug #65106 (PHP fails to compile ext/fileinfo). (Guillaume Outters)
|
|
||||||
|
|
||||||
- FPM:
|
|
||||||
. Implement GH-12385 (flush headers without body when calling flush()).
|
|
||||||
(nielsdos)
|
|
||||||
. Added DragonFlyBSD system to the list which set FPM_BACKLOG_DEFAULT
|
|
||||||
to SOMAXCONN. (David Carlier)
|
|
||||||
|
|
||||||
- FTP:
|
|
||||||
. Removed the deprecated inet_ntoa call support. (David Carlier)
|
|
||||||
. Fixed bug #63937 (Upload speed 10 times slower with PHP). (nielsdos)
|
|
||||||
|
|
||||||
- GD:
|
|
||||||
. Fix parameter numbers and missing alpha check for imagecolorset().
|
|
||||||
(Giovanni Giacobbi)
|
|
||||||
. imagepng/imagejpeg/imagewep/imageavif now throw an exception on
|
|
||||||
invalid quality parameter. (David Carlier)
|
|
||||||
|
|
||||||
- Gettext:
|
|
||||||
. bind_textdomain_codeset, textdomain and d(*)gettext functions
|
|
||||||
now throw an exception on empty domain. (David Carlier)
|
|
||||||
|
|
||||||
- Hash:
|
|
||||||
. Changed return type of hash_update() to true. (nielsdos)
|
|
||||||
. Added HashContext::__debugInfo(). (timwolla)
|
|
||||||
|
|
||||||
- IMAP:
|
|
||||||
. Moved to PECL. (Derick Rethans)
|
|
||||||
|
|
||||||
- Intl:
|
|
||||||
. Added IntlDateFormatter::PATTERN constant. (David Carlier)
|
|
||||||
. Fixed Numberformatter::__construct when the locale is invalid, now
|
|
||||||
throws an exception. (David Carlier)
|
|
||||||
. Added NumberFormatter::ROUND_TOWARD_ZERO and ::ROUND_AWAY_FROM_ZERO as
|
|
||||||
aliases for ::ROUND_DOWN and ::ROUND_UP. (Jorg Sowa)
|
|
||||||
. Added NumberFormatter::ROUND_HALFODD. (Ayesh Karunaratne)
|
|
||||||
. Added PROPERTY_IDS_UNARY_OPERATOR, PROPERTY_ID_COMPAT_MATH_START and
|
|
||||||
PROPERTY_ID_COMPAT_MATH_CONTINUE constants. (David Carlier)
|
|
||||||
. Added IntlDateFormatter::getIanaID/intltz_get_iana_id method/function.
|
|
||||||
(David Carlier)
|
|
||||||
. Set to C++17 standard for icu 74 and onwards. (David Carlier)
|
|
||||||
. resourcebundle_get(), ResourceBundle::get(), and accessing offsets on a
|
|
||||||
ResourceBundle object now throw:
|
|
||||||
- TypeError for invalid offset types
|
|
||||||
- ValueError for an empty string
|
|
||||||
- ValueError if the integer index does not fit in a signed 32 bit integer
|
|
||||||
. ResourceBundle::get() now has a tentative return type of:
|
|
||||||
ResourceBundle|array|string|int|null
|
|
||||||
. Added the new Grapheme function grapheme_str_split. (youkidearitai)
|
|
||||||
. Added IntlDateFormatter::parseToCalendar. (David Carlier)
|
|
||||||
|
|
||||||
- LDAP:
|
|
||||||
. Added LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3
|
|
||||||
constants. (StephenWall)
|
|
||||||
|
|
||||||
- LibXML:
|
|
||||||
. Added LIBXML_RECOVER constant. (nielsdos)
|
|
||||||
. libxml_set_streams_context() now throws immediately on an invalid context
|
|
||||||
instead of at the use-site. (nielsdos)
|
|
||||||
|
|
||||||
- MBString:
|
|
||||||
. Added mb_trim, mb_ltrim and mb_rtrim. (Yuya Hamada)
|
|
||||||
. Added mb_ucfirst and mb_lcfirst. (Yuya Hamada)
|
|
||||||
. Updated Unicode data tables to Unicode 15.1. (Ayesh Karunaratne)
|
|
||||||
|
|
||||||
- MySQLnd:
|
|
||||||
. Fixed bug GH-13440 (PDO quote bottleneck). (nielsdos)
|
|
||||||
. Fixed bug GH-10599 (Apache crash on Windows when using a self-referencing
|
|
||||||
anonymous function inside a class with an active mysqli connection).
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
- Opcache:
|
|
||||||
. Added large shared segments support for FreeBSD. (David Carlier)
|
|
||||||
. If JIT is enabled, PHP will now exit with a fatal error on startup in case
|
|
||||||
of JIT startup initialization issues. (danog)
|
|
||||||
. Increased the maximum value of opcache.interned_strings_buffer to 32767 on
|
|
||||||
64bit archs. (Arnaud)
|
|
||||||
. Fixed bug GH-13834 (Applying non-zero offset 36 to null pointer in
|
|
||||||
zend_jit.c). (nielsdos)
|
|
||||||
. Fixed bug GH-14361 (Deep recursion in zend_cfg.c causes segfault).
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
- OpenSSL:
|
|
||||||
. Fixed bug #80269 (OpenSSL sets Subject wrong with extraattribs parameter).
|
|
||||||
(Jakub Zelenka)
|
|
||||||
. Implement request #48520 (openssl_csr_new - allow multiple values in DN).
|
|
||||||
(Jakub Zelenka)
|
|
||||||
. Introduced new serial_hex parameter to openssl_csr_sign. (Jakub Zelenka,
|
|
||||||
Florian Sowade)
|
|
||||||
. Added X509_PURPOSE_OCSP_HELPER and X509_PURPOSE_TIMESTAMP_SIGN constants.
|
|
||||||
(Vincent Jardin)
|
|
||||||
. Bumped minimum required OpenSSL version to 1.1.1. (Ayesh Karunaratne)
|
|
||||||
. Added compile-time option --with-openssl-legacy-provider to enable legacy
|
|
||||||
provider. (Adam Saponara)
|
|
||||||
. Added support for Curve25519 + Curve448 based keys. (Manuel Mausz)
|
|
||||||
. Fixed bug GH-13343 (openssl_x509_parse should not allow omitted seconds in
|
|
||||||
UTCTimes). (Jakub Zelenka)
|
|
||||||
|
|
||||||
- Output:
|
|
||||||
. Clear output handler status flags during handler initialization. (haszi)
|
|
||||||
. Fixed bug with url_rewriter.hosts not used by output_add_rewrite_var().
|
|
||||||
(haszi)
|
|
||||||
|
|
||||||
- PCNTL:
|
|
||||||
. Added pcntl_setns for Linux. (David Carlier)
|
|
||||||
. Added pcntl_getcpuaffinity/pcntl_setcpuaffinity. (David Carlier)
|
|
||||||
. Updated pcntl_get_signal_handler signal id upper limit to be
|
|
||||||
more in line with platforms limits. (David Carlier)
|
|
||||||
. Added pcntl_getcpu for Linux/FreeBSD/Solaris/Illumos. (David Carlier)
|
|
||||||
. Added pcntl_getqos_class/pcntl_setqos_class for macOs. (David Carlier)
|
|
||||||
. Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD. (David Carlier)
|
|
||||||
. Added FreeBSD's SIGTRAP handling to pcntl_siginfo_to_zval. (David Carlier)
|
|
||||||
. Added POSIX pcntl_waitid. (Vladimir Vrzić)
|
|
||||||
|
|
||||||
- PCRE:
|
|
||||||
. Upgrade bundled pcre2lib to version 10.43. (nielsdos)
|
|
||||||
. Add "/r" modifier. (Ayesh)
|
|
||||||
. Upgrade bundled pcre2lib to version 10.44. (Ayesh)
|
|
||||||
|
|
||||||
- PDO:
|
|
||||||
. Fixed setAttribute and getAttribute. (SakiTakamachi)
|
|
||||||
. Implemented PDO driver-specific subclasses RFC. (danack, kocsismate)
|
|
||||||
. Added support for PDO driver-specific SQL parsers. (Matteo Beccati)
|
|
||||||
|
|
||||||
- PDO_DBLIB:
|
|
||||||
. Fixed setAttribute and getAttribute. (SakiTakamachi)
|
|
||||||
. Added class Pdo\DbLib. (danack, kocsismate)
|
|
||||||
|
|
||||||
- PDO_FIREBIRD:
|
|
||||||
. Fixed setAttribute and getAttribute. (SakiTakamachi)
|
|
||||||
. Feature: Add transaction isolation level and mode settings to pdo_firebird.
|
|
||||||
(SakiTakamachi)
|
|
||||||
. Added class Pdo\Firebird. (danack, kocsismate)
|
|
||||||
|
|
||||||
- PDO_MYSQL:
|
|
||||||
. Fixed setAttribute and getAttribute. (SakiTakamachi)
|
|
||||||
. Added class Pdo\Mysql. (danack, kocsismate)
|
|
||||||
. Added custom SQL parser. (Matteo Beccati)
|
|
||||||
|
|
||||||
- PDO_ODBC:
|
|
||||||
. Added class Pdo\Odbc. (danack, kocsismate)
|
|
||||||
|
|
||||||
- PDO_PGSQL:
|
|
||||||
. Fixed GH-12423, DSN credentials being prioritized over the user/password
|
|
||||||
PDO constructor arguments. (SakiTakamachi)
|
|
||||||
. Fixed native float support with pdo_pgsql query results. (Yurunsoft)
|
|
||||||
. Added class Pdo\Pgsql. (danack, kocsismate)
|
|
||||||
. Retrieve the memory usage of the query result resource. (KentarouTakeda)
|
|
||||||
. Added Pdo\Pgsql::setNoticeCallBack method to receive DB notices.
|
|
||||||
(outtersg)
|
|
||||||
. Added custom SQL parser. (Matteo Beccati)
|
|
||||||
|
|
||||||
- PDO_SQLITE:
|
|
||||||
. Added class Pdo\Sqlite. (danack, kocsismate)
|
|
||||||
. Fixed bug #81227 (PDO::inTransaction reports false when in transaction).
|
|
||||||
(nielsdos)
|
|
||||||
. Added custom SQL parser. (Matteo Beccati)
|
|
||||||
|
|
||||||
- PGSQL:
|
|
||||||
. Added the possibility to have no conditions for pg_select. (OmarEmaraDev)
|
|
||||||
. Persistent connections support the PGSQL_CONNECT_FORCE_RENEW flag.
|
|
||||||
(David Carlier)
|
|
||||||
. Added pg_result_memory_size to get the query result memory usage.
|
|
||||||
(KentarouTakeda)
|
|
||||||
. Added pg_change_password to alter an user's password. (David Carlier)
|
|
||||||
. Added pg_put_copy_data/pg_put_copy_end to send COPY commands and signal
|
|
||||||
the end of the COPY. (David Carlier)
|
|
||||||
. Added pg_socket_poll to poll on the connection. (David Carlier)
|
|
||||||
. Added pg_jit to get infos on server JIT support. (David Carlier)
|
|
||||||
. Added pg_set_chunked_rows_size to fetch results per chunk. (David Carlier)
|
|
||||||
|
|
||||||
- Phar:
|
|
||||||
. Fixed bug GH-12532 (PharData created from zip has incorrect timestamp).
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
- POSIX:
|
|
||||||
. Added POSIX_SC_CHILD_MAX and POSIX_SC_CLK_TCK constants. (Jakub Zelenka)
|
|
||||||
. Updated posix_isatty to set the error number on file descriptors.
|
|
||||||
(David Carlier)
|
|
||||||
|
|
||||||
- PSpell:
|
|
||||||
. Moved to PECL. (Derick Rethans)
|
|
||||||
|
|
||||||
- Reflection:
|
|
||||||
. Implement GH-12908 (Show attribute name/class in ReflectionAttribute dump).
|
|
||||||
(nielsdos)
|
|
||||||
. Make ReflectionGenerator::getFunction() legal after generator termination.
|
|
||||||
(timwolla)
|
|
||||||
. Added ReflectionGenerator::isClosed(). (timwolla)
|
|
||||||
|
|
||||||
- SimpleXML:
|
|
||||||
. Fixed bug GH-12192 (SimpleXML infinite loop when getName() is called
|
|
||||||
within foreach). (nielsdos)
|
|
||||||
. Fixed bug GH-12208 (SimpleXML infinite loop when a cast is used inside a
|
|
||||||
foreach). (nielsdos)
|
|
||||||
. Fixed bug #55098 (SimpleXML iteration produces infinite loop). (nielsdos)
|
|
||||||
. Fix signature of simplexml_import_dom(). (nielsdos)
|
|
||||||
|
|
||||||
- Sockets:
|
|
||||||
. Added multicast group support for ipv4 on FreeBSD. (jonathan@tangential.ca)
|
|
||||||
. Added the TCP_SYNCNT constant for Linux to set number of attempts to send
|
|
||||||
SYN packets from the client. (David Carlier)
|
|
||||||
. Added the SO_EXCLBIND constant for exclusive socket binding on illumos/solaris.
|
|
||||||
(David Carlier)
|
|
||||||
. Updated the socket_create_listen backlog argument default value to SOMAXCONN.
|
|
||||||
(David Carlier)
|
|
||||||
. Added the SO_NOSIGPIPE constant to control the generation of SIGPIPE for
|
|
||||||
macOs and FreeBSD. (David Carlier)
|
|
||||||
. Added SO_LINGER_SEC for macOs, true equivalent of SO_LINGER in other platforms.
|
|
||||||
(David Carlier)
|
|
||||||
. Add close-on-exec on socket created with socket_accept on unixes. (David Carlier)
|
|
||||||
|
|
||||||
- SNMP:
|
|
||||||
. Removed the deprecated inet_ntoa call support. (David Carlier)
|
|
||||||
|
|
||||||
- SOAP:
|
|
||||||
. Add support for clark notation for namespaces in class map. (lxShaDoWxl)
|
|
||||||
. Mitigate #51561 (SoapServer with a extented class and using sessions,
|
|
||||||
lost the setPersistence()). (nielsdos)
|
|
||||||
. Fixed bug #49278 (SoapClient::__getLastResponseHeaders returns NULL if
|
|
||||||
wsdl operation !has output). (nielsdos)
|
|
||||||
. Fixed bug #44383 (PHP DateTime not converted to xsd:datetime). (nielsdos)
|
|
||||||
. Fixed bug GH-11941 (soap with session persistence will silently fail when
|
|
||||||
"session" built as a shared object). (nielsdos)
|
|
||||||
|
|
||||||
- Sockets:
|
|
||||||
. Removed the deprecated inet_ntoa call support. (David Carlier)
|
|
||||||
. Added the SO_EXECLUSIVEADDRUSE windows constant. (David Carlier)
|
|
||||||
. Added the SOCK_CONN_DGRAM/SOCK_DCCP netbsd constants. (David Carlier)
|
|
||||||
|
|
||||||
- Sodium:
|
|
||||||
. Add support for AEGIS-128L and AEGIS-256. (jedisct1)
|
|
||||||
. Enable AES-GCM on aarch64 with the ARM crypto extensions. (jedisct1)
|
|
||||||
|
|
||||||
- SPL:
|
|
||||||
. Implement SeekableIterator for SplObjectStorage. (nielsdos)
|
|
||||||
|
|
||||||
- Standard:
|
|
||||||
. Implement GH-12188 (Indication for the int size in phpinfo()). (timwolla)
|
|
||||||
. Partly fix GH-12143 (Incorrect round() result for 0.49999999999999994).
|
|
||||||
(timwolla)
|
|
||||||
. Fix GH-12252 (round(): Validate the rounding mode). (timwolla)
|
|
||||||
. Increase the default BCrypt cost to 12. (timwolla)
|
|
||||||
. Fixed bug GH-12592 (strcspn() odd behaviour with NUL bytes and empty mask).
|
|
||||||
(nielsdos)
|
|
||||||
. Removed the deprecated inet_ntoa call support. (David Carlier)
|
|
||||||
. Cast large floats that are within int range to int in number_format so
|
|
||||||
the precision is not lost. (Marc Bennewitz)
|
|
||||||
. Add support for 4 new rounding modes to the round() function. (Jorg Sowa)
|
|
||||||
. debug_zval_dump() now indicates whether an array is packed. (Max Semenik)
|
|
||||||
. Fix GH-12143 (Optimize round). (SakiTakamachi)
|
|
||||||
. Changed return type of long2ip to string from string|false. (Jorg Sowa)
|
|
||||||
. Fix GH-12143 (Extend the maximum precision round can handle by one digit).
|
|
||||||
(SakiTakamachi)
|
|
||||||
. Added the http_get_last_response_headers() and
|
|
||||||
http_clear_last_response_headers() that allows retrieving the same content
|
|
||||||
as the magic $http_response_header variable.
|
|
||||||
. Add php_base64_encode_ex() API. (Remi)
|
|
||||||
. Implemented "Raising zero to the power of negative number" RFC. (Jorg Sowa)
|
|
||||||
. Added array_find(), array_find_key(), array_all(), and array_any(). (josh)
|
|
||||||
|
|
||||||
- XML:
|
|
||||||
. Added XML_OPTION_PARSE_HUGE parser option. (nielsdos)
|
|
||||||
|
|
||||||
- XMLReader:
|
|
||||||
. Declares class constant types. (Ayesh)
|
|
||||||
. Add XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(). (nielsdos)
|
|
||||||
|
|
||||||
- XMLWriter:
|
|
||||||
. Add XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory(). (nielsdos)
|
|
||||||
|
|
||||||
- XSL:
|
|
||||||
. Implement request #64137 (XSLTProcessor::setParameter() should allow both
|
|
||||||
quotes to be used). (nielsdos)
|
|
||||||
. Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos)
|
|
||||||
. Added XSLTProcessor::$maxTemplateDepth and XSLTProcessor::$maxTemplateVars.
|
|
||||||
(nielsdos)
|
|
||||||
|
|
||||||
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
|
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
PHP 8.4 INTERNALS UPGRADE NOTES
|
PHP 8.5 INTERNALS UPGRADE NOTES
|
||||||
|
|
||||||
1. Internal API changes
|
1. Internal API changes
|
||||||
|
|
||||||
@ -14,411 +14,18 @@ PHP 8.4 INTERNALS UPGRADE NOTES
|
|||||||
1. Internal API changes
|
1. Internal API changes
|
||||||
========================
|
========================
|
||||||
|
|
||||||
* zend_register_module_ex() now takes an additional int module_type argument.
|
|
||||||
This function will also assign the module number and type, there is no need
|
|
||||||
to do this at the call site anymore. Writing the handle should happen after
|
|
||||||
successful registration.
|
|
||||||
|
|
||||||
* ZPP now accepts a F or Z_PARAM_FUNC_NO_TRAMPOLINE_FREE type check.
|
|
||||||
This is identical to the 'f' or Z_PARAM_FUNC type check, except the FCC is
|
|
||||||
always initialized because it doesn't free trampolines.
|
|
||||||
Trampolines MUST be freed using zend_release_fcall_info_cache() or consumed.
|
|
||||||
Z_PARAM_FUNC_EX2 was added as well with the same arguments as Z_PARAM_FUNC_EX
|
|
||||||
plus an additional argument free_trampoline.
|
|
||||||
|
|
||||||
* The zend_object_iterator_funcs valid member has changed its signature from
|
|
||||||
int(*)(zend_object_iterator *) to zend_result(*)(zend_object_iterator *) to
|
|
||||||
be more in line with what callbacks are returning.
|
|
||||||
|
|
||||||
* The backwards compatibility headers ext/standard/{php_lcg.h,php_mt_rand.h,
|
|
||||||
php_rand.h,php_random.h} have been removed. Include ext/random/php_random.h
|
|
||||||
directly.
|
|
||||||
|
|
||||||
* The zend_*printf family of functions now supports the "%S" modifier to print
|
|
||||||
out zend_string*. This won't cut off the string if it embeds a NUL byte.
|
|
||||||
|
|
||||||
* The inet_aton() and win32/inet.h have been removed. Use platform-agnostic
|
|
||||||
inet_pton() from arpa/inet.h or ws2tcpip.h on Windows.
|
|
||||||
|
|
||||||
* zend_mm_set_custom_debug_handlers() has been removed from ZendMM, use
|
|
||||||
zend_mm_set_custom_handlers() instead which now supports DEBUG builds
|
|
||||||
|
|
||||||
* zend_mm_set_custom_handlers() has changed its signature from
|
|
||||||
void()(zend_mm_heap *heap,
|
|
||||||
void* (*_malloc)(size_t),
|
|
||||||
void (*_free)(void*),
|
|
||||||
void* (*_realloc)(void*, size_t))
|
|
||||||
to
|
|
||||||
void()(zend_mm_heap *heap,
|
|
||||||
void* (*_malloc)(size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC),
|
|
||||||
void (*_free)(void* ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC),
|
|
||||||
void* (*_realloc)(void*, size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC))
|
|
||||||
|
|
||||||
* zend_mm_get_custom_handlers() has changed its signature from
|
|
||||||
void()(zend_mm_heap *heap,
|
|
||||||
void* (**_malloc)(size_t),
|
|
||||||
void (**_free)(void*),
|
|
||||||
void* (**_realloc)(void*, size_t))
|
|
||||||
to
|
|
||||||
void()(zend_mm_heap *heap,
|
|
||||||
void* (**_malloc)(size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC),
|
|
||||||
void (**_free)(void* ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC),
|
|
||||||
void* (**_realloc)(void*, size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC))
|
|
||||||
|
|
||||||
* Added gc and shutdown custom handlers, settable via
|
|
||||||
zend_mm_set_custom_handlers_ex()
|
|
||||||
|
|
||||||
* __zend_malloc() has changed their signature from
|
|
||||||
void(*)(size_t) to
|
|
||||||
void(*)(size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
|
|
||||||
|
|
||||||
* __zend_calloc() has changed their signature from
|
|
||||||
void(*)(size_t, size_t) to
|
|
||||||
void(*)(size_t, size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
|
|
||||||
|
|
||||||
* __zend_realloc() has changed their signature from
|
|
||||||
void(*)(void *, size_t) to
|
|
||||||
void(*)(void *, size_t ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
|
|
||||||
|
|
||||||
* zend_observer_remove_begin_handler() and zend_observer_remove_end_handler()
|
|
||||||
got each a new parameter returning an observer which must be called, if the
|
|
||||||
removal happened during observer execution.
|
|
||||||
|
|
||||||
* zend_get_internal_function_extension_handle[s]() must now be used over
|
|
||||||
zend_get_op_array_extension_handle[s]() when registering run_time_cache slots
|
|
||||||
for internal functions. If you need a cache slot for both internal and user
|
|
||||||
functions, you may obtain a slot for each through the corresponding function.
|
|
||||||
|
|
||||||
* zend_is_true now returns bool rather than int. Note that on PHP 8 this has
|
|
||||||
always returned 0 or 1, so conversion should be trivial.
|
|
||||||
|
|
||||||
* Added zend_hash_get_current_pos_ex() variant of zend_hash_get_current_pos().
|
|
||||||
|
|
||||||
* Renamed rebuild_object_properties() to rebuild_object_properties_internal().
|
|
||||||
This function should not be used outside of zend_std_get_properties_ex() and
|
|
||||||
zend_std_get_properties(). Use zend_std_get_properties_ex() or
|
|
||||||
zend_std_get_properties() instead.
|
|
||||||
|
|
||||||
* zend_object.properties must not be accessed directly. Use
|
|
||||||
zend_std_get_properties_ex() instead.
|
|
||||||
|
|
||||||
* Removed IS_STATIC_VAR_UNINITIALIZED constant. Check for IS_NULL in the
|
|
||||||
static_variables array instead.
|
|
||||||
|
|
||||||
* Removed ZEND_DIM_ALTERNATIVE_SYNTAX constant. This syntax no longer has a
|
|
||||||
specialized error message.
|
|
||||||
|
|
||||||
========================
|
========================
|
||||||
2. Build system changes
|
2. Build system changes
|
||||||
========================
|
========================
|
||||||
|
|
||||||
a. Abstract
|
|
||||||
- The configure option --with-imap has been removed.
|
|
||||||
- The configure option --with-mhash emits deprecation warning.
|
|
||||||
- The configure option --with-pdo-oci has been removed.
|
|
||||||
- The configure option --with-pspell has been removed.
|
|
||||||
- Symbol SIZEOF_SHORT removed (size of 2 on 32-bit and 64-bit platforms).
|
|
||||||
- Symbol DBA_CDB_MAKE removed in ext/dba.
|
|
||||||
- Symbol HAVE_LIBM has been removed.
|
|
||||||
- Symbol HAVE_INET_ATON has been removed.
|
|
||||||
- Symbol HAVE_SIGSETJMP has been removed.
|
|
||||||
- The Zend/zend_istdiostream.h header has been removed.
|
|
||||||
|
|
||||||
b. Unix build system changes
|
|
||||||
- The configure option --with-imap-ssl has been removed.
|
|
||||||
- The configure option --with-oci8 has been removed.
|
|
||||||
- The configure option --with-zlib-dir has been removed.
|
|
||||||
- The configure option --with-kerberos has been removed.
|
|
||||||
- The configure option --with-openssl-dir has been removed. SSL support in
|
|
||||||
ext/ftp and ext/mysqlnd is enabled implicitly, when building with
|
|
||||||
ext/openssl (--with-openssl), or explicitly by using new configure options
|
|
||||||
--with-ftp-ssl and --with-mysqlnd-ssl.
|
|
||||||
- New configure option --with-openssl-legacy-provider to enable OpenSSL
|
|
||||||
legacy provider.
|
|
||||||
- New configure option --with-openssl-argon2 to enable PASSWORD_ARGON2
|
|
||||||
from OpenSSL 3.2
|
|
||||||
- COOKIE_IO_FUNCTIONS_T symbol has been removed (use cookie_io_functions_t).
|
|
||||||
- HAVE_SOCKADDR_UN_SUN_LEN symbol renamed to HAVE_STRUCT_SOCKADDR_UN_SUN_LEN.
|
|
||||||
- HAVE_UTSNAME_DOMAINNAME symbol renamed to HAVE_STRUCT_UTSNAME_DOMAINNAME.
|
|
||||||
- PHP_CHECK_IN_ADDR_T Autoconf macro and 'in_addr_t' fallback definition to
|
|
||||||
'u_int' removed (use AC_CHECK_TYPES Autoconf macro instead).
|
|
||||||
- HAVE_ODBC2 symbol has been removed in ext/odbc.
|
|
||||||
- Removed linking with obsolete dnet_stub library in ext/pdo_dblib.
|
|
||||||
- Removed checking and linking with obsolete libbind for some functions.
|
|
||||||
- Symbol HAVE_JSON has been removed (ext/json is always available since PHP
|
|
||||||
8.0).
|
|
||||||
- Symbol DARWIN has been removed (use __APPLE__ to target Darwin systems).
|
|
||||||
- Symbol MISSING_FCLOSE_DECL and Autoconf macro PHP_MISSING_FCLOSE_DECL were
|
|
||||||
removed.
|
|
||||||
- Symbol HAVE_BSD_ICONV has been removed.
|
|
||||||
- Symbol ZEND_FIBER_ASM has been removed.
|
|
||||||
- Symbols HAVE_DLOPEN and HAVE_DLSYM have been removed.
|
|
||||||
- Symbol HAVE_MYSQL has been removed.
|
|
||||||
- Symbol HAVE_PDO_SQLITELIB has been removed.
|
|
||||||
- Symbol HAVE_WAITPID has been removed.
|
|
||||||
- Symbol HAVE_LIBPQ has been removed.
|
|
||||||
- Symbols HAVE_LIBRT and HAVE_TIMER_CREATE removed.
|
|
||||||
- Symbols PHP_FPM_SYSTEMD, PHP_FPM_USER, and PHP_FPM_GROUP removed.
|
|
||||||
- Symbol PTHREADS has been removed.
|
|
||||||
- Symbol HAVE_STRPTIME_DECL_FAILS has been removed (use HAVE_DECL_STRPTIME).
|
|
||||||
- Symbol HAVE_PHPDBG has been removed.
|
|
||||||
- Symbols PHP_HAVE_AVX512_SUPPORTS and PHP_HAVE_AVX512_VBMI_SUPPORTS are now
|
|
||||||
either defined to 1 or undefined.
|
|
||||||
- Symbol HAVE_LIBCRYPT has been removed.
|
|
||||||
- Autoconf macro PHP_DEFINE (atomic includes) removed (use AC_DEFINE and
|
|
||||||
config.h).
|
|
||||||
- Autoconf macro PHP_WITH_SHARED has been removed (use PHP_ARG_WITH).
|
|
||||||
- Autoconf macro PHP_STRUCT_FLOCK has been removed (use AC_CHECK_TYPES).
|
|
||||||
- Autoconf macro PHP_SOCKADDR_CHECKS has been removed (use AC_CHECK_TYPES and
|
|
||||||
AC_CHECK_MEMBERS).
|
|
||||||
- Autoconf macro PHP_CHECK_GCC_ARG has been removed since PHP 8.0 (use
|
|
||||||
AX_CHECK_COMPILE_FLAG).
|
|
||||||
- Autoconf macro PHP_PROG_RE2C got a new 2nd argument to define common
|
|
||||||
default re2c command-line options substituted to the Makefile RE2C_FLAGS
|
|
||||||
variable.
|
|
||||||
- Autoconf macros PHP_CHECK_BUILTIN_* have been removed in favor of
|
|
||||||
PHP_CHECK_BUILTIN and all PHP_HAVE_BUILTIN_* symbols changed to be either
|
|
||||||
undefined or defined to 1 whether compiler supports the builtin.
|
|
||||||
- Added php-config --lib-dir and --lib-embed options for PHP embed SAPI.
|
|
||||||
- PDO extensions in php-src don't have the include flag -I$pdo_cv_inc_path
|
|
||||||
directory anymore.
|
|
||||||
- Autoconf macro PHP_SETUP_OPENSSL doesn't accept the 3rd argument anymore.
|
|
||||||
- Autoconf macro PHP_EVAL_LIBLINE got a new 3rd argument to override the
|
|
||||||
ext_shared checks.
|
|
||||||
- Autoconf macro PHP_SETUP_LIBXML doesn't define the redundant HAVE_LIBXML
|
|
||||||
symbol anymore and requires at least libxml2 2.9.4.
|
|
||||||
- Autoconf macro PHP_SETUP_ICONV doesn't define the HAVE_ICONV symbol
|
|
||||||
anymore.
|
|
||||||
- Autoconf macro PHP_AP_EXTRACT_VERSION is obsolete (use the
|
|
||||||
'apxs -q HTTPD_VERSION').
|
|
||||||
- Autoconf macro PHP_OUTPUT is obsolete (use AC_CONFIG_FILES).
|
|
||||||
- Autoconf macro PHP_TEST_BUILD is obsolete (use AC_* macros).
|
|
||||||
- Autoconf macro PHP_BUILD_THREAD_SAFE is obsolete (set enable_zts manually).
|
|
||||||
- Autoconf macro PHP_DEF_HAVE is obsolete (use AC_DEFINE).
|
|
||||||
- Autoconf macro PHP_PROG_SETUP now accepts an argument to set the minimum
|
|
||||||
required PHP version during the build.
|
|
||||||
- Autoconf macro PHP_INSTALL_HEADERS arguments can now be also
|
|
||||||
blank-or-newline-separated lists instead of only separated with whitespace
|
|
||||||
or backslash-then-newline.
|
|
||||||
- Autoconf macro PHP_ADD_BUILD_DIR now also accepts 1st argument as a
|
|
||||||
blank-or-newline-separated separated list.
|
|
||||||
- Autoconf macros PHP_NEW_EXTENSION, PHP_ADD_SOURCES, PHP_ADD_SOURCES_X,
|
|
||||||
PHP_SELECT_SAPI now have the source files and flags arguments normalized so
|
|
||||||
the list of items can be passed as a blank-or-newline-separated list.
|
|
||||||
- Autoconf macro PHP_ADD_INCLUDE now takes also a blank-or-newline-separated
|
|
||||||
list of include directories instead of a single directory. The "prepend"
|
|
||||||
argument is validated at Autoconf compile time.
|
|
||||||
- TSRM/tsrm.m4 file and its TSRM_CHECK_PTHREADS macro have been removed.
|
|
||||||
- Added pkg-config support to find libpq for the pdo_pgsql and pgsql
|
|
||||||
extensions. The libpq paths can be customized with the PGSQL_CFLAGS and
|
|
||||||
PGSQL_LIBS environment variables. When a directory argument is provided to
|
|
||||||
configure options (--with-pgsql=DIR or --with-pdo-pgsql=DIR), it will be
|
|
||||||
used instead of the pkg-config search.
|
|
||||||
- Added pkg-config support to find unixODBC and iODBC for the pdo_odbc
|
|
||||||
extension.
|
|
||||||
- Added pkg-config support to find GNU MP library. As a fallback default
|
|
||||||
system paths are searched. When a directory argument is provided
|
|
||||||
(--with-gmp=DIR), it will be used instead of the pkg-config.
|
|
||||||
- Added optional pkg-config support to find NET-SNMP library. As a fallback
|
|
||||||
net-snmp-config utility is used like before.
|
|
||||||
- Removed BC enable_pear variable check due to --enable-pear configure option
|
|
||||||
once used (use with_pear variable name).
|
|
||||||
- Cache variables synced to php_cv_* naming scheme. If you use them for
|
|
||||||
advanced cross-compilation, these were renamed:
|
|
||||||
- ac_cv_copy_file_range -> php_cv_func_copy_file_range
|
|
||||||
- ac_cv_flush_io -> php_cv_have_flush_io
|
|
||||||
- ac_cv_func_getaddrinfo -> php_cv_func_getaddrinfo
|
|
||||||
- ac_cv_have_broken_gcc_strlen_opt -> php_cv_have_broken_gcc_strlen_opt
|
|
||||||
- ac_cv_have_pcre2_jit -> php_cv_have_pcre2_jit
|
|
||||||
- ac_cv_pread -> php_cv_func_pread
|
|
||||||
- ac_cv_pwrite -> php_cv_func_pwrite
|
|
||||||
- ac_cv_syscall_shadow_stack_exists -> php_cv_have_shadow_stack_syscall
|
|
||||||
- ac_cv_time_r_type -> php_cv_time_r_type
|
|
||||||
- ac_cv_write_stdout -> php_cv_have_write_stdout
|
|
||||||
and all other checks wrapped with their belonging cache variables (see *.m4
|
|
||||||
source files for details).
|
|
||||||
|
|
||||||
c. Windows build system changes
|
|
||||||
- The configure options --with-oci8-11g, --with-oci8-12c, --with-oci8-19,
|
|
||||||
--enable-apache2-2handler have been removed.
|
|
||||||
- The configure option --enable-apache2-4handler is now an alias for the
|
|
||||||
preferred --enable-apache2handler.
|
|
||||||
- Added Bison flag '-Wall' when generating lexer files as done in *nix build
|
|
||||||
system.
|
|
||||||
- HAVE_WIN32_NATIVE_THREAD, USE_WIN32_NATIVE_THREAD, ENABLE_THREADS symbols
|
|
||||||
in ext/mbstring/libmbfl removed.
|
|
||||||
- FIBER_ASSEMBLER and FIBER_ASM_ARCH Makefile variables removed in favor of
|
|
||||||
PHP_ASSEMBLER and FIBER_ASM_ABI.
|
|
||||||
- HAVE_PHP_SOAP symbol renamed to HAVE_SOAP.
|
|
||||||
- Unused symbols CONFIGURATION_FILE_PATH, DISCARD_PATH, HAVE_ERRMSG_H,
|
|
||||||
HAVE_REGCOMP, HAVE_RINT, NEED_ISBLANK, PHP_URL_FOPEN, REGEX, HSREGEX,
|
|
||||||
USE_CONFIG_FILE have been removed.
|
|
||||||
- The HAVE_OPENSSL symbol has been removed.
|
|
||||||
- The HAVE_OPENSSL_EXT symbol is now consistently defined to value 1 whether
|
|
||||||
the openssl extension is available either as shared or built statically.
|
|
||||||
- Added configure option --enable-phpdbg-debug to build phpdbg in debug mode.
|
|
||||||
- The win32/build/libs_version.txt file has been removed.
|
|
||||||
- MSVC builds now use the new preprocessor (/Zc:preprocessor).
|
|
||||||
- The CHECK_HEADER_ADD_INCLUDE function now consistently defines preprocessor
|
|
||||||
macros HAVE_<header>_H either to value 1 or leaves them undefined to match
|
|
||||||
the Autotools headers checks.
|
|
||||||
|
|
||||||
========================
|
========================
|
||||||
3. Module changes
|
3. Module changes
|
||||||
========================
|
========================
|
||||||
|
|
||||||
a. ext/dom
|
|
||||||
- dom_read_t and dom_write_t now expect the function to return zend_result
|
|
||||||
instead of int.
|
|
||||||
- The macros DOM_NO_ARGS() and DOM_NOT_IMPLEMENTED() have been removed.
|
|
||||||
- New public APIs are available to handle callbacks from XPath, see
|
|
||||||
xpath_callbacks.h.
|
|
||||||
- Added public APIs to manipulate namespace data, see namespace_compat.h.
|
|
||||||
- php_dom_create_object() now no longer accepts a NULL obj argument.
|
|
||||||
- Removed the `ret` argument from the DOM_RET_OBJ macro, use the return
|
|
||||||
value instead.
|
|
||||||
- Removed DOM_XMLNS_NAMESPACE from xml_common.h. Use DOM_XMLNS_NS_URI
|
|
||||||
from namespace_compat.h instead.
|
|
||||||
- Added php_dom_get_ns_mapper(), php_dom_next_in_tree_order(),
|
|
||||||
php_dom_follow_spec_doc_ref(), and php_dom_follow_spec_doc_ref().
|
|
||||||
|
|
||||||
b. ext/random
|
|
||||||
- The macro RAND_RANGE_BADSCALING() has been removed. The implementation
|
|
||||||
should either be inlined and undefined behavior fixed or it should be
|
|
||||||
replaced by a non-biased scaler.
|
|
||||||
- The php_srand() and php_rand() functions have been removed. These were
|
|
||||||
slim wrappers around the corresponding php_mt_srand() and php_mt_rand()
|
|
||||||
function since PHP 7.1, but using zend_long instead of uint32_t as their
|
|
||||||
input/output types. This made their behavior incompatible between 32-bit
|
|
||||||
and 64-bit builds of PHP. Users of these functions are encouraged to
|
|
||||||
migrate to one of the more modern engines provided since PHP 8.2. If that
|
|
||||||
is not possible, due to backwards compatibility requirements, then the
|
|
||||||
php_mt_srand() and php_mt_rand() functions should be called directly and
|
|
||||||
the values appropriately casted.
|
|
||||||
- The PHP_RAND_MAX and RAND_MAX constants corresponding to the removed
|
|
||||||
php_rand() have also been removed.
|
|
||||||
- The generate member of a php_random_algo is now expected to return
|
|
||||||
the new php_random_result struct, replacing the last_generated_size
|
|
||||||
member of the php_random_status struct and the generate_size member of
|
|
||||||
the php_random_algo struct.
|
|
||||||
- The php_random_status struct has been removed, since the previous change
|
|
||||||
reduced it to a single void* member containing the actual state, resulting
|
|
||||||
in needless indirection. Functions taking a php_random_algo struct pointer
|
|
||||||
and a php_random_status struct pointer as separate parameters now take a
|
|
||||||
single php_random_algo_with_state struct by value, making it easier to
|
|
||||||
pass around the state with its associated algorithm and thus reducing
|
|
||||||
the chance for mistakes.
|
|
||||||
- The seed member of a php_random_algo has been removed. As a replacement
|
|
||||||
engine-specific seeding functions are now exposed. This change allows
|
|
||||||
users to better take engine-specific behavior into account. As an example
|
|
||||||
Mt19937 ignored the upper half of the seed parameter of the generic
|
|
||||||
seeding function.
|
|
||||||
- The CSPRNG API (php_random_(bytes|int)_*) is now provided by the new
|
|
||||||
and much smaller php_random_csprng.h header. The new header is included
|
|
||||||
in php_random.h for compatibility with existing users.
|
|
||||||
- A new php_random_generate_fallback_seed() function has been added as a
|
|
||||||
replacement for the generically named GENERATE_SEED(). The internal
|
|
||||||
implementation has been improved to generate better seeds, however any
|
|
||||||
users should use the opportunity to verify that seeding is first
|
|
||||||
attempted using the CSPRNG for better output size flexibility.
|
|
||||||
- The standalone combined_lcg engine has been removed, as the lcg_value()
|
|
||||||
userland function is deprecated and as the engine is unable to return
|
|
||||||
unbiased integer values. The internal php_combined_lcg() function remains
|
|
||||||
available for now.
|
|
||||||
|
|
||||||
c. ext/xsl
|
|
||||||
- The function php_xsl_create_object() was removed as it was not used
|
|
||||||
nor exported.
|
|
||||||
|
|
||||||
d. ext/libxml
|
|
||||||
- Added php_libxml_pretend_ctx_error_ex() to emit errors as if they had come
|
|
||||||
from libxml.
|
|
||||||
- Added php_libxml_error_handler_va() to pass libxml errors, and
|
|
||||||
corresponding php_libxml_error_level enum.
|
|
||||||
- Removed the "properties" HashTable field from php_libxml_node_object.
|
|
||||||
- Added a way to attached private data to a php_libxml_ref_obj.
|
|
||||||
- Added a way to fix a class type onto php_libxml_ref_obj.
|
|
||||||
- Added a way to record quirks mode in php_libxml_ref_obj.
|
|
||||||
- Added php_libxml_uses_internal_errors().
|
|
||||||
- Added a way to override document handlers (e.g. serialization) with
|
|
||||||
php_libxml_document_handlers.
|
|
||||||
- Changed the refcount fields from int to unsigned int.
|
|
||||||
|
|
||||||
e. ext/date
|
|
||||||
- Added the php_format_date_ex() API to format instances of php_date_obj.
|
|
||||||
- Added the php_date_initialize_from_ts_long() and
|
|
||||||
php_date_initialize_from_ts_double() to initialize a php_date_obj with
|
|
||||||
the given unix timestamp using GMT +00:00.
|
|
||||||
|
|
||||||
f. ext/pcre
|
|
||||||
- php_pcre_match_impl() now no longer has a use_flags argument.
|
|
||||||
When flags should be ignored, pass 0 to the flags argument.
|
|
||||||
- php_pcre_match_impl() and pcre_get_compiled_regex_cache_ex() now use
|
|
||||||
proper boolean argument types instead of integer types.
|
|
||||||
- pcre_get_compiled_regex_cache_ex() now provides an option to collect extra
|
|
||||||
options (from modifiers used in the expression, for example), and calls
|
|
||||||
pcre2_set_compile_extra_options() with those options.
|
|
||||||
- Removed per-request cache, the cache is now always per process or
|
|
||||||
per thread depending on whether you use NTS or ZTS.
|
|
||||||
This was removed due to fundamental ordering issues between destructors.
|
|
||||||
|
|
||||||
g. ext/standard
|
|
||||||
- Added the php_base64_encode_ex() API with flag parameters, value can be
|
|
||||||
PHP_BASE64_NO_PADDING to encode without the padding character '='.
|
|
||||||
- The php_escape_shell_cmd() now takes a zend_string* instead of a char*
|
|
||||||
Moreover, providing it with a binary safe string is the responsibility of
|
|
||||||
the caller now.
|
|
||||||
- The php_escape_shell_arg() now takes a zend_string* instead of a char*
|
|
||||||
Moreover, providing it with a binary safe string is the responsibility of
|
|
||||||
the caller now.
|
|
||||||
- The php_info_html_esc() function has been removed, use
|
|
||||||
php_escape_html_entities() with ENT_QUOTES directly instead.
|
|
||||||
- The deprecated php_uint32 and php_int32 typedefs have been removed from
|
|
||||||
ext/standard/basic_functions.h. Use the standard uint32_t and int32_t
|
|
||||||
types instead.
|
|
||||||
- The php_mkdir() and php_mkdir_ex() APIs have been removed, use
|
|
||||||
php_stream_mkdir() instead.
|
|
||||||
- The php_strtoupper(), php_string_toupper(), php_strtolower(), and
|
|
||||||
php_string_tolower() functions has been removed, use zend_str_toupper(),
|
|
||||||
zend_string_toupper(), zend_str_tolower(), and zend_string_tolower()
|
|
||||||
respectively instead.
|
|
||||||
- The php_replace_controlchars_ex() function is no longer exposed.
|
|
||||||
|
|
||||||
h. ext/session
|
|
||||||
- Added the php_get_session_status() API to get the session status, which is
|
|
||||||
equivalent to reading PS(session_status) but works with shared objects too.
|
|
||||||
- Added the php_get_session_var_str() API to set a session variable without
|
|
||||||
needing to create a zend_string.
|
|
||||||
- The ext/session/php_session.h doesn't transitively include the
|
|
||||||
ext/hash/php_hash.h header anymore.
|
|
||||||
|
|
||||||
i. ext/xml
|
|
||||||
- Made the expat compatibility wrapper XML_GetCurrentByteIndex return a long
|
|
||||||
instead of an int. This corresponds to the XML_Index type when
|
|
||||||
XML_LARGE_SIZE is not used in expat.
|
|
||||||
|
|
||||||
========================
|
========================
|
||||||
4. OpCode changes
|
4. OpCode changes
|
||||||
========================
|
========================
|
||||||
|
|
||||||
* DO_ICALL, DO_FCALL, and DO_FCALL_BY_NAME now call zend_interrupt_function
|
|
||||||
while the internal frame is still on the stack. This means interrupt handlers
|
|
||||||
will now see the internal call. If your interrupt handler does something like
|
|
||||||
switching EG(current_execute_data), it should not do so if an internal func
|
|
||||||
is on top.
|
|
||||||
* New FRAMELESS_ICALL_[0,3] opcodes for faster internal function calls have been
|
|
||||||
added. These opcodes don't create a stack frame, but pass arguments via opcode
|
|
||||||
operands. They only work for functions that are known at compile-time, and
|
|
||||||
that provide a frameless handler (search for usages of the
|
|
||||||
ZEND_FRAMELESS_FUNCTION macro).
|
|
||||||
|
|
||||||
* CREATE_GENERATOR now initializes the generator with opline pointing to the
|
|
||||||
CREATE_GENERATOR op (before, opline was set to the next op).
|
|
||||||
|
|
||||||
* YIELD and YIELD_FROM do not increment the opline anymore.
|
|
||||||
|
|
||||||
* The EXIT opcode has been removed as exit is now implemented as a function.
|
|
||||||
|
|
||||||
========================
|
========================
|
||||||
5. SAPI changes
|
5. SAPI changes
|
||||||
========================
|
========================
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#ifndef ZEND_H
|
#ifndef ZEND_H
|
||||||
#define ZEND_H
|
#define ZEND_H
|
||||||
|
|
||||||
#define ZEND_VERSION "4.4.0-dev"
|
#define ZEND_VERSION "4.5.0-dev"
|
||||||
|
|
||||||
#define ZEND_ENGINE_3
|
#define ZEND_ENGINE_3
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@ You can use the following macro to check the extension API version for compatibi
|
|||||||
|
|
||||||
/* The first number is the engine version and the rest is the date (YYYYMMDD).
|
/* The first number is the engine version and the rest is the date (YYYYMMDD).
|
||||||
* This way engine 2/3 API no. is always greater than engine 1 API no.. */
|
* This way engine 2/3 API no. is always greater than engine 1 API no.. */
|
||||||
#define ZEND_EXTENSION_API_NO 420230901
|
#define ZEND_EXTENSION_API_NO 420240925
|
||||||
|
|
||||||
typedef struct _zend_extension_version_info {
|
typedef struct _zend_extension_version_info {
|
||||||
int zend_extension_api_no;
|
int zend_extension_api_no;
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
#define ZEND_MODULE_INFO_FUNC_ARGS zend_module_entry *zend_module
|
#define ZEND_MODULE_INFO_FUNC_ARGS zend_module_entry *zend_module
|
||||||
#define ZEND_MODULE_INFO_FUNC_ARGS_PASSTHRU zend_module
|
#define ZEND_MODULE_INFO_FUNC_ARGS_PASSTHRU zend_module
|
||||||
|
|
||||||
#define ZEND_MODULE_API_NO 20230901
|
#define ZEND_MODULE_API_NO 20240925
|
||||||
#ifdef ZTS
|
#ifdef ZTS
|
||||||
#define USING_ZTS 1
|
#define USING_ZTS 1
|
||||||
#else
|
#else
|
||||||
|
@ -17,7 +17,7 @@ dnl Basic autoconf initialization, generation of config.nice.
|
|||||||
dnl ----------------------------------------------------------------------------
|
dnl ----------------------------------------------------------------------------
|
||||||
|
|
||||||
AC_PREREQ([2.68])
|
AC_PREREQ([2.68])
|
||||||
AC_INIT([PHP],[8.4.0-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net])
|
AC_INIT([PHP],[8.5.0-dev],[https://github.com/php/php-src/issues],[php],[https://www.php.net])
|
||||||
AC_CONFIG_SRCDIR([main/php_version.h])
|
AC_CONFIG_SRCDIR([main/php_version.h])
|
||||||
AC_CONFIG_AUX_DIR([build])
|
AC_CONFIG_AUX_DIR([build])
|
||||||
AC_PRESERVE_HELP_ORDER
|
AC_PRESERVE_HELP_ORDER
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include <dmalloc.h>
|
#include <dmalloc.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define PHP_API_VERSION 20230901
|
#define PHP_API_VERSION 20240925
|
||||||
#define PHP_HAVE_STREAMS
|
#define PHP_HAVE_STREAMS
|
||||||
#define YYDEBUG 0
|
#define YYDEBUG 0
|
||||||
#define PHP_DEFAULT_CHARSET "UTF-8"
|
#define PHP_DEFAULT_CHARSET "UTF-8"
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
/* automatically generated by configure */
|
/* automatically generated by configure */
|
||||||
/* edit configure.ac to change version number */
|
/* edit configure.ac to change version number */
|
||||||
#define PHP_MAJOR_VERSION 8
|
#define PHP_MAJOR_VERSION 8
|
||||||
#define PHP_MINOR_VERSION 4
|
#define PHP_MINOR_VERSION 5
|
||||||
#define PHP_RELEASE_VERSION 0
|
#define PHP_RELEASE_VERSION 0
|
||||||
#define PHP_EXTRA_VERSION "-dev"
|
#define PHP_EXTRA_VERSION "-dev"
|
||||||
#define PHP_VERSION "8.4.0-dev"
|
#define PHP_VERSION "8.5.0-dev"
|
||||||
#define PHP_VERSION_ID 80400
|
#define PHP_VERSION_ID 80500
|
||||||
|
@ -95,10 +95,10 @@ if (typeof(CWD) == "undefined") {
|
|||||||
if (!MODE_PHPIZE) {
|
if (!MODE_PHPIZE) {
|
||||||
/* defaults; we pick up the precise versions from configure.ac */
|
/* defaults; we pick up the precise versions from configure.ac */
|
||||||
var PHP_VERSION = 8;
|
var PHP_VERSION = 8;
|
||||||
var PHP_MINOR_VERSION = 4;
|
var PHP_MINOR_VERSION = 5;
|
||||||
var PHP_RELEASE_VERSION = 0;
|
var PHP_RELEASE_VERSION = 0;
|
||||||
var PHP_EXTRA_VERSION = "";
|
var PHP_EXTRA_VERSION = "";
|
||||||
var PHP_VERSION_STRING = "8.4.0";
|
var PHP_VERSION_STRING = "8.5.0";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get version numbers and DEFINE as a string */
|
/* Get version numbers and DEFINE as a string */
|
||||||
|
Loading…
Reference in New Issue
Block a user