diff --git a/compat.html b/compat.html index 74f6b4e9d00e54b9dc63b65e1603735c97c45d39_Y29tcGF0Lmh0bWw=..82761840564988d4db166d2d377d72d110d972cb_Y29tcGF0Lmh0bWw= 100644 --- a/compat.html +++ b/compat.html @@ -51,7 +51,7 @@ language, passing Python test suite (with minor modifications that were already accepted in the main python in newer versions). It supports most of the commonly used Python <a class="reference external" href="http://docs.python.org/library/">standard library modules</a>; details below.</p> -<p>PyPy has alpha-level support for the <a class="reference external" href="http://docs.python.org/c-api/">CPython C API</a>, however, as of 1.3 +<p>PyPy has alpha-level support for the <a class="reference external" href="http://docs.python.org/c-api/">CPython C API</a>, however, as of 1.4 release this feature is not yet complete. Most libraries will require a bit of effort to work, but there are known success stories. Check out PyPy blog for updates.</p> @@ -66,7 +66,7 @@ file if you want this to be enabled permanently.</p> <p>Standard library modules supported by PyPy, in alphabetical order:</p> <ul class="simple"> -<li><tt class="docutils literal">__builtin__ __pypy__ _codecs _lsprof _minimal_curses _random _rawffi _socket _sre _weakref bz2 cStringIO crypt errno exceptions fcntl gc itertools marshal math md5 mmap operator parser posix pyexpat select sha signal struct symbol sys termios thread time token unicodedata zipimport zlib</tt></li> +<li><tt class="docutils literal">__builtin__ __pypy__ _ast _bisect _codecs _lsprof _minimal_curses _random _rawffi _ssl _socket _sre _weakref array bz2 cStringIO cpyext crypt errno exceptions fcntl gc itertools marshal math md5 mmap operator parser posix pyexpat select sha signal struct symbol sys termios thread time token unicodedata zipimport zlib</tt></li> </ul> <p>Supported, but written in pure-python:</p> <ul class="simple"> @@ -70,7 +70,7 @@ </ul> <p>Supported, but written in pure-python:</p> <ul class="simple"> -<li><tt class="docutils literal">array binascii cPickle cmath collections ctypes datetime functools grp md5 pwd pyexpat sha sqlite3 syslog</tt></li> +<li><tt class="docutils literal">binascii cPickle cmath collections ctypes datetime functools grp pwd sqlite3 syslog</tt></li> </ul> <p>All modules that are pure python in CPython of course work.</p> <p>Python libraries known to work under PyPy (the list is not exhaustive):</p> @@ -93,11 +93,11 @@ <p>or using the <tt class="docutils literal">with</tt> keyword</p> <div class="syntax python"><pre><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s">"filename"</span><span class="p">,</span> <span class="s">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span><br/> <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"stuff"</span><span class="p">)</span><br/></pre></div> </li> -<li><p class="first">We don't support certain attributes that were decided to be -implementation-dependent. For example, <tt class="docutils literal">gc.get_referrers</tt> does not exist. -Others may have different behavior; for example, <tt class="docutils literal">gc.enable</tt> and -<tt class="docutils literal">gc.disable</tt> are supported, but they don't enable and disable the GC, but -instead just enable and disable the running of finalizers.</p> +<li><p class="first">For the same reason, some functions and attributes of the <tt class="docutils literal">gc</tt> module +behave in a slightly different way: for example, <tt class="docutils literal">gc.enable</tt> and +<tt class="docutils literal">gc.disable</tt> are supported, but instead of enabling and disabling the GC, +they just enable and disable the execution of finalizers. Also, +<tt class="docutils literal">gc.garbage</tt> always returns an empty list.</p> </li> <li><p class="first">You can't attach a <tt class="docutils literal">__del__</tt> method to a class after its creation.</p> </li> diff --git a/download.html b/download.html index 74f6b4e9d00e54b9dc63b65e1603735c97c45d39_ZG93bmxvYWQuaHRtbA==..82761840564988d4db166d2d377d72d110d972cb_ZG93bmxvYWQuaHRtbA== 100644 --- a/download.html +++ b/download.html @@ -47,8 +47,8 @@ <div> <div id="main"> <h1 class="title">Download and install</h1> -<p>Here are the various binaries of <strong>PyPy 1.3</strong> that we provide for x86 Linux, -Mac OS/X or Windows. This release improves over 1.2 in terms of stability -of the JIT.</p> +<p>Here are the various binaries of <strong>PyPy 1.4</strong> that we provide for x86 Linux, +Mac OS/X or Windows. This release improves over 1.3 in terms of speed, +memory usage and stability.</p> <ul class="download-menu simple"> <li>Download<ul> @@ -53,7 +53,6 @@ <ul class="download-menu simple"> <li>Download<ul> -<li><a class="reference internal" href="#with-a-jit-compiler">With a JIT Compiler</a> <strong>(recommended!)</strong></li> -<li><a class="reference internal" href="#with-no-jit-compiler">With no JIT Compiler</a></li> +<li><a class="reference internal" href="#default-with-a-jit-compiler">Default (with a JIT Compiler)</a></li> <li><a class="reference internal" href="#sandboxed-version">Sandboxed version</a></li> <li><a class="reference internal" href="#stackless-version">Stackless version</a></li> </ul> @@ -62,5 +61,5 @@ <li><a class="reference internal" href="#building-from-source">Building from source</a></li> </ul> <div class="section" id="jit-compiler-version"> -<span id="with-a-jit-compiler"></span><h1>“JIT Compiler” version</h1> +<span id="default-with-a-jit-compiler"></span><h1>“JIT Compiler” version</h1> <p>These binaries include a Just-in-Time compiler. They only work on @@ -66,5 +65,4 @@ <p>These binaries include a Just-in-Time compiler. They only work on -<strong>32-bit</strong> <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a> CPUs that have the <a class="reference external" href="http://en.wikipedia.org/wiki/SSE2">SSE2</a> instruction set (most of -them do, nowadays), as well as on any <a class="reference external" href="http://en.wikipedia.org/wiki/X86-64">x86-64</a> machine in the 32-bit -compatibility mode.</p> +CPUs that have the <a class="reference external" href="http://en.wikipedia.org/wiki/SSE2">SSE2</a> instruction set (most of +them do, nowadays).</p> <ul class="simple"> @@ -70,7 +68,9 @@ <ul class="simple"> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-linux.tar.bz2">Linux binary</a></li> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-osx.tar.bz2">Mac OS/X binary</a></li> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-win32.zip">Windows binary</a></li> +<li><a class="reference external" href="http://pypy.org/download/pypy-1.4-linux.tar.bz2">Linux binary (32bit)</a></li> +<li><a class="reference external" href="http://pypy.org/download/pypy-1.4-linux64.tar.bz2">Linux binary (64bit)</a></li> +<li><a class="reference external" href="http://pypy.org/download/pypy-1.4-osx.tar.bz2">Mac OS/X binary (32bit)</a></li> +<li><a class="reference external" href="http://pypy.org/download/pypy-1.4-osx64.tar.bz2">Mac OS/X binary (64bit)</a></li> +<li><a class="reference external" href="http://pypy.org/download/pypy-1.4-win32.zip">Windows binary (32bit)</a></li> </ul> <p>If your CPU is really old, it may not have SSE2. In this case, you need to <a class="reference internal" href="#translate">translate</a> yourself with the option <tt class="docutils literal"><span class="pre">--jit-backend=x86-without-sse2</span></tt>.</p> @@ -74,33 +74,6 @@ </ul> <p>If your CPU is really old, it may not have SSE2. In this case, you need to <a class="reference internal" href="#translate">translate</a> yourself with the option <tt class="docutils literal"><span class="pre">--jit-backend=x86-without-sse2</span></tt>.</p> -<p>If your CPU is a 64-bit machine and you want to <a class="reference internal" href="#translate">translate</a> a 32-bit -version of PyPy yourself, <a class="reference internal" href="#here-are-hints">here are hints</a>.</p> -<p>If you want to help us with implementing the 64-bit JIT backend, -<a class="reference external" href="contact.html">contact us</a>!</p> -</div> -<div class="section" id="id4"> -<span id="no-jit-version"></span><span id="with-no-jit-compiler"></span><h1>“No JIT” version</h1> -<p><strong>WARNING!</strong> Unless you really want to try this out, we recommend the JIT -version.</p> -<p>This version still has a few advantages over the JIT Compiler version. -Notably, for Python programs that require large amounts of memory (at -least a few hundred MBs), the following version of <tt class="docutils literal"><span class="pre">pypy-nojit</span></tt> runs them -by requiring generally 1.5x or 2x less memory than CPython. These -binaries work on 32-bit <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a> CPUs as well as <a class="reference external" href="http://en.wikipedia.org/wiki/X86-64">x86-64</a> CPUs -in the 32-bit compatibility mode.</p> -<ul class="simple"> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-linux-nojit.tar.bz2">Linux binary</a></li> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-osx-nojit.tar.bz2">Mac OS/X binary</a></li> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-linux64-nojit.tar.bz2">Linux 64bit binary</a></li> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-win32-nojit.zip">Windows binary</a></li> -</ul> -<p>If your CPU is a 64-bit machine and you want to <a class="reference internal" href="#translate">translate</a> a 32-bit -version of PyPy yourself, <a class="reference internal" href="#here-are-hints">here are hints</a>.</p> -<p>If you want to help us with finishing the implementation of the native -64-bit version (there are a few known issues, like missing code in -<a class="reference external" href="http://www.python.org/doc/2.5.4/lib/module-ctypes.html">ctypes</a> to implement calls to C functions), <a class="reference external" href="contact.html">contact us</a>. In general -this version will more or less <a class="reference internal" href="#translate">translate</a> anywhere.</p> </div> <div class="section" id="sandbox-version"> <span id="sandboxed-version"></span><h1>“Sandbox” version</h1> @@ -115,8 +88,5 @@ sandboxing and the JIT compiler, although as the JIT is relatively complicated, this reduce a bit the level of confidence we can put in the result.</p> -<p>If your CPU is a 64-bit machine and you want to <a class="reference internal" href="#translate">translate</a> a 32-bit -version of PyPy yourself, <a class="reference internal" href="#here-are-hints">here are hints</a>.</p> -<p>The Windows and the native 64-bit versions both need testing and careful -reviewing; <a class="reference external" href="contact.html">contact us</a>!</p> +<p>The Windows need testing and careful reviewing; <a class="reference external" href="contact.html">contact us</a>!</p> </div> @@ -122,7 +92,7 @@ </div> -<div class="section" id="id11"> +<div class="section" id="id8"> <span id="stackless-version"></span><h1>“Stackless” version</h1> <p>Provides <a class="reference external" href="http://www.stackless.com/">Stackless</a> extensions, as well as <a class="reference external" href="http://codespeak.net/svn/greenlet/trunk/doc/greenlet.txt">greenlets</a>. These binaries work on 32-bit <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a> CPUs as well as <a class="reference external" href="http://en.wikipedia.org/wiki/X86-64">x86-64</a> CPUs in the 32-bit compatibility mode.</p> <ul class="simple"> @@ -124,9 +94,9 @@ <span id="stackless-version"></span><h1>“Stackless” version</h1> <p>Provides <a class="reference external" href="http://www.stackless.com/">Stackless</a> extensions, as well as <a class="reference external" href="http://codespeak.net/svn/greenlet/trunk/doc/greenlet.txt">greenlets</a>. These binaries work on 32-bit <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a> CPUs as well as <a class="reference external" href="http://en.wikipedia.org/wiki/X86-64">x86-64</a> CPUs in the 32-bit compatibility mode.</p> <ul class="simple"> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-linux-stackless.tar.bz2">Linux binary</a></li> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-win32-stackless.zip">Windows binary</a></li> +<li><a class="reference external" href="http://pypy.org/download/pypy-1.4-linux-stackless.tar.bz2">Linux binary</a></li> +<li><a class="reference external" href="http://pypy.org/download/pypy-1.4-win32-stackless.zip">Windows binary</a></li> </ul> <p>It is not possible right now to combine Stackless features with the JIT.</p> @@ -131,8 +101,5 @@ </ul> <p>It is not possible right now to combine Stackless features with the JIT.</p> -<p>If your CPU is a 64-bit machine and you want to <a class="reference internal" href="#translate">translate</a> a 32-bit -version of PyPy yourself, <a class="reference internal" href="#here-are-hints">here are hints</a>.</p> -<p>For the native 64-bit version, see the issues of the <a class="reference internal" href="#no-jit-version">no jit version.</a>.</p> </div> <div class="section" id="installing"> <h1>Installing</h1> @@ -141,8 +108,8 @@ installed by manually moving the files:</p> <pre class="literal-block"> /usr/bin/pypy # or pypy-nojit etc. -/usr/share/pypy-1.3/lib-python/* -/usr/share/pypy-1.3/pypy/* +/usr/share/pypy-1.4/lib-python/* +/usr/share/pypy-1.4/pypy/* </pre> <p>You can also install it to <tt class="docutils literal">/usr/local/bin</tt> and <tt class="docutils literal">/usr/local/share</tt>.</p> </div> @@ -152,8 +119,8 @@ <li><p class="first">Get the source code. The following packages contain the source at the same revision as the above binaries (these are svn exports):</p> <ul class="simple"> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-src.tar.bz2">pypy-1.3-src.tar.bz2</a> (sources, Unix line endings)</li> -<li><a class="reference external" href="http://pypy.org/download/pypy-1.3-src.zip">pypy-1.3-src.zip</a> (sources, Windows line endings)</li> +<li><a class="reference external" href="http://pypy.org/download/pypy-1.4-src.tar.bz2">pypy-1.4-src.tar.bz2</a> (sources, Unix line endings)</li> +<li><a class="reference external" href="http://pypy.org/download/pypy-1.4-src.zip">pypy-1.4-src.zip</a> (sources, Windows line endings)</li> </ul> <p>Or you can checkout the current trunk using <a class="reference external" href="http://subversion.tigris.org/">Subversion</a> (the trunk usually works and is of course more up-to-date):</p> @@ -186,45 +153,6 @@ (Do not start a translation on a machine with 1GB or less!)</p> </li> </ol> -<div class="section" id="note-on-building-a-32-bit-version-on-64-bit-systems"> -<span id="here-are-hints"></span><h2>Note on building a 32-bit version on 64-bit systems</h2> -<p>To build 32-bit versions of <tt class="docutils literal"><span class="pre">pypy-c</span></tt> you need to run <tt class="docutils literal">translate.py</tt> -in a 32-bit version of Python, and to make sure that the C compiler it -uses is also 32-bit. You can check the first condition with:</p> -<pre class="literal-block"> -$ python -Python 2.6.2 (...) ->>> import sys ->>> sys.maxint -</pre> -<p>This prints 9223372036854775807 in 64-bit versions and 2147483647 in -32-bit versions. Moreover, if your Python is 32-bit but your C compiler -is 64-bit, you will get <tt class="docutils literal">AssertionError: Mixed configuration of the -word size of the machine</tt> when running <tt class="docutils literal">translate.py.</tt></p> -<p><strong>On Linux,</strong> the recommended way is to install and run in a fully -32-bit chroot (e.g. with the <tt class="docutils literal">schroot</tt> Ubuntu package). The -alternative has issues about building some extension modules, but if you -want to try it, first compile yourself a 32-bit Python, e.g.:</p> -<pre class="literal-block"> -# on Ubuntu Linux, you need at least: -apt-get install libc6-dev-i386 ia32-libs lib32z1-dev lib32ncurses5-dev -cd Python-2.6.4 -CC="gcc -m32" LDFLAGS="-L/lib32 -L/usr/lib32 \ - -Wl,-rpath,/lib32 -Wl,-rpath,/usr/lib32" \ - ./configure -make -</pre> -<p>And then run <tt class="docutils literal">translate.py</tt> as follows:</p> -<pre class="literal-block"> -cd pypy/translator/goal -CC="gcc -m32" /path/to/32bit/python translate.py ... -</pre> -<p><strong>On Mac OS/X,</strong> the easiest is to systematically use Python 2.5 when -working with PyPy. Indeed, the standard Python 2.5 runs in 32-bit mode. -(XXX how to run the compiler in 32-bit mode??)</p> -<p><strong>On Windows,</strong> the only known way is to install a 32-bit Python -manually. (XXX how to run the compiler in 32-bit mode??)</p> -</div> </div> </div> <div id="sidebar"> diff --git a/features.html b/features.html index 74f6b4e9d00e54b9dc63b65e1603735c97c45d39_ZmVhdHVyZXMuaHRtbA==..82761840564988d4db166d2d377d72d110d972cb_ZmVhdHVyZXMuaHRtbA== 100644 --- a/features.html +++ b/features.html @@ -47,9 +47,9 @@ <div> <div id="main"> <h1 class="title">Features</h1> -<p><strong>PyPy 1.3</strong> implements <strong>Python 2.5.</strong> It supports all of the core +<p><strong>PyPy 1.4</strong> implements <strong>Python 2.5.</strong> It supports all of the core language, passing the Python test suite (with minor modifications that were already accepted in the main python in newer versions). It supports most of the commonly used Python standard library modules. For known differences with CPython, see our <a class="reference external" href="compat.html">compatibility</a> page. If you are interested in helping with 2.6, 2.7 or 3.x features, <a class="reference external" href="contact.html">contact us</a>!</p> @@ -51,12 +51,12 @@ language, passing the Python test suite (with minor modifications that were already accepted in the main python in newer versions). It supports most of the commonly used Python standard library modules. For known differences with CPython, see our <a class="reference external" href="compat.html">compatibility</a> page. If you are interested in helping with 2.6, 2.7 or 3.x features, <a class="reference external" href="contact.html">contact us</a>!</p> -<p>PyPy 1.3 runs essentially only on Intel <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a>. On 64-bit platforms -you have to use the 32-bit compatibility mode, for now — or <a class="reference external" href="contact.html">contact us</a> -to help!</p> -<div class="section" id="speed-or-memory-usage"> -<h1>Speed or memory usage?</h1> -<p>Our <a class="reference external" href="download.html#with-a-jit-compiler">main prototype</a> comes with a Just-in-Time compiler. It is +<p>PyPy 1.4 runs essentially only on Intel <a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a> and <a class="reference external" href="http://en.wikipedia.org/wiki/X86_64">x86_64</a> platforms, +with ARM being underway. +Feel free to contact us if you want to port it to any other platform!</p> +<div class="section" id="speed"> +<h1>Speed</h1> +<p>Our <a class="reference external" href="download.html#with-a-jit-compiler">main executable</a> comes with a Just-in-Time compiler. It is <a class="reference external" href="http://speed.pypy.org/">really fast</a> in running most benchmarks. <a class="reference external" href="download.html#with-a-jit-compiler">Try it out!</a></p> @@ -62,8 +62,4 @@ <a class="reference external" href="http://speed.pypy.org/">really fast</a> in running most benchmarks. <a class="reference external" href="download.html#with-a-jit-compiler">Try it out!</a></p> -<p>An issue with our JIT compiler is that it's hard to control -the exact amount of RAM that is used. If this is an important -issue to you, you can try our <a class="reference external" href="download.html#with-no-jit-compiler">baseline version</a>, which does -not include a JIT compiler at all.</p> </div> <div class="section" id="sandboxing"> <h1>Sandboxing</h1> diff --git a/index.html b/index.html index 74f6b4e9d00e54b9dc63b65e1603735c97c45d39_aW5kZXguaHRtbA==..82761840564988d4db166d2d377d72d110d972cb_aW5kZXguaHRtbA== 100644 --- a/index.html +++ b/index.html @@ -62,7 +62,7 @@ <li>As well as other <a class="reference external" href="features.html">features</a>.</li> </ul> </blockquote> -<p class="download"><a class="reference external" href="download.html">Download and try out the PyPy release 1.3!</a></p> +<p class="download"><a class="reference external" href="download.html">Download and try out the PyPy release 1.4!</a></p> <p>To read more about Python, look into <a class="reference external" href="http://www.python.org/doc/2.5.4/">Python docs</a> and check our <a class="reference external" href="compat.html">Compatibility</a> page. PyPy can run such python libraries as <a class="reference external" href="http://twistedmatrix.com/">twisted</a> and <a class="reference external" href="http://www.djangoproject.com/">django</a> and supports <a class="reference external" href="http://www.python.org/doc/2.5.4/lib/module-ctypes.html">ctypes</a>.</p> @@ -124,4 +124,4 @@ </div> </div></div></div> </body> -</html> +</html> \ No newline at end of file