Python 3.2a1 in rawhide
dmalcolm at redhat.com
Sat Aug 21 22:48:31 UTC 2010
I just built Python 3.2a1 into rawhide:
so the meaning of "python3" in rawhide just jumped from Python 3.1 to
A new opcode (SETUP_WITH ) was added, to speed up the "with"
statement, and this changes the bytecode format for python 3. python3's
provides changes from:
python(abi) = 3.1
python(abi) = 3.2
So once that package hits the buildroot for rawhide, everything that
builds a python3 package or subpackage will need to be rebuilt, to use
the new bytecode format.
Thankfully this will be a much smaller-scale rebuild than the recent 2.7
To liven things up a bit, the layout of how Python stores cached
bytecode has changed somewhat.
The full details can be seen at:
but to summarize, where before you had:
with cached bytecode:
with Python 3.2 onwards you now have a __pycache__ directory:
and the files are explicitly for "CPython 3.2" (the "32" above refers to
the python version, not the architecture; this threw me initially).
The idea is to permit sharing of modules between multiple
parallel-installable versions of Python.
So you'll need to update the %files for python3 subpackages, listing
to capture the directory and the bytecode files within.
Hope this makes sense
More information about the devel