[pypy-dev] AssertionError in rpython_jit_metainterp_resume.c

Anton Gulenko anton.gulenko at googlemail.com
Mon Aug 4 14:36:36 CEST 2014


Salut Armin,

I checked the code and indeed, it seems like the list field in the Context
class _can_ be reassigned.
However, it should only happen very soon after the constructor is finished,
and the size of the list should not change.
To be sure, I'll try to refactor this and make it impossible for the list
to be reassigned after the constructor is finished. That would satisfy the
requirements right?
Is it illegal to reassign the list field at all, or is it just the size of
the list that matters?
Also, is it possible to have two different list fields in a virtualizable
object (provided both are never reassigned after the constructor)?

Merci bien at a bientôt,
Anton



2014-08-03 14:26 GMT+02:00 Armin Rigo <arigo at tunes.org>:

> Hi Anton,
>
> On 3 August 2014 12:57, Anton Gulenko <anton.gulenko at googlemail.com>
> wrote:
> > Since this seems to be related to virtualizable objects: during
> translation
> > we get 2 warnings that the "fresh_virtualizable" hints are ignored (there
> > are 2 places where virtualizable frame objects are created.
> > Also, we have one virtualizable list[*] field in our Context class, which
> > should never be resized. I applied the make_sure_not_resized hint on it,
> but
> > maybe I'm using it wrong... I'm just calling make_sure_not_resized once,
> > after setting the list field.
>
> It's not enough to not resize the list: you need to make sure that a
> given virtualizable object's list attribute is never re-assigned with
> a list of different size.  Is that true?
>
>
> A bientôt,
>
> Armin.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20140804/8f5b5032/attachment.html>


More information about the pypy-dev mailing list