PyPy support breaking CPython compatibility?

Ned Batchelder ned at nedbatchelder.com
Wed Jan 31 05:21:49 EST 2018


On 1/30/18 3:58 PM, Etienne Robillard wrote:
> Hi Ned,
>
>
> Le 2018-01-30 à 15:14, Ned Batchelder a écrit :
>> I'm curious what you had to change for PyPy? (Unless it's a Py2/Py3 
>> thing as Chris mentions.) 
>
> Please take a look at the changesets:
>
> https://bitbucket.org/tkadm30/libschevo/commits/745d1aeab5c6ee0d336790cf13d16f327e10c2f8 
>
> https://bitbucket.org/tkadm30/libdurus/commits/875636e9b6caa840fd50ca87d69217d87fc06f43 
>
>
> In short, it seems PyPy automagically adds a __weakref__ attribute to 
> __slots__, causing the CPython interpreter to raise a TypeError...

PyPy and CPython are separate implementations, that never mix: you run 
your code in one, or in the other.  How can PyPy do something at runtime 
(add a __weakref__ attribute to __slots__) that can cause CPython to do 
something at runtime (raise a TypeError)?

A small demonstration case would be very helpful for figuring out what 
is going on.

--Ned.



More information about the Python-list mailing list