[pypy-commit] pypy.org nikola: fix two typos

cfbolz pypy.commits at gmail.com
Wed Jan 8 03:41:57 EST 2020


Author: Carl Friedrich Bolz-Tereick <cfbolz at gmx.de>
Branch: nikola
Changeset: r971:8c85569a1071
Date: 2020-01-08 09:38 +0100
http://bitbucket.org/pypy/pypy.org/changeset/8c85569a1071/

Log:	fix two typos

diff --git a/pages/index.rst b/pages/index.rst
--- a/pages/index.rst
+++ b/pages/index.rst
@@ -41,14 +41,14 @@
 
 .. class:: small
 
-On average, PyPy is **4.4 times faser** than CPython
+On average, PyPy is **4.4 times faster** than CPython
 
 .. figure:: images/pypy_speed_graph.png
     :alt: PyPy vs. Python speed comparison graph"
     :figclass: text-sm
 
     PyPy trunk (with JIT) benchmark times normalized to CPython. Smaller is
-    better. Based on he geometric average of all benchmarks
+    better. Based on the geometric average of all benchmarks
 
 .. raw:: html
 
diff --git a/public/archive.html b/public/archive.html
--- a/public/archive.html
+++ b/public/archive.html
@@ -61,7 +61,7 @@
     </header><p>No posts found.</p>
 </article></main><footer id="footer"><p>
 <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
             
         </footer>
diff --git a/public/blog/index.html b/public/blog/index.html
--- a/public/blog/index.html
+++ b/public/blog/index.html
@@ -64,7 +64,7 @@
 
          </main><footer id="footer"><p>
 <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
             
         </footer>
diff --git a/public/categories/index.html b/public/categories/index.html
--- a/public/categories/index.html
+++ b/public/categories/index.html
@@ -63,7 +63,7 @@
         </div>
     </header></article></main><footer id="footer"><p>
 <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
             
         </footer>
diff --git a/public/compat.html b/public/compat.html
--- a/public/compat.html
+++ b/public/compat.html
@@ -109,11 +109,11 @@
 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>
-<pre class="code python"><a name="rest_code_171ff66a5a8940aea74fd4c766cc746e-1"></a><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>
+<pre class="code python"><a name="rest_code_70036feadffb497296ad8b0a7e6a5477-1"></a><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>
 </pre>
 <p>The proper fix is</p>
-<pre class="code python"><a name="rest_code_6d970e24940243f390d3e2518dab1da7-1"></a><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>
-<a name="rest_code_6d970e24940243f390d3e2518dab1da7-2"></a>    <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>
+<pre class="code python"><a name="rest_code_fa080b8497dc418fa273f6f2e9cc4984-1"></a><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>
+<a name="rest_code_fa080b8497dc418fa273f6f2e9cc4984-2"></a>    <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>
 </pre>
 <p>The same problem---not closing your files---can also show up if your
 program opens a large number of files without closing them explicitly.
@@ -127,22 +127,22 @@
 <p>Similarly, remember that you must <code class="docutils literal">close()</code> a non-exhausted
 generator in order to have its pending <code class="docutils literal">finally</code> or <code class="docutils literal">with</code>
 clauses executed immediately:</p>
-<pre class="code python"><a name="rest_code_35bd84f66c384000a4efa36835f2f48f-1"></a><span class="k">def</span> <span class="nf">mygen</span><span class="p">():</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-2"></a>    <span class="k">with</span> <span class="n">foo</span><span class="p">:</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-3"></a>        <span class="k">yield</span> <span class="mi">42</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-4"></a>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-5"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mygen</span><span class="p">():</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-6"></a>    <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">42</span><span class="p">:</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-7"></a>        <span class="k">break</span>    <span class="c1"># foo.__exit__ is not run immediately!</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-8"></a>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-9"></a><span class="c1"># fixed version:</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-10"></a><span class="n">gen</span> <span class="o">=</span> <span class="n">mygen</span><span class="p">()</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-11"></a><span class="k">try</span><span class="p">:</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-12"></a>    <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">gen</span><span class="p">:</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-13"></a>        <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">42</span><span class="p">:</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-14"></a>            <span class="k">break</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-15"></a><span class="k">finally</span><span class="p">:</span>
-<a name="rest_code_35bd84f66c384000a4efa36835f2f48f-16"></a>    <span class="n">gen</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
+<pre class="code python"><a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-1"></a><span class="k">def</span> <span class="nf">mygen</span><span class="p">():</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-2"></a>    <span class="k">with</span> <span class="n">foo</span><span class="p">:</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-3"></a>        <span class="k">yield</span> <span class="mi">42</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-4"></a>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-5"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mygen</span><span class="p">():</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-6"></a>    <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">42</span><span class="p">:</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-7"></a>        <span class="k">break</span>    <span class="c1"># foo.__exit__ is not run immediately!</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-8"></a>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-9"></a><span class="c1"># fixed version:</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-10"></a><span class="n">gen</span> <span class="o">=</span> <span class="n">mygen</span><span class="p">()</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-11"></a><span class="k">try</span><span class="p">:</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-12"></a>    <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">gen</span><span class="p">:</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-13"></a>        <span class="k">if</span> <span class="n">x</span> <span class="o">==</span> <span class="mi">42</span><span class="p">:</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-14"></a>            <span class="k">break</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-15"></a><span class="k">finally</span><span class="p">:</span>
+<a name="rest_code_a1b6cbdc4e004d87a13d05c47ad77398-16"></a>    <span class="n">gen</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
 </pre>
 <p>More generally, <code class="docutils literal">__del__()</code> methods are not executed as predictively
 as on CPython: they run "some time later" in PyPy (or not at all if
@@ -163,7 +163,7 @@
     
 </article></main><footer id="footer"><p>
 <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
             
         </footer>
diff --git a/public/contact.html b/public/contact.html
--- a/public/contact.html
+++ b/public/contact.html
@@ -82,7 +82,7 @@
     
 </article></main><footer id="footer"><p>
 <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
             
         </footer>
diff --git a/public/download.html b/public/download.html
--- a/public/download.html
+++ b/public/download.html
@@ -257,11 +257,11 @@
 trunk using <a class="reference external" href="https://www.mercurial-scm.org/">Mercurial</a>.  The trunk usually works and is of course
 more up-to-date.  The following command should run in about 7 minutes
 nowadays if you have hg >= 3.7 (it is much slower with older versions):</p>
-<pre class="code bash"><a name="rest_code_eb222efdcc57450f9c01afcce48233ec-1"></a>hg clone https://bitbucket.org/pypy/pypy
+<pre class="code bash"><a name="rest_code_c1f6a57f6dc145cf9d0be6cc55504407-1"></a>hg clone https://bitbucket.org/pypy/pypy
 </pre>
 <p>The trunk contains PyPy 2.  For PyPy 3, switch to the correct branch:</p>
-<pre class="code bash"><a name="rest_code_85d4249d66294887b619ae00370a5a1a-1"></a><span class="c1"># switch to the branch that implements Python 3.6</span>
-<a name="rest_code_85d4249d66294887b619ae00370a5a1a-2"></a>hg update py3.6
+<pre class="code bash"><a name="rest_code_db060d4350a7428cbd3ae2ce693c5595-1"></a><span class="c1"># switch to the branch that implements Python 3.6</span>
+<a name="rest_code_db060d4350a7428cbd3ae2ce693c5595-2"></a>hg update py3.6
 </pre>
 <p>Alternatively, get one of the following smaller packages for the source at
 the same revision as the above binaries:</p>
@@ -275,19 +275,19 @@
 </li>
 <li>
 <p>Enter the <code class="docutils literal">goal</code> directory:</p>
-<pre class="code bash"><a name="rest_code_5322dcf80b114303b4e460f5a48867ff-1"></a><span class="nb">cd</span> pypy/pypy/goal
+<pre class="code bash"><a name="rest_code_cbfc2282773844319735dc5bd20ffd1a-1"></a><span class="nb">cd</span> pypy/pypy/goal
 </pre>
 </li>
 <li>
 <p>Run the <code class="docutils literal">rpython</code> script.  Here are the common combinations
 of options (works also with <code class="docutils literal">python</code> instead of <code class="docutils literal">pypy</code>;
 requires CPython 2.7 or PyPy 2, even to build PyPy 3):</p>
-<pre class="code bash"><a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-1"></a><span class="c1"># get the JIT version</span>
-<a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-2"></a>pypy ../../rpython/bin/rpython -Ojit targetpypystandalone
-<a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-3"></a><span class="c1"># get the no-jit version</span>
-<a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-4"></a>pypy ../../rpython/bin/rpython -O2 targetpypystandalone
-<a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-5"></a><span class="c1"># get the sandbox version</span>
-<a name="rest_code_ad08c81eebce4adda7a757d2b555e51b-6"></a>pypy ../../rpython/bin/rpython -O2 --sandbox targetpypystandalone
+<pre class="code bash"><a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-1"></a><span class="c1"># get the JIT version</span>
+<a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-2"></a>pypy ../../rpython/bin/rpython -Ojit targetpypystandalone
+<a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-3"></a><span class="c1"># get the no-jit version</span>
+<a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-4"></a>pypy ../../rpython/bin/rpython -O2 targetpypystandalone
+<a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-5"></a><span class="c1"># get the sandbox version</span>
+<a name="rest_code_7f73c5eee7ec4910a08037efbd3341cf-6"></a>pypy ../../rpython/bin/rpython -O2 --sandbox targetpypystandalone
 </pre>
 </li>
 <li><p>Enjoy Mandelbrot <code class="docutils literal"><span class="pre">:-)</span></code>  It takes on the order of half an hour to
@@ -320,9 +320,9 @@
 call it with <code class="docutils literal"><span class="pre">...pypy-c</span> <span class="pre">../../rpython/bin/rpython</span> <span class="pre">-Ojit</span></code>.</p>
 <p>2. if even using PyPy instead of CPython is not enough, try to tweak
 some internal parameters.  Example (slower but saves around 400MB):</p>
-<pre class="code bash"><a name="rest_code_77ce200d788b4103830bd644a28a8433-1"></a><span class="nv">PYPY_DONT_RUN_SUBPROCESS</span><span class="o">=</span><span class="m">1</span> <span class="nv">PYPY_GC_MAX_DELTA</span><span class="o">=</span>200MB <span class="se">\</span>
-<a name="rest_code_77ce200d788b4103830bd644a28a8433-2"></a>pypy --jit <span class="nv">loop_longevity</span><span class="o">=</span><span class="m">300</span> ../../rpython/bin/rpython -Ojit --source
-<a name="rest_code_77ce200d788b4103830bd644a28a8433-3"></a><span class="c1"># then read the next point about --source</span>
+<pre class="code bash"><a name="rest_code_1d541122efac4444b614f7d18e9d1fe5-1"></a><span class="nv">PYPY_DONT_RUN_SUBPROCESS</span><span class="o">=</span><span class="m">1</span> <span class="nv">PYPY_GC_MAX_DELTA</span><span class="o">=</span>200MB <span class="se">\</span>
+<a name="rest_code_1d541122efac4444b614f7d18e9d1fe5-2"></a>pypy --jit <span class="nv">loop_longevity</span><span class="o">=</span><span class="m">300</span> ../../rpython/bin/rpython -Ojit --source
+<a name="rest_code_1d541122efac4444b614f7d18e9d1fe5-3"></a><span class="c1"># then read the next point about --source</span>
 </pre>
 </li>
 <li><p>You can run translations with <code class="docutils literal"><span class="pre">--source</span></code>, which only builds the C
@@ -343,9 +343,9 @@
 <p>Once PyPy is translated from source the binary package similar to those
 provided in the section <a class="reference internal" href="download.html#default-with-a-jit-compiler">Default (with a JIT Compiler)</a> above could be
 easily created with <code class="docutils literal">package.py</code> script:</p>
-<pre class="code bash"><a name="rest_code_a0dd03f8836b440982e9ed4bcd9d5999-1"></a><span class="nb">cd</span> ./pypy/pypy/tool/release/
-<a name="rest_code_a0dd03f8836b440982e9ed4bcd9d5999-2"></a>python package.py --help <span class="c1">#for information</span>
-<a name="rest_code_a0dd03f8836b440982e9ed4bcd9d5999-3"></a>python package.py --archive-name pypy-my-own-package-name
+<pre class="code bash"><a name="rest_code_8bbac17aef5e4c6583369269ff7919bd-1"></a><span class="nb">cd</span> ./pypy/pypy/tool/release/
+<a name="rest_code_8bbac17aef5e4c6583369269ff7919bd-2"></a>python package.py --help <span class="c1">#for information</span>
+<a name="rest_code_8bbac17aef5e4c6583369269ff7919bd-3"></a>python package.py --archive-name pypy-my-own-package-name
 </pre>
 <p>It is recommended to use package.py because custom scripts will
 invariably become out-of-date.  If you want to write custom scripts
@@ -455,7 +455,7 @@
     
 </article></main><footer id="footer"><p>
 <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
             
         </footer>
diff --git a/public/features.html b/public/features.html
--- a/public/features.html
+++ b/public/features.html
@@ -157,16 +157,16 @@
 build <code class="docutils literal"><span class="pre">pypy-sandbox</span></code> from it (see <a class="reference external" href="download.html#building-from-source">Building from source</a>).  These
 instructions give you a <code class="docutils literal"><span class="pre">pypy-c</span></code> that you should rename to
 <code class="docutils literal"><span class="pre">pypy-sandbox</span></code> to avoid future confusion.  Then run:</p>
-<pre class="code bash"><a name="rest_code_8e62c9019a8d4f5285cd3e9e15afe580-1"></a><span class="nb">cd</span> pypy/sandbox
-<a name="rest_code_8e62c9019a8d4f5285cd3e9e15afe580-2"></a>pypy_interact.py path/to/pypy-sandbox
-<a name="rest_code_8e62c9019a8d4f5285cd3e9e15afe580-3"></a><span class="c1"># don't confuse it with pypy/goal/pyinteractive.py!</span>
+<pre class="code bash"><a name="rest_code_d8a8660498ac4e2f88a5b8fcf70faaa8-1"></a><span class="nb">cd</span> pypy/sandbox
+<a name="rest_code_d8a8660498ac4e2f88a5b8fcf70faaa8-2"></a>pypy_interact.py path/to/pypy-sandbox
+<a name="rest_code_d8a8660498ac4e2f88a5b8fcf70faaa8-3"></a><span class="c1"># don't confuse it with pypy/goal/pyinteractive.py!</span>
 </pre>
 <p>You get a fully sandboxed interpreter, in its own filesystem hierarchy
 (try <code class="docutils literal"><span class="pre">os.listdir('/')</span></code>).  For example, you would run an untrusted
 script as follows:</p>
-<pre class="code bash"><a name="rest_code_d48bb7a9ea1d499c9f2cb67b35ca403f-1"></a>mkdir virtualtmp
-<a name="rest_code_d48bb7a9ea1d499c9f2cb67b35ca403f-2"></a>cp untrusted.py virtualtmp/
-<a name="rest_code_d48bb7a9ea1d499c9f2cb67b35ca403f-3"></a>pypy_interact.py --tmp<span class="o">=</span>virtualtmp pypy-sandbox /tmp/untrusted.py
+<pre class="code bash"><a name="rest_code_c0777f208eeb440cb2a30c4791d5446d-1"></a>mkdir virtualtmp
+<a name="rest_code_c0777f208eeb440cb2a30c4791d5446d-2"></a>cp untrusted.py virtualtmp/
+<a name="rest_code_c0777f208eeb440cb2a30c4791d5446d-3"></a>pypy_interact.py --tmp<span class="o">=</span>virtualtmp pypy-sandbox /tmp/untrusted.py
 </pre>
 <p>Note that the path <code class="docutils literal">/tmp/untrusted.py</code> is a path inside the sandboxed
 filesystem.  You don't have to put <code class="docutils literal">untrusted.py</code> in the real <code class="docutils literal">/tmp</code>
@@ -180,7 +180,7 @@
     
 </article></main><footer id="footer"><p>
 <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
             
         </footer>
diff --git a/public/index.html b/public/index.html
--- a/public/index.html
+++ b/public/index.html
@@ -20,15 +20,12 @@
 <meta property="og:site_name" content="PyPy">
 <meta property="og:title" content="Welcome to PyPy">
 <meta property="og:url" content="https://www.pypy.org/">
-<meta property="og:description" content="A fast, compliant alternative implementation of Python
+<meta property="og:description" content='A fast, compliant alternative implementation of Python
 Get Started : Download and install
 What is PyPy : Features
 Documentation (external link)
-
-On average, PyPy is 4.4 times faser than CPython
-
-
-PyPy">
+"If you want your code to run faster,
+you should probabl'>
 <meta property="og:type" content="article">
 <meta property="article:published_time" content="2019-12-28T16:14:02Z">
 </head>
@@ -75,25 +72,20 @@
 
         
     </header><div class="e-content entry-content" itemprop="articleBody text">
-    <div>
-<div class="row">
+    <div class="row">
 <div class="column pb-4">
 <img alt="PyPy logo" src="images/pypy-logo.svg" style="width: 350px;"><p>A <a class="reference external" href="http://speed.pypy.org/">fast</a>, <a class="reference external" href="compat.html">compliant</a> alternative implementation of <a class="reference external" href="http://python.org/">Python</a></p>
 <p class="button"><a class="reference external" href="download.html">Get Started</a> : Download and install</p>
 <p class="button"><a class="reference external" href="features.html">What is PyPy</a> : Features</p>
 <p class="button"><a class="reference external" href="https://doc.pypy.org">Documentation</a> (external link)</p>
-</div>
-<div class="column pb-4">
-<p class="small">On average, PyPy is <strong>4.4 times faser</strong> than CPython</p>
-<div class="text-sm figure">
-<img alt='PyPy vs. Python speed comparison graph"' src="images/pypy_speed_graph.png"><p class="caption">PyPy trunk (with JIT) benchmark times normalized to CPython. Smaller is
-better. Based on he geometric average of all benchmarks</p>
-</div>
-</div>
-</div>
 <pre class="literal-block">"If you want your code to run faster,
 you should probably just use PyPy."
 -- Guido van Rossum (creator of Python)</pre>
+<p>On average, PyPy is <strong>4.4 times faster</strong> than CPython</p>
+<div class="text-sm figure">
+<img alt='PyPy vs. Python speed comparison graph"' src="images/pypy_speed_graph.png"><p class="caption">PyPy trunk (with JIT) benchmark times normalized to CPython. Smaller is
+better. Based on the geometric average of all benchmarks</p>
+</div>
 <p><strong>Advantages and distinct Features</strong></p>
 <ul class="simple">
 <li><p><strong>Speed:</strong> thanks to its Just-in-Time compiler, Python programs
@@ -108,11 +100,12 @@
 <li><p>As well as other <a class="reference external" href="features.html">features</a>.</p></li>
 </ul>
 </div>
+</div>
     </div>
     
 </article></main><footer id="footer"><p>
 <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
             
         </footer>
diff --git a/public/index.rst b/public/index.rst
--- a/public/index.rst
+++ b/public/index.rst
@@ -34,32 +34,22 @@
 .. _`What is PyPy`: features.html
 .. _`Documentation`: https://doc.pypy.org
 
-.. raw:: html
 
-    </div>
-    <div class="column pb-4" "flex-basis: 400px">
+::
 
-.. class:: small
+    "If you want your code to run faster,
+    you should probably just use PyPy."
+    -- Guido van Rossum (creator of Python)
 
-On average, PyPy is **4.4 times faser** than CPython
+On average, PyPy is **4.4 times faster** than CPython
 
 .. figure:: images/pypy_speed_graph.png
     :alt: PyPy vs. Python speed comparison graph"
     :figclass: text-sm
 
     PyPy trunk (with JIT) benchmark times normalized to CPython. Smaller is
-    better. Based on he geometric average of all benchmarks
+    better. Based on the geometric average of all benchmarks
 
-.. raw:: html
-
-    </div>
-    </div>
-
-::
-
-    "If you want your code to run faster,
-    you should probably just use PyPy."
-    -- Guido van Rossum (creator of Python)
 
 **Advantages and distinct Features**
 
diff --git a/public/people.html b/public/people.html
--- a/public/people.html
+++ b/public/people.html
@@ -188,7 +188,7 @@
     
 </article></main><footer id="footer"><p>
 <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
             
         </footer>
diff --git a/public/performance.html b/public/performance.html
--- a/public/performance.html
+++ b/public/performance.html
@@ -235,13 +235,13 @@
 <div class="section" id="string-concatenation-is-expensive">
 <h3>String concatenation is expensive</h3>
 <p>In CPython, you may want to replace:</p>
-<pre class="code python"><a name="rest_code_ce6361ac82b941c2baf7683e62801171-1"></a><span class="n">s</span> <span class="o">=</span> <span class="n">head</span> <span class="o">+</span> <span class="n">body</span> <span class="o">+</span> <span class="n">maybe</span> <span class="o">+</span> <span class="n">tail</span>
+<pre class="code python"><a name="rest_code_932017a3c2d84bb982ab371c27785e79-1"></a><span class="n">s</span> <span class="o">=</span> <span class="n">head</span> <span class="o">+</span> <span class="n">body</span> <span class="o">+</span> <span class="n">maybe</span> <span class="o">+</span> <span class="n">tail</span>
 </pre>
 <p>with the admittedly less readable:</p>
-<pre class="code python"><a name="rest_code_c50435e403854b8eac9c35780c72b6d8-1"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%(head)s%(body)s%(maybe)s%(tail)s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">locals</span><span class="p">()</span>
+<pre class="code python"><a name="rest_code_69e68d1d51ff463ebd512343ae0ab687-1"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%(head)s%(body)s%(maybe)s%(tail)s</span><span class="s2">"</span> <span class="o">%</span> <span class="nb">locals</span><span class="p">()</span>
 </pre>
 <p>or even:</p>
-<pre class="code python"><a name="rest_code_45df624352d84e12a607edff5600123f-1"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">"</span><span class="si">{head}{body}{maybe}{tail}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="o">**</span><span class="nb">locals</span><span class="p">())</span>
+<pre class="code python"><a name="rest_code_173ee5bb4c34441bb6e1ea4a45e617ca-1"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">"</span><span class="si">{head}{body}{maybe}{tail}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="o">**</span><span class="nb">locals</span><span class="p">())</span>
 </pre>
 <p>Both of the latter forms avoid multiple-allocation overhead.
 But PyPy's JIT makes the overhead of intermediate concatenations
@@ -249,8 +249,8 @@
 small, bound and constant.  (And <code class="docutils literal">locals()</code> is rather slow
 with PyPy's JIT.)</p>
 <p>On the other hand, in code like this with a string-valued foo() function:</p>
-<pre class="code python"><a name="rest_code_98503b81c63d4dbe8a95eb4b488622a2-1"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mylist</span><span class="p">:</span>
-<a name="rest_code_98503b81c63d4dbe8a95eb4b488622a2-2"></a>    <span class="n">s</span> <span class="o">+=</span> <span class="n">foo</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
+<pre class="code python"><a name="rest_code_18614ba6a1144dd39058438e85bdf56d-1"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mylist</span><span class="p">:</span>
+<a name="rest_code_18614ba6a1144dd39058438e85bdf56d-2"></a>    <span class="n">s</span> <span class="o">+=</span> <span class="n">foo</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
 </pre>
 <p>the JIT cannot optimize out intermediate copies.  This code is
 actually quadratic in the total size of the mylist strings due to
@@ -258,10 +258,10 @@
 is always fine for bytearrays, because in this case <code class="docutils literal">+=</code> is an
 in-place operation.)</p>
 <p>This:</p>
-<pre class="code python"><a name="rest_code_577f1ce781034a32aa3369ac2ae4572b-1"></a><span class="n">parts</span> <span class="o">=</span> <span class="p">[]</span>
-<a name="rest_code_577f1ce781034a32aa3369ac2ae4572b-2"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mylist</span><span class="p">:</span>
-<a name="rest_code_577f1ce781034a32aa3369ac2ae4572b-3"></a>    <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">foo</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
-<a name="rest_code_577f1ce781034a32aa3369ac2ae4572b-4"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
+<pre class="code python"><a name="rest_code_ac7860eb3b5340cbb49fa7f1f237b9b9-1"></a><span class="n">parts</span> <span class="o">=</span> <span class="p">[]</span>
+<a name="rest_code_ac7860eb3b5340cbb49fa7f1f237b9b9-2"></a><span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">mylist</span><span class="p">:</span>
+<a name="rest_code_ac7860eb3b5340cbb49fa7f1f237b9b9-3"></a>    <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">foo</span><span class="p">(</span><span class="n">x</span><span class="p">))</span>
+<a name="rest_code_ac7860eb3b5340cbb49fa7f1f237b9b9-4"></a><span class="n">s</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
 </pre>
 <p>can be much faster because all the string concatenation in the last
 line creates exactly one new string object with one C-level copy
@@ -373,7 +373,7 @@
     
 </article></main><footer id="footer"><p>
 <img src="images/pypy-logo-nav-grey.png" alt="PyPy Logo">  Contents ©
-2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
+2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> Powered by <a href="https://getnikola.com" rel="nofollow">Nikola</a> 
 </p>
             
         </footer>
diff --git a/public/rss.xml b/public/rss.xml
--- a/public/rss.xml
+++ b/public/rss.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8"?>
-<?xml-stylesheet type="text/xsl" href="assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>PyPy</title><link>https://www.pypy.org/</link><description>A Faster Python</description><atom:link href="https://www.pypy.org/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2019 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> </copyright><lastBuildDate>Mon, 30 Dec 2019 07:43:17 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs></channel></rss>
\ No newline at end of file
+<?xml-stylesheet type="text/xsl" href="assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>PyPy</title><link>https://www.pypy.org/</link><description>A Faster Python</description><atom:link href="https://www.pypy.org/rss.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2020 <a href="mailto:pypy-dev at pypy.org">The PyPy Team</a> </copyright><lastBuildDate>Wed, 08 Jan 2020 08:33:50 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs></channel></rss>
\ No newline at end of file
diff --git a/public/sitemap.xml b/public/sitemap.xml
--- a/public/sitemap.xml
+++ b/public/sitemap.xml
@@ -7,42 +7,42 @@
                         http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
  <url>
   <loc>https://www.pypy.org/</loc>
-  <lastmod>2019-12-30T13:22:00Z</lastmod>
+  <lastmod>2020-01-08T08:35:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/archive.html</loc>
-  <lastmod>2019-12-30T13:28:00Z</lastmod>
+  <lastmod>2020-01-08T08:33:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/blog/</loc>
-  <lastmod>2019-12-30T07:43:00Z</lastmod>
+  <lastmod>2020-01-08T05:16:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/categories/</loc>
-  <lastmod>2019-12-30T07:43:00Z</lastmod>
+  <lastmod>2020-01-08T05:16:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/compat.html</loc>
-  <lastmod>2019-12-30T13:28:00Z</lastmod>
+  <lastmod>2020-01-08T08:33:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/contact.html</loc>
-  <lastmod>2019-12-30T13:28:00Z</lastmod>
+  <lastmod>2020-01-08T08:33:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/download.html</loc>
-  <lastmod>2019-12-30T13:28:00Z</lastmod>
+  <lastmod>2020-01-08T08:33:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/features.html</loc>
-  <lastmod>2019-12-30T13:28:00Z</lastmod>
+  <lastmod>2020-01-08T08:33:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/people.html</loc>
-  <lastmod>2019-12-30T13:28:00Z</lastmod>
+  <lastmod>2020-01-08T08:33:00Z</lastmod>
  </url>
  <url>
   <loc>https://www.pypy.org/performance.html</loc>
-  <lastmod>2019-12-30T13:28:00Z</lastmod>
+  <lastmod>2020-01-08T08:33:00Z</lastmod>
  </url>
 </urlset>
\ No newline at end of file
diff --git a/public/sitemapindex.xml b/public/sitemapindex.xml
--- a/public/sitemapindex.xml
+++ b/public/sitemapindex.xml
@@ -7,10 +7,10 @@
                         http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
  <sitemap>
   <loc>https://www.pypy.org/rss.xml</loc>
-  <lastmod>2019-12-30T07:43:00Z</lastmod>
+  <lastmod>2020-01-08T08:33:00Z</lastmod>
  </sitemap>
  <sitemap>
   <loc>https://www.pypy.org/sitemap.xml</loc>
-  <lastmod>2019-12-30T13:28:00Z</lastmod>
+  <lastmod>2020-01-08T08:35:00Z</lastmod>
  </sitemap>
 </sitemapindex>
\ No newline at end of file


More information about the pypy-commit mailing list