diff --git a/com.oracle.truffle.r.pkgs/graalvm/R/g.R b/com.oracle.truffle.r.pkgs/graalvm/R/g.R index 11190d265a2eae66b34b16136912e434a2645e2c..a39bb05199fd0a4c31a0846d32d718849cca4537 100644 --- a/com.oracle.truffle.r.pkgs/graalvm/R/g.R +++ b/com.oracle.truffle.r.pkgs/graalvm/R/g.R @@ -35,11 +35,16 @@ graalvm.status <- function() { #' @param port The port at which the GraalVM agent is listening #' @param rlibs The value of the FastR R_LIBS environmental variable. The default #' value is calculated as paste0(graalvm.home, "/language/R/library"). +#' @param javaOpts a character vector of Java options #' @examples #' graalvm.setup("~/work/graalvm-0.21") +#' # Running GraalVM in debug mode +#' graalvm.setup("~/work/graalvm-0.21", javaOpts = c("-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=y")) #' @export -graalvm.setup <- function(home, host = "localhost", port = 9876, rlibs = paste0(home, "/language/R/library")) { - options(graalvm.home = home, graalvm.host = host, graalvm.port = port, graalvm.rlibs = rlibs) +graalvm.setup <- function(home, host = "localhost", port = 9876, rlibs = paste0(home, "/language/R/library"), + javaOpts = character(0)) { + options(graalvm.home = home, graalvm.host = host, graalvm.port = port, graalvm.rlibs = rlibs, + graalvm.javaOpts = paste(sapply(javaOpts, function(opt) { paste0("-J'", opt, "'") }), collapse = " ")) } commandURL <- function(cmd) { @@ -70,8 +75,9 @@ graalvm.start <- function() { gHost <- getOption("graalvm.host"); gPort <- getOption("graalvm.port"); + javaOpts <- getOption("graalvm.javaOpts"); - nodeLaunchCmd <- paste0(libEnvVar, " ", gHome, "/bin/node ", serverScriptPath, " ", gHost, " ", gPort, " &") + nodeLaunchCmd <- paste0(libEnvVar, " ", gHome, "/bin/node ", javaOpts, " ", serverScriptPath, " ", gHost, " ", gPort, " &") system(nodeLaunchCmd, ignore.stdout = TRUE, ignore.stderr = TRUE) attempts <- 0L diff --git a/com.oracle.truffle.r.pkgs/graalvm/man/graalvm.Rd b/com.oracle.truffle.r.pkgs/graalvm/man/graalvm.Rd index a77541d69d508e1551913b79f81c471d5ad9db42..96c0d86c24f63bc09feff2103b15a36d0111a6cb 100644 --- a/com.oracle.truffle.r.pkgs/graalvm/man/graalvm.Rd +++ b/com.oracle.truffle.r.pkgs/graalvm/man/graalvm.Rd @@ -37,7 +37,7 @@ g.r("a1") g.js("a2") g.rb("$a3") -g(a1 = FALSE) +g(a1 <- FALSE) gget(a1) a1 diff --git a/com.oracle.truffle.r.pkgs/graalvm/man/graalvm.setup.Rd b/com.oracle.truffle.r.pkgs/graalvm/man/graalvm.setup.Rd index 9007932d6d936816d018cd3c0e24b8e3ec171a76..b79dbedb74454bf354303a725ae392e867eddcb7 100644 --- a/com.oracle.truffle.r.pkgs/graalvm/man/graalvm.setup.Rd +++ b/com.oracle.truffle.r.pkgs/graalvm/man/graalvm.setup.Rd @@ -5,7 +5,7 @@ \title{Set up the GraalVM agent} \usage{ graalvm.setup(home, host = "localhost", port = 9876, rlibs = paste0(home, - "/language/R/library")) + "/language/R/library"), javaOpts = character(0)) } \arguments{ \item{home}{The home folder of the GraalVM installation} @@ -16,10 +16,14 @@ graalvm.setup(home, host = "localhost", port = 9876, rlibs = paste0(home, \item{rlibs}{The value of the FastR R_LIBS environmental variable. The default value is calculated as paste0(graalvm.home, "/language/R/library").} + +\item{javaOpts}{a character vector of Java options} } \description{ Set up the GraalVM agent } \examples{ graalvm.setup("~/work/graalvm-0.21") +# Running GraalVM in debug mode +graalvm.setup("~/work/graalvm-0.21", javaOpts = c("-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=y")) }