Compare commits

...
Author SHA1 Message Date
Joe Watkins 88d5850cba correct vesrion in news file 2016-06-07 13:15:24 +01:00
Joe Watkins 8c26fb411f bump version 2016-06-07 13:11:13 +01:00
Pierre Joye 2edbb3e115 Merge branch 'master' of git.php.net:php-src 2016-06-07 17:39:22 +07:00
Pierre Joye 4f8a451371 Merge branch 'PHP-5.6'
* PHP-5.6:
  #72337 invalid dimensions can lead to segv
2016-06-07 17:19:17 +07:00
Pierre Joye f80125950c #72337 invalid dimensions can lead to segv 2016-06-07 17:16:40 +07:00
Anatol Belski d48764880e Merge branch 'PHP-7.0'
* PHP-7.0:
  7.0.9 next
2016-06-07 10:04:58 +02:00
Anatol Belski 041210f441 7.0.9 next 2016-06-07 10:04:25 +02:00
Dmitry Stogov 214d4613f5 cleanup 2016-06-07 01:14:53 +03:00
Dmitry Stogov d324db717c Fixed mixed declarations and code 2016-06-07 01:01:48 +03:00
Anatol Belski 3c4edc8c62 Merge branch 'PHP-7.0'
* PHP-7.0:
  Add test for bug #53735
2016-06-06 21:08:18 +02:00
Anatol Belski edb8c3f6e3 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Add test for bug #53735
2016-06-06 21:07:45 +02:00
Anatol Belski 2a0ed8a2eb Add test for bug #53735 2016-06-06 21:06:06 +02:00
Dmitry Stogov cebb5cd46e micro-optimization 2016-06-06 20:45:10 +03:00
Dmitry Stogov 58c083dfc9 simplification 2016-06-06 15:50:06 +03:00
Dmitry Stogov 80b39b498a Improve type narrowing (check only SSA definitions). 2016-06-06 14:57:02 +03:00
Nikita Popov 543649bd4c Fix correctness issues with type narrowing
Fixes bug #72335.
2016-06-06 14:56:17 +03:00
Anatol Belski da280d41b6 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix ibase handle initialization, mostly compiler warnings
2016-06-06 13:33:39 +02:00
Anatol Belski 3e6c02b91a fix ibase handle initialization, mostly compiler warnings 2016-06-06 13:30:17 +02:00
Anatol Belski edf769c023 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix typo
2016-06-06 08:58:40 +02:00
Anatol Belski 174c3371bd Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix typo
2016-06-06 08:58:08 +02:00
Anatol Belski eaef8f6db2 fix typo 2016-06-06 08:56:40 +02:00
Anatol Belski ba3763fa2d hard_timeout ignored on TS 2016-06-06 08:41:07 +02:00
Anatol Belski 52ebd5611f fix hard_timeout support in shutdown functions 2016-06-06 08:41:07 +02:00
Anatol Belski db68121da8 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix broken skipif and add xfail for now
2016-06-06 08:23:22 +02:00
Anatol Belski 075c75873e Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix broken skipif and add xfail for now
2016-06-06 08:21:39 +02:00
Anatol Belski 1b2afd478b fix broken skipif and add xfail for now 2016-06-06 08:20:01 +02:00
Anatol Belski 628272ee6c Merge branch 'PHP-7.0'
* PHP-7.0:
  missing return
2016-06-06 07:34:34 +02:00
Anatol Belski 6ec8b2c57d Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  missing return
2016-06-06 07:33:36 +02:00
Anatol Belski c05b417718 missing return 2016-06-06 07:28:12 +02:00
Nikita Popov e6296f0dcc Fix VERIFY_RETURN_TYPE elision
This both fixes incorrect elision and allows elision for cases
where we only have a subset (e.g. true of bool).
2016-06-05 23:44:08 +02:00
Nikita Popov c5348850df Fix bug71843.phpt
Is Travis not running opcache tests?
2016-06-05 23:05:03 +02:00
Nikita Popov 9fa1ab1b22 Check SKIP_SLOW_TESTS in issue0140.phpt
This test contains two sleeps...
2016-06-05 23:05:00 +02:00
Nikita Popov 7b4618e396 Fix SSA NOP removal
NOPs need to be tracked in the shiftlist as well, as there may be
jumps to NOPs.
2016-06-05 23:00:32 +02:00
Nikita Popov 3be92120ba Fix handling of parse_str() with unpack in optimizer 2016-06-05 22:16:15 +02:00
Nikita Popov 70f0546885 Don't optimize special dynamic calls to non-dynamic
As it drops the warning. This is more problematic with constant
propagation, as tests would fail.

Extract a zend_optimizer_classify_function() function, as its now
needed by zend_cfg and update_opN.
2016-06-05 22:04:36 +02:00
Jakub Zelenka da83e4295a Merge branch 'PHP-7.0' 2016-06-05 17:31:05 +01:00
Jakub Zelenka 1f7535234e Merge branch 'PHP-5.6' into PHP-7.0 2016-06-05 17:30:03 +01:00
Jakub Zelenka d4615d1118 Add new test for openssl_pkey_new 2016-06-05 17:27:47 +01:00
Jakub Zelenka 497fe33d6f Add test for openssl_error_string
This test is important for making sure that the error strings
from OpenSSL works as expected and we can safely add a fix
for storing the strings that is prepared.
2016-06-05 17:23:05 +01:00
Jakub Zelenka 5e9f387175 Remove openssl_x509_parse for OpenSSL 0.9.x
The test is unstable and it actually fails with latest 0.9.8
2016-06-05 16:28:50 +01:00
Nikita Popov 945a83103d Fixed bug #53432
This change was discussed a while ago in the "negative string
offsets" thread.
2016-06-04 19:20:07 +02:00
xiabeifeng 33aba29768 Fix typo 2016-06-04 19:06:59 +02:00
Nikita Popov 9ba243b6f3 Forbid ?void 2016-06-04 14:53:50 +02:00
Nikita Popov 73b2f79199 More explicit errors for return; vs return null;
Both for "return null" in a void function and "return" in
a nullable return function.
2016-06-04 13:27:11 +02:00
Nikita Popov fe907562ad Forbid "return;" for typed returns already at compile-time
These would otherwise generate a "none returned" error at runtime.
Catch them early.
2016-06-04 13:27:11 +02:00
Nikita Popov cb3825a8dc Small generator-related cleanups 2016-06-04 13:27:11 +02:00
Anatol Belski b7bb6d04fd update NEWS 2016-06-03 00:19:23 +02:00
Martin Vobruba 1ed544d05b Enable per-module logging in Apache 2.4+ 2016-06-03 00:08:57 +02:00
Anatol Belski ff90d8e0ba update NEWS 2016-06-02 23:08:26 +02:00
Anatol Belski 5cf8c72dfb added test for bug #47517 2016-06-02 23:06:20 +02:00
maxdax15801 d7da8f5ea4 Fix bug #47517 php-cgi.exe missing UAC manifest
Add a <requestedExecutionLevel> to the manifest so Windows doesn't
use file and registry virtualization for backwards compatibility
with pre-Vista versions.
2016-06-02 22:55:18 +02:00
Anatol Belski 933de3a6b6 update NEWS 2016-06-02 22:43:43 +02:00
Mic 0112b64a34 Fixed bug #69398 IntlDateFormatter formatObject returns wrong value when time style is NONE 2016-06-02 22:40:27 +02:00
Mic 527ddacd20 Fixed bug #69374 IntlDateFormatter formatObject returns wrong utf8 value
Relying on invariant strings is a mistake. Not only UTF-8, but also
many charsets are not single byte. Actual date formats can be mixed
with arbitrary strings, and this can bring erroneous results in the
out. Thus, instead it is more convenient to say, that a format string
can consist either on UTF-8 or on pure ASCII as its subset. This is
what is currently being done in other classes like Formatter, etc.
as well.
2016-06-02 22:27:48 +02:00
Anatol Belski 4b2fb0b4ae fix dangling pointer, phpdbg reveals it 2016-06-02 19:42:50 +02:00
Anatol Belski 47e26cf9db fix known interned strings init with TS per request 2016-06-02 17:55:48 +02:00
Anatol Belski f3998d2303 update UPGRADING 2016-06-02 14:30:27 +02:00
Anatol Belski 86b922a432 update NEWS 2016-06-02 14:23:30 +02:00
Anatol Belski 7cb115e605 fix typo 2016-06-02 14:22:14 +02:00
Anatol Belski 73fd1fc6e5 fix typo 2016-06-02 13:28:09 +02:00
Jani Ollikainen 0a04f61448 Added backwards compability with php_log_err by using macro 2016-06-02 13:25:29 +02:00
Jani Ollikainen 3edf7d960c Logging to syslog with dynamic error levels (related to #49467) 2016-06-02 13:25:29 +02:00
Anatol Belski d122f4c24a improve date header code 2016-06-02 13:13:54 +02:00
Anatol Belski a7c0ba2e89 update NEWS 2016-06-02 12:37:51 +02:00
SeeSchloss f33c7b3e41 Added mandatory Date: header to built-in webserver 2016-06-02 12:27:48 +02:00
Anatol Belski 56b2a49648 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Fixed bug #70484 selectordinal doesn't work with named parameters
2016-06-02 12:21:19 +02:00
Anatol Belski f2bc71e43d Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  update NEWS
  Fixed bug #70484 selectordinal doesn't work with named parameters
2016-06-02 12:20:46 +02:00
Anatol Belski 2004c25790 update NEWS 2016-06-02 12:18:33 +02:00
Anatol Belski 22336db97f Fixed bug #70484 selectordinal doesn't work with named parameters 2016-06-02 12:17:42 +02:00
Anatol Belski a440faaa76 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix ODBC bug for varchars returning with length zero
2016-06-02 12:08:46 +02:00
Anatol Belski 48ca6dfc70 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fix ODBC bug for varchars returning with length zero
2016-06-02 12:07:54 +02:00
Elizabeth Marie Smith 72c9324d70 Fix ODBC bug for varchars returning with length zero 2016-06-02 12:04:10 +02:00
Xinchen Hui 0ed4034881 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72308 (fastcgi_finish_request and logging environment variables)
2016-06-02 14:17:00 +08:00
Xinchen Hui 31ce3a661a Fixed bug #72308 (fastcgi_finish_request and logging environment variables) 2016-06-02 14:16:32 +08:00
Dmitry Stogov 1b4946e658 Use "fast" assembler functions in "slow" ones.
Mark assembler functions that changes memory.
2016-06-01 20:52:14 +03:00
Dmitry Stogov 6a32d44392 cleanup 2016-06-01 18:07:05 +03:00
Anatol Belski 430d5ef281 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-06-01 14:09:16 +02:00
Anatol Belski 51cb58e709 update NEWS 2016-06-01 14:08:32 +02:00
Anatol Belski 2ca86bb860 Merge branch 'PHP-7.0'
* PHP-7.0:
  Add test for bug #72294
  Fixed bug #72294 Segmentation fault/invalid pointer in connection with pgsql_stmt_dtor
2016-06-01 11:57:00 +02:00
Anatol Belski 79b978db9a Add test for bug #72294 2016-06-01 11:55:35 +02:00
Anatol Belski af8fa8e937 Fixed bug #72294 Segmentation fault/invalid pointer in connection with pgsql_stmt_dtor 2016-06-01 11:55:35 +02:00
Xinchen Hui 1afcf15c85 Merge branch 'PHP-7.0'
* PHP-7.0:
  Also include ini_get
2016-06-01 10:46:22 +08:00
Xinchen Hui cf1ad54b64 Also include ini_get 2016-06-01 10:46:04 +08:00
Xinchen Hui fb3aadea4c Merge branch 'PHP-7.0'
* PHP-7.0:
  Forgotten test script for bug #72300
2016-06-01 10:44:37 +08:00
Xinchen Hui f5bc7e881b Forgotten test script for bug #72300 2016-06-01 10:43:53 +08:00
Sara Golemon 51b3be7e76 Correct inline comments regarding pass1/pass2 actions
BRK/CONT no longer reach the optimizing following 8542befa7b
Pre-evaluate constant function calls is in pass1, not pass2
2016-05-31 22:41:37 +00:00
Anatol Belski ce02f0f3b8 fix test 2016-05-31 18:55:39 +02:00
Anatol Belski b4a07fa5db Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test portability
2016-05-31 18:53:37 +02:00
Anatol Belski 1d4d8c7436 fix test portability 2016-05-31 18:42:40 +02:00
Xinchen Hui 02571c2a7b Merge branch 'PHP-7.0' 2016-05-31 07:24:22 -07:00
Xinchen Hui f2a814df33 Fixed bug #72300 (ignore_user_abort(false) has no effect) 2016-05-31 07:24:02 -07:00
Xinchen Hui 3b0a6dfeb2 Merge branch 'PHP-7.0'
* PHP-7.0:
  No sure why this is failed in travis
2016-05-31 17:23:03 +08:00
Xinchen Hui 953ee61a49 No sure why this is failed in travis 2016-05-31 17:22:47 +08:00
Xinchen Hui 5717faa1e5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test (keyword is local related)
2016-05-31 16:56:12 +08:00
Xinchen Hui 47fa763fae Fixed test (keyword is local related) 2016-05-31 16:55:58 +08:00
Xinchen Hui 9bf3b03e73 Merge branch 'PHP-7.0'
* PHP-7.0:
  Attempt to fix tests fails
2016-05-31 16:48:33 +08:00
Xinchen Hui 072bc589fc Attempt to fix tests fails 2016-05-31 16:48:19 +08:00
Xinchen Hui 8539c5debf Merge branch 'PHP-7.0'
* PHP-7.0:
  Re-Fixed bug #72155 (use-after-free caused by get_zval_xmlrpc_type)
  Revert "fix #72155 (use-after-free caused by get_zval_xmlrpc_type)"
2016-05-31 11:44:33 +08:00
Xinchen Hui d1dd9b4558 Re-Fixed bug #72155 (use-after-free caused by get_zval_xmlrpc_type) 2016-05-31 11:44:20 +08:00
Xinchen Hui a811b5e38d Revert "fix #72155 (use-after-free caused by get_zval_xmlrpc_type)"
This reverts commit 1690dcb827.
2016-05-31 11:32:09 +08:00
Dmitry Stogov b111da96d9 Split ZEND_SEND_VAR_NO_REF into ZEND_SEND_VAR_NO_REF and ZEND_SEND_VAR_NO_REF_EX (similar to ZEND_SEND_VAL) and remove ZEND_ARG_* flags. 2016-05-31 04:06:00 +03:00
Dmitry Stogov f216176bc9 Initialize only the necessary fields. 2016-05-31 00:04:52 +03:00
Anatol Belski 6bd3b8108a Merge branch 'PHP-7.0'
* PHP-7.0:
  fix condition
2016-05-30 18:36:06 +02:00
Anatol Belski 2524ab9e67 fix condition 2016-05-30 18:35:14 +02:00
Anatol Belski c18423ffb5 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-05-30 14:10:48 +02:00
Anatol Belski c101690972 update NEWS 2016-05-30 14:10:27 +02:00
Bob Weinand 9cdcac309e Merge remote-tracking branch 'origin/PHP-7.0' 2016-05-30 13:32:37 +02:00
Bob Weinand 67468fb417 Fixed bug #72284 (phpdbg fatal errors with coverage)
Cherry-pick of original commits d3371b and 0f20e11 only present in master
2016-05-30 13:31:17 +02:00
Anatol Belski 38d9b07d74 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test title
  Add test for bug #72258
  update UPGRADING
  Expose missing flags from libzip at least >= 0.11.x
2016-05-30 12:50:25 +02:00
Anatol Belski 933d6b188c fix test title 2016-05-30 12:48:00 +02:00
Anatol Belski 97c530fece Add test for bug #72258 2016-05-30 12:47:04 +02:00
Anatol Belski f6e79af3ef update UPGRADING 2016-05-30 10:32:43 +02:00
Anatol Belski 2c80459c24 Expose missing flags from libzip at least >= 0.11.x
These are helpful with reading/writing zips containing non UTF-8
filenames to mitigate possibly changed libzip behaviors.

Partial cherry-pick of 893c2405ff
2016-05-30 10:32:43 +02:00
Anatol Belski ef2ffda0e4 Merge branch 'PHP-7.0'
* PHP-7.0:
  update UPGRADING
2016-05-30 10:31:56 +02:00
Anatol Belski d0f03042fd update UPGRADING 2016-05-30 10:31:04 +02:00
Anatol Belski d893f5c2c7 Merge branch 'PHP-7.0'
* PHP-7.0:
  Expose missing flags from libzip at least >= 0.11.x
2016-05-30 10:22:12 +02:00
Anatol Belski 63595aef3d Expose missing flags from libzip at least >= 0.11.x
These are helpful with reading/writing zips containing non UTF-8
filenames to mitigate possibly changed libzip behaviors.

Partial cherry-pick of 893c2405ff
2016-05-30 10:16:12 +02:00
Joe Watkins 9de481fe0d Merge branch 'PHP-7.0'
* PHP-7.0:
  fix #72155 (use-after-free caused by get_zval_xmlrpc_type)
2016-05-30 08:57:11 +01:00
Joe Watkins 1690dcb827 fix #72155 (use-after-free caused by get_zval_xmlrpc_type) 2016-05-30 08:56:50 +01:00
Joe Watkins 2a0261d712 Merge branch 'PHP-7.0'
* PHP-7.0:
  This is exported at implementation site, but no forward declaration can cause compile warnings
2016-05-29 06:03:33 +01:00
Joe Watkins 0c5bd4d445 This is exported at implementation site, but no forward declaration can cause compile warnings 2016-05-29 06:02:38 +01:00
Nikita Popov 921b3251b3 Fix bug #71604
Alternatively could throw some kind of uncatchable dummy exception
into the generator. Right now just checking for NULL in two places
seems simpler.
2016-05-28 14:40:32 +02:00
Nikita Popov 79de9fa4aa Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_vm_execute.h
2016-05-28 13:22:49 +02:00
Nikita Popov 4746e5efcb Forbid "yield from" in force closed generators
Same check we do for "yield", was missed when "yield from" was
added. We could make this more granular by only forbidding to
actually yield values and still allow something like "yield from []",
but this does not seem worthwhile.
2016-05-28 13:21:05 +02:00
Xinchen Hui 60a417c5b7 Merge branch 'PHP-7.0'
* PHP-7.0:
  Added NEWS Entry
  Test for bug #72221, segfault in zend_memnstr_ex
  Fix bug #72221 (segfault, past-the-end access)
2016-05-28 16:12:20 +08:00
Xinchen Hui d29bd582a8 Added NEWS Entry 2016-05-28 16:12:10 +08:00
Lauri Kenttä 58302192b7 Test for bug #72221, segfault in zend_memnstr_ex 2016-05-28 16:10:29 +08:00
Lauri Kenttä 287f9489d8 Fix bug #72221 (segfault, past-the-end access) 2016-05-28 16:10:16 +08:00
Xinchen Hui cbe89e2c6e Merge branch 'fix-72221' of https://github.com/Metabolix/php-src
* 'fix-72221' of https://github.com/Metabolix/php-src:
  Test for bug #72221, segfault in zend_memnstr_ex
  Fix bug #72221 (segfault, past-the-end access)
2016-05-28 16:09:31 +08:00
Xinchen Hui c3495d5dc0 This is not a problem here
if only for PHI placement, we may get rid of this `use` here.
But as the comment said, it is useful if we are going to do code generation
2016-05-28 15:17:14 +08:00
Xinchen Hui 4935c03276 Revert "assert won't cause indrect var access if it's disabled"
in the other hand, it should not be there if it's disabled...

This reverts commit 27f40676e6.
2016-05-27 10:53:32 -07:00
Xinchen Hui 27f40676e6 assert won't cause indrect var access if it's disabled 2016-05-27 10:48:36 -07:00
Xinchen Hui da511f255a Typo & cleanup 2016-05-27 16:17:07 +08:00
Ferenc Kovacs 42be298b30 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-05-26 03:06:32 +02:00
Ferenc Kovacs cc0d237664 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  update NEWS
2016-05-26 03:05:52 +02:00
Ferenc Kovacs 6e5958e37d update NEWS 2016-05-26 03:05:06 +02:00
Anatol Belski 893c2405ff Expose missing flags from libzip at least >= 0.11.x
These are helpful with reading/writing zips containing non UTF-8
filenames to mitigate possibly changed libzip behaviors.
2016-05-25 22:13:25 +02:00
Adam Harvey 38be3b28cb Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix typo in phpdbg help.
2016-05-25 12:48:00 -05:00
Adam Harvey c523dfdb49 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fix typo in phpdbg help.
2016-05-25 12:47:49 -05:00
Adam Harvey 54eb659032 Fix typo in phpdbg help.
Sorry, I would have included this in the last push had I spotted it a
minute earlier.
2016-05-25 12:47:35 -05:00
Adam Harvey 457d3ad36c Merge branch 'PHP-7.0'
* PHP-7.0:
  Add missing newlines to phpdbg's help for the run command.
2016-05-25 12:42:17 -05:00
Adam Harvey ac29f9de86 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Add missing newlines to phpdbg's help for the run command.
2016-05-25 12:40:23 -05:00
Adam Harvey e623e91e27 Add missing newlines to phpdbg's help for the run command.
This is not at all related to needing screenshots for a talk I'm giving
in two days. No sir. Not at all.
2016-05-25 12:38:41 -05:00
Remi Collet 8c9f3ff086 Merge branch 'PHP-7.0'
* PHP-7.0:
  Skip test which is 64bits only
2016-05-25 16:20:15 +02:00
Remi Collet 815b5fe7ae Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Skip test which is 64bits only
2016-05-25 16:19:52 +02:00
Remi Collet ce932f6479 Skip test which is 64bits only
Diff from test output
001+ Warning: fread(): Length parameter must be greater than 0 in ...
001- Warning: fread(): Length parameter must be no more than 2147483647 in ...
2016-05-25 16:17:12 +02:00
Anatol Belski d35a373680 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-05-25 11:30:25 +02:00
Anatol Belski 1f3f46cc60 update NEWS 2016-05-25 11:30:00 +02:00
Anatol Belski 04695bf030 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test portability
2016-05-25 11:21:41 +02:00
Anatol Belski 02a3a93f9b Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix test portability
2016-05-25 11:21:16 +02:00
Anatol Belski 65a2c451bb fix test portability 2016-05-25 11:19:19 +02:00
Anatol Belski 67dbb9b907 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare for 5.6.22RC1
2016-05-25 11:17:02 +02:00
Anatol Belski 8dab872a43 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  prepare for 5.6.22RC1
2016-05-25 11:15:39 +02:00
Stanislav Malyshev 4ba0197f87 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix memory leak in imagescale()
  Update NEWS
  Better fix for bug #72135
  Fixed bug #72227: imagescale out-of-bounds read
  Fix bug #72241: get_icu_value_internal out-of-bounds read
  Fix bug #72135 - don't create strings with lengths outside int range
  set versions
  Add check for string overflow to all string add operations
  Fix bug #72114 - int/size_t confusion in fread
  Updated NEWS
  Fixed bug #71331 - Uninitialized pointer in phar_make_dirstream()
2016-05-24 20:53:34 -07:00
Stanislav Malyshev 2fe563e8d8 Merge branch 'PHP-7.0.7' into PHP-7.0
* PHP-7.0.7:
  Fix memory leak in imagescale()
  Update NEWS
  Better fix for bug #72135
  Fixed bug #72227: imagescale out-of-bounds read
  Fix bug #72241: get_icu_value_internal out-of-bounds read
  Fix bug #72135 - don't create strings with lengths outside int range
  set versions
  Add check for string overflow to all string add operations
  Fix bug #72114 - int/size_t confusion in fread
  Updated NEWS
  Fixed bug #71331 - Uninitialized pointer in phar_make_dirstream()

Conflicts:
	configure.in
	main/php_version.h
2016-05-24 20:51:52 -07:00
Stanislav Malyshev 3ed0114e7f Merge branch 'PHP-5.5' into PHP-7.0.7
* PHP-5.5:
  Fix memory leak in imagescale()
  Update NEWS
  Better fix for bug #72135
  Fixed bug #72227: imagescale out-of-bounds read
  Fix bug #72241: get_icu_value_internal out-of-bounds read
  Fix bug #72135 - don't create strings with lengths outside int range
  Add check for string overflow to all string add operations
  Fix bug #72114 - int/size_t confusion in fread
  Updated NEWS
  Fixed bug #71331 - Uninitialized pointer in phar_make_dirstream()

Conflicts:
	Zend/zend_operators.c
	ext/intl/locale/locale_methods.c
	ext/phar/dirstream.c
	ext/phar/tests/bug71331.phpt
	ext/standard/file.c
	ext/standard/html.c
2016-05-24 18:05:06 -07:00
Stanislav Malyshev 2464b092eb Merge branch 'PHP-5.6.22' into PHP-5.6
* PHP-5.6.22:
  Fix memory leak in imagescale()
  Update NEWS
  Better fix for bug #72135
  Fixed bug #72227: imagescale out-of-bounds read
  Fix bug #72241: get_icu_value_internal out-of-bounds read
  Fix bug #72135 - don't create strings with lengths outside int range
  prepare for 5.6.22RC1
  Add check for string overflow to all string add operations
  Fix bug #72114 - int/size_t confusion in fread
  Updated NEWS
  Fixed bug #71331 - Uninitialized pointer in phar_make_dirstream()

Conflicts:
	configure.in
	main/php_version.h
2016-05-24 17:21:22 -07:00
Stanislav Malyshev 544940c48a Merge branch 'PHP-5.5' into PHP-5.6.22
* PHP-5.5:
  Fix memory leak in imagescale()
  Update NEWS
  Better fix for bug #72135
  Fixed bug #72227: imagescale out-of-bounds read
  Fix bug #72241: get_icu_value_internal out-of-bounds read
  Fix bug #72135 - don't create strings with lengths outside int range
  Add check for string overflow to all string add operations
  Fix bug #72114 - int/size_t confusion in fread
  Updated NEWS
  Fixed bug #71331 - Uninitialized pointer in phar_make_dirstream()

Conflicts:
	Zend/zend_operators.c
	ext/phar/dirstream.c
	ext/phar/tests/bug71331.phpt
2016-05-24 16:56:36 -07:00
Stanislav Malyshev 9a826a3bd9 Fix memory leak in imagescale() 2016-05-24 16:12:01 -07:00
Stanislav Malyshev f423e1bb89 Update NEWS 2016-05-24 15:56:02 -07:00
Stanislav Malyshev e955913115 Better fix for bug #72135 2016-05-24 15:52:15 -07:00
Dmitry Stogov 2ae21abdf7 Fixed bug #72213 (Finally leaks on nested exceptions).
Squashed commit of the following:

commit 8461b0407fc9eab0869d43b84e6a92ba2fe06997
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Wed May 25 00:34:42 2016 +0300

    Rmoved zend_try_catch_element.parent and walk through op_array.try_catch_array backward from the current try_cacth_offset.

commit 0c71e249649bed178bfbef30bb3e63c57f07af05
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Wed May 25 00:04:53 2016 +0300

    Move SAVE_OPLINE() to its original place

commit 111432a4df738fcd65878a42f23194dc3c4983a2
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Wed May 25 00:01:10 2016 +0300

    Separate the common part of ZEND_HANDLE_EXCEPTION and FAST_RET into zend_dispatch_try_catch_finally_helper.

commit 4f21c06c2ec17819a708bc037f318784554a6ecd
Author: Nikita Popov <nikic@php.net>
Date:   Tue May 24 14:55:27 2016 +0200

    Improve finally fix

commit da5c7274997b8308e682b5bf280124e3a1483086
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue May 24 10:36:08 2016 +0300

    Fixed Zend/tests/try/bug70228_3.phpt and Zend/tests/try/bug70228_4.phpt

commit cfcedf2fb4f4fc1f7de9f7d53a3037fed7795f19
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue May 24 02:59:27 2016 +0300

    Added test

commit 4c6aa93d43da941eb4fda15b48154bfb104bdc04
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue May 24 00:38:20 2016 +0300

    Added tests

commit 8a8f4704b0eca2e460d42c1f253a363b0db8e510
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Mon May 23 23:27:34 2016 +0300

    Fixed bug #72213 (Finally leaks on nested exceptions)
2016-05-25 01:25:12 +03:00
Nikita Popov 91f5940329 Forbid dynamic calls to scope introspection functions
Per RFC:
https://wiki.php.net/rfc/forbid_dynamic_scope_introspection
2016-05-24 20:48:24 +02:00
Nikita Popov 674297c7e4 Allow empty property names
Conflicts:
	Zend/zend_compile.c
2016-05-24 18:34:17 +02:00
Nikita Popov a19eb8e34a Ensure no entry predecessors for SSA construction 2016-05-24 18:29:45 +02:00
Nikita Popov e745b4cad8 Replace BB end with BB len
And support empty blocks everywhere.
2016-05-24 18:29:44 +02:00
Lauri Kenttä ad98f573f6 Test for bug #72221, segfault in zend_memnstr_ex 2016-05-24 17:40:29 +03:00
Dmitry Stogov 9b27df8df5 Fixed white-spaces 2016-05-24 12:37:20 +03:00
Stanislav Malyshev 7a1aac3343 Fixed bug #72227: imagescale out-of-bounds read
Ported from https://github.com/libgd/libgd/commit/4f65a3e4eedaffa1efcf9ee1eb08f0b504fbc31a
2016-05-23 00:34:35 -07:00
Dmitry Stogov 0cdbabe558 Merge branch 'nullable_types' of github.com:morrisonlevi/php-src
* 'nullable_types' of github.com:morrisonlevi/php-src:
  Fix bug #71428
  Add nullable parameter types
  Implement nullable return types.
2016-05-23 10:14:26 +03:00
Stanislav Malyshev 97eff7eb57 Fix bug #72241: get_icu_value_internal out-of-bounds read 2016-05-22 17:49:02 -07:00
Nikita Popov 0d62dfdf81 Improve previous fix
Do not mark loop var free blocks as reachable after all -- as we
can't construct SSA for unreachable blocks, this would cause
issues down the line.

Instead add an extra UNREACHABLE_FREE flag and retain only the
FREE instruction during NOP removal. (If we retain all
instructions in the BB we might leave a jump instruction that goes
into the nowhere.)
2016-05-22 00:05:06 +02:00
Nikita Popov fa9566627b Fix reachability detection if live ranges aren't split
Even if we don't split, we still want to keep the same logic for
reachibility detection.
2016-05-21 20:17:09 +02:00
Lauri Kenttä 26fa27d760 Fix bug #72221 (segfault, past-the-end access) 2016-05-21 18:46:00 +03:00
Bob Weinand 4f077aee83 Allow for [] = $array; (alias for list()) 2016-05-20 01:51:05 +02:00
Dmitry Stogov 14a71cf545 Added and fixed tests related to "finally" handling 2016-05-19 13:22:46 +03:00
Dmitry Stogov 88196e9151 Added specialized handler for ZEND_FETCH_DIM_R opcode with only numeric indexes. 2016-05-18 15:06:49 +03:00
Derick Rethans 932c9520bc Merge branch 'PHP-7.0' 2016-05-18 12:19:58 +01:00
Derick Rethans c572968900 Merge branch 'PHP-5.6' into PHP-7.0 2016-05-18 12:19:49 +01:00
Derick Rethans f43f6fc39b Fixed bug #63740 (strtotime seems to use both sunday and monday as start of week) 2016-05-18 12:19:11 +01:00
Dmitry Stogov cef8d93edd Fixed typo 2016-05-18 11:29:02 +03:00
Nikita Popov 14023d39c1 Move builtin_ctzl portability into zend_bitset.h
Use this function in both zend_mm_bitset_find_one and
zend_bitset_first.

Maybe zend_bitset.h is not quite the right place for it, but I did
not want to include this in a globally included header like
zend_long.h or zend_portability.h.
2016-05-17 22:23:43 +02:00
Dmitry Stogov 0d77222473 Merge branch 'PHP-7.0'
* PHP-7.0:
  Use PHP_VERSION as OPcahce version
2016-05-17 17:17:09 +03:00
Dmitry Stogov d41920c57d Use PHP_VERSION as OPcahce version 2016-05-17 17:16:10 +03:00
Nikita Popov b65b15c6f4 Mark assert() as INDIRECT_VAR_ACCESS
I don't like this... we may want to detect "obviously not string"
operands by checking for the result of a comparison instruction.
2016-05-17 16:13:17 +02:00
Xinchen Hui 37b1226af1 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Inlined fast paths of the freqently execute handlers for FETCH_DIM_R.
2016-05-17 20:28:26 +08:00
Xinchen Hui fad91468db Revert "Fixed Bug #72213 (Finally leaks on nested exceptions)"
This reverts commit 5037ebf058.
2016-05-17 20:27:16 +08:00
Dmitry Stogov c466df6813 Inlined fast paths of the freqently execute handlers for FETCH_DIM_R. 2016-05-17 15:08:04 +03:00
Xinchen Hui 0c8879e3da Merge branch 'PHP-7.0'
* PHP-7.0:
  Let's only read-only here
2016-05-17 18:07:36 +08:00
Xinchen Hui 2eb7e75c25 Let's only read-only here 2016-05-17 18:07:20 +08:00
Xinchen Hui b27ecb5026 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Specialize ZEND_ASSIGN_ADD and family according to value of opline->extended_value
2016-05-17 17:41:01 +08:00
Xinchen Hui 60d743dd3b Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72229 (Wrong reference when serialize/unserialize an object)
2016-05-17 17:40:37 +08:00
Xinchen Hui 7989db975f Fixed bug #72229 (Wrong reference when serialize/unserialize an object) 2016-05-17 17:40:26 +08:00
Dmitry Stogov 34a6c93b25 Specialize ZEND_ASSIGN_ADD and family according to value of opline->extended_value 2016-05-17 11:46:25 +03:00
Xinchen Hui 5037ebf058 Fixed Bug #72213 (Finally leaks on nested exceptions) 2016-05-17 15:32:43 +08:00
Dmitry Stogov 8f7b1a3248 IS_CONST operands don't have to be separated. Use reference-counting instead of duplication.
- with opcache all IS_CONST operands are not refcounted (scalars, interned strings or immutable arrays)
- without opcache IS_CONST operands are not shared between processes or threads and may use common reference counters
2016-05-17 08:45:06 +03:00
Dmitry Stogov 1fe7b3bca1 micro-optimisation 2016-05-17 02:09:29 +03:00
Anatol Belski 41cb432ec4 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Tidy up
  Remove unnecessary boundary checks
  Resolve bug #72017
2016-05-16 19:31:20 +02:00
Anatol Belski 7e5ea3c305 update NEWS 2016-05-16 19:30:38 +02:00
Thomas Punt 0e21742bf8 Tidy up 2016-05-16 19:15:40 +02:00
Thomas Punt 367fde9947 Remove unnecessary boundary checks 2016-05-16 19:15:40 +02:00
Thomas Punt 39052d4d75 Resolve bug #72017 2016-05-16 19:15:40 +02:00
Xinchen Hui 8ed45fff1a Merge branch 'PHP-7.0' 2016-05-16 06:24:34 -07:00
Xinchen Hui 6f4860545b Revert "Revert the ABI break commit"
This reverts commit 07220f615b.
2016-05-16 06:23:55 -07:00
Xinchen Hui d1d18d5f26 Merge branch 'PHP-7.0' 2016-05-16 06:22:49 -07:00
Xinchen Hui 0b3a4c6101 Revert "Revert "fix #72143 (preg_replace uses int instead of size_t on zend_string_allocs)""
obviously I read the change is in argument lists by mistake :<

This reverts commit 9e7afa7514.
2016-05-16 06:22:13 -07:00
Dmitry Stogov 97bf4e0b12 Check if generator object is created by GENERATOR_CREATE when throw exceptions from generator function 2016-05-16 12:42:13 +03:00
Dmitry Stogov 054446a25f Extend CAL_FLAGS from 8-bit to 16-bit 2016-05-16 12:41:24 +03:00
Dmitry Stogov 414c4c6776 Revert "Check if generator object is created by GENERATOR_CREATE when throw exceptions from generator function."
This reverts commit a9b517c614.
2016-05-16 11:51:29 +03:00
Dmitry Stogov a9b517c614 Check if generator object is created by GENERATOR_CREATE when throw exceptions from generator function. 2016-05-16 10:24:13 +03:00
Xinchen Hui 0499f9094f Merge branch 'PHP-7.0'
* PHP-7.0:
  Correct name, it was typed in habitually
2016-05-16 14:49:22 +08:00
Xinchen Hui 8578fb994b Correct name, it was typed in habitually 2016-05-16 14:48:13 +08:00
Stanislav Malyshev 0da8b8b801 Fix bug #72135 - don't create strings with lengths outside int range 2016-05-15 23:26:51 -07:00
Xinchen Hui 5656292a18 Merge branch 'PHP-7.0'
* PHP-7.0:
  Revert the ABI break commit
  Revert "fix #72143 (preg_replace uses int instead of size_t on zend_string_allocs)"
2016-05-16 11:25:16 +08:00
Xinchen Hui 07220f615b Revert the ABI break commit 2016-05-16 11:24:39 +08:00
Xinchen Hui 9e7afa7514 Revert "fix #72143 (preg_replace uses int instead of size_t on zend_string_allocs)"
ABI break

This reverts commit fb951553be.
2016-05-16 11:24:16 +08:00
Xinchen Hui 3994a70b91 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72218 (If host name cannot be resolved then PHP 7 crashes)
  fix #72143 (preg_replace uses int instead of size_t on zend_string_allocs)
  fix #72206 (xml_parser_create/xml_parser_free leaks mem)
  improve 7132fe19c2
  fix 1bb8a7b0b8
  fix #72180 (Env variables incorrectly pretty printed in config.nice, phpinfo)

Conflicts:
	acinclude.m4
2016-05-16 11:21:39 +08:00
Xinchen Hui 1559fd7e48 Fixed bug #72218 (If host name cannot be resolved then PHP 7 crashes) 2016-05-16 11:19:45 +08:00
Jakub Zelenka bc63879d46 Update NEWS with info about JSON parser method 2016-05-15 14:15:04 +01:00
Jakub Zelenka 89d02e0019 Merge branch 'json_parser_method' 2016-05-15 13:50:23 +01:00
Anatol Belski 41518d255e fix dir separator 2016-05-14 23:48:04 +02:00
Nikita Popov dd8379e046 Inference: $a[]= results in long keys 2016-05-14 17:16:32 +02:00
Nikita Popov 6079ba4b0c Inference: Fix undef handling for binary ops
We need to be careful about correctly handling that undef results
in a null value. Otherwise, apart from simply generating incorrect
results, we may also end up performing non-monotonic lattice
transitions, thus causing an infinite type inference loop (see
test).
2016-05-14 17:16:32 +02:00
Nikita Popov 773b377888 Inference: Use common handling for compound assign ops
Extract the inference code for binary operators and then handle all
ASSIGN_* opcodes the same way.
2016-05-14 17:16:32 +02:00
Nikita Popov c5160d78f1 Add COPY_SSA_OBJ_TYPE macro
Use it consistently in the ASSIGN_* implementations, previously
it was only present in ASSIGN_ADD.
2016-05-14 17:16:32 +02:00
Nikita Popov 94d09163e7 Fix & improve assign_dim inference
Extract a helper function for handling ASSIGN_DIM and ASSIGN_*
with ASSIGN_DIM ev uniformly. Previously the code was copy pasted
for each ASSIGN_* op, but the variable names were not correctly
adjusted (tmp vs orig), so the type inference result was wrong.

Also sligthly improve handling:
 * Result cannot be false, will always be converted to array.
 * If the dim is a CONST string operand, we don't have to assume
   numeric strings.
 * If the inserted value may be undef, the array may contain null.
2016-05-14 17:16:32 +02:00
Joe Watkins 90f46f2c5b fix #72143 (preg_replace uses int instead of size_t on zend_string_allocs) 2016-05-14 08:21:32 +01:00
Joe Watkins fb951553be fix #72143 (preg_replace uses int instead of size_t on zend_string_allocs) 2016-05-14 08:20:41 +01:00
Joe Watkins 4a42fbbbc7 fix #72206 (xml_parser_create/xml_parser_free leaks mem) 2016-05-14 08:11:18 +01:00
Joe Watkins b165114013 fix #72206 (xml_parser_create/xml_parser_free leaks mem) 2016-05-14 08:10:16 +01:00
Joe Watkins 3684d41172 fix #72209 (ReflectionProperty::getValue() doesn't fail if object doesn't match type) 2016-05-14 06:28:11 +01:00
Sara Golemon 49a7be0697 Implement FIPS 180-4 algos: sha512/256 and sha512/224
These algorithms are simple extensions to the existing sha512 algo
using different initialization vectors and producing truncated output.
2016-05-14 04:39:39 +00:00
Sara Golemon 7594fd0cfa Check in generated lexer
This should have been included with my previous diff implementing octal overflow warning.
Ooops.
2016-05-14 04:31:39 +00:00
Sara Golemon 95af467d8d Raise compiler warning on octal overflow
Addresses https://bugs.php.net/bug.php?id=71994
2016-05-14 00:20:32 +00:00
Joe Watkins 1524e00ccc improve 7132fe19c2 2016-05-13 12:47:36 +01:00
Dmitry Stogov 8462b353d0 Added news entries 2016-05-13 14:46:43 +03:00
Dmitry Stogov be071702b3 Fixed bug #72188 (Nested try/finally blocks losing return value) 2016-05-13 14:38:43 +03:00
Dmitry Stogov e9c3f9fcde Fixed bug #72177 (Scope issue in __destruct after ReflectionProperty::setValue()) 2016-05-13 11:55:09 +03:00
Joe Watkins 7132fe19c2 fix 1bb8a7b0b8 2016-05-13 09:25:15 +01:00
Joe Watkins ee8f402af8 fix 1f52a03082 2016-05-13 09:21:28 +01:00
Joe Watkins 1f52a03082 fix #72180 (Env variables incorrectly pretty printed in config.nice, phpinfo) 2016-05-13 07:43:49 +01:00
Joe Watkins 1bb8a7b0b8 fix #72180 (Env variables incorrectly pretty printed in config.nice, phpinfo) 2016-05-13 07:41:11 +01:00
Dmitry Stogov ccf18da450 Eliminated checks for (func->op_array.fn_flags & ZEND_ACC_GENERATOR) in fast path of DO_FCALL* handlers.
This slightly improves calls to regular function and method calls in cost of a bit slower generator initialization.
Separate call frame for generators, allocated on heap, now created by ZEND_GENERATOR_CREATE instruction.
2016-05-13 01:40:15 +03:00
Nikita Popov b5bdb40cb5 Fix phi placement for pi targets
If the pi target has multiple predecessors, we need to place a
phi there. However it's not possible to express this in terms of
dominance frontiers, so we need to explicitly add it to the phi
set.

This does not yet solve the problem of non-minimal SSA for the
case where the target has multiple predecessors, but dominates
all predecessors (apart from the one creating the pi) -- but
that's an existing issue.
2016-05-12 22:08:28 +02:00
Nikita Popov b1c3c9a525 Explicitly construct phi set during def propagation
Previously the phi set was first computed during def propagation
and then computed again (per-block) during actual phi placement.
This commit changes this to store the phi set computed during
def propagation.

This makes SSA construction slightly faster (5%), but the main
purpose here is to pave the way for the next commit.

This also fixes a potential issue with the handling of irreducible
loops -- they generated additional phis, but these were not
accounted for in def propagation. (Though I'm not sure if we can
even have any irreducible loops right now.)
2016-05-12 22:08:28 +02:00
Anatol Belski aea0d577f9 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix dir separator in test
2016-05-12 20:38:02 +02:00
Anatol Belski f751b1ceaf fix dir separator in test 2016-05-12 20:37:04 +02:00
Dmitry Stogov 4652fe18c7 Removed useless code 2016-05-12 16:46:37 +03:00
Anatol Belski 468b2e673f Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-05-12 13:39:39 +02:00
Anatol Belski d33f258495 update NEWS 2016-05-12 13:39:15 +02:00
Anatol Belski ed2ec7be80 Merge branch 'PHP-7.0'
* PHP-7.0:
  workaround the extra new line in the test out on another env
2016-05-12 12:49:31 +02:00
Dmitry Stogov 7b94b958cc Intern some known (and offten used) strings. 2016-05-12 13:47:22 +03:00
Anatol Belski 9f50bb5bfa workaround the extra new line in the test out on another env 2016-05-12 12:45:04 +02:00
Anatol Belski 00390449c6 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72197 pg_lo_create arbitrary read
2016-05-12 11:41:18 +02:00
Anatol Belski 7f6e285430 Fixed bug #72197 pg_lo_create arbitrary read 2016-05-12 11:40:28 +02:00
Xinchen Hui 5ddb01ce42 Merge branch 'PHP-7.0'
* PHP-7.0:
  Added NEWS entry missed while doing merge
2016-05-12 13:48:52 +08:00
Xinchen Hui 3797e570b2 Added NEWS entry missed while doing merge 2016-05-12 13:48:24 +08:00
Xinchen Hui 28f35c1799 Merge branch 'PHP-7.0'
* PHP-7.0:
  Committed by accident
2016-05-12 13:40:32 +08:00
Xinchen Hui 92828ae204 Committed by accident 2016-05-12 13:40:22 +08:00
Xinchen Hui d1926742aa Merge branch 'PHP-7.0' of git.php.net:/php-src into PHP-7.0
* 'PHP-7.0' of git.php.net:/php-src:
  Fix serializing ZEND_AST_SHELL_EXEC
  add missing NEWS entry
  prepare for 5.6.22RC1
  add missing NEWS entry
2016-05-12 13:16:07 +08:00
Xinchen Hui 8fd92e0518 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72195 (pg_pconnect/pg_connect cause use-after-free)
2016-05-12 13:15:57 +08:00
Xinchen Hui 3c0341e6f9 Fixed bug #72195 (pg_pconnect/pg_connect cause use-after-free) 2016-05-12 13:15:33 +08:00
Sara Golemon 8523b1f8ed Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix serializing ZEND_AST_SHELL_EXEC
2016-05-12 02:51:14 +00:00
Sara Golemon a73b03edea Fix serializing ZEND_AST_SHELL_EXEC
Currently, `foo` is reserialized as `'foo'` due to misuse of zend_ast_export().
ZEND_AST_SHELL_EXEC can only contain ZEND_AST_ZVAL(string) or ZEND_AST_ENCAPS_LIST,
so just handle the ZEND_AST_ZVAL(string) case directly.
2016-05-12 02:47:56 +00:00
Dmitry Stogov 8a7a913a7a Use main VM stack for generators. Only single call frame for generator itself is allocated on heap, call frames for nested functions are allocated on main VM stack. In case "yield" used in context of another function call, call stack has to be frozen and then restored. 2016-05-12 00:44:18 +03:00
Ferenc Kovacs fe6af26e2d prepare for 5.6.22RC1 2016-05-11 23:34:15 +02:00
Ferenc Kovacs 9ffbd644c4 Merge branch 'PHP-7.0'
* PHP-7.0:
  add missing NEWS entry
  prepare for 5.6.22RC1
  add missing NEWS entry
2016-05-11 23:32:27 +02:00
Ferenc Kovacs 414eb83460 add missing NEWS entry 2016-05-11 23:31:52 +02:00
Ferenc Kovacs edcc97df39 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  prepare for 5.6.22RC1
  add missing NEWS entry
2016-05-11 23:31:09 +02:00
Ferenc Kovacs 0815f7f755 prepare for 5.6.22RC1 2016-05-11 23:30:04 +02:00
Ferenc Kovacs 89e4862e5f add missing NEWS entry 2016-05-11 23:29:23 +02:00
Jakub Zelenka 0a0e42d1f5 Add php_json_yyparse for direct use in json ext 2016-05-11 21:11:47 +01:00
Jakub Zelenka b91c05ea14 Fix and clean up exporting of json parser 2016-05-11 20:54:42 +01:00
Dmitry Stogov 515a61069a Added test 2016-05-11 12:55:33 +03:00
Xinchen Hui 904ea128ee Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed Bug #72193 (dns_get_record returns array containing elements of type 'unknown')
2016-05-11 17:32:06 +08:00
Xinchen Hui df404e2e0e Fixed Bug #72193 (dns_get_record returns array containing elements of type 'unknown') 2016-05-11 17:31:46 +08:00
Xinchen Hui 233562c2da Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71573 (Segfault (core dumped) if paramno beyond bound)
2016-05-11 11:12:46 +08:00
Xinchen Hui 66ad4fc393 Fixed bug #71573 (Segfault (core dumped) if paramno beyond bound) 2016-05-11 11:12:27 +08:00
Derick Rethans 1c49a9fa71 Merge branch 'PHP-7.0' 2016-05-10 15:40:09 -04:00
Derick Rethans c35bd4861d Allow for special case for the opcache zend extension 2016-05-10 15:40:03 -04:00
Anatol Belski 208c28f152 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix handle leak
2016-05-10 20:03:27 +02:00
Anatol Belski 0718aa5833 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix handle leak
2016-05-10 20:02:17 +02:00
Anatol Belski 6b63d80a7a fix handle leak 2016-05-10 19:59:48 +02:00
Dmitry Stogov 13ea086945 Merge branch 'PHP-7.0'
* PHP-7.0:
  The "flock" structure has to be writable on AIX.
2016-05-10 17:53:43 +03:00
Dmitry Stogov f7372f648f Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  The "flock" structure has to be writable on AIX.
2016-05-10 17:53:33 +03:00
Dmitry Stogov 90f43caf5b The "flock" structure has to be writable on AIX. 2016-05-10 17:50:14 +03:00
Anatol Belski 2beacaad49 set versions 2016-05-10 13:16:44 +02:00
Anatol Belski fd0731f09c Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare next 7.0.8
2016-05-10 13:10:35 +02:00
Anatol Belski 09dae4dc85 prepare next 7.0.8 2016-05-10 13:06:55 +02:00
Nikita Popov 20560da118 Merge branch 'PHP-7.0'
Conflicts:
	ext/reflection/php_reflection.c
2016-05-10 12:17:54 +02:00
Nikita Popov e6d4a9e2d2 Don't HT_ASSERT rc=1 in zend_hash_apply functions
These are not necessarily used to modify the hash. Move the assert
into the APPLY_REMOVE branch only.
2016-05-10 12:14:08 +02:00
Nikita Popov a1ed4ab3ca Fixed bug #72174
Also fixes a memory leak if ::getValue() is used with __get().
2016-05-10 12:13:10 +02:00
Stanislav Malyshev 41fc3c76e9 Add check for string overflow to all string add operations 2016-05-09 22:17:20 -07:00
Stanislav Malyshev abd159cce4 Fix bug #72114 - int/size_t confusion in fread 2016-05-09 21:55:29 -07:00
Anatol Belski f9bead7a59 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
2016-05-09 18:52:21 +02:00
Anatol Belski 3407931108 update NEWS 2016-05-09 18:51:54 +02:00
Anatol Belski a430f8a562 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  update NEWS
2016-05-09 18:51:25 +02:00
Anatol Belski 0ea2bfb30e update NEWS 2016-05-09 18:50:40 +02:00
Anatol Belski 148fa6bb44 Merge branch 'PHP-7.0'
* PHP-7.0:
  Revert "Fixed bug #71820 pg_fetch_object bind parameters before call constructor"
  Revert "Backport patch for bug #71820"
2016-05-09 17:29:56 +02:00
Anatol Belski fc2a45b70a Revert "Fixed bug #71820 pg_fetch_object bind parameters before call constructor"
This reverts commit b4eedd128b.

This fixed bug #72151, and reverts the fix for bug #71820.
See also bug #50636 and #49521 for the history.
2016-05-09 17:25:53 +02:00
Anatol Belski 692c262526 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Revert "Backport patch for bug #71820"
2016-05-09 17:23:40 +02:00
Anatol Belski 1cc536af5a Revert "Backport patch for bug #71820"
This reverts commit 1b632cfe83.

This fixed bug #72151, and reverts the fix for bug #71820.
See also bug #50636 and #49521 for the history.
2016-05-09 17:15:40 +02:00
Anatol Belski 7b65346b66 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #64524 Add intl.use_exceptions to php.ini-*
2016-05-08 15:13:01 +02:00
Anatol Belski f152c3fa57 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed bug #64524 Add intl.use_exceptions to php.ini-*
2016-05-08 15:12:20 +02:00
Anatol Belski 41b159fd11 Fixed bug #64524 Add intl.use_exceptions to php.ini-* 2016-05-08 15:09:50 +02:00
Xinchen Hui 9e404927a6 Merge branch 'PHP-7.0' 2016-05-07 22:05:05 -07:00
Xinchen Hui b62f7e338d Remove unnecessary strlen check 2016-05-07 22:04:31 -07:00
Xinchen Hui 69adf2370e Fixed test 2016-05-07 22:04:20 -07:00
Bob Weinand d33e71b358 Fix include_once in phpdbg 2016-05-07 14:45:41 +02:00
Xinchen Hui 455eabcd2c Merge branch 'PHP-7.0' 2016-05-07 00:08:35 -07:00
Xinchen Hui 29079f263e Strlen cleanup (additions for previous one fix)
Probably compilers will do similar optimization
2016-05-07 00:08:15 -07:00
Xinchen Hui 93e5d56617 Merge branch 'patch-1' of https://github.com/Valkyrurr/php-src 2016-05-06 23:55:13 -07:00
Xinchen Hui 2c992032ce Merge branch 'PHP-7.0' 2016-05-06 23:54:48 -07:00
Xinchen Hui f7439afeda Merge branch 'PHP-5.6' into PHP-7.0
Conflicts:
	Zend/zend_strtod.c
2016-05-06 23:52:48 -07:00
Xinchen Hui 1c7f608071 Fixed bug #72172 (zend_hex_strtod should not use strlen) 2016-05-06 23:52:06 -07:00
Xinchen Hui ed0eb2bfdd Merge branch 'PHP-7.0'
* PHP-7.0:
  Revert "Fixed bug #72170 (JsonSerializable may inc apply count without dec it)"
2016-05-06 20:25:43 +08:00
Xinchen Hui 197470b62f Revert "Fixed bug #72170 (JsonSerializable may inc apply count without dec it)"
This reverts commit 459a7cc209.
2016-05-06 20:25:24 +08:00
Xinchen Hui 9a43e3f4bf Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Add $http_response_header tests
2016-05-06 18:48:28 +08:00
Xinchen Hui 10f8ca9151 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72170 (JsonSerializable may inc apply count without dec it)
2016-05-06 18:39:18 +08:00
Xinchen Hui 459a7cc209 Fixed bug #72170 (JsonSerializable may inc apply count without dec it)
I don't want use zend_try here, but seems I have no choice :<
2016-05-06 18:38:26 +08:00
Nikita Popov 8ba694ebbd Add $http_response_header tests
Looks like we didn't have a single test for this functionality :/
2016-05-06 12:37:21 +02:00
Dmitry Stogov 8ae695cd75 Fixed possible crash 2016-05-06 12:36:21 +03:00
Dmitry Stogov cca2c8ecc4 Reimplemented Bob's commit bac6fdb0c5 without insignificant renaming and white-space changes 2016-05-06 10:47:58 +03:00
Dmitry Stogov 37c8711f49 Fixed typo 2016-05-06 10:47:58 +03:00
Dmitry Stogov c19cb70dac Revert "Refactor zval cleanup into single function"
This reverts commit bac6fdb0c5.
2016-05-06 10:47:58 +03:00
Anatol Belski cb4750f52d Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  reorder entry alphabetically
2016-05-06 09:41:44 +02:00
Anatol Belski 627b5aae3f update NEWS 2016-05-06 09:41:21 +02:00
Anatol Belski d76638b491 reorder entry alphabetically 2016-05-06 09:39:02 +02:00
Anatol Belski 80f91fd9d5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Re-fix #72165
  Revert "Fixed bug #72165 Null pointer dereference - openssl_csr_new"
2016-05-06 09:33:22 +02:00
Anatol Belski 5afba67bfe Re-fix #72165
Reverted previous wrong patch, throw warning for numeric keys.
Numeric field names are not supported, see "distinguished name"
section here https://www.openssl.org/docs/manmaster/apps/req.html
2016-05-06 09:30:41 +02:00
Anatol Belski dd5479ea4c Revert "Fixed bug #72165 Null pointer dereference - openssl_csr_new"
This reverts commit 7277c85765.
2016-05-06 09:19:04 +02:00
Anatol Belski 20ae634bf0 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72165 Null pointer dereference - openssl_csr_new
2016-05-06 09:02:14 +02:00
Anatol Belski 7277c85765 Fixed bug #72165 Null pointer dereference - openssl_csr_new 2016-05-06 09:01:27 +02:00
Xinchen Hui 4cd9cf8257 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test
  Revert "Fix bug #72162 (again)"
2016-05-06 10:53:25 +08:00
Xinchen Hui 080f6b10ec Fixed test 2016-05-06 10:51:38 +08:00
Xinchen Hui 441d1b8ef0 Revert "Fix bug #72162 (again)"
The problem is because we release p->value too early

and later you try to convert an object to string, which is a fatal error

then leave p->value double free, change to expect long is a BC break

This reverts commit 8e5b381004.
2016-05-06 10:45:44 +08:00
Bob Weinand bac6fdb0c5 Refactor zval cleanup into single function
Also use zval_ptr_dtor_nogc() everywhere in Zend in favor of zval_dtor()
2016-05-05 23:31:57 +02:00
Levi Morrison 56c3d75780 Fix bug #71428
This also affects bug #72119
2016-05-05 11:53:32 -06:00
Levi Morrison 9662259cb9 Add nullable parameter types
This works off of Dmitry's commit for nullable return types
2016-05-05 11:53:32 -06:00
Dmitry Stogov 49fe737e58 Implement nullable return types. 2016-05-05 09:34:16 -06:00
Nikita Popov 59f35c0ca9 Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_builtin_functions.c
2016-05-05 17:31:25 +02:00
Nikita Popov 8e5b381004 Fix bug #72162 (again)
Not sure what the previous fix was supposed to do. The issue was
that error_reporting() simply assumes that the value must either
be an integer or a string.

Fixed by using zpp properly.
2016-05-05 17:28:52 +02:00
Dmitry Stogov 26adba38bc Micro-optimization 2016-05-05 16:19:59 +03:00
Dmitry Stogov 6d52492906 Update comments consistently (#var0 -> #v) 2016-05-05 14:41:34 +03:00
Dmitry Stogov 542402afdb Refactor DFA pass for better readability 2016-05-05 14:37:41 +03:00
Xinchen Hui 23e362a46e Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72164 (Null Pointer Dereference - mb_ereg_replace)
2016-05-05 17:27:58 +08:00
Xinchen Hui 395863b1d1 Fixed bug #72164 (Null Pointer Dereference - mb_ereg_replace) 2016-05-05 17:27:34 +08:00
Xinchen Hui 5eecd61b89 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72154 (pcntl_wait/pcntl_waitpid array internal structure overwrite)
2016-05-05 15:18:24 +08:00
Xinchen Hui c15b6134f6 Fixed bug #72154 (pcntl_wait/pcntl_waitpid array internal structure overwrite) 2016-05-05 15:18:17 +08:00
Xinchen Hui 768bdc132a Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72157 (use-after-free caused by dba_open)
2016-05-05 11:12:24 +08:00
Xinchen Hui 1a5d58b28f Fixed bug #72157 (use-after-free caused by dba_open) 2016-05-05 11:12:17 +08:00
Xinchen Hui badf1edffd Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72162 (use-after-free - error_reporting)
2016-05-05 11:02:34 +08:00
Xinchen Hui 9191862121 Fixed bug #72162 (use-after-free - error_reporting) 2016-05-05 11:02:21 +08:00
Nikita Popov 35e7573a33 Merge branch 'PHP-7.0'
Conflicts:
	ext/opcache/Optimizer/block_pass.c
2016-05-05 00:01:56 +02:00
Nikita Popov 0691e7a8e1 Fix JMPZ, JMPZNZ_EX chain optimization
The result_type was not copied, resulting in a corrupted JMPZ_EX.
Fix can be verified by inspecting the opcodes of the following
function (it should not contain any _EX opcodes):

function test() {
    if ($a && $b) {
        echo "a";
    }

    if ($b || $c || $d) {
        echo "b";
    }
}

Conflicts:
	ext/opcache/Optimizer/block_pass.c
2016-05-05 00:00:56 +02:00
Dmitry Stogov 172d8552fc Fixed type inference rules. 2016-05-04 23:59:17 +03:00
Andrea Faulds 660e88c19d Fix bug #71897 2016-05-04 19:26:24 +01:00
Nikita Popov bfef17ab65 Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_compile.c
2016-05-04 18:43:55 +02:00
Nikita Popov 9af0c96af4 Fix bug #72159 2016-05-04 18:43:11 +02:00
Anatol Belski 24cf8ba7d8 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix NEWS, patch for #71428 was reverted
2016-05-04 18:15:18 +02:00
Anatol Belski 44372d6953 fix NEWS, patch for #71428 was reverted 2016-05-04 18:14:11 +02:00
Joe Watkins 8bec3dae94 Merge branch 'master' of https://github.com/php/php-src 2016-05-04 17:05:05 +01:00
Joe Watkins 3048092f5b Merge branch 'PHP-7.0'
* PHP-7.0:
  correct wording
2016-05-04 17:04:49 +01:00
Joe Watkins a17e4187e7 correct wording 2016-05-04 17:04:38 +01:00
Dmitry Stogov b91197c8a3 Inlined fast path 2016-05-04 17:33:35 +03:00
Joe Watkins dc78e02ad2 Merge branch 'PHP-7.0'
* PHP-7.0:
  add compiler option to disable builtins (special case function calls)
2016-05-04 10:54:29 +01:00
Joe Watkins 9bbee305e3 add compiler option to disable builtins (special case function calls) 2016-05-04 10:53:59 +01:00
Joe Watkins c38310f25a change fcall and statement handlers to accept frame 2016-05-04 09:28:13 +01:00
Jakub Zelenka afb4062c2c Merge branch 'json_parser_method' into json_parser_method_embed 2016-05-03 19:55:55 +01:00
Jakub Zelenka 34a9882ad3 Merge branch 'master' into json_parser_method 2016-05-03 19:55:41 +01:00
Anatol Belski ee551106bc Merge branch 'PHP-7.0'
* PHP-7.0:
  add test fo rbug 71805
2016-05-03 19:11:15 +02:00
Anatol Belski 2d0081cebd Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  add test fo rbug 71805
2016-05-03 19:10:40 +02:00
Anatol Belski 5351151352 add test fo rbug 71805 2016-05-03 19:09:11 +02:00
Anatol Belski 09b8550f59 Merge branch 'PHP-7.0'
* PHP-7.0:
  update libs versions
  upate libs versions
2016-05-03 18:28:08 +02:00
Anatol Belski 578ba03339 update libs versions 2016-05-03 18:27:21 +02:00
Anatol Belski 07519d4c4b Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  upate libs versions
2016-05-03 18:27:03 +02:00
Anatol Belski a387075954 upate libs versions 2016-05-03 18:24:35 +02:00
Nikita Popov d06431bf1b Merge branch 'PHP-7.0' 2016-05-03 18:15:29 +02:00
Nikita Popov fbae590bf0 Fix leaks in QM_ASSIGN, JMP_SET and COALESCE
The QM_ASSIGN code was rewritten to use the standard pattern for
handling CVs and VARs.
2016-05-03 18:12:56 +02:00
Bob Weinand 0f20e113c2 Fix potential double free with phpdbg 2016-05-03 13:36:41 +02:00
Xinchen Hui d08df44425 Merge branch 'PHP-7.0'
* PHP-7.0:
  Mark fcc as initialized for object calls
2016-05-03 11:13:41 +08:00
Bob Weinand b4c5009220 Mark fcc as initialized for object calls
This results in 1% speedup (cycle count) on some real world applications
2016-05-03 02:07:06 +02:00
Joe Watkins 824641e8c2 Merge branch 'master' of https://github.com/php/php-src 2016-05-02 22:17:16 +01:00
Joe Watkins 1b5a005367 hide implementation details in tests 2016-05-02 22:16:56 +01:00
Nikita Popov 0ce7189265 Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_constants.c
2016-05-02 20:04:24 +02:00
Nikita Popov ec7c3c22b6 Fix leak in zend_get_constant_ex 2016-05-02 19:59:43 +02:00
Joe Watkins 5e10735d07 improve test coverage of multicatch 2016-05-02 18:48:50 +01:00
Bob Weinand eb72b0ee06 Merge remote-tracking branch 'origin/PHP-7.0' 2016-05-02 18:22:35 +02:00
Bob Weinand 7c174b6197 Fix use after free on AST expressions in constant declarations 2016-05-02 18:22:15 +02:00
Bob Weinand 45c0301b69 Added NEWS entry for socket_export_stream()
Closes pull request https://github.com/php/php-src/pull/762
2016-05-02 17:11:26 +02:00
Chris Wright e8abb70fc9 Implement socket_export_stream() 2016-05-02 17:08:15 +02:00
Julien Pauli 95ed19ae28 Updated NEWS 2016-05-02 16:52:58 +02:00
Julien Pauli a4abd2bed9 Backport of fixed for bug #71331 - Uninitialized pointer in phar_make_dirstream() 2016-05-02 16:49:47 +02:00
Jakub Zelenka 37048c0f6c Use embedded json parser method structure 2016-05-02 13:02:40 +01:00
Nikita Popov 014fd895a1 Merge branch 'PHP-7.0' 2016-05-02 11:58:31 +02:00
Nikita Popov d5a38280be Drop dup declare with inconsistent linkage
This is already declared in zend_stream.h as ZEND_API.
2016-05-02 11:56:28 +02:00
Nikita Popov 9b99a1c9fb Fix compile warning in ast.c 2016-05-02 11:55:49 +02:00
Nikita Popov 4b0f9586db Add missing update_constants in ReflectionClassConstant
Also fix indentation of __toString().
2016-05-02 11:43:01 +02:00
Christopher Jones d59d8c9dc6 Ensure an ORDER BY gets the expected row order 2016-05-02 16:08:48 +10:00
Pierrick Charron d51b53e9d8 Add NEWS entry for rfc:multiple-catch 2016-05-01 18:56:11 -04:00
Pierrick Charron 0aed2cc2a4 Allow catching multiple exception types in a single catch statement
This commit add the possibility to catch multiple exception types in
a single catch statement to avoid code duplication.

try {
	   // Some code...
} catch (ExceptionType1 | ExceptionType2 $e) {
	   // Code to handle the exception
} catch (\Exception $e) {
	   // ...
}
2016-05-01 18:47:08 -04:00
Anatol Belski 770a6d1342 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test if unlink fails occasionally
  fix dir separator in test
2016-05-01 19:27:13 +02:00
Anatol Belski 5360b3de33 fix test if unlink fails occasionally 2016-05-01 19:25:39 +02:00
Anatol Belski 81e62e66d6 fix dir separator in test 2016-05-01 19:05:02 +02:00
Anatol Belski 965ff1c9bb Merge branch 'master' of git.php.net:php-src 2016-05-01 13:23:57 +02:00
Anatol Belski 2acdf68b5a Merge branch 'PHP-7.0' of git.php.net:php-src into PHP-7.0 2016-05-01 13:23:35 +02:00
Anatol Belski d9f321c6ac Merge branch 'PHP-7.0'
* PHP-7.0:
  Update PHP 5.5 NEWS entries with CVE info
  Added CVE
  Updated NEWS
2016-05-01 13:20:33 +02:00
Anatol Belski bb7cae788e Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Update PHP 5.5 NEWS entries with CVE info
  Added CVE
  Updated NEWS
2016-05-01 13:19:48 +02:00
Anatol Belski 20359deae6 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Update PHP 5.5 NEWS entries with CVE info
  Added CVE
  Updated NEWS
2016-05-01 13:18:24 +02:00
Lior Kaplan 5c571626e3 Update PHP 5.5 NEWS entries with CVE info 2016-05-01 13:14:57 +02:00
Nikita Popov 359af7c64b Merge branch 'PHP-7.0' 2016-05-01 13:07:13 +02:00
Nikita Popov 8e855534b7 Fix posix build 2016-05-01 13:07:01 +02:00
Nikita Popov 6a9a0f2090 Merge branch 'PHP-7.0' 2016-05-01 13:05:28 +02:00
Nikita Popov d0069ca6c1 Fix ('\bar')() in namespace 2016-05-01 13:05:14 +02:00
Xinchen Hui 6151151036 Merge branch 'PHP-7.0' 2016-05-01 11:04:48 +08:00
Xinchen Hui 895337ddbd Fixed bug #72133 (php_posix_group_to_array crashes if gr_passwd is NULL) 2016-05-01 11:00:41 +08:00
Anatol Belski 71df61adad fix test 2016-04-30 21:15:57 +02:00
Bob Weinand f59de7ea36 Export zend_pass_function to allow comparisons against it 2016-04-30 20:46:52 +02:00
Nikita Popov 0615c59a4f Mark all $php_errormsg as refs to inhibit optimization 2016-04-30 12:34:01 +02:00
Sara Golemon bdfa6aeebb Merge branch 'PHP-7.0'
* PHP-7.0:
  Create temporary sqlite db in test dir rather than cwd (and clean it up)
2016-04-30 06:05:18 +00:00
Sara Golemon d0b952260e Create temporary sqlite db in test dir rather than cwd (and clean it up)
Well behaved tests do not leave their droppings all over the filesystem.
2016-04-30 06:02:01 +00:00
Joe Watkins 436b26c70b Merge branch 'master' of https://github.com/php/php-src 2016-04-30 06:49:25 +01:00
Joe Watkins 9ad40d8d36 This function needs to be exported for extensions that implement complex zend objects 2016-04-30 06:48:47 +01:00
Nikita Popov 01df044fd5 Reset IMMUTABLE flag when copy_ctor'ing AST 2016-04-29 22:39:21 +02:00
Nikita Popov d048837a46 Drop dead code from update_constant 2016-04-29 22:15:38 +02:00
Nikita Popov 5595dd5ffa Revert code to use DUP instead of COPY
In a1c405e0c5 next to the actual fix
I have also switched some (effective) ZVAL_DUPs to ZVAL_COPYs. I'm
reverting this part as those were probably there for a reason
(presumably issues with non-atomic refcounting on ZTS).
2016-04-29 22:02:31 +02:00
Anatol Belski 2c5704bdc2 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test
  Expose some of the new curl constants to PHP userspace
2016-04-29 14:31:49 +02:00
Anatol Belski 8c74f03c10 fix test 2016-04-29 14:30:19 +02:00
Pierrick Charron 3c92f113e4 Expose some of the new curl constants to PHP userspace 2016-04-29 14:19:55 +02:00
Nikita Popov a1c405e0c5 Fix usages of zend_update_constant_ex
If an in-place update in an external zval is performed, it needs
to incref'd beforehand, not afterwards.
2016-04-29 14:06:39 +02:00
Joe Watkins 416e22d2bb Merge branch 'master' of https://github.com/php/php-src 2016-04-29 13:05:44 +01:00
Joe Watkins fdeb8a199e news entry 2016-04-29 13:05:29 +01:00
Dmitry Stogov dbdc37ac4f Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Implement #51879 stream context socket option tcp_nodelay
2016-04-29 14:45:29 +03:00
Dmitry Stogov 2578d08033 Fixed compilation warnings 2016-04-29 14:44:56 +03:00
Joe Watkins 3aaf90df49 Merge branch 'master' of https://github.com/php/php-src 2016-04-29 12:26:18 +01:00
Joe Watkins 4d92498651 Implement #51879 stream context socket option tcp_nodelay 2016-04-29 12:25:54 +01:00
Joe Watkins 66fc5a3436 Implement #51879 stream context socket option tcp_nodelay 2016-04-29 12:11:58 +01:00
Dmitry Stogov 3e9419dd28 Fixed compilation warnings 2016-04-29 14:03:33 +03:00
Dmitry Stogov cb75ea4b64 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Add CVE IDs PHP 7.0.0
  Add CVE IDs PHP 7.0.2
  Add CVE IDs PHP 7.0.3
  Add CVE IDs PHP 7.0.4
  Add CVE IDs PHP 7.0.5
  Add CVE to bug #71912 (PHP 7.0.6)
  Add CVE to bug #69719 (PHP 5.6.10)
  Add CVE IDs PHP 5.6.12
  Add CVE IDs PHP 5.6.13
  Add CVE IDs PHP 5.6.14
  Add CVE to bug #70976 (PHP 5.6.17)
  Add CVE IDs PHP 5.6.18
  Add CVE IDs PHP 5.6.20
  Add CVE to bug #71912 (PHP 5.6.21)
2016-04-29 13:44:23 +03:00
Dmitry Stogov 84bf7ae59b Fixed "comparison between signed and unsigned integer expressions" compilation warnings 2016-04-29 13:43:43 +03:00
Lior Kaplan 3d9b4ae69a Merge branch 'PHP-7.0'
* PHP-7.0:
  Add CVE IDs PHP 7.0.0
  Add CVE IDs PHP 7.0.2
  Add CVE IDs PHP 7.0.3
  Add CVE IDs PHP 7.0.4
  Add CVE IDs PHP 7.0.5
  Add CVE to bug #71912 (PHP 7.0.6)
  Add CVE to bug #69719 (PHP 5.6.10)
  Add CVE IDs PHP 5.6.12
  Add CVE IDs PHP 5.6.13
  Add CVE IDs PHP 5.6.14
  Add CVE to bug #70976 (PHP 5.6.17)
  Add CVE IDs PHP 5.6.18
  Add CVE IDs PHP 5.6.20
  Add CVE to bug #71912 (PHP 5.6.21)
2016-04-29 13:42:54 +03:00
Lior Kaplan 9943c32242 Add CVE IDs PHP 7.0.0 2016-04-29 13:41:29 +03:00
Lior Kaplan 5a578eb8f0 Add CVE IDs PHP 7.0.2 2016-04-29 13:40:44 +03:00
Lior Kaplan 8c215baae7 Add CVE IDs PHP 7.0.3 2016-04-29 13:40:07 +03:00
Lior Kaplan 8491a4e438 Add CVE IDs PHP 7.0.4 2016-04-29 13:39:03 +03:00
Lior Kaplan 19b5e950e7 Add CVE IDs PHP 7.0.5 2016-04-29 13:38:25 +03:00
Lior Kaplan 34dec87343 Add CVE to bug #71912 (PHP 7.0.6) 2016-04-29 13:36:24 +03:00
Lior Kaplan 6e68b44843 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Add CVE to bug #69719 (PHP 5.6.10)
  Add CVE IDs PHP 5.6.12
  Add CVE IDs PHP 5.6.13
  Add CVE IDs PHP 5.6.14
  Add CVE to bug #70976 (PHP 5.6.17)
  Add CVE IDs PHP 5.6.18
  Add CVE IDs PHP 5.6.20
  Add CVE to bug #71912 (PHP 5.6.21)
2016-04-29 13:26:46 +03:00
Lior Kaplan 76a5117da7 Add CVE to bug #69719 (PHP 5.6.10) 2016-04-29 13:23:41 +03:00
Lior Kaplan eeea33db68 Add CVE IDs PHP 5.6.12 2016-04-29 13:21:35 +03:00
Lior Kaplan 26f8ee48d6 Add CVE IDs PHP 5.6.13 2016-04-29 13:19:46 +03:00
Lior Kaplan 91fd5406bc Add CVE IDs PHP 5.6.14 2016-04-29 13:17:34 +03:00
Lior Kaplan 34fc0ec377 Add CVE to bug #70976 (PHP 5.6.17) 2016-04-29 13:16:27 +03:00
Lior Kaplan a23ae0f436 Add CVE IDs PHP 5.6.18 2016-04-29 13:15:30 +03:00
Dmitry Stogov 0091d81668 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  fix constants availability
  fix size_t signed comparison
2016-04-29 13:13:59 +03:00
Lior Kaplan b8b2dd1a43 Add CVE IDs PHP 5.6.20 2016-04-29 13:11:54 +03:00
Dmitry Stogov 71842c2828 Fixed breaks of strict-aliasing rules 2016-04-29 13:11:27 +03:00
Lior Kaplan a91c3f1dd0 Add CVE to bug #71912 (PHP 5.6.21) 2016-04-29 13:10:13 +03:00
Dmitry Stogov dfe092b22e Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed condition
2016-04-29 12:49:54 +03:00
Dmitry Stogov 70171affd6 Fixed condition 2016-04-29 12:49:41 +03:00
Dmitry Stogov f2b8b8fde2 Merge branch 'PHP-7.0'
* PHP-7.0:
  Use unsigned shift to clear the bit.
2016-04-29 12:39:27 +03:00
Dmitry Stogov a8d4649097 Use unsigned shift to clear the bit. 2016-04-29 12:38:48 +03:00
Anatol Belski 9db8cefa3c fix constants availability
The issue here is that winsock2 defines IP protocols as an enum,
so the preprocessor won't catch it. However all the items related
are available as of winxp (see ws2def.h), so it's safe just to have.
2016-04-29 11:37:19 +02:00
Dmitry Stogov e2340a17bd Merge branch 'PHP-7.0'
* PHP-7.0:
  Simplified condition
2016-04-29 12:34:09 +03:00
Dmitry Stogov 37f7c71f3e Simplified condition 2016-04-29 12:33:54 +03:00
Dmitry Stogov 926857708b Merge branch 'PHP-7.0'
* PHP-7.0:
  size_t is unsigned and can't be negative
2016-04-29 12:24:13 +03:00
Dmitry Stogov ddac2852dc size_t is unsigned and can't be negative 2016-04-29 12:23:30 +03:00
Joe Watkins 12f826d7df Merge branch 'PHP-7.0'
* PHP-7.0:
  fix size_t signed comparison
2016-04-29 10:20:27 +01:00
Joe Watkins dbae1653da fix size_t signed comparison 2016-04-29 10:19:55 +01:00
Dmitry Stogov 19c0335609 Revert "Fix bad merge into master"
This reverts commit 2c8e4ba8f1.
2016-04-29 11:15:26 +03:00
Julien Pauli 6058b78878 Added CVE 2016-04-29 09:12:27 +02:00
Xinchen Hui 2f17ef1d25 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed build
  Add NEWS entry for bug #71331 (fixed in 7.0.3)
  Add NEWS entry for bug #71331 (fixed in PHP 5.6.18)
2016-04-29 11:13:29 +08:00
Xinchen Hui a5718539b1 Fixed build 2016-04-29 11:13:15 +08:00
Lior Kaplan 9e57360c83 Add NEWS entry for bug #71331 (fixed in 7.0.3) 2016-04-28 21:12:27 +03:00
Lior Kaplan b18da2a322 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Add NEWS entry for bug #71331 (fixed in PHP 5.6.18)
2016-04-28 21:12:00 +03:00
Nikita Popov 153b27dff1 Fix GC tests on dbg-zts-nocache
We may collect a different number of zvals depending on interning.
Switch tests to compare against a minimum number of collections
instead of a fixed value.
2016-04-28 20:10:28 +02:00
Stanislav Malyshev 9649ca1630 Fixed bug #71331 - Uninitialized pointer in phar_make_dirstream() 2016-04-28 20:57:44 +03:00
Anatol Belski b74a06bfb6 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-28 19:47:05 +02:00
Lior Kaplan e70fe1c42e Add NEWS entry for bug #71331 (fixed in PHP 5.6.18) 2016-04-28 20:46:29 +03:00
Anatol Belski 67b5d647dd update NEWS 2016-04-28 19:46:15 +02:00
Bob Weinand 2c8e4ba8f1 Fix bad merge into master
This should only have been reverted in 7.0, but not for 7.1. (merge=ours??)
Added appropriate NEWS entry.
2016-04-28 19:32:14 +02:00
Nikita Popov 357ee4305e Fix leak in guards patch 2016-04-28 19:20:51 +02:00
Dmitry Stogov 033a8020c2 Merge branch 'PHP-7.0'
* PHP-7.0:
  Added test
2016-04-28 20:12:57 +03:00
Dmitry Stogov d851e8389c Added test 2016-04-28 20:12:42 +03:00
Dmitry Stogov 389f77b37c Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed BC break described by bug #72119. It was introduced after 7.0.5 release by attempt to fix bug #71428.
2016-04-28 19:57:59 +03:00
Dmitry Stogov 9e45ac53ce Fixed BC break described by bug #72119.
It was introduced after 7.0.5 release by attempt to fix bug #71428.
2016-04-28 19:56:10 +03:00
Joe Watkins c07069495b Merge branch 'PHP-7.0'
* PHP-7.0:
  simplify expression
2016-04-28 15:52:45 +01:00
Joe Watkins 2787a24f86 simplify expression 2016-04-28 15:52:30 +01:00
Joe Watkins c2ef11e86f Merge branch 'PHP-7.0'
* PHP-7.0:
  simplify expression
2016-04-28 15:50:36 +01:00
Joe Watkins f580540c8d simplify expression 2016-04-28 15:50:27 +01:00
Joe Watkins 64721f143a Merge branch 'PHP-7.0' of https://github.com/php/php-src into PHP-7.0 2016-04-28 15:41:23 +01:00
Joe Watkins de019858c3 Merge branch 'PHP-7.0'
* PHP-7.0:
  variable used out of scope
2016-04-28 15:40:59 +01:00
Joe Watkins e27a43b7be variable used out of scope 2016-04-28 15:40:28 +01:00
Dmitry Stogov 747a482b9c Don't initialize EX(call)->symbol_table on each function call.
Keep it uninitialized, and check ZEND_CALL_HAS_SYMBOL_TABLE flag when necessary.
2016-04-28 15:17:24 +03:00
Bob Weinand 6d420dc782 Merge branch 'PHP-7.0' 2016-04-28 11:10:53 +02:00
Bob Weinand 74ef863f5d Fixed bug #72116 (7.0.6 array_fill optimization breaks implementation) 2016-04-28 11:02:47 +02:00
Dmitry Stogov 6499162ff0 - get rid of EG(scope). zend_get_executed_scope() should be used instead.
- ichanged zval_update_constant_ex(). Use IS_TYPE_IMMUTABLE flag on shared constants and AST, instead of "inline_change" parameter.
2016-04-28 04:13:34 +03:00
Ferenc Kovacs 8339222106 Merge branch 'PHP-7.0'
* PHP-7.0:
  small whitespace fix
2016-04-28 02:37:37 +02:00
Ferenc Kovacs 595d19bcfa Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  small whitespace fix
2016-04-28 02:37:01 +02:00
Ferenc Kovacs 227e5d1153 small whitespace fix 2016-04-28 02:32:45 +02:00
Anatol Belski 9af7ad0778 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-27 18:59:43 +02:00
Anatol Belski a877c7ae29 update NEWS 2016-04-27 18:58:28 +02:00
Nikita Popov d94b9545d6 Support known static/method calls in call graph
For this purpose extract the function lookup call into a helper
zend_optimizer_get_called_func().
2016-04-27 17:10:45 +02:00
Nikita Popov 4f54c15cb1 Ct bind private/final $this method call args
The test covers two edge-cases wrt opcache support.
2016-04-27 17:10:44 +02:00
Anatol Belski 480c5ed2be Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
2016-04-27 14:57:14 +02:00
Anatol Belski 759271ff34 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  update NEWS
2016-04-27 14:56:35 +02:00
Anatol Belski 05df0951b2 update NEWS 2016-04-27 14:56:08 +02:00
Anatol Belski 0c529b3899 update NEWS 2016-04-27 14:50:46 +02:00
Xinchen Hui 91ca55f9f4 Merge branch 'PHP-7.0'
* PHP-7.0:
  Use zend_string_safe_alloc
2016-04-27 20:34:29 +08:00
Xinchen Hui a05320c419 Use zend_string_safe_alloc 2016-04-27 20:29:11 +08:00
Anatol Belski 2613011b2e Merge branch 'PHP-7.0'
* PHP-7.0:
  fix/improve tests
2016-04-27 13:20:08 +02:00
Anatol Belski 25ef19f927 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix/improve tests
2016-04-27 13:19:29 +02:00
Anatol Belski a21a997478 fix/improve tests 2016-04-27 13:16:57 +02:00
Dmitry Stogov f0a2e8eb13 Removed "zend_fcall_info.function_table". It was assigned in many places, but is never used. 2016-04-27 13:46:38 +03:00
Anatol Belski 1a154c7db5 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix merge
  Fix memory leak
  Fix bug #72099: xml_parse_into_struct segmentation fault
  5.5.36 now
  Fix bug #72094 - Out of bounds heap read access in exif header processing
  Fix bug #72093: bcpowmod accepts negative scale and corrupts _one_ definition
  Fix bug #72061 - Out-of-bounds reads in zif_grapheme_stripos with negative offset
  Fix for bug #71912 (libgd: signedness vulnerability)
  Typo in NEWS
2016-04-27 12:30:34 +02:00
Anatol Belski 4bc97db0b8 fix merge 2016-04-27 12:24:28 +02:00
Julien Pauli 008f983ba6 Updated NEWS 2016-04-27 11:55:05 +02:00
Anatol Belski 33d41da347 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fix memory leak
  Fix bug #72099: xml_parse_into_struct segmentation fault
  5.5.36 now
  Fix bug #72094 - Out of bounds heap read access in exif header processing
  Fix bug #72093: bcpowmod accepts negative scale and corrupts _one_ definition
  Fix bug #72061 - Out-of-bounds reads in zif_grapheme_stripos with negative offset
  Fix for bug #71912 (libgd: signedness vulnerability)
  Typo in NEWS
2016-04-27 11:45:29 +02:00
Stanislav Malyshev e315a162da Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix memory leak
  Fix bug #72099: xml_parse_into_struct segmentation fault
  5.5.36 now
  Fix bug #72094 - Out of bounds heap read access in exif header processing
  Fix bug #72093: bcpowmod accepts negative scale and corrupts _one_ definition
  Fix bug #72061 - Out-of-bounds reads in zif_grapheme_stripos with negative offset
  Fix for bug #71912 (libgd: signedness vulnerability)
  Typo in NEWS

Conflicts:
	configure.in
	main/php_version.h
2016-04-26 23:48:41 -07:00
Stanislav Malyshev e35e5b2187 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix build
2016-04-26 23:04:40 -07:00
Stanislav Malyshev a32e143d4e fix build 2016-04-26 23:04:29 -07:00
Stanislav Malyshev 3bba9c7fba Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #71923 - integer overflow in ZipArchive::getFrom*
2016-04-26 22:59:25 -07:00
Stanislav Malyshev ccc12efa32 Fix bug #71923 - integer overflow in ZipArchive::getFrom* 2016-04-26 22:59:09 -07:00
Stanislav Malyshev 61c7a06e7c Fix memory leak 2016-04-26 22:54:58 -07:00
Stanislav Malyshev dccda88f27 Fix bug #72099: xml_parse_into_struct segmentation fault 2016-04-26 22:46:28 -07:00
Xinchen Hui ea95621f71 Merge branch 'PHP-7.0'
* PHP-7.0:
  Use zend_string_safe_alloc
2016-04-27 12:51:51 +08:00
Xinchen Hui c89b7a4860 Use zend_string_safe_alloc 2016-04-27 12:45:02 +08:00
Dmitry Stogov e88c71d356 Optimize property guards for the most usual case with only one acive guard. 2016-04-27 00:24:20 +03:00
Julien Pauli f856734c67 5.5.36 now 2016-04-26 22:34:00 +02:00
Dmitry Stogov 4da3eb8f13 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test on 32-bit platforms (split into 32-bit and 64-bit versions)
2016-04-26 13:45:02 +03:00
Dmitry Stogov 4ce8a15eae Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed test on 32-bit platforms (split into 32-bit and 64-bit versions)
2016-04-26 13:44:52 +03:00
Dmitry Stogov 9f389cccfd Fixed test on 32-bit platforms (split into 32-bit and 64-bit versions) 2016-04-26 13:43:18 +03:00
Dmitry Stogov 8eeedb6e48 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72100 (implode() inserts garbage into resulting string when joins very big integer). (Mikhail Galanin)
2016-04-26 13:06:16 +03:00
Dmitry Stogov 8f0ceb97cf Fixed bug #72100 (implode() inserts garbage into resulting string when joins very big integer). (Mikhail Galanin) 2016-04-26 13:04:06 +03:00
Dmitry Stogov 40b2048f72 Skip test on ZTS build 2016-04-25 14:48:36 +03:00
Dmitry Stogov 11e06e91ec Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72101 (crash on complex code)
2016-04-25 14:15:06 +03:00
Dmitry Stogov 92233dd736 Fixed bug #72101 (crash on complex code) 2016-04-25 14:11:46 +03:00
Dmitry Stogov 5b92b65591 Fixed race conditions in test 2016-04-25 13:01:14 +03:00
Stanislav Malyshev 082aecfc3a Fix bug #72094 - Out of bounds heap read access in exif header processing 2016-04-24 19:33:52 -07:00
Stanislav Malyshev d650063a04 Fix bug #72093: bcpowmod accepts negative scale and corrupts _one_ definition
We can not modify result since it can be copy of _zero_ or _one_, etc. and
"copy" in bcmath is just bumping the refcount.
2016-04-24 18:33:32 -07:00
Stanislav Malyshev fd9689745c Fix bug #72061 - Out-of-bounds reads in zif_grapheme_stripos with negative offset 2016-04-24 13:15:17 -07:00
Nikita Popov 434e0fb3a5 Take pi defs into account when propagating defs
Previously pi placement happened after initial phi placement.
Afterwards a second phi placement pass was performed, however it
incorrectly only placed phis on the dominance frontier, rather
than the iterated dominance frontier.

This is fixed by moving pi placement before the propagation of
defs on the iterated DFs, and adding a def for each added pi.

While this ensures that we generate correct conservative SSA, there
is still one remaining case in which we may generate non-minimal
SSA form. Consider:

   |1|
    |pi
    v
   |2|<--\
    |    |
    \----/

The pi is semanically located along the edge 1->2, however we place
it (and its def point) in 2, thus leading to the generation of an
additional (trivial) phi in 2.

Conflicts:
	ext/opcache/Optimizer/zend_ssa.c
2016-04-24 21:46:20 +02:00
Nikita Popov 721be3e0c1 Make pi placement independent of phi placement
This interdependence is problematic because we can't propagate pi
def points in the initial dominance frontier propagation. The used
rule for multiple-predecessor blocks may also miss cases where
placing the pi would have been useful.

The new heuristic for pi placement checks that a) the variable is
live-in and b) for the "from" block that generated the pi, the
other successor does not dominate all other predecessors of the
"to" block.

The purpose of case b) may be illustrated with an example:

    if (is_int($i)) {
        // place pi here
    }
    // but don't place pi here

The reason we do not want to place the second pi is that we generally
place pis in positive+negative pairs, and in this case the pair
would merge in a phi and cancel out, so we get no useful information
out of it.
2016-04-24 21:45:22 +02:00
Nikita Popov 65faf0a5a2 Drop some unnecessary checks 2016-04-24 17:15:46 +02:00
Nikita Popov cafe78d12a Introduce ZEND_BITSET_FOREACH macros 2016-04-24 17:05:13 +02:00
Pierrick Charron 62240f2653 Merge branch 'PHP-7.0' 2016-04-23 22:55:46 -04:00
Pierrick Charron a2d78d1a5f Fixed bug #68658 (Define CURLE_SSL_CACERT_BADFILE) 2016-04-23 22:55:00 -04:00
Pierrick Charron 083f74659f Merge branch 'PHP-7.0' 2016-04-23 18:38:51 -04:00
Pierrick Charron 043ce195c6 Fix cURL test to use local server instead of google 2016-04-23 18:37:55 -04:00
Anatol Belski 6e06ab1464 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72035 php-cgi.exe fails to run scripts relative to drive root
2016-04-23 19:22:22 +02:00
Anatol Belski e0edb25cf2 Fixed bug #72035 php-cgi.exe fails to run scripts relative to drive root 2016-04-23 18:55:52 +02:00
Xinchen Hui fa5f28a0a1 Merge branch 'PHP-7.0' 2016-04-22 21:41:52 -07:00
Xinchen Hui 589d0e0f18 Fixed bug #72069 (Behavior \JsonSerializable different from json_encode) 2016-04-22 21:41:44 -07:00
Xinchen Hui 67947d0fda Merge branch 'PHP-7.0' 2016-04-22 21:22:01 -07:00
Xinchen Hui 9eb7c8cd3b Fixed bug #72075 (Referencing socket resources breaks stream_select) 2016-04-22 21:21:49 -07:00
Nikita Popov ded69ee6e6 Make zval_ptr_dtor / _zval_dtor_func more robust
In particular, allow arrays with refcount>1, like we already allow
for all other types. _zval_dtor_func is now the same as
_zval_dtor_func_for_ptr with an extra refcount decrement check at
the start. At this point we might as well drop it...
2016-04-22 17:48:35 +02:00
Nikita Popov 304e5ae3d6 Adjust DFG allocation size
Now we need one set less...
2016-04-21 23:49:37 +02:00
Nikita Popov 55caaac73f Make MAY_BE_ERROR handling more accurate
This ended up causing weird things like MAY_BE_ERROR CVs.

Also make sure that ASSIGN result isn't MAY_BE_REF.
2016-04-21 23:49:20 +02:00
Nikita Popov 3dc8f80b61 Merge branch 'PHP-7.0' 2016-04-21 23:42:20 +02:00
Nikita Popov 988bdd0908 Fix escape sequences in pgsql.c 2016-04-21 23:41:59 +02:00
Nikita Popov 89fbce5c5f Mark zend_timeout as noreturn
Otherwise we get a compiler warning...
2016-04-21 23:35:51 +02:00
Nikita Popov a5944f8dd5 Merge def and gen sets
For live-variable analysis it does not matter if def includes
variables that are previously use in the same block, the data flow
equations still have the same result. As such there is no need to
compute separate gen & def sets.

I'm keeping the name "def", because use of "gen" in this context is
pretty confusing (gen is usually the use set, not the def set).
2016-04-21 23:32:01 +02:00
Bob Weinand 261eb5cc89 Merge branch 'PHP-7.0' 2016-04-21 21:51:50 +02:00
Bob Weinand 69efeb1223 Fix constant expr coaleasce with protected mode opcache 2016-04-21 21:51:00 +02:00
Dmitry Stogov 55f0186335 Added news entry 2016-04-21 22:37:13 +03:00
Eriko Torralba e26dabd8ee Update run-tests.php
code style; lack of whitespace
2016-04-21 17:38:36 +08:00
Dmitry Stogov c026ca6cdc Merge branch 'master' into safe_timeout
* master:
  Fixed bug #72059 - Reference the bug id directly in NEWS
  Fix magic constants (__LINE__) with ?? for constant scalar exprs
  Add NEWS entry for ?? in constant scalar expressions
  allow null coalescing (??) on constant expressions
  Fix intl tests for ICU < 52
  Fix ZTS builds by adding a missing TSRMLS_FETCH().
  Fix bug #71737
  Update NEWS
  Fix RECV opcode to handle all kinds of exceptions
  Fix RECV opcode to handle all kinds of exceptions
2016-04-21 10:15:57 +03:00
Bob Weinand ecf6392243 Merge remote-tracking branch 'origin/PHP-7.0' 2016-04-21 02:50:14 +02:00
Bob Weinand 5053fc078d Fixed bug #72059 - Reference the bug id directly in NEWS 2016-04-21 02:48:52 +02:00
Bob Weinand a287c3f776 Fix magic constants (__LINE__) with ?? for constant scalar exprs
Also fix general memory leak when root ast gets replaced in compile time evaluation
2016-04-21 02:45:09 +02:00
Bob Weinand 36202ef056 Merge remote-tracking branch 'origin/PHP-7.0' 2016-04-21 01:26:48 +02:00
Bob Weinand 672a99597c Add NEWS entry for ?? in constant scalar expressions 2016-04-21 01:24:56 +02:00
Márcio Almada 9f3eab44df allow null coalescing (??) on constant expressions 2016-04-21 01:22:28 +02:00
Nikita Popov dc3ab58c14 Fix intl tests for ICU < 52 2016-04-20 19:43:15 +02:00
Nikita Popov 0beb6d17e4 Merge branch 'PHP-7.0' 2016-04-20 19:00:13 +02:00
Nikita Popov 85867268fd Merge branch 'PHP-5.6' into PHP-7.0
Conflicts:
	Zend/zend_compile.c
2016-04-20 19:00:02 +02:00
Adam Harvey c4f69b6dfd Fix ZTS builds by adding a missing TSRMLS_FETCH(). 2016-04-20 18:58:29 +02:00
Nikita Popov c9d8dfed60 Merge branch 'PHP-7.0' 2016-04-20 18:43:43 +02:00
Nikita Popov 77bb96d7c9 Fix bug #71737
Also improve the error message for $this used in parameters.
2016-04-20 18:38:40 +02:00
Xinchen Hui 02e6808144 Merge branch 'PHP-7.0' 2016-04-20 08:43:54 -07:00
Xinchen Hui ede06b7e20 Update NEWS 2016-04-20 08:42:06 -07:00
Nikita Nefedov 19759a5602 Fix RECV opcode to handle all kinds of exceptions
fix RECV opcode to handle exceptions thrown from user-defined error handler
as a result Notice error from failed type coercion
2016-04-20 08:40:44 -07:00
Xinchen Hui f768a2ea3b Merge branch 'fix-recv-opcode-handle-exception' of https://github.com/nikita2206/php-src 2016-04-20 08:40:11 -07:00
Dmitry Stogov 650c1c0a7d Safe execution timeout handling. 2016-04-20 13:52:21 +03:00
Nikita Nefedov ed9a1a9d68 Fix RECV opcode to handle all kinds of exceptions
fix RECV opcode to handle exceptions thrown from user-defined error handler
as a result Notice error from failed type coercion
2016-04-20 11:56:07 +03:00
Dmitry Stogov f484801483 Reduced amount of code generated for interrupt handling.
Improved ZEND_VM_INTERRUPT_CHECK() placement (always perform checks after opcode handler completion, when instruction pointer value is alredy changed to the next opcode).
2016-04-20 11:06:52 +03:00
Stanislav Malyshev 538d452452 Merge branch 'PHP-7.0'
* PHP-7.0:
  Better fix for #71952
2016-04-19 23:45:33 -07:00
Stanislav Malyshev 7d93363bd9 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Better fix for #71952

Conflicts:
	ext/gd/gd.c
2016-04-19 23:45:21 -07:00
Stanislav Malyshev c02301b666 Better fix for #71952 2016-04-19 23:44:00 -07:00
Stanislav Malyshev 23a4342099 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #71952: Corruption inside imageaffinematrixget
2016-04-18 23:34:44 -07:00
Stanislav Malyshev 086729bb6c Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fix bug #71952: Corruption inside imageaffinematrixget

Conflicts:
	ext/gd/gd.c
2016-04-18 23:34:26 -07:00
Stanislav Malyshev f061867fd3 Fix bug #71952: Corruption inside imageaffinematrixget 2016-04-18 23:33:21 -07:00
Stanislav Malyshev b15f0ecc0f Fix for bug #71912 (libgd: signedness vulnerability) 2016-04-18 22:24:16 -07:00
Xinchen Hui e757ec4bd6 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72051 (The reference in CallbackFilterIterator doesn't work as expected)
2016-04-19 11:03:57 +08:00
Xinchen Hui 5ea2b3625d Merge branch 'PHP-7.0' of git.php.net:/php-src into PHP-7.0
* 'PHP-7.0' of git.php.net:/php-src:
  Prevent usage in GC after free.
  Fix SEND_USER as well
  Fix SEND_ARRAY+PREFER_REF SHM corruption
2016-04-19 10:59:35 +08:00
Xinchen Hui 7648f20de3 Fixed bug #72051 (The reference in CallbackFilterIterator doesn't work as expected) 2016-04-19 10:59:10 +08:00
Sara Golemon f017755f85 Add NEWS entry for rfc:intl.timezone.get-windows-id 2016-04-18 23:14:08 +00:00
Sara Golemon a9568d5485 Update IntlTimeZone methods for ICU 52
Adds:
  string IntlTimeZone::getWindowsID(string id)
  string IntlTimeZone::getIDForWindowsID(string winID[, string region])

And matching procedural functions
2016-04-18 23:01:25 +00:00
Dmitry Stogov 0f8d0df938 Merge branch 'PHP-7.0'
* PHP-7.0:
  Prevent usage in GC after free.
2016-04-19 01:37:45 +03:00
Dmitry Stogov e46be0cd19 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Prevent usage in GC after free.
2016-04-19 01:37:24 +03:00
Dmitry Stogov ffc697ac27 Prevent usage in GC after free. 2016-04-19 01:31:49 +03:00
Bob Weinand 5085352464 Fix generator being a cycle to itself 2016-04-18 23:55:16 +02:00
Nikita Popov ea1f30057b Fully initialize DECLARE_CLASS/FUNCTION opcodes 2016-04-18 22:46:45 +02:00
Nikita Popov d79288c6bb Merge branch 'PHP-7.0' 2016-04-18 22:46:36 +02:00
Nikita Popov 73958ca62d Fix SEND_USER as well
Missed copy&paste code here
2016-04-18 22:45:38 +02:00
Nikita Popov 5a538e1d82 Merge branch 'PHP-7.0' 2016-04-18 18:26:30 +02:00
Nikita Popov a8792158bd Fix SEND_ARRAY+PREFER_REF SHM corruption
Make the behavior consistent between namespaced and not and with
PHP 5.6.
2016-04-18 18:26:20 +02:00
Xinchen Hui b5d01ab5a1 Merge branch 'PHP-7.0'
* PHP-7.0:
  combine conditions
2016-04-18 19:14:30 +08:00
Xinchen Hui aa9f8e695c combine conditions 2016-04-18 19:13:54 +08:00
Bob Weinand 4975c39e08 Merge branch 'PHP-7.0' 2016-04-18 12:14:47 +02:00
Bob Weinand b08bde185d Merge branch 'PHP-7.0' of https://github.com/php/php-src into PHP-7.0 2016-04-18 12:13:59 +02:00
Ferenc Kovacs 1380a6c2ff Merge branch 'PHP-7.0'
* PHP-7.0:
  mark frequent intermittent fpm test with XFAIL
2016-04-18 09:05:16 +02:00
Ferenc Kovacs 8f35ee49ee Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  mark frequent intermittent fpm test with XFAIL
2016-04-18 09:04:55 +02:00
Ferenc Kovacs 3a16f511d9 mark frequent intermittent fpm test with XFAIL 2016-04-18 09:04:27 +02:00
Ferenc Kovacs 67f533982f Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare for 5.6.21RC1
2016-04-18 08:16:16 +02:00
Ferenc Kovacs 50cfe0a15c Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  prepare for 5.6.21RC1
2016-04-18 08:15:47 +02:00
Ferenc Kovacs 6497d40521 prepare for 5.6.21RC1 2016-04-18 08:14:16 +02:00
Christopher Jones 230f9bf512 Merge branch 'PHP-7.0' 2016-04-18 11:16:35 +10:00
Christopher Jones 3b54d93b2f Bump version in test 2016-04-18 11:15:01 +10:00
Nikita Popov 4f726be682 Fix SSA for SEND_UNPACK 2016-04-16 22:38:52 +02:00
Nikita Popov 12f42346a8 Merge branch 'PHP-7.0' 2016-04-16 22:34:32 +02:00
Nikita Popov d1a38743a5 Fix SEND_UNPACK array separation
Separating only immutable arrays is not enough.
2016-04-16 22:33:23 +02:00
Bob Weinand 643d6277b3 Merge branch 'PHP-7.0' 2016-04-16 20:57:45 +02:00
Bob Weinand 6bb81d2c5f Fix non-/Zend tests too 2016-04-16 20:57:28 +02:00
Bob Weinand 3ed4a592aa Merge branch 'PHP-7.0' 2016-04-16 20:38:10 +02:00
Bob Weinand 15d1d4f45b Fixed bug #72038 (Function calls with values to a by-ref parameter don't always throw a notice) 2016-04-16 20:36:19 +02:00
Nikita Popov 4a568dd7c9 Drop left-over debugging statement in block pass 2016-04-16 20:23:23 +02:00
Nikita Popov 3dd2df85b3 Drop unnecessary checks in get_closure 2016-04-16 20:23:23 +02:00
Anatol Belski e015faaf8f Merge branch 'PHP-7.0'
* PHP-7.0:
  Adds new curl option CURLOPT_SSL_VERIFYSTATUS to enable OCSP verification
  Add test for bug #72028
2016-04-16 19:25:13 +02:00
Dominic Luechinger 02766d0180 Adds new curl option CURLOPT_SSL_VERIFYSTATUS to enable OCSP verification 2016-04-16 18:30:19 +02:00
Anatol Belski fd6f7b8341 Add test for bug #72028 2016-04-16 16:11:22 +02:00
Nikita Popov 8c5861e6c6 Don't copy args in Closure::__invoke() 2016-04-16 14:47:27 +02:00
Nikita Popov fea04a528b Drop dead assignment 2016-04-16 14:34:32 +02:00
Nikita Popov dd6c6b1c48 Cleanup condition in SEND_VAR_NO_REF
Was overly convoluted after the IS_VAR_RET_REF removal.
2016-04-16 14:32:48 +02:00
Nikita Popov 30c82321d7 Merge branch 'PHP-7.0' 2016-04-16 09:59:35 +02:00
Nikita Popov d8590940a1 Use symtable lookup for arrays in array_column 2016-04-16 09:59:01 +02:00
Nikita Popov 28801bf249 Respect property visibility in array_column 2016-04-16 09:59:01 +02:00
Nikita Popov c0d8dc5bd7 Fixed bug #72031 2016-04-16 09:58:57 +02:00
Xinchen Hui 513f2e775b Merge branch 'PHP-7.0' 2016-04-15 21:30:24 -07:00
Xinchen Hui 7e01c518b6 Fixed bug #72028 (pg_query_params(): NULL converts to empty string)
I don't have a pgsql server by hand, so no test script, but the fix must
be right.
2016-04-15 21:29:27 -07:00
Xinchen Hui d5914d19eb Merge branch 'PHP-7.0' 2016-04-15 21:09:05 -07:00
Xinchen Hui 05d53dee7d Fixed bug #71972 (Cyclic references causing session_start(): Failed to decode session object) 2016-04-15 21:08:51 -07:00
Lior Kaplan edb569b439 Align NEWS entry format 2016-04-15 22:17:37 +03:00
Lior Kaplan 7d61d0712b Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Align NEWS entry format
2016-04-15 22:09:05 +03:00
Lior Kaplan 5142bf27b2 Align NEWS entry format 2016-04-15 22:07:47 +03:00
Nikita Popov 64f91774f2 Remove IS_VAR_RET_REF flag
Instead decide whether a function returned by reference or by value
by checking whether the return value has REFERENCE type. This means
that functions returning by reference must always return a reference
and functions returning by value must not return a reference.
2016-04-15 15:32:20 +02:00
Anatol Belski fd2cd35429 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Fixed #71062 pg_convert() doesn't accept ISO 8601 for datatype timestamp
2016-04-15 13:42:04 +02:00
Anatol Belski c0de35273a update NEWS 2016-04-15 13:41:09 +02:00
Anatol Belski d263616525 Fixed #71062 pg_convert() doesn't accept ISO 8601 for datatype timestamp 2016-04-15 13:38:49 +02:00
Xinchen Hui a8c4d9e09d Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed failed with libedit
2016-04-15 11:58:13 +08:00
Xinchen Hui 163d26d584 Fixed failed with libedit 2016-04-15 11:57:53 +08:00
Dmitry Stogov d57505e234 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fixed bug #72014 (Including a file with anonymous classes multiple times leads to fatal error)
2016-04-14 16:08:54 +03:00
Dmitry Stogov b73517c1a1 Use DO_FCALL_BY_NAME instead of DO_FCALL, if possible 2016-04-14 16:07:28 +03:00
Xinchen Hui 17c3aa9dd1 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #72014 (Including a file with anonymous classes multiple times leads to fatal error)
2016-04-14 20:21:34 +08:00
Xinchen Hui 8a17b1a241 Fixed bug #72014 (Including a file with anonymous classes multiple times leads to fatal error) 2016-04-14 20:21:19 +08:00
Christopher Jones 9d76e012cf Merge branch 'PHP-7.0' 2016-04-14 15:49:52 +10:00
Christopher Jones ec358dac03 On second thoughts, keep this in sync with 5.6 for 71422 2016-04-14 15:49:15 +10:00
Christopher Jones 81f0389611 Merge branch 'PHP-7.0' 2016-04-14 15:09:25 +10:00
Christopher Jones 96ece22a05 Merge branch 'PHP-5.6' into PHP-7.0 2016-04-14 15:09:02 +10:00
Christopher Jones d1e81a59a7 Fix old comment cut-n-paste error 2016-04-14 15:08:42 +10:00
Christopher Jones 640b726b02 Merge branch 'PHP-7.0' 2016-04-14 14:09:34 +10:00
Christopher Jones 12cd25bb1a Fixed bug #71600 (oci_fetch_all segfaults when selecting more than 8 columns) (Tian Yang) 2016-04-14 14:09:16 +10:00
Christopher Jones 9d96bd8214 Merge branch 'PHP-7.0' 2016-04-14 13:55:40 +10:00
Christopher Jones cef4bc61c1 Merge fix for bug #71422. No code changed needed in PHP 7 2016-04-14 13:55:32 +10:00
Christopher Jones 8f2e6da806 Fixed bug #71422 (Fix ORA-01438: value larger than specified precision allowed for this column) 2016-04-14 13:50:01 +10:00
Christopher Jones 21c9ae26bc Merge branch 'master' of https://git.php.net/repository/php-src 2016-04-14 13:43:16 +10:00
Christopher Jones be491a6b3b Merge branch 'PHP-7.0' of https://git.php.net/repository/php-src into PHP-7.0 2016-04-14 13:43:13 +10:00
Dmitry Stogov 562d6315b1 Optimize zend_binary_assign_op_dim_helper() 2016-04-14 02:35:53 +03:00
Dmitry Stogov e95efb6312 Move rare cases of DO_FCALL into separate helpers. 2016-04-13 20:13:17 +03:00
Dmitry Stogov 85f35a8fc1 Separate unspecializeble code of INCLIDE_OR_EVAL into helper functions 2016-04-13 15:29:01 +03:00
Dmitry Stogov f48b20721c ASSIGN_ADD micro optimization 2016-04-13 02:47:17 +03:00
Dmitry Stogov a809444b64 Delay IS_UNDEF check for FETCH_DIM_W and family 2016-04-13 01:19:20 +03:00
Dmitry Stogov 0b3e2fe2b1 Delay IS_UNDEF check for FETCH_DIM_R and family 2016-04-13 00:05:19 +03:00
Dmitry Stogov 23b65bf732 Reuse zend_fetch_dimension_address_read() for FETCH_LIST 2016-04-12 22:53:01 +03:00
Dmitry Stogov 43b1618023 Added missing "goto" 2016-04-12 22:15:16 +03:00
Anatol Belski 33788f4885 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-12 19:38:01 +02:00
Anatol Belski 8e6549c354 update NEWS 2016-04-12 19:37:36 +02:00
Anatol Belski 8b8b44145b Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #68849 bindValue is not using the right data type
2016-04-12 19:15:08 +02:00
Anatol Belski e49580c96e Fixed bug #68849 bindValue is not using the right data type 2016-04-12 19:12:45 +02:00
Dmitry Stogov eaf489ac2b Optimize ASSIGN_DIM (separate common unspecializeble code into helper functions). 2016-04-12 19:36:24 +03:00
Nikita Popov fea822fe1b Merge branch 'PHP-7.0' 2016-04-12 14:44:43 +02:00
Nikita Popov 4e585eb429 Fix ZEND_SEPARATE for by-val func returning ref zval 2016-04-12 14:44:29 +02:00
Nikita Popov 6a2eee520a Drop unnecessary ZEND_SEPARATE code
The following write ops will separate if necessary.
2016-04-12 14:44:29 +02:00
Joe Watkins fef494f99f Merge branch 'PHP-7.0'
* PHP-7.0:
  phpdbg: close file handles
2016-04-12 13:40:36 +01:00
Joe Watkins b04125da85 phpdbg: close file handles 2016-04-12 13:40:03 +01:00
Remi Collet fd87902ac2 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix skipif
2016-04-12 13:46:23 +02:00
Remi Collet d62ab27042 fix skipif 2016-04-12 13:46:06 +02:00
Dmitry Stogov ef0099918f Separate unspecializeble code of INIT_DYNAMIC_CALL into separate helper functions. 2016-04-12 14:41:06 +03:00
Xinchen Hui 4fafd7309c Merge branch 'PHP-7.0'
* PHP-7.0:
  This only make sense on *nix
2016-04-12 15:31:35 +08:00
Xinchen Hui 9458f54969 This only make sense on *nix 2016-04-12 15:31:21 +08:00
Anatol Belski 79a2e0a201 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare next
2016-04-12 06:50:48 +02:00
Anatol Belski 57ffb2bd80 prepare next 2016-04-12 06:49:30 +02:00
Anatol Belski fa51f880e1 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-11 15:38:15 +02:00
Anatol Belski a1e9de227d update NEWS 2016-04-11 15:37:45 +02:00
Anatol Belski f644d6cc3d Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70484 selectordinal doesn't work with named parameters
  fix version macro to check
2016-04-11 15:02:27 +02:00
Anatol Belski 28b6f66a77 Fixed bug #70484 selectordinal doesn't work with named parameters 2016-04-11 15:01:22 +02:00
Anatol Belski f62943edc8 fix version macro to check 2016-04-11 15:01:22 +02:00
Joe Watkins 21e82289ed Merge branch 'master' of https://github.com/php/php-src 2016-04-11 13:25:03 +01:00
Joe Watkins 04bd7ab8d3 Merge branch 'PHP-7.0'
* PHP-7.0:
  handle dummy frame
2016-04-11 13:24:54 +01:00
Joe Watkins c0b821d2e9 handle dummy frame 2016-04-11 13:24:37 +01:00
Dmitry Stogov 8453b78113 Improve zend_leave_helper() by checking all rare conditions at once. 2016-04-11 13:17:24 +03:00
Joe Watkins 707941413d Merge branch 'PHP-7.0' of https://github.com/php/php-src into PHP-7.0 2016-04-11 08:04:14 +01:00
Joe Watkins 00d8d9f227 Merge branch 'master' of https://github.com/php/php-src 2016-04-11 08:03:56 +01:00
Joe Watkins 2a5385af32 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix calendar segfault
2016-04-11 08:03:39 +01:00
Joe Watkins 028485ae69 fix calendar segfault 2016-04-11 08:03:15 +01:00
Anatol Belski d966ba0dd2 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-10 19:12:07 +02:00
Anatol Belski 190db69109 update NEWS 2016-04-10 19:10:45 +02:00
Anatol Belski 672d0eeecf Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71998 Function pg_insert does not insert when column type = inet
2016-04-10 18:49:38 +02:00
Anatol Belski b4ab0effc7 Fixed bug #71998 Function pg_insert does not insert when column type = inet 2016-04-10 18:48:35 +02:00
Jakub Zelenka 93b67dd511 Remove json parser depth methods and tidy it up 2016-04-10 16:10:26 +01:00
Jakub Zelenka 72ccfda25a Add method hooking support to json parser
This commit is just a slight modification (renaming and some small
changes) of the patch that has been provided by Andrey Hristov.
It adds support for hooking of the json parser operations and
allows re-using of modified JSON parsing outside of json ext.
2016-04-10 15:35:41 +01:00
Anatol Belski 4e12897826 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #65480 No declaration for msgformat_fix_quotes() in msgformat.c or msgformat_attr.c
2016-04-09 19:12:16 +02:00
Anatol Belski 58ea2ad489 Fixed bug #65480 No declaration for msgformat_fix_quotes() in msgformat.c or msgformat_attr.c 2016-04-09 19:11:28 +02:00
Xinchen Hui fcbd95930c Merge branch 'PHP-7.0' of git.php.net:/php-src into PHP-7.0 2016-04-09 10:02:20 -07:00
Xinchen Hui 956b3836fa Merge branch 'master' of git.php.net:/php-src 2016-04-09 10:02:10 -07:00
Xinchen Hui 50f7ee0fee Merge branch 'PHP-7.0' 2016-04-09 10:01:33 -07:00
Xinchen Hui 5db4d9a71c Fixed bug #71995 (Returning the same var twice from __sleep() produces broken serialized data) 2016-04-09 10:01:04 -07:00
Anatol Belski a6126dfc8d Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-09 18:53:35 +02:00
Anatol Belski e33c26659e update NEWS 2016-04-09 18:52:59 +02:00
Anatol Belski 5540525969 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #66289 Locale::lookup incorrectly returns en or en_US if locale is empty
2016-04-09 18:27:57 +02:00
Anatol Belski ef17343b3c Fixed bug #66289 Locale::lookup incorrectly returns en or en_US if locale is empty 2016-04-09 18:24:42 +02:00
Lior Kaplan bffd78fa77 Merge branch 'PHP-7.0'
* PHP-7.0:
  Enable configure without opcache-file and huge-code-pages
2016-04-09 16:35:50 +03:00
Lior Kaplan c6c44c3629 Enable configure without opcache-file and huge-code-pages
This doesn't chagne the default (yes for both features), but respects
--disable-opcache-file and --disable-huge-code-pages configure flags if given.
2016-04-09 15:57:57 +03:00
Xinchen Hui 3e7b429663 We should always serialize the op->handler 2016-04-09 01:43:28 -07:00
Lior Kaplan 2875ac9c00 Merge branch 'PHP-7.0'
* PHP-7.0:
  opcache config.m4: Use = for comparison
2016-04-09 01:38:37 +03:00
Lior Kaplan 403c3f95fe Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  opcache config.m4: Use = for comparison
2016-04-09 01:35:30 +03:00
Lior Kaplan c1f597d9a1 opcache config.m4: Use = for comparison 2016-04-08 22:38:07 +03:00
Dmitry Stogov 513b9929a1 removed useless ckeck (ZEND_HANDLE_EXCEPTION never uses RETURN_VALUE) 2016-04-08 16:12:32 +03:00
Anatol Belski bc1d8eca6c Merge branch 'PHP-7.0'
* PHP-7.0:
  fix indent
2016-04-08 14:19:30 +02:00
Anatol Belski 73815573e0 fix indent 2016-04-08 14:17:57 +02:00
Anatol Belski ad5cef6b3b Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-08 13:52:08 +02:00
Anatol Belski f691fe343c update NEWS 2016-04-08 13:51:29 +02:00
Anatol Belski 91da256bb1 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix compat for ICU < 50
2016-04-08 12:49:51 +02:00
Anatol Belski 45d9efaac3 fix compat for ICU < 50 2016-04-08 12:48:26 +02:00
Anatol Belski de2da3bf02 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #68893 Stackoverflow in datefmt_create
  Added missing newline.
  Changed to check for error with the new function that returns null if error is set
  Added function to check error and return null if error is set.
  Added tests for bug 70451 and 70452
2016-04-08 12:32:27 +02:00
Anatol Belski 1541a55a4f Fixed bug #68893 Stackoverflow in datefmt_create 2016-04-08 12:31:19 +02:00
Daniel Persson f7600e17cb Added missing newline. 2016-04-08 12:31:19 +02:00
Daniel Persson 0030fa322f Changed to check for error with the new function that returns null if error is set 2016-04-08 12:31:19 +02:00
Daniel Persson e3b160bf86 Added function to check error and return null if error is set. 2016-04-08 12:31:19 +02:00
Daniel Persson ff2af89519 Added tests for bug 70451 and 70452 2016-04-08 12:31:19 +02:00
Xinchen Hui f63ba809a1 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71986 (Nested foreach assign-by-reference creates broken variables)
2016-04-08 17:58:31 +08:00
Xinchen Hui c45f7b97a3 Fixed bug #71986 (Nested foreach assign-by-reference creates broken variables) 2016-04-08 17:57:51 +08:00
Anatol Belski acaa31715a Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-08 11:03:09 +02:00
Anatol Belski 94e889299b update NEWS 2016-04-08 11:01:42 +02:00
Anatol Belski 00b5b3a540 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70455 Missing constant: IntlChar::NO_NUMERIC_VALUE
2016-04-08 10:03:29 +02:00
Anatol Belski 93f8eaf3b8 Fixed bug #70455 Missing constant: IntlChar::NO_NUMERIC_VALUE 2016-04-08 09:55:57 +02:00
Anatol Belski 8955e84e84 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-08 09:29:22 +02:00
Anatol Belski f042c5f726 update NEWS 2016-04-08 09:28:41 +02:00
Anatol Belski 91a4c22598 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71516 IntlDateFormatter losts locale if pattern is set via constructor
2016-04-08 09:00:58 +02:00
Anatol Belski 49d31fa01d Fixed bug #71516 IntlDateFormatter losts locale if pattern is set via constructor 2016-04-08 08:59:43 +02:00
Nikita Popov 3ad0e1d6ca Fix static method arg binding in traits 2016-04-08 01:48:21 +02:00
Nikita Popov 75af8150f5 Forbid binding methods to incompatible $this
This prohibits binding closures returned by
ReflectionMethod::getClosure() to a $this, which is not an
instance of the method scope. This restriction was already in
place for internal methods, now it is extended to user methods.

ML discussion: http://markmail.org/message/zepnhdyr3kij6di6
2016-04-08 00:38:44 +02:00
Dmitry Stogov aed4249653 Fixed handling of return statement without a value. 2016-04-07 18:59:04 +03:00
Dmitry Stogov 8921449785 Added missing "break" 2016-04-07 18:27:49 +03:00
Dmitry Stogov 3444c1ae24 Use return type hints for type inference and eliminate useless VERIFY_RETRUN_TYPE opcodes. 2016-04-07 17:34:53 +03:00
Xinchen Hui 708d030b69 Merge branch 'PHP-7.0'
* PHP-7.0:
  Improved fix for #71940
2016-04-07 19:30:00 +08:00
Xinchen Hui d242a8fb68 Merge branch 'PHP-7.0' of git.php.net:/php-src into PHP-7.0
* 'PHP-7.0' of git.php.net:/php-src:
  Fixed bug #71980
2016-04-07 19:29:49 +08:00
Xinchen Hui c85907682a Improved fix for #71940 2016-04-07 19:28:54 +08:00
Nikita Popov 2eff141444 Merge branch 'PHP-7.0' 2016-04-07 12:30:06 +02:00
Nikita Popov aad4ecebf8 Fixed bug #71980 2016-04-07 12:29:59 +02:00
Yasuo Ohgaki dc9ae10bc4 Remove debug code 2016-04-07 17:13:05 +09:00
Xinchen Hui f48144a7b9 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71940 (Unserialize crushes on restore object reference)
2016-04-07 13:58:11 +08:00
Xinchen Hui 079239a7ce Merge branch 'PHP-7.0' of git.php.net:/php-src into PHP-7.0
* 'PHP-7.0' of git.php.net:/php-src:
  Remove __halt_compiler from semi-reserved tokens
  Fixed Bug #71974 Trans sid will always be send, even if cookies are available
  Optimized array_fill(). This is a perfect function for fast creation of packed arrays.
  Fixed build
  fix merge mistake
  fix tests
  PostgreSQL's PDOStatement::getColumnMeta() fills in table's name.
  fix indent
  Fixed bug #71978 (Existence of return type hint affects other compatibility rules)
  fix test
  fix bug #71667 (emulate how mssql extension names "computed" columns)
  update NEWS
  add 32-bit specific variont for #62498
  skip test on 32-bit
  make opcache lockfile path configurable
  return zvals instead of strings, cast or not based on stringify attribute
  fix test
  add skip slow test
2016-04-07 13:58:00 +08:00
Xinchen Hui 7e042224a2 Fixed bug #71940 (Unserialize crushes on restore object reference) 2016-04-07 13:56:55 +08:00
Nikita Popov 5c7903f477 Merge branch 'PHP-7.0' 2016-04-07 05:52:51 +02:00
Nikita Popov 5ab950cb2c Remove __halt_compiler from semi-reserved tokens
token_get_all() is not capable of dealing with this one correctly.
2016-04-07 05:52:32 +02:00
Yasuo Ohgaki 60b144134a Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed Bug #71974 Trans sid will always be send, even if cookies are available
2016-04-07 10:26:32 +09:00
Yasuo Ohgaki 6467a4eb36 Fixed Bug #71974 Trans sid will always be send, even if cookies are available 2016-04-07 10:26:05 +09:00
Dmitry Stogov 58dd3b3a6f Merge branch 'PHP-7.0'
* PHP-7.0:
  Optimized array_fill(). This is a perfect function for fast creation of packed arrays.
2016-04-07 01:02:01 +03:00
Dmitry Stogov b31240f995 Optimized array_fill(). This is a perfect function for fast creation of packed arrays. 2016-04-07 01:01:11 +03:00
Dmitry Stogov 3c305c14f6 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed build
2016-04-07 01:00:34 +03:00
Dmitry Stogov 088f55ae74 Fixed build 2016-04-07 00:59:21 +03:00
Kalle Sommer Nielsen fdff901cad Fix the build 2016-04-06 22:25:05 +02:00
Anatol Belski 31abb8ab50 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix merge mistake
2016-04-06 18:06:40 +02:00
Anatol Belski 6489edb958 fix merge mistake 2016-04-06 18:05:39 +02:00
Anatol Belski fc90ddf1f3 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix tests
  PostgreSQL's PDOStatement::getColumnMeta() fills in table's name.
  fix indent
2016-04-06 17:45:31 +02:00
Anatol Belski 26f9aa7211 fix tests 2016-04-06 17:43:49 +02:00
Petr Sýkora aeb9c81c09 PostgreSQL's PDOStatement::getColumnMeta() fills in table's name. 2016-04-06 17:43:49 +02:00
Anatol Belski 052c1d337c fix indent 2016-04-06 17:43:49 +02:00
Dmitry Stogov 936f161402 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71978 (Existence of return type hint affects other compatibility rules)
2016-04-06 17:20:43 +03:00
Dmitry Stogov e9d65160e8 Fixed bug #71978 (Existence of return type hint affects other compatibility rules) 2016-04-06 17:17:10 +03:00
Anatol Belski 6170b2fbae Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test
  fix bug #71667 (emulate how mssql extension names "computed" columns)
2016-04-06 14:45:35 +02:00
Anatol Belski ea64d290fe fix test 2016-04-06 14:44:23 +02:00
Adam Baratz ed3edc2f05 fix bug #71667 (emulate how mssql extension names "computed" columns) 2016-04-06 14:41:55 +02:00
Anatol Belski 289de331d6 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-06 14:14:30 +02:00
Anatol Belski c256a8c25e update NEWS 2016-04-06 14:13:43 +02:00
Anatol Belski 9056a36c9b Merge branch 'PHP-7.0'
* PHP-7.0:
  add 32-bit specific variont for #62498
  skip test on 32-bit
2016-04-06 14:07:03 +02:00
Anatol Belski 4f7d89a335 add 32-bit specific variont for #62498 2016-04-06 14:05:25 +02:00
Anatol Belski 02fc9cb31f skip test on 32-bit
The Postgres INT8 datatype is handled as string on 32-bit
2016-04-06 13:55:32 +02:00
Anatol Belski 2ead9be91b Merge branch 'PHP-7.0'
* PHP-7.0:
  make opcache lockfile path configurable
2016-04-06 13:50:24 +02:00
Fatih ACAR d54eafb349 make opcache lockfile path configurable
Signed-off-by: William Dauchy <william@gandi.net>
Signed-off-by: Baptiste Daroussin <baptiste.daroussin@gandi.net>
Signed-off-by: Fatih Acar <fatih.acar@gandi.net>
2016-04-06 13:29:52 +02:00
Anatol Belski 2267812cd2 Merge branch 'PHP-7.0'
* PHP-7.0:
  return zvals instead of strings, cast or not based on stringify attribute
2016-04-06 12:23:14 +02:00
Adam Baratz 1e1500a2bc return zvals instead of strings, cast or not based on stringify attribute 2016-04-06 12:18:53 +02:00
Anatol Belski fe757f09a4 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test
  add skip slow test
2016-04-06 08:24:09 +02:00
Anatol Belski 354a682c38 fix test 2016-04-06 08:21:10 +02:00
Anatol Belski fd9137c00c add skip slow test 2016-04-06 08:18:32 +02:00
Xinchen Hui 306a842ef1 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed order
  Fixed bug #71969 (str_replace returns an incorrect resulting array after a foreach by reference)
  update NEWS
  Add driver-specific attributes for controlling calls to dbsetlogintime() and dbsettime()
2016-04-06 10:21:21 +08:00
Xinchen Hui 4e1d435bd1 Fixed order 2016-04-06 10:21:05 +08:00
Xinchen Hui e95782ed5e Fixed bug #71969 (str_replace returns an incorrect resulting array after a foreach by reference) 2016-04-06 10:19:24 +08:00
Dmitry Stogov a186ac0e47 IS_CONST operands don't have to be separated. Use reference-counting instead of duplication.
- with opcache all IS_CONST operands are not refcounted (scalars, interned strings or immutable arrays)
- without opcache IS_CONST operands are not shared between processes or threads and may use common reference counters
2016-04-05 20:09:14 +03:00
Adam Baratz a5e21665ee Add driver-specific attributes for controlling calls to dbsetlogintime() and dbsettime() 2016-04-05 18:24:15 +02:00
Anatol Belski 6ae3915eee update NEWS 2016-04-05 18:21:25 +02:00
Adam Baratz 8a92fed532 Add driver-specific attributes for controlling calls to dbsetlogintime() and dbsettime() 2016-04-05 18:18:37 +02:00
Dmitry Stogov 32d6ac4ddf RETURN micro optimization 2016-04-05 16:45:15 +03:00
Anatol Belski ea4d27f47c Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  fix and extend test
  Don't roundtrip to the database to get the column type if you already know it
2016-04-05 15:13:17 +02:00
Anatol Belski df8f927446 update NEWS 2016-04-05 15:12:12 +02:00
Anatol Belski c2cb4664bc fix and extend test 2016-04-05 15:06:17 +02:00
Joe Bylund e10257ba80 Don't roundtrip to the database to get the column type if you already know it
add_assoc_string now takes just three args

nikic's fix to move pqclear outside the if, would be a possible memory leak inside the if

(joe) check behavior of getColumnMeta
2016-04-05 15:03:04 +02:00
Anatol Belski b132aa49d1 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove description for apache 1.3
2016-04-05 12:16:02 +02:00
DQNEO ea0598962f remove description for apache 1.3 2016-04-05 12:13:38 +02:00
Anatol Belski a1c4b6841a Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
2016-04-05 11:56:20 +02:00
Anatol Belski dedc9a4200 update NEWS 2016-04-05 11:55:36 +02:00
Anatol Belski bbaa868c29 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  update NEWS
2016-04-05 11:55:03 +02:00
Anatol Belski 5ed05bc686 update NEWS 2016-04-05 11:52:53 +02:00
Anatol Belski 9f5970e60a Merge branch 'PHP-7.0'
* PHP-7.0:
  Use STR_EMPTY_ALLOC macro instead
  Fix DateInterval::format segfault
2016-04-05 11:24:45 +02:00
Anatol Belski d10a8e4804 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Use STR_EMPTY_ALLOC macro instead
  Fix DateInterval::format segfault
2016-04-05 11:24:23 +02:00
Thomas Punt 1aea777349 Use STR_EMPTY_ALLOC macro instead 2016-04-05 11:18:14 +02:00
Thomas Punt 40f14bad33 Fix DateInterval::format segfault 2016-04-05 11:18:14 +02:00
Matteo Beccati b68e89ee7e Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71447 (Quotes inside comments not properly handled)
  Fixed a few PDO tests to conform to PDO Common standards
  news entry #69537
  Fix #69537: __debugInfo with empty string for key gives error
2016-04-05 00:07:28 +02:00
Matteo Beccati 4090e709aa Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed bug #71447 (Quotes inside comments not properly handled)
  Fixed a few PDO tests to conform to PDO Common standards
  news entry #69537
  Fix #69537: __debugInfo with empty string for key gives error

Conflicts:
	Zend/zend_compile.c
2016-04-05 00:07:02 +02:00
Matteo Beccati 30925cd498 Fixed bug #71447 (Quotes inside comments not properly handled) 2016-04-04 23:50:28 +02:00
Matteo Beccati 9a87108eca Fixed a few PDO tests to conform to PDO Common standards 2016-04-04 23:43:17 +02:00
Dmitry Stogov d0c6c179cd Initialize op_array->run_time_cache on slow path of INIT_FCALL opcode and omit corresponding check on fast path of DO_FCALL. 2016-04-05 00:01:00 +03:00
Anatol Belski 326fba2af3 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-04-04 17:42:52 +02:00
Anatol Belski d2948d4b71 update NEWS 2016-04-04 17:42:06 +02:00
Anatol Belski b6e42834ed Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix #71943: dblib_handle_quoter needs to allocate an extra byte
2016-04-04 17:38:04 +02:00
Adam Baratz 9fcfc18ca9 Fix #71943: dblib_handle_quoter needs to allocate an extra byte 2016-04-04 17:33:49 +02:00
Joe Watkins 2e9c78c787 Merge branch 'PHP-7.0'
* PHP-7.0:
  news entry #71428
2016-04-04 10:30:35 +01:00
Joe Watkins 9a65c69c62 news entry #71428 2016-04-04 10:30:23 +01:00
Joe Watkins d7eff51c88 Merge branch 'PHP-7.0'
* PHP-7.0:
  news entry #69537
2016-04-04 10:23:50 +01:00
Joe Watkins 0797cfdda9 news entry #69537 2016-04-04 10:23:19 +01:00
Joe Watkins cd038cc5eb news entry #69537 2016-04-04 10:22:13 +01:00
Joe Watkins e1a1e825d5 Merge branch 'PHP-7.0'
* PHP-7.0:
  news entry 71609
2016-04-04 10:20:41 +01:00
Joe Watkins 922a4048e4 news entry 71609 2016-04-04 10:20:26 +01:00
Joe Watkins edc0f925ac Merge branch 'PHP-7.0'
* PHP-7.0:
  magical notation is magical
2016-04-04 09:33:30 +01:00
Joe Watkins 4d5bb45b3b magical notation is magical 2016-04-04 09:33:20 +01:00
Joe Watkins 380b1a80d2 Merge branch 'PHP-7.0'
* PHP-7.0:
  move this to standard [ci skip]
2016-04-04 09:26:28 +01:00
Joe Watkins 860c55466e move this to standard [ci skip] 2016-04-04 09:26:17 +01:00
Joe Watkins 2be2de9037 Merge branch 'master' of https://github.com/php/php-src 2016-04-04 09:21:45 +01:00
Joe Watkins 3891caddba Merge branch 'PHP-7.0'
* PHP-7.0:
  news updates
2016-04-04 09:21:29 +01:00
Joe Watkins c1dec143d6 news updates 2016-04-04 09:21:06 +01:00
Dmitry Stogov e7730fece6 Fised possible use-after-free 2016-04-04 09:35:48 +03:00
Kalle Sommer Nielsen f1fca16f7a Merge branch 'master' of git.php.net:php-src 2016-04-04 01:31:59 +02:00
Joe Watkins 9a38b2dbce Merge branch 'PHP-7.0' of https://github.com/php/php-src into PHP-7.0 2016-04-03 12:41:23 +01:00
Joe Watkins 79073743ea Merge branch 'master' of https://github.com/php/php-src 2016-04-03 12:41:08 +01:00
Joe Watkins 14e4c610e9 Fix #69537: __debugInfo with empty string for key gives error 2016-04-03 12:40:29 +01:00
Joe Watkins bff13d90a8 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix #69537: __debugInfo with empty string for key gives error
2016-04-03 12:38:53 +01:00
Joe Watkins 91c10662c8 fix #69537: __debugInfo with empty string for key gives error 2016-04-03 12:38:25 +01:00
Kalle Sommer Nielsen fcc6bdebc2 Added missing zend_parse_parameters_none() to mb_list_encodings() 2016-04-03 02:28:39 +02:00
Kalle Sommer Nielsen bb198ec9a6 Fix compiler warnings in mysqlnd 2016-04-03 02:27:25 +02:00
Dmitry Stogov 82050dfd3c fixed type inference mistake (typo) 2016-04-01 20:29:54 +03:00
Anatol Belski 34d3827ecc Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix ODBC bug for varchars returning with length zero
2016-04-01 17:41:06 +02:00
Elizabeth Marie Smith 4df5f79ab5 Fix ODBC bug for varchars returning with length zero 2016-04-01 17:11:58 +02:00
Xinchen Hui 67476872cd Merge branch 'PHP-7.0' 2016-04-01 22:27:42 +08:00
Xinchen Hui 5b1bb41c0b Fixed bug #71930 (_zval_dtor_func: Assertion `(arr)->gc.refcount <= 1' failed) 2016-04-01 22:27:29 +08:00
Dmitry Stogov 7abfaac901 Merge zend_execute_data->called_scope into zend_execute_data->This.
"called_scope" made sense only for static method calls, for dynamic calls it was always equal to the class of $this.
Now EG(This) may store IS_OBJECT + $this or IS_UNUSED + "called_scope" (of course, "called_scope" may be NULL).
Some code might need to be adopted to support this change.
Checks (Z_OBJ(EX(This))) might need to be converted into (Z_TYPE(EX(This)) == IS_OBJECT).
2016-04-01 16:17:49 +03:00
Joe Watkins c72282a13b Merge branch 'master' of https://github.com/php/php-src 2016-03-31 17:10:51 +01:00
Joe Watkins acfd79b8da Merge branch 'PHP-7.0'
* PHP-7.0:
  fix #71287 (substr_replace bug when length type is string)
2016-03-31 17:10:37 +01:00
Joe Watkins 034e8ec02e fix #71287 (substr_replace bug when length type is string) 2016-03-31 17:10:12 +01:00
Dmitry Stogov 86a1aeed22 Flags ZEND_CALL_RELEASE_THIS and ZEND_CALL_CLOSURE should never be set together.
Closures keep responsibility for releasing $this theirselves.
2016-03-31 18:58:13 +03:00
Dmitry Stogov fcbe1e8edf Use CALL_INFO flag to check if we need to destroy symbol_table.
This saves one memory load on most RETURN opcodes.
2016-03-31 18:47:25 +03:00
Julien Pauli 8a4d164c2b Typo in NEWS 2016-03-31 17:45:07 +02:00
Dmitry Stogov f3c70f118c Manual CSE 2016-03-31 17:26:27 +03:00
Joe Watkins 4954d623de Merge branch 'PHP-7.0'
* PHP-7.0:
  remove unused params || woops
2016-03-31 12:51:25 +01:00
Joe Watkins d9e4510224 remove unused params || woops 2016-03-31 12:51:00 +01:00
Joe Watkins 3b13206aa9 Merge branch 'PHP-7.0' of https://github.com/php/php-src into PHP-7.0 2016-03-31 12:40:15 +01:00
Joe Watkins 8bf6429267 Merge branch 'master' of https://github.com/php/php-src 2016-03-31 12:39:58 +01:00
Joe Watkins 05b44c20e1 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix #71609: Segmentation fault on ZTS with gethostbyname
2016-03-31 12:39:45 +01:00
Joe Watkins 233115ea23 fix #71609: Segmentation fault on ZTS with gethostbyname 2016-03-31 12:39:01 +01:00
Anatol Belski 44c219b0b4 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix borked mainstream patch
  5.5.35 now
2016-03-31 01:38:38 +02:00
Anatol Belski e6bb7eb3aa Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix borked mainstream patch
  5.5.35 now
2016-03-31 01:38:22 +02:00
Anatol Belski a00c2b1bf5 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix borked mainstream patch
  5.5.35 now
2016-03-31 01:36:47 +02:00
Anatol Belski 4b0b1cec00 fix borked mainstream patch 2016-03-31 01:33:38 +02:00
Anatol Belski 26ed2f3610 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test to not to cause false positives
  Align NEWS entry format
  Align NEWS entry format
2016-03-31 01:30:50 +02:00
Anatol Belski 9dc6c33740 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix test to not to cause false positives
2016-03-31 01:30:23 +02:00
Anatol Belski ed707a5217 fix test to not to cause false positives 2016-03-31 01:29:05 +02:00
Lior Kaplan 3b26af59d4 Align NEWS entry format 2016-03-31 01:01:11 +03:00
Lior Kaplan 53ce826cdd Merge branch 'PHP-5.6' into PHP-7.0 2016-03-31 00:54:43 +03:00
Lior Kaplan cef40c0c3f Align NEWS entry format 2016-03-31 00:52:53 +03:00
Nikita Popov bc1f884ef7 Merge branch 'PHP-7.0' 2016-03-30 22:49:36 +02:00
Nikita Popov b1e854f776 Fix bug #71334
Always duplicate the array before doing a sort with user-defined
comparison function, to avoid access to the intermediate
inconsistent state.

I've also dropped the "array modification" warning, as protection
against modifications is no longer relevant if we're always working
on a copy anyway.

This also required some changes to how SplArray forwards calls to
sorting functions.
2016-03-30 22:49:27 +02:00
Ferenc Kovacs 60dbc0867e Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-03-30 22:29:32 +02:00
Ferenc Kovacs 1866ab2d1e Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  update NEWS
2016-03-30 22:29:00 +02:00
Ferenc Kovacs abd59c0e40 update NEWS 2016-03-30 22:28:28 +02:00
Nikita Popov 29bc5a0b0f Merge branch 'PHP-7.0' 2016-03-30 18:32:29 +02:00
Nikita Popov f95679885f Fix __invoke comparison in closure_get_method
It compared against the wrong variable. Fixed this by getting rid
of lc_name entirely and use equals_literal_ci instead.
2016-03-30 18:32:00 +02:00
Andrea Faulds 0105bd20b7 Correct error messages 2016-03-30 16:45:36 +01:00
Andrea Faulds d6fc6d4ae6 Fix memory leak
Leak was introduced in c88ffa9a56.
2016-03-30 14:16:07 +01:00
Andrea Faulds 6ce873b546 Fix two tests on 32-bit 2016-03-30 13:48:51 +01:00
Andrea Faulds 5be140004d Expand UPGRADING and NEWS re: numeric strings changes 2016-03-30 13:26:27 +01:00
Matteo Beccati 5274353719 Merge branch 'PHP-7.0'
* PHP-7.0:
  Removed shmop test leaking an shm segment
2016-03-30 10:01:07 +02:00
Matteo Beccati 3bfe1c55ae Removed shmop test leaking an shm segment 2016-03-30 10:00:28 +02:00
Andrea Faulds 1e82ad8038 Warn about invalid strings in arithmetic
Squashed commit of the following:

commit e05d3b67325d4521418483ed924ac9211a188919
Author: Andrea Faulds <ajf@ajf.me>
Date:   Wed Mar 30 01:43:35 2016 +0100

    UPGRADING and NEWS

commit 6caf1d4585207d1b02fb06a216cd7da1a1f5e12d
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Mar 20 21:18:33 2016 +0000

    Fixes

commit 6dadb1b0efe5e2ed071e95a55c806519e61377ac
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Feb 14 02:15:01 2016 +0000

    Add test for numeric string errors in assignment

commit bd5f04e8dd576f92a48d25546f4f9a0f57f374de
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sat Feb 13 23:53:05 2016 +0000

    Add test for numeric string errors

commit c72e92f16d512bcae30cc9639c89bcb08d971742
Author: Andrea Faulds <ajf@ajf.me>
Date:   Tue Jan 26 23:28:33 2016 +0000

    Add test for scientific notation in integer operations

commit d94c08852d405b3a7ef6c84d24bf7915c890ce78
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Feb 14 01:25:57 2016 +0000

    Disable optimiser evaluation for numeric string errors

commit 30ee954ed13d933e766c68605d683c8ebae3d8ee
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Feb 14 01:46:25 2016 +0000

    fixup

commit a6403b79e054c95e2b7345d787f3092b261eed27
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sat Feb 13 22:00:27 2016 +0000

    Do not convert error-causing numeric strings ahead-of-time

commit f9dc35401471ef3035954cb6f171826769297548
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sat Feb 13 19:15:38 2016 +0000

    Disable compile-time evaluation for numeric string errors

commit e05b0cc8496ea082c6db27efd8b8277ef1f785b5
Author: Andrea Faulds <ajf@ajf.me>
Date:   Fri Feb 5 11:42:26 2016 +0000

    Make _zval_get_long_func_noisy function for inlining

commit 84d66321a57e579759109650c8bb7e3d5002854a
Author: Andrea Faulds <ajf@ajf.me>
Date:   Tue Jan 26 23:10:00 2016 +0000

    Update tests

commit 5ac4a0cc4bff282e3a15eaa8ab44b67391881a6d
Author: Andrea Faulds <ajf@ajf.me>
Date:   Tue Jan 26 22:08:19 2016 +0000

    Use is_numeric_string_ex for zval_get_long etc.

commit c21f08848533723331012a62a153de3577731d6a
Author: Andrea Faulds <ajf@ajf.me>
Date:   Thu Jan 7 21:13:04 2016 +0000

    Update tests

commit 63e214cf8160420bfc51c6a2b4ae32f09ad8e8af
Author: Andrea Faulds <ajf@ajf.me>
Date:   Wed Jan 6 00:28:01 2016 +0000

    Warn on non-/bad numeric strings in arithmetic
2016-03-30 01:44:27 +01:00
Nikita Popov e514d85915 Merge branch 'PHP-7.0' 2016-03-29 19:29:55 +02:00
Nikita Popov ed06d130f7 Fixed bug #71922 2016-03-29 19:29:19 +02:00
Nikita Popov 32294a25c8 Fixed bug #62814 2016-03-29 19:08:17 +02:00
Julien Pauli f0120ff878 5.5.35 now 2016-03-29 18:11:03 +02:00
Anatol Belski 20a87bd007 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix dir separator in test
2016-03-29 14:20:49 +02:00
Anatol Belski c7f7139985 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix dir separator in test
2016-03-29 14:20:30 +02:00
Anatol Belski 23d0065744 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix dir separator in test
2016-03-29 14:19:35 +02:00
Anatol Belski 551423c642 fix dir separator in test 2016-03-29 14:18:25 +02:00
Anatol Belski 5640263b23 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
  Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
2016-03-29 13:13:49 +02:00
Anatol Belski dd0a96ae70 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
  Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
2016-03-29 13:12:47 +02:00
Anatol Belski 5272184a1e Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
The actual fix is applying the upstream patch from
https://github.com/file/file/commit/6713ca45e7757297381f4b4cdb9cf5e624a9ad36
2016-03-29 13:11:25 +02:00
Anatol Belski 84990ab346 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
2016-03-29 13:11:17 +02:00
Anatol Belski fe13566c93 Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
The actual fix is applying the upstream patch from
https://github.com/file/file/commit/6713ca45e7757297381f4b4cdb9cf5e624a9ad36
2016-03-29 13:10:39 +02:00
Joe Watkins 5074fd9c7c Merge branch 'PHP-7.0' of https://github.com/php/php-src into PHP-7.0 2016-03-29 11:34:58 +01:00
Joe Watkins 8f1d6c5bb5 Merge branch 'master' of https://github.com/php/php-src 2016-03-29 11:34:46 +01:00
Joe Watkins 8ae3524a13 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove unused param
2016-03-29 11:34:31 +01:00
Joe Watkins d12ed0c7fa remove unused param 2016-03-29 11:34:18 +01:00
Anatol Belski 37dca0f308 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-03-29 12:06:03 +02:00
Anatol Belski 3b08638340 update NEWS 2016-03-29 12:05:36 +02:00
Xinchen Hui 4f906203d5 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Updated to version 2016.3 (2016c)
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
  Fix bug #71798 - Integer Overflow in php_raw_url_encode
  update NEWS
  Disable huge pages in the Zend allocator by default As per the discussion on internals, this is an expert feature that needs special system-level configuration and care.
  Added ability to disable huge pages in Zend Memeory Manager through the environment variable USE_ZEND_ALLOC_HUGE_PAGES=0.
  Fix bug #71860: Require valid paths for phar filenames
  Fix bug #71860: Require valid paths for phar filenames
  update NEWS
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
  Merge branch 'PHP-5.6' into PHP-7.0
  Updated to version 2016.2 (2016b)
  update libs versions
  set RC1 versions
  Going for 5.5.34
2016-03-29 18:02:18 +08:00
Xinchen Hui f5bdc137fb Merge branch 'PHP-7.0' of git.php.net:/php-src into PHP-7.0
* 'PHP-7.0' of git.php.net:/php-src:
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Updated to version 2016.3 (2016c)
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
  Fix bug #71798 - Integer Overflow in php_raw_url_encode
  update NEWS
  Disable huge pages in the Zend allocator by default As per the discussion on internals, this is an expert feature that needs special system-level configuration and care.
  Added ability to disable huge pages in Zend Memeory Manager through the environment variable USE_ZEND_ALLOC_HUGE_PAGES=0.
  Fix bug #71860: Require valid paths for phar filenames
  Fix bug #71860: Require valid paths for phar filenames
  update NEWS
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
  Merge branch 'PHP-5.6' into PHP-7.0
  Updated to version 2016.2 (2016b)
  update libs versions
  set RC1 versions
  Going for 5.5.34
2016-03-29 18:02:00 +08:00
Xinchen Hui a654e84742 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update tests
2016-03-29 17:53:05 +08:00
Xinchen Hui 256593abcf Update tests 2016-03-29 17:52:58 +08:00
Anatol Belski d1ac9edc50 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Updated to version 2016.3 (2016c)
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
  Fix bug #71798 - Integer Overflow in php_raw_url_encode
  update NEWS
  Disable huge pages in the Zend allocator by default As per the discussion on internals, this is an expert feature that needs special system-level configuration and care.
  Added ability to disable huge pages in Zend Memeory Manager through the environment variable USE_ZEND_ALLOC_HUGE_PAGES=0.
  Fix bug #71860: Require valid paths for phar filenames
  Fix bug #71860: Require valid paths for phar filenames
  update NEWS
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
  Merge branch 'PHP-5.6' into PHP-7.0
  Updated to version 2016.2 (2016b)
  update libs versions
  set RC1 versions
  Going for 5.5.34
2016-03-29 11:27:39 +02:00
Anatol Belski f2ca3c6036 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
2016-03-29 11:26:09 +02:00
Anatol Belski 6afa41cf80 Merge remote-tracking branch 'origin/PHP-7.0.5' into PHP-7.0
* origin/PHP-7.0.5:
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Updated to version 2016.3 (2016c)
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
  Fix bug #71798 - Integer Overflow in php_raw_url_encode
  update NEWS
  Disable huge pages in the Zend allocator by default As per the discussion on internals, this is an expert feature that needs special system-level configuration and care.
  Added ability to disable huge pages in Zend Memeory Manager through the environment variable USE_ZEND_ALLOC_HUGE_PAGES=0.
  Fix bug #71860: Require valid paths for phar filenames
  Fix bug #71860: Require valid paths for phar filenames
  update NEWS
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
  Merge branch 'PHP-5.6' into PHP-7.0
  Updated to version 2016.2 (2016b)
  update libs versions
  set RC1 versions
  Going for 5.5.34
2016-03-29 11:24:33 +02:00
Xinchen Hui 0a2746fb4b Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71914 (Reference is lost in "switch")
2016-03-29 17:14:48 +08:00
Xinchen Hui 2e6d70787c Fixed bug #71914 (Reference is lost in "switch") 2016-03-29 17:14:36 +08:00
Joe Watkins 45035b1b8d Merge branch 'PHP-7.0'
* PHP-7.0:
  fix bug #71428: Validation type inheritance with = NULL
2016-03-29 09:58:06 +01:00
Joe Watkins dd70c39556 fix bug #71428: Validation type inheritance with = NULL 2016-03-29 09:57:51 +01:00
Joe Watkins bdd05e7483 Merge branch 'PHP-7.0'
* PHP-7.0:
  Bug #71428 work ... hopefully, fix drupal 8
2016-03-29 09:36:46 +01:00
Joe Watkins 3f56dfe866 Bug #71428 work ... hopefully, fix drupal 8 2016-03-29 09:36:08 +01:00
Stanislav Malyshev 67fbb06311 Merge branch 'PHP-5.5' into PHP-7.0.5
* PHP-5.5:
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Fix bug #71798 - Integer Overflow in php_raw_url_encode
  Fix bug #71860: Require valid paths for phar filenames
  Going for 5.5.34

Conflicts:
	configure.in
	ext/phar/phar_object.c
	ext/phar/tests/badparameters.phpt
	ext/phar/tests/create_path_error.phpt
	ext/phar/tests/pharfileinfo_construct.phpt
	ext/snmp/snmp.c
	ext/standard/url.c
	main/php_version.h
2016-03-28 23:55:05 -07:00
Stanislav Malyshev 57d170aae0 Merge remote-tracking branch 'security/PHP-7.0.5' into PHP-7.0.5
* security/PHP-7.0.5:
  Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
  Fix bug #71860: Require valid paths for phar filenames
  update NEWS
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
2016-03-28 23:49:03 -07:00
Stanislav Malyshev cc7631dd08 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #71704 php_snmp_error() Format String Vulnerability
2016-03-28 23:45:15 -07:00
Anatol Belski 9c19a08b9d Fixed bug #71704 php_snmp_error() Format String Vulnerability
Conflicts:
	ext/snmp/snmp.c
2016-03-28 23:42:19 -07:00
Stanislav Malyshev a18b1f74fa Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
2016-03-28 23:30:14 -07:00
Stanislav Malyshev 3dd82caf57 Merge branch 'PHP-5.5.34' into PHP-5.5
* PHP-5.5.34:
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
2016-03-28 23:29:45 -07:00
Stanislav Malyshev 62da5cdf3d Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut
  Fix bug #71798 - Integer Overflow in php_raw_url_encode
  Fix bug #71860: Require valid paths for phar filenames
  Going for 5.5.34

Conflicts:
	configure.in
	ext/phar/tests/create_path_error.phpt
	main/php_version.h
2016-03-28 23:21:15 -07:00
Stanislav Malyshev f8dd10508b Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut 2016-03-28 23:15:16 -07:00
Derick Rethans 2d112e1378 Updated to version 2016.3 (2016c) 2016-03-28 15:31:51 +02:00
Joe Watkins 34d8fea1a8 Merge branch 'PHP-7.0'
* PHP-7.0:
  work on #71428
2016-03-28 11:55:03 +01:00
Joe Watkins ee9a78a033 work on #71428 2016-03-28 11:54:25 +01:00
Stanislav Malyshev 64f42c73ef Fixed bug #71906: AddressSanitizer: negative-size-param (-1) in mbfl_strcut 2016-03-28 01:22:37 -07:00
Anatol Belski e93c6910fc Fixed bug #71527 Buffer over-write in finfo_open with malformed magic file
The actual fix is applying the upstream patch from
https://github.com/file/file/commit/6713ca45e7757297381f4b4cdb9cf5e624a9ad36
2016-03-28 00:45:19 +02:00
Stanislav Malyshev 95433e8e33 Fix bug #71798 - Integer Overflow in php_raw_url_encode 2016-03-27 14:22:19 -07:00
Joe Watkins a3f0add913 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix #70189 (SAPI sends empty Content-Type when default_mimetype is empty)
2016-03-27 06:51:03 +01:00
Joe Watkins 28f66763a4 fix #70189 (SAPI sends empty Content-Type when default_mimetype is empty) 2016-03-27 06:50:11 +01:00
Joe Watkins fe559731e2 Merge branch 'PHP-7.0'
* PHP-7.0:
  my commits are bad, and I feel bad (test for bug #71414)
2016-03-27 00:04:30 +00:00
Joe Watkins 32df2210d7 my commits are bad, and I feel bad (test for bug #71414) 2016-03-26 23:59:46 +00:00
Bob Weinand 9600ddbd1a Merge remote-tracking branch 'origin/PHP-7.0' 2016-03-27 00:57:56 +01:00
Joe Watkins 4327370d13 fix #71414 (Interface method override inherited method and implemented in a trait causes fatal error) 2016-03-26 23:47:31 +00:00
Nikita Popov b867bd1c8d Fix FETCH_CLASS_SELF comparisons
Turns out those don't form a bitfield.
2016-03-26 22:45:23 +01:00
Nikita Popov 556827dec9 Remove some dead defines 2016-03-26 22:45:23 +01:00
Joe Watkins 1a75cd29a2 add test for bug 2016-03-26 11:15:08 +00:00
Joe Watkins 373da7aa6f fix standard object handler for properties when type == BP_VAR_IS 2016-03-26 11:15:08 +00:00
Joe Watkins dab7738f4f add test for bug 2016-03-26 11:08:19 +00:00
Joe Watkins 6f28956428 fix standard object handler for properties when type == BP_VAR_IS 2016-03-26 10:43:56 +00:00
Nikita Popov d3ed75b9eb Remove HAVE_CRYPT checks
We always provide a crypt implementation. HAVE_CRYPT is only
relevant as to whether the crypt() C function exists.
2016-03-25 21:09:47 +01:00
Nikita Popov be7a50b9ab Move HAVE_ATTRIBUTE_ALIGNED check outside crypt block
This is checked outside the crypt() implementation as well.
2016-03-25 20:50:52 +01:00
Nikita Popov 786effaff6 Remove PHP_*_CRYPT constants
They are always 1.
2016-03-25 20:48:34 +01:00
Nikita Popov a142c274fb Ensure that all crypt() formats are supported
Checks for md5, sha512 and sha256 were missing.

As a result the PHP_*_CRYPT constants are always 1 now.
2016-03-25 20:39:14 +01:00
Nikita Popov e9ee9e13f0 Merge branch 'PHP-7.0' 2016-03-25 20:23:30 +01:00
Nikita Popov bd90f5507f Merge branch 'PHP-5.6' into PHP-7.0
Conflicts:
	ext/standard/crypt.c
2016-03-25 20:23:04 +01:00
Nikita Popov 54da966883 Fixed bug #67512 2016-03-25 20:18:46 +01:00
Nikita Popov 6c47455f73 Fix assert() in EXT mode 2016-03-25 19:27:20 +01:00
Nikita Popov 8e5b139732 Evaluate arguments of new for classes without ctor
ML: http://markmail.org/message/4b3mk7jid64zvz34
2016-03-25 19:11:37 +01:00
Nikita Popov 24551ed6c8 Print .0 in phpdbg opcode dumps 2016-03-25 19:11:32 +01:00
Andrea Faulds 37c8bb5868 Allow specifying keys on list() elements
Squashed commit of the following:

commit 0361dbe35616722fbe51b446ab7b43a9ca01f455
Author: Andrea Faulds <ajf@ajf.me>
Date:   Fri Mar 25 16:59:20 2016 +0000

    UPGRADING and NEWS

commit dca9d4a36c845bfe4fbcb9db18e184469110ea5a
Author: Andrea Faulds <ajf@ajf.me>
Date:   Fri Mar 25 16:45:18 2016 +0000

    Add tests contributed by @jesseschalken

commit e557f77eab692ed8bb18dbdff48777d80b6f6cbd
Author: Andrea Faulds <ajf@ajf.me>
Date:   Fri Mar 25 16:44:51 2016 +0000

    Rebuild VM

commit 70942e4c3cbb6b4fe6305b27e1e1b2bed78e76df
Author: Andrea Faulds <ajf@ajf.me>
Date:   Wed Feb 24 13:12:26 2016 +0000

    Add test for evaluation order of nested list() keys

commit ed3592e80c5231d9e9a95558aa768a42b75bdebc
Author: Andrea Faulds <ajf@ajf.me>
Date:   Wed Feb 24 12:42:04 2016 +0000

    Add test for evaluation order

commit 589756cbcccbb4702c90b5aa9c091af446058ca1
Author: Andrea Faulds <ajf@ajf.me>
Date:   Tue Jan 19 17:29:34 2016 +0000

    Allow arbitrary expressions for key

commit 3f622077c32fcd82fcf27a41bd0f22e2552ec4c5
Author: Andrea Faulds <ajf@ajf.me>
Date:   Tue Jan 19 17:45:10 2016 +0000

    Remove compile-time HANDLE_NUMERIC (see bug #63217)

commit bab758119aec63289a2c5bef6a5f90a7bc6441a2
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Jan 17 01:20:26 2016 +0000

    Handle numeric strings

commit 14bfe93ddc34d1175bccb42a158be8842c472a9c
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Jan 17 01:09:36 2016 +0000

    Allow trailing comma

commit f4c8b2cb30fc074b15b5f7aabef5444382403b5d
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sat Jan 16 23:47:11 2016 +0000

    Add tests

commit 0085884a6176c3a981b53131fbb4fa0c44db2670
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sat Jan 16 22:24:23 2016 +0000

    Handle non-integer/string opcodes

commit e572d2d0ada6a64b36a2c6f5e8cb57439f51b55e
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sat Jan 16 21:10:33 2016 +0000

    Disallow mixing keyed and unkeyed list() elements

commit cede13ccfe0c486591fa84764271ac1b8cb90d0b
Author: Andrea Faulds <ajf@ajf.me>
Date:   Sun Jan 10 20:46:44 2016 +0000

    list() with keys (no foreach or tests)
2016-03-25 17:18:42 +00:00
Xinchen Hui 0e5fa32883 Merge branch 'PHP-7.0' 2016-03-25 12:35:20 +08:00
Xinchen Hui 1929fc9b16 Fixed bug #71891 (header_register_callback() and register_shutdown_function())
Actually, this fixed the memleak not the behavior(it is expected
behavior that "shutdown" is not outputed)
2016-03-25 12:34:22 +08:00
Derick Rethans 454ae8a6f3 Updated to version 2016.3 (2016c) 2016-03-24 11:09:08 +00:00
Derick Rethans 31e46d1938 Empty merge 2016-03-24 11:09:08 +00:00
Derick Rethans 70878a92b1 Updated to version 2016.3 (2016c) 2016-03-24 11:09:07 +00:00
Derick Rethans 35b19d8dcc Empty merge 2016-03-24 11:09:06 +00:00
Derick Rethans c4681ec8e1 Updated to version 2016.3 (2016c) 2016-03-24 11:09:05 +00:00
Anatol Belski bc9910c20c Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-03-23 12:32:54 +01:00
Anatol Belski d6eff6655c update NEWS 2016-03-23 12:32:16 +01:00
Anatol Belski 4bbc811ff4 update NEWS 2016-03-23 12:28:48 +01:00
Rasmus Lerdorf 06c2b31866 Disable huge pages in the Zend allocator by default
As per the discussion on internals, this is an expert feature
that needs special system-level configuration and care.
2016-03-23 12:23:35 +01:00
Dmitry Stogov 75dd4a7a50 Added ability to disable huge pages in Zend Memeory Manager through the environment variable USE_ZEND_ALLOC_HUGE_PAGES=0. 2016-03-23 12:23:03 +01:00
Xinchen Hui 8643d7a595 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed Bug #71884 (Null pointer deref (segfault) in stream_context_get_default)
2016-03-23 16:16:47 +08:00
Xinchen Hui a3946de339 Fixed Bug #71884 (Null pointer deref (segfault) in stream_context_get_default) 2016-03-23 16:16:26 +08:00
Dmitry Stogov bc49f8b438 Fixed possible memory leak. 2016-03-23 00:46:48 +03:00
Dmitry Stogov d8b75b0807 Convert ASSIGN_ADD $a, $b into $a = ADD $a, $b, if possible. 2016-03-22 23:57:26 +03:00
Anatol Belski 76d612129b Merge branch 'PHP-7.0'
* PHP-7.0:
  if there's no JIT support, no RINIT is really needed
  Disable huge pages in the Zend allocator by default As per the discussion on internals, this is an expert feature that needs special system-level configuration and care.
2016-03-22 21:48:11 +01:00
Anatol Belski 241ba9dcb1 if there's no JIT support, no RINIT is really needed 2016-03-22 21:42:21 +01:00
Dmitry Stogov 94812fa6cd Convert ASSIGN_ADD $cv, int(1) into PRE_INC $cv, if it's safe. 2016-03-22 22:50:43 +03:00
Rasmus Lerdorf 1efcdaf092 Disable huge pages in the Zend allocator by default
As per the discussion on internals, this is an expert feature
that needs special system-level configuration and care.
2016-03-22 08:04:53 -07:00
Matt Ficken fa6ce55675 bug #71478 implementing feature request 2016-03-21 21:09:32 -07:00
Xinchen Hui 3f3180e35f Merge branch 'PHP-7.0'
* PHP-7.0:
  Update test script
2016-03-22 11:28:45 +08:00
Xinchen Hui b49ec68134 Update test script 2016-03-22 11:28:19 +08:00
Nikita Popov ac3a66cfad Merge branch 'PHP-7.0' 2016-03-21 22:50:03 +01:00
Nikita Popov dc842bbf8d Fixed bug #71871 2016-03-21 22:49:18 +01:00
Anatol Belski 925adbb143 Merge branch 'PHP-7.0'
* PHP-7.0:
  decrease the default PCRE JIT stack to 64K
2016-03-21 19:00:10 +01:00
Anatol Belski e988239634 decrease the default PCRE JIT stack to 64K 2016-03-21 18:59:39 +01:00
Anatol Belski 9e521485b5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Increase PCRE JIT stack size
2016-03-21 18:32:50 +01:00
Anatol Belski e23a41225f Increase PCRE JIT stack size
It is done by implementing the custom stack usage. This makes the
JIT with mode on more compatible with the JIT mode off. Until now, the
default PCRE JIT stack was used which is 32kb big by default. There
are situations where some patterns would fail with JIT while working
correctly without JIT.

The starting size of the JIT stack is still set to 32kb, while the
max is set to the permissive 256kb (and can be increased up to 1mb).
As until now no suchlike bugs regarding JIT were reported, it is expected,
that the stack usage will stay by 32kb in most cases. Though providing
the custom stack, applications will have more room for some sporadic
stack increase, thus more compatibility.
2016-03-21 17:31:26 +01:00
Julien Pauli 8bf5a60fdd Merge branch 'PHP-7.0'
* PHP-7.0:
  Updated NEWS
  Updated NEWS
  Reworked Fix bug #52098
  Fix bug #52098
2016-03-21 15:40:50 +01:00
Julien Pauli cb240fe711 Updated NEWS 2016-03-21 15:40:01 +01:00
Julien Pauli 5ba7b9af1b Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Updated NEWS
  Reworked Fix bug #52098
  Fix bug #52098

Conflicts:
	ext/pdo/pdo_dbh.c
	ext/pdo/pdo_stmt.c
2016-03-21 15:39:48 +01:00
Julien Pauli abbe1551d6 Updated NEWS 2016-03-21 15:26:21 +01:00
Julien Pauli d3d64b7c62 Reworked Fix bug #52098 2016-03-21 15:23:18 +01:00
Daniel Persson e541cd8e6b Fix bug #52098 2016-03-21 15:04:11 +01:00
Xinchen Hui 4141167975 Merge branch 'PHP-7.0'
* PHP-7.0:
  array_dup should not copy the nApplyCount
  Also protects object to array cast
2016-03-21 19:20:11 +08:00
Xinchen Hui d26ca89402 array_dup should not copy the nApplyCount 2016-03-21 19:19:05 +08:00
Xinchen Hui 9712a974be Also protects object to array cast 2016-03-21 19:12:50 +08:00
Dmitry Stogov 60b72e434b Avoid data bypass delays between integer and floating point execution units on x86 CPUs. 2016-03-21 13:03:30 +03:00
Xinchen Hui 63958350d8 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update NEWS
  Update NEWS for efacdc3
  FIX #71831: CURLOPT_NOPROXY applied as long instead of string
2016-03-21 16:44:42 +08:00
Xinchen Hui a9a46f17be Update NEWS 2016-03-21 16:44:30 +08:00
Xinchen Hui ead0dfc3c9 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Update NEWS for efacdc3
  FIX #71831: CURLOPT_NOPROXY applied as long instead of string
2016-03-21 16:43:55 +08:00
Xinchen Hui c9c8e70463 Update NEWS for efacdc3 2016-03-21 16:43:30 +08:00
Xinchen Hui 056459dc9d Merge branch 'PHP-5.6' of https://github.com/msierks/php-src into PHP-5.6
* 'PHP-5.6' of https://github.com/msierks/php-src:
  FIX #71831: CURLOPT_NOPROXY applied as long instead of string
2016-03-21 16:39:22 +08:00
Xinchen Hui 1e5ac8940a Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #71835 (json_encode sometimes incorrectly detects recursion with JsonSerializable)
2016-03-21 16:22:02 +08:00
Xinchen Hui 65ae7440b0 Merge branch 'bug71835' of https://github.com/bukka/php-src into PHP-7.0
* 'bug71835' of https://github.com/bukka/php-src:
  Fix bug #71835 (json_encode sometimes incorrectly detects recursion with JsonSerializable)
2016-03-21 16:03:16 +08:00
Stanislav Malyshev 85ccebc1c2 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #71750: use zend_string_safe_alloc for calculated allocations
  Fix bug #71735: Double-free in SplDoublyLinkedList::offsetSet
2016-03-20 22:51:12 -07:00
Stanislav Malyshev c4517b2a5e Fix bug #71750: use zend_string_safe_alloc for calculated allocations 2016-03-20 22:39:17 -07:00
Stanislav Malyshev 28a6ed9f9a Fix bug #71735: Double-free in SplDoublyLinkedList::offsetSet 2016-03-20 22:29:08 -07:00
Stanislav Malyshev 72281f29dd Fix bug #71860: Require valid paths for phar filenames 2016-03-20 21:33:11 -07:00
Stanislav Malyshev 1e9b175204 Fix bug #71860: Require valid paths for phar filenames 2016-03-20 21:24:12 -07:00
Nikita Popov dab8e584da Merge branch 'PHP-7.0' 2016-03-20 18:18:14 +01:00
Nikita Popov f3309173f9 Fixed bug #62059 2016-03-20 18:17:44 +01:00
Nikita Popov c4ccb5d5fa Merge branch 'PHP-7.0' 2016-03-20 17:48:22 +01:00
Nikita Popov 12f2665df8 Merge branch 'PHP-5.6' into PHP-7.0
Conflicts:
	ext/spl/spl_observer.c
2016-03-20 17:48:06 +01:00
Nikita Popov cc3cdd0057 Fixed bug #67582 2016-03-20 17:46:12 +01:00
Jakub Zelenka 7e069daa89 Fix bug #71835 (json_encode sometimes incorrectly detects recursion with JsonSerializable) 2016-03-20 15:56:27 +00:00
Nikita Popov 6d98584d00 Merge branch 'PHP-7.0' 2016-03-20 13:52:00 +01:00
Nikita Popov a175aa9dca Fixed bug #71731
The read_dimension() handler in BP_VAR_IS mode will now call
offsetExists() before caling offsetGet(). This has always been a
problem, however recently the issue has been exacerbated, because
the null-coalesce operator ?? makes it visible for non-nested
array accesses.

Also fixes #69659.
2016-03-20 13:35:00 +01:00
Nikita Popov 1f6d27d3d2 Fix use of UNDEF instead of NULL in read_dimension 2016-03-20 13:33:17 +01:00
Xinchen Hui 0cacbae410 Merge branch 'PHP-7.0' 2016-03-20 04:55:11 -07:00
Xinchen Hui 9564998e49 Fixed Bug #71859 (zend_objects_store_call_destructors operates on realloced memory, crashing) 2016-03-20 04:52:57 -07:00
Nikita Popov 24f63b1c32 Fix broken merge 2016-03-20 01:35:51 +01:00
Nikita Popov 80a722a634 Drop some dead defines 2016-03-20 01:35:51 +01:00
Andrea Faulds ba4b2a60f9 Replace php_math_is_finite with zend_finite 2016-03-20 00:15:39 +00:00
Nikita Popov e8f056e535 Merge branch 'PHP-7.0' 2016-03-18 20:29:09 +01:00
Nikita Popov 8023204d21 Fixed bug #52339
Autoloader 101: Don't throw if you fail. PHP will throw for you.
2016-03-18 20:28:58 +01:00
Nikita Popov 09da666cfa Merge branch 'PHP-7.0' 2016-03-18 20:00:19 +01:00
Nikita Popov a2522efa9f Add extra ArrayObject::sort() test 2016-03-18 19:59:08 +01:00
Nikita Popov 094c808374 Fix bug #71838 2016-03-18 19:58:52 +01:00
Nikita Popov c5212da8b5 Merge branch 'PHP-7.0' 2016-03-18 19:31:43 +01:00
Nikita Popov fd95555107 Fix ZEND_DEBUG condition 2016-03-18 19:31:34 +01:00
Michael Sierks efacdc3511 FIX #71831: CURLOPT_NOPROXY applied as long instead of string
The CURLOPT_NOPROXY option value is converted to a long before
being applied as a curl option. This causes the option to have
no effect. This patch changes this conversion to a string.
2016-03-18 07:29:01 -05:00
Xinchen Hui 85419b4f28 Unused var 2016-03-18 16:02:32 +08:00
Dmitry Stogov 7bf4ae32be Merge branch 'PHP-7.0'
* PHP-7.0:
  typo
2016-03-18 10:28:30 +03:00
Dmitry Stogov 69c9be5c99 typo 2016-03-18 10:27:46 +03:00
Dmitry Stogov c1bcb198d3 Merge branch 'PHP-7.0'
* PHP-7.0:
  typo
2016-03-18 10:26:41 +03:00
Dmitry Stogov 11594e86b8 typo 2016-03-18 10:25:48 +03:00
Xinchen Hui 85009e0768 Merge branch 'typo-in-UPGRADING-doc' of https://github.com/drbyte/php-src
* 'typo-in-UPGRADING-doc' of https://github.com/drbyte/php-src:
  Small typo in UPGRADING doc
2016-03-18 11:55:06 +08:00
Xinchen Hui 5e2186e5a7 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed pdo_stmt.c: zval* being passed into zend_parse_parameters_ex
2016-03-18 11:50:38 +08:00
Xinchen Hui 5b8d0dc6ae Fixed pdo_stmt.c: zval* being passed into zend_parse_parameters_ex 2016-03-18 11:50:03 +08:00
Dmitry Stogov 48e3459567 Merge branch 'PHP-7.0'
* PHP-7.0:
  Added ability to disable huge pages in Zend Memeory Manager through the environment variable USE_ZEND_ALLOC_HUGE_PAGES=0.
2016-03-17 22:44:23 +03:00
Dmitry Stogov 945a661912 Added ability to disable huge pages in Zend Memeory Manager through the environment variable USE_ZEND_ALLOC_HUGE_PAGES=0. 2016-03-17 22:43:42 +03:00
Dmitry Stogov 681de72554 Enable DFA pass by default 2016-03-17 22:37:20 +03:00
Dmitry Stogov fc7cbdce61 Squashed commit of the following:
commit 98471821a89d7106de508fc544504ba674025abe
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Mar 17 21:56:04 2016 +0300

    Fixed wrong constant usage

commit 8183b811e74c2989bcd8ab9d870fc3adbe973980
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Mar 17 21:10:23 2016 +0300

    Added ability to serialize and serialize opcode handlers for file-cache

commit 3516b261de7694bb1f34c5ae1adfb2f29dfab7bf
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Mar 17 10:11:59 2016 +0300

    Added missed file

commit f4475a23608623ccbf11b00c1c74df1db55dffa2
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Mar 17 10:00:45 2016 +0300

    Transparently introduce type-specialized opcode handlers.
    This affects only PHP VM, and doesn't change anything else.
2016-03-17 22:00:27 +03:00
Anatol Belski 93ca094aab Merge branch 'PHP-7.0'
* PHP-7.0:
  fix and update NEWS
  fix and update NEWS
2016-03-17 19:05:33 +01:00
Anatol Belski 28b6f0232b fix and update NEWS 2016-03-17 19:04:56 +01:00
Anatol Belski d529c3358c Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix and update NEWS
2016-03-17 19:03:46 +01:00
Anatol Belski b8c9c92d44 fix and update NEWS 2016-03-17 19:02:08 +01:00
Xinchen Hui a5f72c8dac Merge branch 'master' of git.php.net:/php-src 2016-03-17 07:57:53 -07:00
Xinchen Hui a2ca4558b5 Merge branch 'PHP-7.0' of git.php.net:/php-src into PHP-7.0 2016-03-17 07:57:22 -07:00
Anatol Belski 78d28bfe13 Merge branch 'PHP-7.0'
* PHP-7.0:
  Backport patch for bug #71820
2016-03-17 15:55:50 +01:00
Xinchen Hui 36dbaac595 Merge branch 'PHP-7.0' 2016-03-17 07:55:44 -07:00
Anatol Belski ef8d6435a2 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Backport patch for bug #71820
2016-03-17 15:55:37 +01:00
Xinchen Hui 93499bfd8a Fixed test & ZEND_BOOL should result TMP_VAR 2016-03-17 07:55:25 -07:00
Xinchen Hui f2b6b26189 Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_compile.c
2016-03-17 07:51:26 -07:00
Xinchen Hui 345ecd9822 Fixed #71837 (Wrong arrays behaviour) 2016-03-17 07:41:41 -07:00
Anatol Belski 1b632cfe83 Backport patch for bug #71820
Rev b4eedd128b
2016-03-17 14:28:58 +01:00
Xinchen Hui eb405623ec Merge branch 'PHP-5.6' of git.php.net:/php-src into PHP-5.6
* 'PHP-5.6' of git.php.net:/php-src:
  fix NEWS
  NEWS
  Fix Bug #63171 	Script hangs after max_execution_time
2016-03-17 21:27:23 +08:00
Xinchen Hui e8e9ffdeb2 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  fix NEWS
  NEWS
  NEWS
  Fix Bug #63171 	Script hangs after max_execution_time
  Fixed bug #71820 pg_fetch_object bind parameters before call constructor
2016-03-17 21:27:07 +08:00
Xinchen Hui 383dde5b15 Merge branch 'PHP-7.0' of git.php.net:/php-src into PHP-7.0
* 'PHP-7.0' of git.php.net:/php-src:
  fix NEWS
  NEWS
  NEWS
  Fix Bug #63171 	Script hangs after max_execution_time
  Fixed bug #71820 pg_fetch_object bind parameters before call constructor
2016-03-17 21:26:14 +08:00
Xinchen Hui 910e6dc6b8 Fixed for master 2016-03-17 21:10:08 +08:00
Remi Collet f3b1865dd9 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix NEWS
2016-03-17 13:54:01 +01:00
Remi Collet e7f74a3f9b Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix NEWS
2016-03-17 13:53:52 +01:00
Remi Collet b5b1ba850a fix NEWS 2016-03-17 13:53:42 +01:00
Remi Collet 5d0a8809cd Merge branch 'PHP-7.0'
* PHP-7.0:
  NEWS
2016-03-17 13:44:34 +01:00
Remi Collet 9073208f6c NEWS 2016-03-17 13:44:28 +01:00
Remi Collet 904808ff66 Merge branch 'PHP-7.0'
* PHP-7.0:
  NEWS
  Fix Bug #63171 	Script hangs after max_execution_time
2016-03-17 13:42:51 +01:00
Remi Collet 2291ebc0ea Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  NEWS
  Fix Bug #63171 	Script hangs after max_execution_time
2016-03-17 13:42:34 +01:00
Remi Collet d513b4cde5 NEWS 2016-03-17 13:40:42 +01:00
Remi Collet 407ad28ae5 Fix Bug #63171 Script hangs after max_execution_time
If aborted via timer expiration, don't try to call any unixODBC function
which may hangs because of internal locks
2016-03-17 13:38:45 +01:00
Xinchen Hui adb82514eb Merge branch 'PHP-7.0'
* PHP-7.0:
  Remove unnecessary pattern
  Fixed for PHP7
  Fixed bug #71843 (null ptr deref ZEND_RETURN_SPEC_CONST_HANDLER)

Conflicts:
	ext/opcache/Optimizer/block_pass.c
2016-03-17 20:24:59 +08:00
Xinchen Hui aef22ac1c1 Remove unnecessary pattern 2016-03-17 20:21:36 +08:00
Xinchen Hui 041a01fd6c Fixed for PHP7 2016-03-17 20:20:01 +08:00
Xinchen Hui 820b0aa2ab Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed bug #71843 (null ptr deref ZEND_RETURN_SPEC_CONST_HANDLER)
2016-03-17 19:54:33 +08:00
Xinchen Hui 8e2f658f49 Fixed bug #71843 (null ptr deref ZEND_RETURN_SPEC_CONST_HANDLER) 2016-03-17 19:54:19 +08:00
Anatol Belski ad7e1768aa Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71820 pg_fetch_object bind parameters before call constructor
2016-03-17 12:49:34 +01:00
Anatol Belski b4eedd128b Fixed bug #71820 pg_fetch_object bind parameters before call constructor
If we want to fetch into an object of a custom class that implemens
__set handler, the corstructor has to be called first. The data
passed to the constructor can be possibly required in __set handler.
2016-03-17 12:41:55 +01:00
Xinchen Hui cdd7560d26 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test script
2016-03-17 17:07:14 +08:00
Xinchen Hui dae086040e Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed test script
2016-03-17 17:07:07 +08:00
Xinchen Hui 6d4aec029a Fixed test script 2016-03-17 17:06:56 +08:00
Xinchen Hui d12a4693c5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Remove typo
2016-03-17 15:27:56 +08:00
Xinchen Hui e12456603a Remove typo 2016-03-17 15:27:36 +08:00
Xinchen Hui 69492398f3 Unnecessary anymore 2016-03-17 15:26:56 +08:00
Xinchen Hui f3dd50d650 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test script
  Update NEWS
  Fixed bug #71841 (EG(error_zval) is not handled well)
  Fixed bug #71840 (Unserialize accepts wrongly data)

Conflicts:
	Zend/zend_vm_def.h
	Zend/zend_vm_execute.h
2016-03-17 15:26:40 +08:00
Xinchen Hui b8f0cb063f Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed test script
2016-03-17 15:23:53 +08:00
Xinchen Hui ead7632cf9 Fixed test script 2016-03-17 15:23:44 +08:00
Xinchen Hui 47f3b3df45 Update NEWS 2016-03-17 15:23:21 +08:00
Xinchen Hui fe1a3fc08b Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed bug #71841 (EG(error_zval) is not handled well)
  Fixed bug #71840 (Unserialize accepts wrongly data)

Conflicts:
	Zend/zend_vm_def.h
	Zend/zend_vm_execute.h
	ext/standard/var_unserializer.c
2016-03-17 15:22:44 +08:00
Xinchen Hui 5546f8be56 Fixed bug #71841 (EG(error_zval) is not handled well) 2016-03-17 15:16:47 +08:00
Xinchen Hui 6f241f5fad Fixed bug #71840 (Unserialize accepts wrongly data) 2016-03-17 15:15:28 +08:00
Dmitry Stogov 3f1e35756c Change LONG constants into DOUBLE, if they are going to be used as DOUBLE. 2016-03-17 09:58:15 +03:00
Xinchen Hui 73e8c08788 Sorry for that... Merged by accident....
Revert "Transparently introduce type-specialized opcode handlers."

This reverts commit 59d00b8bcc.
2016-03-17 11:59:15 +08:00
Xinchen Hui a4b2f7f3a9 Revert "Taking into account "undefined" variables"
This reverts commit 9020086a13.
2016-03-17 11:58:59 +08:00
Xinchen Hui a3940c1867 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  Fix build
  Fix build
  Fix build
  prepare for 5.6.20RC1
  Fix more emails
  More email fixing
  Fix emails in headers. @mysql.com addresses are no more since many years.
  fix #ifdef usage
2016-03-17 11:57:08 +08:00
Xinchen Hui b9aed47a7a Fixed Bug #71824 (null ptr deref _zval_get_string_func (zend_operators.c:851)) 2016-03-17 11:56:32 +08:00
Kalle Sommer Nielsen fc49f1c411 Fix build 2016-03-17 03:53:01 +01:00
Kalle Sommer Nielsen 9a83a679ef Fix build 2016-03-17 03:45:04 +01:00
Kalle Sommer Nielsen 9583cb84a2 Fix build 2016-03-17 03:41:36 +01:00
Ferenc Kovacs c808e44d85 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare for 5.6.20RC1
2016-03-17 01:48:16 +01:00
Ferenc Kovacs fba1c7629c Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  prepare for 5.6.20RC1
2016-03-17 01:47:37 +01:00
Ferenc Kovacs 14f4848fb0 prepare for 5.6.20RC1 2016-03-17 01:46:00 +01:00
Andrey Hristov 1c295d4a9a Fix more emails 2016-03-16 10:57:12 +01:00
Andrey Hristov 61a6109298 Merge branch 'PHP-7.0' 2016-03-16 10:55:09 +01:00
Andrey Hristov fa4addd409 More email fixing 2016-03-16 10:54:56 +01:00
Andrey Hristov 3a33ee63e8 Merge branch 'PHP-7.0' 2016-03-16 10:47:27 +01:00
Andrey Hristov f2ab731a8c Fix emails in headers. @mysql.com addresses are no more since many years. 2016-03-16 10:24:52 +01:00
Anatol Belski 884c7d181f update NEWS 2016-03-16 09:50:51 +01:00
Anatol Belski 6e25966544 Fixed bug #71704 php_snmp_error() Format String Vulnerability 2016-03-16 09:48:40 +01:00
Remi Collet d45f478454 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix #ifdef usage
2016-03-16 07:18:23 +01:00
Remi Collet 46293ed6d4 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix #ifdef usage
2016-03-16 07:18:09 +01:00
Remi Collet 478c807128 fix #ifdef usage 2016-03-16 07:17:49 +01:00
Dmitry Stogov 9020086a13 Taking into account "undefined" variables 2016-03-16 04:20:43 +03:00
Dmitry Stogov 59d00b8bcc Transparently introduce type-specialized opcode handlers.
This affects only PHP VM, and doesn't change anything else.
2016-03-16 03:36:58 +03:00
Chris Brown 77515803d5 Small typo in UPGRADING doc 2016-03-15 16:34:05 -04:00
Dmitry Stogov 4165ae1420 Convert LONG constants to DOUBLE, when later they are going to be used as DOUBLE 2016-03-15 22:19:01 +03:00
Derick Rethans 92db62a32b Updated to version 2016.2 (2016b) 2016-03-15 09:14:12 +00:00
Derick Rethans 0ebaad210f Empty merge 2016-03-15 09:14:12 +00:00
Derick Rethans ba71144b8c Updated to version 2016.2 (2016b) 2016-03-15 09:14:11 +00:00
Derick Rethans a1c6481c63 Empty merge 2016-03-15 09:14:10 +00:00
Derick Rethans ddc62f2e8b Updated to version 2016.2 (2016b) 2016-03-15 09:14:09 +00:00
Anatol Belski 1ed4227e64 Merge branch 'PHP-7.0'
* PHP-7.0:
  update libs versions
  update libs versions
2016-03-15 09:44:48 +01:00
Anatol Belski ba5b98db8c update libs versions 2016-03-15 09:44:05 +01:00
Anatol Belski 6ec7ef39f4 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  update libs versions
2016-03-15 09:43:08 +01:00
Anatol Belski 73b9941622 update libs versions 2016-03-15 09:41:34 +01:00
Anatol Belski 027a70e008 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare next
2016-03-15 08:26:12 +01:00
Anatol Belski 2921c0e3f6 prepare next 2016-03-15 08:24:41 +01:00
Anatol Belski ec13d5ca75 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Fix bug #71624, PHP_MODE_PROCESS_STDIN (CLI SAPI called with '-R') did not properly set $argi and $argn
  fix uninitialized value
2016-03-15 07:11:54 +01:00
Nikita Popov 47391961dd Mark uses in UNSET_VAR op1 + FE_FETCH_R op2 as no_val 2016-03-14 17:57:07 +01:00
Nikita Popov 64dae1ea76 Statically bind static method call arguments
If we know what method will be called, use ct-bound send opcodes.

The intl test is changed because a runtime error changed to a
compile-time error.
2016-03-14 17:50:56 +01:00
Anatol Belski 14ea0e584c Merge branch 'PHP-7.0'
* PHP-7.0:
  fix pointer truncation on 64 bit
2016-03-14 16:45:12 +01:00
Anatol Belski 8309e12cc7 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test
  Update NEWS
2016-03-14 15:58:40 +01:00
Yasuo Ohgaki 01579ae0a6 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed Bug #71683 Null pointer dereference in zend_hash_str_find_bucket
2016-03-12 08:33:04 +09:00
Nikita Popov f3b61b706f Merge branch 'PHP-7.0' 2016-03-11 22:45:52 +01:00
Nikita Popov d9f0c8429d Merge branch 'PHP-7.0' 2016-03-11 22:28:50 +01:00
Dmitry Stogov 7f80514aa1 Added ability to avoid code generation for useless opcode handlers.
- SPEC(NO_CONST_CONST) may prevent codegeneration for handlers like ADD_SPEC_CONST_CONST. Compiler and optimizaer should care about constants folding.
- SPEC(COMMUTATIVE) generate only single handler instead of two eqivalents like ADD_SPEC_CONST_CV and ADD_SPEC_CV_CONST. Compiler and optimizer should care avout operands swapping.
2016-03-11 16:51:06 +03:00
Anatol Belski c1b8c4ded7 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
2016-03-11 14:24:03 +01:00
Anatol Belski 0c3022f436 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix DatePeriod::getEndDate() segfault
2016-03-11 14:13:11 +01:00
Dmitry Stogov afb80df631 Allow usage of "TMPVARCV" pattern for cases when there is no difference in handling for TMP, VAR and CV operands. 2016-03-11 13:38:53 +03:00
Dmitry Stogov 827a7a180b Added possibility for extra specialization for SMART_BRANCH (e.g. IS_EQUAL+JMPZ superinstruction). 2016-03-11 12:17:03 +03:00
Anatol Belski d5cf1a13b9 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix build with clang on Winodws
2016-03-10 17:11:42 +01:00
Dmitry Stogov 8026da6db0 Remove NOPs after DFA pass. 2016-03-10 18:31:02 +03:00
Anatol Belski 624fe22914 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix error condition, part of bug #71753
2016-03-10 11:40:08 +01:00
Dmitry Stogov c1868b00cd Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  tsrm_win32_get_path_sid_key might returns NULL (Partially fix bug #71752)
2016-03-10 13:34:25 +03:00
Dmitry Stogov ff8337b783 Merge branch 'PHP-7.0'
* PHP-7.0:
  More effecient fix for bug #71756
2016-03-10 13:34:00 +03:00
Anatol Belski 22475055c6 Merge branch 'PHP-7.0'
* PHP-7.0:
  tsrm_win32_get_path_sid_key might returns NULL (Partially fix bug #71752)
2016-03-10 09:36:32 +01:00
Anatol Belski fd668bed4c Merge branch 'PHP-7.0'
* PHP-7.0:
  fix invalid pointer on 64-bit
2016-03-10 08:45:57 +01:00
Anatol Belski ce9a582d07 fix invalid pointer on 64-bit 2016-03-10 08:45:46 +01:00
Xinchen Hui 50960d85cc Merge branch 'PHP-7.0'
* PHP-7.0:
  Useless check (part of #71753)
  object->ce should not be NULL
  Fixed typo (partially fix for #71753)
  emalloc never returns NULL (partially fix for #71753)
2016-03-10 15:43:53 +08:00
Xinchen Hui a468901e97 Merge branch 'PHP-7.0'
* PHP-7.0:
  Improve the codes (FETCH_DIM_R/IS is read context, we should not expose IS_REFERENCE)
2016-03-10 15:10:26 +08:00
Xinchen Hui 4c388004d4 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71754 (Regression in PHP7.0: trivial script segfaults php-cgi)
  Bug #71756 (Call-by-reference widens scope to uninvolved functions when used in switch)
  tsrm_win32_get_path_sid_key might returns NULL (Partially fix bug #71752)
2016-03-10 15:03:25 +08:00
Nikita Popov 97a88fccc0 Merge branch 'PHP-7.0' 2016-03-09 23:01:51 +01:00
Nikita Popov f65486f13d Add NEWS/UPGRADING for negative string offsets 2016-03-09 14:41:38 +01:00
Francois Laupretre d0d9e7251e mb_strpos()/mb_stripos(): Add support for negative offset 2016-03-09 14:41:38 +01:00
Francois Laupretre 882f97042b mb_ereg_search_setpos(): Add support for negative position
Also add missing test for this function
2016-03-09 14:41:38 +01:00
Francois Laupretre 70187267b4 mb_strimwidth(): Add support for negative 'start' and 'width' 2016-03-09 14:41:38 +01:00
Francois Laupretre e30060da15 file_get_contents(): Add support for negative offset 2016-03-09 14:41:38 +01:00
Francois Laupretre 570bbed98e Add negative offset support to iconv_strpos() 2016-03-09 14:41:38 +01:00
Francois Laupretre 4a8c51c7d7 Add negative offset support to grapheme_strpos/stripos/extract() 2016-03-09 14:41:37 +01:00
Francois Laupretre 1c3e1a3d28 substr_count(): Support negative values for '$offset' and '$length' parameters. 2016-03-09 14:41:37 +01:00
Francois Laupretre 56fce8990f strpos()/stripos(): Add support for negative offsets 2016-03-09 14:41:37 +01:00
Francois Laupretre 370b7039e4 Add support for negative string offsets (syntax) 2016-03-09 14:41:37 +01:00
Anatol Belski aa2cf3a4f2 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix SKIPIF sections
2016-03-09 14:29:03 +01:00
Anatol Belski d6aba2981c Merge branch 'PHP-7.0'
* PHP-7.0:
  fix directory separator
2016-03-09 14:17:44 +01:00
Xinchen Hui f2d2e8ceb9 arena_alloc never returns NULL 2016-03-09 18:05:28 +08:00
Xinchen Hui 14fec3adf9 Suppress warnings 2016-03-09 18:01:29 +08:00
Xinchen Hui 352456ed9a Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71729 (Possible crash in zend_bin_strtod, zend_oct_strtod, zend_hex_strtod)
2016-03-09 12:16:46 +08:00
Anatol Belski 58c82ff0b0 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix regression introduced in 5683b6fa39
2016-03-08 13:16:46 +01:00
Anatol Belski 69d3b01d9c Merge branch 'PHP-7.0'
* PHP-7.0:
  fix incompatible pointers on 64-bit
2016-03-07 22:05:46 +01:00
Anatol Belski 45894d922f Merge branch 'PHP-7.0'
* PHP-7.0:
  fix double free and move temps into local scope
  add error check
2016-03-07 16:40:23 +01:00
Nikita Popov 35b34d7235 Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_language_scanner.c
2016-03-06 21:39:20 +01:00
Anatol Belski df87963b90 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix ibase connection routine
2016-03-04 12:27:43 +01:00
Anatol Belski b360ba651d fix initializer for empty_fcall_info 2016-03-04 10:57:38 +01:00
Nikita Popov 5a0594d12d Merge branch 'PHP-7.0' 2016-03-03 23:50:51 +01:00
Nikita Popov 7ed893712f Merge branch 'PHP-7.0'
Conflicts:
	ext/mysqlnd/mysqlnd_priv.h
	main/php_streams.h
2016-03-03 23:20:50 +01:00
Nikita Popov 6c8dd3eb04 Merge branch 'PHP-7.0' 2016-03-03 19:27:41 +01:00
Nikita Popov 457aa82bd4 Merge branch 'PHP-7.0' 2016-03-03 17:30:05 +01:00
Nikita Popov 536b08fa18 Merge branch 'PHP-7.0' 2016-03-03 17:14:25 +01:00
Nikita Popov 1ce0187659 Bump API numbers
Otherwise can't distinguish 7.0 and 7.1. Gotta add those #if's for
the FCI change...
2016-03-03 17:02:51 +01:00
Nikita Popov f57c0b3249 Merge branch 'PHP-7.0' 2016-03-03 16:50:47 +01:00
Dmitry Stogov a9a26100b4 unpack() function accepts an additional optional argument $offset. 2016-03-03 13:49:45 +03:00
Anatol Belski de3e033010 Merge branch 'PHP-7.0'
* PHP-7.0:
  show correct MINFO with libpq >= 9.5.x
2016-03-02 17:06:03 +01:00
Dmitry Stogov c67c166f93 Removed zend_fcall_info.symbol_table 2016-03-02 17:50:55 +03:00
Dmitry Stogov 960b3755b3 Merge branch 'PHP-7.0'
* PHP-7.0:
  PHP-7 zend_call_function() doesn't support symbol_table substitution
2016-03-02 16:57:08 +03:00
Dmitry Stogov 701edb8c82 Merge branch 'PHP-7.0'
* PHP-7.0:
  Better fix for IS_INDIRECT support in zend_hash_merge()
2016-03-02 15:09:50 +03:00
Dmitry Stogov 95eda16fe9 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test (sizeof(zend_string) is different on 32 and 64-bit systems)
2016-03-02 13:03:22 +03:00
Julien Pauli 914d33c40e Going for 5.5.34 2016-03-02 11:02:42 +01:00
Dmitry Stogov e66ac376cf Merge branch 'PHP-7.0'
* PHP-7.0:
  Introduce zend_symtable_exists_ind() for API consistency
2016-03-02 11:54:44 +03:00
Stanislav Malyshev f2656af7df Merge branch 'PHP-7.0'
* PHP-7.0:
  fix wddx merge
2016-03-02 00:03:09 -08:00
Stanislav Malyshev 2e874114a2 Merge branch 'PHP-7.0'
* PHP-7.0: (25 commits)
  Update NEWS
  update NEWS
  fix test file
  Fix version
  update NEWS
  Update NEWS
  Fix bug #71610: Type Confusion Vulnerability - SOAP / make_http_soap_request()
  Fix bug #71637: Multiple Heap Overflow due to integer overflows
  extend check for add_flag
  Fixed another segfault with file_cache_only now
  set version
  fix nmake clean in phpize mode
  Fixed segfault with file_cache_only
  Fixed possible crash at PCRE on MSHUTDOWN
  Fixed more synchronisation issues during SHM reload
  Set proper type flags (REFCOUNTED and COPYABLE) according to interned or regular string
  sync with improvements in NEWS
  Fixed process synchronisation problem, that may cause crashes after opcache restart
  Fix bug #71610: Type Confusion Vulnerability - SOAP / make_http_soap_request()
  Fix bug #71637: Multiple Heap Overflow due to integer overflows
  ...
2016-03-01 23:11:42 -08:00
Xinchen Hui 289e492251 Merge branch 'PHP-7.0'
* PHP-7.0:
  limit size of result set so unit test runs reliably
2016-03-02 14:27:20 +08:00
Xinchen Hui 14f105ebba Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test ext/readline/tests/readline_read_history_error_001.phpt
2016-03-02 12:31:30 +08:00
Xinchen Hui f4f140c05d Merge branch 'PHP-7.0'
* PHP-7.0:
  Use hash_exists_ind in symbol table
2016-03-02 12:12:12 +08:00
Nikita Popov 565f6bd374 Merge branch 'PHP-7.0' 2016-03-02 00:38:33 +01:00
Nikita Popov 1d91b4e410 Merge branch 'PHP-7.0' 2016-03-01 23:33:05 +01:00
Xinchen Hui 715a198e1f Merge branch 'PHP-7.0'
* PHP-7.0:
  Maybe we should introduce a symtable_exists_ind
2016-03-01 20:01:19 +08:00
Xinchen Hui b17d2ad5f6 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71695 (Global variables are reserved before execution).
2016-03-01 19:21:16 +08:00
Anatol Belski b402da28a1 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove unused vars
  fix possible pointer truncation on win64
2016-03-01 11:10:31 +01:00
Anatol Belski 3e6a4b6e99 Merge branch 'PHP-7.0'
* PHP-7.0:
  Updated NEWS
2016-03-01 10:15:13 +01:00
Anatol Belski d789c4ceb0 Merge branch 'PHP-7.0'
* PHP-7.0:
  extend check for add_flag
2016-03-01 09:36:36 +01:00
Côme Bernigaud 3d5b462c94 Merge branch 'PHP-7.0'
* PHP-7.0:
  LDAP - Added support to change the certificates verification
2016-03-01 05:00:16 +01:00
Xinchen Hui 42788d6b72 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
2016-03-01 10:51:52 +08:00
Xinchen Hui dd47b3b963 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed another segfault with file_cache_only now
  Fixed bugs #71317 and #71504
  add test for bug #68957
  update NEWS
  update NEWS
  Fixed #54648 PDO::MSSQL forces format of datetime fields
  remove unneeded free parts
  fix leaks and add one more NULL check
  add NULL check
  fix C89 compat
  fix arg type
  fix nmake clean in phpize mode
2016-03-01 10:51:36 +08:00
Nikita Popov ef497183b5 Merge branch 'PHP-7.0' 2016-02-29 22:44:58 +01:00
Anatol Belski 97294aca7e Merge branch 'PHP-7.0'
* PHP-7.0:
  add test for bug #68957
2016-02-29 18:44:36 +01:00
Anatol Belski 25d8ca1f70 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
2016-02-29 18:27:08 +01:00
Anatol Belski af3b857171 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed #54648 PDO::MSSQL forces format of datetime fields
2016-02-29 17:08:13 +01:00
Anatol Belski 094a98ab45 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove unneeded free parts
2016-02-29 16:31:00 +01:00
Anatol Belski 0f3417320e Merge branch 'PHP-7.0'
* PHP-7.0:
  fix leaks and add one more NULL check
  add NULL check
  fix C89 compat
  fix arg type
2016-02-29 15:49:28 +01:00
Anatol Belski 77c64c335a Merge branch 'PHP-7.0'
* PHP-7.0:
  fix nmake clean in phpize mode
2016-02-29 14:48:28 +01:00
Xinchen Hui 015dbb26a7 Merge branch 'PHP-7.0'
* PHP-7.0:
  The test self should be fixed(maybe relates to env?)
2016-02-29 15:19:46 +08:00
Xinchen Hui bb9fdd25bc Merge branch 'PHP-7.0'
* PHP-7.0:
  Revert "Fixed test ext/readline/tests/readline_read_history_error_001.phpt"
2016-02-29 15:10:23 +08:00
Xinchen Hui 1d22fb2ed5 Revert "Fixed test ext/readline/tests/readline_read_history_error_001.phpt"
This reverts commit 69e26f9f8f.
2016-02-29 15:10:17 +08:00
Xinchen Hui bb4d2f6577 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test ext/readline/tests/readline_read_history_error_001.phpt
2016-02-29 15:08:11 +08:00
Nikita Popov a1c48d5e3a Various SSA-related tweaks
* Add FETCH_LIST to inference
* Restrict JMP_SET/COALESCE result type
* Fix typos in range inference
* Add const annotations in zend_ssa.h
* For pi statements dump the associated predecessor block
* If type can be both true and false, dump bool instead
2016-02-28 21:38:34 +01:00
Anatol Belski ff1f178d84 Merge branch 'PHP-7.0'
* PHP-7.0:
  test fixes
2016-02-28 11:53:55 +01:00
Anatol Belski d674a656e9 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Fix bug #71536 Access Violation crashes php-cgi.exe
2016-02-28 11:07:32 +01:00
Xinchen Hui 3ab86e18cc Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed segfault with file_cache_only
2016-02-28 11:50:28 +08:00
Nikita Popov 9a45e920aa Support dropping rc1/rcn from dumps
For non-JIT we're not interested in rc inference.
2016-02-27 15:36:04 +01:00
Nikita Popov 8d758e7be9 Fix dominator tree construction
The used dominator intersection algorithm assumes a postorder
numbering of the CFG. The reversal of our natural numbering is
quite similar to postorder, but not the same.

In the future we should precompute both preorder/postorder
numberings and orderings, as these are useful in many places.
2016-02-27 15:10:18 +01:00
Dmitry Stogov 2e94cba430 Use quick check for first arguments 2016-02-26 21:44:28 +03:00
Dmitry Stogov b8e30a492a Use more general optimisation patterns 2016-02-26 21:02:41 +03:00
Xinchen Hui b378c7cff1 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71660 (array_column behaves incorrectly after foreach by reference)
2016-02-25 16:07:38 +08:00
Nikita Popov a1c9bd8803 Merge branch 'PHP-7.0' 2016-02-24 22:35:14 +01:00
Dmitry Stogov 2517835c64 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed possible crash at PCRE on MSHUTDOWN
2016-02-24 23:47:05 +03:00
Dmitry Stogov 1a46917740 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed more synchronisation issues during SHM reload
2016-02-24 21:16:35 +03:00
Nikita Popov 55c0de8f95 Merge branch 'PHP-7.0' 2016-02-24 17:44:33 +01:00
Nikita Popov 9d137f37fc Merge branch 'PHP-7.0' 2016-02-24 14:09:14 +01:00
Anatol Belski a3b1df41c0 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix NEWS
2016-02-24 12:30:00 +01:00
Remi Collet 64631972bc Merge branch 'PHP-7.0'
* PHP-7.0:
  fix NEWS
2016-02-24 12:26:37 +01:00
Anatol Belski d313d6aedd Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Port patch and test for bug #47803 to 7.0
2016-02-24 12:07:06 +01:00
Anatol Belski 69caec2c23 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  add test for bug #47803
  Fixed bug #47803
2016-02-24 11:57:46 +01:00
Dmitry Stogov 1481c61911 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71535 (Integer overflow in zend_mm_alloc_heap())
2016-02-24 11:05:58 +03:00
Anatol Belski 85ade00465 fix callback signature compat 2016-02-23 18:18:34 +01:00
Anatol Belski c1b3a3d935 Merge branch 'PHP-7.0'
* PHP-7.0:
  add test for bug #71171
2016-02-23 14:39:49 +01:00
Anatol Belski 38e77fd4d4 Merge branch 'PHP-7.0'
* PHP-7.0:
  make ext/odbc test credentials configurable
2016-02-23 14:22:39 +01:00
Nikita Popov 2d1559f827 Move free_chunk and resize_chunk into memory pool
Drops 24 bytes from each chunk. For the example in bug #71468 it
reduces memory usage by 30%.
2016-02-22 19:40:32 +01:00
Nikita Popov 42fe5e6791 Drop mysqlnd mempool refcount
This member was no longer used.

Also fix handling of from_pool in resize_chunk. It was setting
pool to NULL instead of from_pool to FALSE.
2016-02-22 19:40:32 +01:00
Remi Collet 79db0859f0 Merge branch 'PHP-7.0'
* PHP-7.0:
  missing include
2016-02-22 18:45:30 +01:00
Remi Collet 29cc010829 Merge branch 'PHP-7.0'
* PHP-7.0:
  update bundled libzip to 1.1.2
2016-02-22 18:18:43 +01:00
Nikita Popov d5769d4234 Merge branch 'PHP-7.0' 2016-02-22 13:11:24 +01:00
Nikita Popov 7e81b8adbb Merge branch 'PHP-7.0' 2016-02-22 12:40:30 +01:00
Nikita Popov e24bf80352 Merge branch 'PHP-7.0' 2016-02-22 12:35:09 +01:00
Remi Collet 54380cd56a Merge branch 'PHP-7.0'
* PHP-7.0:
  cleanup $Id
2016-02-22 09:26:48 +01:00
Stanislav Malyshev 6ae4c11b45 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #71629: sync php_url_decode definition
2016-02-21 17:11:51 -08:00
Nikita Popov 37d1bbe456 Merge branch 'PHP-7.0' 2016-02-21 13:01:28 +01:00
Remi Collet 7a15656b5c Merge branch 'PHP-7.0'
* PHP-7.0:
  cleanup, ext/json is simple PHP now
2016-02-20 17:43:09 +01:00
Dmitry Stogov 11a43f10de Added comments about special functions 2016-02-19 15:44:11 +03:00
Dmitry Stogov dc33c79a65 Evaluate ord(<string>), chr(<int>) and defined(<persistent-constant>) at compile time 2016-02-19 14:14:27 +03:00
Andrea Faulds 8b410c5705 Merge branch 'PHP-7.0' 2016-02-18 22:37:51 +00:00
Dmitry Stogov 0f39f080d1 Fixed incorrrect merge (regenrate zend_vm_execute.h) 2016-02-19 00:09:17 +03:00
Dmitry Stogov 791b8f0c89 Merge branch 'PHP-7.0'
* PHP-7.0:
  Set proper type flags (REFCOUNTED and COPYABLE) according to interned or regular string
2016-02-18 23:18:56 +03:00
Dmitry Stogov 8a6c5be106 Merge branch 'PHP-7.0'
* PHP-7.0:
  Better fix for bug #71622 (Strings used in pass-as-reference cannot be used to invoke C::$callable())
2016-02-18 23:15:28 +03:00
Anatol Belski 7839ff5e24 Merge branch 'PHP-7.0'
* PHP-7.0:
  refix broken 20ca0b89bd
2016-02-18 19:52:04 +01:00
Anatol Belski 9f22301652 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix typo
2016-02-18 19:45:22 +01:00
Anatol Belski f7dfee7b40 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
2016-02-18 19:43:48 +01:00
Anatol Belski fe7076814e Merge branch 'PHP-7.0'
* PHP-7.0:
  add test for bug #71625, 7 variant
  add test for bug #71625
2016-02-18 19:40:39 +01:00
Anatol Belski 04260664bd Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71625 Crash in php7.dll with bad phar filename
2016-02-18 19:34:22 +01:00
Anatol Belski 0ce5920aa9 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
2016-02-18 19:18:18 +01:00
Anatol Belski 2a1dffbaf0 Merge branch 'PHP-7.0'
* PHP-7.0:
  Bug #71596 Segmentation fault on ZTS with date function (setlocale)
2016-02-18 19:14:37 +01:00
Bob Weinand 2dc9aa9bea Merge branch 'PHP-7.0' 2016-02-18 13:54:19 +01:00
Leigh 50482d66e0 Merge branch 'PHP-7.0'
* PHP-7.0:
  Revert "Fix #71152: mt_rand() returns the different values from original mt19937ar.c"

`mt_rand()` is seedable with `mt_srand()` which means it can be used to (re)produce specific streams of numbers. All code (no matter how few instances that may be) that previously depended on this behaviour will no longer produce the same results.

This kind of change needs to be discussed before being committed
2016-02-18 11:25:15 +00:00
Lior Kaplan d051fbc1e5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Sort 7.0.4 extensions by name, merge FPM entries
2016-02-18 11:25:10 +02:00
Stanislav Malyshev 5c79cc5290 Merge branch 'PHP-7.0'
* PHP-7.0:
  Remove TSRMLS_* from code, they are not used anymore
2016-02-17 22:44:50 -08:00
Stanislav Malyshev d7e10fb1d2 Merge branch 'PHP-7.0'
* PHP-7.0:
  Remove TSRMLS_* from docs as it's not used anymore

Conflicts:
	ext/intl/ERROR.CONVENTIONS
2016-02-17 22:37:03 -08:00
Anatol Belski 1ea9f24814 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix ts buld
2016-02-18 07:13:14 +01:00
Xinchen Hui 2068bb1a11 Missed semicolon 2016-02-18 12:04:27 +08:00
Ferenc Kovacs 030b7ba06c Merge branch 'PHP-7.0'
* PHP-7.0:
  5.6.20 is next
2016-02-18 00:32:48 +01:00
Bob Weinand eea576d589 Merge branch 'PHP-7.0' 2016-02-17 20:28:07 +01:00
Dmitry Stogov bbea2ae048 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed process synchronisation problem, that may cause crashes after opcache restart
2016-02-17 13:59:20 +03:00
Xinchen Hui 9360b0c6fc Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix #71152: mt_rand() returns the different values from original mt19937ar.c

Conflicts:
	ext/standard/rand.c
2016-02-17 11:33:44 +08:00
kusano 07cae46b02 Merge branch 'master' into fix-mt_rand
Conflicts:
	ext/standard/rand.c
2016-02-17 01:00:58 +09:00
Anatol Belski 3244d3c7e9 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare next
2016-02-16 09:15:25 +01:00
Anatol Belski cf9d0a9a9b Merge branch 'PHP-7.0'
* PHP-7.0:
  yet two test fixes in openssl in 5.6
2016-02-16 08:29:54 +01:00
Anatol Belski 08086d40a5 Merge branch 'PHP-7.0'
* PHP-7.0:
  improve test
2016-02-16 08:06:57 +01:00
Xinchen Hui 8485e4fdd4 Save one strlen here 2016-02-16 14:00:07 +08:00
Xinchen Hui 5c08bb654b Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71603 (compact() maintains references in php7)
2016-02-16 11:03:09 +08:00
Bob Weinand 77ca527c91 Merge branch 'PHP-7.0' 2016-02-15 22:43:58 +01:00
Anatol Belski 492711289f Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix timelib compat with PHP5
2016-02-15 16:53:57 +01:00
Anatol Belski 11900f4f5c Merge branch 'PHP-7.0'
* PHP-7.0:
  Backported fix for bug #71525
2016-02-15 15:16:06 +01:00
Dmitry Stogov d0b9ef27c5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed possible memory leak
2016-02-15 16:40:21 +03:00
Dmitry Stogov 052651b06a Merge branch 'PHP-7.0'
* PHP-7.0:
  Added missing semicolon
2016-02-15 16:37:48 +03:00
Stanislav Malyshev c3e0ef6b63 Merge branch 'PHP-7.0'
* PHP-7.0:
  More fixing for bug #71540
2016-02-15 01:53:24 -08:00
Stanislav Malyshev b3c2a47231 Merge branch 'PHp-7.0'
* PHp-7.0:
  Fix bug #71540 - NULL pointer dereference in xsl_ext_function_php()
  Fix bug #71540 - NULL pointer dereference in xsl_ext_function_php()
2016-02-15 00:10:27 -08:00
Stanislav Malyshev 889e3b62f4 Fix bug #71540 - NULL pointer dereference in xsl_ext_function_php() 2016-02-15 00:10:21 -08:00
Anatol Belski e18910c296 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix dir separator in test
  fix dir separator in test
2016-02-15 09:02:35 +01:00
Anatol Belski e0fa32cc8e Merge branch 'PHP-7.0'
* PHP-7.0:
  make sure the tests always uses same tz
2016-02-15 08:39:19 +01:00
Xinchen Hui 6aaea02ad8 Merge branch 'PHP-7.0'
* PHP-7.0:
2016-02-15 15:33:00 +08:00
Xinchen Hui 4b32bce69b Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  fixed news entry
  fix NEWS entry
  update NEWS
  Fix bug #71525
2016-02-15 15:32:17 +08:00
Xinchen Hui effc1ba014 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed typo (I think it should be a typo)
2016-02-15 15:31:00 +08:00
Anatol Belski 95adc7aad1 Merge branch 'PHP-7.0'
* PHP-7.0:
  fixed news entry
  fix NEWS entry
2016-02-15 08:28:24 +01:00
Anatol Belski ab93e6319e Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-02-15 08:22:08 +01:00
Anatol Belski 99d98a6ba5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #71525
2016-02-15 08:19:52 +01:00
Xinchen Hui ab5869400b Fixed another assertion fails due to live_range cleaned (ext/phar/tests/003a.phpt) 2016-02-15 14:38:20 +08:00
Xinchen Hui bddcabed84 Merge branch 'bug_45876_missing_fields' of https://github.com/wayfair/php-src
* 'bug_45876_missing_fields' of https://github.com/wayfair/php-src:
  Add missing fields to expected test output
2016-02-15 13:55:33 +08:00
Xinchen Hui 5f0e39afdd Merge branch 'patch-32' of https://github.com/marcosptf/php-src
* 'patch-32' of https://github.com/marcosptf/php-src:
  Update ReflectionClass_isArray.phpt
  test to function ReflectionParameter::isArray
2016-02-15 13:52:50 +08:00
Xinchen Hui a11ced7b4a Merge branch 'updateTestCoverage' of https://github.com/mattflaschen/php-src
* 'updateTestCoverage' of https://github.com/mattflaschen/php-src:
  Add additional test coverage for html_entity_decode
2016-02-15 13:50:54 +08:00
Xinchen Hui 49399359c6 Restore to the first version fix(sorry, mis-read the codes) 2016-02-15 13:47:52 +08:00
Xinchen Hui 0c5f8451d6 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update NEWS
  fpm: call zend_signal_init() in child
2016-02-15 13:24:47 +08:00
Xinchen Hui 2b6f06b70c Merge branch 'patch-1' of https://github.com/mickael9/php-src
* 'patch-1' of https://github.com/mickael9/php-src:
  fpm: call zend_signal_init() in child
2016-02-15 13:23:01 +08:00
Xinchen Hui b3f5f5f1be Reset op_array->live_range if it is removed all by optimization 2016-02-15 12:09:52 +08:00
Xinchen Hui ab3a820aa3 Revert "Fixed segfault in file cache serialize if live range is empty after"
This reverts commit 2661a47479.
2016-02-15 12:09:13 +08:00
Xinchen Hui 2661a47479 Fixed segfault in file cache serialize if live range is empty after
optimiaztion
2016-02-15 12:07:43 +08:00
Xinchen Hui 4eb4a78bf0 Combine conditions (good for other VM kinds) 2016-02-15 11:12:04 +08:00
Xinchen Hui c4ff3e7990 It's better to support 5.3 as well 2016-02-15 11:05:01 +08:00
Xinchen Hui c9c924dbf3 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update NEWS
2016-02-15 10:37:45 +08:00
Xinchen Hui be91106db7 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update NEWS: "Fixed bug  #71584 (Possible use-after-free of ZCG(cwd) in Zend Opcache)"
  Fix use-after-free of ZCG(cwd) in Zend Optimizer
2016-02-15 10:33:18 +08:00
Anatol Belski c3fcc3e9ac Merge branch 'PHP-7.0'
* PHP-7.0:
  updated NEWS
  update NEWS
2016-02-14 20:54:42 +01:00
Anatol Belski eca7881aa0 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71559 Built-in HTTP server, we can downlaod file in web by bug
2016-02-14 20:49:42 +01:00
Anatol Belski e644c9457e Merge branch 'PHP-7.0'
* PHP-7.0:
  cleanup duplicated var
  fix file lists with subdirs passed to EXTENSION()
2016-02-14 17:28:38 +01:00
Nikita Popov 420c7979d5 Fix zpp in pg_last_notice 2016-02-14 14:48:26 +01:00
Nikita Popov 2d605e5f24 Merge branch 'PHP-7.0' 2016-02-14 14:47:42 +01:00
Francois Laupretre be607e724c Fix bug #71572
Discussed on the internals list as part of
http://markmail.org/message/fa625yc2eegk2dio.
2016-02-14 13:18:23 +01:00
Nikita Popov d10911afde Simplify previous fix
I didn't notice that there already is a var with the same value.
2016-02-13 23:46:50 +01:00
Nikita Popov 502dd99a6c Fix ZEND_NEW live ranges
While the def starts at DO_FCALL, the variable should still be the
result of NEW, not DO_FCALL.

I had to fix the test for #68652, because the code started to
(correctly) free the "new self()" object, which triggered an
infinite destructor loop.
2016-02-13 19:04:54 +01:00
Nikita Popov 302214f7ce Merge branch 'PHP-7.0' 2016-02-13 18:03:45 +01:00
Nikita Popov b2245c5592 Merge branch 'PHP-7.0' 2016-02-13 17:48:58 +01:00
Nikita Popov 464f48ec1c Merge branch 'PHP-7.0' 2016-02-13 15:21:38 +01:00
Nikita Popov c0c73f7083 Fix bug #69989
This should cover all the basic cycles. Anything further would
require scanning the call stack and live temporaries.
2016-02-12 18:52:53 +01:00
Nikita Popov d1b777bd99 Merge branch 'PHP-7.0' 2016-02-12 17:58:12 +01:00
Nikita Popov 44ed1cb5c0 Remove ZEND_CALL_CTOR_RESULT_UNUSED
Instead emit a FREE on the result of NEW.
2016-02-11 22:15:11 +01:00
Dmitry Stogov 8c2d55962e Combine conditions 2016-02-11 23:11:19 +03:00
Nikita Popov 5faedf5b3e Remove EXT_TYPE_UNUSED in favor of IS_UNUSED
This means we no longer allocate an unused VAR for the retval of
instructions that support unused results.

Nearly all instructions already used the result variable only if
it was used. The only exception to this was the return value
variable for internal function call results. I've adjusted the code
to use a stack zval for the unused return case now. As we have
retval specialization now, we know that it doesn't matter.
2016-02-11 18:02:19 +01:00
Nikita Popov f75be35312 Support partial GC for unfinished generators
This doesn't cover everything yet, but should be a good start for
cycled in unfinished generators.
2016-02-11 16:38:30 +01:00
Nikita Popov 68516091c1 Merge branch 'PHP-7.0' 2016-02-11 16:33:23 +01:00
Nikita Popov 7453348ca8 Merge branch 'PHP-7.0' 2016-02-11 16:25:55 +01:00
Anatol Belski 8407e48bc4 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix version header
2016-02-11 16:24:04 +01:00
Bob Weinand c7a18a4a24 Merge branch 'PHP-7.0' 2016-02-11 06:43:55 +01:00
Matthew Flaschen f61429fabf Add additional test coverage for html_entity_decode
Will help testing a HHVM fix (https://reviews.facebook.net/D53871)
2016-02-10 17:52:49 -05:00
Nikita Popov c6f2d61c7c Merge branch 'PHP-7.0' 2016-02-10 19:04:33 +01:00
Joe Watkins ec37cecd90 Merge branch 'master' of https://github.com/php/php-src 2016-02-10 12:59:52 +00:00
Joe Watkins 4808d9689a be more precise about the meaning of -n 2016-02-10 12:59:38 +00:00
Xinchen Hui 1c3edc3dd4 Merge branch 'master' of git.php.net:/php-src 2016-02-09 23:37:11 +08:00
Xinchen Hui 316dca14ff Merge branch 'PHP-7.0' 2016-02-09 23:36:24 +08:00
Nikita Popov 7174af4074 Support CFG construction without live range splitting
We must not split at live range boundaries for SSA constructions,
otherwise an OP_DATA instruction may be separated into new block
and not picked up during renaming.

It's also unnecessary for this use case and only blows up the CFG.
2016-02-09 13:02:33 +01:00
Dmitry Stogov 4095d5f245 Cleanup OP_DATA usage. Now only first operand of OP_DATA is used for ASSIGN_DIM, ASSIGN_OBJ and ASSIGN_OP (DIM/OBJ) instructions. 2016-02-09 13:12:57 +03:00
Dmitry Stogov f4bec6e137 After DFA pass result of FE_FETCH may be CV 2016-02-09 12:16:17 +03:00
Xinchen Hui 4fcc3f7711 Merge branch 'PHP-7.0' 2016-02-09 12:20:33 +08:00
Lior Kaplan 85ce6a7d38 Merge branch 'PHP-7.0'
* PHP-7.0:
  Align spacing in make install messages
2016-02-08 20:33:17 +02:00
Leigh acc227188d Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed memory leak in curl_getinfo()
2016-02-08 11:43:28 +00:00
Dmitry Stogov 1544fec94b Removed wrong (old) code 2016-02-08 12:20:37 +03:00
Xinchen Hui bd497f426c Merge branch 'PHP-7.0' 2016-02-08 10:22:51 +08:00
Xinchen Hui 3b802a8bdd Merge branch 'PHP-7.0' 2016-02-07 23:19:37 +08:00
Nikita Popov abc06b91cd Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_compile.c
2016-02-06 16:43:54 +01:00
marcosptf 625345f58c Update ReflectionClass_isArray.phpt 2016-02-05 13:50:06 -02:00
marcosptf 2c7341ca16 test to function ReflectionParameter::isArray
was created a new test uncovered yet!
:-)
2016-02-05 12:21:10 -02:00
Dmitry Stogov 81721a7ddd Specialize DO_FCALL (and variations) according to used/unused return value 2016-02-05 15:46:52 +03:00
Dmitry Stogov 2f5a119281 Use extra specialization to eliminate run-time checks for conditions known at compile time in SEND_VAL_EX and SEND_VAR_EX. 2016-02-05 15:07:58 +03:00
Xinchen Hui 3bafcf34ac Merge branch 'PHP-7.0' 2016-02-05 19:56:36 +08:00
Xinchen Hui 7f9e1ab3b5 Merge branch 'PHP-7.0'
Conflicts:
	main/php_version.h
2016-02-05 19:52:24 +08:00
Dmitry Stogov ef98adce30 Specialize ASSIGN according to used/unused return value 2016-02-05 13:18:58 +03:00
Lior Kaplan 7a225d1a3e Align NEWS entry format 2016-02-05 01:13:19 +02:00
Lior Kaplan 08e43f5c1e Merge branch 'PHP-7.0'
* PHP-7.0:
  Align NEWS entry format
  Align NEWS entry format
2016-02-05 01:11:20 +02:00
Ferenc Kovacs d432b0e959 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-02-04 20:41:33 +01:00
Anatol Belski 71eef6d704 Merge branch 'PHP-7.0'
* PHP-7.0:
  add missin NEWS entry
2016-02-04 18:10:12 +01:00
Jakub Zelenka 2a9dd980bf Merge branch 'PHP-7.0' 2016-02-04 16:57:41 +00:00
Bob Weinand 00a2c30c59 Add extra VM operand specialization
For now RETVAL and OP_DATA= are supported
2016-02-04 16:49:50 +01:00
Nikita Popov af66ad2857 Remove use of register keyword in headers
Headers must be C++ compatible -- this throws warnings.

The register keyword is not used for optimization, at least not
in optimized builds.
2016-02-04 13:34:19 +01:00
Nikita Popov fbe50b15dd Add back typedefs for php_uint32 and php_int32
It's pretty likely that extensions rely on these, no need to break
things.
2016-02-04 12:03:07 +01:00
Rouven Weßling 7e0459e7ce Replace usage of php_hash_uint32 and php_hash_uint64 with uint32_t and uint64_t.
Remove the unused php_hash_int32 and php_hash_int64.
2016-02-04 11:57:41 +01:00
Rouven Weßling e93c28053d Replace usage of php_uint16 with uint16_t 2016-02-04 11:57:41 +01:00
Rouven Weßling a61029b155 Replace usage of php_int32 and php_uint32 with int32_t and uint32_t 2016-02-04 11:57:41 +01:00
Nikita Popov d998ca6e3c Merge branch 'PHP-7.0' 2016-02-04 11:45:34 +01:00
Adam Baratz b0793d6d8f Add missing fields to expected test output 2016-02-03 16:50:29 -05:00
Jakub Zelenka fd6f32f667 Merge branch 'PHP-7.0' 2016-02-03 16:23:37 +00:00
Antony Dovgal 0d593b29e2 fix build
sorry about that =\
2016-02-03 18:02:58 +03:00
Michael Wallner 0e856232d8 fix generating config.nice; again
The fix in a8bc184207 broke if an arg
containing spaces was passed to configure.
2016-02-03 13:24:40 +01:00
Antony Dovgal 6d87eb2727 use correct element size, avoid reading stack 2016-02-03 15:11:59 +03:00
Antony Dovgal 64e8cfadf5 check length first, prevent out-of-bounds read 2016-02-03 14:48:38 +03:00
Ferenc Kovacs 683272590d Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-02-03 01:08:28 +01:00
Julien Pauli 00db03b57c Merge branch 'PHP-7.0'
* PHP-7.0:
  Updated NEWS
  Fix #70720
2016-02-02 18:17:53 +01:00
Nikita Popov 80c15ac784 Move pi placement into separate function
Non-functional change, just moving code. This makes it easier to
change the order of operations.
2016-02-02 17:39:59 +01:00
Anatol Belski 5bf2f9e69b Merge branch 'PHP-7.0'
* PHP-7.0:
  reapply the sysconf error check patch
  add error check to sysconf call
  Going for 5.5.33 now
2016-02-02 14:28:04 +01:00
Derick Rethans 871c5ab09a Updated to version 2016.1 (2016a) 2016-02-02 10:34:07 +00:00
Derick Rethans 50185e12ac Empty merge 2016-02-02 10:34:06 +00:00
Anatol Belski 23ba7c6f27 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix dir separator
2016-02-02 09:57:16 +01:00
Anatol Belski 99d9654f4b Merge branch 'PHP-7.0'
* PHP-7.0:
  fix directory separator in test
2016-02-02 09:52:26 +01:00
Anatol Belski 0aaddfbba3 Merge branch 'PHP-7.0'
* PHP-7.0:
  update libs version
  update libs version
2016-02-02 09:04:02 +01:00
Anatol Belski d843bb61f7 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-02-02 08:33:14 +01:00
Stanislav Malyshev ea35de6e31 Merge branch 'PHP-7.0'
* PHP-7.0: (35 commits)
  fix tests
  update NEWS
  fix tests
  fix NEWS
  Update NEWS
  update NEWS
  Fixed bug #71475: openssl_seal() uninitialized memory usage
  Fixed bug #71488: Stack overflow when decompressing tar archives
  fix tests
  fix wrong gc sequence
  revert the API string as well
  update NEWS
  Revert "Fix #70720"
  sync NEWS
  reset ext/session to the state of 7.0.2
  update NEWS
  update NEWS
  add missing headers for SIZE_MAX
  backport the escapeshell* functions hardening branch
  add tests
  ...
2016-02-01 20:46:06 -08:00
Anatol Belski 6f19ca8553 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix extensions path for nmake install
  fix extensions path for nmake install
  use correct pointer in the math
2016-02-01 15:43:49 +01:00
Antony Dovgal 67a728f8a5 use correct pointer in the math 2016-02-01 16:32:06 +03:00
Dmitry Stogov d510255879 Rename IS_ERROR into _IS_ERROR (to prevent redefinition on Windows). 2016-02-01 11:12:28 +03:00
Stanislav Malyshev 472ef79f2b Merge branch 'PHP-7.0'
* PHP-7.0:
  Upgrade bundled PCRE to 8.38
  Fixed NEWS file entry
  fix the fix for bug #70976 (imagerotate)
2016-01-31 21:40:09 -08:00
Jakub Zelenka 678300aca6 Merge branch 'PHP-7.0' 2016-01-31 18:14:37 +00:00
Jakub Zelenka 7295ffdff6 Merge branch 'PHP-7.0' 2016-01-31 14:41:08 +00:00
Nikita Popov 93dc91b386 Remove version checks
PHP_VERSION_ID
PHP_API_VERSION
ZEND_MODULE_API_NO
PHP_MAJOR_VERSION, PHP_MINOR_VERSION
ZEND_ENGINE_2

I've left litespeed alone, as it seems to genuinely maintain support
for many PHP versions.
2016-01-30 15:35:28 +01:00
Nikita Popov 2eb4728611 Remove HAVE_SPL checks
SPL is always built.

Also clean up spl_ce_RuntimeException handling in PDO.
2016-01-30 14:53:00 +01:00
Nikita Popov 5c327d7f5c Use handle as hash in SplObjectStorage
For the default implementation, use a more efficient integer-based
hash. The getHash() interface still requires a string.
2016-01-30 14:19:11 +01:00
Xinchen Hui 08e5dc461d Merge branch 'PHP-7.0' 2016-01-29 22:05:59 -08:00
Xinchen Hui f6d8af73ad Merge branch 'PHP-7.0' 2016-01-29 20:38:59 -08:00
Xinchen Hui 31aaa14e71 Merge branch 'fastcgi-race-fix' of https://github.com/Xenopathic/php-src 2016-01-29 20:30:52 -08:00
Anatol Belski 1df334b75c revert test to the previous master state 2016-01-29 22:37:37 +01:00
Anatol Belski 620f4169a7 Merge branch 'PHP-7.0'
* PHP-7.0:
  yet one revert
  Revert "adjust test for 7.0"

Conflicts:
	ext/session/tests/bug69111.phpt
2016-01-29 21:46:15 +01:00
Anatol Belski 58b2344759 Merge branch 'PHP-7.0'
* PHP-7.0:
  Revert "refix #69111 and one related test"
  Revert "fix yet another leak"
  add XFAIL
  Revert "refix #69111 and one related test"
  Revert "fix tests"
  Revert "fix leak in 7.0"
  add XFAIL
  Revert "fix leak in 5.6"

Conflicts:
	ext/session/tests/rfc1867_sid_invalid.phpt
2016-01-29 21:07:19 +01:00
Anatol Belski 1a9402c6ec Merge branch 'PHP-7.0'
* PHP-7.0:
  refix #69111 and one related test

Conflicts:
	ext/session/tests/rfc1867_sid_invalid.phpt
2016-01-29 19:59:26 +01:00
Prayag Verma c7c1679bb3 Fix typos in git rules and release process READMEs 2016-01-29 17:04:39 +01:00
Nikita Popov 1c709f08c7 Merge branch 'PHP-7.0' 2016-01-29 17:03:32 +01:00
Anatol Belski 6cc01882fb Merge branch 'PHP-7.0'
* PHP-7.0:
  fix tests
2016-01-29 16:33:19 +01:00
Robin McCorkell 4b927d4a52 Properly read any remaining data when closing FastCGI socket 2016-01-29 15:14:08 +00:00
Anatol Belski f1dc4a4e10 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix yet another leak
2016-01-29 16:04:13 +01:00
Derick Rethans 6a2a4e4146 Merge branch 'PHP-7.0' 2016-01-29 15:34:57 +01:00
Derick Rethans c343d3fae5 Merge branch 'PHP-7.0' 2016-01-29 15:30:53 +01:00
Anatol Belski 15ba618a69 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix wrong gc sequence
2016-01-29 15:19:40 +01:00
Anatol Belski 55fd320b31 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix leak in 7.0
2016-01-29 14:48:36 +01:00
Anatol Belski 32d9973d7f Merge branch 'PHP-7.0'
* PHP-7.0:
  fix leak in 5.6
2016-01-29 13:59:45 +01:00
Anatol Belski 0edeeaeeb2 Merge branch 'PHP-7.0'
* PHP-7.0:
  revert the API string as well
  update NEWS
2016-01-29 12:53:57 +01:00
Anatol Belski 371ad676f9 Merge branch 'PHP-7.0'
* PHP-7.0:
  adjust test for 7.0
  add test for bug #69111
  update NEWS
2016-01-29 12:30:24 +01:00
Anatol Belski c9f1446790 update NEWS 2016-01-29 11:29:09 +01:00
Anatol Belski 7a86bbc79d Merge branch 'PHP-7.0'
* PHP-7.0:
  refix bug #69111, crash in 5.6 only
2016-01-29 11:25:51 +01:00
Anatol Belski e14e177ca7 update NEWS 2016-01-29 11:11:53 +01:00
Remi Collet e846801c79 Merge branch 'PHP-7.0'
* PHP-7.0:
  NEWS
  NEWS
  Fixed Bug #62172 FPM not working with Apache httpd 2.4 balancer/fcgi setup
2016-01-29 10:24:58 +01:00
Anatol Belski f5aea18252 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
2016-01-29 08:43:42 +01:00
Anatol Belski 46964ac231 Merge branch 'PHP-7.0'
* PHP-7.0:
  reset ext/session to the state of 7.0.2
  reset the ext/session to the state of 5.6.17
2016-01-29 08:39:23 +01:00
Andrea Faulds 1b36037689 Test for void 2016-01-28 18:07:45 +00:00
Andrea Faulds 8412de9da5 Support void return type in reflection 2016-01-28 18:01:48 +00:00
Dmitry Stogov 86f54fcdf7 Use special type IS_ERROR instread of EG(error_zval). (we still need EG(error_zval) for SPL support). 2016-01-28 18:00:06 +03:00
Dmitry Stogov e99fe9865e Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71474 (Crash because of VM stack corruption on Magento2).
2016-01-28 11:54:48 +03:00
Yasuo Ohgaki 99101ba310 Update error message. Missed to include in previous commit 46d4a37105 2016-01-28 15:06:55 +09:00
Mikko 46d4a37105 Session regenerate id seems to malfunction with 3rd party session handlers
Fixed bug #71472 session_regenerate_id malfunctions with certain session handlers
2016-01-28 13:30:10 +09:00
Stanislav Malyshev 8bc89942bb Merge branch 'PHP-7.0'
* PHP-7.0:
  Use safe alloc functions when calculations are made on sizes.
2016-01-26 22:55:20 -08:00
Anatol Belski af7174f05b fix typo 2016-01-26 16:41:00 +01:00
Xinchen Hui e1d0738534 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71439 (OpenSSL-dependent test fails to skip when openssl not enabled)
2016-01-26 16:22:55 +08:00
Xinchen Hui 7b32ec1671 Merge branch 'PHP-7.0'
* PHP-7.0:
  Added test for bug #71443
2016-01-26 15:59:32 +08:00
Xinchen Hui 7df2190f13 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  add note on readline support
  check for NULL and avoid crashes
2016-01-26 15:58:14 +08:00
Xinchen Hui c58ad955a9 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71443 (Segfault using built-in webserver with intl using symfony)
  Fix memory leak with not freeing OpenSSL errors
  check for NULL and avoid crashes
  Update libmagic.patch for PHP-5.6
  Fixed bug #7143	(finfo throws notice for specific python file)
2016-01-26 15:57:49 +08:00
Anatol Belski 9a33f6583b add note on readline support 2016-01-26 08:55:49 +01:00
Jakub Zelenka 7159f16321 Merge branch 'PHP-7.0' 2016-01-25 17:20:05 +00:00
Antony Dovgal 52d89557f3 check for NULL and avoid crashes 2016-01-25 14:29:51 +03:00
Xinchen Hui 63fb2b7118 Improve the names 2016-01-25 16:00:10 +08:00
Xinchen Hui 506d5fe4df Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71442 (forward_static_call crash)
2016-01-25 12:13:35 +08:00
Xinchen Hui d46b23a650 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update libmagic.patch for PHP-7.0
  Fixed compiler warnings
  Fixed bug #71434 (finfo throws notice for specific python file)
2016-01-25 11:46:42 +08:00
Nikita Popov 319e82838a Remove dead code
OP_DATA isn't used in that way anymore
2016-01-24 23:04:15 +01:00
Nikita Popov c2fea2a46d Respect RC_INFERENCE during DFG construction
To avoid inserting phis that are only relevant with rc inference
enabled. Suprisingly, this affects only 0.8% of phis.
2016-01-24 23:04:06 +01:00
Nikita Popov 949aaea66e Don't insert duplicate predecessors
Otherwise we'll get corrupt phis
2016-01-24 23:03:57 +01:00
Nikita Popov cf6aa46dbd Fix SSA for ZEND_YIELD
Yield-by-ref defs a ref var, yield-by-var only defs an rc1/rcn var
if rc inference is used.

Also move BIND_LEXICAL where it belongs in DFG construction.
2016-01-24 23:03:50 +01:00
Bob Weinand 9017bb94d4 Merge branch 'PHP-7.0' 2016-01-24 19:55:31 +01:00
Xinchen Hui 6d674b3d91 Merge branch 'PHP-7.0' 2016-01-24 03:57:17 -08:00
Xinchen Hui d74cc3afcf Fixed Bug #71435 (Reproducible crash using opcache.file_cache_only=1 and class constant) 2016-01-24 03:56:47 -08:00
Bob Weinand cc9445ce68 Merge branch 'PHP-7.0' 2016-01-23 18:17:18 +01:00
Jakub Zelenka 1091cec28f Update NEWS and UPGRADING for PR #1701 2016-01-22 19:41:11 +00:00
Eddie Kohler 104876dd8e json_encode: Escape U+2028 and U+2029 more often.
These characters are illegal in Javascript, so leaving them unescaped
is risky. The default encoder ($flags = 0) is fine, but the encoder
with JSON_UNESCAPED_UNICODE flag is not.

In case anyone wants the ability to leave these characters unescaped,
provide JSON_UNESCAPED_LINE_TERMINATORS.
2016-01-22 19:40:58 +00:00
Dmitry Stogov 9b854ebab4 More accurate handling of isset() and unset() 2016-01-22 13:32:20 +03:00
Dmitry Stogov 79071fe227 Added optimization constraint (don't optimize result of NEW, because constructor may throw exception) 2016-01-22 13:30:34 +03:00
Xinchen Hui 0df9b51479 Return meaningful value 2016-01-22 15:34:56 +08:00
Xinchen Hui 9b61479166 We don't need to dup zend_class_constant here.
quote why the internal class is still using duplication:
```
for internal classes, the zend_class_constant is malloc-ed. we need to
free it.

if (const->ce == ce) {
zval_ptr_dtor(&const->value);
free(const)
}
so, if two classes share one const, and it(parent class) was freed
before, this read(in child class, const->ce) is invalid..

and destroy_zend_class is called via zend_hash_destroy(class_table).
which is not in reverse order... so, parent classes are dtor first.

if we want this work, we should change that order.
```
2016-01-22 11:22:37 +08:00
Nikita Popov af255c67eb Make op1/op2 decoding in phpdbg more complete 2016-01-21 21:58:23 +01:00
Nikita Popov b1e4883d26 Don't print try-catch offset for FAST_RET w/o ev 2016-01-21 21:53:13 +01:00
Nikita Popov 7899498c6f Mark op1 of INIT_FCALL as NUM 2016-01-21 21:31:14 +01:00
Nikita Popov 9b57e07298 Consolidate op1/op2 vm flags 2016-01-21 21:15:05 +01:00
Andrey Hristov 64cb71cc8b Add missing macro 2016-01-21 12:59:23 +01:00
Xinchen Hui 4ed5b4cdf5 Typo (SKIPF -> SKIPIF) 2016-01-21 15:27:53 +08:00
Xinchen Hui b27e10284a Empty line 2016-01-21 14:37:54 +08:00
Xinchen Hui 145555f81c Cover overloaded functions 2016-01-21 14:31:03 +08:00
Xinchen Hui 2ee73ee094 Let's add a class entry for testing 2016-01-21 13:53:29 +08:00
Xinchen Hui 62f3e5adf8 Merge branch 'master' of git.php.net:/php-src
* 'master' of git.php.net:/php-src:
  re-arrange NEWS
  5.6.19 will be next
  Fix test when run with openssl < 1.0.2 (reorder so no more SSLv2 message) Fix skip message to work
  fix ReflectionClass::__toString doc block omitted
  fix ReflectionClass::__toString doc block omitted
  improve fix for bug #71201
  improve fix for bug #71201
2016-01-21 13:32:08 +08:00
Xinchen Hui 62c1c11ad3 Fixed bug #71413 (Crash with constants on internal interfaces) 2016-01-21 13:30:41 +08:00
Ferenc Kovacs 50c255d16c Merge branch 'PHP-7.0'
* PHP-7.0:
  re-arrange NEWS
2016-01-21 02:25:39 +01:00
Ferenc Kovacs ada6fb0792 Merge branch 'PHP-7.0'
* PHP-7.0:
  5.6.19 will be next
2016-01-20 15:43:49 +01:00
Remi Collet 544f8a0794 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix test when run with openssl < 1.0.2 (reorder so no more SSLv2 message) Fix skip message to work
  fix ReflectionClass::__toString doc block omitted
2016-01-20 13:11:13 +01:00
Joe Watkins 7d100866ec Merge branch 'master' of https://github.com/php/php-src 2016-01-20 10:55:09 +00:00
Joe Watkins 11cf826b89 fix ReflectionClass::__toString doc block omitted 2016-01-20 10:54:55 +00:00
Anatol Belski d284072f78 Merge branch 'PHP-7.0'
* PHP-7.0:
  improve fix for bug #71201
  improve fix for bug #71201
2016-01-20 09:46:58 +01:00
Nikita Popov dcf3db6ac8 Mark isset($$var) as INDIRECT_VAR_ACCESS 2016-01-19 22:26:32 +01:00
Nikita Popov 5662d73528 Add support for Pi type constraints
Supports TYPE_CHECK and IS_IDENTICAL for now.
2016-01-19 22:09:29 +01:00
Dmitry Stogov a8900b5636 Typo (ASSESS->ACCESS) 2016-01-19 15:54:44 +03:00
Dmitry Stogov a2ff3a46a4 Use ZEND_FUNC_INDIRECT_VAR_ASSESS instead of ZEND_FUNC_TOO_DYNAMIC. Handle function with exceptions handlers and generators separately. 2016-01-19 15:33:08 +03:00
Anatol Belski 29176aaa01 vc doesn't support #warning 2016-01-19 12:14:59 +01:00
Anatol Belski 60d98605ca reorder comments 2016-01-19 09:04:52 +01:00
Anatol Belski 03263fded1 get rid of win32_ prefix 2016-01-19 09:02:12 +01:00
Anatol Belski fb1f4769b9 check return values and cleanup the job object on exit 2016-01-19 08:57:58 +01:00
Anatol Belski b5035227a1 Merge branch 'PHP-7.0'
* PHP-7.0:
  add 7.0.4 block to NEWS
  bump version to 7.0.4-dev
2016-01-19 08:04:40 +01:00
Anatol Belski 8e60e0c927 trap also children exits on shutdown to avoid unhandled exceptions 2016-01-18 20:52:17 +01:00
Anatol Belski 5e73db9cb7 integrate the /Gw compiler switch 2016-01-18 18:32:19 +01:00
Anatol Belski cce370d4c9 fix compiler version check 2016-01-18 18:32:17 +01:00
Anatol Belski b94ed769f4 integrate /Zc:inline switch 2016-01-18 18:32:15 +01:00
Anatol Belski 9ceb53b071 add proper noinline specifier for VC 2016-01-18 18:32:12 +01:00
Anatol Belski a50120c416 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test for 7.0, OpenSSL >= 1.0.2 disables SSLv2 by default
2016-01-18 18:24:42 +01:00
Anatol Belski 5af056a662 Merge branch 'PHP-7.0'
* PHP-7.0:
  fork test
  fix test
  fork test
  fork test for win32
  fork test
2016-01-18 17:02:58 +01:00
Anatol Belski e1540044e9 add UPGRADING note for PHP_FCGI_CHILDREN on Windows 2016-01-18 08:26:58 +01:00
Yasuo Ohgaki 2dce532a90 Merge branch 'PHP-7.0'
* PHP-7.0:
  Use SUCCESS/FAILURE
2016-01-18 13:35:43 +09:00
Yasuo Ohgaki 05e87fa418 Fixed bug #71070 Custom session handler write method returns false, warning message misleading
This is commited to master only.
If you have better error message suggestion, feel free to improve it.
2016-01-18 12:03:41 +09:00
Yasuo Ohgaki 3a8c4a0084 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #65720 ext/mbstring/libmbfl/filters/mbfilter_cp5022x.c:281: bad if test
2016-01-18 10:52:48 +09:00
Yasuo Ohgaki e4f40a84c7 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug 71397 (mb_send_mail segmentation fault)
2016-01-18 09:42:11 +09:00
Yasuo Ohgaki 5b5524a332 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71397 (mb_send_mail segmentation fault)
2016-01-18 09:23:42 +09:00
Yasuo Ohgaki 1277846228 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71394 (session_regenerate_id() must close opened session on errors)
2016-01-17 17:12:49 +09:00
Yasuo Ohgaki 82a0c47712 Merge branch 'PHP-7.0'
* PHP-7.0:
  Remove unnecessary warning by warning reorder.
2016-01-17 16:21:48 +09:00
Yasuo Ohgaki 691bade4be Merge branch 'PHP-7.0'
* PHP-7.0:
  Add test for Bug #70133 (Extended SessionHandler::read is ignoring $session_id when calling parent)
2016-01-16 05:37:26 +09:00
Anatol Belski e514492c3b Merge branch 'PHP-7.0'
* PHP-7.0:
  PS(id) is zend_string *, use appropriate API
  Update NEWS
2016-01-15 15:48:24 +01:00
Anatol Belski e1c3df3e88 fork test 2016-01-15 13:10:09 +01:00
Anatol Belski d7a1b243da fork test 2016-01-15 13:02:36 +01:00
Anatol Belski 91545ce3a2 add WinEditLine support for CLI 2016-01-15 12:45:57 +01:00
Anatol Belski 3169d473e9 add wineditline info to minfo 2016-01-15 12:45:56 +01:00
Anatol Belski d249321116 basic support for wineditline 2016-01-15 12:45:54 +01:00
Anatol Belski 9ac3b75116 config.w32 for ext/readline 2016-01-15 12:45:53 +01:00
Anatol Belski 400a6a4ccb Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix header file include
2016-01-15 08:44:22 +01:00
Yasuo Ohgaki 5b18b2182d Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #69111 (Crash in SessionHandler::read()). Made session save handler abuse much harder than before.
2016-01-15 16:25:33 +09:00
Andrey Hristov 7e9a6f7202 Move cleanup code to a separate function and export it. Export also
other functions that can be of use for plugins
2016-01-15 03:08:02 +01:00
Yasuo Ohgaki 07849e8006 Merge branch 'PHP-7.0'
* PHP-7.0:
  Improved fix for bug #68063 (Empty session IDs do still start sessions).
2016-01-15 10:19:29 +09:00
Anatol Belski aa7aaeb7a0 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-01-14 18:42:37 +01:00
Anatol Belski 242775a19b Merge branch 'PHP-7.0'
* PHP-7.0:
  port 4308c868f9 to 7.0
2016-01-14 18:41:22 +01:00
Anatol Belski 1497e4babc Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Fixed bug #70979 crash with bad soap request
  Update NEWS
2016-01-14 17:48:59 +01:00
Andrey Hristov bcf7172258 Forgot to add const-ness to the macro 2016-01-14 14:55:23 +01:00
Andrey Hristov c69c23ba2f Convenience macros 2016-01-14 12:58:41 +01:00
Anatol Belski ca7b33e247 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-01-14 09:04:16 +01:00
Xinchen Hui 5449095c4f Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed macro name
2016-01-14 14:49:34 +08:00
Xinchen Hui 55b0a392a6 Merge branch 'patch-1' of https://github.com/JHGitty/php-src
* 'patch-1' of https://github.com/JHGitty/php-src:
  Fix typo
2016-01-14 11:53:26 +08:00
Xinchen Hui da658f28bb Merge branch 'patch' of https://github.com/jakkdu/php-src
* 'patch' of https://github.com/jakkdu/php-src:
  phpdbg: fix potential format string bug
2016-01-14 11:51:53 +08:00
Anatol Belski 092a87c9d8 implement FCGI children automatic restart and cleanup 2016-01-13 21:32:38 +01:00
Anatol Belski 5b91658365 Basic implementation for FCGI to respect PHP_FCGI_CHILDREN on Windows
PHP_FCGI_CHILDREN number of children processes will be spawned, sharing
same TCP socket. To implement yet

- children cleanup on exit
- automatic children re-spawning
2016-01-13 21:32:36 +01:00
Andrey Hristov 4e8988b45a commit 597db443cd6ce76b0dce590b9f51b5d4d610325e
Author: John Bafford <john@bafford.com>
Date:   Mon Jan 11 17:17:44 2016 -0500

    MYSQLND_METHOD(mysqlnd_conn_data, get_scheme) should take socket_or_pipe by reference to allow modifications

    Fixes a read-from-null crash in mnd_pestrdup when trying to duplicate the socket filename. (Fixes regression in e81ecc80c)
2016-01-13 16:30:23 +01:00
Dmitry Stogov 8e5cf2e186 Merge branch 'PHP-7.0'
* PHP-7.0:
  Avoid incomplete zend_internal_function initialization.
2016-01-13 15:06:50 +03:00
Xinchen Hui 86883b793b Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71336 (Wrong is_ref on properties as exposed via get_object_vars())
2016-01-13 17:38:36 +08:00
Dmitry Stogov d47285648c Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71248 (Wrong interface is enforced)
  Update NEWS
2016-01-13 11:42:50 +03:00
Nikita Popov bef124513e Merge branch 'PHP-7.0' 2016-01-12 16:48:44 +01:00
Nikita Popov 35662c9bd3 Forbid double use() and use() of param
Also commit a test I forgot to add for forbidden use() of
auto-globals.
2016-01-12 15:37:39 +01:00
Julien Pauli 65e592e477 Merge branch 'PHP-7.0'
* PHP-7.0:
  Trigger op_array_handler() if HAVE_OP_ARRAY_HANDLER is set
2016-01-12 15:19:39 +01:00
Remi Collet ad57a71aa4 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix the fix for bug #70976 (imagerotate)
  Use php_session_abort()
2016-01-12 13:54:52 +01:00
Yasuo Ohgaki c200e8e1a2 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed Bug #71038 session_start() returns TRUE on failure
2016-01-12 19:53:14 +09:00
Anatol Belski 5e99d19df5 Merge branch 'PHP-7.0'
* PHP-7.0:
  partial test fixes, only obvious mistaking parts
2016-01-12 10:45:57 +01:00
Anatol Belski f3c6bd2108 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove the unnecessary condition part
  fix possible buffer overrun in the errmsg string
  integrate tsrmls cache
2016-01-12 10:24:21 +01:00
Dmitry Stogov 6579e48417 Introduced BIND_STATIC opcode instead of FETCH_R/FETCH_W(static)+ASSIGN/ASSIGN_REF (similar to BIND_GLOBAL).
In the future we may refer to static variable by index instead of name, to eliminate hash lookup.
2016-01-12 12:20:35 +03:00
Anatol Belski 1234e2eb21 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS for fixed bug #71132, fixed bug #71197
2016-01-12 08:35:17 +01:00
Anatol Belski d880131736 Merge branch 'PHP-7.0'
* PHP-7.0:
  re-apply patch for github PR #1695
2016-01-12 07:09:32 +01:00
Insu Yun 35d5cd5c6e phpdbg: fix potential format string bug 2016-01-12 04:21:57 +00:00
Anatol Belski 786d9599f6 Merge branch 'PHP-7.0'
* PHP-7.0:
  Revert "update NEWS"
  Revert "patch for github PR #1695"
2016-01-11 22:04:04 +01:00
Anatol Belski 5e2ed01dd3 Revert "patch for github PR #1695"
This reverts commit 58dd956b63.

crashes on travis
2016-01-11 22:01:55 +01:00
Nikita Popov 0e936db801 Make PI construction human-readable
Also makes it easy to add PIs for TI.
2016-01-11 21:53:22 +01:00
Nikita Popov c817ac4d52 Use worklist for DFG construction
About 40x faster.
2016-01-11 21:53:10 +01:00
Anatol Belski 765c5ca745 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
  Simplify code per Anatol.
  Insert bug number.
  Use strtoll() when apr_off_t is 64 bits.
2016-01-11 21:45:42 +01:00
Anatol Belski 5f01812340 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  patch for github PR #1695
  fix out format
2016-01-11 21:29:44 +01:00
Anatol Belski 138f290500 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  backport 9a07245b72 from 7.0
2016-01-11 20:42:56 +01:00
JHGitty 313e62836e Fix typo 2016-01-11 14:29:05 +01:00
Anatol Belski 3054487ecb Merge branch 'PHP-7.0'
* PHP-7.0:
  Align NEWS entry format
2016-01-11 12:17:21 +01:00
Anatol Belski e014244314 Merge branch 'PHP-7.0'
* PHP-7.0:
  further datatype and range check fixes for ibase
  datatype fixes
  fix typo for #ifdef
  Fix various bugs in interbase
2016-01-11 11:59:48 +01:00
Mickaël b0780d3f41 fpm: call zend_signal_init() in child
This addresses bug #71269.

When an fpm child handles more than one request, zend_signal_startup() will
override the saved signal handlers with the internal zend handlers set from the
previous request, causing a SIGQUIT signal to result in a core dump rather than
gracefully exiting (the expected behaviour).

This is fixed by adding a call to zend_signal_init() after setting the
signal handlers in the child. The same technique is used in the apache SAPI
module in commit fd5a756ad4 which addresses
bug #61083.
2016-01-09 04:54:02 +01:00
Andrea Faulds e6ed53e011 Merge branch 'PHP-7.0' 2016-01-08 17:21:59 +00:00
Anatol Belski c8ff622f6d Merge branch 'PHP-7.0'
* PHP-7.0:
  update libs_versions.txt
  update libs versions
2016-01-08 08:36:43 +01:00
Anatol Belski d7eb63422a Merge branch 'PHP-7.0'
* PHP-7.0:
  allow static build of ext/ftp
  update NEWS
  Fixed bug #71227 Can't compile php_curl statically
2016-01-08 08:08:45 +01:00
Nikita Popov bb357e0617 Fix bitset initialization 2016-01-07 23:49:42 +01:00
Anatol Belski e885cd817c Fixed bug #71227 Can't compile php_curl statically 2016-01-07 18:58:59 +01:00
Nikita Popov c602ac60b9 Fix CE fetching for NEW object type inference
Create a common function for getting a class entry.
2016-01-07 18:53:10 +01:00
Nikita Popov 04dc5d7420 Range&type inference for JMP_SET 2016-01-07 18:53:02 +01:00
Anatol Belski e712764dfe Merge branch 'PHP-7.0'
* PHP-7.0:
  more informative error message for opcache fallback
  add SKIPIF condition
2016-01-07 17:58:44 +01:00
Xinchen Hui 9c2dde98db Merge branch 'PHP-7.0' 2016-01-07 07:05:31 -08:00
Bob Weinand abae897a24 Merge branch 'PHP-7.0' 2016-01-07 15:13:07 +01:00
Julien Pauli 93058cd323 Merge branch 'PHP-7.0'
* PHP-7.0:
  5.5.32 now
2016-01-07 13:55:50 +01:00
Julien Pauli 9e5c75d934 Merge branch 'PHP-7.0'
* PHP-7.0:
  5.5.32 now
2016-01-07 13:06:21 +01:00
Bob Weinand 13ccb2ff08 Merge branch 'PHP-7.0' 2016-01-07 11:56:51 +01:00
Ferenc Kovacs 536f583154 Merge branch 'PHP-7.0'
* PHP-7.0:
  adjust release date for the delay
2016-01-06 15:55:36 +01:00
Ferenc Kovacs 8cc263ba5c Merge branch 'PHP-7.0'
* PHP-7.0:
  these will be part of 5.6.17 not 5.6.18
  Removed unecessary string dup
  Moved buffer from heap to stack
2016-01-06 15:50:10 +01:00
Julien Pauli 7302b72d6e Merge branch 'PHP-7.0'
* PHP-7.0:
  Moved buffer from heap to stack
2016-01-06 11:41:50 +01:00
Anatol Belski c1bfc16ea6 Merge branch 'PHP-7.0'
* PHP-7.0:
  updated NEWS
  Patch for Heap Buffer Overflow in EscapeShell
2016-01-06 07:53:50 +01:00
Anatol Belski 4ff46b98df Merge branch 'PHP-7.0'
* PHP-7.0:
  set release date
  fix NEWS and add some 7.0.2 entries
2016-01-06 07:46:10 +01:00
Anatol Belski ea130bfd59 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update NEWS
  add NEWS entries for 7.0.2
  re-apply the patch from 1785d2b805
  Improve fix for bug #70976
  Fix bug #70976: fix boundary check on gdImageRotateInterpolated
  Fixed bug #70755: fpm_log.c memory leak and buffer overflow
  fix merge mistake
  Fixed #70728
  Fixed bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization)
  Improve fix for bug #70976
  Fixed bug #70661 (Use After Free Vulnerability in WDDX Packet Deserialization)
  Fixed bug #70741: Session WDDX Packet Deserialization Type Confusion Vulnerability
  Fixed #70728
  Fixed bug #70755: fpm_log.c memory leak and buffer overflow
  Fix bug #70976: fix boundary check on gdImageRotateInterpolated
  typofix
2016-01-06 06:10:39 +01:00
Xinchen Hui fd6ec7fcbe Merge branch 'master' of git.php.net:/php-src 2016-01-06 00:03:37 +08:00
Anatol Belski 1963427738 Merge branch 'PHP-7.0'
* PHP-7.0:
  improve fix for bug #71273
2016-01-05 20:04:18 +01:00
Anatol Belski 89326f0df3 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2016-01-05 18:58:02 +01:00
Anatol Belski 1cc0b353b2 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71273 A wrong ext directory setup in php.ini leads to crash
2016-01-05 18:56:12 +01:00
Xinchen Hui 4550e93b78 Merge branch 'PHP-7.0' 2016-01-06 00:03:01 +08:00
Xinchen Hui 3d59a752af Merge branch 'PHP-7.0' 2016-01-06 00:01:56 +08:00
Andrey Hristov 37418deb02 Fix reloc for the allocator. Original files and lines were not showing
correct. This seems to be a PHP7 issue.
2016-01-05 16:29:22 +01:00
Bob Weinand 5034ec44ca Merge branch 'PHP-7.0' 2016-01-05 16:28:23 +01:00
Xinchen Hui 671987ce83 Merge branch 'PHP-7.0' 2016-01-05 23:02:55 +08:00
Andrey Hristov e64b845c89 Fix typo that was unhiding only with USE_ZEND_ALLOC 2016-01-05 13:19:32 +01:00
Julien Pauli 928d2cb3a4 Merge branch 'PHP-7.0'
* PHP-7.0:
  Happy new year (Update copyright to 2016)
2016-01-04 18:14:08 +01:00
Jakub Zelenka 9b95dd5e37 Merge branch 'PHP-7.0' 2016-01-04 16:53:30 +00:00
Andrey Hristov a19173e4af - Make functions static, as they are not needed to be public - exported
through a structure
- Fixed typo in statistic name
- Added 2 static functions for copying a MYSQLND_CSTRING and converting
  a CSTRING to STRING.
2016-01-04 16:48:35 +01:00
Xinchen Hui c1b73ff8af Merge branch 'PHP-7.0' 2016-01-04 05:39:20 -08:00
Xinchen Hui 1265c82b1c Merge branch 'PHP-7.0' 2016-01-03 14:23:06 +08:00
Xinchen Hui d0e3ce73f0 Merge branch 'PHP-7.0' 2016-01-03 14:07:13 +08:00
Anatol Belski fe99f02437 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove duplicated skipif conditions
2016-01-02 13:59:13 +01:00
Xinchen Hui 563659822d Merge branch 'PHP-7.0' 2016-01-02 17:56:54 +08:00
Anatol Belski caf007cdd6 Merge branch 'PHP-7.0'
* PHP-7.0:
  sync with new tests from 7.0 for ICU 55_1 and 56_1 compat
  sync skipifs for ext/intl for ICU 55_* and 56_* compat
2016-01-01 20:28:02 +01:00
Lior Kaplan 71c1980025 Happy new year (Update copyright to 2016) 2016-01-01 20:06:12 +02:00
Lior Kaplan 3d5438bf7b Merge branch 'PHP-7.0'
* PHP-7.0:
  Update header to PHP Version 7
  Happy new year (Update copyright to 2016)
  Happy new year (Update copyright to 2016)
2016-01-01 20:04:31 +02:00
Xinchen Hui 91e899b489 Merge branch 'PHP-7.0' 2016-01-01 07:07:29 -08:00
Xinchen Hui 41dcdb1d73 Merge branch 'PHP-7.0' 2016-01-01 13:46:44 +08:00
Derick Rethans 8e9d8c0f4f Merge branch 'PHP-7.0' 2015-12-31 09:46:55 +00:00
Nikita Popov b3afeeabef Fix lineno for finally FAST_CALL and JMP 2015-12-30 23:49:07 +01:00
Nikita Popov 83c4417330 Mark uses of scope functions in namespaces as TOO_DYNAMIC
Of course they are not necessarily, but it's very likely and we have
to be conservative anyway.

Also use zend_string_equals_literal().
2015-12-30 23:38:03 +01:00
Xinchen Hui 65cabad20d Merge branch 'PHP-7.0' 2015-12-30 05:10:21 -08:00
Xinchen Hui f727d43102 Merge branch 'PHP-7.0' 2015-12-30 05:04:36 -08:00
Nikita Popov 65e456f364 Introduce BIND_LEXICAL
This opcodes inserts a local CV into the closure static variable
table. This replaces the previous mechanism of having static
variables marked as LEXICAL, which perform a symtable lookup
during copying.

This means a) functions which contain closures no longer have to
rebuild their symtable (better performance) and b) we can now track
used variables in SSA.
2015-12-29 23:14:53 +01:00
Nikita Popov 4440436821 Forbid use() of auto-globals
We don't correctly support it, it doesn't make sense and it's also
forbidden for parameters.
2015-12-29 11:20:44 +01:00
Xinchen Hui cb1db49d0a Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed info while setting opcache.file_cache_only
  Drop extra line
  Add CVE for #71105 (PHP 7.0.1)
2015-12-29 15:49:52 +08:00
Xinchen Hui 8a6f90543f Merge branch 'PHP-7.0' 2015-12-26 22:56:27 -08:00
Andrea Faulds 4d7dd7a95f Merge branch 'PHP-7.0' 2015-12-27 01:03:21 +00:00
Nikita Popov d77b74a1f3 Use ZEND_HASH_FOREACH 2015-12-26 23:43:33 +01:00
Nikita Popov 33870c525a Don't reuse SSA var in UNSET_VAR
Instead use the SSA var that UNSET_VAR actually defines. Otherwise
we get issues trying to DCE unsets.
2015-12-26 23:33:58 +01:00
Xinchen Hui 80a39539ca Merge branch 'PHP-7.0' 2015-12-25 21:31:57 -08:00
Xinchen Hui 36a9b34548 Merge branch 'PHP-7.0' 2015-12-25 21:27:43 -08:00
Xinchen Hui 9d3cedbd88 Merge branch 'tsrmls_leftovers' of https://github.com/tvlooy/php-src 2015-12-25 20:36:29 -08:00
Xinchen Hui 7a5c663ec6 Merge branch 'PHP-7.0' 2015-12-25 20:32:46 -08:00
Tom Van Looy 618b961124 Remove leftovers of TSRMLS in code 2015-12-25 11:13:39 +01:00
Tom Van Looy 6d0dec27fa Remove leftovers of TSRMLS in docs 2015-12-25 11:13:28 +01:00
Dmitry Stogov b3d0178915 Rearrange code to enable inner precedure inference 2015-12-24 19:05:27 +03:00
Julien Pauli 7a2f60d3c7 Merge branch 'PHP-7.0'
* PHP-7.0:
  Remove mentions of "type hint" and "typehint"
2015-12-24 15:19:54 +01:00
Julien Pauli 2a4993d0fb Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test
2015-12-24 14:49:03 +01:00
Julien Pauli 5adac3c2d0 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed and improved tests
  test to function socket_getopt();
  test to function socket_clear_error();;
  test to function socket_shutdown();
  test to function socket_send();
  test to function gethostname ( void );
  test to function DateTimeZone::getLocation();
  test to function stream_get_transports();
  test to function stream_get_wrappers();
  test to function stream_socket_enable_crypto();
  test to function stream_socket_get_name();
  Create stream_socket_recvfrom.phpt
  test to stream function set_file_buffer.phpt();
  test to function PDO_getAvaliableDrivers;
  test to misc. function connection_status();
  test to function connection_aborted();
  test to function memory_get_peak_usage();
2015-12-24 14:13:36 +01:00
Dmitry Stogov 4abbfb9707 Marked function as "cold" 2015-12-24 16:03:31 +03:00
Dmitry Stogov b4def0ee88 Added call-graph analyses 2015-12-24 14:30:41 +03:00
Julien Pauli a882d0fd7b Merge branch 'PHP-7.0'
* PHP-7.0:
  Update default_mimetype ini setting description
2015-12-24 10:33:49 +01:00
Julien Pauli 805491a8ae Merge branch 'PHP-7.0'
* PHP-7.0:
  These function docs are referencing zend_object_value but this should be zend_object
2015-12-24 10:25:29 +01:00
Dmitry Stogov 3d88a64e0c Add another DFA optimization pattern (ASSIGN -> QM_ASSING) 2015-12-24 11:06:02 +03:00
Xinchen Hui 5b916d3dd5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Superfluous semicolon
2015-12-24 10:42:49 +08:00
Anatol Belski 349927934d Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
2015-12-23 18:40:16 +01:00
Anatol Belski f90dd026cb Merge branch 'PHP-7.0'
* PHP-7.0:
  fix merge mistake
2015-12-23 18:31:09 +01:00
Anatol Belski 3da66d83ca Merge branch 'PHP-7.0'
* PHP-7.0:
  Added test for bug #71201
  Bug #71201 round() segfault on 64-bit builds
  Sort 7.0.1 extensions' entries

Conflicts:
	ext/standard/math.c
2015-12-23 18:29:06 +01:00
Anatol Belski 1e7a593b60 Merge branch 'PHP-7.0'
* PHP-7.0:
  Added test for bug #71201
  Bug #71201 round() segfault on 64-bit builds
  Add CVE for #71020 (PHP 7.0.1)
2015-12-23 18:25:28 +01:00
Anatol Belski d97b161f10 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Added test for bug #71201
  Bug #71201 round() segfault on 64-bit builds
2015-12-23 18:24:56 +01:00
Xinchen Hui 656eb1cc00 Merge branch 'master' of git.php.net:/php-src 2015-12-23 08:13:46 -08:00
Xinchen Hui eaa79de2e5 Merge branch 'PHP-7.0' 2015-12-23 08:13:24 -08:00
Dmitry Stogov 00a3714e05 Support for optimization introduced in DFA pass (it may change type of instruction return oprand to IS_CV) 2015-12-23 19:02:14 +03:00
Xinchen Hui 62e8eadfa0 Merge branch 'PHP-7.0' 2015-12-23 07:52:36 -08:00
Xinchen Hui 086eb8c88d Merge branch 'PHP-7.0' 2015-12-23 07:48:16 -08:00
Xinchen Hui 70f9ba00f7 This check become useless after 98885bfa1e 2015-12-23 20:56:49 +08:00
Dmitry Stogov 98885bfa1e Consolidate indirect string offset modification checks (Nikita, Dmitry)
Check it once, instead of dozens of times.
2015-12-23 13:52:15 +03:00
Julien Pauli 8520bab128 Merge branch 'PHP-7.0'
* PHP-7.0:
  Updated NEWS
  Added support for HTTP 451
2015-12-23 11:38:16 +01:00
Dmitry Stogov 28a016a6dc Fixed SSA construction for CFG with unreachable BB 2015-12-23 03:52:38 +03:00
Dmitry Stogov 1e3ab15843 Fixed test on 32-bit systems 2015-12-23 03:52:01 +03:00
Dmitry Stogov e82a73573b Remove live-range if the corresponding definition is deleted 2015-12-23 03:46:40 +03:00
Dmitry Stogov dd3cb33ef0 Support for incompletely constructed SSA 2015-12-23 03:20:28 +03:00
Dmitry Stogov aa4a83fec7 Fixed bug #71196 (Memory leak with out-of-order live ranges) 2015-12-23 01:47:38 +03:00
Nikita Popov fdfbeeb296 Always create ARRAY_ELEM ssa var for ELEM_REF 2015-12-22 23:08:26 +01:00
Dmitry Stogov 5c1c8f1dec Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed incorrect setting on 32-bit systems
2015-12-22 21:33:07 +03:00
Dmitry Stogov 6e6280a388 Corrected error messages:
- we don't use NULL for overlaoded objects for ages
- fixed array/object mess
2015-12-22 20:55:11 +03:00
Julien Pauli 96c1325092 Updated NEWS 2015-12-22 18:12:56 +01:00
Ilia Alshanetsky b92ae5d7bc Fixed test 2015-12-22 18:12:56 +01:00
Ilia Alshanetsky f705063e23 Added validation to parse_url() to prohibit restricted characters inside login/pass components based on RFC3986 2015-12-22 18:12:56 +01:00
Bob Weinand 2322af28c5 Merge branch 'PHP-7.0' 2015-12-22 17:39:52 +01:00
Julien Pauli c0eea8a8b7 Merge branch 'PHP-7.0'
* PHP-7.0:
  Updated NEWS
  Fix #70720
  Align NEWS entry format
2015-12-22 16:28:12 +01:00
Dmitry Stogov a75c6d5fb2 Skip "useless" SSA variables for INIT_ARRAY, ADD_ARRAY_ELEMENT, FE_RESET_R 2015-12-22 17:35:08 +03:00
Dmitry Stogov b4b6d58990 Add ability to prevent "useless" SSA variable creation for "refcounting inference". 2015-12-22 16:43:37 +03:00
Anatol Belski e8f1db14d5 Merge branch 'PHP-7.0'
* PHP-7.0:
  release only appropriate string
2015-12-22 14:37:05 +01:00
Dmitry Stogov 83cd828469 Make RC1/RCN inference more accurate (it's probably not 100% correct anyway) 2015-12-22 15:35:17 +03:00
Anatol Belski 6607b6506a Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2015-12-22 13:19:33 +01:00
Anatol Belski 172681b555 Merge branch 'PHP-7.0'
* PHP-7.0:
  7.0.3 next
2015-12-22 10:49:38 +01:00
Xinchen Hui e9b2febd61 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71190 (substr_replace converts integers in original $search array to strings)
2015-12-22 12:29:00 +08:00
Xinchen Hui b216481a96 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed #71188 (str_replace converts integers in original $search array to strings)
2015-12-22 11:07:42 +08:00
Dmitry Stogov d952eb753c Get rid of MAY_BE_DEF 2015-12-21 19:46:55 +03:00
Dmitry Stogov ae303cf82f Split MAY_BE_NULL from MAY_BE_UNDEF 2015-12-21 18:39:24 +03:00
Nikita Popov 88eae43ff9 Remove uses of VARs in extended_value
The DECLARE_(ANON_)INHERITED_CLASS(_DELAYED) opcodes were
referencing the parent ce VAR through extended_value. This is
hacky and we can't track the def-use chain in SSA.

To avoid this, the layout of declaration opcodes is changed
as follows: op1 points to the lcname and rtd_key literals, in
that order. (For anon/lambda declarations only one of lcname or
rtd_key is present.) This frees up op2, which is now used to
reference the parent ce VAR in inheriting declarations. The
jmp offset for anon class declarations is moved frop op2 to
extended_value.

The changes were applied both to class and function declarations
to keep everything symmetric.
2015-12-21 14:44:42 +01:00
Dmitry Stogov 1fe8a1dec9 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed possible crash on Zend/tests/bug71154.phpt
2015-12-21 15:58:58 +03:00
Anatol Belski b8515125c8 Merge branch 'PHP-7.0'
* PHP-7.0:
  Revert "Partially fix bug #71129"
2015-12-21 12:10:49 +01:00
Xinchen Hui 952748a606 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed typo
2015-12-21 18:13:11 +08:00
Xinchen Hui 4f48704014 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71178 (preg_replace with arrays creates [0] in replace array if not already set)
  Align #71165 entry format
2015-12-21 18:11:01 +08:00
Anatol Belski 6f4286f303 Merge branch 'PHP-7.0'
* PHP-7.0:
  Partially fix bug #71129
  Typo
  Bug #71105 was fixed in 7.0.1 (commit 9374ba35)
2015-12-20 15:27:13 +01:00
Nikita Popov 420ff42bc0 Protect against overflows in pi constraints 2015-12-20 12:56:05 +01:00
Xinchen Hui 825b5901df Merge branch 'master' of git.php.net:/php-src 2015-12-19 18:53:34 -08:00
Xinchen Hui 098af9e559 typo agian :< 2015-12-19 18:40:58 -08:00
Yasuo Ohgaki 0cf7143441 Add session module test 2015-12-20 11:39:57 +09:00
Nikita Popov 0da1378a88 long -> zend_long in range inference 2015-12-20 00:06:12 +01:00
Nikita Popov 549d7d4876 Fix Pi constraint for -LONG_MIN adjustments
-LONG_MIN == LONG_MIN so bad things will happen.
Example of JIT miscompile:

    function test($n) {
	if ($n + PHP_INT_MIN == 0) {
	    $n2 = (int) ($n + PHP_INT_MAX);
	    var_dump($n2);
	}
    }
    test(PHP_INT_MAX + 1);
2015-12-20 00:06:12 +01:00
Nikita Popov c9ea8fef96 Extrace find_adjusted_tmp_var() function
This code was duplicated for op1 and op2
2015-12-20 00:06:12 +01:00
Nikita Popov fc68094497 Simplify bf/bt computation in pi placement
The meaning of the successors is well-defined, no need to check it.
2015-12-20 00:03:52 +01:00
Nikita Popov d7424a5b04 Fix typo in pi placement 2015-12-20 00:03:52 +01:00
Xinchen Hui 9591468a49 Added note to upgrading 2015-12-19 05:45:44 -08:00
Xinchen Hui f834e72c5a Merge branch 'PHP-7.0' 2015-12-18 21:55:04 -08:00
Xinchen Hui 860764114f Merge branch 'PHP-7.0' 2015-12-18 21:52:15 -08:00
Xinchen Hui 8f91b24b07 Merge branch 'PHP-7.0' 2015-12-18 21:43:08 -08:00
Andrea Faulds 5d0dfda60c Merge branch 'PHP-7.0' 2015-12-19 02:35:19 +00:00
Andrea Faulds 78155068e2 Merge branch 'PHP-7.0' 2015-12-18 19:32:20 +00:00
Nikita Popov 7cc3089d8f Clone cannot return reference 2015-12-18 17:37:13 +01:00
Nikita Popov 8ca21876e1 Fix zend_get_func_info() 2015-12-18 17:37:13 +01:00
Xinchen Hui 56b8f47491 Merge branch 'PHP-7.0'
Conflicts:
	NEWS
2015-12-19 00:30:35 +08:00
Xinchen Hui 750da15bc7 Merge branch 'PHP-7.0' 2015-12-19 00:19:34 +08:00
Xinchen Hui c555d90f4f Implemented FR #71159 (Upgraed bundled SQLite lib to 3.9.2) 2015-12-18 23:49:59 +08:00
Dmitry Stogov 8136e4572e Fixed dump format 2015-12-18 17:18:13 +03:00
Dmitry Stogov f9b5345a98 Fixed compilation 2015-12-18 16:53:31 +03:00
Xinchen Hui af871f61dc Merge branch 'PHP-7.0'
* PHP-7.0:
  Improved fix for #71127
2015-12-18 17:42:11 +08:00
Yasuo Ohgaki 283cbebe5b Improve FR #48532 implementation (Allow pg_fetch_all() to index numerically).
Made result type option be consistent with pg_fetch_row().
2015-12-18 15:50:57 +09:00
Yasuo Ohgaki 7517a62428 Fix typo in NEWS 2015-12-18 13:09:30 +09:00
Yasuo Ohgaki 5835593dfc Improve FR #31021 implementation (pg_last_notice() is needed to get all notice messages).
Now pg_last_notice() can clear stored notices.
2015-12-18 13:04:34 +09:00
Andrea Faulds 1abbdcd9a4 Merge branch 'PHP-7.0' 2015-12-17 23:36:20 +00:00
Andrea Faulds 8d355bff85 Merge branch 'PHP-7.0' 2015-12-17 22:40:55 +00:00
Nikita Popov 679fa3e03d Merge branch 'PHP-7.0' 2015-12-17 23:23:59 +01:00
Nikita Popov 4555294392 Merge branch 'PHP-7.0' 2015-12-17 22:20:40 +01:00
George Wang 21eaa5a47d Merge branch 'master' of git.php.net:php-src 2015-12-17 15:25:39 -05:00
George Wang 70addd33d0 Fixed a bug in apache_request_headers() that adds an extra \0 to header name. 2015-12-17 15:24:59 -05:00
Nikita Popov 12835edca0 Merge branch 'PHP-7.0' 2015-12-17 21:01:27 +01:00
kusano d31e8a9a85 Fix #71152: mt_rand() returns the different values from original mt19937ar.c 2015-12-18 04:14:40 +09:00
Dmitry Stogov fe1c4e033f Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed incorrect exception handling
2015-12-17 14:17:01 +03:00
Lior Kaplan 55d424b1c6 Align NEWS entry format 2015-12-17 11:44:24 +02:00
Lior Kaplan 42a862d421 Merge branch 'PHP-7.0'
* PHP-7.0:
  Align NEWS entry format
  Align news entry format: Implement FR -> Implemented FR
2015-12-17 11:41:36 +02:00
Xinchen Hui d8fc37693a Merge branch 'PHP-7.0' 2015-12-17 14:32:17 +08:00
Yasuo Ohgaki 7a01ff5e91 Fix proto and arg info 2015-12-17 09:19:05 +09:00
Yasuo Ohgaki b6935efc8e Implemented FR #48532 (Allow pg_fetch_all() to index numerically). 2015-12-17 09:15:57 +09:00
Yasuo Ohgaki 57d9da8790 Implemented FR #31021 (pg_result_notice() is needed to get all notice messages). 2015-12-17 07:31:19 +09:00
Bob Weinand 817ed01320 Merge PR #1638 (Fix naming of global section in fpm_conf_dump()) 2015-12-16 16:46:17 +01:00
Dmitry Stogov ef6514d652 Don't use deprecated API 2015-12-16 16:01:09 +03:00
Dmitry Stogov c9aed87073 Merge branch 'PHP-7.0'
* PHP-7.0:
  Removed invalid efree() (arguments are allocated on VM stack and used without copying)
2015-12-16 15:27:12 +03:00
Dmitry Stogov 74daa98974 Added simple DFA optimisation pattern (just to prove the concept) 2015-12-16 13:14:31 +03:00
Lior Kaplan 4af9d096d9 Merge branch 'PHP-7.0'
* PHP-7.0:
  Add entry for session.lazy_write
2015-12-16 11:41:09 +02:00
Dmitry Stogov f298ed493b fixed test 2015-12-16 11:33:15 +03:00
Lynn c64adc9428 Remove trailing spaces 2015-12-16 12:45:09 +08:00
Xinchen Hui 3ed5e54a19 Remove unused IS_TYPE_SYMBOLTABLE 2015-12-16 12:11:55 +08:00
Dmitry Stogov 9044f491cc Use do_alloca() instead of alloca() 2015-12-16 04:59:05 +03:00
Dmitry Stogov c78ebcad53 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fixed test
  Fixed bug #71122 Session GC may not remove obsolete session data
2015-12-16 04:58:54 +03:00
Dmitry Stogov e797871319 Fallbuck to simple dump format if CFG wasn't constructed 2015-12-16 04:57:51 +03:00
Yasuo Ohgaki 3381264a33 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71122 Session GC may not remove obsolete session data
2015-12-16 09:36:26 +09:00
Dmitry Stogov c88ffa9a56 Added e-SSA based DFA optimisation framework (incomplete) 2015-12-16 00:49:44 +03:00
Xinchen Hui 8d6d28d9c6 Merge branch 'PHP-7.0' 2015-12-14 09:23:15 -08:00
Lior Kaplan e1020280cc NEWS entry for #55651 2015-12-15 13:28:54 +02:00
Lior Kaplan 10a5749f3e Merge branch 'PHP-7.0'
* PHP-7.0:
  Implement FR #55651 (Option to ignore the returned FTP PASV address)
2015-12-15 13:26:53 +02:00
Sebastian Bergmann 29a2c64339 Fugbix typo 2015-12-15 09:16:46 +01:00
Yasuo Ohgaki 7d39cfa31b Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed Bug #71122 Session GC may not remove obsolete session data
2015-12-15 10:31:44 +09:00
Bob Weinand 6694ecdb9d Fix live_range updates on ZEND(_FE)_FREE opcodes in block_pass 2015-12-14 23:40:28 +01:00
Nikita Popov 56f1106162 Use FETCH_CLASS_EXCEPTION for instanceof
This does not collide with NO_AUTOLOAD -- missing classes will be
silenced, but invalid use of self etc will result in an exception
instead of a fatal error.
2015-12-14 17:50:20 +01:00
Nikita Popov 7078627d22 Fix leaks due to UNUSED CE fetch 2015-12-14 17:31:37 +01:00
Rasmus Lerdorf a63f33b282 Support uwsgi sapi in opcache 2015-12-14 06:11:00 -08:00
Nikita Popov 0919178963 Add result op for ASSERT_CHECK to fix SSA
Otherwise one source of the phi node at the join point will be
borked.

I'm marking the ASSERT_CHECK result as unused in pass2, which is
a bit ugly.
2015-12-14 12:31:00 +01:00
Xinchen Hui 732fe984f2 Merge branch 'master' of git.php.net:/php-src 2015-12-14 17:15:03 +08:00
Xinchen Hui e670374053 Typo 2015-12-14 17:14:41 +08:00
Anatol Belski 0ec58fa32b Merge branch 'PHP-7.0'
* PHP-7.0:
  Refactor password_hash to use random_bytes internally to generate salts
2015-12-14 09:15:36 +01:00
Xinchen Hui 9b148d31d3 Fixed bug #71100 (long2ip() doesn't accept integers in strict mode) 2015-12-14 14:55:44 +08:00
Xinchen Hui e0cafcf8a7 Merge branch 'PHP-7.0' 2015-12-14 10:54:30 +08:00
Nikita Popov e8864c39e8 Don't check non-CVs for UNDEF in BOOL(_NOT) 2015-12-14 00:32:40 +01:00
Nikita Popov d5597fa01f Merge branch 'PHP-7.0' 2015-12-14 00:29:57 +01:00
Xinchen Hui ad51c709c3 Merge branch 'PHP-7.0' 2015-12-13 05:06:22 -08:00
Xinchen Hui 4a732e97b4 Merge branch 'optimize-strtolower' of https://github.com/hnw/php-src 2015-12-12 22:57:44 -08:00
Xinchen Hui 145b68c834 Merge branch 'PHP-7.0' 2015-12-12 22:52:51 -08:00
Xinchen Hui daefe53869 Merge branch 'PHP-7.0' 2015-12-12 22:38:15 -08:00
Yoshio HANAWA fa78da9901 Optimize strtolower()/strtoupper() 2015-12-13 14:22:50 +09:00
Xinchen Hui ac693205b1 Merge branch 'PHP-7.0' 2015-12-12 18:45:39 -08:00
Nikita Popov 2589dd121e Drop superfluous assignment
And fix a branch annotation.
2015-12-12 23:21:36 +01:00
Christopher Jones 78f157f687 Merge branch 'PHP-7.0' 2015-12-13 08:22:30 +11:00
Reeze Xia bdadec4581 Merge branch 'PHP-7.0'
* PHP-7.0:
  Unused value casting should be `void`
2015-12-12 23:29:46 +08:00
Christopher Jones 6ddc45b9c1 Merge branch 'PHP-7.0' 2015-12-12 16:08:14 +11:00
Xinchen Hui 0d8f5a43d3 Merge branch 'PHP-7.0'
Conflicts:
	NEWS
2015-12-11 09:13:26 -08:00
Anatol Belski 468b897fb5 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  backported 7c981192eb from 7.0
2015-12-11 17:43:51 +01:00
Nikita Popov b343cd913b Merge branch 'PHP-7.0' 2015-12-11 16:33:47 +01:00
Nikita Popov 1b683efa0f Merge branch 'PHP-7.0' 2015-12-11 16:06:28 +01:00
Nikita Popov 591fe26d5d Remove BP_VAR_REF
The distinction between BP_VAR_REF and BP_VAR_W is no longer
revelant, since we dropped support for =& new.
2015-12-11 15:56:52 +01:00
Dmitry Stogov 1fdb63fbd9 ws fixes 2015-12-11 17:40:23 +03:00
Dmitry Stogov 21ba287c3c dos2unix 2015-12-11 17:29:42 +03:00
Dmitry Stogov f243aaf985 Added e-SSA based DFA optimisation framework (incomplete) 2015-12-11 17:24:55 +03:00
Remi Collet 5d2e287982 Merge branch 'PHP-7.0'
* PHP-7.0:
  NEWS
  NEWS
  Fix Bug #71089 No check to duplicate zend_extension
2015-12-11 13:23:36 +01:00
Xinchen Hui 18b97c94b2 Merge branch 'PHP-7.0' 2015-12-11 17:26:48 +08:00
Dmitry Stogov 061a90f8d1 Describe special meaning of IS_UNUSED oprerand 2015-12-11 02:31:28 +03:00
Dmitry Stogov dc36810993 Use more compact description encoding schema to free some bits 2015-12-11 01:45:26 +03:00
Nikita Popov fc2cedfb1d Make 2nd arg of xml_set_object by value
The argument is not being modified. Probably holdover from PHP 4
days.
2015-12-10 23:35:25 +01:00
Dmitry Stogov 047c84521c Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Make duplicate class constant error for internal class
  Make ZEND_CLONE return a TMP_VAR
2015-12-11 00:48:20 +03:00
Dmitry Stogov cba1a8498c Improve Optimizer debugging facility (print the meaning of extended_value) 2015-12-11 00:47:02 +03:00
Nikita Popov 04e3d82b55 Make duplicate class constant error for internal class
And drop two duplicate constant declarations from intl. These
were leaking previously.
2015-12-10 22:22:49 +01:00
Nikita Popov 8e5e3301a1 Make ZEND_CLONE return a TMP_VAR
As the return value can't be reference and it's unlikely to be
unused.

Also remove some unnecessary checks for ce==NULL. A ce is required
nowadays.
2015-12-10 22:16:25 +01:00
Dmitry Stogov f30381ec22 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Add missed tests for FETCH_GLOBAL_LOCK change
  Fix cleanup in bug70748.phpt
2015-12-10 21:20:30 +03:00
Dmitry Stogov 4c9e4caab4 Fixed typo 2015-12-10 21:17:24 +03:00
Nikita Popov 288cc6e192 Add missed tests for FETCH_GLOBAL_LOCK change 2015-12-10 19:17:17 +01:00
Nikita Popov 11f2a393f8 Merge branch 'PHP-7.0' 2015-12-10 19:15:21 +01:00
Nikita Popov f1278edefc Drop two compiler TODOs
Call-time pass by reference is now a parse error.
There is no benefit in dropping implementing_class currently.
2015-12-10 19:04:59 +01:00
Nikita Popov c8a64e289c Reintroduce use of FETCH_GLOBAL_LOCK
Just found this old AST todo...

It no longer makes sense as an optimization due to the introduction
of BIND_GLOBAL, however it ensures that the global variable name is
not evaluated twice, which is presumably something we wish to
guarantee.
2015-12-10 19:04:59 +01:00
Bob Weinand 7ea1cf2e57 Improved specializer:
- Allow dispatching from specialized handler to unspecialized one
2015-12-10 20:46:14 +03:00
Nikita Popov 3fa86105f7 Remove FETCH_STATIC_MEMBER flag 2015-12-10 18:25:29 +01:00
Nikita Popov 3d4a2d2002 Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_vm_def.h
	Zend/zend_vm_execute.h
2015-12-10 18:24:29 +01:00
Dmitry Stogov 6f966fad0d Improved specializer (Bob)
- All helpers now may be declatred and called without ZEND_VM_HELPER_EX() and ZEND_VM_DISPATCH_TO_HELPER_EX() macros
- ZEND_VM_HELPER() may declare few arguments
- ZEND_VM_DISPATCH_TO_HELPER() may pass few parameters
- ZEND_VM_INLINE_HELPER() may be used to declare inline helpers (it won't be inlined in SWITH/GOTO executors)
2015-12-10 17:17:59 +03:00
Xinchen Hui 412b7ace8f Merge branch 'master' of git.php.net:/php-src 2015-12-10 21:47:36 +08:00
Xinchen Hui f43baba1f9 Fixed test by disable opcache 2015-12-10 21:46:37 +08:00
Dmitry Stogov cedb518ea1 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  The first arg is optional
  Return -1 seems bug here
2015-12-10 15:34:15 +03:00
Xinchen Hui ec0ac5dafb Merge branch 'PHP-7.0' 2015-12-10 19:37:44 +08:00
Xinchen Hui c0ff9b07cf Merge branch 'PHP-7.0' 2015-12-10 17:35:55 +08:00
Dmitry Stogov 3b5c844757 Initialize bitset before processing the seconf BB (we skip the first one) 2015-12-10 11:29:53 +03:00
Anatol Belski 770ba81071 Merge branch 'PHP-7.0'
* PHP-7.0:
  set release date
2015-12-10 08:12:07 +01:00
Anatol Belski ae41a74738 Merge branch 'PHP-7.0'
* PHP-7.0:
  set release date
2015-12-10 08:10:25 +01:00
Anatol Belski 204dd7195b set release date 2015-12-10 08:09:39 +01:00
Xinchen Hui ae537994a6 Merge branch 'PHP-7.0' 2015-12-10 15:02:33 +08:00
Xinchen Hui c13fcc21c3 Merge branch 'PHP-7.0' 2015-12-10 08:58:37 +08:00
Ferenc Kovacs d8123a57f8 Merge branch 'PHP-7.0'
* PHP-7.0:
  5.6.18 will be next
2015-12-10 01:32:56 +01:00
Dmitry Stogov fd20e6cee6 Apply local optimizatons to extended bacic block (this allows some optimizarions across few following BBs). 2015-12-10 01:17:35 +03:00
Dmitry Stogov 7fd7734e58 Explain the disabled optimization pattern 2015-12-09 22:22:07 +03:00
Xinchen Hui e80791e161 Fixed test (opcache denpends) 2015-12-09 07:52:03 -08:00
Dmitry Stogov 4fd30c9565 Improve debugging of non-local variables 2015-12-09 17:21:57 +03:00
Anatol Belski d6d421b517 Merge branch 'PHP-7.0'
* PHP-7.0:
  fixed NEWS
2015-12-09 14:49:23 +01:00
Xinchen Hui 02d7001962 Merge branch 'PHP-7.0' 2015-12-09 21:09:09 +08:00
Anatol Belski 0e1395ca69 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
2015-12-09 13:39:42 +01:00
Dmitry Stogov d2597ad20b Improved optimizer dubugging facility 2015-12-09 14:52:00 +03:00
Anatol Belski 9aae3788cc Merge branch 'PHP-7.0'
* PHP-7.0:
  ext/imap/config.m4: fix conftest segfault in utf8_to_mutf7 check, bug #66909.
  ext/dba/config.m4: Autodetect Berkeley DB v5.3.
  fix path separator in test
  Bumped SAPI version to 6.9
  Added "mod_auth_basic" to apache module list.
  Add sanitizing checks for request data.
  Clear secret after use.
  Fixed __DIR__ in CLI mode.
  Add PDO_Firebird fix in NEWS
2015-12-09 12:05:18 +01:00
Anatol Belski 94b237d8ea Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2015-12-09 11:59:05 +01:00
Anatol Belski eb6613390c Merge branch 'PHP-7.0'
* PHP-7.0:
  ext/dba/config.m4: Autodetect Berkeley DB v5.3.
  Bumped SAPI version to 6.9
  Added "mod_auth_basic" to apache module list.
  Add sanitizing checks for request data.
  Clear secret after use.
  Fixed __DIR__ in CLI mode.
2015-12-09 11:38:54 +01:00
Dmitry Stogov 78fb8118ec Merge branch 'PHP-7.0'
* PHP-7.0:
  More verbose error messages
2015-12-09 13:35:31 +03:00
Dmitry Stogov d6f3d4b50c Fixed formating 2015-12-09 13:27:31 +03:00
Anatol Belski 1bd0847f16 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #70781 (Extension tests fail on dynamic ext dependency)
2015-12-09 11:09:55 +01:00
Dmitry Stogov 44c5fbbc07 Fixed other issues with empty block handling 2015-12-09 10:58:42 +03:00
George Wang 13096a8120 Bumped SAPI version to 6.9 2015-12-09 00:19:18 -05:00
George Wang 9190684a76 Added "mod_auth_basic" to apache module list. 2015-12-09 00:16:16 -05:00
George Wang 59b414e128 Merge branch 'master' of git.php.net:php-src 2015-12-09 00:11:07 -05:00
George Wang 194cd13c2b Fixed __DIR__ in CLI mode. 2015-12-09 00:09:14 -05:00
George Wang 372a839040 Add sanitizing checks for request data. 2015-12-09 00:06:49 -05:00
George Wang 292aa9d6cb Clear secret after use. 2015-12-08 23:43:29 -05:00
Xinchen Hui 245a8c3cdf end is unsigned, this was broken if start == end == 0 2015-12-09 12:18:25 +08:00
Xinchen Hui 8d7918b8bf Merge branch 'PHP-7.0' 2015-12-09 12:01:09 +08:00
Reeze Xia adf40a220b Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71053 (Type Hint about DateTime::diff does not match with informed)
2015-12-09 11:44:05 +08:00
Xinchen Hui 8b69b41a6e Merge branch 'PHP-7.0' 2015-12-09 11:38:03 +08:00
Dmitry Stogov 433f412731 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Fixed bug #71066 (mb_send_mail: Program terminated with signal SIGSEGV, Segmentation fault)
  move the entry into the correct NEWS block
  Update NEWS
  Fixed test if PATH is not set
  Fixed bug #71063 (filter_input(INPUT_ENV, ..) does not work)
2015-12-09 05:17:22 +03:00
Dmitry Stogov 404e003cf1 Delete empty live-ranges 2015-12-09 05:16:30 +03:00
Dmitry Stogov 5ee7b7d01a Don't create live-range across NOPs and some other instructions 2015-12-09 05:15:58 +03:00
Xinchen Hui eea88bb17f Merge branch 'PHP-7.0' 2015-12-08 17:47:33 -08:00
Anatol Belski d9c344b70d Merge branch 'PHP-7.0'
* PHP-7.0:
  move the entry into the correct NEWS block
2015-12-08 18:21:48 +01:00
Reeze Xia 68027e0581 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update NEWS
2015-12-09 00:43:10 +08:00
Xinchen Hui 227a7a9e26 Merge branch 'master' of git.php.net:/php-src 2015-12-08 08:27:13 -08:00
Xinchen Hui cf11abad5b Merge branch 'PHP-7.0' 2015-12-08 08:26:19 -08:00
Reeze Xia 2ff2ef37b3 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71063 (filter_input(INPUT_ENV, ..) does not work)
2015-12-09 00:11:56 +08:00
Dmitry Stogov 2cc2396f84 Fixed compilation with enabled internal debuging 2015-12-08 18:12:02 +03:00
Dmitry Stogov c1803bf652 Avoid construction of empty live-ranges because of OP_DATA instruction 2015-12-08 18:10:07 +03:00
Anatol Belski 964b40dd37 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare 7.0.1RC1
2015-12-08 16:07:07 +01:00
Bob Weinand 8bad1368e4 Merge branch 'PHP-7.0' 2015-12-08 15:23:27 +01:00
Bob Weinand d7928aae0a PHP_MD5_CTX is now always used due to fix for #71204 2015-12-08 15:22:25 +01:00
Anatol Belski 307f745230 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update random.c
2015-12-08 13:17:21 +01:00
Anatol Belski 1da7422f93 Merge branch 'PHP-7.0'
* PHP-7.0:
  Expose php_random_bytes as a first-class API within internals
2015-12-08 13:14:46 +01:00
Dmitry Stogov c58b0cb4ce Removed useless checks 2015-12-08 12:47:05 +03:00
Dmitry Stogov 8f9c23cf93 Added NEWS entry 2015-12-08 12:44:51 +03:00
Dmitry Stogov a75c195000 Implemented the RFC Support Class Constant Visibility.
Squashed commit of the following:

commit f11ca0e7a57793fa0e3e7f6d451720e6c42bb0b9
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Dec 8 12:38:42 2015 +0300

    Fixed test expectation

commit 211f873f542504d0a0f72b6b5cb23908a1c99a2d
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Tue Dec 8 12:28:38 2015 +0300

    Embed zend_class_constant.flags into zend_class_constants.value.u2.access_flags

commit 51deab84b2cdbf9cdb1a838cf33b2ee45c61748b
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Mon Dec 7 11:18:55 2015 +0300

    Fixed issues found by Nikita

commit 544dbd5b47e40d38a8ccb96bc5583e9cb7fdd723
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Sat Dec 5 02:41:05 2015 +0300

    Refactored immplementation of https://wiki.php.net/rfc/class_const_visibility
    @reeze created an RFC here and I emailed internals here and didn't get any responses positive/negative.
2015-12-08 12:40:42 +03:00
Xinchen Hui a8b7d0c29d Merge branch 'PHP-7.0' 2015-12-08 10:54:01 +08:00
Anatol Belski 4aec8bcfa9 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Fixed bug #71024 Unable to use PHP 7.0 x64 side-by-side with PHP 5.6 x32 on the same server
2015-12-07 22:55:24 +01:00
Xinchen Hui fd46184ab0 Merge branch 'PHP-7.0' 2015-12-07 07:43:31 -08:00
Dmitry Stogov 3d8fdd5d6e Fixed potential memory leaks 2015-12-07 18:25:25 +03:00
Xinchen Hui 007262207e Merge branch 'PHP-7.0' 2015-12-07 14:48:32 +08:00
Xinchen Hui 86dea69789 Merge branch 'typo/paramer' of https://github.com/marcioAlmada/php-src 2015-12-07 14:48:10 +08:00
Márcio Almada 2dcfd8d16f fix typos "paramer" -> "parameters" 2015-12-07 01:59:53 -04:00
Xinchen Hui 8e14632b2c Merge branch 'PHP-7.0' 2015-12-07 10:58:36 +08:00
Bob Weinand 5ac8a2cc20 Merge branch 'PHP-7.0' 2015-12-06 14:08:17 +01:00
Anatol Belski 974f6c2a70 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS with fixed bug #70831
2015-12-06 12:42:25 +01:00
Anatol Belski a2cca52aef Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix #70831: Compile fails on system with 160 CPUs
2015-12-06 12:38:32 +01:00
Joe Watkins ee704bff78 Merge branch 'master' of https://github.com/php/php-src 2015-12-06 10:04:59 +00:00
Joe Watkins 003c91bd9b standard tsrm usage for seven 2015-12-06 10:04:35 +00:00
Bob Weinand 6e664f60c3 Merge branch 'PHP-7.0' 2015-12-06 02:55:55 +01:00
Nikita Popov 26ed778973 Merge branch 'PHP-7.0' 2015-12-05 22:48:50 +01:00
Sebastian Bergmann d2f6b86c48 Fugbix typo 2015-12-05 08:25:43 +01:00
Xinchen Hui cc2147dfaa Merge branch 'PHP-7.0' 2015-12-04 06:51:26 -08:00
Xinchen Hui ee864f8030 Merge branch 'PHP-7.0' 2015-12-04 06:45:37 -08:00
Xinchen Hui d92c75f923 Merge branch 'PHP-7.0' 2015-12-04 11:53:48 +08:00
Lior Kaplan 7a1ddbc267 Sort items alphabetically 2015-12-03 18:01:22 +02:00
Lior Kaplan ca4de6c398 Align NEWS entries format 2015-12-03 17:58:59 +02:00
Popa Adrian Marius 75de51f262 Add PDO_Firebird fix in NEWS 2015-12-03 17:30:35 +02:00
Popa Adrian Marius 9dc6de528d Merge branch 'PHP-7.0'
* PHP-7.0:
  Use LL_MASK for SQL_INT64 data formatting
2015-12-03 17:13:59 +02:00
Popa Adrian Marius aa90774e89 Merge branch 'master' of https://git.php.net/push/php-src
* 'master' of https://git.php.net/push/php-src:
  NEWS for 8907da99b8
  Fixed bug #71006 (symbol referencing errors on Sparc/Solaris)
  remove PHP 5 NEWS entries
  remove PHP 5 NEWS entries
2015-12-03 16:16:04 +02:00
Popa Adrian Marius c548d6b7a2 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix Bug #60052	Integer returned as a 64bit integer on X64_86 for pdo_firebird
2015-12-03 16:15:37 +02:00
Andrea Faulds 9012a78fa1 Merge branch 'PHP-7.0' 2015-12-03 12:16:54 +00:00
Dmitry Stogov 0d51ebd1a5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #71006 (symbol referencing errors on Sparc/Solaris)
2015-12-03 13:40:53 +03:00
Anatol Belski fed71a2093 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove PHP 5 NEWS entries
2015-12-03 10:56:37 +01:00
Anatol Belski 272b2e0e1d Merge branch 'master' of git.php.net:php-src 2015-12-03 10:54:51 +01:00
Anatol Belski a8cd5f6fc1 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove PHP 5 NEWS entries
2015-12-03 10:54:35 +01:00
Anatol Belski 3f818b1bd6 remove PHP 5 NEWS entries 2015-12-03 10:52:04 +01:00
Lior Kaplan 4dc996f74d Merge branch 'PHP-7.0'
* PHP-7.0:
  SIZEOF_SIZE_T doesn't exist on AIX, keep using SIZEOF_LONG
2015-12-02 19:34:13 +02:00
Andrey Hristov 139af35c25 Add a method for checking if the underlying stream is valid. 2015-12-01 12:52:36 +01:00
Anatol Belski 671be5b864 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove older UPGRADING entry, bug #38409 is already fixed in 5.6
2015-12-01 11:35:00 +01:00
Adam Harvey 612b9dc12e Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #71005 (Segfault in php_cli_server_dispatch_router()).
2015-12-01 03:10:04 +00:00
Xinchen Hui badce8c49a Merge branch 'PHP-7.0' 2015-12-01 10:35:48 +08:00
Anatol Belski 24dd215c9a Merge branch 'PHP-7.0'
* PHP-7.0:
  arrange NEWS for final and fix one NEWS mistake
2015-12-01 02:05:20 +01:00
Dmitry Stogov 868c3775c6 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70997 (When using parentClass:: instead of parent::, static context changed)
2015-11-30 16:54:37 +03:00
Xinchen Hui c78a782a2f Merge branch 'PHP-7.0' 2015-11-30 10:50:34 +08:00
Jakub Zelenka 4dc7354c28 Merge branch 'PHP-7.0' 2015-11-29 19:31:04 +00:00
Xinchen Hui 681d2c946e Merge branch 'PHP-7.0' 2015-11-28 23:48:20 -08:00
Xinchen Hui 5c707a6cf8 Merge branch 'PHP-7.0' 2015-11-28 23:44:06 -08:00
Xinchen Hui cb5af748b1 Merge branch 'PHP-7.0' 2015-11-27 19:12:37 -08:00
Xinchen Hui 229351cca2 Merge branch 'master' of git.php.net:/php-src 2015-11-27 07:31:53 -08:00
Xinchen Hui f9a56e00f6 Merge branch 'PHP-7.0' 2015-11-27 07:31:19 -08:00
Andrea Faulds d120006bfd Merge branch 'PHP-7.0' 2015-11-27 15:20:25 +00:00
Xinchen Hui 3aa2182db6 Merge branch 'PHP-7.0' 2015-11-27 15:53:19 +08:00
Xinchen Hui d3e6a9ce39 Merge branch 'PHP-7.0' 2015-11-27 11:42:39 +08:00
Xinchen Hui 541b11b5f6 Merge branch 'PHP-7.0' 2015-11-27 11:33:05 +08:00
Nikita Popov 95283a0504 Merge branch 'PHP-7.0' 2015-11-26 16:57:11 +01:00
Dmitry Stogov 2e6cf2710a Fixed compilation warning 2015-11-26 11:27:24 +03:00
Xinchen Hui f9dd83cbe3 Merge branch 'PHP-7.0' 2015-11-26 12:00:37 +08:00
Bob Weinand 39b616ac23 Merge branch 'PHP-7.0' 2015-11-25 23:10:06 +01:00
Christopher Jones eaa94390b3 Merge branch 'PHP-7.0' 2015-11-26 06:53:54 +11:00
Xinchen Hui fe3c5f9bd2 Merge branch 'PHP-7.0' 2015-11-25 08:04:59 -08:00
Xinchen Hui dcfc623079 Merge branch 'PHP-7.0' 2015-11-25 08:00:50 -08:00
Xinchen Hui 07a05836de Merge branch 'PHP-7.0' 2015-11-25 20:20:51 +08:00
Xinchen Hui a80c820bf6 Merge branch 'PHP-7.0' 2015-11-25 19:15:41 +08:00
Xinchen Hui 554e4206ab Merge branch 'master' of git.php.net:/php-src 2015-11-25 19:12:04 +08:00
Xinchen Hui 06bcaf98c5 Merge branch 'PHP-7.0' 2015-11-25 19:11:40 +08:00
Bob Weinand 0a512931c9 Merge branch 'PHP-7.0' 2015-11-25 09:55:59 +01:00
Anatol Belski 025417cf40 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix NEWS
2015-11-25 05:04:29 +01:00
Xinchen Hui c1afaf65e3 Merge branch 'master' of git.php.net:/php-src 2015-11-25 11:41:26 +08:00
Xinchen Hui c6b08e99fe Merge branch 'PHP-7.0' 2015-11-25 11:41:01 +08:00
Anatol Belski 283e9ea21b Merge branch 'PHP-7.0'
* PHP-7.0:
  rearrange NEWS for RC8
2015-11-25 03:40:55 +01:00
Christopher Jones 850ef17c5d Merge branch 'PHP-7.0' 2015-11-25 12:44:10 +11:00
Bob Weinand be9e30000d Merge branch 'PHP-7.0' 2015-11-24 23:44:17 +01:00
Bob Weinand 8e4a77ae73 Merge branch 'PHP-7.0' 2015-11-24 21:39:30 +01:00
Andrey Hristov 85e4fcf647 Give the possibility of the client to pass a factory 2015-11-24 10:23:44 +01:00
Xinchen Hui 7e7c2c062f Merge branch 'PHP-7.0' 2015-11-24 13:46:04 +08:00
Xinchen Hui 8d4fc591ef Merge branch 'PHP-7.0' 2015-11-24 11:48:14 +08:00
Xinchen Hui 59933934be Merge branch 'PHP-7.0' 2015-11-24 11:08:53 +08:00
Xinchen Hui 19adcf8cb9 Merge branch 'PHP-7.0' 2015-11-24 11:06:18 +08:00
Xinchen Hui 26a526fb4a Merge branch 'PHP-7.0' 2015-11-24 11:05:13 +08:00
Lior Kaplan c1b374554c Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #61751 (SAPI build problem on AIX: Undefined symbol: php_register_internal_extensions)
2015-11-23 19:02:41 +02:00
Bob Weinand 9bbdb86ed7 Merge branch 'PHP-7.0' 2015-11-23 17:46:39 +01:00
Xinchen Hui 34bff5b91c Merge branch 'PHP-7.0' 2015-11-23 23:16:11 +08:00
Xinchen Hui 26f3710ae8 Merge branch 'PHP-7.0' 2015-11-23 06:22:11 -08:00
Xinchen Hui 8c22edc546 Merge branch 'PHP-7.0' 2015-11-23 06:12:46 -08:00
Xinchen Hui 2ae9a6fca6 Merge branch 'master' of git.php.net:/php-src 2015-11-23 18:49:25 +08:00
Xinchen Hui 6dbf8d142f Merge branch 'PHP-7.0' 2015-11-23 18:48:59 +08:00
Andrey Hristov 6b0d026c76 Remove unused variable 2015-11-23 11:36:25 +01:00
Xinchen Hui 42252f409b Merge branch 'PHP-7.0' 2015-11-23 18:33:21 +08:00
Xinchen Hui f49078fd76 Merge branch 'master' of git.php.net:/php-src 2015-11-23 12:41:15 +08:00
Xinchen Hui 3bd231c0a0 Merge branch 'PHP-7.0' 2015-11-23 12:40:54 +08:00
Côme Bernigaud 56b584491b Merge branch 'php-7.0'
* php-7.0:
  Revert "Added back support for undocummented host:port syntax"
  Revert "Using default port in ldap_connect when NULL is passed (this was the behavior prior to 5.6.11)"
2015-11-23 03:15:46 +01:00
Côme Bernigaud ab39f981f8 Revert "Added back support for undocummented host:port syntax"
This reverts commit 15876e85e5.
2015-11-23 03:08:25 +01:00
Côme Bernigaud a9bfdcb82c Revert "Using default port in ldap_connect when NULL is passed (this was the behavior prior to 5.6.11)"
This reverts commit 391087ed28.
2015-11-23 03:08:02 +01:00
Xinchen Hui 58168b48e2 Fixed tests (new opcache will optimize serias echo IS_CONST into one) 2015-11-22 06:49:28 -08:00
Xinchen Hui 3178242cda Merge branch 'PHP-7.0' 2015-11-21 20:58:34 -08:00
Xinchen Hui 7bfc4fca60 cleanup 2015-11-21 07:14:12 -08:00
Xinchen Hui fb7564d457 Merge branch 'PHP-7.0' 2015-11-21 06:11:02 -08:00
Xinchen Hui 1e9fcb49ac conflicts variable name 2015-11-20 19:03:18 -08:00
Dmitry Stogov 4d49736155 cleanup 2015-11-21 01:19:45 +03:00
Dmitry Stogov 02fad0414b Fixed wrong BB.flags initialization 2015-11-20 23:32:27 +03:00
Dmitry Stogov b3393baa5d Refactored CFG based optimization using new CFG representation.
Squashed commit of the following:

commit 907533390678f58eac738040ef62a40788048bef
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 21:25:28 2015 +0300

    cleanup

commit 82f7e6f5bb434f12e9fdf45f597be351527f383c
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 21:22:01 2015 +0300

    Update build system

commit 8fd83d843fde3f486692de4e2c6b7d64d4192704
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 20:50:32 2015 +0300

    Reachable blocks can't be empty

commit 5822a36269833930a35cb3547222357118b11310
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 19:11:02 2015 +0300

    added missing constraints

commit 2d0c00b243479924de0260ae8d80d624c36994a3
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 19:03:12 2015 +0300

    optimization

commit 29d1e5eb210c51b052cac4d6c232aaa2c724dbbb
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 18:34:11 2015 +0300

    Added missing optimization patterns

commit 38dd3b3f2459f5193c742633213f41d78326ea28
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 17:47:06 2015 +0300

    zend_optimize_block() refactoring

commit 3dc97bd1f6d433dff0617338382347b6d0c08f84
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 14:30:32 2015 +0300

    We don't use CFG back-references anymore

commit 2242c9e0aa741d287146ad43179650796f199f2d
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 14:16:03 2015 +0300

    Consistent naming

commit 64f2856716069390ed7703ac88905cebf5e04023
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 13:29:32 2015 +0300

    Optimization and separate building of direct CFG from predecessrs calculation

commit 9389be4869b13ec45df5dbd443015d2ac539a347
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 10:44:19 2015 +0300

    Use CFG without back references (incomplete, but works)

commit 3d3ecd4b883959cf7b86c33622183295f913924e
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 20 00:50:09 2015 +0300

    Fixed iteration in reverse order

commit 52f7fde0c3dfa4b4591519828ebdb238c2377936
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Nov 19 18:35:09 2015 +0300

    Separate debugging code into zend_dump.c

commit 4193a039ea96bae41baf97c6e458f419e8dbf9c5
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Nov 19 17:22:04 2015 +0300

    Remove unused code

commit 4228fdc57d8d120e1dad4e4d44045fa1a6f06fe0
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Nov 19 17:21:20 2015 +0300

    Remove dead live-ranges only on assembling basic blocks

commit 9a4a7966edf19b92678876f85565700694205598
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Nov 19 15:26:29 2015 +0300

    New CFG representation (incomplete)
2015-11-20 22:06:36 +03:00
Xinchen Hui 4e94fa09e6 Merge branch 'PHP-7.0' 2015-11-20 06:57:14 -08:00
Xinchen Hui cc98663fcd Merge branch 'PHP-7.0' 2015-11-20 06:37:54 -08:00
Xinchen Hui 61d5ac2d7e Merge branch 'PHP-7.0' 2015-11-20 16:38:36 +08:00
Xinchen Hui 1065feba7d Merge branch 'PHP-7.0'
Conflicts:
	ext/gd/gd_compat.c
2015-11-20 15:37:43 +08:00
Xinchen Hui 8a50a96f46 Merge branch 'PHP-7.0' 2015-11-20 15:22:59 +08:00
Christopher Jones 8b920e0639 Merge branch 'master' of https://git.php.net/repository/php-src 2015-11-20 09:19:20 +11:00
Christopher Jones 22d79c8d14 Merge branch 'PHP-7.0' 2015-11-20 09:16:33 +11:00
George Wang 5bcb7a7019 Fixed runtime php.ini override, ini name length is off by 1. 2015-11-19 17:01:26 -05:00
Dmitry Stogov d6308afce9 Proper optmisation of "goto" into the middle of "try" block. 2015-11-19 11:19:06 +03:00
Remi Collet 9d7baed840 Merge branch 'PHP-7.0'
* PHP-7.0:
  NEWS
  Fixed bug #70940 Segfault in soep / type_to_string
2015-11-19 08:19:23 +01:00
Dmitry Stogov 84610b1f39 Don't keep wrong jump target in last CATCH. 2015-11-19 00:47:08 +03:00
Dmitry Stogov df63ec564e minor fixes 2015-11-18 23:03:20 +03:00
Andrea Faulds 366ba41334 Add void return type 2015-11-18 17:30:49 +00:00
Dmitry Stogov 104a597113 Eliminate unreachable live ranges 2015-11-18 18:04:02 +03:00
Dmitry Stogov 66b953e022 Eliminate unreachable catch blocks 2015-11-18 15:34:28 +03:00
Dmitry Stogov af47326b38 Extended Debug info with live-ranges and excepton-table. 2015-11-18 13:14:57 +03:00
Andrey Hristov e59814ff34 Fix the macro in case of no statistics 2015-11-18 10:49:37 +01:00
Andrey Hristov b7b4364269 Fix wrong macro name 2015-11-18 10:35:10 +01:00
Andrey Hristov ee396aa566 Revert "Fixed compilation on 32-bit Linux"
This reverts commit 11c9729a9c.
2015-11-18 10:13:34 +01:00
Dmitry Stogov a6cc322b4d Added internal debug log for block pass. 2015-11-18 02:47:39 +03:00
Dmitry Stogov 030fab6233 Two step optimization for JMPZNZ L,L; L: JMPZ L+1; L: JMPNZ L+1. 2015-11-18 02:45:58 +03:00
Bob Weinand be4cce5234 Merge branch 'PHP-7.0' 2015-11-17 21:08:09 +01:00
Dmitry Stogov 854e8ebb4f Move JMPZNZ L,L; L: JMPZ L+1; L: JMPNZ L+1 optimization patterns from zend_jmp_optimization() into zend_optimize_block() because the value of Tsource in zend_jmp_optimization() is inconsistent.
Fixed compilation warnings.
2015-11-17 21:07:01 +03:00
Andrey Hristov d477557094 Revert "Add some const-ness to the protocol frame codec"
This reverts commit f8c2b45948.
2015-11-17 17:55:32 +01:00
Andrey Hristov 057ad5626b Don't use the specific translated name but use the macro for this 2015-11-17 17:48:27 +01:00
Dmitry Stogov 6cb3d90f0f Skip first basic block (we skiped it before) 2015-11-17 19:02:39 +03:00
Dmitry Stogov e603769cee Fixed signed/unsigned mismatch 2015-11-17 19:02:17 +03:00
Dmitry Stogov 11c9729a9c Fixed compilation on 32-bit Linux 2015-11-17 19:01:50 +03:00
Andrey Hristov a6b79f08b3 More const and moved the declaration of php_mysqlnd_scramble() to mysqlnd_auth.h 2015-11-17 14:59:59 +01:00
Andrey Hristov 4ee4a4bb52 constify parameters 2015-11-17 14:49:18 +01:00
Andrey Hristov 43bfbd86d9 Rename from previous acronym (ppec became pfc) 2015-11-17 14:40:03 +01:00
Andrey Hristov fae994fed9 Bring consistency to the class by renaming the methods too (from the
old temporary name)
2015-11-17 13:28:47 +01:00
Andrey Hristov f8c2b45948 Add some const-ness to the protocol frame codec 2015-11-17 13:17:17 +01:00
Xinchen Hui 03d5fdc1b8 Merge branch 'PHP-7.0' 2015-11-17 20:14:22 +08:00
Andrey Hristov 33e97d465d mysqlnd refactoring:
- move MYSQLND_READ_BUFFER to own file
2015-11-17 12:32:01 +01:00
Dmitry Stogov 7de190898d cleanup 2015-11-17 11:24:16 +03:00
Dmitry Stogov 8112e34210 cleanup 2015-11-17 09:59:49 +03:00
Dmitry Stogov 843c165735 Don't undo/redo "pass two" for jump targets in opcache optimizer. 2015-11-17 07:15:35 +03:00
Andrey Hristov e4173bd15c mysqlnd refactoring:
- reorganize the statistics code a bit. There is one mysqlnd specific function,
  for convenience, in mysqlnd_statistics.c - namelyu _mysqlnd_get_client_stats().
  The mysqlnd specific stats macros are moved to mysqlnd.h to keep
  mysqlnd_statistics.h from being mysqlnd specific.
2015-11-16 16:23:39 +01:00
Andrey Hristov 4fed8a28d0 mysqlnd refactoring :
- move the command buffer out of the networking code to the protocol frame
  codec.
2015-11-16 15:37:11 +01:00
Andrey Hristov 24cb185cb3 Merge branch 'PHP-7.0' 2015-11-16 13:03:12 +01:00
Andrey Hristov 398caf9336 - Remove dead macrom mysql_list_fields()
- Small optimizations here and there
2015-11-16 11:55:46 +01:00
Xinchen Hui f5be26e04b Unused var 2015-11-16 18:22:56 +08:00
Xinchen Hui 7d80ab2e12 Addtional fixes of #70918 2015-11-16 18:19:22 +08:00
Xinchen Hui ae196280bb Revert pushed by mistake
Revert "Revert "Remove assumption that extensions are in ext/ext-name""

This reverts commit 7e47bf1e65.
2015-11-16 18:04:29 +08:00
Xinchen Hui 5bdc5f4e2b Merge branch 'PHP-7.0' 2015-11-16 17:59:54 +08:00
Xinchen Hui 48325aba87 Merge branch 'master' of git.php.net:/php-src 2015-11-16 17:02:55 +08:00
Christopher Jones 1a1349b336 Merge branch 'PHP-7.0' 2015-11-16 08:16:07 +11:00
Jakub Zelenka 88f71d921e Merge branch 'PHP-7.0' 2015-11-15 19:16:01 +00:00
Anatol Belski 4130118d0c Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70917 install-pear-nozlib.phar missing
  Update mime type generator script to keep track of additional mime-types
  Added support for CSS/JavaScript source maps
2015-11-15 19:02:21 +01:00
Reeze Xia 8222b971cd Update mime type generator script to keep track of additional mime-types 2015-11-15 11:08:14 +08:00
Xinchen Hui 4bf3c1481f Merge branch 'master' of git.php.net:/php-src 2015-11-14 18:42:23 -08:00
Xinchen Hui 06fe956460 Fixed Bug #70918 (Segfault using static outside of class scope) 2015-11-14 18:41:55 -08:00
Anatol Belski 8dc903d8d0 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test title
2015-11-15 00:04:19 +01:00
Anatol Belski 7901bee575 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Fixed bug #70914 zend_throw_or_error() format string vulnerability
2015-11-14 23:49:59 +01:00
Nikita Popov e02aea5590 Remove no longer applicable optimization
PHP 7 generates CVs inside silenced blocks.
2015-11-14 11:23:31 +01:00
Xinchen Hui 90027dd7f6 Merge branch 'master' of https://github.com/thorsten/php-src 2015-11-14 01:56:46 -08:00
Xinchen Hui cae84ec224 Merge branch 'substr-useless-check' of https://github.com/tpunt/php-src 2015-11-14 01:44:43 -08:00
Xinchen Hui 7a29ed9f51 Merge branch 'patch-1' of https://github.com/glensc/php-src 2015-11-14 01:43:38 -08:00
Xinchen Hui 5b7865c9b2 Merge branch 'PHP-7.0' 2015-11-14 01:14:56 -08:00
Xinchen Hui 1e2ddfcd10 Merge branch 'PHP-7.0' 2015-11-13 19:40:20 -08:00
Gordon Oheim 0dc8a8cac0 Fix naming
The global section is named "General", but the correct section name is "global". It is "global" in #1313 and also "global" in https://github.com/php/php-src/blob/master/sapi/fpm/php-fpm.conf.in. The commit fixes the naming. However, the proposed change might break any tooling that relies on finding "General" in the output though.
2015-11-13 15:01:10 +01:00
Xinchen Hui 36d25a287b Merge branch 'PHP-7.0' 2015-11-13 21:25:06 +08:00
Dmitry Stogov 3a5fa926bf Squashed commit of the following:
commit afe963e6cc289696e60c6c679796ba2197c52b3b
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 13 15:32:29 2015 +0300

    Added news entry

commit a126b891c97848dd7ef8f1abf716328c46e0f19c
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Fri Nov 13 15:29:21 2015 +0300

    VERIFY_RETURN_TYPE doesn't have to cleanup operand on exception, bacause now, live temporary variables are released by exception unwinder.

commit 0db475e98786e6bcaa8401ee3e0b33743b9a2f2b
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Thu Nov 12 22:55:39 2015 +0300

    Fixed copy/paste

commit 0ac73fe7174bec9de9a610319a98b259bea67f7f
Author: Dmitry Stogov <dmitry@zend.com>
Date:   Wed Nov 11 16:11:50 2015 +0300

    Fixed bug #62210 (Exceptions can leak temporary variables)
2015-11-13 15:35:07 +03:00
Yasuo Ohgaki cbe906226a Merge branch 'PHP-7.0'
* PHP-7.0:
  Use distinguishable error messages.
2015-11-13 21:27:13 +09:00
Xinchen Hui 7e47bf1e65 Revert "Remove assumption that extensions are in ext/ext-name"
This reverts commit 82b73fd1e3.

Conflicts:

	build/genif.sh
	build/order_by_dep.awk
2015-11-13 14:27:59 +08:00
Xinchen Hui 6d83a8c2a7 Merge branch 'PHP-7.0' 2015-11-13 14:00:16 +08:00
Dmitry Stogov 485408b20d Fixed compilation errors 2015-11-13 00:46:13 +03:00
Dmitry Stogov 16fcd9dcbd Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70900 (SoapClient systematic out of memory error)
2015-11-12 20:37:23 +03:00
Andrey Hristov 067380d7c6 MNDR:
- constify some parameters to MYSQLND_RES functions
2015-11-12 16:19:16 +01:00
Andrey Hristov 0a7e08d385 MNDR:
- cleanup in mysqlnd_result.c
- switch from zend_ulong to size_t for lengths. Accordingly change
  mysqli and pdo_mysql for this.
2015-11-12 16:19:16 +01:00
Andrey Hristov abc8c00072 MNDR:
- rename mysqlnd.c to mysqlnd_connection.c
2015-11-12 16:19:16 +01:00
Andrey Hristov c24d452f60 MNDR:
- less dereferencing in mysqlnd_ps . Dereference stmt->conn only once and
  use a stack variable. Also make the source cleaner.
2015-11-12 16:19:16 +01:00
Andrey Hristov 94ce013bff MNDR:
- remove unused macros
2015-11-12 16:19:16 +01:00
Andrey Hristov 2e3fc57c5c MNDR:
- move things out of mysqlnd_priv.h
2015-11-12 16:19:16 +01:00
Andrey Hristov e8ace2d4db MNDR:
- remove inclusion of uneeded headers
2015-11-12 16:19:16 +01:00
Andrey Hristov 4248240648 MNDR:
- move the command factory to own file - mysqlnd_commands.c
2015-11-12 16:19:16 +01:00
Andrey Hristov 3f0a542d04 MNDR:
- route the option to the right handler
2015-11-12 16:19:16 +01:00
Andrey Hristov 2cea04165c MNDR:
- move all data members from MYSQLND_PFC to MYSQLND_PFC_DATA
2015-11-12 16:19:16 +01:00
Andrey Hristov c286d7075d MNDR:
- move from char* + len to MYSQLND_STRING
- add some more const modifiers
2015-11-12 16:19:16 +01:00
Andrey Hristov a530ecff97 MNDR:
- better name for MYSQLND_PPEC - MYSQLND_PFC (protocol frame codec)
2015-11-12 16:19:16 +01:00
Andrey Hristov 654d1a7caf MNDR:
- rename MYSQLND_NET to MYSQLND_PPEC (protocol packet envelope codec).
  PPEC does only the encoding and decoding to the protocol frame.
2015-11-12 16:19:16 +01:00
Andrey Hristov 80d59a3a36 MNDR:
- intermediate step to move MYSQLND_NET from mysqlnd_vio.c to mysqlnd_wireprotocol.c
  In following commits MYSQLND_NET's methods and data will be moved to MYSQLND_PROTOCOL
2015-11-12 16:19:16 +01:00
Andrey Hristov 05c5e051be MNDR:
- moved networking code to mysqlnd_vio.c
2015-11-12 16:19:16 +01:00
Andrey Hristov e9f3139f43 MNDR:
- split MYSQLND_NET into MYSQLND_NET and MYSQLND_VIO
  MYSQLND_NET is above MYSQLND_VIO. _NET takes care of protocol packet
  counting (even with compressed), while VIO is just about the network
  (or in case of windows, non-network, but PIPE) transport.
2015-11-12 16:19:16 +01:00
Andrey Hristov a990573752 MNDR:
- some small renaming of methods
2015-11-12 16:19:16 +01:00
Andrey Hristov 0d3329fc93 MNDR:
- send_command and send_command_handle_response_* moved to a structure
2015-11-12 16:19:16 +01:00
Andrey Hristov e81ecc80ca MNDR:
- Move transport string generation to own function, which can be overloaded or sniffed
2015-11-12 16:19:16 +01:00
Andrey Hristov 51085dac1a MNDR:
- remove double decrement
2015-11-12 16:19:16 +01:00
Andrey Hristov b8b1d45c3c MNDR:
- move connection establishment code to own command - COM_HANDSHAKE
2015-11-12 16:19:16 +01:00
Andrey Hristov e6419ab401 MNDR:
- convert the API of MYSQLND_NET to MYSQLND_STRING
2015-11-12 16:19:16 +01:00
Andrey Hristov baab519ae5 MNDR:
- decouple the commands from the connection. CONN ist passed now only in 1 case
2015-11-12 16:19:16 +01:00
Andrey Hristov 5abee1948e MNDR:
- remove dead code
2015-11-12 16:19:16 +01:00
Andrey Hristov 71e703761f MNDR:
- clean up some things
2015-11-12 16:19:16 +01:00
Andrey Hristov e30e884e53 MNDR:
- move COM_INIT_DE result handling to the command
2015-11-12 16:19:16 +01:00
Andrey Hristov fefc3045a3 MNDR:
- remove COM_FIELD_LIST
2015-11-12 16:19:16 +01:00
Andrey Hristov 75a1fcc724 MNDR:
- move handling of commands to the command itself
2015-11-12 16:19:16 +01:00
Andrey Hristov 7e6f9a84cb MNDR:
- split handle_response() into handle_OK and handle_EOF
2015-11-12 16:19:16 +01:00
Andrey Hristov aa4966d4e3 MNDR:
- now send_command_handle_response() also doesn't depend directly on
  MYSQLND_CONN_DATA
2015-11-12 16:19:16 +01:00
Andrey Hristov f7a445856d MNDR:
- pass connection closer and its context
- remove unused parameter
2015-11-12 16:19:16 +01:00
Andrey Hristov 280c834c49 MNDR:
- rename the macro for updating the connection state
2015-11-12 16:19:16 +01:00
Andrey Hristov 109dc08ffd MNDR:
- make the connection state a class
2015-11-12 16:19:16 +01:00
Andrey Hristov 78cb5456da MNDR:
- simplify the macroses for the types
2015-11-12 16:19:16 +01:00
Andrey Hristov e9bccffe29 MNDR:
- switch to macro generation of structure names for the methods
2015-11-12 16:19:16 +01:00
Andrey Hristov 3eee292669 MNDR:
- Remove the SET_STMT_ERROR macro
2015-11-12 16:19:16 +01:00
Andrey Hristov 4bb784cd0d MNDR:
- make MYSQLND_ERROR_INFO a class
2015-11-12 16:19:16 +01:00
Andrey Hristov fb1b5abe31 MNDR:
- switch to MYSQLND_CLASS_METHOD_TABLE_NAME_DECL() for automatic naming
  of class methods
2015-11-12 16:19:16 +01:00
Andrey Hristov 5609eabc6f MDNR:
- make MYSQLND_UPSERT_STATUS more like an object that a simple structure
  Still use macros to make updates simple
2015-11-12 16:19:16 +01:00
Andrey Hristov 092afe7212 MNDR:
- abstract SSL enabling into COM_ENABLE_SSL
2015-11-12 16:19:16 +01:00
Andrey Hristov 10d4fb8a94 MDNR:
- Refactor the command factory. Let the factory be exchangeable.
2015-11-12 16:19:16 +01:00
Andrey Hristov e24dc94f32 MDNR:
- remove dead code
2015-11-12 16:19:16 +01:00
Andrey Hristov 7d7ff67b82 MDNR:
- send_command() is no more, thus we need commands for all COM_STMT_*
  + CHANGE_USER
2015-11-12 16:19:16 +01:00
Andrey Hristov f6ec3df895 MNDR:
- Switch for directly executing a command over the wire to creating a
  command object which is then executed.
2015-11-12 16:19:16 +01:00
Andrey Hristov 2a44cee4d5 MNDR:
- Remove unused variable
2015-11-12 16:19:16 +01:00
Andrey Hristov c33d3b6e5b MDNR:
- remove dead code
2015-11-12 16:19:16 +01:00
Andrey Hristov ab961ca347 MNDR:
- remove export of functions and have things exported thru an interface
  with default implementation
2015-11-12 16:19:16 +01:00
Andrey Hristov 784a371829 MNDR:
- Inject the object factory
2015-11-12 16:19:16 +01:00
Andrey Hristov f16686faa7 MNDR:
- don't use the static function name but the hook
2015-11-12 16:19:16 +01:00
Andrey Hristov 19443351ed MNDR:
- remove static function and make it a method. The function doesn't need to
  be in mysqlnd_ps.c as it doesn't use any resources anymore from it (it used
  in the past)
2015-11-12 16:19:16 +01:00
Andrey Hristov 3f7a7837cd MDNR:
- cleanup after PHP7 changes (removal of TSRMLS_**)
2015-11-12 16:19:16 +01:00
Andrey Hristov cfd868651a MDNR:
- removed init() method from mysqlnd_conn_data and moved the initialization
  to the object factory->get_connection(). Now it is unified as with the prepared
  statement which doesn't have any init() method
- the protocol decoder factory now takes connection as parameter at creation and
  thus there is no need to pass the connection as parameter when calling the read
  or the write method of a packet.
- saved the protocol payload decoder factory as pointer in every packet (read/write)
  so the connection doesn't need to be passed on every call of read/write (dependency
  has been already injected at creation). This will alow to move protocol specific
  code from MYSQLND_NET (send_ex()) to make MYSQLND_NET leaner and free from protocol
  stuff.
2015-11-12 16:19:16 +01:00
Andrey Hristov 75dc67c6ae MNDR:
- move macro to a function
2015-11-12 16:19:16 +01:00
Andrey Hristov 2ea4891e75 MNDR:
- rename mysqlnd_init to mysqlnd_connection_init
- rename mysqlnd_connect to mysqlnd_connection_connect
- created macros for BC
2015-11-12 16:19:16 +01:00
Andrey Hristov 34a33928d6 MNDR:
- Rename MYSQLND_PROTOCOL to MYSQLND_PROTOCOL_PAYLOAD_DECODER_FACTORY
- Rename other symbols related to MYSQLND_PROTOCOL accordingly
2015-11-12 16:19:16 +01:00
Andrey Hristov 4c83582c74 MNDR
- enum_mysqlnd_protocol_type -> enum_mysqlnd_session_protocol_type
2015-11-12 16:19:16 +01:00
Andrey Hristov 3091a01799 MNDR
- mysqlnd_option -> mysqlnd_client_option
2015-11-12 16:19:16 +01:00
Andrey Hristov 6051a47776 MNDR
- Rename simple_command* to send_command
2015-11-12 16:19:16 +01:00
Andrey Hristov 0f38d479e1 MNDR :
- Rename MYSQLND_OPTIONS to MYSQLND_SESSION_OPTIONS
- Rename MYSQLND_NET_OPTIONS to MYSQLND_IO_OPTIONS
2015-11-12 16:19:16 +01:00
Dmitry Stogov 998204ef2d Separate common part of compile_file() and compile_string() into zend_compile() 2015-11-12 16:59:44 +03:00
Anatol Belski fd598ed2c2 Merge branch 'PHP-7.0'
* PHP-7.0:
  fixed typo
2015-11-12 13:38:43 +01:00
Dmitry Stogov 7cae94d751 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  add test for bug #70898
  Also protects this one
  Update NEWS
  Re-fixed #70895
  Revert "Fixed bug Bug #70895 null ptr deref and segfault"
  Revert "refix bug #70895"
  Revert "Fixed bug #70898 (SIGBUS/GPF zend_mm_alloc_small (zend_alloc.c:1291))"
  Fixed bug #70898 (SIGBUS/GPF zend_mm_alloc_small (zend_alloc.c:1291))
  Using default port in ldap_connect when NULL is passed (this was the behavior prior to 5.6.11)
  update NEWS
  refix bug #70895
  Fixed bug Bug #70895 null ptr deref and segfault
2015-11-12 13:52:52 +03:00
Anatol Belski 9b0775dfbd Merge branch 'PHP-7.0'
* PHP-7.0:
  add test for bug #70898
2015-11-12 09:47:43 +01:00
Xinchen Hui aaa4d38a7c Merge branch 'PHP-7.0' 2015-11-12 14:51:39 +08:00
Xinchen Hui f07c869593 Merge branch 'PHP-7.0'
Conflicts:
	NEWS
2015-11-12 14:39:20 +08:00
Xinchen Hui 29674a2e27 Merge branch 'PHP-7.0' 2015-11-12 14:20:24 +08:00
Xinchen Hui 1e06bf9c2c Merge branch 'PHP-7.0' 2015-11-12 14:19:11 +08:00
Anatol Belski a4e16cd823 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  refix bug #70895
  Fixed bug Bug #70895 null ptr deref and segfault
2015-11-12 01:43:38 +01:00
Dmitry Stogov 63c4414940 Initialize ctx->optimization_level 2015-11-12 02:46:41 +03:00
Dmitry Stogov 09aa68b294 Break dependency between opcache and optimizer. Remove copatibility macros. 2015-11-12 02:02:24 +03:00
Thomas Punt c37890062d Remove useless check in substr()
This check (if the start position is greater than the string length) is already performed on line 2399
2015-11-11 22:13:57 +00:00
Anatol Belski d1077f7a89 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix format macro names in UPGRADING.INTERNALS
2015-11-11 16:35:07 +01:00
Ferenc Kovacs e88e3f218d Merge branch 'PHP-7.0'
* PHP-7.0:
  Ensure the test fails
2015-11-11 14:59:54 +01:00
Xinchen Hui 9567726978 Merge branch 'PHP-7.0' 2015-11-11 19:51:57 +08:00
Anatol Belski 0b89c29288 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS, patch for #70249 pulled into RC7
  adjust test expectation
  fix test filename and title
2015-11-11 12:21:51 +01:00
Ferenc Kovacs 3977f1fa7d Merge branch 'PHP-7.0'
* PHP-7.0:
  propare for 5.6.16RC1
2015-11-11 09:22:10 +01:00
Dmitry Stogov 948b7f5421 Changed ZEND_FREE.op2.num and ZEND_FE_FREE.op2.num back to use live_range_offset (try_catch_offset does't work) 2015-11-11 11:12:44 +03:00
Thorsten Rinne a0d62f08ae Added support for CSS/JavaScript source maps
Source maps (http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/) are basically a way to map a combined/minified file back to an unbuilt state. To avoid error messages in Browser DevTools, source map files should be served with the MIME type "application/json"
2015-11-11 08:34:36 +01:00
Xinchen Hui cd6dda1679 Merge branch 'PHP-7.0' 2015-11-11 12:33:13 +08:00
Xinchen Hui 607e17e269 Merge branch 'PHP-7.0' 2015-11-11 11:35:09 +08:00
Elan Ruusamäe 694570ab54 Update php_ini.c
trivial typo fix
2015-11-11 00:06:06 +02:00
Dmitry Stogov baf97b1fcc We don't nees zend_op_array->brk_cont_array at run-time anymore.
Move zend_op_array->brk_cont_array into CG(context).brk_cont_array.
Use more compact zend_op_array->live_range instead of zend_op_array->brk_cont_array.
Semantic is kept unchanged.
2015-11-10 21:48:03 +03:00
Dmitry Stogov 71092b7c2b Make FE_FETCH and following assignments to be a part of a loop. 2015-11-10 20:11:05 +03:00
Dmitry Stogov 86a96f2cf1 Changed meaning of "op2" for ZEND_FREE, ZEND_FE_FREE, ZEND_FAST_CALL, ZEND_FAST_RET.
Previously it was an instruction number.
Now it's an index in op_array->try_cacth_array[].
2015-11-10 19:13:54 +03:00
Bob Weinand 9cfed119ff Merge branch 'PHP-7.0' 2015-11-10 09:29:35 +01:00
Matteo Beccati 0ed6e25e52 Merge branch 'PHP-7.0'
* PHP-7.0:
  Split shmop/tests/002.phpt in two (all + non-root)
  Fix bug #70886 in shmop/tests/002.phpt
2015-11-10 09:10:15 +01:00
Xinchen Hui 2d750a7233 Merge branch 'PHP-7.0' 2015-11-10 16:01:14 +08:00
Dmitry Stogov 6fe457f323 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed incorrect order of free/finally on exception
2015-11-10 10:11:46 +03:00
Andrea Faulds 7bc6361294 Merge branch 'PHP-7.0' 2015-11-09 23:42:12 +00:00
Anatol Belski ba91c1f51c Merge branch 'PHP-7.0'
* PHP-7.0:
  additional catch to bug #70863
2015-11-10 00:40:49 +01:00
Anatol Belski 119b2fbfbe Merge branch 'PHP-7.0'
* PHP-7.0:
  add test for eb32da13
2015-11-09 22:49:52 +01:00
Dmitry Stogov 67990fc0a4 Merge branch 'PHP-7.0'
* PHP-7.0:
  Added tests
2015-11-09 23:54:58 +03:00
Anatol Belski f054907144 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare news for next
2015-11-09 19:40:33 +01:00
Jakub Zelenka a6bd699264 Merge branch 'PHP-7.0' 2015-11-09 18:25:07 +00:00
Xinchen Hui b31d2f34fb Merge branch 'PHP-7.0' 2015-11-09 17:15:05 +08:00
Xinchen Hui 0f516b9d97 Merge branch 'PHP-7.0' 2015-11-09 12:22:01 +08:00
Xinchen Hui 4ce4a46951 Merge branch 'PHP-7.0' 2015-11-09 12:02:43 +08:00
Xinchen Hui 4f8c98f98d Merge branch 'PHP-7.0' 2015-11-09 11:58:51 +08:00
Xinchen Hui f31e6bc96a Merge branch '70842-streams-segfault' of https://github.com/cchamplin/php-src 2015-11-09 11:57:32 +08:00
Xinchen Hui 7345dde792 Merge branch 'PHP-7.0' 2015-11-07 23:06:47 -08:00
Xinchen Hui 67bcbf864b Merge branch 'PHP-7.0' 2015-11-07 23:03:39 -08:00
Xinchen Hui 67e88df9d4 Merge branch 'patch-3' of https://github.com/staabm/php-src 2015-11-07 23:02:19 -08:00
Xinchen Hui acd36a00de Merge branch 'PHP-7.0' 2015-11-07 23:01:29 -08:00
Xinchen Hui 948bb4d224 Merge branch 'c9n-patch-1' of https://github.com/c9n/php-src 2015-11-07 23:01:09 -08:00
Xinchen Hui f1808325bb Merge branch 'PHP-7.0' 2015-11-07 22:59:05 -08:00
Xinchen Hui d5113bfa96 Merge branch 'patch-1' of https://github.com/asgrim/php-src 2015-11-07 22:58:30 -08:00
Nikita Popov 83b1679b6f Merge branch 'PHP-7.0'
Conflicts:
	ext/opcache/Optimizer/zend_optimizer.c
2015-11-07 17:50:39 +01:00
Xinchen Hui aff639faec Merge branch 'PHP-7.0' 2015-11-07 07:43:29 -08:00
Xinchen Hui f18f71740f Merge branch 'PHP-7.0' 2015-11-07 07:30:42 -08:00
Xinchen Hui f76e57f1f3 Merge branch 'PHP-7.0' 2015-11-07 06:50:43 -08:00
Reeze Xia 568c81809a Merge branch 'PHP-7.0'
* PHP-7.0:
  C99 complain fix
  Update NEWS
  Fixed bug #70876 Segmentation fault when regenerating session id with strict mode
2015-11-07 22:17:10 +08:00
Nikita Popov 603c172269 Merge branch 'PHP-7.0'
Conflicts:
	ext/opcache/Optimizer/zend_optimizer.c
2015-11-07 12:09:20 +01:00
Matteo Beccati 050c5e8940 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #70875 Segmentation fault if wsdl has no targetNamespace attribute
  Always remember NEWS....
  Fix compile warnings about comparison of unsigned expression always being true
  Bump OCI8 version
  Fix bug 68298 (PHP OCI8 OCI int overflow) (Senthil)
2015-11-07 11:06:10 +01:00
Anatol Belski 655e266440 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  fix decrement_function regarding bug #70863
  Fixed bug #70863 Incorect logic to increment_function for proxy objects
  no more dev ZEND_VERSION
  Add support for IPV6_V6ONLY on sockets

Conflicts:
	Zend/zend.h
2015-11-06 23:10:40 +01:00
Christopher Jones 69613a7ac3 Merge branch 'PHP-7.0' 2015-11-07 02:25:18 +11:00
Xinchen Hui 48364afecb Merge branch 'PHP-7.0'
Conflicts:
	NEWS
2015-11-06 11:38:59 +08:00
Anatol Belski 0b9ed8d1a0 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2015-11-05 22:51:43 +01:00
Anatol Belski 6b8c9c5945 Merge branch 'PHP-7.0'
* PHP-7.0:
  use Z* macro name
2015-11-05 22:44:38 +01:00
Anatol Belski 622529c34e Merge branch 'PHP-7.0'
* PHP-7.0:
  fix NULL deref in mbstring post handler
  fix NULL deref in pdo_firebird
2015-11-05 22:25:56 +01:00
Anatol Belski 1bd3cc298b Merge branch 'PHP-7.0'
* PHP-7.0:
  fix pdo_sqlite crash with empty bound stream
  fix leak
2015-11-05 22:06:59 +01:00
Anatol Belski 31c9f8b748 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix pdo_mysql crash with empty bound stream param
2015-11-05 21:34:12 +01:00
Anatol Belski e240df1420 Merge branch 'PHP-7.0'
* PHP-7.0:
  add test for bug #70861
  Fix setting of empty string resource.
  fix possible NULL deref in image functions
2015-11-05 19:51:18 +01:00
Anatol Belski ac711075ac Merge branch 'PHP-7.0'
* PHP-7.0:
  fix crash in sqlite when executing with bound stream param
2015-11-05 18:10:14 +01:00
Anatol Belski d756da8e72 Merge branch 'PHP-7.0'
* PHP-7.0:
  re-update NEWS
  update the actual sql parser file for #70861
  Fix bug #70861 Segmentation fault in pdo_parse_params() during Drupal 8 test suite
  don't get invalid chmod mode through
  zero cwd buffer before passing to chmod
2015-11-05 14:49:25 +01:00
Reeze Xia f2d39b5738 Merge branch 'PHP-7.0'
* PHP-7.0:
  Make test for bug #70852 to cover all cases
  Fixed bug #70852 Segfault getting NULL offset of an ArrayObject.
2015-11-05 14:30:20 +08:00
Xinchen Hui d598e1bc6c Merge branch 'PHP-7.0' 2015-11-04 06:44:48 -08:00
Xinchen Hui 5385478844 Merge branch 'PHP-7.0' 2015-11-04 19:01:31 +08:00
Xinchen Hui a4a767e6da Merge branch 'PHP-7.0'
Conflicts:
	Zend/zend_vm_execute.h
2015-11-03 17:56:05 -08:00
Caleb Champlin f2ad7e73bd Make sure context is set to null to prevent use after free 2015-11-02 21:58:04 +00:00
Xinchen Hui a79a504b6d Merge branch 'PHP-7.0' 2015-11-02 16:43:52 +08:00
Xinchen Hui 957d6c1b4b Merge branch 'PHP-7.0' 2015-11-02 10:59:11 +08:00
Xinchen Hui ea23d28a69 Merge branch 'PHP-7.0' 2015-11-02 10:55:33 +08:00
Markus Staab 8e83ea6e5d fixed another comment typo 2015-10-28 09:03:16 +01:00
Lynn a4d5accf7d rm duplicate include 2015-10-28 11:21:15 +08:00
Anatol Belski 524a468d5f Merge branch 'PHP-7.0'
* PHP-7.0:
  sync NEWS
  7.0.1 is next
2015-10-27 20:20:58 +01:00
Markus Staab 08c97ea0a1 fixed typo 2015-10-27 17:29:28 +01:00
Markus Staab b83782e682 fixed another comment typo 2015-10-27 17:27:57 +01:00
Markus Staab 058a7ab55c fixed typo in comment
introduced in eb32da13cd
2015-10-27 17:26:36 +01:00
Anatol Belski 24bae1614f Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix frequent reallocations with many small strings
  correct snprintf usage
2015-10-27 17:08:51 +01:00
James Titcumb 2863f46d68 Fixed typo in reflection phpt 2015-10-27 13:18:50 +00:00
Andrey Hristov c484bf9439 Merge branch 'PHP-7.0' 2015-10-27 13:33:05 +01:00
Xinchen Hui 9c1d0946f4 It should not be const 2015-10-27 10:08:27 +08:00
Xinchen Hui 69beb29e15 Fixed Bug #70797 (Error while making PHP7)
error: ‘for’ loop initial declarations are only allowed in C99 mode
2015-10-27 10:06:22 +08:00
Xinchen Hui 1af0118ff8 Merge branch 'PHP-7.0' 2015-10-26 17:29:22 -07:00
Xinchen Hui 0771b46099 Merge branch 'PHP-7.0' 2015-10-26 17:11:16 -07:00
Leigh 54ff923ff5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Use arc4random on OpenBSD 5.5+ and NetBSD 7+
2015-10-30 19:11:09 +00:00
Dmitry Stogov 3e89c883bb Changed ZEND_CLONE->extended_value meaning to relative offset (previously it was absolute opline number) 2015-10-30 14:53:53 +03:00
Reeze Xia 880965b95e Merge branch 'PHP-7.0'
* PHP-7.0:
  This couldn't be false as it has been checked before
  Use h parameter to avoid duplicate ht access of `array_combine()`
2015-10-30 19:52:03 +08:00
Dmitry Stogov 9ccb432cab Argument type renaming (ADDR->JMP_ADDR, OPLINE->JMP_ABS, REL_OPLINE->JMP_REL) 2015-10-30 07:18:44 +03:00
Dmitry Stogov 5c65fc29ad Fixed few issues:
- Added ZEND_VM_LAST_OPCODE macro
- Use better names LINE->OPLINE, REL_LINE->REL_OPLINE, FCALL->FAST_CALL, FRET->FAST_RET
- Added ISSET flag to extended value of ZEND_ISSET_ISEMPTY_VAR opcode
2015-10-30 07:18:44 +03:00
Dmitry Stogov d83600a2d5 Added zend_get_opcode_flags() function to get information about opcode operands and extended_value meaning 2015-10-30 07:18:44 +03:00
Dmitry Stogov 648347536a Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed incomplete initialization.
2015-10-30 07:16:31 +03:00
Jakub Zelenka 24ab2bb694 Merge branch 'PHP-7.0' 2015-10-29 19:15:57 +00:00
Dmitry Stogov cb85f570c8 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed memory leak in php_stream_context_set_option()
2015-10-29 20:07:37 +03:00
Xinchen Hui f596c8a3e1 Merge branch 'PHP-7.0' 2015-10-29 15:02:00 +08:00
Xinchen Hui 494bf962a6 Merge branch 'PHP-7.0' 2015-10-29 14:35:07 +08:00
Dmitry Stogov 4d702c21d0 Merge branch 'PHP-7.0'
* PHP-7.0:
  Don't remap .text segment if huge pages are not available.
2015-10-29 08:45:22 +03:00
Dmitry Stogov da8e6ec4a5 Fixed incorrect instruction cleanup 2015-10-28 23:10:33 +03:00
Dmitry Stogov 3b44e40277 fixed incorrect bitmask 2015-10-28 21:26:52 +03:00
Dmitry Stogov b009f84ec0 Removed incorrect "return" statement 2015-10-28 21:26:52 +03:00
Dmitry Stogov eb7be5379d Speed up fetching of class entries for self:: parent:: and static::
This is generalized solution for Bob's idea of speed up self::method() calls without ZEND_FETCH_CLASS.

At first, it adds few new opcodes to separate class related behaviour:
	FETCH_STATIC_PROP_R
	FETCH_STATIC_PROP_W
	FETCH_STATIC_PROP_RW
	FETCH_STATIC_PROP_FUNC_ARG
	FETCH_STATIC_PROP_UNSET
	FETCH_STATIC_PROP_IS
	UNSET_STATIC_PROP
	ISSET_ISEMPTY_STATIC_PROP
	FETCH_CLASS_CONSTANT

At seconds, it enables IS_UNUSED operand to fetch (self, parent or static without separate FETCH_CLASS) for new opcodes and the following ones:
	INIT_STATIC_METHOD_CALL
	NEW
	END_INSTANCEOF

Finaly, opcache optimizer had to be fixed to support new opcodes.
2015-10-28 21:26:52 +03:00
Andrey Hristov ff0ec06562 Merge branch 'PHP-7.0' 2015-10-28 12:56:26 +01:00
Dmitry Stogov e58682a2c4 Fixed incorrect type usage 2015-10-28 10:26:47 +03:00
Leigh a685c53d34 Merge branch 'PHP-7.0'
* PHP-7.0:
  Remove arc4random
2015-10-26 20:58:10 +00:00
Anatol Belski 34fe8de8f7 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  Fixed bug #70718 stream_select() when OpenSSL extension is loaded on PHP Win64
  unbreak coverage data: fix #line directives in phpdbg parser
  exclude datelib from coverage report as asked by Derick
2015-10-26 15:57:46 +01:00
Dmitry Stogov 4e161531f4 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed inconsistent exception handling (uopz/tests/006.phpt was failed when PHP build with --disable-gcc-global-regs).
2015-10-26 16:03:35 +03:00
Xinchen Hui 2373e49872 Merge branch 'PHP-7.0' 2015-10-26 11:15:53 +08:00
Jakub Zelenka 187c21979a Merge branch 'PHP-7.0' 2015-10-25 17:57:15 +00:00
Bob Weinand fa4e1f9f38 Merge branch 'PHP-7.0' 2015-10-25 18:48:18 +01:00
Nuno Lopes b5206970fb unbreak coverage data: fix #line directives in phpdbg parser 2015-10-24 17:45:31 -04:00
Nuno Lopes 3bbdfc62d2 exclude datelib from coverage report as asked by Derick 2015-10-24 17:36:23 -04:00
Nikita Popov 36cd300693 Merge branch 'PHP-7.0' 2015-10-24 23:19:36 +02:00
Anatol Belski 5790725bc4 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix globals initialization in sapi/cgi
2015-10-23 13:59:41 +02:00
Anatol Belski 17eff65001 Merge branch 'PHP-7.0'
* PHP-7.0:
  rather use the supplied inttypes.h with vc14
  fix test redirection when run not from source root
2015-10-23 10:16:51 +02:00
Xinchen Hui 334deefa29 Merge branch 'fix-folding-marker' of https://github.com/ngsw/php-src 2015-10-23 11:28:22 +08:00
Xinchen Hui 40648d7fc8 Merge branch 'PHP-7.0' 2015-10-23 11:19:37 +08:00
Xinchen Hui 01558e4c88 Indents 2015-10-23 11:18:30 +08:00
Xinchen Hui 7854fb81ef Merge branch 'c9s/bugfix-boolean-conversion-warnings' of https://github.com/c9s/php-src 2015-10-23 10:13:16 +08:00
c9s fdb1da9bed Fix boolean conversion warnings
Summary:

The compiler complains and raised some warnings about boolean
conversion:

    warning: address of 'ce->constants_table' will always evaluate to
    'true' [-Wpointer-bool-conversion]

Since the address of 'HashTable' will always evaluate to true. the
condition should be removed. The scope is kept for local variables.

Platform:

    OS X 10.11

Compiler:

    Apple LLVM version 7.0.0 (clang-700.0.72)
    Target: x86_64-apple-darwin15.0.0
    Thread model: posix
2015-10-22 23:56:30 +08:00
ngsw 90d1e9d178 Fix: fold-maker `fpm_event_pre_init()' 2015-10-22 23:21:46 +09:00
Xinchen Hui 49c7fe4bdd This break the phpize API_NO detecting 2015-10-22 20:26:37 +08:00
Andrey Hristov 9f19635295 Merge branch 'PHP-7.0' 2015-10-22 12:20:20 +02:00
Kalle Sommer Nielsen 76a6f28fd8 Zend Engine 3.1.0-dev for master 2015-10-22 04:01:59 +02:00
Kalle Sommer Nielsen b26593628f Fix build on Windows 2015-10-22 03:47:46 +02:00
Andrey Hristov 53895bdf49 Merge branch 'PHP-7.0' 2015-10-21 16:15:45 +02:00
Bob Weinand 387b7c7905 Merge branch 'PHP-7.0' 2015-10-20 21:56:20 +02:00
Anatol Belski f13120e737 Merge branch 'PHP-7.0'
* PHP-7.0:
  backport 262160e and 2d55e8c into 5.6
2015-10-20 20:07:36 +02:00
Xinchen Hui 67b74b4f52 Merge branch 'PHP-7.0' 2015-10-20 08:14:08 -07:00
Xinchen Hui 1146f4e848 Merge branch 'PHP-7.0' 2015-10-20 16:59:03 +08:00
Xinchen Hui e7ae998a42 Merge branch 'PHP-7.0' 2015-10-20 13:27:34 +08:00
Ferenc Kovacs 5832cba065 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove imap tests for now until I finish the sudoless dovecot config
2015-10-19 23:58:40 +02:00
Ferenc Kovacs 6e28639ea0 Merge branch 'PHP-7.0'
* PHP-7.0:
  remove imap tests for now until I finish the sudoless dovecot config
2015-10-19 23:43:38 +02:00
Ferenc Kovacs 1eb8e74834 Merge branch 'PHP-7.0'
* PHP-7.0:
  fixup, both catched by nikic
  use another character device in this test as /dev/console seems that it is different for lxc containers
  the de_DE(iso-8859-1) locale is not available on ubuntu by default, but there is no reason to require that over the utf-8 one
  let's try running our testsuite without sudo
2015-10-19 23:07:58 +02:00
Kalle Sommer Nielsen 1986d52cd4 Remove the VALLEN macro, this is not used anyway and wouldn't work as it was assuming zval** 2015-10-19 17:07:31 +02:00
Kalle Sommer Nielsen 85678fc3bd Fix build in exif debug mode, p_name is a char*, not a zval** 2015-10-19 17:03:08 +02:00
Kalle Sommer Nielsen 76a612c663 Merge branch 'master' of git.php.net:/php-src 2015-10-19 16:56:23 +02:00
Kalle Sommer Nielsen b6cbc06d19 Fix php_stream_get_from_zval(), so that it works under PHP7
# We don't use zval** anymore, nor do any extension in PECL or core
# currently use this macro, but third party could. See PR#1562 on Github
2015-10-19 16:55:37 +02:00
Levi Morrison 43a4336820 Refactor zend_mark_function_as_generator 2015-10-19 06:57:21 -07:00
Stanislav Malyshev 620daef1e2 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix bug #64172
  Fix bug #64172
  Bug #70561: Fix DirectoryIterator to throw OutOfBoundsException
2015-10-18 17:20:17 -07:00
Stanislav Malyshev acb38ac636 Eliminate _PP macro
Not sure if this code ever used (probably not as it doesn't even compile now)
but just in case...
2015-10-18 16:37:03 -07:00
Stanislav Malyshev c2d2d097d1 Merge branch 'pull-request/1574'
* pull-request/1574:
  Update random.c
2015-10-18 16:26:50 -07:00
Stanislav Malyshev 118d7b6c6d Merge branch 'PHP-7.0'
* PHP-7.0:
  Skip some tests for platforms different than x86
  Skip serialize test if ext/session is not loaded
2015-10-18 15:46:02 -07:00
Stanislav Malyshev 0a575fe711 Closure binding and trait binding to anonymous class tests. 2015-10-18 15:39:34 -07:00
Stanislav Malyshev 397f869678 Fix extension version 2015-10-18 15:12:11 -07:00
Stanislav Malyshev e7f7164e87 Merge branch 'pull-request/1511'
* pull-request/1511:
  Changed from testing cast-128 to cast-256
2015-10-18 15:05:09 -07:00
Stanislav Malyshev 9da2de901f Merge branch 'pull-request/1527'
* pull-request/1527:
  adding test scenario to improve coverage
  adding test scenario to improve coverage
2015-10-18 15:02:48 -07:00
Stanislav Malyshev fc4aa9cee7 Merge branch 'pull-request/1563'
* pull-request/1563:
  Drop support for EOL'd PHP versions from run-tests
2015-10-18 15:01:15 -07:00
Stanislav Malyshev 8635abd6a5 Merge branch 'pull-request/1523'
* pull-request/1523:
  List PHP extension api version nos in zend_extensions.h
2015-10-18 14:57:10 -07:00
Stanislav Malyshev 7bdbb0e68b Merge branch 'pull-request/1516'
* pull-request/1516:
  Remove wrong argument $session from SNMP::setSecurity()
  Fix SNMP::setSecurity() arginfo (Fixes bug #70476)
2015-10-18 14:56:06 -07:00
Stanislav Malyshev 3956872a7f Merge branch 'PHP-7.0'
* PHP-7.0:
  Remove wrong argument $session from SNMP::setSecurity()
  Fix SNMP::setSecurity() arginfo (Fixes bug #70476)
2015-10-18 14:52:34 -07:00
Stanislav Malyshev abaf1d58d0 Merge branch 'pull-request/1507'
* pull-request/1507:
  Include config.h instead of php_config.h in gd_compat.c to have the configure variable available in outside-of-the-tree module build
2015-10-18 14:39:45 -07:00
Felipe Pena b2466061d5 Merge branch 'PHP-7.0' 2015-10-18 12:10:03 -02:00
Anatol Belski dbfd99cdf2 Merge branch 'PHP-7.0'
* PHP-7.0:
  updated NEWS
  update NEWS
2015-10-18 11:36:23 +02:00
Anatol Belski 04761c626a Merge branch 'PHP-7.0'
* PHP-7.0:
  C89 compat
  use spprintf instead (no need to estrdup afterwards).
  dblib's dbcolname can return null in some cases
  testcase fot bug #69757
  Segmentation fault on pdo_dblib::nextRowset (bug #69757)
2015-10-18 11:31:19 +02:00
Aaron Piotrowski 8ee61cea77 Merge branch 'PHP-7.0' 2015-10-18 02:24:05 -05:00
Aaron Piotrowski c76b64dea4 Merge branch 'PHP-7.0' 2015-10-18 01:52:17 -05:00
Aaron Piotrowski 34fe4c0fd3 Merge branch 'PHP-7.0' 2015-10-17 14:31:04 -05:00
Xinchen Hui c70d650b5c Merge branch 'PHP-7.0' 2015-10-17 05:29:32 -07:00
Xinchen Hui ae5a987258 Merge branch 'PHP-7.0' 2015-10-17 01:53:11 -07:00
Stanislav Malyshev af68b3ad5f Fix undefined symbol error when compiling with LLVM
Basically, LLVM in default mode treats inline in a way incompatible
with GCC in c89 mode, which leads to undefined symbol errors.
See more here: http://stackoverflow.com/questions/12844729/linking-error-for-inline-functions
2015-10-16 17:23:18 -07:00
Ferenc Kovacs 40038d7c5c update NEWS and UPGRADING 2015-10-16 19:01:22 +02:00
Ferenc Kovacs bdd658ee10 Merge branch 'pr-1567'
* pr-1567:
  initialize *str
  calling getenv() without arguments should return the environment variables as an array
2015-10-16 18:22:02 +02:00
Nikita Popov 468dc091d2 Merge branch 'PHP-7.0' 2015-10-16 17:45:55 +02:00
Anatol Belski 1b72ddf0d0 sync config.w32 with sha3 implementation 2015-10-16 12:18:35 +02:00
Sara Golemon e800da9920 Add missing NEWS entry, copyright notice, and vim settings
Should have gone with d244b54c67
2015-10-16 00:19:00 -07:00
Sara Golemon d244b54c67 Implement SHA3 hashing algorithm 2015-10-15 20:36:49 -07:00
Nikita Popov fdb14346dc Merge branch 'PHP-7.0' 2015-10-15 22:14:55 +02:00
Xinchen Hui 2b6345b48d Merge branch 'PHP-7.0' 2015-10-15 18:47:13 +08:00
Sara Golemon efce28ef1c Merge branch 'PHP-7.0'
* PHP-7.0:
  Scan through a range of ports in case 31338 is busy
2015-10-14 22:45:21 -07:00
Xinchen Hui 8e72b204d5 Merge branch 'PHP-7.0' 2015-10-15 10:19:55 +08:00
Ferenc Kovacs 2951ed33e7 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare for 5.6.15RC1
2015-10-15 00:55:52 +02:00
Scott f77cb7055d Update random.c
Ref: https://github.com/jedisct1/libsodium/commit/beb826f6fd173cff4473c8b7614033dbd4803500
2015-10-14 15:16:59 -04:00
Bob Weinand 844638918e Merge branch 'PHP-7.0' 2015-10-14 12:10:07 +02:00
Xinchen Hui 81e2d94290 Merge branch 'PHP-7.0' 2015-10-14 10:31:57 +08:00
Xinchen Hui 927ce6f7d2 Merge branch 'PHP-7.0' 2015-10-14 10:27:59 +08:00
Xinchen Hui caedb7c5dc Merge branch 'move-reflection-tests' of https://github.com/Sobak/php-src 2015-10-14 10:27:37 +08:00
Xinchen Hui 07d2d7fa53 Merge branch 'PHP-7.0' 2015-10-14 10:20:13 +08:00
Bob Weinand bcf6012cf4 Merge branch 'PHP-7.0' 2015-10-13 15:51:42 +02:00
Dmitry Stogov 2741090bfa Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed incorrect "peak" memory consumption calculation.
2015-10-13 15:21:26 +03:00
Anatol Belski dcced66739 Merge branch 'PHP-7.0'
* PHP-7.0:
  update UPGRADING
2015-10-13 11:49:13 +02:00
Xinchen Hui a3c2c802ba Merge branch 'PHP-7.0' 2015-10-13 17:41:18 +08:00
Bob Weinand c717d14a8e Merge branch 'PHP-7.0' 2015-10-13 11:30:14 +02:00
Anatol Belski d8f47bd177 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare NEWS for next
  update libs_versions.txt
2015-10-13 10:35:33 +02:00
Ferenc Kovacs 54670c8f05 initialize *str 2015-10-12 21:36:21 +02:00
Ferenc Kovacs d221821cee calling getenv() without arguments should return the environment variables as an array 2015-10-12 21:27:07 +02:00
Nikita Popov 2f06c0b2ea Merge branch 'PHP-7.0' 2015-10-12 20:37:55 +02:00
Anatol Belski 655e16ee95 Merge branch 'PHP-7.0'
* PHP-7.0:
  increase API versions
2015-10-12 20:26:34 +02:00
Felipe Pena ffebd5dbf6 - Fixed missing line-break 2015-10-12 09:54:03 -03:00
Felipe Pena 3831124ef0 Merge branch 'master' of git.php.net:php-src 2015-10-12 09:07:49 -03:00
Felipe Pena cf092b1b16 - Revert change, no check is needed there 2015-10-12 09:07:28 -03:00
Anatol Belski f031b3353a Merge branch 'PHP-7.0'
* PHP-7.0:
  fork test for ICU 56.1
  fork test for ICU-56.1
  fix test for ICU-56.1
2015-10-12 11:29:07 +02:00
Matteo Beccati 46a747090f Merge branch 'PHP-5.6'
* PHP-5.6:
  fix test
2015-10-12 09:47:09 +02:00
Sobak 31f2dbc327 Drop support for EOL'd PHP versions from run-tests 2015-10-12 07:00:30 +02:00
Xinchen Hui 2dd32fe489 Merge branch 'PHP-7.0' 2015-10-12 10:44:45 +08:00
Felipe Pena 8d12ff7513 - Fixed bug #70678 (PHP7 returns true when false is expected) 2015-10-11 12:08:34 -03:00
Felipe Pena acbecd7b31 - Fixed regression when calling func_get_args() from global scope 2015-10-11 10:30:44 -03:00
Sobak 68750d04c7 Move ext/reflection tests into the proper directory 2015-10-11 08:41:21 +02:00
Anatol Belski 9f27624641 fix ftok() export 2015-10-10 19:15:02 +02:00
Anatol Belski 49fe59e6d0 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix stack overflow
2015-10-10 18:39:47 +02:00
Anatol Belski 9d3f6f4319 update UPGRADING 2015-10-10 18:20:56 +02:00
Anatol Belski be3794831d replace typedef by an appropriate include 2015-10-10 17:31:40 +02:00
Anatol Belski c3dd6058df rename header 2015-10-10 17:31:33 +02:00
Anatol Belski f588c29f9a fix macro name 2015-10-10 17:31:26 +02:00
Anatol Belski 2dc0ce2fcd enable ftok implementation 2015-10-10 17:31:19 +02:00
Anatol Belski 5def56e23f initial ftok() implementation for win32 2015-10-10 17:31:12 +02:00
Anatol Belski 5b58d85186 fix stack overflow 2015-10-10 17:31:05 +02:00
Bob Weinand abeb29a274 Merge branch 'PHP-7.0' 2015-10-10 17:26:12 +02:00
Nikita Popov 91eb79d71a Merge branch 'PHP-7.0' 2015-10-10 15:00:58 +02:00
Nikita Popov 9c67a5c79d Merge branch 'PHP-7.0' 2015-10-10 13:57:52 +02:00
Anatol Belski f313d438b4 Merge branch 'PHP-7.0'
* PHP-7.0:
  Implemented file_cache_fallback mechanism
2015-10-09 23:49:09 +02:00
Nikita Popov 1547d245a3 Merge branch 'PHP-7.0' 2015-10-09 23:30:34 +02:00
Nikita Popov c7b9a07ea2 Merge branch 'PHP-7.0' 2015-10-09 23:07:10 +02:00
Anatol Belski ac750e091e Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
  update NEWS
  fix coverage report for datelib
2015-10-09 12:37:00 +02:00
Dmitry Stogov 046e056e89 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70630 (Closure::call/bind() crash with ReflectionFunction->getClosure())
2015-10-09 11:49:00 +03:00
Dmitry Stogov 5a793a68b0 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed reference cuntmting for closures (previously we didn't increment reference counter for "internal" closures)
2015-10-09 02:40:11 +03:00
Dmitry Stogov 2a796a0881 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed infinity recurion if we create closure on top of other closure.
2015-10-09 02:38:47 +03:00
Dmitry Stogov 6fd4eeb90c Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed use after free
2015-10-09 01:09:36 +03:00
Dmitry Stogov d3d7c5a52e Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70674 (ReflectionFunction::getClosure() leaks memory when used for internal functions)
2015-10-09 00:45:45 +03:00
Dmitry Stogov 6571038093 Merge branch 'PHP-7.0'
* PHP-7.0:
  Correct intdiv() argument names and description
2015-10-09 00:42:26 +03:00
Dmitry Stogov ff4f3094e7 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70668 (array_keys() doesn't respect references when $strict is true)
2015-10-08 14:59:55 +03:00
Dmitry Stogov 4d1d097aca Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70667 (strtr() causes invalid writes and a crashes)
2015-10-08 14:33:03 +03:00
Nikita Popov 9ffe44cb46 Merge branch 'PHP-7.0' 2015-10-08 11:04:45 +02:00
Ferenc Kovacs 0e7ce86d03 update NEWS/UPGRADING 2015-10-08 10:38:46 +02:00
Ferenc Kovacs 1e66f1b9ad Merge branch 'pr-1204'
* pr-1204:
  no need for default value
  allow passing null as the third param
  Implemented FR #55716 - Add an option to pass a custom stream context
2015-10-08 10:23:24 +02:00
Nikita Popov 478e8d6b6d Merge branch 'PHP-7.0' 2015-10-07 16:26:58 +02:00
Ferenc Kovacs 7d0c04c1e9 Merge branch 'PHP-7.0'
* PHP-7.0:
  pear 1.10 was released and the go-pear and install pear phars are now php7 compatible
2015-10-07 16:15:59 +02:00
Dmitry Stogov 33c89e2bb4 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test. MySQL and MariaDB of different versions have different assumptions about TIMESTAMP attributes. Probably we need to add yet another condition to also check MariaDB version.
2015-10-07 14:12:43 +03:00
Christopher Jones 969072c1bd Merge branch 'PHP-7.0'
* PHP-7.0:
2015-10-07 20:31:02 +11:00
Christopher Jones 06f99d14e4 Merge branch 'master' of https://git.php.net/repository/php-src
* 'master' of https://git.php.net/repository/php-src:
  Fixed test running on MarinaDB.
2015-10-07 20:27:40 +11:00
Christopher Jones 9b2c26b8d5 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix mem leak and improve test portability (Senthil)
2015-10-07 20:25:35 +11:00
Dmitry Stogov dbb0ed0c1b Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test running on MarinaDB.
2015-10-07 12:22:17 +03:00
Anatol Belski 5339a5c49c Merge branch 'PHP-7.0'
* PHP-7.0:
  add comment to test
2015-10-07 09:44:15 +02:00
Dmitry Stogov e3c8d4758b Merge branch 'PHP-7.0'
* PHP-7.0:
  Restored the original (php-5) behavior of convert_to_cstring(). It was broken in php7 by mistake and caused problems in ext/pgsql/tests/bug46408.phpt.
2015-10-07 04:28:43 +03:00
Dmitry Stogov 311a3dbdab Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test (system error messages may be different).
2015-10-07 03:26:24 +03:00
Dmitry Stogov 0dc69a18d9 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test (it failed on 32-bit Linux and worked on 64-bit Linux just because of luck).
2015-10-07 03:08:40 +03:00
Dmitry Stogov 20a4cac243 Merge branch 'PHP-7.0'
* PHP-7.0:
  Split test into different versions for 32-bit and 64-bit systems
2015-10-07 01:52:25 +03:00
Dmitry Stogov b83f20ab75 Merge branch 'PHP-7.0'
* PHP-7.0:
2015-10-07 01:50:28 +03:00
Dmitry Stogov ec7af9f6b4 Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src:
  Drop HAVE_PACKED_OBJECT_VALUE
  More zpp cleanup in ext/intl
2015-10-07 01:49:54 +03:00
Nikita Popov 0e564162dc Merge branch 'PHP-7.0' 2015-10-06 23:15:27 +02:00
Dmitry Stogov b9fce8f61a Merge branch 'PHP-7.0'
* PHP-7.0:
  Revert "Fixed bug #70630 (Closure::call/bind() crash with ReflectionFunction->getClosure())"
2015-10-07 00:00:40 +03:00
Nikita Popov 00326196bf Merge branch 'PHP-7.0' 2015-10-06 22:58:11 +02:00
Dmitry Stogov a849fd12ce Merge branch 'PHP-7.0'
* PHP-7.0:
  Revert "Improve 517b55362 (scope rebinding on method Closures)"
  Revert "Merge branch 'array_keys_strict_refs' of https://github.com/tony2001/php-src"
  Revert "Allow random $this on non-internal Closures again"
  Revert "Speed up self::method() calls (no ZEND_FETCH_CLASS)"
  Revert "Speed up self::$property access by 20%"
  Revert "Update NEWS"
2015-10-06 23:50:16 +03:00
Sara Golemon 1c95edfcba Merge branch 'PHP-7.0'
* PHP-7.0:
  Add some tests for unserialize() class filtering
2015-10-06 12:04:44 -07:00
Rasmus Lerdorf ac78430c74 zend.assertions is not a boolean 2015-10-06 17:15:05 +09:00
Bob Weinand bc95a6109f Merge branch 'PHP-7.0' 2015-10-06 01:03:35 +02:00
Anatol Belski 613a1cbd73 Merge branch 'PHP-7.0'
* PHP-7.0:
  don't leak handles
  use correct function to close handles
2015-10-05 22:00:15 +02:00
Bob Weinand 84a006d479 Merge branch 'PHP-7.0' 2015-10-05 21:54:10 +02:00
Bob Weinand 9c02e83d4c Merge branch 'PHP-7.0' 2015-10-05 21:17:50 +02:00
Bob Weinand 2d4e8c44dd Merge branch 'PHP-7.0' 2015-10-05 17:54:14 +02:00
Bob Weinand b7826170dd Merge branch 'PHP-7.0'
Previous commit was a merge to the wrong branch... Cherry-Picked into PHP-7.0 and empty merge here
2015-10-05 14:50:52 +02:00
Bob Weinand e57add0100 Merge branch 'array_keys_strict_refs' of https://github.com/tony2001/php-src 2015-10-05 14:45:15 +02:00
Antony Dovgal 9ac0a83101 add new tests for array_keys() function 2015-10-05 12:52:22 +03:00
Antony Dovgal d0c23bf03b fix array keys being too strict to refs
and add tests
2015-10-05 12:49:34 +03:00
Bob Weinand 746b37e2d5 Merge branch 'PHP-7.0' 2015-10-05 00:57:30 +02:00
Anatol Belski 872e6666d0 Merge branch 'PHP-7.0'
* PHP-7.0:
  improve error message
2015-10-04 16:38:00 +02:00
Anatol Belski b4f08e50e8 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix incrementing on 32-bit
  fix coverage report for datelib
2015-10-04 12:19:41 +02:00
Anatol Belski ee196c1527 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix incrementing on 32-bit
2015-10-04 12:17:50 +02:00
Anatol Belski 96ac357581 fix incrementing on 32-bit 2015-10-04 12:16:54 +02:00
Nuno Lopes 6709006457 fix coverage report for datelib 2015-10-04 05:36:47 -04:00
Xinchen Hui 050ce295a4 Merge branch 'PHP-7.0' 2015-10-03 23:16:56 -07:00
Bob Weinand 5318c99411 Merge branch 'PHP-7.0' 2015-10-04 01:44:05 +02:00
Anatol Belski fc4687242b Merge branch 'PHP-7.0'
* PHP-7.0:
  remove useless checks
2015-10-03 11:00:24 +02:00
Anatol Belski a551c9df3b Merge branch 'PHP-7.0'
* PHP-7.0:
  fix win10 support
2015-10-03 10:46:32 +02:00
Nikita Popov cc5bb8cb8d Merge branch 'PHP-7.0' 2015-10-03 10:14:17 +02:00
Ferenc Kovacs f39229a6b0 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update NEWS file with LDAP fixes
2015-10-02 21:51:56 +02:00
Derick Rethans 5bcb171a71 Updated to version 2015.7 (2015g) 2015-10-02 18:12:19 +01:00
Derick Rethans f96d9370fb Empty merge 2015-10-02 18:12:19 +01:00
Xinchen Hui eb6ffde023 Merge branch 'PHP-7.0' 2015-10-02 07:26:17 -07:00
Xinchen Hui 340517e376 Merge branch 'PHP-7.0' 2015-10-02 07:21:52 -07:00
Bob Weinand f174b7de8b Merge branch 'PHP-7.0' 2015-10-02 12:51:45 +02:00
Bob Weinand 4d26398287 Merge branch 'PHP-7.0' 2015-10-02 12:38:00 +02:00
Nikita Popov 68c395346a Merge branch 'PHP-7.0' 2015-10-02 09:45:24 +02:00
Dmitry Stogov b302925b72 ws 2015-10-01 23:21:21 +03:00
Nikita Popov 707212f458 Merge branch 'PHP-7.0' 2015-10-01 20:47:29 +02:00
Nikita Popov 496282c48a Merge branch 'PHP-7.0' 2015-10-01 16:40:58 +02:00
Matteo Beccati 88df29dd88 Merge branch 'PHP-7.0'
* PHP-7.0:
  ReflectionGenerator and ReflectionType are new classes
  fix dl() function
2015-09-30 15:55:01 +02:00
Antony Dovgal 94cc5faa17 fix dl() function
..which was using old macro
2015-09-30 14:43:53 +01:00
Dmitry Stogov 914eef237c Merge branch 'PHP-7.0'
* PHP-7.0:
  Reordered field to improve data lacality and reduce L1D CPU cache misses in ZEND_INIT_FCALL opcode family
2015-09-30 16:24:14 +03:00
Julien Pauli 019100937d Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test
  5.5.31 now
  Add NTS/ZTS information to php -v
2015-09-30 13:20:22 +02:00
Anatol Belski 1888d3a0c4 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test
2015-09-30 12:18:48 +02:00
Anatol Belski f27efe828e Merge branch 'PHP-7.0'
* PHP-7.0:
  fork test
  fix tests on Windows
  tweak cgi binary search
2015-09-30 11:32:26 +02:00
Xinchen Hui dd16193801 Merge branch 'PHP-7.0' 2015-09-30 12:59:21 +08:00
Xinchen Hui 1518a722d2 Merge branch 'patch-1' of https://github.com/rquadling/php-src 2015-09-30 12:57:31 +08:00
Andrey Hristov 12a3b31981 Merge branch 'PHP-7.0' 2015-09-30 09:04:25 +02:00
Xinchen Hui ba2b0c11b3 Merge branch 'PHP-7.0' 2015-09-30 10:42:23 +08:00
Ferenc Kovacs 1dc93f000c Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS, these missed 5.6.14RC1 as I was not asked to include them so delaying for the next release
2015-09-30 01:35:50 +02:00
Ferenc Kovacs 15a7d3486a Merge branch 'PHP-7.0'
* PHP-7.0:
  add NEWS entries
  add NEWS entries
  add NEWS entries
2015-09-30 01:17:57 +02:00
Xinchen Hui 3bb387f591 Merge branch 'PHP-7.0' 2015-09-29 21:50:21 +08:00
Xinchen Hui 88e147441d Make ZEND_ECHO and removed ZEND_PRINT distinguishable 2015-09-29 21:49:22 +08:00
Dmitry Stogov d4e1c17049 Merge branch 'PHP-7.0'
* PHP-7.0:
  Added information about Zend Extension API chabges
2015-09-29 14:12:58 +03:00
Anatol Belski 64da787e48 Merge branch 'master' of git.php.net:php-src 2015-09-29 13:08:44 +02:00
Anatol Belski bc94d81e1c Merge branch 'PHP-7.0'
* PHP-7.0:
  fix test
  Ensure timeout tests wait for the entire specified duration
  Added zend_internal_function.reserved[] fields, to allow extensions keep additional associated information. We didn't have zend_internal_function.reserved[] in PHP5, but we always allocated space for zend_function union, and extensions were able to reuse zend_function.op_array.reserved[] even for internal function. Now this is not possible. And extensions have to use zend_function.op_array.reserved[] for user functions and zend_function.internal_function.reserved[] for internal.
2015-09-29 13:04:24 +02:00
Dmitry Stogov 0f23289249 Merge branch 'PHP-7.0'
* PHP-7.0:
  Added zend_internal_function.reserved[] fields, to allow extensions keep additional associated information. We didn't have zend_internal_function.reserved[] in PHP5, but we always allocated space for zend_function union, and extensions were able to reuse zend_function.op_array.reserved[] even for internal function. Now this is not possible. And extensions have to use zend_function.op_array.reserved[] for user functions and zend_function.internal_function.reserved[] for internal.
2015-09-29 13:37:06 +03:00
Anatol Belski 56f8396b66 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS for next
2015-09-29 10:52:09 +02:00
Anatol Belski 17c00e0087 Merge branch 'PHP-7.0'
* PHP-7.0:
  Update openssl_x509_checkpurpose.phpt
  add test to openssl ext
2015-09-29 10:42:46 +02:00
Dmitry Stogov 1958e49c62 Merge branch 'PHP-7.0'
* PHP-7.0:
  Removed or simplified incorrect SEPARATE_*() macros usage.
2015-09-29 11:18:30 +03:00
Andrey Hristov c169f2b27d Merge branch 'PHP-7.0' 2015-09-29 09:49:22 +02:00
Anatol Belski 900fc612ec Merge branch 'PHP-7.0'
* PHP-7.0:
  Remove makedev() check.
  Different error message if makedev check fails
  Add support for getrandom(2), add type check on file descriptor
  fix test
2015-09-29 09:15:03 +02:00
Stanislav Malyshev 9f9cab8cc8 Merge branch 'PHP-7.0'
* PHP-7.0:
  Better fix for bug #70433
2015-09-28 21:43:28 -07:00
Stanislav Malyshev eb7ae55db5 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix memory leak
  FIx bug #70433 - Uninitialized pointer in phar_make_dirstream when zip entry filename is "/"
  Fix bug #69720: Null pointer dereference in phar_get_fp_offset()

Conflicts:
	ext/phar/util.c
2015-09-28 20:45:38 -07:00
Stanislav Malyshev 2cacf5770d Fix bug #69720: Null pointer dereference in phar_get_fp_offset() 2015-09-28 17:01:16 -07:00
Stanislav Malyshev e2aa80019c Merge branch 'PHP-5.6'
* PHP-5.6:
  Fix bug #70480 (php_url_parse_ex() buffer overflow read)
2015-09-28 13:05:02 -07:00
Andrey Hristov 01ecfe4195 Merge branch 'PHP-7.0' 2015-09-28 12:28:20 +02:00
Anatol Belski 250938e2d3 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix phpdbg's -h switch
2015-09-27 15:48:42 +02:00
Andrey Hristov 7d3844123f Merge branch 'PHP-7.0' 2015-09-25 14:29:56 +02:00
Richard Quadling f4f4c79cf9 Spelling
bugger => buffer
2015-09-25 12:16:53 +01:00
Dmitry Stogov c2ff33d7c9 Merge branch 'PHP-7.0'
* PHP-7.0:
  Allow an experimental VM with tail call dispatch technique (disabled by default). This VM may work only if all tail calls are optimized, otherwaise it will crach because of stack overflow. Unfortunately, we can't guarantee tail call optimization in C.
2015-09-25 13:02:49 +03:00
Anatol Belski 6e9d347b5a Merge branch 'PHP-7.0'
* PHP-7.0:
  check for test requirement
  fix data type and warning
2015-09-25 11:52:27 +02:00
Dmitry Stogov e395540be8 Merge branch 'PHP-7.0'
* PHP-7.0:
  Extended zend_extension API to allow storing additional data associated with op_arrays in opcache SHM. (op_array->reserved[])
2015-09-25 11:52:51 +03:00
Dmitry Stogov 6cc1816126 Merge branch 'PHP-7.0'
* PHP-7.0:
  Make necessary separation (it might be possible to fix this in a better way, but this will requre some refactoring)
2015-09-25 11:01:12 +03:00
Anatol Belski 3e7c1f7e7c Merge branch 'PHP-7.0'
* PHP-7.0:
  add note about minimum openssl version
  fix ident
2015-09-25 09:12:28 +02:00
c9s 1273ae85f1 List PHP extension api version nos in zend_extensions.h
- Put doc constants in comment
- Link to github issue #1523
2015-09-25 08:46:46 +08:00
Dmitry Stogov 5902af506a Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: avoid useless array duplication
2015-09-25 02:20:31 +03:00
Dmitry Stogov c4a96f1f74 Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup
2015-09-25 01:36:23 +03:00
Dmitry Stogov 6dab652379 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed incorrect usage of HASH_OF() macro. Replaced HASH_OF() with more appropriate Z_ARRVAL_P() or Z_OBJPROP_P().
  Fix missing LOAD_OPLINE() for ZEND_USER_OPCODE_LEAVE
2015-09-24 22:41:45 +03:00
Bob Weinand 30d3698114 Merge branch 'PHP-7.0' 2015-09-24 20:34:12 +02:00
Anatol Belski 27b55591ff Merge branch 'PHP-7.0'
* PHP-7.0:
  don't keep locked mutex after errors
  avoid dangling pointers
  move accel_shared_globals assignment into locked block
  add ovfl check, fix warnings
  fix warning
  fix warning
2015-09-24 17:26:28 +02:00
Dmitry Stogov fbd806ef30 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70573 (Cloning SplPriorityQueue leads to memory leaks)
2015-09-24 16:43:33 +03:00
Adam Harvey 3b5120c147 Merge branch 'PHP-7.0' 2015-09-24 14:20:07 +02:00
Dmitry Stogov c7ef1ae68f Merge branch 'PHP-7.0'
* PHP-7.0:
  Fix (revert) loop exit condition
2015-09-24 11:20:03 +03:00
Dmitry Stogov 31484ee9b7 Merge branch 'PHP-7.0'
* PHP-7.0:
  Attmpt to fix "Unable to reattach to base address" problem. (Matt Ficken)
2015-09-24 10:49:48 +03:00
Dmitry Stogov 0eb689fa0d Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: avoid reallocations
2015-09-24 02:23:26 +03:00
Dmitry Stogov 2274b74735 Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: avoid reallocations
2015-09-24 01:35:33 +03:00
Dmitry Stogov ae79d86b90 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed memory leak and avoid reallocations
2015-09-24 01:19:42 +03:00
Dmitry Stogov e00413b312 Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: replace removed condition with ZEND_ASSERT()
2015-09-24 00:26:15 +03:00
Dmitry Stogov 9da039b042 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed memory leak.
2015-09-23 23:16:48 +03:00
Anatol Belski 827ffd5869 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2015-09-23 20:01:34 +02:00
Anatol Belski 1f7465eaf3 Merge branch 'PHP-7.0'
* PHP-7.0:
  add test
  expose openssl config path so it can be tested
  Fix for Bug #70384 	mysqli_real_query(): Unknown type 245 sent by the server
2015-09-23 19:57:56 +02:00
Andrey Hristov 3c49ec47e7 Merge branch 'PHP-7.0' 2015-09-23 18:40:28 +02:00
Bob Weinand bddbe45bcd Merge branch 'PHP-7.0' 2015-09-23 18:30:44 +02:00
Andrey Hristov e07e4f4bb3 Fix for Bug #70384 mysqli_real_query(): Unknown type 245 sent by the server 2015-09-23 18:23:45 +02:00
Anatol Belski 0bdd1709cc Merge branch 'PHP-7.0'
* PHP-7.0:
  use bundled openssl.cnf
2015-09-23 17:17:42 +02:00
Xinchen Hui 6c071d9286 Merge branch 'PHP-7.0' 2015-09-23 07:12:07 -07:00
Xinchen Hui cb4588e9ef Merge branch 'PHP-7.0' 2015-09-23 07:06:01 -07:00
Xinchen Hui c915d8a7d1 Merge branch 'PHP-7.0' 2015-09-23 07:02:04 -07:00
Anatol Belski 5582d20729 Merge branch 'PHP-7.0'
* PHP-7.0:
  update NEWS
2015-09-23 15:21:58 +02:00
Dmitry Stogov 7c520ea877 Merge branch 'PHP-7.0'
* PHP-7.0:
  Don't keep dangling pointers
2015-09-23 16:16:33 +03:00
Anatol Belski 58cb52eea6 Merge branch 'PHP-7.0'
* PHP-7.0:
  add test
  expose openssl config path so it can be tested
2015-09-23 15:01:38 +02:00
Anatol Belski d82709e6f8 Merge branch 'PHP-7.0'
* PHP-7.0:
  add missing header
  silence mkdir to fix fails after unclean test run
2015-09-23 14:03:29 +02:00
Dmitry Stogov 92ac5e52bb Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed test
2015-09-23 13:18:43 +03:00
Xinchen Hui d44bb8bc3f Merge branch 'PHP-7.0' 2015-09-23 14:10:32 +08:00
Xinchen Hui 87a5b814b7 Merge branch 'PHP-7.0' 2015-09-23 13:04:51 +08:00
Xinchen Hui 4d43ff9819 Merge branch 'PHP-7.0' 2015-09-23 10:01:10 +08:00
Dmitry Stogov c8ecd541df Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: removed deprecated commented code. Incorrect zval_dtor() usage replaced by zval_dtor_ptr().
2015-09-23 01:33:38 +03:00
Dmitry Stogov 65f1316f94 Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: zend_object_std_dtor() is called through free_obj handler
2015-09-23 00:13:15 +03:00
Dmitry Stogov 94d979d895 Merge branch 'PHP-7.0'
* PHP-7.0:
  Properly cleanup on wrong ZEND_OVERLOADED_FUNCTION call
2015-09-22 23:52:58 +03:00
Dmitry Stogov 2c9bea03f0 Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: removed deprecated commented code
2015-09-22 22:56:06 +03:00
Anatol Belski a72167d873 Merge branch 'PHP-7.0'
* PHP-7.0:
  unmap correct handle
2015-09-22 21:21:42 +02:00
Anatol Belski c9804c6877 Merge branch 'PHP-7.0'
* PHP-7.0:
  add test
  nullify the memory chunk to avoid crashes when freeing resource
2015-09-22 20:49:27 +02:00
Anatol Belski ddce7da377 Merge branch 'PHP-7.0'
* PHP-7.0:
  check for NULL return
2015-09-22 20:06:18 +02:00
Dmitry Stogov 03118db714 Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: don't keep useless dangling pointer
2015-09-22 17:48:49 +03:00
Dmitry Stogov b4e5724f14 Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: removed old commented code
2015-09-22 17:06:29 +03:00
Dmitry Stogov 686e610ddb Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: removed deprecated commented code
2015-09-22 17:03:03 +03:00
Dmitry Stogov 80dd626409 Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup: removed comments (zend_object.handle and zend_resource.handle are not going to be removed in PHP-7.0)
2015-09-22 16:00:30 +03:00
Dmitry Stogov 9fe578c537 Merge branch 'PHP-7.0'
* PHP-7.0:
  Cleanup (we keep and reuse size from zend_mm_huge_list)
2015-09-22 15:52:11 +03:00
Dmitry Stogov a38cb8a129 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed reporting about repeatable "huge" memory leaks.
2015-09-22 15:47:39 +03:00
Derick Rethans 82fe65a812 Merge branch 'PHP-7.0' 2015-09-22 09:18:29 +01:00
Derick Rethans 9c375ece15 Merge branch 'PHP-7.0' 2015-09-22 09:08:55 +01:00
Derick Rethans d5a8d2f27f Merge branch 'master' of git.php.net:php-src 2015-09-22 08:47:36 +01:00
Derick Rethans d80c82c2b7 Merge branch 'PHP-7.0' 2015-09-22 08:45:55 +01:00
Xinchen Hui 2daafed30d Merge branch 'PHP-7.0' 2015-09-22 15:30:44 +08:00
Xinchen Hui f14428c209 Merge branch 'PHP-7.0' 2015-09-22 13:59:18 +08:00
Xinchen Hui 72fcdf61cf Merge branch 'PHP-7.0' 2015-09-22 12:06:54 +08:00
Xinchen Hui 54c18e51fc Merge branch 'PHP-7.0' 2015-09-22 12:01:00 +08:00
Xinchen Hui b7f0b4bdb3 Merge branch 'PHP-7.0' 2015-09-21 22:05:45 +08:00
Xinchen Hui d9035ed18d Merge branch 'master' of git.php.net:/php-src 2015-09-21 11:20:36 +08:00
Xinchen Hui a94fb4b307 Merge branch 'PHP-7.0'
Conflicts:
	NEWS
2015-09-21 11:19:54 +08:00
Xinchen Hui 985054e4c4 Merge branch 'PHP-7.0' 2015-09-20 09:34:40 -07:00
Xinchen Hui d25b2590b9 Restore NEWS (Why NEWS is always merged? ) 2015-09-20 09:32:49 -07:00
Xinchen Hui 74ae73c3ce Merge branch 'PHP-7.0' 2015-09-20 09:32:41 -07:00
Jakub Zelenka eb56d1308d Merge branch 'PHP-7.0' 2015-09-20 13:02:37 +01:00
Jakub Zelenka 0336d514cc Merge branch 'PHP-7.0' 2015-09-20 12:54:57 +01:00
Xinchen Hui 0749df623f Merge branch 'PHP-7.0' 2015-09-19 19:52:23 -07:00
Xinchen Hui b124ad6ee8 Merge branch 'PHP-7.0'
Conflicts:
	NEWS
2015-09-19 19:50:57 -07:00
Bob Weinand d2f37fc4c0 Merge branch 'PHP-7.0' 2015-09-20 04:28:18 +02:00
Bob Weinand 906de1ffcc Merge branch 'PHP-7.0' 2015-09-20 02:43:55 +02:00
Bob Weinand 8faeac8f33 Merge branch 'PHP-7.0' 2015-09-19 23:25:28 +02:00
Xinchen Hui 9c282a525c Merge branch 'PHP-7.0'
Conflicts:
	NEWS
2015-09-19 06:19:32 -07:00
Yasuo Ohgaki e3a1e4a391 Merge branch 'PHP-7.0'
* PHP-7.0:
  Fixed bug #70529 Session read causes "String is not zero-terminated" error
2015-09-19 11:27:24 +09:00
Edgar R. Sandi ab4b14ec3c Merge branch 'date_sun_info-function_improve-test-coverage' of github.com:edgarsandi/php-src into date_sun_info-function_improve-test-coverage 2015-09-18 12:10:13 -03:00
Edgar R. Sandi d1d7890a87 adding test scenario to improve coverage 2015-09-18 12:09:38 -03:00
Xinchen Hui 608d702795 NEWS should not be updated 2015-09-18 17:28:08 +08:00
Xinchen Hui 752b0511b0 Merge branch 'PHP-7.0' 2015-09-18 17:27:57 +08:00
Xinchen Hui 5101f2e7a5 Merge branch 'PHP-7.0' 2015-09-18 16:36:29 +08:00
Dmitry Stogov fac5649dda Merge branch 'PHP-7.0'
* PHP-7.0:
  Use Zend MM to keep statistic of non-persistent connections (calloc/free->pecalloc/pefree)
2015-09-18 10:37:25 +03:00
Matteo Beccati f4309bae76 Merge branch 'PHP-7.0'
* PHP-7.0:
  Skip session_regenerate_id_cookie.phpt when there's no cgi
  Add eventual escaping for phpdbg arguments
  Add # delimiter to phpdbg commands
2015-09-18 07:53:05 +02:00
Dmitry Stogov df29df7ec4 Merge branch 'PHP-7.0'
* PHP-7.0:
  Don't allocate memory for empty HashTables.
2015-09-17 19:17:57 +03:00
Kalle Sommer Nielsen 16ff9cb93b Note the PHP version at the top of configure 2015-09-17 14:28:19 +02:00
Anatol Belski e4c190ef6d adjust versions in confutils 2015-09-17 13:31:27 +02:00
Anatol Belski 0f71d006e8 make room for next UPGRADING notes 2015-09-17 13:19:30 +02:00
Dmitry Stogov 68c508a5be Merge branch 'PHP-7.0'
* PHP-7.0:
  Update information about new opcache features
2015-09-17 12:58:44 +03:00
Dmitry Stogov 342070cfd3 Merge branch 'PHP-7.0'
* PHP-7.0:
  Added information about new opcache configuration directives
2015-09-17 12:54:26 +03:00
Ferenc Kovacs 82712a1eb0 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare for PHP-5.6.14RC1
2015-09-17 01:50:01 +02:00
Edgar R. Sandi 6bdc28dccb adding test scenario to improve coverage 2015-09-16 20:06:58 -03:00
Yasuo Ohgaki 8518d8a4d2 Merge branch 'PHP-7.0'
* PHP-7.0:
  Add test for #70516 session_regenerate_id() does not send session ID cookie
2015-09-17 05:53:00 +09:00
Anatol Belski 69762319d4 Merge branch 'PHP-7.0'
* PHP-7.0:
  add range check
2015-09-16 15:39:52 +02:00
Remi Collet 8e83c9b2e4 Merge branch 'PHP-7.0'
* PHP-7.0:
  fix regressio introduce in 22e23e7cb8
2015-09-16 14:32:23 +02:00
Xinchen Hui b6b1454c1e Merge branch 'PHP-7.0' 2015-09-15 08:59:01 -07:00
Xinchen Hui f84a10f2fb Merge branch 'master' of git.php.net:/php-src 2015-09-15 08:58:30 -07:00
Xinchen Hui 65d516fb06 Merge branch 'PHP-7.0' 2015-09-15 08:54:31 -07:00
Sebastian Bergmann 022866c75f Fugbix typo 2015-09-15 17:47:17 +02:00
Xinchen Hui eb263de212 Merge branch 'PHP-7.0' 2015-09-15 08:29:28 -07:00
Xinchen Hui d291eaa97e Merge branch 'PHP-7.0' 2015-09-15 08:24:31 -07:00
Xinchen Hui 0d81a664a5 Merge branch 'PHP-7.0' 2015-09-15 07:58:05 -07:00
Anatol Belski e409cbf950 Merge branch 'PHP-7.0'
* PHP-7.0:
  prepare NEWS for RC4
2015-09-15 12:44:18 +02:00
Anatol Belski 308a18a49e Merge branch 'PHP-7.0'
* PHP-7.0:
  add missing NEWS entry
2015-09-15 08:18:20 +02:00
Christopher Jones 855f614696 Merge branch 'PHP-7.0' 2015-09-15 12:17:00 +10:00
Christopher Jones 83bba5dfdd Improve row fetch changes for PHP7. Update test SKIPIFs. Add test for 11g client (Senthil) 2015-09-15 10:06:29 +10:00
Dmitry Stogov db8c075839 Merge branch 'PHP-7.0'
* PHP-7.0:
  Enabled placing PHP code segment into huge pages
2015-09-15 02:05:08 +03:00
Dmitry Stogov 7e15ca6f08 Merge branch 'PHP-7.0'
* PHP-7.0:
  Enable file based cache compilation by default
2015-09-15 01:58:59 +03:00
Dmitry Stogov d390935c4a Merge branch 'PHP-7.0'
* PHP-7.0:
  Use shorter php.ini directive name "opcache.huge_code_pages" and disable it by default.
2015-09-15 01:54:53 +03:00
Dmitry Stogov f1bb0503dc Merge branch 'PHP-7.0'
* PHP-7.0:
  Removed useless include
2015-09-15 01:48:01 +03:00
Anatol Belski 360f96e216 bump versions in master 2015-09-14 23:46:10 +02:00
Anatol Belski 7da32cb56b add range check 2015-09-14 23:18:56 +02:00
Anatol Belski 0ebf9a11f9 prepare master NEWS 2015-09-14 22:45:28 +02:00
jubianchi e326fa7855 Remove wrong argument $session from SNMP::setSecurity() 2015-09-11 18:13:50 +02:00
jubianchi d96c66909d Fix SNMP::setSecurity() arginfo (Fixes bug #70476) 2015-09-11 18:13:43 +02:00
Daniel Persson e7414a48ef Changed from testing cast-128 to cast-256 2015-09-08 23:01:09 +02:00
Ondřej Surý 82c0156cac Include config.h instead of php_config.h in gd_compat.c to have the configure variable available in outside-of-the-tree module build 2015-09-07 13:28:05 +02:00
Ferenc Kovacs 0a10440cad no need for default value 2015-03-30 18:34:02 +02:00
Ferenc Kovacs b9b0d3db39 allow passing null as the third param 2015-03-30 11:22:31 +02:00
Ferenc Kovacs fd01b47b8e Implemented FR #55716 - Add an option to pass a custom stream context 2015-03-30 01:09:07 +02:00
937 changed files with 109414 additions and 36341 deletions

No files matched your search

-204
View File
@@ -5,7 +5,6 @@ Installing PHP
* General Installation Considerations
* Installation on Unix systems
+ Apache 1.3.x on Unix systems
+ Apache 2.x on Unix systems
+ Lighttpd 1.4 on Unix systems
+ Sun, iPlanet and Netscape servers on Sun Solaris
@@ -103,7 +102,6 @@ Installation on Unix systems
Table of Contents
* Apache 1.3.x on Unix systems
* Apache 2.x on Unix systems
* Lighttpd 1.4 on Unix systems
* Sun, iPlanet and Netscape servers on Sun Solaris
@@ -163,208 +161,6 @@ Table of Contents
you can't figure out why, see the Problems section.
__________________________________________________________________
Apache 1.3.x on Unix systems
This section contains notes and hints specific to Apache installs of
PHP on Unix platforms. We also have instructions and notes for Apache 2
on a separate page.
You can select arguments to add to the configure on line 10 below from
the list of core configure options and from extension specific options
described at the respective places in the manual. The version numbers
have been omitted here, to ensure the instructions are not incorrect.
You will need to replace the 'xxx' here with the correct values from
your files.
Example #1 Installation Instructions (Apache Shared Module Version) for
PHP
1. gunzip apache_xxx.tar.gz
2. tar -xvf apache_xxx.tar
3. gunzip php-xxx.tar.gz
4. tar -xvf php-xxx.tar
5. cd apache_xxx
6. ./configure --prefix=/www --enable-module=so
7. make
8. make install
9. cd ../php-xxx
10. Now, configure your PHP. This is where you customize your PHP
with various options, like which extensions will be enabled. Do a
./configure --help for a list of available options. In our example
we'll do a simple configure with Apache 1 and MySQL support. Your
path to apxs may differ from our example.
./configure --with-mysql --with-apxs=/www/bin/apxs
11. make
12. make install
If you decide to change your configure options after installation,
you only need to repeat the last three steps. You only need to
restart apache for the new module to take effect. A recompile of
Apache is not needed.
Note that unless told otherwise, 'make install' will also install PEAR,
various PHP tools such as phpize, install the PHP CLI, and more.
13. Setup your php.ini file:
cp php.ini-development /usr/local/lib/php.ini
You may edit your .ini file to set PHP options. If you prefer your
php.ini in another location, use --with-config-file-path=/some/path in
step 10.
If you instead choose php.ini-production, be certain to read the list
of changes within, as they affect how PHP behaves.
14. Edit your httpd.conf to load the PHP module. The path on the right hand
side of the LoadModule statement must point to the path of the PHP
module on your system. The make install from above may have already
added this for you, but be sure to check.
LoadModule php7_module libexec/libphp7.so
15. And in the AddModule section of httpd.conf, somewhere under the
ClearModuleList, add this:
AddModule mod_php7.c
16. Tell Apache to parse certain extensions as PHP. For example,
let's have Apache parse the .php extension as PHP. You could
have any extension(s) parse as PHP by simply adding more, with
each separated by a space. We'll add .phtml to demonstrate.
AddType application/x-httpd-php .php .phtml
It's also common to setup the .phps extension to show highlighted PHP
source, this can be done with:
AddType application/x-httpd-php-source .phps
17. Use your normal procedure for starting the Apache server. (You must
stop and restart the server, not just cause the server to reload by
using a HUP or USR1 signal.)
Alternatively, to install PHP as a static object:
Example #2 Installation Instructions (Static Module Installation for
Apache) for PHP
1. gunzip -c apache_1.3.x.tar.gz | tar xf -
2. cd apache_1.3.x
3. ./configure
4. cd ..
5. gunzip -c php-5.x.y.tar.gz | tar xf -
6. cd php-5.x.y
7. ./configure --with-mysql --with-apache=../apache_1.3.x
8. make
9. make install
10. cd ../apache_1.3.x
11. ./configure --prefix=/www --activate-module=src/modules/php7/libphp7.a
(The above line is correct! Yes, we know libphp7.a does not exist at this
stage. It isn't supposed to. It will be created.)
12. make
(you should now have an httpd binary which you can copy to your Apache bin d
ir if
it is your first install then you need to "make install" as well)
13. cd ../php-5.x.y
14. cp php.ini-development /usr/local/lib/php.ini
15. You can edit /usr/local/lib/php.ini file to set PHP options.
Edit your httpd.conf or srm.conf file and add:
AddType application/x-httpd-php .php
Depending on your Apache install and Unix variant, there are many
possible ways to stop and restart the server. Below are some typical
lines used in restarting the server, for different apache/unix
installations. You should replace /path/to/ with the path to these
applications on your systems.
Example #3 Example commands for restarting Apache
1. Several Linux and SysV variants:
/etc/rc.d/init.d/httpd restart
2. Using apachectl scripts:
/path/to/apachectl stop
/path/to/apachectl start
3. httpdctl and httpsdctl (Using OpenSSL), similar to apachectl:
/path/to/httpsdctl stop
/path/to/httpsdctl start
4. Using mod_ssl, or another SSL server, you may want to manually
stop and start:
/path/to/apachectl stop
/path/to/apachectl startssl
The locations of the apachectl and http(s)dctl binaries often vary. If
your system has locate or whereis or which commands, these can assist
you in finding your server control programs.
Different examples of compiling PHP for apache are as follows:
./configure --with-apxs --with-pgsql
This will create a libphp7.so shared library that is loaded into Apache
using a LoadModule line in Apache's httpd.conf file. The PostgreSQL
support is embedded into this library.
./configure --with-apxs --with-pgsql=shared
This will create a libphp7.so shared library for Apache, but it will
also create a pgsql.so shared library that is loaded into PHP either by
using the extension directive in php.ini file or by loading it
explicitly in a script using the dl() function.
./configure --with-apache=/path/to/apache_source --with-pgsql
This will create a libmodphp7.a library, a mod_php7.c and some
accompanying files and copy this into the src/modules/php7 directory in
the Apache source tree. Then you compile Apache using
--activate-module=src/modules/php7/libphp7.a and the Apache build
system will create libphp7.a and link it statically into the httpd
binary. The PostgreSQL support is included directly into this httpd
binary, so the final result here is a single httpd binary that includes
all of Apache and all of PHP.
./configure --with-apache=/path/to/apache_source --with-pgsql=shared
Same as before, except instead of including PostgreSQL support directly
into the final httpd you will get a pgsql.so shared library that you
can load into PHP from either the php.ini file or directly using dl().
When choosing to build PHP in different ways, you should consider the
advantages and drawbacks of each method. Building as a shared object
will mean that you can compile apache separately, and don't have to
recompile everything as you add to, or change, PHP. Building PHP into
apache (static method) means that PHP will load and run faster. For
more information, see the Apache » web page on DSO support.
Note:
Apache's default httpd.conf currently ships with a section that
looks like this:
User nobody
Group "#-1"
Unless you change that to "Group nogroup" or something like that
("Group daemon" is also very common) PHP will not be able to open
files.
Note:
Make sure you specify the installed version of apxs when using
--with-apxs=/path/to/apxs . You must NOT use the apxs version that
is in the apache sources but the one that is actually installed on
your system.
__________________________________________________________________
__________________________________________________________________
Apache 2.x on Unix systems
This section contains notes and hints specific to Apache 2.x installs
+82 -1075
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -79,7 +79,7 @@ The next few rules are more of a technical nature::
should be noted in both PHP-5.4/NEWS and PHP-5.5/NEWS but
not master, which is not a public released version yet.
3. Do not commit multiple file and dump all messages in one commit. If you
3. Do not commit multiple files and dump all messages in one commit. If you
modified several unrelated files, commit each group separately and
provide a nice commit message for each one. See example below.
+6 -6
View File
@@ -17,7 +17,7 @@ It is recommended to do so a couple of days before the packaging day, to
have enough time to investigate failures, communicate with the authors and
commit the fixes.
The RM for the branch is also responsible for keeping the CI green on
ongoing bases between the releases. Check the CI status for your branch
ongoing basis between the releases. Check the CI status for your branch
periodically and resolve the failures ASAP. See more in:
https://wiki.php.net/rfc/travis_ci
@@ -31,7 +31,7 @@ team (Bjori) on hand.
6. Verify the tags to be extra sure everything was tagged properly.
7. Moving extensions from/to PECL requires write acces to the destination.
7. Moving extensions from/to PECL requires write access to the destination.
Most developers should have this.
Moving extensions from php-src to PECL
@@ -271,8 +271,8 @@ to upgrade.
10. Wait an hour or two, then send a mail to php-announce@lists.php.net,
php-general@lists.php.net and internals@lists.php.net with a text similar to
http://news.php.net/php.internals/17222.
Please make sure that the mail to php-announce@ is its own completely seperate email.
This is to make sure that repiles to the announcement on php-general@ or internals@
Please make sure that the mail to php-announce@ is its own completely separate email.
This is to make sure that replies to the announcement on php-general@ or internals@
will not accidentally hit the php-announce@ mailinglist.
Re-releasing the same version (or -pl)
@@ -309,6 +309,6 @@ to upgrade.
5. Wait an hour or two, then send a mail to php-announce@lists.php.net,
php-general@lists.php.net and internals@lists.php.net with a text similar to
the news entry.
Please make sure that the mail to php-announce@ is its own completely seperate email.
This is to make sure that repiles to the announcement on php-general@ or internals@
Please make sure that the mail to php-announce@ is its own completely separate email.
This is to make sure that replies to the announcement on php-general@ or internals@
will not accidentally hit the php-announce@ mailinglist.
+1 -1
View File
@@ -10,7 +10,7 @@ Pull Requests
=============
PHP accepts pull requests via github. Discussions are done on github, but
depending on the topic can also be relayed to the official PHP developer
mailinglist internals@lists.php.net.
mailing list internals@lists.php.net.
New features require an RFC and must be accepted by the developers.
See https://wiki.php.net/rfc and https://wiki.php.net/rfc/voting for more
+197
View File
@@ -0,0 +1,197 @@
# =================================================================================
# http://www.gnu.org/software/autoconf-archive/ax_func_which_gethostbyname_r.html
# =================================================================================
#
# SYNOPSIS
#
# AX_FUNC_WHICH_GETHOSTBYNAME_R
#
# DESCRIPTION
#
# Determines which historical variant of the gethostbyname_r() call
# (taking three, five, or six arguments) is available on the system and
# defines one of the following macros accordingly:
#
# HAVE_FUNC_GETHOSTBYNAME_R_6
# HAVE_FUNC_GETHOSTBYNAME_R_5
# HAVE_FUNC_GETHOSTBYNAME_R_3
#
# as well as
#
# HAVE_GETHOSTBYNAME_R
#
# If used in conjunction with gethostname.c, the API demonstrated in
# test.c can be used regardless of which gethostbyname_r() is available.
# These example files can be found at
# http://www.csn.ul.ie/~caolan/publink/gethostbyname_r
#
# based on David Arnold's autoconf suggestion in the threads faq
#
# Originally named "AC_caolan_FUNC_WHICH_GETHOSTBYNAME_R". Rewritten for
# Autoconf 2.5x, and updated for 2.68 by Daniel Richard G.
#
# LICENSE
#
# Copyright (c) 2008 Caolan McNamara <caolan@skynet.ie>
# Copyright (c) 2008 Daniel Richard G. <skunk@iskunk.org>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# 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/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# 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
AC_DEFUN([AX_FUNC_WHICH_GETHOSTBYNAME_R], [
AC_LANG_PUSH([C])
AC_MSG_CHECKING([how many arguments gethostbyname_r() takes])
AC_CACHE_VAL([ac_cv_func_which_gethostbyname_r], [
################################################################
ac_cv_func_which_gethostbyname_r=unknown
#
# ONE ARGUMENT (sanity check)
#
# This should fail, as there is no variant of gethostbyname_r() that takes
# a single argument. If it actually compiles, then we can assume that
# netdb.h is not declaring the function, and the compiler is thereby
# assuming an implicit prototype. In which case, we're out of luck.
#
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>],
[
char *name = "www.gnu.org";
(void)gethostbyname_r(name) /* ; */
])],
[ac_cv_func_which_gethostbyname_r=no])
#
# SIX ARGUMENTS
# (e.g. Linux)
#
if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>],
[
char *name = "www.gnu.org";
struct hostent ret, *retp;
char buf@<:@1024@:>@;
int buflen = 1024;
int my_h_errno;
(void)gethostbyname_r(name, &ret, buf, buflen, &retp, &my_h_errno) /* ; */
])],
[ac_cv_func_which_gethostbyname_r=six])
fi
#
# FIVE ARGUMENTS
# (e.g. Solaris)
#
if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>],
[
char *name = "www.gnu.org";
struct hostent ret;
char buf@<:@1024@:>@;
int buflen = 1024;
int my_h_errno;
(void)gethostbyname_r(name, &ret, buf, buflen, &my_h_errno) /* ; */
])],
[ac_cv_func_which_gethostbyname_r=five])
fi
#
# THREE ARGUMENTS
# (e.g. AIX, HP-UX, Tru64)
#
if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>],
[
char *name = "www.gnu.org";
struct hostent ret;
struct hostent_data data;
(void)gethostbyname_r(name, &ret, &data) /* ; */
])],
[ac_cv_func_which_gethostbyname_r=three])
fi
################################################################
]) dnl end AC_CACHE_VAL
case "$ac_cv_func_which_gethostbyname_r" in
three|five|six)
AC_DEFINE([HAVE_GETHOSTBYNAME_R], [1],
[Define to 1 if you have some form of gethostbyname_r().])
;;
esac
case "$ac_cv_func_which_gethostbyname_r" in
three)
AC_MSG_RESULT([three])
AC_DEFINE([HAVE_FUNC_GETHOSTBYNAME_R_3], [1],
[Define to 1 if you have the three-argument form of gethostbyname_r().])
;;
five)
AC_MSG_RESULT([five])
AC_DEFINE([HAVE_FUNC_GETHOSTBYNAME_R_5], [1],
[Define to 1 if you have the five-argument form of gethostbyname_r().])
;;
six)
AC_MSG_RESULT([six])
AC_DEFINE([HAVE_FUNC_GETHOSTBYNAME_R_6], [1],
[Define to 1 if you have the six-argument form of gethostbyname_r().])
;;
no)
AC_MSG_RESULT([cannot find function declaration in netdb.h])
;;
unknown)
AC_MSG_RESULT([can't tell])
;;
*)
AC_MSG_ERROR([internal error])
;;
esac
AC_LANG_POP
]) dnl end AC_DEFUN
+3 -1
View File
@@ -1,3 +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],[
@@ -32,6 +33,8 @@ AC_CHECK_HEADERS(stdarg.h)
AC_CHECK_FUNCS(sigprocmask)
AX_FUNC_WHICH_GETHOSTBYNAME_R()
])
@@ -89,7 +92,6 @@ else
fi
])
AC_DEFUN([TSRM_THREADS_CHECKS],[
dnl For the thread implementations, we always use --with-*
+97 -731
View File
@@ -1,4 +1,4 @@
PHP 7.0 UPGRADE NOTES
PHP 7.1 UPGRADE NOTES
1. Backward Incompatible Changes
2. New Features
@@ -19,791 +19,157 @@
1. Backward Incompatible Changes
========================================
Language changes
================
Changes to variable handling
----------------------------
* Indirect variable, property and method references are now interpreted with
left-to-right semantics. Some examples:
$$foo['bar']['baz'] // interpreted as ($$foo)['bar']['baz']
$foo->$bar['baz'] // interpreted as ($foo->$bar)['baz']
$foo->$bar['baz']() // interpreted as ($foo->$bar)['baz']()
Foo::$bar['baz']() // interpreted as (Foo::$bar)['baz']()
To restore the previous behavior add explicit curly braces:
${$foo['bar']['baz']}
$foo->{$bar['baz']}
$foo->{$bar['baz']}()
Foo::{$bar['baz']}()
* The global keyword now only accepts simple variables. Instead of
global $$foo->bar;
it is now required to write the following:
global ${$foo->bar};
* Parentheses around variables or function calls no longer have any influence
on behavior. For example the following code, where the result of a function
call is passed to a by-reference function
function getArray() { return [1, 2, 3]; }
$last = array_pop(getArray());
// Strict Standards: Only variables should be passed by reference
$last = array_pop((getArray()));
// Strict Standards: Only variables should be passed by reference
will now throw a strict standards error regardless of whether parentheses
are used. Previously no notice was generated in the second case.
* Array elements or object properties that are automatically created during
by-reference assignments will now result in a different order. For example
$array = [];
$array["a"] =& $array["b"];
$array["b"] = 1;
var_dump($array);
now results in the array ["a" => 1, "b" => 1], while previously the result
was ["b" => 1, "a" => 1];
Relevant RFCs:
* https://wiki.php.net/rfc/uniform_variable_syntax
* https://wiki.php.net/rfc/abstract_syntax_tree
Changes to list()
-----------------
* list() will no longer assign variables in reverse order. For example
list($array[], $array[], $array[]) = [1, 2, 3];
var_dump($array);
will now result in $array == [1, 2, 3] rather than [3, 2, 1]. Note that only
the **order** of the assignments changed, but the assigned values stay the
same. E.g. a normal usage like
list($a, $b, $c) = [1, 2, 3];
// $a = 1; $b = 2; $c = 3;
will retain its current behavior.
* Empty list() assignments are no longer allowed. As such all of the following
are invalid:
list() = $a;
list(,,) = $a;
list($x, list(), $y) = $a;
* list() no longer supports unpacking strings (while previously this was only
supported in some cases). The code
$string = "xy";
list($x, $y) = $string;
will now result in $x == null and $y == null (without notices) instead of
$x == "x" and $y == "y". Furthermore list() is now always guaranteed to
work with objects implementing ArrayAccess, e.g.
list($a, $b) = (object) new ArrayObject([0, 1]);
will now result in $a == 0 and $b == 1. Previously both $a and $b were null.
Relevant RFCs:
* https://wiki.php.net/rfc/abstract_syntax_tree#changes_to_list
* https://wiki.php.net/rfc/fix_list_behavior_inconsistency
Changes to foreach
------------------
* Iteration with foreach() no longer has any effect on the internal array
pointer, which can be accessed through the current()/next()/etc family of
functions. For example
$array = [0, 1, 2];
foreach ($array as &$val) {
var_dump(current($array));
}
will now print the value int(0) three times. Previously the output was int(1),
int(2) and bool(false).
* When iterating arrays by-value, foreach will now always operate on a copy of
the array, as such changes to the array during iteration will not influence
iteration behavior. For example
$array = [0, 1, 2];
$ref =& $array; // Necessary to trigger the old behavior
foreach ($array as $val) {
var_dump($val);
unset($array[1]);
}
will now print all three elements (0 1 2), while previously the second element
1 was skipped (0 2).
* When iterating arrays by-reference, modifications to the array will continue
to influence the iteration. However PHP will now do a better job of
maintaining a correct position in a number of cases. E.g. appending to an
array during by-reference iteration
$array = [0];
foreach ($array as &$val) {
var_dump($val);
$array[1] = 1;
}
will now iterate over the appended element as well. As such the output of this
example will now be "int(0) int(1)", while previously it was only "int(0)".
* Iteration of plain (non-Traversable) objects by-value or by-reference will
behave like by-reference iteration of arrays. This matches the previous
behavior apart from the more accurate position management mentioned in the
previous point.
* Iteration of Traversable objects remains unchanged.
Relevant RFC: https://wiki.php.net/rfc/php7_foreach
Changes to parameter handling
-----------------------------
* It is no longer possible to define two function parameters with the same name.
For example, the following method will trigger a compile-time error:
public function foo($a, $b, $unused, $unused) {
// ...
}
Code like this should be changed to use distinct parameter names, for example:
public function foo($a, $b, $unused1, $unused2) {
// ...
}
* The func_get_arg() and func_get_args() functions will no longer return the
original value that was passed to a parameter and will instead provide the
current value (which might have been modified). For example
function foo($x) {
$x++;
var_dump(func_get_arg(0));
}
foo(1);
will now print "2" instead of "1". This code should be changed to either
perform modifications only after calling func_get_arg(s)
function foo($x) {
var_dump(func_get_arg(0));
$x++;
}
or avoid modifying the parameters altogether:
function foo($x) {
$newX = $x + 1;
var_dump(func_get_arg(0));
}
* Similarly exception backtraces will no longer display the original value that
was passed to a function and show the modified value instead. For example
function foo($x) {
$x = 42;
throw new Exception;
}
foo("string");
will now result in the stack trace
Stack trace:
#0 file.php(4): foo(42)
#1 {main}
while previously it was:
Stack trace:
#0 file.php(4): foo('string')
#1 {main}
While this should not impact runtime behavior of your code, it is worthwhile
to be aware of this difference for debugging purposes.
The same limitation also applies to debug_backtrace() and other functions
inspecting function arguments.
Relevant RFC: https://wiki.php.net/phpng
Changes to integer handling
---------------------------
* Invalid octal literals (containing digits larger than 7) now produce compile
errors. For example, the following is no longer valid:
$i = 0781; // 8 is not a valid octal digit!
Previously the invalid digits (and any following valid digits) were simply
ignored. As such $i previously held the value 7, because the last two digits
were silently discarded.
* Bitwise shifts by negative numbers will now throw an ArithmeticError:
var_dump(1 >> -1);
// ArithmeticError: Bit shift by negative number
* Left bitwise shifts by a number of bits beyond the bit width of an integer
will always result in 0:
var_dump(1 << 64); // int(0)
Previously the behavior of this code was dependent on the used CPU
architecture. For example on x86 (including x86-64) the result was int(1),
because the shift operand was wrapped.
* Similarly right bitwise shifts by a number of bits beyond the bit width of an
integer will always result in 0 or -1 (depending on sign):
var_dump(1 >> 64); // int(0)
var_dump(-1 >> 64); // int(-1)
Relevant RFC: https://wiki.php.net/rfc/integer_semantics
Changes to string handling
--------------------------
* Strings that contain hexadecimal numbers are no longer considered to be
numeric and don't receive special treatment anymore. Some examples of the
new behavior:
var_dump("0x123" == "291"); // bool(false) (previously true)
var_dump(is_numeric("0x123")); // bool(false) (previously true)
var_dump("0xe" + "0x1"); // int(0) (previously 16)
var_dump(substr("foo", "0x1")); // string(3) "foo" (previously "oo")
// Notice: A non well formed numeric value encountered
filter_var() can be used to check if a string contains a hexadecimal number
or convert such a string into an integer:
$str = "0xffff";
$int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
if (false === $int) {
throw new Exception("Invalid integer!");
}
var_dump($int); // int(65535)
* Due to the addition of the Unicode Codepoint Escape Syntax for double-quoted
strings and heredocs, "\u{" followed by an invalid sequence will now result in
an error:
$str = "\u{xyz}"; // Fatal error: Invalid UTF-8 codepoint escape sequence
To avoid this the leading backslash should be escaped:
$str = "\\u{xyz}"; // Works fine
However, "\u" without a following { is unaffected. As such the following code
won't error and will work the same as before:
$str = "\u202e"; // Works fine
Relevant RFCs:
* https://wiki.php.net/rfc/remove_hex_support_in_numeric_strings
* https://wiki.php.net/rfc/unicode_escape
Changes to error handling
-------------------------
* There are now two exception classes: Exception and Error. Both classes
implement a new interface Throwable. Type hints in exception handling code
may need to be changed to account for this.
* Some fatal errors and recoverable fatal errors now throw an Error instead.
As Error is a separate class from Exception, these exceptions will not be
caught by existing try/catch blocks.
For the recoverable fatal errors which have been converted into an exception,
it is no longer possible to silently ignore the error from an error handler.
In particular, it is no longer possible to ignore type hint failures.
* Parser errors now generate a ParseError that extends Error. Error
handling for eval()s on potentially invalid code should be changed to catch
ParseError in addition to the previous return value / error_get_last()
based handling.
* Constructors of internal classes will now always throw an exception on
failure. Previously some constructors returned NULL or an unusable object.
* The error level of some E_STRICT notices has been changed.
Relevant RFCs:
* https://wiki.php.net/rfc/engine_exceptions_for_php7
* https://wiki.php.net/rfc/throwable-interface
* https://wiki.php.net/rfc/internal_constructor_behaviour
* https://wiki.php.net/rfc/reclassify_e_strict
Other language changes
----------------------
* Removed support for static calls to non-static methods from an incompatible
$this context. In this case $this will not be defined, but the call will be
allowed with a deprecation notice. An example:
class A {
public function test() { var_dump($this); }
}
// Note: Does NOT extend A
class B {
public function callNonStaticMethodOfA() { A::test(); }
}
(new B)->callNonStaticMethodOfA();
// Deprecated: Non-static method A::test() should not be called statically
// Notice: Undefined variable $this
NULL
Note that this only applies to calls from an incompatible context. If class B
extended from A the call would be allowed without any notices.
* It is no longer possible to use the following class, interface and trait names
(case-insensitive):
bool
int
float
string
null
false
true
This applies to class/interface/trait declarations, class_alias() and use
statements.
Furthermore the following class, interface and trait names are now reserved
for future use, but do not yet throw an error when used:
resource
object
mixed
numeric
* The yield language construct no longer requires parentheses when used in an
expression context. It is now a right-associative operator with precedence
between the "print" and "=>" operators. This can result in different behavior
in some cases, for example:
echo yield -1;
// Was previously interpreted as
echo (yield) - 1;
// And is now interpreted as
echo yield (-1);
yield $foo or die;
// Was previously interpreted as
yield ($foo or die);
// And is now interpreted as
(yield $foo) or die;
Such cases can always be resolved by adding additional parentheses.
. Removed ASP (<%) and script (<script language=php>) tags.
(RFC: https://wiki.php.net/rfc/remove_alternative_php_tags)
. Removed support for assigning the result of new by reference.
. Removed support for scoped calls to non-static methods from an incompatible
$this context. See details in https://wiki.php.net/rfc/incompat_ctx.
. Removed support for #-style comments in ini files. Use ;-style comments
instead.
. $HTTP_RAW_POST_DATA is no longer available. Use the php://input stream instead.
Standard library changes
========================
. substr() now returns an empty string instead of FALSE when the truncation happens on boundaries.
. call_user_method() and call_user_method_array() no longer exists.
. ob_start() no longer issues an E_ERROR, but instead an E_RECOVERABLE_ERROR in case an
output buffer is created in an output buffer handler.
. The internal sorting algorithm has been improved, what may result in
different sort order of elements that compare as equal.
. Removed dl() function on fpm-fcgi.
. setcookie() with an empty cookie name now issues a WARNING and doesn't send an empty set-cookie header line anymore.
Other
=====
- Curl:
. Removed support for disabling the CURLOPT_SAFE_UPLOAD option. All curl file
uploads must use the curl_file / CURLFile APIs.
- Date:
. Removed $is_dst parameter from mktime() and gmmktime().
- DBA
. dba_delete() now returns false if the key was not found for the inifile
handler, too.
- GMP
. Requires libgmp version 4.2 or newer now.
. gmp_setbit() and gmp_clrbit() now return FALSE for negative indices, making
them consistent with other GMP functions.
- Intl:
. Removed deprecated aliases datefmt_set_timezone_id() and
IntlDateFormatter::setTimeZoneID(). Use datefmt_set_timezone() and
IntlDateFormatter::setTimeZone() instead.
- libxml:
. Added LIBXML_BIGLINES parser option. It's available starting with libxml 2.9.0
and adds suppport for line numbers >16-bit in the error reporting.
- Mcrypt
. Removed deprecated mcrypt_generic_end() alias in favor of
mcrypt_generic_deinit().
. Removed deprecated mcrypt_ecb(), mcrypt_cbc(), mcrypt_cfb() and mcrypt_ofb()
functions in favor of mcrypt_encrypt() and mcrypt_decrypt() with an
MCRYPT_MODE_* flag.
- Session
. session_start() accepts all INI settings as array. e.g. ['cache_limiter'=>'private']
sets session.cache_limiter=private. It also supports 'read_and_close' which closes
session data immediately after read data.
. Save handler accepts validate_sid(), update_timestamp() which validates session
ID existence, updates timestamp of session data. Compatibility of old user defined
save handler is retained.
. SessionUpdateTimestampHandlerInterface is added. validateSid(), updateTimestamp()
is defined in the interface.
. session.lazy_write(default=On) INI setting enables only write session data when
session data is updated.
- Opcache
. Removed opcache.load_comments configuration directive. Now doc comments
loading costs nothing and always enabled.
- OpenSSL:
. Removed the "rsa_key_size" SSL context option in favor of automatically
setting the appropriate size given the negotiated crypto algorithm.
. Removed "CN_match" and "SNI_server_name" SSL context options. Use automatic
detection or the "peer_name" option instead.
- PCRE:
. Removed support for /e (PREG_REPLACE_EVAL) modifier. Use
preg_replace_callback() instead.
- PDO_pgsql:
. Removed PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT attribute in favor of
ATTR_EMULATE_PREPARES.
- Standard:
. Removed string category support in setlocale(). Use the LC_* constants
instead.
. Removed set_magic_quotes_runtime() and its alias magic_quotes_runtime().
- Core:
. 'void' can no longer be used as the name of a class, interface, or trait.
This applies to declarations, class_alias() and use statements.
. (int), intval() where $base is 10 or unspecified, settype(), decbin(),
decoct(), dechex(), integer operators and other conversions now always
respect scientific notation in numeric strings.
(RFC: https://wiki.php.net/rfc/invalid_strings_in_arithmetic)
. The ASCII 0x7F Delete control character is no longer permitted in unquoted
identifiers in source code.
. The following functions may no longer be called dynamically using $func(),
call_user_func(), array_map() or similar:
. extract()
. compact()
. get_defined_vars()
. func_get_args()
. func_get_arg()
. func_num_args()
. parse_str() with one argument
. mb_parse_str() with one argument
. assert() with a string argument
(RFC: https://wiki.php.net/rfc/forbid_dynamic_scope_introspection)
. If the error_log is set to syslog, the PHP error levels are mapped to the
syslog error levels. This brings finer differentiation in the error logs
in contrary to the previous approach where all the errors are loggged with
the notice level only.
- JSON:
. Rejected RFC 7159 incompatible number formats in json_decode string -
top level (07, 0xff, .1, -.1) and all levels ([1.], [1.e1])
. Calling json_decode with 1st argument equal to empty PHP string or value that
after casting to string is empty string (NULL, FALSE) results in JSON syntax error.
- Stream:
. Removed set_socket_blocking() in favor of its alias stream_set_blocking().
- XSL:
. Removed xsl.security_prefs ini option. Use XsltProcessor::setSecurityPrefs()
instead.
. When calling json_encode with JSON_UNESCAPED_UNICODE option, U+2028 and
U+2029 are escaped.
========================================
2. New Features
========================================
- Core
. Added group use declarations.
(RFC: https://wiki.php.net/rfc/group_use_declarations)
. Added null coalesce operator (??).
(RFC: https://wiki.php.net/rfc/isset_ternary)
. Support for strings with length >= 2^31 bytes in 64 bit builds.
. Closure::call() method added (works only with userland classes).
. Added \u{xxxxxx} Unicode Codepoint Escape Syntax for double-quoted strings
and heredocs.
. define() now supports arrays as constant values, fixing an oversight where
define() did not support arrays yet const syntax did.
. Added the comparison operator (<=>), aka the spaceship operator.
(RFC: https://wiki.php.net/rfc/combined-comparison-operator)
. Added the yield from operator for delegating Generators like coroutines.
(RFC: https://wiki.php.net/rfc/generator-delegation)
. Reserved keywords can now be used in various new contexts.
(RFC: https://wiki.php.net/rfc/context_sensitive_lexer)
. Added support for scalar type declarations and strict mode using
declare(strict_types=1) (RFC: https://wiki.php.net/rfc/scalar_type_hints_v5)
. Added support for cryptographically secure user land RNG
(RFC: https://wiki.php.net/rfc/easy_userland_csprng)
- Opcache
. Added second level file based opcode cache. It may be enabled by setting
opcache.file_cache=<DIR> configuration directive in php.ini. The second
level cache may improve performance when SHM is full, at server restart or
SHM reset. In addition, it's possibe to use file cache without SHM at all,
using opcache.file_cache_only=1 (this may be useful for sharing hosting),
and disable file cache consistency check, to speedup loading at the cost of
safety, using opcache.file_cache_consistency_checks=0.
. Added ability to move PHP code pages (PHP TEXT segment) into HUGE pages.
It's possible to enable/disable this feature in php.ini through
opcache.huge_code_pages=0/1. OS should be configured to provide huge pages.
. Added Windows only opcache.file_cache_fallback=1 ini option, which implies
the implemented fallback mechanism. When OPcache was not able to reattach
the shared memory segment to the desired address and opcache.file_cache
is on, opcache.file_cache_only=1 will be automatically enforced.
- OpenSSL
. Added "alpn_protocols" SSL context option allowing encrypted client/server
streams to negotiate alternative protocols using the ALPN TLS extension when
built against OpenSSL 1.0.2 or newer. Negotiated protocol information is
accessible through stream_get_meta_data() output.
- Reflection
. Added a ReflectionGenerator class (yield from Traces, current file/line,
etc.)
. Added a ReflectionType class to better support the new return type and
scalar type declarations features. The new ReflectionParameter::getType()
and ReflectionFunctionAbstract::getReturnType() methods both return an
instance of ReflectionType.
- Stream:
. New Windows only stream context options was added to allow blocking reads
on pipes. To enable it, pass array("pipe" => array("blocking" => true))
when creating the stream context. Be aware, that this option can under
circumstances cause dead locks on the pipe buffer. However it can be useful
in several CLI use case scenarios.
. Added void return type, which requires that a function not return a value.
(RFC: https://wiki.php.net/rfc/void_return_type)
. String offset access now supports negative references, which will be
counted from the end of the string.
(RFC: https://wiki.php.net/rfc/negative-string-offsets)
. Added a form of the list() construct where keys can be specified.
(RFC: https://wiki.php.net/rfc/list_keys)
. Added [] = as alternative construct to list() =.
(RFC: https://wiki.php.net/rfc/short_list_syntax)
. Number operators taking numeric strings now emit "A non well formed numeric
value encountered" E_NOTICEs for leading-numeric strings, and "A
non-numeric value encountered" E_WARNINGs for non-numeric strings.
This always applies to the +, -, *, /, **, %, << and >> operators, and
their assignment counterparts +=, -=, *=, /=, **=, %=, <<= and >>=.
For the bitwise operators |, & and ^, and their assignment counterparts
|=, &= and ^=, this only applies where only one operand is a string.
Note that this never applies to the bitwise NOT operator, ~, which does not
handle numeric strings, nor to the increment and decrement operators
++ and --, which have a unique approach to handling numeric strings.
(RFC: https://wiki.php.net/rfc/invalid_strings_in_arithmetic)
========================================
3. Changes in SAPI modules
========================================
- FPM
. Fixed bug #65933 (Cannot specify config lines longer than 1024 bytes).
. Listen = port now listen on all addresses (IPv6 and IPv4-mapped).
========================================
4. Deprecated Functionality
========================================
- Core
. PHP 4 style constructors, where the constructor name is the same as the
class name, are now deprecated.
. Static calls to non-static methods are now deprecated.
- OpenSSL
. The "capture_session_meta" SSL context option is now deprecated. Meta
data concerning active crypto on a stream resource is now accessible
through the return result from stream_get_meta_data().
========================================
5. Changed Functions
========================================
- unserialize():
. Added second parameter for unserialize function
(RFC: https://wiki.php.net/rfc/secure_unserialize) allowing to specify
acceptable classes:
unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);
- proc_open():
. The maximum number of pipes used by proc_open() was previously limited by
hardcoded value of 16. This limit is now removed and the number of pipes is
effectively limited by the amount of memory available to PHP.
. New Windows only configuration option "blocking_pipes" can be used to
force blocking reads on child process pipes. This covers several
edge cases in CLI usage however can lead to dead locks. Also, this
correlates with the new stream context options for pipes.
- array_column():
The function now supports an array of objects as well as two-dimensional
arrays. Only public properties are considered, and objects that make use of
__get() for dynamic properties must also implement __isset().
- stream_context_create()
It accepts now a Windows only configuration
array("pipe" => array("blocking" => <boolean>)) which forces blocking reads
on pipes. This option should be used carefully because due to the
platform restrictions dead locks on pipe buffers are possible.
- dirname()
A new optional argument ($levels) allow to go up various times
dirname(dirname($foo)) => dirname($foo, 2);
- debug_zval_dump
It prints now "int" instead of "long", and "float" instead of "double".
- get_headers() has an extra parameter which allows passing a custom stream
context.
- The first $varname argument for getenv() is no longer mandatory, the
current environment variables will be returned as an associative array
when omitted.
- json_encode() accepts new option JSON_UNESCAPED_LINE_TERMINATORS that
disables escaping of U+2028 and U+2029 characters when
JSON_UNESCAPED_UNICODE is supplied.
- long2ip() accepts integer as parameter now
- pg_last_notice() accepts optional long parameter to specify operation.
PGSQL_NOTICE_LAST - Get last notice (Default)
PGSQL_NOTICE_ALL - Get all stored notices
PGSQL_NOTICE_CLEAR - Remove all stored notices
It returns empty string or array on successful PGSQL_NOTICE_LAST/ALL calls.
It returned FALSE for empty notice previously.
- pg_fetch_all() accepts 2nd optional result type parameter like
pg_fetch_row().
- pg_select() accepts 4th optional result type parameter like pg_fetch_row().
- parse_url() is more restrictive now and supports RFC3986.
- unpack() accepts an additional optional $offset argument. '@' format code
(that specifes an absolute position) is applyed to input data after
the $offset argument.
- strpos(), stripos(), substr_count(), grapheme_strpos(), grapheme_stripos(),
grapheme_extract(), iconv_strpos(), mb_strimwidth(), mb_ereg_search_setpos(),
mb_strpos() and mb_stripos() now accept negative string offsets.
- substr_count() and mb_strimwidth() additionally also accept negative length.
- file_get_contents() accepts a negative seek offset if the stream is seekable.
========================================
6. New Functions
========================================
- GMP
. Added gmp_random_seed().
- PCRE:
. Added preg_replace_callback_array function
(RFC: https://wiki.php.net/rfc/preg_replace_callback_array)
- Standard
. Added intdiv() function for integer division.
. Added error_clear_last() function to reset error state.
- Zip:
. Added ZipArchive::setCompressionIndex() and ZipArchive::setCompressionName()
for setting the compression method.
- Zlib:
. Added deflate_init(), deflate_add(), inflate_init(), inflate_add()
functions allowing incremental/streaming compression/decompression.
========================================
7. New Classes and Interfaces
========================================
- ReflectionGenerator
- ReflectionType
========================================
8. Removed Extensions and SAPIs
========================================
- sapi/aolserver
- sapi/apache
- sapi/apache_hooks
- sapi/apache2filter
- sapi/caudium
- sapi/continuity
- sapi/isapi
- sapi/milter
- sapi/nsapi
- sapi/phttpd
- sapi/pi3web
- sapi/roxen
- sapi/thttpd
- sapi/tux
- sapi/webjames
- ext/mssql
- ext/mysql
- ext/sybase_ct
- ext/ereg
For more details see
https://wiki.php.net/rfc/removal_of_dead_sapis_and_exts
https://wiki.php.net/rfc/remove_deprecated_functionality_in_php7
NOTE: NSAPI was not voted in the RFC, however it was removed afterwards. It turned
out, that the corresponding SDK isn't available anymore.
========================================
9. Other Changes to Extensions
========================================
- Mhash
Mhash is not an extension anymore, use function_exists("mhash") to check whether
it is avaliable.
- GD
The bundled libgd requires libwebp instead of libvpx for the WebP functionality.
- Openssl
minimum supported OpenSSL version series was raised to 0.9.8
- SQLite3:
. Upgraded bundled SQLite lib to 3.9.2
========================================
10. New Global Constants
========================================
- Core
. PHP_INT_MIN added.
- JSON:
. JSON_UNESCAPED_LINE_TERMINATORS
- PCRE
. This error constant is added to signal errors due to stack size limitations
when PCRE JIT support is enabled:
. PREG_JIT_STACKLIMIT_ERROR
- Zlib
. These constants are added to control flush behavior with the new
incremental deflate_add() and inflate_add() functions:
. ZLIB_NO_FLUSH
. ZLIB_PARTIAL_FLUSH
. ZLIB_SYNC_FLUSH
. ZLIB_FULL_FLUSH
. ZLIB_BLOCK
. ZLIB_FINISH
- GD
. T1Lib support removed, thus lifting the optional dependency on T1Lib, the
following is therefore not available anymore:
Functions:
- imagepsbbox()
- imagepsencodefont()
- imagepsextendedfont()
- imagepsfreefont()
- imagepsloadfont()
- imagepsslantfont()
- imagepstext()
Resources:
- 'gd PS font'
- 'gd PS encoding'
- Pgsql:
PGSQL_NOTICE_LAST
PGSQL_NOTICE_ALL
PGSQL_NOTICE_CLEAR
========================================
11. Changes to INI File Handling
========================================
- Core
. Removed asp_tags ini directive. Trying to enable it will result in a fatal
error.
. Removed always_populate_raw_post_data ini directive.
========================================
12. Windows Support
========================================
- Core
. Support for native 64 bit integers in 64 bit builds.
. Support for large files in 64 bit builds.
. Support for getrusage()
- Core:
. Support for ftok()
- ftp
. The ftp extension is always shipped shared
. For SSL support, the dependency on the openssl extension was abolished. Instead
it depends alone on the openssl library. If it's present at the compile time,
ftp_ssl_connect() is enabled automatically.
- FCGI
. PHP_FCGI_CHILDREN is respected. If this environment variable is defined,
the first php-fcgi.exe process will exec the specified number of children.
Those will share the same TCP socket.
- imap
. Static building of ext/imap is disabled
- readline:
. The readline extension is supported through the WinEditLine library
(http://mingweditline.sourceforge.net/). Thereby, the interactive CLI
shell is supported as well (php.exe -a).
- odbc
. The odbc extension is always shipped shared
It is well known, but nevertheless is worth mentioning again, that
the readline extension is not thread safe and will never be. Thus,
the usage of it with any true thread safe SAPI (like Apache mod_winnt) is
strongely discouraged.
========================================
13. Other Changes
========================================
- Core
. Instead of being undefined and platform-dependent, NaN and Infinity will
always be zero when cast to integer.
. Calling a method on a non-object now raises a catchable error instead of a
fatal error; see: https://wiki.php.net/rfc/catchable-call-to-member-of-non-object
. Error messages for zend_parse_parameters, type hints and conversions now
always say "integer" and "float" instead of "long" and "double".
. Output buffering now continues to work for an aborted connection if
ignore_user_abort is set to true.
. Zend Extensions API was extended with zend_extension.op_array_persist_calc()
and zend_extensions.op_array_persist() handlers. They allow to store (or
reset) associated with op_array addition information in Opcache Shared
Memory.
. zend_internal_function.reserved[] array was introduced to allow association
of aditional information with internal functions. In PHP-5 it was possible
to use zend_function.op_array.reserved[] even for internal functions, but
now we don't allocate extra space.
+1 -290
View File
@@ -1,25 +1,7 @@
PHP 7.0 INTERNALS UPGRADE NOTES
PHP 7.1 INTERNALS UPGRADE NOTES
0. Wiki Examples
1. Internal API changes
e. New data types
f. zend_parse_parameters() specs
g. sprintf() formats
h. HashTable API
i. New portable macros for large file support
j. New portable macros for integers
k. get_class_entry object handler info
l. get_class_name object handler info
m. Other portable macros info
n. ZEND_ENGINE_2 removal
o. Updated final class modifier
p. TSRM changes
q. gc_collect_cycles() is now hookable
r. PDO uses size_t for lengths
s. Resource API changes
t. Optimized strings concatenation.
u. Streams changes
v. Sort algorithm changes
2. Build system changes
a. Unix build system changes
@@ -39,219 +21,6 @@ changes. See: https://wiki.php.net/phpng-upgrading
1. Internal API changes
========================
e. New data types
String
Besides the old way of accepting the strings with 's', the new 'S' ZPP spec
was introduced. It expects an argument of the type zend_string *. String lengths
in it are bound to the size_t datatype.
Integer types
Integers do no more depend on the firm 'long' type. Instead a platform
dependent integer type is used, it is called zend_long. That datatype is
defined dynamically to guarantee the consistent 64 bit support. The zval
field representing user land integer it bound to zend_long.
Signed integer is defined as zend_long, unsigned integer as zend_ulong
inside Zend.
Other datatypes
zend_off_t - portable off_t analogue
zend_stat_t - portable 'struct stat' analogue
These datatypes are declared to be portable across platforms. Thus, direct
usage of the functions like fseek, stat, etc. as well as direct usage of
off_t and struct stat is strongly not recommended. Instead the portable
macros should be used.
zend_fseek - portable fseek equivalent
zend_ftell - portable ftell equivalent
zend_lseek - portable lseek equivalent
zend_fstat - portable fstat equivalent
zend_stat - portable stat equivalent
f. zend_parse_parameters() specs
The new spec 'S' introduced, which expects an argument of type zend_string *.
The 'l' spec expects a parameter of the type zend_long, not long anymore.
The 's' spec expects parameters of the type char * and size_t, no int anymore.
g. sprintf() formats
New printf modifier 'p' was implemented to platform independently output zend_long,
zend_ulong and php_size_t datatypes. That modifier can be used with 'd', 'u', 'x' and 'o'
printf format specs with spprintf, snprintf and the wrapping printf implementations.
%pu is sufficient for both zend_ulong and php_size_t. the code using %p spec to output
pointer address might need to be enclosed into #ifdef when it unlickily followed by 'd',
'u', 'x' or 'o'.
The only exceptions are the snprintf and zend_sprintf functions yet, because in some cases
they can use the implemenations available on the system, not the PHP one. With snprintf the
macros ZEND_LONG_FMT and ZEND_ULONG_FMT should be used.
h. HashTable API
Datatype for array indexes was changed to zend_ulong, for string keys to zend_string *.
i. New portable macros for large file support
Function(s) Alias Comment
stat, _stat64 zend_stat for use with zend_stat_t
fstat, _fstat64 zend_fstat for use with zend_stat_t
lseek, _lseeki64 zend_lseek for use with zend_off_t
ftell, _ftelli64 zend_ftell for use with zend_off_t
fseek, _fseeki64 zend_fseek for use with zend_off_t
j. New portable macros for integers
Function(s) Alias Comment
snprintf with "%ld" or "%lld", _ltoa_s, _i64toa_s ZEND_LTOA for use with zend_long
atol, atoll, _atoi64 ZEND_ATOL for use with zend_long
strtol, strtoll, _strtoi64 ZEND_STRTOL for use with zend_long
strtoul, strtoull, _strtoui64 ZEND_STRTOUL for use with zend_long
abs, llabs, _abs64 ZEND_ABS for use with zend_long
- ZEND_LONG_MAX replaces LONG_MAX where appropriate
- ZEND_LONG_MIN replaces LONG_MIN where appropriate
- ZEND_ULONG_MAX replaces ULONG_MAX where appropriate
- SIZEOF_ZEND_LONG reworked SIZEOF_ZEND_LONG representing the size of zend_long datatype
- ZEND_SIZE_MAX Max value of size_t
- Z_L casts an integral constant to zend_long
- Z_UL casts an integral constant to zend_ulong
The macro ZEND_ENABLE_ZVAL_LONG64 reveals whether zval operates on 64 or 32 bit integer.
k. The get_class_entry object handler is no longer available. Instead
zend_object.ce is always used.
l. The get_class_name object handler is now only used for displaying class
names in debugging functions like var_dump(). It is no longer used in
get_class(), get_parent_class() or similar.
The handler is now obligatory, no longer accepts a `parent` argument and
must return a non-NULL zend_string*, which will be released by the caller.
m. Other portable macros info
ZEND_SECURE_ZERO - zeroes chunk of memory
ZEND_VALID_SOCKET - validates a php_socket_t variable
ZEND_FASTCALL is defined to use __vectorcall convention on VS2013 and above
ZEND_NORETURN is defined as __declspec(noreturn) on VS
n. The ZEND_ENGINE_2 macro has been removed. A ZEND_ENGINE_3 macro has been added.
o. Removed ZEND_ACC_FINAL_CLASS in favour of ZEND_ACC_FINAL, turning final class
modifier now a different class entry flag. Update your extensions.
p. TSRM changes
The TSRM layer undergone significant changes. It is not necessary anymore to
pass the tsrm_ls pointer explicitly. The TSRMLS_* macros should not be used
in any new developments.
The recommended way accessing globals in TS builds is by implementing it
to use a local thread unique pointer to the corresponding data pool. These
are the new macros that serve to achieve this goal:
- ZEND_TSRMG - based on TSRMG and if static pointer for data pool access is
implemented, will use it
- ZEND_TSRMLS_CACHE_EXTERN - to be used in a header shared across multiple
C/C++ files
- ZEND_TSRMLS_CACHE_DEFINE - to be used in the main extension C/C++ file
- ZEND_TSRMLS_CACHE_UPDATE - to be integrated at the top of the globals
ctor or RINIT function
- ZEND_ENABLE_STATIC_TSRMLS_CACHE - to be used in the config.[m4|w32] for
enabling the globals access per thread unique pointer
- TSRMLS_CACHE - expands to the variable name which links to the thread
unique data pool
Note that usually it will work without implementing the globals access per
a thread unique pointer, however it might cause a slowdown. The reason is
that the access model to the extension/SAPI own globals as well as the
access to the core globals is determined in the compilation phase depending
on whether ZEND_ENABLE_STATIC_TSRMLS_CACHE macro is defined.
Due to the current compiler evolution state, the TSRMLS_CACHE pointer
(when implemented) has to be present and updated in every binary unit which
is not compiled statically into PHP. So any DLL, DSO, EXE, etc. has to take
care about defining and updating it's TSRMLS cache. An update should happen
before any globals was accessed.
Porting an extension or SAPI is usually as easy as removing all the TSRMLS_*
occurrences and integrating the macros mentioned above. However if tsrm_ls
is used explicitly, its usage can be considered obsolete in most cases.
Additionally, if an extension triggers its own threads, TSRMLS_CACHE shouldn't
be passed to that threads directly.
When working with CTOR/DTOR for the extension globals, only the data passed
as parameters should be touched. For example, don't use code like
free(MYEXT_G(vars)); inside globals destructor, as it possibly can destroy
the data from a wrong thread. Instead use the pointer to the data delivered
into the destructor. So the previous example could look like
free(my_struct->vars); given the income was casted to (struct my_struct *).
A new macro was introduced to simplify the declaration to the extension
globals. A simplified declaration looks as follows
#define MYEXT_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(myext, v)
Another new macro ZEND_MODULE_GLOBALS_BULK(myext) delivers the corresponding
globals struct as a whole.
Two new storage specifiers was introduced.
ZEND_EXT_TLS - expand to an appropriate thread specific storage specifier in
the thread safe build, expands to empty in a non thread safe
build.
ZEND_TLS - expands to an appropriate thread specific storage specifier
with static visibility in the thread safe build, expands to
static specifier in a non thread safe build.
Variables declared with these storage specifiers can not be shared across
threads. While ZEND_TLS enforces the local scope visibility, ZEND_EXT_TLS
pertains to the visiblity across several compilation units. In both cases,
there's no portable way to achieve the visibility across shared objects.
Thus, these specifiers are not compatible with ZEND_API and PHPAPI specifiers.
q. gc_collect_cycles() is now a function pointer, and can be replaced in the
same manner as zend_execute_ex() if needed (for example, to include the
time spent in the garbage collector in a profiler). The default
implementation has been renamed to zend_gc_collect_cycles(), and is
exported with ZEND_API.
r. In accordance with general use of size_t as string length, all PDO API
functions now use size_t for string length.
s. Removed ZEND_REGISTER/FETCH_RESOURCE, use zend_fetch_resource and
and zend_register_resource instead, zend_fetch_resource accepts a zend_resource *
as first argument, if you still need to fetch a resource from zval, use
zend_fetch_resource_ex. More details can be found in Zend/zend_list.c.
t. Optimized strings concatenation.
ZEND_ADD_STRING/VAR/CHAR are replaced with ZEND_ROPE_INIT, ZEND_ROPE_ADD,
ZEND_ROPE_END.
Instead of reallocation and copying string on each ZEND_ADD_STRING/VAR/CAHR,
collect all the strings and then allocate and construct the resulting string once.
u. Streams changes
- It is possible to do blocking reads on Windows pipes. It can be done either
using context stream option PHP_STREAM_OPTION_PIPE_BLOCKING or
adding STREAM_USE_BLOCKING_PIPE when opening the stream.
v. Sort algorithm changes
- Improved zend_qsort(using hybrid sorting algo) for better performance,
and also renamed zend_qsort to zend_sort.
- Added stable sorting algo zend_insert_sort.
w. Tick functions internal API change
Tick functions have different declaration now. They expect a single
parameter while before they were parameterless. When registering the
tick function a value for this parameter must be passed. This value will be
provided to the tick function on every execution.
========================
2. Build system changes
========================
@@ -260,65 +29,7 @@ changes. See: https://wiki.php.net/phpng-upgrading
b. Windows build system changes
- Besides Visual Studio, building with Clang or Intel Composer is now
possible. To enable an alternative toolset, add the option
--with-toolset=[vs,clang,icc] to the configure line. The default
toolset is vs. Still clang or icc need the correct environment
which involves many tools from the vs toolset.
The toolset option is supported by phpize as well.
AWARENESS The only recommended and supported toolset to produce production
ready binaries is Visual Studio. Still other compilers can be used now for
testing and analyzing purposes.
- configure.js now produces response files which are passed to the linker
and library manager. This solves the issues with the long command lines
which can exceed the OS limit.
- with clang toolset, an option --with-uncritical-warn-choke is available,
which suppresses the most frequent false positive warnings
- the --with-mp option will by default utilize all the available cores. It's
enabled by default for release builds and can be disabled with the special
"disable" keyword.
========================
3. Module changes
========================
Session:
- PS_MOD_UPDATE_TIMESTAMP() session save handler definition is added. New
save handler should use PS_MOD_UPDATE_TIMESTAMP() definition. Save handler
must not refer/change PS() variables directly from save handler. Use
parameters.
- PS_MOD()/PS_MOD_SID() macro exist only for transition. Beware these
save handlers are less secure and slower than PS_MOD_UPDATE_TIMESTAMP().
- PS(invalid_session_id) was removed. It was never worked as it supposed.
To report invalid session ID, use PS_VALIDATE_SID() handler.
- PS_VALIDATE_SID() defines session ID validation handler. This handler
must validate if requested session ID exists in session data storage or not.
Do not access PS(id) directly, but use this handler and it's parameter.
- PS_UPDATE_TIMESTAMP() defines timestamp updating handler. This handler
must update session data timestamp for GC if it is needed. e.g. Memcache
updates timestamp on read, so it does not need to update timestamp. Return
SUCCESS simply for this case.
- PS_CREATE_SID() should check session ID collision. Return NULL for failure.
- More documentation can be found in ext/session/mod_files.c as comments.
mod_files.c may be used as reference implementation.
Openssl:
- several ext/openssl functions require the inclusion of the applink shim
as documented in the OpenSSL FAQ https://www.openssl.org/support/faq.html#PROG2
to properly work on Windows. While this primarily affects the OpenSSL
functionality, the shim needs to be included into the executable file
which loads the extension DLL, not into the extension DLL itself. Alternatively
it can be compiled and linked with the main program as a separate object file.
More information and explanation in the linked OpenSSL FAQ.
Thus, this primarily affects any WAMP or other redistributions bundling the
official PHP release zipballs or building from sources. The applink shim is
already integrated with all the PHP executables from the official distribution
starting with 7.0.0beta1.
@@ -0,0 +1,43 @@
--TEST--
Using indirect append on ArrayAccess object
--FILE--
<?php
class AA implements ArrayAccess {
private $data = [];
public function &offsetGet($name) {
if (null === $name) {
return $this->data[];
} else {
return $this->data[$name];
}
}
public function offsetSet($name, $value) {
$this->data[$name] = $value;
}
public function offsetUnset($name) {}
public function offsetExists($name) {}
}
$aa = new AA;
$aa[3] = 1;
$aa[][][0] = 2;
var_dump($aa);
?>
--EXPECT--
object(AA)#1 (1) {
["data":"AA":private]=>
array(2) {
[3]=>
int(1)
[4]=>
array(1) {
[0]=>
array(1) {
[0]=>
int(2)
}
}
}
}
+8
View File
@@ -38,11 +38,19 @@ var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Warning: A non-numeric value encountered in %s on line %d
int(75636)
Notice: A non well formed numeric value encountered in %s on line %d
int(951858)
int(48550510)
float(75661.68)
Warning: A non-numeric value encountered in %s on line %d
int(75636)
Notice: A non well formed numeric value encountered in %s on line %d
int(951858)
int(48550510)
float(75661.68)
+5
View File
@@ -19,8 +19,13 @@ var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Warning: A non-numeric value encountered in %s on line %d
Exception: Unsupported operand types
Warning: A non-numeric value encountered in %s on line %d
Fatal error: Uncaught Error: Unsupported operand types in %s:%d
Stack trace:
#0 {main}
+15
View File
@@ -0,0 +1,15 @@
--TEST--
closure binding to anonymous class
--FILE--
<?php
$class = new class {};
$foo = function() {
return $this;
};
$closure = Closure::bind($foo, $class, $class);
var_dump($closure());
?>
--EXPECTF--
object(class@anonymous)#1 (0) {
}
+16
View File
@@ -0,0 +1,16 @@
--TEST--
anonymous class trait binding
--FILE--
<?php
trait TaskTrait {
function run() {
return 'Running...';
}
}
$class = new class() {
use TaskTrait;
};
var_dump($class->run());
?>
--EXPECTF--
string(10) "Running..."
@@ -0,0 +1,36 @@
--TEST--
Array must be separated if unpacking by reference
--FILE--
<?php
function inc(&... $args) {
foreach ($args as &$arg) {
$arg++;
}
}
$arr = [1, 2];
$arr[] = 3;
$arr2 = $arr;
inc(...$arr);
var_dump($arr);
var_dump($arr2);
?>
--EXPECT--
array(3) {
[0]=>
int(2)
[1]=>
int(3)
[2]=>
int(4)
}
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
+1 -1
View File
@@ -154,7 +154,7 @@ Warning: assert(): assert(0 && ($a = function () {
$x = $a ? $b : $c;
$x = $a ?: $c;
$x = $a ?? $b;
list($a, $b, $c) = [1, 2 => 'x', 'z' => 'c'];
[$a, $b, $c] = [1, 2 => 'x', 'z' => 'c'];
@foo();
$y = clone $x;
yield 1 => 2;
@@ -0,0 +1,19 @@
--TEST--
Misoptimization when variable is modified by assert()
--INI--
zend.assertions=1
--FILE--
<?php
function test() {
$i = 0;
assert('$i = new stdClass');
$i += 1;
var_dump($i);
}
test();
?>
--EXPECTF--
Notice: Object of class stdClass could not be converted to int in %s on line %d
int(2)
@@ -0,0 +1,11 @@
--TEST--
Serialization of backtick literal is incorrect
--INI--
zend.assertions=1
--FILE--
<?php
assert_options(ASSERT_WARNING);
assert(false && `echo -n ""`);
--EXPECTF--
Warning: assert(): assert(false && `echo -n ""`) failed in %s%east_serialize_backtick_literal.php on line %d
+9 -2
View File
@@ -6,9 +6,16 @@ $a = new stdClass();
$x = "";
$a->$x = "string('')";
var_dump($a);
$a->{"\0"} = 42;
var_dump($a);
?>
--EXPECTF--
Fatal error: Uncaught Error: Cannot access empty property in %sbug29015.php:4
object(stdClass)#1 (1) {
[""]=>
string(10) "string('')"
}
Fatal error: Uncaught Error: Cannot access property started with '\0' in %s:%d
Stack trace:
#0 {main}
thrown in %sbug29015.php on line 4
thrown in %s on line %d
+1 -1
View File
@@ -3,7 +3,7 @@ Bug #29883 (isset gives invalid values on strings)
--FILE--
<?php
$x = "bug";
var_dump(isset($x[-1]));
var_dump(isset($x[-10]));
var_dump(isset($x["1"]));
echo $x["1"]."\n";
?>
+1 -1
View File
@@ -18,7 +18,7 @@ var_dump(isset($a['b']));
$simpleString = "Bogus String Text";
echo isset($simpleString->wrong)?"bug\n":"ok\n";
echo isset($simpleString["wrong"])?"bug\n":"ok\n";
echo isset($simpleString[-1])?"bug\n":"ok\n";
echo isset($simpleString[-20])?"bug\n":"ok\n";
echo isset($simpleString[0])?"ok\n":"bug\n";
echo isset($simpleString["0"])?"ok\n":"bug\n";
echo isset($simpleString["16"])?"ok\n":"bug\n";
+2 -1
View File
@@ -8,7 +8,8 @@ class Thing {}
function boom()
{
$reader = xml_parser_create();
xml_set_object($reader, new Thing());
$thing = new Thing();
xml_set_object($reader, $thing);
die("ok\n");
xml_parser_free($reader);
}
+1 -2
View File
@@ -10,5 +10,4 @@ class foo {
$obj = new foo("Hello world");
?>
--EXPECTF--
Fatal error: Cannot re-assign $this in %sbug41117_1.php on line 3
Fatal error: Cannot use $this as parameter in %s on line %d
+1 -1
View File
@@ -9,7 +9,7 @@ $foo[0]->bar = "xyz";
echo "Done\n";
?>
--EXPECTF--
Fatal error: Uncaught Error: Cannot use string offset as an array in %s:%d
Fatal error: Uncaught Error: Cannot use string offset as an object in %s:%d
Stack trace:
#0 {main}
thrown in %s on line %d
+1 -1
View File
@@ -7,7 +7,7 @@ $b = &$a[1];
$b = "f";
echo $a;
--EXPECTF--
Fatal error: Uncaught Error: Cannot create references to/from string offsets nor overloaded objects in %sbug49866.php:3
Fatal error: Uncaught Error: Cannot create references to/from string offsets in %sbug49866.php:3
Stack trace:
#0 {main}
thrown in %sbug49866.php on line 3
+3 -3
View File
@@ -10,14 +10,14 @@ class A {
}
$a = new A();
$prop = null;
$prop = "\0";
unset($a->$prop);
?>
--EXPECTF--
Fatal error: Uncaught Error: Cannot access empty property in %s:%d
Fatal error: Uncaught Error: Cannot access property started with '\0' in %s:%d
Stack trace:
#0 %s(%d): A->__unset('')
#0 %s(%d): A->__unset('\x00')
#1 {main}
thrown in %s on line %d
+3 -3
View File
@@ -10,14 +10,14 @@ class A {
}
$a = new A();
$prop = null;
$prop = "\0";
$a->$prop = 2;
?>
--EXPECTF--
Fatal error: Uncaught Error: Cannot access empty property in %s:%d
Fatal error: Uncaught Error: Cannot access property started with '\0' in %s:%d
Stack trace:
#0 %s(%d): A->__set('', 2)
#0 %s(%d): A->__set('\x00', 2)
#1 {main}
thrown in %s on line %d
+3 -3
View File
@@ -10,14 +10,14 @@ class A {
}
$a = new A();
$prop = null;
$prop = "\0";
var_dump($a->$prop);
?>
--EXPECTF--
Fatal error: Uncaught Error: Cannot access empty property in %s:%d
Fatal error: Uncaught Error: Cannot access property started with '\0' in %s:%d
Stack trace:
#0 %s(%d): A->__get('')
#0 %s(%d): A->__get('\x00')
#1 {main}
thrown in %s on line %d
+1 -1
View File
@@ -8,7 +8,7 @@ class MyClass {
$this->myRef = $value;
}
}
$myGlobal=new MyClass($myGlobal);
$myGlobal=new MyClass();
$myGlobal->myRef=&$myGlobal;
$myGlobal->myNonExistentProperty="ok\n";
echo $myGlobal;
+45
View File
@@ -0,0 +1,45 @@
--TEST--
Bug #53432: Assignment via string index access on an empty string converts to array
--FILE--
<?php
$str = '';
var_dump($str[0] = 'a');
var_dump($str);
$str = '';
var_dump($str[5] = 'a');
var_dump($str);
$str = '';
var_dump($str[-1] = 'a');
var_dump($str);
$str = '';
var_dump($str['foo'] = 'a');
var_dump($str);
$str = '';
try {
var_dump($str[] = 'a');
} catch (Error $e) {
echo "Error: {$e->getMessage()}\n";
}
var_dump($str);
?>
--EXPECTF--
string(1) "a"
string(1) "a"
string(1) "a"
string(6) " a"
Warning: Illegal string offset: -1 in %s on line %d
NULL
string(0) ""
Warning: Illegal string offset 'foo' in %s on line %d
string(1) "a"
string(1) "a"
Error: [] operator not supported for strings
string(0) ""
+1 -1
View File
@@ -23,4 +23,4 @@ class B extends A {
}
?>
--EXPECTF--
Warning: Declaration of B::foo($var) should be compatible with A::foo() in %sbug62358.php on line %d
Fatal error: Declaration of B::foo($var) must be compatible with I::foo() in %sbug62358.php on line 17
+20
View File
@@ -0,0 +1,20 @@
--TEST--
Bug #62814: It is possible to stiffen child class members visibility
--FILE--
<?php
class A {
private function test() { }
}
class B extends A {
protected function test() { }
}
class C extends B {
private function test() { }
}
?>
--EXPECTF--
Fatal error: Access level to C::test() must be protected (as in class B) or weaker in %s on line %d
+8 -3
View File
@@ -57,8 +57,13 @@ $bar = foo3();
string(9) "not catch"
NULL
Fatal error: Uncaught Error: Class 'NotExists' not found in %sbug65784.php:%d
Fatal error: Uncaught Exception: not catched in %sbug65784.php:42
Stack trace:
#0 %s(%d): foo3()
#0 %sbug65784.php(52): foo3()
#1 {main}
thrown in %sbug65784.php on line %d
Next Error: Class 'NotExists' not found in %sbug65784.php:46
Stack trace:
#0 %sbug65784.php(52): foo3()
#1 {main}
thrown in %sbug65784.php on line 46
+1
View File
@@ -28,6 +28,7 @@ class Bar {
}
public function __destruct() {
if (!isset(self::$instance)) return;
Foo::getInstance();
}
}
+1 -1
View File
@@ -18,4 +18,4 @@ $test = new Foo();
var_dump($test instanceof Baz);
?>
--EXPECTF--
Fatal error: Access level to Bar::bad() must be public (as in class Baz) in %sbug69467.php on line %d
Fatal error: Access level to Foo::bad() must be public (as in class Baz) in %sbug69467.php on line %d
+19
View File
@@ -0,0 +1,19 @@
--TEST--
Bug #69537 (__debugInfo with empty string for key gives error)
--FILE--
<?php
class Foo {
public function __debugInfo(){
return ['' => 1];
}
}
var_dump(new Foo);
?>
--EXPECTF--
object(Foo)#%d (%d) {
[""]=>
int(1)
}
-2
View File
@@ -27,8 +27,6 @@ $c10 = new C10;
var_dump($c10[] += 5);
--EXPECTF--
Inside C10::offsetGet
Notice: Undefined variable: offset in %sbug69955.php on line 10
NULL
Inside C10::offsetSet
+42
View File
@@ -0,0 +1,42 @@
--TEST--
Collection of some cycles on unfinished generators
--FILE--
<?php
// CV
function gen1() {
$gen = yield;
yield;
}
$gen = gen1();
$gen->send($gen);
// This
class Test {
public $gen;
public function gen2() {
yield;
}
}
$test = new Test;
$test->gen = $test->gen2();
// Closure object
$gen3 = (function() use (&$gen3) {
yield;
})();
// Yield from array
function gen4() {
yield from [yield];
}
$gen = gen4();
$gen->send($gen);
?>
===DONE===
--EXPECT--
===DONE===
+44
View File
@@ -0,0 +1,44 @@
--TEST--
Generator cycle collection edge cases
--FILE--
<?php
// Extra args
function gen1() {
yield;
}
$obj = new stdClass;
$obj->gen = gen1($obj);
// Symtable
function gen2() {
$varName = 'a';
$$varName = yield;
yield;
}
$gen = gen2();
$gen->send($gen);
// Symtable indirect
function gen3() {
$varName = 'a';
$$varName = 42;
$var = yield;
yield;
}
$gen = gen3();
$gen->send($gen);
// Yield from root
function gen4() {
yield from yield;
}
$gen = gen4();
$gen2 = gen4($gen);
$gen2->send([1, 2, 3]);
$gen->send($gen2);
?>
===DONE===
--EXPECT--
===DONE===
+1 -1
View File
@@ -34,4 +34,4 @@ try {
string(36) "Cannot use string offset as an array"
string(27) "Cannot unset string offsets"
string(41) "Only variables can be passed by reference"
string(64) "Cannot increment/decrement overloaded objects nor string offsets"
string(41) "Cannot increment/decrement string offsets"
+1 -1
View File
@@ -15,7 +15,7 @@ var_dump($c);
?>
--EXPECTF--
Warning: Cannot bind internal method SplDoublyLinkedList::count() to object of class cls in %s on line %d
Warning: Cannot bind method SplDoublyLinkedList::count() to object of class cls in %s on line %d
NULL
Warning: Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure() in %s on line %d
+47
View File
@@ -0,0 +1,47 @@
--TEST--
Bug #70918 (Segfault using static outside of class scope)
--FILE--
<?php
try {
static::x;
} catch (Error $e) {
var_dump($e->getMessage());
}
try {
parent::x;
} catch (Error $e) {
var_dump($e->getMessage());
}
try {
self::x;
} catch (Error $e) {
var_dump($e->getMessage());
}
try {
new static;
} catch (Error $e) {
var_dump($e->getMessage());
}
try {
static::x();
} catch (Error $e) {
var_dump($e->getMessage());
}
try {
static::$i;
} catch (Error $e) {
var_dump($e->getMessage());
}
?>
--EXPECT--
string(52) "Cannot access static:: when no class scope is active"
string(52) "Cannot access parent:: when no class scope is active"
string(50) "Cannot access self:: when no class scope is active"
string(52) "Cannot access static:: when no class scope is active"
string(52) "Cannot access static:: when no class scope is active"
string(52) "Cannot access static:: when no class scope is active"
+13
View File
@@ -0,0 +1,13 @@
--TEST--
Bug #71196 (Memory leak with out-of-order live ranges)
--FILE--
<?php
try {
$a = "1";
[1, (y().$a.$a) . ($a.$a)];
} catch (Error $e) {
var_dump($e->getMessage());
}
?>
--EXPECT--
string(30) "Call to undefined function y()"
+61
View File
@@ -0,0 +1,61 @@
--TEST--
Bug #71359: Null coalescing operator and magic
--FILE--
<?php
class AA {
private $data = [];
public function __isset($name) {
echo "__isset($name)\n";
return array_key_exists($name, $this->data);
}
public function &__get($name) {
echo "__get($name)\n";
if (!array_key_exists($name, $this->data)) {
throw new Exception('Unknown offset');
}
return $this->data[$name];
}
public function __set($name, $value) {
echo "__set($name)\n";
$this->data[$name] = $value;
}
public function __unset($name) {
echo "__unset($name)\n";
unset($this->data[$name]);
}
}
$aa = new AA;
var_dump(isset($aa->zero->one->two));
var_dump(isset($aa->zero->foo));
var_dump($aa->zero ?? 42);
var_dump($aa->zero->one->two ?? 42);
$aa->zero = new AA;
$aa->zero->one = new AA;
var_dump(isset($aa->zero->one->two));
var_dump($aa->zero->one->two ?? 42);
?>
--EXPECT--
__isset(zero)
bool(false)
__isset(zero)
bool(false)
__isset(zero)
int(42)
__isset(zero)
int(42)
__set(zero)
__get(zero)
__set(one)
__isset(zero)
__get(zero)
__isset(one)
__get(one)
__isset(two)
bool(false)
__isset(zero)
__get(zero)
__isset(one)
__get(one)
__isset(two)
int(42)
+25
View File
@@ -0,0 +1,25 @@
--TEST--
Bug #71414 (Interface method override inherited method and implemented in a trait causes fatal error)
--FILE--
<?php
interface InterfaceY {
public function z(): string;
}
trait TraitY {
public function z(): string {
}
}
class X {
public function z() {
}
}
class Y extends X implements InterfaceY {
use TraitY;
}
echo "ok";
--EXPECT--
ok
+13
View File
@@ -0,0 +1,13 @@
--TEST--
bug #71428.1: inheritance with null default values
--FILE--
<?php
class A {
public function m(array $a = null) {}
}
class B extends A {
public function m(array $a = []) {}
}
--EXPECTF--
Warning: Declaration of B::m(array $a = Array) should be compatible with A::m(?array $a = NULL) in %sbug71428.1.php on line 7
+23
View File
@@ -0,0 +1,23 @@
--TEST--
bug #71428.2: inheritance of ye olde dynamic interfaces
--SKIPIF--
<?php if (!extension_loaded('pdo')) die("skip PDO is not available"); ?>
--FILE--
<?php
interface StatementInterface {
public function fetch($first = null, $second, $third);
}
class Statement extends PDOStatement implements StatementInterface {}
interface StatementInterface1 {
public function fetch($first = null, $second = null, $third = null);
}
class Statement1 extends PDOStatement implements StatementInterface1 {}
echo "ok";
?>
--EXPECT--
ok
+11
View File
@@ -0,0 +1,11 @@
--TEST--
bug #71428: Validation type inheritance with = NULL
--FILE--
<?php
class A { }
class B { public function m(A $a = NULL, $n) { echo "B.m";} };
class C extends B { public function m(A $a , $n) { echo "C.m";} };
?>
--EXPECTF--
Warning: Declaration of C::m(A $a, $n) should be compatible with B::m(?A $a, $n) in %sbug71428.3.php on line 4
+27
View File
@@ -0,0 +1,27 @@
--TEST--
Bug #71572: String offset assignment from an empty string inserts null byte
--FILE--
<?php
$str = "abc";
var_dump($str{0} = "");
var_dump($str{1} = "");
var_dump($str{3} = "");
var_dump($str{10} = "");
var_dump($str);
?>
==DONE==
--EXPECTF--
Warning: Cannot assign an empty string to a string offset in %s on line %d
NULL
Warning: Cannot assign an empty string to a string offset in %s on line %d
NULL
Warning: Cannot assign an empty string to a string offset in %s on line %d
NULL
Warning: Cannot assign an empty string to a string offset in %s on line %d
NULL
string(3) "abc"
==DONE==
+64
View File
@@ -0,0 +1,64 @@
--TEST--
Bug #71731: Null coalescing operator and ArrayAccess
--FILE--
<?php
class AA implements ArrayAccess {
private $data = [];
public function offsetExists($name) {
echo "offsetExists($name)\n";
return array_key_exists($name, $this->data);
}
public function &offsetGet($name) {
echo "offsetGet($name)\n";
if (!array_key_exists($name, $this->data)) {
throw new Exception('Unknown offset');
}
return $this->data[$name];
}
public function offsetSet($name, $value) {
echo "offsetSet($name)\n";
$this->data[$name] = $value;
}
public function offsetUnset($name) {
echo "offsetUnset($name)\n";
unset($this->data[$name]);
}
}
$aa = new AA;
var_dump(isset($aa[0][1][2]));
var_dump(isset($aa[0]->foo));
var_dump($aa[0] ?? 42);
var_dump($aa[0][1][2] ?? 42);
$aa[0] = new AA;
$aa[0][1] = new AA;
var_dump(isset($aa[0][1][2]));
var_dump($aa[0][1][2] ?? 42);
?>
--EXPECT--
offsetExists(0)
bool(false)
offsetExists(0)
bool(false)
offsetExists(0)
int(42)
offsetExists(0)
int(42)
offsetSet(0)
offsetGet(0)
offsetSet(1)
offsetExists(0)
offsetGet(0)
offsetExists(1)
offsetGet(1)
offsetExists(2)
bool(false)
offsetExists(0)
offsetGet(0)
offsetExists(1)
offsetGet(1)
offsetExists(2)
int(42)
+16
View File
@@ -0,0 +1,16 @@
--TEST--
Bug #71737: Memory leak in closure with parameter named $this
--FILE--
<?php
class Test {
public function method() {
return function($this) {};
}
}
(new Test)->method()(new stdClass);
?>
--EXPECTF--
Fatal error: Cannot use $this as parameter in %s on line %d
+23
View File
@@ -0,0 +1,23 @@
--TEST--
Bug #71841 (EG(error_zval) is not handled well)
--INI--
error_reporting=0
--FILE--
<?php
$z = unserialize('O:1:"A":0:{}');
var_dump($z->e.=0);
var_dump(++$z->x);
var_dump($z->y++);
$y = array(PHP_INT_MAX => 0);
var_dump($y[] .= 0);
var_dump(++$y[]);
var_dump($y[]++);
?>
--EXPECT--
NULL
NULL
NULL
NULL
NULL
NULL
+28
View File
@@ -0,0 +1,28 @@
--TEST--
Bug #71859 (zend_objects_store_call_destructors operates on realloced memory, crashing)
--FILE--
<?php
class constructs_in_destructor {
public function __destruct() {
//We are now in zend_objects_store_call_destructors
//This causes a realloc in zend_objects_store_put
for ($i = 0; $i < 10000; ++$i) {
$GLOBALS["a$i"] = new stdClass;
}
//Returns to zend_objects_store_call_destructors, to access freed memory.
}
}
$a = new constructs_in_destructor;
//Create cycle so destructors are ran only in zend_objects_store_call_destructors
$a->a = $a;
// Create some objects so zend_objects_store_call_destructors has something
// to do after constructs_in_destructor is destroyed.
for ($i = 0; $i < 200; ++$i) {
$GLOBALS["b$i"] = new stdClass;
}
?>
okey
--EXPECT--
okey
+12
View File
@@ -0,0 +1,12 @@
--TEST--
Bug #71871: Interfaces allow final and abstract functions
--FILE--
<?php
interface test {
final function test();
}
?>
--EXPECTF--
Fatal error: Access type for interface method test::test() must be omitted in %s on line %d
+12
View File
@@ -0,0 +1,12 @@
--TEST--
Bug #71871: Interfaces allow final and abstract functions
--FILE--
<?php
interface test {
abstract function test();
}
?>
--EXPECTF--
Fatal error: Access type for interface method test::test() must be omitted in %s on line %d
+40
View File
@@ -0,0 +1,40 @@
--TEST--
Bug #71914 (Reference is lost in "switch")
--FILE--
<?php
function bug(&$value) {
switch ($value) {
case "xxxx":
$value = true;
break;
}
}
function returnArray() {
$array = array();
$array["str"] = "xxxx";
return $array;
}
class Foo {
public $array = array("str" => "xxxx");
}
function test($arr, &$dummy) {
bug($arr["str"]);
var_dump($arr["str"]);
}
$foo = new Foo();
$arr = returnArray();
$array = array("str" => "xxxx");
test($array, $array["str"]);
test($arr, $arr["str"]);
test($foo->array, $foo->array["str"]);
?>
--EXPECT--
bool(true)
bool(true)
bool(true)
+21
View File
@@ -0,0 +1,21 @@
--TEST--
Bug #71922: Crash on assert(new class{});
--INI--
zend.assertions=1
assert.exception=1
--FILE--
<?php
try {
assert(0 && new class {
} && new class(42) extends stdclass {
});
} catch (AssertionError $e) {
echo "Assertion failure: ", $e->getMessage(), "\n";
}
?>
--EXPECT--
Assertion failure: assert(0 && new class {
} && new class(42) extends stdclass {
})
+30
View File
@@ -0,0 +1,30 @@
--TEST--
Bug #71930 (_zval_dtor_func: Assertion `(arr)->gc.refcount <= 1' failed)
--SKIPIF--
<?php
if (!extension_loaded("curl")) {
die("skip Require a resource which is able to hold a callbck");
}
?>
--FILE--
<?php
class A {
public static function dummy() {
}
}
$a = array();
$a[] = "A";
$a[] = "dummy";
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_HEADERFUNCTION, $a);
set_error_handler($a);
set_error_handler(function()use($ch1){});
set_error_handler(function(){});
?>
okey
--EXPECT--
okey
+43
View File
@@ -0,0 +1,43 @@
--TEST--
Bug #71980: Decorated/Nested Generator is Uncloseable in Finally
--FILE--
<?php
class Dtor {
public function __destruct() {
echo "Dtor\n";
}
}
function gen1() {
try {
foreach ([42, new Dtor] as $value) {
yield $value;
}
} finally {
echo "Finally\n";
}
}
function gen2() {
try {
var_dump(new Dtor, yield);
} finally {
echo "Finally\n";
}
}
$gen = gen1();
$gen->rewind();
unset($gen);
$gen = gen2();
$gen->rewind();
unset($gen);
?>
--EXPECT--
Dtor
Finally
Dtor
Finally
+27
View File
@@ -0,0 +1,27 @@
--TEST--
Bug #72038 (Function calls with values to a by-ref parameter don't always throw a notice)
--FILE--
<?php
test($foo = new stdClass);
var_dump($foo);
test($bar = 2);
var_dump($bar);
test($baz = &$bar);
var_dump($baz);
function test(&$param) {
$param = 1;
}
?>
--EXPECTF--
Notice: Only variables should be passed by reference in %s on line %d
object(stdClass)#1 (0) {
}
Notice: Only variables should be passed by reference in %s on line %d
int(2)
int(1)
+21
View File
@@ -0,0 +1,21 @@
--TEST--
Bug #72057 (PHP hangs when user error handler throws exception after Notice from type coercion)
--FILE--
<?php
set_error_handler(
function() {
throw new Exception("My custom error");
}
);
(function (int $i) { bar(); })("7as");
--EXPECTF--
Fatal error: Uncaught Exception: My custom error in %s:%d
Stack trace:
#0 %s(%d): {closure}(8, 'A non well form...', '%s', %d, Array)
#1 %s(%d): {closure}('7as')
#2 {main}
thrown in %s on line %d
+85
View File
@@ -0,0 +1,85 @@
--TEST--
Bug #72101 (crash on complex code)
--FILE--
<?php
class PHPUnit_Framework_MockObject_Stub_ReturnCallback {
protected $callback;
public function __construct($callback) {
$this->callback = $callback;
}
public function invoke($invocation) {
return call_user_func_array($this->callback, $invocation->parameters);
}
}
class PHPUnit_Framework_MockObject_InvocationMocker {
protected $matchers = [];
public function addMatcher( $matcher) {
$this->matchers[] = $matcher;
}
public function invoke( $invocation) {
foreach ($this->matchers as $match) {
$match->invoked($invocation);
}
}
}
class PHPUnit_Framework_MockObject_Matcher {
public $stub = null;
public function invoked($invocation) {
return $this->stub->invoke($invocation);
}
}
class MethodCallbackByReference {
public function bar(&$a, &$b, $c) {
Legacy::bar($a, $b, $c);
}
public function callback(&$a, &$b, $c) {
$b = 1;
}
}
class PHPUnit_Framework_MockObject_Invocation_Static {
public $parameters;
public function __construct(array $parameters) {
$this->parameters = $parameters;
}
}
class Mock_MethodCallbackByReference_7b180d26 extends MethodCallbackByReference {
public $inv_mocker;
public function bar(&$a, &$b, $c) {
$arguments = array($a, $b, $c);
$result = $this->inv_mocker->invoke(
new PHPUnit_Framework_MockObject_Invocation_Static(
$arguments
)
);
return $result;
}
}
set_error_handler(function() {
// var_dump(func_get_args());
DoesNotExists::$nope = true;
}, E_ALL | E_STRICT);
$foo = new Mock_MethodCallbackByReference_7b180d26();
$InvMocker = new PHPUnit_Framework_MockObject_InvocationMocker();
$foo->inv_mocker = $InvMocker;
$OuterMatcher = new PHPUnit_Framework_MockObject_Matcher();
$InvMocker->addMatcher($OuterMatcher);
$OuterMatcher->methodNameMatcher = null;
$OuterMatcher->stub = new PHPUnit_Framework_MockObject_Stub_ReturnCallback([$foo, 'callback']);
$a = $b = $c = 0;
$foo->bar($a, $b, $c);
--EXPECTF--
Fatal error: Uncaught Error: Class 'DoesNotExists' not found in %sbug72101.php:61
Stack trace:
#0 %sbug72101.php(8): {closure}(2, 'Parameter 1 to ...', '%s', 8, Array)
#1 %sbug72101.php(27): PHPUnit_Framework_MockObject_Stub_ReturnCallback->invoke(Object(PHPUnit_Framework_MockObject_Invocation_Static))
#2 %sbug72101.php(19): PHPUnit_Framework_MockObject_Matcher->invoked(Object(PHPUnit_Framework_MockObject_Invocation_Static))
#3 %sbug72101.php(51): PHPUnit_Framework_MockObject_InvocationMocker->invoke(Object(PHPUnit_Framework_MockObject_Invocation_Static))
#4 %sbug72101.php(72): Mock_MethodCallbackByReference_7b180d26->bar(0, 0, 0)
#5 {main}
thrown in %sbug72101.php on line 61
+14
View File
@@ -0,0 +1,14 @@
--TEST--
Bug #72107: Segfault when using func_get_args as error handler
--FILE--
<?php
set_error_handler('func_get_args');
function test($a) {
echo $undef;
}
test(1);
?>
--EXPECTF--
Warning: Cannot call func_get_args() dynamically in %s on line %d
Notice: Undefined variable: undef in %s on line %d
+19
View File
@@ -0,0 +1,19 @@
--TEST--
Bug #72119 (Interface declaration compatibility regression with default values)
--FILE--
<?php
interface Foo {
public function bar(array $baz = null);
}
class Hello implements Foo {
public function bar(array $baz = [])
{
}
}
echo "OK\n";
?>
--EXPECTF--
Fatal error: Declaration of Hello::bar(array $baz = Array) must be compatible with Foo::bar(?array $baz = NULL) in %s on line %d
+10
View File
@@ -0,0 +1,10 @@
--TEST--
Bug #72162 (use-after-free - error_reporting)
--FILE--
<?php
error_reporting(E_ALL);
$var11 = new StdClass();
$var16 = error_reporting($var11);
?>
--EXPECTF--
Catchable fatal error: Object of class stdClass could not be converted to string in %sbug72162.php on line %d
+35
View File
@@ -0,0 +1,35 @@
--TEST--
Bug #72177 Scope issue in __destruct after ReflectionProperty::setValue()
--FILE--
<?php
class Child
{
protected $bar;
public function __destruct()
{
$this->bar = null;
}
}
class Parnt
{
protected $child;
public function doSomething()
{
$this->child = new Child();
$prop = new \ReflectionProperty($this, 'child');
$prop->setAccessible(true);
$prop->setValue($this, null);
}
}
$p = new Parnt();
$p->doSomething();
echo "OK\n";
?>
--EXPECT--
OK
+34
View File
@@ -0,0 +1,34 @@
--TEST--
Bug #72177 Scope issue in __destruct after ReflectionProperty::setValue()
--FILE--
<?php
class Foo
{
private $bar = 'bar';
public function __construct()
{
unset($this->bar);
}
}
class Bar extends Foo
{
private $baz = 'baz';
private static $tab = 'tab';
public function __get(string $name)
{
var_dump($this->baz);
var_dump(self::$tab);
return $name;
}
}
$r = new ReflectionProperty(Foo::class, 'bar');
$r->setAccessible(true);
echo "OK\n";
?>
--EXPECT--
OK
+27
View File
@@ -0,0 +1,27 @@
--TEST--
Bug #72188 (Nested try/finally blocks losing return value)
--FILE--
<?php
function test() {
try {
return 5;
} finally {
try {
echo 1;
} finally {
echo 2;
}
}
}
$a = test();
if($a !== 5) {
echo "FAILED: expected 5, received ", var_export($a), PHP_EOL;
} else {
echo "Passed", PHP_EOL;
}
?>
--EXPECT--
12Passed
+11
View File
@@ -0,0 +1,11 @@
--TEST--
Bug #72221 (Segmentation fault in stream_get_line / zend_memnstr_ex)
--FILE--
<?php
$fp = fopen("php://memory", "r+");
fwrite($fp, str_repeat("baad", 1024*1024));
rewind($fp);
stream_get_line($fp, 1024*1024*2, "aaaa");
echo "Done\n";
--EXPECT--
Done
+18
View File
@@ -0,0 +1,18 @@
--TEST--
Misoptimize due to type narrowing
--FILE--
<?php
function test() {
$b = false;
$x = (1<<53)+1;
do {
$x = 1.0 * ($x - (1<<53));
} while ($b);
return $x;
}
var_dump(test());
?>
--EXPECT--
float(1)
@@ -0,0 +1,73 @@
--TEST--
call_user_func_array() passes value to prefer-ref arg if element wasn't a reference
--FILE--
<?php
namespace {
call_user_func_array('array_multisort', [[3, 2, 1]]);
$args = [[3, 2, 1]];
call_user_func_array('array_multisort', $args);
var_dump($args);
unset($args);
$array = [3, 2, 1];
call_user_func('array_multisort', $array);
var_dump($array);
unset($array);
}
namespace Foo {
call_user_func_array('array_multisort', [[3, 2, 1]]);
$args = [[3, 2, 1]];
call_user_func_array('array_multisort', $args);
var_dump($args);
unset($args);
$array = [3, 2, 1];
call_user_func('array_multisort', $array);
var_dump($array);
unset($array);
}
?>
--EXPECT--
array(1) {
[0]=>
array(3) {
[0]=>
int(3)
[1]=>
int(2)
[2]=>
int(1)
}
}
array(3) {
[0]=>
int(3)
[1]=>
int(2)
[2]=>
int(1)
}
array(1) {
[0]=>
array(3) {
[0]=>
int(3)
[1]=>
int(2)
[2]=>
int(1)
}
}
array(3) {
[0]=>
int(3)
[1]=>
int(2)
[2]=>
int(1)
}
+2 -2
View File
@@ -184,7 +184,7 @@ bindTo(new ClsChild, Cls::class):
Success!
bindTo(new ClsUnrelated, Cls::class):
Success!
Cannot bind method Cls::method() to object of class ClsUnrelated
bindTo(new Cls, null):
Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure()
@@ -205,7 +205,7 @@ bindTo(new SplStack, SplDoublyLinkedList::class):
Success!
bindTo(new ClsUnrelated, SplDoublyLinkedList::class):
Cannot bind internal method SplDoublyLinkedList::count() to object of class ClsUnrelated
Cannot bind method SplDoublyLinkedList::count() to object of class ClsUnrelated
bindTo(null, null):
Cannot unbind $this of internal method
@@ -0,0 +1,16 @@
--TEST--
Closure::__invoke() is case insensitive
--FILE--
<?php
$inc = function(&$n) {
$n++;
};
$n = 1;
$inc->__INVOKE($n);
var_dump($n);
?>
--EXPECT--
int(2)
+16
View File
@@ -0,0 +1,16 @@
--TEST--
Cannot use() auto-global
--FILE--
<?php
function test() {
$fn = function() use($GLOBALS) {
var_dump($GLOBALS);
};
$fn();
}
test();
?>
--EXPECTF--
Fatal error: Cannot use auto-global as lexical variable in %s on line %d
@@ -0,0 +1,14 @@
--TEST--
Can't use name of lexical variable for parameter
--FILE--
<?php
$a = 1;
$fn = function ($a) use ($a) {
var_dump($a);
};
$fn(2);
?>
--EXPECTF--
Fatal error: Cannot use lexical variable $a as a parameter name in %s on line %d
@@ -0,0 +1,15 @@
--TEST--
Closure cannot use one variable twice
--FILE--
<?php
$a = 1;
$fn = function() use ($a, &$a) {
$a = 2;
};
$fn();
var_dump($a);
?>
--EXPECTF--
Fatal error: Cannot use variable $a twice in %s on line %d
@@ -0,0 +1,47 @@
--TEST--
Constant expressions with null coalescing operator ??
--FILE--
<?php
const A = [1 => [[]]];
const T_1 = null ?? A[1]['undefined']['index'] ?? 1;
const T_2 = null ?? A['undefined']['index'] ?? 2;
const T_3 = null ?? A[1][0][2] ?? 3;
const T_4 = A[1][0][2] ?? 4;
const T_5 = null ?? __LINE__;
const T_6 = __LINE__ ?? "bar";
var_dump(T_1);
var_dump(T_2);
var_dump(T_3);
var_dump(T_4);
var_dump(T_5);
var_dump(T_6);
var_dump((function(){ static $var = null ?? A[1]['undefined']['index'] ?? 1; return $var; })());
var_dump((function(){ static $var = null ?? A['undefined']['index'] ?? 2; return $var; })());
var_dump((function(){ static $var = null ?? A[1][0][2] ?? 3; return $var; })());
var_dump((function(){ static $var = A[1][0][2] ?? 4; return $var; })());
var_dump((new class { public $var = null ?? A[1]['undefined']['index'] ?? 1; })->var);
var_dump((new class { public $var = null ?? A['undefined']['index'] ?? 2; })->var);
var_dump((new class { public $var = null ?? A[1][0][2] ?? 3; })->var);
var_dump((new class { public $var = A[1][0][2] ?? 4; })->var);
?>
--EXPECTF--
int(1)
int(2)
int(3)
int(4)
int(%d)
int(%d)
int(1)
int(2)
int(3)
int(4)
int(1)
int(2)
int(3)
int(4)
@@ -0,0 +1,11 @@
--TEST--
Constant expressions with empty dimension fetch on coalesce
--FILE--
<?php
const A = [][] ?? 1;
?>
--EXPECTF--
Fatal error: Cannot use [] for reading in %s.php on line %d
+7 -2
View File
@@ -35,14 +35,18 @@ const T_19 = [
false => false,
true => true,
];
eval("const T_20x = 'a';");
const T_20 = null ?: (T_20x . 'bc');
var_dump(
T_1, T_2, T_3, T_4, T_5, T_6, T_7, T_8, T_9, T_10,
T_11, T_12, T_13, T_14, T_15, T_16, T_17, T_18, T_19
T_11, T_12, T_13, T_14, T_15, T_16, T_17, T_18, T_19, T_20
);
?>
--EXPECT--
--EXPECTF--
Warning: A non-numeric value encountered in %s on line %d
int(3)
string(4) "1foo"
bool(false)
@@ -75,3 +79,4 @@ array(6) {
[1]=>
bool(true)
}
string(3) "abc"
@@ -9,7 +9,7 @@ class A {
var_dump(A::FOO);
?>
--EXPECTF--
Fatal error: Uncaught Error: Cannot declare self-referencing constant 'self::FOO' in %s:%d
Fatal error: Uncaught Error: Cannot declare self-referencing constant 'self::BAR' in %s:%d
Stack trace:
#0 {main}
thrown in %s on line %d
+29
View File
@@ -0,0 +1,29 @@
--TEST--
Dynamic calls to scope introspection functions are forbidden
--FILE--
<?php
function test_calls($func) {
$i = 1;
array_map($func, [['i' => new stdClass]]);
var_dump($i);
$func(['i' => new stdClass]);
var_dump($i);
call_user_func($func, ['i' => new stdClass]);
var_dump($i);
}
test_calls('extract');
?>
--EXPECTF--
Warning: Cannot call extract() dynamically in %s on line %d
int(1)
Warning: Cannot call extract() dynamically in %s on line %d
int(1)
Warning: Cannot call extract() dynamically in %s on line %d
int(1)
+48
View File
@@ -0,0 +1,48 @@
--TEST--
Dynamic calls to scope introspection functions are forbidden (function variations)
--FILE--
<?php
function test() {
$func = 'extract';
$func(['a' => 'b']);
$func = 'compact';
$func(['a']);
$func = 'parse_str';
$func('a=b');
$func = 'get_defined_vars';
$func();
$func = 'assert';
$func('1==2');
$func = 'func_get_args';
$func();
$func = 'func_get_arg';
$func(1);
$func = 'func_num_args';
$func();
}
test();
?>
--EXPECTF--
Warning: Cannot call extract() dynamically in %s on line %d
Warning: Cannot call compact() dynamically in %s on line %d
Warning: Cannot call parse_str() with a single argument dynamically in %s on line %d
Warning: Cannot call get_defined_vars() dynamically in %s on line %d
Warning: Cannot call assert() with string argument dynamically in %s on line %d
Warning: Cannot call func_get_args() dynamically in %s on line %d
Warning: Cannot call func_get_arg() dynamically in %s on line %d
Warning: Cannot call func_num_args() dynamically in %s on line %d
+17
View File
@@ -0,0 +1,17 @@
--TEST--
Dynamic calls to scope introspection functions are forbidden (misoptimization)
--FILE--
<?php
function test() {
$i = 1;
array_map('extract', [['i' => new stdClass]]);
$i += 1;
var_dump($i);
}
test();
?>
--EXPECTF--
Warning: Cannot call extract() dynamically in %s on line %d
int(2)
+13
View File
@@ -0,0 +1,13 @@
--TEST--
Don't optimize dynamic call to non-dynamic one if it drops the warning
--FILE--
<?php
function test() {
((string) 'extract')(['a' => 42]);
}
test();
?>
--EXPECTF--
Warning: Cannot call extract() dynamically in %s on line %d
@@ -0,0 +1,15 @@
--TEST--
Crash when using dynamic call syntax with fully qualified name in a namespace
--FILE--
<?php
namespace Foo;
try {
('\bar')();
} catch (\Error $e) {
echo $e->getMessage(), "\n";
}
?>
--EXPECT--
Call to undefined function bar()
+4 -2
View File
@@ -3,10 +3,12 @@ Testing each() with array and object
--FILE--
<?php
$foo = each(new stdClass);
$a = new stdClass;
$foo = each($a);
var_dump($foo);
var_dump(each(new stdClass));
$a = new stdClass;
var_dump(each($a));
$a = array(new stdClass);
var_dump(each($a));
+12
View File
@@ -8,6 +8,8 @@ print "- empty ---\n";
$str = "test0123";
var_dump(empty($str[-1]));
var_dump(empty($str[-10]));
var_dump(empty($str[-4])); // 0
var_dump(empty($str[0]));
var_dump(empty($str[1]));
var_dump(empty($str[4])); // 0
@@ -17,6 +19,8 @@ var_dump(empty($str[10000]));
// non-numeric offsets
print "- string ---\n";
var_dump(empty($str['-1']));
var_dump(empty($str['-10']));
var_dump(empty($str['-4'])); // 0
var_dump(empty($str['0']));
var_dump(empty($str['1']));
var_dump(empty($str['4'])); // 0
@@ -31,6 +35,8 @@ print "- null ---\n";
var_dump(empty($str[null]));
print "- double ---\n";
var_dump(empty($str[-1.1]));
var_dump(empty($str[-10.5]));
var_dump(empty($str[-4.1]));
var_dump(empty($str[-0.8]));
var_dump(empty($str[-0.1]));
var_dump(empty($str[0.2]));
@@ -50,6 +56,8 @@ print "done\n";
?>
--EXPECTF--
- empty ---
bool(false)
bool(true)
bool(true)
bool(false)
bool(false)
@@ -58,6 +66,8 @@ bool(false)
bool(true)
bool(true)
- string ---
bool(false)
bool(true)
bool(true)
bool(false)
bool(false)
@@ -72,6 +82,8 @@ bool(true)
- null ---
bool(false)
- double ---
bool(false)
bool(true)
bool(true)
bool(false)
bool(false)
@@ -0,0 +1,33 @@
--TEST--
For SSA form the entry block should have no predecessors
--FILE--
<?php
function test() {
while (true) {
var_dump($a + 1);
$a = 1;
if (@$i++) {
break;
}
}
}
function test2() {
while (true) {
$a = 42;
if (@$i++ > 1) {
break;
}
$a = new stdClass;
}
}
test();
test2();
?>
--EXPECTF--
Notice: Undefined variable: a in %s on line %d
int(1)
int(2)
+36
View File
@@ -0,0 +1,36 @@
--TEST--
foreach with list syntax, keyed
--FILE--
<?php
$points = [
["x" => 1, "y" => 2],
["x" => 2, "y" => 1]
];
foreach ($points as list("x" => $x, "y" => $y)) {
var_dump($x, $y);
}
echo PHP_EOL;
$invertedPoints = [
"x" => [1, 2],
"y" => [2, 1]
];
foreach ($invertedPoints as list(0 => $row1, 1 => $row2)) {
var_dump($row1, $row2);
}
?>
--EXPECT--
int(1)
int(2)
int(2)
int(1)
int(1)
int(2)
int(2)
int(1)
+10
View File
@@ -0,0 +1,10 @@
--TEST--
Testing func_get_args()
--FILE--
<?php
func_get_args();
?>
--EXPECTF--
Warning: func_get_args(): Called from the global scope - no function context in %s on line 3
+2 -2
View File
@@ -10,9 +10,9 @@ for ($i = 0; $i < 10001; $i++) {
}
$a[] = "xxx";
unset($a);
var_dump(gc_collect_cycles());
var_dump(gc_collect_cycles() > 0);
echo "ok\n";
?>
--EXPECT--
int(2)
bool(true)
ok
+2 -2
View File
@@ -12,9 +12,9 @@ for ($i = 0; $i < 10001; $i++) {
unset($b);
$a->b = "xxx";
unset($a);
var_dump(gc_collect_cycles());
var_dump(gc_collect_cycles() > 0);
echo "ok\n";
?>
--EXPECT--
int(2)
bool(true)
ok
+2 -2
View File
@@ -12,9 +12,9 @@ $a->b = "xxx";
unset($c);
unset($a);
unset($b);
var_dump(gc_collect_cycles());
var_dump(gc_collect_cycles() > 0);
echo "ok\n";
?>
--EXPECT--
int(2)
bool(true)
ok
+2 -3
View File
@@ -10,7 +10,6 @@ class Node {
public $parent;
function __construct($name) {
$this->name = $name;
$this->children = array();
$this->parent = null;
}
function insert($node) {
@@ -32,12 +31,12 @@ $a->insert($c);
unset($a);
unset($b);
unset($c);
var_dump(gc_collect_cycles());
var_dump(gc_collect_cycles() >= 7);
echo "ok\n"
?>
--EXPECTF--
string(1) "%s"
string(1) "%s"
string(1) "%s"
int(10)
bool(true)
ok
@@ -0,0 +1,45 @@
--TEST--
Verify yield from on generators being properly cycle collected
--FILE--
<?php
function root() {
global $gens; // create cyclic reference to root
try {
yield 1;
} finally {
var_dump($gens);
}
}
function gen($x) {
global $gens;
yield from $gens[] = $x ? gen(--$x) : root();
}
$gen = $gens[] = gen(2);
var_dump($gen->current());
unset($gen, $gens);
print "collect\n";
gc_collect_cycles();
print "end\n";
?>
--EXPECT--
int(1)
collect
array(4) {
[0]=>
object(Generator)#1 (0) {
}
[1]=>
object(Generator)#2 (0) {
}
[2]=>
object(Generator)#3 (0) {
}
[3]=>
object(Generator)#4 (0) {
}
}
end
@@ -0,0 +1,12 @@
--TEST--
Generators with arguments unpacking
--FILE--
<?php
(function() { yield; })(...range(1, 16384));
call_user_func_array(function() { yield; }, range(1, 16384));
$g = (function() { yield; })(...range(1, 16384));
$g = call_user_func_array(function() { yield; }, range(1, 16384));
echo "OK\n";
?>
--EXPECT--
OK
@@ -0,0 +1,13 @@
--TEST--
Generator wit type check
--FILE--
<?php
function gen(array $a) { yield; }
gen(42);
?>
--EXPECTF--
Fatal error: Uncaught TypeError: Argument 1 passed to gen() must be of the type array, integer given, called in %sgenerator_with_type_check.php on line 3 and defined in %sgenerator_with_type_check.php:2
Stack trace:
#0 %sgenerator_with_type_check.php(3): gen(42)
#1 {main}
thrown in %sgenerator_with_type_check.php on line 2
@@ -0,0 +1,22 @@
--TEST--
Generator wit type check
--FILE--
<?php
function gen(array $a) { yield; }
try {
gen(42);
} catch (TypeError $e) {
echo $e->getMessage()."\n";
}
try {
foreach (gen(42) as $val) {
var_dump($val);
}
} catch (TypeError $e) {
echo $e->getMessage()."\n";
}
?>
--EXPECTF--
Argument 1 passed to gen() must be of the type array, integer given, called in %sgenerator_with_type_check_2.php on line 4
Argument 1 passed to gen() must be of the type array, integer given, called in %sgenerator_with_type_check_2.php on line 10
@@ -0,0 +1,37 @@
--TEST--
Cannot "yield from" from force closed generator
--FILE--
<?php
function gen1() {
echo "gen1\n";
yield 1;
}
function gen2() {
try {
echo "try\n";
yield from gen1();
} finally {
echo "finally\n";
yield from gen1();
}
}
try {
$gen = gen2();
$gen->rewind();
unset($gen);
} catch (Error $e) {
echo $e, "\n";
}
?>
--EXPECTF--
try
gen1
finally
Error: Cannot use "yield from" in a force-closed generator in %s:%d
Stack trace:
#0 %s(%d): gen2()
#1 {main}
@@ -0,0 +1,17 @@
--TEST--
yield from with an IteratorAggregate
--FILE--
<?php
class foo implements \IteratorAggregate {
public $prop = 1;
function getIterator() {
var_dump($this->prop);
yield;
}
}
(function(){
yield from new foo;
})()->next();
?>
--EXPECT--
int(1)
Loaded 100 of 937 files, more files were not shown because too many files have changed in this diff. Show more