Skip to content

QuickJSR 1.8.0 has broken Rstan #88

@barracuda156

Description

@barracuda156

@andrjohns Hi, Andrew!
Upgrading to QuickJSR 1.8.0 has broken Rstan for me. Examples:

--->  Building R-YPPE
xinstall: mkdir /opt/local/var/macports/build/_opt_local_var_macports_sources_macos-powerpc.org_macos-powerpc_R_ports_R_R-YPPE/R-YPPE/work/build
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_macos-powerpc.org_macos-powerpc_R_ports_R_R-YPPE/R-YPPE/work/YPPE" && /opt/local/bin/R CMD INSTALL . --library=/opt/local/var/macports/build/_opt_local_var_macports_sources_macos-powerpc.org_macos-powerpc_R_ports_R_R-YPPE/R-YPPE/work/build --install-tests 
* installing *source* package ‘YPPE’ ...
** this is package ‘YPPE’ version ‘1.0.1’
** package ‘YPPE’ successfully unpacked and MD5 sums checked
** using staged installation

 *** caught segfault ***
address 0xc1ab005, cause 'memory not mapped'

Traceback:
 1: qjs_source(ContextList$runtime_context_ptr, input = normalizePath(file),     is_file = TRUE)
 2: stanc_ctx$source(stanc_js)
 3: fun(libname, pkgname)
 4: doTryCatch(return(expr), name, parentenv, handler)
 5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 6: tryCatchList(expr, classes, parentenv, handlers)
 7: tryCatch(fun(libname, pkgname), error = identity)
 8: runHook(".onLoad", env, package.lib, package)
 9: loadNamespace(x)
10: FUN(X[[i]], ...)
11: lapply(X = X, FUN = FUN, ...)
12: sapply(stan_files, .make_cc, pkgdir = pkgdir)
13: rstantools::rstan_config()
An irrecoverable exception occurred. R is aborting now ...
./configure: line 4: 69501 Segmentation fault      "${R_HOME}/bin/Rscript" -e "rstantools::rstan_config()"
ERROR: configuration failed for package ‘YPPE’
* removing ‘/opt/local/var/macports/build/_opt_local_var_macports_sources_macos-powerpc.org_macos-powerpc_R_ports_R_R-YPPE/R-YPPE/work/build/YPPE’
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_macos-powerpc.org_macos-powerpc_R_ports_R_R-YPPE/R-YPPE/work/YPPE" && /opt/local/bin/R CMD INSTALL . --library=/opt/local/var/macports/build/_opt_local_var_macports_sources_macos-powerpc.org_macos-powerpc_R_ports_R_R-YPPE/R-YPPE/work/build --install-tests 
Exit code: 1
Error: Failed to build R-YPPE: command execution failed
--->  Building R-bayesforecast
xinstall: mkdir /opt/local/var/macports/build/_opt_local_ppcports_R_R-bayesforecast/R-bayesforecast/work/build
Executing:  cd "/opt/local/var/macports/build/_opt_local_ppcports_R_R-bayesforecast/R-bayesforecast/work/bayesforecast" && /opt/local/bin/R CMD INSTALL . --library=/opt/local/var/macports/build/_opt_local_ppcports_R_R-bayesforecast/R-bayesforecast/work/build --install-tests 
* installing *source* package ‘bayesforecast’ ...
** this is package ‘bayesforecast’ version ‘1.0.5’
** package ‘bayesforecast’ successfully unpacked and MD5 sums checked
** using staged installation

 *** caught illegal operation ***
address 0x301f7a8, cause 'illegal opcode'

Traceback:
 1: qjs_source(ContextList$runtime_context_ptr, input = normalizePath(file),     is_file = TRUE)
 2: stanc_ctx$source(stanc_js)
 3: fun(libname, pkgname)
 4: doTryCatch(return(expr), name, parentenv, handler)
 5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 6: tryCatchList(expr, classes, parentenv, handlers)
 7: tryCatch(fun(libname, pkgname), error = identity)
 8: runHook(".onLoad", env, package.lib, package)
 9: loadNamespace(x)
10: FUN(X[[i]], ...)
11: lapply(X = X, FUN = FUN, ...)
12: sapply(stan_files, .make_cc, pkgdir = pkgdir)
13: rstantools::rstan_config()
An irrecoverable exception occurred. R is aborting now ...
./configure: line 5: 68298 Illegal instruction     "${R_HOME}/bin/Rscript" -e "rstantools::rstan_config()"
ERROR: configuration failed for package ‘bayesforecast’
* removing ‘/opt/local/var/macports/build/_opt_local_ppcports_R_R-bayesforecast/R-bayesforecast/work/build/bayesforecast’
Command failed:  cd "/opt/local/var/macports/build/_opt_local_ppcports_R_R-bayesforecast/R-bayesforecast/work/bayesforecast" && /opt/local/bin/R CMD INSTALL . --library=/opt/local/var/macports/build/_opt_local_ppcports_R_R-bayesforecast/R-bayesforecast/work/build --install-tests 
Exit code: 1
Error: Failed to build R-bayesforecast: command execution failed

Reverting to 1.7.x fixes the issue, everything else remaining the same.

I see that 1.8.0 switched to quickjs-ng from quickjs. Does this change require rebuilding Rstan? If yes, then perhaps it should be updated in CRAN. If no, then how could I debug the cause of the breakage?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions