History log of /PHP-8.4/UPGRADING.INTERNALS (Results 51 – 75 of 502)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# bf139e9b 01-Jul-2024 Peter Kokot

Remove unused defined CPP macros in fpm SAPI (#14740)

* Remove unused defined CPP macros in fpm SAPI

- PHP_FPM_SYSTEMD
- PHP_FPM_USER
- PHP_FPM_GROUP

* [skip ci] Up

Remove unused defined CPP macros in fpm SAPI (#14740)

* Remove unused defined CPP macros in fpm SAPI

- PHP_FPM_SYSTEMD
- PHP_FPM_USER
- PHP_FPM_GROUP

* [skip ci] Update UPGRADING.INTERNALS

show more ...


# 88da9149 27-Apr-2024 Niels Dossche <7771979+nielsdos@users.noreply.github.com>

Implement CSS selectors


# a5b7850d 29-Jun-2024 Peter Kokot

Wrap Zend max execution timers check in M4 macro (#14696)

- PHP_CHECK_FUNC -> AC_SEARCH_LIBS
- Redundant symbols HAVE_LIBRT and HAVE_TIMER_CREATE removed
- The rt library for some ol

Wrap Zend max execution timers check in M4 macro (#14696)

- PHP_CHECK_FUNC -> AC_SEARCH_LIBS
- Redundant symbols HAVE_LIBRT and HAVE_TIMER_CREATE removed
- The rt library for some older systems (Solaris <= 10, older Linux)
appended as needed
- This uses AC_ and AS_* macros and relies more on Autoconf shell
code handling
- Help texts updated and synced

show more ...


# f3feef8b 24-Jun-2024 Peter Kokot

Define default RE2C_FLAGS (#14615)

The --no-generation-date flag is a common re2c flag used in all re2c
invocations. This adds the 2nd optional argument to PHP_PROG_RE2C M4
macro in

Define default RE2C_FLAGS (#14615)

The --no-generation-date flag is a common re2c flag used in all re2c
invocations. This adds the 2nd optional argument to PHP_PROG_RE2C M4
macro in BC manner to set the default re2c command-line options and sets
the default RE2C_FLAGS similarly on Windows.

show more ...


# 106581b1 23-Jun-2024 Peter Kokot

Remove outdated libs_version.txt file (#14631)

This is not being synced with changes done in github.com/winlibs and
served only for documentation purposes. Since the list is outdated it

Remove outdated libs_version.txt file (#14631)

This is not being synced with changes done in github.com/winlibs and
served only for documentation purposes. Since the list is outdated it is
simpler to remove it than maintain it updated.

show more ...


# c6dc3bd9 23-Jun-2024 Peter Kokot

Remove obsolete enable_pear BC compatibility check (#14636)

This was added due to configure option rename from --enable-pear to
--with-pear:
2cf1b8d3459736457b46c295eb2e8b87acb4f521


# f4ce50dd 21-Jun-2024 Peter Kokot

Add optional pkg-config support for PostgreSQL library (libpq) (#14540)

The pkg-config (libpq.pc file) was added in PostgreSQL 9.3. This adds a
common setup M4 macro PHP_SETUP_PGSQL to f

Add optional pkg-config support for PostgreSQL library (libpq) (#14540)

The pkg-config (libpq.pc file) was added in PostgreSQL 9.3. This adds a
common setup M4 macro PHP_SETUP_PGSQL to find client PostgreSQL library
libpq on the system with pkg-config. If not found, check falls back to
pg_config to find the libpq and its headers in common locations as
before.

The PGSQL_CFLAGS and PGSQL_LIBS environment variables can override the
libpq installation paths:

./configure --with-pgsql --with-pdo-pgsql \
PGSQL_CFLAGS=-I/path/to/libpq \
PGSQL_LIBS="-L/path/to/libpq -lpq"

Passing manual, non-standard PostgreSQL installation path can be done
with configure option arguments:

./configure \
--with-pgsql=/any/path/to/postgresql \
--with-pdo-postgresql=/any/path/to/postgresql

If this DIR argument (PostgreSQL installation directory or path to the
pg_config) is passed, it takes precedence over the pkg-config, when
installed on the system.

This also removes the unused HAVE_LIBPQ symbol and passing the
PGSQL_INCLUDE and PGSQL_LIBDIR environment variable to configure in
favor of PGSQL_CFLAGS and PGSQL_LIBS.

Instead of the obsolete backticks the recommended $(...) is used when
invoking the pg_config.

Follow-up of GH-4235 (Use PKG_CHECK_MODULES to detect the pq library)

show more ...


# dc477b59 19-Jun-2024 Arnaud Le Blanc

[ci skip] NEWS for GH-13432


# 6e825dfe 15-Jun-2024 Peter Kokot

Add --enable-phpdbg-debug option on Windows (#14568)

This enables outputting additional debugging messages when running
phpdbg for developing and troubleshooting phpdbg itself. Option wa

Add --enable-phpdbg-debug option on Windows (#14568)

This enables outputting additional debugging messages when running
phpdbg for developing and troubleshooting phpdbg itself. Option was
already added in Autotools and this adds it also to Windows build
system.

Because additional info is printed when running tests, the
--enable-phpdbg-debug option is excluded when building with
--enable-snapshot-build if not provided explicitly.

show more ...


# 61a0e3bd 11-Jun-2024 Peter Kokot

Sync HAVE_OPENSSL* symbols (#14333)

This syncs few inconsistencies between the Windows and Autotools build
systems:
- HAVE_OPENSSL_EXT is now defined in the same style on both system

Sync HAVE_OPENSSL* symbols (#14333)

This syncs few inconsistencies between the Windows and Autotools build
systems:
- HAVE_OPENSSL_EXT is now defined in the same style on both systems
(undefined - extension is not available, defined to 1 - extension is
available)
- HAVE_OPENSSL removed as it was only defined on Windows

show more ...


# 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


12345678910>>...21