The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
crbcc is an R package that compiles R code to bytecode
using a C implementation. It is intended as a fast, drop-in alternative
to the base compiler package, for cases in which a reduced
compilation time could be beneficial, eg. in research. However using
crbcc for minor performance improvements inside R’s JIT
pipeline is also possible.
This project was developed as part of a bachelor’s thesis at FIT CTU.
When possible, crbcc mirrors the architecture and logic
used in the original GNU-R compiler package by Luke Tierney. The
original compiler Noweb document is available at
https://homepage.cs.uiowa.edu/~luke/R/compiler/compiler.pdf, or
distributed as an R base package, available under the GPL-2 license.
Most documentation provided in the document is relevant to
crbcc as well.
cmpfun tested on a corpus consisting of around 339,000
lines of codecrbcc::cmpfun()crbcc::compile()crbcc::cmpfile()crbcc::loadcmp()R CMD INSTALL .or with the provided Make target:
make installlibrary(crbcc)
f <- function(x) {
y <- x + 1
y * 2
}
cf <- cmpfun(f, options = list(optimize = 2))
cf(10)library(crbcc)
cmpfile("script.R", "script.Rc")
loadcmp("script.Rc", envir = .GlobalEnv)The compiler accepts options as a named list:
optimize (integer): optimization level
(default 2)suppressAll (logical): suppress warnings
(default TRUE)suppressNoSuperAssignVar (logical):
suppress missing super-assignment variable warningssuppressUndefined (logical or
character):
TRUE: suppress all undefined variable/function
warningsFALSE: suppress nonecharacter(): suppress specific namesExample:
opts <- list(
optimize = 2,
suppressAll = FALSE,
suppressUndefined = c("pi", "letters")
)
cf <- cmpfun(function(x) x + pi, options = opts)Contributions are welcome.
R CMD check .compiler package.cmpfile() currently does not support a functional
verbose mode (the argument exists but is not
implemented).These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.