Truffle

From APIDesign

(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
-
A set of [[API]] to build own language interpreter that gets special treatment by [[Graal]] (the next version [[HotSpot]] [[VM]]). As a result well written interpreter can at the end run faster than generated native code.
+
A set of [[API]] to build own language interpreter that gets special treatment by [[Graal]] (the next version of [[HotSpot]] [[VM]]). As a result a well written interpreter can run faster than generated native code at the end.
-
[[Truffle]] is using sort of [[AsmJs]] approach: rather than complicated the [[JVM]] (like it was done with [[invokeDynamic]] instruction), it creates additional [[Java]] [[API]]s that dynamic language vendors may use. The [[API]] patterns are then recognized by the enhanced [[HotSpot]] compiler to emit more effective code. All of that without modification to the [[JVM]] spec.
+
[[Truffle]] is using sort of [[AsmJs]] approach: rather than complicating the [[JVM]] (like it was done with [[invokeDynamic]] instruction), it creates additional [[Java]] [[API]]s that dynamic [[language]] vendors may use. The [[API]] patterns are then recognized by the enhanced [[HotSpot]] compiler to emit more effective code. All of that without modification to the [[JVM]] spec.
-
[[Truffle]] [[Ruby]] implementation is ten times faster than pure [[JRuby]] (based on [[invokeDynamic]]).
+
[[Truffle]] [[Ruby]] implementation is ten times faster than pure [[JRuby]] (which was based on [[invokeDynamic]]).

Revision as of 15:43, 24 June 2015

A set of API to build own language interpreter that gets special treatment by Graal (the next version of HotSpot VM). As a result a well written interpreter can run faster than generated native code at the end.

Truffle is using sort of AsmJs approach: rather than complicating the JVM (like it was done with invokeDynamic instruction), it creates additional Java APIs that dynamic language vendors may use. The API patterns are then recognized by the enhanced HotSpot compiler to emit more effective code. All of that without modification to the JVM spec.

Truffle Ruby implementation is ten times faster than pure JRuby (which was based on invokeDynamic).

Personal tools
buy