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