#
76582205 |
| 17-Nov-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Improve performance of mbfl_name2encoding() by using perfect hashing (#12707) mbfl_name2encoding() uses a linear loop through the encodings, comparing the name one by one, which is very
Improve performance of mbfl_name2encoding() by using perfect hashing (#12707) mbfl_name2encoding() uses a linear loop through the encodings, comparing the name one by one, which is very slow. For the benchmark [1] just looking up the name takes about 50% of run-time. By using perfect hashing instead, we no longer have to loop over the list, and the number of string comparisons is reduced to just a single one. The perfect hashing table is generated using GNU gperf and amended manually to fit in with mbstring and manually changed to reduce the cache size. [1] https://github.com/php/php-src/issues/12684#issuecomment-1813799924
show more ...
|
#
0f349d4c |
| 16-Nov-2023 |
Jakub Zelenka |
Add POSIX_SC_CHILD_MAX and POSIX_SC_CLK_TCK constants Closes GH-12689 |
#
1bdb0fdd |
| 16-Nov-2023 |
Gina Peter Banyard |
Refactor pcntl_sigprocmask()/pcntl_sigwaitinfo()/pcntl_sigtimedwait() (#11860) |
#
1492be52 |
| 13-Nov-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
[RFC] DOM HTML5 parsing and serialization support (#12111) |
#
3b68df24 |
| 12-Nov-2023 |
Jakub Zelenka |
Add note to UPGRADING about proc_open changes for invalid command Closes GH-12589 |
#
f150f997 |
| 11-Nov-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Improve browscap get_browser performance (#12651) * Split function and use _new variant to avoid redundant checks * Precompute better array size to avoid rehashing * Use ne
Improve browscap get_browser performance (#12651) * Split function and use _new variant to avoid redundant checks * Precompute better array size to avoid rehashing * Use new function to add into array instead of merging into, preventing temporary memory allocations * Convert to regex without separate copy + lowering We're already doing a character-wise loop after lowering, so just lower it character by character instead of looping over it twice and allocating memory. * Use HASH_MAP loop because htab can never be packed This saves additional checks. * Move destructor to more sensible place * Remove now unused browscap_zval_copy_ctor * Use zend_string_release_ex variant where possible * Implement dedicated greedy wildcard matching algorithm This avoids compiling, allocating and caching regexes and should run in the same complexity. * Cache previous length instead of repeatedly recomputing it * Add additional optimization to wildcard * matching * Move cheap checks to the callsite The function prologue and epilogue have a stupidly high overhead for those 2 simple checks at the start. We can't always-inline the reg_compare function because it contains alloca, and the alloca is really important for performance. Instead, move those cheap checks to the call site. * Use specialised loop to avoid unnecessary conversions and checks * Optimize counting loop by taking into account the prefix * Precompute the hash values of known keys * [ci skip] UPGRADING * Code style * Add a note why we have the early-skip checks in the loop
show more ...
|
#
63898008 |
| 10-Nov-2023 |
Dmitriy Degtyaryov |
Fix GH-9344: pgsql pipeline mode proposal. Adding pg_send_flush_request. Fix freeze after next execute pg_send_* on PQgetResult in _php_pgsql_link_has_results. Set nonblocking for pi
Fix GH-9344: pgsql pipeline mode proposal. Adding pg_send_flush_request. Fix freeze after next execute pg_send_* on PQgetResult in _php_pgsql_link_has_results. Set nonblocking for pipelining mode. No flush client buffer in pg_send_* for pipelining mode. Close GH-12644
show more ...
|
#
1ad5f9da |
| 04-Nov-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
[ci skip] UPGRADING |
#
9a973a37 |
| 04-Nov-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Optimize strcspn (#12594) |
#
ee5fe483 |
| 02-Nov-2023 |
David Carlier |
[ci skip] fix typo in UPGRADING |
#
d4183c2c |
| 01-Nov-2023 |
David Carlier |
[ci skip] Intl extension UPGRADING note |
#
a470c4ae |
| 28-Oct-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-12532: PharData created from zip has incorrect timestamp The datetime stored in the DOS time fields, which is what zip standard uses, is local time without a timezone. There's an
Fix GH-12532: PharData created from zip has incorrect timestamp The datetime stored in the DOS time fields, which is what zip standard uses, is local time without a timezone. There's an extension to the zip file format since '97 that allows storing a unix timestamp (in UTC) in the header for both the central directory and the local entries. This patch adds support for this. Closes GH-12548.
show more ...
|
#
74ba9167 |
| 29-Oct-2023 |
Jorg Adam Sowa |
Typed constants in sqlite extension (#12379) |
#
9ad78441 |
| 29-Oct-2023 |
Jorg Adam Sowa |
Typed constants in Intl extenstion (#12360) |
#
dff8679a |
| 29-Oct-2023 |
Jorg Adam Sowa |
Typed constants in PDO extension (#12362) |
#
d04854b3 |
| 23-Oct-2023 |
Alex Dowad |
Add fast mb_strcut implementation for UTF-16 Similar to the fast, specialized mb_strcut implementation for UTF-8 in 1f0cf133db, this new implementation of mb_strcut for UTF-16 strings
Add fast mb_strcut implementation for UTF-16 Similar to the fast, specialized mb_strcut implementation for UTF-8 in 1f0cf133db, this new implementation of mb_strcut for UTF-16 strings just examines a few bytes before each cut point. Even for short strings, the new implementation is around 2x faster. For strings around 10,000 bytes in length, it comes out about 100-500x faster in my microbenchmarks. The new implementation behaves identically to the old one on valid UTF-16 strings; a fuzzer was used to help verify this.
show more ...
|
#
e8d8a5fe |
| 28-Oct-2023 |
Jorg Adam Sowa |
Typed constants in reflection extension (#12378) |
#
e58af7c1 |
| 12-Oct-2023 |
Viktor Vassilyev |
ext/soap: Add support for clark notation for namespaces in class map Closes GH-12411. |
#
98b08c52 |
| 22-Oct-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Implement request #68325: parse huge option for xml_parser_create (#12256) |
#
0e5d6544 |
| 20-Oct-2023 |
George Peter Banyard |
ext/xml: Refactor extension to use FCC instead of zvals for handlers (#12340) To get proper errors and sensible behaviour, as the current behaviour is somewhat insane and part of it should b
ext/xml: Refactor extension to use FCC instead of zvals for handlers (#12340) To get proper errors and sensible behaviour, as the current behaviour is somewhat insane and part of it should be axed ASAP. The behaviour is mostly intact with some minor BC breaks which are mentioned in UPGRADING. Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
show more ...
|
#
b5c287e4 |
| 12-Oct-2023 |
SakiTakamachi |
Fix GH-12423: Changed to prioritize DSN authentication information over arguments. Added connection test Close GH-12424 |
#
d0b29d82 |
| 13-Oct-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Optimize strspn() The current implementation uses a nested loop (for + goto), which has complexity O(|s1| * |s2|). If we instead use a lookup table, the complexity drops to O(|s1| +
Optimize strspn() The current implementation uses a nested loop (for + goto), which has complexity O(|s1| * |s2|). If we instead use a lookup table, the complexity drops to O(|s1| + |s2|). This is conceptually the same strategy that common C library implementations such as glibc and musl use. The variation with a bitvector instead of a table also gives a speed-up, but the table variation was about 1.34x faster. On microbenchmarks this easily gave a 5x speedup. This can bring a 1.4-1.5% performance improvement in the Symfony benchmark. Closes GH-12431.
show more ...
|
#
57a8f63f |
| 08-Oct-2023 |
David Carlier |
[ci skip] UPGRADING pgsql update |
#
009d48da |
| 08-Oct-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Convert bounds exception in SplFixedArray to OutOfBoundsException instead of RuntimeException (#12383) |
#
f0757100 |
| 07-Oct-2023 |
Jorg Adam Sowa |
Typed constants in SPL extension (#12358) |