Author: Alex Gaynor <alex.gay...@gmail.com> Branch: extradoc Changeset: r3851:8d612fff616c Date: 2011-07-30 15:29 -0700 http://bitbucket.org/pypy/extradoc/changeset/8d612fff616c/
Log: merged upstream. diff --git a/blog/draft/success_stories.rst b/blog/draft/success_stories.rst new file mode 100644 --- /dev/null +++ b/blog/draft/success_stories.rst @@ -0,0 +1,53 @@ +PyPy success stories +==================== + +Regular readers of this blog know the great progresses that PyPy achieved in +the past few years in terms of speed_, stability, and adoption. + +All of this has been made possibile thanks to the help of the Open Source +community, but also thanks to the German and Swedish governments, which +funded us through the `Eurostars programme`_. This let some of us +core developers work full time on PyPy for the past two years. + +Our participation to Eurostars is ending in August, and at the moment we are +exploring several different ways of funding PyPy through other sources. We +will write more about that in the next days. During this process, it is +important to show that PyPy has stopped being "just" a research project, but +that it is also a robust and solid solution for industry. + +We would like to write a list of "PyPy success stories", and thus we ask +for your help: + + - if you are already using PyPy in production; + + - if you are actively testing PyPy on your codebase; + + - or even if you are simply considering switching to PyPy and experimenting with it; + +in those cases, please let us know about it. We would like to know which +company you work for, what are you using PyPy for, and why you decided to +switch to it. Ideally, we would like the permission to publish this +information and share it with the public. + +If for any reason you cannot or do not want to make this public, we are still +interested in hearing about you. In that case, don't hesitate to contact us +privately - we will not publish your data. But we have potential sponsors +who are intersted in supporting PyPy, and showing them a list of companies +that are using PyPy (+ 3 anonymous ones in the financial services sector) is +almost as good as showing them a list with all the company names filled in. +What they are looking for is evidence that PyPy is not a research toy, but +of actual use to industry. + +Please take the time to respond either as a comment to this blog post +directly, or byt sending email to the `pypy-dev`_ mailing list or by +writing a private email to me (`Antonio Cuni`_) or `Laura Creighton`_. + +We hope to hear about lots of PyPy success stories. Remind that the more of +them we collect, the easier for us to find sponsors to fund further +development of PyPy! And, of course, if any of you are interested in +_becoming_ one of these sponsors, we would like to hear about that, as well. + +Thanks very much (in advance) for all your help, +Laura and Anto (for the entire PyPy team) + +_`Eurostars programme` : http://www.eurostars-eureka.eu/ diff --git a/planning/jit.txt b/planning/jit.txt --- a/planning/jit.txt +++ b/planning/jit.txt @@ -164,3 +164,31 @@ at the end of the preamble unnessesary. If that policy wont hold in the long run it should be straight forward to augument the VirtualState objects with information about storesinking. + + +Random ideas from hakanardo +---------------------------- + + - Let bridges inherit more information form their parent traces to allow + them to be better optimized. One idea is to augument the resumedata with + the index within the trace inputargs for each failarg that comes directly + from the inputargs. That way a lot of info can be deduced from the short + preamble. Another idea is to actually store a lot of status information on + the guards as they are generated, but then forget (and free) that info as + the guards grow older (in terms of the number of generated guards or + something). + + - Generalisation strategies. Once jit-short_from_state is merged we'll have + a nice platform to experiment with generalizing the loops created. Today + unrolling makes the jit specialize as much as possible which is one reason + it's hard for bridges to reuse the created peeled loops. There is also a + tradeoff between forcing things to be able to reuse an existing loop and + retracing it to form a new specialized version. + + - Better pointer aliasing analyzer that will emit guards that pointers are + different when needed. + + - Make heap optimizer aware of setitems produced by forcing virtuals. + + - Movinging loop-invariant setitems out of the loops entierly. + diff --git a/talk/icooolps2011/talk/figures/map.svg b/talk/icooolps2011/talk/figures/map.svg --- a/talk/icooolps2011/talk/figures/map.svg +++ b/talk/icooolps2011/talk/figures/map.svg @@ -49,7 +49,40 @@ id="path8552" d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none" - transform="scale(0.8) translate(12.5,0)" /></marker></defs><sodipodi:namedview + transform="scale(0.8) translate(12.5,0)" /></marker><marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0" + refX="0" + id="Arrow2Lstart-9" + style="overflow:visible"><path + inkscape:connector-curvature="0" + id="path8570-9" + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" /></marker><marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0" + refX="0" + id="marker3072" + style="overflow:visible"><path + inkscape:connector-curvature="0" + id="path3074" + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" /></marker><marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0" + refX="0" + id="marker3076" + style="overflow:visible"><path + inkscape:connector-curvature="0" + id="path3078" + style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + transform="matrix(1.1,0,0,1.1,1.1,0)" /></marker></defs><sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" @@ -58,17 +91,17 @@ guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:window-width="1680" - inkscape:window-height="1026" + inkscape:window-width="1280" + inkscape:window-height="776" id="namedview7589" showgrid="false" inkscape:zoom="1.3953574" - inkscape:cx="271.26815" + inkscape:cx="180.9687" inkscape:cy="130.03147" inkscape:window-x="0" inkscape:window-y="24" inkscape:window-maximized="1" - inkscape:current-layer="g7595" /><g + inkscape:current-layer="layer1" /><g id="g7595" inkscape:groupmode="layer" inkscape:label="map" @@ -76,10 +109,11 @@ style="display:inline"><path inkscape:connector-curvature="0" id="path7599" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" - d="m 137,5.5 54,0 0,27 -54,0 0,-27 z" /><g + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;display:inline" + d="m 137.00001,5.5000016 54,0 0,27.0000004 -54,0 0,-27.0000004 z" /><g + style="display:inline" id="g7601" - transform="translate(-1.6,0)"><text + transform="translate(-1.5999963,1.55e-6)"><text id="text7603" transform="matrix(1,0,0,-1,150,15.9)"><tspan id="tspan7605" @@ -90,8 +124,10 @@ </g><path inkscape:connector-curvature="0" id="path7607" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" - d="m 41,89.5 94,0 0,27 -94,0 0,-27 z" /><g + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;display:inline" + d="m 41.000003,89.500002 94.000007,0 0,26.999998 -94.000007,0 0,-26.999998 z" /><g + transform="translate(3.6875e-6,1.55e-6)" + style="display:inline" id="g7609"><text id="text7611" transform="matrix(1,0,0,-1,49,99.9)"><tspan @@ -103,8 +139,10 @@ </g><path inkscape:connector-curvature="0" id="path7615" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" - d="m 85,89.5 0,27" /><g + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;display:inline" + d="m 85.000004,89.500002 0,26.999998" /><g + transform="translate(3.6875e-6,1.55e-6)" + style="display:inline" id="g7617"><text id="text7619" transform="matrix(1,0,0,-1,93,99.9)"><tspan @@ -116,11 +154,12 @@ </g><path inkscape:connector-curvature="0" id="path7623" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart)" - d="M 61.666923,88.403288 C 61.377172,34.917749 138.99637,51.116903 147.27,32.7199" + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);display:inline" + d="m 61.666926,88.403292 c -0.28975,-53.48554 77.329454,-37.28639 85.603084,-55.68339" sodipodi:nodetypes="cc" /><g + style="display:inline" id="g7629" - transform="translate(-46.4,0)"><text + transform="translate(-46.399996,1.55e-6)"><text id="text7631" transform="matrix(1,0,0,-1,128,57.9)" sodipodi:linespacing="125%" @@ -132,9 +171,76 @@ style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">add "a"</tspan></text> </g><path inkscape:connector-curvature="0" + id="path7659" + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);display:inline" + d="m 88.000004,172.5777 c 0,-15.04 0,-43.4477 0,-55.9677" + sodipodi:nodetypes="cc" /><g + style="display:inline" + id="g7665" + transform="translate(-54.179668,-2.2933184)"><text + id="text7667" + transform="matrix(1,0,0,-1,88,141.9)"><tspan + id="tspan7669" + sodipodi:role="line" + y="0" + x="0" + style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">add "b"</tspan></text> +</g><path + inkscape:connector-curvature="0" + id="path7671" + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;display:inline" + d="m 152.50001,89.500002 93,0 0,26.999998 -93,0 0,-26.999998 z" /><g + transform="translate(3.6875e-6,1.55e-6)" + style="display:inline" + id="g7673"><text + id="text7675" + transform="matrix(1,0,0,-1,160.5,99.9)"><tspan + id="tspan7677" + sodipodi:role="line" + y="0" + x="0" + style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">map</tspan></text> +</g><path + inkscape:connector-curvature="0" + id="path7679" + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;display:inline" + d="m 196.50001,89.500002 0,26.999998" /><g + transform="translate(3.6875e-6,1.55e-6)" + style="display:inline" + id="g7681"><text + id="text7683" + transform="matrix(1,0,0,-1,204.5,99.9)"><tspan + id="tspan7685" + sodipodi:role="line" + y="0" + x="0" + style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">"c": 0</tspan></text> +</g><path + inkscape:connector-curvature="0" + id="path7687" + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart);display:inline" + d="m 175.60009,87.896522 c 0.55996,-17.18675 -0.61008,-42.52662 -5.93008,-55.28632" + sodipodi:nodetypes="cc" /><g + transform="translate(3.6875e-6,1.55e-6)" + style="display:inline" + id="g7693"><text + id="text7695" + transform="matrix(1,0,0,-1,185,57.9)"><tspan + id="tspan7697" + sodipodi:role="line" + y="0" + x="0" + style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">add "c"</tspan></text> +</g></g><g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="othermaps"><path + inkscape:connector-curvature="0" id="path7635" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" - d="m 16,173.5 144,0 0,27 -144,0 0,-27 z" /><g + style="fill:none;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;display:inline" + d="m 20,120.625 180,0 0,-33.75 -180,0 0,33.75 z" /><g + transform="matrix(1.25,0,0,-1.25,0,337.5)" + style="display:inline" id="g7637"><text id="text7639" transform="matrix(1,0,0,-1,24,183.9)"><tspan @@ -146,10 +252,11 @@ </g><path inkscape:connector-curvature="0" id="path7643" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" - d="m 60,173.5 0,27" /><g + style="fill:none;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;display:inline" + d="m 75,120.625 0,-33.75" /><g + style="display:inline" id="g7645" - transform="translate(-2.4324331,0)"><text + transform="matrix(1.25,0,0,-1.25,-3.040541,337.5)"><text id="text7647" transform="matrix(1,0,0,-1,68,183.9)"><tspan id="tspan7649" @@ -160,10 +267,11 @@ </g><path inkscape:connector-curvature="0" id="path7651" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" - d="m 110,173.5 0,27" /><g + style="fill:none;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;display:inline" + d="m 137.5,120.625 0,-33.75" /><g + style="display:inline" id="g7653" - transform="translate(-1.8243247,0)"><text + transform="matrix(1.25,0,0,-1.25,-2.280406,337.5)"><text id="text7655" transform="matrix(1,0,0,-1,118,183.9)"><tspan id="tspan7657" @@ -171,61 +279,6 @@ style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans" y="0" x="0">"b": 1</tspan></text> -</g><path - inkscape:connector-curvature="0" - id="path7659" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart)" - d="m 88,172.5777 c 0,-15.04 0,-43.4477 0,-55.9677" - sodipodi:nodetypes="cc" /><g - id="g7665" - transform="translate(-54.179668,-2.2933193)"><text - id="text7667" - transform="matrix(1,0,0,-1,88,141.9)"><tspan - id="tspan7669" - sodipodi:role="line" - y="0" - x="0" - style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">add "b"</tspan></text> -</g><path - inkscape:connector-curvature="0" - id="path7671" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" - d="m 152.5,89.5 93,0 0,27 -93,0 0,-27 z" /><g - id="g7673"><text - id="text7675" - transform="matrix(1,0,0,-1,160.5,99.9)"><tspan - id="tspan7677" - sodipodi:role="line" - y="0" - x="0" - style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">map</tspan></text> -</g><path - inkscape:connector-curvature="0" - id="path7679" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none" - d="m 196.5,89.5 0,27" /><g - id="g7681"><text - id="text7683" - transform="matrix(1,0,0,-1,204.5,99.9)"><tspan - id="tspan7685" - sodipodi:role="line" - y="0" - x="0" - style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">"c": 0</tspan></text> -</g><path - inkscape:connector-curvature="0" - id="path7687" - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:1;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#Arrow2Lstart)" - d="M 175.60008,87.896518 C 176.16004,70.709763 174.99,45.3699 169.67,32.6102" - sodipodi:nodetypes="cc" /><g - id="g7693"><text - id="text7695" - transform="matrix(1,0,0,-1,185,57.9)"><tspan - id="tspan7697" - sodipodi:role="line" - y="0" - x="0" - style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">add "c"</tspan></text> </g></g><g inkscape:groupmode="layer" id="layer7" @@ -237,15 +290,16 @@ d="m 4.375,38.125 216.25,0 0,-33.75 -216.25,0 0,33.75 z" /><g transform="matrix(1.25,0,0,-1.25,0,337.5)" id="g7701"><text - id="text7703" - transform="scale(1,-1)" - x="8.2999992" - y="-249.89999"><tspan - id="tspan7705" - sodipodi:role="line" - y="-249.89999" - x="8.2999992" - style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">instance</tspan></text> + id="text7703" + transform="scale(1,-1)" + x="8.2999992" + y="-249.89999"><tspan + id="tspan7705" + sodipodi:role="line" + y="-249.89999" + x="8.2999992" + style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">instance</tspan></text> + </g><path inkscape:connector-curvature="0" id="path7707" @@ -253,13 +307,14 @@ d="m 88.125,38.125 0,-33.75" /><g transform="matrix(1.25,0,0,-1.25,0,337.5)" id="g7709"><text - id="text7711" - transform="matrix(1,0,0,-1,78.5,249.9)"><tspan - id="tspan7713" - sodipodi:role="line" - y="0" - x="0" - style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">map</tspan></text> + id="text7711" + transform="matrix(1,0,0,-1,78.5,249.9)"><tspan + id="tspan7713" + sodipodi:role="line" + y="0" + x="0" + style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">map</tspan></text> + </g><path inkscape:connector-curvature="0" id="path7715" @@ -267,13 +322,14 @@ d="m 143.125,38.125 0,-33.75" /><g transform="matrix(1.25,0,0,-1.25,-4,337.5)" id="g7717"><text - id="text7719" - transform="matrix(1,0,0,-1,122.5,249.9)"><tspan - id="tspan7721" - sodipodi:role="line" - y="0" - x="0" - style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">storage</tspan></text> + id="text7719" + transform="matrix(1,0,0,-1,122.5,249.9)"><tspan + id="tspan7721" + sodipodi:role="line" + y="0" + x="0" + style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">storage</tspan></text> + </g><path inkscape:connector-curvature="0" id="path7723" @@ -291,13 +347,14 @@ d="m 221.875,120.625 118.75,0 0,-33.75 -118.75,0 0,33.75 z" /><g transform="matrix(1.25,0,0,-1.25,-2,337.5)" id="g7731"><text - id="text7733" - transform="matrix(1,0,0,-1,185.5,183.9)"><tspan - id="tspan7735" - sodipodi:role="line" - y="0" - x="0" - style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">array</tspan></text> + id="text7733" + transform="matrix(1,0,0,-1,185.5,183.9)"><tspan + id="tspan7735" + sodipodi:role="line" + y="0" + x="0" + style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">array</tspan></text> + </g><path inkscape:connector-curvature="0" id="path7737" @@ -305,12 +362,13 @@ d="m 280.625,120.625 0,-33.75" /><g transform="matrix(1.25,0,0,-1.25,0,337.5)" id="g7739"><text - id="text7741" - transform="matrix(1,0,0,-1,232.5,183.9)"><tspan - id="tspan7743" - y="0" - x="0" - style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">4</tspan></text> + id="text7741" + transform="matrix(1,0,0,-1,232.5,183.9)"><tspan + id="tspan7743" + y="0" + x="0" + style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">4</tspan></text> + </g><path inkscape:connector-curvature="0" id="path7745" @@ -318,10 +376,11 @@ d="m 310.625,120.625 0,-33.75" /><g transform="matrix(1.25,0,0,-1.25,0,337.5)" id="g7747"><text - id="text7749" - transform="matrix(1,0,0,-1,256.5,183.9)"><tspan - id="tspan7751" - y="0" - x="0" - style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">6</tspan></text> + id="text7749" + transform="matrix(1,0,0,-1,256.5,183.9)"><tspan + id="tspan7751" + y="0" + x="0" + style="font-size:14px;font-variant:normal;font-weight:normal;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-family:DejaVu Sans;-inkscape-font-specification:DejaVu Sans">6</tspan></text> + </g></g></svg> \ No newline at end of file diff --git a/talk/icooolps2011/talk/figures/map01.pdf b/talk/icooolps2011/talk/figures/map01.pdf index d957a75d52a1e205b35f2139afe40e260bcaa5f7..b02a6212807255e3be3a63808946c1f87b32a64a GIT binary patch [cut] diff --git a/talk/icooolps2011/talk/figures/map02.pdf b/talk/icooolps2011/talk/figures/map02.pdf index c8f07cffbd5017707537c5fb18bf7a822384016f..8f23b0fb78a661be86adf7790844570eed590ef5 GIT binary patch [cut] diff --git a/talk/icooolps2011/talk/figures/map03.pdf b/talk/icooolps2011/talk/figures/map03.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e9944db6caa3a34e1852cfb8934df628bf64d089 GIT binary patch [cut] diff --git a/talk/icooolps2011/talk/talk.pdf b/talk/icooolps2011/talk/talk.pdf new file mode 100644 index 0000000000000000000000000000000000000000..66d79ac74735959368d77448b8d8606105e447f1 GIT binary patch [cut] diff --git a/talk/icooolps2011/talk/talk.tex b/talk/icooolps2011/talk/talk.tex --- a/talk/icooolps2011/talk/talk.tex +++ b/talk/icooolps2011/talk/talk.tex @@ -107,12 +107,12 @@ \end{frame} \begin{frame} - \frametitle{A Tracing JIT} + \frametitle{An Interpreter} \includegraphics[scale=0.5]{figures/trace01.pdf} \end{frame} \begin{frame} - \frametitle{An Interpreter} + \frametitle{A Tracing JIT} \includegraphics[scale=0.5]{figures/trace02.pdf} \end{frame} @@ -149,6 +149,7 @@ \begin{frame} \frametitle{Example: Attribute Reads in Python} What happens when an attribute \texttt{x.m} is read? (simplified) + \pause \begin{itemize} \item check for \texttt{x.\_\_getattribute\_\_}, if there, call it \pause @@ -180,7 +181,7 @@ \frametitle{Meta-Tracing JITs} \begin{block}{Advantages:} \begin{itemize} - \item semantics is always like that of the interpreter + \item semantics are always like that of the interpreter \item trace fully contains language semantics \item meta-tracers can be reused for various interpreters \end{itemize} @@ -240,12 +241,17 @@ \begin{frame} \frametitle{Example: Instances with Maps} - \includegraphics[scale=0.5]{figures/map01.pdf} + \includegraphics[scale=0.7]{figures/map01.pdf} \end{frame} \begin{frame} \frametitle{Example: Instances with Maps} - \includegraphics[scale=0.5]{figures/map02.pdf} + \includegraphics[scale=0.7]{figures/map02.pdf} +\end{frame} + +\begin{frame} + \frametitle{Example: Instances with Maps} + \includegraphics[scale=0.7]{figures/map03.pdf} \end{frame} \begin{frame}[containsverbatim] @@ -286,7 +292,7 @@ \end{frame} \begin{frame}[plain,containsverbatim] -\frametitle{Trace for code \texttt{inst.a + inst.b}} +\frametitle{Trace for Code \texttt{inst.a + inst.b}} \begin{lstlisting}[mathescape,escapechar=|,basicstyle=\ttfamily]] # $inst_1$.getfield("a") $map_1$ = $inst_1$.map @@ -393,7 +399,6 @@ \PY{k}{def} \PY{n+nf}{getindex}\PY{p}{(}\PY{n+nb+bp}{self}\PY{p}{,} \PY{n}{name}\PY{p}{)}\PY{p}{:} \PY{k}{return} \PY{n+nb+bp}{self}\PY{o}{.}\PY{n}{indexes}\PY{o}{.}\PY{n}{get}\PY{p}{(}\PY{n}{name}\PY{p}{,} \PY{o}{-}\PY{l+m+mi}{1}\PY{p}{)} - \PY{n+nd}{@elidable} \PY{k}{def} \PY{n+nf}{add\PYZus{}attribute}\PY{p}{(}\PY{n+nb+bp}{self}\PY{p}{,} \PY{n}{name}\PY{p}{)}\PY{p}{:} \PY{o}{.}\PY{o}{.}\PY{o}{.} _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit