]>
granicus.if.org Git - php/log
Nikita Popov [Tue, 24 Mar 2020 12:18:28 +0000 (13:18 +0100)]
Implement "Constructor Promotion" RFC
RFC: https://wiki.php.net/rfc/constructor_promotion
Closes GH-5291.
Dmitry Stogov [Fri, 5 Jun 2020 11:20:39 +0000 (14:20 +0300)]
micro-optimization
Christoph M. Becker [Wed, 27 May 2020 10:01:16 +0000 (12:01 +0200)]
Drop hard-coded /W3 default in favor of custom CFLAGS
Building with `/W3` shows an awful lot of warnings on Windows, so it's
really hard to spot the more important ones. Since it is not possible
to override the hard-coded `/W3`, we drop it altogether, so MSVC uses
the default `/W1`. Users are encouraged to increase the warning level
via the environment variable `CFLAGS` before doing configure.
We also enable `/WX` (treat warnings as errors) for AppVeyor CI, using
`/W1` for now, since otherwise the build would fail.
Christoph M. Becker [Wed, 27 May 2020 07:58:10 +0000 (09:58 +0200)]
Fix MSVC level 1 (severe) warnings
We fix (hopefully) all instances of:
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4005>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4024>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4028>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4047>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4087>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4090>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4273>
* <https://docs.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4312>
`zend_llist_add_element()` and `zend_llist_prepend_element()` now
explicitly expect a *const* pointer.
We use the macro `ZEND_VOIDP()` instead of a `(void*)` cast to suppress
C4090; this should prevent accidential removal of the cast by
clarifying the intention, and makes it easier to remove the casts if
the issue[1] will be resolved sometime.
[1] <https://developercommunity.visualstudio.com/content/problem/390711/c-compiler-incorrect-propagation-of-const-qualifie.html>
Nikita Popov [Fri, 5 Jun 2020 08:52:07 +0000 (10:52 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Update intl test suite for ICU 67.1
Christoph M. Becker [Fri, 24 Apr 2020 08:43:42 +0000 (10:43 +0200)]
Update intl test suite for ICU 67.1
Cherry-picked from
c915c601710e2a44e6c7f89fcb12b8047c968108 .
Nikita Popov [Fri, 5 Jun 2020 08:36:35 +0000 (10:36 +0200)]
Free attribute validators on shutdown
Nikita Popov [Fri, 5 Jun 2020 08:29:49 +0000 (10:29 +0200)]
Don't leak attributes on internal classes
Also add zend_hash_release() API to complement zend_array_release(),
because the latter is specific to non-persistent zval arrays.
Nikita Popov [Fri, 5 Jun 2020 08:10:52 +0000 (10:10 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Respect --program-prefix/suffix when installing phar
Nathan Porter [Sat, 30 May 2020 22:39:11 +0000 (15:39 -0700)]
Respect --program-prefix/suffix when installing phar
Currently ./configure --enable-phar --program-suffix=7.4 will
result in binaries named php7.4 and phar but should instead
result in php7.4 and phar7.4
Closes GH-5650.
Nikita Popov [Fri, 29 May 2020 08:33:22 +0000 (10:33 +0200)]
Pass zend_string message to zend_error_cb
This makes the zend_error_cb API simpler, and avoid formatting
the same message in multiple places.
It should be noted that the passed zend_string is always
non-persistent, so if you want to store it persistently somewhere,
you may still need to duplicate it.
The last_error_message is cleared a bit more aggressive, to make
sure it doesn't hang around across allocator life-cycles.
Closes GH-5639.
Nikita Popov [Fri, 29 May 2020 15:27:51 +0000 (17:27 +0200)]
Fixed bug #72089: Throw Error on require failure
It should be noted that we still throw the usual fopen warnings,
but the final fatal error becomes an Error exception. Combine
with @ to suppress FS warnings.
Closes GH-5641.
Christoph M. Becker [Thu, 4 Jun 2020 15:15:59 +0000 (17:15 +0200)]
Fix phpdbg watchpoints wrt. negative_array_index RFC
The implementation of that RFC changed the initial value of
`zend_array.nNextFreeElement` to `-1`; we work around that by inserting
first, and retrieving the index afterwards.
We also fix the erroneous printf specifier for the unsigned integer.
Dmitry Stogov [Thu, 4 Jun 2020 21:05:12 +0000 (00:05 +0300)]
Avoid useless "mov"
George Peter Banyard [Tue, 2 Jun 2020 23:13:04 +0000 (01:13 +0200)]
Fix weird zend_bool usage in Intl Calendar::roll() method
This code really needs to be review as it's convoluted for no good reason.
Matthias Dötsch [Thu, 4 Jun 2020 16:58:41 +0000 (18:58 +0200)]
in_array() avoid internal property access as we have the arrlen already
Closes GH-5662
Benjamin Eberlei [Thu, 4 Jun 2020 16:21:18 +0000 (18:21 +0200)]
Add upgrading note for Attributes RFC
[ci-skip]
Benjamin Eberlei [Sun, 24 May 2020 18:57:00 +0000 (20:57 +0200)]
Add Attributes
Co-authored-by: Martin Schröder <m.schroeder2007@gmail.com>
Christoph M. Becker [Thu, 4 Jun 2020 11:40:16 +0000 (13:40 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #73527: Invalid memory access in php_filter_strip
Christoph M. Becker [Thu, 4 Jun 2020 11:38:14 +0000 (13:38 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #73527: Invalid memory access in php_filter_strip
Christoph M. Becker [Thu, 4 Jun 2020 09:49:59 +0000 (11:49 +0200)]
Fix #73527: Invalid memory access in php_filter_strip
Dmitry Stogov [Thu, 4 Jun 2020 11:04:21 +0000 (14:04 +0300)]
Add guard for FETCH_DIM_FUNC_ARG
Dmitry Stogov [Thu, 4 Jun 2020 10:19:42 +0000 (13:19 +0300)]
Prefer shorter x86 instructions
Christoph M. Becker [Wed, 3 Jun 2020 23:03:14 +0000 (01:03 +0200)]
Implement #47074: phpinfo() reports "On" as 1 for the some extensions
What is modified as boolean, should also be displayed as boolean.
Dmitry Stogov [Thu, 4 Jun 2020 09:23:27 +0000 (12:23 +0300)]
Improved tracing JIT for FETCH_OBJ_R/IS
Nikita Popov [Thu, 4 Jun 2020 08:03:39 +0000 (10:03 +0200)]
Remove MYSQLND_COMPRESSION_WANTED define
Instead directly define MYSQLND_COMPRESSION_ENABLED. This also
matches what config.w32 does.
Nikita Popov [Thu, 4 Jun 2020 08:02:12 +0000 (10:02 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
mysqlnd: Remove unnecessary check for HAVE_ZLIB
talyz [Wed, 3 Jun 2020 19:21:18 +0000 (21:21 +0200)]
mysqlnd: Remove unnecessary check for HAVE_ZLIB
If MYSQLND_COMPRESSION_WANTED is set, we already guarantee that
zlib is linked, but don't necessarily set HAVE_ZLIB.
Closes GH-5658.
Christoph M. Becker [Thu, 4 Jun 2020 07:11:13 +0000 (09:11 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #79668: get_defined_functions(true) may miss functions
Dmitry Stogov [Thu, 4 Jun 2020 07:03:15 +0000 (10:03 +0300)]
Tracing JIT for FETCH_DIM_FUNC_ARG and FETCH_OBJ_FUNC_ARG when they are used in READ mode (to pass by value).
Christoph M. Becker [Thu, 4 Jun 2020 06:47:25 +0000 (08:47 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #79668: get_defined_functions(true) may miss functions
Christoph M. Becker [Wed, 3 Jun 2020 10:05:00 +0000 (12:05 +0200)]
Fix #79668: get_defined_functions(true) may miss functions
Instead of some brittle and unefficient string matching, we can just
check for the function handler.
Dmitry Stogov [Wed, 3 Jun 2020 21:17:13 +0000 (00:17 +0300)]
Fixed abstract stack consistency for JMPZ_EX/JMPNZ_EX
Dmitry Stogov [Wed, 3 Jun 2020 19:50:40 +0000 (22:50 +0300)]
"call_info" doesn't matter
Dmitry Stogov [Wed, 3 Jun 2020 15:14:51 +0000 (18:14 +0300)]
Avoid useless register reload
Nikita Popov [Wed, 3 Jun 2020 12:50:35 +0000 (14:50 +0200)]
Fix typo in skipif section
Merge mistake...
Dmitry Stogov [Wed, 3 Jun 2020 09:11:39 +0000 (12:11 +0300)]
Avoid useless REFCOUNTED check
Christoph M. Becker [Tue, 2 Jun 2020 12:58:26 +0000 (14:58 +0200)]
Fix #79665: ini_get() and opcache_get_configuration() inconsistency
Overriding the given INI values in modifier callbacks is not possible,
so instead of enforcing "normalized" internal values, we just reject
the attempted changes.
Dmitry Stogov [Wed, 3 Jun 2020 08:51:04 +0000 (11:51 +0300)]
Use cheaper zend_rethrow_exception() instead of zend_throw_exception_internal()
Nikita Popov [Wed, 3 Jun 2020 08:17:27 +0000 (10:17 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Report len as -1 instead of INT_MAX
Nikita Popov [Wed, 3 Jun 2020 08:15:54 +0000 (10:15 +0200)]
Report len as -1 instead of INT_MAX
Per docs it should be -1. And would be on 32-bit systems, but
not on 64-bit systems.
Nikita Popov [Wed, 3 Jun 2020 08:02:31 +0000 (10:02 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Skip new watch point test under asan
Nikita Popov [Wed, 3 Jun 2020 08:01:57 +0000 (10:01 +0200)]
Skip new watch point test under asan
Dmitry Stogov [Wed, 3 Jun 2020 07:58:17 +0000 (10:58 +0300)]
Handle VM interrupts after DO_ICALL through side exits
Nikita Popov [Wed, 3 Jun 2020 07:57:01 +0000 (09:57 +0200)]
%d out token IDs in test
Avoid having to update this test any time token numbers shift.
Dmitry Stogov [Tue, 2 Jun 2020 21:49:10 +0000 (00:49 +0300)]
Avoid reference counting when RETURN CV
Dmitry Stogov [Tue, 2 Jun 2020 20:50:32 +0000 (23:50 +0300)]
Added missed helper
Christoph M. Becker [Tue, 2 Jun 2020 15:12:34 +0000 (17:12 +0200)]
Skip new test case on Windows when JIT is enabled
Cf. <http://git.php.net/?p=php-src.git;a=commit;h=
c5cf0af8a98cbc574fd315bf9d78033b896886f3 >.
Christoph M. Becker [Tue, 2 Jun 2020 13:19:32 +0000 (15:19 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #73927: phpdbg fails with windows error prompt at "watch array"
Christoph M. Becker [Wed, 27 May 2020 16:26:32 +0000 (18:26 +0200)]
Fix #73927: phpdbg fails with windows error prompt at "watch array"
We expect zvals, so we should request zvals.
We also suppress spurious watchpoint removal notices.
Dmitry Stogov [Tue, 2 Jun 2020 12:55:18 +0000 (15:55 +0300)]
Tracing JIT support for indirect CV modification (may be incomplete)
Dmitry Stogov [Tue, 2 Jun 2020 12:54:44 +0000 (15:54 +0300)]
Afdded misse MAY_BE_ARRAY_* flags
Christoph M. Becker [Tue, 2 Jun 2020 08:48:15 +0000 (10:48 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #79664: PDOStatement::getColumnMeta fails on empty result set
Christoph M. Becker [Tue, 2 Jun 2020 08:46:35 +0000 (10:46 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #79664: PDOStatement::getColumnMeta fails on empty result set
Christoph M. Becker [Tue, 2 Jun 2020 07:36:39 +0000 (09:36 +0200)]
Fix #79664: PDOStatement::getColumnMeta fails on empty result set
As its name suggests, `sqlite3_data_count` returns the number of
columns in the current row of the result set; we are interested in the
number of columns regardless of the current row, so we have to use
`sqlite3_column_count` instead.
Nikita Popov [Tue, 2 Jun 2020 08:15:50 +0000 (10:15 +0200)]
Add some mixed types
Dmitry Stogov [Mon, 1 Jun 2020 13:26:22 +0000 (16:26 +0300)]
Fixed retutn type inference when return undefined variable
Christoph M. Becker [Mon, 1 Jun 2020 11:25:58 +0000 (13:25 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix #79650: php-win.exe 100% cpu lockup
Christoph M. Becker [Mon, 1 Jun 2020 11:23:59 +0000 (13:23 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #79650: php-win.exe 100% cpu lockup
Christoph M. Becker [Sun, 31 May 2020 11:28:09 +0000 (13:28 +0200)]
Fix #79650: php-win.exe 100% cpu lockup
As of PHP 7.3.0, `sapi_cli_single_write()` is supposed to return `< 0`
on failure, but `fwrite()` returns a `size_t`, and signals error by
setting the stream's error indicator. We have to cater to that.
Dmitry Stogov [Fri, 29 May 2020 10:58:04 +0000 (13:58 +0300)]
Fixed tracing JIT for closure run_time_cache access
Ilija Tovilo [Sat, 30 May 2020 21:33:25 +0000 (23:33 +0200)]
Fix php_get_args function info return type and add arg check
Closes GH-5648.
Nikita Popov [Sun, 31 May 2020 15:05:42 +0000 (17:05 +0200)]
Add UPGRADING note for pty support
[ci skip]
Nikita Popov [Sun, 31 May 2020 14:57:37 +0000 (16:57 +0200)]
Add UPGRADING note for xmlrpc unbundling
And drop other UPGRADING references to xmlrpc. I don't think it
makes sense to have those for extensions that are no longer
shipped...
[ci skip]
Nikita Popov [Sun, 31 May 2020 14:55:46 +0000 (16:55 +0200)]
Fix some line overruns in UPGRADING
[ci skip]
Nikita Popov [Sun, 31 May 2020 14:48:14 +0000 (16:48 +0200)]
Move upgrading note for mixed
This should be in the "new features" section.
[ci skip]
Daniel Ruf [Sun, 31 May 2020 12:18:19 +0000 (14:18 +0200)]
Fix small typo in comment
Moni [Sat, 30 May 2020 14:29:14 +0000 (16:29 +0200)]
update node-fetch url
Máté Kocsis [Sat, 30 May 2020 09:06:49 +0000 (11:06 +0200)]
Fix #79653 Unexpected error for ArrayIterator::ksort()
Closes GH-5644
George Peter Banyard [Thu, 26 Mar 2020 00:00:55 +0000 (01:00 +0100)]
Use ZPP callable check for spl_autoload_register.
This makes it always throw a TypeError, moreover this makes the
error message consistent.
Added a warning mentioning that the second parameter is now ignored
when passed false.
Closes GH-5301
Máté Kocsis [Fri, 29 May 2020 20:31:37 +0000 (22:31 +0200)]
Fix #79652 Ensure that the mixed type is displayed instead of the union of all types
Closes GH-56430
Christoph M. Becker [Fri, 29 May 2020 13:43:45 +0000 (15:43 +0200)]
Unbundle ext/xmlrpc
According to <https://wiki.php.net/rfc/unbundle_xmlprc> we unbundle
ext/xmlrpc.
Máté Kocsis [Fri, 29 May 2020 13:15:27 +0000 (15:15 +0200)]
Add upgrading notes about the deprecated functionality in ext/enchant
[skip ci]
Máté Kocsis [Fri, 15 May 2020 06:38:02 +0000 (08:38 +0200)]
Convert enchant resources to opaque objects
Additionally, deprecate ENCHANT_MYSPELL and ENCHANT_ISPELL constants.
Closes GH-5577
Co-authored-by: Remi Collet <remi@php.net>
Christoph M. Becker [Fri, 29 May 2020 11:42:18 +0000 (13:42 +0200)]
Support libzip 1.6 on Windows
Nikita Popov [Fri, 29 May 2020 10:58:31 +0000 (12:58 +0200)]
Fix Windows build
Dmitry Stogov [Fri, 29 May 2020 10:27:47 +0000 (13:27 +0300)]
Fixed tracing JIT register allocator (failure on ext/opcache/tests/jit/assign_002.phpt)
Dmitry Stogov [Fri, 29 May 2020 10:25:59 +0000 (13:25 +0300)]
Allow tracing JIT generate code when function exits from VM (e.g. for magic __get/__set)
Nikita Popov [Fri, 29 May 2020 10:05:42 +0000 (12:05 +0200)]
Remove json checks in fuzzer SAPI
JSON is now always enabled
Dmitry Stogov [Fri, 29 May 2020 09:17:09 +0000 (12:17 +0300)]
Don't add guards that are not going to be checked
Dmitry Stogov [Thu, 28 May 2020 21:45:28 +0000 (00:45 +0300)]
Fixed use-after-free in tracing JIT when recording closures and top-level op_arrays.
Tyson Andre [Thu, 28 May 2020 16:53:12 +0000 (12:53 -0400)]
Clean up calls to extension_loaded('json') in tests
These are no longer needed after https://wiki.php.net/rfc/always_enable_json
Closes GH-5637
Dmitry Stogov [Thu, 28 May 2020 15:35:32 +0000 (18:35 +0300)]
Fixed tracing JIT type inference for passing undefined CV by value
Dmitry Stogov [Thu, 28 May 2020 14:43:29 +0000 (17:43 +0300)]
Fixed incorrect trace type inference for top-level code
Dmitry Stogov [Thu, 28 May 2020 14:10:05 +0000 (17:10 +0300)]
Fixed incorrect type inference
Christoph M. Becker [Thu, 28 May 2020 13:35:47 +0000 (15:35 +0200)]
Merge branch 'PHP-7.4'
* PHP-7.4:
Fix PVS-Studio integration
Christoph M. Becker [Thu, 28 May 2020 13:34:09 +0000 (15:34 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix PVS-Studio integration
Christoph M. Becker [Thu, 28 May 2020 13:20:06 +0000 (15:20 +0200)]
Fix PVS-Studio integration
Without this configuration option, PVS-Studio looks for preprocessed
files (*.i), but these do not exists.
David Carlier [Wed, 27 May 2020 22:26:13 +0000 (23:26 +0100)]
Build fix for newer versions of NetBSD.
its libutil contains newer conflicting apis as estrdup, emalloc.
Closes GH-5635
Nikita Popov [Thu, 28 May 2020 12:19:47 +0000 (14:19 +0200)]
Ensure Exception::getFile/getLine return type is correct
These return an untyped protected property, so we can't rely on
the type being correct.
Also add return types to the interface -- normally this would be
a no-go, but Throwable is a special interface that can only
be implemented internally, so we control all implementations.
Nicolas Grekas [Mon, 25 May 2020 11:33:50 +0000 (13:33 +0200)]
Run Symfony tests in per-component
Nicolas Grekas [Mon, 25 May 2020 08:20:30 +0000 (10:20 +0200)]
Re-enable Symfony test on PHP 8
Nikita Popov [Thu, 28 May 2020 12:01:29 +0000 (14:01 +0200)]
Make Exception::$previous a typed property
Exception::$previous is a private property, so we can add a type:
private ?Throwable $previous = null;
Nikita Popov [Thu, 28 May 2020 10:23:37 +0000 (12:23 +0200)]
Make Exception::$trace typed array property
This is a private property, so we are allowed to add a type.
The new declaration of the property is:
private array $trace = [];
This ensures that Exception::getTrace() does indeed return an array.
Userland code that was modifying the property through refleciton
may have to be adjusted to assign an array (instead of null,
for example).
Closes GH-5636.
Dmitry Stogov [Thu, 28 May 2020 11:39:41 +0000 (14:39 +0300)]
Avoid recording of uninitialized types.
VM doesn't set Z_TYPE() for IS_VAR when passes class_entry reference.
Máté Kocsis [Thu, 28 May 2020 10:40:54 +0000 (12:40 +0200)]
Add some mixed parameter types and fix UNKNOWN default values in ext/xmlrpc
Nikita Popov [Thu, 28 May 2020 10:13:08 +0000 (12:13 +0200)]
Extract code for declaring Exception/Error properties
Nikita Popov [Mon, 25 May 2020 10:10:41 +0000 (12:10 +0200)]
Convert Exception::getMessage() result to string
We specify that the return type of Exception::getMessage() is a
string. However, we don't currently ensure this, because
Exception::$message is a protected member that can be set to any
type. Fix this by performing an explicit type-cast.
This also requires a temporary refcount increment in the __toString()
object handler, because there is no additional owner of the object,
and it may get released prematurely as part of the __toString() call.
Dmitry Stogov [Thu, 28 May 2020 09:28:05 +0000 (12:28 +0300)]
Split "opcache.jit_max_recursion_unroll" into "opcache.jit_max_recursive_calls" and "opcache.jit_max_recursive_returns".
It's possible to disable recording of "recursive return loops" setting opcache.jit_max_recursive_returns to 0.
Nicolas Grekas [Mon, 25 May 2020 12:40:18 +0000 (14:40 +0200)]
Fix func info for sodium_crypto_aead_xchacha20poly1305_ietf_decrypt