[pypy-svn] r48233 - pypy/extradoc/talk/roadshow-ibm

pedronis at codespeak.net pedronis at codespeak.net
Thu Nov 1 12:54:05 CET 2007


Author: pedronis
Date: Thu Nov  1 12:54:04 2007
New Revision: 48233

Modified:
   pypy/extradoc/talk/roadshow-ibm/talk.txt
Log:
WIP: translation aspects slides



Modified: pypy/extradoc/talk/roadshow-ibm/talk.txt
==============================================================================
--- pypy/extradoc/talk/roadshow-ibm/talk.txt	(original)
+++ pypy/extradoc/talk/roadshow-ibm/talk.txt	Thu Nov  1 12:54:04 2007
@@ -1,5 +1,67 @@
 .. include:: <s5defs.txt>
 
+
+Translation aspects
+========================
+
+- The interpreters that we write should be free of low-level details
+  (this is also required to target platform as different as Posix/C
+  and the JVM/.NET)
+
+- Advanced features related to execution should not need wide-spread
+  changes to the interpreters
+
+- The interpreters instead should use support offered and inserted by
+  the framework
+
+Examples: gc and memory management, stack inspection and manipulation
+
+Implementation
+==================
+
+- Translation aspects are implemented as transformation of low-level
+  graphs
+
+- Calls to library/helper code written in RPython can be inserted
+   too which will also be analyzed and translated
+
+GC Framework
+===============
+
+- RPython has been extended with allocation and adress manipulation
+  primitives that can be used to express GC in RPython directly
+
+- GCs are linked by substituting memory allocation operations with calls
+  into them
+
+- Right now bookeeping code to keep track of reference counting or
+  roots is inserted by the GC framework
+
+- Inlining is used to eliminate call overhead for the fast paths of
+  allocation
+
+.. MMTk reference
+
+Stackless transformation
+=========================
+
+- One translation aspect transformation insertes support code across
+  around calls such that the stack can be unwind and function asked to
+  store and reflect their current activation frame state to the heap
+
+- Chains of saved activation state can then be resumed
+
+- We have implemented coroutine switching using this
+
+Resume points
+===============
+
+- Further this transformation can insert code tha allows to construct
+  chains of activation states corresponding to labeled points in the
+  program, we use this to construct resumable low-level activation
+  chains from information captured as serialized language level frame
+  chains.
+
 Flexibility vs. Performance
 =============================
 



More information about the Pypy-commit mailing list