1
0
mirror of https://github.com/php/php-src.git synced 2026-04-21 15:08:16 +02:00
Commit Graph

658 Commits

Author SHA1 Message Date
Patrick Allaert badfe4fbda Update versions for PHP 8.1.21 2023-07-05 01:24:43 +02:00
Ben Ramsey 2f2fd06be0 PHP-8.1 is now for PHP 8.1.21-dev 2023-05-23 16:19:16 -05:00
Patrick Allaert 725f136f9a PHP-8.1 is now for PHP 8.1.20-dev 2023-04-25 16:18:30 +02:00
Ben Ramsey d9df750b22 PHP-8.1 is now for PHP 8.1.19-dev 2023-03-29 19:51:20 -05:00
Kévin Dunglas ad85e71421 fix: support for timeouts with ZTS on Linux (#10141) 2023-03-03 11:35:06 +01:00
Patrick Allaert 729f006de8 PHP-8.1 is now for PHP 8.1.18-dev 2023-02-28 21:37:52 +01:00
Ben Ramsey 28d68f5013 PHP-8.1 is now for PHP 8.1.17-dev 2023-02-13 13:16:07 -06:00
Patrick Allaert c47a1a260d PHP-8.1 is now for PHP 8.1.16-dev 2023-01-17 17:24:25 +01:00
Ben Ramsey 696bb385df PHP-8.1 is now for PHP 8.1.15-dev 2022-12-07 11:29:37 -06:00
Patrick Allaert 540488c74e PHP-8.1 is now for PHP 8.1.14-dev 2022-11-08 17:57:34 +01:00
Ben Ramsey 865161af33 PHP-8.1 is now for PHP 8.1.13-dev 2022-10-11 19:47:00 -04:00
Patrick Allaert 0f575aa698 PHP-8.1 is now for PHP 8.1.12-dev 2022-09-13 23:09:47 +02:00
Ben Ramsey 7f26661993 PHP-8.1 is now for PHP 8.1.11-dev 2022-08-16 10:45:29 -05:00
Jakub Zelenka 897ca85d33 Revert "Fix GH-8409: SSL handshake timeout persistent connections hanging"
This reverts commit d0527427be.

This patch makes Swoole/Swow can not work anymore, because Coroutine will yield to another one during socket operation, EG(record_errors) assertion will always fail, and zend_begin_record_errors() was only used during compile time before.
Note: zend_emit_recorded_errors() and the typo fix are reserved.
2022-08-14 19:41:06 +08:00
Jakub Zelenka d0527427be Fix GH-8409: SSL handshake timeout persistent connections hanging
This is not actually related to SSL handshake but stream socket creation
which does not clean errors if the error handler is set. This fix
prevents emitting errors until the stream is freed.
2022-08-12 17:09:24 +01:00
Patrick Allaert 9af3327176 PHP-8.1 is now for PHP 8.1.10-dev 2022-07-20 06:48:52 +02:00
Ben Ramsey f3b45e74f5 PHP-8.1 is now for PHP 8.1.9-dev 2022-06-21 11:03:50 -05:00
Patrick Allaert 3b6ee1eb19 Bump for 8.1.8-dev 2022-05-25 00:54:00 +02:00
Ben Ramsey fb819faa4e Prepare for PHP 8.1.7 2022-04-26 19:22:15 -05:00
Patrick Allaert 5a899563cc Bump for 8.1.6-dev 2022-03-31 17:37:41 +02:00
Patrick Allaert 723058c3bf Bump for 8.1.5-dev 2022-03-02 17:38:22 +01:00
Patrick Allaert 8db7fd8a2a Bump for 8.1.4-dev 2022-02-03 02:21:29 +01:00
Patrick Allaert 4ae75623fd Preparing for 8.1.3-dev 2022-01-04 19:29:41 +01:00
Patrick Allaert 628670c391 Prepare for 8.1.2 2021-12-02 14:20:36 +01:00
Patrick Allaert ac96db6767 Preparing for 8.1.1 2021-11-27 11:06:14 +01:00
Dmitry Stogov 72f8dbb312 Fixed bug #81634 (ZEND_ENABLE_STATIC_TSRMLS_CACHE produces extensionswith the STATIC_TLS flag) 2021-11-24 20:43:30 +03:00
Nikita Popov 27901e0f6a Restore dev version 2021-09-01 09:56:54 +02:00
Patrick Allaert 5764414eb8 Prepare for PHP 8.1.0RC1 2021-08-31 18:57:44 +02:00
Nikita Popov e011952576 Preload unlinked classes, remove preload autoload (#7311)
Currently, classes that can't be linked get moved back into the original script
and are not preloaded. As such classes may be referenced from functions that
did get preloaded, there is a preload autoload mechanism to load them at
runtime.

Since PHP 8.1, we can safely preload unlinked classes, which will then go
through usual lazy loading. This means that we no longer need the preload
autoload mechanism. However, we need to be careful not to modify any hash
table buckets in-place, and should create new buckets for lazy loaded classes.
2021-07-28 14:27:58 +02:00
Ganesh Kandu 6157fcc010 Fix typedef redefinition warnings.
Closes GH-7197.
2021-06-28 10:11:43 +02:00
twosee 795efd7613 Add zend_getpagesize() and reuse it in accelerator and fiber (#7057) 2021-05-27 18:27:18 +08:00
twosee 95d21f12e3 Add missing extern "C" in zend.h (#7056) 2021-05-27 15:53:30 +08:00
Nikita Popov dd86987b2c Replay warnings during inheritance (#6928)
Since 3e6b447979 it is again possible to have
warnings (deprecations) during inheritance, and more such functionality is
likely in the future. This is a problem, because such warnings will only be
shown on the first request if the opcache inheritance cache is used. This
currently causes test failures in --repeat builds.

Fix this by uplifting the error recording functionality from opcache to Zend,
and then using it to persist a warning trace in the inheritance cache, which
can then be used to replay the warnings on subsequent executions.
2021-04-29 16:37:53 +02:00
Nikita Popov e8e7c04a3a Use common struct to store error information
This is needed by both fibers and opcache (and GH-6903 also uses it),
so make it a common structure that can be used by any functionality
storing warnings/errors.
2021-04-29 11:50:54 +02:00
Nikita Popov 78e1f190fc Export zend_error_zstr_at()
This is the formerly static function zend_error_impl(), which is
the core error handling implementation.
2021-04-23 11:29:55 +02:00
Nikita Popov a1c6ee2164 Convert error filename to zend_string
Error handling functions/callbacks now accept the error filename
as a zend_string* instead of a const char*.
2021-04-23 11:05:14 +02:00
George Peter Banyard d24cf1a417 Introduce zend_error_unchecked()
To be used with custom formats like %H as otherwise the compiler complains about unknown formats
2021-04-20 19:41:36 +01:00
Nikita Popov 8e8dcf5f4c Implement debug_print_backtrace() on top of zend_fetch_backtrace()
As debug_print_backtrace() is not performance-critical, this
implements it by formatting the zend_fetch_backtrace() result.
This means there is only one place implementing the backtrace
construction logic, and they cannot go out of sync.
zend_fetch_backtrace() has much better test coverage, because
it is used by exceptions.

Closes GH-6869.
2021-04-15 15:15:20 +02:00
Ilija Tovilo 269c8dac1d Implement enums
RFC: https://wiki.php.net/rfc/enumerations

Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>

Closes GH-6489.
2021-03-17 19:08:03 +01:00
Dmitry Stogov c732ab400a Change Zend Stream API to use zend_string* instead of char*.
This allows to eliminate re-calculation of string lenght and hash value.
See the detailed list of changes in UPGRADING.INTERNALS.
2021-03-16 20:31:36 +03:00
Dmitry Stogov 4b79dba932 Added Inheritance Cache.
This is a new transparent technology that eliminates overhead of PHP class inheritance.

PHP  classes are compiled and cached (by opcahce) separately, however their "linking" was done at run-time - on each request. The process of "linking" may involve a number of compatibility checks and borrowing methods/properties/constants form parent and traits. This takes significant time, but the result is the same on each request.

Inheritance Cache performs "linking" for unique set of all the depending classes (parent, interfaces, traits, property types, method types involved into compatibility checks) once and stores result in opcache shared memory. As a part of the this patch, I removed limitations for immutable classes (unresolved constants, typed properties and covariant type checks). So now all classes stored in opcache are "immutable". They may be lazily loaded into process memory, if necessary, but this usually occurs just once (on first linking).

The patch shows 8% improvement on Symphony "Hello World" app.
2021-02-09 22:53:57 +03:00
Nikita Popov 3e01f5afb1 Replace zend_bool uses with bool
We're starting to see a mix between uses of zend_bool and bool.
Replace all usages with the standard bool type everywhere.

Of course, zend_bool is retained as an alias.
2021-01-15 12:33:06 +01:00
Gabriel Caruso 14806e0824 Prepare for PHP 8.1
Closes GH-6305.
2020-10-09 11:37:27 +02:00
Benjamin Eberlei 1359a52d5b Rename zend_error_notify APIs to zend_observer_error* 2020-09-14 19:29:14 +02:00
twosee f982038fb6 Merge branch 'PHP-7.4'
* PHP-7.4:
  Improve error_handing replacement functions

# Conflicts:
# Zend/zend_API.c
2020-08-30 17:06:59 +08:00
George Peter Banyard fa8d9b1183 Improve type declarations for Zend APIs
Voidification of Zend API which always succeeded
Use bool argument types instead of int for boolean arguments
Use bool return type for functions which return true/false (1/0)
Use zend_result return type for functions which return SUCCESS/FAILURE as they don't follow normal boolean semantics

Closes GH-6002
2020-08-28 15:41:27 +02:00
Nikita Popov 0d836a39a7 Revert "Prepare for PHP 8.1"
This reverts commit 1ab4d0e6b7.
This reverts commit a359635cb1.
2020-08-04 22:24:44 +02:00
Gabriel Caruso a359635cb1 Prepare for PHP 8.1 2020-08-04 18:46:14 +02:00
twosee 6e92487f66 Fix warnings of strict-prototypes
Closes GH-5887.
2020-07-23 00:59:00 +08:00
twosee e29ee65ec0 Export zend_register_error_notify_callback() with ZEND_API 2020-07-23 00:45:06 +08:00