Author: Richard Plangger <[email protected]>
Branch: extradoc
Changeset: r737:7da22d5ebd79
Date: 2016-04-29 08:37 +0200
http://bitbucket.org/pypy/pypy.org/changeset/7da22d5ebd79/
Log: updated the architectures on features.html and regenerated them
diff --git a/compat.html b/compat.html
--- a/compat.html
+++ b/compat.html
@@ -111,15 +111,15 @@
not support refcounting semantics. The following code won't fill the
file immediately, but only after a certain period of time, when the GC
does a collection:</p>
-<div class="syntax python"><pre><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="o">.</span><span class="n">write</span><span
class="p">(</span><span class="s">"stuff"</span><span
class="p">)</span><br/></pre></div>
+<div class="syntax python"><pre><span></span><span class="nb">open</span><span
class="p">(</span><span class="s2">"filename"</span><span
class="p">,</span> <span class="s2">"w"</span><span
class="p">)</span><span class="o">.</span><span class="n">write</span><span
class="p">(</span><span class="s2">"stuff"</span><span
class="p">)</span><br/></pre></div>
<p>The proper fix is</p>
-<div class="syntax python"><pre><span class="n">f</span> <span
class="o">=</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><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/><span class="n">f</span><span class="o">.</span><span
class="n">close</span><span class="p">()</span><br/></pre></div>
+<div class="syntax python"><pre><span></span><span class="n">f</span> <span
class="o">=</span> <span class="nb">open</span><span class="p">(</span><span
class="s2">"filename"</span><span class="p">,</span> <span
class="s2">"w"</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="s2">"stuff"</span><span
class="p">)</span><br/><span class="n">f</span><span class="o">.</span><span
class="n">close</span><span class="p">()</span><br/></pre></div>
<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>
+<div class="syntax python"><pre><span></span><span class="k">with</span> <span
class="nb">open</span><span class="p">(</span><span
class="s2">"filename"</span><span class="p">,</span> <span
class="s2">"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="s2">"stuff"</span><span class="p">)</span><br/></pre></div>
<p>Similarly, remember that you must <tt class="docutils literal">close()</tt>
a non-exhausted
generator in order to have its pending <tt class="docutils
literal">finally</tt> or <tt class="docutils literal">with</tt>
clauses executed immediately:</p>
-<div class="syntax python"><pre><span class="k">def</span> <span
class="nf">mygen</span><span class="p">():</span><br/> <span
class="k">with</span> <span class="n">foo</span><span class="p">:</span><br/>
<span class="k">yield</span> <span class="mi">42</span><br/><br/><span
class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span
class="n">mygen</span><span class="p">():</span><br/> <span
class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span
class="mi">42</span><span class="p">:</span><br/> <span
class="k">break</span> <span class="c"># foo.__exit__ is not run
immediately!</span><br/><br/><span class="c"># fixed version:</span><br/><span
class="n">gen</span> <span class="o">=</span> <span class="n">mygen</span><span
class="p">()</span><br/><span class="k">try</span><span class="p">:</span><br/>
<span class="k">for</span> <span class="n">x</span> <span
class="ow">in</span> <span class="n">gen</span><span class="p"
>:</span><br/> <span class="k">if</span> <span class="n">x</span> <span
>class="o">==</span> <span class="mi">42</span><span class="p">:</span><br/>
> <span class="k">break</span><br/><span class="k">finally</span><span
>class="p">:</span><br/> <span class="n">gen</span><span
>class="o">.</span><span class="n">close</span><span
>class="p">()</span><br/></pre></div>
+<div class="syntax python"><pre><span></span><span class="k">def</span> <span
class="nf">mygen</span><span class="p">():</span><br/> <span
class="k">with</span> <span class="n">foo</span><span class="p">:</span><br/>
<span class="k">yield</span> <span class="mi">42</span><br/><br/><span
class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span
class="n">mygen</span><span class="p">():</span><br/> <span
class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span
class="mi">42</span><span class="p">:</span><br/> <span
class="k">break</span> <span class="c1"># foo.__exit__ is not run
immediately!</span><br/><br/><span class="c1"># fixed version:</span><br/><span
class="n">gen</span> <span class="o">=</span> <span class="n">mygen</span><span
class="p">()</span><br/><span class="k">try</span><span class="p">:</span><br/>
<span class="k">for</span> <span class="n">x</span> <span
class="ow">in</span> <span class="n">gen</span>
<span class="p">:</span><br/> <span class="k">if</span> <span
class="n">x</span> <span class="o">==</span> <span class="mi">42</span><span
class="p">:</span><br/> <span class="k">break</span><br/><span
class="k">finally</span><span class="p">:</span><br/> <span
class="n">gen</span><span class="o">.</span><span class="n">close</span><span
class="p">()</span><br/></pre></div>
<p>More generally, <tt class="docutils literal">__del__()</tt> methods are not
executed as predictively
as on CPython: they run “some time later” in PyPy (or not at all if
the program finishes running in the meantime). See <a class="reference
external"
href="http://pypy.readthedocs.org/en/latest/cpython_differences.html#differences-related-to-garbage-collection-strategies">more
details
diff --git a/features.html b/features.html
--- a/features.html
+++ b/features.html
@@ -72,13 +72,20 @@
<p>PyPy is a replacement for CPython. It is built using the RPython
language that was co-developed with it. The main reason to use it
instead of CPython is speed: it runs generally faster (see next section).</p>
-<p><strong>PyPy</strong> implements <strong>Python 2.7.10</strong> and runs on
Intel
-<a class="reference external" href="http://en.wikipedia.org/wiki/IA-32">x86
(IA-32)</a> , <a class="reference external"
href="http://en.wikipedia.org/wiki/X86_64">x86_64</a> and <a class="reference
external" href="http://en.wikipedia.org/wiki/ARM">ARM</a> platforms, with PPC
being
-stalled. It supports all of the core language, passing the Python test suite
+<p><strong>PyPy</strong> implements <strong>Python 2.7.10</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.</p>
+<p>The following CPU architectures are supported and maintained:</p>
+<ul class="simple">
+<li><a class="reference external"
href="http://en.wikipedia.org/wiki/IA-32">x86 (IA-32)</a></li>
+<li><a class="reference external"
href="http://en.wikipedia.org/wiki/X86_64">x86_64</a></li>
+<li><a class="reference external"
href="http://en.wikipedia.org/wiki/ARM">ARM</a> platforms</li>
+<li><a class="reference external"
href="https://de.wikipedia.org/wiki/PowerPC">PPC</a> 64bit both little and big
endian</li>
+<li><a class="reference external"
href="https://de.wikipedia.org/wiki/System/390">s390x</a> running on Linux</li>
+</ul>
<p>If you are interested in helping to move forward, see our <a
class="reference external" href="howtohelp.html">howtohelp</a> page.</p>
<p>We also have a beta release of <strong>PyPy3</strong> which implements
<strong>Python 3.2.5</strong>.
It runs on the same platforms as above.</p>
diff --git a/source/features.txt b/source/features.txt
--- a/source/features.txt
+++ b/source/features.txt
@@ -10,14 +10,22 @@
language that was co-developed with it. The main reason to use it
instead of CPython is speed: it runs generally faster (see next section).
-**PyPy** implements **Python 2.7.10** and runs on Intel
-`x86 (IA-32)`_ , `x86_64`_ and `ARM`_ platforms, with PPC being
-stalled. It supports all of the core language, passing the Python test suite
+**PyPy** implements **Python 2.7.10**.
+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
`compatibility`_ page.
+The following CPU architectures are supported and maintained:
+
+* `x86 (IA-32)`_
+* `x86_64`_
+* `ARM`_ platforms
+* `PPC`_ 64bit both little and big endian
+* `s390x`_ running on Linux
+
+
If you are interested in helping to move forward, see our `howtohelp`_ page.
We also have a beta release of **PyPy3** which implements **Python 3.2.5**.
@@ -27,6 +35,8 @@
.. _`x86 (IA-32)`: http://en.wikipedia.org/wiki/IA-32
.. _`x86_64`: http://en.wikipedia.org/wiki/X86_64
.. _`ARM`: http://en.wikipedia.org/wiki/ARM
+.. _`PPC`: https://de.wikipedia.org/wiki/PowerPC
+.. _`s390x`: https://de.wikipedia.org/wiki/System/390
.. _`howtohelp`: howtohelp.html
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit