[pypy-dev] PyPy3: is bytecode really incompatible between releases?
Matti Picus
matti.picus at gmail.com
Tue Oct 22 09:34:36 EDT 2019
On 20/10/19 11:21 pm, Armin Rigo wrote:
> Hi Matti,
> if you translate PyPy3.6 and the in-progress PyPy3.7
> then they'll try to use the same ".pypy-XY.pyc" extension, even though
> the internal bytecode version in that file is different.)
I see CPython uses the python {major}{minor} version:
"example.cpython-36.pyc".
We should probably change our convention to do the same. Any idea where
that happens?
> As for the precise question you're asking, "do we need to change the
> ABI designation in PyPy2", the answer is yes, imho: we should change
> it as soon as we break the ABI, even if only in a corner case that
> doesn't concern most C extensions...
>
>
> A bientôt,
>
> Armin.
The code in question is in pypy/module/imp/importing.py, and has a comment
# this used to change for every minor version, but no longer does: there
# is little point any more, as the so's tend to be cross-version-
# compatible, more so than between various versions of CPython. Be
# careful if we need to update it again: it is now used for both cpyext
# and cffi so's. If we do have to update it, we'd likely need a way to
# split the two usages again.
#DEFAULT_SOABI = 'pypy-%d%d' % PYPY_VERSION[:2]
DEFAULT_SOABI = 'pypy-41'
So do we update it across the board for each change in the cpyext ABI?
Matti
More information about the pypy-dev
mailing list