Commit graph

1917 commits

Author SHA1 Message Date
Nikita Popov
80681e8d40 Merge branch 'PHP-7.4' 2019-07-24 09:55:09 +02:00
Nikita Popov
9e4603f772 Try to fix macos build
By avoiding unused variable opline warnings. Also clean up the
replacement of ZEND_VM_SPEC -- we were sometimes treating it as
an always-defined constant with a value (what it actually is) and
sometimes as a conditionally defined constant (which it isn't, but
which still worked thanks to the specializer). Switch to only
treating it as a constant with a value.
2019-07-24 09:44:55 +02:00
Nikita Popov
36db71df47 Merge branch 'PHP-7.4' 2019-07-22 12:28:40 +02:00
Nikita Popov
0ba7c3eadf Deprecate array_key_exists() on objects 2019-07-22 11:39:52 +02:00
Dmitry Stogov
51442a428c Merge branch 'PHP-7.4'
* PHP-7.4:
  Separate "cold" and common unspecialized code
2019-07-17 00:56:06 +03:00
Dmitry Stogov
ee5828205e Separate "cold" and common unspecialized code 2019-07-17 00:52:26 +03:00
Nikita Popov
70e2d2d0ee Merge branch 'PHP-7.4' 2019-07-16 15:54:05 +02:00
Nikita Popov
a0f450a023 Remove unused _get_zval_ptr_cv_BP_VAR_UNSET function
To fix the macos -Werror build.
2019-07-16 15:53:55 +02:00
Dmitry Stogov
ab2888511b Merge branch 'PHP-7.4'
* PHP-7.4:
  Delay IS_UNDEF checks
2019-07-16 11:17:04 +03:00
Dmitry Stogov
1d4c38421a Delay IS_UNDEF checks 2019-07-16 11:16:45 +03:00
Dmitry Stogov
3c89a3d716 Merge branch 'PHP-7.4'
* PHP-7.4:
  Separate "cold" parts of comparison instructions
2019-07-11 20:45:12 +03:00
Dmitry Stogov
ef1a1a0698 Separate "cold" parts of comparison instructions 2019-07-11 20:44:39 +03:00
Nikita Popov
106f71cc94 Merge branch 'PHP-7.4' 2019-07-10 12:05:24 +02:00
Nikita Popov
c42b7dd6d3 Throw notice on array access on illegal type
No notice is thrown for list() accesses, because we did not come
to an agreement regarding patterns like

    while ([$key, $value] = yield $it->next()) { ... }

where silent null access may be desirable.

No effort is made to suppress multiple notices in access chains
likes $x[0][0][0], because the technical complexity this causes
does not seem worthwhile.

RFC: https://wiki.php.net/rfc/notice-for-non-valid-array-container
2019-07-10 12:02:14 +02:00
Nikita Popov
bbd12b3d30 Merge branch 'PHP-7.4' 2019-07-10 11:11:30 +02:00
Nikita Popov
2bca35eacc Rename support_strings to !is_list
In preparation for more behavior that depends on whether it it is
a list() access. Using support_strings for that would be
confusing.
2019-07-10 11:10:17 +02:00
Dmitry Stogov
1b5b8175af Merge branch 'PHP-7.4'
* PHP-7.4:
  Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP
2019-07-05 12:16:30 +03:00
Dmitry Stogov
48ca5a1e17 Replace ZEND_ASSIGN_ADD (and others) by ZEND_ASSIGN_OP, ZEND_ASSIGN_DIM_OP, ZEND_ASSGIN_OBJ_OP and ZEND_ASSIGN_STATIC_PROP_OP 2019-07-05 12:03:25 +03:00
Dmitry Stogov
806e38a3a4 Merge branch 'PHP-7.4'
* PHP-7.4:
  Improve zend_binary_assign_op helpers. Reorder opcode numbers to make ADD-POW and ASSIGN_ADD-ASSIGN_POW opcodes sequencional.
2019-07-04 17:37:52 +03:00
Dmitry Stogov
ef05eab432 Improve zend_binary_assign_op helpers.
Reorder opcode numbers to make ADD-POW and ASSIGN_ADD-ASSIGN_POW opcodes sequencional.
2019-07-04 17:25:43 +03:00
Dmitry Stogov
c98b6d5bb5 Merge branch 'PHP-7.4'
* PHP-7.4:
  Better optimization in RELEASE build. ZEND_ASSERT(s) prevented optimization
2019-07-03 20:24:26 +03:00
Dmitry Stogov
09041151de Better optimization in RELEASE build. ZEND_ASSERT(s) prevented optimization 2019-07-03 20:19:56 +03:00
Dmitry Stogov
6188a69b8a Merge branch 'PHP-7.4'
* PHP-7.4:
  Optimization of INC/DEC helpers
2019-07-03 10:50:14 +03:00
Dmitry Stogov
56b8b165f8 Optimization of INC/DEC helpers 2019-07-03 10:33:03 +03:00
Dmitry Stogov
afe6e00b6e Merge branch 'PHP-7.4'
* PHP-7.4:
  Fixed build without global register variables
2019-07-02 11:03:46 +03:00
Dmitry Stogov
baa883d3fc Fixed build without global register variables 2019-07-02 11:03:22 +03:00
Dmitry Stogov
97b685f0c1 Merge branch 'PHP-7.4'
* PHP-7.4:
  Separate slow code
2019-07-02 01:17:05 +03:00
Dmitry Stogov
cbbd473bdd Separate slow code 2019-07-02 01:16:34 +03:00
Dmitry Stogov
f393502e7f Merge branch 'PHP-7.4'
* PHP-7.4:
  Micro-optimization
2019-07-01 16:57:55 +03:00
Dmitry Stogov
f2b6b2eee8 Micro-optimization 2019-07-01 16:57:25 +03:00
Nikita Popov
d82b270fa4 Remove unused zend_verify_arg_type() function 2019-06-21 17:15:02 +02:00
Dmitry Stogov
53bcc2339c Merge branch 'PHP-7.4'
* PHP-7.4:
  Cleanup
2019-06-21 11:46:33 +03:00
Dmitry Stogov
e1e8e670df Cleanup 2019-06-21 11:43:17 +03:00
Nikita Popov
6aaab9adf7 Merge branch 'PHP-7.4' 2019-06-20 16:24:31 +02:00
Nikita Popov
eaafb69eea Change indexing scheme for symtable_cache
symtable_cache_ptr now points to the first unused symtable_cache
entry, rahter than the last used one. This avoids taking a pointer
to the minus first element of the array, which is UB. Instead we
take a pointer to the end plus one, which is not UB.
2019-06-20 16:21:39 +02:00
Nikita Popov
6ae9c10534 Merge branch 'PHP-7.4' 2019-06-19 16:36:29 +02:00
Nikita Popov
268b5fec8e Fixed bug #78182 2019-06-19 16:35:12 +02:00
Nikita Popov
4d90848d68 Don't verify arginfo types for internal functions
To avoid duplicate type checks. In debug builds arginfo is still
checked and will generate an assertions if the function doesn't
subsequently throw an exception.

Some test results change due to differences in zpp and arginfo
error messages.
2019-06-17 11:46:28 +02:00
Nikita Popov
be6c083f28 Allow null for weak scalar arg of internal func in arginfo
For parity with zpp.
2019-06-17 11:46:23 +02:00
Nikita Popov
af10245034 Merge branch 'PHP-7.4' 2019-06-13 09:38:19 +02:00
Nikita Popov
b64107531b Fixed bug #78151 2019-06-13 09:37:30 +02:00
Joe Watkins
f93cd21b52
Merge branch 'PHP-7.4'
* PHP-7.4:
  Revert "micro-optimization"

This micro optimization caused several bugs in at least Xdebug, while
i_init_func_execute_data is not exported, APIs that are exported call it
this makes their use awkward for no real gain.
2019-06-12 20:21:59 +02:00
Joe Watkins
175c7bf6fe
Revert "micro-optimization"
This reverts commit 374f769982.
2019-06-12 20:04:47 +02:00
Nikita Popov
eea206a06c Merge branch 'PHP-7.4' 2019-06-12 13:18:04 +02:00
Nikita Popov
080e2316cf Mark some operand fetching funs as ATTRIBUTE_UNUSED
Whether these are used depends on VM specialization.
2019-06-12 13:17:25 +02:00
Dmitry Stogov
2b5a3afead Merge branch 'PHP-7.4'
* PHP-7.4:
  micro-optimization
2019-06-10 16:43:36 +03:00
Dmitry Stogov
374f769982 micro-optimization 2019-06-10 16:43:20 +03:00
Nikita Popov
00d549d73d Merge branch 'PHP-7.4' 2019-06-06 14:56:58 +02:00
Nikita Popov
7780ba9660 Try to fix Windows build 2019-06-06 14:56:42 +02:00
Dmitry Stogov
dbd1ecd09f Merge branch 'PHP-7.4'
* PHP-7.4:
  Support for exceptions thrown during "Array to string conversion" error processing
  Reduce over-specialization for quite seldom instructions
2019-06-06 14:10:23 +03:00