History log of /PHP-8.2/ext/opcache/ZendAccelerator.c (Results 126 – 150 of 735)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 8ed8cf86 22-Mar-2021 Dmitry Stogov

Use zend_string* instead of char*

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

# 65859fe1 11-Mar-2021 Dmitry Stogov

Inheritance cache optimization

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

# 6aea64c4 10-Feb-2021 Dmitry Stogov

Reuse single map_ptr slot for indentical class names

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

# ce79d947 04-Feb-2021 Nikita Popov

Merge branch 'PHP-8.0'

* PHP-8.0:
Try SIGTERM before SIGKILL in opcache restart


# 0c6ff5ea 04-Feb-2021 Nikita Popov

Merge branch 'PHP-7.4' into PHP-8.0

* PHP-7.4:
Try SIGTERM before SIGKILL in opcache restart


# 8b7aaad7 07-Dec-2020 Nikita Popov

Try SIGTERM before SIGKILL in opcache restart

SIGTERM is subject to HANDLE_BLOCK_INTERRUPTIONS(), which will
allow code to exit critical sections before it gets terminated.

Clos

Try SIGTERM before SIGKILL in opcache restart

SIGTERM is subject to HANDLE_BLOCK_INTERRUPTIONS(), which will
allow code to exit critical sections before it gets terminated.

Closes GH-6493.

show more ...

# 83be073a 26-Jan-2021 Nikita Popov

Move optimizer into core

This only moves the files, adjusts the build system, exports APIs
and does minor fixups to make sure the code builds.

This does not yet try to make the

Move optimizer into core

This only moves the files, adjusts the build system, exports APIs
and does minor fixups to make sure the code builds.

This does not yet try to make the optimizer usable independently
of opcache.

Closes GH-6642.

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

# f9942b06 15-Dec-2020 Nikita Popov

Merge branch 'PHP-8.0'

* PHP-8.0:
JIT disabled build fix.


# 1e6c7e77 14-Dec-2020 David Carlier

JIT disabled build fix.

Closes GH-6514.

# c3c7b673 14-Dec-2020 Dmitry Stogov

Merge branch 'PHP-8.0'

* PHP-8.0:
Fixed bug #80506 (Immediate SIGSEGV upon ini_set("opcache.jit_debug", 1))


# a12e7aff 14-Dec-2020 Dmitry Stogov

Fixed bug #80506 (Immediate SIGSEGV upon ini_set("opcache.jit_debug", 1))

# 034270d6 30-Nov-2020 Dmitry Stogov

Merge branch 'PHP-8.0'

* PHP-8.0:
Disable JIT with incompatible third-party extensions


# d5a82e2c 30-Nov-2020 Dmitry Stogov

Disable JIT with incompatible third-party extensions

# 6808968c 05-Nov-2020 Nikita Popov

Backport preloading trait fixup fixes

This cherry-picks 33969c2252b2c33a72c9039072af8862fd347a5f and
2effbfd8713936742ef46e6e85ce193b320ac005 from PHP-8.0.

The issues these comm

Backport preloading trait fixup fixes

This cherry-picks 33969c2252b2c33a72c9039072af8862fd347a5f and
2effbfd8713936742ef46e6e85ce193b320ac005 from PHP-8.0.

The issues these commits fix could also manifest in PHP 7.4, and
a commenter on bug #80307 reports this this might indeed be
happening.

show more ...

# 04614385 05-Nov-2020 Nikita Popov

Merge branch 'PHP-8.0'

* PHP-8.0:
Fixup trait methods even if no traits are used


# 2effbfd8 05-Nov-2020 Nikita Popov

Fixup trait methods even if no traits are used

Trait methods might be non-trivially inherited, in which case we
may have to perform fixup in classes that do not directly use any
trai

Fixup trait methods even if no traits are used

Trait methods might be non-trivially inherited, in which case we
may have to perform fixup in classes that do not directly use any
traits.

show more ...

# 1fea1757 05-Nov-2020 Nikita Popov

Merge branch 'PHP-8.0'

* PHP-8.0:
Fix multiple trait fixup


# 33969c22 05-Nov-2020 Nikita Popov

Fix multiple trait fixup

If a trait method is inherited, preloading trait fixup might be
performed on it multiple times. Usually this is fine, because
the opcodes pointer will have a

Fix multiple trait fixup

If a trait method is inherited, preloading trait fixup might be
performed on it multiple times. Usually this is fine, because
the opcodes pointer will have already been updated, and will thus
not be found in the xlat table.

However, it can happen that the new opcodes pointer is the same
as one of the old opcodes pointers, if the pointer has been reused
by the allocator. In this case we will look up the wrong op array
and overwrite the trait method with an unrelated trait method.

We fix this by indexing the xlat table not by the opcodes pointer,
but by the refcount pointer. The refcount pointer is not changed
during optimization, and accurately represents which op arrays
should use the same opcodes.

Fixes bug #80307. The test case does not reproduce the bug, because
this depends on a lot of "luck" with the allocator. The test case
merely illustrates a case where orig_op_array would have been NULL
in the original code.

show more ...

# 313a56ad 04-Nov-2020 Nikita Popov

Merge branch 'PHP-8.0'

* PHP-8.0:
End output handlers in preload shutdown


# 7c7c6b0d 04-Nov-2020 Nikita Popov

End output handlers in preload shutdown

Same as in php_request_shutdown(), we need to end any active
output handlers, as these may no longer be safe to execute
lateron.

# d0a07cd0 03-Nov-2020 Nikita Popov

Merge branch 'PHP-8.0'

* PHP-8.0:
Report parse errors during preloading


12345678910>>...30