In perl.git, the branch sprout/misc-post-5.16 has been updated <http://perl5.git.perl.org/perl.git/commitdiff/8ca96ca9655c3992f22d835e063aaa6cc7b9a489?hp=acf52dc97afbfa98bebc57d69512e6abcfc19107>
- Log ----------------------------------------------------------------- commit 8ca96ca9655c3992f22d835e063aaa6cc7b9a489 Author: Father Chrysostomos <[email protected]> Date: Sat Apr 21 23:28:51 2012 -0700 regen/opcodes: Rmv evalonce comment This goes all the way back to when perl 5.0 was being polished up. The idea behind evalonce is that eval "constant string" should be optimisable by being compiled ahead of time, just like eval { ... }. But this could never work properly, because BEGIN blocks would only fire once. Also, eval '$x .. $y' is an easy way to create two separ- ate flip-flops. There are undoubtedly many other reasons why this could never work. So there is no reason to keep this comment any longer, as it is not (or should not be) a to-do item. M regen/opcodes commit a215b0e0be9071babb48aa5c3f61dffa354dee04 Author: Father Chrysostomos <[email protected]> Date: Sat Apr 21 23:25:33 2012 -0700 pp_hot.c:pp_entersub: Rmv comment about setting PL_compcv PL_compcv is meant to point to the currently compiling sub, even dur- ing an evalâs run time. (See commit 676a678.) Therefore, this com- mentâs suggestion is incorrect. M pp_hot.c ----------------------------------------------------------------------- Summary of changes: pp_hot.c | 5 ----- regen/opcodes | 1 - 2 files changed, 0 insertions(+), 6 deletions(-) diff --git a/pp_hot.c b/pp_hot.c index 89165d9..d0cf006 100644 --- a/pp_hot.c +++ b/pp_hot.c @@ -2685,11 +2685,6 @@ try_autoload: PUSHSUB(cx); cx->blk_sub.retop = PL_op->op_next; CvDEPTH(cv)++; - /* XXX This would be a natural place to set C<PL_compcv = cv> so - * that eval'' ops within this sub know the correct lexical space. - * Owing the speed considerations, we choose instead to search for - * the cv using find_runcv() when calling doeval(). - */ if (CvDEPTH(cv) >= 2) { PERL_STACK_OVERFLOW_CHECK(); pad_push(padlist, CvDEPTH(cv)); diff --git a/regen/opcodes b/regen/opcodes index 22cc913..0beba6a 100644 --- a/regen/opcodes +++ b/regen/opcodes @@ -485,7 +485,6 @@ dofile do "file" ck_fun d1 S hintseval eval hints ck_svconst s$ entereval eval "string" ck_eval du% S? leaveeval eval "string" exit ck_null 1 S -#evalonce eval constant string ck_null d1 S entertry eval {block} ck_eval d| leavetry eval {block} exit ck_null @ -- Perl5 Master Repository
