[graalvm-users] Calling Ruby from R

Rodrigo Botafogo rodrigo.a.botafogo at gmail.com
Fri Sep 28 08:46:20 PDT 2018


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://oss.oracle.com/pipermail/graalvm-users/attachments/20180928/7c852bf4/attachment.html 


More information about the GraalVM-Users mailing list