summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2020-06-25 08:23:30 +0200
committerRemi Collet <remi@remirepo.net>2020-06-25 08:23:30 +0200
commit15e92b89ae2fea7d8d2d5b4888a6a16be857ef02 (patch)
tree6b7e7280dbefbcdfb53b39b4705951602b2cb70d
parentfd4d14fb9d92a61266483239aba5c692be9c573d (diff)
add upstream patch to use hash in gen_stub.phpHEADmaster
-rw-r--r--c9b9f525a929158736977d6bad938380cad29cc6.patch1357
-rw-r--r--php-8.0.0-parser.patch14
-rw-r--r--php.spec13
3 files changed, 1372 insertions, 12 deletions
diff --git a/c9b9f525a929158736977d6bad938380cad29cc6.patch b/c9b9f525a929158736977d6bad938380cad29cc6.patch
new file mode 100644
index 0000000..f95fcb0
--- /dev/null
+++ b/c9b9f525a929158736977d6bad938380cad29cc6.patch
@@ -0,0 +1,1357 @@
+From c9b9f525a929158736977d6bad938380cad29cc6 Mon Sep 17 00:00:00 2001
+From: Nikita Popov <nikita.ppv@gmail.com>
+Date: Fri, 19 Jun 2020 11:40:31 +0200
+Subject: [PATCH] Include stub hash in generated arginfo files
+
+The hash is used to check whether the arginfo file needs to be
+regenerated. PHP-Parser will only be downloaded if this is actually
+necessary.
+
+This ensures that release artifacts will never try to regenerate
+stubs and thus fetch PHP-Parser, as long as you do not modify any
+files.
+
+Closes GH-5739.
+---
+ Zend/zend_builtin_functions_arginfo.h | 3 +-
+ Zend/zend_closures_arginfo.h | 3 +-
+ Zend/zend_exceptions_arginfo.h | 3 +-
+ Zend/zend_generators_arginfo.h | 3 +-
+ Zend/zend_interfaces_arginfo.h | 3 +-
+ Zend/zend_weakrefs_arginfo.h | 3 +-
+ build/gen_stub.php | 76 ++++++++++++-------
+ ext/bcmath/bcmath_arginfo.h | 3 +-
+ ext/bz2/bz2_arginfo.h | 3 +-
+ ext/calendar/calendar_arginfo.h | 3 +-
+ ext/com_dotnet/com_extension_arginfo.h | 3 +-
+ ext/com_dotnet/com_persist_arginfo.h | 3 +-
+ ext/ctype/ctype_arginfo.h | 3 +-
+ ext/curl/curl_arginfo.h | 3 +-
+ ext/curl/curl_file_arginfo.h | 3 +-
+ ext/date/php_date_arginfo.h | 3 +-
+ ext/dba/dba_arginfo.h | 3 +-
+ ext/dom/php_dom_arginfo.h | 3 +-
+ ext/enchant/enchant_arginfo.h | 3 +-
+ ext/exif/exif_arginfo.h | 3 +-
+ ext/ffi/ffi_arginfo.h | 3 +-
+ ext/fileinfo/fileinfo_arginfo.h | 3 +-
+ ext/filter/filter_arginfo.h | 3 +-
+ ext/ftp/ftp_arginfo.h | 3 +-
+ ext/gd/gd_arginfo.h | 3 +-
+ ext/gettext/gettext_arginfo.h | 3 +-
+ ext/gmp/gmp_arginfo.h | 3 +-
+ ext/hash/hash_arginfo.h | 3 +-
+ ext/iconv/iconv_arginfo.h | 3 +-
+ ext/imap/php_imap_arginfo.h | 3 +-
+ .../breakiterator/breakiterator_arginfo.h | 3 +-
+ ext/intl/calendar/calendar_arginfo.h | 3 +-
+ ext/intl/collator/collator_arginfo.h | 3 +-
+ ext/intl/common/common_arginfo.h | 3 +-
+ ext/intl/converter/converter_arginfo.h | 3 +-
+ ext/intl/dateformat/dateformat_arginfo.h | 3 +-
+ ext/intl/formatter/formatter_arginfo.h | 3 +-
+ ext/intl/locale/locale_arginfo.h | 3 +-
+ ext/intl/msgformat/msgformat_arginfo.h | 3 +-
+ ext/intl/normalizer/normalizer_arginfo.h | 3 +-
+ ext/intl/php_intl_arginfo.h | 3 +-
+ .../resourcebundle/resourcebundle_arginfo.h | 3 +-
+ ext/intl/spoofchecker/spoofchecker_arginfo.h | 3 +-
+ ext/intl/timezone/timezone_arginfo.h | 3 +-
+ .../transliterator/transliterator_arginfo.h | 3 +-
+ ext/intl/uchar/uchar_arginfo.h | 3 +-
+ ext/json/json_arginfo.h | 3 +-
+ ext/ldap/ldap_arginfo.h | 3 +-
+ ext/libxml/libxml_arginfo.h | 3 +-
+ ext/mbstring/mbstring_arginfo.h | 3 +-
+ ext/mysqli/mysqli_arginfo.h | 3 +-
+ ext/odbc/odbc_arginfo.h | 3 +-
+ ext/opcache/opcache_arginfo.h | 3 +-
+ ext/openssl/openssl_arginfo.h | 3 +-
+ ext/pcntl/pcntl_arginfo.h | 3 +-
+ ext/pcre/php_pcre_arginfo.h | 3 +-
+ ext/pdo/pdo_arginfo.h | 3 +-
+ ext/pdo/pdo_dbh_arginfo.h | 3 +-
+ ext/pdo/pdo_stmt_arginfo.h | 3 +-
+ ext/phar/phar_object_arginfo.h | 3 +-
+ ext/posix/posix_arginfo.h | 3 +-
+ ext/pspell/pspell_arginfo.h | 3 +-
+ ext/readline/readline_arginfo.h | 3 +-
+ ext/reflection/php_reflection_arginfo.h | 3 +-
+ ext/session/session_arginfo.h | 3 +-
+ ext/shmop/shmop_arginfo.h | 3 +-
+ ext/simplexml/simplexml_arginfo.h | 3 +-
+ ext/simplexml/sxe_arginfo.h | 3 +-
+ ext/skeleton/skeleton_arginfo.h | 3 +-
+ ext/snmp/snmp_arginfo.h | 3 +-
+ ext/soap/soap_arginfo.h | 3 +-
+ ext/sockets/sockets_arginfo.h | 3 +-
+ ext/sodium/libsodium_arginfo.h | 3 +-
+ ext/spl/php_spl_arginfo.h | 3 +-
+ ext/spl/spl_array_arginfo.h | 3 +-
+ ext/spl/spl_directory_arginfo.h | 3 +-
+ ext/spl/spl_dllist_arginfo.h | 3 +-
+ ext/spl/spl_fixedarray_arginfo.h | 3 +-
+ ext/spl/spl_heap_arginfo.h | 3 +-
+ ext/spl/spl_iterators_arginfo.h | 3 +-
+ ext/spl/spl_observer_arginfo.h | 3 +-
+ ext/sqlite3/sqlite3_arginfo.h | 3 +-
+ ext/standard/basic_functions_arginfo.h | 3 +-
+ ext/standard/dir_arginfo.h | 3 +-
+ ext/standard/dl_arginfo.h | 3 +-
+ ext/standard/user_filters_arginfo.h | 3 +-
+ ext/sysvmsg/sysvmsg_arginfo.h | 3 +-
+ ext/sysvsem/sysvsem_arginfo.h | 3 +-
+ ext/sysvshm/sysvshm_arginfo.h | 3 +-
+ ext/tidy/tidy_arginfo.h | 3 +-
+ ext/tokenizer/tokenizer_arginfo.h | 3 +-
+ ext/xml/xml_arginfo.h | 3 +-
+ ext/xmlreader/php_xmlreader_arginfo.h | 3 +-
+ ext/xmlwriter/php_xmlwriter_arginfo.h | 3 +-
+ ext/xsl/php_xsl_arginfo.h | 3 +-
+ ext/zend_test/test_arginfo.h | 3 +-
+ ext/zip/php_zip_arginfo.h | 3 +-
+ ext/zlib/zlib_arginfo.h | 3 +-
+ sapi/apache2handler/php_functions_arginfo.h | 3 +-
+ sapi/fpm/fpm/fpm_main_arginfo.h | 3 +-
+ sapi/litespeed/lsapi_main_arginfo.h | 3 +-
+ sapi/phpdbg/phpdbg_arginfo.h | 3 +-
+ 102 files changed, 250 insertions(+), 129 deletions(-)
+
+diff --git a/Zend/zend_builtin_functions_arginfo.h b/Zend/zend_builtin_functions_arginfo.h
+index 0fa4ba7f4585..df1f06888ee9 100644
+--- a/Zend/zend_builtin_functions_arginfo.h
++++ b/Zend/zend_builtin_functions_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: dbaaf894f10b6f3c880d08e138dead309f6ed5a4 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_version, 0, 0, IS_STRING, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/Zend/zend_closures_arginfo.h b/Zend/zend_closures_arginfo.h
+index 85802bbfb4cd..14c262773196 100644
+--- a/Zend/zend_closures_arginfo.h
++++ b/Zend/zend_closures_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 3352191f3a07009ef853829816a3209156afb0bc */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Closure___construct, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/Zend/zend_exceptions_arginfo.h b/Zend/zend_exceptions_arginfo.h
+index db114fbeaad2..6a226954a0c8 100644
+--- a/Zend/zend_exceptions_arginfo.h
++++ b/Zend/zend_exceptions_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 7eb20393f4ca314324d9813983124f724189ce8a */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Throwable_getMessage, 0, 0, IS_STRING, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/Zend/zend_generators_arginfo.h b/Zend/zend_generators_arginfo.h
+index c87ef2c93702..22084d9feb9a 100644
+--- a/Zend/zend_generators_arginfo.h
++++ b/Zend/zend_generators_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 18d2bb68729ff622a5c0c124a8822f7ee882c2ec */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Generator_rewind, 0, 0, IS_VOID, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/Zend/zend_interfaces_arginfo.h b/Zend/zend_interfaces_arginfo.h
+index c8f78ce3bd91..1c197d73db7d 100644
+--- a/Zend/zend_interfaces_arginfo.h
++++ b/Zend/zend_interfaces_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 6ec9a1d6d8035af94bdd4953e47bb18164ee2b59 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IteratorAggregate_getIterator, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/Zend/zend_weakrefs_arginfo.h b/Zend/zend_weakrefs_arginfo.h
+index 445163525154..3f668b4e0867 100644
+--- a/Zend/zend_weakrefs_arginfo.h
++++ b/Zend/zend_weakrefs_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 7ce222b1a257fc3d524dc5cd123ac102a0dca2bc */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_WeakReference___construct, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/build/gen_stub.php b/build/gen_stub.php
+index eb00b3413645..bd30913b69a4 100755
+--- a/build/gen_stub.php
++++ b/build/gen_stub.php
+@@ -12,20 +12,6 @@
+
+ error_reporting(E_ALL);
+
+-try {
+- initPhpParser();
+-} catch (Exception $e) {
+- echo "{$e->getMessage()}\n";
+- exit(1);
+-}
+-
+-class CustomPrettyPrinter extends Standard
+-{
+- protected function pName_FullyQualified(Name\FullyQualified $node) {
+- return implode('\\', $node->parts);
+- }
+-}
+-
+ function processDirectory(string $dir) {
+ $it = new RecursiveIteratorIterator(
+ new RecursiveDirectoryIterator($dir),
+@@ -40,11 +26,23 @@ function processDirectory(string $dir) {
+ }
+
+ function processStubFile(string $stubFile) {
+- $arginfoFile = str_replace('.stub.php', '', $stubFile) . '_arginfo.h';
+-
+ try {
+- $fileInfo = parseStubFile($stubFile);
+- $arginfoCode = generateArgInfoCode($fileInfo);
++ if (!file_exists($stubFile)) {
++ throw new Exception("File $stubFile does not exist");
++ }
++
++ $arginfoFile = str_replace('.stub.php', '', $stubFile) . '_arginfo.h';
++ $stubCode = file_get_contents($stubFile);
++ $stubHash = computeStubHash($stubCode);
++ $oldStubHash = extractStubHash($arginfoFile);
++ if ($stubHash === $oldStubHash) {
++ /* Stub file did not change, do not regenerate. */
++ return;
++ }
++
++ initPhpParser();
++ $fileInfo = parseStubFile($stubCode);
++ $arginfoCode = generateArgInfoCode($fileInfo, $stubHash);
+ file_put_contents($arginfoFile, $arginfoCode);
+ } catch (Exception $e) {
+ echo "In $stubFile:\n{$e->getMessage()}\n";
+@@ -52,6 +50,23 @@ function processStubFile(string $stubFile) {
+ }
+ }
+
++function computeStubHash(string $stubCode): string {
++ return sha1(str_replace("\r\n", "\n", $stubCode));
++}
++
++function extractStubHash(string $arginfoFile): ?string {
++ if (!file_exists($arginfoFile)) {
++ return null;
++ }
++
++ $arginfoCode = file_get_contents($arginfoFile);
++ if (!preg_match('/\* Stub hash: ([0-9a-f]+) \*/', $arginfoCode, $matches)) {
++ return null;
++ }
++
++ return $matches[1];
++}
++
+ class SimpleType {
+ /** @var string */
+ public $name;
+@@ -737,18 +752,16 @@ function getFileDocComment(array $stmts): ?DocComment {
+ return null;
+ }
+
+-function parseStubFile(string $fileName): FileInfo {
+- if (!file_exists($fileName)) {
+- throw new Exception("File $fileName does not exist");
+- }
+-
+- $code = file_get_contents($fileName);
+-
++function parseStubFile(string $code): FileInfo {
+ $lexer = new PhpParser\Lexer();
+ $parser = new PhpParser\Parser\Php7($lexer);
+ $nodeTraverser = new PhpParser\NodeTraverser;
+ $nodeTraverser->addVisitor(new PhpParser\NodeVisitor\NameResolver);
+- $prettyPrinter = new CustomPrettyPrinter();
++ $prettyPrinter = new class extends Standard {
++ protected function pName_FullyQualified(Name\FullyQualified $node) {
++ return implode('\\', $node->parts);
++ }
++ };
+
+ $stmts = $parser->parse($code);
+ $nodeTraverser->traverse($stmts);
+@@ -948,8 +961,9 @@ function generateCodeWithConditions(
+ return $code;
+ }
+
+-function generateArgInfoCode(FileInfo $fileInfo): string {
+- $code = "/* This is a generated file, edit the .stub.php file instead. */\n";
++function generateArgInfoCode(FileInfo $fileInfo, string $stubHash): string {
++ $code = "/* This is a generated file, edit the .stub.php file instead.\n"
++ . " * Stub hash: $stubHash */\n";
+ $generatedFuncInfos = [];
+ $code .= generateCodeWithConditions(
+ $fileInfo->getAllFuncInfos(), "\n",
+@@ -1055,6 +1069,12 @@ function installPhpParser(string $version, string $phpParserDir) {
+ }
+
+ function initPhpParser() {
++ static $isInitialized = false;
++ if ($isInitialized) {
++ return;
++ }
++
++ $isInitialized = true;
+ $version = "4.3.0";
+ $phpParserDir = __DIR__ . "/PHP-Parser-$version";
+ if (!is_dir($phpParserDir)) {
+diff --git a/ext/bcmath/bcmath_arginfo.h b/ext/bcmath/bcmath_arginfo.h
+index 46fc5ff9bd3e..83956366a282 100644
+--- a/ext/bcmath/bcmath_arginfo.h
++++ b/ext/bcmath/bcmath_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: a1e223f29a06a2292a88c0e90e104cb956f80500 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_bcadd, 0, 2, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, left_operand, IS_STRING, 0)
+diff --git a/ext/bz2/bz2_arginfo.h b/ext/bz2/bz2_arginfo.h
+index 03fe9eb8f0bd..322aaf7215cc 100644
+--- a/ext/bz2/bz2_arginfo.h
++++ b/ext/bz2/bz2_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: a5c534b7cd92619dfa0fdf29bd0a94fcda27f089 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_bzopen, 0, 0, 2)
+ ZEND_ARG_INFO(0, file)
+diff --git a/ext/calendar/calendar_arginfo.h b/ext/calendar/calendar_arginfo.h
+index 620f3daec3b6..22f259833b6c 100644
+--- a/ext/calendar/calendar_arginfo.h
++++ b/ext/calendar/calendar_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 1ace9d7ae3e505ae2e14323e21fa6ac0a490896d */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_cal_days_in_month, 0, 3, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, calendar, IS_LONG, 0)
+diff --git a/ext/com_dotnet/com_extension_arginfo.h b/ext/com_dotnet/com_extension_arginfo.h
+index f4b924358ce1..4ee6d3750469 100644
+--- a/ext/com_dotnet/com_extension_arginfo.h
++++ b/ext/com_dotnet/com_extension_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 965dcbb494d51bb3fd41a2898a1c53d7478fd699 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_variant_set, 0, 2, IS_VOID, 0)
+ ZEND_ARG_OBJ_INFO(0, variant, variant, 0)
+diff --git a/ext/com_dotnet/com_persist_arginfo.h b/ext/com_dotnet/com_persist_arginfo.h
+index 0abd6505de68..87b41f83f550 100644
+--- a/ext/com_dotnet/com_persist_arginfo.h
++++ b/ext/com_dotnet/com_persist_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 69de4fb111796d28e92e16630221e2d02817e742 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_COMPersistHelper___construct, 0, 0, 1)
+ ZEND_ARG_OBJ_INFO(0, com_object, VARIANT, 1)
+diff --git a/ext/ctype/ctype_arginfo.h b/ext/ctype/ctype_arginfo.h
+index 6529fd503ed4..4ee065b03bfd 100644
+--- a/ext/ctype/ctype_arginfo.h
++++ b/ext/ctype/ctype_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: a5de84e1cb6919e7dfc69a42b7f05967ebca24c3 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ctype_alnum, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, text)
+diff --git a/ext/curl/curl_arginfo.h b/ext/curl/curl_arginfo.h
+index d779493aa89d..30f2e839a815 100644
+--- a/ext/curl/curl_arginfo.h
++++ b/ext/curl/curl_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: ca65615cacfe914f3511007fd393169ffededf34 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_close, 0, 1, IS_VOID, 0)
+ ZEND_ARG_OBJ_INFO(0, handle, CurlHandle, 0)
+diff --git a/ext/curl/curl_file_arginfo.h b/ext/curl/curl_file_arginfo.h
+index f387589f6a14..526bd322f505 100644
+--- a/ext/curl/curl_file_arginfo.h
++++ b/ext/curl/curl_file_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 2dbca0eed1723e959b2a56d6035239b189f52495 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CURLFile___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+diff --git a/ext/date/php_date_arginfo.h b/ext/date/php_date_arginfo.h
+index e3fa98281127..5c002c2b3749 100644
+--- a/ext/date/php_date_arginfo.h
++++ b/ext/date/php_date_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 51ffecfc0b15a2368719d5a76fa6788b3a36887e */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_strtotime, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, time, IS_STRING, 0)
+diff --git a/ext/dba/dba_arginfo.h b/ext/dba/dba_arginfo.h
+index ae4b84cd946d..bc8532e9a6b1 100644
+--- a/ext/dba/dba_arginfo.h
++++ b/ext/dba/dba_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 3f28cb0c990d15e6d2f34c40c2f0219b11d2d5e4 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_dba_popen, 0, 0, 2)
+ ZEND_ARG_INFO(0, path)
+diff --git a/ext/dom/php_dom_arginfo.h b/ext/dom/php_dom_arginfo.h
+index c7fd0c81df44..5e3051111887 100644
+--- a/ext/dom/php_dom_arginfo.h
++++ b/ext/dom/php_dom_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: b5bb577aa2608cc62fa56852ab2433ec03c7fc26 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_dom_import_simplexml, 0, 1, DOMElement, 1)
+ ZEND_ARG_TYPE_INFO(0, node, IS_OBJECT, 0)
+diff --git a/ext/enchant/enchant_arginfo.h b/ext/enchant/enchant_arginfo.h
+index cb1644e0aa2b..adbbc3779fda 100644
+--- a/ext/enchant/enchant_arginfo.h
++++ b/ext/enchant/enchant_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 5a67e10da7a70552110e807118a33d1d7bb028da */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_enchant_broker_init, 0, 0, EnchantBroker, MAY_BE_FALSE)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/exif/exif_arginfo.h b/ext/exif/exif_arginfo.h
+index 5627e3d0ed2c..dfe2d97e9b11 100644
+--- a/ext/exif/exif_arginfo.h
++++ b/ext/exif/exif_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 603888c5295306e86fabce6d6f5367376c666cfe */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_exif_tagname, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
+diff --git a/ext/ffi/ffi_arginfo.h b/ext/ffi/ffi_arginfo.h
+index 10468cb0e712..7a14a6e12a0a 100644
+--- a/ext/ffi/ffi_arginfo.h
++++ b/ext/ffi/ffi_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: e66d306e0dbe08ec3d66935c69ab9e36b9b8165a */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_FFI_cdef, 0, 0, FFI, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, code, IS_STRING, 0, "\"\"")
+diff --git a/ext/fileinfo/fileinfo_arginfo.h b/ext/fileinfo/fileinfo_arginfo.h
+index 1f948ee3339e..95fe4fc98bf7 100644
+--- a/ext/fileinfo/fileinfo_arginfo.h
++++ b/ext/fileinfo/fileinfo_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: b8bfd01bd5a9a181550160e39c50a8cc047f15cd */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_finfo_open, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "FILEINFO_NONE")
+diff --git a/ext/filter/filter_arginfo.h b/ext/filter/filter_arginfo.h
+index bf615fc847de..00d18092500f 100644
+--- a/ext/filter/filter_arginfo.h
++++ b/ext/filter/filter_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 54d4bb809e05c73a1a16174bce578377f7cd8f31 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_filter_has_var, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
+diff --git a/ext/ftp/ftp_arginfo.h b/ext/ftp/ftp_arginfo.h
+index 738f8e9284d3..9383bce47647 100644
+--- a/ext/ftp/ftp_arginfo.h
++++ b/ext/ftp/ftp_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 0bbaf1b0aed026d0ed32274bc1084b363528bb61 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_connect, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, host, IS_STRING, 0)
+diff --git a/ext/gd/gd_arginfo.h b/ext/gd/gd_arginfo.h
+index eb60f889ef88..b8e95e7cd988 100644
+--- a/ext/gd/gd_arginfo.h
++++ b/ext/gd/gd_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: ce2eb70f449197eca39ca5d8c53ee1369577b035 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gd_info, 0, 0, IS_ARRAY, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/gettext/gettext_arginfo.h b/ext/gettext/gettext_arginfo.h
+index c36f178d1d31..678fcf704dcc 100644
+--- a/ext/gettext/gettext_arginfo.h
++++ b/ext/gettext/gettext_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 29c84ba2a2aa940baec3bd32503fc7c8e67885fe */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_textdomain, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, domain, IS_STRING, 1)
+diff --git a/ext/gmp/gmp_arginfo.h b/ext/gmp/gmp_arginfo.h
+index 4cb06da28ef4..520820424149 100644
+--- a/ext/gmp/gmp_arginfo.h
++++ b/ext/gmp/gmp_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 3f96612dbbeac0ae619461e400e91b3a15e0cd9c */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_gmp_init, 0, 1, GMP, MAY_BE_FALSE)
+ ZEND_ARG_INFO(0, number)
+diff --git a/ext/hash/hash_arginfo.h b/ext/hash/hash_arginfo.h
+index 13e95aa03092..c09fd1200162 100644
+--- a/ext/hash/hash_arginfo.h
++++ b/ext/hash/hash_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 2972dfa9fbf8c83557614063a68c2f1500fa5955 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_hash, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, algo, IS_STRING, 0)
+diff --git a/ext/iconv/iconv_arginfo.h b/ext/iconv/iconv_arginfo.h
+index 8c50c2332b60..3702e5739bdf 100644
+--- a/ext/iconv/iconv_arginfo.h
++++ b/ext/iconv/iconv_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 4e26168b04450adf510a4e638184c46757679ac1 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_iconv_strlen, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
+diff --git a/ext/imap/php_imap_arginfo.h b/ext/imap/php_imap_arginfo.h
+index 4631c1c2c55b..fd1f7efef24f 100644
+--- a/ext/imap/php_imap_arginfo.h
++++ b/ext/imap/php_imap_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 1105c40befb73bbc51cc9438d53404801338a15c */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_imap_open, 0, 0, 3)
+ ZEND_ARG_TYPE_INFO(0, mailbox, IS_STRING, 0)
+diff --git a/ext/intl/breakiterator/breakiterator_arginfo.h b/ext/intl/breakiterator/breakiterator_arginfo.h
+index 659cb21407af..6c9f574d1e48 100644
+--- a/ext/intl/breakiterator/breakiterator_arginfo.h
++++ b/ext/intl/breakiterator/breakiterator_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 3e28f27c89a4f03e9d67d78f4103e16128673e27 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlBreakIterator_createCharacterInstance, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, locale, IS_STRING, 1, "null")
+diff --git a/ext/intl/calendar/calendar_arginfo.h b/ext/intl/calendar/calendar_arginfo.h
+index 056b2b687165..d80500a88721 100644
+--- a/ext/intl/calendar/calendar_arginfo.h
++++ b/ext/intl/calendar/calendar_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: e9aea4eb45aba216347d3cf821cf5adebc217ba1 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar___construct, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/intl/collator/collator_arginfo.h b/ext/intl/collator/collator_arginfo.h
+index 8e2660cfe90b..7d045b35a8be 100644
+--- a/ext/intl/collator/collator_arginfo.h
++++ b/ext/intl/collator/collator_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 95fee5001472494653e6a83467c3c0079ea70728 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Collator___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
+diff --git a/ext/intl/common/common_arginfo.h b/ext/intl/common/common_arginfo.h
+index 00cad34620f7..08679923cb05 100644
+--- a/ext/intl/common/common_arginfo.h
++++ b/ext/intl/common/common_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: cf905a693064ae31b6434e84f6c63bf7c9b804a6 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlIterator_current, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/intl/converter/converter_arginfo.h b/ext/intl/converter/converter_arginfo.h
+index 8cfc756be62e..5a72ad68eeef 100644
+--- a/ext/intl/converter/converter_arginfo.h
++++ b/ext/intl/converter/converter_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 3c63c9077f864e122292eef8655489549de9277a */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_UConverter___construct, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, destination_encoding, IS_STRING, 1, "null")
+diff --git a/ext/intl/dateformat/dateformat_arginfo.h b/ext/intl/dateformat/dateformat_arginfo.h
+index 08bea3335ded..0dadfd9dd06d 100644
+--- a/ext/intl/dateformat/dateformat_arginfo.h
++++ b/ext/intl/dateformat/dateformat_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 86faf2e51b67db2801ce691d4d24bfdae5feb6fc */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlDateFormatter___construct, 0, 0, 3)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 1)
+diff --git a/ext/intl/formatter/formatter_arginfo.h b/ext/intl/formatter/formatter_arginfo.h
+index 7336fa1b44f0..051a98f941e9 100644
+--- a/ext/intl/formatter/formatter_arginfo.h
++++ b/ext/intl/formatter/formatter_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 3ff6f141d025bccb37ff597089f00bcc72462627 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_NumberFormatter___construct, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
+diff --git a/ext/intl/locale/locale_arginfo.h b/ext/intl/locale/locale_arginfo.h
+index dd8fd4e1d6c1..9a6e27d48d9a 100644
+--- a/ext/intl/locale/locale_arginfo.h
++++ b/ext/intl/locale/locale_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 6d010c8797cbf11f12f13ce37eb8b36633bdbafb */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Locale_getDefault, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/intl/msgformat/msgformat_arginfo.h b/ext/intl/msgformat/msgformat_arginfo.h
+index 3ee79eadec60..efbc1e7d6994 100644
+--- a/ext/intl/msgformat/msgformat_arginfo.h
++++ b/ext/intl/msgformat/msgformat_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: ffa9513a18a634b034b0490bc712d097dc8d36e8 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_MessageFormatter___construct, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 0)
+diff --git a/ext/intl/normalizer/normalizer_arginfo.h b/ext/intl/normalizer/normalizer_arginfo.h
+index aee7284c8b42..82006f52ea75 100644
+--- a/ext/intl/normalizer/normalizer_arginfo.h
++++ b/ext/intl/normalizer/normalizer_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: a1f54793e243d30e75cefd4f9aea17f1509a9c8d */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Normalizer_normalize, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, input, IS_STRING, 0)
+diff --git a/ext/intl/php_intl_arginfo.h b/ext/intl/php_intl_arginfo.h
+index 9f8b0c12db52..2e16d16be776 100644
+--- a/ext/intl/php_intl_arginfo.h
++++ b/ext/intl/php_intl_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: f5411cdc67ac288183c4210932b222c406bfe254 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_intlcal_create_instance, 0, 0, IntlCalendar, 1)
+ ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, timeZone, "null")
+diff --git a/ext/intl/resourcebundle/resourcebundle_arginfo.h b/ext/intl/resourcebundle/resourcebundle_arginfo.h
+index 524e41e0bb28..4060cdea5948 100644
+--- a/ext/intl/resourcebundle/resourcebundle_arginfo.h
++++ b/ext/intl/resourcebundle/resourcebundle_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 4bc15bffefcb91a7462dc8c66508f8d16b1c6c49 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ResourceBundle___construct, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, locale, IS_STRING, 1)
+diff --git a/ext/intl/spoofchecker/spoofchecker_arginfo.h b/ext/intl/spoofchecker/spoofchecker_arginfo.h
+index c32fe376c443..26ca66080a7e 100644
+--- a/ext/intl/spoofchecker/spoofchecker_arginfo.h
++++ b/ext/intl/spoofchecker/spoofchecker_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: dbcdb94753d19921594c48a735d6bd9194b02996 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Spoofchecker___construct, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/intl/timezone/timezone_arginfo.h b/ext/intl/timezone/timezone_arginfo.h
+index 58dbecf28d9e..494c46391b5d 100644
+--- a/ext/intl/timezone/timezone_arginfo.h
++++ b/ext/intl/timezone/timezone_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: df98b2edbdf806c52a9c165b52124b6b0de7acb2 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlTimeZone___construct, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/intl/transliterator/transliterator_arginfo.h b/ext/intl/transliterator/transliterator_arginfo.h
+index 66ec56e5e041..d596fdc72c50 100644
+--- a/ext/intl/transliterator/transliterator_arginfo.h
++++ b/ext/intl/transliterator/transliterator_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 52c803e82863ebdbe7a2fdcbe8508fb22984cbfd */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Transliterator___construct, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/intl/uchar/uchar_arginfo.h b/ext/intl/uchar/uchar_arginfo.h
+index 006e14fa2490..6f0175b803e1 100644
+--- a/ext/intl/uchar/uchar_arginfo.h
++++ b/ext/intl/uchar/uchar_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 2f9658fe9c23180244786ed48a5ca542b7ed95ea */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlChar_hasBinaryProperty, 0, 0, 2)
+ ZEND_ARG_TYPE_MASK(0, codepoint, MAY_BE_LONG|MAY_BE_STRING, NULL)
+diff --git a/ext/json/json_arginfo.h b/ext/json/json_arginfo.h
+index 9514abf19f5f..bbcebf2a0b90 100644
+--- a/ext/json/json_arginfo.h
++++ b/ext/json/json_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 7dbc9b323b73714227d91cc9566cc3c0c90cd7be */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_json_encode, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
+diff --git a/ext/ldap/ldap_arginfo.h b/ext/ldap/ldap_arginfo.h
+index 9c63bda1a46f..1ecbc2e3955a 100644
+--- a/ext/ldap/ldap_arginfo.h
++++ b/ext/ldap/ldap_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 53051e130a22dc519676c7a91529d2f9f7d1e6ad */
+
+ #if defined(HAVE_ORALDAP)
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_ldap_connect, 0, 0, 0)
+diff --git a/ext/libxml/libxml_arginfo.h b/ext/libxml/libxml_arginfo.h
+index 5d28e7df7e57..bf4bc2c01dd3 100644
+--- a/ext/libxml/libxml_arginfo.h
++++ b/ext/libxml/libxml_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 2d793e5134ea8633c432f03d20c1d8b80a05795b */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_libxml_set_streams_context, 0, 1, IS_VOID, 0)
+ ZEND_ARG_INFO(0, context)
+diff --git a/ext/mbstring/mbstring_arginfo.h b/ext/mbstring/mbstring_arginfo.h
+index 47f0f2db44e4..9eabe3b7ea92 100644
+--- a/ext/mbstring/mbstring_arginfo.h
++++ b/ext/mbstring/mbstring_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 0be93f43fd04fb04e07076006a5c1a94bf6afad0 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mb_language, 0, 0, MAY_BE_STRING|MAY_BE_BOOL)
+ ZEND_ARG_TYPE_INFO(0, language, IS_STRING, 0)
+diff --git a/ext/mysqli/mysqli_arginfo.h b/ext/mysqli/mysqli_arginfo.h
+index b3329c6be64d..cb307a6743df 100644
+--- a/ext/mysqli/mysqli_arginfo.h
++++ b/ext/mysqli/mysqli_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 1d194e0ef5dbdbf6ab0fb5512ee42dfad08ea5a0 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_mysqli_affected_rows, 0, 1, MAY_BE_LONG|MAY_BE_STRING)
+ ZEND_ARG_OBJ_INFO(0, mysql_link, mysqli, 0)
+diff --git a/ext/odbc/odbc_arginfo.h b/ext/odbc/odbc_arginfo.h
+index 9e41b0433ab2..69cdfa9148d3 100644
+--- a/ext/odbc/odbc_arginfo.h
++++ b/ext/odbc/odbc_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 4abab509eb27b93c15f03313e80c90400f7948d0 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_odbc_close_all, 0, 0, IS_VOID, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/opcache/opcache_arginfo.h b/ext/opcache/opcache_arginfo.h
+index f3013efa9662..82ca83fd81f0 100644
+--- a/ext/opcache/opcache_arginfo.h
++++ b/ext/opcache/opcache_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 64f07c411732f60fed22267ee5e702a37e399879 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_opcache_reset, 0, 0, _IS_BOOL, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/openssl/openssl_arginfo.h b/ext/openssl/openssl_arginfo.h
+index 77df5ca20610..e9442fbdf717 100644
+--- a/ext/openssl/openssl_arginfo.h
++++ b/ext/openssl/openssl_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 0d04e9173f45a10b9f6614b79029d96a528bec49 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_openssl_x509_export_to_file, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, x509)
+diff --git a/ext/pcntl/pcntl_arginfo.h b/ext/pcntl/pcntl_arginfo.h
+index a07033065f6e..31dc8613c034 100644
+--- a/ext/pcntl/pcntl_arginfo.h
++++ b/ext/pcntl/pcntl_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: c87eae3de097554566cf3e285c1a2542947d6ff9 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pcntl_fork, 0, 0, IS_LONG, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/pcre/php_pcre_arginfo.h b/ext/pcre/php_pcre_arginfo.h
+index 52a48798c17d..b63bfd5856e0 100644
+--- a/ext/pcre/php_pcre_arginfo.h
++++ b/ext/pcre/php_pcre_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 2e7402e33a485cd3c1a74c0d6210214b3e7c4e9a */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_preg_match, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, pattern, IS_STRING, 0)
+diff --git a/ext/pdo/pdo_arginfo.h b/ext/pdo/pdo_arginfo.h
+index fd3aebfa9c70..1dda2fd42ace 100644
+--- a/ext/pdo/pdo_arginfo.h
++++ b/ext/pdo/pdo_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 5f8d0ae7732bdca8c60638021c4368f55d62826f */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_pdo_drivers, 0, 0, IS_ARRAY, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/pdo/pdo_dbh_arginfo.h b/ext/pdo/pdo_dbh_arginfo.h
+index 1f9e7c33f4a8..6e67ad0bf730 100644
+--- a/ext/pdo/pdo_dbh_arginfo.h
++++ b/ext/pdo/pdo_dbh_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 38748c44d78c0173218bcb771b466d2a04bc87ad */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDO___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, dsn, IS_STRING, 0)
+diff --git a/ext/pdo/pdo_stmt_arginfo.h b/ext/pdo/pdo_stmt_arginfo.h
+index 2f4a9f63c108..f1b0f2fe06ad 100644
+--- a/ext/pdo/pdo_stmt_arginfo.h
++++ b/ext/pdo/pdo_stmt_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 30b801be462ed1e60e34f937e6dd746184866028 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_PDOStatement_bindColumn, 0, 0, 2)
+ ZEND_ARG_TYPE_MASK(0, column, MAY_BE_LONG|MAY_BE_STRING, NULL)
+diff --git a/ext/phar/phar_object_arginfo.h b/ext/phar/phar_object_arginfo.h
+index c0cf1a9c63f5..8c6294d32463 100644
+--- a/ext/phar/phar_object_arginfo.h
++++ b/ext/phar/phar_object_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: fd4f05b74248e4f7efb234cac8e3a90e17037ee0 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Phar___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+diff --git a/ext/posix/posix_arginfo.h b/ext/posix/posix_arginfo.h
+index 06dad22c62dc..fc6f34593e8f 100644
+--- a/ext/posix/posix_arginfo.h
++++ b/ext/posix/posix_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 8b74b3201e5a89a25d69753f3078e72ec0395500 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_posix_kill, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO(0, pid, IS_LONG, 0)
+diff --git a/ext/pspell/pspell_arginfo.h b/ext/pspell/pspell_arginfo.h
+index f09b2db79f2b..7fe58664415c 100644
+--- a/ext/pspell/pspell_arginfo.h
++++ b/ext/pspell/pspell_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 83cadd382dfcccf598b743dfdccad09eb39e30c2 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pspell_new, 0, 1, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, language, IS_STRING, 0)
+diff --git a/ext/readline/readline_arginfo.h b/ext/readline/readline_arginfo.h
+index 989163efd534..1b547aeefb9c 100644
+--- a/ext/readline/readline_arginfo.h
++++ b/ext/readline/readline_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 00f57c17d30b8071c9e3e231f5c9e0376799ed48 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_readline, 0, 0, MAY_BE_STRING|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, prompt, IS_STRING, 1, "null")
+diff --git a/ext/reflection/php_reflection_arginfo.h b/ext/reflection/php_reflection_arginfo.h
+index ce3c69de09ac..89047a96f49b 100644
+--- a/ext/reflection/php_reflection_arginfo.h
++++ b/ext/reflection/php_reflection_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 36c0a18b7bd07ac8835ae9130f2495eceac0a176 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Reflection_getModifierNames, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, modifiers, IS_LONG, 0)
+diff --git a/ext/session/session_arginfo.h b/ext/session/session_arginfo.h
+index 69f54cf851f7..10556941acbc 100644
+--- a/ext/session/session_arginfo.h
++++ b/ext/session/session_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: c026a3449eacd0873d72423483d375d40105e9a0 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_session_name, 0, 0, MAY_BE_STRING|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, name, IS_STRING, 1, "null")
+diff --git a/ext/shmop/shmop_arginfo.h b/ext/shmop/shmop_arginfo.h
+index 8832596db1db..39f8615783cb 100644
+--- a/ext/shmop/shmop_arginfo.h
++++ b/ext/shmop/shmop_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: a2e7d50e79d253e7136a54222346341003cc3b04 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_shmop_open, 0, 0, 4)
+ ZEND_ARG_TYPE_INFO(0, key, IS_LONG, 0)
+diff --git a/ext/simplexml/simplexml_arginfo.h b/ext/simplexml/simplexml_arginfo.h
+index 1a3845076495..6e3414595625 100644
+--- a/ext/simplexml/simplexml_arginfo.h
++++ b/ext/simplexml/simplexml_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: f74d2fc54ca25216f1b54b0776c480d5e8d297fb */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_simplexml_load_file, 0, 1, SimpleXMLElement, MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+diff --git a/ext/simplexml/sxe_arginfo.h b/ext/simplexml/sxe_arginfo.h
+index c21cf3da24cc..9c76e7dbf5d4 100644
+--- a/ext/simplexml/sxe_arginfo.h
++++ b/ext/simplexml/sxe_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 1ac1e57f7ec3e8a0340b74f0497e1eb9a2b7f663 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SimpleXMLIterator_rewind, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/skeleton/skeleton_arginfo.h b/ext/skeleton/skeleton_arginfo.h
+index 3aab40365ca3..9157c66bfd7b 100644
+--- a/ext/skeleton/skeleton_arginfo.h
++++ b/ext/skeleton/skeleton_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 7eb3fd4083c98e6dffc8b02b6373b7ce9cbf228d */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_test1, 0, 0, IS_VOID, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/snmp/snmp_arginfo.h b/ext/snmp/snmp_arginfo.h
+index ed907a7dbda8..b12f4f8a249b 100644
+--- a/ext/snmp/snmp_arginfo.h
++++ b/ext/snmp/snmp_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 2b0a8233a01de36e93c025bc40c3a2f707825595 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_snmpget, 0, 3, MAY_BE_ARRAY|MAY_BE_BOOL)
+ ZEND_ARG_TYPE_INFO(0, host, IS_STRING, 0)
+diff --git a/ext/soap/soap_arginfo.h b/ext/soap/soap_arginfo.h
+index f22e76a47dc7..d012bc4d06a3 100644
+--- a/ext/soap/soap_arginfo.h
++++ b/ext/soap/soap_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 43878ddb4f96ee0a2f409b87bb1484fc5378cfb5 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_use_soap_error_handler, 0, 0, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, handler, _IS_BOOL, 0, "true")
+diff --git a/ext/sockets/sockets_arginfo.h b/ext/sockets/sockets_arginfo.h
+index 3c8e91d0ec2d..36aa16733e17 100644
+--- a/ext/sockets/sockets_arginfo.h
++++ b/ext/sockets/sockets_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 4494f9f246dbc98047d97d913cc1add9f91eb0ff */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_select, 0, 4, MAY_BE_LONG|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(1, read_fds, IS_ARRAY, 1)
+diff --git a/ext/sodium/libsodium_arginfo.h b/ext/sodium/libsodium_arginfo.h
+index 8d902747dee6..518490618eb7 100644
+--- a/ext/sodium/libsodium_arginfo.h
++++ b/ext/sodium/libsodium_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 1cbca4f3d58dea842b4ea419df57531682ab984d */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sodium_crypto_aead_aes256gcm_is_available, 0, 0, _IS_BOOL, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/spl/php_spl_arginfo.h b/ext/spl/php_spl_arginfo.h
+index 419dc965c699..6e3caac7b618 100644
+--- a/ext/spl/php_spl_arginfo.h
++++ b/ext/spl/php_spl_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: cc1dc8de91f503a88cc7bc47ad239957c2de8303 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_implements, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE)
+ ZEND_ARG_INFO(0, what)
+diff --git a/ext/spl/spl_array_arginfo.h b/ext/spl/spl_array_arginfo.h
+index 11aa7dfc8349..5d0b1f3943a5 100644
+--- a/ext/spl/spl_array_arginfo.h
++++ b/ext/spl/spl_array_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 1230e3161d7c7fb549c5ac2ec5cde2dec585d849 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ArrayObject___construct, 0, 0, 0)
+ ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, input, "[]")
+diff --git a/ext/spl/spl_directory_arginfo.h b/ext/spl/spl_directory_arginfo.h
+index 49fdb709ceb0..0f167f7f19df 100644
+--- a/ext/spl/spl_directory_arginfo.h
++++ b/ext/spl/spl_directory_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: d6b772ea08c57acdea65e983098f5bc4168daaa6 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFileInfo___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, file_name, IS_STRING, 0)
+diff --git a/ext/spl/spl_dllist_arginfo.h b/ext/spl/spl_dllist_arginfo.h
+index 7e1b327a8b7d..70435e7e9010 100644
+--- a/ext/spl/spl_dllist_arginfo.h
++++ b/ext/spl/spl_dllist_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 9d2c9ec251d72065d4502bbbc29e927c6b597731 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplDoublyLinkedList_add, 0, 0, 2)
+ ZEND_ARG_INFO(0, index)
+diff --git a/ext/spl/spl_fixedarray_arginfo.h b/ext/spl/spl_fixedarray_arginfo.h
+index d76db04a5ea1..056b8119df06 100644
+--- a/ext/spl/spl_fixedarray_arginfo.h
++++ b/ext/spl/spl_fixedarray_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: a14156d542422823fcee53eb8a151576d055f38f */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplFixedArray___construct, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, size, IS_LONG, 0, "0")
+diff --git a/ext/spl/spl_heap_arginfo.h b/ext/spl/spl_heap_arginfo.h
+index f0b196788b52..0febb0fea786 100644
+--- a/ext/spl/spl_heap_arginfo.h
++++ b/ext/spl/spl_heap_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 7f0aaeba31232e23367618eae98398fa41ac6ef5 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplPriorityQueue_compare, 0, 0, 2)
+ ZEND_ARG_INFO(0, priority1)
+diff --git a/ext/spl/spl_iterators_arginfo.h b/ext/spl/spl_iterators_arginfo.h
+index 5a2bb25ed286..66d4382cbed9 100644
+--- a/ext/spl/spl_iterators_arginfo.h
++++ b/ext/spl/spl_iterators_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: fcf9d56587eb60bdc7824ff7587a5c7365eee5c0 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_EmptyIterator_current, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/spl/spl_observer_arginfo.h b/ext/spl/spl_observer_arginfo.h
+index 2cbe125246ca..9bd54867e1ae 100644
+--- a/ext/spl/spl_observer_arginfo.h
++++ b/ext/spl/spl_observer_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 22aaae107ec0c1c81a3f7135ffd7d22507437c57 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SplObserver_update, 0, 0, 1)
+ ZEND_ARG_OBJ_INFO(0, subject, SplSubject, 0)
+diff --git a/ext/sqlite3/sqlite3_arginfo.h b/ext/sqlite3/sqlite3_arginfo.h
+index ecc934c69072..a723e32ef06c 100644
+--- a/ext/sqlite3/sqlite3_arginfo.h
++++ b/ext/sqlite3/sqlite3_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: ded6aa03b742cbcf95943a6acb1101a0b700f30c */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SQLite3___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+diff --git a/ext/standard/basic_functions_arginfo.h b/ext/standard/basic_functions_arginfo.h
+index 7c12e8d3575f..204b1b49dc4c 100755
+--- a/ext/standard/basic_functions_arginfo.h
++++ b/ext/standard/basic_functions_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 8890ebea8b2391a8614b844e8e1abc04a988eeb8 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_set_time_limit, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO(0, seconds, IS_LONG, 0)
+diff --git a/ext/standard/dir_arginfo.h b/ext/standard/dir_arginfo.h
+index 5c806faf2bc2..68571fe8be73 100644
+--- a/ext/standard/dir_arginfo.h
++++ b/ext/standard/dir_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: ae14c81d7c4642412440f6236b34b7c7c0143911 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Directory_close, 0, 0, 0)
+ ZEND_ARG_INFO(0, dir_handle)
+diff --git a/ext/standard/dl_arginfo.h b/ext/standard/dl_arginfo.h
+index b1adadfa32f9..889e95282cea 100644
+--- a/ext/standard/dl_arginfo.h
++++ b/ext/standard/dl_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 7dac6edd98e3e17669ae4bf0be7db89678059ca0 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dl, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO(0, extension_filename, IS_STRING, 0)
+diff --git a/ext/standard/user_filters_arginfo.h b/ext/standard/user_filters_arginfo.h
+index 84cbbf3cbb33..08e5e4074832 100644
+--- a/ext/standard/user_filters_arginfo.h
++++ b/ext/standard/user_filters_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 61e071b8e6d9a2ed02a9667cfa16a97fcd9d7bd4 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_php_user_filter_filter, 0, 0, 4)
+ ZEND_ARG_INFO(0, in)
+diff --git a/ext/sysvmsg/sysvmsg_arginfo.h b/ext/sysvmsg/sysvmsg_arginfo.h
+index 30d08d968c7e..33423e45b760 100644
+--- a/ext/sysvmsg/sysvmsg_arginfo.h
++++ b/ext/sysvmsg/sysvmsg_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: a4e2f362d86b38827fbbea640e6b8db215c2e4aa */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_msg_get_queue, 0, 1, SysvMessageQueue, MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_LONG, 0)
+diff --git a/ext/sysvsem/sysvsem_arginfo.h b/ext/sysvsem/sysvsem_arginfo.h
+index d1500b81b632..d4666d640122 100644
+--- a/ext/sysvsem/sysvsem_arginfo.h
++++ b/ext/sysvsem/sysvsem_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: a9de9877facd28112e1fe21cf7c6f1c7fdc8014d */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_sem_get, 0, 1, SysvSemaphore, MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_LONG, 0)
+diff --git a/ext/sysvshm/sysvshm_arginfo.h b/ext/sysvshm/sysvshm_arginfo.h
+index 95c5128bbafe..4e0078038cc3 100644
+--- a/ext/sysvshm/sysvshm_arginfo.h
++++ b/ext/sysvshm/sysvshm_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 9a57af33a6658387f706ea121612c0f0eb55e5b3 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_shm_attach, 0, 1, SysvSharedMemory, MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, key, IS_LONG, 0)
+diff --git a/ext/tidy/tidy_arginfo.h b/ext/tidy/tidy_arginfo.h
+index 84ecbb07d82d..aa845fdedb01 100644
+--- a/ext/tidy/tidy_arginfo.h
++++ b/ext/tidy/tidy_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 962dc7537b44115477b38efaefefa352e06b13bf */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_tidy_parse_string, 0, 1, tidy, MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, input, IS_STRING, 0)
+diff --git a/ext/tokenizer/tokenizer_arginfo.h b/ext/tokenizer/tokenizer_arginfo.h
+index 76f17a76ce70..1194f2838a4b 100644
+--- a/ext/tokenizer/tokenizer_arginfo.h
++++ b/ext/tokenizer/tokenizer_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 4591855b4c387a2868d5287b28c5050bf828c79f */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_token_get_all, 0, 1, IS_ARRAY, 0)
+ ZEND_ARG_TYPE_INFO(0, source, IS_STRING, 0)
+diff --git a/ext/xml/xml_arginfo.h b/ext/xml/xml_arginfo.h
+index e567bbea154b..15006f70f091 100644
+--- a/ext/xml/xml_arginfo.h
++++ b/ext/xml/xml_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 57266ea46516213cf727b960a3fbd15f95649af0 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_xml_parser_create, 0, 0, XmlParser, MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 1, "null")
+diff --git a/ext/xmlreader/php_xmlreader_arginfo.h b/ext/xmlreader/php_xmlreader_arginfo.h
+index 83a5ce6a2285..749d8066f41c 100644
+--- a/ext/xmlreader/php_xmlreader_arginfo.h
++++ b/ext/xmlreader/php_xmlreader_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 8bdec18c4ad8574fb1d3e4baca928949d5ec2438 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_XMLReader_close, 0, 0, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/xmlwriter/php_xmlwriter_arginfo.h b/ext/xmlwriter/php_xmlwriter_arginfo.h
+index 39de351d06b2..c59a4e6073fe 100644
+--- a/ext/xmlwriter/php_xmlwriter_arginfo.h
++++ b/ext/xmlwriter/php_xmlwriter_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: c4717d4f5dafe071fb78799993db1e733d45470a */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_xmlwriter_open_uri, 0, 1, XMLWriter, MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, uri, IS_STRING, 0)
+diff --git a/ext/xsl/php_xsl_arginfo.h b/ext/xsl/php_xsl_arginfo.h
+index 8093a9316fc7..d707c72a7dba 100644
+--- a/ext/xsl/php_xsl_arginfo.h
++++ b/ext/xsl/php_xsl_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 13fd80938fec3bea7ac4bbcfb6e0b69b230fba72 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_XSLTProcessor_importStylesheet, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, stylesheet, IS_OBJECT, 0)
+diff --git a/ext/zend_test/test_arginfo.h b/ext/zend_test/test_arginfo.h
+index 495539bfbff4..334d9caea311 100644
+--- a/ext/zend_test/test_arginfo.h
++++ b/ext/zend_test/test_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: a61df45ef2431d449b0ac546640101db8ce66445 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_array_return, 0, 0, IS_ARRAY, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/ext/zip/php_zip_arginfo.h b/ext/zip/php_zip_arginfo.h
+index c25bd97759de..25157d8d7bfc 100644
+--- a/ext/zip/php_zip_arginfo.h
++++ b/ext/zip/php_zip_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 95608dd1d6c2ad80ada990a9e939b76dba705d48 */
+
+ ZEND_BEGIN_ARG_INFO_EX(arginfo_zip_open, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+diff --git a/ext/zlib/zlib_arginfo.h b/ext/zlib/zlib_arginfo.h
+index 2a5112391ed8..134fe9729b47 100644
+--- a/ext/zlib/zlib_arginfo.h
++++ b/ext/zlib/zlib_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: ee70bdd414ad35521ea24384e22ab05e641d81e0 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_ob_gzhandler, 0, 2, MAY_BE_STRING|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0)
+diff --git a/sapi/apache2handler/php_functions_arginfo.h b/sapi/apache2handler/php_functions_arginfo.h
+index 739afbbc8b7c..83dae8c6ef9b 100644
+--- a/sapi/apache2handler/php_functions_arginfo.h
++++ b/sapi/apache2handler/php_functions_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 3226aed29f13aa8146066a88e58ac2147ad8b500 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_apache_lookup_uri, 0, 1, MAY_BE_OBJECT|MAY_BE_FALSE)
+ ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+diff --git a/sapi/fpm/fpm/fpm_main_arginfo.h b/sapi/fpm/fpm/fpm_main_arginfo.h
+index 52e34d4a9df7..709ee60df245 100644
+--- a/sapi/fpm/fpm/fpm_main_arginfo.h
++++ b/sapi/fpm/fpm/fpm_main_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 0888f3ba14649f0be06d47410221381bace54936 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_fastcgi_finish_request, 0, 0, _IS_BOOL, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/sapi/litespeed/lsapi_main_arginfo.h b/sapi/litespeed/lsapi_main_arginfo.h
+index 4198c43519c8..2b7e8624353d 100644
+--- a/sapi/litespeed/lsapi_main_arginfo.h
++++ b/sapi/litespeed/lsapi_main_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 6b6b8e58c728236218c31addc4d855e87d645178 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_litespeed_request_headers, 0, 0, IS_ARRAY, 0)
+ ZEND_END_ARG_INFO()
+diff --git a/sapi/phpdbg/phpdbg_arginfo.h b/sapi/phpdbg/phpdbg_arginfo.h
+index c3e91fdab2c6..a4ee52d81423 100644
+--- a/sapi/phpdbg/phpdbg_arginfo.h
++++ b/sapi/phpdbg/phpdbg_arginfo.h
+@@ -1,4 +1,5 @@
+-/* This is a generated file, edit the .stub.php file instead. */
++/* This is a generated file, edit the .stub.php file instead.
++ * Stub hash: 3fd1a8c30695df2089655b1785905381734ac1c1 */
+
+ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_phpdbg_break_next, 0, 0, IS_VOID, 0)
+ ZEND_END_ARG_INFO()
diff --git a/php-8.0.0-parser.patch b/php-8.0.0-parser.patch
index cb676e9..4260b50 100644
--- a/php-8.0.0-parser.patch
+++ b/php-8.0.0-parser.patch
@@ -1,14 +1,16 @@
-diff -up ./build/gen_stub.php.old ./build/gen_stub.php
---- ./build/gen_stub.php.old 2020-06-24 15:29:13.503969177 +0200
-+++ ./build/gen_stub.php 2020-06-24 15:29:17.627958935 +0200
-@@ -1055,6 +1055,10 @@ function installPhpParser(string $versio
- }
+diff -up ./build/gen_stub.php.syslib ./build/gen_stub.php
+--- ./build/gen_stub.php.syslib 2020-06-25 08:11:51.782046813 +0200
++++ ./build/gen_stub.php 2020-06-25 08:13:11.188860368 +0200
+@@ -1075,6 +1075,12 @@ function initPhpParser() {
+ }
- function initPhpParser() {
+ $isInitialized = true;
++
+ if (file_exists('/usr/share/php/PhpParser4/autoload.php')) {
+ require_once '/usr/share/php/PhpParser4/autoload.php';
+ return;
+ }
++
$version = "4.3.0";
$phpParserDir = __DIR__ . "/PHP-Parser-$version";
if (!is_dir($phpParserDir)) {
diff --git a/php.spec b/php.spec
index 26f15c2..5e12d62 100644
--- a/php.spec
+++ b/php.spec
@@ -108,7 +108,7 @@
Summary: PHP scripting language for creating dynamic web sites
Name: %{?scl_prefix}php
Version: %{upver}%{?lower:~%{lower}}%{?gh_date:.%{gh_date}}
-Release: 21%{?dist}
+Release: 22%{?dist}
# All files licensed under PHP version 3.01, except
# Zend is licensed under Zend
# TSRM is licensed under BSD
@@ -166,6 +166,7 @@ Patch47: php-5.6.3-phpinfo.patch
Patch91: php-7.2.0-oci8conf.patch
# Upstream fixes (100+)
+Patch100: https://github.com/php/php-src/commit/c9b9f525a929158736977d6bad938380cad29cc6.patch
# Security fixes (200+)
@@ -872,6 +873,8 @@ in pure PHP.
%patch9 -p1 -b .curltls
%endif
+%patch100 -p1 -b .up100
+
%patch41 -p1 -b .syslib
%if 0%{?fedora} >= 30 || 0%{?rhel} >= 6
%patch42 -p1 -b .systzdata
@@ -1011,11 +1014,6 @@ sed -e 's:%{_root_sysconfdir}:%{_sysconfdir}:' \
sed -e 's:%{_root_datadir}:%{_datadir}:' \
-i 20-ffi.ini
-# Temp workaround see https://github.com/php/php-src/pull/5739
-for i in $(find ext sapi Zend -name \*stub.php); do
- touch -c -r $i ${i/.stub.php/_arginfo.h}
-done
-
%if 0%{!?scl:1}
: SCL macro not defined
exit 1
@@ -1751,6 +1749,9 @@ fi
%changelog
+* Thu Jun 25 2020 Remi Collet <remi@remirepo.net> - 8.0.0~alpha1-22
+- add upstream patch to use hash in gen_stub.php
+
* Wed Jun 24 2020 Remi Collet <remi@remirepo.net> - 8.0.0~alpha1-21
- use system nikic/php-parser if available to generate
C headers from PHP stub