Truffle multithreaded language

Timothy Baldridge tbaldridge at gmail.com
Thu Oct 3 16:14:18 PDT 2013


Or perhaps there is a "pre compilation" hook? That way I could lock the AST
before the JIT kicks in. I don't mind a global lock like that, I just don't
want to have to run under a GIL the entire time.

Timothy


On Thu, Oct 3, 2013 at 4:38 PM, Timothy Baldridge <tbaldridge at gmail.com>wrote:

> In my continued investigations of Truffle I decided to see what happened
> when I threw multiple threads at my AST.
>
> What I have is a simple BF language with no specialization (we pass around
> Objects and cast to ints/bytes as needed).
>
> For this test, I parse the source code once, and then have 3 threads
> execute the code over and over again. However when truffle kicks in (after
> 1000 total invocations of the function), I get the following error:
>
> [thread:8] scope:
>   [thread:8] scope: Truffle
>     [thread:8] scope: Truffle.createGraph
>       [thread:8] scope: Truffle.createGraph.InterceptException
>       Exception occurred in scope: Truffle.createGraph.InterceptException
>       Context obj java.lang.IllegalStateException: Inlined graph is in
> invalid state
>       Context obj
> StructuredGraph:4{HotSpotMethod<OptimizedCallTarget.executeHelper(PackedFrame,
> Arguments)>}
>       Use -G:+DumpOnError to enable dumping of graphs on this error
>       Context obj DebugDumpScope[Truffle: MainNode at 333bee49]
> [truffle] opt failed MainNode at 333bee49
>  java.lang.IllegalStateException: Inlined graph is in invalid state
> java.lang.IllegalStateException: Inlined graph is in invalid state
>
> I create a CallTarget per thread, but I do share the AST between all
> threads.
>
> How is this supposed to work in a large language? Am I expected to
> duplicate the AST for every thread? And if so, how would I get something
> like that to work with thread pools.
>
> Thanks for the help,
>
> Timothy Baldridge
>



-- 
“One of the main causes of the fall of the Roman Empire was that–lacking
zero–they had no way to indicate successful termination of their C
programs.”
(Robert Firth)


More information about the graal-dev mailing list