[pypy-svn] r12650 - pypy/dist/pypy/documentation

hpk at codespeak.net hpk at codespeak.net
Fri May 20 19:16:51 CEST 2005


Author: hpk
Date: Fri May 20 19:16:51 2005
New Revision: 12650

Modified:
   pypy/dist/pypy/documentation/architecture.txt
Log:

tweaking the introduction part of the architecture 
document.  I always found that this was mixing 
current status and higher level ideas too much. 
hope you like it. 



Modified: pypy/dist/pypy/documentation/architecture.txt
==============================================================================
--- pypy/dist/pypy/documentation/architecture.txt	(original)
+++ pypy/dist/pypy/documentation/architecture.txt	Fri May 20 19:16:51 2005
@@ -30,45 +30,52 @@
 It has become a tradition in the development of computer languages to
 implement each language in itself. This serves many purposes. By doing so,
 you demonstrate the versatility of the language, and its applicability for
-large projects.  A compiler/interpreter is close to as complex as software
-ever gets.
-
-The PyPy project aims to do this for Python_ and has made some significant
-progress. In a number of one week sprints, attracting approximately
-10 developers each, we made an almost complete implementation of Python in
-Python. Currently it is rather slow, benchmarking at a factor 2000 times
-slower than regular Python (henceforth referred to as CPython).
-
-For some time now the bleeding edge PyPy work has been focused on generating
-reasonably efficient C code from the source of PyPy, thereby reducing the
-speed penalty.  This goal is no longer far away.
-
-Later in the project, we will introduce optimizations (following the ideas
-of Psyco_ and Stackless_) that should make PyPy run faster than CPython.
+large projects.  Writing compilers and interpreters are among the most 
+complex endeavours in software development. 
 
 An important aspect of implementing Python in Python is the high level of
-abstraction and compactness of the language. This yields an implementation
+abstraction and compactness of the language. This allows an implementation
 that is, in some respects, easier to understand and play with than the one
-done in C.
+done in C.  Actually, the existing CPython implementation is mostly 
+well written and it is often possible to manually translate according
+CPython code to PyPy by just stripping away many low level details. 
 
 Another carrying idea in PyPy is to build the implementation in the form
 of a number of independent modules with clearly defined and well tested API's. 
 This eases reuse and allows experimenting with multiple implementations 
 of specific features.
 
-Our rather complete and 2.3-compliant interpreter is about 22000 lines of
-code, with another 7000 lines of unit tests.  If we include the tools, the
+Later in the project, we will introduce optimizations, following the ideas
+of Psyco_ and Stackless_, that should make PyPy run Python programs 
+faster than CPython.
+
+.. _Python: http://www.python.org/doc/current/ref/ref.html
+.. _Psyco: http://psyco.sourceforge.net
+.. _Stackless: http://stackless.com 
+
+Status of the implementation (May 2005)
+---------------------------------------
+
+In a number of one week sprints, attracting approximately 10 developers each,
+we made an almost complete implementation of Python in Python. Currently it is
+slow, benchmarking at a factor 2000 times slower than regular Python
+(henceforth referred to as CPython). This was expected because running a
+bytecode interpreter on top of CPython obviously imposes a
+double-interpretation penalty. 
+
+Our rather complete and Python 2.3-compliant interpreter is about 22000 lines 
+of code, with another 7000 lines of unit tests.  If we include the tools, the
 parts related to code analysis and generation, and the standard library
 modules ported from C, PyPy is now 55000 lines of code and 20000 lines of
 tests.
 
-We also pass a number of CPython's own tests, including 90% of the "core"
-tests not depending on C extension modules (most of the remaining 10% are
+PyPy already passes a lot of CPython's own regression tests, including 90% of the 
+core tests not depending on C extension modules (most of the remaining 10% are
 arguably dependant on very obscure implementation details of CPython).
 
-.. _Python: http://www.python.org/doc/current/ref/ref.html
-.. _Psyco: http://psyco.sourceforge.net
-.. _Stackless: http://stackless.com 
+For some time now the bleeding edge PyPy work has been focused on generating
+reasonably efficient C code from the source of PyPy, thereby reducing the
+speed penalty.  This goal is no longer far away.
 
 
 Higher level picture



More information about the Pypy-commit mailing list