Branch: refs/heads/yves/disable_curlyx_with_eval Home: https://github.com/Perl/perl5 Commit: ca6efcf3d98c1af754358760ec3dd3019a2f6010 https://github.com/Perl/perl5/commit/ca6efcf3d98c1af754358760ec3dd3019a2f6010 Author: Yves Orton <demer...@gmail.com> Date: 2023-01-15 (Sun, 15 Jan 2023)
Changed paths: M regcomp_debug.c M regcomp_study.c M t/re/pat_re_eval.t Log Message: ----------- regcomp_study.c - disable CURLYX optimizations when EVAL has been seen anywhere Historically we disabled CURLYX optimizations when they *contained* an EVAL, on the assumption that the optimization might affect how many times, etc, the eval was called. However, this is also true for CURLYX with evals *afterwards*. If the CURLYN or CURLYM optimization can prune off the search space, then an eval afterwards will be affected. An when you take into account GOSUB, it means that an eval in front might be affected by an optimization after it. So for now we disable CURLYN and CURLYM in any pattern with an EVAL.