[pypy-dev] pypy 4.0.0 "Fatal RPython error: AssertionError"

Armin Rigo arigo at tunes.org
Sat Nov 7 08:40:25 EST 2015


ReHi,

On Sat, Nov 7, 2015 at 2:25 PM, Armin Rigo <arigo at tunes.org> wrote:
> More thoughts needed.

One solution would be to use two modes when optimizing the two
unrolled versions of the loop.  For the 1st version we do like now.
But the 2nd version is run "speculatively" and so more care is needed:
we should not do any actual memory read (from either GC or raw
pointers).  Instead, we record the reads done during the 1st version's
optimization, and we replay them during the 2nd version.  The common
case should be that there are reads from the same locations anyway.
But if an attempted read occurs *only* during the 2nd version, like in
these strange examples, then we don't do any constant-folding.

Would that miss an important case?


A bientôt,

Armin.


More information about the pypy-dev mailing list