[graalvm-users] Calling Ruby from R
Chris Seaton
chris.seaton at oracle.com
Mon Oct 1 08:19:12 PDT 2018
Thanks I’ve created an issue to track this and we’ll look at it soon.
https://github.com/oracle/truffleruby/issues/1434
> On 28 Sep 2018, at 16:46, Rodrigo Botafogo <rodrigo.a.botafogo at gmail.com> wrote:
>
> Hello...
>
> I have the following code:
>
> rf = Polyglot.eval("R", <<-R)
> function(ruby_obj) {
> print(ruby_obj);
> ruby_obj$to_s();
> }
> R
>
> h = [1, 2, 3, 4]
> puts h
>
> rf.call(h)
> puts h
>
> The result:
>
> 1
> 2
> 3
> 4
> [polyglot value]
> [1] 1 2 3 4
>
> An error occurred while loading ./specs/tmp.rb.
> Failure/Error: rf.call(h)
>
> RuntimeError:
> org.truffleruby.language.control.RaiseException: can't convert String into Integer with to_int (TypeError) (RInternalError)
> from com.oracle.truffle.r.nodes.function.FunctionDefinitionNode.execute(FunctionDefinitionNode.java:318)
> from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:269)
> from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callRoot(OptimizedCallTarget.java:258)
> from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callBoundary(OptimizedCallTarget.java:248)
> from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.doInvoke(OptimizedCallTarget.java:230)
> from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callDirect(OptimizedCallTarget.java:213)
> from org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.callProxy(OptimizedDirectCallNode.java:86)
> from org.graalvm.compiler.truffle.runtime.OptimizedDirectCallNode.call(OptimizedDirectCallNode.java:70)
> from com.oracle.truffle.r.nodes.function.call.CallRFunctionNode.execute(CallRFunctionNode.java:59)
> from com.oracle.truffle.r.nodes.function.RCallNode$DispatchedCallNode.execute(RCallNode.java:1155)
> Caused by:
> (eval):3:in `convert_type': can't convert String into Integer with to_int (TypeError)
> from (eval):3:in `rb_to_integer'
> from (eval):3:in `rb_to_int'
> from (eval):3:in `rb_num2long'
> from (eval):3:in `element_reference_fallback'
> from (eval):3:in `[]'
> from (eval):3:in `function(ruby_obj) {\n print(ruby_obj)'
> (exception java.lang.NullPointerException null org.truffleruby.language.backtrace.BacktraceFormatter.formatForeign(BacktraceFormatter.java:259)
> from /home/rbotafogo/desenv/cantata/specs/tmp.rb:35:in `<top (required)>'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb:2034:in `load'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb:2034:in `load'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb:2034:in `__send__'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb:2034:in `load_file_handling_errors'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb:1560:in `block in load_spec_files'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb:1558:in `each'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb:1558:in `load_spec_files'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:98:in `setup'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:86:in `run'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:71:in `run'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb:45:in `invoke'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/lib/ruby/gems/2.4.0/gems/rspec-core-3.8.0/exe/rspec:4:in `<top (required)>'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/bin/rspec:23:in `load'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/bin/rspec:23:in `load'
> from /home/rbotafogo/lib/graalvm-ce-1.0.0-rc6/jre/languages/ruby/bin/rspec:23:in `<main>'
> Translated to internal error
>
>
> --
> Rodrigo Botafogo
>
> _______________________________________________
> GraalVM-Users mailing list
> GraalVM-Users at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/graalvm-users
More information about the GraalVM-Users
mailing list