Nikita Popov
f455894bb6
Don't start new block after loop free
...
This reverts the change from 493c91c742 .
Starting a new block means that in the common case where the loop var
free is not unreachable, we'll always merge back the block.
Instead fix the original problem by explicitly removing instructions
apart from the loop var free in block pass.
2021-10-06 10:13:15 +02:00
Dmitry Stogov
831a1717f6
JIT: Fixed incorrect overflow detection introduced in a5e502ef4d
2021-10-06 10:18:18 +03:00
Dmitry Stogov
80205cd39a
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed assign coalesce. "$a[0] ??= $a" should evaluate the right $a first.
2021-10-05 20:34:43 +03:00
Dmitry Stogov
80aaeb9696
Fixed assign coalesce. "$a[0] ??= $a" should evaluate the right $a first.
2021-10-05 20:34:09 +03:00
Derick Rethans
6166ac51b7
Force UTC
2021-10-05 18:28:30 +01:00
Dmitry Stogov
69fb20f106
Fixed assign coalesce. "$a[0] ??= $a" should evaluate the right $a first.
2021-10-05 20:23:56 +03:00
Derick Rethans
5161bfb4b5
Merge branch 'PHP-8.0' into PHP-8.1
2021-10-05 17:26:05 +01:00
Derick Rethans
0eb7a1576d
Merge branch 'PHP-7.4' into PHP-8.0
2021-10-05 17:25:57 +01:00
Derick Rethans
e5d35a3252
Prepare branch for 7.4.26-dev
2021-10-05 17:25:43 +01:00
Matteo Beccati
958daa6529
Fix #81509 pg_end_copy still expects a resource
2021-10-05 18:13:50 +02:00
Matteo Beccati
202a099aee
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Add test for pg_put_line() and pg_end_copy()
2021-10-05 18:13:20 +02:00
Matteo Beccati
9af6882d28
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Add test for pg_put_line() and pg_end_copy()
2021-10-05 17:44:19 +02:00
Matteo Beccati
be36bf5aca
Add test for pg_put_line() and pg_end_copy()
2021-10-05 17:43:48 +02:00
Ben Morss
b4c200f9fe
Require libavif version >= 0.8.2
...
Closes GH-7554.
2021-10-05 17:01:07 +02:00
Nikita Popov
dab6527352
Fix build without global registers
2021-10-05 16:45:44 +02:00
Nikita Popov
a4fa00ead3
Reuse wrong string offset logic in jit
...
JIT contains a copy of this function that effectively only differs
by fetching current_execute_data from EG. We can do that in the VM
version as well, as this is just used to throw an error.
Export the VM function and reuse it in JIT.
2021-10-05 16:33:31 +02:00
Derick Rethans
68b874d10d
Fixed bug #81504 : Incorrect timezone transition details for POSIX data
2021-10-05 15:22:55 +01:00
Nikita Popov
e91a751e3d
Use ephemeral port in test
2021-10-05 16:00:50 +02:00
Nikita Popov
02c5f7f927
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix duplicate undef warning in assign_dim_op
2021-10-05 15:51:30 +02:00
Nikita Popov
11a9b036a8
Fix duplicate undef warning in assign_dim_op
...
In case of auto-vivification we were fetching dim twice and as
such also emitting the undef var warning twice.
2021-10-05 15:51:11 +02:00
Nikita Popov
c5e96daa41
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix return type verification with undef var
2021-10-05 15:34:37 +02:00
Nikita Popov
f890c9c5e3
Fix return type verification with undef var
...
This was loading EG(uninitialized_value) into r0 rather than
FCARG1a.
However, if we fix this issue an existing test fails because
the undef var warning promoted to exception is not caught early
enough, so we need to explicitly check for the exception before
performing the type check.
2021-10-05 15:30:55 +02:00
Dmitry Stogov
41dc14792e
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fixed SSA construction
2021-10-05 16:14:58 +03:00
Dmitry Stogov
22ef1fb832
Fixed SSA construction
2021-10-05 16:14:39 +03:00
Dmitry Stogov
a5e502ef4d
JIT: Combine type guard with overflow detection
2021-10-05 14:43:34 +03:00
Nikita Popov
20a784e026
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
POST_INC_OBJ/POST_DEC_OBJ don't have optional result
2021-10-05 12:05:57 +02:00
Nikita Popov
c958adce70
POST_INC_OBJ/POST_DEC_OBJ don't have optional result
...
Possibly we should be encoding this in the opcode metadata, rather
than maintaining a separate list.
Fixes oss-fuzz #39503 .
2021-10-05 12:05:39 +02:00
Christoph M. Becker
34cd6cbfe0
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Revert "Fix #81424 : PCRE2 10.35 JIT performance regression"
2021-10-05 11:52:32 +02:00
Christoph M. Becker
9523542733
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Revert "Fix #81424 : PCRE2 10.35 JIT performance regression"
2021-10-05 11:50:31 +02:00
Christoph M. Becker
a19f655b84
Revert "Fix #81424 : PCRE2 10.35 JIT performance regression"
...
This reverts commit a2471383fe .
Fixing the performance regression, apparently fixes a functional
regression[1], so we revert for now.
[1] <https://github.com/PhilipHazel/pcre2/issues/21 >
Closes GH-7556.
2021-10-05 11:49:04 +02:00
Nikita Popov
8360e9d6d1
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix COPY_TMP live range construction after optimization
2021-10-05 11:28:41 +02:00
Nikita Popov
bbd3f714d7
Fix COPY_TMP live range construction after optimization
...
If we optimize the FREE away, we should switch to constructing
a normal live range, rather than a split live range.
Fixes oss-fuzz #39548 .
2021-10-05 11:28:16 +02:00
Nikita Popov
e8e4852ebb
Restore CE_CACHE clear on persist
...
We still need to do this in case early binding succeeds and caches
the class. We could guard that by !in_compilation as well, but in
this case the previous cache clearing should be reliable, so
restore it.
2021-10-05 10:31:46 +02:00
Joe Watkins
03e9bed5b5
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix #81496 : CLI server logs wrong request method
2021-10-05 08:43:09 +02:00
Lauri Kenttä
cdcdb33080
Fix #81496 : CLI server logs wrong request method
2021-10-05 08:42:38 +02:00
Nikita Popov
cd84480e54
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Disable failing FPM test
2021-10-04 23:31:40 +02:00
Nikita Popov
a00d933242
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Disable failing FPM test
2021-10-04 23:31:31 +02:00
Nikita Popov
4c01bd2ade
Disable failing FPM test
...
Test fails intermittently, e.g.:
https://dev.azure.com/phpazuredevops/PHP/_build/results?buildId=20597&view=ms.vss-test-web.build-test-results-tab&runId=475324&resultId=115501&paneView=debug
Possibly this is because the two requests end up being processed
in sequence and no second process is spawned.
2021-10-04 23:30:14 +02:00
Jakub Zelenka
7dd87b2343
Merge branch 'PHP-8.0' into PHP-8.1
2021-10-04 21:56:06 +01:00
Jakub Zelenka
9ed95846a3
Merge branch 'PHP-7.4' into PHP-8.0
2021-10-04 21:55:21 +01:00
Jakub Zelenka
66a655fdf4
Add the actual test for FPM prod idle timeout test with 6s sleep
2021-10-04 21:54:32 +01:00
Jakub Zelenka
2cd69115d5
Merge branch 'PHP-7.4' into PHP-8.0
2021-10-04 21:53:34 +01:00
Jakub Zelenka
edfb347019
Add FPM prod idle timeout test with 6s sleep
2021-10-04 21:50:57 +01:00
Dmitry Stogov
2c95c945be
JIT: Eliminate useless EG(exception) checks after FETCH_DIM_*
2021-10-04 22:28:26 +03:00
Nikita Popov
493c91c742
Start new block after loop free
...
In the attached test case we ended up not updating a leftover
MATCH jump in the unreachable_free block. There's different ways
this can be addressed, but in this case we can just make sure that
a new block is started after the loop free, which will allow it
to be dropped as unreachable. We only need to retain the free
itself for live-range reconstruction.
Fixes oss-fuzz #39516 .
2021-10-04 16:59:46 +02:00
Dmitry Stogov
724c4fb2e5
JIT: Avoid duplicate EX(opline) assignment
2021-10-04 17:50:26 +03:00
Nikita Popov
ac70bb362e
Don't populate CE_CACHE during compilation
...
It's possible for CE_CACHE slots to be populated during compilation
(e.g. due to an early binding attempt). When opcache then persists
the class, it clears the CE_CACHE slot for the class name as declared,
but not for different spellings (that only differ in case). As such,
a pointer to the old, non-persistent class entry may be retained.
Fix this by not populating CE_CACHE if in_compilation is set.
Closes GH-7542.
2021-10-04 15:38:01 +02:00
Dmitry Stogov
066f543cac
JIT: Use zend_compare() instead of comapre_function()
2021-10-04 15:49:41 +03:00
Nikita Popov
70fa1d4d65
Merge branch 'PHP-8.0' into PHP-8.1
...
* PHP-8.0:
Fix bug #81474 : Make ReflectionAttribute non-final
2021-10-04 14:40:30 +02:00
sasezaki
e286313fa7
Fix bug #81474 : Make ReflectionAttribute non-final
...
This backports GH-7520 to PHP 8.0.
Closes GH-7545.
2021-10-04 14:39:46 +02:00