Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:87245 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 80869 invoked from network); 23 Jul 2015 11:07:09 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 23 Jul 2015 11:07:09 -0000 Authentication-Results: pb1.pair.com smtp.mail=cmbecker69@gmx.de; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=cmbecker69@gmx.de; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmx.de designates 212.227.17.21 as permitted sender) X-PHP-List-Original-Sender: cmbecker69@gmx.de X-Host-Fingerprint: 212.227.17.21 mout.gmx.net Received: from [212.227.17.21] ([212.227.17.21:55058] helo=mout.gmx.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F5/71-03755-BDAC0B55 for ; Thu, 23 Jul 2015 07:07:08 -0400 Received: from [192.168.0.100] ([95.89.139.132]) by mail.gmx.com (mrgmx103) with ESMTPSA (Nemesis) id 0M6SE3-1Yz3ad3jTv-00yNbb for ; Thu, 23 Jul 2015 13:07:05 +0200 Message-ID: <55B0CADD.8000807@gmx.de> Date: Thu, 23 Jul 2015 13:07:09 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: internals@lists.php.net Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:TmT8lRORk8rXilmeGEjftt3p8wv1Sccn056Yfy2mAxkrYJTMxPD fdxD9Yj7HE14lbu3wZBIYT5caWna5zvRQGqXOpj4WG4mY2jvJoobrzu3WtEoV2dUd9/qjwd 56OpmR8bLRVOoiRZQT396c6Yxjp0lLvYpry7TCDOOAPar2CwlJaUQBC1Txt3J6jU79yOfsE Q/huj1mTkD93ZQqI5piBQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:lkcidoge6WQ=:dLUVJOq5HA+XL055WcdePw 44KYhQuGwPCIBdBcZSerd0t/2zSUq90VjIRSL665F3kSTdz1JpMhfL3IG7jWDYOtdOz1ODvd5 KPhITmF/t2pZZsbhztB4km6FzjZ/TPgvztwynq2UjdfUvJgScT/xrAU7YijSiM+Oi4mUzcGua 9uR2lX7nVEvl6rl5/miPhSrCb//OF9YV8nZqx80b+WPvVG81Anf3KjszIMz/jIF090biBgSER typ/oiDtFrAFemVTkG3kkY4KUDXJrksHKDVlLghHYmSBBNK7yODCPm/lSvJu1ES61FaKZSkLZ 5mTHP0OiPuktDUuIP8uqKMbQxVGlP+IWQiyRYLaTRie7ygiI4GNyHQS6Co+EM5npr8HQz6Eu8 Rgg7GDT2lc/n5CExT4D8KH8jJ72lO9O2v4o8WnLHfpeZJ7dtFCyKh4UOPqKJE8p0xBh1WEqwl dlfb+mlLqjqVZBsT1yu8ibOSUlH8hC1kHIJ8e993QM6FCgHEB2EYm4bUqJ9yaPKHRpAog7tXf p6FWeYf25eSHoztQ4qEkZaKoib0qh2GD+y5Oc4Eiyp+lLznUlfBCKdTZELi8vxPySAiSSy6gf g/7t1wWnOvPQJlPeSZ6SGM7D/tugoo8u4CEplSo7D9VpVVfZLj9vxRrWj78B6WRorcD3mXwZN ol7J3woMXHuYoOmLZ5btbhmXcBAQ5FpRXm6mcldOOMt/4tWyvkeiCXhDZSe0WrYazkRY= Subject: PCRE JIT stack size limit From: cmbecker69@gmx.de (Christoph Becker) Hi! PHP7 supports PCRE's JIT compilation of patterns by default, which mostly works fine. However, there are issues when the matching exceeds the JIT stack limit, see bug #70110[1]. I'm not sure how to solve this best. Basically, I see two possible solutions: either we fall back to non JIT matching, if pcre_exec() fails with PCRE_ERROR_JIT_STACKLIMIT, or we use a custom JIT stack and make its size a configurable ini setting (similar to pcre.backtrack_limit), and raise E_WARNING if the matching fails due to limited stack size. Thoughts? [1] -- Christoph M. Becker