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.
- p5git://commit=d1bfb649a8c4cc0b39b0fd6371c009b71c0b497f - changes PAD_MAX from I32_MAX to U32_MAX
- 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
- 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) }
- 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.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|