mirror of
https://github.com/php/php-src.git
synced 2024-12-14 04:16:30 +08:00
81 lines
3.0 KiB
Plaintext
81 lines
3.0 KiB
Plaintext
PHP 7.4 INTERNALS UPGRADE NOTES
|
|
|
|
1. Internal API changes
|
|
a. php_sys_symlink() and php_sys_link()
|
|
b. zend_lookup_class_ex() and zend_fetch_class_by_name()
|
|
c. Function/property/class flags
|
|
d. Removed zend_check_private()
|
|
|
|
2. Build system changes
|
|
a. Abstract
|
|
b. Unix build system changes
|
|
c. Windows build system changes
|
|
|
|
3. Module changes
|
|
a. ext/xml
|
|
b. ext/hash
|
|
|
|
========================
|
|
1. Internal API changes
|
|
========================
|
|
|
|
a. php_sys_symlink() and php_sys_link() portability macros have been
|
|
added, which behave like POSIX's symlink() and link(), respectively, on
|
|
POSIX compliant systems and on Windows.
|
|
|
|
b. zend_lookup_class_ex() and zend_fetch_class_by_name() prototypes were
|
|
changed to accept optional lower-case class name as zend_string*,
|
|
instead of zval*.
|
|
|
|
c. Function/property/class flags changes
|
|
- ZEND_ACC_CTOR and ZEND_ACC_DTOR are removed. It's possible to check if
|
|
method is a constructor/destructor using the following condition
|
|
(func->commpon.scope->constructor == func).
|
|
- ZEND_ACC_IMPLEMENTED_ABSTRACT is removed (it was used only internally
|
|
during inheritance).
|
|
- ZEND_ACC_IMPLICIT_PUBLIC is removed (it was used only for reflection)
|
|
- ZEND_ACC_SHADOW property flag is removed. Instead of creating shadow
|
|
clone, now we use the same private property_info, and should also
|
|
check property_info->ce (in the same way as with methods).
|
|
- ZEND_ACC_ANON_BOUND is replaced with ZEND_ACC_LINKED. This flag is set
|
|
not only during anonymous classes declaration, but also during any
|
|
run-time or compile-time class declaration.
|
|
- ZEND_ACC_NO_RT_ARENA renamed into ZEND_ACC_HEAP_RT_CACHE. Now it's used
|
|
not only for closures, but also for pseudo-main op_arrays.
|
|
- ZEND_ACC_... flags are re-numbered.
|
|
|
|
d. zend_check_private() is removed. Use (func->common.scope == scope) instead.
|
|
|
|
e. Pointers returned by php_win32_error_to_msg() have to be freed using
|
|
php_win32_error_msg_free(). Same regarding php_win_err() vs.
|
|
php_win_err_free().
|
|
|
|
========================
|
|
2. Build system changes
|
|
========================
|
|
|
|
a. Abstract
|
|
- The hash extension is now always available, meaning the --enable-hash
|
|
configure argument has been removed.
|
|
|
|
b. Unix build system changes
|
|
- configure --help now also outputs --program-suffix and --program-prefix
|
|
information by using the Autoconf AC_ARG_PROGRAM macro.
|
|
- Obsolescent macros AC_FUNC_VPRINTF and AC_FUNC_UTIME_NULL have been
|
|
removed. Symbols HAVE_VPRINTF and HAVE_UTIME_NULL are no longer defined
|
|
since they are not needed on the current systems.
|
|
|
|
c. Windows build system changes
|
|
|
|
========================
|
|
3. Module changes
|
|
========================
|
|
|
|
a. ext/xml
|
|
- The public (internal) API of the ext/xml extension has been removed. All
|
|
functions and structures are private to the extension now.
|
|
|
|
b. ext/hash
|
|
- The hash extension is now always available, allowing extensions to rely
|
|
on its functionality to be available without compile time checks.
|