[pypy-svn] rev 2596 - pypy/trunk/doc/overview

pedronis at codespeak.net pedronis at codespeak.net
Fri Dec 19 18:02:14 CET 2003


Author: pedronis
Date: Fri Dec 19 18:02:13 2003
New Revision: 2596

Added:
   pypy/trunk/doc/overview/RPy-translation-overview.txt
Log:
very rough first cut at a high-level description of RPy translation. 


Added: pypy/trunk/doc/overview/RPy-translation-overview.txt
==============================================================================
--- (empty file)
+++ pypy/trunk/doc/overview/RPy-translation-overview.txt	Fri Dec 19 18:02:13 2003
@@ -0,0 +1,24 @@
+RPython translation overview
+-------------------------------
+
+Translation of RPython code of PyPy works on bytecode as found in the
+interpreter functions object after the PyPy system has been loaded and
+initialized. These bytecodes will be abstractly interpreted using the
+PyPy interpreter itself with a specific Object Space, the Flow Object
+Space, plugged in. The Flow Object Space drives the execution in such
+a way that all paths in the code are followed. As a side-effect it
+produce flow graphs, that means graph capturing the control flow of
+the code, nodes there are basic blocks of logged Object Space
+operations executed sequentially, how values flow is also encoded.
+
+These flow graphs can be fed then as input to the Annotator. Under the
+constraints of RPython, the Annotator given entry point types should
+be able to infer the types of values that flow through the program
+variables.
+
+In a last phase the type annotated flow graphs can be visited by the
+Translator, which out of the types annotation, the basic block listed
+operations and control flow information encoded in the graphs, should
+be able to emit "low-level" code. Our first target would be probably
+Pyrex code, which then can be translated to compilable C by Pyrex
+itself.


More information about the Pypy-commit mailing list