summaryrefslogtreecommitdiff
path: root/UPGRADING.INTERNALS
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2017-11-06 14:12:02 +0100
committerAnatol Belski <ab@php.net>2017-11-06 14:12:02 +0100
commit7d14dcc084ceaac7fb407b837ddc5695e5ebd1ac (patch)
tree517cfe30ee1aac2a3be4bfbc8e74f727e7f83856 /UPGRADING.INTERNALS
parentd6267cd2302ff04e3cbef99974421f207a1ad42d (diff)
downloadphp-git-7d14dcc084ceaac7fb407b837ddc5695e5ebd1ac.tar.gz
[ci skip] Fix UPGRADING.INTERNALS, seems it was not reset after 7.2
branch off
Diffstat (limited to 'UPGRADING.INTERNALS')
-rw-r--r--UPGRADING.INTERNALS90
1 files changed, 17 insertions, 73 deletions
diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS
index 59ac0bbadc..c76780fd56 100644
--- a/UPGRADING.INTERNALS
+++ b/UPGRADING.INTERNALS
@@ -1,22 +1,14 @@
-PHP 7.2 INTERNALS UPGRADE NOTES
+PHP 7.3 INTERNALS UPGRADE NOTES
1. Internal API changes
- a. Path related functions
- b. php_win32_get_random_bytes()
- c. nice() Windows implementation
- d. ZEND_ACC_CLONE removed
- e. IS_TYPE_IMMUTABLE removed
- f. zend_arg_info.class_name removed
- g. ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX changed
- h. valid_symbol_table removed
- i. array_init() and array_init_size()
- j. Run-time constant operand addressing
- k. Array/Object recursion protection
- l. HASH_FLAG_PERSISTENT
- m. AST and IS_CONSTANT
- n. GC_REFCOUNT()
- o. zend_get_parameters()
- p. zend_register_persistent_resource()
+ a. array_init() and array_init_size()
+ b. Run-time constant operand addressing
+ c. Array/Object recursion protection
+ d. HASH_FLAG_PERSISTENT
+ e. AST and IS_CONSTANT
+ f. GC_REFCOUNT()
+ g. zend_get_parameters()
+ h. zend_register_persistent_resource()
2. Build system changes
a. Unix build system changes
@@ -29,37 +21,10 @@ PHP 7.2 INTERNALS UPGRADE NOTES
1. Internal API changes
========================
- a. Path related functions
- - CWD_API void realpath_cache_del(const char *path, size_t path_len);
- - CWD_API realpath_cache_bucket* realpath_cache_lookup(const char *path, size_t path_len, time_t t);
- - PHPAPI void php_clear_stat_cache(zend_bool clear_realpath_cache, const char *filename, size_t filename_len);
- - PHPAPI void php_stat(const char *filename, size_t filename_length, int type, zval *return_value);
-
- b. php_win32_get_random_bytes()
- The internal randomness source on Windows switched to use CNG API.
-
- c. nice() now have a Windows alternative that is implemented in win32/nice.c, using
- SetPriorityClass(). See the implementation for more in-depth details. This also
- defines HAVE_NICE.
-
- d. ZEND_ACC_CLONE is removed, but was not used in previous versions
-
- e. IS_TYPE_IMMUTABLE is removed, IS_TYPE_COPYABLE can be used instead
- Z_IMMUTABLE() check function is still available
-
- f. zend_arg_info class_name member is removed, use ZEND_TYPE_NAME instead
-
- g. ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX classname option is removed
- use ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX for simple type
- use ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX for object
-
- h. valid_symbol_table is removed from executor_globals.
- Use EG(active) instead of removed EG(valid_symbol_table)
-
- i. array_init() and array_init_size() are not functions anymore.
+ a. array_init() and array_init_size() are not functions anymore.
They don't return any values.
- j. In 64-bit builds PHP-7.2 and below used relative run-time constant operand
+ b. In 64-bit builds PHP-7.2 and below used relative run-time constant operand
addressing. E.g. opline->op1.constant kept an offset from start of literals
table - op_array->literals. To speedup access op_array->literals was cached
in execute_data->literals. So the resulting address calculated as
@@ -76,7 +41,7 @@ PHP 7.2 INTERNALS UPGRADE NOTES
RT_CONSTANT_EX, EX_CONSTANT should be substituted by RT_CONSTANT than now
use "opline" (instead of "op_array") as first argument.
- k. Protection from recursion during processing circular data structures was
+ c. Protection from recursion during processing circular data structures was
refactored. HashTable.nApplyCount and IS_OBJ_APPLY_COUNT are replaced by
single flag GC_PROTECTED. Corresponding macros Z_OBJ_APPLY_COUNT,
Z_OBJ_INC_APPLY_COUNT, Z_OBJ_DEC_APPLY_COUNT, ZEND_HASH_GET_APPLY_COUNT,
@@ -89,10 +54,10 @@ PHP 7.2 INTERNALS UPGRADE NOTES
Corresponding checks should be replaced by Z_REFCOUNTED() or
!(GC_GLAGS(p) & GC_IMMUTABLE).
- l. HASH_FLAG_PERSISTENT renamed into IS_ARRAY_PERSISTENT and moved into
+ d. HASH_FLAG_PERSISTENT renamed into IS_ARRAY_PERSISTENT and moved into
GC_FLAGS (to be consistent with IS_STR_PERSISTENT).
- m. zend_ast_ref structure is changed to use only one allocation.
+ e. zend_ast_ref structure is changed to use only one allocation.
zend_ast_copy() now returns zend_ast_ref (instead of zend_asr).
zend_ast_destroy_and_free() is removed. ZVAL_NEW_AST() is replaced
by ZVAL_AST().
@@ -102,7 +67,7 @@ PHP 7.2 INTERNALS UPGRADE NOTES
attributes are used instead of constant flags. IS_TYPE_CONSTANT flag is
removed, but Z_CONSTANT() macro is kept for compatibility.
- n. GC_REFCOUNT() is turned into inline function and can't be modified direcly.
+ f. GC_REFCOUNT() is turned into inline function and can't be modified direcly.
All reference-counting operations should be done through corresponding
macros GC_SET_REFCOUNT(), GC_ADDREF() and GC_DELREF().
@@ -110,10 +75,10 @@ PHP 7.2 INTERNALS UPGRADE NOTES
GC_REFCOUNT(p)-- into GC_DELREF(p),
GC_REFCOUNT(p) = 1 into GC_SET_REFCOUNT(p, 1).
- o. The zend_get_parameters() and zend_get_parameters_ex() functions were
+ g. The zend_get_parameters() and zend_get_parameters_ex() functions were
removed. Instead zend_parse_parameters() should be used.
- p. New functions zend_register_persistent_resource() or
+ h. New functions zend_register_persistent_resource() or
zend_register_persistent_resource_ex() should beused to register
persistent resources, instead of manual insertion into EG(persistent_list).
@@ -125,28 +90,7 @@ PHP 7.2 INTERNALS UPGRADE NOTES
b. Windows build system changes
- . Minimum supported Windows versions are Windows 7/Server 2008 R2.
- . --enable-one-shot configure option is removed, --with-mp is usable.
- . The new binary tools SDK is required for Windows builds, the
- documentation is available under https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2
- . Visual Studio 2017 is utilized for the Windows builds
- . Clang build with ASAN is supported with clang 5+
-
========================
3. Module changes
========================
-- Pcre:
- . php_pcre_replace and php_pcre_replace_impl expect a zend_string instead of a zval and
- is_callable_replace options is removed:
- - PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, int subject_len, zend_string *replace_str, int limit, int *replace_count);
- - PHPAPI zend_string *php_pcre_replace_impl(pcre_cache_entry *pce, zend_string *subject_str, char *subject, int subject_len, zend_string *replace_str, int limit, int *replace_count);
-
-- Session:
- . php_session_start()/session_reset_id() return value is changed from void to int.
- It returns SUCCESS/FAILURE.
- . Session module manages session status correctly.
-
-- OpenSSL:
- . Windows builds ship with OpenSSL 1.1 by default, lower versions are still supported with custom deps.
-