History log of /PHP-8.2/Zend/zend_execute_API.c (Results 51 – 75 of 1005)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 87559763 16-Aug-2021 Nikita Popov

Fix arginfo/zpp consistency check for call_user_func from strict_types scope

This was using the wrong strict_types information. In this case the
call is performed with strict_types=0.


# b5746a4c 29-Jul-2021 Nikita Popov

Drop HAS_UNLINKED_USES flag

Instead always use the unlinked_uses table, which is already used
if opcache is used. Not much point in having a different mechanism
for the non-opcache c

Drop HAS_UNLINKED_USES flag

Instead always use the unlinked_uses table, which is already used
if opcache is used. Not much point in having a different mechanism
for the non-opcache case.

show more ...


# 89d01154 23-Jul-2021 Nikita Popov

Remove zend_cleanup_internal_classes()

If fast_shutdown is used, then we don't need to destroy static
members at all. If fast_shutdown is not used, then we already
loop over classes

Remove zend_cleanup_internal_classes()

If fast_shutdown is used, then we don't need to destroy static
members at all. If fast_shutdown is not used, then we already
loop over classes to destroy static members and static variables
in methods.

show more ...


# ae8647d9 20-Jul-2021 Levi Morrison

Remove leading underscore for _zend_hash_find_known_hash (#7260)

Convert zend_hash_find_ex(..., 1) to zend_hash_find_known_hash(...)
Convert zend_hash_find_ex(..., 0) to zend_hash_find(.

Remove leading underscore for _zend_hash_find_known_hash (#7260)

Convert zend_hash_find_ex(..., 1) to zend_hash_find_known_hash(...)
Convert zend_hash_find_ex(..., 0) to zend_hash_find(...)

Also add serializable changes to UPGRADING.INTERNALS summary

show more ...


# ee65e920 13-Jul-2021 Nikita Popov

Check internal function type consistency in zend_call_function

We do this for calls in the engine, but not those going through
zend_call_function().


# aff36587 29-Jun-2021 Patrick Allaert

Fixed some spaces used instead of tabs


# a65989b1 05-Jun-2021 Martin Schröder <53789145+kooldev@users.noreply.github.com>

Alternative Fiber Internals Refactoring (#7101)


# 100a1e8e 28-May-2021 Nikita Popov

Convert exception during inheritance to fatal error

Now that inheritance can throw deprecations again, these may be
converted to exception by a custom error handler. In this case
we

Convert exception during inheritance to fatal error

Now that inheritance can throw deprecations again, these may be
converted to exception by a custom error handler. In this case
we need to convert the exception to a fatal error, as inheritance
cannot safely throw in the general case.

show more ...


# dd86987b 29-Apr-2021 Nikita Popov

Replay warnings during inheritance (#6928)

Since 3e6b447979a2b1f351faf40bee9c6cf7e362d85a it is again possible to have
warnings (deprecations) during inheritance, and more such functiona

Replay warnings during inheritance (#6928)

Since 3e6b447979a2b1f351faf40bee9c6cf7e362d85a it is again possible to have
warnings (deprecations) during inheritance, and more such functionality is
likely in the future. This is a problem, because such warnings will only be
shown on the first request if the opcache inheritance cache is used. This
currently causes test failures in --repeat builds.

Fix this by uplifting the error recording functionality from opcache to Zend,
and then using it to persist a warning trace in the inheritance cache, which
can then be used to replay the warnings on subsequent executions.

show more ...


# c276c16b 26-Apr-2021 Aaron Piotrowski

Implement Fibers

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

Closes GH-6875.


# 0fdf668d 15-Apr-2021 Dmitry Stogov

Keep fci->object unchanged


# ca49e536 15-Apr-2021 Dmitry Stogov

Stop inserting fake frames on VM stack.

Now similar "fake" frames now materialized when fetching debug
backtraces. The patch also fixes few incorrect backtraces for generators
in *.p

Stop inserting fake frames on VM stack.

Now similar "fake" frames now materialized when fetching debug
backtraces. The patch also fixes few incorrect backtraces for generators
in *.phpt tests.

show more ...


# d8e4fbae 08-Apr-2021 Dmitry Stogov

Fast Class Cache

This is generalization of idea, that was previously usesd for caching
resolution of class_entries in zend_type. Now very similar mechanizm is
used for general zend_s

Fast Class Cache

This is generalization of idea, that was previously usesd for caching
resolution of class_entries in zend_type. Now very similar mechanizm is
used for general zend_string into zend_class_entry resolution.

Interned zend_string with IS_STR_CLASS_NAME_MAP_PTR GC_FLAG uses its
refcount to adress corresponding zend_class_entry cache slot.
The refcount keeps an offset to this slot from CG(map_ptr_base).
Flag may be checked by ZSTR_HAS_CE_CACHE(str), cache slot may be read by
ZSTR_GET_CE_CACHE(str) and set by ZSTR_SET_CE_CACHE(str, ce).

show more ...


# 4df39f4b 18-Mar-2021 Nikita Popov

Don't imply SILENT from NO_AUTOLOAD

We have separate flags for non-autoloading class fetches and
silent class fetches. There's no reason why NO_AUTOLOAD should
be special-cased to be

Don't imply SILENT from NO_AUTOLOAD

We have separate flags for non-autoloading class fetches and
silent class fetches. There's no reason why NO_AUTOLOAD should
be special-cased to be implicitly silent.

show more ...


# 234af00b 18-Mar-2021 Nikita Popov

Destroy constant values before object store

Now that constants can contain objects (currently only enums),
we should destroy them before we free the object store, otherwise
there wil

Destroy constant values before object store

Now that constants can contain objects (currently only enums),
we should destroy them before we free the object store, otherwise
there will be false positive leak reports.

This doesn't affect the fast_shutdown sequence.

show more ...


# c732ab40 16-Mar-2021 Dmitry Stogov

Change Zend Stream API to use zend_string* instead of char*.

This allows to eliminate re-calculation of string lenght and hash value.
See the detailed list of changes in UPGRADING.INTERN

Change Zend Stream API to use zend_string* instead of char*.

This allows to eliminate re-calculation of string lenght and hash value.
See the detailed list of changes in UPGRADING.INTERNALS.

show more ...


# 47a2e5c7 18-May-2020 Nikita Popov

Reference dynamic functions through dynamic_defs

Currently, dynamically declared functions and closures are inserted
into the function table under a runtime definition key, and then late

Reference dynamic functions through dynamic_defs

Currently, dynamically declared functions and closures are inserted
into the function table under a runtime definition key, and then later
possibly renamed. When opcache is not used and a file containing a
closure is repeatedly included, this leads to a very large memory leak,
as the no longer needed closure declarations will never be freed
(https://bugs.php.net/bug.php?id=76982).

With this patch, dynamic functions are instead stored in a
dynamic_func_defs member on the op_array, which opcodes reference
by index. When the parent op_array is destroyed, the dynamic_func_defs
it contains are also destroyed (unless they are stilled used elsewhere,
e.g. because they have been bound, or are used by a live closure). This
resolves the fundamental part of the leak, though doesn't completely
fix it yet due to some arena allocations.

The main non-obvious change here is to static variable handling:
We can't destroy static_variables_ptr in destroy_op_array, as e.g.
that would clear the static variables in a dynamic function when
the op_array containing it is destroyed. Static variable destruction
is separated out for this reason (we already do static variable
destruction separately for normal functions, so we only need to
handle main scripts).

Closes GH-5595.

show more ...


# 5d160e30 17-Feb-2021 Nikita Popov

Fix static variable behavior with inheritance

When a method is inherited, the static variables will now always
use the initial values, rather than the values at the time of
inheritan

Fix static variable behavior with inheritance

When a method is inherited, the static variables will now always
use the initial values, rather than the values at the time of
inheritance. As such, behavior no longer depends on whether
inheritance happens before or after a method has been called.

This is implemented by always keeping static_variables as the
original values, and static_variables_ptr as the modified copy.

Closes GH-6705.

show more ...


# 4b79dba9 09-Feb-2021 Dmitry Stogov

Added Inheritance Cache.

This is a new transparent technology that eliminates overhead of PHP class inheritance.

PHP classes are compiled and cached (by opcahce) separately, howeve

Added Inheritance Cache.

This is a new transparent technology that eliminates overhead of PHP class inheritance.

PHP classes are compiled and cached (by opcahce) separately, however their "linking" was done at run-time - on each request. The process of "linking" may involve a number of compatibility checks and borrowing methods/properties/constants form parent and traits. This takes significant time, but the result is the same on each request.

Inheritance Cache performs "linking" for unique set of all the depending classes (parent, interfaces, traits, property types, method types involved into compatibility checks) once and stores result in opcache shared memory. As a part of the this patch, I removed limitations for immutable classes (unresolved constants, typed properties and covariant type checks). So now all classes stored in opcache are "immutable". They may be lazily loaded into process memory, if necessary, but this usually occurs just once (on first linking).

The patch shows 8% improvement on Symphony "Hello World" app.

show more ...


# 3e01f5af 15-Jan-2021 Nikita Popov

Replace zend_bool uses with bool

We're starting to see a mix between uses of zend_bool and bool.
Replace all usages with the standard bool type everywhere.

Of course, zend_bool

Replace zend_bool uses with bool

We're starting to see a mix between uses of zend_bool and bool.
Replace all usages with the standard bool type everywhere.

Of course, zend_bool is retained as an alias.

show more ...


# 54248b18 10-Dec-2020 Calvin Buckley

IBM i PASE doesn't support ITIMER_PROF

Like Cygwin, this platform needs to use a real-time timer.

This was based on a patch by @kadler, but it didn't handle unsetting
the timer,

IBM i PASE doesn't support ITIMER_PROF

Like Cygwin, this platform needs to use a real-time timer.

This was based on a patch by @kadler, but it didn't handle unsetting
the timer, so the timeout would continue to be active, triggering
`hard_timeout` unexpectedly. The patch is fixed to handle unsetting.

Closes GH-6503.

show more ...


# 904c1b65 30-Oct-2020 Nikita Popov

FIxed bug #80299

The must_wrap was leaking across iterations.


# 6188b7a1 09-Oct-2020 Nikita Popov

Revert "Change calling convention of zval_update_constant[_ex]() to fastcall."

This reverts commit 5a447b086bba450d61c283adfecbdec657cc5f34.

Revert this ABI break from PHP-8.0, leav

Revert "Change calling convention of zval_update_constant[_ex]() to fastcall."

This reverts commit 5a447b086bba450d61c283adfecbdec657cc5f34.

Revert this ABI break from PHP-8.0, leaving it only on master.

show more ...


# 5a447b08 07-Oct-2020 Dmitry Stogov

Change calling convention of zval_update_constant[_ex]() to fastcall.


# d5d31ea3 18-Sep-2020 Dmitry Stogov

Cleanup observer API and add JIT support


12345678910>>...41