antocuni at codespeak.net antocuni at codespeak.net
Sat Dec 20 19:08:31 CET 2008

Author: antocuni
Date: Sat Dec 20 19:08:30 2008
New Revision: 60653

Modified:
Log:
try to write the related work section in proper english

==============================================================================
+++ pypy/extradoc/talk/ecoop2009/conclusion.tex	Sat Dec 20 19:08:30 2008
@@ -1,29 +1,29 @@
-\section{Related Works}
+\section{Related Work}
+
Promotion is a concept that we have already explored in other contexts. Psyco is
a run-time specialiser for Python that uses promotion (called unlift'' in
\cite{DBLP:conf/pepm/Rigo04}). However, Psyco is a manually written JIT, is
not applicable to other languages and cannot be retargetted.

+Moreover, the idea of promotion of is a generalization of \emph{Polymorphic
+  Inline Caches} \cite{hoelzle_optimizing_1991}, as well as the idea of using
+runtime feedback to produce more efficient code
+\cite{hoelzle_type_feedback_1994}.
+
+PyPy-style JIT compilers are hard to write manually, thus we chose to write a
+JIT generator.  Tracing JIT compilers \cite{gal_hotpathvm_2006} also gives
+good results but are much easier to write, making the need for an automatic
+generator less urgent.  However so far tracing JITs have less general
+allocation removal techniques, which makes them get less speedup in a dynamic
+language with boxing.  Another difference is that tracing JITs concentrate on
+loops, which makes them produce a lot less code.  This issue will be addressed
+by future research in PyPy.

- - reference standard jit stuff, PICs \cite{hoelzle_optimizing_1991}, this one: http://www.cs.ucsb.edu/~urs/oocsb/self/papers/type-feedback.html
-
- - compare against tracing JITs \cite{gal_hotpathvm_2006}. tracing jits make
- implementing jits much easier, maybe less need for JIT generation. also, they
- concentrate on loops, which makes them produce a lot less code (which will need
- to be addressed in our work as well).
-
- so far tracing JITs have less general allocation removal techniques, which
- makes them get less speedup in a dynamic language with boxing
-
-in my master I had this snippet:
-
-"""
-The generated code typically contains guards; in recent research
+The code generated by tracing JITs code typically contains guards; in recent research
\cite{gal_incremental_2006} on Java, these guards' behaviour is extended to be
similar to our promotion.  This has been used twice to implement a dynamic
language (JavaScript), by Tamarin\footnote{{\tt
http://www.mozilla.org/projects/tamarin/}} and in \cite{chang_efficient_2007}.
-"""

There has been an enormous amount of work on partial evaluation for compiler
generation. A good introduction is given in \cite{Jones:peval}. However, most of
@@ -49,9 +49,10 @@
% XXX there are no performance figures, we have no clue how much of this is
% implemented. not sure how to write this

- - apart from that we maybe should talk about escape analysis
- \cite{Blanchet99escapeanalysis}, \cite{Choi99escapeanalysis}
- our algorithm is totally simple-minded in comparison, but is useful in practise
+Our algorithm to avoid allocation of unneeded intermediate objects fits into
+the research area of escape analysis: in comparison to advanced techniques
+\cite{Blanchet99escapeanalysis}, \cite{Choi99escapeanalysis} our algorithm is
+totally simple-minded, but it is still useful in practise.

\section{Conclusion}

==============================================================================
+++ pypy/extradoc/talk/ecoop2009/main.bbl	Sat Dec 20 19:08:30 2008
@@ -83,6 +83,13 @@
\newblock In {\em Proceedings of the European Conference on Object-Oriented
Programming}, pages 21--38. Springer-Verlag, 1991.

+\bibitem{hoelzle_type_feedback_1994}
+Urs H\"{o}lzle and David Ungar.
+\newblock Optimizing dynamically-dispatched calls with run-time type feedback.
+\newblock In {\em PLDI '94: Proceedings of the ACM SIGPLAN 1994 conference on
+  Programming language design and implementation}, pages 326--336, New York,
+  NY, USA, 1994. ACM.
+
\bibitem{Jones:peval}
Neil~D. Jones, Carsten~K. Gomard, and Peter Sestoft.
\newblock {\em Partial Evaluation and Automatic Program Generation}.

==============================================================================
+++ pypy/extradoc/talk/ecoop2009/main.bib	Sat Dec 20 19:08:30 2008
@@ -206,4 +206,17 @@
compare these two approaches in detail.},
pages = {--},
year = {2007},
-}
\ No newline at end of file
+}
+
+ at inproceedings{hoelzle_type_feedback_1994,
+ author = {Urs H\"{o}lzle and David Ungar},
+ title = {Optimizing dynamically-dispatched calls with run-time type feedback},
+ booktitle = {PLDI '94: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation},
+ year = {1994},
+ isbn = {0-89791-662-X},
+ pages = {326--336},
+ location = {Orlando, Florida, United States},
+ doi = {http://doi.acm.org/10.1145/178243.178478},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ }