<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>PyPy (Posts about pypy3)</title><link>https://www.pypy.org/</link><description></description><atom:link href="https://www.pypy.org/categories/pypy3.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:pypy-dev@pypy.org"&gt;The PyPy Team&lt;/a&gt; </copyright><lastBuildDate>Wed, 30 Sep 2026 20:34:13 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Leysin 2020 Sprint Report</title><link>https://www.pypy.org/posts/2020/03/leysin-2020-sprint-report-764567777353955897.html</link><dc:creator>hodgestar</dc:creator><description>&lt;p&gt;At the end of February ten of us gathered in Leysin, Switzerland to work on&lt;br&gt;
a variety of topics including &lt;a class="reference external" href="https://github.com/pyhandle/hpy/"&gt;HPy&lt;/a&gt;, &lt;a class="reference external" href="https://buildbot.pypy.org/summary?branch=py3.7"&gt;PyPy Python 3.7&lt;/a&gt; support and the PyPy&lt;br&gt;
migration to &lt;a class="reference external" href="https://foss.heptapod.net/pypy/"&gt;Heptapod&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://1.bp.blogspot.com/-PIs_hVhn3RY/XnFDceuihNI/AAAAAAAAbRg/LKMOMWxeFw4jhcwqy8jx7iKzKE01fbfxQCEwYBhgL/s1600/2020_leysin_sprint_attendees.jpg" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="https://1.bp.blogspot.com/-PIs_hVhn3RY/XnFDceuihNI/AAAAAAAAbRg/LKMOMWxeFw4jhcwqy8jx7iKzKE01fbfxQCEwYBhgL/s320/2020_leysin_sprint_attendees.jpg" width="320"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
We had a fun and productive week. The snow was beautiful. There was skiing&lt;br&gt;
and lunch at the top of &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Berneuse"&gt;Berneuse&lt;/a&gt;, cooking together, some late nights at&lt;br&gt;
the pub next door, some even later nights coding, and of course the&lt;br&gt;
obligatory cheese fondue outing.&lt;br&gt;
&lt;br&gt;
There were a few of us participating in a PyPy sprint for the first time&lt;br&gt;
and a few familiar faces who had attended many sprints. Many different&lt;br&gt;
projects were represented including PyPy, &lt;a class="reference external" href="https://github.com/pyhandle/hpy/"&gt;HPy&lt;/a&gt;, &lt;a class="reference external" href="https://github.com/graalvm/graalpython"&gt;GraalPython&lt;/a&gt;,&lt;br&gt;
&lt;a class="reference external" href="https://foss.heptapod.net/pypy/"&gt;Heptapod&lt;/a&gt;, and &lt;a class="reference external" href="https://github.com/dgrunwald/rust-cpython"&gt;rust-cpython&lt;/a&gt;. The atmosphere was relaxed and welcoming, so if&lt;br&gt;
you're thinking of attending the next one -- please do!&lt;br&gt;
&lt;br&gt;
Topics worked on:&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;
HPy&lt;/h2&gt;
HPy is a new project to design and implement a better API for extending&lt;br&gt;
Python in C. If you're unfamiliar with it you can read more about it at&lt;br&gt;
&lt;a class="reference external" href="https://github.com/pyhandle/hpy/"&gt;HPy&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
A lot of attention was devoted to the Big HPy Design Discussion which&lt;br&gt;
took up two full mornings. So much was decided that this will likely&lt;br&gt;
get its own detailed write-up, but bigger topics included:&lt;br&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;the HPy GetAttr, SetAttr, GetItem and SetItem methods,&lt;/li&gt;
&lt;li&gt;HPy_FromVoidP and HPy_AsVoidP for passing HPy handles to C functions&lt;br&gt;
that pass void* pointers to callbacks,&lt;/li&gt;
&lt;li&gt;avoiding having va_args as part of the ABI,&lt;/li&gt;
&lt;li&gt;exception handling,&lt;/li&gt;
&lt;li&gt;support for creating custom types.&lt;/li&gt;
&lt;/ul&gt;
Quite a few things got worked on too:&lt;br&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;implemented support for writing methods that take keyword arguments with&lt;br&gt;
HPy_METH_KEYWORDS,&lt;/li&gt;
&lt;li&gt;implemented HPy_GetAttr, HPy_SetAttr, HPy_GetItem, and HPy_SetItem,&lt;/li&gt;
&lt;li&gt;started implementing support for adding custom types,&lt;/li&gt;
&lt;li&gt;started implementing dumping JSON objects in ultrajson-hpy,&lt;/li&gt;
&lt;li&gt;refactored the PyPy GIL to improve the interaction between HPy and&lt;br&gt;
PyPy's cpyext,&lt;/li&gt;
&lt;li&gt;experimented with adding HPy support to rust-cpython.&lt;/li&gt;
&lt;/ul&gt;
And there was some discussion of the next steps of the HPy initiative&lt;br&gt;
including writing documentation, setting up websites and funding, and&lt;br&gt;
possibly organising another HPy gathering later in the year.&lt;br&gt;
&lt;br&gt;
&lt;h2&gt;
PyPy&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Georges gave a presentation on the Heptapod topic and branch workflows&lt;br&gt;
and showed everyone how to use hg-evolve.&lt;/li&gt;
&lt;li&gt;Work was done on improving the PyPy CI buildbot post the move to&lt;br&gt;
heptapod, including a light-weight pre-merge CI and restricting&lt;br&gt;
when the full CI is run to only branch commits.&lt;/li&gt;
&lt;li&gt;A lot of work was done improving the -D tests. &lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;h2&gt;
Miscellaneous&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Armin demoed VRSketch and NaN Industries in VR, including an implementation&lt;br&gt;
of the Game of Life within NaN Industries!&lt;/li&gt;
&lt;li&gt;Skiing!&lt;/li&gt;
&lt;/ul&gt;
&lt;br&gt;
&lt;h2&gt;
Aftermath&lt;/h2&gt;
Immediately after the sprint large parts of Europe and the world were&lt;br&gt;
hit by the COVID-19 epidemic. It was good to spend time together before&lt;br&gt;
travelling ceased to be a sensible idea and many gatherings were cancelled.&lt;br&gt;
&lt;br&gt;
Keep safe out there everyone.&lt;br&gt;
&lt;br&gt;
The HPy &amp;amp; PyPy Team &amp;amp; Friends&lt;br&gt;
&lt;br&gt;
&lt;i&gt;In joke for those who attended the sprint: Please don't replace this blog post&lt;br&gt;
with its Swedish translation (or indeed a translation to any other language :).&lt;/i&gt;</description><category>cpyext</category><category>CPython</category><category>GraalPython</category><category>Heptapod</category><category>hpy</category><category>pypy</category><category>pypy3</category><guid>https://www.pypy.org/posts/2020/03/leysin-2020-sprint-report-764567777353955897.html</guid><pubDate>Tue, 17 Mar 2020 21:57:00 GMT</pubDate></item><item><title>PyPy3 2.3.1 - Fulcrum</title><link>https://www.pypy.org/posts/2014/06/pypy3-231-fulcrum-3765964217640322884.html</link><dc:creator>Philip Jenvey</dc:creator><description>&lt;p&gt;We're pleased to announce the first stable release of PyPy3. PyPy3&lt;br&gt;
targets Python 3 (3.2.5) compatibility.&lt;/p&gt;&lt;p&gt;We would like to thank all of the people who &lt;a class="reference external" href="https://www.pypy.org/posts/2012/01/py3k-and-numpy-first-stage-thanks-to-3008917396290059758.html"&gt;donated&lt;/a&gt; to the &lt;a class="reference external" href="https://pypy.org/py3donate.html"&gt;py3k proposal&lt;/a&gt;&lt;br&gt;
for supporting the work that went into this.&lt;/p&gt;&lt;p&gt;You can download the PyPy3 2.3.1 release here:&lt;/p&gt;&lt;blockquote&gt;&lt;a class="reference external" href="https://pypy.org/download.html#pypy3-2-3-1"&gt;https://pypy.org/download.html#pypy3-2-3-1&lt;/a&gt;&lt;/blockquote&gt;&lt;div class="section" id="highlights"&gt;&lt;h1&gt;Highlights&lt;/h1&gt;&lt;ul class="simple"&gt;&lt;li&gt;The first stable release of PyPy3: support for Python 3!&lt;/li&gt;
&lt;li&gt;The stdlib has been updated to Python 3.2.5&lt;/li&gt;
&lt;li&gt;Additional support for the u'unicode' syntax (&lt;a class="reference external" href="https://legacy.python.org/dev/peps/pep-0414/"&gt;PEP 414&lt;/a&gt;) from Python 3.3&lt;/li&gt;
&lt;li&gt;Updates from the default branch, such as incremental GC and various JIT&lt;br&gt;
improvements&lt;/li&gt;
&lt;li&gt;Resolved some notable JIT performance regressions from PyPy2:&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;Re-enabled the previously disabled collection (list/dict/set) strategies&lt;/li&gt;
&lt;li&gt;Resolved performance of iteration over range objects&lt;/li&gt;
&lt;li&gt;Resolved handling of Python 3's exception __context__ unnecessarily forcing&lt;br&gt;
frame object overhead&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="section" id="what-is-pypy"&gt;&lt;h1&gt;What is PyPy?&lt;/h1&gt;&lt;p&gt;PyPy is a very compliant Python interpreter, almost a drop-in replacement for&lt;br&gt;
CPython 2.7.6 or 3.2.5. It's fast due to its integrated tracing JIT compiler.&lt;/p&gt;&lt;p&gt;This release supports x86 machines running Linux 32/64, Mac OS X 64, Windows,&lt;br&gt;
and OpenBSD,&lt;br&gt;
as well as newer ARM hardware (ARMv6 or ARMv7, with VFPv3) running Linux.&lt;/p&gt;&lt;p&gt;While we support 32 bit python on Windows, work on the native Windows 64&lt;br&gt;
bit python is still stalling, we would welcome a volunteer&lt;br&gt;
to &lt;a class="reference external" href="https://doc.pypy.org/windows.html#what-is-missing-for-a-full-64-bit-translation"&gt;handle that&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;div class="section" id="how-to-use-pypy"&gt;&lt;h1&gt;How to use PyPy?&lt;/h1&gt;&lt;p&gt;We suggest using PyPy from a &lt;a class="reference external" href="https://www.virtualenv.org/en/latest/"&gt;virtualenv&lt;/a&gt;. Once you have a virtualenv&lt;br&gt;
installed, you can follow instructions from &lt;a class="reference external" href="https://doc.pypy.org/getting-started.html#installing-using-virtualenv"&gt;pypy documentation&lt;/a&gt; on how&lt;br&gt;
to proceed. This document also covers other &lt;a class="reference external" href="https://doc.pypy.org/getting-started.html#installing-pypy"&gt;installation schemes&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Cheers,&lt;br&gt;
the PyPy team&lt;/p&gt;&lt;/div&gt;</description><category>pypy3</category><guid>https://www.pypy.org/posts/2014/06/pypy3-231-fulcrum-3765964217640322884.html</guid><pubDate>Fri, 20 Jun 2014 21:31:00 GMT</pubDate></item><item><title>Py3k status update #13</title><link>https://www.pypy.org/posts/2014/02/py3k-status-update-13-4630607029125647100.html</link><dc:creator>Philip Jenvey</dc:creator><description>&lt;p&gt;This is the 13th status update about our work on the &lt;a class="reference external" href="https://bitbucket.org/pypy/pypy/commits/all/tip/branch%28%22py3k%22%29"&gt;py3k branch&lt;/a&gt;, which we&lt;br&gt;
can work on thanks to all of the people who &lt;a class="reference external" href="https://www.pypy.org/posts/2012/01/py3k-and-numpy-first-stage-thanks-to-3008917396290059758.html"&gt;donated&lt;/a&gt; to the &lt;a class="reference external" href="https://pypy.org/py3donate.html"&gt;py3k proposal&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;We're just finishing up a cleanup of int/long types. This work helps the py3k&lt;br&gt;
branch unify these types into the Python 3 int and restore &lt;a class="reference external" href="https://www.pypy.org/posts/2013/11/py3k-status-update-12-5307085693947812769.html"&gt;JIT compilation of&lt;br&gt;
machine sized integers&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;This cleanup also removes &lt;a class="reference external" href="https://doc.pypy.org/objspace.html#multimethods"&gt;multimethods&lt;/a&gt; from these types. PyPy has&lt;br&gt;
historically used a clever implementation of multimethod dispatch for declaring&lt;br&gt;
methods of the __builtin__ types in RPython.&lt;/p&gt;&lt;p&gt;This multimethod scheme provides some convenient features for doing this,&lt;br&gt;
however we've come to the conclusion that it may be more trouble than it's&lt;br&gt;
worth. A major problem of multimethods is that they generate a large amount of&lt;br&gt;
stub methods which burden the already lengthy and memory hungry RPython&lt;br&gt;
translation process. Also, their implementation and behavior can be somewhat&lt;br&gt;
complicated/obscure.&lt;/p&gt;&lt;p&gt;The alternative to multimethods involves doing the work of the type checking&lt;br&gt;
and dispatching rules in a more verbose, manual way. It's a little more work in&lt;br&gt;
the end but less magical.&lt;/p&gt;&lt;p&gt;Recently, Manuel Jacob finished a large cleanup effort of the&lt;br&gt;
unicode/string/bytearray types that also removed their multimethods. This work&lt;br&gt;
also benefits the py3k branch: it'll help with future &lt;a class="reference external" href="https://www.python.org/dev/peps/pep-0393/"&gt;PEP 393&lt;/a&gt; (or &lt;a class="reference external" href="https://lucumr.pocoo.org/2014/1/9/ucs-vs-utf8/"&gt;PEP 393&lt;br&gt;
alternative&lt;/a&gt;) work. This effort was partly sponsored by Google's Summer of&lt;br&gt;
Code: thanks Manuel and Google!&lt;/p&gt;&lt;p&gt;Now there's only a couple major pieces left in the multimethod removal (the&lt;br&gt;
float/complex types and special marshaling code) and a few minor pieces that&lt;br&gt;
should be relatively easy.&lt;/p&gt;&lt;p&gt;In conclusion, there's been some good progress made on py3k and multimethod&lt;br&gt;
removal this winter, albeit a bit slower than we would have liked.&lt;/p&gt;&lt;p&gt;cheers,&lt;br&gt;
Phil&lt;/p&gt;</description><category>pypy3</category><guid>https://www.pypy.org/posts/2014/02/py3k-status-update-13-4630607029125647100.html</guid><pubDate>Tue, 18 Feb 2014 02:33:00 GMT</pubDate></item><item><title>Py3k status update #12</title><link>https://www.pypy.org/posts/2013/11/py3k-status-update-12-5307085693947812769.html</link><dc:creator>Philip Jenvey</dc:creator><description>&lt;p&gt;This is the 12th status update about our work on the &lt;a class="reference external" href="https://bitbucket.org/pypy/pypy/commits/all/tip/branch%28%22py3k%22%29"&gt;py3k branch&lt;/a&gt;, which we&lt;br&gt;
can work on thanks to all of the people who &lt;a class="reference external" href="https://www.pypy.org/posts/2012/01/py3k-and-numpy-first-stage-thanks-to-3008917396290059758.html"&gt;donated&lt;/a&gt; to the &lt;a class="reference external" href="https://pypy.org/py3donate.html"&gt;py3k proposal&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Here's an update on the recent progress:&lt;/p&gt;&lt;ul class="simple"&gt;&lt;li&gt;Thank you to everyone who has provided initial feedback on the PyPy3 2.1 beta&lt;br&gt;
1 release. We've gotten a number of bug reports, most of which have been&lt;br&gt;
fixed.&lt;/li&gt;
&lt;li&gt;As usual, we're continually keeping up with changes from the default&lt;br&gt;
branch. Oftentimes these merges come at a cost (conflicts and or&lt;br&gt;
reintegration of py3k changes) but occasionally we get goodies for free, such&lt;br&gt;
as the &lt;a class="reference external" href="https://www.pypy.org/posts/2013/10/making-coveragepy-faster-under-pypy-935409618297062344.html"&gt;recent JIT optimizations&lt;/a&gt; and &lt;a class="reference external" href="https://www.pypy.org/posts/2013/10/incremental-garbage-collector-in-pypy-8956893523842234676.html"&gt;incremental garbage collection&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;We've been focusing on re-optimizing Python 2 int sized (machine sized)&lt;br&gt;
integers:&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;We have a couple of known, notable speed regressions in the PyPy3 beta release&lt;br&gt;
vs regular PyPy. The major one being with Python 2.x int sized (or machine&lt;br&gt;
sized) integers.&lt;/p&gt;&lt;p&gt;Python 3 drops the distinction between int and long types. CPython 3.x&lt;br&gt;
accomplishes this by removing the old int type entirely and renaming the long&lt;br&gt;
type to int. Initially, we've done the same for PyPy3 for the sake of&lt;br&gt;
simplicity and getting everything working.&lt;/p&gt;&lt;p&gt;However PyPy's JIT is capable of heavily optimizing these machine sized integer&lt;br&gt;
operations, so this came with a regression in performance in this area.&lt;/p&gt;&lt;p&gt;We're now in the process of solving this. Part of this work also involves some&lt;br&gt;
house cleaning on these numeric types which also benefits the default branch.&lt;/p&gt;&lt;p&gt;cheers,&lt;br&gt;
Phil&lt;/p&gt;</description><category>pypy3</category><guid>https://www.pypy.org/posts/2013/11/py3k-status-update-12-5307085693947812769.html</guid><pubDate>Tue, 12 Nov 2013 23:16:00 GMT</pubDate></item><item><title>Py3k status update #11</title><link>https://www.pypy.org/posts/2013/06/py3k-status-update-11-133025715908408072.html</link><dc:creator>Philip Jenvey</dc:creator><description>&lt;p&gt;This is the 11th status update about our work on the &lt;a class="reference external" href="https://bitbucket.org/pypy/pypy/commits/all/tip/branch%28%22py3k%22%29"&gt;py3k branch&lt;/a&gt;, which we&lt;br&gt;
can work on thanks to all of the people who &lt;a class="reference external" href="https://www.pypy.org/posts/2012/01/py3k-and-numpy-first-stage-thanks-to-3008917396290059758.html"&gt;donated&lt;/a&gt; to the &lt;a class="reference external" href="https://pypy.org/py3donate.html"&gt;py3k proposal&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Here's some highlights of the progress made since the previous update:&lt;/p&gt;&lt;ul class="simple"&gt;&lt;li&gt;PyPy py3k now matches CPython 3's hash code for&lt;br&gt;
int/float/complex/Decimal/Fraction&lt;/li&gt;
&lt;li&gt;Various outstanding unicode identifier related issues were&lt;br&gt;
resolved. E.g. test_importlib/pep263/ucn/unicode all now fully pass. Various&lt;br&gt;
usage of identifiers (in particular type and module names) have been fixed to&lt;br&gt;
handle non-ascii names -- mostly around display of reprs and exception&lt;br&gt;
messages.&lt;/li&gt;
&lt;li&gt;The unicodedata database has been upgraded to 6.0.0.&lt;/li&gt;
&lt;li&gt;Windows support has greatly improved, though it could still use some more&lt;br&gt;
help (but so does the default branch to a certain degree).&lt;/li&gt;
&lt;li&gt;Probably the last of the parsing related bugs/features have been taken care&lt;br&gt;
of.&lt;/li&gt;
&lt;li&gt;Of course various other smaller miscellaneous fixes&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;This leaves the branch w/ only about 5 outstanding failures of the stdlib test&lt;br&gt;
suite:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="first"&gt;test_float&lt;/p&gt;&lt;p&gt;1 failing test about containment of floats in collections.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;test_memoryview&lt;/p&gt;&lt;p&gt;Various failures: requires some bytes/str changes among other things (Manuel&lt;br&gt;
Jacob's has some progress on this on the &lt;a class="reference external" href="https://bitbucket.org/pypy/pypy/compare/py3k-memoryview..py3k"&gt;py3k-memoryview branch&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;test_multiprocessing&lt;/p&gt;&lt;p&gt;1 or more tests deadlock on some platforms&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p class="first"&gt;test_sys and test_threading&lt;/p&gt;&lt;p&gt;2 failing tests for the New GIL's new API&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Probably the biggest feature left to tackle is the New GIL.&lt;/p&gt;&lt;p&gt;We're now pretty close to pushing an initial release. We had planned for one&lt;br&gt;
around PyCon, but having missed that we've put some more effort into the branch&lt;br&gt;
to provide a more fully-fledged initial release.&lt;/p&gt;&lt;p&gt;Thanks to the following for their contributions: Manuel Jacob, Amaury Forgeot&lt;br&gt;
d'Arc, Karl Ramm, Jason Chu and Christian Hudon.&lt;/p&gt;&lt;p&gt;cheers,&lt;br&gt;
Phil&lt;/p&gt;</description><category>pypy3</category><guid>https://www.pypy.org/posts/2013/06/py3k-status-update-11-133025715908408072.html</guid><pubDate>Wed, 12 Jun 2013 19:17:00 GMT</pubDate></item><item><title>Py3k status update #10</title><link>https://www.pypy.org/posts/2013/03/py3k-status-update-10-6681398990092286007.html</link><dc:creator>Philip Jenvey</dc:creator><description>&lt;p&gt;This is the tenth status update about our work on the &lt;a class="reference external" href="https://bitbucket.org/pypy/pypy/commits/all/tip/branch%28%22py3k%22%29"&gt;py3k branch&lt;/a&gt;, which we&lt;br&gt;
can work on thanks to all of the people who &lt;a class="reference external" href="https://www.pypy.org/posts/2012/01/py3k-and-numpy-first-stage-thanks-to-3008917396290059758.html"&gt;donated&lt;/a&gt; to the &lt;a class="reference external" href="https://pypy.org/py3donate.html"&gt;py3k proposal&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;There's been significant progress since the last update: the &lt;a class="reference external" href="https://buildbot.pypy.org/summary?branch=py3k"&gt;linux x86-32&lt;br&gt;
buildbot&lt;/a&gt; now passes 289 out of approximately 354 modules (with 39 skips) of&lt;br&gt;
CPython's regression test suite.&lt;/p&gt;&lt;p&gt;That means there's only 26 test module failures left! The list of major items&lt;br&gt;
remaining for 3.2 compatibility are now short enough to list here, with their&lt;br&gt;
related tests:&lt;/p&gt;&lt;ul class="simple"&gt;&lt;li&gt;Tokenizer support for non-ascii identifiers&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;test_importlib&lt;/li&gt;
&lt;li&gt;test_pep263&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;memoryview (Manuel Jacob's tackling this on the &lt;a class="reference external" href="https://bitbucket.org/pypy/pypy/compare/py3k-memoryview..py3k"&gt;py3k-memoryview branch&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;test_memoryview&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;multiprocessing module currently deadlocks&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;test_multiprocessing&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;Buggy handling of the new extended unpacking syntax by the compiler:&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;test_unpack_ex&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;The new Global Interpreter Lock and new thread signal handling&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;test_threading&lt;/li&gt;
&lt;li&gt;test_threadsignals&lt;/li&gt;
&lt;li&gt;test_sys&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;Upgrade unicodedata to 6.0.0 (requires updates to the actual unicodedata&lt;br&gt;
generation script)&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;test_ucn&lt;/li&gt;
&lt;li&gt;test_unicode&lt;/li&gt;
&lt;li&gt;test_unicodedata&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;&lt;a class="reference external" href="https://www.pypy.org/posts/2010/04/using-cpython-extension-modules-with-5864754772659599217.html"&gt;CPyExt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;test_capi (currently crashes)&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;Update int's hash code to match to CPython (float's is already updated on the&lt;br&gt;
&lt;a class="reference external" href="https://bitbucket.org/pypy/pypy/compare/py3k-newhash..py3k"&gt;py3k-newhash branch&lt;/a&gt;. note that PyPy 2.x doesn't even totally match&lt;br&gt;
CPython's hashing)&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;test_decimal&lt;/li&gt;
&lt;li&gt;test_fractions&lt;/li&gt;
&lt;li&gt;test_numeric_tower&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;Miscellaneous:&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;test_complex&lt;/li&gt;
&lt;li&gt;test_float&lt;/li&gt;
&lt;li&gt;test_peepholer&lt;/li&gt;
&lt;li&gt;test_range&lt;/li&gt;
&lt;li&gt;test_sqlite (a new cffi based version seems to be coming)&lt;/li&gt;
&lt;li&gt;test_ssl&lt;/li&gt;
&lt;li&gt;test_struct&lt;/li&gt;
&lt;li&gt;test_subprocess&lt;/li&gt;
&lt;li&gt;test_sys_settrace&lt;/li&gt;
&lt;li&gt;test_time&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;p&gt;Additionally there are still a number of failures in PyPy's internal test&lt;br&gt;
suite. These tests are usually ran against untranslated versions of PyPy during&lt;br&gt;
development. However we've now began running them against a fully translated&lt;br&gt;
version of PyPy on the buildbot too (thanks to Amaury for setting this&lt;br&gt;
up). This further ensures that our tests and implementation are sane.&lt;/p&gt;&lt;p&gt;We're getting closer to producing an initial alpha release. Before that happens&lt;br&gt;
we'd like to see:&lt;/p&gt;&lt;ul class="simple"&gt;&lt;li&gt;further test fixes&lt;/li&gt;
&lt;li&gt;the results of test runs on other major platforms (e.g. linux x86-64 and osx&lt;br&gt;
seem to have some additional failures as of now)&lt;/li&gt;
&lt;li&gt;some basic real world testing&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Finally I'd like to thank Manuel Jacob for his various contributions over the&lt;br&gt;
past month, including fixing the array and ctypes modules among other things,&lt;br&gt;
and also Amaury Forgeot d'Arc for his ongoing excellent contributions.&lt;/p&gt;&lt;p&gt;cheers,&lt;br&gt;
Phil&lt;/p&gt;</description><category>pypy3</category><guid>https://www.pypy.org/posts/2013/03/py3k-status-update-10-6681398990092286007.html</guid><pubDate>Tue, 05 Mar 2013 20:00:00 GMT</pubDate></item><item><title>Py3k status update #9</title><link>https://www.pypy.org/posts/2013/01/py3k-status-update-9-98332471264591773.html</link><dc:creator>Philip Jenvey</dc:creator><description>&lt;p&gt;This is the ninth status update about our work on the &lt;a class="reference external" href="https://foss.heptapod.net/pypy/pypy/-/tree/branch/py3k"&gt;py3k branch&lt;/a&gt;, which&lt;br&gt;
we can work on thanks to all of the people who &lt;a class="reference external" href="https://www.pypy.org/posts/2012/01/py3k-and-numpy-first-stage-thanks-to-3008917396290059758.html"&gt;donated&lt;/a&gt; to the &lt;a class="reference external" href="https://pypy.org/py3donate.html"&gt;py3k&lt;br&gt;
proposal&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Just a very short update on December's work: we're now passing about 223 of&lt;br&gt;
approximately 355 modules of CPython's regression test suite, up from passing&lt;br&gt;
194 last month.&lt;/p&gt;&lt;p&gt;Some brief highlights:&lt;/p&gt;&lt;ul class="simple"&gt;&lt;li&gt;More encoding related issues were addressed. e.g. now most if not all the&lt;br&gt;
multibytecodec test modules pass.&lt;/li&gt;
&lt;li&gt;Fixed some path handling issues (&lt;tt class="docutils literal"&gt;test_os&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;test_ntpath&lt;/tt&gt; and&lt;br&gt;
&lt;tt class="docutils literal"&gt;test_posixpath&lt;/tt&gt; now pass)&lt;/li&gt;
&lt;li&gt;We now pass &lt;tt class="docutils literal"&gt;test_class&lt;/tt&gt;, &lt;tt class="docutils literal"&gt;test_descr&lt;/tt&gt; and almost &lt;tt class="docutils literal"&gt;test_builtin&lt;/tt&gt; (among&lt;br&gt;
other things): these are notable as they are fairly extensive test suites of&lt;br&gt;
core aspects of the langauge.&lt;/li&gt;
&lt;li&gt;Amaury Forgeot d'Arc continued making progress on &lt;a class="reference external" href="https://www.pypy.org/posts/2010/04/using-cpython-extension-modules-with-5864754772659599217.html"&gt;CPyExt&lt;/a&gt; (thanks again!)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;cheers,&lt;br&gt;
Phil&lt;/p&gt;</description><category>pypy3</category><guid>https://www.pypy.org/posts/2013/01/py3k-status-update-9-98332471264591773.html</guid><pubDate>Thu, 10 Jan 2013 06:04:00 GMT</pubDate></item><item><title>Py3k status update #8</title><link>https://www.pypy.org/posts/2012/12/py3k-status-update-8-3932232806458251730.html</link><dc:creator>Philip Jenvey</dc:creator><description>&lt;p&gt;This is the eight status update about our work on the &lt;a class="reference external" href="https://bitbucket.org/pypy/pypy/commits/all/tip/branch%28%22py3k%22%29"&gt;py3k branch&lt;/a&gt;, which&lt;br&gt;
we can work on thanks to all of the people who &lt;a class="reference external" href="https://www.pypy.org/posts/2012/01/py3k-and-numpy-first-stage-thanks-to-3008917396290059758.html"&gt;donated&lt;/a&gt; to the &lt;a class="reference external" href="https://pypy.org/py3donate.html"&gt;py3k&lt;br&gt;
proposal&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Just a short update on November's work: we're now passing about 194 of&lt;br&gt;
approximately 355 modules of CPython's regression test suite, up from passing&lt;br&gt;
160 last month. Many test modules only fail a small number of individual tests&lt;br&gt;
now.&lt;/p&gt;&lt;p&gt;We'd like to thank Amaury Forgeot d'Arc for his contributions, in particular he&lt;br&gt;
has made significant progress on updating &lt;a class="reference external" href="https://www.pypy.org/posts/2010/04/using-cpython-extension-modules-with-5864754772659599217.html"&gt;CPyExt&lt;/a&gt; for Python 3 this month.&lt;/p&gt;&lt;p&gt;Some other highlights:&lt;/p&gt;&lt;ul class="simple"&gt;&lt;li&gt;&lt;tt class="docutils literal"&gt;test_marshal&lt;/tt&gt; now passes, and there's been significant progress on&lt;br&gt;
pickling (thanks &lt;a class="reference external" href="https://twitter.com/Joushou"&gt;Kenny Levinsen&lt;/a&gt; and Amaury for implementing&lt;br&gt;
&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;int.{to,from}_bytes&lt;/span&gt;&lt;/tt&gt;)&lt;/li&gt;
&lt;li&gt;We now have a &lt;tt class="docutils literal"&gt;_posixsubprocess&lt;/tt&gt; module&lt;/li&gt;
&lt;li&gt;More encoding related fixes, which affects many failing tests&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;_sre&lt;/tt&gt; was updated and now &lt;tt class="docutils literal"&gt;test_re&lt;/tt&gt; almost passes&lt;/li&gt;
&lt;li&gt;Exception behavior is almost complete per the Python 3 specs, what's mostly&lt;br&gt;
missing now are the new &lt;tt class="docutils literal"&gt;__context__&lt;/tt&gt; and &lt;tt class="docutils literal"&gt;__traceback__&lt;/tt&gt; attributes (&lt;a class="reference external" href="https://www.python.org/dev/peps/pep-3134/"&gt;PEP&lt;br&gt;
3134&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Fixed some crashes and deadlocks occurring during the regression tests&lt;/li&gt;
&lt;li&gt;We merged the &lt;a class="reference external" href="https://bitbucket.org/pypy/pypy/commits/all/tip/branch%28%22unicode-strategies%22%29"&gt;unicode-strategies&lt;/a&gt; branch both to default and to py3k: now we&lt;br&gt;
have versions of lists, dictionaries and sets specialized for unicode&lt;br&gt;
elements, as we already had for strings.&lt;/li&gt;
&lt;li&gt;However, for string-specialized containers are still faster in some cases&lt;br&gt;
because there are shortcuts which have not been implemented for unicode yet&lt;br&gt;
(e.g., constructing a set of strings from a list of strings). The plan is to&lt;br&gt;
completely kill the shortcuts and improve the JIT to produce the fast&lt;br&gt;
version automatically for both the string and unicode versions, to have a&lt;br&gt;
more maintainable codebase without sacrificing the speed. The &lt;a class="reference external" href="https://bitbucket.org/pypy/pypy/commits/all/tip/branch%28%22autoreds%22%29"&gt;autoreds&lt;/a&gt;&lt;br&gt;
branch (already merged) was a first step in this direction.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;cheers,&lt;br&gt;
Philip&amp;amp;Antonio&lt;/p&gt;</description><category>pypy3</category><guid>https://www.pypy.org/posts/2012/12/py3k-status-update-8-3932232806458251730.html</guid><pubDate>Tue, 04 Dec 2012 22:30:00 GMT</pubDate></item><item><title>Py3k status update #7</title><link>https://www.pypy.org/posts/2012/11/py3k-status-update-7-6182140595418083307.html</link><dc:creator>Philip Jenvey</dc:creator><description>&lt;p&gt;This is the seventh status update about our work on the &lt;a class="reference external" href="https://foss.heptapod.net/pypy/pypy/-/tree/branch/py3k"&gt;py3k branch&lt;/a&gt;, which&lt;br&gt;
we can work on thanks to all of the people who &lt;a class="reference external" href="https://www.pypy.org/posts/2012/01/py3k-and-numpy-first-stage-thanks-to-3008917396290059758.html"&gt;donated&lt;/a&gt; to the &lt;a class="reference external" href="https://pypy.org/py3donate.html"&gt;py3k&lt;br&gt;
proposal&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The biggest news is that this month Philip started to work on py3k in parallel&lt;br&gt;
to Antonio. As such, there was an increased amount of activity.&lt;/p&gt;&lt;p&gt;The &lt;a class="reference external" href="https://buildbot.pypy.org/summary?branch=py3k"&gt;py3k buildbots&lt;/a&gt; now fully translate the branch every night and run the&lt;br&gt;
Python standard library tests.&lt;/p&gt;&lt;p&gt;We currently pass 160 out of approximately 355 modules of CPython's standard&lt;br&gt;
test suite, fail 144 and skip approximately 51.&lt;/p&gt;&lt;p&gt;Some highlights:&lt;/p&gt;&lt;ul class="simple"&gt;&lt;li&gt;dictviews (the objects returned by dict.keys/values/items) has been greatly&lt;br&gt;
improved, and now they full support set operators&lt;/li&gt;
&lt;li&gt;a lot of tests has been fixed wrt complex numbers (and in particular the&lt;br&gt;
&lt;tt class="docutils literal"&gt;__complex__&lt;/tt&gt; method)&lt;/li&gt;
&lt;li&gt;_csv has been fixed and now it correctly handles unicode instead of bytes&lt;/li&gt;
&lt;li&gt;more parser fixes, py3k list comprehension semantics; now you can no longer&lt;br&gt;
access the list comprehension variable after it finishes&lt;/li&gt;
&lt;li&gt;2to3'd most of the lib_pypy modules (pypy's custom standard lib&lt;br&gt;
replacements/additions)&lt;/li&gt;
&lt;li&gt;py3-enabled pyrepl: this means that finally readline works at the command&lt;br&gt;
prompt, as well as builtins.input(). &lt;tt class="docutils literal"&gt;pdb&lt;/tt&gt; seems to work, as well as&lt;br&gt;
&lt;a class="reference external" href="https://pypi.python.org/pypi/fancycompleter"&gt;fancycompleter&lt;/a&gt; to get colorful TAB completions :-)&lt;/li&gt;
&lt;li&gt;py3 round&lt;/li&gt;
&lt;li&gt;further tightening/cleanup of the unicode handling (more usage of&lt;br&gt;
surrogateescape, surrogatepass among other things)&lt;/li&gt;
&lt;li&gt;as well as keeping up with some big changes happening on the default branch&lt;br&gt;
and of course various other fixes.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Finally, we would like to thank Amaury Forgeot d'Arc for his significant&lt;br&gt;
contributions.&lt;/p&gt;&lt;p&gt;cheers,&lt;br&gt;
Philip&amp;amp;Antonio&lt;/p&gt;</description><category>pypy3</category><guid>https://www.pypy.org/posts/2012/11/py3k-status-update-7-6182140595418083307.html</guid><pubDate>Fri, 02 Nov 2012 15:47:00 GMT</pubDate></item><item><title>Py3k status update #6</title><link>https://www.pypy.org/posts/2012/09/py3k-status-update-6-4049281716377789914.html</link><dc:creator>Antonio Cuni</dc:creator><description>&lt;p&gt;This is the sixth status update about our work on the &lt;a class="reference external" href="https://foss.heptapod.net/pypy/pypy/-/tree/branch/py3k"&gt;py3k branch&lt;/a&gt;, which we&lt;br&gt;
can work on thanks to all of the people who &lt;a class="reference external" href="https://www.pypy.org/posts/2012/01/py3k-and-numpy-first-stage-thanks-to-3008917396290059758.html"&gt;donated&lt;/a&gt; to the &lt;a class="reference external" href="https://pypy.org/py3donate.html"&gt;py3k proposal&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The coolest news is not about what we did in the past weeks, but what we will&lt;br&gt;
do in the next: I am pleased to announce that &lt;a class="reference external" href="https://twitter.com/pjenvey"&gt;Philip Jenvey&lt;/a&gt; has been&lt;br&gt;
selected by the PyPy communitiy to be funded for his upcoming work on py3k,&lt;br&gt;
thanks to your generous donations. He will start to work on it shortly, and he&lt;br&gt;
will surely help the branch to make faster progress.  I am also particularly&lt;br&gt;
happy of this because Philip is the first non-core developer who is getting&lt;br&gt;
paid with donations: he demonstrated over the past months to be able to work&lt;br&gt;
effectively on PyPy, and so we were happy to approve his application for the&lt;br&gt;
job.  This means that anyone can potentially be selected in the future, the&lt;br&gt;
only strict requirement is to have a deep interest in working on PyPy and to&lt;br&gt;
prove to be able to do so by contributing to the project.&lt;/p&gt;&lt;p&gt;Back to the status of the branch. Most of the work since the last status&lt;br&gt;
update has been done in the area of, guess what? Unicode strings. As usual,&lt;br&gt;
this is one of the most important changes between Python 2 and Python 3, so&lt;br&gt;
it's not surprising.  The biggest news is that now PyPy internally supports&lt;br&gt;
unicode identifiers (such as names of variables, functions, attributes, etc.),&lt;br&gt;
whereas earlier it supported only ASCII bytes strings.  The changes is still&lt;br&gt;
barely visible from the outside, because the parser still rejects non-ASCII&lt;br&gt;
identifiers, however you can see it with a bit of creativity:&lt;/p&gt;&lt;pre class="literal-block"&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; def foo(x): pass
&amp;gt;&amp;gt;&amp;gt;&amp;gt; foo(**{'àèìòù': 42})
Traceback (most recent call last):
  File "&amp;lt;console&amp;gt;", line 1, in &amp;lt;module&amp;gt;
TypeError: foo() got an unexpected keyword argument 'àèìòù'
&lt;/pre&gt;&lt;p&gt;Before the latest changes, you used to get question marks instead of the&lt;br&gt;
proper name for the keyword argument.  Although this might seem like a small&lt;br&gt;
detail, it is a big step towards a proper working Python 3 interpreter and it&lt;br&gt;
required a couple of days of headaches.  A spin-off of this work is that now&lt;br&gt;
RPython has better built-in support for unicode (also in the default branch):&lt;br&gt;
for example, it now supports unicode string formatting (using the percent&lt;br&gt;
operator) and the methods &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;.encode/.decode('utf-8')&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;&lt;p&gt;Other than that there is the usual list of smaller issues and bugs that got&lt;br&gt;
fixed, including (but not limited to):&lt;/p&gt;&lt;blockquote&gt;&lt;ul class="simple"&gt;&lt;li&gt;teach the compiler when to emit the new opcode &lt;tt class="docutils literal"&gt;DELETE_DEREF&lt;/tt&gt; (and&lt;br&gt;
implement it!)&lt;/li&gt;
&lt;li&gt;detect when we use spaces and TABs inconsistently in the source code, as&lt;br&gt;
CPython does&lt;/li&gt;
&lt;li&gt;fix yet another bug related to the new lexically scoped exceptions (this&lt;br&gt;
is the last one, hopefully)&lt;/li&gt;
&lt;li&gt;port some of the changes that we did to the standard CPython 2.7 tests to&lt;br&gt;
3.2, to mark those which are implementation details and should not be run on&lt;br&gt;
PyPy&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;p&gt;Finally, I would like to thank Amaury Forgeot d'Arc and Ariel Ben-Yehuda for&lt;br&gt;
their work on the branch; among other things, Amaury recently worked on&lt;br&gt;
&lt;tt class="docutils literal"&gt;cpyext&lt;/tt&gt; and on the PyPy &lt;tt class="docutils literal"&gt;_cffi_backend&lt;/tt&gt;, while Ariel submitted a patch to&lt;br&gt;
implement &lt;a class="reference external" href="https://www.python.org/dev/peps/pep-3138/"&gt;PEP 3138&lt;/a&gt;.&lt;/p&gt;</description><category>pypy3</category><guid>https://www.pypy.org/posts/2012/09/py3k-status-update-6-4049281716377789914.html</guid><pubDate>Wed, 26 Sep 2012 09:50:00 GMT</pubDate></item></channel></rss>