Commit graph

5996 commits

Author SHA1 Message Date
Dmitry Stogov
586153b9ef Update IR
IR commit: 2c5b63d4b89b25a323444f6629e6d7c9e9d17300
2024-03-14 22:23:05 +03:00
Máté Kocsis
330cc5cdb2
Deprecate implicit nullable parameter types (#12959)
RFC: https://wiki.php.net/rfc/deprecate-implicitly-nullable-types

Co-authored-by: Gina Peter Banyard <girgias@php.net>
2024-03-13 21:40:26 +01:00
Dmitry Stogov
3bf4bcc775 Update IR
IR commit: 1d3df9f7dd82fe49001e714a4c31962387b526f6
2024-03-13 21:22:50 +03:00
Arnaud Le Blanc
ef8dcbda49 Merge branch 'PHP-8.3'
* PHP-8.3:
  [ci skip] NEWS
  [ci skip] NEWS
  Fix GH-13508: JITed QM_ASSIGN may be optimized out when op1 is null (#13610)
2024-03-11 15:15:36 +01:00
Arnaud Le Blanc
a4d769ccb3 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [ci skip] NEWS
  Fix GH-13508: JITed QM_ASSIGN may be optimized out when op1 is null (#13610)
2024-03-11 15:13:56 +01:00
Arnaud Le Blanc
0ea80126ea
Fix GH-13508: JITed QM_ASSIGN may be optimized out when op1 is null (#13610)
Co-authored-by: Dmitry Stogov <dmitry@zend.com>
2024-03-11 15:10:12 +01:00
Ilija Tovilo
58a14fbd6f
Merge branch 'PHP-8.3'
* PHP-8.3:
  Remove MAP_JIT flag
2024-03-09 23:09:22 +01:00
Ilija Tovilo
5cbcc10c6c
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Remove MAP_JIT flag
2024-03-09 23:09:13 +01:00
Ilija Tovilo
00f9c5eeb4
Remove MAP_JIT flag
This flag is supposed to go on the flags parameter, rather than prot. Moreover,
this flag is no longer needed because the JIT does not set RWX without ZTS, and
JIT+ZTS has been disabled on macOS with Apple Silicon.

Closes GH-13638
2024-03-09 23:08:44 +01:00
Dmitry Stogov
34f27e1b1f Update IR
IR commit: cd6fe296e8f39af70d5532d955add261899f2639
2024-03-07 19:38:03 +03:00
Dmitry Stogov
a541b95a5e Update IR
IR commit: cdf6e44c73d393794ad97b0487318f101c77f1bd
2024-03-06 22:11:50 +03:00
Dmitry Stogov
8cc8eac7e9 Update IR
IR commit: c63708b3664568d847b6db07ea380778f5c0313a

Fix recently introduced nightly test failures
ir_cfg.c:2305: ir_schedule_blocks_bottom_up: Assertion `bb->flags & (1<<2)' failed
2024-03-06 11:02:56 +03:00
Dmitry Stogov
ffa3f4f746 Update IR
IR commit: 47c8433b944a408cb9326d4cff76ceda3cdc2e2d
2024-03-06 01:17:19 +03:00
Dmitry Stogov
2066bf1e18 Update IR
IR commit: 2bc594304cb40ebc3930c529a6ade7d121d5e00b
2024-03-05 11:33:02 +03:00
Dmitry Stogov
cab88ddb7d IR Update
IR commit: b9c5fd8d691f576a6a9ae4ad2464ea51e18203a5
2024-03-04 22:56:36 +03:00
Peter Kokot
7d0e2d8e4d
Add missing memfd_create Autoconf check for bundled pcre2lib (#13561)
This moves memfd_create (HAVE_MEMFD_CREATE) to configure.ac. Since
ext/pcre is always enabled and check can be done in this case for
ext/pcre and ext/opcache at once.
2024-03-01 17:17:28 +01:00
Máté Kocsis
f2e199e878
Implement "support doc comments for internal classes and functions" (#13266)
Fixes #13130
2024-02-25 08:41:31 +01:00
Dmitry Stogov
b2b5b0101e Update IR
IR commit: 1164842ac28ba141c604c6fae8ec960f9aec369b
2024-02-22 00:24:20 +03:00
Dmitry Stogov
793ddc7c8a Update IR
IR commit: 0b557c0e4578cbfdbf8017f4adac335d795156dc
2024-02-21 23:36:52 +03:00
Peter Kokot
e72f0c887b
Simplify prctl and procctl Autoconf checks (#13450)
The AC_CHECK_FUNCS checks whether the linker sees the function in the
usual libraries, in this case libc. This is a simple trick to also check
existence of belonging headers, since the code uses HAVE_PRCTL and
HAVE_PROCCTL to include headers and call functions.
2024-02-21 09:04:37 +01:00
Dmitry Stogov
f5efaa39fa Update IR
IR commit: 873f13dd933acc38ba4cfe2a4aa8558867992a7e
2024-02-21 01:48:38 +03:00
Dmitry Stogov
23aac16d13 Update IR
IR commit: 67477a78251aafe35515eb7a339e309a0e0d4919
2024-02-21 01:13:31 +03:00
Dmitry Stogov
e3683ea479 Merge branch 'PHP-8.3'
* PHP-8.3:
  Prevent recording traces started from usupported VM instruction
2024-02-19 13:23:14 +03:00
Dmitry Stogov
00259952e4 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Prevent recording traces started from usupported VM instruction
2024-02-19 13:23:05 +03:00
Dmitry Stogov
728b81d92e Prevent recording traces started from usupported VM instruction 2024-02-19 13:22:30 +03:00
Máté Kocsis
10957e498c
Do not generate frameless info items when func info generation is disabled
While here, I fixed newlines around arginfo and function entry generation. Previously, newlines were repeated.
2024-02-18 11:39:00 +01:00
Ilija Tovilo
9f1b43f508
Merge branch 'PHP-8.3'
* PHP-8.3:
  Disable JIT on Apple Silicon + ZTS
2024-02-18 00:08:52 +01:00
Ilija Tovilo
f057d2b138
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Disable JIT on Apple Silicon + ZTS
2024-02-18 00:08:42 +01:00
Ilija Tovilo
6db95512b4
Disable JIT on Apple Silicon + ZTS
Apple Silicon has stricter rules about rwx mmap regions. They need to be created
using the MAP_JIT flag. However, the MAP_JIT seems to be incompatible with
MAP_SHARED. ZTS requires MAP_SHARED so that some threads may execute code from a
page while another writes/appends to it. We did not find another solution, other
than completely disabling JIT for Apple Silicon + ZTS.

See discussion in https://github.com/php/php-src/pull/13351.

Co-authored-by: Peter Kokot <peterkokot@gmail.com>
Fixes GH-13400
Closes GH-13396
2024-02-18 00:07:46 +01:00
Dmitry Stogov
1f7cba2fec Update IR
IR commit: 89989794a25ac43778398545b32d030dddc0e8b1
2024-02-16 01:00:46 +03:00
Dmitry Stogov
ce96aa9188 Update IR
IR commit: f7c0ddb1b4630e1287b0239f85d64a6965dfea29
2024-02-14 23:57:22 +03:00
Máté Kocsis
844c1ac962
Add missing --EXTENSIONS-- section from frameless function inference test 2024-02-13 22:54:21 +01:00
Michael Voříšek
87edeed3b9
Remove UNEXPECTED from typed prop checks
Closes GH-13143
2024-02-12 11:35:43 +01:00
Dmitry Stogov
2289af889c Update IR
IR commit: ab6ebce1cc25f7d2c634bd13af043f76d6ef524e
2024-02-12 12:24:48 +03:00
Dmitry Stogov
a3620cd6e7 Update IR
IR commit: d2ab283e3c3bb4b5ba21701a4d18f14fd9b3d798
2024-02-12 09:36:33 +03:00
Dmitry Stogov
71cccc0bcc Merge branch 'PHP-8.3'
* PHP-8.3:
  Fix TLS access in JIT with MUSL (#13329)
2024-02-12 08:16:46 +03:00
Dmitry Stogov
667b08c953 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix TLS access in JIT with MUSL (#13329)
2024-02-12 08:14:08 +03:00
Dmitry Stogov
94ba883e19
Fix TLS access in JIT with MUSL (#13329) 2024-02-12 08:13:23 +03:00
Ilija Tovilo
49ebfb04ef
Fix JMP_FRAMELESS with ZEND_USE_ABS_JMP_ADDR
which is used on 32-bit machines.
2024-02-07 15:50:38 +01:00
Ilija Tovilo
97e6c54336
Fix RC inference narrowing for ASSIGN_OBJ
Fixes oss-fuzz #66519
Closes GH-13345
2024-02-07 13:03:14 +01:00
Ilija Tovilo
631bc81607
Implement stackless internal function calls
Co-authored-by: Dmitry Stogov <dmitry@zend.com>

Closes GH-12461
2024-02-06 17:42:28 +01:00
Ilija Tovilo
f8c9928e6f
Fix tests with explicit opcache.log_verbosity_level setting 2024-02-05 15:00:32 +01:00
David CARLIER
b8f10decb3
ZEND_ELEMENT_COUNT usage reduction. (#13324)
clang 18 is going to be released and in the meantime the counted_by
attribute usage had been constrained to true flexible arrays,
typical cases such as type name[1] ZEND_ELEMENT_COUNT(size) no longer
build.
2024-02-04 19:09:15 +00:00
Dmitry Stogov
cea64f7aa3 Update IR
IR commit: dfa54b88f929606908502f70b23964a7b388b1ab
2024-02-02 09:15:57 +03:00
Dmitry Stogov
2bf9f7eb19 Fix compilation warning 2024-02-01 12:45:41 +03:00
Dmitry Stogov
cc5a39458c Update IR
IR commit: 553af9c2263c873ac1d01aa49925a4713122e8b4
2024-02-01 00:14:24 +03:00
Dmitry Stogov
c50255c626 Update IR
IR commit: 682cc0ca6761164dbcd791e5f56283f8e88537d2

Fixes GH-13286
2024-01-31 22:20:10 +03:00
Dmitry Stogov
765382eeea Update IR
IR commit: 2ea3215ebd15a1fa332b8b6118df2bc51a60d81c

Fixes two recently introduced bugs caught by PHP nightly workwlow
2088438753
2024-01-26 07:32:34 +03:00
Dmitry Stogov
90bab1e732 Update IR
IR commit: 87bf12844ea0e36151b3a172dce28b55b5ae1503

Fixes ext/opcache/tests/jit/bug81225_2.phpt failure
2024-01-25 23:31:55 +03:00
Dmitry Stogov
136a972ccb Update IR
IR commit: 0108cdf808d1e7dd6b702738949e095151f49040
2024-01-25 22:50:30 +03:00