[pypy-svn] r64239 - pypy/trunk/pypy/doc

niko at codespeak.net niko at codespeak.net
Fri Apr 17 12:21:16 CEST 2009


Author: niko
Date: Fri Apr 17 12:21:15 2009
New Revision: 64239

Modified:
   pypy/trunk/pypy/doc/faq.txt
Log:
bring faq up to date



Modified: pypy/trunk/pypy/doc/faq.txt
==============================================================================
--- pypy/trunk/pypy/doc/faq.txt	(original)
+++ pypy/trunk/pypy/doc/faq.txt	Fri Apr 17 12:21:15 2009
@@ -128,14 +128,13 @@
 
 .. _whysoslow:
 
-As of August 2005, PyPy was successfully translated to C.  Compared to
-CPython, the version of PyPy that still runs on top of CPython is slower
-by a factor of 2000. The first translated version was roughly 300 times
-slower than CPython, a number which we decreased release after release
-to the current point, where PyPy is somewhere between 1 and 2, i.e. it
-is as fast as CPython in some cases, and up to twice as slow in other
-cases.  Note that the speed heavily depends on the options enabled at
-compile time.
+The answer to this question depends on how the PyPy interpreter is run. When
+optimized and translated to C, the PyPy interpreter runs somewhere between 1
+and 2 times slower than CPython. If the PyPy interpreter is run on top of
+CPython, i.e., without translation of any kind, then it is slower by a factor
+of 2000. Obtaining good measurements for the performance when run on the CLI or
+JVM is difficult, but it is safe to say that PyPy currently runs slower than
+IronPython (CLI) or Jython (JVM) for most tests.
 
 The integration of the work on the Just-In-Time compiler has just
 started; it is not yet ready enough to give useful speed-ups.  See
@@ -146,25 +145,25 @@
 
 .. _`prolog and javascript`:
 
------------------------------------------------------------------------
-What is this talk about a JavaScript and a Prolog interpreter in PyPy?
------------------------------------------------------------------------
-
-Since a Python interpreter is a rather large and intricate thing, our tool suite
-has become quite advanced to support it. This resulted in people having the idea of using it
-to implement interpreters for other dynamic languages than Python and get a lot
-of things for free (translation to various languages, stackless features,
+---------------------------------------------------------------
+Can PyPy support intepreters for other languages beyond Python?
+---------------------------------------------------------------
+
+The toolsuite that translates the PyPy interpreter is quite
+general and can be used to create optimized versions of interpreters
+for any language, not just Python.  Of course, these interpreters
+can make use of the same features that PyPy brings to Python:
+translation to various languages, stackless features,
 garbage collection, implementation of various things like arbitrarily long
-integers). Therefore people started to implement a JavaScript interpreter
-(Leonardo Santagada as his Summer of PyPy project) and a `Prolog interpreter`_
-(Carl Friedrich Bolz as his Bachelor thesis). The JavaScript interpreter is
-undocumented at the moment, you can look at `its sources`_.
-Both projects are unfinished the moment (the Prolog interpreter being less
-unfinished).
+integers, etc. 
 
-.. _`its sources`: ../../pypy/lang/js
-.. _`Prolog interpreter`: prolog-interpreter.html
+Currently, we have preliminary versions of a JavaScript interpreter
+(Leonardo Santagada as his Summer of PyPy project), a `Prolog interpreter`_
+(Carl Friedrich Bolz as his Bachelor thesis), and a `SmallTalk interpreter`_
+(produced during a sprint).  All of them are unfinised at the moment.
 
+.. _`Prolog interpreter`: prolog-interpreter.html
+.. _`SmallTalk interpreter`: http://dx.doi.org/10.1007/978-3-540-89275-5_7
 
 Development
 ========================================================================
@@ -363,23 +362,14 @@
 Which backends are there?
 -------------------------
 
-Backends that can actually translate all of PyPy:
-
- * C_, LLVM_, CLI_, JVM_
-
-Somewhat mature backends:
-
-* Low level backends: C_, LLVM_
-* High level backends: CLI_, JVM_, JavaScript_
-
+Currently, there are backends for C_, the CLI_, and the JVM_.
+All of these can translate the entire PyPy interpreter.
 To learn more about backends take a look at the `translation document`_.
 
-.. _CLI: cli-backend.html
-.. _JavaScript: js/whatis.html
 .. _C: translation.html#the-c-back-end
-.. _LLVM: translation.html#the-llvm-back-end
-.. _`translation document`: translation.html
+.. _CLI: cli-backend.html
 .. _JVM: translation.html#genjvm
+.. _`translation document`: translation.html
 
 ----------------------
 How do I compile PyPy?



More information about the Pypy-commit mailing list