Code sharing is in

Benoit Daloze eregontp at gmail.com
Fri Mar 24 13:41:44 UTC 2017


So how does one achieve code sharing?
What "code" can be shared and how?

On Fri, Mar 24, 2017 at 12:53 PM, Jaroslav Tulach <
jaroslav.tulach at oracle.com> wrote:

> On čtvrtek 23. března 2017 6:46:55 CET Jaroslav Tulach wrote:
> > 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.
>
> FYI: Javadoc for the new APIs for language integrators can be found at:
> http://graalvm.github.io/truffle/javadoc/com/oracle/
> truffle/api/vm/package-summary.html
>
> -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.TruffleLan
> > guage) com.oracle.truffle.api.nodes.RootNode:  constructor protected
> > com.oracle.truffle.api.nodes.RootNode.init(com.oracle.
> truffle.api.TruffleLan
> > guage,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