[pypy-svn] r20792 - pypy/dist/pypy/doc

tismer at codespeak.net tismer at codespeak.net
Tue Dec 6 17:28:00 CET 2005


Author: tismer
Date: Tue Dec  6 17:27:59 2005
New Revision: 20792

Modified:
   pypy/dist/pypy/doc/translation-aspects.txt
Log:
made the text till the Stackless section. changed some wordings, removed some speling errors, added a few things, and manny commas (!) :-)

Modified: pypy/dist/pypy/doc/translation-aspects.txt
==============================================================================
--- pypy/dist/pypy/doc/translation-aspects.txt	(original)
+++ pypy/dist/pypy/doc/translation-aspects.txt	Tue Dec  6 17:27:59 2005
@@ -231,7 +231,7 @@
 the stack. To achieve this, the object is "exploded", that means that for every
 element of the structure a new variable is generated that is handed around in
 the graph. Reads from elements of the structure are removed and just replaced
-by one of the variables, writes by assignements to same.
+by one of the variables, writes by assignments to same.
 
 Since quite a lot of objects are allocated in small helper functions, this
 simple approach which does not track objects accross function boundaries only
@@ -263,28 +263,29 @@
 PyPy to C with them. This is because is not easy to
 find the root pointers that reside on the C stack -- both because the C stack layout is
 heavily platform dependent and because of the possibility of roots that are not
-only on the stack but also in registers (which would give a problem for moving
-garbage collectors).
+only on the stack but also in registers (which would give a problem for *moving
+garbage collectors*).
 
 There are several possible solutions for this problem: One
-of them is to not use C compilers to generate machine code so that the stack
-frame layout can be controlled by us. This is one of the tasks that need to be
-tackled in phase 2 as generating assembly directly is needed anyway for a
+of them is to not use C compilers to generate machine code, so that the stack
+frame layout get into our control. This is one of the tasks that need to be
+tackled in phase 2, as directly generating assembly is needed anyway for a
 just-in-time compiler. The other possibility (which would be much easier to
-implement) is to move all the data away from the stack to the heap, as
-described below in section "Stackless C code".
+implement) is to move all the data away from the stack to the heap
+before collecting garbage, as described in section "Stackless C code"  below.
 
 Concurrency Model Implementations
 ============================================
 
-At the moment we have implemented two different concurrency models and the
-option to not support concurrency (which proof the modularity of our approach):
+At the moment we have implemented two different concurrency models, and the
+option to not support concurrency at all 
+(another proof of the modularity of our approach):
 threading with a global interpreter lock and a "stackless" model.
 
 No threading
 -------------
 
-By default multi-threading is not supported at all, which gives some small
+By default, multi-threading is not supported at all, which gives some small
 benefits for single-threaded applications since even in the single-threaded
 case there is some overhead if threading capabilities are built into
 the interpreter.
@@ -292,19 +293,19 @@
 Threading with a Global Interpreter Lock
 ------------------------------------------
 
-At the moment there is one non-trivial threading model implemented. It follows
+Right now, there is one non-trivial threading model implemented. It follows
 the threading implementation of CPython and thus uses a global interpreter
-lock. This lock prevents any two threads from interpreting python code at any
-time. The global interpreter lock is released around calls to blocking I/O
+lock. This lock prevents any two threads from interpreting python code at
+the same time. The global interpreter lock is released around calls to blocking I/O
 functions. This approach has a number of advantages: it gives very little
 runtime penalty for single-threaded applications, makes many of the common uses
-for threading possible and is relatively easy to implement and maintain. It has
-the disadvantages that multiple threads cannot be distributed accross multiple
+for threading possible, and it is relatively easy to implement and maintain. It has
+the disadvantage that multiple threads cannot be distributed accross multiple
 proccessors. 
 
-To make this threading-model useable for I/O-bound applications the global
+To make this threading-model usable for I/O-bound applications, the global
 intepreter lock should be released around blocking external function calls
-(which is also what CPython does). This has not been fully implemented yet.
+(which is also what CPython does). This has been partially implemented, yet.
 
 
 Stackless C code



More information about the Pypy-commit mailing list