Here's some further background:

   On 14-Jan-06 I had done some hacking on my compiler using r11187, and
all worked fine when I did my last checkin that day.  When I updated to
r11220 late on 16-Jan-06, doing the standard "make clean test" on my
code broke mysteriously in a number of places.  I found two separate
syndromes by the time I had to quit:

   1.  Several of the cases were segfaulting; the only one I looked at
in detail was doing mark_context from Parrot_Closure_mark.

   2.  One case reported ":outer '_test_1' not found" where _test_1
existed but declared no lexicals (i.e. the "closure" had no variables
closed over); deleting the :outer construct from the inner sub made it
work.  I was tracking this down when I stumbled onto the
compute_dominance_frontiers issue, which I assumed was yet another bug.

   But maybe not.  This evening, after updating to Parrot r11257, doing
"make clean test" on my code worked just fine.  That suggests that
compute_dominance_frontiers became subtly broken between r11187 and
r11220, but too subtly for the test suite to detect it (which is kinda
scary).

   FWIW, if I try 'parrot -O1' or 'parrot -O2' in r11257, it doesn't
even compile my code; it segfaults in branch_reorg in some place
completely different.  Caveat optimizator, I guess . . .

                                        -- Bob

P.S.  I needed to resend this in order to get it into RT.

Reply via email to