Commits

Maciej Fijalkowski committed c58b878

add a blog draft

  • Participants
  • Parent commits 415fa82

Comments (0)

Files changed (2)

blog/draft/pypy-alpha-arm.rst

+======================
+PyPy 2.0 alpha for ARM
+======================
+
+Hello.
+
+We're pleased to announce an alpha release of PyPy 2.0 for ARM. This is mostly
+a technology preview, as we know the JIT is not yet stable enough for the
+full release. However please try your stuff on ARM and report back.
+
+This is the first release that supports a range of ARM devices - anything
+with ARMv6 (that supports VFP, like raspberry pi) or ARMv7 (soft- or hard-float)
+should work.
+
+This release comes with a list of limitations, consider it alpha quality,
+not suitable for production:
+
+* stackless support does not work
+
+* assembler produced is not always correct, but we successfully managed to
+  run our extensive benchmark suite, so most stuff should work
+
+You can download the PyPy 2.0 alpha ARM release here:
+
+    http://pypy.org/download.html 
+
+Part of the work was sponsored by the `Raspberry Pi foundation`_.
+
+.. _`Raspberry Pi foundation`: http://www.raspberrypi.org/
+
+What is PyPy?
+=============
+
+PyPy is a very compliant Python interpreter, almost a drop-in replacement for
+CPython 2.7.3. It's fast due to its integrated tracing JIT compiler.
+
+This release supports ARM machines running Linux 32bit. Both ``armel``
+and ``armhf`` builds are provided.
+
+Benchmarks
+==========
+
+Everybody loves benchmarks. Here is a table of our benchmark suite (we don't
+provide it yet on http://speed.pypy.org, unfortunately).
+
+This is a comparison of Cortex A9 processor with 4M cache and Xeon XXX fill in
+
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| Benchmark          | PyPy vs CPython (arm) | PyPy vs CPython (x86) | x86 vs arm (pypy) | x86 vs arm (cpython) | relative speedup |
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| ai                 | 3.61                  | 3.16                  | 7.70              | 8.82                 | 0.87             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| bm_mako            | 3.41                  | 2.11                  | 8.56              | 13.82                | 0.62             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| chaos              | 21.82                 | 17.80                 | 6.93              | 8.50                 | 0.82             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| crypto_pyaes       | 22.53                 | 19.48                 | 6.53              | 7.56                 | 0.86             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| django             | 13.43                 | 11.16                 | 7.90              | 9.51                 | 0.83             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| eparse             | 1.43                  | 1.17                  | 6.61              | 8.12                 | 0.81             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| fannkuch           | 6.22                  | 5.36                  | 6.18              | 7.16                 | 0.86             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| float              | 5.22                  | 6.00                  | 9.68              | 8.43                 | 1.15             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| go                 | 4.72                  | 3.34                  | 5.91              | 8.37                 | 0.71             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| hexiom2            | 8.70                  | 7.00                  | 7.69              | 9.56                 | 0.80             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| html5lib           | 2.35                  | 2.13                  | 6.59              | 7.26                 | 0.91             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| json_bench         | 1.12                  | 0.93                  | 7.19              | 8.68                 | 0.83             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| meteor-contest     | 2.13                  | 1.68                  | 5.95              | 7.54                 | 0.79             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| nbody_modified     | 8.19                  | 7.78                  | 6.08              | 6.40                 | 0.95             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| pidigits           | 1.27                  | 0.95                  | 14.67             | 19.66                | 0.75             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| pyflate-fast       | 3.30                  | 3.57                  | 10.64             | 9.84                 | 1.08             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| raytrace-simple    | 46.41                 | 29.00                 | 5.14              | 8.23                 | 0.62             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| richards           | 31.48                 | 28.51                 | 6.95              | 7.68                 | 0.91             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| slowspitfire       | 1.28                  | 1.14                  | 5.91              | 6.61                 | 0.89             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| spambayes          | 1.93                  | 1.27                  | 4.15              | 6.30                 | 0.66             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| sphinx             | 1.01                  | 1.05                  | 7.76              | 7.45                 | 1.04             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| spitfire           | 1.55                  | 1.58                  | 5.62              | 5.49                 | 1.02             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| spitfire_cstringio | 9.61                  | 5.74                  | 5.43              | 9.09                 | 0.60             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| sympy_expand       | 1.42                  | 0.97                  | 3.86              | 5.66                 | 0.68             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| sympy_integrate    | 1.60                  | 0.95                  | 4.24              | 7.12                 | 0.60             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| sympy_str          | 0.72                  | 0.48                  | 3.68              | 5.56                 | 0.66             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| sympy_sum          | 1.99                  | 1.19                  | 3.83              | 6.38                 | 0.60             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| telco              | 14.28                 | 9.36                  | 3.94              | 6.02                 | 0.66             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| twisted_iteration  | 11.60                 | 7.33                  | 6.04              | 9.55                 | 0.63             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| twisted_names      | 3.68                  | 2.83                  | 5.01              | 6.50                 | 0.77             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+| twisted_pb         | 4.94                  | 3.02                  | 5.10              | 8.34                 | 0.61             | 
++--------------------+-----------------------+-----------------------+-------------------+----------------------+------------------+
+
+XXX some stuff
+
+How to use PyPy?
+================
+
+We suggest using PyPy from a `virtualenv`_. Once you have a virtualenv
+installed, you can follow instructions from `pypy documentation`_ on how
+to proceed. This document also covers other `installation schemes`_.
+
+.. _`pypy documentation`: http://doc.pypy.org/en/latest/getting-started.html#installing-using-virtualenv
+.. _`virtualenv`: http://www.virtualenv.org/en/latest/
+.. _`installation schemes`: http://doc.pypy.org/en/latest/getting-started.html#installing-pypy
+.. _`PyPy and pip`: http://doc.pypy.org/en/latest/getting-started.html#installing-pypy
+
+XXXX more

blog/draft/so_you_want.rst

   since the introduction of `cffi`_, the ecosystem of PyPy-compatible software
   has been growing. Things I know are written with PyPy in mind:
 
-  * the new version of `PyOpenSSL`_ will support PyPy via cffi
+  * the new version of `pyOpenSSL`_ will support PyPy via cffi
 
-  * `pgsql2cffi`_ is the most actively maintained postgres binding for PyPy,
+  * `psycopg2cffi`_ is the most actively maintained postgres binding for PyPy,
     with pg8000 reported working
 
   * mysql has a `ctypes based implementation`_ (although a cffi-based one would
   * `uWSGI`_, while working, is almost certainly not the best choice. Try
     `tornado`_, `twisted.web`_, `cyclone.io`_, `gunicorn`_ or `gevent`_
     (note: gevent support for PyPy is not quite finished; will write about it
-    in a separate blog post)
+    in a separate blog post, but you can't just use the main branch of gevent)
 
-  * consult (and contribute to) `pypy compatibility wiki`_ for details
+  * consult (and contribute to) `pypy compatibility wiki`_ for details (note
+    that it's community maintained, might be out of date)
+
+.. _`pypy compatibility wiki`: https://bitbucket.org/pypy/compatibility/wiki/Home
+.. _`cffi`: http://cffi.readthedocs.org
+.. _`pyOpenSSL`: https://launchpad.net/pyopenssl
+.. _`psycopg2cffi`: https://github.com/chtd/psycopg2cffi
+.. _`ctypes based implementation`: https://github.com/quora/mysql-ctypes
+.. _`lxml-cffi`: https://github.com/amauryfa/lxml/tree/lxml-cffi
+.. _`uWSGI`: https://github.com/unbit/uwsgi-docs
+.. _`tornado`: http://www.tornadoweb.org/en/stable/
+.. _`twisted.web`: http://twistedmatrix.com/trac/wiki/TwistedWeb
+.. _`cyclone.io`: http://cyclone.io/
+.. _`gunicorn`: http://gunicorn.org/
+.. _`gevent`: http://www.gevent.org/
 
 * Have benchmarks. If you don't have benchmarks, then performance does not
   matter for you. Since PyPy's warm-up time is bad (and yes, we know, we're
 
 Cheers,
 fijal
+
+.. _`pypy-dev`: http://mail.python.org/mailman/listinfo/pypy-dev
+.. _`jitviewer`: https://bitbucket.org/pypy/jitviewer
+.. _`valgrind`: http://valgrind.org/
+.. _`lsprofcalltree`: https://bitbucket.org/pypy/pypy/src/default/rpython/tool/lsprofcalltree.py?at=default