New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
eval localises %^H at runtime #9941
Comments
From zefram@fysh.orgCreated by zefram@fysh.org$ perl -lwe 'BEGIN { $^H{foo}=1; } BEGIN { eval q{ $^H{bar} = 1; }; } BEGIN { print "foo=$^H{foo}, bar=$^H{bar}"; }' The execution of the string-evaled code takes place with %^H, and a bunch I described this on p5p last week, mainly concerned with PL_compcv I had a go at modifying doeval() and its callers to avoid the problem, Marginally relevant: my Parse::Perl module, if used as a direct Perl Info
|
From @khwilliamsonZefram (via RT) wrote:
I wonder if this is has any bearing on [perl #56444] and [perl #62056] |
The RT System itself - Status changed from 'new' to 'open' |
From @demerphq2009/11/4 karl williamson <public@khwilliamson.com>:
Im pretty sure not, im pretty sure that charnames problem is just a I think i explained this before somewhere.... cheers, -- |
From @khwilliamsondemerphq wrote:
What I know is that looking at this with gdb, the bit was 0 when I, |
From @demerphq2009/11/5 karl williamson <public@khwilliamson.com>:
The hints problem probably does lead to problems with charnames in But even if it didn't we would still have problems with charnames due If we fix the escape problem the hints problem will be irrelevant to In other words the hints problem exposes an aspect of the underlying Cheers, -- |
From @cpansproutOn Sun Nov 01 08:03:47 2009, zefram@fysh.org wrote:
I’ve started looking at this, because I think it *might* get in the way I have a question: Why does pp_hintseval have to store a copy of Then that leads on to another question: If we eliminate the hintseval -- Father Chrysostomos |
From zefram@fysh.orgFather Chrysostomos via RT wrote:
Because string eval needs the compile-time form of the hints hash, -zefram |
From @cpansproutOn Sun Nov 01 08:03:47 2009, zefram@fysh.org wrote:
I’m trying to fix this by setting up a new scope for hint localisation, yystatus = (!in_require && CATCH_GET) ? S_try_yyparse(aTHX_ In particular, what are the possible values of yystatus? Which values -- Father Chrysostomos |
From @cpansproutOn Sun Nov 01 08:03:47 2009, zefram@fysh.org wrote:
Interestingly, there are tests for this buggy behaviour in t/comp/hints.t: # op_entereval should keep the pragmas it was compiled with I think the tests should change. -- Father Chrysostomos |
From @iabynOn Wed, Nov 16, 2011 at 03:51:11PM -0800, Father Chrysostomos via RT wrote:
I introduced this code with this commit: but have already mostly forgotten it. I depends on what sort of scopes you are talking about. That commit fixed The return values of S_try_yyparse are documented just above that function: * 0: yyparse() successful so 0/1 are normal execution, with yyparse() having returned true or false: -- |
From @cpansproutOn Thu Nov 17 03:20:15 2011, davem wrote:
Interesting. The same thing affects UNITCHECK{die}, which crashes -- Father Chrysostomos |
From @cpansproutOn Thu Nov 17 03:20:15 2011, davem wrote:
It seems it does, as that was the only assumption that worked. I’ve now -- Father Chrysostomos |
@cpansprout - Status changed from 'open' to 'resolved' |
Migrated from rt.perl.org#70151 (status was 'resolved')
Searchable as RT70151$
The text was updated successfully, but these errors were encountered: