History log of /PHP-8.4/Zend/zend_vm_def.h (Results 201 – 225 of 1935)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: php-7.4.6, php-7.2.31, php-7.4.6RC1, php-7.3.18RC1, php-7.2.30, php-7.4.5, php-7.3.17
# d92229d8 06-Apr-2020 Nikita Popov

Implement named parameters

From an engine perspective, named parameters mainly add three
concepts:

* The SEND_* opcodes now accept a CONST op2, which is the
argument nam

Implement named parameters

From an engine perspective, named parameters mainly add three
concepts:

* The SEND_* opcodes now accept a CONST op2, which is the
argument name. For now, it is looked up by linear scan and
runtime cached.
* This may leave UNDEF arguments on the stack. To avoid having
to deal with them in other places, a CHECK_UNDEF_ARGS opcode
is used to either replace them with defaults, or error.
* For variadic functions, EX(extra_named_params) are collected
and need to be freed based on ZEND_CALL_HAS_EXTRA_NAMED_PARAMS.

RFC: https://wiki.php.net/rfc/named_params

Closes GH-5357.

show more ...


# a6e63b42 31-Jul-2020 Nikita Popov

Make check in RECV_VARIADIC more precise

Fetch arg_info only once (it's always the same one...) and check
ZEND_TYPE_IS_SET on it, rather than checking if *any* parameter
has a type.


# 9bf11983 24-May-2020 Ilija Tovilo

Implement nullsafe ?-> operator

RFC: https://wiki.php.net/rfc/nullsafe_operator

Closes GH-5619.

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>


# 213852de 13-Jul-2020 Nikita Popov

Fixed bug #79828


# d30cd7d7 26-May-2020 Máté Kocsis

Review the usage of apostrophes in error messages

Closes GH-5590


# 65568467 10-Jul-2020 Nikita Popov

Fixed bug #79818

Only destroy the variable directly before reassigning it. The
value could be read in the meantime.


# 9fa1d133 09-Apr-2020 Ilija Tovilo

Implement match expression

RFC: https://wiki.php.net/rfc/match_expression_v2

Closes GH-5371.


# 613a56d1 09-Jul-2020 Nikita Popov

Remove FREE_UNFETCHED concept

In master normal FREE_OPs work like FREE_UNFETCHED_OP used to, so
there is no point in keeping this distinction anymore, it's just
confusing.


# 8318379d 09-Jul-2020 Nikita Popov

Switch back to FREE_UNFETCHED_OP_DATA

Some of the code paths leading to this do not fetch op data.
Hopefully this fixes the release build failure.


# 5795dfda 09-Jul-2020 Nikita Popov

Fix bug #79599 in a different way

Move the emission of the undefined variable notice before the
array separation.


# 5d0687e8 07-Jul-2020 Nikita Popov

Assert exception set in HANDLE_EXCEPTION()

Some code paths were checking this manually, but we can turn this
into a general assertion to avoid surprises (functions returning
failure

Assert exception set in HANDLE_EXCEPTION()

Some code paths were checking this manually, but we can turn this
into a general assertion to avoid surprises (functions returning
failure without throwing).

show more ...


# 49396f81 04-Jul-2020 Nikita Popov

Fixed bug #79777


Revision tags: php-7.4.5RC1, php-7.3.17RC1, php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16
# 75a04eac 06-Mar-2020 Nikita Popov

Make exit() unwind properly

exit() is now internally implemented by throwing an exception,
performing a normal stack unwind and a clean shutdown. This ensures
that no persistent reso

Make exit() unwind properly

exit() is now internally implemented by throwing an exception,
performing a normal stack unwind and a clean shutdown. This ensures
that no persistent resource leaks occur.

The exception is internal, cannot be caught and does not result in
the execution of finally blocks. This may be relaxed in the future.

Closes GH-5768.

show more ...


# bb3d4456 15-Jun-2020 Dmitry Stogov

Change GC_COLLECTABLE flag into GC_NOT_COLLECTABLE to simplify GC_MAY_LEAK() check


# 23ee4d4b 03-Apr-2020 Max Semenik

Support catching exceptions without capturing them to variables

RFC: https://wiki.php.net/rfc/non-capturing_catches

Closes GH-5345.


# 4a08ca12 26-May-2020 Nikita Popov

Respect typed references in catch assignment

I decided to null out EG(exception) early here, which means only
the exception from the dtor / ref assign is preserved, and the
previous

Respect typed references in catch assignment

I decided to null out EG(exception) early here, which means only
the exception from the dtor / ref assign is preserved, and the
previous exception is not chained in. This is more robust, and
I don't think this situation is common enough to be bothered about
the precise behavior.

show more ...


# 81c824f4 26-May-2020 Nikita Popov

Clarify ZEND_CATCH code

UNDEF the opcode result instead of addref'ing the exception.


# 1179686f 24-Apr-2020 Máté Kocsis

Improve error messages for invalid property access

Closes GH-5446
Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>


# c6a6ca07 13-May-2020 Nikita Popov

Use zend_zval_type_name() API where possible

Rather than zend_get_type_by_const(Z_TYPE_P()).


# 3f51d82b 13-May-2020 Nikita Popov

Rename zend_zval_get_type() API

We have a bunch of APIs for getting type names and it's sometimes
hard to keep them apart ... make it clear that this is the one
you definitely do not

Rename zend_zval_get_type() API

We have a bunch of APIs for getting type names and it's sometimes
hard to keep them apart ... make it clear that this is the one
you definitely do not want to use.

show more ...


# f0960879 06-May-2020 Alex Dowad

zend_timeout is not a signal handler function

The 'int dummy' parameter to this function makes it appear that it was intended as a
signal handler, but it is not being used as such. So re

zend_timeout is not a signal handler function

The 'int dummy' parameter to this function makes it appear that it was intended as a
signal handler, but it is not being used as such. So remove the redundant parameter.

show more ...


# cd56395d 19-Apr-2020 Tyson Andre

Speed up ZEND_SWITCH_STRING/ZEND_SWITCH_LONG for wrong type

This has the minor benefit of avoiding loading the address of the
jump table when the expression for the switch isn't a string

Speed up ZEND_SWITCH_STRING/ZEND_SWITCH_LONG for wrong type

This has the minor benefit of avoiding loading the address of the
jump table when the expression for the switch isn't a string/long.
gcc doesn't seem to optimize that.

The previous function body is the original implementation: ad8652818a5

```
// Before: 0.267s, after: 0.265s
function test_switch($x) {
for ($i = 0; $i < 10000000; $i++) {
switch ($x) {
case 'a':
case 'b':
echo "i=$i\n";
}
}
}
test_switch(null);
```

Closes GH-5419

show more ...


# 7352213b 17-Apr-2020 Nikita Popov

Early return if variadic type check fails

Don't check all the remaining arguments after one check failed.
I don't think this makes an observable behavior difference,
because we alrea

Early return if variadic type check fails

Don't check all the remaining arguments after one check failed.
I don't think this makes an observable behavior difference,
because we already suppress duplicate exceptions in argument
type error reporting.

show more ...


# d31ccb5f 17-Apr-2020 Dmitry Stogov

zend_timeout() may access EX(opline)


# 36935e42 30-Mar-2020 Máté Kocsis

Improve undefined variable error messages

Closes GH-5312


12345678910>>...78