Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
18 changes: 17 additions & 1 deletion build/gen_stub.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,15 @@
const PHP_82_VERSION_ID = 80200;
const PHP_83_VERSION_ID = 80300;
const PHP_84_VERSION_ID = 80400;
const PHP_85_VERSION_ID = 80500;
const ALL_PHP_VERSION_IDS = [
PHP_70_VERSION_ID,
PHP_80_VERSION_ID,
PHP_81_VERSION_ID,
PHP_82_VERSION_ID,
PHP_83_VERSION_ID,
PHP_84_VERSION_ID,
PHP_85_VERSION_ID,
];

/**
Expand Down Expand Up @@ -1541,6 +1543,7 @@ private function getArginfoFlagsByPhpVersions(): array
PHP_82_VERSION_ID => $php82AndAboveFlags,
PHP_83_VERSION_ID => $php82AndAboveFlags,
PHP_84_VERSION_ID => $php82AndAboveFlags,
PHP_85_VERSION_ID => $php82AndAboveFlags,
];
}

Expand Down Expand Up @@ -2342,6 +2345,7 @@ protected function getFlagsByPhpVersion(): array
PHP_82_VERSION_ID => [$flags],
PHP_83_VERSION_ID => [$flags],
PHP_84_VERSION_ID => [$flags],
PHP_85_VERSION_ID => [$flags],
];
}

Expand Down Expand Up @@ -2925,6 +2929,12 @@ class PropertyInfo extends VariableLike
"set" => "ZEND_STR_SET",
];

// NEW in 8.5
private const PHP_85_KNOWN = [
"self" => "ZEND_STR_SELF",
"parent" => "ZEND_STR_PARENT",
];

/**
* @var AttributeInfo[] $attributes
*/
Expand Down Expand Up @@ -3068,6 +3078,10 @@ private function getString(string $propName): array {
}
$include = self::PHP_80_KNOWN;
switch ($minPhp) {
case PHP_85_VERSION_ID:
$include = array_merge($include, self::PHP_85_KNOWN);
// Intentional fall through

case PHP_84_VERSION_ID:
$include = array_merge($include, self::PHP_84_KNOWN);
// Intentional fall through
Expand Down Expand Up @@ -3546,6 +3560,7 @@ private function getFlagsByPhpVersion(): array

$php83Flags = $php82Flags;
$php84Flags = $php83Flags;
$php85Flags = $php84Flags;

return [
PHP_70_VERSION_ID => $php70Flags,
Expand All @@ -3554,6 +3569,7 @@ private function getFlagsByPhpVersion(): array
PHP_82_VERSION_ID => $php82Flags,
PHP_83_VERSION_ID => $php83Flags,
PHP_84_VERSION_ID => $php84Flags,
PHP_85_VERSION_ID => $php85Flags,
];
}

Expand Down Expand Up @@ -4930,7 +4946,7 @@ protected function pName_FullyQualified(Name\FullyQualified $node): string {
throw new Exception(
"Legacy PHP version must be one of: \"" . PHP_70_VERSION_ID . "\" (PHP 7.0), \"" . PHP_80_VERSION_ID . "\" (PHP 8.0), " .
"\"" . PHP_81_VERSION_ID . "\" (PHP 8.1), \"" . PHP_82_VERSION_ID . "\" (PHP 8.2), \"" . PHP_83_VERSION_ID . "\" (PHP 8.3), " .
"\"" . PHP_84_VERSION_ID . "\" (PHP 8.4), \"" . $tag->value . "\" provided"
"\"" . PHP_84_VERSION_ID . "\" (PHP 8.4), \"" . PHP_85_VERSION_ID . "\" (PHP 8.5), \"" . $tag->value . "\" provided"
);
}

Expand Down
4 changes: 1 addition & 3 deletions main/debug_gdb_scripts.c
Original file line number Diff line number Diff line change
Expand Up @@ -849,12 +849,10 @@ asm(
".ascii \" if int(c) != 0:\\n\"\n"
".ascii \" c = c.dereference()\\n\"\n"
".ascii \" yield ('child[%d]' % i, c)\\n\"\n"
".ascii \" elif field.name == 'name':\\n\"\n"
".ascii \" yield (field.name, format_zstr(val[field.name]))\\n\"\n"
".ascii \" elif field.name == 'val':\\n\"\n"
".ascii \" yield (field.name, ZvalPrettyPrinter(val[field.name]).to_string())\\n\"\n"
".ascii \" else:\\n\"\n"
".ascii \" yield (field.name, format_nested(self.val[field.name]))\\n\"\n"
".ascii \" yield (field.name, format_nested(val[field.name]))\\n\"\n"
".ascii \"\\n\"\n"
".ascii \" def is_special(self):\\n\"\n"
".ascii \" special_shift = 6 # ZEND_AST_SPECIAL_SHIFT\\n\"\n"
Expand Down
4 changes: 2 additions & 2 deletions run-tests.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ function show_usage(): void

-w <file> Write a list of all failed tests to <file>.

-a <file> Same as -w but append rather then truncating <file>.
-a <file> Same as -w but append rather than truncating <file>.

-W <file> Write a list of all tests and their result status to <file>.

Expand Down Expand Up @@ -90,7 +90,7 @@ function show_usage(): void
--temp-source <sdir> --temp-target <tdir> [--temp-urlbase <url>]
Write temporary files to <tdir> by replacing <sdir> from the
filenames to generate with <tdir>. In general you want to make
<sdir> the path to your source files and <tdir> some patch in
<sdir> the path to your source files and <tdir> some path in
your web page hierarchy with <url> pointing to <tdir>.

--keep-[all|php|skip|clean]
Expand Down
4 changes: 1 addition & 3 deletions scripts/gdb/php_gdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,12 +179,10 @@ def children(self):
if int(c) != 0:
c = c.dereference()
yield ('child[%d]' % i, c)
elif field.name == 'name':
yield (field.name, format_zstr(val[field.name]))
elif field.name == 'val':
yield (field.name, ZvalPrettyPrinter(val[field.name]).to_string())
else:
yield (field.name, format_nested(self.val[field.name]))
yield (field.name, format_nested(val[field.name]))

def is_special(self):
special_shift = 6 # ZEND_AST_SPECIAL_SHIFT
Expand Down
Loading