[pypy-svn] r42657 - pypy/extradoc/talk/badhonnef2007
cfbolz at codespeak.net
cfbolz at codespeak.net
Fri May 4 08:52:13 CEST 2007
Author: cfbolz
Date: Fri May 4 08:52:10 2007
New Revision: 42657
Modified:
pypy/extradoc/talk/badhonnef2007/talk.pdf
pypy/extradoc/talk/badhonnef2007/talk.tex
Log:
some changes
Modified: pypy/extradoc/talk/badhonnef2007/talk.pdf
==============================================================================
Binary files. No diff available.
Modified: pypy/extradoc/talk/badhonnef2007/talk.tex
==============================================================================
--- pypy/extradoc/talk/badhonnef2007/talk.tex (original)
+++ pypy/extradoc/talk/badhonnef2007/talk.tex Fri May 4 08:52:10 2007
@@ -11,7 +11,7 @@
\usetheme{Warsaw}
% or ...
- \setbeamercovered{transparent}
+ %\setbeamercovered{transparent}
% or whatever (possibly just delete it)
}
@@ -78,11 +78,11 @@
\titlepage
\end{frame}
-\begin{frame}
- \frametitle{Outline}
- \tableofcontents
+%\begin{frame}
+% \frametitle{Outline}
+% \tableofcontents
% You might wish to add the option [pausesections]
-\end{frame}
+%\end{frame}
% Structuring a talk is a difficult task and the following structure
@@ -109,14 +109,18 @@
\begin{itemize}
\item
- Pyrolog is a Prolog interpreter written in RPython
+ Pyrolog is a Prolog interpreter written in Python
+ \item
+ want to compile it to get interesting performance
+ \item
+ translation tool-chain part of the PyPy project
+ \item
+ Python itself is too dynamic to be translatable to other languages, need a subset
\item
RPython (``Restricted Python'') is a subset of Python translatable to other
languages
\item
RPython is designed to be significantly faster than regular Python
- \item
- translation tool-chain part of the PyPy project
\end{itemize}
\end{frame}
@@ -128,9 +132,7 @@
\item
started as a Python VM implementation in Python
\item
- Python itself is too dynamic to be translatable to other languages, need a subset
- \item
- includes a translation tool-chain for RPython
+ most important part: translation tool-chain for RPython
\item
is becoming a general environment for writing interpreters (JavaScript, Prolog started)
\item
@@ -159,7 +161,7 @@
\begin{frame}
- \frametitle{The Python case (i)}
+ \frametitle{The Python case}
CPython (the reference implementation) is a straightforward, portable VM.
\begin{itemize}
@@ -167,15 +169,15 @@
Pervasive decisions: reference counting, global lock \dots
\item
No dynamic compilation
-% \pause
\end{itemize}
+ \pause
\begin{block}{
Extensions:}
\begin{itemize}
\item
- \alert{Stackless} (unlimited recursion, coroutines, serializable continuations)
+ \alert{Stackless} (unlimited recursion, coroutines, green threads)
\item
- \alert{Psyco} (run-time specializer)
+ \alert{Psyco} (run-time specializing compiler)
\item
\alert{Jython}, \alert{IronPython}
\end{itemize}
@@ -183,28 +185,6 @@
\end{frame}
-\begin{frame}
- \frametitle{The Python case (ii)}
- \begin{block}{Problems of Extensions:}
- \begin{itemize}
- \item hard to maintain: need to keep track of CPython
- \item Psyco very hard to port to other hardware architectures
- \item tedious to write them, Python semantics need to be re-implemented
- \end{itemize}
- \end{block}
- \begin{itemize}
- \item
- The community wants Python to run everywhere:
- Jython (Java), IronPython (.NET).
- Lots of effort and duplication.
-
- \item
- At various points various incompatibilities between
- the implementations
-
- \end{itemize}
-\end{frame}
-
\begin{frame}
\frametitle{The Prolog case (i)}
@@ -232,16 +212,15 @@
changing the language to experiment is hard
\item
often extensions to core Prolog, incompatible between each other
- \item
- fixed implementation decisions (GC, how to generate code, etc.)
\end{itemize}
\end{block}
+ \pause
\begin{block}{implementations on CLR and JVM}
\begin{itemize}
\item
interfacing with libraries of the platform mostly easy
\item
- no extensions to core Prolog (like tabling, coroutines)
+ no extensions to core Prolog (like tabling, coroutines, constraints)
\item
slow, compared to good C implementations
\end{itemize}
@@ -279,16 +258,19 @@
lower-level targets
\begin{itemize}
\item C-like
- \item Java
\item .NET
+ \item Java
\end{itemize}
+ \pause
\item
Insert low-level aspects into the code as required by
the target
\begin{itemize}
\item object layout
\item memory management
- \end{itemize} \item
+ \end{itemize}
+ \pause
+ \item
Optionally insert new pervasive features not expressed
in the source
\begin{itemize}
@@ -302,7 +284,7 @@
\begin{frame}
\frametitle{Translation Aspects (i)}
- Features not present in the source can be added during translation.
+ Features not present in the source can be added during translation:
\begin{itemize}
\item
\alert{memory management}: use different GC strategies (Boehm collector, custom mark-n-sweep)
@@ -340,15 +322,11 @@
\item
uses continuation passing style inspired by BinProlog
\item
- Prolog calls mapped to RPython calls
- \item
implements large parts of the ISO standard (some builtins missing)
\end{itemize}
\end{frame}
-
-
\begin{frame}
\frametitle{Builtins}
\begin{itemize}
@@ -411,7 +389,6 @@
\begin{frame}
\frametitle{Summary}
- % Keep the summary *very short*.
\begin{itemize}
\item
Very simple Prolog interpreter in RPython can compete with interpreters on the JVM, CLR
@@ -436,6 +413,16 @@
\end{frame}
\begin{frame}
+ \frametitle{Questions?}
+ \begin{center}
+ \includegraphics[scale=0.5]{image/py-web.png}
+
+ \texttt{http://codespeak.net/pypy}
+ \end{center}
+\end{frame}
+
+
+\begin{frame}
\frametitle{Backup slides}
\dots
\end{frame}
More information about the pypy-svn
mailing list