PWL: One VM to Rule Them All
-
Upload
aysylu-greenberg -
Category
Software
-
view
10.183 -
download
4
description
Transcript of PWL: One VM to Rule Them All
One VM to Rule Them All
Aysylu Greenberg @aysylu22 h9p://aysy.lu
Papers We Love NYC #5 June 18th, 2014
About Me
• Search Infrastructure at • Spare Qme, + art + archery • Love everything related to compilers
Today
• Introduce concepts: – Interpreter, Compiler – Just-‐in-‐Qme (JIT) Compiler, VM
• Truffle + Graal • Node specializaQon #FTW • Truffle + Graal now
• Familiar with interpreter? Compiler? VM?
• Wrote interpreter/compiler/VM?
• Read the paper?
• Played with Truffle/Graal?
Interpreter vs. Compiler
h9p://www.youtube.com/watch?v=kmQUB-‐5cEgM
Example AST
JIT Compiler
Interpreter + Compiler
Virtual Machine
Interprets bytecode for processor Targets ANY hardware
Easier to opQmize bytecode
Truffle + Graal
• Truffle: language implementaQon framework
• Graal VM: extension to HotSpot VM with exposing of its internals
Truffle + Graal
Interpreter for AST -‐> JIT Compiler for Free!
Node SpecializaQon
Node SpecializaQon
Languages in Truffle + Graal
• Javascript • Ruby • Python • R • J
All the Useful Links in One Place • Graal on OpenJDK h9p://openjdk.java.net/projects/graal/ • TruffleRuby h9p://blog.jruby.org/2014/01/truffle_graal_high_performance_backend/ • FastR h9ps://bitbucket.org/allr/fastr • ZipPy h9ps://bitbucket.org/ssllab/zippy • TruffleSOM h9ps://github.com/smarr/TruffleSOM
Truffle + Graal Now
• System Modularity:h9p://www.slideshare.net/ThomasWuerthinger/2014-‐0424-‐graal-‐modularity
• All things Truffle + Graal: h9p://graalvm.org • Smalltalk (SOM) fastest implementaQon: h9p://som-‐st.github.io/#performance
• Progress on R, Python, Ruby, and Smalltalk
Truffle + Graal Now
• New Truffle features: – on-‐stack-‐replacement for loops – tail calls
• GraalVM binaries: h9p://lafo.ssw.uni-‐linz.ac.at/builds – Also, execute Java binaries (faster for some workloads)
And now for Clojurians …
From Authors: “We are very interested to build up a Clojure implementa5on on top of
Truffle. We believe we would be able to support tail calls.
We would be happy to support kick-‐start any kind of open source effort
on Truffle/Clojure.”