Code sharing is in was: There are API changes in Truffle API!
Jaroslav Tulach
jaroslav.tulach at oracle.com
Thu Mar 23 05:46:55 UTC 2017
Hi there.
For last nine months I was struggling with code sharing. I tried many ways,
but I couldn't get it to work properly. But yesterday was a great day:
Christian Humer managed to merge his code sharing work. Congrats!
I am so excited. The introduction of PolyglotRuntime gives us a chance to
experiment with sharing of ASTs between different PolyglotEngines - something
many language implementations wanted to play with. I am thrilled to gain some
experience with the sharing and then think of proper ways to make it work in
multi-language interop system as well.
I hope you find Truffle code sharing support interesting too.
-jt
SignatureTest report
Base version:
Tested version:
Check mode: bin [throws removed]
Constant checking: on
Added Classes
-------------
com.oracle.truffle.api.TruffleLanguage$ContextReference
com.oracle.truffle.api.nodes.LanguageInfo
Added Nested Classes
--------------------
com.oracle.truffle.api.TruffleLanguage: nested public final static
com.oracle.truffle.api.TruffleLanguage$ContextReference
Added Constructors
------------------
com.oracle.truffle.api.nodes.RootNode: constructor protected
com.oracle.truffle.api.nodes.RootNode.init(com.oracle.truffle.api.TruffleLanguage)
com.oracle.truffle.api.nodes.RootNode: constructor protected
com.oracle.truffle.api.nodes.RootNode.init(com.oracle.truffle.api.TruffleLanguage,com.oracle.truffle.api.frame.FrameDescriptor)
Added Methods
-------------
com.oracle.truffle.api.TruffleLanguage: method public final
com.oracle.truffle.api.TruffleLanguage$ContextReference
com.oracle.truffle.api.TruffleLanguage.getContextReference()
com.oracle.truffle.api.nodes.RootNode: method public final
com.oracle.truffle.api.TruffleLanguage
com.oracle.truffle.api.nodes.RootNode.getLanguage(java.lang.Class)
com.oracle.truffle.api.nodes.RootNode: method public final
com.oracle.truffle.api.nodes.LanguageInfo
com.oracle.truffle.api.nodes.RootNode.getLanguageInfo()
Added Annotations
-----------------
com.oracle.truffle.api.ExecutionContext:anno 0 java.lang.Deprecated()
com.oracle.truffle.api.TruffleLanguage.createFindContextNode:
anno 0 java.lang.Deprecated()
com.oracle.truffle.api.TruffleLanguage.findContext: anno 0
java.lang.Deprecated()
com.oracle.truffle.api.nodes.Node.getLanguage: anno 0
java.lang.Deprecated()
com.oracle.truffle.api.nodes.Node.getLanguage: anno 0
java.lang.Deprecated()
com.oracle.truffle.api.nodes.Node.getLanguage: anno 0
java.lang.Deprecated()
com.oracle.truffle.api.nodes.Node.getLanguage: anno 0
java.lang.Deprecated()
com.oracle.truffle.api.nodes.Node.getLanguage: anno 0
java.lang.Deprecated()
com.oracle.truffle.api.nodes.RootNode.getExecutionContext: anno 0
java.lang.Deprecated()
com.oracle.truffle.api.nodes.RootNode.init: anno 0
java.lang.Deprecated()
Added Annotations
-----------------
com.oracle.truffle.api.nodes.Node.getLanguage: anno 0
java.lang.Deprecated()
com.oracle.truffle.api.nodes.Node.getLanguage: anno 0
java.lang.Deprecated()
Missing Methods
---------------
com.oracle.truffle.api.interop.MessageResolution: method public
abstract java.lang.Class
com.oracle.truffle.api.interop.MessageResolution.language()
Added Methods
-------------
com.oracle.truffle.api.interop.MessageResolution: method public
abstract !hasdefault java.lang.Class
com.oracle.truffle.api.interop.MessageResolution.language()
anno 0 java.lang.Deprecated()
Added Annotations
-----------------
com.oracle.truffle.api.interop.MessageResolution.language: anno 0
java.lang.Deprecated()
Missing Superclasses or Superinterfaces
---------------------------------------
com.oracle.truffle.api.vm.PolyglotEngine$Instrument: superclass
java.lang.Object
Added Classes
-------------
com.oracle.truffle.api.vm.PolyglotRuntime
com.oracle.truffle.api.vm.PolyglotRuntime$Builder
com.oracle.truffle.api.vm.PolyglotRuntime$Instrument
Added Superclasses or Superinterfaces
-------------------------------------
com.oracle.truffle.api.vm.PolyglotEngine$Instrument: superclass
com.oracle.truffle.api.vm.PolyglotRuntime$Instrument
Added Methods
-------------
com.oracle.truffle.api.vm.PolyglotEngine: method public
com.oracle.truffle.api.vm.PolyglotRuntime
com.oracle.truffle.api.vm.PolyglotEngine.getRuntime()
com.oracle.truffle.api.vm.PolyglotEngine$Builder: method public
com.oracle.truffle.api.vm.PolyglotEngine$Builder
com.oracle.truffle.api.vm.PolyglotEngine
$Builder.runtime(com.oracle.truffle.api.vm.PolyglotRuntime)
com.oracle.truffle.api.vm.PolyglotEngine$Value: method public
com.oracle.truffle.api.source.SourceSection
com.oracle.truffle.api.vm.PolyglotEngine$Value.getSourceLocation()
com.oracle.truffle.api.vm.PolyglotEngine$Value: method public
com.oracle.truffle.api.vm.PolyglotEngine$Value
com.oracle.truffle.api.vm.PolyglotEngine$Value.getMetaObject()
Added Annotations
-----------------
com.oracle.truffle.api.vm.PolyglotEngine$Instrument: anno 0
java.lang.Deprecated()
com.oracle.truffle.api.vm.PolyglotEngine.getInstruments: anno 0
java.lang.Deprecated()
More information about the graal-dev
mailing list