History log of /PHP-8.4/ext/opcache/jit/zend_jit_helpers.c (Results 151 – 175 of 177)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 2bc0a6e9 20-Dec-2019 Nikita Popov

Fix string offset signed int UB in jit as well


Revision tags: php-7.3.13RC1, php-7.2.26RC1, php-7.4.0, php-7.2.25, php-7.3.12, php-7.4.0RC6, php-7.3.12RC1, php-7.2.25RC1, php-7.4.0RC5, php-7.1.33, php-7.2.24, php-7.3.11, php-7.4.0RC4, php-7.3.11RC1, php-7.2.24RC1, php-7.4.0RC3
# 999e32b6 25-Sep-2019 Nikita Popov

Implement union types

According to RFC: https://wiki.php.net/rfc/union_types_v2

The type representation now makes use of both the pointer payload
and the type mask at the same t

Implement union types

According to RFC: https://wiki.php.net/rfc/union_types_v2

The type representation now makes use of both the pointer payload
and the type mask at the same time. Additionall, zend_type_list is
introduced as a new kind of pointer payload, which is used to store
multiple class types. Each of the class types is a tagged pointer,
which may be either a class name or class entry. The latter is only
used for typed properties, while arguments/returns will instead use
cache slots. A type list can contain a mix of both names and CEs at
the same time, as not all classes may be resolvable.

One thing this is missing is support for union types in arginfo
and stubs, which I want to handle separately.

I've also dropped the special object code from the JIT implementation
for now -- I plan to add this back in a different form at a later time.
For now I did not want to include non-trivial JIT changes together
with large functional changes.

Another possible piece of follow-up work is to implement "iterable"
as an internal alias for "array|Traversable". I believe this will
eliminate quite a few special-cases that had to be implemented.

Closes GH-4838.

show more ...


Revision tags: php-7.2.23, php-7.3.10
# ac4e0f08 20-Sep-2019 Nikita Popov

Make zend_type a 2-field struct

We now store the pointer payload and the type mask separately. This
is in preparation for union types, where we will be using both at
the same time.

Make zend_type a 2-field struct

We now store the pointer payload and the type mask separately. This
is in preparation for union types, where we will be using both at
the same time.

To avoid increasing the size of arginfo structures, the
pass_by_reference and is_variadic fields are now stored as part of
the type_mask (8-bit are reserved for custom use).

Different types of pointer payloads are distinguished based on bits
in the type_mask.

show more ...


# 14bdb0cf 04-Nov-2019 Máté Kocsis

Fix consistency issues with array accesses warnings/exceptions

* Change a number of "resource used as offset" notices to warnings,
which were previously missed.
* Throw the "res

Fix consistency issues with array accesses warnings/exceptions

* Change a number of "resource used as offset" notices to warnings,
which were previously missed.
* Throw the "resource used as offset" warning for isset() as well.
* Make array_key_exists() behavior with regard to different key
types consistent with isset() and normal array accesses. All key
types now use the usual coercions and array/object keys throw
TypeError.

Closes GH-4887.

show more ...


# fe6c420b 23-Oct-2019 Nikita Popov

JIT: Handle typed refs in assign dim


# 2f80fbe3 22-Oct-2019 Nikita Popov

JIT: Fix handling of typed ref in assign op


# 097184ca 22-Oct-2019 Nikita Popov

JIT: UNDEF result on "Illegal offset type" exception


# e80934d7 17-Oct-2019 Nikita Popov

Pass cache slot when printing type errors

Instead of using a separate ce.


# 51da0237 15-Oct-2019 Dmitry Stogov

Fixed exception handling


# 0d55456d 15-Oct-2019 Dmitry Stogov

Use "const" qualifier


# 2f92957f 01-Oct-2019 Nikita Popov

Convert some notices to warnings

Part of https://wiki.php.net/rfc/engine_warnings.


# 01fc1a30 27-Sep-2019 Nikita Popov

Remove most uses of the ERROR type

It is now only used to signal exceptions for property reads. ERROR
zvals are never returned back to the VM anymore, so there's no
need to check for

Remove most uses of the ERROR type

It is now only used to signal exceptions for property reads. ERROR
zvals are never returned back to the VM anymore, so there's no
need to check for them when receiving a VAR.

Also return MAY_BE_ERROR, as ERROR is now no longer relevant for
inference.

show more ...


# e8b0163e 27-Sep-2019 Nikita Popov

Promote write "use scalar as array" warning to Error


# 0ebf2bdb 26-Sep-2019 Nikita Popov

Convert "Illegal offset type" warnings to exceptions


# 9e8ba789 19-Sep-2019 Nikita Popov

Change representation of zend_type from type code to MAY_BE_* mask

This switches zend_type from storing a single IS_* type code to
storing a MAY_BE_* type mask. Right now most code still

Change representation of zend_type from type code to MAY_BE_* mask

This switches zend_type from storing a single IS_* type code to
storing a MAY_BE_* type mask. Right now most code still assumes
that there is only a single type in the mask (or two together
with MAY_BE_NULL). But this will make it a lot simpler to introduce
union types.

An additional advantage (and why I'm doing this separately), is
that a number of special cases no longer need to be handled
separately: We can do a single mask & (1 << type) check to handle
all simple types, booleans (true|false) and null.

show more ...


# cdd4e591 18-Sep-2019 Nikita Popov

Don't make argument nullable based on AST null initializer

Closes GH-4720.


Revision tags: php-7.4.0RC2, php-7.2.23RC1, php-7.3.10RC1, php-7.4.0RC1, php-7.1.32, php-7.2.22, php-7.3.9, php-7.4.0beta4, php-7.2.22RC1, php-7.3.9RC1, php-7.4.0beta2, php-7.1.31, php-7.2.21, php-7.3.8, php-7.4.0beta1, php-7.2.21RC1, php-7.3.8RC1
# 26431d19 10-Jul-2019 Nikita Popov

Implement array access notice in JIT


Revision tags: php-7.4.0alpha3, php-7.3.7, php-7.2.20, php-7.4.0alpha2, php-7.3.7RC3, php-7.3.7RC2, php-7.2.20RC2, php-7.4.0alpha1, php-7.3.7RC1, php-7.2.20RC1
# 4d90848d 06-Jun-2019 Nikita Popov

Don't verify arginfo types for internal functions

To avoid duplicate type checks. In debug builds arginfo is still
checked and will generate an assertions if the function doesn't
sub

Don't verify arginfo types for internal functions

To avoid duplicate type checks. In debug builds arginfo is still
checked and will generate an assertions if the function doesn't
subsequently throw an exception.

Some test results change due to differences in zpp and arginfo
error messages.

show more ...


# 792e38d8 13-Jun-2019 Nikita Popov

Fix bug #78154 with JIT


# 45a0656e 29-May-2019 Nikita Popov

Remove get() object handler

Now that set() is gone, there is little point in keeping get(), as
it is essentially just a different way of writing cast_object()
now.

Closes GH

Remove get() object handler

Now that set() is gone, there is little point in keeping get(), as
it is essentially just a different way of writing cast_object()
now.

Closes GH-4202.

show more ...


Revision tags: php-7.2.19, php-7.3.6, php-7.1.30, php-7.2.19RC1, php-7.3.6RC1, php-7.1.29, php-7.2.18, php-7.3.5, php-7.2.18RC1, php-7.3.5RC1
# cc900edd 10-Apr-2019 Dmitry Stogov

Simplify call frame initialization


# 914b27ac 06-Apr-2019 David Carlier

Fix few compiler warnings.


Revision tags: php-7.2.17, php-7.3.4, php-7.1.28
# ba67d44e 02-Apr-2019 Christoph M. Becker

Fix misplacement of calling convention declaration

MSVC is particularly picky about this, and won't compile as it is.


# 4e1d545d 01-Apr-2019 Dmitry Stogov

Fixed edge cases in ZEND_ASSIGN_OP+ASSIGN_DIM and replaced specialized helpers with single one


# 8bf2de04 01-Apr-2019 Dmitry Stogov

Removed checks for required object handlers


12345678