2015-06-13 9:31 GMT+02:00 Donald Stufft <don...@stufft.io>: > > > On June 13, 2015 at 3:23:21 AM, Armin Rigo (ar...@tunes.org) wrote: > > Hi Donald, > > > > On 13 June 2015 at 09:13, Donald Stufft wrote: > > > For the uses of pip, it would be preferable if there was an exported > stable ABI > > > that we could leverage to tag wheels with. For the people *making* > Wheels, the > > > less often that stable ABI changed the better, since a single wheel > would be > > > useful for more versions of PyPy then. > > > > Sorry, I meant that nothing changed in the ABI, in addition to the > > API. You can just rename an existing "foo.pypy-25.so" to > > "foo.pypy-26.so" and it should work. > > > > Note that you have to assume that I don't know the problems related to > > making wheels, and give some more details in your answer. I'm ready > > to hear about any suggestion if fixing "imp.get_suffixes()" is either > > not a good idea, or ok but the same information needs to be exported > > some other way too. The point is that using sys.version_info[:2] is > > too vague, given that it is always (2, 7), and using > > sys.pypy_version_info[:2] is (or will become) too precise. > > > > > > A bientôt, > > > > Armin. > > > > Sorry, to be clear, I wasn't saying your idea was bad. I was just making it > clear that whatever it is should reflect the actual ABI of the module. So > if > there are compile options (does JIT vs not change it?) then that should be > reflected in it too. Ideally it'd contain enough information to know if > something compiled for a particular PyPy is ABI compatible with another > one. >
But cffi extension modules are not real modules, right? When compiled for PyPy, the init function has a different name, and fills a C struct that cannot be considered as a Python module. They can be imported only because there is special support in the import framework. In this case, why not have a completely different extension or SOABI? Like _sqlite.cffi1.0.so > > As far as how it's exported, the suffixes is a good starting place, and if > the > ABI tag can also be added to sysconfig.get_config_var("SOABI") that would > be > good too. > > For example, CPython (in the 3.x branch) has:: > > >>> import sysconfig > >>> sysconfig.get_config_var("SOABI") > 'cpython-34m' > > This is a CPython 3.4 compiled with --with-pymalloc. The CPython bits are > here: https://www.python.org/dev/peps/pep-3149/ > > Generally though, I'm +1 on starting to define an actual ABI (and not > breaking > it without updating the tag to reflect that). As far as wheels goes, the > important thing is that we'll make the SOABI part of the wheel filename > and use > it to select which wheel we'll download and install. You don't need to > worry > about that much other than the fact that defining one makes it better and > being conservative in changing it makes it better. > > --- > Donald Stufft > PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA > > > _______________________________________________ > pypy-dev mailing list > pypy-dev@python.org > https://mail.python.org/mailman/listinfo/pypy-dev > -- Amaury Forgeot d'Arc
_______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev