Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Interpreter eval counter out of bounds

by Corion (Patriarch)
on Feb 06, 2011 at 20:14 UTC ( [id://886548]=note: print w/replies, xml ) Need Help??


in reply to Interpreter eval counter out of bounds

dave_the_m just pushed a set of changes that should fix this. It seems the (deep) cause was an overflow of a sequence counter that reached a magic value.

  1. p5git://commit=d1bfb649a8c4cc0b39b0fd6371c009b71c0b497f - changes PAD_MAX from I32_MAX to U32_MAX
  2. p5git://commit=2df5bdd700b8a6ef036aa5be19d4bda9e3ca20bc - renames PAD_MAX to PERL_PADSEQ_INTRO, as the value is now used as a magic value to signify lexical variable introduction
  3. p5git://commit=0d311cdbe540a08e243ac533c7bcdb73529352db - introduces (and documents) the states that an SV can have in a loop (I'm not sure I understand the mechanics involved here):
    COP_SEQ_RANGE_LOW _HIGH ----------------- ----- PERL_PADSEQ_INTRO 0 variable not yet introduced: { m +y ($x valid-seq# PERL_PADSEQ_INTRO variable in scope: { m +y ($x) valid-seq# valid-seq# compilation of scope complete: { m +y ($x) }
  4. p5git://commit=6012dc8015d0c5599f09bcca302ae714d023aced - allow the sequence number to wrap instead of reaching the magic value.
    Surprisingly, this patch touches a lot of places where I would have thought it would touch just the place where the sequence number is incremented. But it seems that the sequence number is incremented in several places.

Looking at the changes involved, I'm not sure whether the eval was necessary to trigger the bug, but that may be due to my lack of understanding the mechanics involved.

Replies are listed 'Best First'.
Re^2: Interpreter eval counter out of bounds
by andreas1234567 (Vicar) on Feb 07, 2011 at 07:11 UTC
    Dave writes:
    Its a good candidate for maint a cherry-pick.
    Does that mean there is a chance we might see the patch back-ported to older perls, e.g. 5.8 and 5.10 ?
    --
    No matter how great and destructive your problems may seem now, remember, you've probably only seen the tip of them. [1]

      No. There is no maintainer for 5.8 or 5.10, so it's highly unlikely. The only Perl version in active maintenance is 5.12. I remember Zefram musing about doing a maintenance release of 5.10 (that would be 5.10.3), but I also remember the discussion mostly leaning towards build failures and not doing real work there.

      Update: Found the p5p post about doing a 5.10.2 and possibly 5.10.3. I guess you could lobby Zefram for including that patch, but there is little guarantee for anything.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://886548]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2024-03-28 19:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found