History log of /php-src/Zend/zend_compile.h (Results 76 – 100 of 1017)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
Revision tags: php-7.4.5RC1, php-7.3.17RC1
# 064b4644 24-Mar-2020 Nikita Popov

Implement "Constructor Promotion" RFC

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

Closes GH-5291.

# a7908c2d 24-May-2020 Benjamin Eberlei

Add Attributes

Co-authored-by: Martin Schröder <m.schroeder2007@gmail.com>

# 19e886d9 24-Apr-2020 Nikita Popov

Avoid throw expression leaks

Mark "throw" used in expression context with a flag, and don't
treat it as a BB terminator in that case. This prevents us from
optimizing away the follow

Avoid throw expression leaks

Mark "throw" used in expression context with a flag, and don't
treat it as a BB terminator in that case. This prevents us from
optimizing away the following opcodes as unreachable, which may
result in live ranges being dropped incorrectly.

Close GH-5450.

show more ...

# 08c5c69e 17-Apr-2020 Nikita Popov

Remove ZEND_ACC_DTOR flag

This is only used in reflection, where doing a simple string check
is acceptable.

I'm also dropping the "dtor" printing in the reflection dump.
Dto

Remove ZEND_ACC_DTOR flag

This is only used in reflection, where doing a simple string check
is acceptable.

I'm also dropping the "dtor" printing in the reflection dump.
Dtors are just one of many magic methods, I don't think there's
a point in explicitly highlighting them, when the name is already
unambiguous.

show more ...

# bac5137e 14-Apr-2020 Nikita Popov

Add zend_create_member_string() API

This is a recurring pattern.

# 3709e74b 06-Apr-2020 Máté Kocsis

Store default parameter values of internal functions in arg info

Closes GH-5353. From now on, PHP will have reflection information
about default values of parameters of internal function

Store default parameter values of internal functions in arg info

Closes GH-5353. From now on, PHP will have reflection information
about default values of parameters of internal functions.

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

show more ...

# 1ed132e2 01-Apr-2020 Nikita Popov

Unify checks for binary operator errors for ct eval

Move everything into one function and share it with opcache.
This fixes some discrepancies.

Revision tags: php-7.3.18, php-7.4.4, php-7.2.29, php-7.3.16, php-7.4.4RC1, php-7.3.16RC1
# 819a872c 27-Feb-2020 Nikita Popov

Avoid more null arithmetic

# 1949a26a 27-Feb-2020 Nikita Popov

Remove more null arithmetic UB

Introduce an EX_NUM_TO_VAR macro to mirror EX_VAR_TO_NUM and
replace usages of the ZEND_CALL_VAR_NUM(NULL) pattern.

# 0427ef91 27-Feb-2020 Nikita Popov

Avoid null arithmetic UB in EX_VAR_TO_NUM

Revision tags: php-7.4.3, php-7.2.28
# 53e527ad 06-Feb-2020 Nikita Popov

Remove ZEND_ACC_IMPLEMENT_INTERFACES flag

This is equivalent to checking ce->num_interfaces. The only subtle
moment is during inheritance, where num_interface may change when
parent

Remove ZEND_ACC_IMPLEMENT_INTERFACES flag

This is equivalent to checking ce->num_interfaces. The only subtle
moment is during inheritance, where num_interface may change when
parent interfaces are inherited. The check in zend_do_link_class
thus uses "interfaces", not "ce->num_interfaces".

show more ...

# f57f0920 06-Feb-2020 Nikita Popov

Remove ZEND_ACC_IMPLEMENTS_TRAITS flag

This is equivalent to checking ce->num_traits.

# 4f5f72c7 06-Feb-2020 Nikita Popov

Remove ZEND_ACC_INHERITED flag

It is equivalent to checking ce->parent != NULL. Just adds more
state that needs to be kept in sync.

Revision tags: php-7.3.15RC1, php-7.4.3RC1
# d6b04bfb 03-Feb-2020 Derick Rethans

Export zend_type_to_string() with ZEND_API

Revision tags: php-7.3.15, php-7.2.27, php-7.4.2, php-7.3.14, php-7.3.14RC1, php-7.4.2RC1, php-7.4.1, php-7.2.26, php-7.3.13, php-7.4.1RC1, 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 ...

# 9d48bf51 27-Oct-2019 Tyson Andre

Fix miscellaneous typos in docs and error messages

Closes GH-4863.

# 626a5837 22-Oct-2019 Dmitry Stogov

Merge branch 'PHP-7.4'

* PHP-7.4:
Allow loading FFI bindings through ffi.preload directive


# 1417352d 22-Oct-2019 Dmitry Stogov

Allow loading FFI bindings through ffi.preload directive

# f6f32f2c 09-Oct-2019 Dmitry Stogov

SAMRT BRANCH improvement.

Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ.
Now instead of checking the opcode of following instruct

SAMRT BRANCH improvement.

Avoid need of insertion NOP opcoes between unrelated SMART BRANCH instruction and following JMPZ/JMPNZ.
Now instead of checking the opcode of following instruction, the same information is encoded into SMART BRANH result_type.

show more ...

# 56ae3f6c 08-Oct-2019 Dmitry Stogov

Added "const" qualifier

# a66c60cc 26-Sep-2019 Nikita Popov

Throw Error when writing property of non-object

This removes object auto-vivification support.

This also means that we can remove the corresponding special
handling for typed pr

Throw Error when writing property of non-object

This removes object auto-vivification support.

This also means that we can remove the corresponding special
handling for typed properites: We no longer need to check that a
property is convertible to stdClass if such a conversion might
take place indirectly due to a nested property write.

Additionally OBJ_W style operations now no longer modify the
object operand, and as such we no longer need to treat op1 as a
def in SSA form.

The next step would be to actually compile the whole LHS of OBJ_W
operations in R rather than W mode, but that causes issues with
SimpleXML, whose object handlers depend on the current compilation
structure.

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

show more ...

# 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 ...

Revision tags: php-7.4.0RC2
# a86e0487 13-Sep-2019 Nikita Popov

Merge branch 'PHP-7.4'


# ee0bf4b2 13-Sep-2019 Nikita Popov

Define OBJ_PROP_TO_OFFSET() using XtOffsetOf()

This avoids null pointer arithmetic UB.

12345678910>>...41