[pypy-svn] r45334 - pypy/extradoc/talk/dyla2007

arigo at codespeak.net arigo at codespeak.net
Wed Jul 25 21:49:34 CEST 2007


Author: arigo
Date: Wed Jul 25 21:49:34 2007
New Revision: 45334

Modified:
   pypy/extradoc/talk/dyla2007/talk.tex
Log:
More shuffling.


Modified: pypy/extradoc/talk/dyla2007/talk.tex
==============================================================================
--- pypy/extradoc/talk/dyla2007/talk.tex	(original)
+++ pypy/extradoc/talk/dyla2007/talk.tex	Wed Jul 25 21:49:34 2007
@@ -326,7 +326,7 @@
     many aspects of the final VM are orthogonal from the interpreter source:
     they are inserted during translation
   \item
-    ``monads'', with more ad-hoc control
+    translation aspect $\cong$ monads, with more ad-hoc control
   \end{itemize}
   \pause
   \begin{block}{
@@ -338,33 +338,84 @@
       Threading models (e.g.\ coroutines with CPS...)
     \item
       non-trivial translation aspect: auto-generating a dynamic compiler from
-      the interpreter % XXX maybe we really want to write more about this
+      the interpreter
     \end{itemize}
   \end{block}
 \end{frame}
 
 \begin{frame}
   \frametitle{Good Points of the Approach}
+  {\bf Simplicity:}
+
   \begin{itemize}
   \item
     dynamic languages can be implemented in a high level language
   \item
-    doing this separates high-level from low-level concerns
+    separation of concerns from low-level details
+  \item
+    a potential single-source-fits-all interpreter --
+    less duplication of efforts
+  \item
+    runs everywhere with the same semantics --
+    no outdated implementations, no ties to any standard platform
+  \end{itemize}
+  \pause
+  \begin{block}{PyPy}
+     arguably the most readable Python implementation so far
+  \end{block}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Good Points of the Approach}
+  {\bf Flexibility} at all levels:
+
+  \begin{itemize}
+  \item
+    when writing the interpreter (high-level languages rule!)
   \item
-    generating various VMs from a single source interpreter, which is easy to
-    write
+    when adapting the translation toolchain as necessary
   \item
-    lots of flexibility at all levels:
+    to break abstraction barriers when necessary
+  \end{itemize}
+  \pause
+  \begin{block}{
+    Example}
     \begin{itemize}
     \item
-      when writing the interpreter
+      boxed integer objects, represented as tagged pointers
     \item
-      also possible to adapt the translation toolchain if necessary
-    \item
-      this allows breaking of abstraction barriers, when necessary (e.g. tagged
-      integers)
+      manual system-level RPython code
     \end{itemize}
+  \end{block}
+\end{frame}
+
+\begin{frame}
+  \frametitle{Good Points of the Approach}
+  {\bf Performance:}
+
+  \begin{itemize}
+  \item
+    ``reasonable'' performance
+  \item
+    can generate a dynamic compiler from the interpreter
+    (work in progress, 60x faster on very simple Python code)
   \end{itemize}
+  \pause
+  \begin{block}{
+    JIT compiler generator}
+    \begin{itemize}
+    \item
+      almost orthogonal from the interpreter source - applicable to many
+      languages, follows language evolution ``for free''
+    \item
+      based on Partial Evaluation
+    \item
+      benefits from a high-level interpreter and a tweakable translation
+      toolchain
+    \item
+      generating a dynamic compiler is easier than generating a static one!
+    \end{itemize}
+  \end{block}
 \end{frame}
 
 \begin{frame}
@@ -374,12 +425,13 @@
     writing the translation toolchain in the first place takes lots of effort
     (but it can be reused)
   \item
-    writing a good GC is still necessary. but: can we maybe reuse existing good
-    GCs (e.g. from the Jikes RVM)?
+    writing a good GC is still necessary. but: maybe we can reuse existing good
+    GCs (e.g.\ from the Jikes RVM)?
   \item
-    many abstraction layers
+    conceptually simple approach but many abstraction layers
   \item
-    dynamic compiler generation seems to work, but needs to be improved
+    dynamic compiler generation seems to work, but needs more efforts.
+    also: can we layer it on top of the JIT of a general purpose OO VM?
   \end{itemize}
 \end{frame}
 
@@ -391,13 +443,13 @@
   \item
     doing so has many benefits
   \item
-    VM's shouldn't be written by hand
+    VMs shouldn't be written by hand
   \item
     PyPy's concrete approach is not so important
   \item
     diversity is good
   \item
-    let's write more meta-programming tool-chains!
+    let's write more meta-programming toolchains!
   \end{itemize}
 \end{frame}
 



More information about the Pypy-commit mailing list