Compare commits

...
3351 Commits
Author SHA1 Message Date
Christoph M. Becker 3fa88e0ce0 Update version for PHP 7.3.2 2019-02-05 12:33:48 +00:00
Nikita Popov 80b17a73ae Fixed bug #77287
There may be an EXT_NOP opcode before the parameter list, we should
skip over it.

(cherry picked from commit 76760901fa)
2019-02-05 13:23:50 +01:00
Nikita Popov 5cce13ed67 Revert "Prefix error_code with underscore in FastZPP implementation"
(cherry picked from commit e926dc9305)
2019-02-05 13:17:34 +01:00
Christoph M. Becker dd2301ddc4 Update version for PHP 7.3.2RC1 2019-01-22 11:31:29 +00:00
George Wang 6a0a600176 Merge branch 'PHP-7.2' into PHP-7.3 2019-01-20 15:11:37 -05:00
George Wang 66d72377d0 Checkin LiteSpeed SAPI 7.2. 2019-01-20 15:10:19 -05:00
Anatol Belski a1b1c53d13 Update NEWS [ci skip] 2019-01-20 16:00:25 +01:00
Anatol Belski 969e57c7ac Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update NEWS [ci skip]
2019-01-20 15:59:08 +01:00
Anatol Belski d978590c74 Update NEWS [ci skip] 2019-01-20 15:58:19 +01:00
Anatol Belski 52730fa30a Skip test on unsuitable build
This test reveals a difference between TS and NTS through all the
versions, which is probably too late to fix at this stage of 7.3.
While NTS always relies on the system getcwd(), TS uses a fake CWD
which might get out of sync when the real dir is deleted. Thus,
skip test on unsuitable build. Investigate possibilities to fix this
edge case for later versions.
2019-01-19 13:53:32 +01:00
Christoph M. Becker 2966da70cf Fix failing test 2019-01-19 11:13:13 +01:00
Christoph M. Becker 1907cbd8b3 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77479: imagewbmp() segfaults with very large images
2019-01-19 10:18:20 +01:00
Christoph M. Becker 44fa0b0f31 Fix #77479: imagewbmp() segfaults with very large images
We must not proceed working with the Wbmp structure, if it hasn't been
allocated.
2019-01-19 10:16:02 +01:00
Anatol Belski 4254bf87ba Make test output more reliable 2019-01-19 03:33:37 +01:00
Anatol Belski 8b20e7b68b Fixed bug #77484 Zend engine crashes when calling realpath in invalid working dir 2019-01-19 02:36:51 +01:00
Nikita Popov 986b9b5ae3 Add additional no_sanitize_address attributes
To fix bug #77447 in release mode as well.
2019-01-18 15:02:30 +01:00
Nikita Popov 14b5302591 Merge branch 'PHP-7.2' into PHP-7.3 2019-01-18 12:48:52 +01:00
Lauri Kenttä dbe7f2a41a Fix seeking in php://input 2019-01-18 12:44:47 +01:00
Nikita Popov de38ce1a2e Merge branch 'PHP-7.2' into PHP-7.3 2019-01-18 12:05:11 +01:00
Pedro Magalhães 32ae716037 Fixed bug #76675
Leave a reference to the resource in the php_curl.
2019-01-18 12:04:25 +01:00
Jakub Zelenka 25ffdc8dc9 List me in the openssl maintainers
I have been basically doing that since 2015 or so
2019-01-17 20:04:44 +00:00
Jakub Zelenka 766b4fd515 Fix bug #77430 (php-fpm crashes with Main process exited) 2019-01-17 18:37:09 +00:00
Christoph M. Becker 26b5aa8584 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #73614: gdImageFilledArc() doesn't properly draw pies
2019-01-16 20:22:37 +01:00
Christoph M. Becker 61cfa34e11 Fix #73614: gdImageFilledArc() doesn't properly draw pies
The fix for PHP bug 43828[1] changed the algorithm from drawing filled
pies from drawing multiple triangles to drawing a single polygon.  Due
to quirks of the filled polygon drawing algorithm, we had to filter out
extraneous vertices.  This lead, however, to a bug regarding displaced
starting and ending points near 90° and 270° degrees, which we fix by
reinserting these vertices if they had been removed.

This fix is a port of libgd/libgd@1406b1a.

[1] <https://bugs.php.net/bug.php?id=43828>
2019-01-16 20:10:04 +01:00
Dmitry Stogov 1a306cc9a1 Fixed bug #77308 (Unbuffered queries memory leak) 2019-01-14 13:59:30 +03:00
Nikita Popov 5c3b17ca68 Merge branch 'PHP-7.2' into PHP-7.3
[ci skip]
2019-01-14 11:49:58 +01:00
wbob 5ac9990ddf document open_basedir and realpath cache coupling in php.ini
[ci skip]
2019-01-14 11:49:45 +01:00
Nikita Popov c8c5a3ab8a Fixed bug #77447
By disabling asan for CPU support helpers used in ifunc resolvers.
2019-01-14 11:44:48 +01:00
Dmitry Stogov 920450534e Fixed bug #77263 (Segfault when using 2 RecursiveFilterIterator) 2019-01-14 13:18:28 +03:00
Nikita Popov d6212835f2 Merge branch 'PHP-7.2' into PHP-7.3 2019-01-14 10:23:44 +01:00
Nikita Popov 3ad0ebdf5c Fixed bug #77454 2019-01-14 10:22:48 +01:00
Anatol Belski e3e2a7f7a8 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update SDK version for AppVeyor
2019-01-12 22:14:35 +01:00
Anatol Belski 8f66ca8189 Update SDK version for AppVeyor 2019-01-12 22:13:14 +01:00
Nikita Popov b35a20e919 Merge branch 'PHP-7.2' into PHP-7.3 2019-01-11 10:55:26 +01:00
Ondřej Surý 1ea58b6e78 Fix rl_completion_matches detection
Also fix a typo when checking for rl_on_new_line in readline library.
2019-01-11 10:55:07 +01:00
Nikita Popov e6eac08abd Merge branch 'PHP-7.2' into PHP-7.3 2019-01-11 10:29:34 +01:00
Kevin Adler 332b58f865 Fix bug #77361 (configure fails on 64-bit AIX when opcache enabled)
In f904830012, support for GNU Hurd was added to the opcache and
the configure check to ensure the opcache knows the flock struct
layout prior to building was changed check for two cases: BSD layout
and Linux layout. All the existing hard-coded cases in
ZendAccelerator.h follow these two cases, except for 64-bit AIX.
This means that even though building on 64-bit AIX would work,
the configure script refuses to continue.

Add a new configure check for the 64-bit AIX case and a new
compiler definition HAVE_FLOCK_AIX64. Now that all the cases are
covered, simplify the ifdef logic around these three HAVE_FLOCK_*
macros:
- The macOS and the various BSD flavors fall under HAVE_FLOCK_BSD
- Linux, HP-UX, GNU Hurd, 32-bit AIX, and SVR4 environments
  fall under HAVE_FLOCK_LINUX
- 64-bit AIX falls under HAVE_FLOCK_AIX64

The only difference between the existing HAVE_FLOCK_LINUX and
the hard-coded Linux/HP-UX/Hurd case is that the latter
initialized the 5th member to 0, but since the C standard already
says that un-initialized members will be initialized to 0,
it's effectively the same.
2019-01-11 10:21:02 +01:00
Jakub Zelenka 9c010cefa3 Merge branch 'PHP-7.2' into PHP-7.3 2019-01-10 20:16:06 +00:00
Alexander Kurilo 1a1e12c2a9 Fix cleaning up after openssl_pkcs7_verify_basic test 2019-01-10 20:09:42 +00:00
Alexander Kurilo 1fab01be5b Generate certs for openssl tests on the fly
The idea is to create an easy way to provide a certificate that never
expires. In order to make it cross-platform, PHP is used rather than
openssl CLI app. Using openssl to generate certificates for tests that
test openssl might be not the best idea but pros seem to outweight cons
that this "recursice dependency" adds
2019-01-10 20:09:42 +00:00
Christoph M. Becker 3f9ddeb122 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #73281: imagescale(…, IMG_BILINEAR_FIXED) can cause black border
2019-01-10 16:27:43 +01:00
Christoph M. Becker 6b4cdbaade Fix #73281: imagescale(…, IMG_BILINEAR_FIXED) can cause black border
We port the upstream fixes for libgd/libgd#329 and libgd/libgd#224.
2019-01-10 16:11:23 +01:00
Christoph M. Becker 1e407256f2 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77272: imagescale() may return image resource on failure
2019-01-10 14:25:11 +01:00
Christoph M. Becker 772b1cb245 Fix #77272: imagescale() may return image resource on failure
`_gdScaleHoriz()` and `_gdScaleVert()` may fail, but don't signal
failure since they are void functions.  We change that according to
upstream libgd.

We also remove the unused `Scale()` function, which doesn't exist in
upstream libgd either, right away.
2019-01-10 14:05:09 +01:00
Nikita Popov 00e5d0e859 Merge branch 'PHP-7.2' into PHP-7.3 2019-01-10 10:57:41 +01:00
Nikita Popov 5d33024a5d Fixed bug #77439 2019-01-10 10:57:04 +01:00
Nikita Popov ade702a0d2 Fixed bug #77434
Mark arrays containing partial arrays as partial. This was already
done for the ADD_ARRAY_ELEMENT case, but not for ASSIGN_DIM.
2019-01-10 10:25:55 +01:00
Xinchen Hui 16176ad0e3 Incase of invalid read 2019-01-10 14:50:39 +08:00
Anatol Belski 300249226b Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Revert visibility
2019-01-09 16:16:47 +01:00
Andrey Hristov 7a88f89a90 Revert visibility
(cherry picked from commit 71ffae9605)
2019-01-09 13:39:48 +01:00
Christoph M. Becker c4c6b80b9c Sync NEWS with 7.3.1
All these bugs are fixed in PHP-7.3.1 already.
2019-01-09 11:46:48 +01:00
Lauri Kenttä 63c38c9e49 Fixed bug #77289
Use mysqlnd_restart_psession and mysqlnd_end_psession in PDO MySQL.
This makes sure we free last_message while ZMM is still live.
2019-01-09 09:50:26 +01:00
Nikita Popov bf4dab0163 Make operator swapping depend on IGNORE_OVERLOADING flag
Add MUL back to the list and instead make the entire optimization
depend on IGNORE_OVERLOADING, which is there exactly so we can make
these kinds of assumptions.
2019-01-09 09:27:56 +01:00
Sara Golemon 85f440362b Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Bump for 7.1.27
2019-01-08 14:20:18 -05:00
Sara Golemon bbc10549e8 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Bump for 7.1.27
2019-01-08 14:19:37 -05:00
Sara Golemon fabade1573 Bump for 7.1.27 2019-01-08 14:17:43 -05:00
Xinchen Hui cd49db9d47 Fixed bug #77266 (Assertion failed in dce_live_ranges) 2019-01-08 19:19:01 +08:00
Nikita Popov 76c687feaf Fixed bug #77428
mb_ereg_replace historically has not supported escaping backslashes
with backslashes. Go back to that behavior for BC reasons.
2019-01-08 10:21:01 +01:00
Nikita Popov 7f8cab2535 Merge branch 'PHP-7.2' into PHP-7.3 2019-01-08 09:38:02 +01:00
Nikita Popov 1165a9068c Don't swap operands of ZEND_MUL
If this is used with operator overloading, then the operation does
not necessarily commute (for example, matrix multiplication).
2019-01-08 09:37:49 +01:00
Remi Collet b9072788cd Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  cleanup merge
2019-01-08 09:34:05 +01:00
Remi Collet 0d9935739c cleanup merge 2019-01-08 09:33:41 +01:00
Nikita Popov f7a7d32e65 Merge branch 'PHP-7.2' into PHP-7.3 2019-01-08 09:26:31 +01:00
twosee 6305119a51 Prefix error_code with underscore in FastZPP implementation
To avoid conflicts with parameter names.
2019-01-08 09:25:35 +01:00
Derick Rethans 24b446291d Merge branch 'PHP-7.2' into PHP-7.3 2019-01-07 12:48:49 +00:00
Derick Rethans bd1d2c7bfe Update tests due to data changes in tzdata 2018i 2019-01-07 12:48:42 +00:00
Christoph M. Becker deb88f2269 Fix NEWS
The fixes for bug #77359 and #77360 have been ported to PHP-7.3.1, and
the release has been postponed by one week.
2019-01-07 13:11:04 +01:00
Derick Rethans 11105e90c4 Updated to version 2018.9 (2018i) 2019-01-07 11:50:16 +00:00
Derick Rethans 7ad9d6a63b Empty merge 2019-01-07 11:50:16 +00:00
Derick Rethans 81da7f75e3 Updated to version 2018.9 (2018i) 2019-01-07 11:50:14 +00:00
Remi Collet ddccc1db73 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] fix NEWS
2019-01-07 11:12:46 +01:00
Remi Collet 3e780d7f25 [ci skip] fix NEWS 2019-01-07 11:12:13 +01:00
Remi Collet 88fc59d4c9 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] fix NEWS
2019-01-07 11:02:58 +01:00
Remi Collet 03a630ded7 [ci skip] fix NEWS 2019-01-07 11:02:40 +01:00
Nikita Popov 6f75890e7b Fix one issue reported in bug #77310
SCCP did not handle array ASSIGN_* with a BOT operand correctly.
2019-01-07 10:05:23 +01:00
Stanislav Malyshev b5669d207b Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Still leaking for some reason, XFAIL for now, I'll look into it later.
2019-01-07 01:04:16 -08:00
Stanislav Malyshev 289c45109c Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Still leaking for some reason, XFAIL for now, I'll look into it later.
2019-01-07 01:03:26 -08:00
Stanislav Malyshev 27625f063e Still leaking for some reason, XFAIL for now, I'll look into it later. 2019-01-07 01:03:04 -08:00
Stanislav Malyshev aeec40cb50 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug #77418 - Heap overflow in utf32be_mbc_to_code
  Add NEWS
  [ci skip] Add NEWS
  Fix more issues with encodilng length
  Fix #77270: imagecolormatch Out Of Bounds Write on Heap
  Fix bug #77380  (Global out of bounds read in xmlrpc base64 code)
  Fix bug #77371 (heap buffer overflow in mb regex functions - compile_string_node)
  Fix bug #77370 - check that we do not read past buffer end when parsing multibytes
  Fix #77269: Potential unsigned underflow in gdImageScale
  Fix bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext)
  Fix bug #77242 (heap out of bounds read in xmlrpc_decode())
  Regenerate certs for openssl tests
2019-01-06 23:35:09 -08:00
Stanislav Malyshev cfe77ea543 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix bug #77418 - Heap overflow in utf32be_mbc_to_code
  Add NEWS
  [ci skip] Add NEWS
  Fix more issues with encodilng length
  Fix #77270: imagecolormatch Out Of Bounds Write on Heap
  Fix bug #77380  (Global out of bounds read in xmlrpc base64 code)
  Fix bug #77371 (heap buffer overflow in mb regex functions - compile_string_node)
  Fix bug #77370 - check that we do not read past buffer end when parsing multibytes
  Fix #77269: Potential unsigned underflow in gdImageScale
  Fix bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext)
  Fix bug #77242 (heap out of bounds read in xmlrpc_decode())
  Regenerate certs for openssl tests
2019-01-06 23:34:26 -08:00
Stanislav Malyshev 1afebfb3fa Merge branch 'PHP-5.6' into PHP-7.1
* PHP-5.6:
  Fix bug #77418 - Heap overflow in utf32be_mbc_to_code
  [ci skip] Add NEWS
  Fix more issues with encodilng length
  Fix #77270: imagecolormatch Out Of Bounds Write on Heap
  Fix bug #77380  (Global out of bounds read in xmlrpc base64 code)
  Fix bug #77371 (heap buffer overflow in mb regex functions - compile_string_node)
  Fix bug #77370 - check that we do not read past buffer end when parsing multibytes
  Fix #77269: Potential unsigned underflow in gdImageScale
  Fix bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext)
  Fix bug #77242 (heap out of bounds read in xmlrpc_decode())
  Regenerate certs for openssl tests
2019-01-06 23:33:34 -08:00
Stanislav Malyshev 9d6c59eeea Fix bug #77418 - Heap overflow in utf32be_mbc_to_code 2019-01-06 23:31:15 -08:00
Stanislav Malyshev 7ed3cfb2e8 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix tests - newer versions check Unicode
  Add NEWS
  Fix test
2019-01-06 13:50:28 -08:00
Stanislav Malyshev d0d0d922de Fix tests - newer versions check Unicode 2019-01-06 13:28:30 -08:00
Stanislav Malyshev 1b7c599a02 Add NEWS 2019-01-06 13:11:55 -08:00
Stanislav Malyshev fc02e7e3fe Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Add NEWS
2019-01-06 13:08:48 -08:00
Stanislav Malyshev 08bb0ce4e4 Add NEWS 2019-01-06 13:08:24 -08:00
Stanislav Malyshev 25c95752d6 Add NEWS 2019-01-06 13:04:51 -08:00
Stanislav Malyshev b51eaf4166 [ci skip] Add NEWS 2019-01-06 13:03:38 -08:00
Stanislav Malyshev ed4db1bb22 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix test
2019-01-06 12:54:09 -08:00
Stanislav Malyshev 0c35032012 Fix test 2019-01-06 12:30:44 -08:00
Christoph M. Becker e617f03066 Fix #77367: Negative size parameter in mb_split
When adding the last element to the result value of `mb_split`, the
`chunk_pos` may point beyond the end of the string, in which case the
unsigned `n` would underflow.  Therefore, we check whether this is the
case in the first place, and only calculate `n` otherwise.  Since `n`
is no longer used outside the block, we move its declaration inside.
2019-01-06 12:24:15 -08:00
Stanislav Malyshev e40027ef0f Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77369 - memcpy with negative length via crafted DNS response
  Fix more issues with encodilng length
  Fix #77270: imagecolormatch Out Of Bounds Write on Heap
  Fix bug #77380  (Global out of bounds read in xmlrpc base64 code)
  Fix bug #77371 (heap buffer overflow in mb regex functions - compile_string_node)
  Fix bug #77370 - check that we do not read past buffer end when parsing multibytes
  Fix #77269: Potential unsigned underflow in gdImageScale
  Fix bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext)
  Fix bug #77242 (heap out of bounds read in xmlrpc_decode())
  Regenerate certs for openssl tests
2019-01-06 12:23:53 -08:00
Stanislav Malyshev fe820fcba6 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix #77369 - memcpy with negative length via crafted DNS response
  Fix more issues with encodilng length
  Fix #77270: imagecolormatch Out Of Bounds Write on Heap
  Fix bug #77380  (Global out of bounds read in xmlrpc base64 code)
  Fix bug #77371 (heap buffer overflow in mb regex functions - compile_string_node)
  Fix bug #77370 - check that we do not read past buffer end when parsing multibytes
  Fix #77269: Potential unsigned underflow in gdImageScale
  Fix bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext)
  Fix bug #77242 (heap out of bounds read in xmlrpc_decode())
  Regenerate certs for openssl tests
2019-01-06 11:57:16 -08:00
Stanislav Malyshev 8d3dfabef4 Fix #77369 - memcpy with negative length via crafted DNS response 2019-01-06 11:39:09 -08:00
Stanislav Malyshev 31f59e1f30 Fix more issues with encodilng length
Should fix bug #77381, bug #77382, bug #77385, bug #77394.
2019-01-06 11:38:46 -08:00
Christoph M. Becker 567c9f5842 Fix #77270: imagecolormatch Out Of Bounds Write on Heap
At least some of the image reading functions may return images which
use color indexes greater than or equal to im->colorsTotal.  We cater
to this by always using a buffer size which is sufficient for
`gdMaxColors` in `gdImageColorMatch()`.
2019-01-06 11:38:46 -08:00
Stanislav Malyshev 4feb9e66ff Fix bug #77380 (Global out of bounds read in xmlrpc base64 code) 2019-01-06 11:38:46 -08:00
Stanislav Malyshev c6e34d91b8 Fix bug #77371 (heap buffer overflow in mb regex functions - compile_string_node) 2019-01-06 11:38:46 -08:00
Stanislav Malyshev deb06bbb9c Fix bug #77370 - check that we do not read past buffer end when parsing multibytes 2019-01-06 11:38:46 -08:00
Christoph M. Becker dfd8237aec Fix #77269: Potential unsigned underflow in gdImageScale
Belatedly, we're porting the respective upstream patch[1].

[1] <https://github.com/libgd/libgd/commit/60bfb401ad5a4a8ae995dcd36372fe15c71e1a35>
2019-01-06 11:38:46 -08:00
Stanislav Malyshev 78bd347774 Fix bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext) 2019-01-06 11:38:46 -08:00
Stanislav Malyshev 9c62b95e5e Fix bug #77242 (heap out of bounds read in xmlrpc_decode()) 2019-01-06 11:38:46 -08:00
Alexander Kurilo e3e3289bd1 Regenerate certs for openssl tests 2019-01-06 11:38:46 -08:00
Stanislav Malyshev c95daa9c75 Fix more issues with encodilng length
Should fix bug #77381, bug #77382, bug #77385, bug #77394.
2019-01-06 11:34:27 -08:00
Christoph M. Becker 7a12dad4dd Fix #77270: imagecolormatch Out Of Bounds Write on Heap
At least some of the image reading functions may return images which
use color indexes greater than or equal to im->colorsTotal.  We cater
to this by always using a buffer size which is sufficient for
`gdMaxColors` in `gdImageColorMatch()`.
2019-01-06 11:34:20 -08:00
Stanislav Malyshev 1cc2182bcc Fix bug #77380 (Global out of bounds read in xmlrpc base64 code) 2019-01-06 11:34:00 -08:00
Stanislav Malyshev 28362ed4fa Fix bug #77371 (heap buffer overflow in mb regex functions - compile_string_node) 2019-01-06 11:33:54 -08:00
Stanislav Malyshev 20407d06ca Fix bug #77370 - check that we do not read past buffer end when parsing multibytes 2019-01-06 11:33:44 -08:00
Christoph M. Becker a918020c03 Fix #77269: Potential unsigned underflow in gdImageScale
Belatedly, we're porting the respective upstream patch[1].

[1] <https://github.com/libgd/libgd/commit/60bfb401ad5a4a8ae995dcd36372fe15c71e1a35>
2019-01-06 11:33:38 -08:00
Stanislav Malyshev 428d8164ff Fix bug #77247 (heap buffer overflow in phar_detect_phar_fname_ext) 2019-01-06 11:33:32 -08:00
Stanislav Malyshev 4fc0bceb7c Fix bug #77242 (heap out of bounds read in xmlrpc_decode()) 2019-01-06 11:33:25 -08:00
Nikita Popov 361d3ede93 Fix bug #77410 2019-01-04 12:40:28 +01:00
Nikita Popov 1ed20669c5 Merge branch 'PHP-7.2' into PHP-7.3 2019-01-04 09:53:30 +01:00
Nikita Popov 41af1e6781 Fix self::class inside constant in global scope
Previously this triggered an assertion failure. The behavior is
not quite correct, in that self::class should generate an exception
if there is no self, but returns an empty string here. Fixing that
would be a bit too intrusive for the 7.2 branch.
2019-01-04 09:52:04 +01:00
Nikita Popov 07873fab3c Add NEWS entry for bug #77357
The fix has been confirmed.

[ci skip]
2019-01-04 09:07:50 +01:00
Nikita Popov 5a361c3a54 Possible fix for bug #77357
Don't invoke CPUID with feature levels above the supported maximum.
In this case CPUID will return the highest supported basic information
leaf, which will have unrelated bits in the relevant positions.
2019-01-03 10:24:48 +01:00
Nikita Popov 349dbb7938 Merge branch 'PHP-7.2' into PHP-7.3 2019-01-03 09:40:42 +01:00
Nikita Popov cb009b12a5 Fixed bug #77273 2019-01-03 09:40:07 +01:00
Alexander Kurilo f51062523d Regenerate certs for openssl tests 2019-01-02 10:00:36 -08:00
Nikita Popov 325a113974 Possible fix for bug #77287
The cache size could be off by 4, if we're on a 32-bit system and
the slot had to be bumped for alignment reasons.

I wasn't able to reproduce the issue reported in bug #77287, but I
think this might be the cause.
2019-01-02 14:12:58 +01:00
Nikita Popov 291589114a Disable ifuncs on FreeBSD
Intended as at least a preliminary fix for bug #77284. If/when we
figure out what exactly the issue is, we can relax this.
2019-01-02 12:59:22 +01:00
Nikita Popov 613683580b Merge branch 'PHP-7.2' into PHP-7.3 2019-01-02 11:34:15 +01:00
Nikita Popov 73596c56e7 Partial fix for bug #75426
This does not print the exact line of the comma, but rather the line
of the previous element. This should generally be "good enough", as
the line number is close (off by one) to the actual issue now.
Previously it would point to the start of the array, which may be
very far away.
2019-01-02 11:32:48 +01:00
Vincent JARDIN 91e44a27f6 skeleton: support PHP 7.2
skeleton can still be leveraged with older PHP releases, including
PHP 7.2.

I wanted to add this capability since PHP 7.2 is still widely provided
with most Linux distributions.

I am using ext_skel.php on a vanilla Ubuntu 18.04 and Windows
in order to illustrate how to develop a PHP extension for both
OS using the default tools provided by the distributions.
  see: https://github.com/vjardin/php-bonjour
2019-01-02 11:21:25 +01:00
Anatol Belski 1732ce9c23 Update NEWS 2019-01-02 11:02:29 +01:00
Anatol Belski d1c616f077 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #75684 In mysqlnd_ext_plugin.h the plugin methods family has no external visibility
2019-01-02 11:01:34 +01:00
Anatol Belski 7b3f8e746a Fixed bug #75684 In mysqlnd_ext_plugin.h the plugin methods family has no external visibility 2019-01-02 11:00:33 +01:00
Xinchen Hui 1b86f84908 Entry get lost while merging 2019-01-02 16:46:41 +08:00
Xinchen Hui 33011be5bf Merge branch 'PHP-7.3' of git.php.net:/php-src into PHP-7.3
* 'PHP-7.3' of git.php.net:/php-src:
  Fixed bug #77257
2019-01-02 16:45:38 +08:00
Xinchen Hui 54a58a7380 Fixed bug #77387 (Recursion detection broken when printing GLOBALS) 2019-01-02 16:42:05 +08:00
Nikita Popov 91888cc372 Fixed bug #77257
Correctly handle the case of duplicate predecessors, by removing the
duplicate predecessor and corresponding phi node operands.

For the future, it would be better to instead allow duplicate
predecessors and avoid this kind of fragile code...
2019-01-02 09:31:50 +01:00
Xinchen Hui e01f08f679 Fixed bug #77376 ("undefined function" message no longer includes namespace) 2019-01-02 15:32:17 +08:00
Xinchen Hui 703ccd5d27 Update NEWS 2019-01-02 12:10:23 +08:00
Xinchen Hui e527626d9f Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #77395 (segfault about array_multisort)
2019-01-02 12:10:04 +08:00
Xinchen Hui 8ebae84674 Fixed bug #77395 (segfault about array_multisort) 2019-01-02 12:09:47 +08:00
Christoph M. Becker 6f663c3a2e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77391: 1bpp BMPs may fail to be loaded
2018-12-31 20:50:19 +01:00
Christoph M. Becker b0cfa28d6d Fix #77391: 1bpp BMPs may fail to be loaded
We port the upstream fix[1].

[1] <https://github.com/libgd/libgd/commit/d0859134fcbd8817f87895bd1cb158096568a7a2>
2018-12-31 20:45:47 +01:00
Christoph M. Becker b051ab56dc Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Regenerate certs for openssl tests
2018-12-31 18:27:26 +01:00
Alexander Kurilo 687dad3674 Regenerate certs for openssl tests 2018-12-31 18:20:34 +01:00
Christoph M. Becker 42b0bbd758 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Drop deprecated /Gm compile option
2018-12-30 14:37:04 +01:00
Christoph M. Becker 20de58f51d Drop deprecated /Gm compile option
The `/Gm` option of `cl` is deprecated[1], and `cl` claims that it will
be removed in the future, so we're dropping it right away.

[1] <https://docs.microsoft.com/en-us/cpp/build/reference/gm-enable-minimal-rebuild?view=vs-2017>
2018-12-30 14:36:05 +01:00
Anatol Belski d4b7cc1dba Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Increase timeout for test on AppVeyor
2018-12-29 17:51:39 +01:00
Anatol Belski 54a2b42778 Increase timeout for test on AppVeyor 2018-12-29 17:48:25 +01:00
Anatol Belski 2567eba330 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Add memory check to the test
2018-12-29 16:23:24 +01:00
Anatol Belski 222fa032d2 Add memory check to the test 2018-12-29 16:22:31 +01:00
Anatol Belski 6896d2a685 [ci skip] Update NEWS 2018-12-28 16:40:06 +01:00
Anatol Belski d874d4a15c Fixed bug #77346 webm files incorrectly detected as application/octet-stream
HEADSUP data from file 5.34 is used from now on
2018-12-28 13:25:40 +01:00
Lauri Kenttä 16c62a8179 Fix #77360: class_uses causes segfault 2018-12-27 15:34:02 +01:00
Lauri Kenttä 89bf3df67d Fix #77359: spl_autoload causes segfault
Use the correct function to free the string.
2018-12-27 15:28:25 +01:00
Anatol Belski d2621c3185 Update NEWS [ci skip] 2018-12-26 20:45:19 +01:00
Anatol Belski b53d2b69f2 Update NEWS [ci skip] 2018-12-26 20:07:31 +01:00
Anatol Belski b48823101c Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update NEWS [ci skip]
2018-12-26 20:06:01 +01:00
Anatol Belski a2cb8228fe Update NEWS [ci skip] 2018-12-26 20:05:15 +01:00
Anatol Belski e38e44e3c6 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Initialize s_un (sockaddr_un) to zero before using it. Fixes #76839.
2018-12-26 19:01:36 +01:00
Michael Meyer 3c42c784c2 Initialize s_un (sockaddr_un) to zero before using it. Fixes #76839. 2018-12-26 18:58:27 +01:00
Nikita Popov b1deb98c42 Fixed bug #77338
Set preg_options to 0 in php_pcre_get_compiled_regex(_ex). These
options are intended to be passed to pcre2_match. However, we do
not have any flags that actually need to be set during matching
(all relevant flags are set during compilation), and the preg_flags
value is used for PHP-specific flags instead.

This parameter should be removed entirely in master to avoid confusion.
2018-12-26 17:11:27 +01:00
Anatol Belski 078c1d8ef7 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update binary SDK version for AppVeyor
2018-12-26 14:17:56 +01:00
Anatol Belski 3c7dc7b4c4 Update binary SDK version for AppVeyor 2018-12-26 14:15:21 +01:00
Anatol Belski 199914b42d Fixed bug #77317 __DIR__, __FILE__, realpath() reveal physical path for subst virtual drive
Keep compatibility with 7.2 and below which better comply with
realpath(3). This might have been fixable another way, say by checking
of QueryDosDevice or alike, sadly that comes with a huge performance
impact. The new internal realpath API is kept available so is
usable when bind or network mount or other OS specific realpath
variants are needed. If not used by default, a userspace function for
this specific case might be considered to be offered in next minor.
2018-12-26 12:59:00 +01:00
Dmitry Stogov b45774eed0 Respect EG(vm_stack_page_size) 2018-12-26 13:09:32 +03:00
Dmitry Stogov 1ce7cbe590 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Backport later interned strings destruction.
2018-12-24 13:45:40 +03:00
Dmitry Stogov 5888fbde0d Backport later interned strings destruction. 2018-12-24 13:45:02 +03:00
Dmitry Stogov ddfb44f2cf Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #77339 (__callStatic may get incorrect arguments)
2018-12-24 13:23:47 +03:00
Dmitry Stogov 7e597f48e9 Fixed bug #77339 (__callStatic may get incorrect arguments) 2018-12-24 13:22:43 +03:00
Nikita Popov 69f54dd549 Merge branch 'PHP-7.2' into PHP-7.3 2018-12-23 20:20:53 +01:00
Nikita Popov 64de5bc224 Fix invalid efree in browscap
Related to bug #77338.
2018-12-23 20:20:04 +01:00
Derick Rethans c4e46c3043 Merge branch 'timelib-201801RC3' into PHP-7.3 2018-12-23 17:57:09 +00:00
Derick Rethans a9a084c092 Update API use due to changes in timelib 2018.01RC3 2018-12-23 17:54:57 +00:00
Derick Rethans 3e4a3d005a Upgrade timelib to 2018.01RC3 2018-12-23 17:54:37 +00:00
CHU Zhaowei b15189f4d8 Fix #77298: segfault occurs when add property to unserialized empty ArrayObject 2018-12-21 17:45:52 +01:00
Dmitry Stogov 95193c3872 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Removed /e modifirer and fixed ws.
2018-12-21 19:01:18 +03:00
Dmitry Stogov 8db63adb6d Removed /e modifirer and fixed ws. 2018-12-21 18:58:50 +03:00
Christoph M. Becker b1e25ce319 [ci skip] Add missing entry for bug 77020 2018-12-18 23:23:08 +01:00
Remi Collet 4efa618b9e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  missing entry for #77020
2018-12-18 16:29:53 +01:00
Remi Collet 3245d1bb09 missing entry for #77020 2018-12-18 16:29:31 +01:00
Remi Collet c04ef40026 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  bump to 7.2.15-dev
2018-12-18 13:12:05 +01:00
Remi Collet 7161fe629d bump to 7.2.15-dev 2018-12-18 13:11:32 +01:00
Christoph M. Becker 8734d6a73d [ci skip] Fix release date 2018-12-18 13:10:03 +01:00
Christoph M. Becker a65133a17a Prepare main branch for 7.3.2 2018-12-18 12:15:25 +01:00
Scott e0e08d376e Fix #77297: SodiumException segfaults on PHP 7.3
Instead of trying to clean the argument arrays from the backtrace, we
overwrite them with empty arrays.
2018-12-16 16:36:47 +01:00
Christoph M. Becker 0061db5503 Fix #77291: magic methods inherited from a trait may be ignored
When adding methods from a trait, we must not assume that a method name
with the same length as the name of the using class is either a PHP 4
style constructor, or not a magic method at all – it may well be
another magic method.

We mostly preserve the spirit of the optimization which caused this
regression, and avoid string comparisons for all method names which can
never be magic methods.
2018-12-16 13:30:11 +01:00
Xinchen Hui 54739c7e66 Update NEWS 2018-12-11 15:25:19 +08:00
Xinchen Hui c3eb291e41 Merge branch 'i386-PIC' of https://github.com/ryandesign/php-src into PHP-7.3
* 'i386-PIC' of https://github.com/ryandesign/php-src:
  Fix __zend_cpuid on i386 PIC without __cpuid_count
2018-12-11 15:22:50 +08:00
Anatol Belski 7dc1c7f630 Remove BOM 2018-12-11 00:38:54 +01:00
Christoph M. Becker 9b335c5649 Update/fix UPGRADING 2018-12-10 14:32:20 +01:00
Nikita Popov 93aabf1533 Fixed bug #77275
Instead of juggling with this problem during literal compaction,
make sure that we always initialize Z_EXTRA for literals, which
seems like the more robust solution.
2018-12-10 13:36:23 +01:00
Nikita Popov 59cacdcefd Fix typos in compact literals debugging code 2018-12-10 13:35:55 +01:00
Christopher Jones 6f6a15e1ae Merge branch 'PHP-7.2' into PHP-7.3 2018-12-10 21:54:23 +11:00
Christopher Jones 5b72f49c9e Merge branch 'PHP-7.3' of https://git.php.net/repository/php-src into PHP-7.3 2018-12-10 11:00:32 +11:00
Christopher Jones 95581c6dd9 Merge branch 'PHP-7.2' into PHP-7.3 2018-12-10 10:57:10 +11:00
Christopher Jones e47025ffc5 Merge branch 'PHP-7.2' into PHP-7.3 2018-12-10 10:16:27 +11:00
Christoph M. Becker b0177d3892 Fix version numbers in main branch
This should have already happened, when `PHP-7.3.0` was branched.
2018-12-10 00:16:23 +01:00
Anatol Belski 6734b1106f Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix syntax error
2018-12-09 19:15:11 +01:00
Anatol Belski be599873f0 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix libtidy exports when ext/tidy compiled static
2018-12-09 19:01:17 +01:00
Derick Rethans 77b1f5baa3 Back to -dev
This should have been done as soon as PHP-7.3.0 was branched.
2018-12-09 16:23:31 +00:00
Christopher Jones 8c37d5f451 Add OCI8 changes 2018-12-09 20:56:25 +11:00
Christopher Jones 1f84f2a766 Merge branch 'PHP-7.2' into PHP-7.3 2018-12-09 20:55:21 +11:00
Christopher Jones 31eeca8a19 Merge branch 'PHP-7.2' into PHP-7.3 2018-12-09 12:38:53 +11:00
Christopher Jones 3da368be2e Merge branch 'PHP-7.2' into PHP-7.3 2018-12-09 12:17:04 +11:00
Christopher Jones 03f6b16de7 Merge branch 'PHP-7.2' into PHP-7.3 2018-12-09 11:30:15 +11:00
Pierrick Charron b3a6ca90af Fix 77264: curl_getinfo returning microseconds, not seconds
Since curl 7.55.0, libcurl introduced new constants to return
more sensible variable types with curl_getinfo.

When curl_getinfo with no option was called, and curl >= 7.55.0, some
of the result were returned as int when they where returned as float
in previous versions. This commit remove this BC Break.

If someone still want to use more sensible variable types, it's always
possible to call curl_getinfo with newer constants.

CURLINFO_CONTENT_LENGTH_DOWNLOAD => CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
CURLINFO_CONTENT_LENGTH_UPLOAD => CURLINFO_CONTENT_LENGTH_UPLOAD_T
CURLINFO_SIZE_DOWNLOAD => CURLINFO_SIZE_DOWNLOAD_T
CURLINFO_SIZE_UPLOAD => CURLINFO_SIZE_UPLOAD_T
CURLINFO_SPEED_DOWNLOAD => CURLINFO_SPEED_DOWNLOAD_T
CURLINFO_SPEED_UPLOAD => CURLINFO_SPEED_UPLOAD_T
CURLINFO_APPCONNECT_TIME => CURLINFO_APPCONNECT_TIME_T
CURLINFO_CONNECT_TIME => CURLINFO_CONNECT_TIME_T
CURLINFO_NAMELOOKUP_TIME => CURLINFO_NAMELOOKUP_TIME_T
CURLINFO_PRETRANSFER_TIME => CURLINFO_PRETRANSFER_TIME_T
CURLINFO_REDIRECT_TIME => CURLINFO_REDIRECT_TIME_T
CURLINFO_STARTTRANSFER_TIME => CURLINFO_STARTTRANSFER_TIME_T
CURLINFO_TOTAL_TIME => CURLINFO_TOTAL_TIME_T
2018-12-08 15:09:43 -05:00
Ryan Schmidt 4fb019994a Fix __zend_cpuid on i386 PIC without __cpuid_count
Closes https://bugs.php.net/bug.php?id=76654
2018-12-08 09:52:52 -06:00
Remi Collet cb3a1df946 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  add imap.enable_insecure_rsh in php.ini
2018-12-08 10:25:20 +01:00
Christopher Jones a5991a2f9f Merge branch 'PHP-7.3' of https://git.php.net/repository/php-src into PHP-7.3 2018-12-08 20:20:04 +11:00
Christopher Jones 6119d4c670 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Note that PECL install now works on PHP 7.3
  Don't skip with 18c DB
2018-12-08 20:13:57 +11:00
Remi Collet 1de2ff2e5e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  missing entry for #77020
  missing entry for #77020
2018-12-08 10:07:20 +01:00
Christopher Jones e355e55e01 Merge branch 'PHP-7.2' into PHP-7.3 2018-12-08 19:24:59 +11:00
Christopher Jones 78c299ae2d Update NEWS 2018-12-08 19:14:16 +11:00
Christopher Jones 18b25f0f65 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update NEWS
2018-12-08 19:13:12 +11:00
Christopher Jones de9f64f5dd Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  When releasing an oci8 connection always set the resource to null.
2018-12-08 18:51:13 +11:00
Christopher Jones 49944e4bcf Merge branch 'PHP-7.2' into PHP-7.3 2018-12-07 23:22:30 +11:00
Christopher Jones 171389b435 Merge branch 'PHP-7.2' into PHP-7.3 2018-12-07 23:20:27 +11:00
Christopher Jones 91776f7264 Sync with test files 2018-12-07 21:41:34 +11:00
Christoph M. Becker 327e2d0153 [ci skip] Fix NEWS wrt. ChangeLog conversion
We have to be rather picky in this regard; otherwise we need to
manually post process the ChangeLog.
2018-12-06 17:15:43 +01:00
Christoph M. Becker 43329e85e6 [ci skip] Fix typo 2018-12-06 00:24:25 +01:00
Ferenc Kovacs c7095bd607 Merge branch 'PHP-7.2' into PHP-7.3 2018-12-05 09:44:22 +01:00
Côme Chilliet cb00ca7cfe Add LDAP information in UPGRADING 2018-12-04 17:15:55 +01:00
Anatol Belski 807d8aa00d Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Sync NEWS [ci skip]
2018-12-04 12:50:40 +01:00
Jakub Zelenka 6493d54897 Update UPGRADING with info about FPM logging changes 2018-12-03 18:30:41 +00:00
Stanislav Malyshev 36534afd10 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix null pointer deref in qprint-encode filter (bug #77231)
2018-12-03 10:20:07 -08:00
Christoph M. Becker 5be58a437c [ci skip] Prepare NEWS for 7.3 GA 2018-12-03 13:56:14 +01:00
Stanislav Malyshev 3d8d13f7b9 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug #77143 - add more checks to buffer reads
  Fix bug #77143 - add more checks to buffer reads
  Fix #77020: null pointer dereference in imap_mail
  Don't need interactive progress on git clones in Travis
  Fix TSRM signature - php_stream_stat macro has it's own TSRM
  Regenerate certificates for openssl tests
  Improve test for bug77022
2018-12-03 00:42:55 -08:00
Jakub Zelenka 1deee2ba7c Merge branch 'PHP-7.2' into PHP-7.3 2018-12-02 19:38:38 +00:00
Stanislav Malyshev e614b12712 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
2018-12-01 21:48:44 -08:00
Stanislav Malyshev cc84d893c7 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug #77022 - use file mode or umask for new files
2018-12-01 21:47:49 -08:00
Anatol Belski ea454583eb Update NEWS [ci skip] 2018-12-01 17:10:43 +01:00
Anatol Belski ef1269d5c1 Fixed bug #77193 Infinite loop in preg_replace_callback
Don't return preallocated match data more than once in nested calls.
2018-12-01 10:24:06 +01:00
Christoph M. Becker 471eb0dd95 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77051: Issue with re-binding on SQLite3
2018-11-29 02:18:56 +01:00
Stanislav Malyshev 3f165e8ca3 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Add DISPLAY_INI_ENTRIES for imap
  Disable rsh/ssh functionality in imap by default (bug #77153)
  Disable rsh/ssh functionality in imap by default (bug #77153)
2018-11-28 15:47:07 -08:00
Derick Rethans dd48f0899d Merge branch 'PHP-7.2' into PHP-7.3 2018-11-28 20:35:16 +00:00
Nikita Popov f4eec70260 Merge branch 'PHP-7.2' into PHP-7.3 2018-11-28 20:10:17 +01:00
Nikita Popov 12e88781e1 Merge branch 'PHP-7.2' into PHP-7.3 2018-11-27 19:44:45 +01:00
Nikita Popov d78211aec0 Merge branch 'PHP-7.2' into PHP-7.3 2018-11-27 16:39:21 +01:00
Nikita Popov fb18b8bdf6 Merge branch 'PHP-7.2' into PHP-7.3 2018-11-26 22:49:18 +01:00
Adam Baratz 2c4425a87a update NEWS 2018-11-26 10:39:24 -05:00
Adam Baratz a22d2850d4 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Check column number before trying to fetch the value
2018-11-26 10:36:18 -05:00
Christoph M. Becker 07d6dfbfe4 Use zend_empty_array
No need to define our own `com_dotnet_object_properties` as empty hash,
since we can use `zend_empty_array` instead as of PHP 7.3.0.

Cf. <https://github.com/php/php-src/pull/3672#issuecomment-440467704>.
2018-11-26 15:33:58 +01:00
Christoph M. Becker 070f6838db Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77200: imagecropauto(…, GD_CROP_SIDES) crops left but not right
2018-11-25 19:03:38 +01:00
Christoph M. Becker d2a1839d82 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77198: auto cropping has insufficient precision
2018-11-25 15:56:35 +01:00
Frank Denis 8e5381915b Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  ext/sodium: remove redundant code
  ext/sodium: Correct base64 decoding with unpadded variants
2018-11-24 17:56:33 +01:00
Christoph M. Becker aab9aa7661 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix test case
2018-11-24 13:38:09 +01:00
Christoph M. Becker caabf3a1bb Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77195: Incorrect error handling of imagecreatefromjpeg()
2018-11-24 12:57:44 +01:00
Christoph M. Becker 2979c6a56d [ci skip] Preliminary fix for NEWS
No more regular bug fixes for PHP 7.3.0.

We'll clean up the rest later.
2018-11-23 18:37:12 +01:00
Christoph M. Becker b0a86566dc Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77177: Serializing or unserializing COM objects crashes
2018-11-23 16:36:00 +01:00
Sara Golemon 5b55b587ea Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Prep for 7.1.26
2018-11-21 14:39:40 -05:00
Xinchen Hui aaafd793e6 Fixed bug #77088 (Segfault when using SoapClient with null options)
SoapClient constructor has its own error handler
2018-11-21 11:30:32 +08:00
Xinchen Hui efeb810a3d Fixed proto & folder mark 2018-11-21 11:18:48 +08:00
Nikita Popov b6d5d92661 Merge branch 'PHP-7.2' into PHP-7.3 2018-11-20 21:30:53 +01:00
Nikita Popov 7a0d3406f6 Merge branch 'PHP-7.2' into PHP-7.3 2018-11-20 21:16:28 +01:00
Sara Golemon 7d766bd657 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Bump for 7.2.14
2018-11-20 14:41:31 -05:00
Stanislav Malyshev 63973d1b33 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Disable rsh/ssh functionality in imap by default (bug #77153)
2018-11-20 11:20:45 -08:00
Stanislav Malyshev 44b08a9802 Disable rsh/ssh functionality in imap by default (bug #77153) 2018-11-20 11:19:45 -08:00
Christoph M. Becker 03a3a04e55 [ci skip] Update NEWS wrt. php-7.3.0RC6 tagging 2018-11-20 13:36:10 +01:00
Remi Collet 3ed07cc34a NEWS 2018-11-20 11:20:40 +01:00
Remi Collet 928d7fc8df Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  NEWS
  NEWS
  Fix #77151 ftp_close(): SSL_read on shutdown
2018-11-20 11:20:26 +01:00
Anatol Belski 05df19b9f0 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-11-18 14:41:14 +01:00
Anatol Belski 68442312e3 [ci skip] Update NEWS 2018-11-18 14:40:00 +01:00
Anatol Belski 5f64afc073 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #77047 pg_convert has a broken regex for the 'TIME WITHOUT TIMEZONE' data type
2018-11-18 12:33:35 +01:00
Anatol Belski 282a63dace Add test for bug #77047 2018-11-18 11:52:00 +01:00
andy 369c991d5c FIX #77047: fixes regex for "time" data type 2018-11-18 11:50:32 +01:00
Anatol Belski cf764f02b3 [ci skip] Update NEWS 2018-11-17 23:01:17 +01:00
Anatol Belski 10192a9ca4 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
2018-11-17 23:00:50 +01:00
Anatol Belski b0591f5e46 Simplify assignment on 64-bit 2018-11-17 22:56:39 +01:00
Anatol Belski 00c08a2e4a Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #77111 php-win.exe corrupts unicode symbols from cli parameters
2018-11-16 23:22:19 +01:00
Nikita Popov dee5a450d9 Fixed bug #77165
Also add some helper macros for PROTECT/UNPROTECT that check for
IMMUTABLE. These checks are needed for nearly any use of
PROTECT/UNPROTECT.
2018-11-15 17:16:39 +01:00
Anatol Belski 2a062f3c02 Rework magic data once more
The change reduces the input size on patterns using posix character
classes. It is still better than reverting to the patterns from the
older version, as the upstream data uses posix classes also in the later
versions. The input reduction speeds up the pattern matching in some
cases.

This patch is functionally almost same as upstream, but might show some diff
when the input is very long. While the magic data in the newer versions is
functionally an improvement, with jit=0 it might show a performance regression.
The slowdown is negligible in the normal usage and is still acceptable for the
malicious input. If some functional regressions show up, this patch should be
reverted and the tests timing should be adapted instead.
2018-11-14 22:23:24 +01:00
Christoph M. Becker 9a2bd2f453 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77147: Fix for 60494 ignores ICONV_MIME_DECODE_CONTINUE_ON_ERROR
2018-11-14 14:59:30 +01:00
Joe Watkins 8a11c9ee76 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Validate length on socket_write
2018-11-13 13:00:08 +01:00
Jan Rękorajski f76be1a0d6 Fix compilation on x32
Signed-off-by: Elan Ruusamäe <glen@pld-linux.org>
2018-11-13 12:31:00 +01:00
Christoph M. Becker 512b93e9d6 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77141: Signedness issue in SOAP when precision=-1
2018-11-12 23:24:48 +01:00
Anatol Belski ee50461e4b Update libmagic.patch [ci skip] 2018-11-10 22:02:44 +01:00
Anatol Belski df9c58e27a Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update libmagic.patch [ci skip]
2018-11-10 22:02:24 +01:00
Anatol Belski b50d93bc11 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fork test with pcre.jit=0
2018-11-10 20:07:25 +01:00
Anatol Belski 0e38909170 Rework magic data
Still upstream contains some slower patterns. Those might need to
be patched, if regressions arise.
2018-11-10 18:22:44 +01:00
Anatol Belski 992e4fbc65 Fix regex 2018-11-10 12:13:03 +01:00
Anatol Belski 1c2518f906 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix regex
2018-11-10 12:12:25 +01:00
Anatol Belski 982a62819e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Rework magic data
2018-11-10 01:32:35 +01:00
Anatol Belski 3061d7bdad Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Sync one more upstream libmagic piece
2018-11-10 00:20:39 +01:00
Christoph M. Becker 155aecd397 [ci skip] Update NEWS wrt. php-7.3.0RC5 tagging 2018-11-06 11:46:20 +01:00
Anatol Belski ddd54401db Update NEWS [ci skip] 2018-11-05 22:53:45 +01:00
Anatol Belski 1cab286151 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update NEWS [ci skip]
2018-11-05 22:53:19 +01:00
Anatol Belski a957af6c06 Update libmagic.patch [ci skip] 2018-11-05 22:25:31 +01:00
Anatol Belski b996611531 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update libmagic.patch [ci skip]
2018-11-05 22:25:04 +01:00
Anatol Belski 29dcf19f8b Declare function proto in header 2018-11-05 21:29:35 +01:00
Anatol Belski 4aa77c380c Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Declare function proto in header
2018-11-05 21:29:06 +01:00
Christoph M. Becker 7625f972db Fix #76825: Undefined symbols ___cpuid_count
Apparently, the presence of `cpuid.h` is not necessarily sufficient to
guarantee the availability of `__cpuid_count()`.  We therefore test for
the latter explicitly.
2018-11-05 18:24:39 +01:00
Remi Collet d78479737c NEWS 2018-11-05 17:06:40 +01:00
Remi Collet d53ecd040b Fix: #77110 undefined symbol zend_string_equal_val in C++ build 2018-11-05 17:05:49 +01:00
Anatol Belski 68ad401b34 Implement handling for JIT recognition when cross compiling 2018-11-05 01:15:09 +01:00
Anatol Belski db1534b1b4 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Backport 7f5f4601 for 7.2
2018-11-04 16:59:27 +01:00
Christoph M. Becker 579d76d87b Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #76348: WSDL_CACHE_MEMORY causes Segmentation fault
2018-11-04 16:47:13 +01:00
Anatol Belski 7f5f46013b Rework places in libmagic regarding previous CVE-2014-3538 fixes
CVE-2014-3538 was fixed upstream, but the old patch was still kept in
the PHP port. This patch causes performance regressions when PCRE JIT is
not enabled. This is fixed by applying the relevant original code from
the newer libmagic, which makes the old patch obsolete as the
CVE-2014-3538 tests still pass.
2018-11-04 13:11:28 +01:00
Anatol Belski aea411657e Change the way JIT availability is checked
The pcre2_jit_compile_8 sysmbol is always available, even JIT might be
not. If JIT is not enabled explicitly and is enabled in the PHP runtime,
this will lead to a malfunction. This approach ensures JIT is indeed
available on the given platform. For cross compilation this might get
complicated, as it would require an explicit processor architecture and
PCRE2 version check.

Another solution for this case is to run pcre2_config at runtime. That
however would require more condition checks that would impact
architectures where JIT is available.
2018-11-03 20:50:05 +01:00
Nikita Popov d92f7630f7 Merge branch 'PHP-7.2' into PHP-7.3 2018-11-02 14:30:50 +01:00
Zeev Suraski 9afce019e0 Future-proof email addresses 2018-11-01 18:35:32 +02:00
Rasmus Lerdorf 99a9e85c65 Fix stray newline that caused this test to fail 2018-10-31 11:41:17 -07:00
Rasmus Lerdorf 4e8195769d Fix session tests that fail if error_log is set 2018-10-31 10:58:45 -07:00
Rasmus Lerdorf 1954c7e1c6 This test needs to log to stdout 2018-10-31 10:43:45 -07:00
Anatol Belski ee9d879f57 Fix error condition 2018-10-30 20:43:45 +01:00
Anatol Belski 8827cc34cf Fixed bug #77081 ftruncate() changes seek pointer in c mode 2018-10-30 20:42:00 +01:00
Christoph M. Becker 2816a3fdfa Fix and improve test case
We fix the erroneous doctype declaration, clarify the expectation, and
add a comment to clarify the purpose of the tag mismatch in the XML.
2018-10-30 18:53:03 +01:00
Peter Kokot 17df3a194b [ci skip] Update NEWS 2018-10-30 00:24:07 +01:00
Peter Kokot 82115849b3 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  fix bug #77079
2018-10-30 00:23:38 +01:00
Nikita Popov 09c7108f74 Fix mb_strrpos() with encoding passed as 3rd param 2018-10-29 18:56:17 +01:00
Christoph M. Becker eca3b9629f [ci skip] Update UPGRADING
PR #3317[1] is relevant for the migration guide, so we add a respective
note in UPGRADING.

[1] <https://github.com/php/php-src/pull/3317>
2018-10-28 12:48:07 +01:00
Christoph M. Becker 829b0df77b Fix #71592: External entity processing never fails
If the callback set via `xml_set_external_entity_ref_handler()` returns
a falsy value, parsing is supposed to stop and the error number set to
`XML_ERROR_EXTERNAL_ENTITY_HANDLING`.  This is already correctly done
by the libexpat binding, but the libxml2 binding ignores the return
value.  We fix this by calling `xmlStopParser()` which is available as
of libxml 2.1.0[1] (PHP-7.1 requires at least libxml 2.6.11 anyway),
and setting the desired `errNo` ourselves.

[1] <http://xmlsoft.org/news.html>
2018-10-27 17:30:13 +02:00
Adam Harvey bca0a7e285 [ci skip] Fix indentation in UPGRADING. 2018-10-25 11:59:10 -07:00
Nikita Popov b9431ef4d5 Don't optimize function if inference failed
This was respected only for the single-function optimizations, not
in func-info mode.
2018-10-25 16:44:24 +02:00
Nikita Popov 78c2e0e342 Merge branch 'PHP-7.2' into PHP-7.3 2018-10-25 16:44:19 +02:00
Dmitry Stogov 335fb94d54 Fixed reseting of interned strings buffer. 2018-10-24 15:45:34 +03:00
Dmitry Stogov 770fe51bfd Make php_plain_files_wrapper to be writable (workaround for swoole) 2018-10-24 11:49:44 +03:00
Υоаnn B 5df17425d3 fix typo in sysvsem.c 2018-10-23 14:57:03 +02:00
Nikita Popov 3fb0f34059 Merge branch 'PHP-7.2' into PHP-7.3 2018-10-23 14:24:55 +02:00
Remi Collet 0d273cf95d Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  bump to 7.2.13-dev
  Updated to version 2018.6 (2018f)
  Updated to version 2018.6 (2018f)
2018-10-23 12:16:31 +02:00
Christoph M. Becker 4ffa415500 [ci skip] Update NEWS wrt. php-7.3.0RC4 tagging 2018-10-23 12:10:09 +02:00
Jakub Zelenka c8febbe039 Fix arginfo and clean up fpm_get_status 2018-10-21 19:39:47 +01:00
Christoph M. Becker 10800106b3 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #75282: xmlrpc_encode_request() crashes
2018-10-21 12:10:54 +02:00
Anatol Belski 7f8efd9a6e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix tests for ICU 63.1
2018-10-20 23:04:54 +02:00
Peter Kokot 13aae9f3d5 [ci skip] Update NEWS 2018-10-20 09:55:07 +02:00
Peter Kokot b7cef2b008 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  Fix #77041: buildconf should output error messages to stderr
2018-10-20 09:54:00 +02:00
Peter Kokot 2224277d7d [ci skip] Update NEWS 2018-10-19 00:12:34 +02:00
Peter Kokot 74131ca342 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  Fix #77035: The phpize and ./configure create redundant .deps file
2018-10-19 00:10:22 +02:00
Peter Kokot 93427292f6 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix tests/output/bug74815.phpt generating errors.log
2018-10-18 23:39:39 +02:00
Anatol Belski bca89bb735 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix test when it's run on another drive
2018-10-18 00:45:17 +02:00
Christoph M. Becker 24b6779254 [ci skip] Update UPGRADING wrt. tidyp support
This is especially noteworthy since `tidy_get_relase()` returns
'unknown' when built against libtidyp, which might break some code
which relies on `tidy_get_release()` to return a date formatted as
`yyyy/mm/dd`.
2018-10-17 23:45:03 +02:00
Christoph M. Becker e6c2ab5463 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #77027: tidy::getOptDoc() not available on Windows
2018-10-17 16:37:09 +02:00
Nikita Popov 1151554668 Remove the "auto" encoding
"auto" is only meaningful in functions which accept an encoding
*list* and support encoding detection. These functions have
explicit checks for "auto". It cannot be used as a standalone
encoding in any meaningful capacity, so I'm dropping it entirely.
2018-10-17 12:50:24 +02:00
Nikita Popov 56665a1b17 Fixed bug #77025
Implements 8bit conversions equivalently to iso-8859-1 conversions.
This seems quite dubious to me, but seems to match the previous
behavior.

It might make more sense to map the characters into a private area
instead, so that the 8bit encoding is treated as binary data with
no case conversions (including no case conversions in the ascii
range).
2018-10-17 12:38:31 +02:00
Nikita Popov 2cc6462edc Add vtbls for EUC-TW encoding 2018-10-17 12:10:16 +02:00
Christoph M. Becker 181fc483ed Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Add support for getting SKIP_TAGSTART and SKIP_WHITE options
2018-10-16 18:50:58 +02:00
Peter Kokot 6b8605d31f Fix failing Zend/tests due to newlines 2018-10-15 05:04:29 +02:00
Peter Kokot b746e69887 Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:32:30 +02:00
Peter Kokot 3599a2d82b Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Sync leading and final newlines in *.phpt sections
  Sync leading and final newlines in *.phpt sections
2018-10-15 04:31:53 +02:00
Peter Kokot 782352c54a Trim trailing whitespace in *.phpt 2018-10-14 19:45:12 +02:00
Peter Kokot 604d4bdae5 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Trim trailing whitespace in *.phpt
  Trim trailing whitespace in *.phpt
2018-10-14 19:44:33 +02:00
Peter Kokot cad70d9db6 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix failing ext/session/tests due to final newlines
2018-10-14 13:41:21 +02:00
Peter Kokot 1c850bfcca Sync leading and final newlines in source code files
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-14 12:55:24 +02:00
Peter Kokot a6d3e56a1e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Sync leading and final newlines in source code files
  Sync leading and final newlines in source code files
2018-10-14 12:54:39 +02:00
Frank Denis c4ea98455d Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  ext/sodium: sodium_pad(): do not copy any bytes if the string is empty
  ext/sodium: Fix sodium_pad() with blocksize >= 256
  ext/sodium: Use a correct max output size for base64 decoding
  ext/sodium: Avoid shifts wider than 32 bits on size_t values
2018-10-14 11:01:53 +02:00
Peter Kokot 1670c4679d Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix failing tests/lang due to whitespace
2018-10-13 15:23:48 +02:00
Peter Kokot 3764bd7997 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix failing ext/zlib/tests due to whitespace
2018-10-13 15:16:15 +02:00
Peter Kokot 3362620b5f Trim trailing whitespace in source code files 2018-10-13 14:16:33 +02:00
Peter Kokot edefd16fbc Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Trim trailing whitespace in source code files
  Trim trailing whitespace in source code files
2018-10-13 14:15:15 +02:00
Peter Kokot 85290bbfcc Convert CRLF line endings to LF
This patch simplifies line endings tracked in the Git repository and
syncs them to all include the LF style instead of the CRLF files.

Newline characters:
- LF (\n) (*nix and Mac)
- CRLF (\r\n) (Windows)
- CR (\r) (old Mac, obsolete)

To see which line endings are in the index and in the working copy the
following command can be used:
`git ls-files --eol`

Git additionally provides `.gitattributes` file to specify if some files
need to have specific line endings on all platforms (either CRLF or LF).

Changed files shouldn't cause issues on modern Windows platforms because
also Git can do output conversion is core.autocrlf=true is set on
Windows and use CRLF newlines in all files in the working tree.

Unless CRLF files are tracked specifically, Git by default tracks all
files in the index using LF newlines.
2018-10-13 11:23:20 +02:00
Peter Kokot d591c35779 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Convert CRLF line endings to LF
  Convert CRLF line endings to LF
2018-10-13 11:22:47 +02:00
Derick Rethans 9c608bd13f Upgrade timelib to 2018.01RC1, to fix bug #77007 2018-10-12 11:50:36 +01:00
Derick Rethans a31480c9ae Merge branch 'PHP-7.2' into PHP-7.3 2018-10-12 11:41:24 +01:00
Derick Rethans 454a86c2c5 Update news with further fixed bugs due to timelib upgrade 2018-10-11 17:00:42 +01:00
Nikita Popov 01948f20b8 Fixed bug #76991
Back up exceptions while the scan-ahead loop, to avoid an early
bail out.
2018-10-10 15:00:18 +02:00
Peter Kokot 1386b029f9 [ci skip] Update UPGRADING about Autoconf version 2018-10-09 21:16:17 +02:00
Peter Kokot 0b0d4b5f0d Bump minimum Autoconf requirement to 2.68
This patch syncs and bumps the minimum required version of Autoconf for
the `phpize.m4` script and the main `configure.ac` from previously mixed
2.64 and 2.59 to 2.68.

At the time of this writing Autoconf 2.63 is still the version on
Centos 6, however by the PHP 7.3 release current systems out there
should all have pretty much updated Autoconf versions to 2.64+ at
least. Centos 7 already has Autoconf 2.69, for example.

This provides more options to update and get current with the *nix
build system and also avoids broken builds in certain cases as pointed
out in the relevant discussion [1].

Additionally, phpize also already provides the `AX_CHECK_COMPILE_FLAG`
Autoconf Archive m4 file that has Autoconf 2.64 minimum requirement.

Autoconf 2.68 was released in 2010, 8 years ago, relative to this patch.

[1] https://github.com/php/php-src/pull/3562
2018-10-09 21:06:10 +02:00
Christoph M. Becker 54e152cb92 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #30875: xml_parse_into_struct() does not resolve entities
2018-10-09 16:08:55 +02:00
Christoph M. Becker efb9ccc91b [ci skip] Update NEWS 2018-10-09 13:30:59 +02:00
Derick Rethans 1eac7c1ea3 Fixed tests 2018-10-09 11:37:53 +01:00
Derick Rethans e47444d1e1 Added test case for bug #75577 2018-10-09 11:08:40 +01:00
Derick Rethans 09340ea9b9 Fixed bug #75577: DateTime::createFromFormat does not accept 'v' format specifier, by updating timelib to 2018.01alpha2 2018-10-09 11:08:40 +01:00
Christoph M. Becker 3d4167c3de [ci skip] Update NEWS wrt. php-7.3.0RC3 tagging 2018-10-09 11:58:48 +02:00
Pierrick Charron 44d2c8c6dd Merge branch 'PHP-7.2' into PHP-7.3 2018-10-09 01:26:55 -04:00
Pierrick Charron 64881a1e64 Add constants from curl 7.56 to 7.61 2018-10-08 10:19:35 -04:00
Nikita Popov d982bbe175 Fix ref ID handling when serializing $GLOBALS
This was already broken previously, but in PHP 7.3 stricter
validation during unserialization made this into an error.
2018-10-08 13:16:23 +02:00
Christoph M. Becker c5df679ca8 [ci skip] Note the required configure changes for bundled libzip 2018-10-08 12:48:20 +02:00
Christoph M. Becker 6178786233 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #76954: apache_response_headers removes last character from header name
2018-10-08 12:32:52 +02:00
Christoph M. Becker e68f60b087 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #75851: Year component overflow with date formats "c", "o", "r" and "y"
2018-10-08 11:52:37 +02:00
Pedro Magalhães 484b79e868 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Remove unstable dns tests
2018-10-06 15:58:51 +01:00
Pedro Magalhães ef36419af4 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #76888 - Remove unstable test
2018-10-06 15:46:11 +01:00
Michael Moravec 0a6ddc7722 Fix bug #76979: define() error message does not mention resources as valid values 2018-10-06 11:21:51 +02:00
Christoph M. Becker e345af1a2e Fix #76975: preg_match difference between 7.3 and < 7.3 - II
[ci skip]
2018-10-06 11:05:41 +02:00
Anatol Belski 476fdf543a [ci skip] Update NEWS 2018-10-05 23:01:03 +02:00
Anatol Belski d5b84feadc Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  Add test for bug #76942
2018-10-05 23:00:24 +02:00
Anatol Belski 55e0bc9532 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Add test for bug #76942
  Fixed Bug #76942 U_ARGUMENT_TYPE_MISMATCH
2018-10-05 22:53:11 +02:00
twosee 05a884f639 Optimize MySQL statement execute without parameters 2018-10-05 21:33:38 +02:00
Nikita Popov aa376cc1d5 Merge branch 'PHP-7.2' into PHP-7.3 2018-10-05 18:41:57 +02:00
Remi Collet bbfea4b470 Allow to disable pcre.jit when system library is used
as it is for now broken on some arch (s390x...)
2018-10-04 11:45:35 +02:00
Pierrick Charron 2e984dc726 Update NEWS [ci skip] 2018-10-03 21:18:47 -04:00
Pierrick Charron 02b2dbb724 Add constants from curl 7.50 to 7.55 2018-10-03 19:43:59 -04:00
Christoph M. Becker 6af14492a5 libzip has been unbundled in master only
Cf. <https://github.com/php/php-src/pull/3532>.
2018-10-04 00:30:10 +02:00
Anatol Belski 38c060852e Update NEWS [ci skip] 2018-10-03 18:54:08 +02:00
Anatol Belski 0c99755c3c Update NEWS [ci skip] 2018-10-03 18:51:48 +02:00
Anatol Belski 3424cc1e8e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update NEWS [ci skip]
  Update NEWS [ci skip]
2018-10-03 18:50:24 +02:00
Anatol Belski 8400f73f8d Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Avoid code duplication and don't miss env restore
2018-10-03 14:35:38 +02:00
Remi Collet 726a77cfdd Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  bump zip extension version
2018-10-03 12:59:31 +02:00
Anatol Belski 46bc0940e7 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #76948 Failed shutdown/reboot or end session in Windows
2018-10-03 12:15:15 +02:00
Nikita Popov 9f3ea20320 Merge branch 'PHP-7.2' into PHP-7.3 2018-10-03 10:50:27 +02:00
Anatol Belski 8209a8821c Fixed bug #76947 file_put_contents() blocks the directory of the file (__DIR__)
The condition was wrong. The target buffer size only matters, when some
output is going to be copied into it.
2018-10-03 00:15:43 +02:00
Nikita Popov a42801abe3 Merge branch 'PHP-7.2' into PHP-7.3 2018-10-02 18:20:25 +02:00
Nikita Popov b8392803f9 Merge branch 'PHP-7.2' into PHP-7.3 2018-10-02 17:48:56 +02:00
Nikita Popov 26f82a7706 Fixed bug #76958 2018-10-02 16:13:51 +02:00
Nikita Popov 9cfd8f43c2 Don't fall back to vtbl_pass if no matching vtbl found
If we don't know how to convert between two encodings, make sure
we error instead of ignoring the issue.

Explicitly use vtbl_pass if we are round-tripping wchar->wchar or
8bit->8bit. Fingers crossed that nothing else relies on the
vtbl_pass fallback...
2018-10-02 16:07:22 +02:00
Nikita Popov d7e96c1b95 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-30 20:07:58 +02:00
Nikita Popov b617a5b2ea Merge branch 'PHP-7.2' into PHP-7.3 2018-09-29 21:20:01 +02:00
Nikita Popov 8b8b625d08 Fixed bug #72635
This seems to be a simple oversight, where we did not enable
exceptions. Other constexpr conditions already throw, so there is
no particular reason to stick to a fatal error here.
2018-09-29 14:21:08 +02:00
Nikita Popov 7189e0b70f Merge branch 'PHP-7.2' into PHP-7.3 2018-09-28 19:17:53 +02:00
Sara Golemon 0470d21ef3 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Bump versions for 7.1.24-dev
2018-09-28 11:32:56 -04:00
Nikita Popov 8ebe1b8de1 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-28 13:41:29 +02:00
Nikita Popov 25522baec4 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-28 12:58:59 +02:00
Sara Golemon c431b45fe4 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Bump version
2018-09-25 16:43:40 -04:00
Sara Golemon 913c20e61f Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #76918 Repeated parameter name in arg info
2018-09-25 12:10:21 -04:00
Christoph M. Becker 36092b2354 Update NEWS wrt. php-7.3.0RC2 tagging 2018-09-25 11:29:01 +02:00
Christopher Jones 1d67577f4d Merge branch 'PHP-7.2' into PHP-7.3 2018-09-24 20:53:31 +10:00
Christopher Jones e6fae9e6f9 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-24 20:14:05 +10:00
Christopher Jones 3413e7d1d8 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-24 17:07:06 +10:00
Christopher Jones 28ecd4e1c7 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-24 17:02:36 +10:00
Christopher Jones f291a36659 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-24 16:52:33 +10:00
Christopher Jones d7b87cd995 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-24 16:41:35 +10:00
Christopher Jones aae4ccb030 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-24 16:02:19 +10:00
Christopher Jones 45ab3d3ad3 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-24 13:33:54 +10:00
Christopher Jones 826702417d Merge branch 'PHP-7.2' into PHP-7.3 2018-09-24 09:57:20 +10:00
Anatol Belski da17686d60 [ci skip] Update NEWS 2018-09-23 11:42:07 +02:00
Christoph M. Becker 150e2b8c8c Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #66828: iconv_mime_encode Q-encoding longer than it should be
2018-09-22 15:56:49 +02:00
Anatol Belski 9f3aac9e39 Fix test and add skip section 2018-09-22 02:10:43 +02:00
Anatol Belski 9c58ab37c7 Add test for bug #76909 2018-09-21 15:57:00 +02:00
Anatol Belski 7a02ecb7fe Fixed bug #76909 preg_match difference between 7.3 and < 7.3
Applied upstream patch, see https://bugs.exim.org/show_bug.cgi?id=2321
2018-09-21 15:55:03 +02:00
Anatol Belski 91b2b6c65d Upgrade PCRE2 to 10.32
(cherry picked from commit d918e0776b)
2018-09-21 15:54:14 +02:00
Sebastian Bergmann 72231ed747 Fix 2018-09-20 12:01:34 -04:00
Sebastian Bergmann a311799864 Fix 2018-09-20 11:53:27 -04:00
Dmitry Stogov b8ffa3707c Fixed bug #76711 (OPcache enabled triggers false-positive "Illegal string offset") 2018-09-20 12:33:46 +03:00
Nikita Popov f5729ec532 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-19 12:31:55 +02:00
Nikita Popov 040ca85eac Merge branch 'PHP-7.2' into PHP-7.3 2018-09-19 09:39:31 +02:00
Nikita Popov c2da50bc41 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-18 20:51:28 +02:00
Nikita Popov 9f4ec45aa6 Remove invalid free
The initialization of buffer has been moved further down in 7.3,
so this free is no longer legal.
2018-09-18 12:38:46 +02:00
Anatol Belski f608a60456 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Add spectre switch for suitable vc14 versions
2018-09-18 10:46:44 +02:00
Pierrick Charron aec2d63124 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-17 20:31:07 -04:00
Dmitry Stogov b25bc917ec Allow switching back to Zend MM heap. 2018-09-17 20:20:13 +03:00
Christoph M. Becker ae46e20879 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #76886: Can't build xmlrpc with expat
2018-09-15 13:24:48 +02:00
Dmitry Stogov 17c7b71057 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #76800 (foreach inconsistent if array modified during loop)
2018-09-14 10:32:31 +03:00
Anatol Belski 6bd6265845 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Sync version for vc++ 15.9
2018-09-13 19:27:29 +02:00
Anatol Belski b9bcca0080 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Backport changes for OpenSSL 1.1.1 CI integration
2018-09-13 11:06:47 +02:00
Anatol Belski ed5262b589 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Improve error code matching
2018-09-12 16:25:39 +02:00
Anatol Belski a14b69e114 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update binary SDK version for AppVeyor
2018-09-12 12:11:47 +02:00
Dmitry Stogov 655a99d131 Fixed bug #76869 (Incorrect bypassing protected method accessibilty check). 2018-09-12 12:16:50 +03:00
Ferenc Kovacs 58735c59b1 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-12 00:06:33 +02:00
Christoph M. Becker e6585a472e [ci skip] Update NEWS wrt. php-7.3.RC1 tagging 2018-09-11 16:28:36 +02:00
Christoph M. Becker b117feeb2b Fix #76510: file_exists() stopped working for phar://
We work around a strlen() optimization bug in GCC 8[1] by checking
whether the used GCC exhibits the broken behavior, and if so by
disabling `optimize-strlen`.

[1] <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86914>
2018-09-11 12:23:20 +02:00
Anatol Belski 1bb29a4af2 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  7.0.33 next
2018-09-11 07:01:44 +02:00
Anatol Belski 6f8c27f499 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Sync NEWS [ci skip]
2018-09-10 16:58:33 +02:00
Remi Collet acada183f5 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  add NEWS for 76582
2018-09-10 15:31:08 +02:00
Sara Golemon a26a107aae Enforce ordering of property compare in object comparisons 2018-09-10 08:47:50 -04:00
Dmitry Stogov 64dad57d19 Fixed wrong assertion 2018-09-10 15:26:38 +03:00
Anatol Belski 27b270de89 Skip test on unsuitable env 2018-09-10 09:51:36 +02:00
Stanislav Malyshev af38a991ff Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update NEWS
  Fix for bug #76582
2018-09-09 12:29:34 -07:00
Jakub Zelenka 9eec7d06f6 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-09 18:59:47 +01:00
Anatol Belski 68c34ce0dc Make a copy unconditionally 2018-09-09 10:42:53 +02:00
Anatol Belski 9278be148e Fix memory leak in pcre cache 2018-09-09 10:38:36 +02:00
Anatol Belski 4905d5e0df Add test for bug #76850 2018-09-08 21:39:54 +02:00
Anatol Belski c6ddd45650 Fixed bug #76850 Exit code mangled by set locale/preg_match 2018-09-08 21:35:23 +02:00
Christoph M. Becker 58e2f5ead1 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #75273: php_zlib_inflate_filter() may not update bytes_consumed
2018-09-08 19:13:26 +02:00
Nikita Popov a32c563e50 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-07 14:02:51 +02:00
David Carlier f7b573b4e9 Support fixed address mmap without replacement
Reapply changes for Zend fixed mapping but only for FreeBSD.
Other BSD might expose some day a similar flag (private
for OpenBSD for the moment for example).
The Linux's part could be brought back but not before 7.4,
at this time, distributions with kernel > 4.17 will be
more widely available.
2018-09-07 12:10:05 +02:00
Anatol Belski 6c376996cf Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Sync with recent changes to default libcurl build
2018-09-05 21:30:25 +02:00
Dmitry Stogov 1d36c3361f Fixed support for commutative "user opcodes" 2018-09-05 22:11:10 +03:00
Christoph M. Becker 21cd552e1e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #74454: Wrong exception being thrown when using ReflectionMethod
2018-09-05 15:10:27 +02:00
Tyson Andre 86c930e268 Fix typos in UPGRADING.INTERNALS 2018-09-05 11:50:23 +02:00
Anatol Belski d903fc0861 Restore NEWS entry [skip ci] 2018-09-04 13:03:17 +02:00
Xinchen Hui 48fd1d2ea1 Merge branch 'PHP-7.3' of git.php.net:/php-src into PHP-7.3
* 'PHP-7.3' of git.php.net:/php-src:
  Fix bug #74764 and add a test case
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-09-04 17:27:41 +08:00
Xinchen Hui 3497b75b73 Fixed bug #76825 (Undefined symbols ___cpuid_count) 2018-09-04 17:26:46 +08:00
Joe Watkins 6b5e7e6b42 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug #74764 and add a test case
2018-09-04 11:13:14 +02:00
Anatol Belski 7585a20d44 [ci skip] Update NEWS 2018-09-04 11:03:33 +02:00
Anatol Belski b6e7aab5f2 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-09-04 11:03:01 +02:00
Anatol Belski 7d8e6e6394 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #76833, backport change to stream_socket_enable_crypto-win32.phpt from 7.3
2018-09-04 10:57:25 +02:00
Nikita Popov d36230fcab Fix incorrect literal freeing if pass_two generates fatal error 2018-09-04 08:08:39 +02:00
Nikita Popov 63072e9c0e Merge branch 'PHP-7.2' into PHP-7.3 2018-09-04 05:57:07 +02:00
Nikita Popov 4cbabb6852 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-04 05:32:52 +02:00
Nikita Popov 153e292e10 Escape trigraph sequence
??= is a trigraph for #, so it needs to be escaped. To stay
consistent I'm escaping all question marks in this literal, even
though one of the latter two would suffice.
2018-09-04 05:07:43 +02:00
Nikita Popov 6122f67492 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-04 04:57:13 +02:00
Anatol Belski 1640d9182a Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #76832 ZendOPcache.MemoryBase periodically deleted by the OS
2018-09-03 15:11:10 +02:00
Christoph M. Becker 3e863ff29e Update to Oniguruma 6.9.0 2018-09-03 12:26:03 +02:00
Dmitry Stogov bc731f8e7a Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed reference-countingin ZTS build.
2018-09-03 10:21:42 +03:00
Jakub Zelenka 217888ed26 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-02 20:02:09 +01:00
Christoph M. Becker 0a51e75e28 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #75696: posix_getgrnam fails to print details of group
2018-09-01 14:30:08 +02:00
Anatol Belski bcfe5f5845 [ci skip] Update NEWS 2018-09-01 11:33:39 +02:00
Anatol Belski 4a43e5fb4f Improve fix for bug #76829 2018-09-01 01:12:06 +02:00
Anatol Belski b9ca573a1b Fixed bug #76829 Incorrect validation of domain on idn_to_utf8() function
As stated by RFC 5890, U-Labels might be up to 252 Unicode code points
long. This can be fixed in 7.1+ as well, but there might potentially be
issues in some existing apps expecting the output to be max 255 octets
long. Thus it seems to be safer to not to touch stable branches.
2018-09-01 00:14:23 +02:00
Anatol Belski 3f2a3c5aec Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix stack underflow in phar
2018-08-30 19:34:23 +02:00
Christoph M. Becker c5231ad394 Fix #76820: Z_COPYABLE invalid definition
We remove the extraneous parenthesis.
2018-08-30 18:00:51 +02:00
Anatol Belski 09ea23f7d6 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Switch to staging series on AppVeyor
2018-08-30 17:39:39 +02:00
Remi Collet cc63568400 NEWS for #76818 2018-08-30 14:50:26 +02:00
Remi Collet cf6c32545e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  fix double cast to int on 32-bit
2018-08-30 09:04:43 +02:00
Dmitry Stogov 566a75e97c Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed incorrect ZEND_ACC_ARENA_ALLOCATED usage (it must be used only for internal functions).
2018-08-29 23:41:22 +03:00
Sara Golemon ba39ee99ca Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Prep for 7.1.23
2018-08-29 12:42:11 -04:00
Anatol Belski d21220d7f0 Update NEWS 2018-08-29 16:12:18 +02:00
Remi Collet a55bcaa14d Revert "Support fixed address mmap without replacement"
This reverts commit 0f68ff5c92.
2018-08-29 14:41:04 +02:00
Remi Collet 8cc7e2a2df Revert "Don't report mmap failure if it is expected"
This reverts commit 446b5b15d3.
2018-08-29 14:40:59 +02:00
Anatol Belski 7728160784 Fixed bug #76803 ftruncate changes file pointer 2018-08-28 15:42:39 +02:00
Christoph M. Becker 441b6a6f5e Fix SKIPIF conditions
The test calls `mb_convert_encoding()` and as such requires the
mbstring extension.
2018-08-28 14:02:11 +02:00
Christoph M. Becker ce201df40f [ci skip] Update NEWS wrt. php-7.3.0beta3 tagging 2018-08-28 12:22:57 +02:00
Remi Collet 584ffa5f6e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  bump to 7.2.11-dev
2018-08-28 10:19:08 +02:00
Jakub Zelenka 014b1b3aad Store zlog stream in each child so it can be reused
This change results in using the same buffer for multiple
stdio events which should fix inconsistencies of handling
messages that are not ended with a new line and possibly
very long messages that are split to multiple events.
2018-08-27 14:58:39 +01:00
Christoph M. Becker 4d6b0b5031 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #68180: iconv_mime_decode can return extra characters in a header
2018-08-26 13:23:51 +02:00
Christoph M. Becker b5afc99afb Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #60494: iconv_mime_decode does ignore special characters
2018-08-25 17:52:16 +02:00
Christoph M. Becker 065eee16b5 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #63839: iconv_mime_decode_headers function is skipping headers
2018-08-25 14:54:32 +02:00
Christoph M. Becker 50fec3be0e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #55146: iconv_mime_decode_headers() skips some headers
2018-08-25 14:43:13 +02:00
Christoph M. Becker eb03290754 Fix #53891: iconv_mime_encode() fails to Q-encode UTF-8 string
The minimum length of an encoded-word is actually the pure encoding
overhead plus the length of the `output-charset` plus the minimum unit
of encoded text, which is 4 for B-encoding and (for simplicity) 3 for
Q-encoding.  We also cater to the possibility that we need further
encoded words, which would be split by the `line-break-chars` followed
by a space character.  Obviously, the former `out_charset_len + 12` is
too simplistic and wrong in the given case (where the magic number
would be 13).

These simplifications are somewhat wasteful, but iconv_mime_encode()
with Q-encoding is wasteful anyway (see bug 66828[1]), and the proper
solution to convert the whole input to the desired output charset
upfront, and applying the encoding afterwards appears too much a change
for the stable releases.

[1] <https://bugs.php.net/66828>
2018-08-25 14:30:07 +02:00
Christoph M. Becker 692e5d5c88 Fix #76712: Assignment of empty string creates extraneous text node
We work around this peculiarity of libxml by using xmlNodeSetContent(),
which does not exhibit this behavior.  This also saves us from manually
calculating the string length.
2018-08-25 14:24:09 +02:00
Peter Kokot fcf4088d3f Remove some old parts of the php
Since ba138a3746 the generate-phpt library
has been unbundled from the php-src. This patch cleans two remaining
parts.
2018-08-25 11:58:17 +02:00
Anatol Belski f15fc8ea1e Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  mkdist.php: recursively check dll dependencies
2018-08-23 21:27:43 +02:00
Christoph M. Becker 5fe8e49baa Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Simplify regression test
2018-08-23 12:51:11 +02:00
Christoph M. Becker 3278b3347c Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #68825: Exception in DirectoryIterator::getLinkTarget()
2018-08-22 15:40:03 +02:00
Christoph M. Becker 6cf382b667 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Increase memory_limit to prevent test failures
2018-08-22 14:31:36 +02:00
Chris Wright 9ace33b9c5 Fix #76773 - Methods with a concrete scope need to be added again 2018-08-22 14:08:15 +02:00
Ondřej Surý 02b0bc8bb1 Fix #76767: ‘asm’ operand has impossible constraints in zend_operators.h
We disable assembly code with gcc 4.8 on i386.
2018-08-22 13:57:21 +02:00
Christoph M. Becker 1de17428f6 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #76778: array_reduce leaks memory if callback throws exception
2018-08-22 13:51:16 +02:00
Nikita Popov dd07f17f97 Merge branch 'PHP-7.2' into PHP-7.3 2018-08-22 13:43:23 +02:00
Christoph M. Becker 138671f2f4 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #76777 and added test
2018-08-22 12:54:39 +02:00
David Carlier 446b5b15d3 Don't report mmap failure if it is expected
When using mmap with MAP_FIXED_NOREPLACE or MAP_FIXED|MAP_EXCL
an mmap failure is not an error condition, so do not print an
error message in this case.
2018-08-22 11:19:52 +02:00
Dmitry Stogov 8d95f561e4 Stop using zend_function->reserved[] space. 2018-08-22 10:43:51 +03:00
David Carlier 0f68ff5c92 Support fixed address mmap without replacement
We did not use MAP_FIXED here, because it may replace an existing
mapping. This commit adds support for MAP_FIXED_NOREPLACE (available
on newer Linux kernels) and MAP_FIXED|MAP_EXCL (available on FreeBSD),
which avoid this issue.
2018-08-21 08:31:31 +02:00
Dmitry Stogov 5e5311e0ba Removed dead code 2018-08-21 09:01:54 +03:00
David Carlier 16a9dd74f4 Avoid directly adding to string literal
This fixes a Clang warning.
2018-08-21 06:25:41 +02:00
Dmitry Stogov b8828926f2 Avoid hash lookups in BIND_STATIC and BIND_LEXICAL opcode handlers.
Encode static variable offset into opline->extended_value.
2018-08-20 16:10:09 +03:00
Aaron Stone 1621f1739d [ci skip] Correct minor typo (GC_GLAGS to GC_FLAGS) 2018-08-20 12:56:34 +02:00
Gabriel Caruso efbf846fd2 Make array parsing parameters error messages consistency with ZPP failure 2018-08-19 21:27:57 -03:00
Jakub Zelenka 52ea129efb Merge branch 'PHP-7.2' into PHP-7.3 2018-08-19 20:19:48 +01:00
Anatol Belski 9708083779 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Use stable deps on AppVeyor for now
2018-08-18 20:05:51 +02:00
Christoph M. Becker be2447fb7c Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Add regression test for bug #68175
  Fix #68175: RegexIterator pregFlags are NULL instead of 0
2018-08-18 14:39:15 +02:00
Anatol Belski 990a404c2d Add test for bug #76738
Original repro. It's unwieldy, but it's otherwise hard to trigger
the wrong buffer handling behavior.
2018-08-17 18:31:58 +02:00
Anatol Belski 0414fff205 Fix memory leak 2018-08-17 16:22:35 +02:00
Anatol Belski aa7777d36c Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update binary SDK version for AppVeyor
2018-08-17 15:46:28 +02:00
Christoph M. Becker a097f926c8 [ci skip] Update NEWS
Bug #76285 was supposed to have been fixed for 7.3.0alpha3, but that
has been reverted for 7.3.0beta2 due to bug #76738.  Now that we have a
working fix in master, we backport the respective commits.
2018-08-17 13:06:27 +02:00
Anatol Belski 0c2327b472 Cleanup
(cherry picked from commit 8b3174f256)
2018-08-17 13:01:57 +02:00
Anatol Belski ddd73d4fa8 Followup fix for ef9ed19e, see also bug #76738
(cherry picked from commit 083285f22a)
2018-08-17 13:01:56 +02:00
Xinchen Hui 10d724d82d Fixed build
(cherry picked from commit 36f05a80d7)
2018-08-17 13:01:55 +02:00
Andrew Nester 2072d377d3 DOMDocument::formatOutput attribute sometimes ignored
(cherry picked from commit ef9ed19ec7)
2018-08-17 13:01:55 +02:00
Xinchen Hui 5c1a2d8375 Fixed same bug #76755 in setrawcookie 2018-08-17 16:19:26 +08:00
Xinchen Hui 0a16af043e Cheaper checking 2018-08-17 15:21:48 +08:00
Xinchen Hui 751bbaa41f Micro optimization & fixed invalid key handling 2018-08-17 14:56:24 +08:00
Xinchen Hui d61ff37f45 Fixed bug #76755 (setcookie does not accept "double" type for expire time) 2018-08-17 13:45:43 +08:00
Xinchen Hui 2aa3733daa Update NEWS 2018-08-17 13:36:12 +08:00
Xinchen Hui 3131ebcea8 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update NEWS
  Fixed bug #76754 (parent private constant in extends class memory leak)
2018-08-17 13:36:03 +08:00
Xinchen Hui fd463a9a60 Fixed bug #76752 (Crash in ZEND_COALESCE_SPEC_TMP_HANDLER - assertion in _get_zval_ptr_tmp failed). 2018-08-17 12:19:31 +08:00
Xinchen Hui ae926d8961 Merge branch 'PHP-7.3' of git.php.net:/php-src into PHP-7.3
* 'PHP-7.3' of git.php.net:/php-src:
  fix man page installation
2018-08-16 14:02:03 +08:00
Xinchen Hui 6e7b381270 Update NEWS 2018-08-16 13:57:40 +08:00
Xinchen Hui 1ea2395712 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update NEWS
  Fixed bug #76747 (Opcache treats path containing "test.pharma.tld" as a phar file)
2018-08-16 13:57:05 +08:00
Remi Collet 32477dea70 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  fix man page installation
2018-08-16 06:55:14 +02:00
Xinchen Hui e4276aeb98 Added NEWs 2018-08-15 11:02:59 +08:00
Christoph M. Becker 66a4362914 [ci skip] Update NEWS wrt. php-7.3.0beta2 tagging 2018-08-14 13:36:15 +02:00
Christoph M. Becker 819cf5283b Revert "DOMDocument::formatOutput attribute sometimes ignored"
This reverts commit ef9ed19ec7 and its
follow-up 36f05a80d7, since these caused
a serious regression (see bug #76738).
2018-08-14 12:14:33 +02:00
Xinchen Hui 78d823d9c3 Fixed zend_read_static_property 2018-08-14 13:01:50 +08:00
Tyson Andre dcd4b32185 Fix arginfo for tidy::__construct()
This was split out of PR #3439

Previously, the arginfo was wrong for these methods.
getNumberOfRequiredParameters() was 4 for that method.
Compare with http://php.net/manual/en/tidy.construct.php)

This fixes the arginfo added to PHP 7.3 in 97353cda99
2018-08-13 16:09:32 +02:00
Christoph M. Becker 8270c7d947 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix arginfo for bzcompress
2018-08-13 16:02:13 +02:00
Anatol Belski fdaa540fd8 Sync with e0fe6674 2018-08-13 09:18:38 +02:00
Anatol Belski 9eb51ce364 Update NEWS [ci skip] 2018-08-13 09:14:26 +02:00
Anatol Belski 4a3fccb0f5 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Update NEWS [ci skip]
  Update NEWS [ci skip]
2018-08-13 09:13:51 +02:00
Pedro Magalhães a16aee6cee Fix #76688: Disallow excessive parameters after options array 2018-08-12 15:49:13 +02:00
Peter Kokot 326d3d480c [ci skip] Update NEWS 2018-08-12 11:29:02 +02:00
Cristian Rodríguez e0fe667421 Fix bug #76030 RE2C_FLAGS rarely honoured
Since PHP 5.3 the default lexer generator is RE2C. On Unix-alike build
systems there is also optional configure option --enable-re2c-cgoto
which enables optimized conditional jumps using non-standard computed
goto extension. It is available since RE2C 0.10.3 so it's well covered
by RE2C versions PHP uses. This patch syncs usage of -g option accross
the PHP Unix-alike build system.
2018-08-12 11:15:18 +02:00
Anatol Belski 3cef5a2476 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed bug #74484 MessageFormatter::formatMessage memory corruption
2018-08-09 22:09:21 +02:00
Christoph M. Becker d22ddd8cf1 [ci skip] Update NEWS regarding SameSite cookie support 2018-08-09 00:53:42 +02:00
Pedro Magalhães 887235773d Fix #76700 - Methods with altered visibility need to be added again 2018-08-07 14:22:37 +08:00
Xinchen Hui 2b1d79ce66 Fixed bug #76713 (Segmentation fault caused by property corruption) 2018-08-07 12:36:36 +08:00
Anatol Belski b053beee7e Fix stack underflow in phar
The checks can issue reads below and above the temporary buffer. A read
itself doesn't seem dangerous, but the condition result can be
arbitrary. Such reads have to be avoided. Likely this patch should be
backported.
2018-08-06 22:43:45 +02:00
Anatol Belski 3082600326 Update libmagic.patch [ci skip] 2018-08-06 14:28:32 +02:00
Richard Fussenegger 35cb353dd5 [ci skip] Extended class naming rule 2018-08-06 13:31:02 +02:00
Peter Kokot 1c1567c9bc [ci skip] Update NEWS 2018-08-06 09:43:03 +02:00
Peter Kokot a6ab19375a Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-08-06 09:42:42 +02:00
Peter Kokot fefaeae49c Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug #76709: Minimal required zlib library is 1.2.0.4
2018-08-06 09:39:52 +02:00
Peter Kokot 2c72673986 [ci skip] Update NEWS 2018-08-06 06:20:08 +02:00
Peter Kokot 51d3896fd7 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-08-06 06:19:45 +02:00
Peter Kokot 523cf6e2e7 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug #65988: Zlib version check fails
2018-08-06 06:16:07 +02:00
Peter Kokot ee2d2f78c4 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-08-06 01:44:49 +02:00
Peter Kokot c9ff518665 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug #72443: Generate enabled extension
2018-08-06 01:34:31 +02:00
Christoph M. Becker d4053cee6b [ci skip] Fix UPGRADING
The “Allow a trailing comma in function calls” RFC has not been
mentioned there, yet.
2018-08-05 23:12:29 +02:00
David Carlier 9b462f332e fpm process name, FreeBSD 12.x using new setproctitle_fast 2018-08-05 20:36:41 +01:00
Jakub Zelenka 86d472e249 Use php_openlog instead of openlog in FPM
Fix incorrect port in the previous commit
2018-08-05 20:35:58 +01:00
Jakub Zelenka f9d9c5ebd9 Fix FPM logging when log pipe is closed 2018-08-05 20:35:40 +01:00
Peter Kokot 1012416a1c [ci skip] Update NEWS 2018-08-05 20:37:51 +02:00
Peter Kokot f9c8a003dc Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-08-05 20:37:21 +02:00
Peter Kokot 024232e94d Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fixed incorrect restoring of LDFLAGS
2018-08-05 20:32:05 +02:00
Christoph M. Becker a003af5b62 Add missing skip conditions
mbstring can be built without mbregex support, in which case these
tests would fail.  Thus we add respective skip conditions.
2018-08-05 00:01:35 +02:00
Christoph M. Becker 70ecb6e50b Fix #76706: mbstring.http_output_conv_mimetypes is ignored
_php_mb_match_regex() is supposed to return != 0 on success, and 0 on
failure.  pcre2_match() returns >= 0 on success, and < 0 on failure.
We map the result accordingly.

Since this patch fixes four failing tests, there is no need to add
another.
2018-08-04 23:24:04 +02:00
Peter Kokot 99020cc085 Remove outdated comment with PEAR xmlrpc dependency
The xmlrpc extension is not required to install PEAR anymore.
2018-08-04 18:22:08 +02:00
Anatol Belski e1af7a794a Fix possible stack buffer overflow 2018-08-04 16:56:08 +02:00
Peter Kokot 655658bbfa Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
2018-08-04 16:20:52 +02:00
Peter Kokot 889df3087b Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
2018-08-04 16:18:10 +02:00
Christoph M. Becker 5dc74d9e70 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #76704: mb_detect_order return value varies based on argument type
2018-08-04 13:50:48 +02:00
Christoph M. Becker 81ebe930f3 [ci skip] Fix NEWS
beta1 has already been released, but does not contain the fix for bug
76595.
2018-08-04 13:46:32 +02:00
Peter Kokot bb92808794 [ci skip] Update NEWS 2018-08-04 06:41:34 +02:00
Peter Kokot ad0f73cbfd Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
2018-08-04 06:40:44 +02:00
Peter Kokot 7b2af47236 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  [ci skip] Update NEWS
2018-08-04 06:39:46 +02:00
Peter Kokot 0f57a7f259 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix bug 76595: Update phpdbg man page
2018-08-04 06:37:15 +02:00
Anatol Belski 2ea7222440 Remove asan incompatible options 2018-08-03 14:10:37 +02:00
Christoph M. Becker 4faf135d90 Update UPGRADING.INTERNALS wrt. Same Site Cookies 2018-08-03 10:52:31 +02:00
Anatol Belski 7aca2bdbb1 Update maintainer info [skip ci] 2018-08-03 07:49:29 +02:00
Anatol Belski 4bb44e0f44 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Improve cleanup
2018-08-03 07:11:23 +02:00
Anatol Belski cd07fa48ba Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix callbacks
  bump version
2018-08-02 21:40:50 +02:00
Anatol Belski 9d7c510893 Cleanup unused items 2018-08-02 18:28:56 +02:00
Sara Golemon ba1a90ea89 Merge branch 'PHP-7.2' into HEAD
* PHP-7.2:
  Roll NEWS for 7.2.10
2018-08-02 11:23:14 -04:00
Michael Moravec 196e5f0e06 [ci skip] Fix wrong dash character in UPGRADING 2018-08-02 14:13:09 +02:00
Anatol Belski d53978bd59 Suppress more irrelevant clang warnings 2018-08-01 18:18:37 +02:00
Xinchen Hui 642bb9f376 Unused var 2018-08-01 16:45:15 +02:00
Anatol Belski 36857ab52b Fix clang compilation
By usage of -fmodules, all the intrinsic items are loaded automatically.
The headers included come however from Visual Studio, thus bringing some
conflicting declarations. On the other hand, -fmodules is needed to
mitigate linking issues with clang in VS compatibility mode.
2018-08-01 16:19:54 +02:00
Anatol Belski b1d2a89ac1 Fix length to copy 2018-07-31 17:31:57 +02:00
Christoph M. Becker f6ee308143 Fix ZEND_EXTENSION_API_NO 2018-07-31 14:11:39 +02:00
Christoph M. Becker 144e8d1f83 Update API version numbers
These are supposed to be final now for PHP 7.3.
2018-07-31 13:33:48 +02:00
Christoph M. Becker bf5cf79456 Fix UPGRADING 2018-07-31 13:31:28 +02:00
Christoph M. Becker 974abd8b43 Update UPGRADING wrt. samesite cookie RFC
Cf. <https://wiki.php.net/rfc/same-site-cookie>.
2018-07-31 12:48:33 +02:00
Pedro Magalhães 2b58ab23c6 Support for samesite cookies with array syntax
Allows using an alternative array argument with
support for the samesite option on the following
functions:
setcookie
setrawcookie
session_set_cookie_params
2018-07-31 12:40:26 +02:00
Frederik Bosch 08b9310e6d implement same site cookie see https://bugs.php.net/bug.php?id=72230 see https://tools.ietf.org/html/draft-west-first-party-cookies-07 see https://scotthelme.co.uk/csrf-is-dead/ 2018-07-31 12:40:24 +02:00
Dmitry Stogov 3ccd985478 Improved method visibility checks 2018-07-31 13:05:57 +03:00
Dmitry Stogov 57527455eb Simplified property name to string conversion 2018-07-31 12:24:53 +03:00
Dmitry Stogov c42f0ba4f7 Removed useless IS_UNDEF checks 2018-07-31 12:23:46 +03:00
Peter Kokot 7c1e0930c4 Remove TSRM_CHECK_GCC_ARG and LIBZEND_CPLUSPLUS_CHECKS
This removes two old Autoconf macro definitions since they are not used
anymore.
2018-07-31 05:59:05 +02:00
Peter Kokot b719aa41f4 Fix minor Autoconf coding style
This fixes two minor Autoconf coding styles. Double quotes in arguments
don't need to be escaped. This removes warning given by autoreconf:
- warning: back quotes and double quotes must not be escaped in...
2018-07-31 03:09:44 +02:00
Anatol Belski 160353688b Update NEWS [ci skip] 2018-07-30 19:44:59 +02:00
Anatol Belski b49891aa90 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS [ci skip]
  Update NEWS [ci skip]
2018-07-30 19:44:01 +02:00
Anatol Belski 093cb1d7c6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75402 Possible Memory Leak using PDO::CURSOR_SCROLL option
2018-07-30 18:29:40 +02:00
Dmitry Stogov 5674cf888d Use better macros 2018-07-30 16:48:34 +03:00
Dmitry Stogov 909f943fe5 Loop optimization 2018-07-30 16:08:45 +03:00
Gabriel Caruso 9c8b3ae43f Make more tests run on 64bit plataforms 2018-07-30 09:43:09 -03:00
Gabriel Caruso 4a1336de7c Give a reason why the test was skipped 2018-07-30 09:03:21 -03:00
Gabriel Caruso 745f6627bd Remove superfluous SKIPIF sections of always available functions 2018-07-30 09:01:39 -03:00
Dmitry Stogov be805f146c Added missing define 2018-07-30 13:29:09 +03:00
Dmitry Stogov 3ced766da9 Removed duplicate code. zend_fetch_dimension_address_LIST_w() was a copy of zend_fetch_dimension_address_W(), ZEND_FETCH_LIST_W_SPEC_CV_... a copy of ZEND_FETCH_DIM_W_SPEC_CV_... 2018-07-30 10:53:39 +03:00
Peter Kokot f2e4de8b56 Fix AC_RUN_IFELSE calls when cross-compiling
AC_RUN_IFELSE program can't be run when cross-compiling. This fix removes
warnings given by autotools scripts.
2018-07-30 06:38:59 +02:00
Peter Kokot 6399fa1eea [ci skip] Fix typo 2018-07-30 06:28:40 +02:00
Gabriel Caruso d88bbcea82 Remove superfluous SKIPIF sections of always available constants 2018-07-30 00:53:28 -03:00
Peter Kokot 4371945b8b Replace obsolete AC_TRY_FOO with AC_FOO_IFELSE
Autoconf 2.50 released in 2001 made several macros obsolete including
the AC_TRY_RUN, AC_TRY_COMPILE and AC_TRY_LINK:
http://git.savannah.gnu.org/cgit/autoconf.git/tree/ChangeLog.2

These macros should be replaced with the current AC_FOO_IFELSE instead:
- AC_TRY_RUN with AC_RUN_IFELSE and AC_LANG_SOURCE
- AC_TRY_LINK with AC_LINK_IFELSE and AC_LANG_PROGRAM
- AC_TRY_COMPILE with AC_COMPILE_IFELSE and AC_LANG_PROGRAM

PHP 5.4 to 7.1 require Autoconf 2.59+ version, PHP 7.2 and above require
2.64+ version, and the PHP 7.2 phpize script requires 2.59+ version which
are all greater than above mentioned 2.50 version therefore systems
should be well supported by now.

This patch was created with the help of autoupdate script:
autoupdate <file>

Reference docs:
- https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html
- https://www.gnu.org/software/autoconf/manual/autoconf-2.59/autoconf.pdf
2018-07-30 02:36:38 +02:00
Gabriel Caruso aac5cdc7d7 Remove superfluous SKIPIF sections of always available interfaces 2018-07-29 18:03:34 -03:00
Peter Kokot 72551dd89e [ci skip] Document RETSIGTYPE 2018-07-29 21:32:35 +02:00
Gabriel Caruso 1461f8ef0d Remove superfluous SKIPIF sections of always available functions 2018-07-29 15:42:19 -03:00
Gabriel Caruso f2b5ac7963 [ci skip] Fix typo 2018-07-29 13:48:35 -03:00
Gabriel Caruso a61756252a Run tokenizer_data_gen.sh to reorganize tokens
This will help us in future PRs, reducing the numbers of changed lines
2018-07-29 13:21:33 -03:00
Peter Kokot 17de277a2f Remove obsolete AC_TYPE_SIGNAL
The AC_TYPE_SIGNAL macro defined the RETSIGTYPE based on the signal
type defined in the signal.h. On pre C89 sistems (K&R C) it could be
void or int. Since C89 it can be safely assumed that the signal and
therefore the RETSIGTYPE is always void, so the RETSIGTYPE can be
replaced with void in the code if it uses it. PHP doesn't use the
RETSIGTYPE in current code anyway.

Refs:
- https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html
2018-07-29 16:06:46 +02:00
Peter Kokot daaf706df0 Upgrade deprecated AC_OUTPUT macro calls
Autoconf 2.50 made several changes to macro calls. These include also
arguments passed to AC_OUTPUT macro. The upgrading chapter in Autoconf
documentation include an example of using AC_OUTPUT with
AC_CONFIG_FILES and AC_CONFIG_COMMANDS:
- https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html

PHP 5.4 to 7.1 require Autoconf 2.59+, PHP 7.2+ require Autoconf 2.64+,
and PHP 7.2 phpize script requires Autoconf 2.59+ which are all greater
than above mentioned 2.50 version. Systems out there should well support
this by now.

This patch was created with the help of autoupdate script:
autoupdate <file>

More info on where exactly this got deprecated:
- ftp://ftp.gnu.org/old-gnu/Manuals/autoconf-2.13/html_mono/autoconf.html
- ftp://ftp.auckland.ac.nz/pub/gnu/Manuals/autoconf-2.52/html_chapter/autoconf_15.html
- http://git.savannah.gnu.org/cgit/autoconf.git/tree/NEWS
2018-07-29 16:04:39 +02:00
Peter Kokot 7394879adf Upgrade AX_FUNC_WHICH_GETHOSTBYNAME_R to serial 8
The AX_FUNC_WHICH_GETHOSTBYNAME_R macro is from the Autoconf Archive.
Latest version of the file has few docs changes. File is also renamed
as is a pattern of other m4 Autoconf Archive files.

Refs:
- http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_func_which_gethostbyname_r.m4
2018-07-29 15:59:33 +02:00
Peter Kokot ab702e4fde Trim trailing whitespaces in build files
Some editors utilizing .editorconfig automatically trim whitespaces. For
convenience this patch removes whitespaces in certain build files in
Zend and TSRM folders.
2018-07-29 15:46:43 +02:00
Peter Kokot 209f05a878 [ci skip] Note HAVE_ST_BLKSIZE and HAVE_ST_RDEV 2018-07-29 14:44:56 +02:00
Peter Kokot d2184efb7b Replace obsolete AC_STRUCT_ST_BLKSIZE and AC_STRUCT_ST_RDEV
Autoconf 2.50 released in 2001 has made several macros obsolete. Instead
of the AC_STRUCT_ST_BLKSIZE and AC_STRUCT_ST_RDEV the new
AC_CHECK_MEMBERS should be used.

When checking for the presence of stat struct members st_blkzize and
st_rdev the new AC_CHECK_MEMBERS macro defines new constants
HAVE_STRUCT_STAT_ST_BLKSIZE and HAVE_STRUCT_STAT_ST_RDEV.

Old constants HAVE_ST_BLKSIZE and HAVE_ST_RDEV need to be replaced
respectively in PHP code (this patch) and in PHP extenstions if they use
them.

PHP 5.4 to 7.1 require Autoconf 2.59+ version, PHP 7.2 and above require
2.64+ version, and the PHP 7.2 phpize script requires 2.59+ version which
are all greater than above mentioned 2.50 version.
2018-07-29 13:59:40 +02:00
Peter Kokot d7ad4babe0 [ci skip] Note removal of PHP_PROG_LEX 2018-07-29 13:37:48 +02:00
Peter Kokot 03b717d4cc Remove unused PHP_PROG_LEX macro
Since PHP 5.3 flex lexer has been replaced with re2c. Commit
0f9e2b1753 made PHP_PROG_LEX macro still
available for BC.

In commit df6bd506d4 it was updated. Since
this macro is entirely not used in PHP source code anymore from PHP 5.3
and up, this patch removes it together with some old traces of warnings
suppression and comments.
2018-07-29 10:53:21 +02:00
Peter Kokot 255e29f3bc Remove unused libmbfl build system related files
PHP build system already builds necessary files also from libmbfl
directory using the mbstring config.m4 file.
2018-07-29 10:07:32 +02:00
Peter Kokot b12cece8d5 Replace obsolete AC_AIX with AC_USE_SYSTEM_EXTENSIONS
Since Autoconf 2.62 the AC_AIX macro has been made obsolete and should
be replaced with the AC_USE_SYSTEM_EXTENSIONS instead.

Both macro behaviors are the same since the old one is just a wrapper
around the new AC_USE_SYSTEM_EXTENSIONS:
http://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/specific.m4

PHP 7.2+ and the main configure.ac script require minimum Autoconf 2.64+.

Refs:
- http://git.savannah.gnu.org/cgit/autoconf.git/tree/NEWS
- https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html
2018-07-29 08:00:15 +02:00
Peter Kokot 0a01eae039 Fix typo in config.m4
The AC_CHECK_FUNCS has the following synopsis:
AC_CHECK_FUNCS(function..., [action-if-found], [action-if-not-found]).

Fourth argument doesn't exist.
2018-07-29 06:10:16 +02:00
Peter Kokot cf3b852109 Trim trailing whitespaces in build files
Some editors utilizing .editorconfig automatically trim whitespaces. For
convenience this patch removes whitespaces in certain build files:
- ext/*/config*.m4
- configure.ac
- acinclude.m4
2018-07-29 03:43:45 +02:00
Peter Kokot b60d8ab2e2 Upgrade AX_CHECK_COMPILE_FLAG macro to serial 6
The AX_CHECK_COMPILE_FLAG macro is from the Autoconf Archive. Latest
version of the file has a new All-permissive license for even more
convenience for usage.

Refs:
- http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_check_compile_flag.m4
- https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html
2018-07-28 01:40:02 +02:00
Peter Kokot cf8ef08e20 Fix typos in code 2018-07-27 16:27:41 +02:00
Peter Kokot 0eabd5231b Remove unused Git ident attributes from zip extension
$Id attributes were used with SVN. With Git most of the Git ident
attributes in source code files are not used anymore.
2018-07-27 15:49:34 +02:00
Gabriel Caruso 1359ff8052 Reverts some changes from 7ec64a83
Checking for the PHP_VERSION_ID here is actually part of the test
2018-07-27 08:01:43 -03:00
Dmitry Stogov a588b825d6 Improved assignment to "next" element of array ($a[] = ...) 2018-07-27 13:15:22 +03:00
Xinchen Hui a7746d10a5 Fixed bug #76667 (Segfault with divide-assign op and __get + __set) 2018-07-27 13:00:14 +08:00
Gabriel Caruso 7ec64a831d Remove superfluous check for PHP 7+ tests 2018-07-27 00:48:30 -03:00
Christoph M. Becker d035bc2bfe Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #76665: SQLite3Stmt::bindValue() with SQLITE3_FLOAT doesn't juggle
2018-07-26 14:23:40 +02:00
Kalle Sommer Nielsen ba8f0615e1 Fixed ZTS build 2018-07-26 14:01:49 +02:00
Anatol Belski 6059ecee3a Sync with ab8094c6 2018-07-26 13:58:08 +02:00
Dmitry Stogov f374e93762 Use better check 2018-07-26 14:13:33 +03:00
Gabriel Caruso 562150906a Remove extra semicolons 2018-07-26 12:38:22 +02:00
Dmitry Stogov ab8094c666 Pack zend_constant.flags and zend_constant.module_number into reserved space inside zend_constant.value. 2018-07-26 12:58:07 +03:00
Dmitry Stogov 7a41e4c0d0 Documented ZEND_ACC_* flags (values are kept unchanged, except for ZEND_ACC_IMMUTABLE, that was introduced in 7.3 anyway) 2018-07-26 10:42:57 +03:00
Gabriel Caruso fb966b9825 Remove unused variables 2018-07-25 22:05:41 -03:00
Gabriel Caruso 9e4d590b19 Remove extra semicolons 2018-07-25 21:47:04 -03:00
Peter Kokot 8d18d631b6 Replace obsolete AC_TRY_CPP with AC_PREPROC_IFELSE
The AC_TRY_CPP macro is obsolete since Autoconf 2.50 in 2001:
- http://git.savannah.gnu.org/cgit/autoconf.git/tree/NEWS
- https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html
2018-07-25 23:00:20 +02:00
Dmitry Stogov 57c4ae393c typo 2018-07-25 23:00:33 +03:00
Dmitry Stogov f950128cd6 Encode parent class name as IS_CONST operand in DECLARE_INHERITED_CLASS and DECLARE_ANON_INHERITED_CLASS opcodes (eliminate FETCH_CLAS
S opcode).
2018-07-25 13:40:47 +03:00
Peter Kokot a5e80b22e1 Fix typos in code comments 2018-07-25 11:57:11 +02:00
Dmitry Stogov a29a800cb0 Regenerate scanners using re2c version >= 1.0.0 (newer version, at least, produce less code) 2018-07-25 12:49:03 +03:00
Dmitry Stogov aed3de1bc5 Split add/sub_function(s) into fast and slow parts 2018-07-25 12:48:16 +03:00
Peter Kokot df6bd506d4 Remove obsolete macro AC_DECL_YYTEXT
The macro AC_DECL_YYTEXT has been obsolete since Autoconf 2.50 released
in 2001. Now it is included in the AC_PROG_LEX macro.

Autoconf news info about obsoletion:
- http://git.savannah.gnu.org/cgit/autoconf.git/tree/NEWS

Docs:
https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html

PHP 5.4 to 7.1 require Autoconf 2.59+ version, PHP 7.2 and above require
2.64+ version, and the PHP 7.2 phpize script requires 2.59+ version which
are all greater than above mentioned 2.50 version. Systems out there should
well support this by now.
2018-07-25 03:09:14 +02:00
Peter Kokot 8d3f8ca12a Remove unused Git attributes ident
The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
user who changed it.

In Git this functionality is different and can be done with Git attribute
ident. These need to be defined manually for each file in the
.gitattributes file and are afterwards replaced with 40-character
hexadecimal blob object name which is based only on the particular file
contents.

This patch simplifies handling of $Id$ keywords by removing them since
they are not used anymore.
2018-07-25 00:53:25 +02:00
Christoph M. Becker dcd6a6ff36 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #76643: Segmentation fault when using `output_add_rewrite_var`
2018-07-24 12:41:35 +02:00
Dmitry Stogov d775fe33d1 Better name: ZEND_PROPERTY_HAS => ZEND_PROPERTY_NOT_EMPTY 2018-07-24 09:31:57 +03:00
Xinchen Hui 1638a6e118 Give a meaningful name 2018-07-24 12:51:36 +08:00
Xinchen Hui 4aada3993c Micro-optmization 2018-07-24 12:16:35 +08:00
Xinchen Hui d31d4d1392 Update NEWs 2018-07-24 11:37:30 +08:00
Xinchen Hui 3ca9aaf24e Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWs
  Fixed bug #68553 (array_column: null values in $index_key become incrementing keys in result)

Conflicts:
	ext/standard/array.c
2018-07-24 11:37:09 +08:00
Xinchen Hui 4799cde613 Merge branch 'master' of https://github.com/oerdnj/php-src
* 'master' of https://github.com/oerdnj/php-src:
  Use __cpuid_count() from cpuid.h instead of custom assembly
2018-07-24 10:48:07 +08:00
Kalle Sommer Nielsen 0b7686584e Merge branch 'master' of git.php.net:/php-src 2018-07-23 17:38:52 +02:00
Kalle Sommer Nielsen ba138a3746 Removed the generated-tests library, this is a left Zöe's phpruntests repository it seems and never fully implemented. The only times this part of the code has been touched throughout the years has been minor PRs and entire php-src grep commits.
If anything this belongs to the phpruntests.git repository.
2018-07-23 17:38:26 +02:00
Dmitry Stogov 7ef8e3f87f Fixed tests 2018-07-23 17:00:33 +03:00
Dmitry Stogov d4e60a1ffd Avoid code duplication 2018-07-23 16:53:44 +03:00
Kalle Sommer Nielsen b1864b0178 Fix HKEY registry path (not that it should matter, dead code, Anatol?) 2018-07-23 15:37:02 +02:00
Kalle Sommer Nielsen 08f10ef47a Remove some dead code
sapi/*: Remove Windows code from FPM and LiteSpeed, as we don't support these SAPIs on Windows anyway
ext/com_dotnet: Remove non Windows code, as ext/com_dotnet is only supported on Windows
2018-07-23 15:26:39 +02:00
Dmitry Stogov b121405960 Use better destructor (key may be only IS_STRING or IS_LONG). 2018-07-23 15:57:06 +03:00
Dmitry Stogov ebd1f5af3e API cleanup.
Removed useless filename and lineno arguments, used in DEBUG build.
The patch doesn't break source compatibility of public API (only binary compatibility).
2018-07-23 15:24:07 +03:00
Dmitry Stogov afc82e243c Micro-optimization 2018-07-23 10:52:00 +03:00
Xinchen Hui 850c67e957 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed pefree_size (efree_size will be expaned to do {} while () form)
2018-07-23 15:49:04 +08:00
Gabriel Caruso c93aba042f Give a reason why the test was skipped
This will help us debug why a test was skipped in GCOV
(http://gcov.php.net/viewer.php?version=PHP_HEAD&func=skip), and maybe
put them to run again
2018-07-22 16:41:41 -03:00
Gabriel Caruso 8ca1f47a7a Use variables that already received ZEND_NUM_ARGS() 2018-07-22 15:54:00 -03:00
Jakub Zelenka 26cd84d19f Return bool from zlog_stream_set_msg_{prefix,suffix} 2018-07-22 17:40:38 +01:00
Christoph M. Becker 89e2202cb5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #52974: jewish.c: compile error under Windows with GBK charset
2018-07-22 18:18:19 +02:00
Jakub Zelenka e5a9956336 Update NEWS and UPGRADING with info about syslog.filter 2018-07-22 16:36:36 +01:00
Jakub Zelenka c85504386d Rename none syslog.filter to all and update ini description 2018-07-22 16:29:35 +01:00
Philip Prindeville 2010c02e5c Add syslog.filter INI for filtering syslog messages
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
2018-07-22 15:36:47 +01:00
Nikita Popov 4a528d46f5 Add UPGRADING notes for deprecations 2018-07-21 22:48:42 +02:00
Nikita Popov fb0e8c65b9 Deprecate pdo_odbc.db2_instance_name
Part of https://wiki.php.net/rfc/deprecations_php_7_3.
2018-07-21 22:38:39 +02:00
Nikita Popov 4a5b2101e5 Deprecate string.strip_tags filter
Part of https://wiki.php.net/rfc/deprecations_php_7_3.
2018-07-21 22:38:39 +02:00
Nikita Popov d9acfa45b8 Deprecate fgetss() and gzgetss()
SplFileObject::fgetss() will also generate a deprecation notice
through an internal call to fgetss().

Part of RFC https://wiki.php.net/rfc/deprecations_php_7_3.
2018-07-21 22:38:35 +02:00
Nikita Popov 5c4047b339 Deprecate defining a free-standing assert() function
Part of https://wiki.php.net/rfc/deprecations_php_7_3.
2018-07-21 22:34:09 +02:00
Nikita Popov f4a9da389b Deprecate non-string needles in string search functions
Part of https://wiki.php.net/rfc/deprecations_php_7_3.
2018-07-21 22:34:09 +02:00
Nikita Popov e6016ab20d Deprecate undocumented mbereg_* aliases
Part of https://wiki.php.net/rfc/deprecations_php_7_3.
2018-07-21 22:34:09 +02:00
Peter Kokot fef2029614 Move GMP bug 74670 test file to tests dir 2018-07-20 19:43:09 +02:00
Nikita Popov ee561ff2a2 Fix off-by-one allocation
The return value of this function is pretty meaningless, but
leaving it alone for now.
2018-07-20 17:52:56 +02:00
Nikita Popov 6e2c54d3e7 Fix incorrect length calculation
sizeof char pointer != sizeof string literal.
2018-07-20 17:47:53 +02:00
Trevor Rowbotham fb0faf0208 [ci skip] Add new global MBString constants to UPGRADING
The constants are mentioned further up in the New Features section,
but weren't explicitly listed under the New Global Constants section.
2018-07-20 13:17:48 +02:00
Gabriel Caruso 6ac48425a8 Removed and fixed unused variables 2018-07-19 22:51:37 -03:00
Anatol Belski 8d041e171b Merge branch 'PHP-7.2'
* PHP-7.2:
  Update binary SDK version for AppVeyor
2018-07-19 18:38:19 +02:00
Ferenc Kovacs 5345ddee99 Merge branch 'PHP-7.2' 2018-07-19 16:59:00 +02:00
Dmitry Stogov 5be44312f8 Removed redundand code 2018-07-19 15:47:15 +03:00
Dmitry Stogov 54ebebd686 Matching loops optimization 2018-07-19 15:28:31 +03:00
Dmitry Stogov b81d712961 Micro optimizations 2018-07-19 11:19:28 +03:00
Dmitry Stogov d77aa8fa6d Fixed typo 2018-07-19 09:41:15 +03:00
Hongbo a76661a4a2 fix ext_skel continue
"continue" inside switch is ambiguous, should be "continue 2".
2018-07-18 20:49:12 +02:00
Dmitry Stogov 1820f2f2f3 Reorder conditions 2018-07-18 17:46:48 +03:00
Dmitry Stogov 29f942b3d0 Move "/e" modifier check into regex compiler 2018-07-18 16:35:17 +03:00
Dmitry Stogov 5d60651165 Merge "no_utf_check" and "g_notempty" into single "options". 2018-07-18 16:10:41 +03:00
Dmitry Stogov e8a04b387e Allocate array of proper size 2018-07-18 14:49:52 +03:00
Dmitry Stogov 412dd75e05 Perform checks for propertis started with '\\0' only for dynamic properties 2018-07-18 14:49:00 +03:00
Christoph M. Becker 583616deb1 [ci skip] Fix typo in comment 2018-07-18 11:29:05 +02:00
Remi Collet 0c3561892b add info about zend_class_entry.iterator_funcs 2018-07-18 11:17:53 +02:00
Dmitry Stogov 3b6e1ee4ee Improved "Fast Shutdown". 2018-07-17 17:31:04 +03:00
Christoph M. Becker 7db988cc30 Update NEWS for 7.3.0beta1 2018-07-17 16:02:50 +02:00
Ondřej Surý 1a078117b5 Use __cpuid_count() from cpuid.h instead of custom assembly 2018-07-17 13:59:53 +00:00
Anatol Belski 53ef61bcae Merge branch 'PHP-7.2'
* PHP-7.2:
  7.0.32 next
2018-07-17 12:38:21 +02:00
Dmitry Stogov df60566671 Inline FETCH_CONST and DEFINED handlers into "hybrid" executor. 2018-07-17 13:30:55 +03:00
Anatol Belski ca50aa9ca8 Merge branch 'master' of git.php.net:php-src 2018-07-17 12:01:14 +02:00
Anatol Belski b1f4f5c80c Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
2018-07-17 12:00:11 +02:00
Dmitry Stogov 88dd38ee81 Reduce overhead of case-insensitive constants deprecation for "fast path" 2018-07-17 12:58:58 +03:00
Christoph M. Becker 9f957fd303 Improve implementation of array_key_first() and array_key_last()
Firstly, we must not separate the $stack argument for performance
reasons.  Secondly, we prefer `Z_ARRVAL_P` over `HASH_OF` to clarify
our intention.

Thanks to Nikita, for catching these issues!
2018-07-17 11:53:06 +02:00
Enno Woortmann 50516a6e1f Add implementation and tests for new methods - array_key_first(array $a) Returns the key of the first element or null - array_key_last(array $a) Returns the key of the last element or null 2018-07-17 11:31:00 +02:00
Christoph M. Becker 79a27ccf3f FILTER_FLAG_(SCHEME|HOST)_REQUIRED are now deprecated 2018-07-17 11:01:44 +02:00
Christoph M. Becker c0407d95f7 Deprecate explicit use of FILTER_FLAG_SCHEME|HOST_REQUIRED
As of PHP 5.2.1 FILTER_VALIDATE_URL implies FILTER_FLAG_SCHEME_REQUIRED
| FILTER_FLAG_HOST_REQUIRED, which makes these constants useless at
best, if not even misleading.  Therefore we deprecate the explicit use
of these constants for FILTER_VALIDATE_URL, to pave the way for their
eventual removal.

See <https://wiki.php.net/rfc/deprecations_php_7_3#filter_flag_scheme_required_and_filter_flag_host_required>.
2018-07-17 10:45:46 +02:00
Remi Collet ffa41787d5 Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
2018-07-17 06:07:43 +02:00
Stanislav Malyshev 2abdcae886 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test
2018-07-16 18:52:14 -07:00
Stanislav Malyshev 28d8b8de71 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76459 windows linkinfo lacks openbasedir check
  Add NEWS
  Fixed bug #76459 windows linkinfo lacks openbasedir check
  Fix bug #76557: heap-buffer-overflow (READ of size 48) while reading exif data
  Fix bug #76423 - Int Overflow lead to Heap OverFlow in exif_thumbnail_extract of exif.c
2018-07-16 16:54:31 -07:00
Nikita Popov 3588d8af12 Deprecate case-insensitive constants
RFC: https://wiki.php.net/rfc/case_insensitive_constant_deprecation
2018-07-16 19:16:55 +02:00
Nikita Popov a632ecd224 Remove use of case-insensitive constants in tests 2018-07-16 19:16:55 +02:00
Dmitry Stogov 70d0175a13 Fixed error messages. 2018-07-16 17:08:11 +03:00
Dmitry Stogov 5cf6474277 Flatten strip_tags state machine (GCC overoptimized this function, producing enormpous amount of code). 2018-07-16 13:22:17 +03:00
Gabriel Caruso 49c193eeb3 Make more tests run and fix SKIPIF sections 2018-07-16 00:01:46 -03:00
Gabriel Caruso 59456974f2 Test http_response_code function 2018-07-15 23:51:16 -03:00
Gabriel Caruso cf5f26b260 Fix failing test upstream
There was a trailing tab when a error message was generated. Removing
it, test is passing now.
2018-07-15 23:40:00 -03:00
Christoph M. Becker 9c2b4985b1 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #73817: Incorrect entries in get_html_translation_table
2018-07-15 23:41:15 +02:00
Gabriel Caruso 96f83e40c8 Small tweaks to php scripts 2018-07-14 19:37:12 -03:00
Gabriel Caruso c7d1c14b5c Small tweaks to php scripts 2018-07-14 19:33:35 -03:00
Gemorroj 233cbb53b3 [ci skip] Update php.ini-production
remove duplicated strings
2018-07-14 13:32:46 +02:00
Anatol Belski bf8b5b2269 Regroup the ifdef'd occurrences 2018-07-14 12:51:37 +02:00
Anatol Belski f6440c3aa6 Trail long path support also for deletion 2018-07-14 11:44:38 +02:00
Anatol Belski b9963969fd Merge branch 'PHP-7.2'
* PHP-7.2:
  Improve test
2018-07-13 20:15:17 +02:00
Anatol Belski dbabb35ff9 Distinguish two error messages 2018-07-13 19:01:43 +02:00
Anatol Belski 1bcc2fcb4e Avoid early allocation 2018-07-13 07:35:33 +02:00
Stanislav Malyshev 54f920d661 [ci skip] Add dates to maintainer names
The dates are initialized from oldest and newest commit
that can be attributed to that person.
2018-07-12 23:34:36 +02:00
Anatol Belski 644ab58d0f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed RecursiveDirectoryIterator with long path or with edge case length
2018-07-12 19:58:43 +02:00
Dmitry Stogov 571dac8c8f Fixed tests 2018-07-12 17:17:09 +03:00
Dmitry Stogov 5e8977bd62 Merge zend_class_entry.create_object and zend_class_entry.interface_gets_implemented into the same memory lacation. The first used only by classes, the second only by magic interfaces. 2018-07-12 17:09:40 +03:00
Christoph M. Becker 432c4e77a8 [ci skip] Update next version
According to <https://externals.io/message/102762>.
2018-07-12 15:22:26 +02:00
Christoph M. Becker 6c630eefcb Fix #33502: Some nullary functions don't check the number of arguments
We add the missing zend_parse_parameters_none() checks for:

* output_reset_rewrite_vars()
* func_num_args()
* gc_status()
* gc_disable()
* gc_enable()
* gc_enabled()
* gc_collect_cycles()
* gc_mem_caches()
* zend_version()
2018-07-12 15:05:56 +02:00
Christoph M. Becker 5f5cf8cb94 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix Travis build
2018-07-12 13:47:11 +02:00
Andrea Faulds e4e9cd8355 Export stdClass objects using (object) cast (fixes #48016)
Before this change, var_export()'s output for stdClass objects calls
the non-existent stdClass::__set_state method, and is therefore useless.

This commit makes var_export() output an (object) cast from an array
instead, which when evaluated, will produce a stdClass object. Other
classes see unchanged output.
2018-07-12 13:22:26 +02:00
Dmitry Stogov 7d4e18b05d Improved user iterator implementation to reduce zend_class_entry memory consumption and avoid race condition during resolving/caching of user iterator functions of internal classes in ZTS build. 2018-07-12 14:04:14 +03:00
Anatol Belski 0834679e40 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix macro
2018-07-12 11:38:18 +02:00
Anatol Belski 129c5c1181 Support long path also when reading from file cache 2018-07-12 09:26:50 +02:00
Anatol Belski 81eb8e7507 Mark conditions unexpected 2018-07-11 18:05:28 +02:00
Dmitry Stogov 85ee47eda0 Changed structure of zend_class_entry.trait_aliases and zend_class_entry.trait_precedences to avoid keeping "intermediate" trait references, that are used only during inheritance. 2018-07-11 18:56:10 +03:00
Anatol Belski 2367e649bc Make error messages more speaking 2018-07-11 14:34:18 +02:00
Anatol Belski 9ac133a0b3 Switch to ioutil routines to support long path in file cache 2018-07-11 14:28:57 +02:00
Anatol Belski 871d0aa5cd Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix condition
2018-07-11 13:16:04 +02:00
Anatol Belski 14db98825a Fix build with ZEND_RC_DEBUG 2018-07-11 12:19:20 +02:00
Dmitry Stogov 956ac5cbf5 Fixed possible assertion/crash when PHP script can't be stored in SHM (e.g. because another process already did this) 2018-07-11 10:35:36 +03:00
Kalle Sommer Nielsen 2aff1cb226 Remove these two old and outdated files we never use:
* OBJECTS2_HOWTO is rather outdated and the wiki contains much of this
 * ZendCore.dep is an old leftover from the previous Windows build system
2018-07-10 21:24:54 +02:00
Christoph M. Becker 0896a3abd1 [ci skip] Fix typos 2018-07-10 17:03:48 +02:00
Christoph M. Becker 091c0a8a59 [ci skip] Document changes to php_add[c]slashes 2018-07-10 16:04:14 +02:00
Christoph M. Becker 271ae3eb2b Fix #76574: use of undeclared identifiers INT_MAX and LONG_MAX
As of Oniguruma 6.4.0 <limits.h> is required, so we have to add a check
for this header file to set the respective macro.
2018-07-10 14:28:28 +02:00
Dmitry Stogov 4182b0855f Avoid copying 2018-07-10 13:17:33 +03:00
Anatol Belski bf5a81364c [skip ci] Update NEWS 2018-07-10 11:53:04 +02:00
Anatol Belski a5cb84c82e Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-07-10 11:52:24 +02:00
Anatol Belski d82cb24e19 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #76524 - ZipArchive memory leak
2018-07-10 11:20:50 +02:00
Dmitry Stogov 7da042cbd8 Use ZVAL_COPY_DEREF() 2018-07-10 12:11:10 +03:00
Dmitry Stogov 0db8c974a5 Avoid useless copying 2018-07-10 12:03:32 +03:00
Dmitry Stogov 62b3464871 Removed deprecated condition 2018-07-10 11:04:10 +03:00
Dmitry Stogov 6c61f15408 Optimization 2018-07-10 00:04:44 +03:00
Anatol Belski 90edf754c5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Sync callback signature with libxml2 2.9.8
2018-07-09 21:25:19 +02:00
Anatol Belski cce87471b1 Skip test on incompatible servers 2018-07-09 16:39:58 +02:00
Dmitry Stogov dbb9867b3e Avoid useless checks for public functions 2018-07-09 17:30:14 +03:00
Dmitry Stogov e4be6ce0fa Combined few checks into one 2018-07-09 17:29:34 +03:00
Dmitry Stogov 797e87060c Avoid reloading 2018-07-09 16:28:13 +03:00
Anatol Belski 117c37da76 Merge branch 'PHP-7.2'
* PHP-7.2:
  Add missing flag
2018-07-09 15:15:08 +02:00
Dmitry Stogov a34fedb723 Eliminated check 2018-07-09 15:18:09 +03:00
Anatol Belski c90f1964f9 Move to size_t for string length 2018-07-09 13:34:04 +02:00
Anatol Belski 3e1e3ab728 Remove conflicting declaration 2018-07-09 12:32:45 +02:00
Dmitry Stogov 40551e0255 Eliminated reference-counting and EG(exception) check 2018-07-09 13:20:46 +03:00
Dmitry Stogov ad2719cf9c Fixed test 2018-07-09 12:49:19 +03:00
Dmitry Stogov 67b4c3379a Uze ZVAL_COPY_DEREF() instead of ZVAL_DEREF() and ZVAL_COPY() 2018-07-09 12:46:46 +03:00
Kalle Sommer Nielsen 094c2aaf83 The session_array global is not used at all, so comment it out for now 2018-07-09 04:21:46 +02:00
Kalle Sommer Nielsen 529baa9a3d Added test to accompany the FILTER_SANITIZE_ADD_SLASHES filter 2018-07-09 03:59:35 +02:00
Kalle Sommer Nielsen a8dce31957 Added the 'add_slashes' sanitization filter (FILTER_SANITIZE_ADD_SLASHES) as an alias to 'magic_quotes' (FILTER_SANITIZE_MAGIC_QUOTES) so we can move past our "magical" legacy. 2018-07-09 03:58:20 +02:00
Christoph M. Becker 1c01b1ab48 Fix #76594: Bus Error due to unaligned access in zend_ini.c OnUpdateLong
Since commit ea83b69[1] changed the type of mbstring.strict_detection
from `long` to `zend_bool`, we have to update the `on_modify` callback
as well.

[1] http://git.php.net/?p=php-src.git;a=commit;h=ea83b69883f3f77fd27e4663fa854c88f141ab41
2018-07-09 00:54:36 +02:00
Anatol Belski d664d1e959 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix C++11 and up compatibility for zend_finite and more
2018-07-08 20:34:58 +02:00
Anatol Belski e4a2cdb564 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed regex for checking libzip static lib
2018-07-07 17:33:47 +02:00
Anatol Belski 0fbbdd3aa1 [ci skip] Fix EOL 2018-07-07 17:14:54 +02:00
Jakub Zelenka 3b10e9ccf1 Update NEWS for log related changes in FPM 2018-07-07 13:16:16 +01:00
Jakub Zelenka 3e5afbf0a8 Refactore FPM logging 2018-07-07 13:01:44 +01:00
Jakub Zelenka 2a78006adb Update NEWS and UPGRADING for fpm_get_status addition 2018-07-07 12:53:08 +01:00
Jakub Zelenka f86f3edeef Migrate fpm_get_status test 2018-07-07 12:48:16 +01:00
Till Backhaus 140def4ac7 Implement fpm_get_status 2018-07-07 12:33:11 +01:00
Peter Kokot b585f043cb Add missing INI directives to curl phpinfo 2018-07-07 12:11:49 +02:00
Peter Kokot 956446bdfa Bump Autoconf version in configure.ac to 2.64
Since PHP 7.2 the minimum autoconf version is 2.64. The configure.ac
script file includes also AX_CHECK_COMPILE_FLAG macro call so besides
only checking it in buildconf script this bumps the autoconf here too.

The phpize.m4 script is for now still relaxed to 2.59 version since some
still supported systems such as CentOS 6 still include autoconf 2.63
version and might require calling phpize on some old extensions.
2018-07-07 12:11:14 +02:00
Peter Kokot 491f1477be Replace AC_CONFIG_HEADER with AC_CONFIG_HEADERS
Autoconf doesn't mention the AC_CONFIG_HEADER macro since the v2.13
released in 1999 anywhere in the documentation. Future of this macro is
unclear and commented as possible candidate for obsoletion in the
autoconf source code. Since it is just a wrapper around the main
AC_CONFIG_HEADERS macro, the functionality is the same, and also more
clear to find it in the autoconf documentation and avoid possible future
obsoletion.
2018-07-07 12:10:53 +02:00
Nikita Popov 9aeeecc47c Merge branch 'PHP-7.2' 2018-07-07 12:08:27 +02:00
seliver 95013042bf Fixed bug #76136 (stream_socket_get_name enclosed IPv6 in brackets)
The IPv6 IP of a socket is provided by inet_ntop() as a string, but
this function doesn't enclose the IP in brackets. This patch adds
them in the php_network_populate_name_from_sockaddr() function.
2018-07-07 11:47:50 +02:00
Peter Kokot 67352cb2c0 Fix bug #76392
On systems without glibc, such as Alpine with Musl libc, the function attributes
are not supported. GCC 6 doesn't properly omit some systems. This is
already fixed in GCC 7 but for systems with GCC 6 and ones without
glibc, this additional check fixes this bug.
2018-07-07 11:31:44 +02:00
Nikita Popov 04e3523b7d Warn if continue is used on switch
Supersedes RFC https://wiki.php.net/rfc/continue_on_switch_deprecation
by generating a warning instead of deprecating and removing this
functionality.
2018-07-07 11:12:48 +02:00
Nikita Popov 41a6625c09 Add UPGRADING for mb_ereg changes
Also some minor code cleanup.
2018-07-07 11:06:29 +02:00
ju1ius 8f1782678e adds support for named subpatterns to mb_ereg_replace
Named subpatterns are now passed to `mb_ereg_replace_callback`.

This commit also adds a subset of the oniguruma back-reference syntax
for replacements:
* `\k<name>` and `\k'name'` for named subpatterns.
* `\k<n>` and `\k'n'` for numbered subpatterns
These last two notations allow referencing numbered groups where n > 9.
2018-07-06 23:34:54 +02:00
ju1ius 212f56b7ca adds support for named captures to mb_ereg & mb_ereg_search
`mb_ereg`, `mb_ereg_search_regs` & `mb_ereg_search_getregs`
returned only numbered capturing groups.
Now they return both numbered and named capturing groups.
Fixes Bug #72704.
2018-07-06 23:34:54 +02:00
Zenju 69a49af0d3 Fix out-of bounds access
Test case: strnatcmp_ex(L"333", 3, L"333 ", 4, true)
The reason this bug didn't come up earlier is probably because most input strings are null-terminated.
2018-07-06 19:02:19 +02:00
Christoph M. Becker b37dafcc23 Add test for PR #2382 2018-07-06 18:59:04 +02:00
Anatol Belski 1870a61a91 Fix coding style 2018-07-06 17:57:08 +02:00
David Carlier 9da4e30c75 random_bytes improvements for FreeBSD (from 12.x serie)
giving the possiblity to pre-fill the buffer. A new getrandom
function was added for future version with a similar interface
than Linux's syscall.
2018-07-06 17:47:59 +02:00
Anatol Belski 0b94534e93 [ci skip] Update NEWS 2018-07-06 17:46:04 +02:00
Anatol Belski 903f41aef7 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-07-06 17:45:38 +02:00
Anatol Belski ed23cea9de Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix event log handling in startup phase
  Fix bug #76488 Memory leak when fetching a BLOB field
2018-07-06 16:08:57 +02:00
Sara Golemon b0ca997405 Merge branch 'PHP-7.1'
* PHP-7.1:
  Fix year
  Bump version
2018-07-06 10:05:17 -04:00
Xinchen Hui 4c67f7e012 Forgotten one replacement 2018-07-06 19:18:06 +08:00
Xinchen Hui 9d1e9b73c5 rename ref_dtor_func to rc_dtor_func 2018-07-06 19:15:26 +08:00
Xinchen Hui f9297387f4 Rename zval_dtor_func and ref_dotr_func 2018-07-06 18:47:30 +08:00
Xinchen Hui e3355ac5ec Revert "Rename _zval_dtor_func to _ref_dtor_func"
This reverts commit a362ae6b12.
2018-07-06 18:37:45 +08:00
Xinchen Hui a362ae6b12 Rename _zval_dtor_func to _ref_dtor_func 2018-07-06 18:32:27 +08:00
Yousif Masoud 9a21aa77af fixes typo in daemonization DEBUG message after fork: acknoledge -> acknowledge 2018-07-06 11:25:08 +02:00
Dmitry Stogov bd8e76761f Use zval_ptr_dtor() instead of zval_dtor() in in-place array/object conversion functions 2018-07-06 12:07:13 +03:00
Mike 6a4e1e8b8e [ci skip] Fix typo 2018-07-06 09:55:47 +02:00
Dmitry Stogov 41db5f73ce Fixed reference-counting in zend_parse_arg_str_weak() 2018-07-06 03:11:20 +03:00
Dmitry Stogov dcf7592076 Optimize array to object casting 2018-07-06 03:10:05 +03:00
Dmitry Stogov ca40664ad6 Conversion related optimizations 2018-07-06 01:26:43 +03:00
Dmitry Stogov 85b2bc38e1 Optimize object to array casting 2018-07-06 01:25:24 +03:00
Dmitry Stogov 8361c0a9a7 Avoid useless checks in object_init() 2018-07-06 01:24:15 +03:00
Nikita Popov 606de9e4a9 Fix inverted stristr() argument order in mysqli test 2018-07-05 21:25:21 +02:00
Nikita Popov a057384113 Merge branch 'PHP-7.2' 2018-07-05 19:11:43 +02:00
Nikita Popov 0c4ab798de Merge branch 'PHP-7.2' 2018-07-05 19:10:24 +02:00
Nikita Popov 0504594a28 Merge branch 'PHP-7.1' into PHP-7.2 2018-07-05 19:09:40 +02:00
Anatol Belski 0630e3bc03 Reduce error buffer size
120 bytes is ample, the doc says.
2018-07-05 17:24:38 +02:00
Dmitry Stogov 169d454593 Use zval_ptr_dtor() imstead of zval_dtor() 2018-07-05 17:55:54 +03:00
Dmitry Stogov 43d5a3665d It's safer to use zval_ptr_dtor() for iterator keys. 2018-07-05 16:56:52 +03:00
Dmitry Stogov d0a6b1009f Use zval_ptr_dtor() to replace bound variables (original values nay be circular structures). 2018-07-05 16:46:38 +03:00
Dmitry Stogov 5f83904a5d Use zval_ptr_dtor_nogc() instead of zval_dtor() inplaces where circular-references are not possible 2018-07-05 15:25:55 +03:00
Dmitry Stogov 918a9f09f8 Use zval_ptr_dtor_nogc() in JSON parser (it can't produce circular data structures) 2018-07-05 15:07:16 +03:00
Dmitry Stogov 3780b027dd Use zval_ptr_dtor() instead of zval_dtor() in internal functions that destroy new created object (This is safer and produces less code) 2018-07-05 14:25:17 +03:00
Dmitry Stogov 91fc0d1a41 Replace zval_dtor() with specialized destructors 2018-07-05 14:17:53 +03:00
Dmitry Stogov 83f6f8563c Use zval_ptr_dtor() instead of legacy zval_dtor(), to destroy unused values returned from PHP functions (they may be circular data structures). 2018-07-05 14:09:47 +03:00
Dmitry Stogov 273e194df5 Replace zval_dtor() with specialized destructors 2018-07-05 13:55:56 +03:00
Dmitry Stogov 77c6ca7b62 Fixed wrong zval_dtor() usage 2018-07-05 13:37:59 +03:00
Dmitry Stogov b01d9e826c Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  [ci skip] Fix a typo. RANGE_RANGE should be RAND_RANGE
2018-07-05 13:33:18 +03:00
Dmitry Stogov b6fb584505 Replace zval_dtor() with specialized destructors 2018-07-05 13:32:39 +03:00
Tyson Andre 5bbe6080b4 [ci skip] Fix a typo. RANGE_RANGE should be RAND_RANGE 2018-07-05 12:11:56 +02:00
Dmitry Stogov 0d235517a3 Don't keep dangling pointer to function_name 2018-07-05 12:20:50 +03:00
Dmitry Stogov b6cc4d2009 Use zval_ptr_dtor() instead of zval_dtor() in internal functions that destroy new created object (This is safer and produces less code) 2018-07-05 11:54:26 +03:00
Dmitry Stogov 265c3ed6cf Fixed incorrrecr zval_dtor() usage to replace value of argument passed by reference, that may lead to memory leaks. 2018-07-05 10:57:49 +03:00
Remi Collet 587ab00698 NEW and UPGRADING 2018-07-05 06:34:08 +02:00
Remi Collet 0ea4013f10 Fixed bug #62596 add getallheaders (apache_request_headers) missing function in FPM add sapi_add_request_header in public API (was add_request_header) fix arginfo for fastcgi_finish_request fucntion 2018-07-05 06:30:58 +02:00
Dmitry Stogov 6c0ddcda47 Removed legacy zval_dtor() usage. It doesn't work with zvals with refcount == 0, anyway. 2018-07-05 02:28:00 +03:00
Dmitry Stogov 5898583e94 Fixed some incorrect zval_dtor() usages 2018-07-04 23:48:39 +03:00
Dmitry Stogov 3a8f26060c Argument unpacking with Traversables and non-integer keys.
Changed error message, added UPGRADING note and test.
2018-07-04 22:34:36 +03:00
Kalle Sommer Nielsen 6337af09dc Added test case for bug #76539 for master only as the behavior has been restored 2018-07-04 19:50:34 +02:00
Dmitry Stogov 4a475a4976 Replace legacy zval_dtor() by zval_ptr_dtor_nogc() or even more specialized destructors.
zval_dtor() doesn't make a lot of sense in PHP-7.* and it's used incorrectly in some places.
Its occurances should be replaced by zval_ptr_dtor() or zval_ptr_dtor_nogc(), or even more specialized destructors.
2018-07-04 19:22:24 +03:00
Christoph M. Becker d798fd491b [ci skip] Document GC_C() → zend_gc_get_status() 2018-07-04 12:19:29 +02:00
Dmitry Stogov af341213f7 se zval_ptr_dtor_str() instead of zend_string_release_ex(Z_STR(*), 0) 2018-07-04 12:08:07 +03:00
Dmitry Stogov 5f19816f53 concat_function() micro optimization 2018-07-04 12:05:51 +03:00
Dmitry Stogov d84ef96742 SEND_UNPACK should throw exception on Traversable with non-integer keys 2018-07-04 09:35:12 +03:00
Xinchen Hui a6467af8a5 Fixed test skip 2018-07-04 11:20:28 +08:00
Xinchen Hui 36f05a80d7 Fixed build 2018-07-04 11:15:32 +08:00
Kalle Sommer Nielsen c49f0fd9ac Fixed bug #76501 (Funny message with fatal error) 2018-07-04 03:04:31 +02:00
Dmitry Stogov 2edf94a637 Avoid useless copying and conversion 2018-07-04 01:09:00 +03:00
Dmitry Stogov 7eb045d31a API cleanup. Removed unused functions (kept compatibility macros). 2018-07-04 00:50:57 +03:00
Nikita Popov e080fb6d92 Do not continue extract()ing after an exception has been thrown
Make behavior consistent with a loop of normal assignments.

This is not a big issue now, because $this is the only case that
may generate an error. However typed references introduce additional
error conditions, which would be silenced by this kind of behavior.
2018-07-03 22:45:35 +02:00
Anatol Belski 2af3234a09 [ci skip] Update NEWS 2018-07-03 20:03:11 +02:00
Peter Kokot b7368fe0d0 Add missing autoconf m4 quotes
Two macro calls were missing quotes and in order to be able to run the
autoupdate script, this patch adds them.
2018-07-03 19:12:44 +02:00
Anatol Belski eb41eba3fe Remove BOM 2018-07-03 19:06:14 +02:00
Anatol Belski 682ca5fccd Fix compilation with Firebird < 3 2018-07-03 19:04:11 +02:00
Dorin Marcoci 78f23a6dd4 Boolean data type support, added in Firebird 3. Fixes #74462. 2018-07-03 19:04:11 +02:00
Christoph M. Becker e51b364a50 [ci skip] Document zend_parse_parameters_none() 2018-07-03 18:58:37 +02:00
Peter Kokot 29000091b2 Remove sqlite and xmlrpc extension versions from phpinfo output
The rest of the core extensions don't display the extension versions in
the phpinfo output since they in most cases match the PHP release version.
2018-07-03 17:01:17 +02:00
Dmitry Stogov 14e6c0cb8c str_replace() micro-optimization 2018-07-03 17:47:08 +03:00
Anatol Belski 7cdd732aca Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76564 ext/zip link issues
2018-07-03 15:46:48 +02:00
Christoph M. Becker a0b9f8d411 Update NEWS for 7.3.0beta1 2018-07-03 12:52:48 +00:00
Remi Collet cb52bbfdfa Merge branch 'PHP-7.2'
* PHP-7.2:
  bump to 7.2.9-dev
2018-07-03 13:53:33 +02:00
Dmitry Stogov 004a0568f4 Eliminated REFCOUNTED checks on persistent constant operands in SEND_VAL[_EX] and QM_ASSIGN. 2018-07-03 13:10:22 +03:00
Dmitry Stogov 177c7e3a72 Merge branch 'bug63217'
* bug63217:
  Another fix for bug #63217
  Partial revert of 30156d588c
2018-07-03 12:58:50 +03:00
Dmitry Stogov 3fd97a5b1f Better hot/cold code splitting 2018-07-03 11:07:39 +03:00
Dmitry Stogov 28b03f9605 Another fix for bug #63217 2018-07-03 01:09:58 +03:00
Nikita Popov 23ae6ca405 Fix check for invoking abstract method 2018-07-02 21:33:09 +02:00
Nikita Popov 826e403d2c Add $ before property name in error message 2018-07-02 21:24:38 +02:00
Dmitry Stogov 57af94c8b9 Partial revert of 30156d588c 2018-07-02 20:54:44 +03:00
Nikita Popov 04824aa263 Merge branch 'PHP-7.2' 2018-07-02 18:58:01 +02:00
Nikita Popov 1b66ba17ad Remove unnecessary explicit argc check
Instead specify a default value for the argument, which is more
idiomatic.
2018-07-02 18:29:30 +02:00
Nikita Popov 76f1d98a0c Remove METHOD_NOTSTATIC checks in reflection
PHP does not allow static calls to non-static internal methods
anyway, so these checks are redundant.
2018-07-02 18:26:48 +02:00
Nikita Popov 2cc6922cbf Merge branch 'PHP-7.2' 2018-07-02 17:59:33 +02:00
Nikita Popov a57b5e82a9 Merge branch 'PHP-7.2' 2018-07-02 17:30:07 +02:00
Rudi Theunissen 30156d588c Fixed bug #63217
Don't automatically convert literal string keys to integers on
array access, as we may be dealing with an ArrayAccess object,
rather than a plain array.
2018-07-02 16:41:59 +02:00
Anatol Belski 6d61814d0e Remove the forked test and adjust the original one 2018-07-02 16:08:09 +02:00
Dmitry Stogov 091d77f28a Avoid magic method hash lookups 2018-07-02 17:03:50 +03:00
Dmitry Stogov 43aca3118a Avoid string comparisons for magic methods (all magic methods start with "__") 2018-07-02 17:03:02 +03:00
Anatol Belski a63e834b66 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update libs_version.txt
2018-07-02 12:12:39 +02:00
Jakub Zelenka d404b5e255 Add ssl/tls streams options for min and max proto version 2018-07-01 18:46:52 +01:00
Jakub Zelenka ce0721bee5 Update NEWS, UPGRADING and default php.ini files with syslog changes 2018-07-01 18:27:36 +01:00
Philip Prindeville 2475337bd8 Add syslog's ident and facility parameters to config
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
2018-07-01 18:08:07 +01:00
Christoph M. Becker 0c4f4481f5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Make newly introduced bug76556.phpt more resilient
2018-07-01 00:23:06 +02:00
Christoph M. Becker 1b61c3b210 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #76556: get_debug_info handler for BreakIterator shows wrong type
2018-06-30 23:22:20 +02:00
Nikita Popov 8faa6ef30e Add test for void return type on internal function 2018-06-30 20:14:15 +02:00
Nikita Popov 7909d4532c Merge branch 'PHP-7.2' 2018-06-30 20:11:59 +02:00
Nikita Popov 5d7be2c2bc Merge branch 'PHP-7.2' 2018-06-30 19:50:56 +02:00
Christoph M. Becker abbc1e683c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #71848: getimagesize with $imageinfo returns false
2018-06-30 16:50:49 +02:00
Peter Kokot 7c04219098 Fix pecl vs ext typo in phar
Phar phpinfo output lists also info about bz2 extension if it's
disabled and a quick info about installation. Instead of not maintained
pecl package bz2 the ext/bz2 should be mentioned. Also some outdated
pecl/phar are updated to ext/phar instead in test comments.
2018-06-30 15:35:43 +02:00
Christoph M. Becker 8bc2163c8a Add ext/sodium to php.ini-* 2018-06-30 14:52:30 +02:00
Nikita Popov 43c533d799 Merge branch 'PHP-7.2' 2018-06-29 23:23:08 +02:00
Nikita Popov 7ac06d66d4 Add zend_update_static_property_ex API
And cleanup the implementation to perform a normal by-value
assignment.
2018-06-29 22:56:59 +02:00
Nikita Popov 813b6fc950 Add zend_read_static_property_ex API
For symmetry with zend_read_property_ex.
2018-06-29 22:49:15 +02:00
Nikita Popov 10b484e624 Fix build
These were changed in 6e77a60a75.
2018-06-29 22:44:58 +02:00
Anatol Belski 7a6dc29605 [ci skip] Update NEWS 2018-06-29 20:12:45 +02:00
Anatol Belski efdf4a83b1 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-06-29 20:12:24 +02:00
Anatol Belski ff8f2710f6 Check return value of pcre2_maketables() 2018-06-29 19:15:38 +02:00
Anatol Belski 4ff6c0cb44 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76548 pg_fetch_result did not fetch the next row
2018-06-29 18:36:22 +02:00
Dmitry Stogov 6e77a60a75 Removed INIT_OVERLOADED_CLASS... macros 2018-06-29 14:41:35 +03:00
Dmitry Stogov d6ab163be8 cleanup 2018-06-29 12:35:14 +03:00
Dmitry Stogov dd932f7e63 Changed php_add[c]slashes prototypes (removed should_free argument) 2018-06-29 00:19:16 +03:00
Nikita Popov a7101415cb Merge branch 'PHP-7.2' 2018-06-28 23:06:08 +02:00
Nikita Popov db7ead0768 Fix ReflectionProperty::get/setValue() on internal static property
This was broken by 6dc0cd868d, which
moved static property initialization outside of constant updating.

Instead of replicating logic, use zend_get_static_property() API
in the reflection implementation, just like we're using
read_property for non-static proprety access.
2018-06-28 22:45:26 +02:00
Anatol Belski e1e0176e68 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update SDK version for AppVeyor
2018-06-28 15:59:10 +02:00
Anatol Belski 95a71caab1 Merge branch 'PHP-7.2'
* PHP-7.2:
  Sync versions for VC++ 15.8
2018-06-28 13:29:32 +02:00
Christoph M. Becker 2ff26bdf73 [ci skip] Document new typedef zif_handler 2018-06-28 12:52:36 +02:00
Christoph M. Becker 3ab920a911 [ci skip] Announce emails should not be cross-posted
Otherwise answers may be send to all the lists which might be
irrelevant for particular participants only subscribed to one of them.
2018-06-28 12:36:53 +02:00
Anatol Belski a1ae9d5f9e [ci skip] Update NEWS 2018-06-28 11:41:49 +02:00
Anatol Belski eeab21b6d7 Merge branch 'PHP-7.2'
* PHP-7.2:
  Don't ignore commits on NEWS, etc. on AppVeyor
2018-06-28 10:55:35 +02:00
Andrew Nester ef9ed19ec7 DOMDocument::formatOutput attribute sometimes ignored 2018-06-28 10:38:20 +02:00
Xinchen Hui f1c0500fda Update NEWS 2018-06-28 12:38:40 +08:00
Xinchen Hui 8e940654e1 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #76536 (PHP crashes with core dump when throwing exception in error handler). (Laruence)
2018-06-28 12:38:26 +08:00
Nikita Popov bddb085a68 Store unmangled name in ReflectionProperty
Avoid redundant unmangles and string copies, where possible.
2018-06-27 23:52:21 +02:00
Nikita Popov ce7fc2e308 Fix typos... 2018-06-27 23:22:29 +02:00
Nikita Popov 78f2a1b81d Optimize ReflectionProperty constructor
Perform HT lookups using a zend_string. Don't copy the name for
the "name" property. We can always use the original name directly,
as properties case case-sensitive, so the original name should
always match the unmangled name of the fetched property info.
2018-06-27 23:21:06 +02:00
Nikita Popov 9b02ee0bba Fixed bug #76538 2018-06-27 23:06:25 +02:00
Christoph M. Becker 3f241f3caa Update UPGRADING wrt. PCRE2
The upgrade to PCRE2 should mostly be transparent to existing code, but
apparently there are some minor differences, which warrant a note in
UPGRADING (and consequently, in the migration guide).
2018-06-27 15:19:41 +02:00
Nikita Popov 17afe6430f Fixed bug #76439 2018-06-27 14:15:56 +02:00
Dmitry Stogov 716bbd3480 Remove duplicated code (keep destroy_zend_function() for compatibility) 2018-06-27 14:54:42 +03:00
Dmitry Stogov 56450c6e65 Moved very rare exception check into a single place. 2018-06-27 13:34:15 +03:00
Peter Kokot 32489322a1 Remove outdated comments about PHP 3 2018-06-27 11:53:40 +02:00
Dmitry Stogov 6dc0cd868d Fixed ZTS race condition (zend_class_entry->ce_flags of internal classes must not be modified, because internal class enties are shared between threads) 2018-06-27 12:33:20 +03:00
Xinchen Hui 1231b49271 Add test for issue #1400 2018-06-27 16:49:05 +08:00
Xinchen Hui a394e1554c Update NEWS 2018-06-27 13:09:54 +08:00
Xinchen Hui 3d8c82c353 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #76534 (PHP hangs on 'illegal string offset on string references with an error handler)

Conflicts:
	Zend/zend_vm_execute.h
2018-06-27 13:08:47 +08:00
Kalle Sommer Nielsen 76827e39ba Minor cleanup in regards to magic_quotes in tests:
- dba008.phpt never runs anyway, no need to keep it
- bug75357.phpt has a branch that is never hit, which should not change the bug behavior in anyway
- bug55371.phpt added a simple 'done' test to not let the EXPECT section be empty
2018-06-26 22:38:00 +02:00
Dmitry Stogov 1b80de93b8 Cleanup conditions 2018-06-26 16:18:30 +03:00
Dmitry Stogov ff97ba253f Merge branch 'fetch_r_tmp'
* fetch_r_tmp:
  Make FETCH_R/IS, FETCH_DIM_R/IS, FETCH_OBJ_R/IS, FETCH_STATIC_PROP_R/IS return TMP_VAR, instead of VAR.
2018-06-26 14:48:53 +03:00
Dmitry Stogov 54f171cdc0 Restored zend_array_element_type() prototype 2018-06-26 11:23:37 +03:00
Dmitry Stogov 8c22d3e729 Make FETCH_R/IS, FETCH_DIM_R/IS, FETCH_OBJ_R/IS, FETCH_STATIC_PROP_R/IS return TMP_VAR, instead of VAR. 2018-06-25 23:43:23 +03:00
Nikita Popov f2c4f06f84 Remove unnecessary uses of z/ parameters 2018-06-25 22:27:42 +02:00
Dmitry Stogov 49a4e69584 Fixed ability to call plain functions through zend_call_method() 2018-06-25 23:01:21 +03:00
Dmitry Stogov b89ce98129 typo 2018-06-25 22:43:19 +03:00
Dmitry Stogov 7f67513ca3 Lazy function copying from op_cache SHM into process memory 2018-06-25 19:53:58 +03:00
Christoph M. Becker 30f7997762 [ci skip] Remove obsolete task
INSTALL points to the online docs and win32/install.txt is removed as
of commit 1e9e7d4[1].

[1] http://git.php.net/?p=php-src.git;a=commit;h=1e9e7d4dc4949b67908e55ab3f3e44528923c029
2018-06-25 18:00:26 +02:00
Dmitry Stogov c8f355b12c Micro-optimization 2018-06-25 17:32:13 +03:00
Nikita Popov 73f07738b9 Fix off-by-one error 2018-06-25 15:26:10 +02:00
Nikita Popov 2543e61aed Fixed bug #76509
In PHP static properties are shared between inheriting classes,
unless they are explicitly overwritten. However, because this
functionality was implemented using reference, it was possible
to break the implementation by reassigning the static property
reference.

This is fixed by switching the implementation from using references
to using INDIRECTs, which cannot be affected by userland code.
2018-06-25 15:04:09 +02:00
Nikita Popov 102bcb5c05 Update array_element_type inference for previous change
LIST_R and DIM_IS return value can't be MAY_BE_REF anymore.
2018-06-25 14:27:02 +02:00
Nikita Popov 490a49d0bb Use COPY_DEREF for DIM_IS and LIST_R as well
Also add an upgrading note for the behavior change, not that we
expect anyone to be affected...
2018-06-25 14:23:06 +02:00
Markus Staab a0a4232ae3 [ci skip] fixed typos 2018-06-25 13:14:55 +02:00
Dmitry Stogov ecce21169e Added note about zend_function.reserved[] fields usage 2018-06-25 13:35:14 +03:00
Dmitry Stogov 7793bc8ee6 Improved type inference. Result of opcodes using ZVAL_COPY_DEREF can't be MAY_BE_REF. 2018-06-25 13:07:44 +03:00
Christoph M. Becker 0778359223 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix arginfo wrt. optional/required parameters
2018-06-25 11:57:25 +02:00
Christoph M. Becker d169d06d30 Remove useless PHPDBG_* constants
The sole purpose of `PHPDBG_FILE`, `PHPDBG_METHOD`, `PHPDBG_LINENO` and
`PHPDBG_FUNC` has been to be passed as first argument to `phpdbg_break`.
However, this functions is replaced as of PHP 5.6.3 by
`phpdbg_break_file`, `phpdbg_break_method` and 'phpdbg_break_func`,
respectively.  Therefore, we're finally removing the useless constants.
2018-06-25 11:42:54 +02:00
Anatol Belski 836f329114 Merge branch 'PHP-7.2'
* PHP-7.2:
  Prepare tests for ICU 62.1
2018-06-25 11:32:03 +02:00
Nikita Popov 61d00a6cf3 Use COPY_DEREF instead of COPY_UNREF
This fixes the behavior when the storage location of the fetch is
modified before the operand is dereferenced by the using VM opcode.

Furthermore it elimiates references as a possible return value from
*_R opcodes, which will give us more opportunities for inferences,
in particular in regard to typed properties.
2018-06-25 11:23:59 +02:00
Dusta da82719f20 Update http to https 2018-06-25 08:31:32 +02:00
COFFEE 19b42bd6b3 numner => number 2018-06-25 08:29:36 +02:00
Nikita Popov 4abf423d75 Merge branch 'PHP-7.2' 2018-06-24 22:29:19 +02:00
Nikita Popov 66cf76ee54 Remove expr_without_variable
We no longer need this distinction.
2018-06-24 13:44:54 +02:00
Anatol Belski e03739d4ab Remove obsolete version checks in tests 2018-06-22 17:56:18 +02:00
Anatol Belski 8c92318677 [ci skip] Update NEWS 2018-06-22 17:33:57 +02:00
Anatol Belski aa92d42018 If there's no setlocale, char tables are not used 2018-06-22 17:31:26 +02:00
Nikita Popov b592cd7b98 Merge branch 'PHP-7.2' 2018-06-22 16:23:25 +02:00
Anatol Belski 8b58b2aac6 Don't discard char tables just generated 2018-06-22 15:18:39 +02:00
Remi Collet 3b9ecb2d65 add note about php_url struct changes 2018-06-22 14:58:30 +02:00
Anatol Belski 684ce24eec Improve locale character tables handling and reduce pattern cache size
If a locale other than C is active, character tables are saved into the
compile context. Every compiled pattern will have a pointer to the
character table, that was present in the context at the time of the
pattern compilation. Thus, the cache entries don't need to carry char
tables pointer, which reduces their size to 8 bytes on 64-bit. Instead,
the generated character tables are tracked in a separate HashTable. If a
character table was generated before, it'll be assigned to the compile
context when the locale changes. Otherwise a new char table will be
generated and cached.
2018-06-22 14:45:29 +02:00
Dmitry Stogov 34e58a6447 Reduced overhead of magic method calls (__get/__set/__unset/__isset/__dectructor/__clone). 2018-06-22 14:29:54 +03:00
Dmitry Stogov 3c600e2d61 retval shouldn't be NULL 2018-06-22 14:28:29 +03:00
Dmitry Stogov 9b2d708f21 Reduce spl_autoload() overhead 2018-06-22 13:19:53 +03:00
Anatol Belski bb2f1a6830 Fixed bug #76514 Regression in preg_match makes it fail with PREG_JIT_STACKLIMIT_ERROR
Looks like some patterns might require more stack for JIT execution. It
is a regression, as the same pattern was passing using JIT.
2018-06-22 11:05:30 +02:00
Dmitry Stogov 71e18471f2 Merge branch 'PHP-7.2'
* PHP-7.2:
  Added parenthesis
2018-06-22 12:04:49 +03:00
Dmitry Stogov 73b675a988 Avoid duplication of "shadow" property_info 2018-06-22 02:46:59 +03:00
Christoph M. Becker 23ca95aa3e Fix line endings in new PHPT 2018-06-22 00:01:51 +02:00
Christoph M. Becker 71d16feebb Fix #76512: \w no longer includes unicode characters
The migration from PCRE to PCRE2 missed to rename once occurrence of
`PCRE_UCP` to `PCRE2_UCP`.  We fix that.  We also revert the changes to
bug52971.phpt which had been incorrectly made in commit a5bc5ae[1].

[1] <http://git.php.net/?p=php-src.git;a=commit;h=a5bc5aed71f7a15f14f33bb31b8e17bf5f327e2d>
2018-06-21 22:45:08 +02:00
Jakub Zelenka c2a3ab070b Merge branch 'PHP-7.2' 2018-06-21 17:03:07 +01:00
Jakub Zelenka 5f349b728e Merge branch 'PHP-7.2' 2018-06-21 16:50:45 +01:00
Charles R. Portwood II 55277a6684 RFC: Argon2 Password Hash Enhancements Implementation of Argon2id per RFC https://wiki.php.net/rfc/argon2_password_hash_enhancements
- m4 and Windows configure scripts now forces Argon2 reference library version >= 20161029
- Implementation tested against 20161029 and 20171227 for Argon2id support
- Updates Argon2 ext/standard/password/tests to run tests for both Argon2i and Argon2id
2018-06-21 13:26:57 +02:00
Peter Kokot 3f96f01e9e Bump phar and hash extension version to match PHP version 2018-06-21 13:15:32 +02:00
Dmitry Stogov 4418d61ca3 Avoid reusing zend_function.common.prototype for magic things (use reserved fields instead). 2018-06-21 13:09:25 +03:00
Anatol Belski f87cc89f4d Gereralize VA macro expansion mechanism
Avoids code duplication and makes in usable elsewhere.
2018-06-21 11:50:48 +02:00
Xinchen Hui 4bd6be8a5f Update NEWS 2018-06-21 17:27:18 +08:00
Xinchen Hui 8b2f40724b Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #76505 (array_merge_recursive() is duplicating sub-array keys)
2018-06-21 17:26:57 +08:00
Stanislav Malyshev 3f53b02a53 Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert "ICU 59+ requires C++11 and errors out without the option"
2018-06-20 10:42:04 -07:00
Nikita Popov 22ce955b95 Remove unnnecessary DEREF parameter 2018-06-20 16:03:50 +02:00
Nikita Popov e357f67faf Remove code duplication
And fix indentation
2018-06-20 15:05:08 +02:00
Nikita Popov 8e2f0824f7 Merge branch 'PHP-7.2' 2018-06-20 12:32:20 +02:00
Stanislav Malyshev 2825c82076 Merge branch 'pull-request/3281'
* pull-request/3281:
  Revert braces inside condition
  Use .= where possible
  Remove unncecessary parantheses
  Remove unused variable old_php
  Fix property name
2018-06-19 22:43:20 -07:00
Stanislav Malyshev 3346659f2a Merge branch 'pull-request/3274'
* pull-request/3274:
  Added const modifier
  76363: added jsm extension to list of mime types
2018-06-19 16:50:16 -07:00
Stanislav Malyshev f61e1d28fe Merge branch 'pull-request/3288'
* pull-request/3288:
  Fix bug #75481: makedev warning
2018-06-19 16:43:52 -07:00
Stanislav Malyshev 30bdc09129 Merge branch 'pull-request/3309'
* pull-request/3309:
  phar module, unsignedness check changes. while at it, correcting seemingly subtle bug when checking extension validity.
2018-06-19 16:42:28 -07:00
Sara Golemon 1108b5a19b Move class constant definition to the right enum file 2018-06-19 18:21:08 -04:00
Christoph M. Becker 963998f0ab Update NEWS for 7.3.0alpha3 2018-06-19 15:36:31 +02:00
Gabriel Caruso fc775f6915 Report unknown variables passed to compact() 2018-06-19 12:50:15 +02:00
Robert Lu ecc1a7c582 Fix bug #44217: Output after stdout/stderr closed cause immediate exit with status 0
We exit with status 255 instead.
2018-06-19 12:15:33 +02:00
David Carlier 80bb649ad1 phar module, unsignedness check changes.
while at it, correcting seemingly subtle bug when checking
extension validity.
2018-06-18 14:08:50 +00:00
Dmitry Stogov 84d7d4e1cc Fixed bug #76466 (Loop variable confusion) 2018-06-18 11:21:23 +03:00
Xinchen Hui 83a77f5a28 Fixed typo 2018-06-18 12:14:17 +08:00
Xinchen Hui 7f196c45ef use defined macro 2018-06-18 12:14:00 +08:00
Xinchen Hui 4d69bbeee7 Fixed bug #76437 (token_get_all with TOKEN_PARSE flag fails to recognise close tag) 2018-06-18 11:33:48 +08:00
Stanislav Malyshev 24f7096154 Merge branch 'PHP-7.2'
* PHP-7.2:
  ICU 59+ requires C++11 and errors out without the option
  Fix #76300 - Dont attempt to change visibility of a parent private
2018-06-17 16:43:46 -07:00
Stanislav Malyshev 7d7b7e801e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #76300 - Dont attempt to change visibility of a parent private
2018-06-17 15:47:06 -07:00
Stanislav Malyshev 671fc2ec55 Merge branch 'pull-request/3233' into PHP-7.2
* pull-request/3233:
  Fix #76300 - Dont attempt to change visibility of a parent private
2018-06-17 15:26:42 -07:00
Stanislav Malyshev 5819ff4865 Merge branch 'pull-request/3268'
* pull-request/3268:
  Sync sysvsem and sysvshm versions in phpinfo
2018-06-17 14:12:45 -07:00
Stanislav Malyshev 201f440760 Merge branch 'pull-request/3295'
* pull-request/3295:
  Remove old and unused warnings when building apache
2018-06-17 14:11:07 -07:00
Stanislav Malyshev 19d5656b1a Merge branch 'pull-request/3307'
* pull-request/3307:
  Bump snmp extension version to PHP version
2018-06-17 14:06:40 -07:00
Stanislav Malyshev d7ed929e1c Merge branch 'pull-request/3296'
* pull-request/3296:
  Bump fileinfo extension version to PHP release version
2018-06-17 14:05:01 -07:00
Stanislav Malyshev 0e7460d793 Merge branch 'pull-request/3304'
* pull-request/3304:
  Bump intl extension version to PHP release version
2018-06-17 13:54:04 -07:00
Xinchen Hui 77e632d04f only warning when the flag is true 2018-06-17 11:39:08 +08:00
Peter Kokot be49d61b19 Remove old SVN keywords substitutions
When the PHP source code was versioned in Subversion, there was
possible to substitute certain keywords such as $Id$ with revision
number, last change time and author name. Such approach is not used
in Git so this patch removes these outdated artifacts from source
code files.
2018-06-16 13:04:30 +02:00
Peter Kokot 5651b1a7ca Remove Git ident attribute from the iconv extension 2018-06-16 12:49:55 +02:00
Peter Kokot 7bf091c5c2 Remove SVN revision from phar phpinfo output
The SVN revision was utilized with Subversion. The Git ident
attribute applies only for particular file and since other core
extensions don't output this information anymore this patch
removes it from the phpinfo output to sync and make the phpinfo
core extensions more consistent.
2018-06-16 12:47:33 +02:00
Nikita Popov d04917c7b3 Fixed bug #75218
I've introduced a new CompileError type, from which ParseError
inherits. These errors are not parse errors in the narrow sense
of the term, even though they happen to be generated during
parsing in our implementation. Additionally reusing the ParseError
class for this purpose would change existing error messages (if
the exception is not caught) from a "Fatal error:" to a "Parse
error:" prefix, and also the error kind from E_COMPILE_ERROR to
E_PARSE.
2018-06-16 12:41:03 +02:00
Peter Kokot 0bd3fecbcb Remove old SVN keywords substitutions from the zip tests 2018-06-16 12:36:00 +02:00
David Carlier 19af5e471f Add NEWS entries
[ci skip]
2018-06-16 12:33:28 +02:00
Tom Van Looy 3775bf9351 [ci skip] Mention new hrtime() in NEWS 2018-06-16 12:30:27 +02:00
Peter Kokot 70f41d1d9c Bump snmp extension version to PHP version
This patch syncs the snmp extension to match it with the PHP release
version.
2018-06-15 12:55:21 +02:00
Xinchen Hui 35872c0960 Remove assertion 2018-06-15 17:21:59 +08:00
Xinchen Hui 51f6321189 Update NEWS 2018-06-15 16:32:27 +08:00
Xinchen Hui efcaa37190 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76477 (Opcache causes empty return value)
2018-06-15 16:31:58 +08:00
Anatol Belski 5334463e6c [ci skip] Update NEWS 2018-06-15 07:30:10 +02:00
Victor Csiky 71c04324b7 Fixe bug #76386
..that is also a duplicate of #67122
2018-06-15 07:23:31 +02:00
Peter Kokot d6ccaef3e6 Bump fileinfo extension version to PHP release version
To sync core extensions and their versioning more the fileinfo extension
can be versioned same way as PHP releases.
2018-06-15 00:28:28 +02:00
Peter Kokot b1767d8a56 Bump intl extension version to PHP release version
This patch syncs and simplifies the intl core extension versioning
to match the PHP release version.
2018-06-14 23:35:29 +02:00
Nikita Popov 0b04938c87 Fix unspecialized executor
If we conditionally fetch a value, we also need to conditionally
free it.
2018-06-14 23:26:27 +02:00
Stanislav Malyshev 3d16bb5b62 Merge branch 'pull-request/3299'
* pull-request/3299:
  Bump extension, module and PHP API numbers for 7.3
2018-06-14 12:30:41 -07:00
Jakub Zelenka f3ef13e1d6 Bump PHP_JSON_VERSION to 1.7.0 2018-06-14 20:25:59 +01:00
Michael Moravec a5748cab2e Bump extension, module and PHP API numbers for 7.3 2018-06-14 16:26:13 +02:00
Peter Kokot bbd7b2d0ee Remove old and unused warnings when building apache
The configure script already warns users at the beginning with
unrecognized options warning so additional check is not required. These
sapis were also removed from the PHP core.
2018-06-14 04:45:28 +02:00
Dmitry Stogov 591f4f005d Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed invalid free introduced by d6e81f0bfd (avoid keeping "invalid" pointer)
2018-06-14 02:41:14 +03:00
Dmitry Stogov fcfa006a4e Avoid useless stream buffer copying and workaround with chunk_size manipulation. 2018-06-14 02:34:17 +03:00
Nat Zimmermann 4ac531afb3 Revert braces inside condition 2018-06-13 23:37:14 +01:00
Nikita Popov bc56bb847d Merge branch 'PHP-7.2' 2018-06-13 23:48:37 +02:00
Dmitry Stogov c1ce43d1d2 php_json_escape_string() optimization 2018-06-13 18:26:48 +03:00
Christoph M. Becker 52f92b51aa erealloc() is infallible 2018-06-13 16:10:08 +02:00
Markus Staab 10a9c51942 emalloc never returns null 2018-06-13 16:00:41 +02:00
Peter Kokot 128cd0d0f2 Remove old SVN keywords substitutions from xsl and sockets tests
When the PHP source code was versioned in Subversion, there was
possible to substitute certain keywords such as $Id$ with revision
number, last change time and author name. Such approach is not used
in Git so this patch removes these outdated artifacts from the xsl
and sockets extensions tests files.
2018-06-13 15:56:06 +02:00
Dmitry Stogov 100b4cdabd emalloc() never returns NULL 2018-06-13 12:39:56 +03:00
Xinchen Hui 9465ec4673 Added num_roots to gc_status 2018-06-13 16:41:51 +08:00
Dmitry Stogov e788e8261e Removed "gc_" prefix. 2018-06-13 11:28:24 +03:00
Dmitry Stogov 2afc83732c Allow access to some garbage collection internals (Benjamin Eberlei) 2018-06-13 11:10:17 +03:00
Xinchen Hui 609385bbf8 Fixed bug #76446 (zend_variables.c:73: zend_string_destroy: Assertion `!(zval_gc_flags((str)->gc)). 2018-06-13 15:06:51 +08:00
Peter Kokot 97f2ce4031 Fix bug #75481: makedev warning
To use makedev the sys/sysmacros.h needs to be included on newer
systems.
2018-06-13 04:36:55 +02:00
Jakub Zelenka 1650e4669d Merge branch 'PHP-7.2' 2018-06-12 18:11:20 +01:00
Jakub Zelenka b2460c9ec2 Merge branch 'PHP-7.2' 2018-06-12 18:04:30 +01:00
Anatol Belski 0cb6b17b29 [ci skip] Update NEWS 2018-06-12 18:08:24 +02:00
Anatol Belski 548e2a6cd6 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-06-12 18:08:05 +02:00
Anatol Belski c9fc0095ce Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76462 Undefined property: DateInterval::$f
2018-06-12 15:31:49 +02:00
Xinchen Hui 1cc9933130 Fixed bug #76463 (var has array key type but not value type) 2018-06-12 20:55:06 +08:00
Tom Van Looy 19d31433dc Enable HRTime on OpenBSD
OpenBSD has clock_gettime() so this will work. They have _POSIX_TIMERS on -1 in
unistd because they don't have per-process timers.
2018-06-12 12:27:48 +02:00
Remi Collet c5ab9169ce NEWS 2018-06-12 09:36:31 +02:00
Remi Collet 25188727b1 Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  Add OPSYS_CPM constant as documented and to match libzip naming
2018-06-12 09:36:14 +02:00
Xinchen Hui 72104d2b6e supplemental fix for bug #76427
there are two parts to make this problem visible , the first is
our new gc new freeing zvals in an opposite direction(compare to 7.2)
the second is zend_object_store_del doesn't check IS_VALID since 7.3
(using assertion instead)
2018-06-12 09:40:34 +08:00
Nikita Popov f2be6e732a Update data tables for Unicode 11 2018-06-11 20:25:37 +02:00
Nikita Popov e4e334effb Remove dead code for ADD_STRING/ADD_CHAR optimization
These opcodes don't exist anymore. The modern equivalent would be
the ROPE_* opcodes. However the code would have to be different
anyway.
2018-06-11 20:17:36 +02:00
Anatol Belski 3b07c6cf87 Skip tests when Oniguruma is disabled 2018-06-11 17:44:34 +02:00
Anatol Belski a34ba6f30c Fix mbstring fallback when --disable-mbregex used 2018-06-11 17:44:34 +02:00
Xinchen Hui dc99a13fac Correct NEWS 2018-06-11 21:10:13 +08:00
Xinchen Hui 1a952bca22 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Remove inappropriate FreeLibrary calls
  Remove inappropriate FreeLibrary call
  The ZEND_EXTENSION change is merged with xdebug now so we can drop this for master only
  Fixed bug #76443 (php+php_interbase.dll crash on module_shutdown)
2018-06-11 21:01:10 +08:00
Xinchen Hui ffaee27478 Fixed bug #76427 (Segfault in zend_objects_store_put) 2018-06-11 21:00:38 +08:00
Anatol Belski b2a200188f Remove inappropriate FreeLibrary calls 2018-06-11 13:53:17 +02:00
Anatol Belski 05e2d3d59d Merge branch 'PHP-7.2'
* PHP-7.2:
  Remove inappropriate FreeLibrary call
2018-06-11 13:51:56 +02:00
Kalle Sommer Nielsen dd494a83db The ZEND_EXTENSION change is merged with xdebug now so we can drop this for master only 2018-06-11 13:34:20 +02:00
Kalle Sommer Nielsen a6b9ddbfe2 Fixed bug #76443 (php+php_interbase.dll crash on module_shutdown) 2018-06-11 11:50:39 +02:00
Peter Kokot eebad01672 Remove revision from OCI8 extension
The revisions were used in SVN. Other core extensions don't
provide this information in the phpinfo output anymore so
this patch removes it from the OCI8 info output to make it
consistent with other extensions.
2018-06-10 21:22:12 +02:00
Tyson Andre d0fc6dba0c Fix the Z_IMMUTABLE macro - '(' was mismatched
The macro properly has two matching `(` and `)` symbols
after this change.

This typo was causing syntax errors when compiling extensions
using the (deprecated) macro.

This fixes a bug in the PHP 7.3 branch introduced by
742d5a01ed
2018-06-10 21:21:42 +02:00
Nikita Popov 2edd33b29d Merge branch 'PHP-7.2' 2018-06-10 21:21:29 +02:00
Jakub Zelenka 8c3b0455ee Merge branch 'PHP-7.2' 2018-06-10 14:34:23 +01:00
Christoph M. Becker 3cbf594dfd Deprecate image2wbmp()
According to https://wiki.php.net/rfc/image2wbmp, we deprecate
`image2wbmp()`, rename the `$threshold` parameter to `$foreground`, and
remove superfluous code.
2018-06-10 00:33:42 +02:00
Nikita Popov 60323906f9 Optimizer: Don't propagate constants into MAKE_REF
This occurs in Zend/tests/assign_ref_error_var_handling.phpt,
added in 95a0709935.
2018-06-10 00:10:32 +02:00
Christoph M. Becker 92ae59cf64 [ci skip] Update NEWS
Cf. https://github.com/php/php-src/commit/3fdde65617e9f954e2c964768aac8831005497e5
2018-06-09 22:36:35 +02:00
Nikita Popov 95a0709935 Fix handling of ERROR zval in op1 of ASSIGN_REF
If op1 is ERROR the behavior is to not perform any assignment and
return NULL. However, if the RHS was a by-value returning function,
we'd instead emit a notice and return the RHS as the return value
(even though the value was not assigned to anything -- the temporary
is immediately destroyed).

This normalized the behavior to always check for an ERROR in op1
first.
2018-06-09 21:31:30 +02:00
Anatol Belski 6d239098cf Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test portability
2018-06-09 20:59:41 +02:00
Anatol Belski 8db4543fdc [ci skip] Update NEWS 2018-06-09 20:36:50 +02:00
Anatol Belski c79af09bc6 Add check for variable size array feature
Usage of VLA is not portable, wile supported by some compilers. For
instance, GCC supports it even if -std=c89 is passed. Even if we would
switch to C99, it would be still not portable at least with VC++. Thus,
adding a centralized check so such code can be guarded and moved to
alloca() if needed.
2018-06-09 20:27:16 +02:00
Nikita Popov d877d18676 Error on by-ref assign to overloaded prop returning ref
This error was already thrown if __get() was used -- however not
if it returned by reference. This is incorrect, because the
reference return makes no difference to a by-reference assignment,
which has reference-breaking semantics. The result was that the
assignment was accepted silently, even though it didn't do anything
(not even the value was assigned, let alone the reference).
2018-06-09 18:42:22 +02:00
Nat Zimmermann 3c3ef6dd26 Use .= where possible 2018-06-09 17:02:35 +01:00
Nat Zimmermann 1b767ac26b Remove unncecessary parantheses 2018-06-09 17:01:31 +01:00
Nat Zimmermann e5043d06c9 Remove unused variable old_php 2018-06-09 16:59:25 +01:00
Nat Zimmermann a91d5a8194 Fix property name 2018-06-09 16:58:41 +01:00
Christoph M. Becker eed3637d84 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #76409: heap use after free in _php_stream_free
2018-06-09 17:57:10 +02:00
Peter Kokot 7bb741cad9 Remove exif version from the phpinfo output
This patch removes the exif version in the phpinfo output to sync it
with the rest of the php bundled extensions. Also in the past the
revision id from the version control system was used and is today not
needed anymore.
2018-06-09 15:32:21 +02:00
Nikita Popov 777187cbaf Don't use UNREFs during array operations
Perform DEREFs instead. We were already doing this in some, but not
all places.

While UNREFs are supposed to be transparent, in practice they have
rare observable side effects. Calling array_merge() on an array
should never change how that array behaves.
2018-06-09 13:20:13 +02:00
Anatol Belski 9cd2d77514 Fixed bug #76422 ftruncate fails on files > 2GB 2018-06-09 11:28:24 +02:00
Nikita Popov 968eb0b38c Fix mysqlnd build without openssl 2018-06-09 11:04:40 +02:00
Nikita Popov 7498f0163b Fix handling of assign-ops on overloaded props with ref return
Assign-ops and incdec on overloaded properties are implemented
using a read_property followed by write_property. Previously, if
__get() returned by-reference, pre-incdec and assign-op
additionally also modified the reference, while post-incdec worked
correctly.

This change synchronizes the three code-paths to not modify the
reference. The pre-incdec implementation matches the post-incdec
implementation, the assign-op implementation uses a distinct
result operand.
2018-06-09 00:36:46 +02:00
Nikita Popov befc518c82 Merge branch 'PHP-7.2' 2018-06-08 23:11:45 +02:00
Peter Kokot 25c35ab30a Sync phpinfo output for pdo_pgsql
This patch removes the module version and revision from the phpinfo
output to sync the phpinfo with the rest of the bundled extensions.
2018-06-08 23:06:22 +02:00
Nikita Popov fc8f5b0f09 Merge branch 'PHP-7.2' 2018-06-08 23:02:25 +02:00
Stas Malyshev fdd9f572da Update NEWS for 7.3.0alpha2 2018-06-07 10:24:35 -07:00
Dmitry Stogov 1597b56619 Inline few small opcode handlers into hybrid executor 2018-06-07 16:30:53 +03:00
pmukhin 57e72dc198 Added const modifier 2018-06-06 21:34:18 +07:00
pmukhin 48c954ca46 76363: added jsm extension to list of mime types 2018-06-06 21:04:42 +07:00
Dmitry Stogov e17fc0d73c Added parentheses 2018-06-06 15:29:59 +03:00
Dmitry Stogov 180bf90ded Fastcall calling convention is not comaptible with variable number of arguments 2018-06-06 15:27:18 +03:00
Dmitry Stogov 531de5f24a Fixed prototypes, foo(void) instead of foo() 2018-06-06 15:26:26 +03:00
Anatol Belski 7bef16c37b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix VC compilation as variable size array is not supported
  NEWS for 7.2.8
2018-06-06 11:21:11 +02:00
Dmitry Stogov 18bc3afdcb Micro-optimizations 2018-06-06 01:57:19 +03:00
Johannes Schlüter 5de306ccd3 Merge branch 'PHP-7.1' 2018-06-06 00:25:15 +02:00
Johannes Schlüter cb5c1fbe10 Merge branch 'master' of git.php.net:/php-src 2018-06-06 00:25:01 +02:00
Johannes Schlüter 84f6f693e7 Merge branch 'PHP-7.1' 2018-06-06 00:24:19 +02:00
Christoph M. Becker c4331b00be Update to SQLite 3.24.0 2018-06-05 15:01:02 +02:00
Xinchen Hui 1ce4b484f8 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Embed zend_leave_helper() into hybrid executor to avoid call overhead.
  Cleanup
2018-06-05 17:19:17 +08:00
Xinchen Hui 0a0f6c495f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76410 (SIGV in zend_mm_alloc_small)
  Fix bug #76390 - do not allow invalid strings in range()

Conflicts:
	ext/standard/array.c
2018-06-05 17:16:45 +08:00
Dmitry Stogov 59c2ff2543 Embed zend_leave_helper() into hybrid executor to avoid call overhead. 2018-06-05 11:33:19 +03:00
Dmitry Stogov b6a2ae3a5b Cleanup 2018-06-05 11:26:15 +03:00
Stanislav Malyshev c12fc77bdf Fix bug #76390 - do not allow invalid strings in range() 2018-06-04 22:54:03 -07:00
Christoph M. Becker 4ade46ad1b [ci skip] Fix typos in NEWS 2018-06-05 00:58:03 +02:00
Christoph M. Becker 3f16a43d74 [ci skip] Remove trailing WS
Since commit 2238403 removed respective trailing WS in files generated
by this script, we remove the trailing WS in the first place, to avoid
further mundane merge conflicts.

[1] http://git.php.net/?p=php-src.git;a=commit;h=2238403892ccf87143a59814538d9f764509d9e7
2018-06-05 00:21:36 +02:00
Peter Kokot 279498564f Remove enchant version from the phpinfo output
This patch syncs the phpinfo output with other bundled extensions.
2018-06-04 18:40:38 +02:00
Peter Kokot 24e1ae0e90 Remove some old occurrences of configure.in
configure.ac is the recommended file to use instead of the old
configure.in which will be removed in autotools future versions.
2018-06-04 17:59:00 +02:00
Peter Kokot cf6b24ccda Sync tidy phpinfo extension version
This patch removes the tidy extension Git ident attribute blob name from
the phpinfo output to be synced with other extensions versioning system
and replaces table header with normal row in the first tidy info table.
2018-06-04 17:10:49 +02:00
Peter Kokot cb64696ca6 Normalize the ldap extension version in phpinfo output
This patch normalizes the phpinfo output for the ldap extension and
removes the displayed Git attribute ident blob object name.
2018-06-04 17:06:41 +02:00
Peter Kokot ede39739fd Normalize Reflection phpinfo() output
This patch normalizes the Reflection extension version in the phpinfo
output. It removes the Git attributes ident blob object name from Git
repository as an extension version.

Also the table output is synced with other extensions (i.e. enabled
in a row instead of table header).
2018-06-04 16:28:16 +02:00
Anatol Belski 01b9975639 [ci skip] Update libmagic.patch 2018-06-03 14:06:11 +02:00
Anatol Belski 6f24d75b56 Remove unnecessary decls, php.h is included 2018-06-03 12:45:37 +02:00
Anatol Belski 4363588f2f Align the ported place with libmagic 2018-06-03 12:14:42 +02:00
Peter Kokot 03a3faa151 Sync sysvsem and sysvshm versions in phpinfo
This patch removes the versions of the sysvsem and sysvshm extensions in
the phpinfo output to sync them with PHP core and bundled extensions
versions displayed. Instead it displays the extension enabled status.
2018-06-03 04:05:46 +02:00
Anatol Belski e147eb24b2 [ci skip] Add UPGRADING note 2018-06-02 20:58:39 +02:00
Peter Kokot 67dfcdba95 Update README.REDIST.BINS
- Update PCRE2 library license info
- Added libbcmath license info
2018-06-02 18:58:46 +02:00
Peter Kokot 07257a59d0 Normalize SimpleXML phpinfo output 2018-06-02 13:44:41 +02:00
Peter Kokot c71433a774 Remove revision for recode from phpinfo 2018-06-02 13:43:49 +02:00
Nikita Popov adb09c98d2 Fix return type of zend_ini_dtor 2018-06-02 13:41:09 +02:00
Peter Kokot c03ee19230 Normalize the POSIX phpinfo output
Instead of the Git attributes ident blob object name display only
extension status (enabled).
2018-06-02 13:35:22 +02:00
Peter Kokot 40c1d5d4e2 Normalize filter phpinfo() output
This patch normalizes the filter extension version in the php info
output. Instead of the Git attributes ident blob object name from Git
repository only extension status is displayed.
2018-06-02 13:35:22 +02:00
Peter Kokot 0a37b48284 Normalize sysvmsg phpinfo() output
This patch normalizes the sysvmsg extension version in the php info
output. Instead of the Git attributes ident blob object name from Git
repository it only displays the extension status.

Remove sysvmsg version
2018-06-02 13:35:21 +02:00
Peter Kokot 1fd7cbb49e Fix warnings defined but not used 2018-06-02 13:30:40 +02:00
Peter Kokot 1e5ca6209b Fix warning unused variable ret 2018-06-02 13:30:23 +02:00
Dmitry Stogov 0b90cf85a6 Removed "dead" code (zend_hash_update() never fails) 2018-06-01 11:58:57 +03:00
Dmitry Stogov 9e0f131d2b Fixed ISSET/ISEMPTY bit meaning to simplify run-time checks 2018-05-31 19:02:51 +03:00
Anatol Belski 35302c22ac Use hrtime() for timing tests 2018-05-31 15:32:47 +02:00
Anatol Belski ca2e9df56c Fix AVX part 2018-05-31 14:15:28 +02:00
Anatol Belski 95258f2480 Do one test build with AVX 2018-05-31 12:32:15 +02:00
Dmitry Stogov f2b4ec4bdc Export standard object handlers, to avoid indirect access 2018-05-31 11:57:22 +03:00
Dmitry Stogov 0d72bb8fcb Optimize zend_new_array() for special case, when size <= HT_MIN_SIZE 2018-05-31 01:17:55 +03:00
Dmitry Stogov 45d62d9f9b Use SSE/AVX instructions 2018-05-30 20:59:29 +03:00
Dmitry Stogov 683123fa39 Use SSE2 instruction to reset HashTable 2018-05-30 20:17:52 +03:00
Dmitry Stogov 3c122e1605 Avoid rehashing of "packed" array 2018-05-30 20:17:25 +03:00
Dmitry Stogov 655d249ac9 Eliminate some checks for zero character inside an inclue file name 2018-05-30 18:24:31 +03:00
Dmitry Stogov ff58d70548 Avoid agressive inlining in rarely used paths 2018-05-30 14:03:48 +03:00
Dmitry Stogov 84aab1d4e1 Marked rarely used opcodes as "cold" (e.g. ADD_CONST_CONST ususaly optimized out). 2018-05-30 01:50:44 +03:00
Peter Kokot 28136b071a Remove build system files of bundled library libbcmath
The bundled library libbcmath is maintained in the php-src and its
build system files are outdated and not used.
2018-05-29 18:56:50 +02:00
Dmitry Stogov da5a44c1c0 Revert "Avoid reference-counting"
This reverts commit ea26ab3393.
2018-05-29 18:04:16 +03:00
Dmitry Stogov d90c6f2443 Removed useless zval_ptr_dtor() 2018-05-29 17:58:06 +03:00
Dmitry Stogov 44be0fa67b Fixed HashTable load factor 2018-05-29 10:16:02 +03:00
Dmitry Stogov 37069d7d2f Replace unused generic zend_hash_*add_or_update() functions by compact implmentations. 2018-05-29 01:38:27 +03:00
Dmitry Stogov f4b7239cae _zend_hash_index_add_or_update_i() optimization 2018-05-29 00:09:49 +03:00
Peter Kokot 8cc8b48a63 Update year range in hrtime c and h files 2018-05-28 22:14:52 +02:00
Peter Kokot af01ef8741 Remove unused binary_pipes option
Option binary_pipes was added in PHP 6 which was then refactored
and this option was removed.
2018-05-28 22:14:37 +02:00
Nikita Popov c70468b8d3 Add note about heredoc BC break 2018-05-28 22:14:04 +02:00
Anatol Belski 6f4a01da21 Fix build without global registers 2018-05-28 20:44:58 +02:00
Dmitry Stogov 9af07b6ed5 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Translate correct C++ version with suitable compiler
  Fixed bug #76383 (array_map on $GLOBALS returns IS_INDIRECT)
2018-05-28 18:30:04 +03:00
Dmitry Stogov c27dda709c Removed dead code 2018-05-28 18:29:43 +03:00
Anatol Belski 74be58938c Merge branch 'PHP-7.2'
* PHP-7.2:
  Translate correct C++ version with suitable compiler
  Fixed bug #76383 (array_map on $GLOBALS returns IS_INDIRECT)
2018-05-28 17:15:22 +02:00
Dmitry Stogov c9df8ac6c5 Separate common code into helper function 2018-05-28 18:11:43 +03:00
Dmitry Stogov ea26ab3393 Avoid reference-counting 2018-05-28 17:10:58 +03:00
Dmitry Stogov 5eb1f92f31 Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence. 2018-05-28 16:27:12 +03:00
Dmitry Stogov 925f05dd1a Added missing debug arguments 2018-05-28 13:09:33 +03:00
Nikita Popov 8582e53430 Merge branch 'PHP-7.2' 2018-05-26 22:06:52 +02:00
Peter Kokot 2788ab9fa6 Enhance the ext_skel.php script file
- File is now executable
- Shebang added on top
- Normal UTF-8 encoding instead of UTF-8 with BOM
- trailing whitespaces trimmed as a CS fix
- Closing PHP tag removed in favor of readability, avoiding possible
  issues with whitespaces, and to comply with current CS from the
  PHP ecosystem - PSRs etc.
2018-05-26 22:00:17 +02:00
Nikita Popov cc98b88087 UPGRADING tweaks
Fix a typo and clarify that Reflection changes only affect string
export. No API relevant return values are changed.

[ci skip]
2018-05-26 21:59:36 +02:00
Christoph M. Becker 2c4556ee43 Update to Oniguruma 6.8.2 2018-05-26 14:03:20 +02:00
Christoph M. Becker e265a96d93 Fix #76137: config.guess/config.sub do not recognize RISC-V
These had their latest update more than three years ago, so there may
be even more issues.  Since the config project[1] does not have any
versioning, we're grabbing the most recent HEAD.

[1] <http://git.savannah.gnu.org/gitweb/?p=config.git;a=summary>
2018-05-25 15:20:25 +02:00
Nikita Popov 95c9d9d2d7 Add some upgrading notes for mbstring 2018-05-25 12:09:51 +02:00
Nikita Popov 9d63f4dec1 Fixed bug #76319
While at it, also make sure that mbstring case conversion takes
into account the specified substitution character and substitution
mode.
2018-05-25 11:33:13 +02:00
Joe Watkins 3382424903 Merge branch 'PHP-7.2'
* PHP-7.2:
  fix phpdbg disabling chroot support
2018-05-23 22:24:07 +02:00
Pavel Kovář 11b5ec491f Export php_date_get_interval_ce() and php_date_get_period_ce() for extension use 2018-05-23 21:04:07 +02:00
Xinchen Hui 0aff0548cb Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #76367 (NoRewindIterator segfault 11)
2018-05-23 14:46:32 +08:00
Jakub Zelenka 3986b6ab6e Merge branch 'PHP-7.2' 2018-05-22 13:41:22 +01:00
Xinchen Hui 6c3a38353c indent 2018-05-22 17:05:39 +08:00
Xinchen Hui bc1211b8b8 unnecessary branch 2018-05-22 17:04:42 +08:00
Anatol Belski 8c41e314c8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Allow pecl like usage in ext/pdo, refs #2955
2018-05-21 12:20:27 +02:00
Anatol Belski 176552ba5e Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
2018-05-20 14:28:36 +02:00
Anatol Belski bcb1dbf6e4 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76337
2018-05-20 13:33:46 +02:00
Anatol Belski d2d78cb3e8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix versions, as 7.2.6RC is already out
2018-05-19 15:46:52 +02:00
Anatol Belski 4a17c9c25c Merge branch 'PHP-7.2'
* PHP-7.2:
  Refix the tests once more
2018-05-19 13:12:27 +02:00
Anatol Belski 2042304669 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix remaining AppVeyor test failures due to the image update
2018-05-19 11:45:17 +02:00
Anatol Belski 4fb8304143 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix Opcache test fails regarding to AppVeyor image update
2018-05-18 18:39:07 +02:00
Jakub Zelenka 587cede59d Merge branch 'PHP-7.2' 2018-05-18 17:25:06 +01:00
Anatol Belski ef9922faa9 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix curl tests wrt. AppVeyor and curl updates
2018-05-18 17:44:48 +02:00
Anatol Belski a551d75942 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix cli server test fails after recent AppVeyor image update
2018-05-18 13:41:14 +02:00
Anatol Belski e788708e01 [ci skip] Add upgrading note 2018-05-17 13:18:43 +02:00
Anatol Belski 9d4da80e90 Implemented winsock info import/export 2018-05-17 11:36:23 +02:00
Anatol Belski 1cdf5b7b4b Allow appending an arbitrary suffix to the packages 2018-05-16 17:10:23 +02:00
Anatol Belski 8ebb6e1d9d Extend compile conditions 2018-05-15 11:57:32 +02:00
Christoph M. Becker b9f99a3aed Fix typos 2018-05-14 23:50:42 +02:00
Christoph M. Becker 027dd86107 Dump obsolete EBCDIC support
As already suggested by Thies this code won't compile anymore, because
php3_rqst has been removed in 1999[1].  Since apparently nobody
complained about that, we assume that EBCDIC support isn't required
here, and rid the respective code.

Furthermore, the code appears to be erroneous anyway, since at least
XBM isn't a binary file format.

[1] <https://github.com/php/php-src/commit/3cd0af11eea32f802228004af8fe424c62c8fbfb#diff-1a9cfc6173e3a434387996e46086da56L258>
2018-05-14 23:26:43 +02:00
Dmitry Stogov e9e2d068b6 Fixed conditions 2018-05-14 17:23:37 +03:00
Anatol Belski ce3dae4881 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-05-14 12:10:19 +02:00
Anatol Belski 4fc68911ca Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76335 "link(): Bad file descriptor" with non-ASCII path
2018-05-14 10:45:22 +02:00
Anatol Belski f5ce1fb724 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-05-14 08:45:31 +02:00
Anatol Belski 038a2e4756 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76333 PHP built-in server does not find files if root path contains special characters
2018-05-13 18:43:12 +02:00
Jakub Zelenka 2a2bf97a9a Fix keylen type mismatch in openssl_pkey_derive 2018-05-11 17:05:03 +01:00
Jakub Zelenka 1f474272e5 Update NEWS and UPGRADING for openssl_pkey_derive 2018-05-09 19:56:34 +01:00
Jakub Zelenka a76633444c Fix openssl_pkey_derive arginfo 2018-05-09 19:38:47 +01:00
Jim Zubov 897133fbda Add openssl_pkey_derive 2018-05-09 19:37:01 +01:00
Anatol Belski a886ca920f Merge branch 'PHP-7.2'
* PHP-7.2:
  Update SDK version for AppVeyor
  bump versions
2018-05-09 11:31:07 +02:00
Dmitry Stogov 524f5245c5 Avoid useless checks, using zend_string_efree(), in cases where the string is known to be a temporary allocated zend_string. 2018-05-08 17:30:15 +03:00
Dmitry Stogov 9565075cbd Destroy function arguments in direct order 2018-05-08 15:28:57 +03:00
Xinchen Hui a48ade17db Cleanup 2018-05-08 17:32:35 +08:00
Dmitry Stogov 4ad9cf4605 Bit test optimization 2018-05-08 11:58:17 +03:00
Derick Rethans dc796b04c1 Updated to version 2018.5 (2018e) 2018-05-08 09:24:28 +01:00
Derick Rethans 012be34575 Empty merge 2018-05-08 09:24:28 +01:00
Dmitry Stogov b8a91ac50b Use "fastcall" calling convention 2018-05-08 01:31:49 +03:00
Dmitry Stogov 1e00b767a4 Use iteration instead of recursion 2018-05-08 01:22:39 +03:00
Dmitry Stogov 858d545ce6 micro optimization 2018-05-08 00:22:04 +03:00
Dmitry Stogov 63f5e11d9b Use add/sub instead of inc/dec 2018-05-08 00:00:59 +03:00
Dmitry Stogov 880694952f micro optimisation 2018-05-07 22:29:16 +03:00
Anatol Belski 3430a1cc9b Merge branch 'PHP-7.2'
* PHP-7.2:
  Update _bits_per_char to use with new PHP 7.1. or greater
2018-05-07 14:43:08 +02:00
Dmitry Stogov a0e4488ec7 Optimize zend_hash_find() for the most usual case 2018-05-07 15:18:02 +03:00
Anatol Belski 1bb1f17827 Fix default credentials when none was passed 2018-05-07 12:14:38 +02:00
Anatol Belski 7fbcedb7df Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-05-06 16:16:19 +02:00
Anatol Belski 6fe3bf7831 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update libs_version.txt
2018-05-06 16:10:42 +02:00
Dmitry Stogov 34ed8e53fe Changed worst HashTable load factor from 1.0 to 0.5 2018-05-04 02:41:35 +03:00
Pedro Magalhães 2dca8671e4 Fix #76300 - Dont attempt to change visibility of a parent private 2018-05-03 21:54:44 +01:00
Dmitry Stogov eafa92ba9d zend_fcall_info_cache.calling_scope is not used by zend_call_function() and doesn't have to be initialized.
It's used only as a result of zend_is_callable() in forward_static_call and spl_autoload.
2018-05-03 19:27:04 +03:00
Dmitry Stogov fdb347a753 zend_is_callable() improvement 2018-05-03 19:25:53 +03:00
Anatol Belski 12da45ada0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix tests, ref bug #74385
2018-05-03 17:17:02 +02:00
Anatol Belski 97dbbaab14 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #74385 Locale::parseLocale() broken with some arguments
2018-05-03 16:44:22 +02:00
Dmitry Stogov 1a63fa6ec9 Implemented Request #76178 (Class constants are slow: they should be inlined at runtime)
Run-time cache is used to eliminate recalculation of constant expression in RECV_INIT opcode (only non reference countable values are cached).
2018-05-03 14:40:18 +03:00
Dmitry Stogov 5a31e14beb Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)
2018-05-03 12:12:07 +03:00
Anatol Belski a8ec35ac38 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix shared ext/zip build with static dependency lib
2018-05-02 17:28:10 +02:00
Anatol Belski dbea6e154d Update libmagic.patch 2018-04-30 14:29:55 +02:00
Anatol Belski 94699d2ade Use suitable datatypes 2018-04-30 14:27:11 +02:00
Anatol Belski f603ab57fc Reuse the struct timespec based pieces in libmagic 2018-04-30 12:02:47 +02:00
Thomas Punt 26b0385df8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix potential memory leak in the enchant extension
  Fix potential memory leak in curl extension
2018-04-29 20:05:20 +01:00
Anatol Belski cf45479a19 Reuse strcasestr implementation from libmagic 2018-04-29 19:39:57 +02:00
Thomas Punt 5295c35f69 Merge branch 'master' of https://git.php.net/push/php-src 2018-04-29 17:39:22 +01:00
Thomas Punt 091f69e869 Merge branch 'PHP-7.2'
* PHP-7.2:
  The SO_PASSCRED constant is conditionally defined
2018-04-29 17:38:59 +01:00
Anatol Belski 09db1ae4b7 Fix C89 compat 2018-04-29 16:18:59 +02:00
Anatol Belski e2182a1ba7 Port libmagic 5.33 2018-04-29 16:02:08 +02:00
Thomas Punt 74ecbbebe5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix potential memory leaks in sockets extension
2018-04-28 13:58:45 +01:00
Dmitry Stogov c88be6aee1 Bit check micro-optimization 2018-04-28 14:13:12 +03:00
Dmitry Stogov 8a719c1b12 Fixed mess between BOOL and SUCCESS/FAILURE 2018-04-28 14:12:36 +03:00
Dmitry Stogov f56f2ca6ed Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert "Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp)."
  Revert "Merge branch 'PHP-7.1' into PHP-7.2"
2018-04-28 13:29:17 +03:00
Dmitry Stogov 1b305ecdcc Revert "Merge branch 'PHP-7.2'"
This reverts commit f75b8a44cc, reversing
changes made to aeb734910a.
2018-04-28 13:26:32 +03:00
Dmitry Stogov 83f98f7340 Don't store values of PHP_SAPI and PHP_BINARY in file cache, because it may be used by different SAPI. 2018-04-28 01:20:49 +03:00
Dmitry Stogov f75b8a44cc Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76205 (PHP-FPM sporadic crash when running Infinitewp).
2018-04-28 00:28:01 +03:00
Nikita Popov aeb734910a Merge branch 'PHP-7.2' 2018-04-27 22:24:36 +02:00
Nikita Popov 1c887eaf0d Merge branch 'PHP-7.2' 2018-04-27 17:02:40 +02:00
Thomas Punt 31914a827e Merge branch 'PHP-7.2'
* PHP-7.2:
  Allocate default ini values into persistent memory
2018-04-26 21:09:34 +01:00
Thomas Punt d08f1c5f5b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix memory leak when phpdbg fails to start up
2018-04-26 16:44:02 +01:00
Nikita Popov 3182292015 Fix unused variable warnings 2018-04-26 16:53:58 +02:00
David Carlier 86cff0bd4c Avoid using _N in SSE code
The _N constant is already defined in OpenSSL. Instead use some
more explicit variable names.
2018-04-26 16:50:19 +02:00
Nikita Popov 32692bb083 Merge branch 'PHP-7.2' 2018-04-26 16:17:23 +02:00
Anatol Belski 16216b6666 Switch to more robust config for external pcre2
For the standard layout the first option is pkg-config. Otherwise,
pcre2-config is used, which is produced by a manual installation into a
prefix. This removes the most of the hackish pieces like checking for
the lib filenames and parsing headers.
2018-04-26 14:20:36 +02:00
Anatol Belski d22d99a344 Fix regex 2018-04-25 16:30:10 +02:00
Anatol Belski 217354899b Revamp pcre config for build with external lib
- support multiarch in addition to the usual lib path
- fix symbol checks
- fix jit availability check
- exit early on unsupported version
2018-04-25 16:17:20 +02:00
Ferenc Kovacs a19ce1eee6 Merge branch 'PHP-7.2' 2018-04-25 00:18:24 +02:00
Remi Collet e79013a71f Merge branch 'PHP-7.2'
* PHP-7.2:
  update NEWS for 7.2.5
2018-04-24 17:28:25 +02:00
Anatol Belski e107a03419 Fix lib names for build with external libpcre2 2018-04-24 17:06:27 +02:00
Anatol Belski b9c2b92b45 Merge branch 'PHP-7.2'
* PHP-7.2:
  7.0.31 next
2018-04-24 11:38:14 +02:00
Anatol Belski 1bf46047c7 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
2018-04-24 11:26:27 +02:00
Anatol Belski 1de1c86688 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test portability
2018-04-24 10:49:34 +02:00
Stanislav Malyshev 99f1d904a0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix tsrm_ls
  Fix #76129 - remove more potential unfiltered outputs for phar
  Fix test
  Fix bug #76248 - Malicious LDAP-Server Response causes Crash
  Fix bug #76249 - fail on invalid sequences
  Fix #76130: Heap Buffer Overflow (READ: 1786) in exif_iif_add_value
  Fix bug #75981: prevent reading beyond buffer start
2018-04-23 22:04:22 -07:00
Stanislav Malyshev 03108697b8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Add a bit of defensive conding for bug #76155
2018-04-22 20:28:44 -07:00
Anatol Belski 978cef04a5 Implement output verbosity seting for nmakefile 2018-04-20 11:19:16 +02:00
Anatol Belski c4f4cc95c7 Avoid strlen calls for regexes 2018-04-19 13:29:58 +02:00
Anatol Belski 2e5ac355b9 Move to unsigned types in phar
Preventing integer overflows in principle, which allows to avoid additional
range checks. The phar format is based on 32-bit lengths, so the storage
sizes was kept same.
2018-04-18 20:15:05 +02:00
Jakub Zelenka 8327c4c3bd Merge branch 'PHP-7.2' 2018-04-15 20:43:17 +01:00
Mark Seuffert 193c02875a No Content-Type header if MIME type is unknown 2018-04-14 13:08:53 +02:00
Levi Morrison 0c80cb164f Fix bug #76198 2018-04-14 13:07:44 +02:00
Nikita Popov 33bc061df2 Merge branch 'PHP-7.2' 2018-04-14 13:06:13 +02:00
Thomas Punt 4887357269 Implement flexible heredoc/nowdoc syntax
RFC: https://wiki.php.net/rfc/flexible_heredoc_nowdoc_syntaxes

* The ending label no longer has to be followed by a semicolon or
  newline. Any non-label character is fine.
* The ending label may be indented. The indentation will be stripped
  from all lines in the heredoc/nowdoc string.

Lexing of heredoc strings performs a scan-ahead to determine the
indentation of the ending label, so that the correct amount of
indentation can be removed when calculting the semantic values for
use by the parser. This makes the implementation quite a bit more
complicated than we would like :/
2018-04-13 21:35:37 +02:00
Jakub Zelenka dca2d9d56d Merge branch 'PHP-7.2' 2018-04-13 20:18:50 +01:00
Jakub Zelenka b7b65fbc7b Merge branch 'PHP-7.2' 2018-04-13 20:13:18 +01:00
Christoph M. Becker 9993304da4 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix arginfo for array_replace(_recursive) and array_merge(_recursive)
2018-04-13 15:36:15 +02:00
Christoph M. Becker 7c65345e18 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #76164: exif_read_data zend_mm_heap corrupted
2018-04-12 23:02:07 +02:00
Christoph M. Becker c8c0bb11e7 [ci skip] Update UPGRADING
Cf. ce1d69a1f6 and
fef879a2d6, respectively.

Patch provided by Gabriel Caruso.
2018-04-12 19:00:22 +02:00
Anatol Belski 319856dc62 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix memory leak
2018-04-12 18:26:31 +02:00
Anatol Belski d16d80f6de Merge branch 'PHP-7.2'
* PHP-7.2:
  bump versions
2018-04-12 18:24:11 +02:00
Christoph M. Becker 7eeb139829 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
2018-04-12 18:12:41 +02:00
Christoph M. Becker 255d38934b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed #74892 - Fixed URL rewriting for urls started with #
2018-04-12 17:51:05 +02:00
Remi Collet c9d11a9ddb Merge branch 'PHP-7.2'
* PHP-7.2:
  next is 7.2.6
2018-04-11 07:54:31 +02:00
Christoph M. Becker d2ebe41464 Update bundled libsqlite to 3.23.1 2018-04-10 23:20:21 +02:00
George Wang 6e8cce08f9 Merge branch 'PHP-7.2' 2018-04-10 16:57:49 -04:00
Xinchen Hui 085999c16c Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #76143 (Memory corruption: arbitrary NUL overwrite)
2018-04-10 16:33:51 +08:00
Anatol Belski 14de058086 Rethink conditions
Raise the requirement to ICU 56. Mixing both old and new normalizer APIs
would create too much complexity. Therefore go by the recommended ICU
version where all the normalizer API became stable. For the older ICU,
the deprecated normalizer API is used.
2018-04-06 21:33:13 +02:00
Anatol Belski 39301abbe1 Expose functionality for NFKC_Casefold normalization 2018-04-06 18:14:11 +02:00
Anatol Belski f9a3519f41 Sync normalizer_get_raw_decomposition() to allow passing form
as it is the case with the other Normalizer methods.
2018-04-06 11:13:15 +02:00
Anatol Belski 36014ad23f Replace the deprecated API by the newer one available with ICU 56+ 2018-04-06 10:12:44 +02:00
Khan M Rashedun-Naby ef79b3ae0c Author Name Character Fix 2018-04-06 08:37:09 +02:00
Anatol Belski 13a5020f98 Check feature availability as ICU < 49 is still supported 2018-04-05 18:08:49 +02:00
Anatol Belski 9a8e7b5718 Use recommended way to handle utf*.h headers and obsolete symbols 2018-04-05 17:22:44 +02:00
Anatol Belski 863aeddc35 Merge branch 'PHP-7.2'
* PHP-7.2:
  Group common flags
2018-04-05 16:46:34 +02:00
Anatol Belski df2e4fd8fc Merge branch 'PHP-7.2'
* PHP-7.2:
  Rename var
2018-04-05 14:56:45 +02:00
Anatol Belski 50c8d3e0e7 Fix comparison 2018-04-05 14:22:38 +02:00
Anatol Belski 13a2f2d041 Move to non deprecated API on suitable ICU versions 2018-04-05 13:58:03 +02:00
Anatol Belski 08178ed231 Use recommended options for explicit UnicodeString constructors 2018-04-05 13:09:42 +02:00
Christoph M. Becker a9ab5d473b [ci skip] Update UPGRADING
5c5bd30339 removed support for `--with-libmbfl`.
2018-04-04 14:11:37 +02:00
Dmitry Stogov 4df89a31b0 Eliminate useless checks 2018-04-04 02:12:26 +03:00
Dmitry Stogov cb464a53c8 Use "fastcall" calling convention 2018-04-04 01:12:59 +03:00
George Wang 005f2a4676 Merge branch 'PHP-7.2' 2018-04-03 11:48:00 -04:00
Anatol Belski 3aa030e7d9 Merge branch 'PHP-7.2'
* PHP-7.2:
  Sync fix for bug #72498 for 32-bit
2018-04-03 17:25:52 +02:00
Chris Wright 658a23a974 Remove warnings from inet_pton()/inet_ntop() 2018-04-03 14:51:47 +01:00
Anatol Belski 8e6d7f0d8f Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-04-03 11:30:14 +02:00
Anatol Belski 917b3e716a Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix shared ext/intl compilation
  Better explanation for the opcache.max_wasted_percentage ini setting since it was pretty confusing before
2018-04-03 10:44:01 +02:00
Christoph M. Becker a4cbd80b8d Update bundled libsqlite to 3.23.0 2018-04-02 23:20:20 +02:00
Dmitry Stogov dc091870ea Prefer reloading key->h 2018-04-02 23:43:37 +03:00
Dmitry Stogov db307eae03 Dereference child1 only after NULL check 2018-04-02 22:16:58 +03:00
Anatol Belski d8200e4885 Simplify namespace access
The icu namespace is an alias which resolves to the real namespace.
2018-04-01 01:03:40 +02:00
Anatol Belski 8d35a42383 Utilize the recommended way to handle the icu namespace 2018-03-31 18:51:56 +02:00
Anatol Belski cad2a0f9c3 Revert the automatic namespace addition 2018-03-31 18:51:56 +02:00
Rasmus Lerdorf 4b4cd6907f Better explanation for the opcache.max_wasted_percentage ini setting
since it was pretty confusing before
2018-03-30 13:28:45 -07:00
Christoph M. Becker ab592df5dd Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #52070: imagedashedline() - dashed line sometimes is not visible
2018-03-30 19:39:44 +02:00
Jakub Zelenka 6441b1bb31 Merge branch 'PHP-7.2' 2018-03-30 18:02:07 +01:00
Dmitry Stogov d4aba32d8c Cache negative defined() results 2018-03-30 16:41:02 +03:00
Anatol Belski ef85100169 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix clang build, ref buf #76153
2018-03-30 14:17:34 +02:00
Anatol Belski cc7b4b7e52 Switch to PostgreSQL 10 for AppVeyor tests 2018-03-29 18:31:17 +02:00
Anatol Belski c4a2824cb4 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update binary SDK version for AppVeyor
2018-03-29 17:01:27 +02:00
Anatol Belski a6ac5699b6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Adjust tests for ICU 61.1 compatibility
2018-03-29 14:14:29 +02:00
Dmitry Stogov 4aa9505b6e Merge identical handlers 2018-03-29 11:13:17 +03:00
Ferenc Kovacs 2f0950d599 Merge branch 'PHP-7.2' 2018-03-28 23:23:06 +02:00
Anatol Belski 3f8d05b16c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76153 Intl compilation fails with icu4c 61.1
2018-03-28 18:05:22 +02:00
Joe Watkins 9b89b09b24 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed #75996: Add the right urls to the header of mt_rand.
2018-03-27 22:10:34 +02:00
johnstevenson 5ff9d229ef Test ini file reporting functions 2018-03-27 22:07:12 +02:00
Gabriel Caruso a09c851ca9 Remove, or fix, unused variables 2018-03-27 22:04:26 +02:00
Joe Watkins f37e95a443 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #76131 some arginfo params are different from the documentation
2018-03-27 22:00:31 +02:00
solotandem 94b4abdbc4 Be consistent in is_executable on a directory in any stream wrapper.
Current code treats the 'local files' stream wrapper ('php_plain_files_wrapper')
  different than all other stream wrappers. For the 'local' stream wrapper,
  is_executable only checks the mode key in the filestat array on the file or
  directory in question. For other stream wrappers, is_executable always returns
  FALSE on a directory. This treatment is inconsistent on its face.

  Also, for a custom stream wrapper that also points to local files, the result
  of is_executable is always FALSE even though it may be TRUE if the function were
  called on the same item using the 'local' stream wrapper from PHP.

  NOTE: patch does not attempt to add a test for this as there are no tests of
  is_executable for stream wrappers.
2018-03-27 21:49:26 +02:00
Anatol Belski 51172e81aa Merge branch 'PHP-7.2'
* PHP-7.2:
  Update libs_versions.txt
2018-03-27 19:47:03 +02:00
Anatol Belski 2b8772a540 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Fix release date
2018-03-27 16:05:21 +02:00
Anatol Belski acec6f7fe9 Merge branch 'PHP-7.2'
* PHP-7.2:
  7.0.30 next
2018-03-27 15:04:37 +02:00
Anatol Belski 9a7ee28fbd Merge branch 'PHP-7.2'
* PHP-7.2:
  [skip ci] Update NEWS
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-03-27 14:30:01 +02:00
Anatol Belski 5e00c15b88 Merge branch 'PHP-7.2'
* PHP-7.2:
  Do not set PR_SET_DUMPABLE by default
  Do not set PR_SET_DUMPABLE by default
2018-03-27 14:21:42 +02:00
Anatol Belski 6cce3548f1 Fix datatypes 2018-03-26 15:10:16 +02:00
Anatol Belski e9cbd3c4b0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix phpize build when DEFINE() is involved
2018-03-26 13:39:30 +02:00
Tim Bazuin 033907b9a5 Add support for rl_completion_suppress_append and rl_completion_append_character
These options are only available with libreadline.
2018-03-25 18:21:35 +02:00
timurib f7f48643e7 Remove redundant warning in array_push() and array_unshift()
Cf. https://github.com/php/php-src/pull/3011.
2018-03-25 17:49:04 +02:00
Anatol Belski 4be28e3f8e Merge branch 'PHP-7.2'
* PHP-7.2:
  Sync version for VC++ 15.7
2018-03-25 13:00:48 +02:00
Christoph M. Becker 5cb825df72 Fix #69948: path/domain are not sanitized in setcookie
For improved security, characters not allowed for name and value should
also be forbidden for path and domain.
2018-03-24 17:32:30 +01:00
Christoph M. Becker aed1e358dc Implement #51368: php_filter_float does not allow custom thousand separators
A set of hard-coded thousand separator characters (presently, `',.`) is
somewhat limited (users may prefer other separators, such as spaces or
underscores), as well as somewhat too liberal (arbitrary combinations
of different thousand separators are presently possible).  Therefore we
introduce a `thousand` option analogous to `decimal`, which allows to
define the desired thousand separators as non-empty string, defaulting
to `',.`.  While we easily could support empty strings here as well,
that would not make much sense, since this behavior can more easily be
accomplished by not setting the `FILTER_FLAG_ALLOW_THOUSAND` flag in
the first place.
2018-03-24 15:04:32 +01:00
Nikita Popov 9a3bb1201f Merge branch 'PHP-7.2' 2018-03-24 13:16:31 +01:00
Derick Rethans f16e0f8bbe Updated to version 2018.4 (2018d) 2018-03-24 11:26:17 +00:00
Derick Rethans 7c430fc0ee Empty merge 2018-03-24 11:26:17 +00:00
Nikita Popov c069adb4ba Merge branch 'PHP-7.2' 2018-03-23 22:04:18 +01:00
Gabriel Caruso 543cab8a00 Small improvements to run-tests
* substr instead of preg_match
* cast instead of settype
* remove $borked and check if $bork_info isn't null to report borked
tests
* remove some error control operators
2018-03-23 21:15:18 +01:00
Nikita Popov bd4b203585 Merge branch 'PHP-7.2' 2018-03-23 21:14:58 +01:00
David Carlier 112578fc35 Don't use optimize pragmas with clang 2018-03-23 19:05:51 +01:00
Khan M Rashedun-Naby 08e6840801 Fix typo in crc32.h 2018-03-23 19:05:15 +01:00
Niklas Keller e459d27315 Drop double CHECK_NULL_PATH check for PHARs 2018-03-23 19:04:47 +01:00
Gabriel Caruso caa32517ba Use ZEND_ARG_ARRAY_INFO in DateTime*::__set_state 2018-03-23 18:58:42 +01:00
Nikita Popov ad87e2bd6a Merge branch 'PHP-7.2' 2018-03-23 18:57:58 +01:00
Dmitry Stogov 91ba1f2085 Remove "hot" mark from JMP(Z|NZ|ZNZ) with IS_CONST operand 2018-03-23 16:11:27 +03:00
Dmitry Stogov fe6f092e5e Fixed bug #75982 ($_SERVER mostly empty with default variables_order GPCS on FastCGI/CGI) 2018-03-23 15:17:10 +03:00
Dmitry Stogov 295b233bfd Mark few more opcode handlers as "hot". 2018-03-23 13:59:47 +03:00
Paul Crovella aca0f7e24c [ci skip] Add normalizer_get_raw_decomposition to UPGRADING 2018-03-23 10:37:05 +01:00
Paul Crovella b873d3c288 Add normalizer_get_raw_decomposition function
Implements #76111 https://bugs.php.net/bug.php?id=76111
2018-03-22 23:27:39 +01:00
Dmitry Stogov a795bd8265 Optimize zend_hash_real_init() 2018-03-23 00:13:45 +03:00
Dmitry Stogov 8598240c69 Fixed a behavior break introduced by d7f2dc4ec6 2018-03-22 16:37:34 +03:00
Dmitry Stogov e791e93b55 Make ZEND_ISSET_ISEMPTY_CV specialised across ISSET/ISEMPTY and HOT (the handler is really small, so inlining affects executor size insignificantly) 2018-03-22 13:03:45 +03:00
Dmitry Stogov e6c179834b Allow extra specialisation for ISSET/ISEMPTY handlers 2018-03-22 13:02:49 +03:00
Dmitry Stogov d1c6bda2bb Fixed expectation 2018-03-22 12:48:22 +03:00
Dmitry Stogov 1735e29b7f Reduce overhead of extra-specialization for opcode handler selection. 2018-03-22 11:33:17 +03:00
Dmitry Stogov d7f2dc4ec6 Improve HashTable iterators handling:
- Avoid iterators check/update on each HashTable update opration
- Keep position equal (or above) nNumUsed instead of HT_INVALID_IDX
- Fixed iterators handling in array_unshift()
2018-03-22 02:41:49 +03:00
Anatol Belski 88b42338b3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update SDK version for AppVeyor
2018-03-21 13:18:20 +01:00
Dmitry Stogov feb22b24cf Micro optimization 2018-03-21 12:39:56 +03:00
Dmitry Stogov 28ab2060ee Micro optimization 2018-03-21 11:57:54 +03:00
Anatol Belski f9cfc029a5 Rework datatypes wrt warnings 2018-03-20 22:09:48 +01:00
Christoph M. Becker ec5b408d81 Update to Oniguruma 6.8.1 2018-03-20 17:44:27 +01:00
Christoph M. Becker 8d9f47fb51 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #76113: mbstring does not build with Oniguruma 6.8.1
2018-03-20 17:02:52 +01:00
Anatol Belski 5e106778f0 Use const pointers 2018-03-20 11:12:25 +01:00
Christoph M. Becker 9004985273 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #75944: Wrong cp1251 detection
2018-03-19 14:48:10 +01:00
Anatol Belski cd8d56102f Reuse new alignment macros 2018-03-19 14:38:41 +01:00
Anatol Belski 18750a2238 Eliminate cast 2018-03-19 11:44:27 +01:00
Stanislav Malyshev 371076d6f0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Set tests exit status by defaul - also in other instance.
2018-03-19 01:20:04 -07:00
Stanislav Malyshev 6aec16c0d9 Merge branch 'PHP-7.2'
* PHP-7.2:
  Set tests exit status by default.
2018-03-18 15:07:53 -07:00
Anatol Belski 397d40cdd7 Mark non exported symbol as static 2018-03-17 21:17:47 +01:00
Anatol Belski bb2bfa6213 Use const pointers 2018-03-17 12:45:22 +01:00
Anatol Belski fa9ea3c9eb Use const pointers where appropriate 2018-03-16 20:37:51 +01:00
Anatol Belski 192956bb7f Switch to placeholder matching 2018-03-16 18:57:32 +01:00
Anatol Belski 6bbc4bf57e Merge branch 'PHP-7.2'
* PHP-7.2:
  Sync test with newer output
2018-03-16 18:56:55 +01:00
Anatol Belski 0097619925 Use const pointers at some appropriate places 2018-03-16 15:43:30 +01:00
Xinchen Hui 5a0b8c125a slashchars are 16 bytes aligned 2018-03-16 16:01:32 +08:00
Xinchen Hui 4353e1100e Fixed folder 2018-03-16 13:23:35 +08:00
Xinchen Hui 9f456d6880 Optimized str_rot13 with SSE2 instructions 2018-03-16 10:52:57 +08:00
Anatol Belski e659fcd89e Workaround VA macro expansion difference with VC++ 2018-03-15 21:17:40 +01:00
Dmitry Stogov 4bbf200b4e Optmized AST creation 2018-03-15 15:40:04 +03:00
Dmitry Stogov eb39d8d686 Use cheaper functions 2018-03-15 12:46:19 +03:00
Xinchen Hui 82e325ea91 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76094 (Access violation when using opcache)
2018-03-15 11:17:14 +08:00
Dmitry Stogov bcacb7545c PHP scanner optimization 2018-03-15 01:33:17 +03:00
Anatol Belski 5a485b1f43 Merge branch 'PHP-7.2'
* PHP-7.2:
  Reduce var scope
2018-03-14 23:11:02 +01:00
Anatol Belski ddceba9f13 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix stack use after scope
2018-03-14 22:23:38 +01:00
Dmitry Stogov 64f64cf0b7 zend_ast_destroy() optimization 2018-03-15 00:05:00 +03:00
Dmitry Stogov 73f7c84685 Mark zend_ast_export() as "cold". 2018-03-14 23:13:20 +03:00
Dmitry Stogov 53b474504d PHP scanner optimization 2018-03-14 21:27:57 +03:00
Dmitry Stogov d69e3ec47c Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Remove unused argument
  Upgrade binary SDK version for AppVeyor
2018-03-14 21:26:50 +03:00
Anatol Belski f9822b143e Remove unused argument 2018-03-14 16:33:57 +01:00
Dmitry Stogov 1af60a2a71 Keep initialized object_handlers structures in read-only memory. 2018-03-14 14:01:45 +03:00
Anatol Belski 55155a93b6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Upgrade binary SDK version for AppVeyor
2018-03-14 12:01:38 +01:00
Dmitry Stogov 12baec3dfa Move constant array into read-only memory 2018-03-14 11:35:31 +03:00
Dmitry Stogov 9dc6661976 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed user-opcode support
2018-03-14 09:41:55 +03:00
Dmitry Stogov a1a2ad701c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed use-after-free
2018-03-14 09:14:32 +03:00
Joe Watkins 755d2262c0 Merge branch 'PHP-7.2'
* PHP-7.2:
  bump versions
2018-03-14 05:59:40 +01:00
Christoph M. Becker 129dd521bb Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #74139: mail.add_x_header default inconsistent with docs [ci skip]
2018-03-14 00:01:46 +01:00
Dmitry Stogov 8afb91cdad PHP scanner optimization 2018-03-14 01:48:17 +03:00
Dmitry Stogov d1585a9e3f Revert "Handle scanner error in first place (don't hide them from ext/tokenizer) and cheaper whitespace handlig."
This reverts commit 0d6da03f5c.
2018-03-14 01:08:03 +03:00
Dmitry Stogov 0d6da03f5c Handle scanner error in first place (don't hide them from ext/tokenizer) and cheaper whitespace handlig. 2018-03-13 18:42:09 +03:00
Christoph M. Becker 62329ef5f0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #76088: ODBC functions are not available by default on Windows
2018-03-13 14:34:26 +01:00
Christoph M. Becker 1210df6016 Merge branch 'PHP-7.2'
* PHP-7.2:
  next is 7.2.5
2018-03-13 14:28:45 +01:00
Dmitry Stogov 52fddfcca2 Avoid useless iterations 2018-03-13 16:07:18 +03:00
Dmitry Stogov 9c0dfd4f10 Get rid of useless SET_UNUSED() 2018-03-13 14:34:48 +03:00
Dmitry Stogov c7045174f1 Moved compiler helper functions from zend_opcode.c to zend_compile.c 2018-03-13 13:49:58 +03:00
Dmitry Stogov 9e1e284d48 Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert "More accurate symbolic constraints oferflow/unserflow handling (better fix for bug #76074)."
2018-03-13 11:04:03 +03:00
Dmitry Stogov 1c3796b751 Merge branch 'PHP-7.2'
* PHP-7.2:
  More accurate symbolic constraints oferflow/unserflow handling (better fix for bug #76074).
2018-03-13 10:47:11 +03:00
Xinchen Hui c305dbacc8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Forgot NEWs
  Forgot NEWS
2018-03-13 13:01:45 +08:00
Xinchen Hui f4da273c76 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76085 (Segmentation fault in buildFromIterator when directory name contains a \n)
2018-03-13 12:56:27 +08:00
Anatol Belski a1a3361552 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix heap use after free
2018-03-12 21:03:36 +01:00
Anatol Belski 08755e6b89 Merge branch 'PHP-7.2'
* PHP-7.2:
  Use literal as format
2018-03-12 16:02:14 +01:00
Anatol Belski a8f71ad5c9 Merge branch 'PHP-7.2'
* PHP-7.2:
  Use string literal as format
2018-03-12 15:18:51 +01:00
Anatol Belski 178549b2b0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Provide core includes for the resource compiler by default
2018-03-12 14:16:59 +01:00
Dmitry Stogov 0aa6be3eac Merge branch 'PHP-7.2'
* PHP-7.2:
  Replaced usafe reference from SHM to process memory with SHM to SHM reference
2018-03-12 11:21:46 +03:00
Dmitry Stogov 410de52bd4 Added NEWS entry 2018-03-12 11:07:26 +03:00
Dmitry Stogov b3f91d16dd Fixed bug #75683 (Memory leak in zend_register_functions() in ZTS mode) 2018-03-12 11:04:54 +03:00
Anatol Belski 5cd3b19fc8 Enable more asan checks 2018-03-11 23:08:27 +01:00
Anatol Belski 3c6f552371 Disable function call under address sanitizer
AddressSanitizer seems not to function properly with suppressions. The
default value is still sufficient for test, thus unblock testing by
disabling the function call under AddressSanitizer.
2018-03-11 23:08:27 +01:00
Anatol Belski 754be224d2 Fix clang build and analyze with SIMD enabled 2018-03-11 23:08:27 +01:00
Christoph M. Becker ef01ec08f0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #62545: wrong unicode mapping in some charsets
2018-03-11 18:05:08 +01:00
Gabriel Caruso d0ee2a8254 Add is_countable function
RFC: https://wiki.php.net/rfc/is-countable
2018-03-11 16:41:16 +01:00
Gabriel Caruso 57896cf515 Make some skipped tests run, and fix some skip messages 2018-03-11 16:38:00 +01:00
Gabriel Caruso 2bd7e2bb27 Fix link for phpdbg documentation 2018-03-11 16:37:40 +01:00
Nikita Popov bd2ecb01d2 Merge branch 'PHP-7.2' 2018-03-11 16:37:08 +01:00
Anatol Belski 8f8a6a3a49 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-03-10 20:09:23 +01:00
Bob Weinand 827dff310b Merge branch 'PHP-7.2' 2018-03-10 15:29:21 +01:00
Anatol Belski 363e0450aa Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76068 parse_ini_string fails to parse "[foo]\nbar=1|>baz" with segfault
2018-03-10 11:21:01 +01:00
Joe Watkins 4b43f5c533 Merge branch 'master' of git://github.com/php/php-src 2018-03-10 10:55:12 +01:00
Anatol Belski 98729c95a7 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update link
2018-03-10 09:41:53 +01:00
Christoph M. Becker d48b233991 Update to Oniguruma 6.7.1
We also apply the still relevant parts of `oniguruma.patch` and update
the patch accordingly.
2018-03-10 01:07:00 +01:00
Christoph M. Becker 4095f63a90 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #73957: signed integer conversion in imagescale()
2018-03-10 00:26:25 +01:00
Dmitry Stogov 9d139b16c2 Test ReflectionZendExtension class 2018-03-09 12:07:52 +01:00
Jonathan Torres 1cb3c15032 Fix typo in upgrade notes 2018-03-09 12:06:17 +01:00
Gabriel Caruso 701437a948 Remove return types from some magic method in protos
__construct, __destruct, __wakeup does not have return types defined.
2018-03-09 12:04:46 +01:00
Anatol Belski acda5e084e Document new configurue options 2018-03-08 12:14:48 +01:00
Anatol Belski d047137d7e Merge branch 'PHP-7.2'
* PHP-7.2:
  Disable PGO for phpdbg
2018-03-08 11:57:55 +01:00
Anatol Belski 70a1b23c2c Remove unused assignment 2018-03-07 18:09:58 +01:00
Anatol Belski 98aeb528c3 Remove unused assignment 2018-03-07 17:12:27 +01:00
Anatol Belski b7940d368f Merge branch 'PHP-7.2'
* PHP-7.2:
  Exclude /Qspectre for clang analyzer
2018-03-07 15:23:39 +01:00
Anatol Belski f28630eae0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Guard platform dependent code
2018-03-07 12:29:56 +01:00
Nikita Popov 3b5b64ce75 Fix garbage marking in gc_collect_roots()
gc_collect_white() will mark white nodes as black and add them as
garbage, but only if it's not buffered yet. The already buffered
roots are instead marked as garbage in gc_collect_roots() directly.
However, if gc_collect_white() marked a (buffered) root as black
through recursion, it would not subsequently be marked as garbage.
2018-03-07 09:50:25 +01:00
Dmitry Stogov dcbac8ade6 Fixed use-after-free. 2018-03-07 10:21:51 +03:00
Dmitry Stogov 228687362c Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-03-07 00:53:50 +03:00
Anatol Belski 7febfe068a Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-03-06 22:08:49 +01:00
Dmitry Stogov a2d1f2df46 Eliminate conditional branches 2018-03-07 00:03:13 +03:00
Dmitry Stogov a4109e1f4c Added expectation 2018-03-06 23:22:01 +03:00
Dmitry Stogov 856b63a632 Avoid double copying 2018-03-06 21:59:02 +03:00
Dmitry Stogov 9716bd68a3 Avoid double copying 2018-03-06 21:58:40 +03:00
Dmitry Stogov d03e95442a Use reference counting instead of duplication 2018-03-06 21:20:19 +03:00
Dmitry Stogov 4d75504d4f Avoid double copying and string length recalculation 2018-03-06 21:19:18 +03:00
Christoph M. Becker a98eb1ec2c [ci skip] Fix reference notation in protos 2018-03-06 13:22:39 +01:00
Gabriel Caruso b47b3596ef [ci skip] Use float instead of double in proto 2018-03-06 13:16:18 +01:00
Dmitry Stogov a7f83f474c Memory leak fix, for arg_info of internal functions with type hints (ZTS build only). 2018-03-06 14:59:30 +03:00
Dmitry Stogov c060d88c36 Fixed bug #76050 2018-03-06 03:31:06 +03:00
Dmitry Stogov 44e1d2f8a9 Merge branch 'PHP-7.2'
* PHP-7.2:
  Replaced usafe reference from SHM to process memory with SHM to SHM reference.
2018-03-06 03:00:46 +03:00
Dmitry Stogov 47f5f87826 Merge branch 'PHP-7.2'
* PHP-7.2:
  Don't keep HashTable.pDestructor in SHM and always set it into ZVAL_PTR_DTOR in zval_array_dup(). Keeping pointer to a function in SHM is not safe because of ASLR.
2018-03-06 01:02:31 +03:00
Dmitry Stogov d740024e35 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed invalid destructor
2018-03-06 00:47:05 +03:00
Anatol Belski 5c41de2e1d Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #76044 'date: illegal option -- -' in ./configure on FreeBSD
2018-03-05 22:39:06 +01:00
Dmitry Stogov d9d30a7f38 AST is not COPYABLE anymore and its reference-counter doesn't have to be initialized by 2. 2018-03-06 00:30:25 +03:00
Dmitry Stogov 84a0423e05 Set and keep HASH_FLAG_STATIC_KEYS for all HashTables stored in SHM (or file cache). 2018-03-06 00:00:13 +03:00
Dmitry Stogov d76061d5c1 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed invalid destructor
2018-03-05 23:38:15 +03:00
Dmitry Stogov 877da311bc Typo 2018-03-05 20:45:26 +03:00
Dmitry Stogov ab139b6bfd Reverted e6d6fcedf7 and overdesign introduced in ae64dd6d56.
Now we have just indexex, pointers and linked list od unused buffers.
2018-03-05 20:20:58 +03:00
Nikita Popov a0563aa7bc Fix incorrect GC_NUM2ADDR usage
Both first_unused and GC_MAX_UNCOMPRESSED are addresses, so we
should compare them directly.
2018-03-05 16:29:46 +01:00
Nikita Popov 4838e9799f Merge branch 'PHP-7.2' 2018-03-05 15:33:34 +01:00
Anatol Belski cf84e5a529 Merge branch 'PHP-7.2'
* PHP-7.2:
  Include username into the file cache path
2018-03-05 15:22:11 +01:00
Dmitry Stogov f32b7dbc43 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed "opcache.file_cache_fallback" mode.
2018-03-05 16:21:20 +03:00
Dmitry Stogov 6c035f53f1 Separate duplicated code into a zend_ini_parse_bool() function. 2018-03-05 11:51:58 +03:00
Anatol Belski 10549ac62d Fix empty value 2018-03-02 23:10:02 +01:00
Anatol Belski c7dc6cc66b Reflect native instruction set in snap filename 2018-03-02 20:39:41 +01:00
Anatol Belski fd5a635225 Add intrinsics info to configure output 2018-03-02 18:12:14 +01:00
Christoph M. Becker eeda55cb3b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #76041: null pointer access crashed php
2018-03-02 17:21:04 +01:00
Dmitry Stogov e6d6fcedf7 Switch to better GC address representation 2018-03-02 17:36:18 +03:00
Dmitry Stogov ae64dd6d56 Make distinct between indexes/numbers, GC addresses and pointers to gc_root_buffers.
Perform conversion through macros.
2018-03-02 17:02:29 +03:00
Joe Watkins 0fe7636084 correct condition for leaks in run-tests.php 2018-03-02 13:22:12 +01:00
Joe Watkins f7b48f7f1e Merge branch 'master' of git://github.com/php/php-src 2018-03-02 13:15:22 +01:00
Joe Watkins 03f15f705a add ability to show valgrind output with --show-mem 2018-03-02 13:14:35 +01:00
Dmitry Stogov f844d40fdc GC API cleanup 2018-03-02 11:02:21 +03:00
Dmitry Stogov f37dff9d23 Added NEWS entry 2018-03-02 10:17:49 +03:00
Dmitry Stogov eb3f152a80 Merge branch 'gc-buffer-dynamic4'
* gc-buffer-dynamic4:
  Switch to siple "commpression" scheme
  micro-optimization
  Cleanup
  Tunning for fast paths
  Cleanup
  Improve GC color checks
  Implemented simple adaptive GC threshold selection.
  GC improvement
2018-03-02 10:16:08 +03:00
Dmitry Stogov 06c6c632c3 Switch to siple "commpression" scheme 2018-03-02 10:01:08 +03:00
Xinchen Hui c29f1f41c3 Combines common codes 2018-03-02 10:32:15 +08:00
Dmitry Stogov 8b5e76c790 micro-optimization 2018-03-02 01:53:59 +03:00
Dmitry Stogov 5c78bb80cc Cleanup 2018-03-02 01:42:42 +03:00
Anatol Belski 0d679c353c Get rid of casts 2018-03-01 20:52:09 +01:00
Dmitry Stogov 26e0ebffac Tunning for fast paths 2018-03-01 17:38:32 +03:00
Anatol Belski 1648bfa3ce Improve help message 2018-03-01 15:37:56 +01:00
Dmitry Stogov 165dadace3 Cleanup 2018-03-01 15:51:50 +03:00
Anatol Belski b9040b812c Merge branch 'PHP-7.2'
* PHP-7.2:
  Remove TSRMLS_*
2018-03-01 12:15:20 +01:00
Xinchen Hui 12ee810960 Attempt to fix build with gcc-4.8 2018-03-01 18:34:39 +08:00
Dmitry Stogov 5994b8ac95 Improve GC color checks 2018-03-01 11:55:26 +03:00
Dmitry Stogov 077d227500 Implemented simple adaptive GC threshold selection. 2018-03-01 11:04:28 +03:00
Xinchen Hui 966923f4be Attempt to fix build again
seems if a cpu supports avx2 but not ssse3, the build will fail. but how
could that possible... :<
2018-03-01 15:05:50 +08:00
Xinchen Hui fd208e82dd Attempt to fix build reported fails in containers 2018-03-01 11:56:12 +08:00
Dmitry Stogov fd348ec43f GC improvement 2018-03-01 03:17:21 +03:00
Joe Watkins 1377ac29f6 Merge branch 'PHP-7.2'
* PHP-7.2:
  fix news date
2018-02-28 12:23:38 +01:00
Dmitry Stogov 4631a5e2e1 Tunning for new GC_TYPE_INFO layout 2018-02-28 13:25:29 +03:00
Xinchen Hui 6a59f3714a Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #76025 (Segfault while throwing exception in error_handler).
2018-02-28 18:07:15 +08:00
Dmitry Stogov 31e5c34542 typo 2018-02-28 10:16:51 +03:00
George Wang 1777db1fdf Merge branch 'PHP-7.2' 2018-02-27 23:34:01 -05:00
George Wang 17e49ba79a Merge branch 'PHP-7.2' 2018-02-27 23:21:32 -05:00
Bob Weinand dfa383497a Merge remote-tracking branch 'origin/PHP-7.2' 2018-02-28 02:36:18 +01:00
Bob Weinand c1882ef004 Fixed build (extern php_stripslashes) 2018-02-28 01:47:40 +01:00
Dmitry Stogov f1d5168a74 Simplify GC_FLAGS cand CG_INFO checks 2018-02-28 02:36:50 +03:00
Ferenc Kovacs 7c91b83518 Merge branch 'PHP-7.2' 2018-02-28 00:08:14 +01:00
Dmitry Stogov c9e1419fd2 Change CG_TYPE_INFO() layout to provide more room for GC_INFO() 2018-02-28 00:53:30 +03:00
Dmitry Stogov 6f483dc94c Use macros to update specific parts of GC_TYPE_INFO() (direct assignments to GC_TYPE(), GC_FLAGS() and GC_INFO() are prohibited) 2018-02-28 00:52:12 +03:00
Anatol Belski 42022bc943 Constify readonly var 2018-02-27 20:50:37 +01:00
George Wang 2ec012fa2a Merge branch 'PHP-7.2'
Conflicts:
	sapi/litespeed/lsapi_main.c
2018-02-27 13:57:06 -05:00
Dmitry Stogov baa9890112 Completely hide GC implementation details into zend_gc.c 2018-02-27 21:08:26 +03:00
Christoph M. Becker ef255c9f0f Revert "[ci skip] Add missing return types to protos"
This reverts commit a2c7c46d5e.

Since apparently there have been some mistakes in this commit, and it's
not clear yet how to solve them, we're reverting for now.
2018-02-27 17:40:03 +01:00
Dmitry Stogov 58880e3fc1 Get rid of IS_OBJ_USE_GUARDS and IS_OBJ_HAS_GUARDS flags 2018-02-27 17:38:56 +03:00
Anatol Belski 60a27aeec1 Merge branch 'PHP-7.2'
* PHP-7.2:
  7.0.29 next
2018-02-27 11:51:40 +01:00
Anatol Belski 58aa1f1d61 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-02-27 11:40:11 +01:00
Stanislav Malyshev 5913d8cec6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #75981: prevent reading beyond buffer start
2018-02-26 22:27:02 -08:00
Xinchen Hui 13eca3d428 Avoding memory allocation 2018-02-26 16:54:53 +08:00
Xinchen Hui fd88e7e3a1 Avoding memory allocation 2018-02-26 16:48:49 +08:00
Xinchen Hui ce3fa92027 Avoding memory allocation if no translastion found 2018-02-26 14:52:45 +08:00
Christoph M. Becker fd8a21b1c5 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
2018-02-24 23:40:55 +01:00
Gabriel Caruso 5f54f48024 [ci skip] Remove space between function name and open parentheses 2018-02-24 11:50:39 +01:00
Gabriel Caruso a2c7c46d5e [ci skip] Add missing return types to protos 2018-02-24 11:45:17 +01:00
Christoph M. Becker 3da9fc86d1 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix imagesetinterpolation arginfo
2018-02-24 11:33:13 +01:00
Stanislav Malyshev 2fce5d6494 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Set FPM maintainership
2018-02-23 17:58:06 -08:00
Christoph M. Becker 94d0c24dca Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #75873: pcntl_wexitstatus returns incorrect on Big_Endian platform (s390x)
2018-02-23 23:53:32 +01:00
Christoph M. Becker 701d1ab0cc Fix skip condition
The test is not about mhash, but rather about hash.
2018-02-23 16:23:55 +01:00
Christoph M. Becker d5f84fb9c5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix some arginfos
2018-02-23 11:32:18 +01:00
Gabriel Caruso 1314f0fb3a Use int instead of long in protos 2018-02-23 11:06:20 +01:00
zufuliu bff179888f Improve similar_text(), reduce recursive call to php_similar_char()
If the longest common substring is the leftmost common substring, there
is no need to check the string prefixes for further common substrings,
since there are none.
2018-02-22 15:59:24 +01:00
Dmitry Stogov 6fb9e24218 Allow generation of VM map 2018-02-22 15:31:00 +03:00
Gabriel Caruso 0c0a5df111 Test ReflectionClass::getReflectionConstant method 2018-02-22 13:18:52 +01:00
Gabriel Caruso e1cc4863d9 Remove duplicated tests 2018-02-22 13:03:21 +01:00
Dmitry Stogov d393199e13 Fixed compilation warnings 2018-02-22 11:33:26 +03:00
Dmitry Stogov 75f6b0c557 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  remove support for string|unicode in tests
  improve extension skeleton generator
2018-02-22 11:00:58 +03:00
Dmitry Stogov bd908f6145 Fixed build without global register variables 2018-02-22 11:00:29 +03:00
Gabriel Caruso b895690dfa remove support for string|unicode in tests 2018-02-22 08:11:30 +01:00
Pedro Magalhães 230ef2d947 improve extension skeleton generator 2018-02-22 08:04:33 +01:00
Dmitry Stogov 927748b271 Reorganize make_real_object() related code 2018-02-21 18:43:38 +03:00
Dmitry Stogov ecb52b8b3b Move exceprional code into helper & zend_fetch_var_address_helper() micro-optimization. 2018-02-21 17:09:42 +03:00
Dmitry Stogov 7559b1c50c Move result address calculation from specialized handlers to less specialized helpers 2018-02-21 16:06:29 +03:00
Anatol Belski bc3de8caea Fix def signature to match declaration 2018-02-21 11:53:38 +01:00
Dmitry Stogov 9c0427cada Mark exceptional helpers as "cold" 2018-02-21 12:07:29 +03:00
Dmitry Stogov e1b1cff48d Move exceptional code into helpers 2018-02-21 10:10:04 +03:00
Xinchen Hui 91635b011b Optimized php_stripslash with SSSE3 instr 2018-02-21 10:09:11 +08:00
Xinchen Hui a6e1dc8d5b Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Added expectation
  Fix initialisation order
  Fix NEWS
  Fix a memleak with mysqlnd and SSL
  Move exceptional code into helpers
  Fix negotiaton of MySQL auth plugin
  Use EXPECT instead of EXPECTF when possible
  Move cold code, duplicated by specializer, into helper functions
  Fixed build without global register variables
  Sync --enable-native-intrinsics to pecl
  [ci skip] Sort recent NEWS entries alphabetically
  Fix openssl_* arginfos
  Update binary tools SDK branch for AppVeyor
  Separate slow path with make_real_object() and related code into "cold" function.
  [ci skip] run-tests.php: add missing put section
2018-02-21 09:51:38 +08:00
Dmitry Stogov 41eb70a493 Added expectation 2018-02-21 02:49:40 +03:00
Johannes Schlüter c299983904 Merge branch 'master' of git.php.net:/php-src 2018-02-20 23:48:00 +01:00
Johannes Schlüter 9881cb3945 Fix initialisation order 2018-02-20 23:35:57 +01:00
Johannes Schlüter 64ba5d4a06 Merge branch 'PHP-7.2' 2018-02-20 23:33:01 +01:00
Dmitry Stogov b53f5cc92d Move exceptional code into helpers 2018-02-21 01:27:39 +03:00
Johannes Schlüter b35a64bf62 Merge branch 'PHP-7.2' 2018-02-20 23:20:55 +01:00
Gabriel Caruso ded3d984c6 Use EXPECT instead of EXPECTF when possible
EXPECTF logic in run-tests.php is considerable, so let's avoid it.
2018-02-20 21:53:48 +01:00
Dmitry Stogov a00286921e Move cold code, duplicated by specializer, into helper functions 2018-02-20 23:44:25 +03:00
Dmitry Stogov b46f10b43f Fixed build without global register variables 2018-02-20 20:39:02 +03:00
Anatol Belski dfcbc2c32b Sync --enable-native-intrinsics to pecl 2018-02-20 17:33:58 +01:00
Christoph M. Becker 190e97b66b Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Sort recent NEWS entries alphabetically
2018-02-20 16:37:45 +01:00
Christoph M. Becker e8affd805f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix openssl_* arginfos
2018-02-20 16:26:06 +01:00
Anatol Belski d1466bf4ac Merge branch 'PHP-7.2'
* PHP-7.2:
  Update binary tools SDK branch for AppVeyor
2018-02-20 15:53:11 +01:00
Dmitry Stogov 8b7cdbaa49 Separate slow path with make_real_object() and related code into "cold" function. 2018-02-20 17:22:11 +03:00
Michael Wallner ba8cd2f4de [ci skip] run-tests.php: add missing put section 2018-02-20 14:55:52 +01:00
Xinchen Hui 5091f5ff9c Simplified the codes (the penalty of loading unaligned address is negligible) 2018-02-20 20:56:23 +08:00
Dmitry Stogov cbf2d91911 Separate cold paths of ISSET_ISEMPTY_DIM_OBJ 2018-02-20 14:42:53 +03:00
Haitao Lv 764e231cc5 fix ZEND_VM_SET_OPCODE_HANDLER cannot set user opcode handler 2018-02-20 10:46:41 +03:00
Anatol Belski f63393aee8 Fix possible memory leak 2018-02-20 08:23:25 +01:00
Anatol Belski a08c0db2df Merge branch 'PHP-7.2'
* PHP-7.2:
  dos2unix
2018-02-20 08:00:55 +01:00
Anatol Belski 377f346354 Fix conjugation 2018-02-20 07:25:44 +01:00
Craig Duncan 9439dd0b5b Add a test for iterating SXE properties by reference 2018-02-19 21:58:57 +01:00
Nikita Popov ede663f381 Convert iterator by reference errors to exceptions
I'm using RuntimeException in SPL, because other SPL classes that
throw this error used it. Error is used for everything else, because
that's what core does.
2018-02-19 21:58:56 +01:00
Nikita Popov bcc7d46aa4 Merge branch 'PHP-7.2' 2018-02-19 21:46:20 +01:00
Gabriel Caruso d4999ad8e9 Report unknown sections in run-tests.php 2018-02-19 21:40:17 +01:00
Nikita Popov df1439241a Simplify code
If operator overloading is ignored tmp will be 0 and we can still
use |=. No need to separate this into two cases.
2018-02-19 21:38:10 +01:00
Anatol Belski d1d228838b Add basic cppcheck suppressions file 2018-02-19 17:43:49 +01:00
Anatol Belski 668a6d329c Reduce var scope 2018-02-19 17:43:48 +01:00
Dmitry Stogov 050d62484b Fixed typo 2018-02-19 17:57:46 +03:00
Dmitry Stogov a3afad5af0 Added tracer to collect frequency of opcode handler call chains 2018-02-19 16:50:24 +03:00
Dmitry Stogov 6d3e1bd124 Added VM instrumentation ability 2018-02-19 16:42:02 +03:00
Dmitry Stogov 85f4b10f76 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Don't add empty include path
  Reduce struct size by 8 bytes on 64-bit
2018-02-19 16:40:45 +03:00
Anatol Belski 250df53204 Don't add empty include path 2018-02-19 14:15:33 +01:00
Dmitry Stogov 2fb91e3619 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Remove explicit params count check
2018-02-19 16:12:15 +03:00
Dmitry Stogov 190a970dd6 Elimintate duplicate error message 2018-02-19 16:11:28 +03:00
Anatol Belski 20934d9e18 Reduce struct size by 8 bytes on 64-bit 2018-02-19 14:02:30 +01:00
Gabriel Caruso 5f6b2c12a2 Remove explicit params count check
Relying on ZPP instead. Also, use ZEND_NUM_ARGS() instead of hardcode
number of parameters
2018-02-19 13:56:30 +01:00
Anatol Belski 34fb5a8585 Merge branch 'PHP-7.2'
* PHP-7.2:
  Use more jobs with cppcheck
2018-02-19 11:28:13 +01:00
Dmitry Stogov 2bf8b42766 Fixed unintended API break 2018-02-19 13:11:39 +03:00
Dmitry Stogov a02a126d54 Allow optional ignorance of operator overlaoding. Optimizer takes into account possibility of operator overloading at default optimization level, but ignores this possibility at "unsafe" level (opcache.optimization_level=-1). 2018-02-19 12:21:43 +03:00
Anatol Belski 298de027d6 Reduce struct size by 8 bytes on 64-bit 2018-02-19 10:12:46 +01:00
Anatol Belski 5bbf27b87b Remove duplicated assignment 2018-02-19 10:12:46 +01:00
Anatol Belski 65be13a89a Reduce struct size by 8 bytes on 64-bit 2018-02-19 10:12:46 +01:00
Gabriel Caruso a6b2223220 Refactoring duplicated ZPP with a switch 2018-02-19 08:33:18 +01:00
Gabriel Caruso 7566416d9d Share identical arginfos 2018-02-19 08:31:03 +01:00
Gabriel Caruso bffc92b105 Remove duplicated informations in tests 2018-02-19 08:29:54 +01:00
Gabriel Caruso 5153413ed4 Test more functions of ftp 2018-02-19 08:27:37 +01:00
Gabriel Caruso 6d785a7a00 Test more functionalities of SPL 2018-02-19 08:26:34 +01:00
Anatol Belski 34833c9d39 Avoid multiple wcslen() calls 2018-02-18 20:30:33 +01:00
Anatol Belski 34a7c6c1a5 Reduce var scope 2018-02-18 19:59:23 +01:00
Anatol Belski ec5d9ab82b Reduce variable scope 2018-02-18 19:15:36 +01:00
Anatol Belski 8eda7d9410 Remove effectless assignment 2018-02-18 19:07:25 +01:00
Anatol Belski 1bdf7abbcb Fix possible int overflow on vars used in loop with size_t counter 2018-02-18 17:55:50 +01:00
Anatol Belski 26f1ffbd91 Fix overflow, int var used in loop with size_t counter 2018-02-18 17:55:50 +01:00
Nikita Popov 48c0662876 Merge branch 'PHP-7.2' 2018-02-18 17:43:08 +01:00
Gabriel Caruso a2933e9ebb Fix some compile results warnings 2018-02-18 16:22:31 +01:00
Nikita Popov c404b27135 Fix pg_pconnect() func info 2018-02-18 16:22:17 +01:00
Nikita Popov 1b54a62fcf Fix gettext func infos 2018-02-18 16:22:16 +01:00
Nikita Popov 705dc3f049 Fix DCE test
Without the type hint the previous optimization no longer applied,
as the result could be an (overloaded) object, which might have
caused dtor effect reordering.
2018-02-18 15:37:10 +01:00
Nikita Popov a5fa7555dd More mysqli func info fixes
Mainly changing resource returns to objects
2018-02-18 15:34:16 +01:00
Nikita Popov 85597e2932 Merge branch 'PHP-7.2' 2018-02-18 15:34:04 +01:00
Anatol Belski 036a80037b Avoid multiple wcslen calls 2018-02-18 15:26:33 +01:00
Xinchen Hui 22e7329d9a change layout 2018-02-18 19:47:41 +08:00
Xinchen Hui ac5cdd46f3 Move map out of loop 2018-02-18 19:34:48 +08:00
Gabriel Caruso 4f43d312ad Remove redelcaration of zend_parse_parameters_none 2018-02-18 09:38:47 +01:00
Gabriel Caruso 079598a85d Use zend_parse_parameters_none_throw 2018-02-18 09:36:35 +01:00
Nikita Popov b889ff309b Fix lcfirst() + ucfirst() func info
These may return the original string
2018-02-17 23:22:44 +01:00
Nikita Popov ea1a51f71b Fix bcpowmod() func_info
Returns false on error
2018-02-17 23:22:44 +01:00
Nikita Popov 9c4783cbd3 Fix error_get_last() func info 2018-02-17 23:22:44 +01:00
Nikita Popov d59c45d112 Fix mysqli_connect() func info
This function returns an object, not a resource...
2018-02-17 23:22:44 +01:00
Nikita Popov 50def51d19 Fix bcscale() function info
Master only: This function now returns the old scale.
2018-02-17 23:22:43 +01:00
Nikita Popov 2cd40b3aed Merge branch 'PHP-7.2' 2018-02-17 23:21:31 +01:00
Xinchen Hui c79f2de2cf Optimized strrev with SSSE3
since strrev is not wildly used, and SSSE3 is defined default by some
compiler, so won't try to do ifunc here.
2018-02-17 23:19:31 +08:00
Xinchen Hui ab9162426b change argument parsing 2018-02-17 22:29:59 +08:00
Nikita Popov 38bee72e40 Fix DCE of throwing NEWs 2018-02-17 14:51:11 +01:00
Nikita Popov ef10dfc31d Fix another bug in coalesce elimination 2018-02-17 14:51:11 +01:00
Anatol Belski b2cd274122 Remove unnecessary cast 2018-02-17 14:19:06 +01:00
Anatol Belski f4705b77ff Merge branch 'PHP-7.2'
* PHP-7.2:
  Remove duplicated assignment
2018-02-17 13:13:17 +01:00
Anatol Belski b2d38ed9ca Reduce variable scope 2018-02-17 13:02:50 +01:00
Anatol Belski f44f9d6206 Remove always true condition 2018-02-17 13:02:50 +01:00
Anatol Belski 0bc4cf901c Fix unsigned comparisons 2018-02-17 13:02:50 +01:00
Anatol Belski e72e537d1b Reduce var scope 2018-02-17 13:02:49 +01:00
Anatol Belski 28132878f2 Reduce var scope 2018-02-17 13:02:49 +01:00
Nikita Popov 257f07ef6d Fix COALESCE jump optimization 2018-02-17 12:42:21 +01:00
Xinchen Hui 55ef99e3b8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #75961 (Strange references behavior)

Conflicts:
	ext/standard/array.c
2018-02-17 16:39:31 +08:00
Nikita Popov 7ff186434e Explicitly sort live ranges by start opnum
Instead of moving live ranges around to maintain the start opnum
invariant, add an explicit sorting step in pass two.
2018-02-16 21:51:50 +01:00
Nikita Popov b0af9ac733 Avoid live range references in opcodes
Don't store the live range of the freed variable for FREE_ON_RETURN
frees, instead look it up at runtime. As this is an extremely
unlikely codepath (in particular, it requires a loop variable with
a throwing destructor), saving the runtime lookup of the live range
is not worth the extra complexity this adds everywhere else.
2018-02-16 21:30:48 +01:00
Nikita Popov 07ad75ca96 Merge branch 'PHP-7.2' 2018-02-16 20:31:01 +01:00
Anatol Belski a5e532f729 Handle special case when SSE only requested for 32-bit build 2018-02-16 16:51:11 +01:00
Anatol Belski d9994ff7b2 Rework --with-codegen-arch and --enable-native-intrinsics config 2018-02-16 16:23:27 +01:00
Anatol Belski abf5534113 Reduce var scope 2018-02-16 15:44:43 +01:00
Anatol Belski 535497cb97 Remove always true condition 2018-02-16 15:44:42 +01:00
Anatol Belski 7761c819bf Simplify declaration 2018-02-16 15:44:42 +01:00
Anatol Belski 325934c057 Simplify declaration 2018-02-16 15:44:41 +01:00
Nikita Popov f61c01eeb1 Fix unused variable warning 2018-02-16 15:31:54 +01:00
Anatol Belski 1c68f54684 Merge branch 'PHP-7.2'
* PHP-7.2:
  Wrap var depending on conditional compilation
2018-02-16 13:42:04 +01:00
Dmitry Stogov 25e0413de1 Simplify REFCOUNTED checks 2018-02-16 15:37:40 +03:00
Dmitry Stogov b4112ea288 Don't make expectations about non-constant zval refcauntability 2018-02-16 15:37:04 +03:00
Anatol Belski e5db3054a1 Fix duplicated strlen call 2018-02-16 12:52:59 +01:00
Anatol Belski 3f4598ec51 Remove unnecessary conditions and improve assignment 2018-02-16 12:52:59 +01:00
Anatol Belski 9e5595ef38 Reduce var scope 2018-02-16 12:52:59 +01:00
Anatol Belski 119be77051 Reduce var scope 2018-02-16 12:52:59 +01:00
Anatol Belski 0e52da475a Reduce variable scope 2018-02-16 12:52:58 +01:00
Dmitry Stogov ea7a3c32b8 Added missed "return" 2018-02-16 14:13:52 +03:00
Dmitry Stogov 7e329a82c7 Improved ZPP to reduce amount of generated code. 2018-02-16 11:37:20 +03:00
Dmitry Stogov 6fadb72c0b Move exceptional code into "cold" helpers 2018-02-16 02:45:31 +03:00
Anatol Belski 27908bace1 Reduce variable scope 2018-02-15 21:34:55 +01:00
Anatol Belski 646dad6160 Use explicit for more type safety 2018-02-15 21:30:16 +01:00
Anatol Belski 9258be351f Reduce variable scope 2018-02-15 21:26:01 +01:00
Anatol Belski 567d01ae20 Remove condition that is always false 2018-02-15 21:19:33 +01:00
Anatol Belski 9d8417f190 Reduce variable scope 2018-02-15 21:18:58 +01:00
Dmitry Stogov 02aea893fb Use Z_TYPE_INFO_REFCOUNTED() macro 2018-02-15 21:54:49 +03:00
Dmitry Stogov 285bfb96fe Optimize "backup" functions of inlined opcode handlers for size 2018-02-15 17:04:41 +03:00
Dmitry Stogov 3778abfc15 Added ability to manually sort opcode handlers (not used yet) 2018-02-15 15:56:38 +03:00
Dmitry Stogov 633d037ed5 Added simple VM instrumentation ability 2018-02-15 15:55:19 +03:00
Dmitry Stogov 27d7671603 Avoid generation of rarely used specialized handler 2018-02-15 14:50:42 +03:00
Dmitry Stogov 23da83c8ca Avoid inlining of rarely used handlers 2018-02-15 13:48:04 +03:00
Joe Watkins 8543f566cf Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed print_const_table function and zval types in ____printzv_contents
2018-02-15 08:57:52 +01:00
Joe Watkins 8908085ddf Merge branch 'PHP-7.2'
* PHP-7.2:
  bump versions
2018-02-15 08:56:40 +01:00
Gabriel Caruso ea4401c1dc Better error message when fail to find test file 2018-02-15 08:51:12 +01:00
Tom Van Looy 7672f8be0b Fix: follow the indent of the other configure options 2018-02-15 08:49:58 +01:00
Nikita Popov 5a4ff9f1a9 Merge branch 'PHP-7.2' 2018-02-14 19:00:41 +01:00
Anatol Belski 4656c9d88a Fix datatypes for native AVX build 2018-02-14 18:29:41 +01:00
Xinchen Hui 5c05870ef6 Optimized fast_memcpy with AVX instructions
Great thanks to welting for helping :)
2018-02-15 00:18:47 +08:00
Anatol Belski 703e037090 Upgrade bundled PCRE2 to 10.31 2018-02-14 13:44:38 +01:00
Remi Collet 1cae6cf47b Merge branch 'PHP-7.2'
* PHP-7.2:
  add pkg-config example in extension skeleton
2018-02-14 13:29:27 +01:00
Remi Collet 636905e8b6 Merge branch 'PHP-7.2'
* PHP-7.2:
  factorization of duplicated code
2018-02-14 13:16:55 +01:00
Joe 13a9a886fa Revert "Added return type for some basic functions"
This reverts commit b7d2e04f1f.
2018-02-14 11:18:52 +01:00
Gabriel Caruso b8bb4d77ca Remove empty sections in tests 2018-02-14 11:10:59 +01:00
Dmitry Patsura b7d2e04f1f Added return type for some basic functions 2018-02-14 09:18:52 +01:00
Remi Collet bd870bdb7b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix timezone var_dump from 51f2a5803f
2018-02-14 08:59:59 +01:00
Sara Golemon b5ff5f1990 Merge branch 'PHP-7.2'
* PHP-7.2:
  Now working on 7.2.4-dev
2018-02-13 14:37:34 -05:00
Sara Golemon 81bbb21a35 Merge branch 'PHP-7.2'
* PHP-7.2:
  Now working on 7.2.4-dev
2018-02-13 14:33:59 -05:00
Anatol Belski 57a299d682 Merge branch 'PHP-7.2'
* PHP-7.2:
  Extend skipif check
2018-02-13 14:06:27 +01:00
Xinchen Hui 7bf9267404 Added SSE3 detection 2018-02-13 16:10:43 +08:00
Gabriel Caruso 0f2be28b43 Fix typo 2018-02-13 08:05:05 +01:00
Anatol Belski d7f65f30a0 Revert "Improve conversion loop"
This reverts commit 7a4573a55a.

Don't read over '\0'.
2018-02-12 22:59:21 +01:00
Dmitry Stogov 9794272f3e Micro optimization 2018-02-13 00:56:48 +03:00
Anatol Belski acc55cd34e Extend intrinsics config with AVX and AVX2 2018-02-12 20:54:27 +01:00
Xinchen Hui 6de9c91ba6 Update author info 2018-02-12 21:01:12 +08:00
Xinchen Hui cf0fae5e97 Optimized base64_encode/decode with SIMD instructions 2018-02-12 20:53:14 +08:00
Gabriel Caruso 97353cda99 Fixes for #74707 some methods of tidy class didn't have arginfo declared 2018-02-12 09:30:23 +01:00
Haitao Lv 5206f79987 fix unknown opcode overflow error 2018-02-12 09:27:55 +01:00
Gabriel Caruso 3253057021 Add test for bcpwmod
bc_raisemod's mod can't be zero and expo can't be negative
2018-02-12 09:25:31 +01:00
CHU Zhaowei 51f2a5803f Fixed bug #68406 calling var_dump on a DateTimeZone object modifies it 2018-02-12 09:20:14 +01:00
CHU Zhaowei 766271a105 fix #68406 2018-02-12 09:19:53 +01:00
Joe 7f94a26d2a Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #68406 calling var_dump on a DateTimeZone object modifies it
2018-02-12 09:19:29 +01:00
Nikita Popov ff5b73b1e2 Fix use of Z_LVAL_P in snmp 2018-02-11 22:47:01 +01:00
Gabriel Caruso a5f1a585e6 Removed unused variables 2018-02-11 22:46:33 +01:00
Christoph M. Becker c718970e9e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #75857: Timezone gets truncated when formatted
2018-02-11 12:56:39 +01:00
Nikita Popov f16710961b Merge branch 'PHP-7.2' 2018-02-10 19:31:09 +01:00
Gabriel Caruso 21e3b0c70c Remove trailing whitespace in inc files 2018-02-10 19:20:23 +01:00
Nikita Popov 1422e2ffd1 Merge branch 'PHP-7.2' 2018-02-10 19:19:16 +01:00
Gabriel Caruso 78ed55d7b7 Fixed bug #74707
Several tidy functions receive a tidy object as mandatory parameter
2018-02-10 19:10:01 +01:00
Gabriel Caruso 4fff031e5d Remove getmxrr alias dns_get_mx test
The test is currently failing, and the same functionality is
already tested (in a better way) in the getmxrr() test.
2018-02-10 19:05:44 +01:00
sundarchi1 7711ac78d9 Sync opcache.optimization_level default value
The default value is 0x7FFFBFFF nowadays, disabling constant
propagation.
2018-02-10 19:04:13 +01:00
Sergei Morozov 1c393e9502 [Bug 75448] In case of failure, mysqli::prepare() returns NULL instead of FALSE 2018-02-10 10:40:47 -05:00
Christoph M. Becker 70fec8a1cc Align overflow error messages with upstream
This particularly fixes two tests (bug66356.phpt and bug72339.phpt) if
PHP has been build with an external libgd.
2018-02-10 15:41:33 +01:00
Xinchen Hui 33b9282c59 Remove tested code 2018-02-10 21:44:01 +08:00
Xinchen Hui 08428cf6a7 Fixed cpuinfo in LLVM GCC & Added AVX2 detection
Seems it only defines __builtin_cpu_supports but no __builtin_cpu_init
(Apple LLVM version 9.0.0 (clang-900.0.38))
2018-02-10 17:38:30 +08:00
Xinchen Hui 7ce72f0cf5 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src: (37 commits)
  Avoid conditions inside loop
  Improve loop vectorization
  Improve loop vectorization
  Remove unused function
  Fixed bug #75938
  Remove unused files
  Fixed bug #75940 Unnecessary compile wrapper with PHP_THREAD_SAFETY=yes
  typo
  Update README.GIT-RULES
  Fix SKIPIF section
  Fixes bug #75871 Use pkg-config for libxml2 if available
  Fixed bug #49876 lib path on 64bit distros
  Refactor testing READMEs
  Fixed bug #65414
  Fixed bug #65414
  Fixed bug #74519 strange behavior of AppendIterator
  fix #74519 strange behavior of AppendIterator
  Use bool instead of boolean
  Remove space between function name and open parentheses
  Fix some misspellings
  ...
2018-02-10 17:01:55 +08:00
Xinchen Hui 87b7180480 Fixed cpu feature check in reslover functions 2018-02-10 16:58:27 +08:00
Anatol Belski d3cb224eb3 Avoid conditions inside loop 2018-02-09 19:28:20 +01:00
Anatol Belski 3e6492f305 Improve loop vectorization 2018-02-09 19:28:20 +01:00
Anatol Belski e87dfb1da2 Improve loop vectorization 2018-02-09 19:28:20 +01:00
Christoph M. Becker c8ba185cf9 Remove unused function 2018-02-09 17:39:24 +01:00
Nikita Popov d05ac8f610 Merge branch 'PHP-7.2' 2018-02-09 15:11:42 +01:00
Christoph M. Becker 41b4a2edc1 Remove unused files
These files had served as fallback for GD < 2.1.0, but since we're
requiring GD ≥ 2.1.0 for years[1], there's no more need for them.

[1] 8a90aad35b
2018-02-09 14:45:36 +01:00
Jaromír Doleček a5b55416f4 Fixed bug #75940 Unnecessary compile wrapper with PHP_THREAD_SAFETY=yes 2018-02-09 14:30:06 +01:00
Dmitry Stogov d968581c5b typo 2018-02-09 11:33:02 +03:00
Joe dfebd98c09 Merge branch 'master' of git://github.com/php/php-src 2018-02-08 17:53:26 +01:00
Gabriel Caruso c25e97fdab Update README.GIT-RULES 2018-02-08 17:52:51 +01:00
Gabriel Caruso 420712415a Fix SKIPIF section 2018-02-08 17:18:26 +01:00
Joe 47b90e910b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixes bug #75871 Use pkg-config for libxml2 if available
2018-02-08 10:51:47 +01:00
Joe 812303aa5e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #49876 lib path on 64bit distros
2018-02-08 10:43:10 +01:00
Peter Kokot 616b00bfa6 Refactor testing READMEs
This patch removes additional README.TESTING2 file and moves its
contents into a single README.TESTING file for convenience.
2018-02-08 10:38:55 +01:00
Joe c8e844be35 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #65414
2018-02-08 10:34:38 +01:00
Joe 748c40867b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #74519 strange behavior of AppendIterator
2018-02-08 10:19:15 +01:00
Gabriel Caruso 414aaa207c Use bool instead of boolean 2018-02-08 10:00:49 +01:00
Gabriel Caruso d9068e84b7 Remove space between function name and open parentheses 2018-02-08 09:57:43 +01:00
Gabriel Caruso 2d48d734a2 Fix some misspellings 2018-02-06 16:59:00 +01:00
Gabriel Caruso 91b09c7aa6 Increase ext/ftp coverage 2018-02-06 16:28:42 +01:00
Christoph M. Becker c73e8a07a5 Remove unused variable
We're not interested in the return value of
`gdGuessBackgroundColorFromCorners`, so there's no need to track it.

See also libgd/libgd@535eab566b.
2018-02-06 14:59:23 +01:00
Gabriel Caruso ef0eb166bc Remove unused variable 2018-02-06 14:33:04 +01:00
Dmitry Stogov 2f3c0b327f Fixed tests 2018-02-06 15:36:31 +03:00
Nikita Popov 39c5857135 Merge branch 'PHP-7.2' 2018-02-05 21:43:50 +01:00
Nikita Popov aa7dbc8ee7 Merge branch 'PHP-7.2' 2018-02-05 21:10:12 +01:00
Nikita Popov db2475cec2 Fix unused variable compiler warnings 2018-02-05 20:58:15 +01:00
Nikita Popov d7fe32500e Match strpos() behavior with mbstring.func_overload
mb_strpos() specifically emulates strpos() behavior when function
overloading is enabled. However, the condition was not changed
when strpos() behavior changed in PHP 7.
2018-02-05 20:58:15 +01:00
Anatol Belski dd4afad087 Fix visibility 2018-02-05 20:42:17 +01:00
Anatol Belski 7a4573a55a Improve conversion loop 2018-02-05 20:42:17 +01:00
Nikita Popov ef20d2990f Remove unnecessary CE_STATIC_MEMBERS() checks
CE_STATIC_MEMBERS(ce) is destroyed after EG(active)=0 is set, so we
should never run into a situation where it is NULL inside the VM.
2018-02-05 18:54:17 +01:00
Dmitry Stogov 752d684971 Removed "dead" code 2018-02-05 20:43:08 +03:00
Dmitry Stogov e0a399f175 One cache slot is enough 2018-02-05 20:40:21 +03:00
Dmitry Stogov ca035f26aa Moved "zval.u2.cache_slot" into free room of "zend_op" 2018-02-05 19:41:47 +03:00
Dmitry Stogov 070a0091b3 Use low bits 2018-02-05 19:41:17 +03:00
Dmitry Stogov 3a794d39f0 Avoid repeatable ARG_SHOULD_BE_SENT_BY_REF() checks in FETCH_*FUNC_ARG and following SEND_VAR_EX. Perform the check once in a new CHECK_FUNC_ARG opcode and reuse in the following FETCH_*FUNC_ARG and SEND_FUNC_ARG (SEND_VAR_EX replacement). 2018-02-05 19:40:06 +03:00
Anatol Belski 7416562ab0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Finer conditions, so /Qspectre is already usable with latest vc15
2018-02-05 10:41:22 +01:00
Michael Wallner ab44dddfe4 Merge branch 'PHP-7.2'
* PHP-7.2:
  fix bug #75916 DNS_CAA record results contain garbage
2018-02-05 09:10:57 +01:00
Nikita Popov fc23452cbf Adjust manual zpp-like error message implementations
This should also use int/bool.
2018-02-04 23:27:51 +01:00
Nikita Popov b4dff68379 Remove no longer necessary type-name special cases
zend_get_type_by_name() now produces the correct value by itself,
so we no longer need these workarounds.
2018-02-04 23:20:44 +01:00
Gabriel Caruso fef879a2d6 Use bool instead of boolean while throwing a type error
PHP requires boolean typehints to be written "bool" and disallows
"boolean" as an alias. This changes the error messages to match
the actual type name and avoids confusing messages like "must be
of type boolean, boolean given".

This a followup to ce1d69a1f6, which
implements the same change for integer->int.
2018-02-04 23:09:40 +01:00
Gabriel Caruso ce1d69a1f6 Use int instead of integer in type errors
PHP requires integer typehints to be written "int" and does not
allow "integer" as an alias. This changes type error messages to
match the actual type name and avoids confusing messages like
"must be of the type integer, integer given".
2018-02-04 19:08:23 +01:00
Gabriel Caruso 4861730a94 strcoll isn't always available 2018-02-04 17:32:56 +01:00
Gabriel Caruso b0d3c1bf83 Add and fix SKIPIF sections 2018-02-04 17:26:37 +01:00
Gabriel Caruso affc20f891 Use bool instead of boolean in proto 2018-02-04 17:00:24 +01:00
Gabriel Caruso 0709eb80f3 Fix test for TCP_NODELAY constant
Actually check for the constant, instead of just printing a string...
2018-02-04 16:59:29 +01:00
Gabriel Caruso 9a4cc52c23 Remove superfluous PHP version check in tests
Also remove tests that target only old PHP versions.
2018-02-04 16:58:54 +01:00
Gabriel Caruso 84488d921b Remove superfluous SKIPIF sections in more tests 2018-02-04 16:57:08 +01:00
Stanislav Malyshev 3616b6b935 Cleanup some tests - remove unnecessary sections
Also unify credits - all are under --CREDITS-- now.
2018-02-04 02:21:40 -08:00
Nikita Popov 47699a24e6 Bump libcurl requirement to 7.15.5
The existence of the following functions is now guaranteed:
 * curl_escape()
 * curl_unescape()
 * curl_multi_setopt()

libcurl 7.15.5 has been released 11.5 years ago and is available
even in RHEL 5.
2018-02-03 21:11:20 +01:00
Benjamin Morel 5864ab75d5 Script to check the sync of cURL constants with online docs 2018-02-03 20:43:21 +01:00
Benjamin Morel 85021a3993 Add CURLOPT_REQUEST_TARGET constant 2018-02-03 20:43:18 +01:00
Nikita Popov c58b307833 Remove checks for unicode.semantics ini option 2018-02-03 19:50:20 +01:00
Nikita Popov 60c29a7f2b Simplify E_STRICT handling in mysqli tests
E_STRICT is always defined, so we don't need to handle it
conditionally. Instead just let the message be printed and check
the output.
2018-02-03 19:11:55 +01:00
Nikita Popov 1a3bdb4a2c Remove some references to E_STRICT in tests
run-tests.php enforces error_reporting=E_ALL (including E_STRICT),
setting this explicitly in not necessary. Conversely, after the
removal of some E_STRICT errors, explicitly excluding it is no
longer necessary in some places.
2018-02-03 18:17:12 +01:00
Gabriel Caruso 36d8bf5294 Remove superfluous SKIPIF sections in tests 2018-02-03 17:50:51 +01:00
Gabriel Caruso 766ce8bdd5 Remove superfluous SKIPIF sections in SPL tests 2018-02-03 17:50:31 +01:00
Nikita Popov e0171ed9d0 Avoid another unused opline warning
The unconditional opline load here used to be necessary for freeing
the return value in case of exception. However, this is no longer
the case, so using LOAD_OPLINE() should be sufficient now.
2018-02-03 17:43:41 +01:00
Nikita Popov 24e744d8a2 Avoid VM warning if building without global regs 2018-02-03 17:43:41 +01:00
Anatol Belski a06cde8236 If the target attribute is available, attach it explicitly
The ifunc attribute might be not available as it is binary format
dependent.
2018-02-03 17:18:41 +01:00
Gabriel Caruso 1624b0a91f Remove superfluous SKIPIF sections in Zend tests 2018-02-03 16:16:49 +01:00
Lee Hsun 4b19f710e1 Set max_requests to 0
The value will always be overwritten by fpm_run(), and the default
value there is 0 and not 500.
2018-02-03 16:15:12 +01:00
Gabriel Caruso bdb8b4fb2b Fix DateTime*::__set_state arginfo
This is a minor BC break, because classes inheriting from DateTime and
overriding __set_state() now have to specify the additional parameter
as well. However, adding the additional parameter also continues to
work on previous versions of PHP, so this change is acceptable for
master.
2018-02-03 16:12:46 +01:00
Gabriel Caruso a920db8f13 Remove superfluous SKIPIF sections in Reflection tests 2018-02-03 14:10:51 +01:00
Gabriel Caruso c6c9e71a5b Add missing SKIPIF sections 2018-02-03 13:54:34 +01:00
Christoph M. Becker a0e5af70a7 Add missing SKIPIF section
The test requires the session extension, which may not be available, in
which case the test would fail, which is expected anyway, but not for
the expected reasons.
2018-02-03 13:34:58 +01:00
Nikita Popov eafb092d9f Merge branch 'PHP-7.2' 2018-02-02 22:39:32 +01:00
Gabriel Caruso 53dbc69a8d Use %d when expecting line number in tests 2018-02-02 22:35:13 +01:00
Michael Smith 58c778ba60 Fix spelling and grammar mistakes in php.ini files
The spelling of input_encoding is incorrect in both the php.ini-production
and php.ini-development, as of March, 2014. This fixes the spelling.

Cleaning up spelling and grammar includes wrapping lines to 80 characters,
adding articles such as 'the', and fixing spellings such as pathes to
paths.
2018-02-02 22:33:24 +01:00
Gabriel Caruso 8034fdc9d9 Use int instead of integer in proto 2018-02-02 22:32:15 +01:00
Anatol Belski ff02775331 Use 7za for packaging
Better compression, Unicode support and general compatibility.
2018-02-02 18:31:22 +01:00
Christoph M. Becker b309f645f9 Sync gdImageCrop() with upstream
Besides that we still hope to sync the complete bundled libgd sometime,
the upstream implementation of `gdImageCrop()` is much simpler than the
current one, and thus better readable and less error prone.
2018-02-02 17:39:23 +01:00
Dmitry Stogov 9a6100f9dd Break dependency between IS_TYPE_REFCOUNTED and ZEND_CALL_FREE_EXTRA_ARGS 2018-02-02 17:38:07 +03:00
Dmitry Stogov 1208acfe5f Added note about changed VM instructions 2018-02-02 17:35:23 +03:00
Anatol Belski e9ae821abd Merge branch 'PHP-7.2'
* PHP-7.2:
  Switch to the new PHP SDK version on AppVeyor
2018-02-02 14:09:44 +01:00
Anatol Belski 674c1ea7dc Fix incompatible pointer warning 2018-02-01 16:52:18 +01:00
Dmitry Stogov 8c977c3430 typo 2018-02-01 17:46:30 +03:00
Anatol Belski 459667ee32 Merge branch 'PHP-7.2'
* PHP-7.2:
  Ensure there are no line breaks in the error msg
2018-02-01 15:30:58 +01:00
Anatol Belski 1f2a5ca417 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
  Fix race conditions with Apache vhost vs. per dir config
2018-02-01 15:26:49 +01:00
Dmitry Stogov ba298725d1 Changed CATCH instruction format (extended_value moved into op2, op2 into result, result into extended_value) 2018-01-31 22:39:30 +03:00
Anatol Belski 3c6e1c2b81 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix race conditions with Apache vhost vs. per dir config
2018-01-31 20:26:20 +01:00
Dmitry Stogov 9c7fb529ce Changed FETCH_CONSTANT instruction format (extended_value moved into op1) 2018-01-31 18:15:25 +03:00
Dmitry Stogov f67f455ef7 Changed FETCH_CLASS instruction format (extended_value moved into op1) 2018-01-31 18:14:43 +03:00
Dmitry Stogov 9701b644fa Compress handlers table 2018-01-31 16:46:30 +03:00
Derick Rethans 3152d44b36 Merge branch 'PHP-7.2' 2018-01-31 11:56:11 +00:00
Dmitry Stogov 59ede4c82b Avoid redundand mask extraction 2018-01-31 13:47:43 +03:00
Dmitry Stogov 1d7eab12e6 Avoid redundand mask extraction 2018-01-31 13:34:34 +03:00
Dmitry Stogov e43ac26356 Fixed string comparison (it may fail in case of not null-terminated strings) 2018-01-31 12:38:02 +03:00
Dmitry Stogov 17a3b48454 Make IS_UNUSED to be zero. 2018-01-31 11:18:41 +03:00
Jakub Zelenka 67e8445334 Merge branch 'PHP-7.2' 2018-01-30 20:09:24 +00:00
Dmitry Stogov 7141631cc8 Change FETCH/ISSET instruction modifiers:
- Get rid of ZEND_ISEMPTY and ZEND_ISSET_ISEMPTY_MASK. Use just single ZEND_ISSET bit to make distinct between isset() and empty()
- Use ZEND_FETCH_GLOBAL, ZEND_FETCH_LOCAL and ZEND_FETCH_GLOBAL_LOCK as bitmask
- Removed unused ZEND_FETCH_STANDARD
- Extended ZEND_FETCH_ARG_MASK
2018-01-30 22:06:05 +03:00
Anatol Belski acbd348969 Implement configuration option for explicit native intrinsics
It mimics -march=native, AVX and more to go, if needed.
2018-01-29 18:26:03 +01:00
Thomas Punt e51aadcc4e Merge branch 'PHP-7.2'
* PHP-7.2:
  Use the correct freeing function
2018-01-29 11:17:23 +00:00
Gabriel Caruso 4f961e0c4a Remove explicit intval() param count check
Rely on ZPP instead.
2018-01-28 22:07:10 +01:00
Nikita Popov 4a7dacb5ee Don't loop over indexes in Phar::extractTo()
Instead use a more idiomatic foreach loop. The behavior is not
strictly the same, but I see no reason why this specific case
should enforce continuously indexed integer keys.

Also handle references in the array while at it.
2018-01-28 22:05:44 +01:00
Gabriel Caruso faf785af9d Fix misspelling vlaues to values 2018-01-28 21:55:21 +01:00
Nikita Popov d79a0bf748 Merge branch 'PHP-7.2' 2018-01-28 21:53:38 +01:00
Anatol Belski 3917b51358 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS.
2018-01-27 17:25:40 +01:00
Anatol Belski 4752f8a8ed Merge branch 'PHP-7.2'
* PHP-7.2:
  fixed Big_endian issue on s390x for stream test cases
2018-01-27 16:45:27 +01:00
Christoph M. Becker 5d7b2ce961 Merge branch 'PHP-7.2' and add NEWS entry 2018-01-27 13:16:06 +01:00
Christoph M. Becker ce7ef7c282 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix #75878: RecursiveTreeIterator::setPostfix has wrong signature
2018-01-27 12:46:10 +01:00
Nikita Popov 466196d454 Merge branch 'PHP-7.2' 2018-01-26 22:28:54 +01:00
Nat Zimmermann 478af26d84 Update mb_preferred_mime_name tests 2018-01-26 22:25:18 +01:00
Nat Zimmermann 6fb78e3017 Add unknown encoding warning test for mb_encoding_aliases 2018-01-26 22:25:18 +01:00
Gabriel Caruso c0ef58e9fe Simplify returns in generate-phpt 2018-01-26 22:19:08 +01:00
Nikita Popov e061a4e9e4 Drop the ext/intl/doc directory
Drop outdated documentation stubs. Better intl documentation is
available in the manual...
2018-01-26 22:13:11 +01:00
Anatol Belski ec0bcecee7 Add RtlSecureZeroMemory to explicit_bzero() compile case
just in case one would use the function directly. The use of
ZEND_SECURE_ZERO could be eliminated now, too. Or it can be
kept for BC.
2018-01-26 21:34:31 +01:00
Dmitry Stogov 53eb20f0cb Merge branch 'PHP-7.2'
* PHP-7.2:
  Restore initial values on graceful server restart.
2018-01-26 15:25:03 +03:00
Anatol Belski 9edf2e9f96 Show the tidyp name, if it was used 2018-01-25 18:55:54 +01:00
Anatol Belski b341556ab5 Add missing define after e7da9685 2018-01-25 18:54:37 +01:00
David Carlier e7da9685cf Tidy extension update to be able to either use tidy or tidyp at configure time 2018-01-25 18:28:55 +01:00
Anatol Belski 93185218e1 Revoke the gcc only restriction
clang at least 5.0 supports GNU style attributes and intrinsic macros.
In general, compilers claiming this functionality should know, what
they do.
2018-01-25 16:24:04 +01:00
Nat Zimmermann 2d1ec6f4b5 Add tests for json_decode with depth below 0 2018-01-24 21:23:24 +01:00
Nikita Popov 2687be6589 Merge branch 'PHP-7.2' 2018-01-24 21:22:50 +01:00
Anatol Belski b6f66f18ad Reimplement ASCII conversion using aligned routine 2018-01-24 18:35:40 +01:00
Anatol Belski 92f9fde23a Macrify the common operation 2018-01-24 18:35:40 +01:00
Derick Rethans 4aa864c4ab Updated to version 2018.3 (2018c) 2018-01-24 13:57:08 +00:00
Derick Rethans 9b4aa706f1 Empty merge 2018-01-24 13:57:08 +00:00
Anatol Belski 7e2a9936d3 Move useful macro into zend_portability.h 2018-01-24 10:14:28 +01:00
Anatol Belski a6e86f7a3f Implement intrinsic function resolving per MINIT 2018-01-24 09:33:32 +01:00
Sara Golemon df4edde870 Remove padding just merged since 7.3 isn't released yet.
Also bump PHP_API_VERSION since the struct size has changed.
2018-01-23 11:13:41 -05:00
Sara Golemon 76b63ed149 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix alignment of PG struct cause by ignore_user_abort big endian fix
2018-01-23 11:11:43 -05:00
Sara Golemon 79f9ed9b6f Merge branch 'PHP-7.2'
* PHP-7.2:
  Use Z_EXPECTED_LONG to initialize FAST_ZPP parsing loop
2018-01-23 09:24:54 -05:00
Sara Golemon 81425be70b Merge branch 'PHP-7.2'
* PHP-7.2:
  BigEndian fix for ignore_user_abort. Use zend_bool to match OnUpdateBool
2018-01-23 08:59:30 -05:00
Dmitry Stogov 5e8aa036f2 Access extra data stored in zval through macros 2018-01-23 12:56:22 +03:00
Christoph M. Becker 5b4b4d33b2 Update to SQLite 3.22.0 2018-01-22 23:42:36 +01:00
Anatol Belski e239c5e19b Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-01-22 19:15:53 +01:00
Anatol Belski 23287a0a81 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #73725 Unable to retrieve value of varchar(max) type
2018-01-22 17:05:03 +01:00
Dmitry Stogov a89eb2f101 Removed commented unoptimized code 2018-01-22 16:14:56 +03:00
Dmitry Stogov a561d6a6ee Use OBJ_FLAGS() macro to access object flags (even if they are currently stored together with GC_FLAGS) 2018-01-22 16:10:33 +03:00
Dmitry Stogov b3e22da745 Use OBJ_FLAGS() macro to access object flags (even if they are currently stored together with GC_FLAGS) 2018-01-22 15:57:00 +03:00
Dmitry Stogov 6fb5568b2d Merge HashTable.u.v.consistency into HashTable.u.v.flags 2018-01-22 15:32:34 +03:00
Dmitry Stogov 6634d5e313 Use HT_FLAGS() macro 2018-01-22 14:58:16 +03:00
Dmitry Stogov ebf900a9eb Introduce mcros to access HashTable iterators counter 2018-01-22 14:14:35 +03:00
Dmitry Stogov c75346dcb5 ws 2018-01-22 13:37:48 +03:00
Dmitry Stogov 9cbb521094 Access HashTable.u.flags through HT_FLAGS() macro. 2018-01-22 13:36:15 +03:00
David Carlier 7f51257c08 NetBSD has its own unoptimizable memset version since 2013
checking presence of the function if older versions of NetBSD
2018-01-19 18:24:36 +01:00
Anatol Belski 957b91b739 Implement SSE2 based ASCII to UTF-16 conversion
This also eliminates the INT_MAX length restriction.
2018-01-19 18:00:02 +01:00
Dmitry Stogov 742d5a01ed Get rid of IS_TYPE_COPYABLE. 2018-01-19 17:47:26 +03:00
Dmitry Stogov 465a8cfbad Use reference-counting instead of duplication 2018-01-19 13:56:31 +03:00
Dmitry Stogov 41ef2952c8 Only persistent referencecounted strings should be duplicated. 2018-01-19 13:41:35 +03:00
Dmitry Stogov d8f916124b Usee reference-counting instead of duplication 2018-01-19 13:19:49 +03:00
Dmitry Stogov 5f349f3ab8 Avoid useless duplication 2018-01-19 13:14:15 +03:00
Dmitry Stogov c2152a2662 Move invariant code out of loop 2018-01-19 01:29:37 +03:00
Dmitry Stogov bf7176c70f Use reference-counting instead of duplication and separation, if really necessary. 2018-01-19 01:03:24 +03:00
Dmitry Stogov 1ee94f56c4 Removed IS_TYPE_COPYABLE flag from IS_STRING zvals. 2018-01-18 12:41:27 +03:00
Dmitry Stogov 0a336f9421 Moved IS_CONSTANT_VISITED_MARK, used for protection from recursive self-referencing class constants, from zval.u1.v.type_flags into zval.u2.access_flags. 2018-01-18 11:36:04 +03:00
Xinchen Hui 1e4deadc5b Merge branch 'PHP-7.2'
* PHP-7.2:
  Updated NEWS
  Fixed #75838 (Memory leak in pg_escape_bytea())
2018-01-18 10:54:16 +08:00
Dmitry Stogov 1613b6a06b Expand SEPARATE_STRING() 2018-01-18 02:30:07 +03:00
Dmitry Stogov a31f251507 Removed useless SEPARATE_STRING() (zend_string_extend() performs separation anyway) 2018-01-18 02:28:18 +03:00
Dmitry Stogov f8885523bf Clenaup SEPARATE_ZVAL...() macros (the behavior is unchanged) 2018-01-18 02:27:11 +03:00
Anatol Belski 8d4b57f62c Add missing closing fold 2018-01-17 20:48:13 +01:00
Dmitry Stogov 25a44cb99e Eliminate duplication, increment_string() performs it anyway. 2018-01-17 20:09:28 +03:00
Dmitry Stogov a87a2f464b Send by reference without duplication 2018-01-17 18:50:18 +03:00
Dmitry Stogov de79001bef ZVAL_COPY_OR_DUP() instead of ZVAL_DUP() 2018-01-17 17:58:42 +03:00
Dmitry Stogov a22f8ac1a9 More effecient array duplication 2018-01-17 17:57:59 +03:00
Dmitry Stogov dd51cb1e34 More effecient array duplication 2018-01-17 17:56:04 +03:00
Dmitry Stogov ae620a06cd More effecient conversion 2018-01-17 17:51:18 +03:00
Dmitry Stogov 515b0508e0 Use ZVAL_COPY() instead og ZVAL_DUP(), because fault is an object 2018-01-17 17:48:36 +03:00
Dmitry Stogov b19d81e0da Use zval_copy_ctor_func() instead of _zval_copy_ctor_func(). 2018-01-17 17:46:57 +03:00
Anatol Belski e9eff0a425 Merge branch 'PHP-7.2'
* PHP-7.2:
  Add switches for Spectre variant 1 mitigation
2018-01-17 14:48:06 +01:00
Dmitry Stogov f7f790fcc9 Scalar types don't have reference counter 2018-01-17 16:17:43 +03:00
Dmitry Stogov 20866891bd Eliminate duplication 2018-01-17 15:52:52 +03:00
Dmitry Stogov c5c9a69447 Use ZVAL_DUP() instead of zval_copy_ctor() 2018-01-17 14:59:15 +03:00
Dmitry Stogov eb6e574b29 Resource is not copyable (just refcounted) 2018-01-17 14:57:42 +03:00
alexanderholman a01de10b07 Fixed bug #74719
Allow stream context arguments for fopen, rename, unlink, mkdir
and rmdir to be null.
2018-01-17 12:46:59 +01:00
Dmitry Stogov af8de0aa95 Simplified conversion 2018-01-17 14:19:13 +03:00
Dmitry Stogov 3896a0332f Eliminate separations 2018-01-17 14:12:06 +03:00
Dmitry Stogov 48b4e01680 Eliminate useless separations 2018-01-17 14:11:40 +03:00
Xinchen Hui 8ec8d7f926 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Eliminate useless separations
  Avoid separation and simlifyed conversion
  Eliminate useless separation
  Eliminate useless separation
  Eliminate useless separations
  A cheaper way to clone reference value.
2018-01-17 18:04:07 +08:00
Dmitry Stogov 67e47c3ee3 Eliminate useless separations 2018-01-17 12:45:23 +03:00
Dmitry Stogov 19bf64cd61 Avoid separation and simlifyed conversion 2018-01-17 12:37:42 +03:00
Xinchen Hui 5618a5cfd9 Don't use ifunc if compiling with __SSE4_2__ deinfed 2018-01-17 17:31:10 +08:00
Dmitry Stogov 14d3a627c9 Eliminate useless separation 2018-01-17 12:25:49 +03:00
Dmitry Stogov b2c060a291 Eliminate useless separation 2018-01-17 12:09:38 +03:00
Dmitry Stogov 20b13fda09 Eliminate useless separations 2018-01-17 11:59:01 +03:00
Dmitry Stogov ffa16693a7 A cheaper way to clone reference value. 2018-01-17 10:59:50 +03:00
Xinchen Hui 518a9f8bfd Fixed build extension by phpize 2018-01-17 15:09:04 +08:00
Dmitry Stogov 40b8483165 Use SEPARATE_ARRAY 2018-01-17 03:08:22 +03:00
Dmitry Stogov d9e4841e7f Use SERPARATE_ARRAY 2018-01-17 03:02:29 +03:00
Dmitry Stogov 6e1fdd2371 Use SEPARATE_ARRAY 2018-01-17 03:01:56 +03:00
Dmitry Stogov 5d456c1c66 Replaced separation with destructor 2018-01-17 03:01:00 +03:00
Dmitry Stogov c4fa7345dc Removed useless separation 2018-01-17 03:00:11 +03:00
Dmitry Stogov ecd2624875 Avoid array duplication and in-place modification 2018-01-17 02:25:36 +03:00
Dmitry Stogov 5c77bac9a7 A cheaper way to reset type flags. 2018-01-17 01:58:51 +03:00
Anatol Belski 60fb58799f Merge branch 'PHP-7.2'
* PHP-7.2:
  7.0.15 next
  Fixed NEWS
2018-01-16 19:50:36 +01:00
Dmitry Stogov 19676fdf55 Added zendi_smart_streq() for smart string equality check 2018-01-16 17:24:00 +03:00
Dmitry Stogov e229e7b657 Inline function 2018-01-16 14:13:49 +03:00
Anatol Belski 74de5461eb The cpu setup is still needed when ifunc is supported 2018-01-16 11:55:19 +01:00
Dmitry Stogov 1fd651650f Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Separate the cpuinfo initialization part and call it at startup
2018-01-16 13:51:50 +03:00
Dmitry Stogov 0bfc4f34ca Avoid EG(vm_interrupt) check on forward JMP 2018-01-16 13:50:36 +03:00
Anatol Belski 811326089f Separate the cpuinfo initialization part and call it at startup 2018-01-16 11:27:18 +01:00
Anatol Belski 560cc32e21 Fix __cpuidex usage 2018-01-16 10:56:46 +01:00
Remi Collet 831b3e5473 Merge branch 'PHP-7.2'
* PHP-7.2:
  next is 7.2.3
2018-01-16 09:55:23 +01:00
Dmitry Stogov 4861373182 Replace checks with asserts 2018-01-16 11:39:51 +03:00
Dmitry Stogov b279aea2bf Removed reference to the obsolete zend_vm_use_old_executor() 2018-01-16 10:44:15 +03:00
Dmitry Stogov d7f3b9b4e9 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Added missed header file
  Added ZEND_API zend_cpu_supports
2018-01-16 10:34:15 +03:00
Dmitry Stogov 267b78550e Use fastcall calling convention 2018-01-16 10:33:41 +03:00
Xinchen Hui 3cb7fff9f1 Added missed header file 2018-01-16 14:56:43 +08:00
Xinchen Hui ff6a9d1f10 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Removed recursive call
  Put ZEND_FASTCALL into the proper place.
2018-01-16 14:54:05 +08:00
Xinchen Hui 3a3e0493d0 Added ZEND_API zend_cpu_supports 2018-01-16 14:53:00 +08:00
Dmitry Stogov d688129360 Removed recursive call 2018-01-16 09:44:49 +03:00
Dmitry Stogov 1e783db679 Put ZEND_FASTCALL into the proper place. 2018-01-16 09:44:10 +03:00
Dmitry Stogov 022e029984 Optimize zval_dtor_func() 2018-01-16 00:57:47 +03:00
Anatol Belski 08478abc59 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-01-15 17:49:46 +01:00
Dmitry Stogov d5238b95a3 Added missing #if to allow compilation withput ZEND_MM_CUSTOM 2018-01-15 17:37:15 +03:00
Dmitry Stogov 106575ed39 Manual CSE 2018-01-15 17:36:35 +03:00
Xinchen Hui 0b7a968109 Added missed PHPAPI 2018-01-15 21:39:25 +08:00
Xinchen Hui 92d6f26e3f Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Allow pecl like usage in ext/phar, closes #2955
2018-01-15 21:34:03 +08:00
Xinchen Hui 56d2147cbb Restore change committed by accident 2018-01-15 21:30:56 +08:00
Anatol Belski 89463341c8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Allow pecl like usage in ext/phar, closes #2955
2018-01-15 14:26:22 +01:00
Xinchen Hui 98aa3a65c4 Optimized php_addslashes with SSE4.2 instructions
According to benchmark
(https://gist.github.com/laruence/fd0d443d2c5bacca9d8ab99250499956) this brings 30%+ execution time reduced.

In the further, this open the door for possible SSE4.2 optimizations in
other places.
2018-01-15 21:17:50 +08:00
motecshine 0e10bed83e Remove double include of fpm_scoreboard.h 2018-01-15 12:22:04 +01:00
Bishop Bettini cb7387275f Add test for bug #66960 2018-01-15 12:20:10 +01:00
Nikita Popov 3eaab04663 Merge branch 'PHP-7.2' 2018-01-15 12:16:16 +01:00
Anatol Belski 3e40f661a3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Sync for upcoming vc++ 15.6 version raise
2018-01-14 16:43:21 +01:00
Anatol Belski b4412e0dbc Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [ci skip] Update NEWS
2018-01-13 14:51:34 +01:00
Anatol Belski 50431d0820 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix invalid free
2018-01-13 12:33:45 +01:00
Nikita Popov 6aa045e174 Merge branch 'PHP-7.2' 2018-01-13 11:06:58 +01:00
Nikita Popov 47e6c1491b Merge branch 'PHP-7.2' 2018-01-12 22:51:29 +01:00
Nikita Popov d8d20020f5 Merge branch 'PHP-7.2' 2018-01-12 21:28:31 +01:00
Nikita Popov 5fef837c28 Simplify non-linear generator yield from tree
Remove special handling for 2-4 children. Now the three possible
cases are no children, one child, or many children (HT).

The non-linear (many children) case is extremely rare, so there is
no point in trying to optimize it.
2018-01-12 21:14:50 +01:00
Anatol Belski b2a1199d33 [ci skip] Fix typos 2018-01-12 19:12:54 +01:00
timurib a484b9a535 Fix #75765 Exception on extend of undefined class
As the parent class is fetched prior to binding, there are no
safety concerns in this case and we can replace the fatal error
with an Error exception.
2018-01-12 18:41:39 +01:00
Nikita Popov 2d083a3da7 Don't directly access refcount in interbase 2018-01-12 18:38:45 +01:00
Nikita Popov 27f09efa11 Avoid duplicate addition of generators in yield from tree 2018-01-12 18:37:47 +01:00
Nikita Popov 5c983ae852 Merge branch 'PHP-7.2' 2018-01-12 18:34:34 +01:00
Nikita Popov b942648771 Merge branch 'PHP-7.2' 2018-01-12 18:18:45 +01:00
Anatol Belski 4121f2a1ad Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75774 imap_append HeapCorruction
2018-01-12 17:14:46 +01:00
Anatol Belski 7892eaf075 Merge branch 'PHP-7.2'
* PHP-7.2:
  Unify EOL
  Extend test, latest cURL ships also with smb and smbs
2018-01-12 12:22:35 +01:00
Dmitry Stogov 2223f04304 Cleanup (at persistence stage we may get only "user" functions; regular op_arrays can't be referenced from different places) 2018-01-12 12:05:18 +03:00
Anatol Belski 36961661d5 Add missing clean sections 2018-01-12 08:05:07 +01:00
Anatol Belski d857703bdb [ci skip] Update UPGRADING 2018-01-12 07:45:39 +01:00
Dmitry Stogov 12c386f5b9 Use ZEND_CLOSURE_OBJECT() macro to resolve closure op_array to closure object through address calculation, instead of op_array->prototype reuse. (reapply 781e1573af, now it should be OK). 2018-01-11 22:15:45 +03:00
Dmitry Stogov 0ec631c996 Improve Closure::call(). Eliminate zend_fcall_info_init() call and reset ZEND_ACC_CLOSURE flag. 2018-01-11 21:23:52 +03:00
Dmitry Stogov 70aa967d81 Reorder zend_op_array fields for better data locality and packing 2018-01-11 19:50:27 +03:00
Dmitry Stogov c9034c3b33 Get rid of zend_op_array.early_binding 2018-01-11 19:15:52 +03:00
Dmitry Stogov 6ba10a03e7 Revert "Use ZEND_CLOSURE_OBJECT() macro to resolve closure op_array to closure object through address calculation, instead of op_array->prototype reuse." (this patch is incomplete or wrong)
This reverts commit 781e1573af.
2018-01-11 17:27:26 +03:00
Anatol Belski da8204ba1c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test for libtidy 5.6.0
2018-01-11 14:34:28 +01:00
Dmitry Stogov 781e1573af Use ZEND_CLOSURE_OBJECT() macro to resolve closure op_array to closure object through address calculation, instead of op_array->prototype reuse. 2018-01-11 16:25:28 +03:00
Christoph M. Becker 35e70af208 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75799 (arg of get_defined_functions is optional)
2018-01-11 13:14:37 +01:00
Anatol Belski 45db77ed0d Revert "Add possibility to lower timer resolution"
This reverts commit c3717d9aec.

The final mitigation of the consequences with spectre should be
discussed more also with the regard to the happenings on the
developments. Right now a preliminary mitigation might be wrong or
suboptimal, thus reverting this.
2018-01-11 12:40:01 +01:00
Dmitry Stogov 57e4be9cef Avoid, most offten unnecessary, memory load. 2018-01-11 12:15:34 +03:00
Anatol Belski c3717d9aec Add possibility to lower timer resolution
The recently discovered security flaw Spectre requires a high resolution
timer. To the today's knowledge, PHP can't be used to create an attack for
this flaw. Still some concerns were raised, that there might be impact in
shared hosting environments. This patch adds a possibility to reduce the
timer resolution by an ini setting, thus giving administrators full
control. Especially, as the flaw was also demonstrated by an abuse of
the JS engine in a browser, Firefox reduced several time sources to 20us.
Any programming language, that doesn't compile to JIT, won't be able to
produce an attack vector for Meltdown and Spectre, at least by todays
knowledge. There are also other factors that say that the security
concern on the hrtime feature is to the big part not justified, still we
aim JIT in the future. Thus, adding a possibility to control the timer
resolution is a good and small enough tradeoff for safety and future.
2018-01-10 18:45:15 +01:00
Dmitry Stogov f09c012ebe Mark FETCH_OBJ_R and INIT_METHOD_CALL as HOT_OBJ for (UNUSED+CONST and CV+CONST) 2018-01-10 19:14:52 +03:00
Dmitry Stogov c73a42ccec Added abiliy to mark object specific handlers with most often used operand types as HOT. (UNUSED+CONST and CV+CONST) 2018-01-10 19:00:38 +03:00
Dmitry Stogov 9d7544aa1c Convert "sparse switch" statements into sequences of "if" with the most probable conditions first 2018-01-10 15:12:03 +03:00
Dmitry Stogov c533396ce4 Strength reduction 2018-01-10 14:23:43 +03:00
Dmitry Stogov d7a0d48d59 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  minor optimize on strstr
2018-01-10 14:11:23 +03:00
Xinchen Hui abd31deb91 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  cleanup
2018-01-10 18:24:03 +08:00
Xinchen Hui 6b9e2b79a0 minor optimize on strstr 2018-01-10 18:22:59 +08:00
Dmitry Stogov 20a1124f63 Added expectation 2018-01-10 12:37:13 +03:00
Dmitry Stogov c32d79b65f cleanup 2018-01-10 12:03:04 +03:00
Dmitry Stogov d89c8dd8b8 Remove HashTable holes in functions and class tables. 2018-01-10 10:15:55 +03:00
Dmitry Stogov 94508cdc3f Fixed whitespaces 2018-01-10 02:22:07 +03:00
Dmitry Stogov 83aa742dde Removed unused array 2018-01-09 23:17:10 +03:00
Nikita Popov d9c706f28d Merge branch 'PHP-7.2' 2018-01-09 20:25:19 +01:00
Nikita Popov 0c25ea355f Merge branch 'PHP-7.2' 2018-01-09 18:44:44 +01:00
Dmitry Stogov 09b1bfecee Allow commas in specializer conditions 2018-01-09 15:08:18 +03:00
Xinchen Hui d80abbf9ce Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #75781 (substr_count incorrect result)
2018-01-09 16:23:38 +08:00
Dmitry Stogov aa121b6d27 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed possible incorrect "mark" usage
2018-01-09 10:53:37 +03:00
Xinchen Hui 69affa985c Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Implement high resolution monotonic timer function hrtime()
2018-01-08 12:57:02 +08:00
Xinchen Hui 4c3c7117e4 remove false dup 2018-01-08 12:56:08 +08:00
Anatol Belski 83497327e7 Implement high resolution monotonic timer function hrtime() 2018-01-07 16:03:52 +01:00
Xinchen Hui 88b8cd7385 Use stack allocated zvals 2018-01-07 20:03:49 +08:00
Xinchen Hui 4a8229b80d Use GC_ADDREF 2018-01-07 19:53:51 +08:00
Xinchen Hui 63a96ebf6a Fixed bug while dealing with ADD_ARRAY_ELEMENT against an existing const array 2018-01-07 14:17:47 +08:00
David Carlier 6e94f943c1 Avoid abs() type mismatch warnings
timelib_time z field was mistakenly promoted to 64 bits types in
one place. Otherwise silence warning with explicit cast down to int.
2018-01-06 21:51:31 +01:00
David Carlier a95e8b80db net/if.h requires sys/socket.h on OpenBSD
This led to a detection failure of this particular header.
2018-01-06 21:42:27 +01:00
Gabriel Caruso a56ea44431 Remove trailing whitespace in C++ files
[ci skip]
2018-01-06 21:38:09 +01:00
Bishop Bettini e3f58de30b PHP 7.1 is the new hotness
PHP 7.0 entered security fix phase.

[ci skip]
2018-01-06 21:12:12 +01:00
Xinchen Hui 5c628d7704 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Fixed typo
2018-01-05 15:05:47 +08:00
Xinchen Hui 8d63c834e4 Change assertion 2018-01-05 15:05:05 +08:00
Kalle Sommer Nielsen 2340f9a67d Fixed typo 2018-01-05 07:30:45 +01:00
Xinchen Hui 729a6688af Optimized FETCH_CLASS before INSTANCEOF out if possible 2018-01-05 12:58:28 +08:00
Xinchen Hui c0913af570 Fixed test 2018-01-05 12:54:20 +08:00
Xinchen Hui 1db6c19365 Fixed wrongly const replacing on partial array 2018-01-05 12:29:39 +08:00
Anatol Belski b09a3e5286 Don't prevent loading odbc and pdo_odbc for tests 2018-01-04 18:23:31 +01:00
Anatol Belski 67872afefd Re-enable ODBC tests 2018-01-04 17:31:59 +01:00
Anatol Belski 205f527379 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix tests
2018-01-04 16:10:37 +01:00
Kalle Sommer Nielsen 8fe0ee690c Added a <in deps path> for includes and libs on configure 2018-01-04 08:58:27 +01:00
Kalle Sommer Nielsen 34fb94b9f3 Fix macro for Windows 2018-01-04 08:16:20 +01:00
Kalle Sommer Nielsen 1d0ac9819a Use PHP_WIN32 2018-01-04 08:14:41 +01:00
Kalle Sommer Nielsen 44c5dea9d6 Kill the references to C:\winnt (Windows 2000), which we don't support, also remove the note about Windows NT based OS, as we only support NT anyway 2018-01-04 08:11:34 +01:00
Xinchen Hui 2bac045214 Merge branch 'clean-up' of https://github.com/carusogabriel/php-src
* 'clean-up' of https://github.com/carusogabriel/php-src:
  Trailing whitespaces on Zend
  Trailing whitespaces on win32
  Trailing whitespaces on sapi/*
  Trailing whitespaces on ext/*
2018-01-04 14:13:08 +08:00
Xinchen Hui ec69cb664f Added entry on UPGRADING 2018-01-04 13:50:34 +08:00
Xinchen Hui 4a4602c45c Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Happy new year (Update copyright to 2018)
  Happy new year (Update copyright to 2018)
  Revert "Enable ODBC tests on AppVeyor"
  Enable ODBC tests on AppVeyor
  Skip on Travis-CI
  Extend skip section
  2018
  missing changelog entries + fix version and date
  missing changelog entries
  2018
  Trailing whitespaces
2018-01-04 13:45:11 +08:00
Gabriel Caruso 6687e8db15 Trailing whitespaces on Zend
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
2018-01-04 02:41:57 -02:00
Gabriel Caruso c215b8d147 Trailing whitespaces on win32
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
2018-01-04 02:41:26 -02:00
Gabriel Caruso 471da3eddc Trailing whitespaces on sapi/*
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
2018-01-04 02:39:54 -02:00
Gabriel Caruso 2238403892 Trailing whitespaces on ext/*
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
2018-01-04 02:38:32 -02:00
Lior Kaplan 0e3dede07c Happy new year (Update copyright to 2018) 2018-01-04 01:02:17 +02:00
Lior Kaplan 4959ceb537 Merge branch 'PHP-7.2'
* PHP-7.2:
  Happy new year (Update copyright to 2018)
2018-01-04 00:58:17 +02:00
Anatol Belski f9072ac62a Revert "Enable ODBC tests on AppVeyor"
This reverts commit b0db19e223.

More test fixes needed to evaluate.
2018-01-03 21:05:56 +01:00
Anatol Belski b0db19e223 Enable ODBC tests on AppVeyor 2018-01-03 20:28:16 +01:00
Anatol Belski f4076bb1b3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Skip on Travis-CI
2018-01-03 18:36:34 +01:00
Anatol Belski 5361bf3312 Merge branch 'PHP-7.2'
* PHP-7.2:
  Extend skip section
2018-01-03 16:56:42 +01:00
Remi Collet f70570938d Merge branch 'PHP-7.2'
* PHP-7.2:
  2018
2018-01-03 15:13:18 +01:00
Remi Collet 4b95341ba2 Merge branch 'PHP-7.2'
* PHP-7.2:
  missing changelog entries + fix version and date
  missing changelog entries
  2018
2018-01-03 15:10:25 +01:00
Gabriel Caruso 6400264856 Trailing whitespaces
Signed-off-by: Gabriel Caruso <carusogabriel34@gmail.com>
2018-01-03 14:38:00 +01:00
Xinchen Hui 76d0e3d514 Enable replacing const to INSTANCEOF 2018-01-03 18:28:03 +08:00
Xinchen Hui 1e22c9a187 Merge branch 'instanceof-const' of https://github.com/nikic/php-src
* 'instanceof-const' of https://github.com/nikic/php-src:
  Return false for instanceof on literal
2018-01-03 16:08:20 +08:00
Xinchen Hui a76eeea736 Merge branch 'PHP-7.2'
* PHP-7.2:
  Happy new year (Update copyright to 2018)

Conflicts:
	ext/phar/LICENSE
2018-01-03 16:02:15 +08:00
Ferenc Kovacs 76dd9a5572 Merge branch 'PHP-7.2' 2018-01-03 00:36:55 +01:00
Anatol Belski dd0ebc02dc Merge branch 'PHP-7.2'
* PHP-7.2:
  Skip test for pdo_odbc
2018-01-02 12:29:43 +01:00
Anatol Belski 53b79dfe09 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test for pdo_odbc
2018-01-02 11:39:36 +01:00
Stanislav Malyshev 77298dee2e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix some int/long confusion issues in GMP
2018-01-02 00:12:43 -08:00
Anatol Belski eb65916f7f Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
2018-01-02 07:50:57 +01:00
Xinchen Hui a307689ba7 Remove unnecessary initialization:w 2018-01-02 14:03:34 +08:00
Xinchen Hui 6cf9c91b55 Merge branch 'PHP-7.2'
* PHP-7.2:
  regenerated with newer re2c
2018-01-02 13:59:07 +08:00
Xinchen Hui a7fe2570d3 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Update NEWS
  Fixed bug #75571: Potential infinite loop in gdImageCreateFromGifCtx
  Fix bug #74782: remove file name from output to avoid XSS
2018-01-02 13:50:40 +08:00
Stanislav Malyshev 05eb5cda50 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #75571: Potential infinite loop in gdImageCreateFromGifCtx
  Fix bug #74782: remove file name from output to avoid XSS
2018-01-01 21:07:30 -08:00
Xinchen Hui a6519d0514 year++ 2018-01-02 12:57:58 +08:00
Xinchen Hui 017dbf06fc Merge branch 'PHP-7.2'
* PHP-7.2:
  year++
  year++
2018-01-02 12:55:53 +08:00
Nikita Popov d93de12c3d Merge branch 'PHP-7.2' 2018-01-01 21:30:44 +01:00
Nikita Popov ffc0a17322 Fix typos 2017-12-30 23:40:33 +01:00
Nikita Popov b6581038eb Use GC_FLAGS_SHIFT in a few more places
Rather than hardcoding 8.
2017-12-30 23:40:25 +01:00
Jakub Zelenka ba85001439 Merge branch 'PHP-7.2' 2017-12-30 17:44:09 +00:00
Dmitry Stogov 5c8f8f8fce Use ZEND_FAST_CONCAT instead of ZEND_CONCAT for CONST operands. 2017-12-29 13:54:18 +03:00
Dmitry Stogov f010423335 Use IS_EQUAL instead of CASE when first operand is CV or CONST. Removed CASE handlers that duplicated IS_EQUAL. 2017-12-29 12:57:58 +03:00
Dmitry Stogov 27206f9cc5 Removed useless specialization 2017-12-29 12:02:50 +03:00
Nikita Popov 3538cbe6c0 Use free_obj for intl ResourceBundle
Partial fix for bug #67911, the part about __destruct() not being
called.
2017-12-28 12:25:01 +01:00
Dmitry Stogov bee5bc78ed Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75720 (File cache not populated after SHM runs full)
2017-12-28 14:10:01 +03:00
Xinchen Hui 7dffc6e301 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75742 (potential memleak in internal classes's static members)
2017-12-28 16:31:40 +08:00
Dmitry Stogov 2b9cc5238e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed reference-counting
2017-12-28 11:20:52 +03:00
Dmitry Stogov ac2fdc56fb zend_fcall_info_cache.initialized is removed (zend_fcall_info_cache is initialized if zend_fcall_info_cache.function_handler is set). 2017-12-27 16:02:20 +03:00
Dmitry Stogov d9f5ea691f zend_fcall_info_cache.initialized is removed (zend_fcall_info_cache is initialized if zend_fcall_info_cache.function_handler is set). 2017-12-27 15:15:03 +03:00
Dmitry Stogov a6fcbb7c87 Use zend_hash_find() instead of zend_hash_find_ptr() to avoid double check 2017-12-27 13:26:06 +03:00
Dmitry Stogov 856ad54f45 Use zend_hash_find() instead of zend_hash_find_ptr() to avoid double check 2017-12-27 13:25:21 +03:00
Xinchen Hui d6b2756da1 Merge branch 'PHP-7.2'
* PHP-7.2:
  Updated NEWS
  Fixed bug #75735 ([embed SAPI] Segmentation fault in sapi_register_post_entry)
2017-12-27 12:52:44 +08:00
Dmitry Stogov 6e4d18924b Combine READY_TO_DESTROY, EXTRACT_ZVAL_PTR and FREE_OP_VAR_PTR into single, better optimized, macro. 2017-12-26 16:50:34 +03:00
Dmitry Stogov 6e23e84332 Use zval constructors instead ZVAL_COPY if we know the types 2017-12-26 16:49:34 +03:00
Nikita Popov b2b2b437af Add _IS_NUMBER as cast_object() target type
convert_scalar_to_number() will now call cast_object() with an
_IS_NUMBER argument, in which case the cast handler should return
either an integer or floating point number, whichever is more
appropriate.

Previously convert_scalar_to_number() unconditionally converted
objects to integers instead.

Fixes bug #53033.
Fixes bug #54973.
Fixes bug #73108.
2017-12-26 12:39:06 +01:00
Dmitry Stogov efcbea4345 Cheaper reference construction 2017-12-26 13:30:25 +03:00
Dmitry Stogov 05cb472a88 Avoid overhead of memory allocation and useless referene-counting in implode() 2017-12-26 13:29:18 +03:00
Nikita Popov 182317f6b6 Remove unnecessary type check 2017-12-25 21:21:05 +01:00
Nikita Popov 2667ddc46d Remove unnecessary readobj==writeobj checks
This can no longer be the case since PHP 7. The writeobj must
always point to a different zval.
2017-12-25 21:19:45 +01:00
Nikita Popov 688b9136ab Fixed bug #54043 2017-12-23 13:35:08 +01:00
Nikita Popov 66c8a9d672 Remove EH_SUPPRESS mode
It is unused and does not work in any meaningful way:
Warnings are suppressed, but everything else (both notices and
fatals) are not. It would make some sense if it suppressed
warnings and lower, but right now this is a pointless mode.
2017-12-23 13:28:09 +01:00
Anatol Belski 18ddc2eb9c Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert to Postgres 9.6, AppVeyor seems to have issues with 10
2017-12-22 23:39:59 +01:00
Anatol Belski 0317dbd126 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update tool path
2017-12-22 23:27:20 +01:00
Anatol Belski 17795503ef Merge branch 'PHP-7.2'
* PHP-7.2:
  Switch AppVeyor to PostgreSQL 10 for tests
2017-12-22 23:15:23 +01:00
Anatol Belski 42b1d1a366 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  Fixed bug #75579 (Interned strings buffer overflow may cause crash)
2017-12-22 19:01:44 +01:00
Nikita Popov 26207101c5 Merge branch 'PHP-7.2' 2017-12-22 18:22:52 +01:00
Nikita Popov d90797a896 Merge branch 'PHP-7.2' 2017-12-22 18:12:23 +01:00
Nikita Popov 9fe0eb8c48 Merge branch 'PHP-7.2' 2017-12-22 18:01:53 +01:00
Nikita Popov 8bcedb6cd7 Merge branch 'PHP-7.2' 2017-12-22 17:50:48 +01:00
Anatol Belski 0056389544 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix wrong return value for fail case in set attribute handler in pdo_odbc
2017-12-22 16:46:03 +01:00
Anatol Belski edab9ce1db Merge branch 'PHP-7.2'
* PHP-7.2:
  pdo_odbc has no driver API for quoting, skip the test
2017-12-22 16:28:48 +01:00
Dmitry Stogov 35b3fdfd0a Separate exceptional code into cold functions. 2017-12-22 16:35:52 +03:00
Sara Golemon 171ecbb8d1 Fix darwin builds of phpdbg using frameworks 2017-12-21 17:03:04 -05:00
Dmitry Stogov dd0f3012eb Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75579 (Interned strings buffer overflow may cause crash)
2017-12-21 23:44:19 +03:00
Anatol Belski 55bc151608 Merge branch 'PHP-7.2'
* PHP-7.2:
  Ensure expected items delivered in same order
2017-12-21 18:38:53 +01:00
Anatol Belski fc9c8e479b Adapt test 2017-12-21 18:35:02 +01:00
Anatol Belski e8db69f3f7 Add info about thread API used 2017-12-21 17:54:31 +01:00
Anatol Belski 259085f201 Update libmagic.patch, also reflecting PCRE2 changes 2017-12-21 15:47:07 +01:00
Anatol Belski 99a426938b Merge branch 'PHP-7.2'
* PHP-7.2:
  Update libmagic.patch
2017-12-21 15:46:35 +01:00
Anatol Belski aa978538ca Merge branch 'PHP-7.2'
* PHP-7.2:
  fileinfo: fix misleading indentation in libmagic
2017-12-21 15:42:16 +01:00
Anatol Belski 3c57027556 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix segfault. Compile param --with-tsrm-pth=yes
2017-12-21 13:49:55 +01:00
Anatol Belski e68084780f Tell the diff by returning NULL, if system has no ODBC data sources 2017-12-20 22:32:54 +01:00
Dmitry Stogov 8dd6d88b57 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Templatize driver name in the expected string
  Bump libcurl requirement to 7.12.1
  Avoid strlen call
  NEWS
  display headers (buildtime) and library (runtime) versions in phpinfo (libzip >= 1.3.1)
2017-12-20 21:45:06 +03:00
Dmitry Stogov 4691cbe5d1 Fixed possible local assembler labels conflicts. 2017-12-20 21:44:24 +03:00
Anatol Belski 09a3da88f0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Templatize driver name in the expected string
2017-12-20 18:50:52 +01:00
Nikita Popov 161fd75773 Bump libcurl requirement to 7.12.1
The existence of the following functions is now guaranteed:
 * curl_reset()
 * curl_strerror()
 * curl_multi_strerror()
 * curl_share_strerror()

libcurl 7.12.1 has been released more than 13 years ago and is
available even in RHEL 4.
2017-12-19 23:23:56 +01:00
Nikita Popov b6131364f9 Return false for instanceof on literal 2017-12-19 22:16:45 +01:00
Anatol Belski fc46c4b106 Avoid strlen call 2017-12-19 15:42:34 +01:00
Remi Collet 50e8ee128f Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  display headers (buildtime) and library (runtime) versions in phpinfo (libzip >= 1.3.1)
2017-12-19 14:48:21 +01:00
Anatol Belski 0994e373f2 Compile the blacklist pattern with JIT
There are certain limitations on the pattern size. Should the JIT
compilation fail, the interpreter code is still usable.
2017-12-19 12:57:39 +01:00
Anatol Belski 80571d6f96 Avoid strlen call 2017-12-19 12:57:39 +01:00
Nikita Popov e512305581 Remove opcache.inherited_hack
This ini directive has already been ignored since PHP 5.3.
2017-12-18 22:00:54 +01:00
Nikita Popov 8cced30a6a Merge branch 'PHP-7.2'
[ci skip]
2017-12-18 21:45:07 +01:00
Dmitry Stogov ce4fb228e0 Put interned strings into regular SHM memory if there is no space in shared interned_strings_buffer. 2017-12-18 21:04:41 +03:00
Dmitry Stogov f860ae451a fixed "unused function" compilation warning 2017-12-18 11:43:12 +03:00
Dmitry Stogov b337b90bac Fix warning in the proper place 2017-12-18 11:28:59 +03:00
Xinchen Hui 4dfbfe93aa Use cheaper API 2017-12-18 11:55:14 +08:00
Nikita Popov 744d3c5753 Merge branch 'PHP-7.2' 2017-12-17 12:57:40 +01:00
Nikita Popov ac7e8bdbfa Merge branch 'PHP-7.2' 2017-12-17 12:48:11 +01:00
Xinchen Hui 31c0e7b0ec Added integrity check before dfa 2017-12-17 09:48:27 +08:00
Xinchen Hui 4deb63dc5a Merge branch 'PHP-7.2'
* PHP-7.2:
  Updated NEWS
2017-12-17 09:42:18 +08:00
Sebastian Ramadan 168c6cda8f Transmit phpdbg webdata len in little-endian
Rather than using machine-endianness through a UB cast.
2017-12-17 00:24:45 +01:00
David Carlier e835e3c132 Improve explicit_bzero implementation
Using the weak symbol explicit_bzero_hook does not work if LTO is
enabled. Instead avoid memset optimizations using an asm memory
barrier.

Use a fallback implementation where the memory is zeroed through
volatile.
2017-12-16 23:07:48 +01:00
Nikita Popov ff7c9990d4 Merge branch 'PHP-7.2' 2017-12-16 22:33:06 +01:00
Nikita Popov 388a6bab4c Merge branch 'PHP-7.2' 2017-12-16 22:04:38 +01:00
Nikita Popov 55e8b9e860 Merge branch 'PHP-7.2' 2017-12-16 21:25:49 +01:00
Nikita Popov 46da97f7da Merge branch 'PHP-7.2' 2017-12-16 21:12:57 +01:00
Nikita Popov 43d9f5995d Fix duplicate NEWS entry
Also add an UPGRADING note while at it, as this is potentially
BC breaking.

[ci skip]
2017-12-16 17:41:24 +01:00
Michael Moravec 84235344f9 Fixed bug #75355: preg_quote() does not quote # control character 2017-12-16 17:34:41 +01:00
Nikita Popov abdece72c2 Merge branch 'PHP-7.2' 2017-12-16 17:21:06 +01:00
Nikita Popov 3fde27d87d Merge branch 'PHP-7.2' 2017-12-16 17:10:09 +01:00
Xinchen Hui ef9d2cecc6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75687 (var 8 (TMP) has array key type but not value type)
2017-12-16 23:59:44 +08:00
David Carlier e251d9a6b2 Fix some format specificers
time_t is of 64 bits type on some systems as well.
2017-12-16 15:27:32 +01:00
Markus Staab 5142a06506 Use known string "file" in stream layer 2017-12-16 13:25:05 +01:00
Nikita Popov 80ec2346f4 Merge branch 'PHP-7.2' 2017-12-15 22:04:40 +01:00
Nikita Popov 93c7a3803f Fix const qualifier warning 2017-12-15 21:58:52 +01:00
Li-Wen Hsu 72ec23d823 Fix bug #75677: Drop fastcall attribute on variadic function
Fastcall generally doesn't make sense on variadic functions. For
clang in particular this eliminates a "fastcall calling convention
ignored on variadic function" warning.
2017-12-15 21:56:08 +01:00
Anatol Belski 6b1a1771b4 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-12-15 16:27:10 +01:00
Anatol Belski 2515b7a0d9 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75671 pg_version() crashes when called on a connection to cockroach
2017-12-15 15:35:07 +01:00
Anatol Belski 9baf84e513 Drop unused code 2017-12-15 15:00:20 +01:00
Anatol Belski 32db45ca54 Drop unused code 2017-12-15 14:58:43 +01:00
Anatol Belski f3f6cd24e9 Modernize realpath and integrate quick variant into virtual_file_ex
The slower I/O as a traditional bottleneck on Windows which is
the target of this patch. The recursive path resolution, while being
an allround solution, is expensive when it comes to the common case.
Files with proper ACLs set can be resolved in one go by usage of specific
API. Those are available since Vista, so actually can be called old. Those
simpler api is used for the cases where no CWD_EXPAND is requested. For
the cases where ACLs are improper, the existing solution based on
FindFirstFile still does good job also partially providing quirks. Cases
involing reparse tags and other non local filesystems are also partially
server by new APIs.

The approach uses both APIs - the quick one for the common case still
integrating realpath cache, and the existing one as a fallback. The tests
show the I/O load drop on the realpath resolution part due to less
system calls for the sub part resolution of paths. In most case it is
justified, as the sub parts were otherwise cached or unused as well. The
realpath() implementation in ioutil is also closer to the POSIX.
2017-12-15 13:23:34 +01:00
Dmitry Stogov 66a604171c Array addition is not commutative 2017-12-15 14:40:19 +03:00
Dmitry Stogov 588f1df7a2 Remove duplicate handlers for commutative operations 2017-12-15 13:42:54 +03:00
Dmitry Stogov b864e6b58c Move constants into read-only data segment 2017-12-15 01:55:00 +03:00
Dmitry Stogov fa06cbf50c typo 2017-12-14 23:56:55 +03:00
Dmitry Stogov a7b6812ae6 Fixed stream handler override 2017-12-14 23:55:57 +03:00
Dmitry Stogov 0d484172fe Turn "pdo_stmt_methods" into constants. 2017-12-14 22:59:58 +03:00
Dmitry Stogov 0f06df310c Turn "php_stream_wrapper"s into constants
Keep non-constant "php_stream_wrapper"s in API functions and callbacks for compatibility.
2017-12-14 22:46:22 +03:00
Dmitry Stogov 83e495e0fd Move constants into read-only data segment 2017-12-14 22:14:36 +03:00
Anatol Belski 5d36763638 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-12-14 18:18:54 +01:00
Dmitry Stogov 9e709e2fa0 Move constants into read-only data segment 2017-12-14 18:43:44 +03:00
Anatol Belski 71eaf0d97f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75679 Path 260 character problem
2017-12-14 16:18:33 +01:00
Dmitry Stogov 1db8402208 Move zend_object_iterator_funcs structures into read-only data segment 2017-12-14 14:21:22 +03:00
Dmitry Stogov 175e461369 Use fastcall calling convention for objects and resources API 2017-12-14 13:50:39 +03:00
Dmitry Stogov 3aceab825a Manual loop optimizaton.
Cost of the loops body is still the same, but the loop headers are improved.
2017-12-14 03:39:22 +03:00
Dmitry Stogov 4d19bc2279 Disable some "bad" GCC optimizations 2017-12-14 03:25:20 +03:00
Dmitry Stogov dd1050fa6c Improved branch prediction and code locality 2017-12-14 02:22:07 +03:00
Nikita Popov 1537f67055 Merge branch 'PHP-7.2' 2017-12-13 21:29:13 +01:00
Nikita Popov 76a001e32a Merge branch 'PHP-7.2' 2017-12-13 21:25:38 +01:00
Dmitry Stogov 76e4c8ba73 typo 2017-12-12 19:01:10 +03:00
Dmitry Stogov fe4c7898d8 Avoid reallocation and double copying of variable names. 2017-12-12 13:47:47 +03:00
Dmitry Stogov 2bbcc04c20 Added special cases for array_diff(), when first argument is an empty array or an array with single element. 2017-12-12 01:51:37 +03:00
Dmitry Stogov c5ba76d9de Use cheaper API 2017-12-12 00:30:51 +03:00
Dmitry Stogov 778dfbc138 Use cheaper functions 2017-12-11 23:00:07 +03:00
Nikita Popov fc80114a48 Add gmp_kronecker()
Exposes the mpz_kronecker(), mpz_si_kronecker() and
mpz_kronecher_si() for computing the Kronecker symbol.
2017-12-11 19:25:54 +01:00
Nikita Popov 10a336d3d0 Add gmp_perfect_power()
Exposes the mpz_perfect_power_p() function.

We already had the more specific gmp_perfect_square() function.
2017-12-11 19:25:54 +01:00
Nikita Popov a1d36a1157 Add gmp_lcm()
Exposes mpz_lcm() and mpz_lcm_ui() for calculating the least
common multiple.

We already expose the somewhat complementary gmp_gcd() function.
2017-12-11 19:25:54 +01:00
Nikita Popov 7fea79675c Add gmp_binomial()
Adds PHP bindings for mpz_bin_ui and mpz_bin_uiui, for calculating
binomial coefficients.
2017-12-11 19:25:54 +01:00
Dmitry Stogov dc47171523 Avoid temporary string creation and destruction. 2017-12-11 18:18:30 +03:00
Dmitry Stogov 9f1e970058 Reduce number of hash collisions during dulicate address detection. 2017-12-11 18:16:54 +03:00
Anatol Belski 16eb3873b0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Sync known vc++ versions in 7.1
2017-12-11 14:15:28 +01:00
Anatol Belski 820ab91d36 Merge branch 'PHP-7.2'
* PHP-7.2:
  Add vc++ 19.12 to the known list
2017-12-11 12:58:49 +01:00
Anatol Belski 0673aa7f61 Apply calling convention explicitly to the function, not to the decl. 2017-12-11 12:33:27 +01:00
Dmitry Stogov f3aca3c852 Use "fastcal" calling convention for internal PHP functions on x86 2017-12-11 10:55:15 +03:00
Nikita Popov bf9e2692c0 Fix relative constant addressing in file cache
PASS_TWO_UNDO_CONSTANT was using the serialized op_array->literals
pointer, resulting in incorrect offsets.
2017-12-10 22:34:50 +01:00
Peter Kokot 2783b1c823 Remove outdated TODO files
Some extensions included TODO files that has been present for several
years in the repository tree without changes. This included:

- ext/phar
- ext/intl
- ext/zip
- ext/soap
- ext/pdo
- ext/spl
- ext/dom
- ext/gmp
- ext/xmlwriter
- ext/xmlreader

ext/phar feature request has been created instead, and for others it
would be better to use wiki and RFC workflow instead based on current
feature requests and further PHP development requirements.

[ci skip]
2017-12-09 19:18:58 +01:00
Peter Kokot b1ffdd6fbc Update coding standards
Mentioned PHP versions indicate that there is a progress to make code
fully follow the coding standards which is not exactly the real case.
This patch changes few oudated used PHP versions in intro paragraph
and mentions the PHP documentation repository in more abstract way.

[ci skip]
2017-12-09 19:10:51 +01:00
Nikita Popov 9fb75c59b4 Merge branch 'PHP-7.2' 2017-12-09 19:07:47 +01:00
Javier Eguiluz c136fda18e Fixed a typo 2017-12-09 18:39:06 +01:00
sundarchi1 ca21ba3f82 Make ini formatting more consistent
Default values should have no leading space, everything else should
have one.
2017-12-09 18:36:36 +01:00
Young-X 706a157fc6 Make sizeof formatting consistent
Everything else in that file uses sizeof with parentheses.
2017-12-09 18:34:14 +01:00
Tom Van Looy e4e26f2428 Remove RAND_RANGE() macro
The behavior of RANGE_RANGE() is 7.1 changed completely, from
rescaling an already generated number to generating a number
itself. Because of this str_shuffle() ended up generating two
random numbers on every iteration.

To avoid further misuse the function is dropped entirely. Extensions
for PHP >= 7.1 should directly call php_mt_rand_range().
2017-12-09 17:24:17 +01:00
David Walker 6d4de4cf05 Implement list() reference assignments
Support list() reference assignments of the form:

    list(&$a, list(&$b, $c)) = $d;

RFC: https://wiki.php.net/rfc/list_reference_assignment
2017-12-09 13:39:52 +01:00
Anatol Belski 261ddb760a Move temporary allocation to the stack 2017-12-09 13:15:28 +01:00
Anatol Belski f6e7fbc614 Fix tests 2017-12-09 12:57:37 +01:00
Anatol Belski 331019c548 Use cheaper ascii conversion for mode 2017-12-09 12:38:19 +01:00
Anatol Belski f3fd860e24 Revamp fopen implementation, rely on open 2017-12-09 11:58:17 +01:00
Anatol Belski 98416a37f3 Put missing signature into header 2017-12-09 00:26:18 +01:00
Anatol Belski 36cdca6576 Cleanup 2017-12-09 00:21:23 +01:00
Anatol Belski 94f16f1961 Rework mkdir impl and expose wide char variant 2017-12-09 00:11:33 +01:00
Anatol Belski 6bd18c0f0b Remove dead code 2017-12-08 22:59:00 +01:00
Anatol Belski c9274a4c6a Move declarations 2017-12-08 21:41:25 +01:00
Anatol Belski a9a49b8250 Improve ioutil access impl and refactor tsrm_win32_access 2017-12-08 20:58:19 +01:00
Anatol Belski 2fbdaec03c Revamp unlink() implementation and improve error handling 2017-12-08 19:23:18 +01:00
Anatol Belski 17d621e7d3 Allow delete-sharing mode for CreateFile by default
This effectively allows a UNIX like semantics for deleting files
with an open handle. Some OS related limitations still persist,
but the Windows 95 times can be considered as definitely over.
2017-12-08 18:14:20 +01:00
Dmitry Stogov 0acda9103b Improved shared interned string table implementation (use less memory and more CPU cache friendly) 2017-12-08 19:55:12 +03:00
Dmitry Stogov 185478d07e Use cheaper SEPARATE macros 2017-12-07 22:35:17 +03:00
Dmitry Stogov 583050eda3 Removed useless separations 2017-12-07 22:34:38 +03:00
Dmitry Stogov 234306c7ac Cleanup type conversion 2017-12-07 22:34:08 +03:00
Dmitry Stogov 3f4a13095e Cleanup type conversion 2017-12-07 22:01:41 +03:00
Dmitry Stogov 6a9d2b2190 Cleanup type conversion 2017-12-07 19:24:55 +03:00
Dmitry Stogov c890d469fa Use array specific functions 2017-12-07 15:20:17 +03:00
Dmitry Stogov 747a5928ad Added assertion 2017-12-07 15:01:23 +03:00
Dmitry Stogov 7bc76c408f SEPARATE_STRING() micro optimization 2017-12-07 15:01:04 +03:00
Dmitry Stogov 2d8f238318 Avoid duplication 2017-12-07 14:59:42 +03:00
Dmitry Stogov fd453aa1d1 Intern string constant values 2017-12-07 12:27:16 +03:00
Dmitry Stogov 3f6b46f331 typo 2017-12-07 12:26:48 +03:00
Dmitry Stogov 2ded0d2c0e Avoid unnecessary duplication 2017-12-07 12:00:41 +03:00
Dmitry Stogov 7803459242 Wrap functions necessary only for ZTS build with #ifdef 2017-12-07 11:59:58 +03:00
Dmitry Stogov 91507ba6e8 Reduced VM code size.
Made FETCH_DIM/OBJ_FUNC_ARG to dispatch ro corresponding FETCH_DIM/OBJ_R/_W handlers.
Merged TMP and VAR specializations of ZEND_FETCH_OBJ_R.
Allowed dispatching to less specialized handelrs and helpers. (e.g. from OP_TMP_CONST to OP_TMPVAR_CONST).
2017-12-07 01:52:27 +03:00
Nikita Popov 9cdd547eca Fixed bug #74372 2017-12-06 23:36:09 +01:00
Nikita Popov 4e6b80ca54 Fix movzb operand size 2017-12-06 23:15:35 +01:00
Anatol Belski 0ba315f483 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix yet one data race in PCRE
2017-12-06 16:04:57 +01:00
Dmitry Stogov 1646042342 Use local labels 2017-12-06 17:47:30 +03:00
Dmitry Stogov b34660f26e Use inline assembler for fast_memcpy() 2017-12-06 17:42:47 +03:00
Dmitry Stogov 3beaf10289 Fixed gcc assembler constaints.
Added less efecient replacement functions for valgrind, to prevent warnings about uninitialized tail.
2017-12-06 15:32:31 +03:00
Dmitry Stogov d1d1aff4e5 Optimization of init_func_execute_data() 2017-12-06 02:53:30 +03:00
Anatol Belski 9c8ffbf1af Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix use after free revealed by phpdbg
2017-12-05 18:35:16 +01:00
Anatol Belski 9cca85ff07 Fixed bug #75601 Thread race in PCRE JIT support 2017-12-05 17:41:08 +01:00
Anatol Belski 901cdc49e9 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75601 Thread race in PCRE JIT support
  Fixed bug #75601 Thread race in PCRE JIT support
  bump versions
2017-12-05 17:40:39 +01:00
Dmitry Stogov 7a136cd3dd Removed useless LOAD_OPLINE() 2017-12-05 17:40:39 +03:00
Peter Kokot e101a2e509 Remove tutorial for building IMAP on windows
Procedure for building PHP on Windows systems has changed during the PHP
evolution and is for the time being available on wiki pages outside of
this code repository.
2017-12-05 14:06:27 +01:00
Anatol Belski c713fe5dd9 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-12-05 09:01:46 +01:00
Anatol Belski 29f4926fd2 Merge branch 'PHP-7.2'
* PHP-7.2:
  7.0.28 is next
2017-12-05 08:52:59 +01:00
Anatol Belski 2805481a01 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
2017-12-05 08:42:41 +01:00
Dmitry Stogov c019c131e8 Use unsigned comparison instructions 2017-12-05 02:41:12 +03:00
Dmitry Stogov 8305a73483 Implemented x86 and x86_64 assembler functions for zend_string equality check.
They take into account zend_string layout (value alignment and trailing padding) and perform comparison by double or quad words.
2017-12-04 23:40:54 +03:00
Nuno Lopes f55083906f fix build with older gccs: label attributes are only available with gcc 5+ 2017-12-04 15:12:20 -05:00
Kalle Sommer Nielsen 525ab4198e Introduce ZEND_EXTENSION() to the Windows build system
Zend Extensions should now be declared in their config.w32 with a ZEND_EXTENSION() call instead of EXTENSION(), the parameters sent is identical.

For a cross version compatible config.w32, the following will do:
if (typeof(ZEND_EXTENSION) == 'undefined') {
  EXTENSION(...);
} else {
  ZEND_EXTENSION(...);
}
2017-12-04 17:39:08 +01:00
Kalle Sommer Nielsen 23cfe1f06f Remove this redundant define 2017-12-04 16:43:48 +01:00
Dmitry Stogov c789dfee04 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75608 ("Narrowing occurred during type inference" error)
2017-12-04 17:23:34 +03:00
Dmitry Stogov 74c84cd7f0 Use zend_string_equal*() API for zend_string equality check instead of direct memcmp() usage. 2017-12-04 17:17:02 +03:00
Anatol Belski 7de517a191 Merge branch 'PHP-7.2'
* PHP-7.2:
  Use dtor unconditionally in error case
2017-12-04 14:20:25 +01:00
Anatol Belski 952c8eec1e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26)
2017-12-04 11:52:56 +01:00
Dmitry Stogov cc12acefcd Use cheaper functions 2017-12-04 13:21:35 +03:00
Nuno Lopes 7b085635d7 fix build of intl/calendar 2017-12-03 17:58:40 -05:00
Anatol Belski d39a9f8ddb Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix compat with libcurl 7.56.1+ and file:// wrapper
2017-12-03 12:29:03 +01:00
Nikita Popov e748097156 Merge branch 'PHP-7.2' 2017-12-02 18:11:27 +01:00
Anatol Belski 65c209d0c2 Fix junit XML format
The junit XML format is purely documented, some existings spec like
http://llg.cubic.org/docs/junit/ also provide an XSD. The testsuite
tag included into itself doesn't seems to be correct, instead only a
flat list is included into "testsuites" tag.
2017-12-02 10:40:43 +01:00
Anatol Belski 7a96ab7bb8 Rework junit output
- testcase classname attribute is closest to put the filename
- if tests run from php checkout, don't include the full path
- remove filename from the testcase description, as it's included into
classname
2017-12-02 02:18:43 +01:00
Anatol Belski 0b44af5b1d Implement junit test results upload to AppVeyor 2017-12-01 17:23:03 +01:00
Anatol Belski c94a73ec90 Merge branch 'PHP-7.2'
* PHP-7.2:
  Consider Xdebug for tmi ini generation, too
2017-12-01 16:03:49 +01:00
Dmitry Stogov 92cc7f9fab Merge branch 'PHP-7.2'
* PHP-7.2:
  Set trailing zero
2017-12-01 17:01:10 +03:00
Dmitry Stogov cc6a41fad1 Use interned strings as variable names 2017-12-01 01:37:48 +03:00
Dmitry Stogov 7cc6f60134 Added "argv" and "argc" as known strings.
Fixed incorrect "argc" update and corresponding phpdbg test.
2017-12-01 01:35:47 +03:00
Dmitry Stogov 64c5e38adf Use cheaper functions 2017-12-01 01:32:51 +03:00
Dmitry Stogov af7705bec2 Avoid strings duplication (zend_hash* and printf may work with non zero terminated strings) 2017-11-30 23:29:21 +03:00
Dmitry Stogov e221e7379e Avoid function duplication 2017-11-30 16:23:15 +03:00
Dmitry Stogov 245422653c Functions must be stored with lowercase keys 2017-11-30 15:59:29 +03:00
Anatol Belski 821bdbdfba Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert "Fix macro redefinition warnings"
2017-11-30 13:23:18 +01:00
Dmitry Stogov 6d736aa400 Replace always true condition with ZEND_ASSERT() 2017-11-30 14:54:11 +03:00
Anatol Belski a415006b5e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix macro redefinition warnings
2017-11-30 12:41:44 +01:00
Dmitry Stogov 7067f7ccb4 Fixed incorrect buffer reallocation 2017-11-30 13:54:24 +03:00
Dmitry Stogov a5014d7c58 Avoid visibility checks for classes without predefined properties 2017-11-30 13:13:42 +03:00
Dmitry Stogov 134248164c Only functions of temporary modules have to be unregistered here 2017-11-30 11:40:52 +03:00
Dmitry Stogov eccdc48c56 Use interned strings for function names 2017-11-30 02:06:52 +03:00
Dmitry Stogov 3f86f43e51 Intern persistent constant names in first place 2017-11-30 01:15:11 +03:00
Dmitry Stogov 084c17fe0b Use zend_string_tolower() where it's possible (to avoid reallocations).
Allow zend_string_tolower_ex() to create parsistent strings
2017-11-30 01:13:39 +03:00
Christoph M. Becker fa5c186cc0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Define floorf if system doesn't have it (follow up for 22c48761)
  Revert "Revert "ext/sodium: pwhash: do not warn on low parameters"" This reverts commit a1845b7fdb.
2017-11-29 17:06:47 +01:00
Dmitry Stogov 03da5f8e30 Try to intern unserualized string keys 2017-11-29 19:00:57 +03:00
Dmitry Stogov f98721b4e0 Intern auto global name strings in first place 2017-11-29 17:10:51 +03:00
Anatol Belski 7a79e0d324 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-11-29 09:32:09 +01:00
Xinchen Hui 60c742979d Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #75573 (Segmentation fault in 7.1.12 and 7.0.26)
  Revert "ext/sodium: pwhash: do not warn on low parameters"

Conflicts:
	Zend/zend_object_handlers.c
2017-11-29 14:54:05 +08:00
Nikita Popov a049180a73 Merge branch 'PHP-7.2' 2017-11-28 23:37:28 +01:00
Nikita Popov a2a3c9350d Merge branch 'PHP-7.2' 2017-11-28 23:34:30 +01:00
Nikita Popov 5dc6392d25 Fixed bug #75575
These functions are never called with needle longer than haystack,
but it makes sense to explicitly check for this, especially as we
already perform a check for empty haystack anyway, which is
naturally subsumed by a haystack_len < needle_len check.
2017-11-28 23:10:50 +01:00
David Carlier 4e0b3c0c4c Add configure check for asm goto support
asm goto is not supported by couple of systems. To make sure it does,
we can check it at configure-time.
2017-11-28 22:55:41 +01:00
Anatol Belski a935ad927e Merge branch 'PHP-7.2'
* PHP-7.2:
  Follow up on bug #75574 for FCGI side
2017-11-28 20:35:19 +01:00
Remi Collet b1afa21502 Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  NEWS
  NEWS
  Fixed bug #64938 libxml_disable_entity_loader setting is shared between requests (FPM)
2017-11-28 18:00:46 +01:00
Remi Collet ac5a5bceea Merge branch 'PHP-7.2'
* PHP-7.2:
  better fix for #75514
2017-11-28 17:43:28 +01:00
Matteo Beccati d3fec3bf03 Fix getifaddrs detection on NetBSD 2017-11-28 15:42:33 +01:00
Remi Collet a942a8e1be ensure no merge commit during submodule update 2017-11-28 14:16:47 +01:00
Frank Denis c4347f4f74 Merge branch 'PHP-7.2'
* PHP-7.2:
  ext/sodium: throw exceptions instead of errors
2017-11-28 13:57:06 +01:00
Anatol Belski 3dc0d12f28 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-11-28 12:46:59 +01:00
Anatol Belski af55904f18 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #73830 Directory does not exist.
2017-11-28 12:43:03 +01:00
Dmitry Stogov 6a2738c713 CONCAT/FAST_CONCAT micro-optimization 2017-11-28 14:11:40 +03:00
Frank Denis b44bc1bfca Merge branch 'PHP-7.2'
* PHP-7.2:
  ext/sodium: pwhash: do not warn on low parameters but raise an explicit error if these are too low
2017-11-28 11:25:44 +01:00
Dmitry Stogov 6acfade8a1 Prefer "GNU asm goto" to __builtin_saddl_overflow() for overflow detection. This allows generation of significantly better code. 2017-11-28 12:37:00 +03:00
Anatol Belski 4a2ccd908b Keep up with Linux extension to POSIX.1-2001 getcwd()
If both buf and size are zero, the buf is allocated as big as required.
Otherwise, the size is still to respect.

Fix var name

Improve error check

Ensure the end buffer length is not bigger than requested
2017-11-28 09:15:14 +01:00
Anatol Belski e9927994eb Sync with the POSIX signature 2017-11-28 09:15:14 +01:00
Remi Collet 3ce0de84d7 Merge branch 'PHP-7.2'
* PHP-7.2:
  drop -dev from Zend version
2017-11-28 08:01:59 +01:00
Xinchen Hui 9b6581326a Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Update NEWs (added bug entry)
2017-11-28 13:16:51 +08:00
Anatol Belski 89da3ed4d7 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix allocation
  Fix memory leak
2017-11-27 21:19:17 +01:00
Anatol Belski edc77d5d00 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75574 putenv does not work properly if parameter contains non-ASCII unicode character
2017-11-27 18:52:45 +01:00
Sara Golemon 6d57740818 Bugfix net_get_interfaces() on NetBSD 2017-11-27 12:47:26 -05:00
Sara Golemon 7ca5a7d84e Add net_get_interfaces() 2017-11-27 10:17:55 -05:00
Remi Collet 697c1f95d5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Prepare NEWS file for release - set release date - merge all alpha/beta/RC entries - clean entries already in 7.1
2017-11-27 12:49:46 +01:00
Anatol Belski 5a14b4424c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix normalized path length calculation and error handling
2017-11-27 12:33:54 +01:00
Anatol Belski b192b2d110 Add note on PAX headers in tarballs 2017-11-27 12:17:46 +01:00
Dmitry Stogov 88e257c152 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug in type inference
2017-11-27 10:17:07 +03:00
Xinchen Hui 3475197551 Merge branch 'PHP-7.2'
* PHP-7.2:
  Improved fix
2017-11-27 12:03:48 +08:00
Nikita Popov dcdd4abdb2 Make sure properties are initialized before cloning
Now that they are not memset, they need to be explicitly intialized,
as zend_objects_clone_members() destroys the old property values
first.
2017-11-25 22:51:37 +01:00
MattJeevas c9fecf7d87 Print PHP version in phpinfo() func html title 2017-11-25 15:28:19 -05:00
Nikita Popov 721f2cc513 Subtract one zval from memset 2017-11-25 18:02:01 +01:00
Nikita Popov b72b1a4e4d Add zend_object_alloc() API
Using ecalloc() to create objects is expensive, because the
dynamic-size memset() is unreasonably slow. Make sure we only
zero the main object structure with known size, as the properties
are intialized separately anyway.

Technically we do not need to zero the embedded zend_object
structure either, but as long as the memset argument is constant,
a couple more bytes don't really matter.
2017-11-25 17:12:37 +01:00
Nikita Popov 8795893f4f Make sure string property/class const values are interned
This was done for user-definde class constant values, however this
is also important for properties and internal classes.
2017-11-25 17:12:37 +01:00
Kalle Sommer Nielsen c5767db441 We don't check for Windows in the win32/ directory, as files here are only compiled on Windows anyway 2017-11-25 00:54:16 +01:00
Kalle Sommer Nielsen ffbe801226 PCRE is always available, PHP can't be built without it anyway so these checks makes no sense anymore 2017-11-25 00:40:13 +01:00
Nikita Popov 828d8e635b Fix ZEND_VM_SPEC=0 build 2017-11-24 23:06:01 +01:00
Nikita Popov 6b258197e8 Fix zend_fetch_dimension_const()
Pass IS_TMP_VAR instead of IS_CONST as operand type, as IS_CONST
requires additional guarantees that are not necessarily
satisfied by the caller.
2017-11-24 21:24:13 +01:00
Nikita Popov 9215be76a6 Fix C++ build failure due to format macros
PRIi64 etc. may not be available without this macro definition, on
pre-C++11 compilers. At least I think that's the issue.
2017-11-24 19:02:59 +01:00
dcarlier 287a2b0184 fix constant defined undefined behavior warning 2017-11-24 19:01:46 +01:00
Xinchen Hui a84c7050fd Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75556 (Invalid opcode 138/1/1)
2017-11-25 00:54:28 +08:00
Dmitry Stogov ec2dde0c0b Introduced zend_hash_find_ex() that may avoid unnecessary hash value check. 2017-11-24 14:01:19 +03:00
Dmitry Stogov ed7f396721 Avoid second hash value check 2017-11-24 12:03:59 +03:00
Dmitry Stogov 33b094479b TYPE_CHECK instruction changed. Now it keeps in extended_value a type mask.
This makes check for "boolean" cheaper and allows check combination e.g. (is_string($a) || is_null($a))
2017-11-23 15:58:34 +03:00
Dmitry Stogov d5dd27987f Don't mix TYPE and TYPE_INFO 2017-11-23 13:45:21 +03:00
Dmitry Stogov 8349268fa0 Delayed unlikely checks for uninitialized variables 2017-11-23 13:18:52 +03:00
Remi Collet 3adbe476b2 Merge branch 'PHP-7.2'
* PHP-7.2:
  add 7.1 NEW entries
2017-11-23 11:09:06 +01:00
Nikita Popov d21c902841 Fix cp950 pua check
One set of parenthesis was missing, causing a legitimate compiler
warnings. In the end it doesn't actually matter, because it just
ends up doing an unnecessary check in the w > 0 case.

This fixes the logic and moves it out into a separate functions,
to be a bit more readable.
2017-11-22 23:47:18 +01:00
Anton Artamonov 1dfcd1af9a Fixed bug #70469
Don't generate an E_ERROR if we've already thrown an exception.
This interacts badly with error_get_last() checks.
2017-11-22 23:15:46 +01:00
Colin O'Dell 201930106d Add test for negative lengths in mb_strcut() 2017-11-22 22:47:55 +01:00
Colin O'Dell 830d87b86e Add tests for mb_language() 2017-11-22 22:47:55 +01:00
Dmitry Stogov 10d2a5c09d Merge branch 'PHP-7.2'
* PHP-7.2:
  typo
2017-11-22 16:31:23 +03:00
Dmitry Stogov 6780c74619 Allowed modification of VM stack page size. Exported few functions. Green light for Fibers/Coroutines. 2017-11-22 15:36:09 +03:00
Anatol Belski e69fa2865f Eliminate cast 2017-11-22 12:50:50 +01:00
Morva Kristóf ed0a58d0ae Enable JSON1 for bundled libsqlite 2017-11-22 12:00:13 +01:00
Pedro Magalhães 179ed6e43d 63911: Compare opcodes of the op_array to determine different functions 2017-11-22 05:35:24 +00:00
krakjoe f3545165b2 Merge branch 'PHP-7.2'
* PHP-7.2:
  Check for binary_location allocation failure
2017-11-22 04:49:52 +00:00
krakjoe 192a77787c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #75409
2017-11-22 04:33:23 +00:00
Sebastian Ramadan 7d5691cd69 Fix some printf() specifier usages
Use PRIu32 when printing uint32_t.
Fix some %u/%d confusions.
Add some casts where types are not standardized.
2017-11-21 22:50:27 +01:00
Anatol Belski 1415f27d01 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-11-21 22:25:50 +01:00
Anatol Belski 6db15b7dba Fix test 2017-11-21 21:44:09 +01:00
Anatol Belski c029bd3342 Fix macro name 2017-11-21 20:27:17 +01:00
Anatol Belski 54e7b0a6f7 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed #75539 and #74183 - preg_last_error not returning error code after error
2017-11-21 20:15:30 +01:00
Anatol Belski 12b2c2f5f9 Switch to ZMM routines, closes #2917 2017-11-21 19:38:53 +01:00
Anatol Belski 6b54b3409a Ensure shift doesn't overflow, closes #2916 2017-11-21 18:48:37 +01:00
David Carlier d006270040 seemingly a tiny typo error in pcre module. 2017-11-21 12:28:15 +01:00
Dmitry Stogov efa4d8d3ac Optimized zend_is_true() for objects (in most cases, it doesn't need to call the conversion handler). 2017-11-20 12:38:31 +03:00
Remi Collet f5dbe081ef Merge branch 'PHP-7.2'
* PHP-7.2:
  Better fix bug #75540 Segfault with libzip 1.3.1 - only 1.3.1 is affected - fix use after free
2017-11-20 09:43:06 +01:00
Remi Collet 15a0de465f Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  NEWS
  NEWS
  fix bug #75540 Segfault with libzip 1.3.1
2017-11-20 08:51:55 +01:00
Alessandro Chitolina 23b61f78a6 Fix segfault in token_get_all_variation19.phpt 2017-11-19 00:48:48 +01:00
Anatol Belski c57a2dccae Use appropriate macro 2017-11-17 23:32:37 +01:00
Anatol Belski 95bfbeeea8 Remove useless condition 2017-11-17 23:32:03 +01:00
Nikita Popov a8db62086e Merge branch 'PHP-7.2' 2017-11-17 23:22:12 +01:00
Anatol Belski 80d6eb6806 Fix unsigned comparisons and remove dead code
Fix unsigned comparison

Cleanup never executed block

Fix unsigned comparison

Fix unsigned comparison, diff can't be < 0

Fix unsigned comparison

Fix unsigned comparison

Remove dead code
2017-11-17 22:38:44 +01:00
Nikita Popov 3ce1a977d4 Merge branch 'PHP-7.2' 2017-11-17 22:26:04 +01:00
Anatol Belski ad38168bdd Use log1p from the CRT 2017-11-17 21:22:51 +01:00
Anatol Belski c7bf314b65 Fix unsigned comparison 2017-11-17 18:54:42 +01:00
Anatol Belski 80b926d24d Fix unsigned comparison 2017-11-17 18:53:37 +01:00
Anatol Belski 70427b1107 Keep the compile time condition for the label use 2017-11-17 18:46:57 +01:00
Anatol Belski 6e3cdf1dcc Remove unused assignment 2017-11-17 18:20:52 +01:00
Anatol Belski 24356e307c Fix condition 2017-11-17 18:19:32 +01:00
Anatol Belski 261ed5d2ec Merge branch 'PHP-7.2'
* PHP-7.2:
  Update SDK version for AppVeyor
2017-11-17 16:38:53 +01:00
Dmitry Stogov aa7bf41502 Use cheaper checks 2017-11-17 13:23:22 +03:00
Nikita Popov 9fbb019848 Move adjust_for_fetch_type directly after emission
And drop the distinction between compile_X and compile_X_common.
This avoids WTF moments like compile_simple_var_no_cv completely
ignoring the BP_VAR type passed to it...
2017-11-16 22:28:29 +01:00
Nikita Popov d9da166649 Minor fetch type adjustment cleanup
No need to call adjust_fetch_type on FETCH_THIS, just to special
case it in adjust_fetch_type...
2017-11-16 22:13:07 +01:00
Nikita Popov a164e91dfb Merge branch 'PHP-7.2' 2017-11-16 21:27:34 +01:00
Nikita Popov 26f8fc833b Enable and fix printf() format warnings
Add _unchecked() variants of zend_spprintf and zend_strpprintf for
cases where we specifically want to disable these checks, such as
use of %H.
2017-11-16 21:15:36 +01:00
Dmitry Stogov b8a4225a5f Reverted incorrect changes to setlocale() 2017-11-16 18:10:28 +03:00
Dmitry Stogov 288c1dd6da Missed change 2017-11-16 18:10:15 +03:00
Dmitry Stogov 73bde7bbd0 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fix (*NO_JIT) usage when JIT is enabled
  Refactor ASCII to wide conversion
2017-11-16 17:10:04 +03:00
Dmitry Stogov ccc12b82da Avoid unnecessary reference-counting on strings. 2017-11-16 17:09:32 +03:00
Dmitry Stogov ce18738a30 Removed "_" from API functions. 2017-11-16 17:09:01 +03:00
Anatol Belski a370a6af64 Fix (*NO_JIT) usage when JIT is enabled
If (*NO_JIT) is put into the pattern, the JIT compilation will still
succeed but produce no code. The pattern will still have to be
interpreted and is not suitable for the JIT fast path. This means,
we still need to check the pattern info after JIT compilation and only
set the flags when the JIT code was produced.
2017-11-16 14:12:05 +01:00
Anatol Belski acaaf4608a Refactor ASCII to wide conversion
- add SSE2 based ASCII check in 16 byte blocks
- use early return on fail
2017-11-16 12:57:11 +01:00
Nikita Popov 50eeb46e21 Merge branch 'PHP-7.2'
[ci skip]
2017-11-16 00:19:49 +01:00
zimuyang b304f3bc0e Remove duplicate check for already loaded extension 2017-11-16 00:16:15 +01:00
Nikita Popov 1e3f625aa5 Merge branch 'PHP-7.2' 2017-11-15 23:01:52 +01:00
Anatol Belski 994dafc71c Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
2017-11-15 20:42:37 +01:00
Anatol Belski ce85d0f24f Add missing ifdef 2017-11-15 20:21:40 +01:00
Anatol Belski 9acbab30cc Remove padding 2017-11-15 18:03:51 +01:00
Anatol Belski 721a669996 Merge branch 'PHP-7.2'
* PHP-7.2:
  Refine allocation
  NEWS
2017-11-15 18:03:20 +01:00
Anatol Belski 178add7a58 Unroll loop for ASCII check 2017-11-15 16:02:46 +01:00
Anatol Belski c6d0c8aa3b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix C++ compatibility for TSRM_TLS
2017-11-15 12:45:21 +01:00
Dmitry Stogov 6bcace1b72 Use single memory pool for result metadata and result set. 2017-11-15 14:07:09 +03:00
Anatol Belski a0724819c2 Merge branch 'PHP-7.2'
* PHP-7.2:
  Add missing var declarations for phpize mode
2017-11-15 12:02:09 +01:00
Anatol Belski 0045ed1064 Merge branch 'PHP-7.2'
* PHP-7.2:
  Regenerate cp map
2017-11-15 11:24:56 +01:00
Anatol Belski ce17d2a9be Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75525 Access Violation in vcruntime140.dll
2017-11-15 10:14:51 +01:00
Dmitry Stogov e2c9dfb5de Cleanup. Make difference between MYSQLND_ROW_BUFFER and MYSQLND_MEMORY_POOL_CHUNK (the last one is completely removed). 2017-11-15 11:33:32 +03:00
Dmitry Stogov de5cc9017e Use better buffer reallocation strategy 2017-11-15 02:44:34 +03:00
Dmitry Stogov e4a7d31b09 Merged allocations 2017-11-15 02:13:16 +03:00
Dmitry Stogov e176e2d0ef Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Try to fix AppVeyor build
  Reduce sleep intervals in basic sleep tests
  Initialize jit global
  Fix wrong return
  Clarify bin_to_readable code
2017-11-15 00:54:35 +03:00
Dmitry Stogov 69462bdf4c Embeded zend_list into st_mysqlnd_error_info, to avoid extra allocation/deallocation. 2017-11-15 00:53:51 +03:00
Nikita Popov b08253a7a0 Try to fix AppVeyor build
Performing arithmetic on void pointers is a GCC extension.
2017-11-14 22:31:34 +01:00
Nikita Popov 9d97afd2a7 Reduce sleep intervals in basic sleep tests
No reason to wait this long...
2017-11-14 22:27:01 +01:00
Anatol Belski 691a5a9c4c Initialize jit global 2017-11-14 21:47:56 +01:00
Anatol Belski 91407fb82d Fix wrong return 2017-11-14 21:44:46 +01:00
Nikita Popov a57f370e59 Clarify bin_to_readable code
I got a bit of a scare when I first saw this code. Turns out that
the way it's used inlen==outlen and that's why it works.
2017-11-14 21:37:22 +01:00
Dmitry Stogov 492bc8ea57 Use mnd_emalloc/mnd_efree 2017-11-14 23:34:06 +03:00
Dmitry Stogov f1f1f63ce1 Reimplemented MYSQLND_MEMORY_POOL to avoid allocations ouside of pool. Store all data related to result set in the pool. 2017-11-14 23:08:29 +03:00
Anatol Belski 3907ca3dde Merge branch 'PHP-7.2'
* PHP-7.2:
  update NEWS
  Update NEWS
  Fix bug 60471 by correctly identifying unused speculative preconnections
2017-11-14 20:06:59 +01:00
Anatol Belski 20d930d8f3 Fix remaining signedness warnings 2017-11-14 17:07:09 +01:00
Anatol Belski 13696d7aae Use already available pattern length, fix signedness warnings 2017-11-14 16:36:33 +01:00
Anatol Belski 19c56e42c5 Add skipif as this test became only valid with JIT compiled in
Without JIT, the depth limit is respected, but for JIT it's irrelevant.
2017-11-14 15:53:06 +01:00
Dmitry Stogov 4d5330fbe1 Run mysqlmd commands in one step (without separate create/run/free). 2017-11-14 17:32:41 +03:00
Dmitry Stogov 3077a14aea Use mnd_erealloc() 2017-11-14 16:19:44 +03:00
Dmitry Stogov 148641980c Merge mysqlnd_field_hash_key structure into st_mysqlnd_field. 2017-11-14 16:14:13 +03:00
Anatol Belski a385993c0c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix UTF check in pcre_grep
2017-11-14 13:56:25 +01:00
Dmitry Stogov 93334b5fc2 Use stack-allocated packets. 2017-11-14 15:10:27 +03:00
Anatol Belski 0618d7d2ee Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix uninitialized flag when JIT is disabled
2017-11-14 10:14:09 +01:00
Anatol Belski 5a6c49474e Remove unused file 2017-11-14 09:14:17 +01:00
Xinchen Hui ad006cc3b3 Skip test if no PCRE_JIT_SUPPORT 2017-11-14 15:00:02 +08:00
Xinchen Hui 266f19babb Added PCRE_JIT_SUPPORT flag 2017-11-14 11:02:16 +08:00
Anatol Belski 61ae64f6ab [ci skip] update NEWS 2017-11-14 00:03:16 +01:00
Anatol Belski e8ac7d8dd5 Fix calculation as sync with 48cee6d1 2017-11-14 00:01:52 +01:00
Dmitry Stogov 81dd6de3a9 Eliminated redundand code 2017-11-14 01:43:54 +03:00
Dmitry Stogov 48cee6d1e9 We don't need to calculate size of offset array, because pcre2_match_data_create() already takes size in pairs. 2017-11-14 00:49:03 +03:00
Anatol Belski f4edd0899f Put hardcoded value into macro 2017-11-13 21:33:13 +01:00
Anatol Belski a5bc5aed71 Patch core for PCRE2 support
RFC https://wiki.php.net/rfc/pcre2-migration
2017-11-13 19:37:38 +01:00
Sara Golemon fd463cfbad Merge branch 'PHP-7.2'
* PHP-7.2:
  Bugfix#75515 php://streams behaving greedily
2017-11-13 13:35:46 -05:00
Dmitry Stogov bdf77f02f6 Allow creating $_SERVER from $_ENV, but not $_ENV from $_SERVER. 2017-11-13 18:24:43 +03:00
Remi Collet 275bba2b7e Merge branch 'PHP-7.2'
* PHP-7.2:
  next version is 7.2.1
2017-11-13 12:47:11 +01:00
Remi Collet edff5d84db Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  NEWS
  Fixed bug #75514 mt_rand returns value outside [$min,$max]+ on 32-bit
2017-11-13 10:23:46 +01:00
Xinchen Hui 70ee6688de Merge branch 'PHP-7.2'
* PHP-7.2:
  Avoid overflow
2017-11-13 11:19:46 +08:00
Xinchen Hui 46a21c5173 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #75511 (fread not free unused buffer)
2017-11-13 11:14:10 +08:00
fandrieu a0ed09f92b Treat DATETIME2 columns like DATETIME 2017-11-10 17:20:33 -05:00
Adam Baratz 1027ed3767 Use TDS version attribute to determine whether to skip tests 2017-11-10 14:36:35 -05:00
fandrieu b760b46216 Expose TDS version as \PDO::DBLIB_ATTR_TDS_VERSION attribute on \PDO instance 2017-11-10 14:21:07 -05:00
Adam Baratz 50421b3da5 Fix comment style 2017-11-10 13:31:59 -05:00
Adam Baratz 01f2427b83 More robust handling of stringified column data
- Use at least the FreeTDS maximum when converting datetime data
 - Pass buffer length to dbconvert()
 - Use dbconvert() return value to set string lengths or handle errors
 - Move shared code into shared function
2017-11-10 13:29:14 -05:00
Anatol Belski ca1f07b6d7 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-11-10 11:43:38 +01:00
Bernd 3a51145d0a Update README.EXT_SKEL 2017-11-10 05:34:13 +00:00
Dmitry Stogov 2205631209 Optimized parse_iv2() 2017-11-09 14:20:09 +03:00
Adam Baratz 9ebb38ca1d Output column data for easier debugging 2017-11-08 17:12:33 -05:00
Anatol Belski 61259d692e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed #75384 PHP seems incompatible with OneDrive files on demand
  bump versions
  Fixed ext/date tests due to changes in Olson database
2017-11-08 12:01:39 +01:00
Dmitry Stogov 196f003937 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed assertion on phpMyAdmin-4.7.5 home page
2017-11-08 12:52:46 +03:00
Dmitry Stogov 9731a22eba Use Zend MM heap for non-persistent ini entry values. 2017-11-08 12:01:59 +03:00
Christoph M. Becker 512b6c74be Don't reintroduce split_bc_num()
This function has been removed in 870ed5106d,
because it is not necessary to manipulate the `bc_num` itself; instead
we simply omit extraneous decimals when converting the number to
string.

This resolves the issue introduced by 24fd49fbab
in a cleaner way than 121d193514.
2017-11-07 16:37:31 +01:00
Christoph M. Becker 35e2984b91 Updated bundled libsqlite to 3.21.0 2017-11-07 16:21:07 +01:00
Derick Rethans 0651886ab9 Merge branch 'PHP-7.2' 2017-11-07 14:52:26 +00:00
Derick Rethans 70e27e0002 Merge branch 'PHP-7.2' 2017-11-07 11:35:09 +00:00
Anatol Belski a4a3110f28 Merge branch 'PHP-7.2'
* PHP-7.2:
  7.0.27 next
2017-11-07 10:11:00 +01:00
Dmitry Stogov abd2120c4f Fixed inaccurate condition 2017-11-07 10:29:17 +03:00
Dmitry Stogov a8a04658b0 Fixed build (missing function borrowed from PHP-7.2) 2017-11-07 09:25:04 +03:00
Joe Watkins c0b73c82af Merge branch 'PHP-7.2'
* PHP-7.2:
  date module, replacing abs call with the llabs's like one due to bigger type
2017-11-07 05:27:38 +00:00
Sara Golemon c33008339e Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert BC break caused by fixing bug #74035
2017-11-06 17:52:35 -05:00
Sara Golemon e36244e776 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixes #68948 related to a BC break introduced by #68532 fix.
2017-11-06 17:41:09 -05:00
Sara Golemon 24fd49fbab Merge branch 'PHP-7.2'
* PHP-7.2:
  Scale support for bcmod()
2017-11-06 17:27:22 -05:00
Anatol Belski 6c8b441f87 [ci skip] Update UPGRADING.INTERNALS 2017-11-06 14:20:04 +01:00
Anatol Belski 7d14dcc084 [ci skip] Fix UPGRADING.INTERNALS, seems it was not reset after 7.2
branch off
2017-11-06 14:12:02 +01:00
Anatol Belski d6267cd230 Don't touch inline if C++ is compiled
Starting with C++11 marco keywords are forbidden by the standard. Things
like inline namespaces would be broken by this part. As any of supported
compilers is at least C++11 complaint, tricks with inline are simply
disabled if C++ is compiled. Though, zend_always_inline is still usable,
anything else about inlining for C++ is up to the compiler.
2017-11-06 13:52:02 +01:00
Joe Watkins 21e4ab1977 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix proto documents for new global functions
2017-11-06 07:24:51 +00:00
Joe Watkins 18c833504f Merge branch 'PHP-7.2'
* PHP-7.2:
  Mention spl_object_id in UPGRADING notes
2017-11-06 07:20:14 +00:00
Sammy Kaye Powers b591c329ee Allow trailing commas in function and method calls 2017-11-06 07:13:56 +00:00
Xinchen Hui 4da0bfc7d7 Unused var 2017-11-06 14:10:27 +08:00
Dmitry Stogov d3fa900780 Removed workaraouns for inconsistent zvals (REFCOUNTED+INTERNED). They should be fixed now. 2017-11-03 21:02:55 +03:00
Dmitry Stogov 7fba7209e1 Fixed memory leak (Zend/tests/list_003.phpt) 2017-11-03 21:02:27 +03:00
Dmitry Stogov 26b2b27a25 Don't intern strings in-place if their refcoung greater than 1 2017-11-03 21:00:07 +03:00
Joe Watkins 3d12e70459 Merge branch 'PHP-7.2'
* PHP-7.2:
  fix wrong check of definition_phi->constraint.range.max_ssa_var
2017-11-03 17:50:19 +00:00
Dmitry Stogov 522cc6926b erealloc() optimization 2017-11-03 18:35:03 +03:00
Dmitry Stogov 9359ad73bf Added RC_DEBUG exception 2017-11-03 11:15:20 +03:00
Dmitry Stogov 4124c4badc Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Update libs_version.txt
2017-11-03 00:56:11 +03:00
Dmitry Stogov 00fc9e80c6 Disable RC_DEBUG for FPM initialisation 2017-11-03 00:48:04 +03:00
Anatol Belski 1d82e2f076 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update libs_version.txt
2017-11-02 22:46:57 +01:00
Dmitry Stogov 95b33f2394 Added RC_DEBUG exception 2017-11-03 00:34:18 +03:00
Dmitry Stogov d92a701a3b Added RC_DEBUG exception 2017-11-02 23:54:24 +03:00
Dmitry Stogov 3e35def20b Start RC_DEBUG at the end of MINIT and finish in MSHUTDOWN after all worker threads are terminated. 2017-11-02 23:52:50 +03:00
Dmitry Stogov f2b91b31e4 Switch back from "request" interned strings storage to "permanent" in MSHUTDOWN 2017-11-02 23:29:21 +03:00
Dmitry Stogov 3f6693c5e0 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fix #74922 - Try to resolve constants when importing trait properties
  Fix ext/soap/tests/bug69137.phpt
  Don't dup after fetch_dimension_const
  Small browscap cleanup
2017-11-02 23:25:34 +03:00
Dmitry Stogov 5f47ce9127 last_message is always allocated in Zend MM heap 2017-11-02 23:24:40 +03:00
Pedro Magalhães 897bdb42f0 Fix #74922 - Try to resolve constants when importing trait properties 2017-11-02 21:06:27 +01:00
Nikita Popov b27a6b16dd Merge branch 'PHP-7.2' 2017-11-02 20:56:48 +01:00
Nikita Popov 625d7075d6 Don't dup after fetch_dimension_const
Any duplication that may be necessary must have happened earlier
already. Also I'm not sure what the IS_REF branch was there for
originally, but it does not appear to be relevant anymore.
2017-11-02 19:20:14 +01:00
Nikita Popov c9b7b9886b Small browscap cleanup
Directly use interned "" and "1" strings.
2017-11-02 18:10:37 +01:00
Dmitry Stogov 238916b5c9 Use persistent strings for preloaded phar files 2017-11-02 19:28:34 +03:00
Anatol Belski b66eeb3652 Note to UPGRADING about Spoofchecker::setRestrictionLevel() 2017-11-02 13:34:58 +01:00
Dmitry Stogov d3e92c05e4 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Sync and fix tests for ICU 60.1 compat
2017-11-02 14:41:01 +03:00
Dmitry Stogov 749db50a36 Added exceptions for ZEND_RC_DEBUG 2017-11-02 14:40:28 +03:00
Anatol Belski a3e1bea4be Merge branch 'PHP-7.2'
* PHP-7.2:
  Sync and fix tests for ICU 60.1 compat
2017-11-02 12:39:34 +01:00
Dmitry Stogov b59c9fb45b Added exceptions for ZEND_RC_DEBUG 2017-11-02 14:13:28 +03:00
Dmitry Stogov 87a72e7e62 Use interned strins for output handler aliases and conflict checkers names. 2017-11-02 14:11:56 +03:00
Dmitry Stogov e0517c42be Use interned strings for browscap files parsed at MINIT 2017-11-02 14:10:40 +03:00
Dmitry Stogov 3b2e858304 Overlad functions once in MINIT (instead of on each requestr in RINIT) 2017-11-02 14:09:06 +03:00
Anatol Belski 1b25be2650 Merge branch 'PHP-7.2'
* PHP-7.2:
  Yet one /nologo
2017-11-02 09:24:46 +01:00
Xinchen Hui d56a534acc RC manipulation cleanup 2 2017-11-02 12:13:35 +08:00
Xinchen Hui 3fa0cee640 Revert "Use zend_get_executed_filename_ex"
This reverts commit 2a37625c20.
2017-11-02 12:12:40 +08:00
Xinchen Hui 39845250f2 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Made "result", "statement" and "last_message" to always use Zend MM heap. (even for persistent connections these entities don't relive request boundary)
  Fixed memory leaks
  Use interned strings for "magic" property of internal classes. (not copyied into SHM)
  Reverted incomplete fix and too strict asserts.
  Mark persistent connection related data as "thread-local".
  Persistent resources are "thread-local". Register persistent resources through new functions zend_register_persistent_resource()/zend_register_persistent_resource_ex().
  PCRE cache is "thread-local"
  Allow reference-counting on "thread-local" persistent zvals
2017-11-02 10:40:45 +08:00
Dmitry Stogov a7305eb539 Made "result", "statement" and "last_message" to always use Zend MM heap. (even for persistent connections these entities don't relive request boundary) 2017-11-02 03:27:25 +03:00
Dmitry Stogov 468fd78bff Fixed memory leaks 2017-11-02 03:04:27 +03:00
Dmitry Stogov e2589b7d02 Use interned strings for "magic" property of internal classes. (not copyied into SHM) 2017-11-01 19:04:54 +03:00
Dmitry Stogov 990d8092a4 Reverted incomplete fix and too strict asserts. 2017-11-01 16:18:13 +03:00
Dmitry Stogov fd57ee8931 Mark persistent connection related data as "thread-local". 2017-11-01 15:21:21 +03:00
Dmitry Stogov 67d5f39a47 Persistent resources are "thread-local".
Register persistent resources through new functions zend_register_persistent_resource()/zend_register_persistent_resource_ex().
2017-11-01 15:19:31 +03:00
Dmitry Stogov f5664a1492 PCRE cache is "thread-local" 2017-11-01 15:13:49 +03:00
Dmitry Stogov cf582a32ef Allow reference-counting on "thread-local" persistent zvals 2017-11-01 15:11:52 +03:00
Xinchen Hui a32e567ec8 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Fixed string interning during constants substitution
2017-11-01 18:42:12 +08:00
Dmitry Stogov 02a05146fd Fixed string interning during constants substitution 2017-11-01 10:56:37 +03:00
Xinchen Hui 322f7e5700 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Revert "Fixed string interning during constants substitution"
  Fixed string interning during constants substitution
2017-11-01 15:41:41 +08:00
Xinchen Hui 2a37625c20 Use zend_get_executed_filename_ex 2017-11-01 15:40:54 +08:00
Dmitry Stogov 5baf657db3 Revert "Fixed string interning during constants substitution"
This reverts commit e0924c52fc.
2017-11-01 10:39:47 +03:00
Dmitry Stogov e0924c52fc Fixed string interning during constants substitution 2017-11-01 10:34:39 +03:00
Xinchen Hui a8a17a72b0 RC manipulation cleanup 2017-11-01 10:25:10 +08:00
Dmitry Stogov 0056f52f50 Use interned strings for hash algorithm names (not copyied into SHM) 2017-11-01 02:40:39 +03:00
Dmitry Stogov 8897c80956 Use interned strings for stream transports 2017-11-01 02:39:09 +03:00
Dmitry Stogov ed5b4d5c99 Use Zend MM heap 2017-11-01 02:38:26 +03:00
Dmitry Stogov fcb13fab6e Avoid reference counting (the value may be a persistent string) 2017-11-01 01:31:47 +03:00
Dmitry Stogov d481d495cc Fixed few inconsistent ZVALs in AST produced by compiler (REFCOUNTED and INTERNED strings) 2017-11-01 01:10:21 +03:00
fandrieu b72af30a53 Fix #74243: allow locales.conf to drive datetime format
Add a driver attribute, PDO::DBLIB_ATTR_DATETIME_CONVERT, to control.
2017-10-31 17:52:59 -04:00
Adam Baratz 2ecfcdaf1b Use size_t instead of int, use more specific format string 2017-10-31 16:43:35 -04:00
Dmitry Stogov bbfd0df9d3 Use interned strings for persistent stream wrappers and filters 2017-10-31 18:51:35 +03:00
Nikita Popov 5b044aacbe Use known strings for reflection properties 2017-10-31 15:46:55 +01:00
Sammy Kaye Powers 98d6d1189c Remove decade-old commented-out code 2017-10-31 14:46:16 +00:00
Dmitry Stogov b84cbefa94 Change checks that should be always true into ZEND_ASSERT() (some edge cases may be trapped here). 2017-10-31 15:41:51 +03:00
Dmitry Stogov 54ebab9640 Workaroud for inconsistent ZVALs in AST produced by compiler (strings may be REFCOUNTED and INTERNED at the same time). 2017-10-31 15:39:39 +03:00
Dmitry Stogov 5dbdc382af Intern file names and class constants in first place (they may be interned later during constant substitution) 2017-10-31 15:36:55 +03:00
Dmitry Stogov 998794f584 Always calculate calculate string hash value on attempt of interning 2017-10-31 15:35:44 +03:00
Dmitry Stogov ca0690358e Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fix year
  Add /nologo
  These functions are always available, exif can't be cross version compiled anyway
2017-10-31 15:35:14 +03:00
Anatol Belski 3a59c1e068 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix year
  Add /nologo
2017-10-31 10:38:54 +01:00
Dmitry Stogov 160f6d6267 single check is enough 2017-10-31 11:07:42 +03:00
Kalle Sommer Nielsen b7a5e71a33 These functions are always available, exif can't be cross version compiled anyway 2017-10-31 08:50:30 +01:00
Dmitry Stogov 2e83924682 Added zend_hash_add_new_mem/zend_hash_str_add_new_mem. Use them to add new elements into PCRE cache (we checked the existance before). 2017-10-31 10:43:10 +03:00
Dmitry Stogov 6de54703f0 Improved zend_hash_str_add/update functions 2017-10-31 10:35:28 +03:00
Dmitry Stogov 974a8f8ad2 Use internet strings for EG(ini_entries) 2017-10-31 02:16:46 +03:00
Dmitry Stogov 8482a6f511 Fixed use-after free introduced in fcc08ce19f 2017-10-31 01:20:38 +03:00
Nikita Popov 02d6c259b9 Fix gc_029_zts.phpt test
ZTS and NTS now behave the same here, so reduce this back to a
single test.
2017-10-30 23:05:53 +01:00
Nikita Popov 7b16205f8b Remove some unnecessary duplications 2017-10-30 22:48:20 +01:00
Nikita Popov cb2884679c Remove zend_get_parameters(_ex) APIs
zend_get_parameters_ex() has been marked as deprecated for a long
time already. What zend_get_paramers() does is even more
questionable under PHP7. Both functions are obsoleted by the ZPP
mechanism, so I'm dropping them.
2017-10-30 22:00:42 +01:00
Dmitry Stogov fcc08ce19f Prevent reference-counting on persistent zvals (internal constants, default properties and constants of internal classes).
New macro ZVAL_COPY_OR_DUP() is used perform duplication, if necessary.
This should eliminate related race-coditions in ZTS build and prevent reference-counting bugs after unclean shutdown.
2017-10-30 23:13:10 +03:00
Christoph M. Becker dc4427d0ca Implemented request #62055 (Make run-tests.php support --CGI-- sections)
Not regarding the CGI section might even been seen as a bug, and since
server-tests.php appears to broken, anway[1][2], we implement it for
run-tests.php in the way as described[3] for server-tests.php, i.e.
respective tests are skipped if no CGI executable is found.

[1] <https://github.com/php/php-src/pull/222#commitcomment-2064387>
[2] <https://github.com/php/php-src/pull/1811#issuecomment-256677997>
[3] <https://qa.php.net/phpt_details.php#cgi_section>
2017-10-30 21:04:59 +01:00
Anatol Belski 0fe6724fce Rethink the version checks
As the actual behavior change happens with ICU >= 58, the new
functionality should stay same in the lower versions. This comply also
with lower PHP versions so far.
2017-10-30 19:52:27 +01:00
Anatol Belski 2b43c623b9 Fix typo 2017-10-30 18:28:39 +01:00
Anatol Belski 3ce3e96af3 Proper ICU version check for restriction levels availability 2017-10-30 18:21:14 +01:00
Anatol Belski c35f69327c Merge branch 'PHP-7.2'
* PHP-7.2:
  Add missing ICU version check
2017-10-30 18:17:20 +01:00
Jakub Zelenka 8b07cc4914 Merge branch 'PHP-7.2' 2017-10-30 16:44:33 +00:00
Dmitry Stogov 0a8d834a7f Fixed test 2017-10-30 18:37:03 +03:00
Sara Golemon bbf57b114f Revert array_slice passthrough optimization
This reverts commit fabb5b7a74.
This reverts commit e751e6ceba.
2017-10-30 11:08:28 -04:00
Joe Watkins 06606ab4be Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #75464 Wrong reflection on SoapClient::__setSoapHeaders
2017-10-30 14:15:29 +00:00
Fabien Villepinte 97ff1c9243 Fix bug #75461 Wrong reflection on SoapServer:setClass 2017-10-30 14:11:15 +00:00
Anatol Belski fcfeb6b088 Merge branch 'PHP-7.2'
* PHP-7.2:
  Yet one attempt to mitigate the unzip error on AppVeyor
2017-10-30 12:20:52 +01:00
Anatol Belski 2ba8562973 Merge branch 'PHP-7.2'
* PHP-7.2:
  Ensure SDK is checked out before asking for version
2017-10-30 12:09:39 +01:00
Anatol Belski 7b6a86c82f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix fetching the SDK version
2017-10-30 11:31:03 +01:00
Xinchen Hui 039263c884 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Fix SDK version comparison and add more verbosity
  Don't use the cache dependency, SDK version is handled in script
2017-10-30 18:21:19 +08:00
Xinchen Hui 60e8e4700c Merge branch 'PHP-7.2'
* PHP-7.2:
  Use abbrev
2017-10-30 18:17:50 +08:00
Anatol Belski 29cca02623 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix SDK version comparison and add more verbosity
  Don't use the cache dependency, SDK version is handled in script
2017-10-30 11:17:06 +01:00
Dmitry Stogov b1b1a0596f ws 2017-10-30 12:56:08 +03:00
Dmitry Stogov 5d88ea5c75 Update UPGRADING.INTERNALS 2017-10-30 12:47:22 +03:00
Dmitry Stogov 3b7e18af78 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Remove status check on the SDK repo and add version check
2017-10-30 12:32:22 +03:00
Anatol Belski 2eadb3f015 Merge branch 'PHP-7.2'
* PHP-7.2:
  Remove status check on the SDK repo and add version check
2017-10-30 10:17:55 +01:00
Dmitry Stogov fad75a54d4 Merge branch 'master' into rc_debug
* master: (26 commits)
  Better fix for bug #75451 (Assertion fails while foreach on empty xpath query)
  Catch with the latest AppVeyor unzip errors
  Fixed type inference
  Fix bug #75453 Incorrect reflection on ibase_connect and ibase_pconnect
  Fix compiler warnings
  We don't use a specific model for a MAKERNOTE so remove these checks that doesn't do anything anyway
  Remove these old comments, as for the TODO, there is already a FR for this
  Re-enable AppVeyor cache
  make sure run-tests reports exit status upon prerequisite error
  Remove implicit constants from test case
  Fix invalid read in zend_use_undefined_constant()
  Fix invalid read in mb_ord()
  Remove --with-libmbfl configure option
  Fixed bug #75451 (Assertion fails while foreach on empty xpath query)
  Add tests for UConverter::getStandards()
  convert spaces to tabs in ext/ftp/tests/server.inc
  Add tests for ftp_rename
  Fix bug #75434 Wrong reflection for mysqli_fetch_all function
  Don't optimize input arrays with suffix holes
  Fix bug #75307 Wrong reflection for openssl_open function
  ...
2017-10-30 12:11:35 +03:00
Dmitry Stogov e4a8b7a4b6 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Catch with the latest AppVeyor unzip errors
2017-10-30 12:05:45 +03:00
Dmitry Stogov 2065d51a18 Better fix for bug #75451 (Assertion fails while foreach on empty xpath query) 2017-10-30 12:04:15 +03:00
Anatol Belski e36731dc95 Merge branch 'PHP-7.2'
* PHP-7.2:
  Catch with the latest AppVeyor unzip errors
2017-10-30 08:58:16 +01:00
Dmitry Stogov 1f5c0fad21 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed type inference
2017-10-30 10:44:25 +03:00
Joe Watkins f844813c60 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #75453 Incorrect reflection on ibase_connect and ibase_pconnect
2017-10-30 06:56:20 +00:00
Kalle Sommer Nielsen 6b88b3bc25 Fix compiler warnings 2017-10-29 16:43:21 +01:00
Kalle Sommer Nielsen 85fa3aa4c0 We don't use a specific model for a MAKERNOTE so remove these checks that doesn't do anything anyway 2017-10-29 16:42:13 +01:00
Kalle Sommer Nielsen 09f829d996 Remove these old comments, as for the TODO, there is already a FR for this 2017-10-29 16:36:34 +01:00
Anatol Belski 2c691f97c8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Re-enable AppVeyor cache
2017-10-29 10:10:10 +01:00
Joe Watkins f45a7e26de Merge branch 'PHP-7.2'
* PHP-7.2:
  make sure run-tests reports exit status upon prerequisite error
2017-10-29 04:38:20 +00:00
Christoph M. Becker c4c4056041 Remove implicit constants from test case
`FILTER_FLAG_SCHEME_REQUIRED` and `FILTER_FLAG_HOST_REQUIRED` are
implicitly used for `FILTER_VALIDATE_URL` so there is no need to
specify them explicitly.

Cf. https://bugs.php.net/75442.
2017-10-28 18:00:10 +02:00
Nikita Popov 10900a89ad Fix invalid read in zend_use_undefined_constant() 2017-10-28 16:55:23 +02:00
Nikita Popov 251c1b1a44 Fix invalid read in mb_ord() 2017-10-28 16:44:32 +02:00
Peter Kokot 5c5bd30339 Remove --with-libmbfl configure option
The bundled libmbfl library is no longer API or ABI compatible with
the (currently unmaintained) upstream library. As such, building
against an external libmbfl is no longer possible.
2017-10-28 16:11:30 +02:00
Xinchen Hui 1a9e64362c Fixed bug #75451 (Assertion fails while foreach on empty xpath query) 2017-10-28 21:38:26 +08:00
Fabien Villepinte 557edb75c0 Add tests for UConverter::getStandards() 2017-10-28 14:03:05 +02:00
Michael Kliewe ba0ef9139c convert spaces to tabs in ext/ftp/tests/server.inc 2017-10-28 13:02:23 +02:00
Michael Kliewe 7d5bf6e269 Add tests for ftp_rename 2017-10-28 13:02:23 +02:00
Nikita Popov 8d54f98e33 Merge branch 'PHP-7.2' 2017-10-28 12:58:43 +02:00
Sara Golemon 352b406650 Merge branch 'PHP-7.2'
* PHP-7.2:
  Don't optimize input arrays with suffix holes
2017-10-27 13:07:50 -04:00
Joe Watkins 5ce7113467 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #75307 Wrong reflection for openssl_open function
2017-10-27 16:07:30 +01:00
Anatol Belski 0ab89a5d37 Merge branch 'PHP-7.2'
* PHP-7.2:
  Skip test on PostgreSQL 10
2017-10-27 16:24:22 +02:00
Sara Golemon fabb5b7a74 array_slice() passthrough for preserve_keys=true as well 2017-10-27 10:14:03 -04:00
Sara Golemon e751e6ceba Do not create a new array when slicing all of input array. 2017-10-27 10:09:05 -04:00
Anatol Belski 25da0bd658 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test compat for PostgreSQL 10
2017-10-27 15:05:15 +02:00
Anatol Belski bf43ab53ae Merge branch 'PHP-7.2'
* PHP-7.2:
  Apply upstream patch for CVE-2017-14107
  Backport and apply upstream patch for CVE-2017-14107
2017-10-27 14:18:55 +02:00
Dmitry Stogov 8203a0668d Merge branch 'master' into rc_debug
* master:
  Use per-request heap instead of system one
  Extend zend_register_class_alias_ex() with additional argument to allow creating persistent or per-request aliases
  Makrk persistent resources and references with GC_PERSISTENT flag
2017-10-27 14:59:09 +03:00
Dmitry Stogov cf67a421e9 Use per-request heap instead of system one 2017-10-27 14:45:54 +03:00
Dmitry Stogov 8e01026b82 Extend zend_register_class_alias_ex() with additional argument to allow creating persistent or per-request aliases 2017-10-27 14:44:21 +03:00
Dmitry Stogov 0136ecb69a Makrk persistent resources and references with GC_PERSISTENT flag 2017-10-27 14:42:06 +03:00
Dmitry Stogov 49ea143bbd Encapsulate reference-counting primitives.
Prohibit direct update of GC_REFCOUNT(), GC_SET_REFCOUNT(), GC_ADDREF() and GC_DELREF() shoukf be instead.
Added mactros to validate reference-counting (disabled for now).
These macros are going to be used to eliminate race-condintions during reference-counting on data shared between threads.
2017-10-27 01:28:58 +03:00
Dmitry Stogov 1ab0d820da Reverted constant related change (this should be handled togrther with ohter constant related places) 2017-10-26 22:43:45 +03:00
Anatol Belski 87a6b29477 Merge branch 'PHP-7.2'
* PHP-7.2:
  Binary SDK 2.0.12 stable
2017-10-26 21:27:32 +02:00
Dmitry Stogov aeca761856 Removed useless reallocations 2017-10-26 19:13:53 +03:00
Dmitry Stogov 0366684ce3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed indirect modification of magic ArrayAccess method arguments
2017-10-26 16:17:49 +03:00
Dmitry Stogov e95301b785 Merge branch 'PHP-7.2'
* PHP-7.2:
  Backport tests
2017-10-26 14:12:58 +03:00
Dmitry Stogov 0772b32ef6 Restore object copying on magic method calls (It was removed in master only). 2017-10-26 14:04:42 +03:00
Dmitry Stogov b09e398304 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed indirect modification of magic method arguments.
2017-10-26 13:35:39 +03:00
Dmitry Stogov 886d4d9ca1 Avoid reallocations when concatenate with empty string 2017-10-26 09:45:02 +03:00
Xinchen Hui d00c2279af Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed test
2017-10-26 10:24:06 +08:00
Xinchen Hui 5cb5b27c40 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Update NEWS
  Fixed bug #75420 (Crash when modifing property name in __isset for BP_VAR_IS)

Conflicts:
	Zend/zend_object_handlers.c
2017-10-26 10:16:55 +08:00
Dmitry Stogov a05639a5e6 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fix typo in comments
  Fix typo in comments
2017-10-26 00:26:38 +03:00
Dmitry Stogov da1f8097fa Zend MM related tunning. 2017-10-26 00:25:31 +03:00
Joe Watkins c2456718ca Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix typo in comments
2017-10-25 21:00:13 +01:00
Fabien Villepinte c0f3c3d222 Fix typo in comments 2017-10-25 20:59:13 +01:00
Anatol Belski 1fbcebe100 Merge branch 'PHP-7.2'
* PHP-7.2:
  Don't create plist files when using clang analyzer
2017-10-25 18:15:16 +02:00
Dmitry Stogov 6e1ee94744 Reduce smart_string related reallocations and make them Zend MM friendly. 2017-10-25 19:04:16 +03:00
Christoph M. Becker 14469dedde Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix the SKIPIF part in /ext/gd/tests/bug75437.phpt
2017-10-25 14:58:49 +02:00
Christoph M. Becker 1530d01b7a Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #75437 Wrong reflection on imagewebp
2017-10-25 13:10:33 +02:00
Dmitry Stogov 6a034be2c6 Fixed signed/unsigned comparisons 2017-10-25 11:45:17 +03:00
Ferenc Kovacs ffc734b2a4 Merge branch 'PHP-7.2' 2017-10-25 03:44:04 +02:00
Ferenc Kovacs 8876a12d0b Merge branch 'PHP-7.2' 2017-10-25 03:23:34 +02:00
Anatol Belski 4d108dc3fe Merge branch 'PHP-7.2'
* PHP-7.2:
  Parametrize the expected value to avoid platform false positives
2017-10-24 18:39:05 +02:00
Sara Golemon 54ba77c30e Merge branch 'PHP-7.2'
* PHP-7.2:
  Decref default_link when clearing
2017-10-24 11:38:32 -04:00
Christoph M. Becker 4d950fa792 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #65148 (imagerotate may alter image dimensions)
2017-10-24 17:23:24 +02:00
Dmitry Stogov 9cf87aa196 Avoid HashTable allocations for empty arrays (using zend_empty_array). 2017-10-24 17:27:31 +03:00
Derick Rethans 2ca08a3d66 Merge branch 'PHP-7.2' 2017-10-24 14:56:39 +01:00
Anatol Belski 0dbbf710e2 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test
2017-10-24 14:59:19 +02:00
Anatol Belski 9e4a52f66a Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-10-24 14:23:14 +02:00
Anatol Belski f76870f6f8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #72535 arcfour encryption stream filter crashes php
2017-10-24 14:08:08 +02:00
Anatol Belski 69ecd5edb2 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75055 Out-Of-Bounds Read in timelib_meridian()
  Apply upstream patch for CVE-2016-1283
2017-10-24 13:45:59 +02:00
Dmitry Stogov 59a7944bc6 Made run_time_cache to keep "offset" to dynamic properties Buckets (instead of index). 2017-10-24 10:28:19 +03:00
Sara Golemon 8f804a2128 Add support for zlib/level context option 2017-10-23 22:14:52 -04:00
Sara Golemon af1e6a872c Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS entry for pg_close() fix
2017-10-23 14:59:05 -04:00
Sara Golemon 55ac4f0929 Merge branch 'PHP-7.2'
* PHP-7.2:
  Bugfix#75419 Fix clearing of default link during pg_close()
2017-10-23 14:44:51 -04:00
Dmitry Stogov 917dfe646e Removed useless reference-counting and copying 2017-10-23 21:07:49 +03:00
Anatol Belski c51bc3814a Merge branch 'PHP-7.2'
* PHP-7.2:
  Update libmagic.patch
2017-10-23 19:18:57 +02:00
Anatol Belski bcad693468 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fail hard when re2c is not found or the version requirement not met
  Fix mismatching alloc
2017-10-23 19:15:43 +02:00
Derick Rethans 973c1e3c93 Updated to version 2017.3 (2017c) 2017-10-23 17:31:24 +01:00
Derick Rethans 0305fb9a22 Empty merge 2017-10-23 17:31:24 +01:00
Dmitry Stogov 193adbdf30 Use run-time cache to keep position of dynamic properties in HashTable to access them without hash lookup. 2017-10-23 18:29:13 +03:00
Anatol Belski 0eeaff09cb Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix memory leak
2017-10-23 15:41:06 +02:00
Anatol Belski 60d45e6a5b Fix visibility 2017-10-23 13:27:34 +02:00
Anatol Belski 12bd998d58 realloc() can return NULL 2017-10-23 13:27:34 +02:00
Anatol Belski 979bad4ae2 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix uninitialized vars
2017-10-23 12:03:16 +02:00
Joe Watkins 4a6f83fe6f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #69954 and remove pdo_mysql.cache_size and mysqli.cache_size INI directives
2017-10-23 09:12:30 +01:00
Joe Watkins ca77eacbc1 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix bug #69954 and remove pdo_mysql.cache_size and mysqli.cache_size INI directives
2017-10-23 09:12:06 +01:00
Joe Watkins 153404fa73 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fix bug #69954 and remove pdo_mysql.cache_size and mysqli.cache_size INI directives
2017-10-23 09:11:41 +01:00
Peter Kokot 14609ca6ff Fix bug #69954 and remove pdo_mysql.cache_size and mysqli.cache_size INI directives
This patch removes some non working links to PHP manual and removes the
pdo_mysql.cache_size and mysqli.cache_size INI directives which have been
removed since PHP 5.3.0.
2017-10-23 09:11:16 +01:00
Joe Watkins 9883fe24c0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #75264
2017-10-23 09:08:12 +01:00
Joe Watkins 3a7e3ef334 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix bug #75264
2017-10-23 09:07:45 +01:00
Joe Watkins 9bb82c0400 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fix bug #75264
2017-10-23 09:07:20 +01:00
Peter Kokot a59e233aa1 Fix bug #75264 2017-10-23 09:06:58 +01:00
Anatol Belski 793ca716fb Fix datatypes and compiler warnings
Switch to size_t

Not critical as an unsigned is already used, but fixes a couple of
warnings in other areas.

Normalize signature

It's a function with the usual compare semantics, returning a platform
specific at least produces unnecessary warnings elsewhere and is otherwise
inappropriate.

Fix return value

Drop unused var

Fix compiler warnings

Fix compiler warning

Fix var name in arginfo

Fix cast
2017-10-23 08:56:57 +02:00
Anatol Belski 1f93c9837b Merge branch 'PHP-7.2'
* PHP-7.2:
  Renaming cache folder is not a solution, too. Disable cache for now.
  Revert "Rename build cache folder and separate sdk"
2017-10-23 07:14:32 +02:00
Anatol Belski 654d0e3a81 Merge branch 'PHP-7.2'
* PHP-7.2:
  Rename build cache folder and separate sdk
  Revert "Invalidate the whole cache when .appveyor.yml was changed"
2017-10-23 07:10:14 +02:00
Anatol Belski b5ce57c7e2 Merge branch 'PHP-7.2'
* PHP-7.2:
  Invalidate the whole cache when .appveyor.yml was changed
2017-10-23 07:02:37 +02:00
Kalle Sommer Nielsen a7c23e27be Remove these ancient ldap parts for Windows thats no longer relevant 2017-10-23 03:13:53 +02:00
Andrea Faulds e823770515 Merge JSON_THROW_ON_ERROR 2017-10-22 19:41:23 +01:00
Jakub Zelenka d5127cec6a Merge branch 'PHP-7.2' 2017-10-22 18:59:32 +01:00
Anatol Belski cbc8f8327f Simplify tsrm cache update 2017-10-22 11:57:35 +02:00
Anatol Belski 202e7ce65c Missed skip 2017-10-21 17:40:38 +02:00
Anatol Belski e952cc24db Fix build on ICU < 53 2017-10-21 17:37:51 +02:00
Anatol Belski 050d42d5d2 Merge branch 'PHP-7.2'
* PHP-7.2:
  With ICU 58+, set the default restriction level to high
2017-10-21 17:25:03 +02:00
Anatol Belski f56ceb7f5b Add Spoofchecker::setRestrictionLevel() and corresponding constans 2017-10-21 17:12:21 +02:00
Anatol Belski 679b1b8b32 Merge branch 'PHP-7.2'
* PHP-7.2:
  Add TZ and Unicode versions to intl MINFO
2017-10-21 16:18:59 +02:00
Anatol Belski b03c11e749 Merge branch 'PHP-7.2'
* PHP-7.2:
  Reenable AppVeyor cache
2017-10-21 12:00:49 +02:00
Anatol Belski b6b74d453e Merge branch 'PHP-7.2'
* PHP-7.2:
  Disable AppVeyor cache to unlock build
2017-10-21 10:53:21 +02:00
Anatol Belski 2e64f139ec Merge branch 'PHP-7.2'
* PHP-7.2:
  Rework these new tests to match with diffs in ICU 58, 59 and upcoming 60
2017-10-21 10:31:02 +02:00
Anatol Belski 68c0c69057 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
  [skip ci] Update NEWS
  [ci skip] Update NEWS
2017-10-20 20:50:10 +02:00
Anatol Belski 4621b042d6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #73655 Spoofchecker::isSuspicious behavior change due to upstream changes
  Add test for newer ICU version
2017-10-20 20:15:23 +02:00
Anatol Belski b996c5599e Merge branch 'PHP-7.2'
* PHP-7.2:
  Further test fixes for ICU >= 58
  Version checks
2017-10-20 18:41:14 +02:00
Anatol Belski 07036aaccb Merge branch 'PHP-7.2'
* PHP-7.2:
  Yet two wrong version checks
2017-10-20 16:55:53 +02:00
Anatol Belski 80e1ca50b5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix version checks in tests
  Fix version checks in tests
2017-10-20 15:25:44 +02:00
Anatol Belski d2c9dad3e4 Merge branch 'PHP-7.2'
* PHP-7.2:
  Sync some tests for compat with ICU 58.1, PHP 7.1+ part
  Sync some tests for compat with ICU 58.1+
2017-10-20 13:59:19 +02:00
Anatol Belski a5293c1c39 Merge branch 'PHP-7.2'
* PHP-7.2:
  Add skip for incompatible ICU version
2017-10-20 11:30:41 +02:00
Sol Richardson e161905919 Add test for strnatcmp() align left cases 2017-10-19 12:11:03 +01:00
Peter Kokot 34a7d7fa6a Clean and sync .gitignore 2017-10-19 12:09:50 +01:00
Peter Kokot 2bc23f8028 Update filter docs and tests
Filter extension is better presented in the PHP manual. Some ext/filter/tests
included outdated functions or were duplicated.
2017-10-19 12:09:06 +01:00
Peter Kokot d2754810cd Remove tidy examples
PHP documentation already includes explanations and examples for most of
tidy extension. Tidy PHP functions and methods used in the examples are
also already used in the tests.
2017-10-19 12:07:02 +01:00
Peter Kokot 7f4722a42f Remove tokenizer PHP example script
The tokenizer extension is best presented in the PHP manual with some
code snippets. Also the script includes old PHP dl() function.
2017-10-19 12:06:10 +01:00
Peter Kokot 842ba86c34 Remove PHP code examples from xmlreader
The PHP documentation can present the xmlreader extension better with
code snippets.
2017-10-19 12:05:19 +01:00
Joe Watkins 55625dd9c9 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed #75317 - UConverter::setDestinationEncoding changes source instead of destinatination
2017-10-19 12:03:54 +01:00
Peter Kokot 8d587f09c0 Refactor ext/phar License info 2017-10-19 11:59:12 +01:00
Thiago Carvalho 4c97dc099c Add tests to XMLReader::expand error paths 2017-10-19 11:55:31 +01:00
Joe Watkins 847f070110 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update .editorconfig with some more configs
2017-10-19 11:54:12 +01:00
Peter Kokot 410ae4f596 Remove CHANGES from sapi/cgi
All these changes are noted in the PHP manual instead that have been
removed.
2017-10-19 11:51:09 +01:00
Joe Watkins 5d2456c278 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix issue with zend signals in php_request_startup
2017-10-19 11:48:37 +01:00
Peter Kokot 13f3bd9172 Convert some mysqlnd file encodings to UTF-8 2017-10-19 11:46:54 +01:00
Joe Watkins 6bde306eb8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Escape newline on curl config.m4
2017-10-19 11:40:58 +01:00
Anatol Belski f24e597c85 Constify key access for hash and formal params
Keys created in shared memory and won't be modified and are free'd on
restart. Otherwise, keys passed to functions should not be modified,
too.
2017-10-19 12:07:08 +02:00
Anatol Belski efcce55360 Fix datatype 2017-10-19 10:26:39 +02:00
Dmitry Stogov 272f5a1716 Extend zend_string API to avoid reallocation in zend_string_init_interned() 2017-10-19 00:02:56 +03:00
Anatol Belski ea915adb48 Merge branch 'PHP-7.2'
* PHP-7.2:
  Move to php-sdk-2.0.0beta3 for Appveyor
2017-10-18 17:47:51 +02:00
Dmitry Stogov 8b87b35564 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Backport 7ff13badda into 7.0+
2017-10-18 18:27:21 +03:00
Dmitry Stogov e87e62cc6f Moved ZCG(function_table) back into accel_acrivate. It should be unique per thread. 2017-10-18 18:26:30 +03:00
Anatol Belski 9420bdae84 Merge branch 'PHP-7.2'
* PHP-7.2:
  Backport 7ff13badda into 7.0+
2017-10-18 16:30:46 +02:00
Dmitry Stogov b4903aef16 Move a part of opcache initialization into post_startup phase (when all extensions already loaded). 2017-10-18 17:18:54 +03:00
Dmitry Stogov 7ff13badda Fixed required SHM memeory size calculation for scripts when opcache.revalidate_path is set. 2017-10-18 14:26:44 +03:00
Xinchen Hui d042d1d8e0 Cleanup cfg flags & Added ZEND_FUNC_HAS_EXTENED_INFO 2017-10-18 17:03:07 +08:00
fandrieu 014fd21b48 Implemented request #69592: allow 0-column rowsets to be skipped automatically
This adds a new attribute PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS to enable automatic
skipping of empty rowsets.

This happens with some SQL commands (like PRINT or SET): a rowset with 0 columns
is returned by the driver.

With this option enabled, 0 columns rowsets are automatically skipped, mirroring
the behavior of the deprecated mssql extension.

Credits go to MiRacLe-RPZ for developping and promoting this patch.
2017-10-17 14:16:38 -04:00
Anatol Belski f16b918e47 Merge branch 'PHP-7.2'
* PHP-7.2:
  One more folder to delete in AppVeyor image
2017-10-17 15:38:01 +02:00
Xinchen Hui 21f2ed6a63 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug (assertion fails with extended info generated)
2017-10-17 19:47:40 +08:00
Dmitry Stogov 801b467c73 Added test 2017-10-17 13:45:46 +03:00
Dmitry Stogov d0f4dbfd96 Make assertions in DO_ICALL and CALL_TRAMPOLINE to be consistent with DO_FCALL. 2017-10-17 13:35:59 +03:00
Dmitry Stogov 61ef91bf0d Revert "Allow internal functions to return values by reference (this was disabled in implementation of DO_ICALL, but enabled in DO_FCALL)."
This reverts commit da781a5ac2.
2017-10-17 13:25:19 +03:00
Dmitry Stogov da781a5ac2 Allow internal functions to return values by reference (this was disabled in implementation of DO_ICALL, but enabled in DO_FCALL).
However, don't require internal functions returning by reference to return a reference.
Mark unserialize() as returning by reference and remove unwrap_reference hack, to allow proper returning of self referenced arrays using a reference.
Currently unserialize() is the only internal function that may return a reference.
2017-10-17 11:50:34 +03:00
Xinchen Hui 3e195d4d16 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed test
2017-10-17 12:20:48 +08:00
Xinchen Hui 1c7c5d9720 Merge branch 'PHP-7.2'
* PHP-7.2:
  Try to fix test
2017-10-17 11:35:57 +08:00
Tianfang Yang 28e6520574 Merge branch 'PHP-7.2' 2017-10-16 19:28:50 -04:00
Dmitry Stogov 1dd224dd12 Reuse interned strings from opcache SHM, if possible. 2017-10-16 19:20:16 +03:00
Anatol Belski a87484aa22 Merge branch 'PHP-7.2'
* PHP-7.2:
  Move to next binary SDK version for AppVeyor
2017-10-16 18:08:09 +02:00
Dmitry Stogov 555f6dfdec Merge branch 'PHP-7.2'
* PHP-7.2:
  Prevent crash on ext/pdo_mysql/tests/bug_39858.phpt when built with libmysql
2017-10-16 19:02:46 +03:00
Xinchen Hui 5c697ccb9d Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75378 ([REGRESSION] IntlDateFormatter::parse() does not change $position argument)
2017-10-16 19:09:13 +08:00
Christoph M. Becker 7ae8e3e8a2 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Fixed bug #75383 (The date is "Sep", it should say "Oct")
2017-10-16 11:13:05 +02:00
Jakub Zelenka 0c99e7eff1 Merge branch 'PHP-7.2' 2017-10-16 09:55:18 +01:00
Xinchen Hui 7bce8c5224 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug (Phi sources removel)
2017-10-16 15:23:02 +08:00
Jakub Zelenka 16aca56816 Merge branch 'PHP-7.2' 2017-10-15 20:33:49 +01:00
Jakub Zelenka d1f5811ff0 Merge branch 'PHP-7.2' 2017-10-15 19:37:22 +01:00
Peter Kokot b7b55d955e Remove PHP code examples from xmlwriter extension
PHP documentation can present PHP code examples better instead.
2017-10-15 15:38:45 +02:00
Christoph M. Becker c189b4788d Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #53070 (enchant_broker_get_path crashes if no path is set)
2017-10-15 14:08:03 +02:00
Christoph M. Becker b4c6637c0b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75365 (Enchant still reports version 1.1.0)
2017-10-15 13:36:25 +02:00
Xinchen Hui 77af496150 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Update NEWS
  Fixed bug #75287 (Builtin webserver crash after chdir in a shutdown function)
2017-10-15 10:29:56 +08:00
Xinchen Hui dc6aaf0c8c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75357 (segfault loading WordPress wp-admin)
2017-10-14 23:12:48 +08:00
Dmitry Stogov f26fc527da Fixed unzserialize(), to disable creation of unsupported data structures through manually crafted strings. (Dmitry) 2017-10-13 15:53:11 +03:00
Dmitry Stogov b9f9d44b52 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75368 (mmap/munmap trashing on unlucky allocations)
2017-10-13 14:02:16 +03:00
Xinchen Hui bc038206ad Merge branch 'PHP-7.2'
* PHP-7.2:
  Prevent from being affected by local php.ini
  Added skipf
2017-10-13 18:24:27 +08:00
Xinchen Hui f87a0b32c6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75370 (Webserver hangs on valid PHP text)
  Fixed typo
2017-10-13 18:19:19 +08:00
Nikita Popov e688d1df99 Fix gc_032.phpt
Use var_dump instead of debug_zval_dump. The refcounts are not
important for this test and change depending on whether opcache
is loaded or not.
2017-10-13 11:59:28 +02:00
Dmitry Stogov 7a23c575f2 Merge branch 'develop_operators' of github.com:tianhe1986/php-src
* 'develop_operators' of github.com:tianhe1986/php-src:
  `memcmp` begins from the second char.
2017-10-13 11:39:42 +03:00
tianhe1986 e6519cb69d memcmp begins from the second char.
Signed-off-by: tianhe1986 <w1s2j3229@163.com>
2017-10-12 22:46:26 +08:00
Dmitry Stogov edc7c8ccfa PHP must not create circular arrays when element is assigned by value. 2017-10-12 16:23:45 +03:00
Christoph M. Becker eb4342eb14 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75221 (Argon2i always throws NUL at the end)
2017-10-12 12:52:58 +02:00
Bob Weinand 2392010af4 Merge branch 'PHP-7.2' 2017-10-12 12:32:49 +02:00
Dmitry Stogov 4960c41e1f Small improvement with zend_memnstr (tianhe1986) 2017-10-12 11:54:40 +03:00
Anatol Belski cc8a28fb18 Merge branch 'PHP-7.2'
* PHP-7.2:
  It looks like i should've taken joint response on ext/fileinfo long ago
2017-10-11 22:26:09 +02:00
Anatol Belski e9bb3211b0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Put php-sdk-2.0.12beta1 for AppVeyor
2017-10-11 20:32:28 +02:00
Anatol Belski 7994d789e0 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
2017-10-11 19:03:24 +02:00
Anatol Belski bfe19cb355 Merge branch 'PHP-7.2'
* PHP-7.2:
  Cleanup irrelevant info
2017-10-11 19:00:41 +02:00
Anatol Belski b7a5d52e98 Merge branch 'PHP-7.2'
* PHP-7.2:
  Upgrade bundled libmagic to 5.31
2017-10-11 18:24:29 +02:00
Christoph M. Becker a332eaf7f6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix Bug #75299 Wrong reflection on inflate_init and inflate_add
2017-10-11 17:40:12 +02:00
Christoph M. Becker 9c006651c4 Test requires mbstring – skip if not available 2017-10-11 15:27:56 +02:00
Christoph M. Becker cfbc93c88b Merge branch 'PHP-7.2'
* PHP-7.2:
  Use PHP_VERSION for exif
2017-10-11 15:01:23 +02:00
Christoph M. Becker 4e9d2ab822 Merge branch 'PHP-7.2'
* PHP-7.2:
  bump version
2017-10-11 14:38:59 +02:00
Anatol Belski be62d5fc19 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix datatype
2017-10-11 09:00:32 +02:00
Dmitry Stogov 2e0db496fa Fixed file_cache broken by recent AST related changes. 2017-10-10 19:37:46 +03:00
Dmitry Stogov 70b2ec5874 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed cleanup after optimization passes
2017-10-10 19:37:40 +03:00
Sara Golemon 0c4f4af107 Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert "Update NEWS for PHP 7.2.0RC4"
  Revert "Update NEWS for 7.2.0RC5"
  Update NEWS for 7.2.0RC5
  Update NEWS for PHP 7.2.0RC4
2017-10-10 11:58:01 -04:00
Dmitry Stogov 97e7521e49 AST don't have to be COPYABLE anymore. 2017-10-10 15:45:03 +03:00
Anatol Belski 05b9f967a9 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix path in makefile fragment
2017-10-10 14:33:31 +02:00
Christoph M. Becker df022a92eb Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Add NEWS entry for bug #75349
2017-10-10 14:00:33 +02:00
Anatol Belski 620d3abfde Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix re2c version detection
2017-10-10 13:00:38 +02:00
Anatol Belski 426cfa628e Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS for 7.2.0RC5
  Update NEWS for PHP 7.2.0RC4
2017-10-10 13:00:14 +02:00
Dmitry Stogov dec8b787ee Renumber types and type_flags 2017-10-10 11:10:27 +03:00
Dmitry Stogov ef5ea48741 Always use IS_CONSTANT_AST (IS_CONSTANT is removed). 2017-10-10 10:11:05 +03:00
Anatol Belski 08c0998b1f Merge branch 'PHP-7.2'
* PHP-7.2:
  Move dev to 7.0.26
2017-10-10 08:28:46 +02:00
Sara Golemon e05cba0806 Make GMP more usable by third-party extensions.
Export a PHPAPI function to return gmp_ce (and make the actual storage static).
Provide gmp_object struct in header w/ inline accessor.
Install php_gmp_int.h header.

Remove unnecessary `#ifdef HAVE_GMP` checks.
2017-10-09 13:23:10 -04:00
Dmitry Stogov 39ded1d5f8 Changed zend_ast_ref structure to use only one allocation, removing dichotomy between heap/arena ASTs. 2017-10-09 16:57:51 +03:00
Anatol Belski 65f610bd9f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix array access on undeclared properties in DateInterval
2017-10-09 15:40:00 +02:00
Anatol Belski 0494d90fec Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix ftok() multibyte path support
2017-10-09 13:15:17 +02:00
Dmitry Stogov fcccb0d6ea Use zval_ptr_dtor_nogc() in places where circular zvals are not possible 2017-10-09 12:24:11 +03:00
Peter Kokot 3ed3bc3a0c Update README information for the libmbfl library
The libmbfl library is bundled with PHP and has its own repository for
development and bug fixes. To avoid confusion and faster development the
README has been updated to include the information of the original library and
to use the bundled library as a fork of the upstream repository instead.
2017-10-08 17:51:02 +02:00
Peter Kokot a57de26c3d Refactor mbstring READMEs 2017-10-08 17:51:02 +02:00
Peter Kokot 60909f391d Remove code examples from dom extension
PHP documentation is a better place to present code examples. Tests
for ext/dom already include all used PHP code.
2017-10-08 17:50:17 +02:00
Peter Kokot 4fcecfb291 Remove old apache_hooks occurrence
The apache_hooks SAPI has been removed since PHP >= 7.0 and there is no
need to have two different php_request_startup definitions.

Also php_request_startup_for_hook() and php_request_shutdown_for_hook() functions
are not used in the PHP source code directly anymore. They are out of sync and
are not touched when making changes to the shutdown sequence.

The php_start_sapi() function was therefore not used anymore and is
removed.
2017-10-08 17:49:24 +02:00
Peter Kokot 3644cc6111 Remove some old apache2filter occurrences
apache2filter was supported in PHP <= 5.6. This patch removes some old
apache2filter occurrences. Also FreeBSD warning therefore is not needed
anymore when building PHP with apache2filter and in later versions don't
need to set the --with-tsrm-pth option.
2017-10-08 17:48:47 +02:00
Peter Kokot 0646042d1f Remove unused Travis configuration for sapi/phpdbg
The phpdbg sapi has been initially developed under the
github.com/krakjoe/krakjoe/phpdbg repository with its own Travis-CI.org
configuration. Since 2017-03-16 the main development is happening in the main
php-src repository.
2017-10-08 14:44:16 +02:00
Peter Kokot 556e5698dd Remove README from ext/tidy in favor of the PHP docs
The tidy introduction includes an outdated link to tidy HTML library homepage,
and PHP documentation presents the tidy PHP extension better instead.
2017-10-08 14:43:43 +02:00
Peter Kokot 978f53afa6 Remove outdated README from ext/com_dotnet
The PHP documentation includes updated and better com_dotnet
information.
2017-10-08 14:41:52 +02:00
Peter Kokot 784917bd64 Remove done TODO file from date extension
TODO file for date extension has been outdated:

- date_default_timezone_set_error.phpt includes checking that
  date_default_timezone_set() validates the passed timezone identifiers.

- ext/date/php_date.c includes timezone caching

- errors are included in date_parse() return value.
2017-10-08 14:41:17 +02:00
Sara Golemon e66e2731b8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Bugfix #74556 stream_socket_get_name() returns null bytes on MacOS
  Add line numbers to Optimizer debug output
2017-10-07 10:14:11 -04:00
Christoph M. Becker c5ca991d80 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75318 (The parameter of UConverter::getAliases() is not optional)
2017-10-06 17:16:54 +02:00
Rasmus Lerdorf 9fe6b29356 Add line numbers to Opcache's zend_dump_op() debug output 2017-10-06 11:03:07 -03:00
Dmitry Stogov 45ee78e040 mb_convert_variables() refactored to use simple recursion.
Fixed incorrect recursion protection (previous implementation kept protection flag or apply counter in non-zero state).
2017-10-06 12:08:55 +03:00
Dmitry Stogov f18638ca2d Fixed incorrect recursion detection 2017-10-06 11:47:11 +03:00
Dmitry Stogov 254b74b85f HASH_FLAG_PERSISTENT renamed into IS_ARRAY_PERSISTENT and moved into GC_FLAGS (to be consistent with IS_STR_PERSISTENT). 2017-10-06 02:54:14 +03:00
Dmitry Stogov cb9d81ef4f Refactored recursion pretection 2017-10-06 01:34:50 +03:00
Peter Kokot 39ea632f74 Join untracked files to root .gitignore 2017-10-05 12:36:47 +02:00
Peter Kokot cb2fdb08d6 Remove ident gitattribute for Zend/RFC/ 2017-10-05 12:36:09 +02:00
Peter Kokot 5971180aa6 Remove PHP examples from simplexml 2017-10-05 12:35:19 +02:00
Peter Kokot d5cb358765 Remove enchant PHP example 2017-10-05 12:34:43 +02:00
Nikita Popov 47a86687e8 Merge branch 'PHP-7.2' 2017-10-05 12:26:32 +02:00
Dmitry Stogov 0b87d4bf29 Removed unused flags 2017-10-05 00:04:59 +03:00
Dmitry Stogov e70618aff6 Changed the way VM accesses constant operands in 64-bit builds. 2017-10-04 16:53:01 +03:00
Dmitry Stogov 2cbc75ec63 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed rarely possible use-after-free
2017-10-04 16:40:03 +03:00
Dmitry Stogov e7afdb0668 Fixed invalid type 2017-10-04 16:06:57 +03:00
Dmitry Stogov b611878bb8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Bumped ext/oci8 version
  Use dereferenced value
  Fixed compilation errors
  Restored code for BOOL variables
  Fixed few ext/oci8 bugs
2017-10-04 10:00:07 +03:00
Christoph M. Becker 7607659e7c [ci skip] Merge branch 'PHP-7.2'
* PHP-7.2:
  Change EXTENSIONS file encoding from iso-8859-1 to utf-8
2017-10-04 00:33:37 +02:00
Dmitry Stogov 879126a2ce Don't pass useless arguments 2017-10-03 15:24:02 +03:00
Peter Kokot 6ad96c337d Remove done TODO line from ext/date 2017-10-03 07:26:21 +01:00
Peter Kokot 83e881bbb6 Remove outdated README from ext/gmp
The PHP manual now includes better GMP introduction with updated links
to GNU MP library homepage.
2017-10-03 07:25:35 +01:00
Peter Kokot f323636868 Remove exif PHP example files
The PHP documentation has all exif functions well documented so these
can be left out of php-src. The exif PHP tests also include all exif_*
functions.
2017-10-03 07:24:51 +01:00
Joe Watkins 17cf32ef45 Merge branch 'PHP-7.2'
* PHP-7.2:
  Typo in status.html
2017-10-03 07:22:26 +01:00
Joe Watkins a66b0f635d Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #74905
2017-10-03 07:20:00 +01:00
Peter Kokot 900aeedd44 Change ident gitattribute for ext/ext_skel.php 2017-10-03 07:17:44 +01:00
Joe Watkins 6190824cf1 Merge branch 'PHP-7.2'
* PHP-7.2:
  Remove ident gitattribute for ext/zip/php_zip.c
2017-10-03 07:15:27 +01:00
Remi Collet d68879c734 Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  Fix Bug #75284 sha3 is not supported on bigendian machine
  NEWS
2017-10-03 06:42:48 +02:00
Frank Denis bcb6e6d949 Merge branch 'PHP-7.2'
* PHP-7.2:
  ext/sodium: untab tests
  ext/sodium: import secretstream test
  ext/sodium: sodium_compare() is always available
  ext/sodium: fix funky indentation
  ext/sodium: move pwhash_scrypt() after pwhash()
  ext/sodium: checks for crypto_box_SEALBYTES are not required
  ext/sodium: explicitly include <string.h>
  ext/sodium: zend_parse_parameters -> zend_parse_parameters_throw
  ext/sodium: fix funky indent on zend_parse_parameters_throw() calls
  ext/sodium: import bindings for secretstream
  ext/sodium: add crypto_pwhash_str_needs_rehash()
  ext/sodium: +base64 codecs (timing-safe)
  ext/sodium: add arginfo definitions that will be required later
  ext/sodium: sort prototypes
2017-10-02 22:32:22 +02:00
Remi Collet ff7ab9230d Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  Fixed bug #75303 sha3 hangs on bigendian
2017-10-02 11:27:09 +02:00
Sara Golemon fdb276e4e1 Merge branch 'PHP-7.2'
* PHP-7.2:
  Guard against AI_NUMERICSERV not being defined.
2017-10-01 21:38:55 -04:00
Sara Golemon 320c4f22a4 Guard against AI_NUMERICSERV not being defined. 2017-10-01 21:32:31 -04:00
Frank Denis b76c97c254 Merge branch 'PHP-7.2'
* PHP-7.2:
  ext/sodium: fix pwhash_argon2i test
2017-10-01 16:01:25 +02:00
Xinchen Hui 0ce1f8df13 Merge branch 'patch-experimental' of https://github.com/petk/php-src
* 'patch-experimental' of https://github.com/petk/php-src:
  Remove EXPERIMENTAL files from fileinfo and pdo_odbc stable extensions
2017-09-30 12:24:39 +08:00
Xinchen Hui cca828b609 Merge branch 'patch-mysqli-todo' of https://github.com/petk/php-src
* 'patch-mysqli-todo' of https://github.com/petk/php-src:
  Remove done and old TODO file from ext/mysqli
2017-09-30 12:23:14 +08:00
Xinchen Hui 97eb1a072b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #75279

Conflicts:
	ext/standard/dl.c
2017-09-30 12:16:05 +08:00
Peter Kokot e06a2c150a Remove done and old TODO file from ext/mysqli
Since PHP documentation and ini settings should be updated for the
mysqli extension, this patch removes an old and done TODO file from
ext/mysqli folder.
2017-09-30 03:23:28 +02:00
Peter Kokot 5cf017a132 Remove EXPERIMENTAL files from fileinfo and pdo_odbc stable extensions 2017-09-30 01:58:08 +02:00
Andrea Faulds 1189fe5729 Merge branch 'PHP-7.2' 2017-09-29 21:40:04 +01:00
Remi Collet c8f50ed322 Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  Fixed bug #75285i Broken build when system libpcre don't have jit support
2017-09-29 15:50:49 +02:00
Anatol Belski 5cf046d0e7 Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert --with-pcre-valgrind by default in debug build
2017-09-29 12:26:31 +02:00
Xinchen Hui 95272f0b4a Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75267 (possible &/&& mixup)
2017-09-29 11:18:13 +08:00
Sara Golemon 8d90c3a7fb Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix word alignment on ILP64.
2017-09-28 10:48:53 -04:00
Anatol Belski 945d0e1928 Merge branch 'PHP-7.2'
* PHP-7.2:
  Apply upstream patch for CVE-2016-1283
2017-09-28 15:45:47 +02:00
Anatol Belski eca3bc59b2 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix mkdir() special case for path length < 260 and > 248
2017-09-28 13:20:09 +02:00
Christoph M. Becker 121331b2ce Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] hash_hmac_algos() is new in PHP 7.2.0
2017-09-27 17:18:57 +02:00
Côme Chilliet 819874c200 Updated NEWS
Added LDAP control support in it
2017-09-27 17:11:27 +02:00
Dmitry Stogov 1f8970c156 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75255 (Request hangs and not finish)
2017-09-27 17:18:17 +03:00
Joe Watkins a4da53a654 Merge branch 'PHP-7.2'
* PHP-7.2:
  fix bug #75222 DateInterval microseconds property always 0
2017-09-27 06:24:46 +01:00
Joe Watkins b44c1e4d3a Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix CGI m4 config message when CGI is disabled
2017-09-27 06:21:02 +01:00
Joe Watkins e1d9f33cbc Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #75248 and #75251
2017-09-27 06:16:38 +01:00
Joe Watkins e2e3c981b5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed #75220 - Segfault when calling is_callable on parent
2017-09-27 06:09:24 +01:00
Frank Denis ab13da943d Merge branch 'PHP-7.2'
* PHP-7.2:
  ext/sodium: call crypto_pwhash_argon2id() explicitly if required
  ext/sodium: avoid tautological comparisons
2017-09-26 18:10:37 +02:00
Frank Denis cb394229b8 Merge branch 'PHP-7.2'
* PHP-7.2:
  ext/sodium: signing empty messages is fine
2017-09-26 17:38:09 +02:00
Dmitry Stogov 5b849d903a Split CFG after RECV independently from ZEND_ACC_HAS_TYPE_HINTS flag. 2017-09-26 15:40:29 +03:00
Nikita Popov 49d895af86 Merge branch 'PHP-7.2' 2017-09-26 09:21:16 +02:00
Christoph M. Becker 842dba8f6f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix PHP_GD_TTSTR: command not found warning in ext/gd
2017-09-26 00:47:09 +02:00
Anatol Belski 8cc0921846 Merge branch 'PHP-7.2'
* PHP-7.2:
  Remove some old sapi/apache_hooks and sapi/apache leftovers
2017-09-25 21:59:09 +02:00
Dmitry Stogov a3fdf6f0f6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Added missed ~
2017-09-25 12:23:11 +03:00
Dmitry Stogov 40df83ec29 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed type inference
2017-09-25 12:05:24 +03:00
Peter Kokot 2664638f7e Remove empty and done TODO file for CLI SAPI
[ci skip]
2017-09-24 18:44:46 +02:00
Xinchen Hui b66357a3b3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75230 (Invalid opcode 49/1/8 using opcache)
2017-09-24 18:01:39 +08:00
Xinchen Hui ac3c586ca7 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Update NEWS
  Fixed bug #75241 (Null pointer dereference in zend_mm_alloc_small()).
  Compiler warning
2017-09-24 17:25:26 +08:00
Nikita Popov 18e297d3dd Merge branch 'PHP-7.2' 2017-09-24 08:55:28 +02:00
Dmitry Stogov dce52dd963 Merge branch 'PHP-7.2'
* PHP-7.2:
  Using "enum" types as bit-fields is not portable.
2017-09-22 13:53:36 +03:00
Frank Denis fd8ebdbadb Merge branch 'PHP-7.2'
* PHP-7.2:
  ext/sodium: avoid negations on unsigned values
2017-09-21 17:46:35 +02:00
Côme Chilliet ebd080e2b9 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Fix thread safety
2017-09-21 10:50:06 +02:00
Anatol Belski a9273a7dfe Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix thread safety
2017-09-21 10:33:35 +02:00
Côme Chilliet 75ed1ed4ab Merge branch 'pull-request/2640'
* pull-request/2640: (31 commits)
  Added support for VLV controls request and response
  Added support for SORT controls
  Added skip when control are not supported by the test ldap server
  Avoid memory leak when creating paged control value
  Fixed ifdef for VLV controls (copy/paste error)
  Added ldap_rename_ext and its test
  Indexing controls by OID when parsing them
  Avoid returning iscritical field when parsing response controls
  Fixed ldap_parse_result comment
  Added ldap_delete_ext and its test
  Added ldap_mod_*_ext methods for modification with controls
  Added ldap_add_ext and preread/postread support and tests
  Added ldap_bind_ext to pass controls and get result object
  Improved a bit error handling to avoid passing commands with incomplete controls
  Added support and test for LDAP_CONTROL_VALUESRETURNFILTER
  Removed client controls alltogether
  Fixed ldap_exop test since rebase remove client controls
  Added support for controls in ldap_modify_batch
  Added controls support to ldap_compare
  Added controls support to ldap_rename
  ...
2017-09-21 10:21:22 +02:00
Côme Chilliet 9a4f3505ff Added support for VLV controls request and response 2017-09-21 10:05:42 +02:00
Côme Chilliet 6ac7d313c8 Added support for SORT controls
On an openldap server you need the sssvlv overlay for these to work
2017-09-21 10:05:42 +02:00
Côme Chilliet 76e9de681a Added skip when control are not supported by the test ldap server 2017-09-21 10:05:42 +02:00
Côme Chilliet def30dbde2 Avoid memory leak when creating paged control value 2017-09-21 10:05:42 +02:00
Côme Chilliet d76d57b887 Fixed ifdef for VLV controls (copy/paste error) 2017-09-21 10:05:42 +02:00
Côme Chilliet c112b53a60 Added ldap_rename_ext and its test 2017-09-21 10:05:42 +02:00
Côme Chilliet 679442b1d1 Indexing controls by OID when parsing them 2017-09-21 10:05:42 +02:00
Côme Chilliet 9c7666d93a Avoid returning iscritical field when parsing response controls
As stated in RFC4511 Section 4.1.11, this field is always false in
 response controls and only makes sense in request controls
2017-09-21 10:05:42 +02:00
Côme Chilliet d8a7214d8c Fixed ldap_parse_result comment 2017-09-21 10:05:42 +02:00
Côme Chilliet ead53aba54 Added ldap_delete_ext and its test 2017-09-21 10:05:42 +02:00
Côme Chilliet 17e490a2e3 Added ldap_mod_*_ext methods for modification with controls 2017-09-21 10:05:42 +02:00
Côme Chilliet 32b51035be Added ldap_add_ext and preread/postread support and tests 2017-09-21 10:05:42 +02:00
Côme Chilliet b36342453b Added ldap_bind_ext to pass controls and get result object
ldap_bind_ext allows to pass controls and get result object
 from bind operation
Also added a test for it, pretty basic as tests cannot depend upon
 ppolicy overlay
2017-09-21 10:05:41 +02:00
Côme Chilliet 9275e05d8e Improved a bit error handling to avoid passing commands with incomplete controls 2017-09-21 10:05:41 +02:00
Côme Chilliet 3a1ba93066 Added support and test for LDAP_CONTROL_VALUESRETURNFILTER 2017-09-21 10:05:41 +02:00
Côme Chilliet b5ca0c1c78 Removed client controls alltogether
Client controls are ldap client lib specific and all the one
 I could find are ignoring client controls anyway.
2017-09-21 10:05:41 +02:00
Côme Chilliet d377edb884 Fixed ldap_exop test since rebase remove client controls 2017-09-21 10:05:41 +02:00
Côme Chilliet 81b27abac0 Added support for controls in ldap_modify_batch 2017-09-21 10:05:41 +02:00
Côme Chilliet 2b52cb74da Added controls support to ldap_compare
Note: for functions like ldap_compare, ldap_delete, ldap_modify,
 a way to get the result object back will need to be added
 so that controls returned by the server may be analyzed.
2017-09-21 10:05:41 +02:00
Côme Chilliet 82cc72a3ba Added controls support to ldap_rename 2017-09-21 10:05:41 +02:00
Côme Chilliet 437c75abcb Fixed prototypes in comments 2017-09-21 10:05:41 +02:00
Côme Chilliet 59f32408f8 Using new control syntax for MANAGEDSAIT control when deleting references 2017-09-21 10:05:41 +02:00
Côme Chilliet c8572da183 Fixed wrong argument number error tests 2017-09-21 10:05:41 +02:00
Côme Chilliet 93fbbbf5a6 Added controls support to ldap_delete 2017-09-21 10:05:40 +02:00
Côme Chilliet 5ee0fc9b56 Added support for controls in ldap_add, ldap_modify, ldap_mod_*
Also added workaround for a bug in ldap_create_assertion_control_value
Made sure failed control creation aborts the operation
And added test for assertion control on ldap_modify
2017-09-21 10:05:40 +02:00
Côme Chilliet 79cfa55cae Added a test for assertion control 2017-09-21 10:05:40 +02:00
Côme Chilliet 6d3a914641 Added a test for PROXY_AUTHZ control on ldap_exop 2017-09-21 10:05:40 +02:00
Côme Chilliet 02bd89a552 Added support for assert control value encoding 2017-09-21 10:05:40 +02:00
Côme Chilliet 5691d8bf49 Added controls support to ldap_exop 2017-09-21 10:05:40 +02:00
Côme Chilliet 8de071e0f7 Added controls support to ldap_search, ldap_list and ldap_read. 2017-09-21 10:05:40 +02:00
Côme Chilliet 5ccb31e49e Added controls support to ldap_parse_result and ldap_exop_passwd
Known controls are parsed to and from associative arrays.
Only ppolicy and paged results are implemented for now.
2017-09-21 10:05:40 +02:00
Andrea Faulds 471d2bb0ae Merge branch 'PHP-7.2' 2017-09-21 00:05:55 +01:00
Sara Golemon d6f253b42a Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Fix more typos in UPGRADING
2017-09-20 15:51:36 -04:00
Christoph M. Becker 0ef396f24e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #73629 (SplDoublyLinkedList::setIteratorMode masks intern flags)
2017-09-20 15:54:46 +02:00
Anatol Belski 3b2e8f8f70 Sync json parser defs 2017-09-20 15:08:45 +02:00
Dmitry Stogov 44e0b79ac6 Refactored array creation API. array_init() and array_init_size() are converted into macros calling zend_new_array(). They are not functions anymore and don't return any values. 2017-09-20 02:25:56 +03:00
Dmitry Stogov c1dc10aaa5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed NOP removal (empty blocks should be shifted as well)
2017-09-20 01:11:37 +03:00
Frank Denis 4433bb5069 Merge branch 'PHP-7.2'
* PHP-7.2:
  ext/sodium: throw an exception if only the prefix of a hex string is valid
2017-09-19 14:39:25 +02:00
Remi Collet c26d8ecf58 Merge branch 'PHP-7.2'
* PHP-7.2:
  rename test
2017-09-19 07:27:04 +02:00
Christoph M. Becker 778d9097fd Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Update NEWS
2017-09-18 22:53:12 +02:00
Dmitry Stogov dc5d850478 Merge branch 'PHP-7.2'
* PHP-7.2:
  Use private names for new libpcre symbols.
2017-09-18 20:01:51 +03:00
Remi Collet ce59da1997 Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  Fixed Bug #75212 php_value acts like php_admin_value
2017-09-18 18:09:40 +02:00
Christoph M. Becker 597019d71e Remove pointless preprocessor directive
Obviously, that is a refactoring relict of e93f089.
2017-09-18 17:12:02 +02:00
Christoph M. Becker 97bfc28341 [ci skip] Update UPGRADING wrt. PR 2742 2017-09-18 15:57:51 +02:00
Christoph M. Becker 73af7a847c Merge branch 'pull-request/2742'
* pull-request/2742:
  Fixed bug #66364 (BCMath bcmul ignores scale parameter)
2017-09-18 15:21:22 +02:00
Dmitry Stogov f63bfea105 Optimize POST_INC_OBJ + FREE into PRE_INC_OBJ (in the same way as simple POST_INC) 2017-09-18 14:56:55 +03:00
Dmitry Stogov 8109ebbd05 Allow removing of unused func_get_args() and func_get_num_args(). 2017-09-18 14:37:51 +03:00
Dmitry Stogov fbe913d26d Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed optimization (the bug caused endless-loop on micro_bench.php in master branch)
2017-09-18 14:11:48 +03:00
Dmitry Stogov 0fb05f1487 Property access micro-optimization. (ZEND_WRONG_PROPERTY_OFFSET and ZEND_DYNAMIC_PROPERTY_OFFSET are hidden, use one comparison instead of two on fast paths. "Negative" offsets are reserved for future optimizations). 2017-09-18 13:13:24 +03:00
Anatol Belski b81659d34f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix the version check causing the test fail
2017-09-18 12:07:12 +02:00
Dmitry Stogov 2aad680c80 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #74878 (Data race in ZTS builds)
2017-09-18 11:28:06 +03:00
Anatol Belski 131abe715c Merge branch 'PHP-7.2'
* PHP-7.2:
  Update lib_versions.txt
2017-09-18 09:38:14 +02:00
Anatol Belski c9223fd6b2 Merge branch 'PHP-7.2'
* PHP-7.2:
  Move to next binary SDK version for AppVeyor
2017-09-15 23:06:44 +02:00
Dmitry Stogov 12550b2c39 Removed IS_TYPE_COPYABLE flag. 2017-09-15 12:29:46 +03:00
Christoph M. Becker 5b61c399fc Merge branch 'pull-request/2751'
* pull-request/2751:
  reworked test
  added credits for #phptestfest
  reworked the tests, created test cases for defalte, gzip and unsupported brotli
  added basic zlib_get_coding_type() test
2017-09-14 16:40:05 +02:00
Florian Engelhardt 8158a95b53 reworked test 2017-09-14 12:41:02 +02:00
Dmitry Stogov ccf74422a9 Structures comming from "unknown sources" should be marked as escaping. 2017-09-14 12:33:52 +03:00
Dmitry Stogov ad68c6745f Avoid redundand iterations, checks and reloads 2017-09-14 11:25:03 +03:00
Dmitry Stogov 80abd81344 Fixed escape analysis for ASSIGN_DIM/ASSIGN_OBJ opcodes and improved DCE 2017-09-14 11:03:47 +03:00
Florian Engelhardt 5e55ce30df added credits for #phptestfest 2017-09-14 09:21:00 +02:00
Florian Engelhardt feb16a492b reworked the tests, created test cases for defalte, gzip and unsupported brotli 2017-09-14 09:17:45 +02:00
Dmitry Stogov a68f50f201 typo 2017-09-14 09:58:22 +03:00
Christoph M. Becker ee92aed06f [ci skip] Merge branch 'pull-request/2752'
* pull-request/2752:
  Fixed typo
2017-09-14 02:03:23 +02:00
Christoph M. Becker 7ed847bcda [ci skip] Merge branch 'pull-request/2753'
* pull-request/2753:
  Fix type-o in ext/reflection comment 💬
2017-09-14 01:27:37 +02:00
Christoph M. Becker 9848e417c3 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Fix typos in UPGRADING
2017-09-14 00:36:43 +02:00
Dmitry Stogov 0a86f159f4 Added test. Invalid usage doesn't affect escape_satte of arrays/objects and shouldn't prevent SCCP on "proper" paths. 2017-09-14 00:09:28 +03:00
Dmitry Stogov 8e2842c306 Revert "Mark incorrectly used arrays and objects as escaping"
This reverts commit 9b2d3cce19.
2017-09-14 00:08:43 +03:00
Dmitry Stogov b7d683c531 Added debug output 2017-09-13 23:59:16 +03:00
Sammy Kaye Powers c900764e64 Fix type-o in ext/reflection comment 💬 2017-09-13 14:11:57 -05:00
Markus Staab ea4e3efa14 Fixed typo 2017-09-13 18:35:37 +02:00
Dmitry Stogov 93af905071 Improved reference dependencies analysis 2017-09-13 18:18:51 +03:00
Christoph M. Becker 18adc6f0fc Merge branch 'pull-request/2745'
* pull-request/2745:
  Fixed bug #75169 (BCMath errors/warnings bypass error handling)
2017-09-13 16:21:30 +02:00
Christoph M. Becker 1738fa3ec1 Merge branch 'pull-request/2739'
* pull-request/2739:
  Fix proto and indentation
  Fix arginfo
  Return old scale value from bcscale()
2017-09-13 16:04:54 +02:00
Anatol Belski 736e9ba721 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-09-13 15:48:24 +02:00
Dmitry Stogov 9b2d3cce19 Mark incorrectly used arrays and objects as escaping 2017-09-13 16:42:48 +03:00
Florian Engelhardt 9e8eca1d3d added basic zlib_get_coding_type() test 2017-09-13 15:18:21 +02:00
Anatol Belski 756aaaf806 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75018, fixed bug #75177
2017-09-13 14:12:53 +02:00
Remi Collet 1edc5aea33 Merge branch 'PHP-7.2'
* PHP-7.2:
  fix tests for 32-bit
2017-09-13 12:20:16 +02:00
Dmitry Stogov 351130856c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed ZTS build (disable deallocation of arg_info of internal functions with type hints)
2017-09-13 10:11:57 +03:00
Dmitry Stogov 7378f27667 Merge branch 'PHP-7.2'
* PHP-7.2:
  Properly update string type flags
2017-09-13 01:46:34 +03:00
Dmitry Stogov c6c2b673de Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed memry leaks (free arg_info of internal functions with type hints)
2017-09-13 01:45:05 +03:00
Dmitry Stogov 801d0e557b Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert "Properly update string type flags"
2017-09-13 00:15:37 +03:00
Dmitry Stogov f32a52c2b7 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed test
2017-09-12 23:48:00 +03:00
Dmitry Stogov 42a1e7a227 Merge branch 'PHP-7.2'
* PHP-7.2:
  Properly update string type flags
  Update NEWS for 7.2.0RC3
  Update NEWS for PHP 7.2.0RC2
2017-09-12 23:45:15 +03:00
Dmitry Stogov 9f45aaaac2 Fixed test 2017-09-12 21:41:29 +03:00
Anatol Belski 1500f2ed42 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test failure on 32-bit
2017-09-12 18:19:58 +02:00
Anatol Belski 1f62983fe3 Merge branch 'PHP-7.2'
* PHP-7.2:
  bump versions
2017-09-12 18:11:31 +02:00
Xinchen Hui 07ed545abf Fixed memleak in SCCP 2017-09-12 21:35:30 +08:00
Remi Collet 0a98998b3c Merge branch 'PHP-7.2'
* PHP-7.2:
  drop symbol definition, and not defined anywhere
2017-09-12 13:04:07 +02:00
Anatol Belski cac7c34cb0 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-09-12 12:19:35 +02:00
Anatol Belski 7d398f06db Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75193 segfault in collator_convert_object_to_string
2017-09-12 12:14:44 +02:00
Anatol Belski 94d22ce17f Merge branch 'PHP-7.2'
* PHP-7.2:
  Move dev to 7.0.25
2017-09-12 09:03:52 +02:00
Dmitry Stogov 7921e0831b Disable eliminatin of empty basic block with multiple predecessors 2017-09-12 09:54:45 +03:00
Anatol Belski fec1bd0b41 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] Fix news entry format
  [ci skip] Fix news entry format
  [ci skip] Fix news entry format
2017-09-12 08:39:14 +02:00
Dmitry Stogov a7eda82563 Fixed incorrect empty basic block removing 2017-09-12 09:31:02 +03:00
Michael Paul 6acfc7a239 Add test for ftp functions with bogus resource 2017-09-12 07:12:35 +01:00
Joe Watkins 26d0e94808 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Fixed typo
2017-09-12 07:10:57 +01:00
Michael Paul 2133b55efd Refactor ftp_append test to clean temporary files 2017-09-12 07:10:22 +01:00
Xinchen Hui 50cb4fcf21 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  fix bug #75173 incorrect behavior of AppendIterator::append in foreach loop
2017-09-12 14:10:01 +08:00
Xinchen Hui 89dceb53e5 Fixed typo 2017-09-12 14:09:35 +08:00
Joe Watkins cb62dbe97d Merge branch 'PHP-7.2'
* PHP-7.2:
  fix bug #75173 incorrect behavior of AppendIterator::append in foreach loop
2017-09-12 07:08:43 +01:00
Joe Watkins ae5542d807 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix LDFLAGS getting overwritten (ext/curl)
2017-09-12 07:03:33 +01:00
Xinchen Hui 468b0141d4 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed arginfo for get_defined_functions
2017-09-12 13:26:37 +08:00
Xinchen Hui ff6f41c94e Narrow typeinfos down for zend_parse_paramenters_none 2017-09-12 11:25:21 +08:00
Christoph M. Becker 0d890025ec Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #46781 (BC math handles minus zero incorrectly)
2017-09-11 23:58:31 +02:00
Dmitry Stogov 86dd321c0c Fixed yet another object aliasing problem 2017-09-11 23:19:03 +03:00
Dmitry Stogov 63b93b4a74 Fixed copy semantics in escape analysis 2017-09-11 20:59:40 +03:00
Christoph M. Becker 87897efe4c [ci-skip] Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci-skip] Add NEWS entry for bug #75185
2017-09-11 19:08:27 +02:00
Christoph M. Becker 34a4c2ca20 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci-skip] Add missing UPGRADING entry for commit 0d0f7cd
2017-09-11 18:38:14 +02:00
Anatol Belski 6b4287e03b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fork test to keep up with libxsl >= 1.1.30
2017-09-11 18:21:07 +02:00
Anatol Belski a7fdf570a6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Add symbol to libxml exports
2017-09-11 17:37:38 +02:00
Anatol Belski 1119e28b5c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test compat with libxml2 2.9.5
2017-09-11 16:16:42 +02:00
Dmitry Stogov ae44cc92ec Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fix test compat with libxml2 2.9.5
2017-09-11 16:28:08 +03:00
Dmitry Stogov d5c527c9db Fixed SCCP failure, because of aliased objects.
For now, mark aliased objects as "escaping".
A more clever solution would requitre Heap Array SSA + Definitely Same and Definitely Different sets construction.
2017-09-11 16:23:17 +03:00
Anatol Belski f716c90f7f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test compat with libxml2 2.9.5
2017-09-11 14:36:14 +02:00
Dmitry Stogov 441b826e3a Fixed compilation error 2017-09-11 14:54:33 +03:00
Dmitry Stogov 9b03024347 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fix test portability
  Fix test compatibility with libxml2 2.9.5
2017-09-11 14:41:55 +03:00
Dmitry Stogov 76b2968a73 Improved JMP optimization 2017-09-11 14:40:15 +03:00
Anatol Belski 504b13c582 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test portability
2017-09-11 12:40:35 +02:00
Anatol Belski 708a58b147 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix test compatibility with libxml2 2.9.5
2017-09-11 12:18:58 +02:00
Remi Collet 8857161bf2 Use system libzip by default
Use --without-libzip in travis, as libzip version available there
is too old (0.10, while 0.11 is required, 1.3.0 is best)

The real plan is to really drop bundled libzip... delayed.
Notice: only system library have full features:
* encryption
* bzip support
2017-09-11 09:23:01 +02:00
Xinchen Hui 9b34227a5d Merge branch 'PHP-7.2'
* PHP-7.2:
  Not sure why these lines are removed :<
2017-09-11 13:36:16 +08:00
Xinchen Hui 4b12a438e7 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #75152 (signed integer overflow in parse_iv)
2017-09-11 12:48:16 +08:00
Christoph M. Becker ffb88946d3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #73730 (textdomain(null) throws in strict mode)
2017-09-10 18:51:41 +02:00
Xinchen Hui 9d5ecf6838 They should always be equal (zend_call_graph.c:#109) 2017-09-10 12:16:17 +08:00
Xinchen Hui 46f5c04d16 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Optimize truncation to zero scale in bc_raisemod()
  Fix bug75178.phpt on Windows
2017-09-10 11:49:21 +08:00
Christoph M. Becker fd73a54c30 Fixed bug #75169 (BCMath errors/warnings bypass error handling)
Instead of writing warning messages to `stderr`, we employ PHP's error
handling to raise `E_WARNING` even for the single case where
`bc_rt_error()` has been called, since that did not actually error out.
We choose to call `php_error_docref()` directly in libbcmath, since
there is no upstream, and since other PHP core functionality is already
used in our bundled libbcmath. Accordingly, we remove `rt.c` so it will
not be accidentally used in the future.

Besides adapting a few existing tests, we add new tests so that the
warnings are tested at least once. We also get rid of the Windows
specific tests, since the warning behavior is now supposed to be
platform-agnostic.
2017-09-09 23:57:22 +02:00
Christoph M. Becker d1e82b39e2 Optimize truncation to zero scale in bc_raisemod()
There's no need to use a division by one to truncate to zero scale;
instead we introduce and use `_bc_truncate()`, what is more efficient.
2017-09-09 18:41:59 +02:00
Christoph M. Becker 65b575134f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug75178.phpt on Windows
2017-09-09 17:15:04 +02:00
Xinchen Hui 1f327284a4 Fixed signature 2017-09-09 20:40:55 +08:00
Christoph M. Becker 8826a563de Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75178 (bcpowmod() misbehaves for non-integer base or modulus)
2017-09-09 13:38:10 +02:00
Xinchen Hui aee690e3cf Added gd func infos 2017-09-09 14:15:01 +08:00
Xinchen Hui c2ddc180bb Added fileinfo func infos 2017-09-09 13:26:45 +08:00
Christoph M. Becker 870ed5106d Fixed bug #66364 (BCMath bcmul ignores scale parameter)
We change `bcmul()` and `bcpow()` so that the result has exactly the
requested scale (i.e. decimal places) to make them consistent with the
other BCMath functions.  This also changes our stance regarding bug
#52748, which had been classified as documentation problem.

We do not manipulate the numbers themselves (anymore), but rather
introduce `bc_num2str_ex()` which accepts a scale parameter that
overrides the scale of the number by omitting extraneous decimals and
adding zeros, respectively.  This also allows us to get rid of
`split_bc_num()`, which fixes bug #75164 as well.
2017-09-08 18:31:04 +02:00
Christoph M. Becker 657695fe97 Remove unused member
The `n_next` member of struct `bc_struct` is unused; the only code that
would use this member has been disabled since libbcmath has been
bundled nearly 17 years ago.  Apparently, `n_next` has been designed to
build a linked list of free numbers, but it is doubtful whether that
would be an improvement over relying on the efficiency of the ZendMM,
so we remove the remaining support altogether.

The ABI break probably affects nobody, but would be okay for a new
minor version according to our release process, anyway.
2017-09-08 16:24:38 +02:00
Dmitry Stogov f5ef1a83a8 Collect all jump optimisations in a single optimization pass.
Run this pass twice (after SCCP and after DCE).
2017-09-08 14:50:28 +03:00
Xinchen Hui 4d1ddeb02a Added ctype func infos 2017-09-08 14:11:51 +08:00
Xinchen Hui 24e33350ee Added getext func infos 2017-09-08 14:03:24 +08:00
Xinchen Hui f46ec03fcd Added filter func infos 2017-09-08 13:56:50 +08:00
Xinchen Hui 3e3d7b5a28 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Do not include BC for zend_symbtable_add_new on 7.2/master
  Add BC define for users of the typoed zend_symbtable_add_new
  Fix typo in zend_symtable_add_new() API name
  Improve sodium "invalid parameters" error messages
  Fixed bug #75170
2017-09-08 12:33:09 +08:00
Xinchen Hui bf82ee3581 Add exif func infos 2017-09-08 12:31:41 +08:00
Xinchen Hui 918c1fe3ad Add bcmath func infos 2017-09-08 12:26:15 +08:00
Xinchen Hui 3713a36337 Func info for pgsql 2017-09-08 12:21:28 +08:00
Xinchen Hui bedb4ef297 Complete func infos for session and sodium 2017-09-08 11:23:19 +08:00
Sara Golemon c5dfbcf2a4 Merge branch 'PHP-7.2'
* PHP-7.2:
  Do not include BC for zend_symbtable_add_new on 7.2/master
  Add BC define for users of the typoed zend_symbtable_add_new
2017-09-07 17:37:43 -04:00
Sara Golemon ab93a3482a Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix typo in zend_symtable_add_new() API name
2017-09-07 16:30:12 -04:00
Nikita Popov 92f5c4c5c0 Merge branch 'PHP-7.2' 2017-09-07 22:19:18 +02:00
Nikita Popov e23da65550 Merge branch 'PHP-7.2' 2017-09-07 20:05:37 +02:00
Xinchen Hui 7b1d96cd52 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Removing client controls attribute from ldap_exop signature
2017-09-07 23:23:11 +08:00
Xinchen Hui 3162285b86 Complete func info for mysqli 2017-09-07 23:21:02 +08:00
Côme Chilliet 26ccaa39b3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Removing client controls attribute from ldap_exop signature
2017-09-07 16:33:42 +02:00
Dmitry Stogov ec60fee52c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed SSA reconstruction
2017-09-07 17:11:10 +03:00
Remi Collet 9ecafd9788 Revert "drop support for bundled libzip (linux)"
This reverts commit 7104203328.
2017-09-07 15:17:28 +02:00
Remi Collet 8f38993db7 Revert "try to switch to something more recent than a 5 years old distro..."
This reverts commit d6432546bf.
2017-09-07 15:17:28 +02:00
Anatol Belski 757789ef4b remove bundled libzip config for .w32 2017-09-07 15:16:12 +02:00
Remi Collet d6432546bf try to switch to something more recent than a 5 years old distro... 2017-09-07 15:13:48 +02:00
Remi Collet b2a3ba5802 add libzip-dev for travis build 2017-09-07 14:34:09 +02:00
Remi Collet 040a3230b2 UPGRADING 2017-09-07 14:28:05 +02:00
Remi Collet 7104203328 drop support for bundled libzip (linux) 2017-09-07 14:28:05 +02:00
João Paulo V Martins 141f26e9a9 Add test for rand with inverted min and max
Both are valid:
rand($min, $max);
rand($max, $min);
2017-09-07 12:07:01 +02:00
Christoph M. Becker d254a2cbca Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #54598 (bcpowmod() may return 1 if modulus is 1)
2017-09-07 00:44:47 +02:00
Christoph M. Becker f70d14e407 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #44995 (bcpowmod() fails if scale != 0)
2017-09-06 23:48:00 +02:00
Tom Van Looy 69f0dc5085 Fix if ZEND_PRE_INC/DEC_OBJ 2017-09-06 22:37:26 +01:00
Côme Chilliet 28630f7920 Fixed an error in ldap_exop introduced by last commit 2017-09-06 15:05:27 +02:00
Christoph M. Becker 1650882019 Fix proto and indentation 2017-09-06 14:53:27 +02:00
Christoph M. Becker 14b0adba5f Fix arginfo
The `scale` parameter is now optional.
2017-09-06 14:45:02 +02:00
Christoph M. Becker cf61ec64a4 Merge branch 'pull-request/778' into bcscale-return-old-value 2017-09-06 14:28:51 +02:00
Anatol Belski 8e6619445f Fix test portability 2017-09-06 13:05:56 +02:00
Anatol Belski fe78a7cb4f Fix test cleanup 2017-09-06 12:59:10 +02:00
Côme Chilliet 3fdeb27739 Improving a bit code quality in ldap_exop function
Ideas from https://github.com/sgolemon/php-src/commit/5b3f4c2fb9e529880ec74e61f9e27aa41ec7f023
The same can be done for the rest of the code,
 and synchronous/asynchronous version should be merged when implementing
 controls.
2017-09-06 12:56:51 +02:00
Joe Watkins c898349e16 fixes PR #2722, no clue how it broke ... 2017-09-06 11:13:27 +01:00
Matt Piskorz 1534ab3fc2 Add test for curl_mutli_close on non curl multi resource 2017-09-06 10:00:18 +01:00
BohwaZ ed2f6510da Add support for SQLite open flags 2017-09-06 09:56:02 +01:00
Jansen Price fafd67cb71 Add tests for sapi/cli option combinations 2017-09-06 09:54:00 +01:00
shinemotec@gmail.com 9b77615608 fixed mbstring extension compiled broken with archlinux 2017-09-06 09:50:08 +01:00
João Paulo V Martins a82aa48d66 Add tests for setrawcookie function for success scenario 2017-09-06 09:47:11 +01:00
Dmitry Stogov 36ddda17f9 Comments 2017-09-06 11:43:42 +03:00
Nikita Popov dfe030097d Merge branch 'PHP-7.2' 2017-09-05 18:14:21 +02:00
Nikita Popov 166cb444b5 Merge branch 'PHP-7.2' 2017-09-05 17:41:22 +02:00
Nikita Popov 002856cd5c Use zpp_throw() in SOAP constructors
These were probably overlooked because they use PHP4 style
constructors :/
2017-09-05 17:18:54 +02:00
Ken Guest 7340466372 Test is_soap_fault() function 2017-09-05 16:44:50 +02:00
Nikita Popov 26572b34e4 Merge branch 'PHP-7.2' 2017-09-05 16:39:41 +02:00
Nikita Popov 9d554cb85d Merge branch 'PHP-7.2'
[ci skip]
2017-09-05 16:34:09 +02:00
Nikita Popov 1ca43597df Merge branch 'PHP-7.2' 2017-09-05 16:25:06 +02:00
Dmitry Stogov 431ea10fb2 Remove unused temporary variables 2017-09-05 14:46:03 +03:00
Dmitry Stogov 7548789c60 Control transfer opcodes can't be replaced by QM_ASSIGN 2017-09-05 14:45:08 +03:00
Dmitry Stogov 0fba60ba96 Proper replacing of constant call 2017-09-05 13:38:20 +03:00
Dmitry Stogov 39459114ff Replace used constant instructions by QM_ASSIGN 2017-09-05 11:43:33 +03:00
Remi Collet c6fb8a139d Merge branch 'PHP-7.2'
* PHP-7.2:
  UPGRADING
  NEWS
  Fixed bug #75142 buildcheck.sh check for autoconf version needs to be updated for v2.64
2017-09-05 08:20:17 +02:00
Derick Rethans db6510884c Merge branch 'PHP-7.2' 2017-09-04 22:45:43 +01:00
Tom Van Looy da0b5b35c5 Remove redundant checks in ext/gd 2017-09-04 21:30:09 +02:00
Nikita Popov 80881194a1 Merge branch 'PHP-7.2' 2017-09-04 21:24:49 +02:00
Dmitry Stogov 6b8f83a54d Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed edge-case in SSA use/def chain construction and type inference.
2017-09-04 21:59:51 +03:00
Dmitry Stogov 296d844058 Fix inference (result of ++/-- can't be a reference) 2017-09-04 20:40:42 +03:00
Dmitry Stogov 781e78f210 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed tests
2017-09-04 20:12:38 +03:00
Remi Collet b662a7b691 Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  Fixed Bug #75149 redefinition of typedefs ttinfo and t1info
2017-09-04 18:38:01 +02:00
Dmitry Stogov 7650d904a0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed incorect constant conditional jump elimination
2017-09-04 19:12:08 +03:00
Dmitry Stogov 1d609a9920 Merge branch 'PHP-7.2'
* PHP-7.2:
2017-09-04 16:50:49 +03:00
Dmitry Stogov 3c377c9859 Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert "Fixed incorrect optimizaton (update of jump instructions should be also reflected in CFG update)"
2017-09-04 16:50:31 +03:00
Remi Collet 1830e3c43c Merge branch 'PHP-7.2'
* PHP-7.2:
  improve warn (bzip2 requires libzip >= 1.3.0)
2017-09-04 14:47:14 +02:00
Anatol Belski 619b493698 Merge branch 'PHP-7.2'
* PHP-7.2:
  libzip 1.3.0 supports also bz2 compression
2017-09-04 13:28:34 +02:00
Dmitry Stogov 85e0e39e32 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed incorrect optimizaton (update of jump instructions should be also reflected in CFG update)
2017-09-04 14:08:35 +03:00
Dmitry Stogov 4001a0fb9f Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed typo
  Prevent duplicate debug output
2017-09-04 13:02:21 +03:00
Anatol Belski 658d8d9760 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix command
2017-09-02 16:59:12 +02:00
Xinchen Hui 4afe5a5cb2 Fixed SCCP rewinding on partial_array|object phi 2017-09-02 21:28:33 +08:00
Xinchen Hui 7c9556db99 Fixed SCCP on PHI(partial_object#1, partial_object#2) 2017-09-02 18:40:26 +08:00
Xinchen Hui 8a7ba133c3 Fixed SCCP on PHI(contant_array, partial_array) 2017-09-02 18:16:40 +08:00
Christoph M. Becker a7358c756a Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75139 (libgd/gd_interpolation.c:1786: suspicious if ?)
2017-09-02 00:21:14 +02:00
Dmitry Stogov 59c5d81bab Added skipif.inc 2017-09-01 13:32:26 +03:00
Anatol Belski fcb6e0afe1 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75143 new method setEncryptionName() seems not to exist in ZipArchive
2017-09-01 10:53:50 +02:00
Anatol Belski 708fb44207 Merge branch 'PHP-7.2'
* PHP-7.2:
  Yet one DLL to ignore
2017-09-01 10:39:10 +02:00
Dmitry Stogov becb4d6d59 Remove dead allocations of non-escaping objects 2017-09-01 10:32:20 +03:00
Dmitry Stogov 2c61e5dc38 Objects with constructors escape 2017-09-01 10:31:43 +03:00
Anatol Belski 4cb06b9327 Merge branch 'PHP-7.2'
* PHP-7.2:
  Make for exclusion per regex
2017-08-31 23:58:19 +02:00
Anatol Belski d4268e6eb5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Extend ignore list for DLLs to not to look after
2017-08-31 20:56:25 +02:00
Anatol Belski 27644c1466 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix `nmake install` fails when there are no shared extensions
2017-08-31 20:34:41 +02:00
Anatol Belski 1a116169e7 Merge branch 'PHP-7.2'
* PHP-7.2:
  Copy dependencies of the core DLL in `nmake snap` for statically-compiled extensions when packaging builds
2017-08-31 19:49:24 +02:00
Dmitry Stogov 2f1c4717d3 Improved check to avoid removing of dead code that may throw exception. 2017-08-31 18:53:28 +03:00
Dmitry Stogov 6cc9e805cd Remove dead construction of non-escaping arrays and objects 2017-08-31 17:17:04 +03:00
Dmitry Stogov 1eb6fd8bc4 Extend SCCP to support properties of non-escaping objects 2017-08-31 13:17:46 +03:00
Dmitry Stogov 2e462e12db Fixed SSA construction for PRE_INC_OBJ and family (these opcodes change the source object) 2017-08-31 13:16:21 +03:00
Remi Collet a8835d05d5 Merge branch 'PHP-7.2'
* PHP-7.2:
  move AC_DEFINE in the right position (in bundled lib conditon)
2017-08-31 07:56:24 +02:00
Jakub Zelenka ce10a987c8 Merge branch 'PHP-7.2' 2017-08-30 17:32:45 +01:00
Dmitry Stogov d1d523ef50 Support for implicit array/object allocations 2017-08-30 17:41:45 +03:00
Dmitry Stogov 44064529a8 Detect undefined variable usage 2017-08-30 16:02:29 +03:00
Dmitry Stogov a0c76de006 Fixed tests 2017-08-30 15:54:55 +03:00
Dmitry Stogov ce3dbb53a7 Extend SCCP pass with support for elements of non-escaping arrays 2017-08-30 15:31:23 +03:00
Anatol Belski 0cdeb60757 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix symbol name
2017-08-30 01:12:02 +02:00
Kalle Sommer Nielsen d3bc8beb4f Removed support for BeOS, development for BeOS was supported 17 years ago.
This patch however does not drop support for the BeOS compatible variant, Haiku, see Github PR #2697 which is currently a WiP

I intentionally left out some fragments for BeOS in the build system for that seems to be bundles
2017-08-29 22:03:56 +02:00
Kalle Sommer Nielsen 63ea681417 Remove this old obsolete TODO file 2017-08-29 21:23:04 +02:00
Frank Denis 7268071728 Merge branch 'PHP-7.2'
* PHP-7.2:
  ext/sodium: the second parameter of sodium_hex2bin() is optional
  ext/sodium: AI_StringRef_And_String -> AI_StringRefAndString for consistency
  ext/sodium: sort functions list
2017-08-29 19:25:58 +02:00
Dmitry Stogov fac553e6a6 Fixed escaping instructions 2017-08-29 15:46:57 +03:00
Remi Collet 88710698b8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS for 7.2.0RC2
  Update NEWS for PHP 7.2.0RC1
2017-08-29 13:11:28 +02:00
Dmitry Stogov 08447ebc0f Fixed tests titels 2017-08-29 12:31:38 +03:00
Dmitry Stogov f1fd08c8f1 Added few Optimizer tests 2017-08-29 12:11:34 +03:00
Dmitry Stogov 3b8f9d933f Accurate handling of ZEND_ASSIGN_OBJ 2017-08-29 12:10:47 +03:00
Dmitry Stogov 5155bf1f90 Check for user defined classes 2017-08-29 12:09:49 +03:00
Dmitry Stogov 37adfcce8b Escpaing objects can't have destructors, so their assignment don't make side effects and may be eliminated. 2017-08-29 11:54:00 +03:00
Sara Golemon 1778169008 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix constant references in error messages in ext/sodium
2017-08-28 22:17:39 -04:00
Dmitry Stogov ebb339625d Aliased varaibles may escape 2017-08-28 16:56:47 +03:00
Dmitry Stogov fb571f2e7e Make assignment to elements of non-esaping arrays and objects removable by DCE pass. 2017-08-28 14:25:35 +03:00
Dmitry Stogov c890ee9879 Enable escape analysis 2017-08-28 14:25:07 +03:00
Dmitry Stogov 00e4974e2d Include variables with false dependencies into equi escape sets. 2017-08-28 14:19:36 +03:00
Anatol Belski 125f110d85 Merge branch 'PHP-7.2'
* PHP-7.2:
  Move to next bin SDK version for AppVeyor
2017-08-28 13:15:34 +02:00
Christoph M. Becker a06ba4b9d6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75124 (gdImageGrayScale() may produce colors)
2017-08-27 14:13:55 +02:00
Remi Collet 5f4a417537 Merge branch 'PHP-7.2'
* PHP-7.2:
  Improve pkg-config usage - use default path when run using --with-curl=/usr (for debian) - fallback to headers search when libcurl.pc not found - issue warnings for explanation
2017-08-27 07:50:31 +02:00
Christoph M. Becker bd6630ea8e Merge branch 'PHP-7.2'
* PHP-7.2:
  Update to SQLite 3.20.1
2017-08-26 12:13:55 +02:00
Michael Moravec d9d13aba58 Added method DateTime::createFromImmutable() 2017-08-25 22:20:43 +02:00
Nikita Popov 91188a8262 Merge branch 'PHP-7.2' 2017-08-25 22:12:55 +02:00
Nikita Popov fc7cfe1c0e Remove superfluous checks of register_internal_class retval 2017-08-25 22:08:59 +02:00
Nikita Popov 1b3111e4f2 Merge branch 'PHP-7.2' 2017-08-25 22:03:28 +02:00
Remi Collet ec44fdae85 Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  Switch from curl-config to pkg-config for curl extension
2017-08-25 17:02:38 +02:00
Christoph M. Becker f81732f113 Merge branch 'pull-request/2710'
* pull-request/2710:
  Test that readline respects open_basedir
2017-08-25 16:14:04 +02:00
Christoph M. Becker 32e8e16304 Merge branch 'pull-request/2707'
* pull-request/2707:
  Fix typo retuns to returns
2017-08-25 15:54:25 +02:00
Anatol Belski 0c85d155ae Merge branch 'PHP-7.2'
* PHP-7.2:
  update libs versions
2017-08-25 11:29:24 +02:00
Ricardo Melo 8fb5bac653 Test that readline respects open_basedir 2017-08-25 00:12:36 +01:00
Anatol Belski a02cbb9cbb Merge branch 'PHP-7.2'
* PHP-7.2:
  Enable PGO for Opcache
2017-08-24 23:41:40 +02:00
tbpgr ba83338cbe Fix typo retuns to returns 2017-08-25 01:30:14 +09:00
Anatol Belski b1a8dcc001 Merge branch 'PHP-7.2'
* PHP-7.2:
  Switch to non deprecated PGO options
2017-08-24 17:15:36 +02:00
Frank Denis 7c7bb5df38 Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: if it's a length, call it "length"!
2017-08-24 16:18:02 +02:00
Frank Denis 7de53336fd Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: add bindings for sodium_pad() and sodium_unpad()
2017-08-24 16:14:27 +02:00
Christoph M. Becker cae2e49752 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75111 (Memory disclosure or DoS via crafted .bmp image)
2017-08-24 14:07:50 +02:00
Frank Denis 0bdff9b891 Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: restore sodium_remove_param_values_from_backtrace() call
  sodium ext: sync sodium_crypto_kdf_derive_from_key() with the standalone ext
2017-08-24 11:01:34 +02:00
Frank Denis ab5e3a9b87 Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: Constants were renamed SODIUM_* Adjust error messages accordingly.
2017-08-24 10:51:25 +02:00
Remi Collet 60bba1ac77 Merge branch 'PHP-7.2'
* PHP-7.2:
  From documentation, only the sign of returned value is relevant
2017-08-24 10:30:22 +02:00
Kalle Sommer Nielsen ba826f7b7c Jani is not a member of the QA team anymore, and have not been for years 2017-08-24 08:59:52 +02:00
Kalle Sommer Nielsen cf1d42e001 Kill compiler warnings in ext/phar 2017-08-24 02:31:52 +02:00
Kalle Sommer Nielsen 4fbff82c10 Kill compiler warnings in ext/standard 2017-08-24 01:36:14 +02:00
Kalle Sommer Nielsen 2a965bbd00 Kill compiler warnings in ext/xml 2017-08-24 01:09:16 +02:00
Kalle Sommer Nielsen 8e47faabe6 Kill compiler warnings in ext/hash 2017-08-24 01:05:26 +02:00
Kalle Sommer Nielsen 2462d1a77c Kill a compiler warning in ext/mysqlnd 2017-08-24 01:00:33 +02:00
Kalle Sommer Nielsen 7d7be194d3 Kill compiler warnings in ext/com_dotnet 2017-08-24 00:52:48 +02:00
Kalle Sommer Nielsen 672c98a456 Kill a compiler warning 2017-08-24 00:44:29 +02:00
Fabien Potencier cbda84f87c Fixed typo in FPM error message 2017-08-23 22:16:47 +02:00
Thomas Punt d938a769b2 Use ZEND_HASH_APPLY_SHIFT macro instead of hard-coded literal 2017-08-23 22:15:14 +02:00
Sara Golemon 5a2a92f128 Consolidate Valgrind logic into a single var and class 2017-08-23 14:44:36 -04:00
Sara Golemon 121a761174 constify some vars that are never changed once set 2017-08-23 14:08:53 -04:00
Dmitry Stogov 3cb6407e86 Initial implementation of Escape Analysis (disabled yet). 2017-08-22 16:55:03 +03:00
Remi Collet 1fdfcc2bb0 Merge branch 'PHP-7.2'
* PHP-7.2:
  timelib now have a function for this, use it
2017-08-22 12:55:29 +02:00
Frank Denis 85fe49cf10 Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: If sodium_init() returns 1, this is fine.
2017-08-22 09:47:51 +02:00
Tianfang Yang f0f6ac6b50 Update NEWS 2017-08-22 01:52:48 -04:00
Tianfang Yang cd692194ca Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #74631 (PDO_PCO with PHP-FPM: OCI environment initialized before PHP-FPM sets it up)
2017-08-22 01:46:36 -04:00
Anatol Belski 1287c205a9 Correct default value in master 2017-08-21 19:38:44 +02:00
Anatol Belski 3351e3b477 Merge branch 'PHP-7.2'
* PHP-7.2:
  Correct default value
2017-08-21 19:38:17 +02:00
Xinchen Hui 191d7cc21a Merge branch 'PHP-7.2'
* PHP-7.2:
  Attempt to fix unstable test
2017-08-21 18:53:12 +08:00
Xinchen Hui 2bcc7c5647 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed type-infer
2017-08-21 16:35:35 +08:00
Andrea Faulds 80745e6914 Merge branch 'PHP-7.2' 2017-08-19 21:09:54 +01:00
Andrea Faulds 80d17cb088 Merge branch 'PHP-7.2' 2017-08-19 20:38:51 +01:00
Anatol Belski e33259f310 Use wide char API for the event log 2017-08-19 17:08:43 +02:00
Christoph M. Becker 504bf1110e Merge branch 'pull-request/2695'
* pull-request/2695:
  Replace magic values with constants
2017-08-19 16:10:46 +02:00
Anatol Belski 6f55fe05a2 [ci skip] update NEWS 2017-08-19 16:05:20 +02:00
Jelle van der Waa 8106688575 openssl: add basic openssl_get_cert_locations test
Add a simple test for openssl_get_cert_locations, verifying the returned
array structure.
2017-08-19 15:31:27 +02:00
Thomas Punt a595b0f75b Fix fast ZPP macro definition 2017-08-19 15:24:11 +02:00
Nikita Popov e1f1853dd2 Merge branch 'PHP-7.2' 2017-08-19 15:19:12 +02:00
Andreas Treichel e4b9c3744c Replace magic values with constants 2017-08-19 14:28:22 +02:00
Anatol Belski dda70e0106 Follow up on ed9c16ad5def47d1c8ae2787f53dccfac893ce5f
The event log is not line based, passing the message as is here is just
fine. Otherwise we'd create multiple event log items with partial
messages.
2017-08-19 13:51:44 +02:00
Philip Prindeville a1f3a0105d Turn php_syslog() into wrapper for syslog and split lines 2017-08-19 13:51:44 +02:00
Xinchen Hui e7c85fc3e6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed for RESOURCE too
2017-08-19 18:56:18 +08:00
Xinchen Hui 6b71a12d84 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed RC1 Hanlding
2017-08-19 18:51:34 +08:00
Xinchen Hui edc398d3eb Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed type-info for ZEND_FETCH_DIIM_UNSET
2017-08-19 18:48:31 +08:00
Anatol Belski cfdd822c1e Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-08-19 02:41:37 +02:00
Anatol Belski b17d9153c9 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix issues with phpt and EXTENSION on windows (BUG 75042)
2017-08-19 02:02:13 +02:00
Anatol Belski fb55ec36e3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix .pgd name for ts build
2017-08-19 00:32:25 +02:00
Anatol Belski b6ea3ec2a1 Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
2017-08-18 19:41:27 +02:00
Anatol Belski 73daf8de52 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix skipifs
  Fix issues with phpt and EXTENSION on windows (BUG 75042)
2017-08-18 17:40:26 +02:00
Remi Collet cc0c6b2a27 Merge branch 'PHP-7.2'
* PHP-7.2:
  NEWS
  NEWS
  NEWS
  Fixed bug #75093 OpenSSL support not detected
2017-08-18 14:53:05 +02:00
Dmitry Stogov ff90aee590 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75089 (preg_grep() is not reporting PREG_BAD_UTF8_ERROR after first input string)
2017-08-18 14:57:31 +03:00
Anatol Belski 3acfdbb27e Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix phpize exit status
2017-08-18 12:06:28 +02:00
Anatol Belski 86bd6ab72c Merge branch 'PHP-7.2'
* PHP-7.2:
  Add dump env target
2017-08-18 11:10:31 +02:00
Anatol Belski 3eaf753e4b Merge branch 'PHP-7.2'
* PHP-7.2:
  bump versions
2017-08-18 11:07:12 +02:00
Kalle Sommer Nielsen e147ef1616 Make ext/zend_test report itself as zend-test in `php -m' 2017-08-17 22:15:09 +02:00
Kalle Sommer Nielsen 0ae3b45d25 Fix test location 2017-08-17 22:11:20 +02:00
Kalle Sommer Nielsen 8bcc4eea8b We don't use these makefiles for compiling PHP extensions anymore (PHP4 era) 2017-08-17 22:10:49 +02:00
Kalle Sommer Nielsen c34ba92782 Get rid of all these old package[2].xml files, most of these had no had a release since PHP4, or any release at all in close to 10 years, some even did not have a package registered at pecl
OCI, PDO_OCI and zip are left as they are actively developed and released there
2017-08-17 22:09:29 +02:00
Kalle Sommer Nielsen 1d9b46f362 Implemented FR #74781 (Add the latest PG_DIAG_* const) 2017-08-17 21:04:41 +02:00
Dmitry Stogov e164b3835e Merge branch 'PHP-7.2'
* PHP-7.2:
  More accurate reference counting inference
2017-08-17 20:03:53 +03:00
Xinchen Hui 86f0181467 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed type-infer on ZEND_FETCH_DIM_FUNC_ARG
2017-08-17 21:59:06 +08:00
Patrick Allaert 21cd57e5f2 EXPECT instead of EXPECTF 2017-08-16 17:05:47 +02:00
Patrick Allaert b34702c774 Fixed: tests not written to pass on Windows 2017-08-16 17:05:47 +02:00
Patrick Allaert 5e83fc4e49 cli_get_process_title() may not be empty before set 2017-08-16 17:05:47 +02:00
Patrick Allaert ce09f485ca Not skipping test on Windows and test against CLI instead 2017-08-16 17:05:47 +02:00
Patrick Allaert 9f16c22ead Added: tests for cli_get_process_title / cli_set_process_title 2017-08-16 17:05:47 +02:00
Derick Rethans 4d876ae623 Merge branch 'PHP-7.2' 2017-08-16 16:00:38 +01:00
Derick Rethans 5eba966195 Merge branch 'PHP-7.2' 2017-08-16 15:29:03 +01:00
Derick Rethans 5fd6746a03 Merge branch 'PHP-7.2' 2017-08-16 15:21:23 +01:00
Derick Rethans 03d68cdf52 Merge branch 'PHP-7.2' 2017-08-16 11:15:01 +01:00
Derick Rethans 553ac66ef2 Merge branch 'PHP-7.2' 2017-08-16 09:51:43 +01:00
Dmitry Stogov dea2416c59 Merge branch 'PHP-7.2'
* PHP-7.2:
  Added few more jump threading optimisation patterns
2017-08-16 09:18:22 +03:00
Remi Collet aabafe9e40 Merge branch 'PHP-7.2'
* PHP-7.2:
  cleanup
2017-08-16 07:46:57 +02:00
Derick Rethans 869fccea24 Merge branch 'PHP-7.2' 2017-08-15 20:24:50 +01:00
Derick Rethans dff9713195 Merge branch 'PHP-7.2' 2017-08-15 15:07:31 +01:00
Dmitry Stogov 28fdc1f1c3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed possible incorrect result of type verification.
2017-08-15 14:47:17 +03:00
Dmitry Stogov 921554e6d6 Merge branch 'PHP-7.2'
* PHP-7.2:
  Made test 32/64-bit independent
2017-08-15 13:13:50 +03:00
Dmitry Stogov c395c11d4c Merge branch 'PHP-7.2'
* PHP-7.2:
  Skip 64-bit related test
  Update NEWS for 7.2.0RC1
  Update NEWS for PHP 7.2.0beta3
2017-08-15 13:02:29 +03:00
Anatol Belski 6148c57a27 Merge branch 'PHP-7.2'
* PHP-7.2:
  move dev to 7.0.24
2017-08-15 09:36:57 +02:00
Xinchen Hui 6e4197a077 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Update NEWS
  Fixed bug #75075 (unpack with X* causes infinity loop)
2017-08-15 12:35:31 +08:00
Tianfang Yang b8f20d79e1 Merge branch 'PHP-7.2' 2017-08-14 21:23:05 -04:00
Anatol Belski 3395e63d55 Merge branch 'PHP-7.2'
* PHP-7.2:
  Test cleanup improvements, files might be locked in the test process
2017-08-14 14:40:38 +02:00
Anatol Belski fd7aa61f12 Merge branch 'PHP-7.2'
* PHP-7.2:
  fix test cleanup
2017-08-14 12:57:08 +02:00
Dmitry Stogov f797e00e59 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed removing dead live ranges
2017-08-14 13:55:44 +03:00
Anatol Belski c8960a31fc Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-08-14 12:25:10 +02:00
Dmitry Stogov 2929fc8a9b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed test
2017-08-14 12:37:45 +03:00
Dmitry Stogov f2db305fa4 Merge branch 'PHP-7.2'
* PHP-7.2:
  Order live ranges according to "start" position
2017-08-14 12:21:40 +03:00
Dmitry Stogov 51fc0c5638 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed attempt to free invalid structure (result of ROPE_INIT is not a zval)
  Revert "Fixed live_range removing (bug can be triggred by JIT)"
2017-08-14 12:11:46 +03:00
Xinchen Hui e0c4c3924d Merge branch 'PHP-7.2'
* PHP-7.2:
  Revert "Fixed live_range removing (bug can be triggred by JIT)"
2017-08-14 16:59:14 +08:00
Tianfang Yang 0c1650b5fb Merge branch 'PHP-7.2' 2017-08-14 00:37:43 -04:00
Anatol Belski beb9295790 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75063
2017-08-14 00:53:33 +02:00
Christoph M. Becker 9221bd7f32 Merge branch 'pull-request/2670'
* pull-request/2670:
  Change getimagesize() and friends to report image/bmp
2017-08-13 21:22:57 +02:00
Christoph M. Becker a24854cfd3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #73793 (WDDX uses wrong decimal seperator)
2017-08-13 21:10:37 +02:00
Christoph M. Becker 1599c6ee38 Merge branch 'PHP-7.2'
* PHP-7.2:
  Skip this test if ext/session is not available
2017-08-13 18:12:37 +02:00
Nikita Popov ad25d67d73 Merge branch 'PHP-7.2' 2017-08-12 20:34:59 +02:00
Nikita Popov 8e12091600 Merge branch 'PHP-7.2' 2017-08-12 13:17:39 +02:00
Andrea Faulds 29606732af Merge branch 'PHP-7.2' 2017-08-12 01:39:27 +01:00
Xinchen Hui a7114cfba8 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Added missing config.x.in files for ext_skel
2017-08-11 22:06:46 +08:00
Xinchen Hui 282ae895b0 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed live_range removing (bug can be triggred by JIT)
2017-08-11 21:57:11 +08:00
Kalle Sommer Nielsen c5ea173a21 Added missing config.x.in files for ext_skel 2017-08-11 15:42:47 +02:00
Jakub Zelenka 9ae9533b90 Merge branch 'PHP-7.2' 2017-08-10 19:48:19 +01:00
Jakub Zelenka 9891f08786 Merge branch 'PHP-7.2' 2017-08-10 19:40:36 +01:00
Xinchen Hui cf8c9fcd72 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed type infer for FUNC_GET_ARGS
2017-08-11 00:34:25 +08:00
Xinchen Hui c8efaea1e3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWs
  Update NEWS
  Fixed bug #75049 (spl_autoload_unregister can't handle spl_autoload_functions results)
2017-08-09 11:30:13 +08:00
Anatol Belski 4804d64fdb Merge branch 'PHP-7.2'
* PHP-7.2:
  Remove mistakingly added line
2017-08-08 19:40:53 +02:00
Anatol Belski cd5365c849 Merge branch 'PHP-7.2'
* PHP-7.2:
  Sync makefile options for phpize
2017-08-08 17:59:59 +02:00
Frank Denis becd242c78 Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: Use _ietf_ vs _IETF_ consistently
  sodium ext: No need for #ifdef crypto_aead_chacha20poly1305_IETF_
  Sodium ext: Isolate a return statement for consistency
  sodium ext: The default password hashing function is not supposed to be Argon2i
  sodium ext: long -> zend_long
  sodium ext: Add missing "return" statements after zend_throw_exception()
2017-08-08 17:51:08 +02:00
Darek Slusarczyk c3601eb717 Merge branch 'PHP-7.2' 2017-08-08 16:11:00 +02:00
Andrey Hristov 8c3ec4af0f Merge branch 'PHP-7.2' 2017-08-08 14:57:28 +03:00
Xinchen Hui 5c9330bb87 Fixed compiler warning(enumeration value ‘SPL_FS_INFO’ not handled in switch) 2017-08-08 10:11:53 +08:00
Christoph M. Becker 791410ab66 Merge branch 'pull-request/2664'
* pull-request/2664:
  Fix unittest for minimal length in random string
  Add support for webp in imagecreatefromstring
2017-08-08 00:07:59 +02:00
Anatol Belski bb217f781a Merge branch 'PHP-7.2'
* PHP-7.2:
  Unify EOL
2017-08-07 17:05:51 +02:00
Anatol Belski ac1513ee4a Merge branch 'PHP-7.2'
* PHP-7.2:
  fix test target for phpize
2017-08-07 16:57:22 +02:00
Xinchen Hui f18a00b8ce Regenerate by re2c 0.16 2017-08-07 08:43:26 +08:00
Jakub Zelenka 17b39f1216 Merge branch 'PHP-7.2' 2017-08-06 17:22:03 +01:00
Xinchen Hui 513b0093c2 Refactor php_url struct to save memory dup in common cases 2017-08-06 17:48:05 +08:00
Xinchen Hui 6546c516dd Optimized ucfirst(Avoid duping string if possible) 2017-08-06 14:56:16 +08:00
Nikita Popov fea7957d08 Optimize mb_chr()
By avoiding an unnecessary copy between a string an zend_string.
2017-08-04 22:38:54 +02:00
Nikita Popov f24db7686e Optimize mb_ord()
Don't perform a full encoding conversion into UCS4-BE, instead only
perform an input conversion into a wchar device.
2017-08-04 22:22:58 +02:00
Nikita Popov 633a471ba0 Store input and output filters in mbfl encodings
For functions like mb_chr() and mb_ord() just looking up the
input/output filter for the encoding dominates the runtime. This
commit stores the input/output filter for an encoding in the
mbfl encoding structure, so it can be looked up directly, rather
than scanning through filter function lists.
2017-08-04 22:22:58 +02:00
Nikita Popov e20fbd43ba Separate mbfl filters into three categories
Input filters, output filters and special filters.
2017-08-04 22:22:58 +02:00
Nikita Popov 840b77c02e Merge branch 'PHP-7.2' 2017-08-04 22:20:11 +02:00
Côme Chilliet f3f25a8446 Merge branch 'PHP-7.2'
* PHP-7.2:
  Added controls parameters to ldap_exop so that control support can be added later
2017-08-04 18:11:52 +02:00
Adam Saponara db96b7c245 Fix #75031: Support append mode in php://temp streams
This patch introduces a distinction between write mode and append
mode in `php://temp` and `php://memory` streams, achieving parity
with C stdio.
2017-08-04 12:43:49 +01:00
Barry O Sullivan a1a949d89c Add test for curl_share_close 2017-08-04 12:41:08 +01:00
Remi Collet b1cf87a4e6 Merge branch 'PHP-7.2'
* PHP-7.2:
  win32 for pdo_sqlite
2017-08-04 13:29:02 +02:00
Remi Collet f6a48dfd9b Merge branch 'PHP-7.2'
* PHP-7.2:
  use AC_DEFINE + win32
2017-08-04 13:22:09 +02:00
Nikita Popov 4e4ec31e2e Merge branch 'PHP-7.2' 2017-08-04 13:02:44 +02:00
Nikita Popov 5caf05f6c5 Merge branch 'PHP-7.2' 2017-08-03 22:41:15 +02:00
Nikita Popov c98714f19e Merge branch 'PHP-7.2' 2017-08-03 21:57:35 +02:00
Nikita Popov 3d948d77d1 Merge branch 'PHP-7.2' 2017-08-03 21:17:26 +02:00
Christoph M. Becker 32a6e1c32e Change getimagesize() and friends to report image/bmp
Finally, an official media type for Windows BMP files has been
registered with the IANA, so we change `getimagesize.phpt()` and
related functions to report this media type instead of `image/x-ms-bmp`.
2017-08-03 17:43:07 +02:00
Anatol Belski 25b41c61d2 Merge branch 'PHP-7.2'
* PHP-7.2:
  Increase expected timing on Travis
2017-08-03 15:08:38 +02:00
Anatol Belski 3ffa7e5c31 Merge branch 'PHP-7.2'
* PHP-7.2:
  Rework automatic interactive cli activation
2017-08-03 12:22:02 +02:00
Anatol Belski ec2823fb8c Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
  update NEWS
2017-08-02 21:52:15 +02:00
Nikita Popov 60dc329949 Adjust ftp arginfos for optional mode
This was changed in 00cd671233, but
the arginfos were not adjusted.
2017-08-02 20:57:49 +02:00
Andreas Treichel 27c225a5ad Default ftp_append() mode to FTPTYPE_IMAGE
To be consistent with other ftp_*() functions in master.
2017-08-02 20:54:32 +02:00
Nikita Popov 902188e5e3 Merge branch 'PHP-7.2' 2017-08-02 20:53:32 +02:00
Nikita Popov e9b572f920 Merge branch 'PHP-7.2' 2017-08-02 18:50:31 +02:00
Nikita Popov ab9bfa25ab Merge branch 'PHP-7.2' 2017-08-02 18:18:29 +02:00
Nikita Popov 94fe629992 Merge branch 'PHP-7.2' 2017-08-02 18:11:17 +02:00
Nikita Popov 7c5abb9209 Merge branch 'PHP-7.2' 2017-08-02 17:54:14 +02:00
Anatol Belski a23e303dba Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #75002 Null Pointer Dereference in timelib_time_clone
2017-08-02 16:43:10 +02:00
Remi Collet 3dab61c8d4 Merge branch 'PHP-7.2'
* PHP-7.2:
  fix build with old system libsqlite (sqlite3_close_v2 may be missing)
2017-08-02 16:09:42 +02:00
Remi Collet f4727d447c Merge branch 'PHP-7.2'
* PHP-7.2:
  fix build with old system libsqlite (sqlite3_errstr may be missing)
2017-08-02 14:03:38 +02:00
Joe Watkins 8c28ff4287 Merge branch 'PHP-7.2'
* PHP-7.2:
  fixed #endif comments
2017-08-02 08:36:36 +01:00
Christoph M. Becker 018f033aaf Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
2017-08-02 00:11:40 +02:00
Christoph M. Becker e64f47142e Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS for 7.2.0beta3
  Update NEWS for PHP 7.2.0beta2
2017-08-02 00:05:48 +02:00
Christoph M. Becker ae5589080b Merge branch 'PHP-7.2'
* PHP-7.2:
  Update to SQLite 3.20.0
2017-08-01 18:31:43 +02:00
Nikita Popov 9e581a1d4c Merge branch 'PHP-7.2' 2017-08-01 18:10:38 +02:00
Julien Pauli d8aa438b67 Merge branch 'PHP-7.2'
* PHP-7.2:
  Updated NEWS
  Updated NEWS
  Updated NEWS
  Fix #75015. Crash in SPL destructors
2017-08-01 16:03:09 +02:00
Julien Pauli 39fec18c9c Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix use of uninitialised value in uniqid() where more_entropy=0
2017-08-01 14:58:28 +02:00
Anatol Belski 29ab1dc95a Merge branch 'PHP-7.2'
* PHP-7.2:
  Test to cover the change in ce1a0d97
2017-08-01 12:51:56 +02:00
Anatol Belski f30506c8ff Merge branch 'PHP-7.2'
* PHP-7.2:
  fix test
  fix NULL deref
2017-08-01 12:02:16 +02:00
Xinchen Hui 7f69b2b499 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
2017-07-31 11:52:33 +08:00
Xinchen Hui 3793a1be43 Merge branch 'PHP-7.2'
* PHP-7.2:
  Req #74963 (Improved error message on fetching property of non-object)
2017-07-31 11:51:51 +08:00
Xinchen Hui f12d1e2819 Merge branch 'req74963' of https://github.com/laruence/php-src
* 'req74963' of https://github.com/laruence/php-src:
  Req #74963 (Improved error message on fetching property of non-object)
2017-07-31 11:45:19 +08:00
Xinchen Hui dbd729e86b Req #74963 (Improved error message on fetching property of non-object) 2017-07-31 11:43:14 +08:00
Kalle Sommer Nielsen e6bfbb6c9d Merge branch 'PHP-7.2'
* PHP-7.2:
  Reduce EXIF test image sizes, there is still one large image left that I will look into reducing if possible (bug50845.jpg)
  Lowercase the file extension
2017-07-30 22:01:31 +02:00
Kalle Sommer Nielsen a7484beea2 Reduce EXIF test image sizes, there is still one large image left that I will look into reducing if possible (bug50845.jpg)
The changes in phpts are due to exiftool, I verified that all the images still remain relevant for testing
2017-07-30 21:49:02 +02:00
Kalle Sommer Nielsen f6ea75da12 Lowercase the file extension 2017-07-30 21:30:33 +02:00
Anatol Belski b06caa0e5f remove casts 2017-07-30 18:23:34 +02:00
Anatol Belski 64c9b5ae12 Merge branch 'PHP-7.2'
* PHP-7.2:
  remove dup of the binary file, rely on a test runtime copy instead
2017-07-30 17:53:02 +02:00
Christoph M. Becker 2868d84c52 Merge branch 'PHP-7.2'
* PHP-7.2:
  Shrink another large image
2017-07-30 16:40:25 +02:00
Frank Denis 92733dd568 Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: skip scrypt if it is not available
  sodium ext: fix tests/pwhash_argon2i description
  sodium ext: check hash length for scrypt
2017-07-30 15:50:48 +02:00
Christoph M. Becker 8b74c73744 Merge branch 'PHP-7.2'
* PHP-7.2:
  Shrink test image
2017-07-30 15:07:19 +02:00
Frank Denis fd8fe7debc Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: no need for #ifdef crypto_aead_chacha20poly1305_IETF_NPUBBYTES
  sodium ext: check that message sizes are safe, to avoid hitting abort() in libsodium
  sodium ext: use unexpand -t 4 --first-only to convert from spaces to tabs
2017-07-30 14:49:16 +02:00
Christoph M. Becker d4c5fd2794 Merge branch 'PHP-7.2'
* PHP-7.2:
  It's `--SKIPIF--`, not `--SKIP--`
2017-07-30 14:09:57 +02:00
Christoph M. Becker 3bd6075c93 Merge branch 'PHP-7.2'
* PHP-7.2:
  Skip this test if ext/gd is not available
2017-07-30 13:48:20 +02:00
Andreas Treichel 5f9be66502 Fix unittest for minimal length in random string 2017-07-30 04:13:07 +02:00
Andreas Treichel 18bbc1bc42 Merge branch 'master' into gd_imagecreatefromstring 2017-07-30 03:09:39 +02:00
Andreas Treichel 47fcd13055 Add support for webp in imagecreatefromstring 2017-07-30 02:50:33 +02:00
Joe Watkins 64b10ef3b1 Merge branch 'pull-request/2661'
* pull-request/2661:
  Fix typo
2017-07-29 18:48:40 +01:00
Frank Denis 37c011abfa Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: let crypto_pwhash() accept an optional algorithm identifier
2017-07-29 13:05:57 +02:00
Zeeshan Ahmed 348b7e0645 Fix typo 2017-07-29 14:44:01 +05:00
Anatol Belski f9c3ee9ae8 fix c89 compat 2017-07-28 22:18:51 +02:00
Anatol Belski 853e73fb8e Reduce struct size, on 64-bit by 8 bytes each
Note, the max modifiable flag value is currently 1<<5, there is still
some space. ATM it looks unlikely, but should more flags need to be
added, the types will need to be reconsidered.
2017-07-28 20:02:26 +02:00
Anatol Belski 095d763f99 remove cast 2017-07-28 15:09:38 +02:00
Anatol Belski 7b34fae703 adjust signature and remove casts 2017-07-28 15:07:09 +02:00
Anatol Belski 0d1eeeb68d move zend_ato*() to size_t and remove casts 2017-07-28 14:59:31 +02:00
Anatol Belski 44bbae99f8 remove cast 2017-07-28 14:59:31 +02:00
Nikita Popov f4a1d9c821 Fixed bug #65544 and #71298 2017-07-28 14:57:08 +02:00
Nikita Popov 25b6e68432 Merge branch 'PHP-7.2' 2017-07-28 13:03:35 +02:00
Nikita Popov 582a65b06f Implement full case mapping
Implement full case mapping according to SpecialCasing.txt and
also full case folding according to CaseFolding.txt (F). There
are a number of caveats:

* Only language-agnostic and unconditional full case mapping
  is implemented. The only language-agnostic conditional case
  mapping rule relates to Greek sigma in final position
  (Final_Sigma). Correctly handling this requires both arbitrary
  lookahead and lookbehind, which would require some larger
  changes to how the case mapping is implemented. This is a
  possible future extension.
* The only language-specific handling that is implemented is
  for Turkish dotted/undotted Is, if the ISO-8859-9 encoding
  is used. This matches the previous behavior and makes sure
  that no codepoints not supported by the encoding are
  produced. A future extension would be to also handle the
  Turkish mappings specified by SpecialCasing.txt based on
  the mbfl internal language.
* Full case folding is implemented, but case-insensitive mb_*
  operations continue to use simple case folding. The reason is
  that full case folding of the haystack string may change the
  position at which a match occurred. This would have to be
  mapped back into the position in the original string.
* mb_convert_case() exposes both the full and the simple case
  mapping / folding, where full is the default. The constants
  are:

   * MB_CASE_LOWER (used by mb_strtolower)
   * MB_CASE_UPPER (used by mb_strtolower)
   * MB_CASE_TITLE
   * MB_CASE_FOLD
   * MB_CASE_LOWER_SIMPLE
   * MB_CASE_UPPER_SIMPLE
   * MB_CASE_TITLE_SIMPLE
   * MB_CASE_FOLD_SIMPLE (used by case-insensitive operations)
2017-07-28 12:32:50 +02:00
Nikita Popov 9ac7c1e71d Use case-folding for case insensitive comparisons
Instead of using lowercasing.
2017-07-28 12:32:50 +02:00
Nikita Popov 80a0601fe5 Use MPH for case maps
Instead of performing a binary search, use a hashtable to store
the case maps. In particular a minimal perfect hash construction
is used, which does not require collision resolution (but does
use an auxiliary table for the hash perturbation).
2017-07-28 12:32:50 +02:00
Nikita Popov f56b0afe6e Avoid some unnecessary mbfl_strlen() calculations 2017-07-28 12:32:50 +02:00
Nikita Popov eacd70f762 Don't store titlecase if same as uppercase
The totitle code already has a fallback for that case.
2017-07-28 12:32:50 +02:00
Nikita Popov cedfc2f426 Drop implementation-specific character properties
No point in keeping around non-standard character properties if
we're not using them and most are not even being populated.
2017-07-28 12:32:50 +02:00
Kalle Sommer Nielsen a35e39f1f7 ODBC Solid is not supported in our build system on Windows, so remove this #ifdef 2017-07-28 10:34:38 +02:00
Kalle Sommer Nielsen 398be731e6 Removed support for ODBCRouter 2017-07-28 10:31:48 +02:00
Anatol Belski 87192f0fab Merge branch 'PHP-7.2'
* PHP-7.2:
  add missing makefile fragment for .w32
2017-07-28 07:30:23 +02:00
Anatol Belski 2269ae09e4 Merge branch 'PHP-7.2'
* PHP-7.2:
  relax test on travis
2017-07-28 00:28:27 +02:00
Anatol Belski 827284ec36 fix up porting mistakes 2017-07-27 23:38:04 +02:00
Anatol Belski 49d9b3013f Move cwd_state and path related routines to size_t
Having `int` there is no real profit in the size or speed, while unsigned
improves security and overall integration. ZPP supplied strings can
be then accepted directly and structs can be still handled with smaller
unsigned types for size reasons, which is safe. Yet some related places
are to go.

basic move tsrm_realpath_r to size_t

fix conditions and sync with affected places

touch ocurrences of php_sys_readlink usage

follow up on phar path handling

remove duplicated check

move zend_resolve_path and related pieces to size_t

touch yet resolve path related places

remove cast

missing pieces

missing piece

yet cleanups for php_sys_readlink for ssize_t

fix wrong return
2017-07-27 20:11:21 +02:00
Sara Golemon 00bed31d9f Merge branch 'PHP-7.2'
* PHP-7.2:
  Simpler fix for #74974
2017-07-27 10:05:16 -04:00
Xinchen Hui a7fe93221d Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed test
2017-07-27 12:50:47 +08:00
Xinchen Hui 452e1461c5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #74949 (null pointer dereference in _function_string)
2017-07-27 11:25:01 +08:00
Xinchen Hui db17a2b4eb Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
2017-07-27 11:24:38 +08:00
Sara Golemon d615a924b3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Bugfix #74993 Wrong reflection param into for some intl: lookup_*() methods
2017-07-26 18:56:50 -04:00
Côme Chilliet afef1fe778 Fixed ldap tests when ldap server hash out passwords 2017-07-26 17:34:18 +02:00
Anatol Belski 5b69a35c8c Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-07-26 17:32:38 +02:00
Côme Chilliet d51c4cd64f Fixed test for ldap_set_option server controls with empty array 2017-07-26 17:21:27 +02:00
Anatol Belski 5a6cc172d1 [ci skip] update NEWS 2017-07-26 14:53:21 +02:00
Anatol Belski 6aa9c1911b Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #74833, SID constant created with wrong module number
2017-07-26 13:21:48 +02:00
Joe Watkins 3707411d63 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix bug #74991 - include_path has a 4096 char (minus "__DIR__:") limit, in some PHAR cases
2017-07-26 10:48:18 +01:00
Christopher Jones d7f922ccb4 Merge branch 'PHP-7.2' 2017-07-26 15:25:16 +10:00
Xinchen Hui 5910cc071c Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Fixed bug #74980 (Narrowing occurred during type inference)
2017-07-26 12:07:46 +08:00
Kalle Sommer Nielsen 36865b3db0 Merge branch 'master' of git.php.net:/php-src 2017-07-25 22:10:53 +02:00
Kalle Sommer Nielsen 069477f2c1 Skip these enchant tests if no dicts or providers are installed 2017-07-25 22:10:34 +02:00
Kalle Sommer Nielsen 73dbca1989 Merge branch 'master' of git.php.net:/php-src 2017-07-25 21:40:27 +02:00
Anatol Belski 98fe82cc05 fix data types 2017-07-25 21:26:25 +02:00
Anatol Belski 13a2629005 size_t fixes 2017-07-25 19:03:33 +02:00
Anatol Belski 572429473d Fix datatypes and warnings
Needs more testing yet.

use size_t

add range check and fix warning

more size_t fixes
2017-07-25 19:03:33 +02:00
Nikita Popov 8ace7045e9 Handle character ranges in ucgendat generically
In particular, the previous implementation did not account for
Tangut Ideographs and CJK Ideograph extensions C through F.
2017-07-25 18:48:12 +02:00
Nikita Popov 0c0e35fedc Port ucgendat to PHP
Implemented such that the output is identical, including some
quirks that should be fixed subsequently.
2017-07-25 18:48:12 +02:00
Nikita Popov 4bd61ec7ad Fix handling of some special ranges in ucgendat
* Han Ideagraphs go up to U+9FEA.
* CJK Compatibility Ideographs are no longer specified as a special
  range in remotely recent versions of Unicode.
* Surrogate properties should be assigned to U+D800-U+DFFF, not to
  U+10000-U+1FFFF.
2017-07-25 18:48:12 +02:00
dreamsxin 072ef62f6e Add warning for change session id when session is active 2017-07-25 09:27:58 +01:00
marcosptf 6347e25c2f add new test to uncoverage SQLite3 method. 2017-07-25 09:12:34 +01:00
Andreas Treichel 00cd671233 Make transfer mode optional, set default to binary 2017-07-25 09:09:12 +01:00
Joe Watkins 5058ba6c22 Merge branch 'PHP-7.2'
* PHP-7.2:
  Remove obsolete function names from CODING_STANDARDS file
2017-07-25 07:04:42 +01:00
Joe Watkins a5c8070730 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed finding CURL on systems with multiarch support
2017-07-25 06:59:30 +01:00
Joe Watkins 2b5886a885 Merge branch 'PHP-7.2'
* PHP-7.2:
  minor loop optimizations, closes #2633
2017-07-25 06:54:29 +01:00
Joe Watkins fa6e740f77 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed #74977 - Appending AppendIterator leads to segfault
2017-07-25 06:40:56 +01:00
Joe Watkins 5718c6e660 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix ext/sodium display in phpinfo()
2017-07-25 06:35:49 +01:00
Kalle Sommer Nielsen 3964678d49 Bail on invalid configure args if this is a snapshot build (as suggested by Anatol) 2017-07-24 23:38:09 +02:00
Anatol Belski d6012671a8 Merge branch 'PHP-7.2'
* PHP-7.2:
  switch to binary sdk 2.0.9 for appveyor
2017-07-24 23:09:56 +02:00
Sara Golemon df97570eea Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix typo in PHP 7.2 changelog
2017-07-24 16:58:21 -04:00
Joe Watkins b78e6ab701 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update copyright year to 2017
2017-07-24 17:25:16 +01:00
Anatol Belski 3f3566712e Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
2017-07-24 17:47:00 +02:00
Anatol Belski c3c6ca873b Merge branch 'PHP-7.2'
* PHP-7.2:
  Add test for bug #74903
2017-07-24 17:03:52 +02:00
Anatol Belski 64b5be526c Merge branch 'PHP-7.2'
* PHP-7.2:
  Followup on 0ec147d3 for another place
  Ensure binary mode for OpenSSL I/O
2017-07-24 16:38:41 +02:00
Anatol Belski 81c8c2474e Merge branch 'PHP-7.2'
* PHP-7.2:
  Followup on 0ec147d3 for another place
2017-07-24 16:26:03 +02:00
Anatol Belski f547b3e59e Merge branch 'PHP-7.2'
* PHP-7.2:
  Ensure binary mode for OpenSSL I/O
2017-07-24 15:46:18 +02:00
Anatol Belski 209ebbd652 Merge branch 'PHP-7.2'
* PHP-7.2:
  Combine conditions for the automatic interactive console activation
2017-07-24 14:52:58 +02:00
Frank Denis 5d5a3d9ad6 Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: don't reinvent sodium_increment() and sodium_add()
2017-07-24 14:26:47 +02:00
Joe Watkins 581dca4b02 Merge branch 'PHP-7.2'
* PHP-7.2:
  openssl: Add openssl_pkcs12_export_to_file tests
2017-07-24 10:47:12 +01:00
Joe Watkins 39070c0bf8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix typo in UPGRADING for 7.2
2017-07-24 10:44:30 +01:00
Joe Watkins d6d895c722 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update PHP 5 version to 7 in header comments
2017-07-24 10:43:01 +01:00
Nikita Popov 445e13b149 Add MBFL_SUBSTR_TO_END mode to mbfl_substr
This takes the substr from the offset to the end of the string.
This avoids pointless searching for the end position and also
saves us a length calculation in the strstr family of functions.
2017-07-23 23:17:12 +02:00
Sara Golemon 0e8346bd16 Merge branch 'PHP-7.2'
* PHP-7.2:
  Add hash_hmac_algos() for filtered is_crypto methods
2017-07-23 15:17:26 -04:00
Nikita Popov bff11c382e Remove more obsolete length checks 2017-07-23 19:09:36 +02:00
Nikita Popov 3c6b2512cb Change layout of case mapping table
Previously the case mapping table was segregated by the type of
the character (upper, lower, title) and always stored the other
two variants (key, other1, other2). Now the table is segregated
by the target type (key, other). As only very few characters have
more than one target this only slightly increases the size of the
table.

The advantage of this layout is that we only need to perform a
single table lookup in the case table. Previously, depending on
the case that was hit, either one lookup in the property table,
or two lookups in the property table and one lookup in the case
table were required.

This changes the layout from libunicode in the OpenLDAP project
-- however, the last commit there was over 10 years ago, so I
don't see value in keeping this in sync.
2017-07-23 18:33:15 +02:00
Anatol Belski 78944bdfc6 remove cast 2017-07-23 17:38:28 +02:00
Anatol Belski 6809be2090 fix warnings and datatype
ident
2017-07-23 17:36:10 +02:00
Anatol Belski 7496bad2ac adjust datatype, used for position handling 2017-07-23 16:37:31 +02:00
Anatol Belski ea83b69883 Adjust datatypes and reorder which saves 8 bytes on 64-bit 2017-07-23 16:37:30 +02:00
Nikita Popov fe8384fdfd Merge branch 'PHP-7.2' 2017-07-23 16:06:25 +02:00
Nikita Popov 7077c719db Merge branch 'PHP-7.2' 2017-07-23 15:36:25 +02:00
Nikita Popov 698132d6f9 Merge branch 'PHP-7.2' 2017-07-23 12:22:09 +02:00
Nikita Popov b8ed74ce77 Merge branch 'PHP-7.2' 2017-07-23 11:55:46 +02:00
Nikita Popov 42ff1aa86c Fix overflow checks in mbfl_memory_device
Also prune out some duplicate code and use strlen() and memcpy()
instead of ad-hoc reimplementations. Remove multiplications by
sizeof(unsigned char), which wrongly imply that this can be
anything but 1.
2017-07-23 11:55:43 +02:00
Nikita Popov bd63c0f5b3 Fix bug #73528 2017-07-23 11:55:43 +02:00
Nikita Popov 80463579ce Remove confusing null checks in mb_send_mail
These are required parameters, they cannot be missing.
2017-07-23 11:55:43 +02:00
Kalle Sommer Nielsen 216d711224 Fix ext_skel's help, the arguments passed are using a space, not an equal sign for values 2017-07-23 11:28:27 +02:00
Anatol Belski e960ba6400 Merge branch 'PHP-7.2'
* PHP-7.2:
  fix skipif
2017-07-23 11:08:49 +02:00
Kalle Sommer Nielsen 753cb8ce7a Change Côme's name to Come, sorry but Visual Studio just butchers everything =( 2017-07-23 10:41:35 +02:00
Kalle Sommer Nielsen f35f45906e Redesigned ext_skel to be written entirely in PHP with no dependencies, this means it will now run on Windows without Cygwin and other nonsense.
It no longer includes a way to generate XML documentation (the PHP documentation utilities already got tools for that in svn under phpdoc/doc-base) and it no longer support function stubs.

$ php ext_skel.php --help
php ext_skel.php --ext=<name> [--experimental] [--author=<name>]
                 [--dir=<path>] [--std] [--onlyunix]
                 [--onlywindows] [--help]

  --ext=<name>          The name of the extension defined as <name>
  --experimental        Passed if this extension is experimental, this creates
                        the EXPERIMENTAL file in the root of the extension
  --author=<name>       Your name, this is used if --header is passed and
                        for the CREDITS file
  --dir=<path>          Path to the directory for where extension should be
                        created. Defaults to the directory of where this script
                        lives
  --std                 If passed, the standard header and vim rules footer used

                        in extensions that is included in the core, will be used

  --onlyunix            Only generate configure scripts for Unix
  --onlywindows         Only generate configure scripts for Windows
  --help                This help

Example usage:
$ php ext_skel.php --ext test --std --experimental
$ php ext_skel.php --ext kalle --author "Kalle Sommer Nielsen"
$ php ext_skel.php --ext phpfi --dir "/home/kalle/dev/" --onlyunix
2017-07-23 10:36:35 +02:00
Kalle Sommer Nielsen b67d6fdb66 Fix line feeds 2017-07-23 10:02:38 +02:00
Kalle Sommer Nielsen 67be32ced9 FAST_ZPP variant of zend_parse_parameters_none(), ZEND_PARSE_PARAMETERS_NONE() 2017-07-23 08:48:06 +02:00
Sara Golemon ad698adddf Merge branch 'PHP-7.2'
* PHP-7.2:
  Use compatability zend_isnan() instead of POSIX isnan()
2017-07-22 21:33:34 -04:00
Sara Golemon 211a0ddf86 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fix compile-time optimization of NAN comparisons
2017-07-22 21:23:35 -04:00
Anatol Belski 4fbd7ccba2 touch yet more places for datatypes 2017-07-23 00:47:24 +02:00
Anatol Belski 0eea41b6c4 add missing header 2017-07-23 00:23:02 +02:00
Kalle Sommer Nielsen 97a92e673e Merge branch 'master' of git.php.net:/php-src 2017-07-22 23:55:55 +02:00
Kalle Sommer Nielsen a8b6d50da4 --with-mp is only available for VS anyway, so don't make the argument available if it doesn't have any effect 2017-07-22 23:54:15 +02:00
Anatol Belski 61784bcb71 sync libmbfl allocator with the size_t changes 2017-07-22 23:53:00 +02:00
Anatol Belski e0825ec60f Mitigation for ssize_t issue in 22a5f554a8
and some more
2017-07-22 22:34:16 +02:00
Frank Denis 934cfa35f8 Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: require libsodium >= 1.0.8
  sodium ext: define crypto_aead_chacha20poly1305_ietf_KEYBYTES if needed
  sodium ext: remove redundant and obsolete macros
2017-07-22 22:09:21 +02:00
Frank Denis c908caf6df sodium ext: remove redundant and obsolete macros 2017-07-22 17:52:11 +02:00
Nikita Popov c264c24805 Merge branch 'PHP-7.2' 2017-07-22 17:24:49 +02:00
Nikita Popov 6e2d5208f4 Merge branch 'PHP-7.2' 2017-07-22 14:54:47 +02:00
Anatol Belski 886cf66f1e Merge branch 'PHP-7.2'
* PHP-7.2:
  [ci skip] update NEWS
  [ci skip] update NEWS
  [ci skip] update NEWS
2017-07-22 14:15:53 +02:00
Bob Weinand d7c8688b35 Merge branch 'PHP-7.2' 2017-07-22 11:17:05 +02:00
Anatol Belski 1513bc32d5 Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #74968 PHP crashes when calling mysqli_result::fetch_object with an abstract class
2017-07-22 10:37:11 +02:00
Nikita Popov 75969eee77 Merge branch 'PHP-7.2' 2017-07-21 23:23:55 +02:00
Kalle Sommer Nielsen 2d15d8792c Merge branch 'master' of git.php.net:/php-src 2017-07-21 22:43:44 +02:00
Kalle Sommer Nielsen 73cc299159 win32/install.txt is no more, just copy INSTALL instead 2017-07-21 22:43:25 +02:00
Anatol Belski 7a8c047c23 Merge branch 'PHP-7.2'
* PHP-7.2:
  remove casts and ensure no out of bounds access
  sodium ext: delete copypasta from sodium_crypto_kdf_derive_from_key()
2017-07-21 22:27:34 +02:00
Kalle Sommer Nielsen 07e8bdd8c2 Free the HMODULE handle after use 2017-07-21 22:24:14 +02:00
Kalle Sommer Nielsen d86a333a43 Free the HMODULE handle after use 2017-07-21 22:22:41 +02:00
Kalle Sommer Nielsen fd29202022 Free the HMODULE handle after use 2017-07-21 22:21:25 +02:00
Kalle Sommer Nielsen b613392003 Test case for bug #64739 2017-07-21 21:55:11 +02:00
Kalle Sommer Nielsen 1e9e7d4dc4 Point to the online documentation for installation of PHP in INSTALL, and remove the almost duplicate win32/install.txt, one place for all docs should be enough 2017-07-21 18:42:57 +02:00
Kalle Sommer Nielsen a2f22b1d2a Don't bail configure on Windows if a configure argument was not found, this mimics that of the Unix build system.
configure --hello-world will now yield the following in the bottom of the configure summary:

WARNING
The following arguments is invalid, and therefore ignored:
 --hello-world
2017-07-21 18:33:42 +02:00
Anatol Belski 8ecb5fbb6b Merge branch 'PHP-7.2'
* PHP-7.2:
  sodium ext: use crypto_scalarmult_BYTES for points coordinates
  sodium ext: clear the hash state after we're done hashing
  sodium ext: drop unused code /via @remicollet
2017-07-21 16:13:52 +02:00
Xinchen Hui 61dbb6cd49 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Update NEWS
  Fixed bug #74950 (nullpointer deref in simplexml_element_getDocNamespaces)
2017-07-21 18:18:09 +08:00
Anatol Belski 489b023326 Merge branch 'PHP-7.2'
* PHP-7.2:
  Move the define into the header to reduce diff for future upgrade
2017-07-21 11:17:01 +02:00
Xinchen Hui 484aafb2f3 Merge branch 'PHP-7.2'
* PHP-7.2:
  Update NEWS
  Update NEWS
  Fixed bug #74947 (Segfault in scanner on INF number)
2017-07-21 12:04:40 +08:00
Frank Denis a6b529c399 sodium ext: use crypto_scalarmult_BYTES for points coordinates
Just for consistency.
2017-07-20 22:30:58 +02:00
Dmitry Stogov 36259e2593 Merge branch 'PHP-7.2'
* PHP-7.2:
  fixed comments
  Fixed wrong edges_count re-calculation.
2017-07-20 23:29:44 +03:00
Anatol Belski 1d6bae9992 Merge branch 'PHP-7.2'
* PHP-7.2:
  increment sdk version
2017-07-20 22:08:55 +02:00
Nikita Popov a319063aae Only write single terminating byte
As far as I could determine this is sufficient. It avoids
reallocating the buffer, if it was perfectly allocated beforehand.
2017-07-20 21:41:52 +02:00
Nikita Popov 1388751f10 Use fast zpp in mb_strlen()
For short strings this function is now sufficiently fast for zpp
to be a bottleneck.
2017-07-20 21:41:52 +02:00
Nikita Popov b3c1d9d111 Directly use encodings instead of no_encoding in libmbfl
In particular strings now store encoding rather than the
no_encoding.

I've also pruned out libmbfl APIs that existed in two forms, one
using no_encoding and the other using encoding. We were not actually
using any of the former.
2017-07-20 21:41:52 +02:00
Anatol Belski 2e75f84414 Merge branch 'PHP-7.2'
* PHP-7.2:
  remove another cygwin instance in AppVeyor run
2017-07-20 20:41:02 +02:00
Frank Denis 2c4010f0fe sodium ext: clear the hash state after we're done hashing 2017-07-20 20:17:52 +02:00
Nikita Popov 22a5f554a8 Temporary fix for windows build
This API should be changed to stop using negative offsets. For now
I'm replacing ssize_t with long.
2017-07-20 18:29:44 +02:00
Nikita Popov 77cb7bd837 Free last_used_encoding_name in RSHUTDOWN
efree() cannot be used in GSHUTDOWN
2017-07-20 18:12:04 +02:00
Côme Chilliet 5e56d050e5 Added ldap_exop_refresh helper for EXOP REFRESH operation on dds overlay
ldap_exop_refresh(resource link, string dn, int ttl)
Returns FALSE on failure, newttl on success
2017-07-20 16:16:59 +02:00
Nikita Popov c098304e17 Reduce number of encoding conversions in case conversion
Don't indirect through UCS4BE, instead directly work on wchars
using a custom filter.

This replaces the pipeline
  utf8 -> wchar -> ucs4be -> wchar -case-> wchar -> ucs4be -> wchar -> utf8
with
  utf8 -> wchar -case-> -> wchar -> utf8
2017-07-20 15:33:24 +02:00
Nikita Popov 17da862b51 Optimize php_unicode_tolower/upper for ASCII 2017-07-20 13:58:40 +02:00
Nikita Popov ba383b8239 Add basic mbstring encoding cache
Store the last used encoding and compare against it. It's quite
likely that an application is going to be using the same encoding
again and again.

The actual mbfl_name2encoding() function could also be optimized
to use a hash lookup rather than a linear scan, but we don't have
a hashtable implmentation in libmbfl...
2017-07-20 13:58:40 +02:00
Nikita Popov 264387e31e Add php_mb_get_no_encoding() helper function 2017-07-20 13:58:40 +02:00
Nikita Popov adaea77593 Switch libmbfl to use size_t
Switch mbfl_string and related structures to use size_t lengths.

Quite likely that I broke some things along the way...
2017-07-20 13:58:40 +02:00
Nikita Popov 79c26d597f Optimize php_unicode_is_lower/upper for ASCII 2017-07-20 13:58:40 +02:00
Côme Chilliet a3b42ea96b Using LDAP_CONTROL_MANAGEDSAIT constant in ldap tests instead of string oid 2017-07-20 12:37:44 +02:00
Joe Watkins 4fa70b0beb Merge branch 'PHP-7.2'
* PHP-7.2:
  Fixed bug #74941 - Session fails to start after having headers sent
2017-07-20 07:54:38 +01:00
Nikita Popov 9c73be898d Directly accept encoding in php_unicode_convert_case()
As a side-effect mb_strtolower() and mb_strtoupper() now correctly
handle a NULL encoding parameter by using the internal encoding.
This is what caused the two test changes.
2017-07-19 23:59:42 +02:00
Nikita Popov 4128746b94 Add php_mb_get_encoding() convenience function 2017-07-19 23:59:42 +02:00
Nikita Popov 4cf22cbb2d Optimize php_unicode_is_prop()
Do not try to extract the properties from a bitmask. Instead make
the function variadic and pass all properties individually.

Also add a php_unicode_is_prop1() function to check only a single
property.
2017-07-19 23:59:42 +02:00
Nikita Popov dead4f0b1b Avoid unnecessary encoding lookups in mbstring
Extract part of php_mb_convert_encoding that does the actual work
and use it whenever we already know the encoding.
2017-07-19 23:59:42 +02:00
Anatol Belski a34e597ea8 Merge branch 'PHP-7.2'
* PHP-7.2:
  fix dir separator in test
2017-07-19 22:42:34 +02:00
Sara Golemon 60e62b46fa Merge branch 'PHP-7.2'
* PHP-7.2:
  Do not allow using traits/interfaces/abstract classes as stream wrappers
2017-07-19 14:01:56 -04:00
Nikita Popov fd26c5dabc Merge branch 'PHP-7.2' 2017-07-19 19:55:28 +02:00
Nikita Popov 8c1dc840b5 Remove version checks for MySQL < 5.0 2017-07-19 19:34:14 +02:00
Lior Kaplan 296438bfb9 Merge branch 'PHP-7.1'
* PHP-7.1:
  Add oci8_failover.c to config.w32, follow up for commit 1b797f7a
2017-07-19 17:28:12 +03:00
Dmitry Stogov 235d523ebd Merge branch 'PHP-7.2'
* PHP-7.2:
  Keep resource of enclosing stream, because it may be referenced from other place(s). This fixes valgrind warnings on Zend/tests/type_declarations/scalar_basic.phpt
2017-07-19 17:18:41 +03:00
Dmitry Stogov 6e0bdf201f Merge branch 'PHP-7.2'
* PHP-7.2:
  Separate the fast-patch
  Convert CONCAT into FAST_CONCAT for non-object operands
2017-07-19 15:43:29 +03:00
Dmitry Stogov 495ae99f33 Merge branch 'PHP-7.2'
* PHP-7.2:
  Reset globals on startup or restart
2017-07-19 15:36:58 +03:00
Dmitry Stogov 518de1e0b8 Merge branch 'PHP-7.2'
* PHP-7.2:
  Remove dead live ranges and FREE instructions
  Remove live ranges
2017-07-19 13:08:22 +03:00
Kalle Sommer Nielsen a398df3e36 Removed Bird(broken)step support from ODBC 2017-07-19 10:19:32 +02:00
Kalle Sommer Nielsen bfdd22a3de Remove old references to SAPIs and extensions no longer in the core 2017-07-19 09:09:24 +02:00
Nikita Popov 21d5636da8 Merge branch 'PHP-7.2' 2017-07-19 01:06:01 +02:00
Sara Golemon 3a8fb76573 Add notes for cutting release branches 2017-07-18 18:27:09 -04:00
Nikita Popov 39337a6d80 Merge branch 'PHP-7.2' 2017-07-18 22:25:50 +02:00
Nikita Popov f2c623d2b3 Merge branch 'PHP-7.2' 2017-07-18 22:16:38 +02:00
Nikita Popov 95297cae39 Merge branch 'PHP-7.2' 2017-07-18 21:45:46 +02:00
Nikita Popov 15dda5a357 Merge branch 'PHP-7.2' 2017-07-18 21:22:12 +02:00
Dmitry Stogov f2d4205cfa Merge branch 'PHP-7.2'
* PHP-7.2:
  Remove dead JMP/JMPZ/JMPNZ/JMPZNZ (DCE pass can't remove them)
  Constant evaluation of few more constant functions
  Disabled compile-time constant DOUBLE to STRING evaluation (its result depends on run-time 'precision' setting)
  Update NEWS for 7.2.0beta2
  Update NEWS for PHP 7.2.0beta1
2017-07-18 20:45:21 +03:00
Sebastian Bergmann 64a4fa0f07 Leftover from 5230541ef5 2017-07-18 18:14:41 +02:00
Frank Denis 250102071f sodium ext: drop unused code
/via @remicollet
2017-07-18 16:53:45 +02:00
Sara Golemon 5230541ef5 Prepare for PHP 7.3 2017-07-18 10:45:47 -04:00
Chris Wright 1e3435b289 Return old scale value from bcscale()
Fix for #67855
2014-08-18 13:56:02 +01:00
6744 changed files with 349078 additions and 382897 deletions

No files matched your search

+4 -2
View File
@@ -16,7 +16,7 @@ environment:
PHP_BUILD_CACHE_BASE_DIR: c:\build-cache
PHP_BUILD_OBJ_DIR: c:\obj
PHP_BUILD_CACHE_SDK_DIR: c:\build-cache\sdk
PHP_BUILD_SDK_BRANCH: php-sdk-2.1.9beta1
PHP_BUILD_SDK_BRANCH: php-sdk-2.2.0beta1
PHP_BUILD_CRT: vc15
# ext and env setup for tests
#MYSQL_TEST_PASSWD: Password12!
@@ -32,11 +32,13 @@ environment:
OPCACHE: 0
- THREAD_SAFE: 1
OPCACHE: 1
INTRINSICS: AVX
services:
# the setup scripts have to be touched, once some other db version is used
- mysql
- postgresql96
- postgresql101
- mssql2017
platform:
- x64
+1 -18
View File
@@ -1,28 +1,11 @@
ext/mysqlnd/mysqlnd.h ident
ext/simplexml/simplexml.c ident
ext/iconv/php_iconv.h ident
ext/posix/posix.c ident
ext/recode/recode.c ident
ext/skeleton/create_stubs ident
ext/ext_skel.php ident
ext/phar/phar/pharcommand.inc ident
ext/phar/phar.c ident
ext/sysvmsg/sysvmsg.c ident
ext/enchant/enchant.c ident
ext/reflection/php_reflection.c ident
ext/oci8/oci8.c ident
ext/dba/libinifile/inifile.c ident
ext/dba/libflatfile/flatfile.c ident
ext/dba/libcdb/cdb_make.c ident
ext/dba/libcdb/cdb.c ident
ext/filter/filter.c ident
README.input_filter ident
run-tests.php ident
Zend/RFCs/002.txt ident
Zend/RFCs/003.txt ident
ext/exif/exif.c ident
ext/ldap/ldap.c ident
ext/pdo_pgsql/pdo_pgsql.c ident
ext/tidy/tidy.c ident
NEWS merge=NEWS
UPGRADING merge=NEWS
UPGRADING.INTERNALS merge=NEWS
+62 -85
View File
@@ -1,4 +1,4 @@
# General Ignores
# General ignores
*~
.#*
*.
@@ -73,7 +73,6 @@ missing
mkinstalldirs
modules
php
php-*.tar.gz
php7.spec
php_lcov.info
php_test_results_*.txt
@@ -83,97 +82,17 @@ shlibtool
stamp-h
test.php3
tmp-php.ini
want_dependencies
stamp-h.in
scan_makefile_in.awk
TSRM/tsrm_config.h
Zend/zend_config.h
Zend/zend_dtrace_gen.h
Zend/zend_dtrace_gen.hbak
Zend/zend_ini_parser.c
Zend/zend_ini_parser.h
Zend/zend_ini_parser.output
Zend/zend_language_parser.c
Zend/zend_language_parser.h
Zend/zend_language_parser.output
ext/date/lib/timelib_config.h
ext/iconv/php_iconv_aliased_libiconv.h
ext/phar/phar.php
main/php_config.h
main/php_config.h.in
# Extension specifc ignores
ext/*/configure.in
ext/*/configure.ac
ext/*/ltmain.sh
ext/*/libs.mk
ext/*/build
ext/*/scan_makefile_in.awk
ext/*/Makefile.global
ext/*/acinclude.m4
ext/*/config.sub
# Extension specific
ext/iconv/scan_makefile_in.awk
ext/iconv/php_have_bsd_iconv.h
ext/iconv/php_have_ibm_iconv.h
ext/iconv/php_have_libiconv.h
ext/iconv/php_php_iconv_h_path.h
ext/iconv/php_have_glibc_iconv.h
ext/iconv/php_php_iconv_impl.h
ext/iconv/php_have_iconv.h
ext/iconv/php_iconv_supports_errno.h
ext/iconv/php_iconv_broken_ignore.h
ext/mbstring/libmbfl/Makefile.in
ext/mbstring/libmbfl/autoscan.log
ext/mbstring/libmbfl/config.sub
ext/mbstring/libmbfl/depcomp
ext/mbstring/libmbfl/ltmain.sh
ext/mbstring/libmbfl/stamp-h1
ext/mbstring/libmbfl/*.dll
ext/mbstring/libmbfl/*.lib
ext/mbstring/libmbfl/*.RES
ext/mbstring/libmbfl/*.res
ext/mbstring/libmbfl/*.obj
ext/mbstring/libmbfl/*.tds
ext/mbstring/libmbfl/filters/Makefile.in
ext/mbstring/libmbfl/mbfl/Makefile.in
ext/mbstring/libmbfl/mbfl/EastAsianWidth.txt
ext/mbstring/libmbfl/nls/Makefile.in
ext/mssql/#*#
ext/mssql/Makefile.global
ext/mssql/acinclude.m4
ext/mssql/config.sub
ext/mssql/configure.in
ext/mssql/configure.ac
ext/mssql/ltmain.sh
ext/mysql/weztest.sqlite
ext/oci8/tests/*.vglog
ext/pdo/conftest*
ext/pdo_firebird/conftest*
ext/pdo_mysql/conftest*
ext/pdo_oci/conftest*
ext/pdo_odbc/tests/*.mdb
ext/pdo_pgsql/conftest*
ext/pdo_sqlite/conftest*
ext/pdo_sqlite/sqlite3.h
ext/phar/phar.phar
ext/phar/phar.1
ext/phar/phar.phar.1
ext/reflection/xml
ext/reflection/html
ext/reflection/spl.chm
ext/simplexml/examples/security.new.xml
ext/spl/examples/.htaccess
ext/spl/examples/*.phps
ext/sqlite3/tests/phpsql*
main/build-defs.h
main/internal_functions_cli.c
main/config.w32.h
main/stamp-h1
main/streams/build-defs.h
main/streams/stamp-h1
#pear/install-pear-nozlib.phar
pear/install-pear-nozlib.phar
pear/phpize
pear/run-tests
pear/php-config
@@ -187,19 +106,76 @@ sapi/fpm/php-fpm.1
sapi/fpm/init.d.php-fpm
sapi/fpm/php-fpm.conf
sapi/fpm/fpm/php-cgi
sapi/fpm/php-fpm.8
sapi/fpm/php-fpm.service
sapi/fpm/status.html
sapi/fpm/www.conf
sapi/phpdbg/phpdbg_parser.c
sapi/phpdbg/phpdbg_parser.h
sapi/phpdbg/phpdbg
sapi/phpdbg/phpdbg.1
sapi/phpdbg/build
sapi/phpdbg/*.output
scripts/php-config
scripts/phpize
scripts/man1/*.1
TSRM/tsrm_config.h
win32/*.suo
win32/*.aps
win32/*.positions
win32/ext
win32/phpts.def
win32/wsyslog.h
Zend/zend_config.h
Zend/zend_dtrace_gen.h
Zend/zend_dtrace_gen.hbak
Zend/zend_ini_parser.c
Zend/zend_ini_parser.h
Zend/zend_ini_parser.output
Zend/zend_language_parser.c
Zend/zend_language_parser.h
Zend/zend_language_parser.output
# Extension specific ignores
ext/*/configure.ac
ext/*/ltmain.sh
ext/*/libs.mk
ext/*/build
ext/*/scan_makefile_in.awk
ext/*/Makefile.global
ext/*/acinclude.m4
ext/*/config.sub
ext/date/lib/timelib_config.h
ext/iconv/php_have_bsd_iconv.h
ext/iconv/php_have_ibm_iconv.h
ext/iconv/php_have_libiconv.h
ext/iconv/php_php_iconv_h_path.h
ext/iconv/php_have_glibc_iconv.h
ext/iconv/php_php_iconv_impl.h
ext/iconv/php_have_iconv.h
ext/iconv/php_iconv_supports_errno.h
ext/iconv/php_iconv_broken_ignore.h
ext/iconv/php_iconv_aliased_libiconv.h
ext/mbstring/oniguruma/oniguruma.h
ext/oci8/tests/*.vglog
ext/pdo/conftest*
ext/pdo_firebird/conftest*
ext/pdo_mysql/conftest*
ext/pdo_oci/conftest*
ext/pdo_odbc/tests/*.mdb
ext/pdo_pgsql/conftest*
ext/pdo_sqlite/conftest*
ext/pdo_sqlite/sqlite3.h
ext/phar/phar.phar
ext/phar/phar.1
ext/phar/phar.phar.1
ext/phar/phar.php
ext/reflection/xml
ext/reflection/html
ext/reflection/spl.chm
ext/spl/examples/.htaccess
ext/spl/examples/*.phps
ext/sqlite3/tests/phpsql*
# ------------------------------------------------------------------------------ Windows
# Generated by `/buildconf.bat`
@@ -215,7 +191,7 @@ win32/wsyslog.h
/x64/
# ------------------------------------------------------------------------------ Tests
# Generated by `/run-tests.php` upon failure.
# Generated by `/run-tests.php` upon failure
**/tests/**/*.diff
**/tests/**/*.out*
**/tests/**/*.php
@@ -228,6 +204,7 @@ win32/wsyslog.h
**/tests/**/*.txt
**/tests/**/*.tmp
# special cases to invert previous ignore rules
# Special cases to invert previous ignore rules
!ext/fileinfo/libmagic.patch
!ext/mbstring/oniguruma.patch
!ext/pcre/pcre2lib/config.h
+1
View File
@@ -20,6 +20,7 @@ addons:
- libsasl2-dev
- libxpm-dev
- libt1-dev
- libzip-dev
notifications:
email:
+33 -13
View File
@@ -4,10 +4,9 @@
This file lists several standards that any programmer adding or changing
code in PHP should follow. Since this file was added at a very late
stage of the development of PHP v3.0, the code base does not (yet) fully
follow it, but it's going in that general direction. Since we are now
well into version 5 releases, many sections have been recoded to use
these rules.
stage of the development of PHP v3.0, the code base does not fully
follow it, but new features are going in that general direction. Many
sections have been recoded to use these rules.
Code Implementation
-------------------
@@ -151,19 +150,39 @@ User Functions/Methods Naming Conventions
'buildsomewidget'
'getI()'
7. Classes should be given descriptive names. Avoid using abbreviations where
7. Class names should be descriptive nouns in PascalCase and as short as
possible. Each word in the class name should start with a capital letter,
without underscore delimiters (CamelCaps starting with a capital letter).
The class name should be prefixed with the name of the 'parent set' (e.g.
the name of the extension)::
without underscore delimiters. The class name should be prefixed with the
name of the "parent set" (e.g. the name of the extension) if no namespaces
are used. Abbreviations and acronyms as well as initialisms should be
avoided wherever possible, unless they are much more widely used than the
long form (e.g. HTTP or URL). Abbreviations start with a capital letter
followed by lowercase letters, whereas acronyms and initialisms are written
according to their standard notation. Usage of acronyms and initialisms is
not allowed if they are not widely adopted and recognized as such.
Good:
'Curl'
'FooBar'
'CurlResponse'
'HTTPStatusCode'
'URL'
'BTreeMap' (B-tree Map)
'Id' (Identifier)
'ID' (Identity Document)
'Char' (Character)
'Intl' (Internationalization)
'Radar' (Radio Detecting and Ranging)
Bad:
'foobar'
'foo_bar'
'curl'
'curl_response'
'HttpStatusCode'
'Url'
'BtreeMap'
'ID' (Identifier)
'CHAR'
'INTL'
'RADAR' (Radio Detecting and Ranging)
Internal Function Naming Conventions
----------------------
@@ -298,5 +317,6 @@ highlight_file and show_source), will be separately documented. The
proto should still be included, describing which function is aliased.
Backwards compatible functions and names should be maintained as long
as the code can be reasonably be kept as part of the codebase. See
/phpdoc/README for more information on documentation.
as the code can be reasonably be kept as part of the codebase. See the
README in the PHP documentation repository for more information on
documentation.
+2 -2
View File
@@ -14,8 +14,8 @@ implement RFCs. Please be sure to include tests as appropriate!
If you are fixing a bug, then please submit your PR against the lowest actively
supported branch of PHP that the bug affects (only green branches on
[the supported version page](http://php.net/supported-versions.php) are supported).
For example, at the time of writing in mid-2017, the lowest supported version is
PHP 7.0, which corresponds to the `PHP-7.0` branch in Git. Please also make sure you
For example, at the time of writing in early-2018, the lowest supported version is
PHP 7.1, which corresponds to the `PHP-7.1` branch in Git. Please also make sure you
add a link to the PR in the bug on [the bug tracker](https://bugs.php.net/).
Pull requests implementing RFCs should be submitted against `master`.
+2 -1
View File
@@ -1,2 +1,3 @@
For the list of people who've put work into PHP, please see
http://www.php.net/credits.php
https://www.php.net/credits.php
+109 -63
View File
@@ -3,7 +3,6 @@
Maintenance legend
------------------
Supported: Someone is actually paid to look after this.
Maintained: Someone actually looks after it.
Odd Fixes: It has a maintainer but they don't have time to do
much other than throw the odd patch in. See below.
@@ -68,59 +67,71 @@ STATUS: 5.6
-------------------------------------------------------------------------------
EXTENSION: dba
PRIMARY MAINTAINER: Marcus Börger <helly@php.net>,Christopher Jones <sixd@php.net>, Pierre-Alain Joye <pajoye@php.net>
PRIMARY MAINTAINER: Marcus Börger <helly@php.net> (2002 - 2007)
Christopher Jones <sixd@php.net> (2008 - 2013)
Pierre-Alain Joye <pajoye@php.net> (2011 - 2011)
MAINTENANCE: Maintained
STATUS: Working
COMMENT: DBM abstraction for db2, db3, db4, dbm, ndbm, gdbm, ini
-------------------------------------------------------------------------------
EXTENSION: interbase
PRIMARY MAINTAINER: Ard Biesheuvel <ard@ard.nu>
PRIMARY MAINTAINER: Ard Biesheuvel <ard@ard.nu> (2003 - 2005)
MAINTENANCE: Odd fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mysqli
PRIMARY MAINTAINER: Georg Richter <georg@php.net>, Andrey Hristov <andrey@php.net>, Johannes Schlüter <johannes@php.net>, Ulf Wendel <uw@php.net>
PRIMARY MAINTAINER: Georg Richter <georg@php.net> (2003 - 2006)
Andrey Hristov <andrey@php.net> (2003 - 2016)
Johannes Schlüter <johannes@php.net> (2008 - 2014)
Ulf Wendel <uw@php.net> (2007 - 2013)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: mysqlnd
PRIMARY MAINTAINER: Andrey Hristov <andrey@php.net>, Johannes Schlüter <johannes@php.net>, Ulf Wendel <uw@php.net>
PRIMARY MAINTAINER: Andrey Hristov <andrey@php.net> (2007 - 2017)
Johannes Schlüter <johannes@php.net> (2008 - 2018)
Ulf Wendel <uw@php.net> (2009 - 2011)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
-------------------------------------------------------------------------------
EXTENSION: oci8
PRIMARY MAINTAINER: Christopher Jones <sixd@php.net>, Antony Dovgal <tony2001@php.net>
PRIMARY MAINTAINER: Christopher Jones <sixd@php.net> (2007 - 2017)
Antony Dovgal <tony2001@php.net> (2003 - 2009)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: odbc
PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net>
PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net> (2000 - 2004)
MAINTENANCE: Maintained
STATUS: Working
COMMENT: Working
-------------------------------------------------------------------------------
EXTENSION: pdo
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>, Wez Furlong <wez@php.net>
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net> (2004 - 2011)
Wez Furlong <wez@php.net> (2004 - 2006)
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_dblib
PRIMARY MAINTAINER: Adam Baratz <adambaratz@php.net>
PRIMARY MAINTAINER: Adam Baratz <adambaratz@php.net> (2016 - 2017)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_firebird
PRIMARY MAINTAINER: Lars Westermann <lwe@php.net>
PRIMARY MAINTAINER: Lars Westermann <lwe@php.net> (2007 - 2007)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_mysql
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>, Johannes Schlüter <johannes@php.net>, Andrey Hristov <andrey@php.net>, Ulf Wendel <uw@php.net>
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net> (2004 - 2010)
Johannes Schlüter <johannes@php.net> (2008 - 2014)
Andrey Hristov <andrey@php.net> (2005 - 2015)
Ulf Wendel <uw@php.net> (2008 - 2012)
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
@@ -132,31 +143,32 @@ STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_oci
PRIMARY MAINTAINER: Christopher Jones <sixd@php.net>
PRIMARY MAINTAINER: Christopher Jones <sixd@php.net> (2007 - 2017)
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_pgsql
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net> (2004 - 2011)
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_sqlite
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net> (2005 - 2011)
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pgsql
PRIMARY MAINTAINER: Marcus Börger <helly@php.net>, Yasuo Ohgaki <yohgaki@php.net>
PRIMARY MAINTAINER: Marcus Börger <helly@php.net> (2002 - 2007)
Yasuo Ohgaki <yohgaki@php.net> (2001 - 2015)
MAINTENANCE: Maintained
STATUS: Working
COMMENT: Use PostgreSQL 7.0.x or later. PostgreSQL 6.5.3 or less have fatal bug.
-------------------------------------------------------------------------------
EXTENSION: sqlite3
PRIMARY MAINTAINER: Scott MacVicar <scottmac@php.net>
PRIMARY MAINTAINER: Scott MacVicar <scottmac@php.net> (2008 - 2011)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
@@ -168,34 +180,38 @@ COMMENT: Integrates SQLite 3 embeddable SQL database engine.
-------------------------------------------------------------------------------
EXTENSION: dom
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>, Marcus Börger <helly@php.net>
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net> (2003 - 2011)
Rob Richards <rrichards@php.net> (2003 - 2012)
Marcus Börger <helly@php.net> (2003 - 2006)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: simplexml
PRIMARY MAINTAINER: Marcus Börger <helly@php.net>
PRIMARY MAINTAINER: Marcus Börger <helly@php.net> (2003 - 2008)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: soap
PRIMARY MAINTAINER: Dmitry Stogov <dmitry@zend.com>
PRIMARY MAINTAINER: Dmitry Stogov <dmitry@php.net> (2004 - 2018)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: wddx
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net> (1999 - 2003)
MAINTENANCE: Orphaned
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xml
PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>, Rob Richards <rrichards@php.net>
PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net> (1999 - 2002)
Rob Richards <rrichards@php.net> (2003 - 2013)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: libxml
PRIMARY MAINTAINER: Rob Richards <rrichards@php.net>, Christian Stocker <chregu@php.net>
PRIMARY MAINTAINER: Rob Richards <rrichards@php.net> (2003 - 2009)
Christian Stocker <chregu@php.net> (2004 - 2011)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
@@ -205,17 +221,19 @@ MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xmlrpc
PRIMARY MAINTAINER: Dan Libby
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Orphaned
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: xmlwriter
PRIMARY MAINTAINER: Rob Richards <rrichards@php.net>, Pierre-Alain Joye <pajoye@php.net>
PRIMARY MAINTAINER: Rob Richards <rrichards@php.net> (2004 - 2010)
Christian Stocker <chregu@php.net> (2004 - 2004)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xsl
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net> (2003 - 2011)
Rob Richards <rrichards@php.net> (2003 - 2010)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0
@@ -226,39 +244,41 @@ SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: bcmath
MAINTENANCE: Andi Gutmans <andi@zend.com>
MAINTENANCE: Andi Gutmans <andi@php.net> (2000 - 2004)
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: bz2
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net> (2004 - 2004)
MAINTENANCE: Odd Fixes
STATUS: Working
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: calendar
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net> (2000 - 2004)
MAINTENANCE: Odd Fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: com_dotnet
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
PRIMARY MAINTAINER: Wez Furlong <wez@php.net> (2003 - 2005)
MAINTENANCE: Maintained
STATUS: Windows
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: ctype
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net> (2000 - 2004)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: curl
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>, Ilia Alshanetsky <iliaa@php.net>, Pierrick Charron <pierrick@php.net>
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net> (2000 - 2004)
Ilia Alshanetsky <iliaa@php.net> (2002 - 2011)
Pierrick Charron <pierrick@php.net> (2010 - 2016)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: date
PRIMARY MAINTAINER: Derick Rethans <derick@php.net>
PRIMARY MAINTAINER: Derick Rethans <derick@php.net> (2005 - 2018)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
@@ -269,19 +289,22 @@ STATUS: Working
SINCE: 5.3
-------------------------------------------------------------------------------
EXTENSION: exif
PRIMARY MAINTAINER: Kalle Sommer Nielsen <kalle@php.net>
PRIMARY MAINTAINER: Kalle Sommer Nielsen <kalle@php.net> (2010 - 2018)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.2
-------------------------------------------------------------------------------
EXTENSION: fileinfo
PRIMARY MAINTAINER: Derick Rethans <derick@php.net>
PRIMARY MAINTAINER: Derick Rethans <derick@php.net> (2004 - 2008)
Anatol Belski <ab@php.net> (2012 - 2018)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
-------------------------------------------------------------------------------
EXTENSION: filter
PRIMARY MAINTAINER: Derick Rethans <derick@php.net>, Pierre-Alain Joye <pajoye@php.net>, Ilia Alshanetsky <iliaa@php.net>
PRIMARY MAINTAINER: Derick Rethans <derick@php.net> (2006 - 2006)
Pierre-Alain Joye <pajoye@php.net> (2006 - 2011)
Ilia Alshanetsky <iliaa@php.net> (2006 - 2011)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.2
@@ -292,7 +315,8 @@ MAINTENANCE: Odd fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gd
PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net>, Christoph M. Becker <cmb@php.net>
PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net> (2002 - 2016)
Christoph M. Becker <cmb@php.net> (2015 - 2018)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
@@ -301,84 +325,99 @@ MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gmp
PRIMARY MAINTAINER: Stanislav Malyshev <stas@php.net>, Antony Dovgal <tony2001@php.net>
PRIMARY MAINTAINER: Stanislav Malyshev <stas@php.net> (2000 - 2018)
Antony Dovgal <tony2001@php.net> (2005 - 2010)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.4
-------------------------------------------------------------------------------
EXTENSION: hash
PRIMARY MAINTAINER: Sara Golemon <pollita@php.net>, Mike Wallner <mike@php.net>, Anatol Belski <ab@php.net>
PRIMARY MAINTAINER: Sara Golemon <pollita@php.net> (2005 - 2017)
Mike Wallner <mike@php.net> (2005 - 2013)
Anatol Belski <ab@php.net> (2014 - 2018)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.1.2
-------------------------------------------------------------------------------
EXTENSION: iconv
PRIMARY MAINTAINER: Moriyoshi Koizumi <moriyoshi@php.net>
PRIMARY MAINTAINER: Moriyoshi Koizumi <moriyoshi@php.net> (2002 - 2010)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: intl
PRIMARY MAINTAINER: Stanislav Malyshev <stas@php.net>
PRIMARY MAINTAINER: Stanislav Malyshev <stas@php.net> (2008 - 2018)
Anatol Belski <ab@php.net> (2017 - 2018)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
-------------------------------------------------------------------------------
EXTENSION: imap
PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org>, Ilia Alshanetsky <iliaa@php.net>, Pierre-Alain Joye <pajoye@php.net>
PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org> (1999 - 2004)
Ilia Alshanetsky <iliaa@php.net> (2002 - 2010)
Pierre-Alain Joye <pajoye@php.net> (2008 - 2010)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: json
PRIMARY MAINTAINER: Jakub Zelenka <bukka@php.net>
PRIMARY MAINTAINER: Jakub Zelenka <bukka@php.net> (2014 - 2018)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.2
-------------------------------------------------------------------------------
EXTENSION: ldap
PRIMARY MAINTAINER: Stig Venaas <venaas@php.net>, Douglas Goldstein <cardoe@php.net>, Pierre-Alain Joye <pajoye@php.net>, Côme Bernigaud <mcmic@php.net>
PRIMARY MAINTAINER: Stig Venaas <venaas@php.net> (2000 - 2002)
Douglas Goldstein <cardoe@php.net> (2007 - 2007)
Pierre-Alain Joye <pajoye@php.net> (2008 - 2010)
Côme Bernigaud <mcmic@php.net> (2015 - 2017)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mbstring
PRIMARY MAINTAINER: Rui Hirokawa <hirokawa@php.net>
PRIMARY MAINTAINER: Rui Hirokawa <hirokawa@php.net> (2001 - 2013)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: opcache
PRIMARY MAINTAINER: Dmitry Stogov <dmitry@zend.com>, Xinchen Hui <laruence@php.net>
PRIMARY MAINTAINER: Dmitry Stogov <dmitry@php.net> (2013 - 2018)
Xinchen Hui <laruence@php.net> (2013 - 2018)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.5.0
-------------------------------------------------------------------------------
EXTENSION: openssl
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>, Pierre-Alain Joye <pajoye@php.net>
PRIMARY MAINTAINER: Wez Furlong <wez@php.net> (2001 - 2006)
Pierre-Alain Joye <pajoye@php.net> (2006 - 2011)
Jakub Zelenka <bukka@php.net> (2015 - 2019)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.4
-------------------------------------------------------------------------------
EXTENSION: pcntl
PRIMARY MAINTAINER: Arnaud Le Blanc <lbarnaud@php.net>
PRIMARY MAINTAINER: Arnaud Le Blanc <lbarnaud@php.net> (2008 - 2010)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: pcre
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>, Nuno Lopes <nlopess@php.net>
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net> (1999 - 2006)
Nuno Lopes <nlopess@php.net> (2006 - 2009)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: phar
PRIMARY MAINTAINER: Greg Beaver <cellog@php.net>, Marcus Börger <helly@php.net>, Steph Fox <sfox@php.net>
PRIMARY MAINTAINER: Greg Beaver <cellog@php.net> (2008 - 2009)
Marcus Börger <helly@php.net> (2008 - 2008)
Steph Fox <sfox@php.net> (2008 - 2008)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
-------------------------------------------------------------------------------
EXTENSION: posix
PRIMARY MAINTAINER: Kristian Köhntopp <kris@koehntopp.de>
PRIMARY MAINTAINER: Kristian Köhntopp <kris@koehntopp.de> (2000 - 2000)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: pspell
PRIMARY MAINTAINER: Vlad Krupin <phpdevel@echospace.com>
PRIMARY MAINTAINER: Vlad Krupin <phpdevel@echospace.com> (2000 - 2004)
MAINTENANCE: Unknown
STATUS: Working
SINCE: 4.0.2
@@ -388,45 +427,50 @@ MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: recode
PRIMARY MAINTAINER: Kristian Köhntopp <kris@koehntopp.de>
PRIMARY MAINTAINER: Kristian Köhntopp <kris@koehntopp.de> (2000 - 2000)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: reflection
PRIMARY MAINTAINER: Marcus Börger <helly@php.net>, Johannes Schlüter <johannes@php.net>
PRIMARY MAINTAINER: Marcus Börger <helly@php.net> (2003 - 2009)
Johannes Schlüter <johannes@php.net> (2006 - 2014)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: session
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>, Ilia Alshanetsky <iliaa@php.net>
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx> (1999 - 2004)
Ilia Alshanetsky <iliaa@php.net> (2002 - 2012)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: shmop
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net> (2002 - 2008)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: snmp
PRIMARY MAINTAINER: Boris Lytochkin <lytboris@php.net>, Rasmus Lerdorf <rasmus@php.net>, Pierre-Alain Joye <pajoye@php.net>
PRIMARY MAINTAINER: Boris Lytochkin <lytboris@php.net> (2011 - 2013)
Rasmus Lerdorf <rasmus@php.net> (1999 - 2002)
Pierre-Alain Joye <pajoye@php.net> (2010 - 2011)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: sockets
PRIMARY MAINTAINER: Chris Vandomelen <chrisv@b0rked.dhs.org>
PRIMARY MAINTAINER: Chris Vandomelen <chrisv@b0rked.dhs.org> (2000 - 2000)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: sodium
PRIMARY MAINTAINER: Frank Denis <jedisct1@php.net>
PRIMARY MAINTAINER: Frank Denis <jedisct1@php.net> (2017 - 2017)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 7.2.0
-------------------------------------------------------------------------------
EXTENSION: spl
PRIMARY MAINTAINER: Marcus Börger <helly@php.net>, Etienne Kneuss <colder@php.net>
PRIMARY MAINTAINER: Marcus Börger <helly@php.net> (2003 - 2009)
Etienne Kneuss <colder@php.net> (2008 - 2014)
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0.0
@@ -444,22 +488,24 @@ MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: tidy
PRIMARY MAINTAINER: John Coggeshall <john@php.net>, Ilia Alshanetsky <iliaa@php.net>, Nuno Lopes <nlopess@php.net>
PRIMARY MAINTAINER: John Coggeshall <john@php.net> (2003 - 2006)
Ilia Alshanetsky <iliaa@php.net> (2003 - 2009)
Nuno Lopes <nlopess@php.net> (2006 - 2012)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: tokenizer
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net> (2002 - 2002)
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: zip
PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net>
PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net> (2006 - 2011)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: zlib
PRIMARY MAINTAINER: Stefan Roehrich <sr@linux.de>
PRIMARY MAINTAINER: Stefan Roehrich <sr@linux.de> (1999 - 2003)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
+2 -1915
View File
File diff suppressed because it is too large. Load diff
+2 -2
View File
@@ -115,7 +115,7 @@ clean:
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_MILTER_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
distclean: clean
rm -f Makefile config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h main/internal_functions_cli.c main/internal_functions.c stamp-h buildmk.stamp Zend/zend_dtrace_gen.h Zend/zend_dtrace_gen.h.bak Zend/zend_config.h TSRM/tsrm_config.h
@@ -137,7 +137,7 @@ prof-clean:
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_MILTER_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(SAPI_CGI_PATH) $(SAPI_LITESPEED_PATH) $(SAPI_FPM_PATH) $(OVERALL_TARGET) modules/* libs/*
prof-use:
CCACHE_DISABLE=1 $(MAKE) PROF_FLAGS=-fprofile-use all
+478 -1535
View File
File diff suppressed because it is too large. Load diff
+17 -161
View File
@@ -1,187 +1,43 @@
(NOTE: you may also want to take a look at the pear package
PECL_Gen, a PHP-only alternative for this script that
supports way more extension writing tasks and is
supposed to replace ext_skel completely in the long run ...)
WHAT IT IS
It's a tool for automatically creating the basic framework for a PHP module
and writing C code handling arguments passed to your functions from a simple
configuration file. See an example at the end of this file.
It's a tool for automatically creating the basic framework for a PHP extension.
HOW TO USE IT
Very simple. First, change to the ext/ directory of the PHP 4 sources. If
you just need the basic framework and will be writing all the code in your
functions yourself, you can now do
Very simple. First, change to the ext/ directory of the PHP sources. Then
run the following
./ext_skel --extname=module_name
php ext_skel.php --ext extension_name
and everything you need is placed in directory module_name.
[ Note that GNU awk is likely required for this script to work. Debian
systems seem to default to using mawk, so you may need to change the
#! line in skeleton/create_stubs and the cat $proto | awk line in
ext_skel to use gawk explicitly. ]
and everything you need will be placed in directory ext/extension_name.
If you don't need to test the existence of any external header files,
libraries or functions in them, the module is already almost ready to be
compiled in PHP. Just remove 3 comments in your_module_name/config.m4,
change back up to PHP sources top directory, and do
libraries or functions in them, the extension is ready to be compiled in
PHP. To compile the extension, run the following:
./buildconf; ./configure --enable-module_name; make
./buildconf; ./configure --enable-extension_name; make
The definition of PHP_MODULE_NAME_VERSION will be present in the
php_module_name.h and injected into the zend_module_entry definition. This
The definition of PHP_extension_NAME_VERSION will be present in the
php_extension_name.h and injected into the zend_extension_entry definition. This
is required by the PECL website for the version string conformity checks
against package.xml
But if you already have planned the overall scheme of your module, what
functions it will contain, their return types and the arguments they take
(a very good idea) and don't want to bother yourself with creating function
definitions and handling arguments passed yourself, it's time to create a
function definitions file, which you will give as an argument to ext_skel
with option
--proto=filename.
SOURCE AND HEADER FILE NAME
./ext_skel generates 'module_name.c' and 'php_module_name.h' as main source
and header files. Keep these names.
The ext_skel.php script generates 'extension_name.c' and 'php_extension_name.h'
as the main source and header files. Keep these names.
Module functions (User functions) must be named
extension functions (User functions) must be named
module_name_function()
extension_name_function()
When you need to expose module functions to other modules, expose functions
When you need to expose extension functions to other extensions, expose functions
strictly needed by others. Exposed internal function must be named
php_module_name_function()
php_extension_name_function()
See also CODING_STANDARDS.
FORMAT OF FUNCTION DEFINITIONS FILE
All the definitions must be on one line. In it's simplest form, it's just
the function name, e.g.
module_name_function
but then you'll be left with an almost empty function body without any
argument handling.
Arguments are given in parenthesis after the function name, and are of
the form 'argument_type argument_name'. Arguments are separated from each
other with a comma and optional space. Argument_type can be one of int,
bool, double, float, string, array, object or mixed.
An optional argument is separated from the previous by an optional space,
then '[' and of course comma and optional space, like all the other
arguments. You should close a row of optional arguments with same amount of
']'s as there where '['s. Currently, it does not harm if you forget to do it
or there is a wrong amount of ']'s, but this may change in the future.
An additional short description may be added after the parameters.
If present it will be filled into the 'proto' header comments in the stubs
code and the <refpurpose> tag in the XML documentation.
An example:
module_name_function(int arg1, int arg2 [, int arg3 [, int arg4]])
Arguments arg1 and arg2 are required.
Arguments arg3 and arg4 are optional.
If possible, the function definition should also contain it's return type
in front of the definition. It's not actually used for any C code generating
purposes but PHP in-source documentation instead, and as such, very useful.
It can be any of int, double, string, bool, array, object, resource, mixed
or void.
The file must contain nothing else but function definitions, no comments or
empty lines.
OTHER OPTIONS
--no-help
By default, ext_skel creates both comments in the source code and a test
function to help first time module writers to get started and testing
configuring and compiling their module. This option turns off all such things
which may just annoy experienced PHP module coders. Especially useful with
--stubs=file
which will leave out also all module specific stuff and write just function
stubs with function value declarations and passed argument handling, and
function entries and definitions at the end of the file, for copying and
pasting into an already existing module.
--xml[=file]
Creates the basics for phpdoc .xml file.
--full-xml
Not implemented yet. When or if there will ever be created a framework for
self-contained extensions to use phpdoc system for their documentation, this
option enables it on the created xml file.
CURRENT LIMITATIONS, BUGS AND OTHER ODDITIES
Only arguments of types int, bool, double, float, string and array are
handled. For other types you must write the code yourself. And for type
mixed, it wouldn't even be possible to write anything, because only you
know what to expect.
It can't handle correctly, and probably never will, variable list of
of arguments. (void foo(int bar [, ...])
Don't trust the generated code too much. It tries to be useful in most of
the situations you might encounter, but automatic code generation will never
beat a programmer who knows the real situation at hand. ext_skel is generally
best suited for quickly generating a wrapper for c-library functions you
might want to have available in PHP too.
This program doesn't have a --help option. It has --no-help instead.
EXAMPLE
The following _one_ line
bool module_name_drawtext(resource image, string text, resource font, int x, int y [, int color])
will create this function definition for you (note that there are a few
question marks to be replaced by you, and you must of course add your own
value definitions too):
/* {{{ proto bool module_name_drawtext(resource image, string text, resource font, int x, int y [, int color])
*/
PHP_FUNCTION(module_name_drawtext)
{
char *text = NULL;
int argc = ZEND_NUM_ARGS();
int image_id = -1;
size_t text_len;
int font_id = -1;
zend_long x;
zend_long y;
zend_long color;
zval *image = NULL;
zval *font = NULL;
if (zend_parse_parameters(argc, "rsrll|l", &image, &text, &text_len, &font, &x, &y, &color) == FAILURE)
return;
if (image) {
ZEND_FETCH_RESOURCE(???, ???, image, image_id, "???", ???_rsrc_id);
}
if (font) {
ZEND_FETCH_RESOURCE(???, ???, font, font_id, "???", ???_rsrc_id);
}
php_error(E_WARNING, "module_name_drawtext: not yet implemented");
}
/* }}} */
Run php ext_skel.php --help to see the available options.
+9 -6
View File
@@ -46,15 +46,18 @@ Currently we have the following branches in use::
master The active development branch.
PHP-7.1 Is used to release the PHP 7.1.x series. This is a prerelease
version.
PHP-7.0 Is used to release the PHP 7.0.x series. This is a current
PHP-7.2 Is used to release the PHP 7.2.x series. This is a current
stable version and is open for bugfixes only.
PHP-5.6 Is used to release the PHP 5.6.x series. This is a current
PHP-7.1 Is used to release the PHP 7.1.x series. This is a current
stable version and is open for bugfixes only.
PHP-7.0 Is used to release the PHP 7.0.x series. This is an old
stable version and is open for security fixes only.
PHP-5.6 Is used to release the PHP 5.6.x series. This is an old
stable version and is open for security fixes only.
PHP-5.5 This branch is closed.
PHP-5.4 This branch is closed.
@@ -74,7 +77,7 @@ The next few rules are more of a technical nature::
1. All changes should first go to the lowest branch (i.e. 5.6) and then
get merged up to all other branches. If a change is not needed for
later branches (i.e. fixes for features which where dropped from later
later branches (i.e. fixes for features which were dropped from later
branches) an empty merge should be done.
2. All news updates intended for public viewing, such as new features,
-3
View File
@@ -1,6 +1,3 @@
$Id: README.NEW-OUTPUT-API 219039 2006-08-30 07:39:09Z mike $
API adjustment to the old output control code:
Everything now resides beneath the php_output namespace,
+12
View File
@@ -28,6 +28,13 @@ Both functions return SUCCESS or FAILURE depending on the result.
The auto-conversions are performed as necessary. Arrays, objects, and
resources cannot be auto-converted.
PHP 5.3 includes a new function (actually implemented as macro):
int zend_parse_parameters_none();
This returns SUCCESS if no argument has been passed to the function,
FAILURE otherwise.
PHP 5.5 includes a new function:
int zend_parse_parameter(int flags, int arg_num, zval **arg, const char *spec, ...);
@@ -221,3 +228,8 @@ if (zend_parse_parameters(ZEND_NUM_ARGS(), "a*l", &array, &varargs, &num_varargs
for (i = 0; i < num_varargs; i++) {
/* do something with varargs[i] */
}
/* Function that doesn't accept any arguments */
if (zend_parse_parameters_none() == FAILURE) {
return;
}
+130 -1
View File
@@ -1,7 +1,7 @@
1. libmagic (ext/fileinfo) see ext/fileinfo/libmagic/LICENSE
2. Oniguruma (ext/mbstring) see ext/mbstring/oniguruma/COPYING
3. libmbfl (ext/mbstring) see ext/mbstring/libmbfl/LICENSE
4. pcrelib (ext/pcre) see ext/pcre/pcrelib/LICENCE
4. pcre2lib (ext/pcre)
5. ext/standard crypt
6. ext/standard crypt's blowfish implementation
7. Sqlite/Sqlite3 ext/sqlite3 ext/sqlite
@@ -15,6 +15,107 @@
15. main/strlcat
16. main/strlcpy
17. libgd see ext/gd/libgd/COPYING
18. ext/phar portions of tar implementations
19. libbcmath (ext/bcmath) see ext/bcmath/libbcmath/COPYING.LIB
4. pcre2lib (ext/pcre)
PCRE2 LICENCE
-------------
PCRE2 is a library of functions to support regular expressions whose syntax
and semantics are as close as possible to those of the Perl 5 language.
Release 10 of PCRE2 is distributed under the terms of the "BSD" licence, as
specified below, with one exemption for certain binary redistributions. The
documentation for PCRE2, supplied in the "doc" directory, is distributed under
the same terms as the software itself. The data in the testdata directory is
not copyrighted and is in the public domain.
The basic library functions are written in C and are freestanding. Also
included in the distribution is a just-in-time compiler that can be used to
optimize pattern matching. This is an optional feature that can be omitted when
the library is built.
THE BASIC LIBRARY FUNCTIONS
---------------------------
Written by: Philip Hazel
Email local part: ph10
Email domain: cam.ac.uk
University of Cambridge Computing Service,
Cambridge, England.
Copyright (c) 1997-2018 University of Cambridge
All rights reserved.
PCRE2 JUST-IN-TIME COMPILATION SUPPORT
--------------------------------------
Written by: Zoltan Herczeg
Email local part: hzmester
Emain domain: freemail.hu
Copyright(c) 2010-2018 Zoltan Herczeg
All rights reserved.
STACK-LESS JUST-IN-TIME COMPILER
--------------------------------
Written by: Zoltan Herczeg
Email local part: hzmester
Emain domain: freemail.hu
Copyright(c) 2009-2018 Zoltan Herczeg
All rights reserved.
THE "BSD" LICENCE
-----------------
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notices,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notices, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the University of Cambridge nor the names of any
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
EXEMPTION FOR BINARY LIBRARY-LIKE PACKAGES
------------------------------------------
The second condition in the BSD licence (covering binary redistributions) does
not apply all the way down a chain of software. If binary package A includes
PCRE2, it must respect the condition, but if package B is software that
includes package A, the condition is not imposed on package B unless it uses
PCRE2 independently.
End
5. ext/standard crypt
@@ -414,3 +515,31 @@ OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18. ext/phar portions of tar implementations
portions of tar implementations in ext/phar - phar_tar_octal() are based on an
implementation by Tim Kientzle from libarchive, licensed with this license:
Copyright (c) 2003-2007 Tim Kientzle
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+35 -11
View File
@@ -37,7 +37,7 @@ Most developers should have this.
Moving extensions from php-src to PECL
- Checkout the pecl directory, most likely you want a sparse-root checkout
svn co --depth=empty https://svn.php.net/repository/pecl
- Create an directory for the extension incl. branch and tag structure,
- Create a directory for the extension incl. branch and tag structure,
no trunk at this point and commit this to svn
cd pecl; mkdir foo foo/tags foo/branches; svn add foo; svn commit
- Move the extension from php-src to the new location
@@ -50,7 +50,7 @@ maintainers if any:
- create the package.xml, commit
- release the package
For Moving extensions from PECL to php-src the svn mv has to be tone the other
For Moving extensions from PECL to php-src the svn mv has to be done the other
way round.
Rolling a non stable release (alpha/beta/RC)
@@ -140,14 +140,14 @@ to upgrade.
*Wait for web and qa sites to update with new information before sending announce*
5. Send an email **To** ``internals@lists.php.net`` and ``php-general@lists.php.net``
5. Send **separate** emails **To** ``internals@lists.php.net`` and ``php-general@lists.php.net``
lists pointing out "the location of the release" and "the possible release date of
either the next RC, or the final release". Include in this information the verification
information output by ``gen_verify_stub``.
6. Send an email (see example here http://news.php.net/php.pear.qa/5201) **To**
6. Send **separate** emails (see example here http://news.php.net/php.pear.qa/5201) **To**
``php-qa@lists.php.net`` and ``primary-qa-tester@lists.php.net``.
This email is to notify the selected projects about a new release so that they
These emails are to notify the selected projects about a new release so that they
can make sure their projects keep working. Make sure that you have been setup
as a moderator for ``primary-qa-tester@lists.php.net`` by having someone (Hannes, Dan,
Derick) run the following commands for you:
@@ -156,9 +156,6 @@ Derick) run the following commands for you:
``sudo -u ezmlm ezmlm-sub ~ezmlm/primary-qa-tester/mod moderator-email-address``
7. For the first RC, write the doc team (phpdoc@lists.php.net) about updating the
INSTALL and win32/install.txt files which are generated from the PHP manual sources.
Rolling a stable release
------------------------
@@ -187,7 +184,11 @@ credits files in ext/standard.
9. run: ``PHPROOT=. ./makedist php 5.4.1``, this will export the tag, create configure
and build three tarballs (gz, bz2 and xz).
Check if the pear files are updated (phar).
Check if the pear files are updated (phar).
On some systems the behavior of GNU tar can default to produce POSIX compliant archives
with PAX headers. As not every application is compatible with that format, creation of
archives with PAX headers should be avoided. When packaging on such a system, the GNU tar
can be influenced by defining the environment variable TAR_OPTIONS='--format=gnu'.
10. Generate the GPG signature files for the archives.
``gpg -u YOUREMAIL --armor --detach-sign php-X.Y.Z.tar.xxx``
@@ -197,7 +198,8 @@ Check if the pear files are updated (phar).
``git submodule init;
git submodule update;
cd distributions;
git pull origin master;
git fetch;
git pull --rebase origin master;
cd ..;
git commit distributions;
git push;``
@@ -327,6 +329,28 @@ Please make sure that the mail to php-announce@ is its own completely separate e
This is to make sure that replies to the announcement on php-general@ or internals@
will not accidentally hit the php-announce@ mailinglist.
Forking a new release branch
----------------------------
1. One week prior to cutting X.Y.0beta1, warn internals@ that your version's branch
is about to be cut, and that PHP-X.Y will be moving into feature freeze.
Try to be specific about when the branch will be cut.
Example: http://news.php.net/php.internals/99864
2. Just prior to cutting X.Y.0beta1, create the new branch locally.
Add a commit on master after the branch point clearing the NEWS file, and updating
main/php_versions.h and Zend/zend.h to update versions.
Example: https://github.com/php/php-src/commit/5230541ef59e0637d5522293a7d099bf18ce6af3
Push the new branch and the commit just added to master.
3. Immediately notify internals@ of the branch cut and advise the new merging order:
Example: http://news.php.net/php.internals/99903
4. Update php-web:git.php and wiki.php.net/vcs/gitworkflow to reflect the new branch:
Example: https://github.com/php/web-php/commit/74bcad4c770d95f21b7fbeeedbd76d943bb83f23
5. Notify nlopess@ to add PHP_X_Y tag to gcov.php.net
New Release Manager Checklist
-----------------------------
@@ -338,7 +362,7 @@ New Release Manager Checklist
one or more of the previous RMs sign your key. Publish your public key to pgp.mit.edu with:
`gpg --keyserver pgp.mit.edu --send-keys $KEYID`
3. Request karma to eding main/php_version.h. Possibly karma for other restricted parts of
3. Request karma to edit main/php_version.h. Possibly karma for other restricted parts of
php-src might come in question.
4. Request karma for web/qa.git and web/php.git for publishing release announcements.
-3
View File
@@ -1,6 +1,3 @@
$Id$
=============================================================================
HOW TO CREATE A SELF-CONTAINED PHP EXTENSION
A self-contained extension can be distributed independently of
-1
View File
@@ -1,6 +1,5 @@
An Overview of the PHP Streams abstraction
==========================================
$Id$
WARNING: some prototypes in this file are out of date.
The information contained here is being integrated into
+136 -1
View File
@@ -61,7 +61,7 @@ test scripts by extracting all directories named "tests"
from the source root and any subdirectories below. If there are files,
which have a "phpt" extension, "run-tests.php" looks at the sections
in these files, determines whether it should run it, by evaluating
the 'SKIP' section. If the test is eligible for execution, the 'FILE'
the 'SKIPIF' section. If the test is eligible for execution, the 'FILE'
section is extracted into a ".php" file (with the same name besides
the extension) and gets executed.
When an argument is given or TESTS environment variable is set, the
@@ -179,3 +179,138 @@ $str = "XYZABCD";
echo substr($str,3,7);
?>
[IMPORTANT NOTICE]
------------------
This is an addendum to README.TESTING with additional information
specific to server-tests.php.
server-tests.php is backward compatible with tests developed for
the original run-tests.php script. server-tests is *not* used by
'make test'. server-tests was developed to provide support for
testing PHP under it's primary environment, HTTP, and can run the
PHP tests under any of the SAPI modules that are direct executables,
or are accessible via HTTP.
[New features]
----------------
* Command line interface:
You can run 'php server-tests.php -h' to get all the possible options.
* Configuration file:
the -c argument will allow you to use a configuration file. This is
handy if you are testing multiple environments and need various options
depending on the environment.
see server-tests-config.php for details.
* CGI Emulation:
Will emulate a CGI environment when testing with the cgi sapi executable.
* HTTP testing:
can be configured to run test scripts through an HTTP server running
on localhost. localhost is required since either the web server must
alias a directory to the php source directory, or the test scripts
must be copied to a directory under the web server
(see config options TEST_WEB_BASE_URL, TEST_BASE_PATH, and TEST_WEB_EXT)
* New sections supported for test files (see below)
When running tests over http, tests that require ini settings different that what
the web server runs under will be skipped. Since the test harness defines a number
of ini settings by default, the web server may require special configuration to
make testing work.
[Example Usage]
----------------
Some (but not all!) examples of usage:
1. run tests from the php source directory
php server-tests.php -p /path/to/php-cli
2. run tests using cgi emulation
php server-tests.php -p /path/to/php-cgi
3. run tests over http, copying test files into document root
php server-tests.php -w -u http://localhost/test -m /path/to/htdocs/test
4. run tests over http, php sources have been aliased in web server
php server-tests.php -w -u http://localhost/test
5. run tests using configuration file
php server-tests.php -c /path/to/server-tests-config.php
6. run tests using configuration file, but overriding some settings:
(config file must be first)
php server-tests.php -c /path/to/server-tests-config.php -w -t 3 -d /path/to/testdir
NOTE: configuration as described in README.TESTING still works.
[New Test Sections]
----------------
In addition to the traditional test sections
(see http://qa.php.net/write-test.php), several new sections are available
under server-tests.
--POST--
This is not a new section, but not multipart posts are supported for testing
file uploads, or other types of POST data.
--CGI--
This section takes no value. It merely provides a simple marker for tests
that MUST be run as CGI, even if there is no --POST-- or --GET-- sections
in the test file.
--DESCRIPTION--
Not used for anything, just a section for documenting the test
--ENV--
This section get's eval()'d to help build an environment for the
execution of the test. This can be used to change environment
vars that are used for CGI emulation, or simply to set env vars
for cli testing. A full example looks like:
--ENV--
return <<<END
PATH_TRANSLATED=$filename
PATH_INFO=$scriptname
SCRIPT_NAME=$scriptname
END;
Some variables are made easily available for use in this section, they
include:
$filename full native path to file, will become PATH_TRANSLATED
$filepath =dirname($filename)
$scriptname this is what will become SCRIPT_NAME unless you override it
$docroot the equivalent of DOCUMENT_ROOT under Apache
$cwd the directory that the test is being initiated from
$this->conf all server-tests configuration vars
$this->env all environment variables that will get passed to the test
--REQUEST--
This section is also eval'd, and is similar in nature to --ENV--. However,
this section is used to build the url used in an HTTP request. Valid values
to set in this section would include:
SCRIPT_NAME The initial part of the request url
PATH_INFO The pathinfo part of a request url
FRAGMENT The fragment section of a url (after #)
QUERY_STRING The query part of a url (after ?)
--REQUEST--
return <<<END
PATH_INFO=/path/info
END;
--HEADERS--
This section is also eval'd. It is used to provide additional headers sent
in an HTTP request, such as content type for multipart posts, cookies, etc.
--HEADERS--
return <<<END
Content-Type=multipart/form-data; boundary=---------------------------240723202011929
Content-Length=100
END;
--EXPECTHEADERS--
This section can be used to define what headers are required to be
received back from a request, and is checked in addition to the
regular expect sections. For example:
--EXPECTHEADERS--
Status: 404
-134
View File
@@ -1,134 +0,0 @@
[IMPORTANT NOTICE]
------------------
This is an addendum to README.TESTING with additional information
specific to server-tests.php.
server-tests.php is backward compatible with tests developed for
the original run-tests.php script. server-tests is *not* used by
'make test'. server-tests was developed to provide support for
testing PHP under it's primary environment, HTTP, and can run the
PHP tests under any of the SAPI modules that are direct executables,
or are accessible via HTTP.
[New features]
----------------
* Command line interface:
You can run 'php server-tests.php -h' to get all the possible options.
* Configuration file:
the -c argument will allow you to use a configuration file. This is
handy if you are testing multiple environments and need various options
depending on the environment.
see server-tests-config.php for details.
* CGI Emulation:
Will emulate a CGI environment when testing with the cgi sapi executable.
* HTTP testing:
can be configured to run test scripts through an HTTP server running
on localhost. localhost is required since either the web server must
alias a directory to the php source directory, or the test scripts
must be copied to a directory under the web server
(see config options TEST_WEB_BASE_URL, TEST_BASE_PATH, and TEST_WEB_EXT)
* New sections supported for test files (see below)
When running tests over http, tests that require ini settings different that what
the web server runs under will be skipped. Since the test harness defines a number
of ini settings by default, the web server may require special configuration to
make testing work.
[Example Usage]
----------------
Some (but not all!) examples of usage:
1. run tests from the php source directory
php server-tests.php -p /path/to/php-cli
2. run tests using cgi emulation
php server-tests.php -p /path/to/php-cgi
3. run tests over http, copying test files into document root
php server-tests.php -w -u http://localhost/test -m /path/to/htdocs/test
4. run tests over http, php sources have been aliased in web server
php server-tests.php -w -u http://localhost/test
5. run tests using configuration file
php server-tests.php -c /path/to/server-tests-config.php
6. run tests using configuration file, but overriding some settings:
(config file must be first)
php server-tests.php -c /path/to/server-tests-config.php -w -t 3 -d /path/to/testdir
NOTE: configuration as described in README.TESTING still works.
[New Test Sections]
----------------
In addition to the traditional test sections
(see http://qa.php.net/write-test.php), several new sections are available
under server-tests.
--POST--
This is not a new section, but not multipart posts are supported for testing
file uploads, or other types of POST data.
--CGI--
This section takes no value. It merely provides a simple marker for tests
that MUST be run as CGI, even if there is no --POST-- or --GET-- sections
in the test file.
--DESCRIPTION--
Not used for anything, just a section for documenting the test
--ENV--
This section get's eval()'d to help build an environment for the
execution of the test. This can be used to change environment
vars that are used for CGI emulation, or simply to set env vars
for cli testing. A full example looks like:
--ENV--
return <<<END
PATH_TRANSLATED=$filename
PATH_INFO=$scriptname
SCRIPT_NAME=$scriptname
END;
Some variables are made easily available for use in this section, they
include:
$filename full native path to file, will become PATH_TRANSLATED
$filepath =dirname($filename)
$scriptname this is what will become SCRIPT_NAME unless you override it
$docroot the equivalent of DOCUMENT_ROOT under Apache
$cwd the directory that the test is being initiated from
$this->conf all server-tests configuration vars
$this->env all environment variables that will get passed to the test
--REQUEST--
This section is also eval'd, and is similar in nature to --ENV--. However,
this section is used to build the url used in an HTTP request. Valid values
to set in this section would include:
SCRIPT_NAME The initial part of the request url
PATH_INFO The pathinfo part of a request url
FRAGMENT The fragment section of a url (after #)
QUERY_STRING The query part of a url (after ?)
--REQUEST--
return <<<END
PATH_INFO=/path/info
END;
--HEADERS--
This section is also eval'd. It is used to provide additional headers sent
in an HTTP request, such as content type for multipart posts, cookies, etc.
--HEADERS--
return <<<END
Content-Type=multipart/form-data; boundary=---------------------------240723202011929
Content-Length=100
END;
--EXPECTHEADERS--
This section can be used to define what headers are required to be
received back from a request, and is checked in addition to the
regular expect sections. For example:
--EXPECTHEADERS--
Status: 404
-1
View File
@@ -86,7 +86,6 @@ PHP_MINFO_FUNCTION(my_input_filter)
{
php_info_print_table_start();
php_info_print_table_row( 2, "My Input Filter Support", "enabled" );
php_info_print_table_row( 2, "Revision", "$Id$");
php_info_print_table_end();
}
+2 -2
View File
@@ -2,7 +2,7 @@ The PHP Interpreter
===================
This is the github mirror of the official PHP repository located at
http://git.php.net.
https://git.php.net.
[![Build Status](https://secure.travis-ci.org/php/php-src.svg?branch=master)](http://travis-ci.org/php/php-src)
[![Build status](https://ci.appveyor.com/api/projects/status/meyur6fviaxgdwdy?svg=true)](https://ci.appveyor.com/project/php/php-src)
@@ -28,7 +28,7 @@ open a ticket at https://bugs.php.net and reference the bug id using #NNNNNN.
time. The patch removes this warning
We do not merge pull requests directly on github. All PRs will be
pulled and pushed through http://git.php.net.
pulled and pushed through https://git.php.net.
Guidelines for contributors
-2
View File
@@ -1,2 +0,0 @@
- Improve the lock in ts_resource_ex() in order to cover less code.
This can probably be done by more careful hash table access
+20 -49
View File
@@ -6,7 +6,7 @@
| This source file is subject to the TSRM license, that is bundled |
| with this package in the file LICENSE |
+----------------------------------------------------------------------+
| Authors: Zeev Suraski <zeev@zend.com> |
| Authors: Zeev Suraski <zeev@php.net> |
+----------------------------------------------------------------------+
*/
@@ -115,11 +115,6 @@ static DWORD tls_key;
# define tsrm_tls_set(what) TlsSetValue(tls_key, (void*)(what))
# define tsrm_tls_get() TlsGetValue(tls_key)
#elif defined(BETHREADS)
static int32 tls_key;
# define tsrm_tls_set(what) tls_set(tls_key, (void*)(what))
# define tsrm_tls_get() (tsrm_tls_entry*)tls_get(tls_key)
#else
# define tsrm_tls_set(what)
# define tsrm_tls_get() NULL
@@ -141,8 +136,6 @@ TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debu
st_key_create(&tls_key, 0);
#elif defined(TSRM_WIN32)
tls_key = TlsAlloc();
#elif defined(BETHREADS)
tls_key = tls_allocate();
#endif
/* ensure singleton */
@@ -251,13 +244,15 @@ TSRM_API ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate
/* store the new resource type in the resource sizes table */
if (resource_types_table_size < id_count) {
resource_types_table = (tsrm_resource_type *) realloc(resource_types_table, sizeof(tsrm_resource_type)*id_count);
if (!resource_types_table) {
tsrm_resource_type *_tmp;
_tmp = (tsrm_resource_type *) realloc(resource_types_table, sizeof(tsrm_resource_type)*id_count);
if (!_tmp) {
tsrm_mutex_unlock(tsmm_mutex);
TSRM_ERROR((TSRM_ERROR_LEVEL_ERROR, "Unable to allocate storage for resource"));
*rsrc_id = 0;
return 0;
}
resource_types_table = _tmp;
resource_types_table_size = id_count;
}
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].size = size;
@@ -591,14 +586,8 @@ TSRM_API THREAD_T tsrm_thread_id(void)
return pth_self();
#elif defined(PTHREADS)
return pthread_self();
#elif defined(NSAPI)
return systhread_current();
#elif defined(PI3WEB)
return PIThread_getCurrent();
#elif defined(TSRM_ST)
return st_thread_self();
#elif defined(BETHREADS)
return find_thread(NULL);
#endif
}/*}}}*/
@@ -616,16 +605,8 @@ TSRM_API MUTEX_T tsrm_mutex_alloc(void)
#elif defined(PTHREADS)
mutexp = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
pthread_mutex_init(mutexp,NULL);
#elif defined(NSAPI)
mutexp = crit_init();
#elif defined(PI3WEB)
mutexp = PIPlatform_allocLocalMutex();
#elif defined(TSRM_ST)
mutexp = st_mutex_new();
#elif defined(BETHREADS)
mutexp = (beos_ben*)malloc(sizeof(beos_ben));
mutexp->ben = 0;
mutexp->sem = create_sem(1, "PHP sempahore");
#endif
#ifdef THR_DEBUG
printf("Mutex created thread: %d\n",mythreadid());
@@ -646,15 +627,8 @@ TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
#elif defined(PTHREADS)
pthread_mutex_destroy(mutexp);
free(mutexp);
#elif defined(NSAPI)
crit_terminate(mutexp);
#elif defined(PI3WEB)
PISync_delete(mutexp);
#elif defined(TSRM_ST)
st_mutex_destroy(mutexp);
#elif defined(BETHREADS)
delete_sem(mutexp->sem);
free(mutexp);
#endif
}
#ifdef THR_DEBUG
@@ -680,17 +654,8 @@ TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp)
return -1;
#elif defined(PTHREADS)
return pthread_mutex_lock(mutexp);
#elif defined(NSAPI)
crit_enter(mutexp);
return 0;
#elif defined(PI3WEB)
return PISync_lock(mutexp);
#elif defined(TSRM_ST)
return st_mutex_lock(mutexp);
#elif defined(BETHREADS)
if (atomic_add(&mutexp->ben, 1) != 0)
return acquire_sem(mutexp->sem);
return 0;
#endif
}/*}}}*/
@@ -712,17 +677,8 @@ TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp)
return -1;
#elif defined(PTHREADS)
return pthread_mutex_unlock(mutexp);
#elif defined(NSAPI)
crit_exit(mutexp);
return 0;
#elif defined(PI3WEB)
return PISync_unlock(mutexp);
#elif defined(TSRM_ST)
return st_mutex_unlock(mutexp);
#elif defined(BETHREADS)
if (atomic_add(&mutexp->ben, -1) != 1)
return release_sem(mutexp->sem);
return 0;
#endif
}/*}}}*/
@@ -825,6 +781,21 @@ TSRM_API uint8_t tsrm_is_main_thread(void)
return in_main_thread;
}/*}}}*/
TSRM_API const char *tsrm_api_name(void)
{/*{{{*/
#if defined(GNUPTH)
return "GNU Pth";
#elif defined(PTHREADS)
return "POSIX Threads";
#elif defined(TSRM_ST)
return "State Threads";
#elif defined(TSRM_WIN32)
return "Windows Threads";
#else
return "Unknown";
#endif
}/*}}}*/
#endif /* ZTS */
/*
+2 -14
View File
@@ -6,7 +6,7 @@
| This source file is subject to the TSRM license, that is bundled |
| with this package in the file LICENSE |
+----------------------------------------------------------------------+
| Authors: Zeev Suraski <zeev@zend.com> |
| Authors: Zeev Suraski <zeev@php.net> |
+----------------------------------------------------------------------+
*/
@@ -69,22 +69,9 @@ typedef int ts_rsrc_id;
#elif defined(PTHREADS)
# define THREAD_T pthread_t
# define MUTEX_T pthread_mutex_t *
#elif defined(NSAPI)
# define THREAD_T SYS_THREAD
# define MUTEX_T CRITICAL
#elif defined(PI3WEB)
# define THREAD_T PIThread *
# define MUTEX_T PISync *
#elif defined(TSRM_ST)
# define THREAD_T st_thread_t
# define MUTEX_T st_mutex_t
#elif defined(BETHREADS)
# define THREAD_T thread_id
typedef struct {
sem_id sem;
int32 ben;
} beos_ben;
# define MUTEX_T beos_ben *
#endif
#ifdef HAVE_SIGNAL_H
@@ -156,6 +143,7 @@ TSRM_API void tsrm_free_interpreter_context(void *context);
TSRM_API void *tsrm_get_ls_cache(void);
TSRM_API uint8_t tsrm_is_main_thread(void);
TSRM_API const char *tsrm_api_name(void);
#if defined(__cplusplus) && __cplusplus > 199711L
# define TSRM_TLS thread_local
-3
View File
@@ -4,9 +4,6 @@
# make -f build.mk
#
# Written by Sascha Schumann
#
# $Id$
LT_TARGETS = ltmain.sh ltconfig
-1
View File
@@ -1,5 +1,4 @@
// vim:ft=javascript
// $Id$
ADD_SOURCES("TSRM", "TSRM.c tsrm_strtok_r.c tsrm_win32.c");
ADD_FLAG("CFLAGS_BD_TSRM", "/D ZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
+2 -2
View File
@@ -1,4 +1,3 @@
dnl $Id$
dnl
dnl Minimalistic configure.ac for TSRM.
dnl
@@ -32,4 +31,5 @@ unistd.h \
limits.h
)
AC_OUTPUT(Makefile)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
@@ -1,6 +1,6 @@
# =================================================================================
# http://www.gnu.org/software/autoconf-archive/ax_func_which_gethostbyname_r.html
# =================================================================================
# ==================================================================================
# https://www.gnu.org/software/autoconf-archive/ax_func_which_gethostbyname_r.html
# ==================================================================================
#
# SYNOPSIS
#
@@ -46,7 +46,7 @@
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
# with this program. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
@@ -61,7 +61,7 @@
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 7
#serial 8
AC_DEFUN([AX_FUNC_WHICH_GETHOSTBYNAME_R], [
+40 -45
View File
@@ -103,52 +103,47 @@ dnl -threads gcc (HP-UX)
dnl
AC_DEFUN([PTHREADS_CHECK],[
if test "$beos_threads" = "1"; then
save_CFLAGS=$CFLAGS
save_LIBS=$LIBS
PTHREADS_ASSIGN_VARS
PTHREADS_CHECK_COMPILE
LIBS=$save_LIBS
CFLAGS=$save_CFLAGS
AC_CACHE_CHECK(for pthreads_cflags,ac_cv_pthreads_cflags,[
ac_cv_pthreads_cflags=
if test "$pthreads_working" != "yes"; then
for flag in -kthread -pthread -pthreads -mthreads -Kthread -threads -mt -qthreaded; do
ac_save=$CFLAGS
CFLAGS="$CFLAGS $flag"
PTHREADS_CHECK_COMPILE
CFLAGS=$ac_save
if test "$pthreads_checked" = "yes"; then
ac_cv_pthreads_cflags=$flag
break
fi
done
fi
])
AC_CACHE_CHECK(for pthreads_lib, ac_cv_pthreads_lib,[
ac_cv_pthreads_lib=
if test "$pthreads_working" != "yes"; then
for lib in pthread pthreads c_r; do
ac_save=$LIBS
LIBS="$LIBS -l$lib"
PTHREADS_CHECK_COMPILE
LIBS=$ac_save
if test "$pthreads_checked" = "yes"; then
ac_cv_pthreads_lib=$lib
break
fi
done
fi
])
if test "x$ac_cv_pthreads_cflags" != "x" -o "x$ac_cv_pthreads_lib" != "x"; then
pthreads_working="yes"
ac_cv_pthreads_cflags=""
else
save_CFLAGS=$CFLAGS
save_LIBS=$LIBS
PTHREADS_ASSIGN_VARS
PTHREADS_CHECK_COMPILE
LIBS=$save_LIBS
CFLAGS=$save_CFLAGS
AC_CACHE_CHECK(for pthreads_cflags,ac_cv_pthreads_cflags,[
ac_cv_pthreads_cflags=
if test "$pthreads_working" != "yes"; then
for flag in -kthread -pthread -pthreads -mthreads -Kthread -threads -mt -qthreaded; do
ac_save=$CFLAGS
CFLAGS="$CFLAGS $flag"
PTHREADS_CHECK_COMPILE
CFLAGS=$ac_save
if test "$pthreads_checked" = "yes"; then
ac_cv_pthreads_cflags=$flag
break
fi
done
fi
])
AC_CACHE_CHECK(for pthreads_lib, ac_cv_pthreads_lib,[
ac_cv_pthreads_lib=
if test "$pthreads_working" != "yes"; then
for lib in pthread pthreads c_r; do
ac_save=$LIBS
LIBS="$LIBS -l$lib"
PTHREADS_CHECK_COMPILE
LIBS=$ac_save
if test "$pthreads_checked" = "yes"; then
ac_cv_pthreads_lib=$lib
break
fi
done
fi
])
if test "x$ac_cv_pthreads_cflags" != "x" -o "x$ac_cv_pthreads_lib" != "x"; then
pthreads_working="yes"
fi
fi
if test "$pthreads_working" = "yes"; then
+8 -34
View File
@@ -1,26 +1,4 @@
m4_include([TSRM/m4/gethostbyname.m4])
dnl TSRM_CHECK_GCC_ARG(ARG, ACTION-IF-FOUND, ACTION-IF-NOT_FOUND)
AC_DEFUN([TSRM_CHECK_GCC_ARG],[
gcc_arg_name=[ac_cv_gcc_arg]translit($1,A-Z-,a-z_)
AC_CACHE_CHECK([whether $CC supports $1], [ac_cv_gcc_arg]translit($1,A-Z-,a-z_), [
echo 'void somefunc() { };' > conftest.c
cmd='$CC $1 -c conftest.c'
if eval $cmd 2>&1 | egrep -e $1 >/dev/null ; then
ac_result=no
else
ac_result=yes
fi
eval $gcc_arg_name=$ac_result
rm -f conftest.*
])
if eval test "\$$gcc_arg_name" = "yes"; then
$2
else
:
$3
fi
])
m4_include([TSRM/m4/ax_func_which_gethostbyname_r.m4])
AC_DEFUN([TSRM_BASIC_CHECKS],[
@@ -78,18 +56,14 @@ AC_DEFUN([TSRM_CHECK_PTHREADS],[
PTHREADS_CHECK
if test "$beos_threads" = "1"; then
AC_DEFINE(BETHREADS, 1, Whether to use native BeOS threads)
else
if test "$pthreads_working" != "yes"; then
AC_MSG_ERROR(Your system seems to lack POSIX threads.)
fi
AC_DEFINE(PTHREADS, 1, Whether to use Pthreads)
AC_MSG_CHECKING(for POSIX threads)
AC_MSG_RESULT(yes)
if test "$pthreads_working" != "yes"; then
AC_MSG_ERROR(Your system seems to lack POSIX threads.)
fi
AC_DEFINE(PTHREADS, 1, Whether to use Pthreads)
AC_MSG_CHECKING(for POSIX threads)
AC_MSG_RESULT(yes)
])
AC_DEFUN([TSRM_THREADS_CHECKS],[
-1
View File
@@ -6,7 +6,6 @@
#define HAVE_UTIME 1
#define HAVE_ALLOCA 1
#define HAVE_REALPATH 1
#include <malloc.h>
#include <stdlib.h>
+130 -164
View File
@@ -16,8 +16,6 @@
+----------------------------------------------------------------------+
*/
/* $Id$ */
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
@@ -207,192 +205,169 @@ TSRM_API int tsrm_win32_access(const char *pathname, int mode)
BOOL fAccess = FALSE;
realpath_cache_bucket * bucket = NULL;
char * real_path = NULL;
char real_path[MAXPATHLEN] = {0};
if(!IS_ABSOLUTE_PATH(pathname, strlen(pathname)+1)) {
if(tsrm_realpath(pathname, real_path) == NULL) {
SET_ERRNO_FROM_WIN32_CODE(ERROR_FILE_NOT_FOUND);
return -1;
}
pathname = real_path;
}
PHP_WIN32_IOUTIL_INIT_W(pathname)
if (!pathw) {
return -1;
}
if (mode == 1 /*X_OK*/) {
DWORD type;
int ret;
ret = GetBinaryTypeW(pathw, &type) ? 0 : -1;
/* Either access call failed, or the mode was asking for a specific check.*/
int ret = php_win32_ioutil_access_w(pathw, mode);
if (0 > ret || X_OK == mode || F_OK == mode) {
PHP_WIN32_IOUTIL_CLEANUP_W()
return ret;
} else {
if(!IS_ABSOLUTE_PATH(pathname, strlen(pathname)+1)) {
real_path = (char *)malloc(MAXPATHLEN);
if(tsrm_realpath(pathname, real_path) == NULL) {
goto Finished;
}
pathname = real_path;
PHP_WIN32_IOUTIL_REINIT_W(pathname);
}
if(php_win32_ioutil_access(pathname, mode)) {
PHP_WIN32_IOUTIL_CLEANUP_W()
free(real_path);
return errno;
}
/* If only existence check is made, return now */
if (mode == 0) {
PHP_WIN32_IOUTIL_CLEANUP_W()
free(real_path);
return 0;
}
}
/* Only in NTS when impersonate==1 (aka FastCGI) */
/*
AccessCheck() requires an impersonation token. We first get a primary
token and then create a duplicate impersonation token. The
impersonation token is not actually assigned to the thread, but is
used in the call to AccessCheck. Thus, this function itself never
impersonates, but does use the identity of the thread. If the thread
was impersonating already, this function uses that impersonation context.
*/
if(!OpenThreadToken(GetCurrentThread(), TOKEN_ALL_ACCESS, TRUE, &thread_token)) {
if (GetLastError() == ERROR_NO_TOKEN) {
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &thread_token)) {
TWG(impersonation_token) = NULL;
goto Finished;
}
}
/*
AccessCheck() requires an impersonation token. We first get a primary
token and then create a duplicate impersonation token. The
impersonation token is not actually assigned to the thread, but is
used in the call to AccessCheck. Thus, this function itself never
impersonates, but does use the identity of the thread. If the thread
was impersonating already, this function uses that impersonation context.
*/
if(!OpenThreadToken(GetCurrentThread(), TOKEN_ALL_ACCESS, TRUE, &thread_token)) {
if (GetLastError() == ERROR_NO_TOKEN) {
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &thread_token)) {
TWG(impersonation_token) = NULL;
goto Finished;
}
}
}
/* token_sid will be freed in tsrmwin32_dtor */
token_sid = tsrm_win32_get_token_sid(thread_token);
if (!token_sid) {
if (TWG(impersonation_token_sid)) {
free(TWG(impersonation_token_sid));
}
TWG(impersonation_token_sid) = NULL;
/* token_sid will be freed in tsrmwin32_dtor */
token_sid = tsrm_win32_get_token_sid(thread_token);
if (!token_sid) {
if (TWG(impersonation_token_sid)) {
free(TWG(impersonation_token_sid));
}
TWG(impersonation_token_sid) = NULL;
goto Finished;
}
/* Different identity, we need a new impersontated token as well */
if (!TWG(impersonation_token_sid) || !EqualSid(token_sid, TWG(impersonation_token_sid))) {
if (TWG(impersonation_token_sid)) {
free(TWG(impersonation_token_sid));
}
TWG(impersonation_token_sid) = token_sid;
/* Duplicate the token as impersonated token */
if (!DuplicateToken(thread_token, SecurityImpersonation, &TWG(impersonation_token))) {
goto Finished;
}
} else {
/* we already have it, free it then */
free(token_sid);
}
/* Different identity, we need a new impersontated token as well */
if (!TWG(impersonation_token_sid) || !EqualSid(token_sid, TWG(impersonation_token_sid))) {
if (TWG(impersonation_token_sid)) {
free(TWG(impersonation_token_sid));
if (CWDG(realpath_cache_size_limit)) {
t = time(0);
bucket = realpath_cache_lookup(pathname, strlen(pathname), t);
if(bucket == NULL && !real_path[0]) {
/* We used the pathname directly. Call tsrm_realpath */
/* so that entry is created in realpath cache */
if(tsrm_realpath(pathname, real_path) != NULL) {
pathname = real_path;
bucket = realpath_cache_lookup(pathname, strlen(pathname), t);
PHP_WIN32_IOUTIL_REINIT_W(pathname);
}
TWG(impersonation_token_sid) = token_sid;
/* Duplicate the token as impersonated token */
if (!DuplicateToken(thread_token, SecurityImpersonation, &TWG(impersonation_token))) {
goto Finished;
}
} else {
/* we already have it, free it then */
free(token_sid);
}
}
if (CWDG(realpath_cache_size_limit)) {
t = time(0);
bucket = realpath_cache_lookup(pathname, strlen(pathname), t);
if(bucket == NULL && real_path == NULL) {
/* We used the pathname directly. Call tsrm_realpath */
/* so that entry is created in realpath cache */
real_path = (char *)malloc(MAXPATHLEN);
if(tsrm_realpath(pathname, real_path) != NULL) {
pathname = real_path;
bucket = realpath_cache_lookup(pathname, strlen(pathname), t);
PHP_WIN32_IOUTIL_REINIT_W(pathname);
}
}
}
/* Do a full access check because access() will only check read-only attribute */
if(mode == 0 || mode > 6) {
if(bucket != NULL && bucket->is_rvalid) {
fAccess = bucket->is_readable;
goto Finished;
}
desired_access = FILE_GENERIC_READ;
} else if(mode <= 2) {
if(bucket != NULL && bucket->is_wvalid) {
fAccess = bucket->is_writable;
goto Finished;
}
desired_access = FILE_GENERIC_WRITE;
} else if(mode <= 4) {
if(bucket != NULL && bucket->is_rvalid) {
fAccess = bucket->is_readable;
goto Finished;
}
desired_access = FILE_GENERIC_READ|FILE_FLAG_BACKUP_SEMANTICS;
} else { // if(mode <= 6)
if(bucket != NULL && bucket->is_rvalid && bucket->is_wvalid) {
fAccess = bucket->is_readable & bucket->is_writable;
goto Finished;
}
desired_access = FILE_GENERIC_READ | FILE_GENERIC_WRITE;
}
if(TWG(impersonation_token) == NULL) {
/* Do a full access check because access() will only check read-only attribute */
if(mode == 0 || mode > 6) {
if(bucket != NULL && bucket->is_rvalid) {
fAccess = bucket->is_readable;
goto Finished;
}
/* Get size of security buffer. Call is expected to fail */
if(GetFileSecurityW(pathw, sec_info, NULL, 0, &sec_desc_length)) {
desired_access = FILE_GENERIC_READ;
} else if(mode <= 2) {
if(bucket != NULL && bucket->is_wvalid) {
fAccess = bucket->is_writable;
goto Finished;
}
psec_desc = (BYTE *)malloc(sec_desc_length);
if(psec_desc == NULL ||
!GetFileSecurityW(pathw, sec_info, (PSECURITY_DESCRIPTOR)psec_desc, sec_desc_length, &sec_desc_length)) {
desired_access = FILE_GENERIC_WRITE;
} else if(mode <= 4) {
if(bucket != NULL && bucket->is_rvalid) {
fAccess = bucket->is_readable;
goto Finished;
}
MapGenericMask(&desired_access, &gen_map);
if(!AccessCheck((PSECURITY_DESCRIPTOR)psec_desc, TWG(impersonation_token), desired_access, &gen_map, &privilege_set, &priv_set_length, &granted_access, &fAccess)) {
goto Finished_Impersonate;
desired_access = FILE_GENERIC_READ|FILE_FLAG_BACKUP_SEMANTICS;
} else { // if(mode <= 6)
if(bucket != NULL && bucket->is_rvalid && bucket->is_wvalid) {
fAccess = bucket->is_readable & bucket->is_writable;
goto Finished;
}
desired_access = FILE_GENERIC_READ | FILE_GENERIC_WRITE;
}
/* Keep the result in realpath_cache */
if(bucket != NULL) {
if(desired_access == (FILE_GENERIC_READ|FILE_FLAG_BACKUP_SEMANTICS)) {
bucket->is_rvalid = 1;
bucket->is_readable = fAccess;
}
else if(desired_access == FILE_GENERIC_WRITE) {
bucket->is_wvalid = 1;
bucket->is_writable = fAccess;
} else if (desired_access == (FILE_GENERIC_READ | FILE_GENERIC_WRITE)) {
bucket->is_rvalid = 1;
bucket->is_readable = fAccess;
bucket->is_wvalid = 1;
bucket->is_writable = fAccess;
}
if(TWG(impersonation_token) == NULL) {
goto Finished;
}
/* Get size of security buffer. Call is expected to fail */
if(GetFileSecurityW(pathw, sec_info, NULL, 0, &sec_desc_length)) {
goto Finished;
}
psec_desc = (BYTE *)malloc(sec_desc_length);
if(psec_desc == NULL ||
!GetFileSecurityW(pathw, sec_info, (PSECURITY_DESCRIPTOR)psec_desc, sec_desc_length, &sec_desc_length)) {
goto Finished;
}
MapGenericMask(&desired_access, &gen_map);
if(!AccessCheck((PSECURITY_DESCRIPTOR)psec_desc, TWG(impersonation_token), desired_access, &gen_map, &privilege_set, &priv_set_length, &granted_access, &fAccess)) {
goto Finished_Impersonate;
}
/* Keep the result in realpath_cache */
if(bucket != NULL) {
if(desired_access == (FILE_GENERIC_READ|FILE_FLAG_BACKUP_SEMANTICS)) {
bucket->is_rvalid = 1;
bucket->is_readable = fAccess;
}
else if(desired_access == FILE_GENERIC_WRITE) {
bucket->is_wvalid = 1;
bucket->is_writable = fAccess;
} else if (desired_access == (FILE_GENERIC_READ | FILE_GENERIC_WRITE)) {
bucket->is_rvalid = 1;
bucket->is_readable = fAccess;
bucket->is_wvalid = 1;
bucket->is_writable = fAccess;
}
}
Finished_Impersonate:
if(psec_desc != NULL) {
free(psec_desc);
psec_desc = NULL;
}
if(psec_desc != NULL) {
free(psec_desc);
psec_desc = NULL;
}
Finished:
if(thread_token != NULL) {
CloseHandle(thread_token);
}
if(real_path != NULL) {
free(real_path);
real_path = NULL;
}
if(thread_token != NULL) {
CloseHandle(thread_token);
}
PHP_WIN32_IOUTIL_CLEANUP_W()
if(fAccess == FALSE) {
errno = EACCES;
return errno;
} else {
return 0;
}
PHP_WIN32_IOUTIL_CLEANUP_W()
if(fAccess == FALSE) {
errno = EACCES;
return errno;
} else {
return 0;
}
}/*}}}*/
@@ -789,15 +764,6 @@ TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf)
}
}/*}}}*/
TSRM_API char *realpath(char *orig_path, char *buffer)
{/*{{{*/
int ret = GetFullPathName(orig_path, _MAX_PATH, buffer, NULL);
if(!ret || ret > _MAX_PATH) {
return NULL;
}
return buffer;
}/*}}}*/
#if HAVE_UTIME
static zend_always_inline void UnixTimeToFileTime(time_t t, LPFILETIME pft) /* {{{ */
{
-4
View File
@@ -16,8 +16,6 @@
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifndef TSRM_WIN32_H
#define TSRM_WIN32_H
@@ -110,8 +108,6 @@ TSRM_API int shmget(key_t key, size_t size, int flags);
TSRM_API void *shmat(int key, const void *shmaddr, int flags);
TSRM_API int shmdt(const void *shmaddr);
TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf);
TSRM_API char *realpath(char *orig_path, char *buffer);
#endif
/*
+627 -270
View File
File diff suppressed because it is too large. Load diff
+175 -49
View File
@@ -1,14 +1,34 @@
PHP 7.2 INTERNALS UPGRADE NOTES
PHP 7.3 INTERNALS UPGRADE NOTES
1. Internal API changes
a. Path related functions
b. php_win32_get_random_bytes()
c. nice() Windows implementation
d. ZEND_ACC_CLONE removed
e. IS_TYPE_IMMUTABLE removed
f. zend_arg_info.class_name removed
g. ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX changed
h. valid_symbol_table removed
a. array_init() and array_init_size()
b. Run-time constant operand addressing
c. Array/Object recursion protection
d. HASH_FLAG_PERSISTENT
e. AST and IS_CONSTANT
f. GC_REFCOUNT()
g. zend_get_parameters()
h. zend_register_persistent_resource()
i. RAND_RANGE()
j. cast_object() with _IS_NUMBER
k. zend_fcall_info_cache.initialized
l. php_hrtime_current()
m. zend_cpu_supports()
n. IS_TYPE_COPYABLE
o. IS_UNUSED
p. VM instruction operands (FETCH_CLASS, FETCH_CONSTANT, CATCH)
q. sapi_cli_single_write()
r. php_url
s. zend_function.reserved[]
t. zif_handler
u. GC_G
v. php_add[c]slashes
w. zend_class_entry.iterator_funcs
x. Class declaration opcodes (DECLARE_INHERITED_CLASS ...)
y. zend_constant
z. HAVE_ST_BLKSIZE and HAVE_ST_RDEV
aa. RETSIGTYPE
bb. php_setcookie
2. Build system changes
a. Unix build system changes
@@ -21,62 +41,168 @@ PHP 7.2 INTERNALS UPGRADE NOTES
1. Internal API changes
========================
a. Path related functions
- CWD_API void realpath_cache_del(const char *path, size_t path_len);
- CWD_API realpath_cache_bucket* realpath_cache_lookup(const char *path, size_t path_len, time_t t);
- PHPAPI void php_clear_stat_cache(zend_bool clear_realpath_cache, const char *filename, size_t filename_len);
- PHPAPI void php_stat(const char *filename, size_t filename_length, int type, zval *return_value);
a. array_init() and array_init_size() are not functions anymore.
They don't return any values.
b. php_win32_get_random_bytes()
The internal randomness source on Windows switched to use CNG API.
b. In 64-bit builds PHP-7.2 and below used relative run-time constant operand
addressing. E.g. opline->op1.constant kept an offset from start of literals
table - op_array->literals. To speedup access op_array->literals was cached
in execute_data->literals. So the resulting address calculated as
EX(literals) + opline->op1.constant.
c. nice() now have a Windows alternative that is implemented in win32/nice.c, using
SetPriorityClass(). See the implementation for more in-depth details. This also
defines HAVE_NICE.
Now at run-time literals allocated close to opcodes, and addressed
relatively from current opline. This eliminates load of EX(literals) on
each constant access as well as EX(literals) initialization on each call.
d. ZEND_ACC_CLONE is removed, but was not used in previous versions
As result some related macros were removed (ZEND_EX_USE_LITERALS,
EX_LOAD_LITERALS, EX_LITERALS, RT_CONSTANT_EX, EX_CONSTANT) or changed
(RT_CONSTANT, ZEND_PASS_TWO_UPDATE_CONSTANT, ZEND_PASS_TWO_UNDO_CONSTANT).
This change may affect only some "system" extensions. EX_LITERALS,
RT_CONSTANT_EX, EX_CONSTANT should be substituted by RT_CONSTANT, and now
use "opline" (instead of "op_array") as first argument.
e. IS_TYPE_IMMUTABLE is removed, IS_TYPE_COPYABLE can be used instead
Z_IMMUTABLE() check function is still available
c. Protection from recursion during processing circular data structures was
refactored. HashTable.nApplyCount and IS_OBJ_APPLY_COUNT are replaced by
single flag GC_PROTECTED. Corresponding macros Z_OBJ_APPLY_COUNT,
Z_OBJ_INC_APPLY_COUNT, Z_OBJ_DEC_APPLY_COUNT, ZEND_HASH_GET_APPLY_COUNT,
ZEND_HASH_INC_APPLY_COUNT, ZEND_HASH_DEC_APPLY_COUNT are replaced with
GC_IS_RECURSIVE, GC_PROTECT_RECURSION, GC_UNPROTECT_RECURSION,
Z_IS_RECURSIVE, Z_PROTECT_RECURSION, Z_UNPROTECT_RECURSION.
f. zend_arg_info class_name member is removed, use ZEND_TYPE_NAME instead
HASH_FLAG_APPLY_PROTECTION flag and ZEND_HASH_APPLY_PROTECTION() macro
are removed. All mutable arrays should use recursion protection.
Corresponding checks should be replaced by Z_REFCOUNTED() or
!(GC_FLAGS(p) & GC_IMMUTABLE).
g. ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX classname option is removed
use ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX for simple type
use ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX for object
d. HASH_FLAG_PERSISTENT renamed into IS_ARRAY_PERSISTENT and moved into
GC_FLAGS (to be consistent with IS_STR_PERSISTENT).
h. valid_symbol_table is removed from executor_globals.
Use EG(active) instead of removed EG(valid_symbol_table)
e. zend_ast_ref structure is changed to use only one allocation.
zend_ast_copy() now returns zend_ast_ref (instead of zend_asr).
zend_ast_destroy_and_free() is removed. ZVAL_NEW_AST() is replaced
by ZVAL_AST().
IS_CONSTANT type and Z_CONST_FLAGS() are removed. Now constants are always
represented using IS_CONSTANT_AST (ZEND_AST_CONSTANT kind). AST node
attributes are used instead of constant flags. IS_TYPE_CONSTANT flag is
removed, but Z_CONSTANT() macro is kept for compatibility.
f. GC_REFCOUNT() is turned into inline function and can't be modified direcly.
All reference-counting operations should be done through corresponding
macros GC_SET_REFCOUNT(), GC_ADDREF() and GC_DELREF().
GC_REFCOUNT(p)++ should be changed into GC_ADDREF(p),
GC_REFCOUNT(p)-- into GC_DELREF(p),
GC_REFCOUNT(p) = 1 into GC_SET_REFCOUNT(p, 1).
g. The zend_get_parameters() and zend_get_parameters_ex() functions were
removed. Instead zend_parse_parameters() should be used.
h. New functions zend_register_persistent_resource() or
zend_register_persistent_resource_ex() should beused to register
persistent resources, instead of manual insertion into EG(persistent_list).
i. The RAND_RANGE() macro has been removed. php_mt_rand_range() should be
used instead.
j. The cast_object() object handler now also accepts the _IS_NUMBER type. The
handler should return either an integer or float value in this case,
whichever is more appropriate.
k. zend_fcall_info_cache.initialized is removed. zend_fcall_info_cache is
initialized if zend_fcall_info_cache.function_handler is set.
l. php_hrtime_current() delivers the number of nanoseconds since an uncertain
point in the past.
m. zend_cpu_supports() determines if a feature is supported by current cpu.
Also serial inline zend_cpu_supports_xxx() are added, which is designed for
ifunc resolver function, as resolver function should not depend on any
external function.
n. IS_TYPE_COPYABLE flag is removed. IS_STRING zvals didn't need to be
duplication by zval_copy_ctor(), ZVAL_DUP() and SEPARATE_ZVAL*() macros.
Interned strings didn't set IS_TYPE_COPYABLE, so they aren't affected at
all. Now instead of checking for IS_TYPE_COPYABLE, engine checks for
IS_ARRAY type (it may be IS_TYPE_REFCOUNTED or not). All the related
macros: Z_COPYABLE..., Z_IMMUTABLE... are kept for compatibility.
o. IS_UNUSED became zero and can't be used as a bitmask (there were no such
usages in PHP sources).
p. Operands of few VM instructions were changed
- FETCH_CLASS op1<fetch-flags>, op2<name>, result<var>
- FETCH_CONSTANT op1<fetch-flags>, op2<name>, result<tmp>
- CATCH ext<last-flag>, op1<name>, op2<jump_addr>, result<cv>
q. sapi_cli_single_write() now returns ssize_t instead of size_t.
r. fields of php_url struct change from char * to zend_string *
s. Special purpose zend_functions marked by ZEND_ACC_CALL_VIA_TRAMPOLINE or
ZEND_ACC_FAKE_CLOSURE flags use reserved[0] for internal purpose.
Third party extensions must not modify reserved[] fields of these functions.
t. For internal functions the typedef zif_handler has been introduced. It is
recommended to use this from now on, instead of defining own handler types.
u. The GC globals (GC_G) are now private. Use the new zend_gc_get_status() to
retrieve status information of the GC.
v. The should_free argument of the php_add[c]slashes functions has been
removed. It is now always the caller's responsibility to free the passed
string.
w. zend_class_entry.iterator_funcs have been replaced by iterator_funcs_ptr.
You don't have to set its value, setting parent.funcs in the get_iterator
function is enough.
x. Class declaration opcode formats were changed
- DECLARE_INHERITED_CLASS and DECLARE_ANON_INHERITED_CLASS now encode parent
class name in second operand directly (as IS_CONST operand). Previously,
parent class was fetched by the prior FETCH_CLASS opcode.
- ADD_INTERFACE and ADD_TRAIT don't use run-time cache to keep interface or
trait. These instructions are executed once, and caching is useless.
y. zend_constant.flags and zend_constant.module_number are packed into
reserved space inside zend_constant.value. They should be accessed using
ZEND_CONSTANT_FLAGS(), ZEND_CONSTANT_MODULE_NUMBER() and
ZEND_CONSTANT_SET_FLAGS() macros.
z. HAVE_ST_BLKSIZE must be replaced with HAVE_STRUCT_STAT_ST_BLKSIZE and
HAVE_ST_RDEV must be replaced with HAVE_STRUCT_STAT_ST_RDEV.
aa. RETSIGTYPE has been removed from the generated php_config.h and should be
replaced with void.
bb. php_setcookie() now expects an additional samesite argument, and the
url_encode parameter has been moved to the end. The signature is now:
int php_setcookie(zend_string *name, zend_string *value, time_t expires,
zend_string *path, zend_string *domain, int secure,
int httponly, zend_string *samesite, int url_encode);
========================
2. Build system changes
========================
a. Unix build system changes
- PHP_PROG_LEX, TSRM_CHECK_GCC_ARG, and LIBZEND_CPLUSPLUS_CHECKS Autoconf
macros have been removed.
- Minimum Autoconf version is 2.68+ for generating the configure script.
b. Windows build system changes
. Minimum supported Windows versions are Windows 7/Server 2008 R2.
. --enable-one-shot configure option is removed, --with-mp is usable.
. The new binary tools SDK is required for Windows builds, the
documentation is available under https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2
. Visual Studio 2017 is utilized for the Windows builds
. Clang build with ASAN is supported with clang 5+
- ZEND_WIN32_FORCE_INLINE doesn't affect C++ anymore. zend_always_inline is
still usable in C++, but anything else inlining related is up to
compiler.
- ZEND_WIN32_KEEP_INLINE was removed, it was only needed for C++
convenience and is now default behavior with C++.
- New configure option --enable-native-intrinsics accepts a list of the
intrinsic optimizations to enable. It affects both the code generation
and the explicit optimizations guarded by preprocessor macros.
- The configure option --with-codegen-arch accepts only ia32 as a value.
Use it, to produce builds suitable for older processors without SSE2 or
even SSE support.
========================
3. Module changes
========================
- Pcre:
. php_pcre_replace and php_pcre_replace_impl expect a zend_string instead of a zval and
is_callable_replace options is removed:
- PHPAPI zend_string *php_pcre_replace(zend_string *regex, zend_string *subject_str, char *subject, int subject_len, zend_string *replace_str, int limit, int *replace_count);
- PHPAPI zend_string *php_pcre_replace_impl(pcre_cache_entry *pce, zend_string *subject_str, char *subject, int subject_len, zend_string *replace_str, int limit, int *replace_count);
- Session:
. php_session_start()/session_reset_id() return value is changed from void to int.
It returns SUCCESS/FAILURE.
. Session module manages session status correctly.
- OpenSSL:
. Windows builds ship with OpenSSL 1.1 by default, lower versions are still supported with custom deps.
+1 -1
View File
@@ -18,7 +18,7 @@ libZend_la_SOURCES=\
zend_default_classes.c \
zend_iterators.c zend_interfaces.c zend_exceptions.c \
zend_strtod.c zend_closures.c zend_float.c zend_string.c zend_signal.c \
zend_generators.c zend_virtual_cwd.c zend_ast.c zend_smart_str.c
zend_generators.c zend_virtual_cwd.c zend_ast.c zend_smart_str.c zend_cpuinfo.c
libZend_la_CFLAGS = -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1
libZend_la_LDFLAGS =
-195
View File
@@ -1,195 +0,0 @@
Creating an object
------------------
Object can be created in the following ways:
1. As a result of a function call. E.g.:
$foo = create_new_foo("parameter");
$foo->run();
The function should create a new zval, create new object and get the
handle for it, set handle and handler table as needed. Note that the
handle is the only ID of the object, so it should be enough to
identify it.
2. Overriding create_object handler for class. E.g.:
$foo = new Java("some.Class.here", "parameter");
$foo->run();
The create_object handler function should create a new zval, create
new object and get the handle for it, set handle and handler table as
needed, and also provide constructor method that would handle
constructor call. The get_constructor handler table entry should be
used for that. Do not rely class entry's constructor, unless you refer
to it from get_constructor handler.
Object maintenance
------------------
The handlers add_ref and del_ref are called when a new zval referring
to the object is created. This does not create a new object - both
zvals still refer to the same object.
clone_obj handler should create a new object, identical to an old one,
but being a separate entity.
delete_obj should destroy an object, all references to it become
invalid.
Object access - read
--------------------
read_property is used to read object's property. This value is not
meant to be changed. The handler returns zval * with the value.
Object access - write
---------------------
write_property is used to directly write object's property by
name. This handler is used to assign property variables or to change them
in operations like += or ++ (unless get_property_zval_ptr is also set).
get_property_zval_ptr is used to obtain pointer to modifiable zval for
operations like += or ++. This should be used only if your object model
stores properties as real zval's that can be modified from outside.
Otherwise this handler should be NULL and the engine will use
read_property and write_property instead.
get_property_ptr is used to obtain zval ** for future writing to
it. If your object properties are stored as zval*, return real place
where the property is stored. If the aren't, the best way is to create
proxy object and handle it via get and set methods (see below).
This method is meant to be used for send-by-reference and assign-by-reference
use of object properties. If you don;t want to implement property
referencing for your objects, you can set this handler to NULL.
get and set handlers are used when engine needs to access the object
as a value. E.g., in the following situation:
$foo =& $obj->bar;
$foo = 1;
if $foo is an object (e.g., proxy object from get_property_ptr) it
would be accessed using write handler.
Object access - method call
---------------------------
get_method handler is used to find method description by name. It
should set right type, function name and parameter mask for the
method. If the type is ZEND_OVERLOADED_FUNCTION, the method would be
called via call_method handler, otherwise it would be called with
standard Zend means.
get_constructor performs the same function as get_method, but for the
object constructor.
call_method handler is used to perform method call. Parameters are
passed like to any other Zend internal function.
Object - comparison
-------------------
Objects can be compared via compare_objects handler. This is used with
== operation, === compares objects by handles, i.e., return true if
and only if it's really the same object. Note that objects from
different object types (i.e., having different handlers) can not be
compared.
Objects - reflection
--------------------
get_class_name is used to retrieve class name of the object.
get_class_entry returns class entry (zend_class_entry) for the object,
in case there exists PHP class for it.
No other reflection functions are currently implemented.
Objects - data structures and handlers
---------------------------------------
The object is represented by the following structure:
struct _zend_object_value {
zend_object_handle handle;
zend_object_handlers *handlers;
};
handle is an ID of the object among the objects of the same type (not
class!). The type of the object and how it behaves is determined by
the handler table.
typedef struct _zend_object_handlers {
zend_object_add_ref_t add_ref;
zend_object_del_ref_t del_ref;
zend_object_delete_obj_t delete_obj;
zend_object_clone_obj_t clone_obj;
zend_object_read_property_t read_property;
zend_object_write_property_t write_property;
zend_object_get_property_ptr_t get_property_ptr;
zend_object_get_property_zval_ptr_t get_property_zval_ptr;
zend_object_get_t get;
zend_object_set_t set;
zend_object_has_property_t has_property;
zend_object_unset_property_t unset_property;
zend_object_get_properties_t get_properties;
zend_object_get_method_t get_method;
zend_object_call_method_t call_method;
zend_object_get_constructor_t get_constructor;
zend_object_get_class_entry_t get_class_entry;
zend_object_get_class_name_t get_class_name;
zend_object_compare_t compare_objects;
} zend_object_handlers;
See zend_object_handlers.h for prototypes. All objects are passed as zval's.
Handlers explained:
add_ref - called when a copy of the object handle is created.
del_ref - called when a copy of the object handle is destroyed.
delete_obj - called when an object needs to be destroyed.
clone_obj - called when a new object identical to an old one should be
created (unlike Zend Engine 1, this never happens unless explicitly
asked for).
read_property - returns zval *, containing the value of the
property. Is used when value of the property should be retrieved for
reading.
write_property - assigns value to certain property of the object.
get_property_zval_ptr - retrieves zval** for being directly modified by
the engine. If your properties are not zval's, don't define it.
get_property_ptr - retrieves zval** for the property of the value, to
be used for read and write. If object properties are not zval's
natively, this method should create and return proxy object for use
with get and set methods.
get - retrieves zval* for object contents. To be used mainly with
proxy objects from get_property_ptr, but also may be used for
convert_to_* functions.
set - sets value for object contents. To be used mainly with
proxy objects from get_property_ptr.
has_property - checks if the object has certain property set.
unset_property - removes value for the property of the object
get_method - retrieves description of the method
call_method - calls the method (parameters should be put on stack like
for any other PHP internal function).
get_constructor - get description for the object constructor method
get_class_entry - should return the class entry for the object
get_class_name - get the name of the class the object belongs to
compare_objects - compares if two objects are equal
-5
View File
@@ -100,8 +100,3 @@ zend_vm_execute.h. Debugging with original file requires --with-lines
option. By default ZE2 uses the following command to generate executor:
$ php zend_vm_gen.php --with-vm-kind=CALL
Zend Engine II currently includes two executors during the build process, one
is the specialized version and the other is the old one non-specialized with
function handlers. By default Zend Engine II uses the specialized one but you
can switch to the old executor at runtime by calling zend_vm_use_old_executor().
+44 -33
View File
@@ -1,12 +1,10 @@
dnl
dnl $Id$
dnl
dnl This file contains Zend specific autoconf functions.
dnl
AC_DEFUN([LIBZEND_CHECK_INT_TYPE],[
AC_MSG_CHECKING(for $1)
AC_TRY_COMPILE([
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#if HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
@@ -14,16 +12,16 @@ AC_TRY_COMPILE([
#include <inttypes.h>
#elif HAVE_STDINT_H
#include <stdint.h>
#endif],
[if (($1 *) 0)
#endif]],
[[if (($1 *) 0)
return 0;
if (sizeof ($1))
return 0;
],[
]])],[
AC_DEFINE_UNQUOTED([HAVE_]translit($1,a-z_-,A-Z__), 1,[Define if $1 type is present. ])
AC_MSG_RESULT(yes)
], AC_MSG_RESULT(no)
)dnl
], [AC_MSG_RESULT(no)
])dnl
])
AC_DEFUN([LIBZEND_BASIC_CHECKS],[
@@ -60,10 +58,10 @@ sys/time.h \
signal.h \
unix.h \
stdlib.h \
cpuid.h \
dlfcn.h)
AC_TYPE_SIZE_T
AC_TYPE_SIGNAL
AC_DEFUN([LIBZEND_LIBDL_CHECKS],[
AC_CHECK_LIB(dl, dlopen, [LIBS="-ldl $LIBS"])
@@ -109,7 +107,7 @@ ZEND_CHECK_FLOAT_PRECISION
dnl test whether double cast to long preserves least significant bits
AC_MSG_CHECKING(whether double cast to long preserves least significant bits)
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <limits.h>
int main()
@@ -129,7 +127,7 @@ int main()
}
exit(1);
}
], [
]])], [
AC_DEFINE([ZEND_DVAL_TO_LVAL_CAST_OK], 1, [Define if double cast to long preserves least significant bits])
AC_MSG_RESULT(yes)
], [
@@ -195,7 +193,6 @@ test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS"
if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
AC_DEFINE(ZTS,1,[ ])
CFLAGS="$CFLAGS -DZTS"
LIBZEND_CPLUSPLUS_CHECKS
fi
changequote({,})
@@ -222,7 +219,7 @@ dnl test and set the alignment define for ZEND_MM
dnl this also does the logarithmic test for ZEND_MM.
AC_MSG_CHECKING(for MM alignment and log values)
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdio.h>
typedef union _mm_align_test {
@@ -254,7 +251,7 @@ int main()
exit(0);
}
], [
]])], [
LIBZEND_MM_ALIGN=`cat conftest.zend | cut -d ' ' -f 1`
LIBZEND_MM_ALIGN_LOG2=`cat conftest.zend | cut -d ' ' -f 2`
AC_DEFINE_UNQUOTED(ZEND_MM_ALIGNMENT, $LIBZEND_MM_ALIGN, [ ])
@@ -269,7 +266,7 @@ AC_MSG_RESULT(done)
dnl test for memory allocation using mmap(MAP_ANON)
AC_MSG_CHECKING(for memory allocation using mmap(MAP_ANON))
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@ -301,7 +298,7 @@ int main()
}
return 0;
}
], [
]])], [
AC_DEFINE([HAVE_MEM_MMAP_ANON], 1, [Define if the target system has support for memory allocation using mmap(MAP_ANON)])
AC_MSG_RESULT(yes)
], [
@@ -314,7 +311,7 @@ int main()
dnl test for memory allocation using mmap("/dev/zero")
AC_MSG_CHECKING(for memory allocation using mmap("/dev/zero"))
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@ -356,7 +353,7 @@ int main()
}
return 0;
}
], [
]])], [
AC_DEFINE([HAVE_MEM_MMAP_ZERO], 1, [Define if the target system has support for memory allocation using mmap("/dev/zero")])
AC_MSG_RESULT(yes)
], [
@@ -391,10 +388,6 @@ AC_MSG_RESULT($ZEND_SIGNALS)
])
AC_DEFUN([LIBZEND_CPLUSPLUS_CHECKS],[
])
AC_MSG_CHECKING(whether /dev/urandom exists)
if test -r "/dev/urandom" && test -c "/dev/urandom"; then
AC_DEFINE([HAVE_DEV_URANDOM], 1, [Define if the target system has /dev/urandom device])
@@ -420,7 +413,7 @@ AC_ARG_ENABLE(gcc-global-regs,
])
AC_MSG_CHECKING(for global register variables support)
if test "$ZEND_GCC_GLOBAL_REGS" != "no"; then
AC_TRY_COMPILE([
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#if defined(__GNUC__)
# define ZEND_GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
#else
@@ -453,8 +446,8 @@ int emu(const opcode_handler_t *ip, void *fp) {
FP = orig_fp;
IP = orig_ip;
}
], [
], [
]], [[
]])], [
ZEND_GCC_GLOBAL_REGS=yes
], [
ZEND_GCC_GLOBAL_REGS=no
@@ -471,7 +464,7 @@ dnl
dnl Check if atof() accepts NAN
dnl
AC_CACHE_CHECK(whether atof() accepts NAN, ac_cv_atof_accept_nan,[
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <math.h>
#include <stdlib.h>
@@ -487,7 +480,7 @@ int main(int argc, char** argv)
{
return zend_isnan(atof("NAN")) ? 0 : 1;
}
],[
]])],[
ac_cv_atof_accept_nan=yes
],[
ac_cv_atof_accept_nan=no
@@ -502,7 +495,7 @@ dnl
dnl Check if atof() accepts INF
dnl
AC_CACHE_CHECK(whether atof() accepts INF, ac_cv_atof_accept_inf,[
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <math.h>
#include <stdlib.h>
@@ -521,7 +514,7 @@ int main(int argc, char** argv)
{
return zend_isinf(atof("INF")) && zend_isinf(atof("-INF")) ? 0 : 1;
}
],[
]])],[
ac_cv_atof_accept_inf=yes
],[
ac_cv_atof_accept_inf=no
@@ -536,7 +529,7 @@ dnl
dnl Check if HUGE_VAL == INF
dnl
AC_CACHE_CHECK(whether HUGE_VAL == INF, ac_cv_huge_val_inf,[
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <math.h>
#include <stdlib.h>
@@ -555,7 +548,7 @@ int main(int argc, char** argv)
{
return zend_isinf(HUGE_VAL) ? 0 : 1;
}
],[
]])],[
ac_cv_huge_val_inf=yes
],[
ac_cv_huge_val_inf=no
@@ -571,7 +564,7 @@ dnl
dnl Check if HUGE_VAL + -HUGEVAL == NAN
dnl
AC_CACHE_CHECK(whether HUGE_VAL + -HUGEVAL == NAN, ac_cv_huge_val_nan,[
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <math.h>
#include <stdlib.h>
@@ -592,7 +585,7 @@ int main(int argc, char** argv)
return zend_isnan(HUGE_VAL + -HUGE_VAL) ? 0 : 1;
#endif
}
],[
]])],[
ac_cv_huge_val_nan=yes
],[
ac_cv_huge_val_nan=no
@@ -603,3 +596,21 @@ dnl This is the most probable fallback so we assume yes in case of cross compile
if test "$ac_cv_huge_val_nan" = "yes"; then
AC_DEFINE([HAVE_HUGE_VAL_NAN], 1, [whether HUGE_VAL + -HUGEVAL == NAN])
fi
dnl
dnl Check whether __cpuid_count is available
dnl
AC_CACHE_CHECK(whether __cpuid_count is available, ac_cv_cpuid_count_available, [
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <cpuid.h>
]], [[
unsigned eax, ebx, ecx, edx;
__cpuid_count(0, 0, eax, ebx, ecx, edx);
]])], [
ac_cv_cpuid_count_available=yes
], [
ac_cv_cpuid_count_available=no
])])
if test "$ac_cv_cpuid_count_available" = "yes"; then
AC_DEFINE([HAVE_CPUID_COUNT], 1, [whether __cpuid_count is available])
fi
-258
View File
@@ -1,258 +0,0 @@
# Microsoft Developer Studio Generated Dependency File, included by ZendCore.mak
.\zend_alloc.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\alloca.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_compile.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_constants.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_operators.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_execute.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_highlight.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_highlight.h"\
".\zend_llist.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_language_parser.tab.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\zend_llist.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_llist.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_opcode.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_operators.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\zend_ptr_stack.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_ptr_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_stack.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_variables.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
".\zend_list.h"\
.\zend.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_operators.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_API.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
".\zend_list.h"\
.\zend_hash.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_ini.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
".\zend_ini.h"\
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
+21 -26
View File
@@ -1,5 +1,3 @@
dnl $Id$
dnl
dnl This file contains local autoconf functions.
AC_DEFUN([LIBZEND_BISON_CHECK],[
@@ -46,16 +44,14 @@ AC_DEFUN([LIBZEND_BISON_CHECK],[
AC_DEFUN([ZEND_FP_EXCEPT],[
AC_CACHE_CHECK(whether fp_except is defined, ac_cv_type_fp_except,[
AC_TRY_COMPILE([
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <floatingpoint.h>
],[
]],[[
fp_except x = (fp_except) 0;
],[
]])],[
ac_cv_type_fp_except=yes
],[
ac_cv_type_fp_except=no
],[
ac_cv_type_fp_except=no
])])
if test "$ac_cv_type_fp_except" = "yes"; then
AC_DEFINE(HAVE_FP_EXCEPT, 1, [whether floatingpoint.h defines fp_except])
@@ -67,7 +63,7 @@ dnl Check for broken sprintf()
dnl
AC_DEFUN([AC_ZEND_BROKEN_SPRINTF],[
AC_CACHE_CHECK(whether sprintf is broken, ac_cv_broken_sprintf,[
AC_TRY_RUN([main() {char buf[20];exit(sprintf(buf,"testing 123")!=11); }],[
AC_RUN_IFELSE([AC_LANG_SOURCE([[main() {char buf[20];exit(sprintf(buf,"testing 123")!=11); }]])],[
ac_cv_broken_sprintf=no
],[
ac_cv_broken_sprintf=yes
@@ -91,8 +87,7 @@ AC_DEFUN([AC_ZEND_C_BIGENDIAN],
[AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian_php,
[
ac_cv_c_bigendian_php=unknown
AC_TRY_RUN(
[
AC_RUN_IFELSE([AC_LANG_SOURCE([[
int main(void)
{
short one = 1;
@@ -104,7 +99,7 @@ int main(void)
return(1);
}
}
], [ac_cv_c_bigendian_php=yes], [ac_cv_c_bigendian_php=no], [ac_cv_c_bigendian_php=unknown])
]])], [ac_cv_c_bigendian_php=yes], [ac_cv_c_bigendian_php=no], [ac_cv_c_bigendian_php=unknown])
])
if test $ac_cv_c_bigendian_php = yes; then
AC_DEFINE(WORDS_BIGENDIAN, 1, [Define if processor uses big-endian word])
@@ -119,9 +114,9 @@ dnl x87 floating point internal precision control checks
dnl See: http://wiki.php.net/rfc/rounding
AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
AC_MSG_CHECKING([for usable _FPU_SETCW])
AC_TRY_LINK([
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <fpu_control.h>
],[
]],[[
fpu_control_t fpu_oldcw, fpu_cw;
volatile double result;
double a = 2877.0;
@@ -132,7 +127,7 @@ AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
_FPU_SETCW(fpu_cw);
result = a / b;
_FPU_SETCW(fpu_oldcw);
], [ac_cfp_have__fpu_setcw=yes], [ac_cfp_have__fpu_setcw=no])
]])],[ac_cfp_have__fpu_setcw=yes],[ac_cfp_have__fpu_setcw=no])
if test "$ac_cfp_have__fpu_setcw" = "yes" ; then
AC_DEFINE(HAVE__FPU_SETCW, 1, [whether _FPU_SETCW is present and usable])
AC_MSG_RESULT(yes)
@@ -141,9 +136,9 @@ AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
fi
AC_MSG_CHECKING([for usable fpsetprec])
AC_TRY_LINK([
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <machine/ieeefp.h>
],[
]],[[
fp_prec_t fpu_oldprec;
volatile double result;
double a = 2877.0;
@@ -153,7 +148,7 @@ AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
fpsetprec(FP_PD);
result = a / b;
fpsetprec(fpu_oldprec);
], [ac_cfp_have_fpsetprec=yes], [ac_cfp_have_fpsetprec=no])
]])], [ac_cfp_have_fpsetprec=yes], [ac_cfp_have_fpsetprec=no])
if test "$ac_cfp_have_fpsetprec" = "yes" ; then
AC_DEFINE(HAVE_FPSETPREC, 1, [whether fpsetprec is present and usable])
AC_MSG_RESULT(yes)
@@ -162,9 +157,9 @@ AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
fi
AC_MSG_CHECKING([for usable _controlfp])
AC_TRY_LINK([
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <float.h>
],[
]],[[
unsigned int fpu_oldcw;
volatile double result;
double a = 2877.0;
@@ -174,7 +169,7 @@ AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
_controlfp(_PC_53, _MCW_PC);
result = a / b;
_controlfp(fpu_oldcw, _MCW_PC);
], [ac_cfp_have__controlfp=yes], [ac_cfp_have__controlfp=no])
]])], [ac_cfp_have__controlfp=yes], [ac_cfp_have__controlfp=no])
if test "$ac_cfp_have__controlfp" = "yes" ; then
AC_DEFINE(HAVE__CONTROLFP, 1, [whether _controlfp is present usable])
AC_MSG_RESULT(yes)
@@ -183,9 +178,9 @@ AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
fi
AC_MSG_CHECKING([for usable _controlfp_s])
AC_TRY_LINK([
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <float.h>
],[
]],[[
unsigned int fpu_oldcw, fpu_cw;
volatile double result;
double a = 2877.0;
@@ -196,7 +191,7 @@ AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
_controlfp_s(&fpu_cw, _PC_53, _MCW_PC);
result = a / b;
_controlfp_s(&fpu_cw, fpu_oldcw, _MCW_PC);
], [ac_cfp_have__controlfp_s=yes], [ac_cfp_have__controlfp_s=no])
]])], [ac_cfp_have__controlfp_s=yes], [ac_cfp_have__controlfp_s=no])
if test "$ac_cfp_have__controlfp_s" = "yes" ; then
AC_DEFINE(HAVE__CONTROLFP_S, 1, [whether _controlfp_s is present and usable])
AC_MSG_RESULT(yes)
@@ -205,9 +200,9 @@ AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
fi
AC_MSG_CHECKING([whether FPU control word can be manipulated by inline assembler])
AC_TRY_LINK([
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
/* nothing */
],[
]],[[
unsigned int oldcw, cw;
volatile double result;
double a = 2877.0;
@@ -220,7 +215,7 @@ AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
result = a / b;
__asm__ __volatile__ ("fldcw %0" : : "m" (*&oldcw));
], [ac_cfp_have_fpu_inline_asm_x86=yes], [ac_cfp_have_fpu_inline_asm_x86=no])
]])], [ac_cfp_have_fpu_inline_asm_x86=yes], [ac_cfp_have_fpu_inline_asm_x86=no])
if test "$ac_cfp_have_fpu_inline_asm_x86" = "yes" ; then
AC_DEFINE(HAVE_FPU_INLINE_ASM_X86, 1, [whether FPU control word can be manipulated by inline assembler])
AC_MSG_RESULT(yes)
+7 -7
View File
@@ -345,22 +345,22 @@ function strcat($n) {
/*****/
function getmicrotime()
function gethrtime()
{
$t = gettimeofday();
return ($t['sec'] + $t['usec'] / 1000000);
$hrtime = hrtime();
return (($hrtime[0]*1000000000 + $hrtime[1]) / 1000000000);
}
function start_test()
{
ob_start();
return getmicrotime();
return gethrtime();
}
function end_test($start, $name)
{
global $total;
$end = getmicrotime();
$end = gethrtime();
ob_end_clean();
$total += $end-$start;
$num = number_format($end-$start,3);
@@ -368,7 +368,7 @@ function end_test($start, $name)
echo $name.$pad.$num."\n";
ob_start();
return getmicrotime();
return gethrtime();
}
function total()
@@ -418,5 +418,5 @@ sieve(30);
$t = end_test($t, "sieve(30)");
strcat(200000);
$t = end_test($t, "strcat(200000)");
total($t0, "Total");
total();
?>
-2
View File
@@ -4,8 +4,6 @@
# make -f build.mk
#
# Written by Sascha Schumann
#
# $Id$
LT_TARGETS = ltmain.sh ltconfig
+2 -2
View File
@@ -1,4 +1,3 @@
dnl $Id$
dnl Process this file with autoconf to produce a configure script.
AC_INIT(zend.c)
@@ -126,7 +125,8 @@ LIBZEND_OTHER_CHECKS
ZEND_EXTRA_LIBS="$LIBS"
LIBS=""
AC_SUBST(ZEND_EXTRA_LIBS)
AC_OUTPUT(Makefile)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
# Local Variables:
# tab-width: 4
-2
View File
@@ -15,5 +15,3 @@
| Authors: |
+----------------------------------------------------------------------+
*/
/* $Id$ */
+6 -6
View File
@@ -238,23 +238,23 @@ function empty_loop($n) {
}
}
function getmicrotime()
function gethrtime()
{
$t = gettimeofday();
return ($t['sec'] + $t['usec'] / 1000000);
$hrtime = hrtime();
return (($hrtime[0]*1000000000 + $hrtime[1]) / 1000000000);
}
function start_test()
{
ob_start();
return getmicrotime();
return gethrtime();
}
function end_test($start, $name, $overhead = null)
{
global $total;
global $last_time;
$end = getmicrotime();
$end = gethrtime();
ob_end_clean();
$last_time = $end-$start;
$total += $last_time;
@@ -267,7 +267,7 @@ function end_test($start, $name, $overhead = null)
echo $name.$pad.$num." ".$num2."\n";
}
ob_start();
return getmicrotime();
return gethrtime();
}
function total()
+5 -3
View File
@@ -14,7 +14,8 @@ var_dump(define("[[[", 2));
var_dump(define("test const", 3));
var_dump(define("test const", 3));
var_dump(define("test", array(1)));
var_dump(define("test1", new stdclass));
var_dump(define("test1", fopen(__FILE__, 'r')));
var_dump(define("test2", new stdclass));
var_dump(constant(" "));
var_dump(constant("[[["));
@@ -30,7 +31,7 @@ Warning: define() expects at least 2 parameters, 1 given in %s on line %d
NULL
bool(true)
Warning: define() expects parameter 3 to be boolean, array given in %s on line %d
Warning: define() expects parameter 3 to be bool, array given in %s on line %d
NULL
Warning: define() expects parameter 1 to be string, array given in %s on line %d
@@ -42,8 +43,9 @@ bool(true)
Notice: Constant test const already defined in %s on line %d
bool(false)
bool(true)
bool(true)
Warning: Constants may only evaluate to scalar values or arrays in %s on line %d
Warning: Constants may only evaluate to scalar values, arrays or resources in %s on line %d
bool(false)
int(1)
int(2)
+1 -1
View File
@@ -41,7 +41,7 @@ var_dump(get_parent_class(1));
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
bool(false)
bool(false)
string(3) "foo"
+1 -1
View File
@@ -862,7 +862,7 @@ try {
}
?>
--EXPECTF--
--EXPECT--
This exception severity is: 1bool(true)
bool(true)
bool(true)
+1 -1
View File
@@ -8,5 +8,5 @@ abstract class TestClass
}
?>
===DONE===
--EXPECTF--
--EXPECT--
===DONE===
+1 -1
View File
@@ -32,7 +32,7 @@ echo $a->func1(),"\n";
echo $a->func2(),"\n";
?>
--EXPECTF--
--EXPECT--
var1 value
var2 value
in func1
+1 -1
View File
@@ -15,7 +15,7 @@ call_user_func(array($c, 'none'));
call_user_func(array($c, 'prot'));
call_user_func(array($c, 'priv'));
?>
--EXPECTF--
--EXPECT--
In __call() for method none()
In __call() for method prot()
In __call() for method priv()
+1 -1
View File
@@ -29,7 +29,7 @@ var_dump($c);
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
array(3) {
[0]=>
int(1)
+2 -2
View File
@@ -20,11 +20,11 @@ var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Notice: Object of class stdClass could not be converted to int in %sadd_002.php on line %d
Notice: Object of class stdClass could not be converted to number in %sadd_002.php on line %d
Exception: Unsupported operand types
Notice: Object of class stdClass could not be converted to int in %s on line %d
Notice: Object of class stdClass could not be converted to number in %s on line %d
Fatal error: Uncaught Error: Unsupported operand types in %s:%d
Stack trace:
+2 -2
View File
@@ -20,11 +20,11 @@ var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Notice: Object of class stdClass could not be converted to int in %sadd_003.php on line %d
Notice: Object of class stdClass could not be converted to number in %sadd_003.php on line %d
Exception: Unsupported operand types
Notice: Object of class stdClass could not be converted to int in %s on line %d
Notice: Object of class stdClass could not be converted to number in %s on line %d
Fatal error: Uncaught Error: Unsupported operand types in %s:%d
Stack trace:
+1 -1
View File
@@ -16,7 +16,7 @@ var_dump($c);
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
float(2834756759.1231)
float(2834756759.1231)
Done
+1 -1
View File
@@ -30,7 +30,7 @@ var_dump($s);
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
string(3) "020"
string(4) "pead"
string(4) "pead"
+1 -1
View File
@@ -15,6 +15,6 @@ $a = new class extends A implements B {
};
var_dump($a instanceof A, $a instanceof B);
--EXPECTF--
--EXPECT--
bool(true)
bool(true)
+1 -1
View File
@@ -10,6 +10,6 @@ $foo = function() {
$closure = Closure::bind($foo, $class, $class);
var_dump($closure());
?>
--EXPECTF--
--EXPECT--
object(class@anonymous)#1 (0) {
}
+1 -1
View File
@@ -12,5 +12,5 @@ $class = new class() {
};
var_dump($class->run());
?>
--EXPECTF--
--EXPECT--
string(10) "Running..."
+1 -1
View File
@@ -50,7 +50,7 @@ test2($a, $b, $c, $d, ...$array);
var_dump($a, $b, $c, $d, $array);
?>
--EXPECTF--
--EXPECT--
array(3) {
[0]=>
int(2)
@@ -0,0 +1,21 @@
--TEST--
Argument unpacking does not work with non-integer keys
--FILE--
<?php
function foo(...$args) {
var_dump($args);
}
function gen() {
yield 1.23 => 123;
yield "2.34" => 234;
}
try {
foo(...gen());
} catch (Error $ex) {
echo "Exception: " . $ex->getMessage() . "\n";
}
?>
--EXPECT--
Exception: Cannot unpack Traversable with non-integer keys
+1 -1
View File
@@ -19,6 +19,6 @@ try {
}
?>
--EXPECTF--
--EXPECT--
string(36) "Cannot unpack array with string keys"
string(42) "Cannot unpack Traversable with string keys"
+1 -1
View File
@@ -14,4 +14,4 @@ class Sub extends Base {
}
}
?>
--EXPECTF--
--EXPECT--
+1 -1
View File
@@ -8,5 +8,5 @@ assert.exception=1
assert(true);
var_dump(true);
?>
--EXPECTF--
--EXPECT--
bool(true)
+1 -1
View File
@@ -12,7 +12,7 @@ var_dump(\assert(true));
var_dump(assert(false));
var_dump(assert(true));
?>
--EXPECTF--
--EXPECT--
bool(true)
bool(true)
bool(true)
+1 -1
View File
@@ -3,7 +3,7 @@ Empty statement in assert() shouldn't segfault
--FILE--
<?php
assert((function () { return true;; })());
assert((function () { return true; })());
echo "ok";
?>
@@ -17,5 +17,5 @@ test();
--EXPECTF--
Deprecated: assert(): Calling assert() with a string argument is deprecated in %s on line %d
Notice: Object of class stdClass could not be converted to int in %s on line %d
Notice: Object of class stdClass could not be converted to number in %s on line %d
int(2)
@@ -0,0 +1,25 @@
--TEST--
If the LHS of ref-assign ERRORs, that takes precendence over the "only variables" notice
--FILE--
<?php
function val() {
return 42;
}
$str = "foo";
$var = 24;
var_dump($str->foo =& $var);
var_dump($str);
var_dump($str->foo =& val());
var_dump($str);
?>
--EXPECTF--
Warning: Attempt to modify property 'foo' of non-object in %s on line %d
NULL
string(3) "foo"
Warning: Attempt to modify property 'foo' of non-object in %s on line %d
NULL
string(3) "foo"
@@ -0,0 +1,23 @@
--TEST--
Cannot assign by reference to overloaded object, even if __get() returns by-ref
--FILE--
<?php
class Test {
private $x;
public function &__get($name) {
return $this->x;
}
}
$test = new Test;
$y = 5;
$test->x =& $y;
var_dump($test->x);
?>
--EXPECTF--
Fatal error: Uncaught Error: Cannot assign by reference to overloaded object in %s:%d
Stack trace:
#0 {main}
thrown in %s on line %d
+1 -1
View File
@@ -12,7 +12,7 @@ var_dump($var1);
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
int(2)
int(2)
Done
+1 -1
View File
@@ -12,7 +12,7 @@ var_dump($var1);
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
string(1) "g"
string(1) "g"
Done
+1 -1
View File
@@ -12,7 +12,7 @@ var_dump($var1);
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
NULL
NULL
Done
+1 -1
View File
@@ -15,7 +15,7 @@ var_dump($var2);
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
string(5) "space"
string(5) "space"
string(5) "space"
+2 -2
View File
@@ -1,5 +1,5 @@
--TEST--
'break' error (non positive numbers)
'break' error (non positive integers)
--FILE--
<?php
function foo () {
@@ -7,4 +7,4 @@ function foo () {
}
?>
--EXPECTF--
Fatal error: 'break' operator accepts only positive numbers in %sbreak_error_001.php on line 3
Fatal error: 'break' operator accepts only positive integers in %sbreak_error_001.php on line 3
+2 -2
View File
@@ -1,5 +1,5 @@
--TEST--
'break' error (operator with non-constant operand)
'break' error (operator with non-integer operand)
--FILE--
<?php
function foo () {
@@ -7,4 +7,4 @@ function foo () {
}
?>
--EXPECTF--
Fatal error: 'break' operator with non-constant operand is no longer supported in %sbreak_error_002.php on line 3
Fatal error: 'break' operator with non-integer operand is no longer supported in %sbreak_error_002.php on line 3
-4
View File
@@ -1,9 +1,5 @@
--TEST--
Bug #21478 (Zend/zend_alloc.c :: shutdown_memory_manager produces segfault)
--SKIPIF--
<?php
if (!function_exists('stream_filter_register')) die('skip stream_filter_register() not available');
?>
--FILE--
<?php
class debugfilter extends php_user_filter {
+1 -1
View File
@@ -13,7 +13,7 @@ for ($i = 0; $i < 8; $i++) {
$h =& f();
}
?>
--EXPECTF--
--EXPECT--
string(3) "foo"
'foo'
string(3) "foo"
+1 -1
View File
@@ -24,6 +24,6 @@ catch(Exception $e)
}
?>
===DONE===
--EXPECTF--
--EXPECT--
Objects returned by array_iterator::getIterator() must be traversable or implement interface Iterator
===DONE===
+1 -1
View File
@@ -13,7 +13,7 @@ var_dump(class_exists('NotExistingClass'));
?>
===DONE===
--EXPECTF--
--EXPECT--
{closure}(NotExistingClass)
bool(false)
{closure}(NotExistingClass), done
+1 -2
View File
@@ -2,8 +2,6 @@
Bug #27669 (PHP 5 didn't support all possibilities for calling static methods dynamically)
--FILE--
<?php
error_reporting(E_ALL & !E_STRICT);
class A {
function hello() {
echo "Hello World\n";
@@ -14,5 +12,6 @@ Bug #27669 (PHP 5 didn't support all possibilities for calling static methods dy
?>
===DONE===
--EXPECTF--
Deprecated: Non-static method A::hello() should not be called statically in %s on line %d
Hello World
===DONE===
+1 -1
View File
@@ -45,7 +45,7 @@ var_dump(ClassC::$prop);
?>
===DONE===
--EXPECTF--
--EXPECT--
===INIT===
string(1) "A"
string(1) "C"
+1 -1
View File
@@ -89,7 +89,7 @@ if (is_callable(array('test_class','test_func4'))) {
$object = new foo();
$object->test();
?>
--EXPECTF--
--EXPECT--
test_func1
test_func2
test_func3
+1 -1
View File
@@ -28,7 +28,7 @@ unset($bar);
?>
===DONE===
--EXPECTF--
--EXPECT--
Foo::__construct
Caught exception!
===DONE===
+11 -3
View File
@@ -4,10 +4,18 @@ Bug #29883 (isset gives invalid values on strings)
<?php
$x = "bug";
var_dump(isset($x[-10]));
var_dump(isset($x[1]));
var_dump(isset($x["1"]));
echo $x["1"]."\n";
var_dump($x[-10])."\n";
var_dump($x[1])."\n";
var_dump($x["1"])."\n";
?>
--EXPECT--
--EXPECTF--
bool(false)
bool(true)
u
bool(true)
Notice: Uninitialized string offset: -10 in %s on line 6
string(0) ""
string(1) "u"
string(1) "u"
+1 -1
View File
@@ -96,7 +96,7 @@ var_dump($x->doSomethingStatic(1));
?>
===DONE===
<?php exit(0); ?>
--EXPECTF--
--EXPECT--
===A===
TestB::doSomething(1)
TestA::doSomething(2)
+1 -1
View File
@@ -33,7 +33,7 @@ var_dump(error_reporting());
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
int(32767)
int(32767)
int(30719)
-2
View File
@@ -1,7 +1,5 @@
--TEST--
Bug #36214 (__get method works properly only when conditional operator is used)
--SKIPIF--
<?php if (!extension_loaded("spl")) die("skip SPL is no available"); ?>
--FILE--
<?php
class context {
-4
View File
@@ -1,9 +1,5 @@
--TEST--
Bug #36568 (memory_limit has no effect)
--SKIPIF--
<?php
if (!function_exists('memory_get_usage')) die('skip PHP is configured without memory_limit');
?>
--INI--
memory_limit=16M
--FILE--
+1 -1
View File
@@ -21,7 +21,7 @@ var_dump(Baz);
--EXPECTF--
string(3) "Foo"
Warning: Constants may only evaluate to scalar values or arrays in %sbug37811.php on line %d
Warning: Constants may only evaluate to scalar values, arrays or resources in %sbug37811.php on line %d
Warning: Use of undefined constant Baz - assumed 'Baz' (this will throw an Error in a future version of PHP) in %sbug37811.php on line %d
string(3) "Baz"
-1
View File
@@ -2,7 +2,6 @@
Bug #40809 (Poor performance of ".=")
--FILE--
<?php
error_reporting(E_ALL|E_STRICT);
$num_increments = 100;
$num_repeats = 1000;
+1 -1
View File
@@ -14,5 +14,5 @@ set_exception_handler("ehandle::exh");
throw new Exception ("Whiii");
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
foo
+1 -1
View File
@@ -20,7 +20,7 @@ try_class::main ();
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
Done
Warning: (Registered shutdown functions) Unable to call self::on_shutdown() - function does not exist in Unknown on line 0
+1 -1
View File
@@ -26,6 +26,6 @@ try {
echo "Done\n";
?>
--EXPECTF--
--EXPECT--
string(40) "Creating default object from empty value"
Done
-2
View File
@@ -1,7 +1,5 @@
--TEST--
Bug #42819 (namespaces in indexes of constant arrays)
--SKIPIF--
<?php if (!extension_loaded("spl")) print "skip SPL extension required"; ?>
--FILE--
<?php
namespace foo\foo;
+1 -1
View File
@@ -6,5 +6,5 @@ declare(ticks=1);
namespace test;
echo "ok\n";
?>
--EXPECTF--
--EXPECT--
ok
+1 -1
View File
@@ -21,5 +21,5 @@ $o = new C();
$o->foo();
?>
--EXPECTF--
--EXPECT--
works
+5 -1
View File
@@ -9,4 +9,8 @@ function f($a=Foo::bar) {
echo f()."\n";
?>
--EXPECTF--
Fatal error: Class 'Foo\Foo' not found in %sbug43344_3.php on line %d
Fatal error: Uncaught Error: Class 'Foo\Foo' not found in %s:%d
Stack trace:
#0 %s(%d): Foo\f()
#1 {main}
thrown in %s on line %d
Loaded 100 of 6744 files, more files were not shown because too many files have changed in this diff. Show more