diff --git a/docs/capabilities.md b/docs/capabilities.md index b2be2ec1db8..72a39cf40c6 100644 --- a/docs/capabilities.md +++ b/docs/capabilities.md @@ -15,10 +15,6 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `acosh` | yes | yes | yes | standard | | | `addcslashes` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `addslashes` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `array_all` | yes | yes | yes | standard | callbacks: string builtins/user functions/closure JIT/AOT (#3073); VM closure callbacks (#3086); JIT PHPT; AOT PHPT | -| `array_all_key` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `array_any` | yes | yes | yes | standard | callbacks: string builtins/user functions/closure JIT/AOT (#3073); VM closure callbacks (#3086); JIT PHPT; AOT PHPT | -| `array_any_key` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_change_key_case` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_chunk` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_column` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -32,10 +28,6 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `array_fill` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_fill_keys` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_filter` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `array_find` | yes | yes | yes | standard | callbacks: string builtins/user functions/closure JIT/AOT (#3073); VM closure callbacks (#3086); JIT PHPT | -| `array_find_key` | yes | yes | yes | standard | callbacks: string builtins/user functions/closure JIT/AOT (#3073); VM closure callbacks (#3086); JIT PHPT | -| `array_first` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `array_first_key` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_flip` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_intersect` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_intersect_assoc` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -47,8 +39,6 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `array_key_first` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_key_last` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_keys` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `array_last` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `array_last_key` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_map` | yes | yes | yes | standard | callbacks: null/string builtins JIT/AOT; VM closure callbacks (#3086, #1154); JIT PHPT; AOT PHPT | | `array_merge` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_merge_recursive` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -60,7 +50,6 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `array_rand` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_reduce` | yes | yes | yes | standard | callbacks: string user functions + closure/arrow JIT/AOT (#3531); php-src-strict invalid callback TypeError (#6679); JIT PHPT | | `array_replace` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `array_replace_key` | yes | yes | yes | standard | | | `array_replace_recursive` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_reverse` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `array_search` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -90,34 +79,14 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `atan` | yes | yes | yes | standard | AOT PHPT | | `atan2` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `atanh` | yes | yes | yes | standard | | -| `attribute_exists` | yes | yes | yes | standard | AOT PHPT | +| `attribute_exists` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0); AOT PHPT | | `base64_decode` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `base64_encode` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `base_convert` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `basename` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `bcadd` | yes | yes | yes | bcmath | AOT PHPT | -| `bcceil` | yes | yes | yes | bcmath | | -| `bccomp` | yes | yes | yes | bcmath | | -| `bcdiv` | yes | yes | yes | bcmath | | -| `bcdivmod` | yes | yes | yes | bcmath | AOT PHPT | -| `bcfloor` | yes | yes | yes | bcmath | | -| `bcmod` | yes | yes | yes | bcmath | AOT PHPT | -| `bcmul` | yes | yes | yes | bcmath | | -| `bcpow` | yes | yes | yes | bcmath | AOT PHPT | -| `bcpowmod` | yes | yes | yes | bcmath | | -| `bcround` | yes | yes | yes | bcmath | JIT PHPT; AOT PHPT | -| `bcscale` | yes | yes | yes | bcmath | | -| `bcsqrt` | yes | yes | yes | bcmath | AOT PHPT | -| `bcsub` | yes | yes | yes | bcmath | | | `bin2hex` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `bindec` | yes | yes | yes | standard | | | `boolval` | yes | yes | yes | standard | AOT PHPT | -| `bzclose` | yes | yes | yes | bz2 | | -| `bzcompress` | yes | yes | yes | bz2 | JIT PHPT | -| `bzdecompress` | yes | yes | yes | bz2 | JIT PHPT | -| `bzopen` | yes | yes | yes | bz2 | | -| `bzread` | yes | yes | yes | bz2 | | -| `bzwrite` | yes | yes | yes | bz2 | | | `call_user_func` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `call_user_func_array` | yes | yes | yes | standard | JIT PHPT | | `ceil` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -131,24 +100,16 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `chr` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `chroot` | yes | yes | yes | standard | JIT PHPT | | `chunk_split` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `clamp` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `class_alias` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `class_constants` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `class_exists` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `class_has_constant` | yes | yes | yes | standard | JIT PHPT | -| `class_has_lazy_object_initializer` | yes | yes | yes | standard | | -| `class_has_lazy_object_uninitializer` | yes | yes | yes | standard | | -| `class_has_method` | yes | yes | yes | standard | JIT PHPT | -| `class_has_property` | yes | yes | yes | standard | JIT PHPT | | `class_implements` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `class_meth_exists` | yes | yes | yes | standard | JIT PHPT | +| `class_meth_exists` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT | | `class_parents` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `class_uses` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `class_uses_recursive` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | +| `class_uses_recursive` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.3.0); JIT PHPT; AOT PHPT | | `clearstatcache` | yes | yes | yes | standard | JIT PHPT | | `cli_get_process_title` | yes | yes | yes | standard | JIT PHPT | | `cli_set_process_title` | yes | yes | yes | standard | JIT PHPT | -| `clock_gettime` | yes | yes | yes | standard | | | `closedir` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `closelog` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `compact` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -156,7 +117,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `connection_aborted` | yes | yes | yes | standard | JIT PHPT | | `connection_status` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `constant` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `convert_cyr_string` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | +| `convert_cyr_string` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.3.0); JIT PHPT; AOT PHPT | | `convert_uudecode` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `convert_uuencode` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `copy` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -165,9 +126,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `count` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `count_chars` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `crc32` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `crc32c` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `createLazyGhost` | no | yes | yes | standard | gated (8.4.0 ref) | -| `createLazyProxy` | no | yes | yes | standard | gated (8.4.0 ref) | +| `crc32c` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.3.0); JIT PHPT; AOT PHPT | | `crypt` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `ctype_alnum` | yes | yes | yes | ctype | JIT PHPT; AOT PHPT | | `ctype_alpha` | yes | yes | yes | ctype | JIT PHPT; AOT PHPT | @@ -254,7 +213,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `expm1` | yes | yes | yes | standard | AOT PHPT | | `extension_loaded` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `extract` | yes | yes | yes | standard | JIT PHPT | -| `fadd` | yes | yes | yes | standard | | +| `fadd` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0) | | `fclose` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `fdatasync` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `fdiv` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -292,16 +251,16 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `flock` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `floor` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `flush` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `fmax` | yes | yes | yes | standard | AOT PHPT | -| `fmin` | yes | yes | yes | standard | AOT PHPT | +| `fmax` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0); AOT PHPT | +| `fmin` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0); AOT PHPT | | `fmod` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `fmul` | yes | yes | yes | standard | | +| `fmul` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0) | | `fnmatch` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `fopen` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `forward_static_call` | yes | yes | yes | standard | | | `forward_static_call_array` | yes | yes | yes | standard | | | `fpassthru` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `fpow` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | +| `fpow` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT; AOT PHPT | | `fprintf` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `fputcsv` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `fputs` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -311,7 +270,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `fseek` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `fsockopen` | yes | yes | yes | standard | | | `fstat` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `fsub` | yes | yes | yes | standard | | +| `fsub` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0) | | `fsync` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `ftell` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `ftok` | yes | yes | yes | standard | JIT PHPT | @@ -327,7 +286,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `gc_enabled` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `gc_mem_caches` | yes | yes | yes | standard | JIT PHPT | | `gc_status` | yes | yes | yes | standard | JIT PHPT | -| `generator_to_array` | yes | yes | yes | standard | JIT PHPT | +| `generator_to_array` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT | | `get_browser` | yes | yes | yes | standard | | | `get_called_class` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `get_cfg_var` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -346,18 +305,14 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `get_defined_constants` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `get_defined_functions` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `get_defined_vars` | yes | yes | yes | standard | JIT PHPT | -| `get_error_handler` | yes | yes | yes | standard | AOT PHPT | -| `get_exception_handler` | yes | yes | yes | standard | AOT PHPT | | `get_extension_funcs` | yes | yes | yes | standard | AOT PHPT | | `get_headers` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `get_html_translation_table` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `get_include_path` | yes | yes | yes | standard | JIT PHPT | | `get_included_files` | yes | yes | yes | standard | JIT PHPT | -| `get_last_response_headers` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `get_loaded_extensions` | yes | yes | yes | standard | AOT PHPT | | `get_mangled_object_vars` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `get_meta_tags` | yes | yes | yes | standard | HTML meta name/content (VM + JIT/AOT MetaTagsRuntime) (#3703, #4608); JIT PHPT | -| `get_object_id` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `get_object_vars` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `get_parent_class` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `get_required_files` | yes | yes | yes | standard | JIT PHPT | @@ -376,7 +331,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `getlastmod` | yes | yes | yes | standard | AOT PHPT | | `getmxrr` | yes | yes | yes | standard | MX lookup via UDP DNS + compile-time JIT materializer (VM + JIT/AOT literals) (#4125, #3662); JIT PHPT; AOT PHPT | | `getmygid` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `getmygrgid` | yes | yes | yes | standard | AOT PHPT | +| `getmygrgid` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.3.0); AOT PHPT | | `getmyinode` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `getmypid` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `getmyuid` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -449,13 +404,11 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `hash_hmac_algos` | yes | yes | yes | standard | AOT PHPT | | `hash_pbkdf2` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `header` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `header_list` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `header_register_callback` | yes | yes | yes | standard | | | `header_remove` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `headers_list` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `headers_sent` | yes | yes | yes | standard | compile-time JIT deferred (#3120); AOT PHPT | | `hebrev` | yes | yes | yes | standard | JIT PHPT | -| `hebrevc` | yes | yes | yes | standard | JIT PHPT | | `hex2bin` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `hexdec` | yes | yes | yes | standard | JIT PHPT | | `highlight_file` | yes | yes | yes | standard | JIT PHPT | @@ -466,8 +419,6 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `htmlspecialchars` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `htmlspecialchars_decode` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `http_build_query` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `http_clear_last_response_headers` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `http_get_last_response_headers` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `http_response_code` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `hypot` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `iconv` | yes | yes | yes | iconv | JIT PHPT; AOT PHPT | @@ -502,6 +453,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `ip2long` | yes | yes | yes | standard | IPv4/IPv6 conversion (VM libc FFI + JIT/AOT libc) (#3225); JIT PHPT; AOT PHPT | | `iptcembed` | yes | yes | yes | standard | | | `iptcparse` | yes | yes | yes | standard | AOT PHPT | +| `isAnonymousClass` | no | no | no | reflection | impl present; gated (8.4.0 ref, since 8.4.0) | | `is_a` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `is_array` | yes | yes | yes | types | JIT PHPT; AOT PHPT | | `is_bool` | yes | yes | yes | types | JIT PHPT; AOT PHPT | @@ -552,9 +504,6 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `levenshtein` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `link` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `linkinfo` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `locale_get_primary_language` | yes | yes | yes | intl | JIT PHPT; AOT PHPT | -| `locale_get_region` | yes | yes | yes | intl | JIT PHPT; AOT PHPT | -| `locale_get_script` | yes | yes | yes | intl | JIT PHPT; AOT PHPT | | `localeconv` | yes | yes | yes | standard | | | `localtime` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `log` | yes | yes | yes | standard | AOT PHPT | @@ -585,18 +534,18 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `mb_http_output` | yes | yes | yes | mbstring | | | `mb_internal_encoding` | yes | yes | yes | mbstring | | | `mb_language` | yes | yes | yes | mbstring | | -| `mb_lcfirst` | yes | yes | yes | mbstring | | +| `mb_lcfirst` | no | no | no | mbstring | impl present; gated (8.4.0 ref, since 8.3.0) | | `mb_list_encodings` | yes | yes | yes | mbstring | | -| `mb_ltrim` | yes | yes | yes | mbstring | JIT PHPT; AOT PHPT | +| `mb_ltrim` | no | no | no | mbstring | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT; AOT PHPT | | `mb_ord` | yes | yes | yes | mbstring | | | `mb_preferred_mime_name` | yes | yes | yes | mbstring | | | `mb_regex_encoding` | yes | yes | yes | mbstring | | | `mb_regex_set_options` | yes | yes | yes | mbstring | | -| `mb_rtrim` | yes | yes | yes | mbstring | JIT PHPT; AOT PHPT | +| `mb_rtrim` | no | no | no | mbstring | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT; AOT PHPT | | `mb_scrub` | yes | yes | yes | mbstring | AOT PHPT | | `mb_send_mail` | yes | yes | yes | mbstring | | | `mb_split` | yes | yes | yes | mbstring | | -| `mb_str_pad` | yes | yes | yes | mbstring | JIT PHPT; AOT PHPT | +| `mb_str_pad` | no | no | no | mbstring | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT; AOT PHPT | | `mb_str_split` | yes | yes | yes | mbstring | | | `mb_strcut` | yes | yes | yes | mbstring | AOT PHPT | | `mb_strimwidth` | yes | yes | yes | mbstring | JIT PHPT; AOT PHPT | @@ -612,8 +561,8 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `mb_substitute_character` | yes | yes | yes | mbstring | | | `mb_substr` | yes | yes | yes | mbstring | | | `mb_substr_count` | yes | yes | yes | mbstring | | -| `mb_trim` | yes | yes | yes | mbstring | JIT PHPT; AOT PHPT | -| `mb_ucfirst` | yes | yes | yes | mbstring | JIT PHPT | +| `mb_trim` | no | no | no | mbstring | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT; AOT PHPT | +| `mb_ucfirst` | no | no | no | mbstring | impl present; gated (8.4.0 ref, since 8.3.0); JIT PHPT | | `md5` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `md5_file` | yes | yes | yes | standard | AOT PHPT | | `memcmp` | yes | yes | yes | standard | AOT PHPT | @@ -642,7 +591,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `natsort` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `net_get_interfaces` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `next` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `nextafter` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | +| `nextafter` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT; AOT PHPT | | `nl2br` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `nl_langinfo` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `number_format` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -824,14 +773,13 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `readline_redisplay` | yes | yes | yes | standard | | | `readline_write_history` | yes | yes | yes | standard | | | `readlink` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `readonly` | yes | yes | yes | standard | JIT PHPT | +| `readonly` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT | | `realpath` | yes | yes | yes | standard | AOT PHPT | | `realpath_cache_get` | yes | yes | yes | standard | JIT PHPT | | `realpath_cache_size` | yes | yes | yes | standard | JIT PHPT | | `register_shutdown_function` | yes | yes | yes | standard | compile-time JIT deferred (#3120); AOT PHPT | | `register_tick_function` | yes | yes | yes | standard | | | `rename` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `request_parse_body` | yes | yes | yes | standard | AOT PHPT | | `reset` | yes | yes | yes | standard | JIT PHPT | | `restore_error_handler` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `restore_exception_handler` | yes | yes | yes | standard | JIT PHPT | @@ -999,10 +947,8 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `stats_standard_deviation` | yes | yes | yes | stats | JIT PHPT; AOT PHPT | | `stats_variance` | yes | yes | yes | stats | | | `str_contains` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `str_decrement` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `str_ends_with` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `str_getcsv` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `str_increment` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `str_ireplace` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `str_pad` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `str_repeat` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -1027,7 +973,6 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `stream_context_get_params` | yes | yes | yes | standard | | | `stream_context_set_default` | yes | yes | yes | standard | JIT PHPT | | `stream_context_set_option` | yes | yes | yes | standard | | -| `stream_context_set_options` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `stream_context_set_params` | yes | yes | yes | standard | | | `stream_copy_to_stream` | yes | yes | yes | standard | JIT PHPT | | `stream_copy_to_string` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -1058,7 +1003,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `stream_socket_pair` | yes | yes | yes | standard | JIT PHPT | | `stream_socket_server` | yes | yes | yes | standard | | | `stream_socket_shutdown` | yes | yes | yes | standard | | -| `stream_supports` | yes | yes | yes | standard | AOT PHPT | +| `stream_supports` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.3.0); AOT PHPT | | `stream_supports_lock` | yes | yes | yes | standard | AOT PHPT | | `stream_wrapper_register` | yes | yes | yes | standard | JIT PHPT | | `stream_wrapper_restore` | yes | yes | yes | standard | JIT PHPT | @@ -1089,7 +1034,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `strtoupper` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `strtr` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `strval` | yes | yes | yes | standard | AOT PHPT | -| `strxfrm` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | +| `strxfrm` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.3.0); JIT PHPT; AOT PHPT | | `substr` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `substr_compare` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `substr_count` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | @@ -1127,7 +1072,7 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `uksort` | yes | yes | yes | standard | callbacks: strcmp JIT (ksort lowering); strcasecmp VM; VM closure comparator (#3086, #3143); JIT PHPT | | `umask` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `uniqid` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `unitenum_exists` | yes | yes | yes | standard | JIT PHPT | +| `unitenum_exists` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT | | `unlink` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `unpack` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `unregister_tick_function` | yes | yes | yes | standard | | @@ -1154,16 +1099,8 @@ Auto-generated by `script/capability-matrix.php`. Do not edit by hand. | `web_int` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `web_string` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `wordwrap` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | -| `zend_thread_id` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | +| `zend_thread_id` | no | no | no | standard | impl present; gated (8.4.0 ref, since 8.4.0); JIT PHPT; AOT PHPT | | `zend_version` | yes | yes | yes | standard | JIT PHPT | -| `zip_close` | yes | yes | yes | zip | | -| `zip_entry_close` | yes | yes | yes | zip | | -| `zip_entry_filesize` | yes | yes | yes | zip | | -| `zip_entry_name` | yes | yes | yes | zip | | -| `zip_entry_open` | yes | yes | yes | zip | | -| `zip_entry_read` | yes | yes | yes | zip | | -| `zip_open` | yes | yes | yes | zip | | -| `zip_read` | yes | yes | yes | zip | | | `zlib_decode` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `zlib_encode` | yes | yes | yes | standard | JIT PHPT; AOT PHPT | | `zlib_get_coding_type` | yes | yes | yes | standard | |