Skip to content

Commit cb5c1fb

Browse files
committed
Merge branch 'master' of git.php.net:/php-src
2 parents 84f6f69 + c4331b0 commit cb5c1fb

File tree

348 files changed

+11384
-9881
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

348 files changed

+11384
-9881
lines changed

.appveyor.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ environment:
2323
PHP_BUILD_CACHE_BASE_DIR: c:\build-cache
2424
PHP_BUILD_OBJ_DIR: c:\obj
2525
PHP_BUILD_CACHE_SDK_DIR: c:\build-cache\sdk
26-
PHP_BUILD_SDK_BRANCH: php-sdk-2.1.3
26+
PHP_BUILD_SDK_BRANCH: php-sdk-2.1.5
2727
PHP_BUILD_CRT: vc15
2828
# ext and env setup for tests
2929
#MYSQL_TEST_PASSWD: Password12!
@@ -39,6 +39,7 @@ environment:
3939
OPCACHE: 0
4040
- THREAD_SAFE: 1
4141
OPCACHE: 1
42+
INTRINSICS: AVX
4243

4344
services:
4445
# the setup scripts have to be touched, once some other db version is used

.gdbinit

+12
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ define ____executor_globals
1616
end
1717
set $eg = ((zend_executor_globals*) (*((void ***) $tsrm_ls))[executor_globals_id-1])
1818
set $cg = ((zend_compiler_globals*) (*((void ***) $tsrm_ls))[compiler_globals_id-1])
19+
set $eg_ptr = $eg
1920
else
2021
set $eg = executor_globals
2122
set $cg = compiler_globals
23+
set $eg_ptr = (zend_executor_globals*) &executor_globals
2224
end
2325
end
2426

@@ -289,6 +291,16 @@ define ____printzv
289291
end
290292
end
291293

294+
define print_global_vars
295+
____executor_globals
296+
set $symtable = ((HashTable *)&($eg_ptr->symbol_table))
297+
print_ht $symtable
298+
end
299+
300+
document print_global_vars
301+
Prints the global variables
302+
end
303+
292304
define print_const_table
293305
set $ind = 1
294306
printf "[%p] {\n", $arg0

.gitattributes

-10
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,16 @@
11
ext/mysqlnd/mysqlnd.h ident
2-
ext/simplexml/simplexml.c ident
32
ext/iconv/php_iconv.h ident
4-
ext/posix/posix.c ident
5-
ext/recode/recode.c ident
63
ext/ext_skel.php ident
74
ext/phar/phar/pharcommand.inc ident
85
ext/phar/phar.c ident
9-
ext/sysvmsg/sysvmsg.c ident
10-
ext/enchant/enchant.c ident
11-
ext/reflection/php_reflection.c ident
126
ext/oci8/oci8.c ident
137
ext/dba/libinifile/inifile.c ident
148
ext/dba/libflatfile/flatfile.c ident
159
ext/dba/libcdb/cdb_make.c ident
1610
ext/dba/libcdb/cdb.c ident
17-
ext/filter/filter.c ident
18-
README.input_filter ident
1911
run-tests.php ident
2012
ext/exif/exif.c ident
21-
ext/ldap/ldap.c ident
2213
ext/pdo_pgsql/pdo_pgsql.c ident
23-
ext/tidy/tidy.c ident
2414
NEWS merge=NEWS
2515
UPGRADING merge=NEWS
2616
UPGRADING.INTERNALS merge=NEWS

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ Zend/zend_language_parser.h
137137
Zend/zend_language_parser.output
138138

139139
# Extension specific ignores
140-
ext/*/configure.in
141140
ext/*/configure.ac
142141
ext/*/ltmain.sh
143142
ext/*/libs.mk

NEWS

+8-5
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ PHP NEWS
55
- Core:
66
. Improved PHP GC. (Dmitry, Nikita)
77
. Redesigned the old ext_skel program written in PHP, run:
8-
'php ext_skel.php' for all options. This means there is no dependencies
9-
thrus making it work on Windows out of the box. (Kalle)
8+
'php ext_skel.php' for all options. This means there are no dependencies,
9+
thus making it work on Windows out of the box. (Kalle)
1010
. Removed support for BeOS. (Kalle)
1111
. Add PHP_VERSION to phpinfo() <title/>. (github/MattJeevas)
1212
. Add net_get_interfaces(). (Sara, Joe, Anatol)
@@ -40,6 +40,7 @@ PHP NEWS
4040
. Fixed bug #75765 (Fatal error instead of Error exception when base class is
4141
not found). (Timur Ibragimov)
4242
. Fixed bug #76198 (Wording: "iterable" is not a scalar type). (Levi Morrison)
43+
. Fixed bug #76137 (config.guess/config.sub do not recognize RISC-V). (cmb)
4344

4445
- BCMath:
4546
. Fixed bug #66364 (BCMath bcmul ignores scale parameter). (cmb)
@@ -105,14 +106,16 @@ PHP NEWS
105106
. Fixed bug #73528 (Crash in zif_mb_send_mail). (Nikita)
106107
. Fixed bug #74929 (mbstring functions version 7.1.1 are slow compared to 5.3
107108
on Windows). (Nikita)
108-
. Update to Oniguruma 6.8.1. (cmb)
109+
. Fixed bug #76319 (mb_strtolower with invalid UTF-8 causes segmentation
110+
fault). (Nikita)
111+
. Updated to Oniguruma 6.8.2. (cmb)
109112

110113
- ODBC:
111114
. Removed support for ODBCRouter. (Kalle)
112115
. Removed support for Birdstep. (Kalle)
113116

114117
- OpenSSL:
115-
. Fixed bug #75307 (Wrong reflection for openssl_open function). (villfa)
118+
. Added openssl_pkey_derive function. (Jim Zubov)
116119

117120
- PCRE:
118121
. Implemented https://wiki.php.net/rfc/pcre2-migration (Anatol, Dmitry)
@@ -181,7 +184,7 @@ PHP NEWS
181184
(carusogabriel)
182185

183186
- SQLite3:
184-
. Updated bundled libsqlite to 3.23.1. (cmb)
187+
. Updated bundled libsqlite to 3.24.0. (cmb)
185188

186189
- Standard:
187190
. Added is_countable() function. (Gabriel Caruso)

README.REDIST.BINS

+101-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
1. libmagic (ext/fileinfo) see ext/fileinfo/libmagic/LICENSE
22
2. Oniguruma (ext/mbstring) see ext/mbstring/oniguruma/COPYING
33
3. libmbfl (ext/mbstring) see ext/mbstring/libmbfl/LICENSE
4-
4. pcrelib (ext/pcre) see ext/pcre/pcrelib/LICENCE
4+
4. pcre2lib (ext/pcre)
55
5. ext/standard crypt
66
6. ext/standard crypt's blowfish implementation
77
7. Sqlite/Sqlite3 ext/sqlite3 ext/sqlite
@@ -16,6 +16,106 @@
1616
16. main/strlcpy
1717
17. libgd see ext/gd/libgd/COPYING
1818
18. ext/phar portions of tar implementations
19+
19. libbcmath (ext/bcmath) see ext/bcmath/libbcmath/COPYING.LIB
20+
21+
22+
4. pcre2lib (ext/pcre)
23+
24+
PCRE2 LICENCE
25+
-------------
26+
27+
PCRE2 is a library of functions to support regular expressions whose syntax
28+
and semantics are as close as possible to those of the Perl 5 language.
29+
30+
Release 10 of PCRE2 is distributed under the terms of the "BSD" licence, as
31+
specified below, with one exemption for certain binary redistributions. The
32+
documentation for PCRE2, supplied in the "doc" directory, is distributed under
33+
the same terms as the software itself. The data in the testdata directory is
34+
not copyrighted and is in the public domain.
35+
36+
The basic library functions are written in C and are freestanding. Also
37+
included in the distribution is a just-in-time compiler that can be used to
38+
optimize pattern matching. This is an optional feature that can be omitted when
39+
the library is built.
40+
41+
42+
THE BASIC LIBRARY FUNCTIONS
43+
---------------------------
44+
45+
Written by: Philip Hazel
46+
Email local part: ph10
47+
Email domain: cam.ac.uk
48+
49+
University of Cambridge Computing Service,
50+
Cambridge, England.
51+
52+
Copyright (c) 1997-2018 University of Cambridge
53+
All rights reserved.
54+
55+
56+
PCRE2 JUST-IN-TIME COMPILATION SUPPORT
57+
--------------------------------------
58+
59+
Written by: Zoltan Herczeg
60+
Email local part: hzmester
61+
Emain domain: freemail.hu
62+
63+
Copyright(c) 2010-2018 Zoltan Herczeg
64+
All rights reserved.
65+
66+
67+
STACK-LESS JUST-IN-TIME COMPILER
68+
--------------------------------
69+
70+
Written by: Zoltan Herczeg
71+
Email local part: hzmester
72+
Emain domain: freemail.hu
73+
74+
Copyright(c) 2009-2018 Zoltan Herczeg
75+
All rights reserved.
76+
77+
78+
THE "BSD" LICENCE
79+
-----------------
80+
81+
Redistribution and use in source and binary forms, with or without
82+
modification, are permitted provided that the following conditions are met:
83+
84+
* Redistributions of source code must retain the above copyright notices,
85+
this list of conditions and the following disclaimer.
86+
87+
* Redistributions in binary form must reproduce the above copyright
88+
notices, this list of conditions and the following disclaimer in the
89+
documentation and/or other materials provided with the distribution.
90+
91+
* Neither the name of the University of Cambridge nor the names of any
92+
contributors may be used to endorse or promote products derived from this
93+
software without specific prior written permission.
94+
95+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
96+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
97+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
98+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
99+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
100+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
101+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
102+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
103+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
104+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
105+
POSSIBILITY OF SUCH DAMAGE.
106+
107+
108+
EXEMPTION FOR BINARY LIBRARY-LIKE PACKAGES
109+
------------------------------------------
110+
111+
The second condition in the BSD licence (covering binary redistributions) does
112+
not apply all the way down a chain of software. If binary package A includes
113+
PCRE2, it must respect the condition, but if package B is software that
114+
includes package A, the condition is not imposed on package B unless it uses
115+
PCRE2 independently.
116+
117+
End
118+
19119

20120
5. ext/standard crypt
21121

README.RELEASE_PROCESS

+4-4
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Most developers should have this.
3737
Moving extensions from php-src to PECL
3838
- Checkout the pecl directory, most likely you want a sparse-root checkout
3939
svn co --depth=empty https://svn.php.net/repository/pecl
40-
- Create an directory for the extension incl. branch and tag structure,
40+
- Create a directory for the extension incl. branch and tag structure,
4141
no trunk at this point and commit this to svn
4242
cd pecl; mkdir foo foo/tags foo/branches; svn add foo; svn commit
4343
- Move the extension from php-src to the new location
@@ -50,7 +50,7 @@ maintainers if any:
5050
- create the package.xml, commit
5151
- release the package
5252

53-
For Moving extensions from PECL to php-src the svn mv has to be tone the other
53+
For Moving extensions from PECL to php-src the svn mv has to be done the other
5454
way round.
5555

5656
Rolling a non stable release (alpha/beta/RC)
@@ -188,7 +188,7 @@ credits files in ext/standard.
188188
9. run: ``PHPROOT=. ./makedist php 5.4.1``, this will export the tag, create configure
189189
and build three tarballs (gz, bz2 and xz).
190190
Check if the pear files are updated (phar).
191-
On some systems the behavior of GNU tar can default to produce POSIX complaint archives
191+
On some systems the behavior of GNU tar can default to produce POSIX compliant archives
192192
with PAX headers. As not every application is compatible with that format, creation of
193193
archives with PAX headers should be avoided. When packaging on such a system, the GNU tar
194194
can be influenced by defining the environment variable TAR_OPTIONS='--format=gnu'.
@@ -365,7 +365,7 @@ New Release Manager Checklist
365365
one or more of the previous RMs sign your key. Publish your public key to pgp.mit.edu with:
366366
`gpg --keyserver pgp.mit.edu --send-keys $KEYID`
367367

368-
3. Request karma to eding main/php_version.h. Possibly karma for other restricted parts of
368+
3. Request karma to edit main/php_version.h. Possibly karma for other restricted parts of
369369
php-src might come in question.
370370

371371
4. Request karma for web/qa.git and web/php.git for publishing release announcements.

README.input_filter

-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ PHP_MINFO_FUNCTION(my_input_filter)
8686
{
8787
php_info_print_table_start();
8888
php_info_print_table_row( 2, "My Input Filter Support", "enabled" );
89-
php_info_print_table_row( 2, "Revision", "$Id$");
9089
php_info_print_table_end();
9190
}
9291

UPGRADING

+70-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,20 @@ Core:
3030
thrown exceptions.
3131
. TypeError now reports wrong types as `int` and `bool` instead of `integer`
3232
and `boolean`.
33+
. Due to the introduction of flexible heredoc/nowdoc syntax (see New Features
34+
section), doc strings that contain the ending label inside their body may
35+
cause syntax errors or change in interpretation. For example in
36+
37+
$str = <<<FOO
38+
abcdefg
39+
FOO
40+
FOO;
41+
42+
the indented occurrence of "FOO" did not previously have any special
43+
meaning. Now it will be interpreted as the end of the heredoc string and
44+
the following "FOO;" will cause a syntax error. This issue can always be
45+
resolved by choosing an ending label that does not occur within the contents
46+
of the string.
3347

3448
BCMath:
3549
. All warnings thrown by BCMath functions are now using PHP's error handling.
@@ -38,7 +52,7 @@ BCMath:
3852
the returned numbers may have omitted trailing decimal zeroes.
3953

4054
Reflection:
41-
. Reflection results now return `int` and `bool` instead of `integer`
55+
. Reflection export to string now uses `int` and `bool` instead of `integer`
4256
and `boolean`.
4357

4458
SPL:
@@ -75,6 +89,39 @@ Core:
7589
BCMath:
7690
. bcscale() can now also be used as getter to retrieve the current scale in use.
7791

92+
MBString:
93+
. Support for full case-mapping and case-folding has been added. Unlike simple
94+
case-mapping, full case-mapping may change the length of the string. For
95+
example:
96+
97+
mb_strtoupper("Straße")
98+
// Produces STRAßE on PHP 7.2
99+
// Produces STRASSE on PHP 7.3
100+
101+
The different casing mapping and folding modes are available through
102+
mb_convert_case():
103+
104+
. MB_CASE_LOWER (used by mb_strtolower)
105+
. MB_CASE_UPPER (used by mb_strtoupper)
106+
. MB_CASE_TITLE
107+
. MB_CASE_FOLD
108+
. MB_CASE_LOWER_SIMPLE
109+
. MB_CASE_UPPER_SIMPLE
110+
. MB_CASE_TITLE_SIMPLE
111+
. MB_CASE_FOLD_SIMPLE (used by case-insensitive operations)
112+
113+
Only unconditional, language agnostic full case-mapping is performed.
114+
. Case-insensitive string operations now use case-folding instead of case-
115+
mapping during comparisons. This means that more characters will be
116+
considered (case insensitively) equal now.
117+
. mb_convert_case() with MB_CASE_TITLE now performs title-case conversion
118+
based on the Cased and CaseIgnorable derived Unicode properties. In
119+
particular this also improves handling of quotes and apostophes.
120+
. Data tables have been updated for Unicode 10.
121+
. Mbstring now correctly supports strings larger than 2GB.
122+
. Performance of the mbstring extension has been significantly improved
123+
across the board. The largest improvements are in case conversion functions.
124+
78125
readline:
79126
. Support for the completion_append_character and completion_suppress_append
80127
options has been added to readline_info(). These options are only available
@@ -88,6 +135,9 @@ readline:
88135
4. Deprecated Functionality
89136
========================================
90137

138+
Intl:
139+
. Usage of the Normalizer::NONE form throws a deprecation warning, if PHP is linked with ICU >= 56.
140+
91141
========================================
92142
5. Changed Functions
93143
========================================
@@ -149,6 +199,25 @@ Intl:
149199
. Added Normalizer::getRawDecomposition() and normalizer_get_raw_decomposition(),
150200
to retrieve the Decomposition_Mapping property of a character.
151201

202+
OpenSSL:
203+
. Added openssl_pkey_derive that derives a shared secret for DH, ECDH and
204+
possibly other future algorithms supported by EVP_PKEY_derive.
205+
206+
Sockets:
207+
. Added functions to import/export the WSAPROTOCOL_INFO info struct. This
208+
implementation complements the already supported SCM_RIGHTS as in
209+
man 3 cmsg and is Windows specific. For the import/export, the default
210+
system securities apply for the SHM reading/writing. The socket becomes
211+
invalid, when the last reference to it is closed.
212+
- socket_wsaprotocol_info_export(resource $sock, int $pid) - exports the
213+
WSAPROTOCOL_INFO structure into shared memory and returns an identifier
214+
to be used for the import, or false on failure. The exported ID is
215+
only valid for the dedicated PID.
216+
- socket_wsaprotocol_info_import(string $id) - returns a duplicated
217+
socket as per the passed identifier, or false on failure.
218+
- socket_wsaprotocol_info_release(string $id) - releases the shared memory
219+
corresponding to the passed identifier.
220+
152221
Standard:
153222
. Added is_countable() function, to check whether a value may be passed to
154223
count().

0 commit comments

Comments
 (0)