On 19/10/19 11:55 pm, Michał Górny wrote:
Hello,
I've noticed that the compiled module suffix keeps changing between PyPy3 releases: it's been .pypy3-71-*.so for 7.1, now it's .pypy3-72- *.so (also .pyc). However, this is a bit surprising to me given that for PyPy2 it's still at .pypy-41.so.
Is the bytecode generated by successive PyPy3 releases really incompatible between them? Or are the suffix changes only incidental? They cause quite some trouble for us, since they make it necessary to recompile installed modules on Gentoo, and PyPy's overzealous compiling causes access violations for our users.
TIA for any help.
I committed changes that: - on py3.6 (for python 3.6, 3.7 and up) change the *.pyc file name to follow the cpython spec: filename.pypy-36.pyc - on default (for python2) change the DEFAULT_SOABI to track the pypy_version; so's will now be named .pypy-72.so (on py3.6 they are named filename.pypy3-72-x86_64-linux-gnu.so so they will not clash) For CFFI, we discussed a pypy-specific "stable-api" extension to mirror the cpython3 "abi3" tag, the idea still needs to be fleshed out and implemented. The reasoning behind the changes to the pyc filename and so filenames is explained earlier in this mail thread, I will not repeat them here but if I was mistaken please help me get it right. The changes, if not reverted, will be part of the next release cycle. Matti