History log of /php-src/UPGRADING.INTERNALS (Results 76 – 100 of 368)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# a7202682 05-Jun-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Use uint32_t for the number of nodes (#11371)


# c3f07973 02-Jun-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Implement iteration cache, item cache and length cache for node list iteration (#11330)

* Implement iteration cache, item cache and length cache for node list iteration

The current

Implement iteration cache, item cache and length cache for node list iteration (#11330)

* Implement iteration cache, item cache and length cache for node list iteration

The current implementation follows the spec requirement that the list
must be "live". This means that changes in the document must be
reflected in the existing node lists without requiring the user to
refetch the node list.
The consequence is that getting any item, or the length of the list,
always starts searching from the root element of the node list. This
results in O(n) time to get any item or the length. If there's a for
loop over the node list, this means the iterations will take O(n²) time
in total. This causes real-world performance issues with potential for
downtime (see GH-11308 and its references for details).

We fix this by introducing a caching strategy. We cache the last
iterated object in the iterator, the last requested item in the node
list, and the last length computation. To invalidate the cache, we
simply count the number of modifications made to the containing
document. If the modification number does not match what the number was
during caching, we know the document has been modified and the cache is
invalid. If this ever overflows, we saturate the modification number and
don't do any caching anymore. Note that we don't check for overflow on
64-bit systems because it would take hundreds of years to overflow.

Fixes GH-11308.

show more ...


# c6655fb7 29-May-2023 nielsdos <7771979+nielsdos@users.noreply.github.com>

Implement dom_get_doc_props_read_only()

I was surprised to see that getting the stricterror property showed in
in the Callgrind profile of some tests. Turns out we sometimes allocate

Implement dom_get_doc_props_read_only()

I was surprised to see that getting the stricterror property showed in
in the Callgrind profile of some tests. Turns out we sometimes allocate
them. Fix this by returning the default in case no changes were made yet.

Closes GH-11345.

show more ...


# 36559fb2 03-May-2023 Nils

Remove unused macro PHP_FNV1_32A_INIT and PHP_FNV1A_64_INIT (#11114)


# 6f63d4b2 19-Apr-2023 Ilija Tovilo

Fix -Wenum-int-mismatch warnings on gcc 13

Closes GH-11103


# 3528ca89 04-Apr-2023 Ilija Tovilo

Add note for GH-10168 to UPGRADING.INTERNALS


# f42992f5 03-Apr-2023 Máté Kocsis

Remove name field from the zend_constant struct (#10954)

As global constant names are case-sensitive now, we don't have to store them separately above the constant table.


# 6a6e91f3 22-Mar-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Shrink some commonly used structs by reordering members (#10880)

Struct members require some alignment based on their type. This means
that if a struct member is not aligned, there will

Shrink some commonly used structs by reordering members (#10880)

Struct members require some alignment based on their type. This means
that if a struct member is not aligned, there will be a hole created by
the compiler in the struct, which is wasted space. This patch reorders
some of the most commonly used structs, but in such a way that the
fields which were in the same cache line still belong together.
The only exception to this is exception_ignore_args, which was
temporally not close to nearby members, and as such I placed
it further up to close a hole.

On 64-bit Linux this gives us the following shrinks:
* zend_op_array: 248 -> 240
* zend_ssa_var: 56 -> 48
* zend_ssa_var_info: 48 -> 40
* php_core_globals: 672 -> 608
* zend_executor_globals: 1824 -> 1792

On 32-bit, the sizes will either remain the same or will result in
smaller shrinks.

show more ...


# 3b066188 07-Mar-2023 George Peter Banyard

RFC: Saner array_(sum|product)() (#10161)

RFC: https://wiki.php.net/rfc/saner-array-sum-product

Moreover, the internal fast_add_function() function was removed.


# 2b15061f 01-Mar-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Use zend_result in ext/spl where appropriate (#10734)

* Convert functions in spl_heap to return zend_result

* Convert functions in spl_iterators to return zend_result


# 371ae12d 19-Feb-2023 Max Kellermann

Zend/zend_fibers: change return value to zend_result

According to @nikic:

> The current guideline for use of bool and zend_result in php-src is
> that bool is an appropriate ret

Zend/zend_fibers: change return value to zend_result

According to @nikic:

> The current guideline for use of bool and zend_result in php-src is
> that bool is an appropriate return value for "is" or "has" style
> functions, which return a yes/no answer. zend_result is an
> appropriate return value for functions that perform some operation
> that may succeed or fail.

Closes GH-10622.

show more ...


# 821fc55a 22-Feb-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Implement GH-9826: Make class_alias() work with internal classes (#10483)

We can't increase the refcount of internal classes during request time.
To work around this problem we simply do

Implement GH-9826: Make class_alias() work with internal classes (#10483)

We can't increase the refcount of internal classes during request time.
To work around this problem we simply don't refcount aliases anymore and
add a check in the destruction to skip aliases entirely.
There were also some checks which checked for an alias implicitly by
comparing the refcount, these have been replaced by checking the type of
the zval instead.

show more ...


# a408781a 20-Jan-2023 Tim Düsterhus

Remove now-unused check for /dev/urandom from Zend/Zend.m4


# fa1e3f97 18-Jan-2023 Kamil Tekiela

Remove pcre_get_compiled_regex_ex() (#10354)


# 0e5128c2 17-Jan-2023 Kamil Tekiela

Remove mysqlnd_shutdown() (#10355)


# 334ecbed 15-Jan-2023 George Peter Banyard

Update UPGRADING.INTERNALS with the changes made to php_url_encode_hash_ex()


# 7473b86f 13-Jan-2023 Max Kellermann

build/php.m4: remove test for integer types (#10304)

These are mandatory in C99, so it's a pointless waste of time to check
for them.

(Actually, the fixed-size integer types are

build/php.m4: remove test for integer types (#10304)

These are mandatory in C99, so it's a pointless waste of time to check
for them.

(Actually, the fixed-size integer types are not mandatory, but if they
are really not available on some theoretical system, PHP's fallbacks
won't work either, so nothing is gained from this check.)

show more ...


# 01e5ffc8 04-Jan-2023 Max Kellermann

UPGRADING.INTERNALS: mention the header cleanups


# 0ff4a9ac 16-Dec-2022 Arnaud Le Blanc

[ci skip] UPGRADING


# 25cdb3b8 18-Oct-2022 Jeremy Mikola

[skip ci] Document zend_enum_get_case_by_value() function

This function was introduced in d62d50b88ecf8ed838b20d48006a32277eb569fe.


# 68301b14 08-Oct-2022 Tyson Andre

[skip ci] Add docs for json_validate in `UPGRADING*`


# 912ab5ae 14-Sep-2022 Bob Weinand

Merge branch 'PHP-8.2'


# 4af695e9 10-Sep-2022 Máté Kocsis

Require PHP 7.4 at least for running the build system (#9519)

Revision tags: php-8.2.0RC1, php-8.1.10
# 327c9523 30-Aug-2022 Pierrick Charron

Prepare for PHP 8.3

Revision tags: php-8.0.23
# f7d42f64 23-Aug-2022 Andreas Braun

Update gen_stub to avoid compile errors on duplicate function names

Closes GH-9406

12345678910>>...15