xref: /PHP-7.2/UPGRADING.INTERNALS (revision 60a69dae)
1PHP 7.2 INTERNALS UPGRADE NOTES
2
31. Internal API changes
4  a. Path related functions
5  b. php_win32_get_random_bytes()
6  c. nice() Windows implementation
7  d. ZEND_ACC_CLONE removed
8  e. IS_TYPE_IMMUTABLE removed
9  f. zend_arg_info.class_name removed
10  g. ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX changed
11  h. valid_symbol_table removed
12
132. Build system changes
14  a. Unix build system changes
15  b. Windows build system changes
16
17
183. Module changes
19
20========================
211. Internal API changes
22========================
23
24  a. Path related functions
25    - CWD_API void realpath_cache_del(const char *path, size_t path_len);
26    - CWD_API realpath_cache_bucket* realpath_cache_lookup(const char *path, size_t path_len, time_t t);
27    - PHPAPI void php_clear_stat_cache(zend_bool clear_realpath_cache, const char *filename, size_t filename_len);
28    - PHPAPI void php_stat(const char *filename, size_t filename_length, int type, zval *return_value);
29
30  b. php_win32_get_random_bytes()
31    The internal randomness source on Windows switched to use CNG API.
32
33  c. nice() now have a Windows alternative that is implemented in win32/nice.c, using
34	   SetPriorityClass(). See the implementation for more in-depth details. This also
35	   defines HAVE_NICE.
36
37  d. ZEND_ACC_CLONE is removed, but was not used in previous versions
38
39  e. IS_TYPE_IMMUTABLE is removed, IS_TYPE_COPYABLE can be used instead
40     Z_IMMUTABLE() check function is still available
41
42  f. zend_arg_info class_name member is removed, use ZEND_TYPE_NAME instead
43
44  g. ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX classname option is removed
45     use ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX for simple type
46     use ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX for object
47
48  h. valid_symbol_table is removed from executor_globals.
49     Use EG(active) instead of removed EG(valid_symbol_table)
50
51========================
522. Build system changes
53========================
54
55  a. Unix build system changes
56
57  b. Windows build system changes
58
59    .  Minimum supported Windows versions are Windows 7/Server 2008 R2.
60    . --enable-one-shot configure option is removed, --with-mp is usable.
61    . The new binary tools SDK is required for Windows builds, the
62      documentation is available under https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2
63    . Visual Studio 2017 is utilized for the Windows builds
64    . Clang build with ASAN is supported with clang 5+
65
66========================
673. Module changes
68========================
69
70- Pcre:
71  . php_pcre_replace and php_pcre_replace_impl expect a zend_string instead of a zval and
72    is_callable_replace options is removed:
73    - 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);
74    - 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);
75
76- Session:
77  . php_session_start()/session_reset_id() return value is changed from void to int.
78    It returns SUCCESS/FAILURE.
79  . Session module manages session status correctly.
80
81- OpenSSL:
82  . Windows builds ship with OpenSSL 1.1 by default, lower versions are still supported with custom deps.
83