218 lines
7.3 KiB
Plaintext
218 lines
7.3 KiB
Plaintext
### This is the system Rprofile file. It is always run on startup.
|
|
### Additional commands can be placed in site or user Rprofile files
|
|
### (see ?Rprofile).
|
|
|
|
### Copyright (C) 1995-2023 The R Core Team
|
|
|
|
### Notice that it is a bad idea to use this file as a template for
|
|
### personal startup files, since things will be executed twice and in
|
|
### the wrong environment (user profiles are run in .GlobalEnv).
|
|
|
|
.GlobalEnv <- globalenv()
|
|
attach(NULL, name = "Autoloads")
|
|
.AutoloadEnv <- as.environment(2)
|
|
assign(".Autoloaded", NULL, envir = .AutoloadEnv)
|
|
T <- TRUE
|
|
F <- FALSE
|
|
R.version <- structure(R.Version(), class = "simple.list")
|
|
version <- R.version # for S compatibility
|
|
|
|
## for backwards compatibility only
|
|
R.version.string <- R.version$version.string
|
|
|
|
## NOTA BENE: options() for non-base package functionality are in places like
|
|
## --------- ../utils/R/zzz.R
|
|
|
|
options(keep.source = interactive())
|
|
options(warn = 0)
|
|
# options(repos = c(CRAN="@CRAN@"))
|
|
# options(BIOC = "http://www.bioconductor.org")
|
|
|
|
## setting from an env variable added in 4.0.2
|
|
local({to <- as.integer(Sys.getenv("R_DEFAULT_INTERNET_TIMEOUT", 60))
|
|
if (is.na(to) || to <= 0) to <- 60L
|
|
options(timeout = to)
|
|
})
|
|
options(encoding = "native.enc")
|
|
options(show.error.messages = TRUE)
|
|
## keep in sync with PrintDefaults() in ../../main/print.c :
|
|
options(scipen = 0)
|
|
options(max.print = 99999)# max. #{entries} in internal printMatrix()
|
|
options(add.smooth = TRUE)# currently only used in 'plot.lm'
|
|
|
|
if(!interactive())
|
|
options(showErrorCalls = TRUE)
|
|
options(catch.script.errors = FALSE)
|
|
|
|
local({dp <- Sys.getenv("R_DEFAULT_PACKAGES")
|
|
if(identical(dp, "")) ## it fact methods is done first
|
|
dp <- c("datasets", "utils", "grDevices", "graphics",
|
|
"stats", "methods")
|
|
else if(identical(dp, "NULL")) dp <- character(0)
|
|
else dp <- strsplit(dp, ",")[[1]]
|
|
dp <- sub("[[:blank:]]*([[:alnum:]]+)", "\\1", dp) # strip whitespace
|
|
options(defaultPackages = dp)
|
|
})
|
|
|
|
## Expand R_LIBS_* environment variables.
|
|
Sys.setenv(R_LIBS_SITE =
|
|
.expand_R_libs_env_var(Sys.getenv("R_LIBS_SITE")))
|
|
Sys.setenv(R_LIBS_USER =
|
|
.expand_R_libs_env_var(Sys.getenv("R_LIBS_USER")))
|
|
|
|
local({
|
|
if(nzchar(tl <- Sys.getenv("R_SESSION_TIME_LIMIT_CPU")))
|
|
setSessionTimeLimit(cpu = tl)
|
|
if(nzchar(tl <- Sys.getenv("R_SESSION_TIME_LIMIT_ELAPSED")))
|
|
setSessionTimeLimit(elapsed = tl)
|
|
})
|
|
|
|
.First.sys <- function()
|
|
{
|
|
for(pkg in getOption("defaultPackages")) {
|
|
res <- require(pkg, quietly = TRUE, warn.conflicts = FALSE,
|
|
character.only = TRUE)
|
|
if(!res)
|
|
warning(gettextf('package %s in options("defaultPackages") was not found', sQuote(pkg)),
|
|
call. = FALSE, domain = NA)
|
|
}
|
|
}
|
|
|
|
## called at C level in the startup process prior to .First.sys
|
|
.OptRequireMethods <- function()
|
|
{
|
|
pkg <- "methods" # done this way to avoid R CMD check warning
|
|
if(pkg %in% getOption("defaultPackages"))
|
|
if(!require(pkg, quietly = TRUE, warn.conflicts = FALSE,
|
|
character.only = TRUE))
|
|
warning('package "methods" in options("defaultPackages") was not found',
|
|
call. = FALSE)
|
|
}
|
|
|
|
if(nzchar(Sys.getenv("R_BATCH"))) {
|
|
.Last.sys <- function()
|
|
{
|
|
cat("> proc.time()\n")
|
|
print(proc.time())
|
|
}
|
|
## avoid passing on to spawned R processes
|
|
## A system has been reported without Sys.unsetenv, so try this
|
|
try(Sys.setenv(R_BATCH=""))
|
|
}
|
|
|
|
local({
|
|
if(nzchar(rv <- Sys.getenv("_R_RNG_VERSION_")))
|
|
suppressWarnings(RNGversion(rv))
|
|
})
|
|
|
|
.sys.timezone <- NA_character_
|
|
|
|
local({
|
|
## create an active binding for .Library.site, so that it can be
|
|
## modified after the base environment is locked
|
|
|
|
## remove the binding in the lazyload data base
|
|
.Internal(mkUnbound(as.name(".Library.site")))
|
|
siteLibrary <- character()
|
|
slfun <- function(v) {
|
|
if (!missing(v))
|
|
siteLibrary <<- v
|
|
siteLibrary
|
|
}
|
|
|
|
makeActiveBinding(".Library.site", slfun, baseenv())
|
|
|
|
## make .Library.site accessible also from global environment to
|
|
## preserve functionality of site profiles assigning to it directly
|
|
## (originally, site profiles were run in base environment)
|
|
|
|
makeActiveBinding(".Library.site", slfun, globalenv())
|
|
})
|
|
###-*- R -*-
|
|
|
|
## this will break if R is on a network share
|
|
.Library <- file.path(chartr("\\", "/", R.home()), "library")
|
|
|
|
.Library.site <- Sys.getenv("R_LIBS_SITE")
|
|
if (!nzchar(.Library.site)) {
|
|
.Library.site <- .expand_R_libs_env_var('%S')
|
|
Sys.setenv(R_LIBS_SITE = .Library.site)
|
|
}
|
|
.Library.site <-
|
|
if(.Library.site == "NULL") character() else unlist(strsplit(.Library.site, ";"))
|
|
.Library.site <- .Library.site[file.exists(.Library.site)]
|
|
|
|
local({
|
|
libs <- Sys.getenv("R_LIBS_USER")
|
|
if (!nzchar(libs)) {
|
|
libs <- .expand_R_libs_env_var('%U')
|
|
Sys.setenv(R_LIBS_USER = libs)
|
|
}
|
|
libs <- if(libs == "NULL") character() else unlist(strsplit(libs, ";"))
|
|
invisible(.libPaths(c(unlist(strsplit(Sys.getenv("R_LIBS"), ";")),
|
|
libs)))
|
|
})
|
|
|
|
local({
|
|
popath <- Sys.getenv("R_TRANSLATIONS", "")
|
|
if(!nzchar(popath)) {
|
|
paths <- file.path(.libPaths(), "translations", "DESCRIPTION")
|
|
popath <- dirname(paths[file.exists(paths)][1])
|
|
}
|
|
bindtextdomain("R", popath)
|
|
bindtextdomain("R-base", popath)
|
|
bindtextdomain("RGui", popath)
|
|
assign(".popath", popath, .BaseNamespaceEnv)
|
|
})
|
|
|
|
if(nzchar(Sys.getenv("R_PAPERSIZE"))) {
|
|
options(papersize = Sys.getenv("R_PAPERSIZE"))
|
|
} else {
|
|
if(grepl("(canada|united.states)", Sys.getlocale("LC_MONETARY"),
|
|
ignore.case = TRUE)) options(papersize = "letter")
|
|
else options(papersize = "a4")
|
|
}
|
|
|
|
options(pager = if(length(grep("--ess", commandArgs()))) "console" else "internal",
|
|
useFancyQuotes = (.Platform$GUI == "Rgui"),
|
|
pdfviewer = Sys.getenv("R_PDFVIEWER", file.path(R.home("bin"), "open.exe")))
|
|
|
|
if(.Platform$GUI == "Rgui")
|
|
Sys.setenv(GFORTRAN_STDOUT_UNIT = "-1", GFORTRAN_STDERR_UNIT = "-1")
|
|
|
|
local({
|
|
br <- Sys.getenv("R_BROWSER", NA_character_)
|
|
if(!is.na(br)) options(browser = br)
|
|
tests_startup <- Sys.getenv("R_TESTS")
|
|
if(nzchar(tests_startup)) source(tests_startup)
|
|
ca_cert <- Sys.getenv("CURL_CA_BUNDLE", NA_character_)
|
|
if(is.na(ca_cert) &&
|
|
file.exists(ca_path <- file.path(R.home("etc"), "curl-ca-bundle.crt")))
|
|
Sys.setenv(CURL_CA_BUNDLE = ca_path)
|
|
})
|
|
|
|
local({
|
|
# keep in step with Rcmd_environ
|
|
setRtools44Path <- 0
|
|
setRtools44Path <- 1
|
|
|
|
if (setRtools44Path) {
|
|
aarch64 <- FALSE
|
|
# INSTALLER-BUILD-aarch64: aarch64 <- TRUE
|
|
|
|
if (aarch64) {
|
|
rthome <- Sys.getenv("RTOOLS44_AARCH64_HOME",
|
|
"c:/rtools44-aarch64")
|
|
rtpath <- paste0(rthome, "/aarch64-w64-mingw32.static.posix/bin;",
|
|
rthome, "/usr/bin")
|
|
} else {
|
|
rthome <- Sys.getenv("RTOOLS44_HOME", "c:/rtools44")
|
|
rtpath <- paste0(rthome, "/x86_64-w64-mingw32.static.posix/bin;",
|
|
rthome, "/usr/bin")
|
|
}
|
|
path <- Sys.getenv("R_CUSTOM_TOOLS_PATH", rtpath)
|
|
Sys.setenv(R_RTOOLS44_PATH = rtpath)
|
|
Sys.setenv(PATH = paste0(path, ";", Sys.getenv("PATH")))
|
|
}
|
|
})
|