[graalvm-users] Strange error
Stepan
stepan.sindelar at oracle.com
Fri Jul 27 08:52:45 PDT 2018
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
More information about the GraalVM-Users
mailing list