Commit graph

203 commits

Author SHA1 Message Date
Nikita Popov
0571f09424 Rename opcache.jit_max_loops_unroll to opcache.jit_max_loop_unrolls 2020-11-02 12:25:21 +01:00
Benjamin Eberlei
53ef244923 Add opcache.jit=tracing|function values, make on/yes/true synonym for tracing. 2020-08-04 10:15:22 +02:00
Dmitry Stogov
8a42f357bf Replace ZEND_JIT_TRACE_MAX_EXIT_COUNTERS constant by opcache.jit_max_exit_counters configuration directive 2020-07-28 11:18:18 +03:00
Nikita Popov
eb04cb5f20 Move checks after zpp in opcache_is_script_cached() 2020-07-22 10:52:50 +02:00
Max Semenik
2b5de6f839
Remove proto comments from C files
Closes GH-5758
2020-07-06 21:13:34 +02:00
Dmitry Stogov
e9f295ac84 Tracing JIT support for megamorphic calls 2020-06-09 23:33:22 +03:00
Christoph M. Becker
d23cd354c0 Fix #79665: ini_get() and opcache_get_configuration() inconsistency
Overriding the given INI values in modifier callbacks is not possible,
so instead of enforcing "normalized" internal values, we just reject
the attempted changes.
2020-06-03 11:07:25 +02:00
Dmitry Stogov
efbe96166d Split "opcache.jit_max_recursion_unroll" into "opcache.jit_max_recursive_calls" and "opcache.jit_max_recursive_returns".
It's possible to disable recording of "recursive return loops" setting opcache.jit_max_recursive_returns to 0.
2020-05-28 12:28:05 +03:00
Dmitry Stogov
2dfd6cd373 Allow counter settings to be "zero" to disable corresponding counter 2020-05-21 01:06:50 +03:00
Nikita Popov
0a74da385d Add support for replaying warnings in opcache
If opcache.record_warnings is enabled, opcache will record
compilation warnings and replay them when the file is included
again. The primary use case I have in mind for this is automated
testing of the opcache file cache.

This resolves bug #76535.
2020-05-20 11:20:21 +02:00
Dmitry Stogov
928c796290 Make number of root and side traces configurable 2020-05-20 01:40:01 +03:00
Nikita Popov
74ef4bd7ed Fix opcache_get_configuration() test 2020-05-19 14:12:30 +02:00
Dmitry Stogov
8c19e611aa Make JIT parameters configurable through opcache.jit_... options 2020-05-19 13:35:02 +03:00
Dmitry Stogov
0695048e20 JIT refactoring to allow run-time changes of JIT options (triggers, optimization_level, debug flags, etc) 2020-05-18 10:23:06 +03:00
Christoph M. Becker
3689807998 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #79588: Boolean opcache settings ignore on/off values
2020-05-12 19:50:16 +02:00
Christoph M. Becker
129fd647a1 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #79588: Boolean opcache settings ignore on/off values
2020-05-12 19:48:12 +02:00
Christoph M. Becker
5bdb4ab786 Fix #79588: Boolean opcache settings ignore on/off values
We should display boolean INI settings as boolean.
2020-05-12 19:44:39 +02:00
Nikita Popov
41c7d28c11 Add macro to get ini target address 2020-04-27 10:30:00 +02:00
Máté Kocsis
21cfa03f17
Generate function entries for another batch of extensions
Closes GH-5352
2020-04-05 21:15:30 +02:00
Máté Kocsis
345703724c
Use RETURN_THROWS() during ZPP in most of the extensions
Except for some bigger ones: reflection, sodium, spl
2019-12-31 11:46:11 +01:00
Máté Kocsis
9493893412 Cleanup return values when parameter parsing is unsuccessful 2019-10-30 16:05:20 +01:00
Christoph M. Becker
9b9fac78b0 Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78429: opcache_compile_file(__FILE__); segfaults
2019-09-16 16:01:49 +02:00
Christoph M. Becker
20f73d3d8f Fix #78429: opcache_compile_file(__FILE__); segfaults
We have to ensure that OPcache has been properly started up when
`opcache_compile_file()` is called.
2019-09-16 16:01:09 +02:00
Dmitry Stogov
3be83233c3 Merge branch 'PHP-7.4'
* PHP-7.4:
  Execute preload script under user defined by opcache.preload_user directive
2019-09-03 14:23:44 +03:00
Dmitry Stogov
5dc37cc306 Execute preload script under user defined by opcache.preload_user directive 2019-09-03 14:23:13 +03:00
Nikita Popov
65fa6dac19 Add jit_bisect_limit
To help identify which function is being miscompiled.
2019-08-30 14:50:22 +02:00
Christoph M. Becker
0ab4fca8e3 Add ext\opcache stubs 2019-08-26 16:05:01 +02:00
Christoph M. Becker
54401001a8 Merge branch 'PHP-7.4'
* PHP-7.4:
  Allow multiple cache instances per user/host on Windows
2019-07-17 19:52:49 +02:00
Christoph M. Becker
e2ed7e6716 Allow multiple cache instances per user/host on Windows
Formerly, there was at most a single OPcache instance per user and the
so called system ID (which is determined from the PHP version).
Sometimes multiple OPcaches might be desired, though, particularly for
unrelated CLI scripts, which may even be necessary (e.g. for our test
suite in parallel mode).

We therefore introduce a new INI directive `opcache.cache_id` which
allows to configure independent OPcache instances for the same user.

We also use `GetUserNameW()` instead of `php_win32_get_username()`,
because the latter retrieves the user name encoded in the
`default_charset`, which can obviously yield different results for
different charsets, leading to OPcache "incompatibilities".  Slightly
worse, some characters may not even be encodeable in the
`default_charset` and would be replaced by question marks, which could
result in different users sharing the same OPcache.

We also refactor, and re-use existing APIs to avoid duplicated code.
2019-07-17 19:51:07 +02:00
Nikita Popov
3faa903d47 Merge branch 'PHP-7.4' 2019-07-16 16:44:46 +02:00
Nikita Popov
49bac9b77b Introduce zend_stream_init_filename()
Avoid more ad-hoc initialization of zend_file_handle structures.
2019-07-16 16:44:37 +02:00
Nikita Popov
760308cbff Fix build without jit 2019-07-16 10:26:25 +02:00
Nikita Popov
8a10258a53 Merge branch 'PHP-7.4' 2019-07-15 10:33:31 +02:00
Nikita Popov
a520c24269 Merge branch 'PHP-7.3' into PHP-7.4 2019-07-15 10:29:37 +02:00
Nikita Popov
3eb057c4a7 Merge branch 'PHP-7.2' into PHP-7.3 2019-07-15 10:23:51 +02:00
Andrew Collington
768ad70f70 Fix bug #78291 Missing opcache directives
New opcache directives have been added recently which are returned
if using `ini_get_all('zend opcache')` but are not listed in the
directives if using `opcache_get_configuration()`.  This fix adds
those missing directives as well as if `opcache.mmap_base` is used
instead of `opcache.lockfile_path`.  Also adds a test to ensure the
directives match with both methods of fetching.
2019-07-15 10:22:47 +02:00
Christoph M. Becker
d1141ff24b Merge branch 'PHP-7.4'
* PHP-7.4:
  Fix #78202: Opcache stats for cache hits are capped at 32bit NUM
2019-06-25 13:07:00 +02:00
Christoph M. Becker
ead40e31e9 Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Fix #78202: Opcache stats for cache hits are capped at 32bit NUM
2019-06-25 13:06:20 +02:00
Christoph M. Becker
18bba63f39 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Fix #78202: Opcache stats for cache hits are capped at 32bit NUM
2019-06-25 13:04:28 +02:00
Christoph M. Becker
4366f22dfc Fix #78202: Opcache stats for cache hits are capped at 32bit NUM
We use the proper format specifiers now.
2019-06-25 13:00:28 +02:00
Dmitry Stogov
1707f6645a Additional fix for bug #78185 (File cache no longer works) 2019-06-21 10:06:35 +03:00
Nikita Popov
026023bd71 Merge branch 'PHP-7.4' 2019-06-13 12:54:17 +02:00
Nikita Popov
e5be58f57c Merge branch 'PHP-7.3' into PHP-7.4 2019-06-13 12:54:10 +02:00
Nikita Popov
bada2049ca Merge branch 'PHP-7.2' into PHP-7.3 2019-06-13 12:52:32 +02:00
Nikita Popov
f1a8138055 Fixed bug #78106
When disabling opcache during the request via opcache.enable ini
setting, make sure we also disable ZCG(accelerator_enabled).
2019-06-13 12:51:35 +02:00
Dmitry Stogov
83b12d5b57 Merge branch 'PHP-7.4'
* PHP-7.4:
  Prevent race condition in opcache_reset()
2019-05-21 00:08:22 +03:00
Dmitry Stogov
e2f8d906cf Merge branch 'PHP-7.3' into PHP-7.4
* PHP-7.3:
  Prevent race condition in opcache_reset()
2019-05-21 00:08:12 +03:00
Dmitry Stogov
354a76bb80 Merge branch 'PHP-7.2' into PHP-7.3
* PHP-7.2:
  Prevent race condition in opcache_reset()
2019-05-21 00:08:03 +03:00
Dmitry Stogov
a8a019d68a Prevent race condition in opcache_reset() 2019-05-21 00:07:17 +03:00
Dmitry Stogov
4d8e0d493a Merge branch 'PHP-7.4'
* PHP-7.4:
  Moved NEWS entry
  Fixed possible crashes, because of inconsistent PCRE cache and opcache SHM reset
2019-05-14 15:09:30 +03:00