Open GoogleCodeExporter opened 8 years ago
I'm pretty sure the fatal bail is caused by the assignment of i in the global
scope
during the for loop. When that happens, we invalidate the machine code
associated
with y since it will cache a pointer to obj in the IR, and if the globals dict
gets
modified, we can't rely on that assumption anymore.
There is no RuntimeError because we invalidate the machine code before it starts
running, ie when i is reassigned in the for loop, but a fatal bail is recorded
anyway.
Maybe "fatal bail" is not the right way to describe this occurrence in the
instrumentation. "Invalidated machine code" seems more accurate to me.
Original comment by reid.kle...@gmail.com
on 10 Jan 2010 at 9:09
Moving the loop into a function 'fixes' the problem. I vote for a renaming!
Original comment by joerg...@gmail.com
on 10 Jan 2010 at 10:06
We could also raise RuntimeError at the place the dict modification happens.
That would
make it a lot easier to track down *why* your machine code is being invalidated.
Original comment by collinw
on 11 Jan 2010 at 4:37
Original issue reported on code.google.com by
joerg...@gmail.com
on 10 Jan 2010 at 2:50Attachments: