- Notifications
You must be signed in to change notification settings - Fork8k
Closed
Description
Description
According to thedocumentation foropcache.jit
, the valuedisable
means "Completely disabled, cannot be enabled at runtime", and the valueoff
means "Disabled, but can be enabled at runtime".
But if you put the following values in yourphp.ini
:
zend_extension=opcacheopcache.jit=offopcache.jit_buffer_size=64M
...then you try to enable at runtime inside a.php
file:
<?phpini_set('opcache.jit','tracing');
...then you will get this:
Warning: Cannot change opcache.jit setting at run-time (JIT is disabled)
This is the same result you get if you setopcache.jit=disable
.
As far as I can tell, the problem is that the code is looking for the literal stringoff
but since that value is handled specially by PHP's ini parser, the code will never actually see a value ofoff
. (It will never seeno
orfalse
either.)
php-src/ext/opcache/jit/zend_jit.c
Lines 4806 to 4817 in8830fbd
if (ZSTR_LEN(jit)==0 | |
||zend_string_equals_literal_ci(jit,"disable")) { | |
JIT_G(enabled)=0; | |
JIT_G(on)=0; | |
returnSUCCESS; | |
}elseif (zend_string_equals_literal_ci(jit,"0") | |
||zend_string_equals_literal_ci(jit,"off") | |
||zend_string_equals_literal_ci(jit,"no") | |
||zend_string_equals_literal_ci(jit,"false")) { | |
JIT_G(enabled)=1; | |
JIT_G(on)=0; | |
returnSUCCESS; |
PHP Version
PHP 8.3.7
Operating System
No response