Hi Hakan, On 13 October 2014 11:52, Hakan Ardo <ha...@debian.org> wrote: > On Mon, Oct 13, 2014 at 11:45 AM, Armin Rigo <ar...@tunes.org> wrote: >> Hi Hakan, >> >> On 13 October 2014 10:11, Hakan Ardo <ha...@debian.org> wrote: >>> mark_opaque_ptr is used by unrolling to prevent moving getfield_gc(p1) >>> into the short preamble is p1 if opaque. This is needed since the >>> pointer might be pointing to something of a different type than what >>> it was pointing to during the tracing. In which case the execution of >>> the trace will be aborted before the original position of the >>> getfield_gc but after the short preamble is executed. >> >> Thanks for the confirmation. This is the only issue, and the only >> reason for mark_opaque_ptr, right? I've already written it down in >> bbebe6918aa9. > > Yes as far as I can remember. You have ofcourse the exact same issue > with getarrayitem_* and friends...
Ah, indeed. I'm thinking about a more involved fix, prompted by https://bitbucket.org/pypy/pypy/issue/1886 . Would it work? The idea would be to allow moving the getfield_gc, but in case it was on an opaque pointer, add a new "guard_gctype" operation in the short preamble. This is possible (and easy) with our own GCs, but wouldn't work with Boehm, so it would be conditional... Armin PS: you're still using pypy-...@codespeak.net; I think this address stopped working by now. I fixed it to pypy-dev@python.org. _______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev