Author: David Schneider <david.schnei...@picle.org>
Branch: extradoc
Changeset: r4782:bdf35c43ec6c
Date: 2012-09-07 11:42 +0200
http://bitbucket.org/pypy/extradoc/changeset/bdf35c43ec6c/

Log:    tweak bibliography

diff --git a/talk/vmil2012/paper.bib b/talk/vmil2012/paper.bib
--- a/talk/vmil2012/paper.bib
+++ b/talk/vmil2012/paper.bib
@@ -2,9 +2,8 @@
         author = {Gal, Andread and Probst, Christian W. and Franz, Michael},
         title = {{HotpathVM: An Effective JIT Compiler for 
Resource-constrained Devices}},
         location = {Ottawa, {Ontario}, {Canada}},
-        series = {{VEE} '06},
+        series = {{VEE} 2006},
         isbn = {1-59593-332-6}, 
-        booktitle = {Proceedings of the 2nd International Conference on 
Virtual Execution Environments}, 
         publisher = {{ACM}},
         year = {2006},
         pages = {144-153}
@@ -12,13 +11,13 @@
 @inproceedings{Gal:2009ux,
         author = {Gal, Andreas and Franz, Michael and Eich, B and Shaver, M 
and Anderson, David},
         title = {{Trace-based Just-in-Time Type Specialization for Dynamic 
Languages}},
-        booktitle = {PLDI '09: Proceedings of the ACM SIGPLAN 2009 conference 
on Programming language design and implementation},
+        booktitle = {PLDI 2009},
         url = {http://portal.acm.org/citation.cfm?id=1542528},
 }
 @inproceedings{Bala:2000wv,
         author = {Bala, Vasanth and Duesterwald, Evelyn and Banerjia, Sanjeev},
         title = {{Dynamo: A Transparent Dynamic Optimization System}},
-        booktitle = {PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference 
on Programming language design and implementation},
+        booktitle = {PLDI 2000},
 }
 @misc{Pall:2009,
     author = {Pall, Mike},
diff --git a/talk/vmil2012/zotero.bib b/talk/vmil2012/zotero.bib
--- a/talk/vmil2012/zotero.bib
+++ b/talk/vmil2012/zotero.bib
@@ -19,7 +19,7 @@
        url = 
{http://portal.acm.org/citation.cfm?id=1735997.1736005&coll=&dl=GUIDE&type=series&idx=SERIES11259&part=series&WantType=Proceedings&title=VEE&CFID=82768812&CFTOKEN=13856884},
        doi = {10.1145/1735997.1736005},
        abstract = {Intense research on virtual machines has highlighted the 
need for flexible software architectures that allow quick evaluation of new 
design and implementation techniques. The interface between the compiler and 
runtime system is a principal factor in the flexibility of both components and 
is critical to enabling rapid pursuit of new optimizations and features. 
Although many virtual machines have demonstrated modularity for many 
components, significant dependencies often remain between the compiler and the 
runtime system components such as the object model and memory management 
system. This paper addresses this challenge with a carefully designed strict 
compiler-runtime interface and the {XIR} language. Instead of the compiler 
backend lowering object operations to machine operations using hard-wired 
runtime-specific logic, {XIR} allows the runtime system to implement this 
logic, simultaneously simplifying and separating the backend from 
runtime-system details. In this pap
 er we describe the design and implementation of this compiler-runtime 
interface and the {XIR} language in the {C1X} dynamic compiler, a port of the 
{HotSpotTM} Client compiler. Our results show a significant reduction in 
backend complexity with {XIR} and an overall reduction in the compiler-runtime 
interface complexity while still generating comparable quality code with only 
minor impact on compilation time.},
-       booktitle = {Proceedings of the 6th {ACM} {SIGPLAN/SIGOPS} 
international conference on Virtual execution environments},
+       booktitle = {VEE 2010},
        publisher = {{ACM}},
        author = {Titzer, Ben L. and W&#252;rthinger, Thomas and Simon, Doug 
and Cintra, Marcelo},
        year = {2010},
@@ -77,7 +77,7 @@
        url = {http://portal.acm.org/citation.cfm?id=1806598},
        doi = {10.1145/1806596.1806598},
        abstract = {The {JavaScript} programming language is widely used for 
web programming and, increasingly, for general purpose computing. As such, 
improving the correctness, security and performance of {JavaScript} 
applications has been the driving force for research in type systems, static 
analysis and compiler techniques for this language. Many of these techniques 
aim to reign in some of the most dynamic features of the language, yet little 
seems to be known about how programmers actually utilize the language or these 
features. In this paper we perform an empirical study of the dynamic behavior 
of a corpus of widely-used {JavaScript} programs, and analyze how and why the 
dynamic features are used. We report on the degree of dynamism that is 
exhibited by these {JavaScript} programs and compare that with assumptions 
commonly made in the literature and accepted industry benchmark suites.},
-       booktitle = {Proceedings of the 2010 {ACM} {SIGPLAN} conference on 
Programming language design and implementation},
+       booktitle = {PLDI 2010},
        publisher = {{ACM}},
        author = {Richards, Gregor and Lebresne, Sylvain and Burg, Brian and 
Vitek, Jan},
        year = {2010},
@@ -86,18 +86,15 @@
 },
 
 @inproceedings{kotzmann_escape_2005,
-       address = {New York, {NY}, {USA}},
        series = {{VEE} '05},
        title = {Escape analysis in the context of dynamic compilation and 
deoptimization},
        isbn = {1-59593-047-7},
        location = {Chicago, {IL}, {USA}},
        doi = {10.1145/1064979.1064996},
        abstract = {In object-oriented programming languages, an object is said 
to escape the method or thread in which it was created if it can also be 
accessed by other methods or threads. Knowing which objects do not escape 
allows a compiler to perform aggressive {optimizations.This} paper presents a 
new intraprocedural and interprocedural algorithm for escape analysis in the 
context of dynamic compilation where the compiler has to cope with dynamic 
class loading and deoptimization. It was implemented for Sun Microsystems' Java 
{HotSpot&#8482;} client compiler and operates on an intermediate representation 
in {SSA} form. We introduce equi-escape sets for the efficient propagation of 
escape information between related objects. The analysis is used for scalar 
replacement of fields and synchronization removal, as well as for stack 
allocation of objects and fixed-sized arrays. The results of the 
interprocedural analysis support the compiler in inlining decisions and allow 
actual parameters 
 to be allocated on the caller {stack.Under} certain circumstances, the Java 
{HotSpot&#8482;} {VM} is forced to stop executing a method's machine code and 
transfer control to the interpreter. This is called deoptimization. Since the 
interpreter does not know about the scalar replacement and synchronization 
removal performed by the compiler, the deoptimization framework was extended to 
reallocate and relock objects on demand.},
-       booktitle = {Proceedings of the 1st {ACM/USENIX} international 
conference on Virtual execution environments},
        publisher = {{ACM}},
        author = {Kotzmann, Thomas and M&#246;ssenb&#246;ck, Hanspeter},
        year = {2005},
-       note = {{ACM} {ID:} 1064996},
        keywords = {algorithms, allocation/deallocation strategies, 
deoptimization},
        pages = {111&#8211;120}
 },
@@ -113,14 +110,12 @@
 },
 
 @inproceedings{bolz_runtime_2011,
-       address = {New York, {NY}, {USA}},
        series = {{ICOOOLPS} '11},
        title = {Runtime feedback in a meta-tracing {JIT} for efficient dynamic 
languages},
        isbn = {978-1-4503-0894-6},
        url = {http://doi.acm.org/10.1145/2069172.2069181},
        doi = {10.1145/2069172.2069181},
        abstract = {Meta-tracing {JIT} compilers can be applied to a variety of 
different languages without explicitly encoding language semantics into the 
compiler. So far, they lacked a way to give the language implementor control 
over runtime feedback. This restricted their performance. In this paper we 
describe the mechanisms in {PyPy&#8217;s} meta-tracing {JIT} that can be used 
to control runtime feedback in language-specific ways. These mechanisms are 
flexible enough to express classical {VM} techniques such as maps and runtime 
type feedback.},
-       booktitle = {Proceedings of the 6th Workshop on Implementation, 
Compilation, Optimization of Object-Oriented Languages, Programs and Systems},
        publisher = {{ACM}},
        author = {Bolz, Carl Friedrich and Cuni, Antonio and Fija&#322;kowski, 
Maciej and Leuschel, Michael and Pedroni, Samuele and Rigo, Armin},
        year = {2011},
@@ -129,7 +124,6 @@
 },
 
 @inproceedings{callau_how_2011,
-       address = {New York, {NY}, {USA}},
        series = {{MSR} '11},
        title = {How developers use the dynamic features of programming 
languages: the case of {Smalltalk}},
        isbn = {978-1-4503-0574-7},
@@ -162,14 +156,12 @@
 },
 
 @inproceedings{holzle_debugging_1992,
-       address = {New York, {NY}, {USA}},
        series = {{PLDI} '92},
        title = {Debugging optimized code with dynamic deoptimization},
        isbn = {0-89791-475-9},
        url = {http://doi.acm.org/10.1145/143095.143114},
        doi = {10.1145/143095.143114},
        abstract = {{SELF's} debugging system provides complete source-level 
debugging (expected behavior) with globally optimized code. It shields the 
debugger from optimizations performed by the compiler by dynamically 
deoptimizing code on demand. Deoptimization only affects the procedure 
activations that are actively being debugged; all other code runs at full 
speed. Deoptimization requires the compiler to supply debugging information at 
discrete interrupt points; the compiler can still perform extensive 
optimizations between interrupt points without affecting debuggability. At the 
same time, the inability to interrupt between interrupt points is invisible to 
the user. Our debugging system also handles programming changes during 
debugging. Again, the system provides expected behavior: it is possible to 
change a running program and immediately observe the effects of the change. 
Dynamic deoptimization transforms old compiled code (which may contain inlined 
copies of the old version of the
  changed procedure) into new versions reflecting the current source-level 
state. To the best of our knowledge, {SELF} is the first practical system 
providing full expected behavior with globally optimized code.},
-       booktitle = {Proceedings of the {ACM} {SIGPLAN} 1992 conference on 
Programming language design and implementation},
        publisher = {{ACM}},
        author = {H&#246;lzle, Urs and Chambers, Craig and Ungar, David},
        year = {1992},
@@ -185,7 +177,6 @@
        doi = {10.1109/CGO.2007.34},
        abstract = {The {JavaTM} programming language does not allow the 
programmer to influence memory management. An object is usually allocated on 
the heap and deallocated by the garbage collector when it is not referenced any 
longer. Under certain conditions, the virtual machine can allocate objects on 
the stack or eliminate their allocation via scalar replacement. However, even 
if the dynamic compiler guarantees that the conditions are fulfilled, the 
optimizations require support by the run-time environment. We implemented a new 
escape analysis algorithm for Sun Microsystems' Java {HotSpotTM} {VM.} The 
results are used to replace objects with scalar variables, to allocate objects 
on the stack, and to remove synchronization. This paper deals with the 
representation of optimized objects in the debugging information and with 
reallocation and garbage collection support for a safe execution of optimized 
methods. Assignments to fields of parameters that can refer to both stack and 
heap obje
 cts are associated with an extended write barrier which skips card marking for 
stack objects. The traversal of objects during garbage collection uses a 
wrapper that abstracts from stack objects and presents their pointer fields as 
root pointers to the garbage collector. When a previously compiled and 
currently executing method must be continued in the interpreter because dynamic 
class loading invalidates the machine code, execution is suspended and compiler 
optimizations are undone. Scalar-replaced objects are reallocated on the heap 
lazily when control returns to the invalidated method, whereas stack-allocated 
objects must be reallocated immediately before program execution resumes. After 
reallocation, objects for which synchronization was removed are relocked.},
        urldate = {2012-09-06},
-       booktitle = {Proceedings of the International Symposium on Code 
Generation and Optimization},
        publisher = {{IEEE} Computer Society},
        author = {Kotzmann, Thomas and Mossenbock, Hanspeter},
        year = {2007},
@@ -227,7 +218,6 @@
        number = {4},
        journal = {{ACM} Transactions on Programming Languages and Systems},
        author = {Cytron, Ron and Ferrante, Jeanne and Rosen, Barry K. and 
Wegman, Mark N. and Zadeck, F. Kenneth},
-       month = oct,
        year = {1991},
        pages = {451&#8211;490}
 },
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to