Hi Anatol, On 04.08.2015 at 11:24, Anatol Belski wrote:
> Hi Christoph, > >> -----Original Message----- >> From: Christoph Becker [mailto:cmbecke...@gmx.de] >> Sent: Tuesday, August 4, 2015 2:35 AM >> To: Anatol Belski <anatol....@belski.net>; 'Christoph Becker' >> <cmbecke...@gmx.de>; 'Pierre Joye' <pierre....@gmail.com> >> Cc: 'PHP internals' <internals@lists.php.net> >> Subject: Re: [PHP-DEV] PCRE JIT stack size limit >> >> On 27.07.2015 at 13:28, Anatol Belski wrote: >> >>>> -----Original Message----- >>>> From: Christoph Becker [mailto:cmbecke...@gmx.de] >>>> Sent: Monday, July 27, 2015 12:06 AM >>>> To: Anatol Belski <anatol....@belski.net>; 'Pierre Joye' >>>> <pierre....@gmail.com> >>>> Cc: 'PHP internals' <internals@lists.php.net> >>>> Subject: Re: [PHP-DEV] PCRE JIT stack size limit >>>> >> If we leave it as this, I suggest to make pcre.jit PHP_INI_PERDIR instead of >> PHP_INI_ALL for PHP 7.0. That still gives users the option to disable it >> (ideally >> even on shared hosting), but avoids issues when dynamically switching the >> setting with regard to our regexp caching. If we find a better solution for >> PHP >> 7.1, we still can extend it to PHP_INI_ALL without a BC break. >> > That would disable possibility to change it in the registry which is > PHP_INI_USER. That's something about shared hosting, too. Ah, I see. Then we ought to prominently document that chaning the setting during script execution might not have the desired effect due to internal caching. >> For PHP 7.1 it might be worthwhile to consider to store jitted resp. >> non-jitted regexps in the cache, and to fetch what fits to the current >> setting of >> pcre.jit (and otherwise to compile again, adding the new entry to the cache, >> or >> maybe replacing it). >> > Not sure to understand what you mean. Storing every pattern in both variants > studied with and without JIT? I didn't mean to store all patterns in both variants, but rather as requested. Say, the PHP script starts with pcre.jit=0, so all patterns will be stored studied without JIT. Then the script changes to pcre.jit=1. Following cache lookups check whether an already cached pattern was studied with JIT. If not, a new cache entry is made with the pattern studied with JIT (that new entry may replace the old one or not; not sure what's best). Changing back to pcre.jit=0 will again keep the old patterns, but ensures that only those which have been studied without JIT are retrieved from the cache. -- Christoph M. Becker -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php