#
5a03ff4f |
| 07-Jun-2024 |
Peter Kokot |
Remove PHP_SETUP_OPENSSL inactive 3rd argument (#14323) If OpenSSL is not found, the PKG_CHECK_MODULES errors out already. To not introduce too big of a BC break with possible PECL exten
Remove PHP_SETUP_OPENSSL inactive 3rd argument (#14323) If OpenSSL is not found, the PKG_CHECK_MODULES errors out already. To not introduce too big of a BC break with possible PECL extensions using this macro, it is perhaps simpler to remove this non-working argument. Redundant macro arguments are ignored by Autoconf anyway.
show more ...
|
#
cfb73958 |
| 07-Jun-2024 |
Peter Kokot |
Check ext/pcntl required functions with for loop (#14302) This omits defining redundant HAVE_<function> symbols since these are used unconditionally in ext/pcntl. * HAVE_FORK is
Check ext/pcntl required functions with for loop (#14302) This omits defining redundant HAVE_<function> symbols since these are used unconditionally in ext/pcntl. * HAVE_FORK is defined via ext/standard/config.m4 * HAVE_SIGACTION is defined via Zend.m4 * HAVE_WAITPID symbol is removed
show more ...
|
#
df481ef9 |
| 03-Jun-2024 |
Peter Kokot |
Simplify PDO include paths (#14444) PDO include paths can be simplified and synced as done in other extensions: either the project root directory or the phpincludedir (for the system
Simplify PDO include paths (#14444) PDO include paths can be simplified and synced as done in other extensions: either the project root directory or the phpincludedir (for the system installation). The 'ext' include is automatically appended when doing phpize build. In php-src it is only present on Windows build. The PHP_CHECK_PDO_INCLUDES is left intact working as before and checks if PDO headers are found.
show more ...
|
#
f69c55b5 |
| 01-Jun-2024 |
Peter Kokot |
Remove hash dependency from session extension (#14409) The session extension once depended on the hash extension for having hash functions available when using the `session.hash_function
Remove hash dependency from session extension (#14409) The session extension once depended on the hash extension for having hash functions available when using the `session.hash_function` INI directive. This directive was removed in PHP-7.1 via 3467526a65bfb15eaf9ec49a0b5673b84e26bca4. At the time it could be marked as optional dependency, because it only needed to be loaded before the session in that case. The removed ext/hash/php_hash.h in the ext/session/php_session.h might cause BC break for PHP extensions if they rely on transitive include and use hash extension in the code without explicitly including the ext/hash/php_hash.h header. Solution is to include the ext/hash/php_hash.h separately.
show more ...
|
#
c7797fc8 |
| 29-May-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix bug GH-11941: soap with session persistence will silently fails when "seession" built as a shared object (#14362) This adds an optional dependency on the session extension and adds the
Fix bug GH-11941: soap with session persistence will silently fails when "seession" built as a shared object (#14362) This adds an optional dependency on the session extension and adds the necessary APIs to make the functionality work with lazy binding. This can be tested by configuring PHP with `--enable-session=shared` and `--enable-soap=shared` and running the test suite, in particular the buggy behaviour can be observed by the existing test `server009.phpt`.
show more ...
|
#
48d5ae98 |
| 29-May-2024 |
Gina Peter Banyard |
ext/standard: Refactor exec.c public APIs to use zend_string pointers (#14353) * Pull zend_string* from INI directive * Ensure that mail.force_extra_parameters INI directive does no
ext/standard: Refactor exec.c public APIs to use zend_string pointers (#14353) * Pull zend_string* from INI directive * Ensure that mail.force_extra_parameters INI directive does not have any nul bytes * ext/standard: Make php_escape_shell_cmd() take a zend_string* instead of char* This saves on an expensive strlen() computation * Convert E_ERROR to ValueError in php_escape_shell_cmd() * ext/standard: Make php_escape_shell_arg() take a zend_string* instead of char* This saves on an expensive strlen() computation * Convert E_ERROR to ValueError in php_escape_shell_arg()
show more ...
|
#
8cf87515 |
| 27-May-2024 |
Tim Düsterhus |
random: Remove internal aliases for the global Mt19937 functionality (#14314) * random: Remove `php_rand()` This effectively is just a slim wrapper around `(zend_long)php_mt_rand()`
random: Remove internal aliases for the global Mt19937 functionality (#14314) * random: Remove `php_rand()` This effectively is just a slim wrapper around `(zend_long)php_mt_rand()`. It is not compatible between 32-bit and 64-bit builds of PHP, due to the use of `zend_long`, which may result in negative integersbeing returned on 32-bit platforms, whereas 64-bit platforms will be compatible with `php_mt_rand()`. An example would be the `0` seed, which emits 2357136044 on 64-bit platforms and -1937831252 on 32-bit platforms. Users of `php_rand()` should ideally migrate to one of the more modern engines, with extension-specific state. If drop-in compatibility is desired, they can just cast the result of `php_mt_rand()`. But providing it out of the box does not provide a value-add and is potentially dangerous. * random: Remove `php_srand()` With `php_rand()` gone, preserving its companion `php_srand()` is just confusing. The same recommendations apply: Migrate to a modern engine if possible and just call `php_mt_srand()` with an appropriately casted input. * random: Remove `PHP_RAND_MAX` and `RAND_MAX` These are the companions to `php_rand()`, which was removed in a previous commit. Generally speaking the maximum returnable value is not particularly useful anyways. Attempting it to create a random float by dividing the returned integer by the maximum value would result in a bias if the maximum value would be larger than 2**53 and even for that case, the various `range()` helpers allow to easily retrieve a uniformly distributed integer from a suitable range. * UPGRADING.INTERNALS
show more ...
|
#
c461b600 |
| 24-May-2024 |
Levi Morrison |
refactor: change `zend_is_true` to return `bool` (#14301) Previously this returned `int`. Many functions actually take advantage of the fact this returns exactly 0 or 1. For instance,
refactor: change `zend_is_true` to return `bool` (#14301) Previously this returned `int`. Many functions actually take advantage of the fact this returns exactly 0 or 1. For instance, `main/streams/xp_socket.c` does: sockopts |= STREAM_SOCKOP_IPV6_V6ONLY_ENABLED * zend_is_true(tmpzval); And `Zend/zend_compile.c` does: child = &ast->child[2 - zend_is_true(zend_ast_get_zval(ast->child[0]))]; I changed a few places trivially from `int` to `bool`, but there are still many places such as the object handlers which return `int` that should eventually be `bool`.
show more ...
|
#
62ebe822 |
| 16-May-2024 |
Ilija Tovilo |
Separate internal and user function extension handles This allows us to skip zend_init_internal_run_time_cache() when opcache is enabled. This function can be quite expensive. C
Separate internal and user function extension handles This allows us to skip zend_init_internal_run_time_cache() when opcache is enabled. This function can be quite expensive. Closes GH-14252
show more ...
|
#
2a23c91a |
| 16-May-2024 |
Peter Kokot |
Remove unused HAVE_PDO_SQLITELIB symbol (#14232) Symbol isn't defined on Windows and is redundant since the SQLite library is required for ext/pdo_sqlite and isn't bundled in php-src
Remove unused HAVE_PDO_SQLITELIB symbol (#14232) Symbol isn't defined on Windows and is redundant since the SQLite library is required for ext/pdo_sqlite and isn't bundled in php-src anymore.
show more ...
|
#
44ed17ca |
| 13-May-2024 |
Peter Kokot |
Replace configure option --with-openssl-dir (#14028) This is a leftover from the refactoring of the --with-openssl-dir option that once accepted the path to OpenSSL but wasn't renamed ba
Replace configure option --with-openssl-dir (#14028) This is a leftover from the refactoring of the --with-openssl-dir option that once accepted the path to OpenSSL but wasn't renamed back then. Instead of --with-openssl-dir, SSL support in ext/ftp and ext/mysqlnd can be enabled implicitly when building with ext/openssl enabled (--with-openssl) or explicitly by using new separate configure options --with-ftp-ssl and --with-mysqlnd-ssl.
show more ...
|
#
87765615 |
| 10-May-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Add note for libxml handlers in UPGRADING.INTERNALS
|
#
a22a8724 |
| 07-Apr-2024 |
Bob Weinand |
Add next handler parameter to zend_observer_remove_begin/end_handler (#13807) The usage of the current API within an observer handler leads to bugs like https://bugs.xdebug.org/view.php?id=2
Add next handler parameter to zend_observer_remove_begin/end_handler (#13807) The usage of the current API within an observer handler leads to bugs like https://bugs.xdebug.org/view.php?id=2232. Given two observer handlers, next to each other. The first one is executed. It removes itself. The second observer handler gets moved to the place of the first. The first one returns. The handler in the second slot is fetched, but is now NULL, because the it's now in the slot of the first observer; i.e. the second handler is skipped and the begin/end symmetry guarantee is violated. Providing the next handler to the caller is a zero-cost way to avoid any impact in the paths of zend_observe_fcall_begin/end. Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
show more ...
|
#
30885f3b |
| 31-Mar-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Implement request #71571: XSLT processor should provide option to change maxDepth (#13731) There are two depth limiting parameters for XSLT templates. 1) maxTemplateDepth This cor
Implement request #71571: XSLT processor should provide option to change maxDepth (#13731) There are two depth limiting parameters for XSLT templates. 1) maxTemplateDepth This corresponds to the recursion depth of a template. For very complicated templates this can be hit. 2) maxTemplateVars This is the total number of live variables. When using recursive templates with lots of parameters you can hit this limit. This patch introduces two new properties to XSLTProcessor that corresponds to the above variables.
show more ...
|
#
6c5814da |
| 27-Mar-2024 |
Remi Collet |
revert base64_encode change
|
#
dd6e738f |
| 26-Mar-2024 |
Remi Collet |
[ci skip] NEWS for base64_encode
|
#
a4534faf |
| 02-Mar-2024 |
Ayesh Karunaratne |
ext/openssl: Remove kerberos support Co-authored-by: Peter Kokot <peterkokot@gmail.com>
|
#
0c07b0d9 |
| 09-Oct-2023 |
Adam Saponara |
Make `--enable-embed` libs respect `--libdir` And make locatable by via `php-config`. Prior to this, `libphp.*` would always install to `$prefix/lib`. After this, they will install t
Make `--enable-embed` libs respect `--libdir` And make locatable by via `php-config`. Prior to this, `libphp.*` would always install to `$prefix/lib`. After this, they will install to `$libdir`. In practice, this will make it so that programs embedding libphp can use `php-config` to determine appropriate compile flags without guessing. In `configure.ac`, it seems `$libdir` is mutated in some instances. Ideally the mutated version would be stored in `$phplibdir` or something. Instead of tracking down all uses of that variable, I introduced another variable `$orig_libdir` that holds the original value passed to the configure script. This is a no-op for users unless they are compiling with `--libdir` set to something other than `$prefix/lib`, the default. Closes GH-12389
show more ...
|
#
79e4ca1e |
| 21-Mar-2024 |
Peter Kokot |
Remove outdated Zend/zend_istdiostream.h file (#13765) This removes the unused and obsolete Zend/zend_istdiostream.h header and symbols on Windows: - HAVE_STDIOSTR_H - HAVE_CLASS
Remove outdated Zend/zend_istdiostream.h file (#13765) This removes the unused and obsolete Zend/zend_istdiostream.h header and symbols on Windows: - HAVE_STDIOSTR_H - HAVE_CLASS_ISTDIOSTREAM - istdiostream
show more ...
|
#
e1630381 |
| 20-Mar-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-13764: xsl cannot build on PHP 8.4 (#13770) Move some of the DOM APIs from the non-public php_dom.h header to the public header xml_common.h.
|
#
81744d6c |
| 18-Mar-2024 |
Tim Düsterhus |
random: Improve the output quality of RANDOM_SEED() (#13730) * random: Improve the output quality of RANDOM_SEED() Previously 4 consecutive calls to `RANDOM_SEED()` each for 4 diffe
random: Improve the output quality of RANDOM_SEED() (#13730) * random: Improve the output quality of RANDOM_SEED() Previously 4 consecutive calls to `RANDOM_SEED()` each for 4 different CLI requests resulted in: $ sapi/cli/php test.php 2c13e9fde9caa 2c13e9fd1d6b0 2c13e9fd4de34 2c13e9fd1610e $ sapi/cli/php test.php 2c1436764fe07 2c14367621770 2c143676c0bf6 2c143676e02f5 $ sapi/cli/php test.php 2c144995a0626 2c14499590fe2 2c144995c65db 2c14499536833 $ sapi/cli/php test.php 2c145cb30860b 2c145cb3ec027 2c145cb33b4ca 2c145cb38ff63 Now they result in: $ sapi/cli/php test.php 6796973ace1b5f3d 1913daf5c158cb4b 255dbf24237bc8c9 7c3ba22e60f35196 $ sapi/cli/php test.php afb7cc9ba9819cd2 3e01a71b91ad020c 6b718364d3ef108 bdcd17beeb4b31d2 $ sapi/cli/php test.php 53d36eb9b83f8788 4381c85e816187aa 2e9b32ee9898e71e 31d15c946842bddb $ sapi/cli/php test.php 2037a3cba88114b4 ba0b0d93a9bb43aa e13d82d2421269e2 191de474f3292240 * tree-wide: Replace GENERATE_SEED() by php_random_generate_fallback_seed() * random: Fix NTS build * random: Fix Windows build
show more ...
|
#
b9559738 |
| 13-Mar-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Only register error handling when observable Closes GH-13702.
|
#
e1181a64 |
| 15-Mar-2024 |
Peter Kokot |
Remove HAVE_MYSQL (#13719) The ext/pdo_mysql symbol has been once used together with the removed ext/mysql extension and isn't defined on Windows neither used in the code anymore.
|
#
649394d3 |
| 09-Mar-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Remove redundant namespace define
|
#
63bb04e5 |
| 09-Mar-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Simplify DOM_RET_OBJ macro
|