Dmitry Stogov [Tue, 9 Jul 2019 11:01:48 +0000 (14:01 +0300)]
Avoid unintended inlining
Nikita Popov [Tue, 9 Jul 2019 09:05:54 +0000 (11:05 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Tue, 9 Jul 2019 09:05:18 +0000 (11:05 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Tue, 9 Jul 2019 09:04:05 +0000 (11:04 +0200)]
Revert "Fixed bug #76980"
This reverts commit
35353dc49a73a58c17c7896c4c4c3997ef2c007d.
This changes causes issues for Symfony, see
https://github.com/symfony/symfony/issues/32395. I'm reverting it
from PHP 7.2 and PHP 7.3 and only leaving it in PHP 7.4.
Derick Rethans [Tue, 9 Jul 2019 08:14:01 +0000 (09:14 +0100)]
Merge remote-tracking branch 'origin/PHP-7.4' into PHP-7.4
Christoph M. Becker [Tue, 9 Jul 2019 08:08:09 +0000 (10:08 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Upgrade to SQLite 3.28.0
Christoph M. Becker [Tue, 9 Jul 2019 08:04:20 +0000 (10:04 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
Upgrade to SQLite 3.28.0
Christoph M. Becker [Tue, 9 Jul 2019 08:01:52 +0000 (10:01 +0200)]
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
Upgrade to SQLite 3.28.0
Christoph M. Becker [Fri, 21 Jun 2019 13:48:50 +0000 (15:48 +0200)]
Upgrade to SQLite 3.28.0
Over the years, multiple security vulnerabilities[1] have been found
and fixed in SQLite3, so it makes sense to update our bundled libsqlite
to the latest available version.
[1] <https://www.cvedetails.com/vulnerability-list/vendor_id-9237/Sqlite.html>
Dmitry Stogov [Tue, 9 Jul 2019 07:46:04 +0000 (10:46 +0300)]
Remove duplicated code for (PRE|POST)_DEC_(OBJ|STATIC_PROP) opcodes
Derick Rethans [Tue, 9 Jul 2019 07:41:09 +0000 (07:41 +0000)]
Update NEWS for 7.4.0beta1
Derick Rethans [Tue, 9 Jul 2019 07:39:49 +0000 (07:39 +0000)]
Update NEWS for PHP 7.4.0alpha3
Peter Kokot [Mon, 8 Jul 2019 21:28:02 +0000 (23:28 +0200)]
Catch up with current procedures
- Git is used for moving existing extensions to PECL
- PHP versions with the PHP 7.4 examples
- Some minor tweaks here and there
- Mention re2c also
- Mention Docker image as a helper tool
Peter Kokot [Mon, 8 Jul 2019 17:34:47 +0000 (19:34 +0200)]
Add zend.exception_ignore_args [ci skip]
Peter Kokot [Mon, 8 Jul 2019 16:50:59 +0000 (18:50 +0200)]
Update NEWS [ci skip]
Peter Kokot [Mon, 8 Jul 2019 16:49:15 +0000 (18:49 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Update NEWS [ci skip]
Update NEWS [ci skip]
Peter Kokot [Mon, 8 Jul 2019 16:48:50 +0000 (18:48 +0200)]
Update NEWS [ci skip]
Peter Kokot [Mon, 8 Jul 2019 16:48:27 +0000 (18:48 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
Update NEWS [ci skip]
Peter Kokot [Mon, 8 Jul 2019 16:45:36 +0000 (18:45 +0200)]
Update NEWS [ci skip]
Dmitry Stogov [Mon, 8 Jul 2019 15:01:46 +0000 (18:01 +0300)]
Fixed dispatch from inlined hybrid opcode to another opcode
Nikita Popov [Mon, 8 Jul 2019 13:50:21 +0000 (15:50 +0200)]
Add ReflectionReference::getRefcount()
And don't return null for rc=1 references. Leave it to the user
to decide whether or not they want to consider these as references
or not.
Fixes bug #78263.
Peter Kokot [Mon, 8 Jul 2019 14:23:27 +0000 (16:23 +0200)]
Catch up with recent changes [ci skip]
- RFC about password_hash portability improvements added
- build system minor updates noted
- typos
Peter Kokot [Mon, 8 Jul 2019 13:05:54 +0000 (15:05 +0200)]
Remove APACHE symbol
The APACHE symbol was used in very early PHP versions to indicate the
Apache module usage. Since PHP 4 this is no longer used in the code.
Peter Kokot [Mon, 8 Jul 2019 12:58:26 +0000 (14:58 +0200)]
Refactor genif.sh
Changes:
- Coding style fixes
- ${1+"$@"} replaced with "$@" [1]
- EXTRA_MODULE_PTRS variable is not used anymore
- awk tool defined via environment variable
- srcdir determined automatically from the genif.sh location
[1] https://www.in-ulm.de/~mascheck/various/bourne_args/
Closes GH-4372
Nikita Popov [Mon, 8 Jul 2019 11:26:59 +0000 (13:26 +0200)]
Make busy wait busier
Another stab in the dark to fix the intermittent failures of timeout
tests on macos CI: We're using ITIMER_PROF, which means that the
timer counts against user+system time. The "busy" wait loop counts
against real time. Currently it calls microtime() on every iteration.
If that call is implemented as a syscall rather than going through
vDSO or commpage we might be seeing many context switches here which
drive up the real time, but not user or system time.
See if making the loop busier and calling microtime() less helps the
situation.
Dmitry Stogov [Mon, 8 Jul 2019 10:56:34 +0000 (13:56 +0300)]
Delay EG(exception) check on slow path
Scott Dutton [Fri, 28 Jun 2019 06:12:39 +0000 (07:12 +0100)]
Deprecate passing invalid character to base_convert etc
RFC: https://wiki.php.net/rfc/base_convert_improvements
Peter Kokot [Mon, 8 Jul 2019 10:46:51 +0000 (12:46 +0200)]
Remove C89 checks for signal.h and strerror
These are part of the C89 and on today's systems not needed to be
checked anymore. This removes symbols HAVE_SIGNAL and HAVE_STRERROR.
- http://port70.net/~nsz/c/c89/c89-draft.html
- locale.h is also part of C89 but will be removed per request in PHP 8
Peter Kokot [Mon, 8 Jul 2019 10:38:47 +0000 (12:38 +0200)]
Update libmagic patch
This simplifies the libmagic patch:
- in upstream the HAVE_STRERROR check has been removed
- in upstream library the HAVE_SIGNAL_H has been removed
- indentations syncs with the upstream library
- some irrelevant changes removed from the patch (log comment), upstream
has this correctly logged already so no need to patch the comment.
Closes GH-4298
Christoph M. Becker [Tue, 2 Jul 2019 17:08:19 +0000 (19:08 +0200)]
Implement FR #77230: Support custom CFLAGS and LDFLAGS from environment
While it is already possible to *set* CFLAGS and LDFLAGS (actually all
variables) from the environment for `nmake` (by passing the `/E`
option), it is not possible to *add* any (C|LD)FLAGS, which can be
useful in some cases. Instead of allowing this for `nmake`, we add
support for additional custom (C|LD)FLAGS to `configure`, similar to
how that works on Linux, so one could actually write:
````
set CFLAGS=foo & set LDFLAGS=bar & configure
````
This also allows us to use these flags during configure.
Christoph M. Becker [Mon, 1 Jul 2019 08:18:19 +0000 (10:18 +0200)]
Fix TsHashTable related race conditions
Although TsHashTable and the according API are supposed to easily make
a HashTable thread-safe, they do not; for instance, there can be race
conditions between finding and updating entries. We therefore avoid
the usage of TsHashTable in favor of a HashTable with our own mutex
management.
The patch has been provided by krakjoe@php.net; I only did some minor
fixes and tweaks.
Peter Kokot [Mon, 8 Jul 2019 08:23:09 +0000 (10:23 +0200)]
Simplify PHP_CHECK_PDO_INCLUDES calls
Conditional checks were once used for backwards compatibility with
phpize from PHP versions that didn't have this macro call yet.
Closes GH-4376
Dmitry Stogov [Mon, 8 Jul 2019 08:20:46 +0000 (11:20 +0300)]
Fixed opcode description
Peter Kokot [Mon, 8 Jul 2019 08:18:17 +0000 (10:18 +0200)]
Remove some unused variables
- Variables php_abs_top_srcdir php_abs_top_builddir are no longer used.
- ZEND_EXT_TYPE is always zend_extension and variable is no longer used.
Closes GH-4378
Sara Golemon [Fri, 5 Apr 2019 21:33:10 +0000 (17:33 -0400)]
Provide argon2i(d) password hashing from sodium when needed
Stanislav Malyshev [Sun, 7 Jul 2019 23:16:05 +0000 (16:16 -0700)]
Simplify expression and remove the possibility of div by 0
Maybe should use exp2() but not sure about how supported it is.
Peter Kokot [Sun, 7 Jul 2019 04:11:10 +0000 (06:11 +0200)]
Remove PHP_DEBUG_MACRO
The macro is no longer used. The warning at the end of the configure
script therefore is also no longer used.
Peter Kokot [Sun, 7 Jul 2019 04:25:58 +0000 (06:25 +0200)]
Remove some more Apache 1 left overs
- warning in configure.ac is relevant for the sapi/apache
- errors output redirected to /dev/null when checking Apache version
Nikita Popov [Sun, 7 Jul 2019 09:23:58 +0000 (11:23 +0200)]
Mention that zend_parse_parameters should not be tested
Also mention that --CREDITS-- section should not be included
anymore. We should also change qa.php.net to stop advertising
these.
[ci skip]
Peter Kokot [Wed, 3 Jul 2019 22:18:15 +0000 (00:18 +0200)]
Move footer to the end of configure output
Peter Kokot [Mon, 1 Jul 2019 23:00:14 +0000 (01:00 +0200)]
Remove PTHREADS_ASSIGN_VARS
This simplifies TSRM build steps a bit and avoids doing unnecessary
steps:
- The `PTHREADS_CHECK_COMPILE` can called inside the for loops only
since this is only where the `$pthreads_checked` variable is used.
- Assigning variables can be then done only in the configure.ac
once.
- use `m4_include()` instead of the `sinclude()` in the middle of
the build steps.
- The `$threads_result` variable is not used in the code or in
extensions.
Christoph M. Becker [Fri, 5 Jul 2019 13:51:53 +0000 (15:51 +0200)]
Remove superfluous assignment
Dmitry Stogov [Fri, 5 Jul 2019 11:21:18 +0000 (14:21 +0300)]
Eliminate useless checks
Christoph M. Becker [Fri, 5 Jul 2019 10:44:55 +0000 (12:44 +0200)]
Temporarily skip test
This test hangs on Windows for ~10 minutes as of commit
30019f4, so we
temporarily skip it. The issue will be investigated by Joe and myself
in due course.
Nikita Popov [Fri, 5 Jul 2019 10:07:45 +0000 (12:07 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Fri, 5 Jul 2019 10:07:10 +0000 (12:07 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Fri, 5 Jul 2019 10:06:52 +0000 (12:06 +0200)]
Backport fe_reset_rw case
Nikita Popov [Fri, 5 Jul 2019 10:02:26 +0000 (12:02 +0200)]
Make sure all cases of fetch_dim_w adjustment are handled
Use EMPTY_SWITCH_DEFAULT_CASE() to trigger an assertion in case
we miss something.
Add missing FE_RESET_RW case.
Nikita Popov [Fri, 5 Jul 2019 09:41:57 +0000 (11:41 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Fri, 5 Jul 2019 09:40:45 +0000 (11:40 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Fri, 5 Jul 2019 09:39:42 +0000 (11:39 +0200)]
Fix inference for compound object op on dim
Nikita Popov [Fri, 5 Jul 2019 09:15:13 +0000 (11:15 +0200)]
Optimize integer in_array with strict=true
It doesn't make sense that using in_array with strict=false is
much faster for this case, due to lack of a specialized codepath.
Dmitry Stogov [Fri, 5 Jul 2019 09:03:25 +0000 (12:03 +0300)]
Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP
Nikita Popov [Fri, 5 Jul 2019 09:00:27 +0000 (11:00 +0200)]
Add test
Forgot to commit this.
Nikita Popov [Fri, 5 Jul 2019 08:44:48 +0000 (10:44 +0200)]
Fix wrong size calculation related to function name
It would be nice if we could drop this manual function name reuse
code altogether and rely on interning for it.
Nikita Popov [Fri, 5 Jul 2019 08:41:39 +0000 (10:41 +0200)]
Preloading: Don't move conditional functions to back to scripts
Conditional function declaration may be referenced by functions or
classes that have been preloaded, so we should not move them back
to scripts.
What we probably should be doing though is to discard conditional
functions that are not used in the optimizer. This is probably
reasonably common for polyfills, where we will be able to const-eval
the conditions and drop the BBs declaring the functions, but won't
delete the function declarations themselves.
George Wang [Thu, 4 Jul 2019 16:14:48 +0000 (12:14 -0400)]
Merge branch 'PHP-7.3' into PHP-7.4
George Wang [Thu, 4 Jul 2019 16:04:08 +0000 (12:04 -0400)]
Merge branch 'PHP-7.2' into PHP-7.3
George Wang [Thu, 4 Jul 2019 16:03:21 +0000 (12:03 -0400)]
Updated to LiteSpeed SAPI V7.4.3
Increased response header count limit from 100 to 1000.
Added crash handler to cleanly shutdown PHP request.
Added CloudLinux mod_lsapi mode
Fixed bug #76058
Nikita Popov [Thu, 4 Jul 2019 14:17:46 +0000 (16:17 +0200)]
Compact literals: Don't insert unmergeable keys
LITERAL_VALUE with related literals cannot be merged, avoid inserting
them in the literals hash in the first place. Otherwise we may end up
inserting the same key multiple times. We may also miss merging
opportunities due to the duplicate keys.
Nikita Popov [Thu, 4 Jul 2019 13:08:47 +0000 (15:08 +0200)]
Assert that HT entries using add_new APIs are really new
Dmitry Stogov [Thu, 4 Jul 2019 14:25:43 +0000 (17:25 +0300)]
Improve zend_binary_assign_op helpers.
Reorder opcode numbers to make ADD-POW and ASSIGN_ADD-ASSIGN_POW opcodes sequencional.
Dmitry Stogov [Thu, 4 Jul 2019 12:54:45 +0000 (15:54 +0300)]
Introduce and use ZEND_VM_INLINE_HANDLER() to avoid ZEND_RETURN exception
Christoph M. Becker [Thu, 4 Jul 2019 12:50:51 +0000 (14:50 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
[ci skip] Remove NEWS entry
Christoph M. Becker [Thu, 4 Jul 2019 12:50:23 +0000 (14:50 +0200)]
[ci skip] Remove NEWS entry
This commit already was contained in PHP 7.3.7, but doesn't need a NEWS
entry, since the regression had only been introduced with PHP 7.3.7RC1.
Christoph M. Becker [Thu, 4 Jul 2019 12:44:38 +0000 (14:44 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix typo in NEWS [skip ci]
Fabien Villepinte [Thu, 4 Jul 2019 12:09:22 +0000 (14:09 +0200)]
Fix typo in NEWS [skip ci]
Nikita Popov [Thu, 4 Jul 2019 10:19:15 +0000 (12:19 +0200)]
Preloading: Relax known type restrictions
Check whether there is a parent/interface/trait method with the same
name and only then require the type to be known. This reduces the
number of cases where this triggers in practice a lot.
Nikita Popov [Thu, 4 Jul 2019 09:58:46 +0000 (11:58 +0200)]
Preloading: Also handle trait methods outside main script
Dmitry Stogov [Thu, 4 Jul 2019 10:07:47 +0000 (13:07 +0300)]
Split destructor
Nikita Popov [Thu, 4 Jul 2019 09:05:01 +0000 (11:05 +0200)]
Preloading: Prevent autoloading while resolving constants
Nikita Popov [Thu, 4 Jul 2019 08:28:12 +0000 (10:28 +0200)]
Set PROPERTY_TYPES_RESOLVED flag for internal classes
Also make sure that the resolution happens before preloading runs.
Dmitry Stogov [Wed, 3 Jul 2019 17:19:56 +0000 (20:19 +0300)]
Better optimization in RELEASE build. ZEND_ASSERT(s) prevented optimization
Joe Watkins [Wed, 3 Jul 2019 14:31:40 +0000 (16:31 +0200)]
Merge branch 'php-cli-server-improvements' into PHP-7.4
* php-cli-server-improvements:
improvements to cli server
Joe Watkins [Wed, 3 Jul 2019 14:30:51 +0000 (16:30 +0200)]
improvements to cli server
Nikita Popov [Wed, 3 Jul 2019 12:05:10 +0000 (14:05 +0200)]
Improve unlinked class diagnostics during preloading
Nikita Popov [Wed, 3 Jul 2019 10:47:49 +0000 (12:47 +0200)]
Avoid use of random ports in some socket tests
Nikita Popov [Wed, 3 Jul 2019 10:37:00 +0000 (12:37 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Wed, 3 Jul 2019 10:36:33 +0000 (12:36 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Wed, 3 Jul 2019 10:27:13 +0000 (12:27 +0200)]
Fixed bug #78231
Nikita Popov [Wed, 3 Jul 2019 09:38:24 +0000 (11:38 +0200)]
Remove curl_basic_017.phpt
The output of the three handles may be interleaved. We already have
curl_basic_018.phpt which uses curl_multi_getcontent() and thus
has predictable output. As such, I'm dropping this test altogether.
Nikita Popov [Wed, 3 Jul 2019 09:27:02 +0000 (11:27 +0200)]
Fix file conflict in fgets test
Nikita Popov [Wed, 3 Jul 2019 09:01:59 +0000 (11:01 +0200)]
Skip pcntl_sigwaitinfo() test under asan/msan
This test often fails under asan/msan with a timeout for unknown
reasons.
Nikita Popov [Wed, 3 Jul 2019 08:59:26 +0000 (10:59 +0200)]
Fixed bug #78239
Nikita Popov [Wed, 3 Jul 2019 08:20:32 +0000 (10:20 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Wed, 3 Jul 2019 08:19:31 +0000 (10:19 +0200)]
Fixed bug #78230
Christoph M. Becker [Wed, 3 Jul 2019 08:02:44 +0000 (10:02 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
Fix #78241: touch() does not handle dates after 2038 in PHP 64-bit
Christoph M. Becker [Wed, 3 Jul 2019 08:00:05 +0000 (10:00 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
Fix #78241: touch() does not handle dates after 2038 in PHP 64-bit
Christoph M. Becker [Wed, 3 Jul 2019 07:59:17 +0000 (09:59 +0200)]
Fix #78241: touch() does not handle dates after 2038 in PHP 64-bit
`time_t` defaults to `_time64` (which is 64bit signed) even on x86, but
`Int32x32To64()` truncates it to signed 32bit. We replace the macro
with the "manual" calculation.
Dmitry Stogov [Wed, 3 Jul 2019 07:33:03 +0000 (10:33 +0300)]
Optimization of INC/DEC helpers
Pieter Hordijk [Wed, 15 May 2019 14:13:34 +0000 (17:13 +0300)]
Removed mysqlnd stats from phpinfo page
All information can already be retrieved using the APIs at https://www.php.net/manual/en/mysqlnd.stats.php. Closes https://bugs.php.net/bug.php?id=60594
Peter Kokot [Tue, 2 Jul 2019 20:29:54 +0000 (22:29 +0200)]
Enable option checking on CI
This adds the Autoconf's --enable-option-checking=fatal option so
when non existing option from the PHP's configure options is used
a fatal error happens.
Peter Kokot [Wed, 3 Jul 2019 00:14:12 +0000 (02:14 +0200)]
Remove libtool and automake from azure installs
These two deps are not needed to build PHP.
Peter Kokot [Tue, 2 Jul 2019 20:15:24 +0000 (22:15 +0200)]
Remove PHP_CHECK_CONFIGURE_OPTIONS
Instead of building a custom macro for checking configure options,
Autoconf 2.62+ already outputs a warning at the beginning and the end
of the output of configure script. It automatically detects correct
and wrong options better.
This is related also to bug #55634.
So now instead a better way is the default Autoconf approach:
This outputs a warning at the beginning and end of the configure output:
./configure --with-non-existing
This results in fatal error:
./configure --non-existing
configure: error: unrecognized option: `--non-existing'
Try `./configure --help' for more information
The `--enable-option-checking=fatal` results in fatal error for all non
existing options:
./configure --with-non-existing --enable-option-checking=fatal
configure: error: unrecognized options: --with-non-existing
Closes GH-4348
Peter Kokot [Mon, 1 Jul 2019 20:20:13 +0000 (22:20 +0200)]
Remove some old BeOS artefacts
- checking for beos systems is no longer relevant in configure.ac
- usage of undefined constant BETHREADS removed.
Closes GH-4346
Peter Kokot [Tue, 2 Jul 2019 20:05:00 +0000 (22:05 +0200)]
Remove check for ApplicationServices/ApplicationServices.h
The symbol HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H is not used
and check not needed.
Closes GH-4336
Jan Altensen [Tue, 2 Jul 2019 13:24:31 +0000 (15:24 +0200)]
azure: exclude some documentation paths
Closes GH-4352.
Nikita Popov [Tue, 2 Jul 2019 14:12:36 +0000 (16:12 +0200)]
Merge branch 'PHP-7.3' into PHP-7.4
Nikita Popov [Tue, 2 Jul 2019 14:12:24 +0000 (16:12 +0200)]
Merge branch 'PHP-7.2' into PHP-7.3
Nikita Popov [Tue, 2 Jul 2019 14:10:56 +0000 (16:10 +0200)]
Backport test fix
Closes GH-3816.