[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Python 3.11, bytecode and new internals



I've been having a somewhat interesting time with the python3.11-add
transition.  Python 3.11 has made some significant changes to its
bytecode representation, and also changed some of it's internal data
structures related to frames quite significantly.

In my corner of the Python world, several important packages use this
information, including Spyder, IPython and Jupyter (which all
(recursively) depend on python3-parso and/or python3-bytecode), but
these low-level packages are not really ready for 3.11 yet (parso
claims "basic support for Python 3.11 and 3.12", so it's unlikely it
will actually yet work with 3.11, though I haven't tested this, and
bytecode makes no claims to yet be ready for 3.11).

Several packages have tests which now fail on 3.11, preventing
migration to testing (spyder-kernels is one).  In pydevd (which does
not yet support 3.11, because it depends on python3-bytecode), I've
just disabled all the failing tests and put a note in README.Debian,
but this is not a great solution.  I could add X-Python3-Version: <<
3.11 to debian/control, but that is surely not that desirable either.

I'm just flagging this up here, with a question about how we should
proceed.  Certainly we are not ready to make Python 3.11 the default
Python version!!

Best wishes,

   Julian


Reply to: