[pypy-dev] PyPy3: is bytecode really incompatible between releases?

Matti Picus matti.picus at gmail.com
Sun Oct 27 05:32:53 EDT 2019


On 25/10/19 3:09 pm, Armin Rigo wrote:
> Hi Matti,
>
> On Fri, 25 Oct 2019 at 10:21, Matti Picus <matti.picus at gmail.com> wrote:
>>
>> On 25/10/19 10:49 am, Matti Picus wrote:
>>> Yes, actually, thanks. They should be named {python tag}-{abi
>>> tag}-{platform tag}, so pypy36-pp72-x86_64-linux-gnu.so. I will make
>>> sure the python3.6/python3.7 so names do not overlap before we release
>>> a python3.7 alpha.
>> Needs more thought. The changes in the C-API are reflected in the
>> platform tag: 71 is incompatible (perhaps only slightly) with 72. What
>> breaking changes are there from the perspective of a C-API module
>> between python 3.6 to 3.7, 3.8, 3.9?
> The C module itself may contain "#if PY_VERSION_HEX >= 0x03070000" or
> similar, in order to compile some feature (or work around some issue)
> that is only available on CPython 3.{N} but no 3.{N-1}.  So I think
> it's a good idea to include both the CPython and the PyPy version in
> the name.
>
>
> A bientôt,
>
> Armin.


Would this be considered a major API breaking change or only a revision 
change? Would we need to change to pypy 8.0 (i.e. 
pypy36-pp80-x86_64-linux-gnu.so), or can we stay with pypy 7.3 (i.e., 
pypy36-pp73-x86_64-linux-gnu.so)? In any case, wheels made for pypy 
before this change would not be compatible with ones after it.

Matti



More information about the pypy-dev mailing list