Re: PCRE JIT stack size limit

From: Date: Fri, 24 Jul 2015 12:58:05 +0000
Subject: Re: PCRE JIT stack size limit
References: 1 2 3 4 5  Groups: php.internals 
Request: Send a blank email to internals+get-87271@lists.php.net to get a copy of this message
On Jul 24, 2015 3:32 PM, "David Zuelke" <dz@heroku.com> wrote: > > On 24.07.2015, at 09:33, Adam Harvey <aharvey@php.net> wrote: > > > > On 23 July 2015 at 11:47, Christoph Becker <cmbecker69@gmx.de> wrote: > > <snip great explanation, thanks> > >> Therefore I tend to prefer a new ini setting (say, pcre.jitstack_limit). > >> That would mean, however, to add yet another ini setting, of which > >> there are already so many. > > > > I'm not a big fan of that, although it's at least in the spirit of > > what configuration settings are meant to be used for. > > > > What if we added the PCRE_ERROR_JIT_STACKLIMIT error constant to those > > exposed to userland so that it's more easily noticed via > > preg_last_error(), and adding a modifier that can be used to disable > > the JIT on a per-pattern basis (by setting PCRE_NO_START_OPTIMIZE, > > which admittedly disables other stuff too, but at least the regex will > > run)? At least then users could check the error when the regex fails > > and re-run the regex without the JIT if they chose to. > > But this might mean that patterns which previously worked, because no JIT was used, suddenly fail in existing code with a new error constant. Which I guess is a BC break. Such things happened in the past with normal updates, both ways. Simple code changes, fixes etc may have led to changes in the stack usage. I can remember issues with some specific updates.

« previous php.internals (#87271) next »