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

Reply via email to