History log of /PHP-8.3/UPGRADING.INTERNALS (Results 1 – 25 of 305)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 80b4c730 18-Oct-2023 Ilija Tovilo

Implement diagnostic ignore macro for Clang

Newer versions of Clang now also complain about -Wscript-prototypes for included
headers.

Closes GH-12467

# bb092ab4 06-Aug-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Fix #80927: Removing documentElement after creating attribute node: possible use-after-free

Closes GH-11892.

# efc73f24 07-Aug-2023 Ilija Tovilo

Revert "Call cast_object handler from get_properties_for"

This reverts commit 4182813ebffe0570e3741debd7da543df3517d0d.

# 4182813e 30-Jun-2023 Ilija Tovilo

Call cast_object handler from get_properties_for

Fixes GH-11547
Closes GH-11583

# d35df89c 19-Jul-2023 Athos Ribeiro

Fix #79026: Allow PHP_EXTRA_VERSION overrides

When building from sources, someone distributing PHP may want to add a
vendor specific string to the PHP_VERSION so users can differentiate

Fix #79026: Allow PHP_EXTRA_VERSION overrides

When building from sources, someone distributing PHP may want to add a
vendor specific string to the PHP_VERSION so users can differentiate
multiple vendor builds from the same PHP version. For instance, a vendor
backporting a bug fix to a no-longer-supported PHP version could extend
their PHP_EXTRA_VERSION to allow their users to identify that they carry
such fix by checking their PHP_VERSION.

Closes GH-11706

show more ...

# 1a0ef2c1 06-Jul-2023 Ilija Tovilo

Revert "Remove name field from the zend_constant struct (#10954)"

This reverts commit f42992f580343931434dff2e4b2042ff945b48a1.

Closes GH-11604

# d0731934 16-Jul-2023 Arnaud Le Blanc

Expose time spent collecting cycles in gc_status() (#11523)

# 0b2e6bc2 02-Jul-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Cache d_type in directory entry

# 1fbbd2b2 02-Jul-2023 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Remove unused is_recursive entry

This only takes up space and time.

# c6e934b2 07-Jul-2023 George Peter Banyard

[skip ci] Document LDFLAGS not being unset anymore

# ad1b70d6 04-Jul-2023 Ilija Tovilo

Revert "Revert "Remove name field from the zend_constant struct (#10954)""

This reverts commit 9f4bd3040d2809f209d73f696b21302f311665b7.

# 9f4bd304 03-Jul-2023 Máté Kocsis

Revert "Remove name field from the zend_constant struct (#10954)"

This reverts commit f42992f580343931434dff2e4b2042ff945b48a1.

Fix GH-11423

# b4917d8a 26-Jun-2023 nielsdos <7771979+nielsdos@users.noreply.github.com>

[ci skip] Update UPGRADING.INTERNALS

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

12345678910>>...13