Commit 4aba862339c for php

commit 4aba862339c11b0a319690ac4f405c8a49fb232a
Author: Gina Peter Banyard <girgias@php.net>
Date:   Sat Nov 14 00:32:24 2026 +0000

    Add subsections in UPGRADING.INTERNALS

    Following the format of the PHP 8.6 file

diff --git a/UPGRADING.INTERNALS b/UPGRADING.INTERNALS
index b5134705b37..f1848040fb2 100644
--- a/UPGRADING.INTERNALS
+++ b/UPGRADING.INTERNALS
@@ -14,52 +14,61 @@ PHP 8.7 INTERNALS UPGRADE NOTES
 1. Internal API changes
 ========================

-- Added zend_module_entry.child_init_func, an optional void callback invoked by
-  php_child_init() in the child process after core child initialization. It runs
-  in module dependency order for started modules and may run before a request
-  starts or during an active request. Initialize it with a designated
-  initializer such as `.child_init_func = callback` after
-  STANDARD_MODULE_PROPERTIES_EX.
-- Removed the ZEND_LOG_XOR() macro.
-- Removed the ZEND_TRUTH() macro.
-- Removed zend_execute_scripts(). Manually call zend_execute_script() in a loop
-  instead.
-- Removed ZEND_STATIC_ASSERT(). Use C11 static_assert() directly instead.
-- Removed zend_atomic.h and the zend_atomic_* types and functions.
-  Use the standard C11 atomic_* types and functions instead.
-- The sapi_terminate_process() function was removed.
-- The sapi_force_http_10() function was removed.
-- The sapi_get_fd() function was removed.
-- The sapi_get_target_uid() and sapi_get_target_gid() functions were removed.
-- Removed HAVE_NORETURN and HAVE_NORETURN_ALIAS. ZEND_NORETURN is guaranteed to
-  work.
-- Redefined ZEND_NORETURN to make use of the [[noreturn]] attribute for C++
-  and C23, which means that ZEND_NORETURN needs to come first in the modifier
-  list. Consider using noreturn (C11) / [[noreturn]] (C23) directly if
-  header interoperability is not required.
-- The signature of zend_is_callable() has been changed to
-  zend_is_callable(const zval *callable, zend_fcall_info_cache *fcc, char **error)
-  from zend_is_callable(const zval *callable, uint32_t check_flags, zend_string **callable_name).
-  This new signature covers the most common parameters used with zend_is_callable_ex().
-- Removed zend_hrtime_posix_clock_id. zend_hrtime() always uses CLOCK_MONOTONIC
-  on POSIX platforms.
-- Function pointer signature for interface_gets_implemented has been made void.
-  Implementations are expected to use zend_error_noreturn upon failure.
-- Added a new zend_object_copy() function which increases the refcount of
-  a zend_object* and returns it. Allowing more descriptive code rather than
-  doing an assignment followed by GC_ADDREF().
-- Added zend_call_method_if_exists_ex() which accepts named parameters and
-  retrieving the callability failure error message.
-- The INIT_CLASS_ENTRY_INIT_METHODS() macro, which was previously used as
-  part of handling disabled classes, was removed following the removal of
-  the `disable_classes` INI setting in PHP 8.5.
-- Using zend_array_destroy() on HashTables with a custom pDestructor is not
-  allowed anymore. User-facing HashTables must have pDestructor = ZVAL_PTR_DTOR
-  or NULL, and must be freed with zend_array_destroy(). Other HashTables can be
-  freed with zend_hash_destroy() + pefree().
-- The ZTS symbols compiler_globals_offset and executor_globals_offset have been
-  removed: CG()/EG() now reach the globals through a __thread struct.
-- Removed zend_error_noreturn_unchecked().
+- Breaking changes:
+  . Added zend_module_entry.child_init_func, an optional void callback invoked
+    by php_child_init() in the child process after core child initialization.
+    It runs in module dependency order for started modules and may run before a
+    request starts or during an active request. Initialize it with a designated
+    initializer such as `.child_init_func = callback` after
+    STANDARD_MODULE_PROPERTIES_EX.
+  . Function pointer signature for interface_gets_implemented has been made
+    void. Implementations are expected to use zend_error_noreturn upon failure.
+  . Redefined ZEND_NORETURN to make use of the [[noreturn]] attribute for C++
+    and C23, which means that ZEND_NORETURN needs to come first in the modifier
+    list. Consider using noreturn (C11) / [[noreturn]] (C23) directly if
+    header interoperability is not required.
+  . Using zend_array_destroy() on HashTables with a custom pDestructor is not
+    allowed anymore. User-facing HashTables must have pDestructor = ZVAL_PTR_DTOR
+    or NULL, and must be freed with zend_array_destroy(). Other HashTables can
+    be freed with zend_hash_destroy() + pefree().
+
+- Removed:
+  . The ZEND_LOG_XOR() macro was removed.
+  . The ZEND_TRUTH() macro was removed.
+  . Removed zend_execute_scripts(). Manually call zend_execute_script() in a
+    loop instead.
+  . Removed ZEND_STATIC_ASSERT(). Use C11 static_assert() directly instead.
+  . Removed zend_atomic.h and the zend_atomic_* types and functions.
+    Use the standard C11 atomic_* types and functions instead.
+  . The zend_error_noreturn_unchecked() function was removed.
+  . The sapi_terminate_process() function was removed.
+  . The sapi_force_http_10() function was removed.
+  . The sapi_get_fd() function was removed.
+  . The sapi_get_target_uid() function was removed.
+  . The sapi_get_target_gid() function was removed.
+  . Removed zend_hrtime_posix_clock_id. zend_hrtime() always uses
+    CLOCK_MONOTONIC on POSIX platforms.
+  . The INIT_CLASS_ENTRY_INIT_METHODS() macro, which was previously used as
+    part of handling disabled classes, was removed following the removal of
+    the `disable_classes` INI setting in PHP 8.5.
+  . Removed HAVE_NORETURN and HAVE_NORETURN_ALIAS. ZEND_NORETURN is guaranteed
+    to work.
+  . The ZTS symbols compiler_globals_offset and executor_globals_offset have
+    been removed: CG()/EG() now reach the globals through a __thread struct.
+
+- Changed:
+  . The signature of zend_is_callable() has been changed to
+    zend_is_callable(const zval *callable, zend_fcall_info_cache *fcc, char **error)
+    from zend_is_callable(const zval *callable, uint32_t check_flags, zend_string **callable_name).
+    This new signature covers the most common parameters used with
+    zend_is_callable_ex().
+
+- Added:
+  . The zend_object_copy() function was added to increases the refcount of a
+    zend_object* and returns it. Allowing more descriptive code rather than
+    doing an assignment followed by GC_ADDREF().
+  . The zend_call_method_if_exists_ex() was added to accepts named parameters
+    and retrieving the callability failure error message.

 ========================
 2. Build system changes