Source

extradoc / blog / draft / py3k-status-update-8.rst

Full commit

Py3k status update #8

This is the eight status update about our work on the py3k branch, which we can work on thanks to all of the people who donated to the py3k proposal.

Just a short update on November's work: we're now passing about 194 of approximately 355 modules of CPython's regression test suite, up from passing 160 last month. Many test modules only fail a small number of individual tests now.

We'd like to thank Amaury Forgeot d'Arc for his contributions, in particular he has made significant progress on updating CPyExt for Python 3 this month.

Some other highlights:

  • test_marshal now passes, and there's been significant progress on pickling (thanks Kenny Levinsen and Amaury for implementing int.{to,from}_bytes)

XXX: should we put a link to Kenny's twitter/webpage?

  • We now have a _posixsubprocess module
  • More encoding related fixes, which affects many failing tests
  • _sre was updated and now test_re almost passes
  • Exception behavior is almost complete per the Python 3 specs, what's mostly missing now are the new __context__ and __traceback__ attributes (PEP 3134)
  • Fixed some crashes and deadlocks occurring during the regression tests
  • We merged the unicode-strategies branch both to default and to py3k: now we have versions of lists, dictionaries and sets specialized for unicode elements, as we already had for strings.
  • However, for string-specialized containers are still faster in some cases because there are shortcuts which have not been implemented for unicode yet (e.g., constructing a set of strings from a list of strings). The plan is to completely kill the shortcuts and improve the JIT to produce the fast version automatically for both the string and unicode versions, to have a more maintainable codebase without sacrificing the speed. The autoreds branch (already merged) was a first step in this direction.

cheers, Philip&Antonio