History log of /PHP-8.4/ext/opcache/zend_shared_alloc.c (Results 1 – 25 of 89)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# bf98023f 29-Aug-2024 Dmitry Stogov

Prevent possible incorrect optimization caused by ZEND_ASSUME()


# c15bb9af 29-Aug-2024 Dmitry Stogov

Restore error message incorrectly removed by commit 10d43c4 (related to GH-15497)


# b9b317af 26-Aug-2024 Florian Engelhardt

Export opcache shared globals (#15543)


# 1bae61a4 19-Mar-2024 Arnaud Le Blanc

Compress interned string table offsets and increase maximum supported buffer size (#13676)

Compress interned string table offsets and increase maximum supported buffer size

The inte

Compress interned string table offsets and increase maximum supported buffer size (#13676)

Compress interned string table offsets and increase maximum supported buffer size

The interned string buffer is organized as a header + a hash table + a
zend_string arena. Hash slots point to the arena, but are represented as 32bit
offsets from the buffer, which limits the maximum buffer size to about 4GiB.
However zend_strings are 8-byte aligned in the buffer, so we can compress the
3 lower bits. This allows to increase the maximum supported interned string
buffer size from 4095 MiB to 32767 MiB.

show more ...


# e0ca4dca 23-Oct-2023 Dmitry Stogov

Fixed GH-12494: Zend/tests/arginfo_zpp_mismatch.phpt causes a segfault withJIT + --repeat 2


# 9ff6220e 09-Oct-2023 Cristian Rodríguez

opcache: Use O_TMPFILE file lock if available (#8634)

Use O_TMPFILE if the kernel supports it to create the lock fd, this
has multiple advantages including not having to worry about nami

opcache: Use O_TMPFILE file lock if available (#8634)

Use O_TMPFILE if the kernel supports it to create the lock fd, this
has multiple advantages including not having to worry about naming,
permissions and the assurance that it will always go away cleanly
even on abnormal termination.

Co-authored-by: Dmitry Stogov <dmitry@zend.com>

show more ...


# 36b194ba 09-Oct-2023 Julien Francoz

add file path in opcache lock file error (#10331)

Co-authored-by: Julien Francoz <julien@francoz.net>


# 9c59d22a 29-May-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix GH-11336: php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked

I chose to check for the value of lock_file instead of checking the

Fix GH-11336: php still tries to unlock the shared memory ZendSem with opcache.file_cache_only=1 but it was never locked

I chose to check for the value of lock_file instead of checking the
file_cache_only, because it is probably a little bit faster and we're
going to access the lock_file variable anyway. It's also more generic.

Closes GH-11341.

show more ...


# 8946b7b1 24-May-2023 KoudelkaB <33930155+KoudelkaB@users.noreply.github.com>

Access violation when ALLOC_FALLBACK fixed

Close GH-11312


# 6267601f 23-May-2023 nielsdos <7771979+nielsdos@users.noreply.github.com>

Fix allocation loop in zend_shared_alloc_startup()

The break is outside the if, so if it succeeds or not this will always
stop after the first loop iteration instead of trying more alloc

Fix allocation loop in zend_shared_alloc_startup()

The break is outside the if, so if it succeeds or not this will always
stop after the first loop iteration instead of trying more allocators if
the first one fails.

Closes GH-11306.

show more ...


# e9c86216 14-Feb-2023 Max Kellermann

ext/opcache/zend_shared_alloc: use memfd for locking if available

A memfd is a virtual file that has no reachable path, therefore does
not clobber any filesystem. It is deleted automati

ext/opcache/zend_shared_alloc: use memfd for locking if available

A memfd is a virtual file that has no reachable path, therefore does
not clobber any filesystem. It is deleted automatically as soon as
the last handle gets closed. The feature is available since Linux
kernel 3.17.

Closes GH-10589.

show more ...


# 263b22f3 21-Feb-2023 Max Kellermann

Make lots of string pointers `const` (#10646)

This allows using string literals without implicitly casting away the
`const`.


# 3dcd4724 14-Feb-2023 Max Kellermann

ext/opcache/zend_shared_alloc: convert more `int` to `bool`


# 3b9812f8 14-Feb-2023 Max Kellermann

ext/opcache/zend_shared_alloc: `bool` fixups


# 413844d6 18-Feb-2023 Max Kellermann

Zend/zend_types.h: deprecate zend_bool, zend_intptr_t, zend_uintptr_t (#10597)

These types are standard C99.

For compatibility with out-of-tree extensions, keep the typedefs
in

Zend/zend_types.h: deprecate zend_bool, zend_intptr_t, zend_uintptr_t (#10597)

These types are standard C99.

For compatibility with out-of-tree extensions, keep the typedefs
in main/php.h.

show more ...


# 24b311bd 10-Jan-2023 Max Kellermann

ext/opcache/zend_shared_alloc: rename _register_xlat_entry() params

The name "new" happens to be a C++ keyword, which was the my reason to
rethink those names.

The "xlat_table"

ext/opcache/zend_shared_alloc: rename _register_xlat_entry() params

The name "new" happens to be a C++ keyword, which was the my reason to
rethink those names.

The "xlat_table" is not only used to translate pointers for persisting
scripts to shared memory, but is also used to annoate pointers
(e.g. by the JIT to associate an op_array with its jit_extension).

The names "old" and "new" aren't good for that; often, there's nothing
"old" or "new" about them. It's actually a generic lookup table, and
"old" shall be named "key" (which it is called internally already),
and "new" is renamed to simply "value".

show more ...


# 10d43c40 02-Jan-2023 Max Kellermann

ext/opcache/zend_shared_alloc: change "locked" check to assertion

Calling zend_shared_alloc() without holding the lock is always a bug,
not a fatal runtime error.


# e1a25ff2 22-Dec-2022 Max Kellermann

ext/opcache/zend_shared_alloc: add assertions on "locked" flag

Let the PHP process crash if a bug causes incorrect locking calls.


# fb242f41 03-Sep-2022 Arnaud Le Blanc

Fix high opcache.interned_strings_buffer causing shm corruption (#9260)


Revision tags: php-8.2.0RC1, php-8.1.10, php-8.0.23, php-8.0.23RC1, php-8.1.10RC1, php-8.2.0beta3, php-8.2.0beta2, php-8.1.9, php-8.0.22, php-8.1.9RC1, php-8.2.0beta1, php-8.0.22RC1, php-8.0.21, php-8.1.8, php-8.2.0alpha3
# 50a3cb7c 23-Jun-2022 Ilija Tovilo

Get rid of duplicated rotr3 implementation (#8853)


Revision tags: php-8.1.8RC1, php-8.2.0alpha2, php-8.0.21RC1, php-8.0.20, php-8.1.7, php-8.2.0alpha1, php-7.4.30, php-8.1.7RC1, php-8.0.20RC1, php-8.1.6, php-8.0.19, php-8.1.6RC1, php-8.0.19RC1, php-8.0.18, php-8.1.5, php-7.4.29, php-8.1.5RC1, php-8.0.18RC1, php-8.1.4, php-8.0.17, php-8.1.4RC1, php-8.0.17RC1, php-8.1.3, php-8.0.16, php-7.4.28
# 0199b222 05-Feb-2022 Max Kellermann

ext/opcache: check mkstemp() return value right after the call (#8031)

Don't call fchmod(-1), which is not only wrong, but also clobbers
errno and sets it to EBADF, breaking the followin

ext/opcache: check mkstemp() return value right after the call (#8031)

Don't call fchmod(-1), which is not only wrong, but also clobbers
errno and sets it to EBADF, breaking the following errno access for
the log message.

show more ...


Revision tags: php-8.1.3RC1, php-8.0.16RC1, php-8.1.2, php-8.0.15, php-8.1.2RC1, php-8.0.15RC1, php-8.0.14, php-8.1.1, php-7.4.27, php-8.1.1RC1, php-8.0.14RC1, php-7.4.27RC1, php-8.1.0, php-8.0.13, php-7.4.26, php-7.3.33, php-8.1.0RC6, php-7.4.26RC1, php-8.0.13RC1, php-8.1.0RC5, php-7.3.32, php-7.4.25, php-8.0.12, php-8.1.0RC4, php-8.0.12RC1, php-7.4.25RC1, php-8.1.0RC3, php-8.0.11, php-7.4.24, php-7.3.31, php-8.1.0RC2, php-7.4.24RC1, php-8.0.11RC1, php-8.1.0RC1, php-7.4.23, php-8.0.10, php-7.3.30, php-8.1.0beta3, php-8.0.10RC1, php-7.4.23RC1, php-8.1.0beta2, php-8.0.9, php-7.4.22, php-8.1.0beta1, php-7.4.22RC1, php-8.0.9RC1, php-8.1.0alpha3, php-7.4.21, php-7.3.29
# aff36587 29-Jun-2021 Patrick Allaert

Fixed some spaces used instead of tabs


Revision tags: php-8.0.8, php-8.1.0alpha2, php-7.4.21RC1, php-8.0.8RC1, php-8.1.0alpha1, php-8.0.7, php-7.4.20, php-8.0.7RC1, php-7.4.20RC1
# 01b3fc03 06-May-2021 KsaR

Update http->https in license (#6945)

1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https.
2. Update few license 3.0 to 3.01 as

Update http->https in license (#6945)

1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https.
2. Update few license 3.0 to 3.01 as 3.0 states "php 5.1.1, 4.1.1, and earlier".
3. In some license comments is "at through the world-wide-web" while most is without "at", so deleted.
4. fixed indentation in some files before |

show more ...


Revision tags: php-8.0.6, php-7.4.19, php-7.4.18, php-7.3.28, php-8.0.5, php-8.0.5RC1, php-7.4.18RC1, php-8.0.4RC1, php-7.4.17RC1, php-8.0.3, php-7.4.16, php-8.0.3RC1, php-7.4.16RC1
# 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 ...


Revision tags: php-8.0.2, php-7.4.15, php-7.3.27, php-8.0.2RC1, php-7.4.15RC2, php-7.4.15RC1
# 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 ...


1234