Máté Kocsis
04a44e1f08
Add stubs for SplObjectStorage and MultipleIterator
...
Closes GH-5267
2020-03-16 12:05:23 +01:00
Máté Kocsis
0ae8a3f3d6
Add stubs for SplHeap and SplPriorityQueue
...
Closes GH-5266
2020-03-16 12:04:56 +01:00
Philipp Tanlak
1668ad7cb1
Add str_contains() function
...
RFC: https://wiki.php.net/rfc/str_contains
Closes GH-5179.
2020-03-16 11:05:26 +01:00
Nikita Popov
934e60b594
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Don't specify ports in socket_export_stream-4.phpt
2020-03-16 10:32:39 +01:00
Nikita Popov
a57905dbac
Don't specify ports in socket_export_stream-4.phpt
...
Let the system pick a free port instead...
2020-03-16 10:32:04 +01:00
Dmitry Stogov
9a8f735c57
Emit warning about type narrowing for tracing JIT as well
2020-03-14 01:29:46 +03:00
Dmitry Stogov
29bf7902b3
Fixed RC inference for ZEND_ASSIGN_STATIC_PROP and removed useless checks during RC inference
2020-03-14 01:17:45 +03:00
Dmitry Stogov
4bf2d09ede
Tracing JIT (it doesn't support register allocation yet)
...
Use opcache.jit=1255 to swith it on (the third digit 5 really matters)
Use opcache.jit_debug=0xff001 to see how it works and what code it generates
2020-03-13 22:11:07 +03:00
Nikita Popov
d15012d5e8
Accept const op_array in zend_build_call_map
2020-03-13 16:25:28 +01:00
Nikita Popov
9e89f91341
Add assertions for DIM_W/RW uses
...
The result should be used only once and on the directly next opline,
otherwise it may not be safe. Add some assertions to that effect.
2020-03-13 13:11:42 +01:00
Nikita Popov
9ab2cb923e
Also remove dead arguments
2020-03-13 12:45:02 +01:00
Nikita Popov
b979e03159
Remove dead type narrowing code
...
Rename handle_type_narrowing() to clarify what it does, and
remove dead code for resetting dependent vars.
2020-03-13 12:27:49 +01:00
Dmitry Stogov
78b64bd4ed
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Check asserts early
identation fix
Call global code of preloaded script in global context
Avoid "Anonymous class wasn't preloaded" error by lazely loading of not preloaded part of a preloaded script
2020-03-13 11:42:07 +03:00
Dmitry Stogov
b6492b4453
identation fix
2020-03-12 22:26:16 +03:00
Dmitry Stogov
3c6e9bed1a
Call global code of preloaded script in global context
2020-03-12 22:19:47 +03:00
George Peter Banyard
c9db32271a
Remove deprecated (real) cast
...
Closes GH-5220
2020-03-12 15:40:21 +01:00
Dmitry Stogov
2dddab01ae
Avoid "Anonymous class wasn't preloaded" error by lazely loading of not preloaded part of a preloaded script
2020-03-12 16:31:24 +03:00
Nikita Popov
0fdffc1807
Update Unicode tables to 13.0.0
2020-03-12 11:29:51 +01:00
Christoph M. Becker
b612559a5b
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #79199 : curl_copy_handle() memory leak
2020-03-12 11:28:39 +01:00
Christoph M. Becker
ddc3f3d595
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #79199 : curl_copy_handle() memory leak
2020-03-12 11:27:45 +01:00
Christoph M. Becker
2b5fc8e325
Fix #79199 : curl_copy_handle() memory leak
...
`curl_copy_handle()` already registers a new resource, so we must not
increase the refcount of the original resource.
2020-03-12 11:23:53 +01:00
Christoph M. Becker
208e348982
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #61597 : SXE properties may lack attributes and content
2020-03-12 10:57:14 +01:00
Christoph M. Becker
2b56735ea0
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #61597 : SXE properties may lack attributes and content
2020-03-12 10:56:13 +01:00
Christoph M. Becker
7c081db885
Fix #61597 : SXE properties may lack attributes and content
...
We must not treat a node as string if it has attributes, unless it is
an entity declaration which is always treated as string by simplexml.
2020-03-12 10:52:28 +01:00
Dmitry Stogov
10726588b1
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Export FFI::__BIGGEST_ALIGNMENT__
2020-03-12 11:45:05 +03:00
Dmitry Stogov
fee614f66b
Export FFI::__BIGGEST_ALIGNMENT__
2020-03-12 11:43:01 +03:00
Dmitry Stogov
c774ca8d80
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Allow to fetch function address
2020-03-12 11:41:12 +03:00
Dmitry Stogov
ecdaf83f5f
Allow to fetch function address
2020-03-12 11:40:48 +03:00
Xinchen Hui
583c7a4cbb
Merge branch 'PHP-7.4'
2020-03-12 15:45:07 +08:00
Xinchen Hui
22c83454d6
Folder mark missed
2020-03-12 15:43:15 +08:00
Dmitry Stogov
c45552e32b
Export FFI::__BIGGEST_ALIGNMENT__
2020-03-11 15:29:58 +03:00
Dmitry Stogov
e902e4acd9
Allow to fetch function address
2020-03-11 15:13:27 +03:00
Christoph M. Becker
f078bca729
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #78210 : Invalid pointer address
2020-03-11 11:32:46 +01:00
Christoph M. Becker
8657f03084
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #78210 : Invalid pointer address
2020-03-11 11:31:26 +01:00
Christoph M. Becker
53797c206a
Fix #78210 : Invalid pointer address
...
This is actually about three distinct issues:
* If an empty string is passed as $address to `stream_socket_sendto()`,
the `sa` is not initialized, so we must not pass it as `addr` to
`php_stream_xport_sendto()`.
* On POSIX, `recvfrom()` truncates messages which are too long to fit
into the specified buffer (unless `MSG_PEEK` is given), discards the
excessive bytes, and returns the buffer length. On Windows, the same
happens, but `recvfrom()` returns `SOCKET_ERROR` with the error code
`WSAEMSGSIZE`. We have to catch this for best POSIX compatibility.
* In `php_network_parse_network_address_with_port()`, we have to zero
`in6` (not only its alias `sa`) to properly support IPv6.
Co-Authored-By: Nikita Popov <nikita.ppv@googlemail.com >
2020-03-11 11:30:15 +01:00
Nikita Popov
f0f2493208
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Check for sys/auxv.h before using it.
2020-03-10 16:54:17 +01:00
Peter Seiderer
f73528f0e0
Check for sys/auxv.h before using it.
...
Fixes aarch64 compile with uclibc-ng (does not provide
sys/auxv.h header file).
Closes GH-5248.
Signed-off-by: Peter Seiderer <ps.report@gmx.net >
2020-03-10 16:53:57 +01:00
Nikita Popov
e8678fcb42
Fixed bug #75902
...
Don't special-case nested arrays/objects in str_replace(), instead
perform a string cast on them as well. For arrays, this will always
result in the usual conversion warning.
This behavior is consistent with preg_replace(). If we didn't want
to cast the array to string here, we should instead perform the
replacement recursively. Silently copying it is just confusing.
2020-03-10 16:49:17 +01:00
Máté Kocsis
d2b902f174
Add some stubs for SPL
...
Closes GH-5245
2020-03-10 11:41:48 +01:00
Máté Kocsis
9d0eccd980
Perform some maintenance work on the XSL extension
...
Added stubs, fixed some ZPP, and changed PHP_FALIASes to PHP_METHODs.
Closes GH-5241
2020-03-10 11:41:15 +01:00
Christoph M. Becker
b31f73b1c8
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Enclose INI values containing {TMP} in quotes
2020-03-09 22:53:23 +01:00
Christoph M. Becker
fea2994ff8
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Enclose INI values containing {TMP} in quotes
2020-03-09 22:51:11 +01:00
Christoph M. Becker
d5e206620b
Enclose INI values containing {TMP} in quotes
...
At least on Windows, the temporary directory may contain tilde signs,
which would result in an INI parse error.
2020-03-09 22:49:08 +01:00
Nikita Popov
d9c45d86f9
Improve type inference for COALESCE
...
Place a pi node on the non-null edge to remove a spurious
undef/null type.
Additionally, adjust the profitability heuristic to be more
accurate if the "other predecessor" writes to the variable.
Ideally this should not just consider the direct predecessors,
but it's sufficient for this case.
This partially addresses bug #79353 by removing the discrepancy
between ?? and ??=.
2020-03-09 16:19:48 +01:00
Nikita Popov
b2f7be7214
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fixed bug #79357
2020-03-09 15:01:48 +01:00
Nikita Popov
760faa12b2
Fixed bug #79357
...
Peculiarly, for once the cause was not SOAPs "interesting" error
handling, but a bug in the call trampoline for internal functions...
2020-03-09 15:01:31 +01:00
Nikita Popov
191451da90
Fix bug #79358 : JIT miscompile in composer
2020-03-09 12:55:14 +01:00
Máté Kocsis
f44dd16b7a
Improve error message of foreach
...
Closes GH-5240
2020-03-09 11:29:40 +01:00
Nikita Popov
c5f091e47f
Remove DOM_GET_THIS macro
...
This macro is trivial, it's more obvious to use ZEND_THIS directly.
2020-03-09 09:56:22 +01:00
Remi Collet
f5c1359f57
proper fix
2020-03-09 09:29:34 +01:00