Author: Maciej Fijalkowski <[email protected]> Branch: extradoc Changeset: r4966:c58b878fb310 Date: 2013-05-02 12:36 +0200 http://bitbucket.org/pypy/extradoc/changeset/c58b878fb310/
Log: add a blog draft diff --git a/blog/draft/pypy-alpha-arm.rst b/blog/draft/pypy-alpha-arm.rst new file mode 100644 --- /dev/null +++ b/blog/draft/pypy-alpha-arm.rst @@ -0,0 +1,128 @@ +====================== +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 diff --git a/blog/draft/so_you_want.rst b/blog/draft/so_you_want.rst --- a/blog/draft/so_you_want.rst +++ b/blog/draft/so_you_want.rst @@ -25,9 +25,9 @@ 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 @@ -40,9 +40,23 @@ * `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 @@ -86,3 +100,8 @@ 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 _______________________________________________ pypy-commit mailing list [email protected] http://mail.python.org/mailman/listinfo/pypy-commit
