Debugging at Full Speed
|
|
- Edmund Cobb
- 6 years ago
- Views:
Transcription
1
2 Oracle Labs Document Debugging at Full Speed Instrumen)ng Truffle- implemented Programs Michael L. Van De Vanter Oracle Labs, VM Research Group July 30, JVM Language Summit Santa Clara, CA July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed
3 Safe Harbor Statement The following is intended to provide some insight into a line of research in Oracle Labs. It is intended for informaron purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or funcronality, and should not be relied upon in making purchasing decisions. Oracle reserves the right to alter its development plans and pracrces at any Rme, and the development, release, and Rming of any features or funcronality described in connecron with any Oracle product or service remains at the sole discreron of Oracle. Any views expressed in this presentaron are my own and do not necessarily reflect the views of Oracle. July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 3
4 The Big Idea Extend the Truffle/Graal playorm, which enables high- performance implementarons of dynamic languages (Ruby, R, JavaScript, Python, Smalltalk) with reduced implementaron effort by building in instrumenta*on support that enables flexible access to Truffle execuron events by many kinds of tools (debuggers, profilers, etc.) with minimal runrme overhead requiring modest implementaron effort. July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 4
5 InstrumenRng Truffle Programs Truffle: ExecuRon Overview Tools: Opportunity, Challenge, Strategy Proof of Concept: Ruby, Ruby debugger Truffle: new InstrumentaRon API ApplicaRons & Status July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 5
6 Truffle node specializaron U Node Rewriting for Profiling Feedback G Compilation using Partial Evaluation G U U Node Transitions I G I G U U U Uninitialized Integer I I I I I AST Interpreter Uninitialized Nodes S String G D Double Generic AST Interpreter Rewritten Nodes Compiled Code T. Würthinger, C. Wimmer, A. Wöß, L. Stadler, G. Duboscq, C. Humer, G. Richards, D. Simon, and M. Wolczko. One VM to rule them all. In Proceedings of Onward, July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 6
7 Truffle deoprmizaron and rewrirng Deoptimization to AST Interpreter G Node Rewriting to Update Profiling Feedback G Recompilation using Partial Evaluation G G I G I G D G D G I I I D I I I D T. Würthinger, C. Wimmer, A. Wöß, L. Stadler, G. Duboscq, C. Humer, G. Richards, D. Simon, and M. Wolczko. One VM to rule them all. In Proceedings of Onward, July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 7
8 GraalVM Architecture Guest Language Application Guest Language Implementation Language Parser AST Interpreter Truffle API Framework for Node Rewriting Truffle Optimizer Partial Evaluation using Graal Hosted on any Java VM VM Runtime Services Garbage Collector Graal Compiler Stack Walking Deoptimization AOT Optimization: using Graal for static analysis and AOT compilation OS (slow, for guest language development and debugging only) Hosted on Graal VM (fast, for integration of guest language code with existing Java applications) T. Würthinger, C. Wimmer, A. Wöß, L. Stadler, G. Duboscq, C. Humer, G. Richards, D. Simon, and M. Wolczko. One VM to rule them all. In Proceedings of Onward, July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 8
9 InstrumenRng Truffle Programs Truffle: ExecuRon Overview Tools: Opportunity, Challenge, Strategy Proof of Concept: Ruby, Ruby debugger Truffle: new InstrumentaRon API ApplicaRons & Status July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 9
10 Opportunity: Tool Access to Truffle RunRme Language implementarons relarvely accessible All Java Wrinen as interpreters ExecuRon state represented explicitly: stack, frames, Truffle/Graal op*mizes and deop*mizes Many aggressive oprmizarons down to narve code For its own purposes can deop*mize Reconstruct execuron state completely July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 10
11 Challenge: Blend with Truffle Define language- agnosrc services Automate as much tool support as possible Leverage Truffle/Graal oprmizarons E.g. breakpoint condirons should fully oprmize Unused framework should compile away Minimize disrupron Language implementaron code Truffle oprmizarons Simple API for tool clients July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 11
12 Strategy: Interpose with Node Wrappers Insert addironal nodes into Truffle ASTs (wrappers) Anachment points for tool interposiron SemanRcally transparent during execuron Largely orthogonal to language implementaron Can be composed Focus on language execuron semanrcs No access (for now) to low- level state, e.g. memory July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 12
13 InstrumenRng Truffle Programs Truffle: ExecuRon Overview Tools: Opportunity, Challenge, Strategy Proof of Concept: Ruby, Ruby debugger Truffle: new InstrumentaRon API ApplicaRons & Status July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 13
14 Tools: The Debugger Challenge They are difficult to build Oren Rghtly coupled to narve playorms Cross many levels of system abstracrons Contend with incomplete access to execuron state They present significant producrvity tradeoffs Performance disabled oprmizarons FuncRonality inhibited language features Complexity language implementaron requirements Inconvenience nonstandard context (debug flags) July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 14
15 Wrapper Nodes While Call < Sequence 1""""while"x"<"y" 2""""""x"+="1" 3""""""y"*="1" 4""""end( ReadLocal x ReadLocal y WriteLocal x Call + ReadLocal x FixnumLiteral 1 WriteLocal y Call - ReadLocal y FixnumLiteral 1 July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 15
16 While LineBreakpoint Sequence Call < LineBreakpoint ReadLocal x WriteLocal x ReadLocal y Call + ReadLocal x FixnumLiteral 1 LineBreakpoint WriteLocal y Call - ReadLocal y FixnumLiteral 1 July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 16
17 Ruby Prototype (Chris Seaton) AcRve/InacRve AcRons Inactive assumption check completely elided in compiled code Debug action installed by user inactive active Compile: produces partially evaluated machine code from specialized AST. Deoptimize: transfers control from the machine code back to the AST interpreter. Replace: the inactive node with an active node to install the debug action Compile: produces new machine code from the modified AST and the installed debug action. July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 17
18 Ruby Prototype: set_trace_func 1""""set_trace_func"proc"{" event,"file,"line," 2""""""""id,"binding,"classname " 3""""""puts""We're"at"line"number"#{line}"" 4""""}" Standard Ruby language feature Uses: debuggers, profilers, coverage Enabled and disabled programmarcally Naïve implementaron: check for it every single Rme a bytecode has a different line number Rubinius doesn t support it at all, JRuby has it behind a flag July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 18
19 While InactiveTrace Sequence Call < InactiveTrace ReadLocal x WriteLocal x ReadLocal y Call + ReadLocal x FixnumLiteral 1 InactiveTrace WriteLocal y Call - ReadLocal y FixnumLiteral 1 July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 19
20 While Call trace func ActiveTrace Call < Sequence ActiveTrace ReadLocal x WriteLocal x Call trace func ReadLocal y Call + ReadLocal x FixnumLiteral 1 ActiveTrace WriteLocal y Call trace func Call - ReadLocal y FixnumLiteral 1 July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 20
21 Ruby Prototype: BuilRn Debug OperaRons 1""""100.times"do' 2"""""Debug.break" 3""""end' 1""""Debug.break("test.rb","14)"do( 2"""""puts""The"program"has"reached"line"14"" 3""""end( 1""""Debug.break("test.rb","14)"do" binding " 2""""""if"binding.local_variable_get(:foo)"=="14" 3""""""""Debug.break" 4""""""end' 5""""end' July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 21
22 EvaluaRon general performance Speedup Relative to MRI (s/s) Fannkuch Mandelbrot 0 MRI Rubinius JRuby Topaz JRuby+Truffle Chris Seaton, Michael Van De Vanter, Michael Haupt. Debugging at Full Speed. In Proceedings of DYLA July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 22
23 EvaluaRon summary Self Relative Time (s/s) MRI Rubinius JRuby Topaz JRuby+Truffle 1 n/a Enabling set_trace_func n/a Using set_trace_func n/a Enabling debugger n/a Breakpoint n/a Constant conditional n/a Simple conditional Chris Seaton, Michael Van De Vanter, Michael Haupt. Debugging at Full Speed. In Proceedings of DYLA July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 23
24 InstrumenRng Truffle Programs Truffle: ExecuRon Overview Tools: Opportunity, Challenge, Strategy Proof of Concept: Ruby, Ruby debugger Truffle: new InstrumentaRon API ApplicaRons & Status July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 24
25 Generalize, Scale, Simplify Ruby prototype: Extensions (builrns) to guest language FuncRon- specific wrappers MulRple, chained wrappers Wrappers only added starcally AcRvate tool funcrons via node replacement InstrumentaRon API: Language- agnosrc API for tools General purpose wrappers Single wrapper per locaron Add mulrple tool funcrons dynamically AcRvate tool funcrons by state changes July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 25
26 Language ImplementaRon API Define language- specific wrapper node type(s) Wrap appropriate nodes when ASTs constructed Ensure complete source a3ribu*on By default, Probes are tracked by source locaron AddiRonal tool- specific support (e.g. debugging) E.g. eval July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 26
27 Tool Client API: Overview Disclaimer: work in progress SourceSecRon Text range corresponding to a user- sensible AST node SyntaxTag AnnotaRon to guide tool behavior at an AST node (e.g. STMT) ExecuRonEvent Flow of control into or out of an AST node Instrument Tool- specific receptor of ExecuRonEvents at an AST node Probe Manager for Instruments & SyntaxTags at an AST node July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 27
28 Tool Client API: A Truffle Instrument Interposes in Truffle interpreta)on public abstract class Instrument implements ExecutionEvents { public void enter(node node, Frame frame) { } public void leave(node node, Frame frame) { } public void leave(node node, Frame frame, Object result) { } public void leave(node node, Frame frame, boolean result) { leave(node, frame, (Object) result); }... public void leaveexceptional(node node, Frame frame, Exception e) { } } July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 28
29 Tool Client API: A Truffle Probe Manages Instruments & Tags at an AST loca)on public interface Probe { void addinstrument(instrument newinstrument); void removeinstrument(instrument oldinstrument); void tagas(syntaxtag tag); } public interface ProbeListener { void newprobeinserted(sourcesection location, Probe probe); void probetaggedas(probe probe, SyntaxTag tag); } July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 29
30 Tool Client API: Finding Probes Dynamically public abstract class ExecutionContext { Probe getprobe(sourcesection sourcesection); Collection<Probe> findprobestaggedas(syntaxtag tag); Collection<Probe> findprobesbyline(linelocation linelocation);... } July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 30
31 InstrumenRng Truffle Programs Truffle: ExecuRon Overview Tools: Opportunity, Challenge, Strategy Proof of Concept: Ruby, Ruby debugger Truffle: new InstrumentaRon API ApplicaRons & Status July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 31
32 ApplicaRon: Language ImplementaRon Ruby implementa)on by Chris Seaton Ruby set_trace_function Invokes arbitrary proc at each statement Ruby heap iteraron, possibly filtered ObjectSpace.each_object() ObjectSpace.count_objects() ObjectSpace._id2ref(object_id) Ruby core library thread quiescence Implemented with Instruments July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 32
33 ApplicaRon: Simple Profiling Collabora)on with UC Irvine ZipPy performance oprmizarons Exploratory work to locate hot spots Gathering interpreter- level execuron data Building maps when needed July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 33
34 ApplicaRon: Debugging (1/3) Very limited, but useful func)onality Debugging engine prototype Breakpoints; step in/over/out; show frame vars; backtrace Evaluate string in halted context Language- agnosrc (mostly) Language- specific adaptaron Some language- specific code needed Ruby, JavaScript working at same funcronal level Simple (demonstraron language) underway R just begun July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 34
35 ApplicaRon: Debugging (2/3) public final class DebugBreakInstrument extends DebugInstrument private boolean isenabled = true; public DebugBreakInstrument(DebugInstrumentCallback callback) { super(callback); public void enter(node astnode, VirtualFrame frame) { if (isenabled) { debuggercallback.haltedat(astnode, frame.materialize()); } }... } July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 35
36 ApplicaRon: Debugging (3/3) Command- Line debugger for tesrng & demonstraron Client/server architecture emulated Client is language- agnosrc Server built around a language- specific Debugging Engine IDE integraron Looking at simple experiments with NetBeans July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 36
37 Status InstrumentaRon is part of the public Truffle API Debugging is under internal development July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 37
38 July 30, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. JVM Language Summit- Debugging at Full Speed 38
39
JRuby+Truffle. Kevin Menard. Chris Seaton. Benoit Daloze. A tour through a new Ruby Oracle Oracle Labs
JRuby+Truffle A tour through a new Ruby implementahon Chris Seaton @ChrisGSeaton Oracle Labs Benoit Daloze @eregontp JKU Linz Kevin Menard @nirvdrum Oracle Labs Ruby logo copyright (c) 2006, Yukihiro Matsumoto,
More informationTruffle A language implementation framework
Truffle A language implementation framework Boris Spasojević Senior Researcher VM Research Group, Oracle Labs Slides based on previous talks given by Christian Wimmer, Christian Humer and Matthias Grimmer.
More informationCopyright 2014 Oracle and/or its affiliates. All rights reserved.
Copyright 2014 Oracle and/or its affiliates. All rights reserved. On the Quest Towards Fastest (Java) Virtual Machine on the Planet! @JaroslavTulach Oracle Labs Copyright 2015 Oracle and/or its affiliates.
More informationRuby. JRuby+Truffle and the to JITs. Chris Oracle Labs
John Tenniel illustra@ons public domain in the UK and US Deop@mizing Ruby JRuby+Truffle and the an@dote to JITs Chris Seaton @ChrisGSeaton Oracle Labs Copyright 2014, Oracle and/or its affiliates. All
More information1 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
1 Copyright 2012, Oracle and/or its affiliates. All rights reserved. Truffle: A Self-Optimizing Runtime System Thomas Wuerthinger Oracle Labs JVM Language Summit, July 31, 2012 2 Copyright 2012, Oracle
More informationCopyright 2012, Oracle and/or its affiliates. All rights reserved.
1 Truffle: A Self-Optimizing Runtime System Christian Wimmer, Thomas Würthinger Oracle Labs Write Your Own Language Current situation How it should be Prototype a new language Parser and language work
More informationJRuby+Truffle. Why it s important to optimise the tricky parts. Chris Seaton Research Manager Oracle Labs 2 June 2016
The Ruby Logo is Copyright (c) 2006, Yukihiro Matsumoto. It is licensed under the terms of the Creative Commons Attribution-ShareAlike 2.5 agreement. JRuby+Truffle Why it s important to optimise the tricky
More informationFaster Ruby and JS with Graal/Truffle
The Ruby Logo is Copyright (c) 2006, Yukihiro Matsumoto. It is licensed under the terms of the Creative Commons Attribution-ShareAlike 2.5 agreement. Faster Ruby and JS with Graal/Truffle Chris Seaton
More informationGuilt Free Ruby on the JVM
The Ruby logo is Copyright 2006, Yukihiro Matsumoto. It is licensed under the terms of the Creative Commons Attribution-ShareAlike 2.5 License agreement. Guilt Free Ruby on the JVM Forgetting Conventional
More informationSPECIALISING DYNAMIC TECHNIQUES FOR IMPLEMENTING THE RUBY PROGRAMMING LANGUAGE
SPECIALISING DYNAMIC TECHNIQUES FOR IMPLEMENTING THE RUBY PROGRAMMING LANGUAGE A thesis submitted to the University of Manchester for the degree of Doctor of Philosophy in the Faculty of Engineering and
More informationModern Stored Procedures Using GraalVM
Modern Stored Procedures Using raalvm Oracle Labs Matthias Brantner Safe Harbor Statement The following is intended to outline our general product direction. t is intended
More informationUsing LLVM and Sulong for Language C Extensions
Using LLVM and Sulong for Language C Extensions Chris Seaton Research Manager VM Research Group Oracle Labs Manuel Rigger, Matthias Grimmer JKU Linz Copyright 2016, Oracle and/or its affiliates. All rights
More informationR as a in a Polyglot World
R as a Ci@zen in a Polyglot World The promise of the Truffle framework Lukas Stadler, VM Research Group, Oracle Labs user! 2015 2 Safe Harbor Statement The following is intended to provide some insight
More information<Insert Picture Here>
1 2010-0237 The Maxine Inspector: A Specialized Tool for VM Development, Santa Clara, CA Michael L. Van De Vanter Researcher, Oracle Sun Labs The Maxine Project at Oracle Sun Labs:
More information<Insert Picture Here> Maxine: A JVM Written in Java
Maxine: A JVM Written in Java Michael Haupt Oracle Labs Potsdam, Germany The following is intended to outline our general product direction. It is intended for information purposes
More informationTracing vs. Partial Evaluation
Tracing vs. Partial Evaluation Comparing Meta-Compilation Approaches for Self-Optimizing nterpreters Abstract Tracing and partial evaluation have been proposed as metacompilation techniques for interpreters.
More informationThe Java HotSpot VM Under the Hood
The Java HotSpot VM Under the Hood Tobias Hartmann Zoltán Majó HotSpot Compiler Team Oracle Corpora6on About us Tobias Hartmann MSc ETH Zurich, Switzerland Lives in Rheinfelden, Germany Zoltán Majó PhD
More information<Insert Picture Here> Graal: A quest for the JVM to leverage its own J Doug Simon - Oracle Labs
Graal: A quest for the JVM to leverage its own J Doug Simon - Oracle Labs JVM Language Summit, 30th July 2012 The following is intended to outline our general product direction. It
More informationJust-In-Time Compilation
Just-In-Time Compilation Thiemo Bucciarelli Institute for Software Engineering and Programming Languages 18. Januar 2016 T. Bucciarelli 18. Januar 2016 1/25 Agenda Definitions Just-In-Time Compilation
More informationCURRICULUM VITAE. DI Dr. Matthias Grimmer Michael-Hainisch-Straße Linz
CURRICULUM VITAE Full Name Address Date of Birth Citizenship Phone Email Website GitHub DI Dr. Michael-Hainisch-Straße 18 4040 Linz March 2, 1989 Austria (+43) 664 784 21 52 contact@matthiasgrimmer.com
More informationSafe Harbor Statement
Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment
More informationLLVM-based dynamic dataflow compila6on for heterogeneous targets
LLVM-based dynamic dataflow compila6on for heterogeneous targets V. Ducrot, K. Juilly, S.Monot, G. Bayle Des Courchamps Donnons de la suite à vos idées AS+ Groupe Eolen T. Goubier CEA List /DACLE /LCE
More informationSelf-Optimizing AST Interpreters
Self-Optimizing AST Interpreters Thomas Würthinger Andreas Wöß Lukas Stadler Gilles Duboscq Doug Simon Christian Wimmer Oracle Labs Institute for System Software, Johannes Kepler University Linz, Austria
More informationAre We There Yet? Simple Language-Implementation Techniques for the 21st Century
Are We There Yet? Simple Language-Implementation Techniques for the 21st Century Stefan Marr, Tobias Pape, Wolfgang De Meuter To cite this version: Stefan Marr, Tobias Pape, Wolfgang De Meuter. Are We
More informationEclipse Enterprise for Java (EE4J)
Eclipse Enterprise for Java (EE4J) Presenta)on to Java Community Process Execu)ve Commi5ee Will Lyons Senior Director, Oracle WebLogic Server and Java EE Product Management September 29, 2017 2 Safe Harbor
More informationDynamic Compilation with Truffle
Dynamic Compilation with Truffle Thomas Wuerthinger @thomaswue Oracle Labs Christian Humer @grashalm_ Oracle Labs DSLDI Summer School 2015 Copyright 2015 Oracle and/or its affiliates. All rights reserved.
More informationSubstrate VM. Copyright 2017, Oracle and/or its affiliates. All rights reserved.
Substrate VM 1 Safe Harbor Statement The following is intended to provide some insight into a line of research in Oracle Labs. It is intended for information purposes only, and may not be incorporated
More informationPractical Partial Evaluation for High-Performance Dynamic Language Runtimes
Practical Partial Evaluation for High-Performance Dynamic Language Runtimes Thomas Würthinger Christian Wimmer Christian Humer Andreas Wöß Lukas Stadler Chris Seaton Gilles Duboscq Doug Simon Matthias
More informationTracing vs. Partial Evaluation
Tracing vs. Partial Evaluation Stefan Marr, Stéphane Ducasse To cite this version: Stefan Marr, Stéphane Ducasse. Tracing vs. Partial Evaluation: Comparing Meta-Compilation Approaches for Self-Optimizing
More informationCOP4020 Programming Languages. Compilers and Interpreters Robert van Engelen & Chris Lacher
COP4020 ming Languages Compilers and Interpreters Robert van Engelen & Chris Lacher Overview Common compiler and interpreter configurations Virtual machines Integrated development environments Compiler
More informationAlan Bateman Java Platform Group, Oracle November Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1
Alan Bateman Java Platform Group, Oracle November 2018 Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1 Project Loom Continuations Fibers Tail-calls Copyright 2018, Oracle and/or its
More information301AA - Advanced Programming
301AA - Advanced Programming Lecturer: Andrea Corradini andrea@di.unipi.it h;p://pages.di.unipi.it/corradini/ Course pages: h;p://pages.di.unipi.it/corradini/dida@ca/ap-18/ AP-2018-18: Lambda Calculus,
More informationAhead of Time (AOT) Compilation
Ahead of Time (AOT) Compilation Vaibhav Choudhary (@vaibhav_c) Java Platforms Team https://blogs.oracle.com/vaibhav Copyright 2018, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement
More informationEfficient Layered Method Execution in ContextAmber
Efficient Layered Method Execution in ContextAmber Matthias Springer Hasso Plattner Institute University of Potsdam matthias.springer@hpi.de Jens Lincke Hasso Plattner Institute University of Potsdam jens.lincke@hpi.de
More informationOracle R Technologies
Oracle R Technologies R for the Enterprise Mark Hornick, Director, Oracle Advanced Analytics @MarkHornick mark.hornick@oracle.com Safe Harbor Statement The following is intended to outline our general
More informationFastR: Status and Outlook
FastR: Status and Outlook Michael Haupt Tech Lead, FastR Project Virtual Machine Research Group, Oracle Labs June 2014 Copyright 2014 Oracle and/or its affiliates. All rights reserved. CMYK 0/100/100/20
More informationTrace Compilation. Christian Wimmer September 2009
Trace Compilation Christian Wimmer cwimmer@uci.edu www.christianwimmer.at September 2009 Department of Computer Science University of California, Irvine Background Institute for System Software Johannes
More informationJDK 9/10/11 and Garbage Collection
JDK 9/10/11 and Garbage Collection Thomas Schatzl Senior Member of Technical Staf Oracle JVM Team May, 2018 thomas.schatzl@oracle.com Copyright 2017, Oracle and/or its afliates. All rights reserved. 1
More informationRun-time Program Management. Hwansoo Han
Run-time Program Management Hwansoo Han Run-time System Run-time system refers to Set of libraries needed for correct operation of language implementation Some parts obtain all the information from subroutine
More informationEDAN65: Compilers, Lecture 13 Run;me systems for object- oriented languages. Görel Hedin Revised:
EDAN65: Compilers, Lecture 13 Run;me systems for object- oriented languages Görel Hedin Revised: 2014-10- 13 This lecture Regular expressions Context- free grammar ATribute grammar Lexical analyzer (scanner)
More informationZero-Overhead Metaprogramming
Zero-Overhead Metaprogramming Reflection and Metaobject Protocols Fast and without Compromises * PLDI * Artifact Consistent * Complete * Well Documented * Easy to Reuse * Evaluated * AEC * Stefan Marr
More information<Insert Picture Here> Multi-language JDI? You're Joking, Right?
Multi-language JDI? You're Joking, Right? Jim Laskey Multi-language Lead Java Language and Tools Group The following is intended to outline our general product direction. It is intended
More informationSista: Improving Cog s JIT performance. Clément Béra
Sista: Improving Cog s JIT performance Clément Béra Main people involved in Sista Eliot Miranda Over 30 years experience in Smalltalk VM Clément Béra 2 years engineer in the Pharo team Phd student starting
More informationAccelerating Ruby with LLVM
Accelerating Ruby with LLVM Evan Phoenix Oct 2, 2009 RUBY RUBY Strongly, dynamically typed RUBY Unified Model RUBY Everything is an object RUBY 3.class # => Fixnum RUBY Every code context is equal RUBY
More informationJust-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation
Just-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation Juan Fumero Michel Steuwer Lukas Stadler Christophe Dubach The University of Edinburgh, Oracle Labs, AT juan.fumero@ed.ac.uk
More informationAgenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1
Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies
More informationContents in Detail. Who This Book Is For... xx Using Ruby to Test Itself... xx Which Implementation of Ruby?... xxi Overview...
Contents in Detail Foreword by Aaron Patterson xv Acknowledgments xvii Introduction Who This Book Is For................................................ xx Using Ruby to Test Itself.... xx Which Implementation
More informationMulti-Level Virtual Machine Debugging using the Java Platform Debugger Architecture
Multi-Level Virtual Machine Debugging using the Java Platform Debugger Architecture Thomas Würthinger 1, Michael L. Van De Vanter 2, and Doug Simon 2 1 Institute for System Software Johannes Kepler University
More informationJava: framework overview and in-the-small features
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer Java: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer
More informationAssumptions. History
Assumptions A Brief Introduction to Java for C++ Programmers: Part 1 ENGI 5895: Software Design Faculty of Engineering & Applied Science Memorial University of Newfoundland You already know C++ You understand
More informationUntyped Memory in the Java Virtual Machine
Untyped Memory in the Java Virtual Machine Andreas Gal and Michael Franz University of California, Irvine {gal,franz}@uci.edu Christian W. Probst Technical University of Denmark probst@imm.dtu.dk July
More informationKasper Lund, Software engineer at Google. Crankshaft. Turbocharging the next generation of web applications
Kasper Lund, Software engineer at Google Crankshaft Turbocharging the next generation of web applications Overview Why did we introduce Crankshaft? Deciding when and what to optimize Type feedback and
More informationA Fast Abstract Syntax Tree Interpreter for R
A Fast Abstract Syntax Tree Interpreter for R Java cup Petr Maj Jan Vitek Tomas Kalibera Floréal Morandat Thesis Runtime information can be leveraged to create simple, fast, easy to maintain interpreters
More informationProject Loom Ron Pressler, Alan Bateman June 2018
Project Loom Ron Pressler, Alan Bateman June 2018 Copyright 2018, Oracle and/or its affiliates. All rights reserved.!1 Safe Harbor Statement The following is intended to outline our general product direction.
More informationInterim Report: Build Your Efficient Programming Language Quickly
Interim Report: Build Your Efficient Programming Language Quickly Final Year Project Department of Computer Science University of Hong Kong Xiang Ji Supervisor: Prof. Bruno c.d.s. Oliveira January 24,
More informationIntroduction to Java
Introduction to Java Module 1: Getting started, Java Basics 22/01/2010 Prepared by Chris Panayiotou for EPL 233 1 Lab Objectives o Objective: Learn how to write, compile and execute HelloWorld.java Learn
More informationChapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.
Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management
More informationHigh-Level Language VMs
High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs
More informationPyPy - How to not write Virtual Machines for Dynamic Languages
PyPy - How to not write Virtual Machines for Dynamic Languages Institut für Informatik Heinrich-Heine-Universität Düsseldorf ESUG 2007 Scope This talk is about: implementing dynamic languages (with a focus
More informationOne VM to Rule Them All
One VM to Rule Them All Christian Wimmer VM Research Group, Oracle Labs Safe Harbor Statement The following is intended to provide some insight into a line of research in Oracle Labs. It is intended for
More informationFull file at
Import Settings: Base Settings: Brownstone Default Highest Answer Letter: D Multiple Keywords in Same Paragraph: No Chapter: Chapter 2 Multiple Choice 1. A is an example of a systems program. A) command
More informationCompiling and Interpreting Programming. Overview of Compilers and Interpreters
Copyright R.A. van Engelen, FSU Department of Computer Science, 2000 Overview of Compilers and Interpreters Common compiler and interpreter configurations Virtual machines Integrated programming environments
More informationIntroduction to Programming (Java) 2/12
Introduction to Programming (Java) 2/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction
More informationOpenACC Course. Office Hour #2 Q&A
OpenACC Course Office Hour #2 Q&A Q1: How many threads does each GPU core have? A: GPU cores execute arithmetic instructions. Each core can execute one single precision floating point instruction per cycle
More informationcode://rubinius/technical
code://rubinius/technical /GC, /cpu, /organization, /compiler weeee!! Rubinius New, custom VM for running ruby code Small VM written in not ruby Kernel and everything else in ruby http://rubini.us git://rubini.us/code
More informationChapter 4 Java Language Fundamentals
Chapter 4 Java Language Fundamentals Develop code that declares classes, interfaces, and enums, and includes the appropriate use of package and import statements Explain the effect of modifiers Given an
More informationAn Oz implementation using Truffle and Graal
An Oz implementation using Truffle and Graal Dissertation presented by Maxime ISTASSE for obtaining the Master s degree in Computer Science and Engineering Supervisor(s) Peter VAN ROY, Benoit DALOZE, Guillaume
More informationCopyright 2013, Oracle and/or its affiliates. All rights reserved. Insert Information Protection Policy Classification from Slide 12!
Insert Information Protection Policy Classification from Slide 12!1 VMs I Have Known and/or Loved! A subjective history Mario Wolczko Architect Virtual Machine Research Group Oracle Labs! http://labs.oracle.com
More informationProgramming Languages and Techniques (CIS120)
Programming Languages and Techniques (CIS120) Lecture 9 Jan 30, 2013 Abstract Types: Sets Announcements Homework 3 is available on the web Due MONDAY, February 4 th at 11:59:59pm PracRce with BSTs, generic
More informationJust-In-Time Compilers & Runtime Optimizers
COMP 412 FALL 2017 Just-In-Time Compilers & Runtime Optimizers Comp 412 source code IR Front End Optimizer Back End IR target code Copyright 2017, Keith D. Cooper & Linda Torczon, all rights reserved.
More informationOptimizing Communicating Event-Loop Languages with Truffle
Optimizing Communicating Event-Loop Languages with Truffle [Work In Progress Paper] Stefan Marr Johannes Kepler University Linz, Austria stefan.marr@jku.at ABSTRACT Communicating Event-Loop Languages similar
More informationINVESTIGATING ANDROID BYTECODE EXECUTION ON JAVA VIRTUAL MACHINES
INVESTIGATING ANDROID BYTECODE EXECUTION ON JAVA VIRTUAL MACHINES A DISSERTATION SUBMITTED TO THE UNIVERSITY OF MANCHESTER FOR THE DEGREE OF MASTER OF SCIENCE IN THE FACULTY OF ENGINEERING AND PHYSICAL
More informationJiST Java in Simulation Time An efficient, unifying approach to simulation using virtual machines
JiST Java in Simulation Time An efficient, unifying approach to simulation using virtual machines Rimon Barr, Zygmunt Haas, Robbert van Renesse rimon@acm.org haas@ece.cornell.edu rvr@cs.cornell.edu. Cornell
More informationThe Z Garbage Collector Low Latency GC for OpenJDK
The Z Garbage Collector Low Latency GC for OpenJDK Per Lidén & Stefan Karlsson HotSpot Garbage Collection Team Jfokus VM Tech Summit 2018 Safe Harbor Statement The following is intended to outline our
More informationCopyright 2014, Oracle and/or its affiliates. All rights reserved.
1 One VM to Rule Them All Christian Wimmer VM Research Group, Oracle Labs The following is intended to provide some insight into a line of research in Oracle Labs. It is intended for information purposes
More informationJAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder
JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance
More informationLecture content. Course goals. Course Introduction. TDDA69 Data and Program Structure Introduction
Lecture content TDDA69 Data and Program Structure Introduction Cyrille Berger Course Introduction to the different Programming Paradigm The different programming paradigm Why different paradigms? Introduction
More informationWelcome to the session...
Welcome to the session... Copyright 2013, Oracle and/or its affiliates. All rights reserved. 02/22/2013 1 The following is intended to outline our general product direction. It is intended for information
More informationProgram Dynamic Analysis. Overview
Program Dynamic Analysis Overview Dynamic Analysis JVM & Java Bytecode [2] A Java bytecode engineering library: ASM [1] 2 1 What is dynamic analysis? [3] The investigation of the properties of a running
More information3/15/18. Overview. Program Dynamic Analysis. What is dynamic analysis? [3] Why dynamic analysis? Why dynamic analysis? [3]
Overview Program Dynamic Analysis Dynamic Analysis JVM & Java Bytecode [2] A Java bytecode engineering library: ASM [1] 2 What is dynamic analysis? [3] The investigation of the properties of a running
More informationMethod-Level Phase Behavior in Java Workloads
Method-Level Phase Behavior in Java Workloads Andy Georges, Dries Buytaert, Lieven Eeckhout and Koen De Bosschere Ghent University Presented by Bruno Dufour dufour@cs.rutgers.edu Rutgers University DCS
More informationFoundations of Software Engineering
Foundations of Software Engineering Dynamic Analysis Christian Kästner 1 15-313 Software Engineering Adminstrativa Midterm Participation Midsemester grades 2 15-313 Software Engineering How are we doing?
More informationWhat a Year! Java 10 and 10 Big Java Milestones
What a Year! Java 10 and 10 Big Java Milestones Java has made tremendous strides in the past 12 months, with exciting new features and capabilities for developers of all kinds. Table of Contents INTRODUCTION
More informationBytecode Manipulation Techniques for Dynamic Applications for the Java Virtual Machine
Bytecode Manipulation Techniques for Dynamic Applications for the Java Virtual Machine Eugene Kuleshov, Terracotta Tim Eck, Terracotta Tom Ware, Oracle Corporation Charles Nutter, Sun Microsystems, Inc.
More informationThe Z Garbage Collector Scalable Low-Latency GC in JDK 11
The Z Garbage Collector Scalable Low-Latency GC in JDK 11 Per Lidén (@perliden) Consulting Member of Technical Staff Java Platform Group, Oracle October 24, 2018 Safe Harbor Statement The following is
More informationZing Vision. Answering your toughest production Java performance questions
Zing Vision Answering your toughest production Java performance questions Outline What is Zing Vision? Where does Zing Vision fit in your Java environment? Key features How it works Using ZVRobot Q & A
More informationSDK/RTE for Debian Linux on Intel Itanium Processors Release Notes
SDK/RTE 1.4.2.09 for Debian Linux on Intel Itanium Processors Release Notes HP Part Number: 5900-1453 Published: December 2010 Edition: 1.0 Copyright 2010 Hewlett-Packard Development Company, L.P. Legal
More informationContinuous delivery of Java applications. Marek Kratky Principal Sales Consultant Oracle Cloud Platform. May, 2016
Continuous delivery of Java applications using Oracle Cloud Platform Services Marek Kratky Principal Sales Consultant Oracle Cloud Platform May, 2016 Safe Harbor Statement The following is intended to
More informationLab5. Wooseok Kim
Lab5 Wooseok Kim wkim3@albany.edu www.cs.albany.edu/~wooseok/201 Question Answer Points 1 A or B 8 2 A 8 3 D 8 4 20 5 for class 10 for main 5 points for output 5 D or E 8 6 B 8 7 1 15 8 D 8 9 C 8 10 B
More informationSubmitted to the Onward track of OOPSLA-03 ABSTRACT. Keywords
GUI Environments for Functional Languages Daniel J. Pless & George F. Luger University of New Mexico, Computer Science Ferris Engineering Center Albuquerque, NM 87131 (505) 277-9424 {dpless,luger}@cs.unm.edu
More informationCSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1
CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines
More informationSABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine p. 1
SABLEJIT: A Retargetable Just-In-Time Compiler for a Portable Virtual Machine David Bélanger dbelan2@cs.mcgill.ca Sable Research Group McGill University Montreal, QC January 28, 2004 SABLEJIT: A Retargetable
More informationDebugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior
Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior Andrew J. Ko and Brad A. Myers School of Computer Science, Carnegie Mellon University Presenter: Shaosong Li
More informationDynamic Memory Alloca/on: Basic Concepts
Dynamic Memory Alloca/on: Basic Concepts Fall 2015 Instructor: James Griffioen Adapted from slides by R. Bryant and D. O Hallaron (hip://csapp.cs.cmu.edu/public/instructors.html) 1 Today Basic concepts
More informationEfficient and Thread-Safe Objects for Dynamically-Typed Languages
*Evaluated*OOPSLA*Artifact*AEC Efficient and Thread-Safe Objects for Dynamically-Typed Languages toreuse* Consistent*Complete*WellDocumented*Easy Benoit Daloze Johannes Kepler University Linz, Austria
More informationBugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode
Bugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode Damien Ciabrini Manuel Serrano firstname.lastname@sophia.inria.fr INRIA Sophia Antipolis 2004 route des Lucioles - BP 93 F-06902
More informationGhostscript and MuPDF Status OpenPrinting Summit May Michael Vrhel, Ph.D. Artifex Software Inc. San Rafael CA
Ghostscript and MuPDF Status OpenPrinting Summit May 2017 Michael Vrhel, Ph.D. Artifex Software Inc. San Rafael CA 1 Outline GS/MuPDF Overview Ghostscript or MuPDF Recent Updates to Ghostscript Work underway
More informationTowards Flexible and Safe Technology for Runtime Evolution of Java Language Applications
Towards Flexible and Safe Technology for Runtime Evolution of Java Language Applications M. Dmitriev Sun Microsystems Laboratories, 901 San Antonio Road, Palo Alto, CA 94303, USA Email: Mikhail.Dmitriev@Sun.COM
More informationA Domain-Specific Language for Building Self-Optimizing AST Interpreters
A Domain-pecific Language for Building elf-optimizing AT nterpreters Christian Humer Christian Wimmer Christian Wirth Andreas Wöß Thomas Würthinger nstitute for ystem oftware, Johannes Kepler University
More informationThe G1 GC in JDK 9. Erik Duveblad Senior Member of Technical Staf Oracle JVM GC Team October, 2017
The G1 GC in JDK 9 Erik Duveblad Senior Member of Technical Staf racle JVM GC Team ctober, 2017 Copyright 2017, racle and/or its affiliates. All rights reserved. 3 Safe Harbor Statement The following is
More information