[pypy-dev] cpyext reference counting and other gc's

Dima Tisnek dimaqq at gmail.com
Sat Mar 26 18:03:47 CET 2011


I have an alternative idea in mind

I'll write up a doc, stick it on github and share with you guys in a
couple of days

thanks for a clear answer, I just couldn't figure that out form code easily :P

d.

On 26 March 2011 01:33, Amaury Forgeot d'Arc <amauryfa at gmail.com> wrote:
> Hi,
>
> 2011/3/26 Dima Tisnek <dimaqq at gmail.com>:
>> Hey, I had a look at cpyext recently and saw that reference counting
>> is emulated with, err, reference counting, seeminlgy in the referenced
>> object itself.
>>
>> Does this mean that cpyext would not work with other gc's or is there
>> some wrapping going on behind the scenes?
>
> Cpyext works with all pypy gc's. The PyObject* exposed to C code is actually
> a proxy to the "real" interpreter object; a dict lookup is necessary each time a
> reference crosses the C/pypy boundary. Yes, this is slow.
>
> This is implemented in pypy/module/cpyext/pyobject.py; the main functions are
> create_ref() and from_ref().
>
> --
> Amaury Forgeot d'Arc
>



More information about the Pypy-dev mailing list