forked from php/php-src
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Experiment with moving away from bailout in soap #114
Open
nielsdos
wants to merge
3,224
commits into
master
Choose a base branch
from
soap-no-bailout
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* PHP-8.3: Fix phpGH-15502: Crash with JIT and Excimer (php#15601)
…P 8.1 than in PHP 8.0 We avoid creating backing storage by using the feature introduced in f78d5cf. Closes phpGH-15593.
They are readonly / not readonly depending on the class where they're used. However, the comment makes this confusing [1]. [1] php#15578 (comment)
…hpGH-15609) `peinter` -> `printer`
* PHP-8.3: Fix iconv_open basic test (php#15611)
- Macro headers synced with current PHP style (a minor description added and parameters) - macro arguments quoted - redundant double quotes reduces - AS_VAR_IF macros used - Redundant check message removed because there is already error thrown right after it
Co-authored-by: Michael Voříšek <mvorisek@mvorisek.cz>
* PHP-8.3: [ci skip] NEWS for phpGH-15330 [ci skip] NEWS for phpGH-15330 Do not scan generator frames more than once (php#15330)
For IS_STRING, sxe_object_cast_ex() will call cast_object() which cannot fail for IS_STRING.
The m4_normalize(m4_expand([...])) simplifies working with a list of header files. The m4_normalize() is at this point still used in the php-src config.m4 files because of copy/paste probability to community extensions where the arguments still need to be done in the old style to support phpize in PHP-8.3 and earlier. For example: PHP_INSTALL_HEADERS([ext/dom], m4_normalize([ dom_ce.h namespace_compat.h xml_common.h xpath_callbacks.h ])) When PHP 8.4 will be the minimum supported PHP version, the headers can be installed without using m4_normalize() in PECL extensions. For example: PHP_INSTALL_HEADERS([ext/dom], [ dom_ce.h namespace_compat.h xml_common.h xpath_callbacks.h ])
The m4_normalize(m4_expand([$1])) expands the given argument if it contains M4 macros, and then trims the items together into a space separated string in an intuitive way.
- Obsolete backticks replaced with $(...); also backticks used inside AC_MSG_RESULT result in literal output. The $(...) works as intended and is executed in the shell with proper result message given - A couple of AS_VAR_IF used - Macro arguments quoted - Added simplistic macro definitions headers as done with other php-src M4 headers for consistency of reading the code
By using `m4_normalize(m4_expand([...]))`, the arguments can be split into newlines without using backslashes and it makes working with lists of files a bit easier. Tested: - variables inside the argument - M4 macro expansions - dnl comments - any sequence of newlines, backslash-then-newline, multiple spaces, tabs... - quoted/unquoted arguments This now works for PHP_NEW_EXTENSION, PHP_ADD_SOURCES, PHP_ADD_SOURCES_X, and PHP_SELECT_SAPI. The m4_normalize() usage is left in the php-src config.m4 files following the 0a0d2d0 for PECL extensions until phpize will be available on all supported versions (minimum PHP 8.4).
The HAVE_LIBREADLINE is at this point only defined by Autotools and this check is for Windows only where only HAVE_LIBEDIT is defined.
We don't track whether protected(set) is implicit, so for now always point out when the property is readonly in the error message.
* PHP-8.3: Fix phpGH-15497: Opcache with file_cache and JIT enabled crashes (php#15635)
* PHP-8.3: Restore error message incorrectly removed by commit 10d43c4 (related to phpGH-15497)
For the read and write implementation, store the handler pointer in the first cache slot. For the write implementation, use the second cache slot to store the property info. For a micro-benchmark that performs a write: ```php $dom = new DOMDocument; for ($i=0;$i<9999999;$i++) $dom->strictErrorChecking = false; ``` I obtain the following results on an i7-4790: ``` ./sapi/cli/php ./write.php ran 1.42 ± 0.08 times faster than ./sapi/cli/php_old ./write.php ``` For a micro-benchmark that performs a read: ```php $dom = new DOMDocument; for ($i=0;$i<9999999;$i++) $dom->strictErrorChecking; ``` I obtain the following results on the same machine: ``` ./sapi/cli/php ./read.php ran 1.29 ± 0.13 times faster than ./sapi/cli/php_old ./read.php ```
* PHP-8.3: Prevent possible incorrect optimization caused by ZEND_ASSUME()
zend_get_property_info_for_slot(obj, slot) assumes that 'slot' belongs to 'obj', but that may not be the case for lazy proxies. Fortunately, the property info is often already available in path when it is needed. For other cases, I make zend_get_property_info_for_slot() aware of lazy objects, and add zend_get_property_info_for_slot_self() for cases where the 'slot' is known to belong to the object itself. Fixes oss-fuzz #71446
* PHP-8.3: Fix phpGH-15711: SoapClient can't convert BackedEnum to scalar value Use get_serialization_string_from_zval() in all encoding functions Introduce get_serialization_string_from_zval() and use it in to_xml_string()
…hp#15926) For the `Exception`, `ReflectionClass`, and `ReflectionAttribute` classes, the `__clone()` method is declared to be private, and the implementation has a comment that it should never be executed. However, the implementation can be executed by using a `ReflectionMethod`. Fix the comments to instead explain why the implementation is needed. [skip ci]
* php_reflection.c: make a bunch of pointers `const` * _function_closure_string: use %u for unsigned Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com> * _extension_class_string: make indent pointer `const` Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com> --------- Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com> Co-authored-by: Ilija Tovilo <ilija.tovilo@me.com>
Updates UCD to Unicode 16.0 (released 2024 Sept). Previously: 0fdffc1, php#7502, php#14680 Unicode 16 adds several new character sets and case folding rules. However, the existing ucgendat script can still parse them. This also adds a couple test cases to make sure the new rules for East Asian Wide characters and case folding work correctly. These tests fail on Unicode 15.1 and older because those verisons do not contain those rules.
Gets rid of the "already installed" warning on master.
* zend_inheritance.c: make a bunch of pointers `const` * Fix const double pointers
The return value of zho_build_properties_ex() is passed to ZVAL_ARR(), which sets the IS_TYPE_REFCOUNTED flag. Returning &zend_emtpy_array will crash later when trying to dtor the zval. I'm fixing this by returning zend_new_array(0) instead of &zend_empty_array. An alternative was to make ZVAL_ARR() aware of immutable arrays, like ZVAL_STR() is with interned strings, but I found no other problematic cases.
Ref: PR 15362 / php@c818d94#diff-7ee66c4f1536ac84dc5bbff1b8312e2eef24b974b3e48a5c5c2bcfdf2eb8f3ce Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
- Use more appropriate types - Add const modifiers - Reduce scope of some variable - Prevent shadowing of variable
This was once needed for the --with-kerberos configure options by openssl or imap extensions.
These were needed mostly for the PHP <= 8.3 pspell extension. The nchant2-hunspell gets installed automatically as a dependency with enchant2-dev if needed.
…s must derive from BaseException Triggers on release builds when printing data structures. You can't raise a string, you must raise exceptions. Closes phpGH-15928.
This never did anything in lower versions, but on master this crashes because the virtual properties don't have backing storage. Just forbid it since it was useless to begin with. Closes phpGH-15891.
* Added function for squaring to improve performance of power calculation * Aligned backslashes * Removed unnecessary comments * Extracted common part of multiplication and square functions * Added comment to bc_fast_square * Improved wording of bc_mul_finish_from_vector * Reused new function name * Replaced macro with function
IR commit: 84a4b4259a0ea246f82e0d8a3d79032af75b5267 This fixes phpGH-15903: Core dumped in ext/opcache/jit/ir/ir_ra.c
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.