<pclass="download-menu">There are <aclass="reference external"href="http://buildbot.pypy.org/nightly/trunk/">nightly binary builds</a> available. Those builds are not always
as stable as the release, but they contain numerous bugfixes and
performance improvements.</p>
<p>We provide binaries for x86, ARM, PPC and s390x running on different operating systems such as
Linux, Mac OS X and Windows (<aclass="reference external"href="http://doc.pypy.org/en/latest/release-v7.2.0.html">what's new in PyPy 7.2.0?</a>):</p>
<p>We provide binaries for x86, aarch64, ppc64 and s390x running on different operating systems such as
Linux, Mac OS X and Windows (<aclass="reference external"href="http://doc.pypy.org/en/latest/release-v7.3.0.html">what's new in PyPy 7.3.0?</a>):</p>
<p>Linux binaries are dynamically linked, as is usual, and thus might
not be usable due to the sad story of linux binary compatibility. This means
that <strong>Linux binaries are only usable on the distributions written next to
them</strong> unless you're ready to hack your system by adding symlinks to the
libraries it tries to open. There are better solutions:</p>
<p>Since version 7.3, the linux x86 binaries in the links below ship with versions
of OpenSSL, SQLite3, libffi, expat, and TCL/TK binary libraries linked in. This
make the binaries “portable” so that they should run on any current glibc-based
linux platform. The ideas were adopted from the <aclass="reference external"href="https://github.com/squeaky-pl/portable-pypy#portable-pypy-distribution-for-linux">portable-pypy</a> package.</p>
<p>This solution to the portability problem means that the versions of the
packaged libraries are frozen to the version shipped, so updating your system
libraries will not affect this installation of PyPy. Also see the note about
SSL certificates below.</p>
<p>For aarch64, s390x, and ppc64, the binaries target a specific operating system.
These binaries are dynamically linked, and thus might not be usable due to the
sad story of linux binary compatibility. This means that <strong>Linux binaries are
only usable on the distributions written next to them</strong> unless you're ready to
hack your system by adding symlinks to the libraries it tries to open. There
are better solutions:</p>
<ulclass="simple">
...
...
@@ -101,6 +110,5 @@
<ulclass="simple">
<li>use Squeaky's <aclass="reference external"href="https://github.com/squeaky-pl/portable-pypy#portable-pypy-distribution-for-linux">portable Linux binaries</a>.</li>
<li>or download PyPy from your release vendor (usually an outdated
<li>download PyPy from your release vendor (usually an outdated
<aclass="reference external"href="http://fedoraproject.org/wiki/Features/PyPyStack">Fedora</a>, <aclass="reference external"href="http://packages.gentoo.org/package/dev-python/pypy">Gentoo</a> and <aclass="reference external"href="https://wiki.archlinux.org/index.php/PyPy">Arch</a> are known to package PyPy, with various
<aclass="reference external"href="http://fedoraproject.org/wiki/Features/PyPyStack">Fedora</a>, <aclass="reference external"href="http://packages.gentoo.org/package/dev-python/pypy">Gentoo</a> and <aclass="reference external"href="https://wiki.archlinux.org/index.php/PyPy">Arch</a> are known to package PyPy, with various
degrees of being up-to-date.</li>
<li>use <ttclass="docutils literal">sudo snap install <spanclass="pre">--classic</span><package></tt>, where <ttclass="docutils literal"><package></tt> is
<ttclass="docutils literal">pypy</tt> or <cite>pypy3`</cite>. Snap is a non-vendor specific package manager for
linux, and repackages the download tarballs below with the latest platform-
specific libraries (again, without changing <ttclass="docutils literal">libffi</tt>).</li>
<li><aclass="reference external"href="https://doc.pypy.org/en/latest/build.html#build-cffi-import-libraries-for-the-stdlib">recompile the CFFI-based</a> TCL/TK, OpenSSL, or sqlite3 modules, using system
libraries and the scripts in <ttclass="docutils literal">pypy/lib_pypy</tt>. This solution will not solve
compatibility issues with libffi, since that is baked into PyPy.</li>
<li>or <aclass="reference internal"href="#translate">translate</a> your own PyPy.</li>
</ul>
...
...
@@ -107,3 +122,9 @@
<li>or <aclass="reference internal"href="#translate">translate</a> your own PyPy.</li>
</ul>
<pclass="download-menu">SSL Certificates</p>
<pclass="download-menu">While the linux binaries ship an OpenSSL library, they do not ship a
certificate store for SSL certificates. If you wish to use SSL module,
you will need a valid certificate store. You can use the <aclass="reference external"href="https://pypi.org/project/certifi/">certifi</a> package
and set <ttclass="docutils literal">SSL_CERT_FILE</tt> to <ttclass="docutils literal">certifi.where()</tt> or install your platform
certificates which should be discovered by the <ttclass="docutils literal">_ssl</tt> module.</p>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-linux32.tar.bz2">Linux x86 binary (32bit, built on Ubuntu 16.04)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-linux64.tar.bz2">Linux x86-64 binary (64bit, built on Ubuntu 14.04)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-osx64.tar.bz2">Mac OS X binary (64bit)</a></li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-linux32.tar.bz2">Linux x86 binary (32bit, built on CenOS6)</a></li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-linux64.tar.bz2">Linux x86-64 binary (64bit, built on CentOS6)</a></li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-osx64.tar.bz2">Mac OS X binary (64bit)</a></li>
<li>FreeBSD x86 and x86_64: see <aclass="reference external"href="http://www.freshports.org/lang/pypy">FreshPorts</a></li>
...
...
@@ -116,3 +137,3 @@
<li>FreeBSD x86 and x86_64: see <aclass="reference external"href="http://www.freshports.org/lang/pypy">FreshPorts</a></li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-win32.zip">Windows binary (32bit)</a> (you might need the VC runtime library
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-win32.zip">Windows binary (32bit)</a> (you might need the VC runtime library
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-aarch64.tar.bz2">Linux aarch64 binary (64bit, built on Ubuntu 18.04)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-ppc64.tar.bz2">PowerPC PPC64 Linux binary (64bit big-endian, Fedora 20)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-ppc64le.tar.bz2">PowerPC PPC64le Linux binary (64bit little-endian, Fedora 21)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-s390x.tar.bz2">s390x Linux binary (built on Redhat Linux 7.2)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-src.tar.bz2">Source (tar.bz2)</a>; <aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-src.zip">Source (zip)</a>. See below for more about the sources.</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-aarch64.tar.bz2">Linux aarch64 binary (64bit, built on Ubuntu 18.04)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-ppc64.tar.bz2">PowerPC PPC64 Linux binary (64bit big-endian, Fedora 20)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-ppc64le.tar.bz2">PowerPC PPC64le Linux binary (64bit little-endian, Fedora 21)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-s390x.tar.bz2">s390x Linux binary (built on Redhat Linux 7.2)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-src.tar.bz2">Source (tar.bz2)</a>; <aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-src.zip">Source (zip)</a>. See below for more about the sources.</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads">All our downloads,</a> including previous versions. We also have a
<aclass="reference external"href="http://buildbot.pypy.org/mirror/">mirror</a>, but please use only if you have troubles accessing the links above</li>
</ul>
</div>
...
...
@@ -124,7 +145,7 @@
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads">All our downloads,</a> including previous versions. We also have a
<aclass="reference external"href="http://buildbot.pypy.org/mirror/">mirror</a>, but please use only if you have troubles accessing the links above</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-linux64.tar.bz2">Linux x86-64 binary (64bit, built on Ubuntu 16.04)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-linux32.tar.bz2">Linux x86 binary (32bit, built on Ubuntu 14.04)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-osx64.tar.bz2">Mac OS X binary (64bit)</a> (High Sierra >= 10.13, not for Sierra and below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-win32.zip">Windows binary (32bit)</a> (you might need the VC runtime library
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-linux64.tar.bz2">Linux x86-64 binary (64bit, built on CentOS6)</a></li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-linux32.tar.bz2">Linux x86 binary (32bit, built on CentOS6)</a></li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-osx64.tar.bz2">Mac OS X binary (64bit)</a> (High Sierra >= 10.13, not for Sierra and below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-win32.zip">Windows binary (32bit)</a> (you might need the VC runtime library
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-aarch64.tar.bz2">Linux aarch64 binary (64bit, built on Ubuntu 18.04)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-ppc64.tar.bz2">PowerPC PPC64 Linux binary (64bit big-endian, Fedora 20)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-ppc64le.tar.bz2">PowerPC PPC64le Linux binary (64bit little-endian, Fedora 21)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-s390x.tar.bz2">s390x Linux binary (built on Redhat Linux 7.2)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-src.tar.bz2">Source (tar.bz2)</a>; <aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-src.zip">Source (zip)</a>. See below for more about the sources.</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-aarch64.tar.bz2">Linux aarch64 binary (64bit, built on Ubuntu 18.04)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-ppc64.tar.bz2">PowerPC PPC64 Linux binary (64bit big-endian, Fedora 20)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-ppc64le.tar.bz2">PowerPC PPC64le Linux binary (64bit little-endian, Fedora 21)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-s390x.tar.bz2">s390x Linux binary (built on Redhat Linux 7.2)</a> (see <ttclass="docutils literal">[1]</tt> below)</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-src.tar.bz2">Source (tar.bz2)</a>; <aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-src.zip">Source (zip)</a>. See below for more about the sources.</li>
<li><aclass="reference external"href="https://bitbucket.org/pypy/pypy/downloads">All our downloads,</a> including previous versions. We also have a
<aclass="reference external"href="http://buildbot.pypy.org/mirror/">mirror</a>, but please use only if you have troubles accessing the links above</li>
</ul>
...
...
@@ -149,8 +170,7 @@
<p><ttclass="docutils literal">[1]:</tt> stating it again: the Linux binaries are provided for the
distributions listed here. <strong>If your distribution is not exactly this
one, it won't work,</strong> you will probably see: <ttclass="docutils literal">pypy: error while loading shared
libraries: …</tt>. Unless you want to hack a lot, try out the
<aclass="reference external"href="https://github.com/squeaky-pl/portable-pypy#portable-pypy-distribution-for-linux">portable Linux binaries</a>.</p>
libraries: …</tt>.</p>
</div>
<divclass="section"id="pypy-stm-2-5-1">
<h1>PyPy-STM 2.5.1</h1>
...
...
@@ -186,9 +206,9 @@
<divclass="section"id="installing">
<h1>Installing</h1>
<p>All binary versions are packaged in a <ttclass="docutils literal">tar.bz2</tt> or <ttclass="docutils literal">zip</tt> file. When
uncompressed, they run in-place. For now you can uncompress them
either somewhere in your home directory or, say, in <ttclass="docutils literal">/opt</tt>, and
if you want, put a symlink from somewhere like
uncompressed, they run in-place. You can uncompress them
either somewhere in your home directory or, say, in <ttclass="docutils literal">/opt</tt>.
If you want, put a symlink from somewhere like
<ttclass="docutils literal">/usr/local/bin/pypy</tt> to <ttclass="docutils literal">/path/to/pypy_expanded/bin/pypy</tt>. Do
not move or copy the executable <ttclass="docutils literal">pypy</tt> outside the tree – put
a symlink to it, otherwise it will not find its libraries.</p>
...
...
@@ -222,8 +242,8 @@
<p>Alternatively, get one of the following smaller packages for the source at
<li><pclass="first">Make sure you <strong>installed the dependencies.</strong> See the list <aclass="reference external"href="http://pypy.readthedocs.org/en/latest/build.html#install-build-time-dependencies">here</a>.</p>
...
...
@@ -286,14 +306,6 @@
<spanclass="pre">.../pypy/tool/build_cffi_imports.py</span></tt> if you want to be able to import
the cffi-based modules.</p>
</li>
<li><pclass="first">On Linux, translating with <ttclass="docutils literal">asmgcroot</tt>, is delicate.
It requires using gcc with no particularly
fancy options. It does not work e.g. with clang, or if you pass uncommon
options with the <ttclass="docutils literal">CFLAGS</tt> environment variable. If you insist on
passing these options or using clang, then you can compile PyPy with
the default <aclass="reference external"href="http://pypy.readthedocs.org/en/latest/config/translation.gcrootfinder.html">shadow stack</a> option instead (for a small performance price in
non-JITted code).</p>
</li>
<li><pclass="first">Like other JITs, PyPy doesn't work out of the box on some Linux
distributions that trade full POSIX compliance for extra security
features. E.g. with PAX, you have to run PyPy with <ttclass="docutils literal">paxctl <spanclass="pre">-cm</span></tt>.
...
...
@@ -337,7 +349,29 @@
</div>
<divclass="section"id="checksums">
<h1>Checksums</h1>
<p>Here are the checksums for each of the downloads of PyPy 7.2.0, 7.1.1, 7.1.0</p>
<p>Here are the checksums for each of the downloads of PyPy 7.3.0, 7.2.0, 7.1.1, 7.1.0</p>