[graalvm-users] GraalVM-Users Digest, Vol 4, Issue 11

Rodrigo Botafogo rodrigo.a.botafogo at gmail.com
Tue Jul 31 07:26:26 PDT 2018


Stepan,

I think this will solve my problem.  Thanks a lot.

Rodrigo

On Fri, Jul 27, 2018 at 4:00 PM <graalvm-users-request at oss.oracle.com>
wrote:

> Send GraalVM-Users mailing list submissions to
>         graalvm-users at oss.oracle.com
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://oss.oracle.com/mailman/listinfo/graalvm-users
> or, via email, send a message with subject or body 'help' to
>         graalvm-users-request at oss.oracle.com
>
> You can reach the person managing the list at
>         graalvm-users-owner at oss.oracle.com
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of GraalVM-Users digest..."
>
>
> Today's Topics:
>
>    1. Error in graalvm (Rodrigo Botafogo)
>    2. Re: Strange error (Stepan)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 26 Jul 2018 18:09:18 -0300
> From: Rodrigo Botafogo <rodrigo.a.botafogo at gmail.com>
> Subject: [graalvm-users] Error in graalvm
> To: graalvm-users at oss.oracle.com
> Message-ID:
>         <CAAKc=GD44OCU4mMKC58hnU=-
> jnDXikhqZhstOLA-8_t0YbZ4VQ at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hello,
>
> I'm getting the following error after running the specs of my project:
>
> [truffle] opt fail         #each_with_index
> resource:/truffleruby/core/enumerable.rb:334 <split-6a6d5bff>|Reason
> org.graalvm.compiler.code.SourceStackTraceBailoutException$1: too many loop
> explosion iterations - does the explosion not terminate for method
> HotSpotMethod<OutgoingForeignCallNodeGen.executeCall(VirtualFrame,
> TruffleObject, Object[])>?
> org.graalvm.compiler.code.SourceStackTraceBailoutException$1: too many loop
> explosion iterations - does the explosion not terminate for method
> HotSpotMethod<OutgoingForeignCallNodeGen.executeCall(VirtualFrame,
> TruffleObject, Object[])>?
> Caused by: org.graalvm.compiler.core.common.PermanentBailoutException: too
> many loop explosion iterations - does the explosion not terminate for
> method HotSpotMethod<OutgoingForeignCallNodeGen.executeCall(VirtualFrame,
> TruffleObject, Object[])>?
>     at
>
> org.graalvm.compiler.replacements.PEGraphDecoder.tooManyLoopExplosionIterations(PEGraphDecoder.java:605)
>     at
>
> org.graalvm.compiler.replacements.PEGraphDecoder.checkLoopExplosionIteration(PEGraphDecoder.java:599)
>     at
>
> org.graalvm.compiler.nodes.GraphDecoder.processNextNode(GraphDecoder.java:506)
>     at
> org.graalvm.compiler.nodes.GraphDecoder.decode(GraphDecoder.java:414)
>     at
>
> org.graalvm.compiler.replacements.PEGraphDecoder.decode(PEGraphDecoder.java:556)
>     at
>
> org.graalvm.compiler.truffle.compiler.PartialEvaluator.doGraphPE(PartialEvaluator.java:436)
>     at
>
> org.graalvm.compiler.truffle.compiler.PartialEvaluator.fastPartialEvaluation(PartialEvaluator.java:475)
>     at
>
> org.graalvm.compiler.truffle.compiler.PartialEvaluator.createGraph(PartialEvaluator.java:220)
>     at
>
> org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl.compileAST(TruffleCompilerImpl.java:382)
>     at
>
> org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl$TruffleCompilationWrapper.performCompilation(TruffleCompilerImpl.java:546)
>     at
>
> org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl$TruffleCompilationWrapper.performCompilation(TruffleCompilerImpl.java:495)
>     at
>
> org.graalvm.compiler.core.CompilationWrapper.run(CompilationWrapper.java:169)
>     at
>
> org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl.doCompile(TruffleCompilerImpl.java:224)
>     at
>
> org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.doCompile(GraalTruffleRuntime.java:710)
>     at
>
> org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime$1.run(GraalTruffleRuntime.java:776)
>     at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>     at
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>     at
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>     at java.lang.Thread.run(Thread.java:748)
>     at org.graalvm.compiler.core.CompilerThread.run(CompilerThread.java:42)
>
> If I run each spec file individually I don't see the same error.
>
> --
> Rodrigo Botafogo
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL:
> http://oss.oracle.com/pipermail/graalvm-users/attachments/20180726/0792c5c8/attachment-0001.html
>
> ------------------------------
>
> Message: 2
> Date: Fri, 27 Jul 2018 17:52:45 +0200
> From: Stepan <stepan.sindelar at oracle.com>
> Subject: Re: [graalvm-users] Strange error
> To: graalvm-users at oss.oracle.com
> Message-ID: <9b0d497a-c3af-2282-515c-44be4adcc695 at oracle.com>
> Content-Type: text/plain; charset=utf-8; format=flowed
>
> Hi Rodrigo,
>
> this is indeed an inconsistency in how FastR was giving out its objects
> to other languages. It is fixed in the development version and will be
> fixed in the next release: your example should print "[3]" in both cases.
>
> For more details here is the description from changelog with few notes:
>
> * R code evaluated via interop never returns a Java primitive type, but
> always a vector
> * Vectors of size 1 that do not contain NA can be unboxed (i.e. you
> should be able to use them in Ruby anywhere where a primitive value is
> expected)
> * Sending the READ message to an atomic R vector (array subscript in
> most languages) gives
>    * Java primitive type as long as the value is not `NA`
>    * if the value is `NA`, a special value that responds to `IS_NULL`
> with `true`. If this value is passed back to R it behaves as `NA` again
> * Note that sending the READ message to a list, environment, or other
> heterogenous data structure never gives atomic Java type but a primitive
> R vector
> * Note: if you want to check for NA, the easiest is Polyglot.eval('R',
> 'is.na').execute(myvector) or Polyglot.eval('R',
> 'is.na').execute(myvector[0]). Both return a vector of booleans, but in
> the second case it will always contain single element.
>
> Best,
> Stepan
>
>
>
> ------------------------------
>
> _______________________________________________
> GraalVM-Users mailing list
> GraalVM-Users at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/graalvm-users
>
> End of GraalVM-Users Digest, Vol 4, Issue 11
> ********************************************
>


-- 
Rodrigo Botafogo
Integrando TI ao seu negócio
21-3010-4802/11-3010-1802
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://oss.oracle.com/pipermail/graalvm-users/attachments/20180731/0af64af8/attachment.html 


More information about the GraalVM-Users mailing list