R Under development (unstable) (2023-06-30 r84625 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > source("incl/start.R") [18:01:20.257] plan(): Setting new future strategy stack: [18:01:20.259] List of future strategies: [18:01:20.259] 1. sequential: [18:01:20.259] - args: function (..., envir = parent.frame()) [18:01:20.259] - tweaked: FALSE [18:01:20.259] - call: future::plan("sequential") [18:01:20.274] plan(): nbrOfWorkers() = 1 > library("listenv") > > for (cores in 1:availCores) { + ## Speed up CRAN checks: Skip on CRAN Windows 32-bit + if (!fullTest && isWin32) next + + message(sprintf("Testing with %d cores ...", cores)) + options(mc.cores = cores) + + message("*** Global argument '...' ...") + + sum_fcns <- list() + + sum_fcns$A <- function(x, ...) { + message("Arguments '...' exists: ", exists("...", inherits = TRUE)) + y %<-% { sum(x, ...) } + y + } + + + sum_fcns$B <- function(x, ...) { + sumt <- function(x) { + message("Arguments '...' exists: ", exists("...", inherits = TRUE)) + y %<-% { sum(x, ...) } + y + } + sumt(x) + } + + sum_fcns$C <- function(x, y) { + message("Arguments '...' exists: ", exists("...", inherits = TRUE)) + y %<-% { sum(x, y) } + y + } + + sum_fcns$D <- function(x, y) { + message("Arguments '...' exists: ", exists("...", inherits = TRUE)) + y %<-% { sum(x, y, ...) } + y + } + + ## Issue/PR #400: Emulate how '...' may be used by the 'rlang' package + sum_fcns$E <- function(...) { + message("Arguments '...' exists: ", exists("...", inherits = TRUE)) + + ## Grab '...' into a Globals object + globals <- globals::globalsByName("...", envir=environment()) + + ## Evaluate an expression with '...' in an environment that does not + ## have an '...' object - hence the parent.frame(). This will produce + ## an error unless we pass 'globals' which contains '...' + f <- future({ + fcn <- function() sum(...) + fcn() + }, envir = parent.frame(), globals = globals) + y <- value(f) + y + } + + ## Issue: https://github.com/HenrikBengtsson/globals/issues/72 + sum_fcns$F <- function(x, y) { + message("Using '...' in a formula") + + fcn <- function(x, y) { + z = ~ list(...) + sum(x, y) + } + + f <- future(fcn(x, y)) + y <- value(f) + y + } + + + for (strategy in supportedStrategies(cores)) { + message(sprintf("- plan('%s') ...", strategy)) + plan(strategy, substitute = FALSE) + + for (name in names(sum_fcns)) { + message(sprintf("** Sum function '%s' with plan('%s') ...", name, strategy)) + sum_fcn <- sum_fcns[[name]] + print(sum_fcn) + y <- try(sum_fcn(1:2, 3)) + print(y) + if (name %in% c("D")) { + stopifnot(inherits(y, "try-error")) + } else { + stopifnot(y == 6) + } + } + } + + message(sprintf("Testing with %d cores ... DONE", cores)) + } ## for (cores ...) Testing with 1 cores ... *** Global argument '...' ... - plan('sequential') ... [18:01:20.331] plan(): Setting new future strategy stack: [18:01:20.332] List of future strategies: [18:01:20.332] 1. sequential: [18:01:20.332] - args: function (..., envir = parent.frame()) [18:01:20.332] - tweaked: FALSE [18:01:20.332] - call: plan(strategy, substitute = FALSE) [18:01:20.345] plan(): nbrOfWorkers() = 1 ** Sum function 'A' with plan('sequential') ... function (x, ...) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) y %<-% { sum(x, ...) } y } Arguments '...' exists: TRUE [18:01:20.347] getGlobalsAndPackages() ... [18:01:20.348] Searching for globals... [18:01:20.356] - globals found: [4] '{', 'sum', 'x', '...' [18:01:20.356] Searching for globals ... DONE [18:01:20.356] Resolving globals: FALSE [18:01:20.356] Tweak future expression to call with '...' arguments ... [18:01:20.357] { [18:01:20.357] do.call(function(...) { [18:01:20.357] sum(x, ...) [18:01:20.357] }, args = future.call.arguments) [18:01:20.357] } [18:01:20.357] Tweak future expression to call with '...' arguments ... DONE [18:01:20.359] The total size of the 2 globals is 112 bytes (112 bytes) [18:01:20.359] The total size of the 2 globals exported for future expression ('{; sum(x, ...); }') is 112 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'x' (56 bytes of class 'numeric') and 'future.call.arguments' (56 bytes of class 'list') [18:01:20.359] - globals: [2] 'x', 'future.call.arguments' [18:01:20.360] [18:01:20.360] getGlobalsAndPackages() ... DONE [18:01:20.361] run() for 'Future' ... [18:01:20.361] - state: 'created' [18:01:20.361] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:01:20.362] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:01:20.362] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:01:20.362] - Field: 'label' [18:01:20.362] - Field: 'local' [18:01:20.362] - Field: 'owner' [18:01:20.362] - Field: 'envir' [18:01:20.363] - Field: 'packages' [18:01:20.363] - Field: 'gc' [18:01:20.363] - Field: 'conditions' [18:01:20.363] - Field: 'expr' [18:01:20.363] - Field: 'uuid' [18:01:20.364] - Field: 'seed' [18:01:20.364] - Field: 'version' [18:01:20.364] - Field: 'result' [18:01:20.364] - Field: 'asynchronous' [18:01:20.364] - Field: 'calls' [18:01:20.364] - Field: 'globals' [18:01:20.365] - Field: 'stdout' [18:01:20.365] - Field: 'earlySignal' [18:01:20.365] - Field: 'lazy' [18:01:20.365] - Field: 'state' [18:01:20.365] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:01:20.366] - Launch lazy future ... [18:01:20.366] Packages needed by the future expression (n = 0): [18:01:20.367] Packages needed by future strategies (n = 0): [18:01:20.368] { [18:01:20.368] { [18:01:20.368] { [18:01:20.368] ...future.startTime <- base::Sys.time() [18:01:20.368] { [18:01:20.368] { [18:01:20.368] { [18:01:20.368] base::local({ [18:01:20.368] has_future <- base::requireNamespace("future", [18:01:20.368] quietly = TRUE) [18:01:20.368] if (has_future) { [18:01:20.368] ns <- base::getNamespace("future") [18:01:20.368] version <- ns[[".package"]][["version"]] [18:01:20.368] if (is.null(version)) [18:01:20.368] version <- utils::packageVersion("future") [18:01:20.368] } [18:01:20.368] else { [18:01:20.368] version <- NULL [18:01:20.368] } [18:01:20.368] if (!has_future || version < "1.8.0") { [18:01:20.368] info <- base::c(r_version = base::gsub("R version ", [18:01:20.368] "", base::R.version$version.string), [18:01:20.368] platform = base::sprintf("%s (%s-bit)", [18:01:20.368] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:20.368] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:20.368] "release", "version")], collapse = " "), [18:01:20.368] hostname = base::Sys.info()[["nodename"]]) [18:01:20.368] info <- base::sprintf("%s: %s", base::names(info), [18:01:20.368] info) [18:01:20.368] info <- base::paste(info, collapse = "; ") [18:01:20.368] if (!has_future) { [18:01:20.368] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:20.368] info) [18:01:20.368] } [18:01:20.368] else { [18:01:20.368] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:20.368] info, version) [18:01:20.368] } [18:01:20.368] base::stop(msg) [18:01:20.368] } [18:01:20.368] }) [18:01:20.368] } [18:01:20.368] options(future.plan = NULL) [18:01:20.368] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.368] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:20.368] } [18:01:20.368] ...future.workdir <- getwd() [18:01:20.368] } [18:01:20.368] ...future.oldOptions <- base::as.list(base::.Options) [18:01:20.368] ...future.oldEnvVars <- base::Sys.getenv() [18:01:20.368] } [18:01:20.368] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:20.368] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:20.368] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:20.368] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:20.368] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:20.368] future.stdout.windows.reencode = NULL, width = 80L) [18:01:20.368] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:20.368] base::names(...future.oldOptions)) [18:01:20.368] } [18:01:20.368] if (FALSE) { [18:01:20.368] } [18:01:20.368] else { [18:01:20.368] if (TRUE) { [18:01:20.368] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:20.368] open = "w") [18:01:20.368] } [18:01:20.368] else { [18:01:20.368] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:20.368] windows = "NUL", "/dev/null"), open = "w") [18:01:20.368] } [18:01:20.368] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:20.368] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:20.368] base::sink(type = "output", split = FALSE) [18:01:20.368] base::close(...future.stdout) [18:01:20.368] }, add = TRUE) [18:01:20.368] } [18:01:20.368] ...future.frame <- base::sys.nframe() [18:01:20.368] ...future.conditions <- base::list() [18:01:20.368] ...future.rng <- base::globalenv()$.Random.seed [18:01:20.368] if (FALSE) { [18:01:20.368] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:20.368] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:20.368] } [18:01:20.368] ...future.result <- base::tryCatch({ [18:01:20.368] base::withCallingHandlers({ [18:01:20.368] ...future.value <- base::withVisible(base::local({ [18:01:20.368] do.call(function(...) { [18:01:20.368] sum(x, ...) [18:01:20.368] }, args = future.call.arguments) [18:01:20.368] })) [18:01:20.368] future::FutureResult(value = ...future.value$value, [18:01:20.368] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.368] ...future.rng), globalenv = if (FALSE) [18:01:20.368] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:20.368] ...future.globalenv.names)) [18:01:20.368] else NULL, started = ...future.startTime, version = "1.8") [18:01:20.368] }, condition = base::local({ [18:01:20.368] c <- base::c [18:01:20.368] inherits <- base::inherits [18:01:20.368] invokeRestart <- base::invokeRestart [18:01:20.368] length <- base::length [18:01:20.368] list <- base::list [18:01:20.368] seq.int <- base::seq.int [18:01:20.368] signalCondition <- base::signalCondition [18:01:20.368] sys.calls <- base::sys.calls [18:01:20.368] `[[` <- base::`[[` [18:01:20.368] `+` <- base::`+` [18:01:20.368] `<<-` <- base::`<<-` [18:01:20.368] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:20.368] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:20.368] 3L)] [18:01:20.368] } [18:01:20.368] function(cond) { [18:01:20.368] is_error <- inherits(cond, "error") [18:01:20.368] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:20.368] NULL) [18:01:20.368] if (is_error) { [18:01:20.368] sessionInformation <- function() { [18:01:20.368] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:20.368] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:20.368] search = base::search(), system = base::Sys.info()) [18:01:20.368] } [18:01:20.368] ...future.conditions[[length(...future.conditions) + [18:01:20.368] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:20.368] cond$call), session = sessionInformation(), [18:01:20.368] timestamp = base::Sys.time(), signaled = 0L) [18:01:20.368] signalCondition(cond) [18:01:20.368] } [18:01:20.368] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:20.368] "immediateCondition"))) { [18:01:20.368] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:20.368] ...future.conditions[[length(...future.conditions) + [18:01:20.368] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:20.368] if (TRUE && !signal) { [18:01:20.368] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.368] { [18:01:20.368] inherits <- base::inherits [18:01:20.368] invokeRestart <- base::invokeRestart [18:01:20.368] is.null <- base::is.null [18:01:20.368] muffled <- FALSE [18:01:20.368] if (inherits(cond, "message")) { [18:01:20.368] muffled <- grepl(pattern, "muffleMessage") [18:01:20.368] if (muffled) [18:01:20.368] invokeRestart("muffleMessage") [18:01:20.368] } [18:01:20.368] else if (inherits(cond, "warning")) { [18:01:20.368] muffled <- grepl(pattern, "muffleWarning") [18:01:20.368] if (muffled) [18:01:20.368] invokeRestart("muffleWarning") [18:01:20.368] } [18:01:20.368] else if (inherits(cond, "condition")) { [18:01:20.368] if (!is.null(pattern)) { [18:01:20.368] computeRestarts <- base::computeRestarts [18:01:20.368] grepl <- base::grepl [18:01:20.368] restarts <- computeRestarts(cond) [18:01:20.368] for (restart in restarts) { [18:01:20.368] name <- restart$name [18:01:20.368] if (is.null(name)) [18:01:20.368] next [18:01:20.368] if (!grepl(pattern, name)) [18:01:20.368] next [18:01:20.368] invokeRestart(restart) [18:01:20.368] muffled <- TRUE [18:01:20.368] break [18:01:20.368] } [18:01:20.368] } [18:01:20.368] } [18:01:20.368] invisible(muffled) [18:01:20.368] } [18:01:20.368] muffleCondition(cond, pattern = "^muffle") [18:01:20.368] } [18:01:20.368] } [18:01:20.368] else { [18:01:20.368] if (TRUE) { [18:01:20.368] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.368] { [18:01:20.368] inherits <- base::inherits [18:01:20.368] invokeRestart <- base::invokeRestart [18:01:20.368] is.null <- base::is.null [18:01:20.368] muffled <- FALSE [18:01:20.368] if (inherits(cond, "message")) { [18:01:20.368] muffled <- grepl(pattern, "muffleMessage") [18:01:20.368] if (muffled) [18:01:20.368] invokeRestart("muffleMessage") [18:01:20.368] } [18:01:20.368] else if (inherits(cond, "warning")) { [18:01:20.368] muffled <- grepl(pattern, "muffleWarning") [18:01:20.368] if (muffled) [18:01:20.368] invokeRestart("muffleWarning") [18:01:20.368] } [18:01:20.368] else if (inherits(cond, "condition")) { [18:01:20.368] if (!is.null(pattern)) { [18:01:20.368] computeRestarts <- base::computeRestarts [18:01:20.368] grepl <- base::grepl [18:01:20.368] restarts <- computeRestarts(cond) [18:01:20.368] for (restart in restarts) { [18:01:20.368] name <- restart$name [18:01:20.368] if (is.null(name)) [18:01:20.368] next [18:01:20.368] if (!grepl(pattern, name)) [18:01:20.368] next [18:01:20.368] invokeRestart(restart) [18:01:20.368] muffled <- TRUE [18:01:20.368] break [18:01:20.368] } [18:01:20.368] } [18:01:20.368] } [18:01:20.368] invisible(muffled) [18:01:20.368] } [18:01:20.368] muffleCondition(cond, pattern = "^muffle") [18:01:20.368] } [18:01:20.368] } [18:01:20.368] } [18:01:20.368] })) [18:01:20.368] }, error = function(ex) { [18:01:20.368] base::structure(base::list(value = NULL, visible = NULL, [18:01:20.368] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.368] ...future.rng), started = ...future.startTime, [18:01:20.368] finished = Sys.time(), session_uuid = NA_character_, [18:01:20.368] version = "1.8"), class = "FutureResult") [18:01:20.368] }, finally = { [18:01:20.368] if (!identical(...future.workdir, getwd())) [18:01:20.368] setwd(...future.workdir) [18:01:20.368] { [18:01:20.368] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:20.368] ...future.oldOptions$nwarnings <- NULL [18:01:20.368] } [18:01:20.368] base::options(...future.oldOptions) [18:01:20.368] if (.Platform$OS.type == "windows") { [18:01:20.368] old_names <- names(...future.oldEnvVars) [18:01:20.368] envs <- base::Sys.getenv() [18:01:20.368] names <- names(envs) [18:01:20.368] common <- intersect(names, old_names) [18:01:20.368] added <- setdiff(names, old_names) [18:01:20.368] removed <- setdiff(old_names, names) [18:01:20.368] changed <- common[...future.oldEnvVars[common] != [18:01:20.368] envs[common]] [18:01:20.368] NAMES <- toupper(changed) [18:01:20.368] args <- list() [18:01:20.368] for (kk in seq_along(NAMES)) { [18:01:20.368] name <- changed[[kk]] [18:01:20.368] NAME <- NAMES[[kk]] [18:01:20.368] if (name != NAME && is.element(NAME, old_names)) [18:01:20.368] next [18:01:20.368] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.368] } [18:01:20.368] NAMES <- toupper(added) [18:01:20.368] for (kk in seq_along(NAMES)) { [18:01:20.368] name <- added[[kk]] [18:01:20.368] NAME <- NAMES[[kk]] [18:01:20.368] if (name != NAME && is.element(NAME, old_names)) [18:01:20.368] next [18:01:20.368] args[[name]] <- "" [18:01:20.368] } [18:01:20.368] NAMES <- toupper(removed) [18:01:20.368] for (kk in seq_along(NAMES)) { [18:01:20.368] name <- removed[[kk]] [18:01:20.368] NAME <- NAMES[[kk]] [18:01:20.368] if (name != NAME && is.element(NAME, old_names)) [18:01:20.368] next [18:01:20.368] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.368] } [18:01:20.368] if (length(args) > 0) [18:01:20.368] base::do.call(base::Sys.setenv, args = args) [18:01:20.368] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:20.368] } [18:01:20.368] else { [18:01:20.368] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:20.368] } [18:01:20.368] { [18:01:20.368] if (base::length(...future.futureOptionsAdded) > [18:01:20.368] 0L) { [18:01:20.368] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:20.368] base::names(opts) <- ...future.futureOptionsAdded [18:01:20.368] base::options(opts) [18:01:20.368] } [18:01:20.368] { [18:01:20.368] { [18:01:20.368] NULL [18:01:20.368] RNGkind("Mersenne-Twister") [18:01:20.368] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:01:20.368] inherits = FALSE) [18:01:20.368] } [18:01:20.368] options(future.plan = NULL) [18:01:20.368] if (is.na(NA_character_)) [18:01:20.368] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.368] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:20.368] future::plan(list(function (..., envir = parent.frame()) [18:01:20.368] { [18:01:20.368] future <- SequentialFuture(..., envir = envir) [18:01:20.368] if (!future$lazy) [18:01:20.368] future <- run(future) [18:01:20.368] invisible(future) [18:01:20.368] }), .cleanup = FALSE, .init = FALSE) [18:01:20.368] } [18:01:20.368] } [18:01:20.368] } [18:01:20.368] }) [18:01:20.368] if (TRUE) { [18:01:20.368] base::sink(type = "output", split = FALSE) [18:01:20.368] if (TRUE) { [18:01:20.368] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:20.368] } [18:01:20.368] else { [18:01:20.368] ...future.result["stdout"] <- base::list(NULL) [18:01:20.368] } [18:01:20.368] base::close(...future.stdout) [18:01:20.368] ...future.stdout <- NULL [18:01:20.368] } [18:01:20.368] ...future.result$conditions <- ...future.conditions [18:01:20.368] ...future.result$finished <- base::Sys.time() [18:01:20.368] ...future.result [18:01:20.368] } [18:01:20.372] assign_globals() ... [18:01:20.372] List of 2 [18:01:20.372] $ x : int [1:2] 1 2 [18:01:20.372] $ future.call.arguments:List of 1 [18:01:20.372] ..$ : num 3 [18:01:20.372] ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:01:20.372] - attr(*, "where")=List of 2 [18:01:20.372] ..$ x : [18:01:20.372] ..$ future.call.arguments: [18:01:20.372] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:01:20.372] - attr(*, "resolved")= logi FALSE [18:01:20.372] - attr(*, "total_size")= num 112 [18:01:20.372] - attr(*, "already-done")= logi TRUE [18:01:20.379] - copied 'x' to environment [18:01:20.379] - copied 'future.call.arguments' to environment [18:01:20.380] assign_globals() ... done [18:01:20.380] plan(): Setting new future strategy stack: [18:01:20.380] List of future strategies: [18:01:20.380] 1. sequential: [18:01:20.380] - args: function (..., envir = parent.frame()) [18:01:20.380] - tweaked: FALSE [18:01:20.380] - call: NULL [18:01:20.381] plan(): nbrOfWorkers() = 1 [18:01:20.383] plan(): Setting new future strategy stack: [18:01:20.383] List of future strategies: [18:01:20.383] 1. sequential: [18:01:20.383] - args: function (..., envir = parent.frame()) [18:01:20.383] - tweaked: FALSE [18:01:20.383] - call: plan(strategy, substitute = FALSE) [18:01:20.384] plan(): nbrOfWorkers() = 1 [18:01:20.384] SequentialFuture started (and completed) [18:01:20.384] - Launch lazy future ... done [18:01:20.385] run() for 'SequentialFuture' ... done [1] 6 ** Sum function 'B' with plan('sequential') ... function (x, ...) { sumt <- function(x) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) y %<-% { sum(x, ...) } y } sumt(x) } Arguments '...' exists: TRUE [18:01:20.386] getGlobalsAndPackages() ... [18:01:20.386] Searching for globals... [18:01:20.390] - globals found: [4] '{', 'sum', 'x', '...' [18:01:20.390] Searching for globals ... DONE [18:01:20.390] Resolving globals: FALSE [18:01:20.390] Tweak future expression to call with '...' arguments ... [18:01:20.390] { [18:01:20.390] do.call(function(...) { [18:01:20.390] sum(x, ...) [18:01:20.390] }, args = future.call.arguments) [18:01:20.390] } [18:01:20.391] Tweak future expression to call with '...' arguments ... DONE [18:01:20.391] The total size of the 2 globals is 112 bytes (112 bytes) [18:01:20.392] The total size of the 2 globals exported for future expression ('{; sum(x, ...); }') is 112 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'x' (56 bytes of class 'numeric') and 'future.call.arguments' (56 bytes of class 'list') [18:01:20.392] - globals: [2] 'x', 'future.call.arguments' [18:01:20.392] [18:01:20.392] getGlobalsAndPackages() ... DONE [18:01:20.393] run() for 'Future' ... [18:01:20.393] - state: 'created' [18:01:20.393] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:01:20.393] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:01:20.394] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:01:20.394] - Field: 'label' [18:01:20.394] - Field: 'local' [18:01:20.394] - Field: 'owner' [18:01:20.394] - Field: 'envir' [18:01:20.394] - Field: 'packages' [18:01:20.395] - Field: 'gc' [18:01:20.395] - Field: 'conditions' [18:01:20.395] - Field: 'expr' [18:01:20.395] - Field: 'uuid' [18:01:20.395] - Field: 'seed' [18:01:20.395] - Field: 'version' [18:01:20.396] - Field: 'result' [18:01:20.396] - Field: 'asynchronous' [18:01:20.396] - Field: 'calls' [18:01:20.396] - Field: 'globals' [18:01:20.396] - Field: 'stdout' [18:01:20.397] - Field: 'earlySignal' [18:01:20.397] - Field: 'lazy' [18:01:20.397] - Field: 'state' [18:01:20.397] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:01:20.397] - Launch lazy future ... [18:01:20.397] Packages needed by the future expression (n = 0): [18:01:20.398] Packages needed by future strategies (n = 0): [18:01:20.398] { [18:01:20.398] { [18:01:20.398] { [18:01:20.398] ...future.startTime <- base::Sys.time() [18:01:20.398] { [18:01:20.398] { [18:01:20.398] { [18:01:20.398] base::local({ [18:01:20.398] has_future <- base::requireNamespace("future", [18:01:20.398] quietly = TRUE) [18:01:20.398] if (has_future) { [18:01:20.398] ns <- base::getNamespace("future") [18:01:20.398] version <- ns[[".package"]][["version"]] [18:01:20.398] if (is.null(version)) [18:01:20.398] version <- utils::packageVersion("future") [18:01:20.398] } [18:01:20.398] else { [18:01:20.398] version <- NULL [18:01:20.398] } [18:01:20.398] if (!has_future || version < "1.8.0") { [18:01:20.398] info <- base::c(r_version = base::gsub("R version ", [18:01:20.398] "", base::R.version$version.string), [18:01:20.398] platform = base::sprintf("%s (%s-bit)", [18:01:20.398] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:20.398] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:20.398] "release", "version")], collapse = " "), [18:01:20.398] hostname = base::Sys.info()[["nodename"]]) [18:01:20.398] info <- base::sprintf("%s: %s", base::names(info), [18:01:20.398] info) [18:01:20.398] info <- base::paste(info, collapse = "; ") [18:01:20.398] if (!has_future) { [18:01:20.398] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:20.398] info) [18:01:20.398] } [18:01:20.398] else { [18:01:20.398] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:20.398] info, version) [18:01:20.398] } [18:01:20.398] base::stop(msg) [18:01:20.398] } [18:01:20.398] }) [18:01:20.398] } [18:01:20.398] options(future.plan = NULL) [18:01:20.398] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.398] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:20.398] } [18:01:20.398] ...future.workdir <- getwd() [18:01:20.398] } [18:01:20.398] ...future.oldOptions <- base::as.list(base::.Options) [18:01:20.398] ...future.oldEnvVars <- base::Sys.getenv() [18:01:20.398] } [18:01:20.398] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:20.398] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:20.398] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:20.398] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:20.398] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:20.398] future.stdout.windows.reencode = NULL, width = 80L) [18:01:20.398] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:20.398] base::names(...future.oldOptions)) [18:01:20.398] } [18:01:20.398] if (FALSE) { [18:01:20.398] } [18:01:20.398] else { [18:01:20.398] if (TRUE) { [18:01:20.398] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:20.398] open = "w") [18:01:20.398] } [18:01:20.398] else { [18:01:20.398] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:20.398] windows = "NUL", "/dev/null"), open = "w") [18:01:20.398] } [18:01:20.398] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:20.398] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:20.398] base::sink(type = "output", split = FALSE) [18:01:20.398] base::close(...future.stdout) [18:01:20.398] }, add = TRUE) [18:01:20.398] } [18:01:20.398] ...future.frame <- base::sys.nframe() [18:01:20.398] ...future.conditions <- base::list() [18:01:20.398] ...future.rng <- base::globalenv()$.Random.seed [18:01:20.398] if (FALSE) { [18:01:20.398] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:20.398] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:20.398] } [18:01:20.398] ...future.result <- base::tryCatch({ [18:01:20.398] base::withCallingHandlers({ [18:01:20.398] ...future.value <- base::withVisible(base::local({ [18:01:20.398] do.call(function(...) { [18:01:20.398] sum(x, ...) [18:01:20.398] }, args = future.call.arguments) [18:01:20.398] })) [18:01:20.398] future::FutureResult(value = ...future.value$value, [18:01:20.398] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.398] ...future.rng), globalenv = if (FALSE) [18:01:20.398] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:20.398] ...future.globalenv.names)) [18:01:20.398] else NULL, started = ...future.startTime, version = "1.8") [18:01:20.398] }, condition = base::local({ [18:01:20.398] c <- base::c [18:01:20.398] inherits <- base::inherits [18:01:20.398] invokeRestart <- base::invokeRestart [18:01:20.398] length <- base::length [18:01:20.398] list <- base::list [18:01:20.398] seq.int <- base::seq.int [18:01:20.398] signalCondition <- base::signalCondition [18:01:20.398] sys.calls <- base::sys.calls [18:01:20.398] `[[` <- base::`[[` [18:01:20.398] `+` <- base::`+` [18:01:20.398] `<<-` <- base::`<<-` [18:01:20.398] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:20.398] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:20.398] 3L)] [18:01:20.398] } [18:01:20.398] function(cond) { [18:01:20.398] is_error <- inherits(cond, "error") [18:01:20.398] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:20.398] NULL) [18:01:20.398] if (is_error) { [18:01:20.398] sessionInformation <- function() { [18:01:20.398] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:20.398] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:20.398] search = base::search(), system = base::Sys.info()) [18:01:20.398] } [18:01:20.398] ...future.conditions[[length(...future.conditions) + [18:01:20.398] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:20.398] cond$call), session = sessionInformation(), [18:01:20.398] timestamp = base::Sys.time(), signaled = 0L) [18:01:20.398] signalCondition(cond) [18:01:20.398] } [18:01:20.398] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:20.398] "immediateCondition"))) { [18:01:20.398] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:20.398] ...future.conditions[[length(...future.conditions) + [18:01:20.398] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:20.398] if (TRUE && !signal) { [18:01:20.398] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.398] { [18:01:20.398] inherits <- base::inherits [18:01:20.398] invokeRestart <- base::invokeRestart [18:01:20.398] is.null <- base::is.null [18:01:20.398] muffled <- FALSE [18:01:20.398] if (inherits(cond, "message")) { [18:01:20.398] muffled <- grepl(pattern, "muffleMessage") [18:01:20.398] if (muffled) [18:01:20.398] invokeRestart("muffleMessage") [18:01:20.398] } [18:01:20.398] else if (inherits(cond, "warning")) { [18:01:20.398] muffled <- grepl(pattern, "muffleWarning") [18:01:20.398] if (muffled) [18:01:20.398] invokeRestart("muffleWarning") [18:01:20.398] } [18:01:20.398] else if (inherits(cond, "condition")) { [18:01:20.398] if (!is.null(pattern)) { [18:01:20.398] computeRestarts <- base::computeRestarts [18:01:20.398] grepl <- base::grepl [18:01:20.398] restarts <- computeRestarts(cond) [18:01:20.398] for (restart in restarts) { [18:01:20.398] name <- restart$name [18:01:20.398] if (is.null(name)) [18:01:20.398] next [18:01:20.398] if (!grepl(pattern, name)) [18:01:20.398] next [18:01:20.398] invokeRestart(restart) [18:01:20.398] muffled <- TRUE [18:01:20.398] break [18:01:20.398] } [18:01:20.398] } [18:01:20.398] } [18:01:20.398] invisible(muffled) [18:01:20.398] } [18:01:20.398] muffleCondition(cond, pattern = "^muffle") [18:01:20.398] } [18:01:20.398] } [18:01:20.398] else { [18:01:20.398] if (TRUE) { [18:01:20.398] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.398] { [18:01:20.398] inherits <- base::inherits [18:01:20.398] invokeRestart <- base::invokeRestart [18:01:20.398] is.null <- base::is.null [18:01:20.398] muffled <- FALSE [18:01:20.398] if (inherits(cond, "message")) { [18:01:20.398] muffled <- grepl(pattern, "muffleMessage") [18:01:20.398] if (muffled) [18:01:20.398] invokeRestart("muffleMessage") [18:01:20.398] } [18:01:20.398] else if (inherits(cond, "warning")) { [18:01:20.398] muffled <- grepl(pattern, "muffleWarning") [18:01:20.398] if (muffled) [18:01:20.398] invokeRestart("muffleWarning") [18:01:20.398] } [18:01:20.398] else if (inherits(cond, "condition")) { [18:01:20.398] if (!is.null(pattern)) { [18:01:20.398] computeRestarts <- base::computeRestarts [18:01:20.398] grepl <- base::grepl [18:01:20.398] restarts <- computeRestarts(cond) [18:01:20.398] for (restart in restarts) { [18:01:20.398] name <- restart$name [18:01:20.398] if (is.null(name)) [18:01:20.398] next [18:01:20.398] if (!grepl(pattern, name)) [18:01:20.398] next [18:01:20.398] invokeRestart(restart) [18:01:20.398] muffled <- TRUE [18:01:20.398] break [18:01:20.398] } [18:01:20.398] } [18:01:20.398] } [18:01:20.398] invisible(muffled) [18:01:20.398] } [18:01:20.398] muffleCondition(cond, pattern = "^muffle") [18:01:20.398] } [18:01:20.398] } [18:01:20.398] } [18:01:20.398] })) [18:01:20.398] }, error = function(ex) { [18:01:20.398] base::structure(base::list(value = NULL, visible = NULL, [18:01:20.398] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.398] ...future.rng), started = ...future.startTime, [18:01:20.398] finished = Sys.time(), session_uuid = NA_character_, [18:01:20.398] version = "1.8"), class = "FutureResult") [18:01:20.398] }, finally = { [18:01:20.398] if (!identical(...future.workdir, getwd())) [18:01:20.398] setwd(...future.workdir) [18:01:20.398] { [18:01:20.398] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:20.398] ...future.oldOptions$nwarnings <- NULL [18:01:20.398] } [18:01:20.398] base::options(...future.oldOptions) [18:01:20.398] if (.Platform$OS.type == "windows") { [18:01:20.398] old_names <- names(...future.oldEnvVars) [18:01:20.398] envs <- base::Sys.getenv() [18:01:20.398] names <- names(envs) [18:01:20.398] common <- intersect(names, old_names) [18:01:20.398] added <- setdiff(names, old_names) [18:01:20.398] removed <- setdiff(old_names, names) [18:01:20.398] changed <- common[...future.oldEnvVars[common] != [18:01:20.398] envs[common]] [18:01:20.398] NAMES <- toupper(changed) [18:01:20.398] args <- list() [18:01:20.398] for (kk in seq_along(NAMES)) { [18:01:20.398] name <- changed[[kk]] [18:01:20.398] NAME <- NAMES[[kk]] [18:01:20.398] if (name != NAME && is.element(NAME, old_names)) [18:01:20.398] next [18:01:20.398] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.398] } [18:01:20.398] NAMES <- toupper(added) [18:01:20.398] for (kk in seq_along(NAMES)) { [18:01:20.398] name <- added[[kk]] [18:01:20.398] NAME <- NAMES[[kk]] [18:01:20.398] if (name != NAME && is.element(NAME, old_names)) [18:01:20.398] next [18:01:20.398] args[[name]] <- "" [18:01:20.398] } [18:01:20.398] NAMES <- toupper(removed) [18:01:20.398] for (kk in seq_along(NAMES)) { [18:01:20.398] name <- removed[[kk]] [18:01:20.398] NAME <- NAMES[[kk]] [18:01:20.398] if (name != NAME && is.element(NAME, old_names)) [18:01:20.398] next [18:01:20.398] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.398] } [18:01:20.398] if (length(args) > 0) [18:01:20.398] base::do.call(base::Sys.setenv, args = args) [18:01:20.398] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:20.398] } [18:01:20.398] else { [18:01:20.398] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:20.398] } [18:01:20.398] { [18:01:20.398] if (base::length(...future.futureOptionsAdded) > [18:01:20.398] 0L) { [18:01:20.398] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:20.398] base::names(opts) <- ...future.futureOptionsAdded [18:01:20.398] base::options(opts) [18:01:20.398] } [18:01:20.398] { [18:01:20.398] { [18:01:20.398] NULL [18:01:20.398] RNGkind("Mersenne-Twister") [18:01:20.398] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:01:20.398] inherits = FALSE) [18:01:20.398] } [18:01:20.398] options(future.plan = NULL) [18:01:20.398] if (is.na(NA_character_)) [18:01:20.398] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.398] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:20.398] future::plan(list(function (..., envir = parent.frame()) [18:01:20.398] { [18:01:20.398] future <- SequentialFuture(..., envir = envir) [18:01:20.398] if (!future$lazy) [18:01:20.398] future <- run(future) [18:01:20.398] invisible(future) [18:01:20.398] }), .cleanup = FALSE, .init = FALSE) [18:01:20.398] } [18:01:20.398] } [18:01:20.398] } [18:01:20.398] }) [18:01:20.398] if (TRUE) { [18:01:20.398] base::sink(type = "output", split = FALSE) [18:01:20.398] if (TRUE) { [18:01:20.398] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:20.398] } [18:01:20.398] else { [18:01:20.398] ...future.result["stdout"] <- base::list(NULL) [18:01:20.398] } [18:01:20.398] base::close(...future.stdout) [18:01:20.398] ...future.stdout <- NULL [18:01:20.398] } [18:01:20.398] ...future.result$conditions <- ...future.conditions [18:01:20.398] ...future.result$finished <- base::Sys.time() [18:01:20.398] ...future.result [18:01:20.398] } [18:01:20.402] assign_globals() ... [18:01:20.402] List of 2 [18:01:20.402] $ x : int [1:2] 1 2 [18:01:20.402] $ future.call.arguments:List of 1 [18:01:20.402] ..$ : num 3 [18:01:20.402] ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:01:20.402] - attr(*, "where")=List of 2 [18:01:20.402] ..$ x : [18:01:20.402] ..$ future.call.arguments: [18:01:20.402] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:01:20.402] - attr(*, "resolved")= logi FALSE [18:01:20.402] - attr(*, "total_size")= num 112 [18:01:20.402] - attr(*, "already-done")= logi TRUE [18:01:20.406] - copied 'x' to environment [18:01:20.407] - copied 'future.call.arguments' to environment [18:01:20.407] assign_globals() ... done [18:01:20.407] plan(): Setting new future strategy stack: [18:01:20.407] List of future strategies: [18:01:20.407] 1. sequential: [18:01:20.407] - args: function (..., envir = parent.frame()) [18:01:20.407] - tweaked: FALSE [18:01:20.407] - call: NULL [18:01:20.408] plan(): nbrOfWorkers() = 1 [18:01:20.409] plan(): Setting new future strategy stack: [18:01:20.409] List of future strategies: [18:01:20.409] 1. sequential: [18:01:20.409] - args: function (..., envir = parent.frame()) [18:01:20.409] - tweaked: FALSE [18:01:20.409] - call: plan(strategy, substitute = FALSE) [18:01:20.410] plan(): nbrOfWorkers() = 1 [18:01:20.410] SequentialFuture started (and completed) [18:01:20.410] - Launch lazy future ... done [18:01:20.410] run() for 'SequentialFuture' ... done [1] 6 ** Sum function 'C' with plan('sequential') ... function (x, y) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) y %<-% { sum(x, y) } y } Arguments '...' exists: FALSE [18:01:20.411] getGlobalsAndPackages() ... [18:01:20.411] Searching for globals... [18:01:20.412] - globals found: [4] '{', 'sum', 'x', 'y' [18:01:20.413] Searching for globals ... DONE [18:01:20.413] Resolving globals: FALSE [18:01:20.413] The total size of the 2 globals is 112 bytes (112 bytes) [18:01:20.414] The total size of the 2 globals exported for future expression ('{; sum(x, y); }') is 112 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'x' (56 bytes of class 'numeric') and 'y' (56 bytes of class 'numeric') [18:01:20.414] - globals: [2] 'x', 'y' [18:01:20.414] [18:01:20.414] getGlobalsAndPackages() ... DONE [18:01:20.415] run() for 'Future' ... [18:01:20.415] - state: 'created' [18:01:20.415] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:01:20.416] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:01:20.416] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:01:20.416] - Field: 'label' [18:01:20.416] - Field: 'local' [18:01:20.416] - Field: 'owner' [18:01:20.416] - Field: 'envir' [18:01:20.417] - Field: 'packages' [18:01:20.417] - Field: 'gc' [18:01:20.417] - Field: 'conditions' [18:01:20.417] - Field: 'expr' [18:01:20.417] - Field: 'uuid' [18:01:20.418] - Field: 'seed' [18:01:20.418] - Field: 'version' [18:01:20.418] - Field: 'result' [18:01:20.418] - Field: 'asynchronous' [18:01:20.418] - Field: 'calls' [18:01:20.418] - Field: 'globals' [18:01:20.419] - Field: 'stdout' [18:01:20.419] - Field: 'earlySignal' [18:01:20.419] - Field: 'lazy' [18:01:20.419] - Field: 'state' [18:01:20.419] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:01:20.419] - Launch lazy future ... [18:01:20.420] Packages needed by the future expression (n = 0): [18:01:20.420] Packages needed by future strategies (n = 0): [18:01:20.421] { [18:01:20.421] { [18:01:20.421] { [18:01:20.421] ...future.startTime <- base::Sys.time() [18:01:20.421] { [18:01:20.421] { [18:01:20.421] { [18:01:20.421] base::local({ [18:01:20.421] has_future <- base::requireNamespace("future", [18:01:20.421] quietly = TRUE) [18:01:20.421] if (has_future) { [18:01:20.421] ns <- base::getNamespace("future") [18:01:20.421] version <- ns[[".package"]][["version"]] [18:01:20.421] if (is.null(version)) [18:01:20.421] version <- utils::packageVersion("future") [18:01:20.421] } [18:01:20.421] else { [18:01:20.421] version <- NULL [18:01:20.421] } [18:01:20.421] if (!has_future || version < "1.8.0") { [18:01:20.421] info <- base::c(r_version = base::gsub("R version ", [18:01:20.421] "", base::R.version$version.string), [18:01:20.421] platform = base::sprintf("%s (%s-bit)", [18:01:20.421] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:20.421] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:20.421] "release", "version")], collapse = " "), [18:01:20.421] hostname = base::Sys.info()[["nodename"]]) [18:01:20.421] info <- base::sprintf("%s: %s", base::names(info), [18:01:20.421] info) [18:01:20.421] info <- base::paste(info, collapse = "; ") [18:01:20.421] if (!has_future) { [18:01:20.421] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:20.421] info) [18:01:20.421] } [18:01:20.421] else { [18:01:20.421] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:20.421] info, version) [18:01:20.421] } [18:01:20.421] base::stop(msg) [18:01:20.421] } [18:01:20.421] }) [18:01:20.421] } [18:01:20.421] options(future.plan = NULL) [18:01:20.421] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.421] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:20.421] } [18:01:20.421] ...future.workdir <- getwd() [18:01:20.421] } [18:01:20.421] ...future.oldOptions <- base::as.list(base::.Options) [18:01:20.421] ...future.oldEnvVars <- base::Sys.getenv() [18:01:20.421] } [18:01:20.421] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:20.421] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:20.421] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:20.421] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:20.421] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:20.421] future.stdout.windows.reencode = NULL, width = 80L) [18:01:20.421] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:20.421] base::names(...future.oldOptions)) [18:01:20.421] } [18:01:20.421] if (FALSE) { [18:01:20.421] } [18:01:20.421] else { [18:01:20.421] if (TRUE) { [18:01:20.421] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:20.421] open = "w") [18:01:20.421] } [18:01:20.421] else { [18:01:20.421] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:20.421] windows = "NUL", "/dev/null"), open = "w") [18:01:20.421] } [18:01:20.421] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:20.421] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:20.421] base::sink(type = "output", split = FALSE) [18:01:20.421] base::close(...future.stdout) [18:01:20.421] }, add = TRUE) [18:01:20.421] } [18:01:20.421] ...future.frame <- base::sys.nframe() [18:01:20.421] ...future.conditions <- base::list() [18:01:20.421] ...future.rng <- base::globalenv()$.Random.seed [18:01:20.421] if (FALSE) { [18:01:20.421] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:20.421] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:20.421] } [18:01:20.421] ...future.result <- base::tryCatch({ [18:01:20.421] base::withCallingHandlers({ [18:01:20.421] ...future.value <- base::withVisible(base::local({ [18:01:20.421] sum(x, y) [18:01:20.421] })) [18:01:20.421] future::FutureResult(value = ...future.value$value, [18:01:20.421] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.421] ...future.rng), globalenv = if (FALSE) [18:01:20.421] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:20.421] ...future.globalenv.names)) [18:01:20.421] else NULL, started = ...future.startTime, version = "1.8") [18:01:20.421] }, condition = base::local({ [18:01:20.421] c <- base::c [18:01:20.421] inherits <- base::inherits [18:01:20.421] invokeRestart <- base::invokeRestart [18:01:20.421] length <- base::length [18:01:20.421] list <- base::list [18:01:20.421] seq.int <- base::seq.int [18:01:20.421] signalCondition <- base::signalCondition [18:01:20.421] sys.calls <- base::sys.calls [18:01:20.421] `[[` <- base::`[[` [18:01:20.421] `+` <- base::`+` [18:01:20.421] `<<-` <- base::`<<-` [18:01:20.421] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:20.421] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:20.421] 3L)] [18:01:20.421] } [18:01:20.421] function(cond) { [18:01:20.421] is_error <- inherits(cond, "error") [18:01:20.421] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:20.421] NULL) [18:01:20.421] if (is_error) { [18:01:20.421] sessionInformation <- function() { [18:01:20.421] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:20.421] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:20.421] search = base::search(), system = base::Sys.info()) [18:01:20.421] } [18:01:20.421] ...future.conditions[[length(...future.conditions) + [18:01:20.421] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:20.421] cond$call), session = sessionInformation(), [18:01:20.421] timestamp = base::Sys.time(), signaled = 0L) [18:01:20.421] signalCondition(cond) [18:01:20.421] } [18:01:20.421] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:20.421] "immediateCondition"))) { [18:01:20.421] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:20.421] ...future.conditions[[length(...future.conditions) + [18:01:20.421] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:20.421] if (TRUE && !signal) { [18:01:20.421] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.421] { [18:01:20.421] inherits <- base::inherits [18:01:20.421] invokeRestart <- base::invokeRestart [18:01:20.421] is.null <- base::is.null [18:01:20.421] muffled <- FALSE [18:01:20.421] if (inherits(cond, "message")) { [18:01:20.421] muffled <- grepl(pattern, "muffleMessage") [18:01:20.421] if (muffled) [18:01:20.421] invokeRestart("muffleMessage") [18:01:20.421] } [18:01:20.421] else if (inherits(cond, "warning")) { [18:01:20.421] muffled <- grepl(pattern, "muffleWarning") [18:01:20.421] if (muffled) [18:01:20.421] invokeRestart("muffleWarning") [18:01:20.421] } [18:01:20.421] else if (inherits(cond, "condition")) { [18:01:20.421] if (!is.null(pattern)) { [18:01:20.421] computeRestarts <- base::computeRestarts [18:01:20.421] grepl <- base::grepl [18:01:20.421] restarts <- computeRestarts(cond) [18:01:20.421] for (restart in restarts) { [18:01:20.421] name <- restart$name [18:01:20.421] if (is.null(name)) [18:01:20.421] next [18:01:20.421] if (!grepl(pattern, name)) [18:01:20.421] next [18:01:20.421] invokeRestart(restart) [18:01:20.421] muffled <- TRUE [18:01:20.421] break [18:01:20.421] } [18:01:20.421] } [18:01:20.421] } [18:01:20.421] invisible(muffled) [18:01:20.421] } [18:01:20.421] muffleCondition(cond, pattern = "^muffle") [18:01:20.421] } [18:01:20.421] } [18:01:20.421] else { [18:01:20.421] if (TRUE) { [18:01:20.421] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.421] { [18:01:20.421] inherits <- base::inherits [18:01:20.421] invokeRestart <- base::invokeRestart [18:01:20.421] is.null <- base::is.null [18:01:20.421] muffled <- FALSE [18:01:20.421] if (inherits(cond, "message")) { [18:01:20.421] muffled <- grepl(pattern, "muffleMessage") [18:01:20.421] if (muffled) [18:01:20.421] invokeRestart("muffleMessage") [18:01:20.421] } [18:01:20.421] else if (inherits(cond, "warning")) { [18:01:20.421] muffled <- grepl(pattern, "muffleWarning") [18:01:20.421] if (muffled) [18:01:20.421] invokeRestart("muffleWarning") [18:01:20.421] } [18:01:20.421] else if (inherits(cond, "condition")) { [18:01:20.421] if (!is.null(pattern)) { [18:01:20.421] computeRestarts <- base::computeRestarts [18:01:20.421] grepl <- base::grepl [18:01:20.421] restarts <- computeRestarts(cond) [18:01:20.421] for (restart in restarts) { [18:01:20.421] name <- restart$name [18:01:20.421] if (is.null(name)) [18:01:20.421] next [18:01:20.421] if (!grepl(pattern, name)) [18:01:20.421] next [18:01:20.421] invokeRestart(restart) [18:01:20.421] muffled <- TRUE [18:01:20.421] break [18:01:20.421] } [18:01:20.421] } [18:01:20.421] } [18:01:20.421] invisible(muffled) [18:01:20.421] } [18:01:20.421] muffleCondition(cond, pattern = "^muffle") [18:01:20.421] } [18:01:20.421] } [18:01:20.421] } [18:01:20.421] })) [18:01:20.421] }, error = function(ex) { [18:01:20.421] base::structure(base::list(value = NULL, visible = NULL, [18:01:20.421] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.421] ...future.rng), started = ...future.startTime, [18:01:20.421] finished = Sys.time(), session_uuid = NA_character_, [18:01:20.421] version = "1.8"), class = "FutureResult") [18:01:20.421] }, finally = { [18:01:20.421] if (!identical(...future.workdir, getwd())) [18:01:20.421] setwd(...future.workdir) [18:01:20.421] { [18:01:20.421] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:20.421] ...future.oldOptions$nwarnings <- NULL [18:01:20.421] } [18:01:20.421] base::options(...future.oldOptions) [18:01:20.421] if (.Platform$OS.type == "windows") { [18:01:20.421] old_names <- names(...future.oldEnvVars) [18:01:20.421] envs <- base::Sys.getenv() [18:01:20.421] names <- names(envs) [18:01:20.421] common <- intersect(names, old_names) [18:01:20.421] added <- setdiff(names, old_names) [18:01:20.421] removed <- setdiff(old_names, names) [18:01:20.421] changed <- common[...future.oldEnvVars[common] != [18:01:20.421] envs[common]] [18:01:20.421] NAMES <- toupper(changed) [18:01:20.421] args <- list() [18:01:20.421] for (kk in seq_along(NAMES)) { [18:01:20.421] name <- changed[[kk]] [18:01:20.421] NAME <- NAMES[[kk]] [18:01:20.421] if (name != NAME && is.element(NAME, old_names)) [18:01:20.421] next [18:01:20.421] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.421] } [18:01:20.421] NAMES <- toupper(added) [18:01:20.421] for (kk in seq_along(NAMES)) { [18:01:20.421] name <- added[[kk]] [18:01:20.421] NAME <- NAMES[[kk]] [18:01:20.421] if (name != NAME && is.element(NAME, old_names)) [18:01:20.421] next [18:01:20.421] args[[name]] <- "" [18:01:20.421] } [18:01:20.421] NAMES <- toupper(removed) [18:01:20.421] for (kk in seq_along(NAMES)) { [18:01:20.421] name <- removed[[kk]] [18:01:20.421] NAME <- NAMES[[kk]] [18:01:20.421] if (name != NAME && is.element(NAME, old_names)) [18:01:20.421] next [18:01:20.421] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.421] } [18:01:20.421] if (length(args) > 0) [18:01:20.421] base::do.call(base::Sys.setenv, args = args) [18:01:20.421] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:20.421] } [18:01:20.421] else { [18:01:20.421] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:20.421] } [18:01:20.421] { [18:01:20.421] if (base::length(...future.futureOptionsAdded) > [18:01:20.421] 0L) { [18:01:20.421] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:20.421] base::names(opts) <- ...future.futureOptionsAdded [18:01:20.421] base::options(opts) [18:01:20.421] } [18:01:20.421] { [18:01:20.421] { [18:01:20.421] NULL [18:01:20.421] RNGkind("Mersenne-Twister") [18:01:20.421] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:01:20.421] inherits = FALSE) [18:01:20.421] } [18:01:20.421] options(future.plan = NULL) [18:01:20.421] if (is.na(NA_character_)) [18:01:20.421] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.421] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:20.421] future::plan(list(function (..., envir = parent.frame()) [18:01:20.421] { [18:01:20.421] future <- SequentialFuture(..., envir = envir) [18:01:20.421] if (!future$lazy) [18:01:20.421] future <- run(future) [18:01:20.421] invisible(future) [18:01:20.421] }), .cleanup = FALSE, .init = FALSE) [18:01:20.421] } [18:01:20.421] } [18:01:20.421] } [18:01:20.421] }) [18:01:20.421] if (TRUE) { [18:01:20.421] base::sink(type = "output", split = FALSE) [18:01:20.421] if (TRUE) { [18:01:20.421] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:20.421] } [18:01:20.421] else { [18:01:20.421] ...future.result["stdout"] <- base::list(NULL) [18:01:20.421] } [18:01:20.421] base::close(...future.stdout) [18:01:20.421] ...future.stdout <- NULL [18:01:20.421] } [18:01:20.421] ...future.result$conditions <- ...future.conditions [18:01:20.421] ...future.result$finished <- base::Sys.time() [18:01:20.421] ...future.result [18:01:20.421] } [18:01:20.424] assign_globals() ... [18:01:20.424] List of 2 [18:01:20.424] $ x: int [1:2] 1 2 [18:01:20.424] $ y: num 3 [18:01:20.424] - attr(*, "where")=List of 2 [18:01:20.424] ..$ x: [18:01:20.424] ..$ y: [18:01:20.424] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:01:20.424] - attr(*, "resolved")= logi FALSE [18:01:20.424] - attr(*, "total_size")= num 112 [18:01:20.424] - attr(*, "already-done")= logi TRUE [18:01:20.429] - copied 'x' to environment [18:01:20.429] - copied 'y' to environment [18:01:20.429] assign_globals() ... done [18:01:20.430] plan(): Setting new future strategy stack: [18:01:20.430] List of future strategies: [18:01:20.430] 1. sequential: [18:01:20.430] - args: function (..., envir = parent.frame()) [18:01:20.430] - tweaked: FALSE [18:01:20.430] - call: NULL [18:01:20.430] plan(): nbrOfWorkers() = 1 [18:01:20.431] plan(): Setting new future strategy stack: [18:01:20.432] List of future strategies: [18:01:20.432] 1. sequential: [18:01:20.432] - args: function (..., envir = parent.frame()) [18:01:20.432] - tweaked: FALSE [18:01:20.432] - call: plan(strategy, substitute = FALSE) [18:01:20.432] plan(): nbrOfWorkers() = 1 [18:01:20.432] SequentialFuture started (and completed) [18:01:20.433] - Launch lazy future ... done [18:01:20.433] run() for 'SequentialFuture' ... done [1] 6 ** Sum function 'D' with plan('sequential') ... function (x, y) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) y %<-% { sum(x, y, ...) } y } Arguments '...' exists: FALSE [18:01:20.434] getGlobalsAndPackages() ... [18:01:20.434] Searching for globals... [18:01:20.435] - globals found: [5] '{', 'sum', 'x', 'y', '...' [18:01:20.436] Searching for globals ... DONE [18:01:20.436] Resolving globals: FALSE [18:01:20.436] Tweak future expression to call with '...' arguments ... [18:01:20.437] The total size of the 2 globals is 112 bytes (112 bytes) [18:01:20.437] The total size of the 2 globals exported for future expression ('{; sum(x, y, ...); }') is 112 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'x' (56 bytes of class 'numeric') and 'y' (56 bytes of class 'numeric') [18:01:20.437] - globals: [2] 'x', 'y' [18:01:20.437] [18:01:20.438] getGlobalsAndPackages() ... DONE [18:01:20.438] run() for 'Future' ... [18:01:20.438] - state: 'created' [18:01:20.438] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:01:20.439] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:01:20.439] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:01:20.439] - Field: 'label' [18:01:20.439] - Field: 'local' [18:01:20.439] - Field: 'owner' [18:01:20.440] - Field: 'envir' [18:01:20.440] - Field: 'packages' [18:01:20.440] - Field: 'gc' [18:01:20.440] - Field: 'conditions' [18:01:20.440] - Field: 'expr' [18:01:20.440] - Field: 'uuid' [18:01:20.441] - Field: 'seed' [18:01:20.441] - Field: 'version' [18:01:20.441] - Field: 'result' [18:01:20.441] - Field: 'asynchronous' [18:01:20.441] - Field: 'calls' [18:01:20.442] - Field: 'globals' [18:01:20.442] - Field: 'stdout' [18:01:20.442] - Field: 'earlySignal' [18:01:20.442] - Field: 'lazy' [18:01:20.442] - Field: 'state' [18:01:20.442] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:01:20.443] - Launch lazy future ... [18:01:20.443] Packages needed by the future expression (n = 0): [18:01:20.443] Packages needed by future strategies (n = 0): [18:01:20.444] { [18:01:20.444] { [18:01:20.444] { [18:01:20.444] ...future.startTime <- base::Sys.time() [18:01:20.444] { [18:01:20.444] { [18:01:20.444] { [18:01:20.444] base::local({ [18:01:20.444] has_future <- base::requireNamespace("future", [18:01:20.444] quietly = TRUE) [18:01:20.444] if (has_future) { [18:01:20.444] ns <- base::getNamespace("future") [18:01:20.444] version <- ns[[".package"]][["version"]] [18:01:20.444] if (is.null(version)) [18:01:20.444] version <- utils::packageVersion("future") [18:01:20.444] } [18:01:20.444] else { [18:01:20.444] version <- NULL [18:01:20.444] } [18:01:20.444] if (!has_future || version < "1.8.0") { [18:01:20.444] info <- base::c(r_version = base::gsub("R version ", [18:01:20.444] "", base::R.version$version.string), [18:01:20.444] platform = base::sprintf("%s (%s-bit)", [18:01:20.444] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:20.444] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:20.444] "release", "version")], collapse = " "), [18:01:20.444] hostname = base::Sys.info()[["nodename"]]) [18:01:20.444] info <- base::sprintf("%s: %s", base::names(info), [18:01:20.444] info) [18:01:20.444] info <- base::paste(info, collapse = "; ") [18:01:20.444] if (!has_future) { [18:01:20.444] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:20.444] info) [18:01:20.444] } [18:01:20.444] else { [18:01:20.444] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:20.444] info, version) [18:01:20.444] } [18:01:20.444] base::stop(msg) [18:01:20.444] } [18:01:20.444] }) [18:01:20.444] } [18:01:20.444] options(future.plan = NULL) [18:01:20.444] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.444] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:20.444] } [18:01:20.444] ...future.workdir <- getwd() [18:01:20.444] } [18:01:20.444] ...future.oldOptions <- base::as.list(base::.Options) [18:01:20.444] ...future.oldEnvVars <- base::Sys.getenv() [18:01:20.444] } [18:01:20.444] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:20.444] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:20.444] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:20.444] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:20.444] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:20.444] future.stdout.windows.reencode = NULL, width = 80L) [18:01:20.444] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:20.444] base::names(...future.oldOptions)) [18:01:20.444] } [18:01:20.444] if (FALSE) { [18:01:20.444] } [18:01:20.444] else { [18:01:20.444] if (TRUE) { [18:01:20.444] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:20.444] open = "w") [18:01:20.444] } [18:01:20.444] else { [18:01:20.444] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:20.444] windows = "NUL", "/dev/null"), open = "w") [18:01:20.444] } [18:01:20.444] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:20.444] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:20.444] base::sink(type = "output", split = FALSE) [18:01:20.444] base::close(...future.stdout) [18:01:20.444] }, add = TRUE) [18:01:20.444] } [18:01:20.444] ...future.frame <- base::sys.nframe() [18:01:20.444] ...future.conditions <- base::list() [18:01:20.444] ...future.rng <- base::globalenv()$.Random.seed [18:01:20.444] if (FALSE) { [18:01:20.444] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:20.444] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:20.444] } [18:01:20.444] ...future.result <- base::tryCatch({ [18:01:20.444] base::withCallingHandlers({ [18:01:20.444] ...future.value <- base::withVisible(base::local({ [18:01:20.444] sum(x, y, ...) [18:01:20.444] })) [18:01:20.444] future::FutureResult(value = ...future.value$value, [18:01:20.444] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.444] ...future.rng), globalenv = if (FALSE) [18:01:20.444] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:20.444] ...future.globalenv.names)) [18:01:20.444] else NULL, started = ...future.startTime, version = "1.8") [18:01:20.444] }, condition = base::local({ [18:01:20.444] c <- base::c [18:01:20.444] inherits <- base::inherits [18:01:20.444] invokeRestart <- base::invokeRestart [18:01:20.444] length <- base::length [18:01:20.444] list <- base::list [18:01:20.444] seq.int <- base::seq.int [18:01:20.444] signalCondition <- base::signalCondition [18:01:20.444] sys.calls <- base::sys.calls [18:01:20.444] `[[` <- base::`[[` [18:01:20.444] `+` <- base::`+` [18:01:20.444] `<<-` <- base::`<<-` [18:01:20.444] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:20.444] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:20.444] 3L)] [18:01:20.444] } [18:01:20.444] function(cond) { [18:01:20.444] is_error <- inherits(cond, "error") [18:01:20.444] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:20.444] NULL) [18:01:20.444] if (is_error) { [18:01:20.444] sessionInformation <- function() { [18:01:20.444] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:20.444] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:20.444] search = base::search(), system = base::Sys.info()) [18:01:20.444] } [18:01:20.444] ...future.conditions[[length(...future.conditions) + [18:01:20.444] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:20.444] cond$call), session = sessionInformation(), [18:01:20.444] timestamp = base::Sys.time(), signaled = 0L) [18:01:20.444] signalCondition(cond) [18:01:20.444] } [18:01:20.444] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:20.444] "immediateCondition"))) { [18:01:20.444] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:20.444] ...future.conditions[[length(...future.conditions) + [18:01:20.444] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:20.444] if (TRUE && !signal) { [18:01:20.444] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.444] { [18:01:20.444] inherits <- base::inherits [18:01:20.444] invokeRestart <- base::invokeRestart [18:01:20.444] is.null <- base::is.null [18:01:20.444] muffled <- FALSE [18:01:20.444] if (inherits(cond, "message")) { [18:01:20.444] muffled <- grepl(pattern, "muffleMessage") [18:01:20.444] if (muffled) [18:01:20.444] invokeRestart("muffleMessage") [18:01:20.444] } [18:01:20.444] else if (inherits(cond, "warning")) { [18:01:20.444] muffled <- grepl(pattern, "muffleWarning") [18:01:20.444] if (muffled) [18:01:20.444] invokeRestart("muffleWarning") [18:01:20.444] } [18:01:20.444] else if (inherits(cond, "condition")) { [18:01:20.444] if (!is.null(pattern)) { [18:01:20.444] computeRestarts <- base::computeRestarts [18:01:20.444] grepl <- base::grepl [18:01:20.444] restarts <- computeRestarts(cond) [18:01:20.444] for (restart in restarts) { [18:01:20.444] name <- restart$name [18:01:20.444] if (is.null(name)) [18:01:20.444] next [18:01:20.444] if (!grepl(pattern, name)) [18:01:20.444] next [18:01:20.444] invokeRestart(restart) [18:01:20.444] muffled <- TRUE [18:01:20.444] break [18:01:20.444] } [18:01:20.444] } [18:01:20.444] } [18:01:20.444] invisible(muffled) [18:01:20.444] } [18:01:20.444] muffleCondition(cond, pattern = "^muffle") [18:01:20.444] } [18:01:20.444] } [18:01:20.444] else { [18:01:20.444] if (TRUE) { [18:01:20.444] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.444] { [18:01:20.444] inherits <- base::inherits [18:01:20.444] invokeRestart <- base::invokeRestart [18:01:20.444] is.null <- base::is.null [18:01:20.444] muffled <- FALSE [18:01:20.444] if (inherits(cond, "message")) { [18:01:20.444] muffled <- grepl(pattern, "muffleMessage") [18:01:20.444] if (muffled) [18:01:20.444] invokeRestart("muffleMessage") [18:01:20.444] } [18:01:20.444] else if (inherits(cond, "warning")) { [18:01:20.444] muffled <- grepl(pattern, "muffleWarning") [18:01:20.444] if (muffled) [18:01:20.444] invokeRestart("muffleWarning") [18:01:20.444] } [18:01:20.444] else if (inherits(cond, "condition")) { [18:01:20.444] if (!is.null(pattern)) { [18:01:20.444] computeRestarts <- base::computeRestarts [18:01:20.444] grepl <- base::grepl [18:01:20.444] restarts <- computeRestarts(cond) [18:01:20.444] for (restart in restarts) { [18:01:20.444] name <- restart$name [18:01:20.444] if (is.null(name)) [18:01:20.444] next [18:01:20.444] if (!grepl(pattern, name)) [18:01:20.444] next [18:01:20.444] invokeRestart(restart) [18:01:20.444] muffled <- TRUE [18:01:20.444] break [18:01:20.444] } [18:01:20.444] } [18:01:20.444] } [18:01:20.444] invisible(muffled) [18:01:20.444] } [18:01:20.444] muffleCondition(cond, pattern = "^muffle") [18:01:20.444] } [18:01:20.444] } [18:01:20.444] } [18:01:20.444] })) [18:01:20.444] }, error = function(ex) { [18:01:20.444] base::structure(base::list(value = NULL, visible = NULL, [18:01:20.444] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.444] ...future.rng), started = ...future.startTime, [18:01:20.444] finished = Sys.time(), session_uuid = NA_character_, [18:01:20.444] version = "1.8"), class = "FutureResult") [18:01:20.444] }, finally = { [18:01:20.444] if (!identical(...future.workdir, getwd())) [18:01:20.444] setwd(...future.workdir) [18:01:20.444] { [18:01:20.444] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:20.444] ...future.oldOptions$nwarnings <- NULL [18:01:20.444] } [18:01:20.444] base::options(...future.oldOptions) [18:01:20.444] if (.Platform$OS.type == "windows") { [18:01:20.444] old_names <- names(...future.oldEnvVars) [18:01:20.444] envs <- base::Sys.getenv() [18:01:20.444] names <- names(envs) [18:01:20.444] common <- intersect(names, old_names) [18:01:20.444] added <- setdiff(names, old_names) [18:01:20.444] removed <- setdiff(old_names, names) [18:01:20.444] changed <- common[...future.oldEnvVars[common] != [18:01:20.444] envs[common]] [18:01:20.444] NAMES <- toupper(changed) [18:01:20.444] args <- list() [18:01:20.444] for (kk in seq_along(NAMES)) { [18:01:20.444] name <- changed[[kk]] [18:01:20.444] NAME <- NAMES[[kk]] [18:01:20.444] if (name != NAME && is.element(NAME, old_names)) [18:01:20.444] next [18:01:20.444] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.444] } [18:01:20.444] NAMES <- toupper(added) [18:01:20.444] for (kk in seq_along(NAMES)) { [18:01:20.444] name <- added[[kk]] [18:01:20.444] NAME <- NAMES[[kk]] [18:01:20.444] if (name != NAME && is.element(NAME, old_names)) [18:01:20.444] next [18:01:20.444] args[[name]] <- "" [18:01:20.444] } [18:01:20.444] NAMES <- toupper(removed) [18:01:20.444] for (kk in seq_along(NAMES)) { [18:01:20.444] name <- removed[[kk]] [18:01:20.444] NAME <- NAMES[[kk]] [18:01:20.444] if (name != NAME && is.element(NAME, old_names)) [18:01:20.444] next [18:01:20.444] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.444] } [18:01:20.444] if (length(args) > 0) [18:01:20.444] base::do.call(base::Sys.setenv, args = args) [18:01:20.444] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:20.444] } [18:01:20.444] else { [18:01:20.444] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:20.444] } [18:01:20.444] { [18:01:20.444] if (base::length(...future.futureOptionsAdded) > [18:01:20.444] 0L) { [18:01:20.444] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:20.444] base::names(opts) <- ...future.futureOptionsAdded [18:01:20.444] base::options(opts) [18:01:20.444] } [18:01:20.444] { [18:01:20.444] { [18:01:20.444] NULL [18:01:20.444] RNGkind("Mersenne-Twister") [18:01:20.444] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:01:20.444] inherits = FALSE) [18:01:20.444] } [18:01:20.444] options(future.plan = NULL) [18:01:20.444] if (is.na(NA_character_)) [18:01:20.444] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.444] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:20.444] future::plan(list(function (..., envir = parent.frame()) [18:01:20.444] { [18:01:20.444] future <- SequentialFuture(..., envir = envir) [18:01:20.444] if (!future$lazy) [18:01:20.444] future <- run(future) [18:01:20.444] invisible(future) [18:01:20.444] }), .cleanup = FALSE, .init = FALSE) [18:01:20.444] } [18:01:20.444] } [18:01:20.444] } [18:01:20.444] }) [18:01:20.444] if (TRUE) { [18:01:20.444] base::sink(type = "output", split = FALSE) [18:01:20.444] if (TRUE) { [18:01:20.444] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:20.444] } [18:01:20.444] else { [18:01:20.444] ...future.result["stdout"] <- base::list(NULL) [18:01:20.444] } [18:01:20.444] base::close(...future.stdout) [18:01:20.444] ...future.stdout <- NULL [18:01:20.444] } [18:01:20.444] ...future.result$conditions <- ...future.conditions [18:01:20.444] ...future.result$finished <- base::Sys.time() [18:01:20.444] ...future.result [18:01:20.444] } [18:01:20.447] assign_globals() ... [18:01:20.447] List of 2 [18:01:20.447] $ x: int [1:2] 1 2 [18:01:20.447] $ y: num 3 [18:01:20.447] - attr(*, "where")=List of 2 [18:01:20.447] ..$ x: [18:01:20.447] ..$ y: [18:01:20.447] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:01:20.447] - attr(*, "resolved")= logi FALSE [18:01:20.447] - attr(*, "total_size")= num 112 [18:01:20.447] - attr(*, "already-done")= logi TRUE [18:01:20.451] - copied 'x' to environment [18:01:20.451] - copied 'y' to environment [18:01:20.451] assign_globals() ... done [18:01:20.452] plan(): Setting new future strategy stack: [18:01:20.452] List of future strategies: [18:01:20.452] 1. sequential: [18:01:20.452] - args: function (..., envir = parent.frame()) [18:01:20.452] - tweaked: FALSE [18:01:20.452] - call: NULL [18:01:20.452] plan(): nbrOfWorkers() = 1 [18:01:20.454] plan(): Setting new future strategy stack: [18:01:20.454] List of future strategies: [18:01:20.454] 1. sequential: [18:01:20.454] - args: function (..., envir = parent.frame()) [18:01:20.454] - tweaked: FALSE [18:01:20.454] - call: plan(strategy, substitute = FALSE) [18:01:20.454] plan(): nbrOfWorkers() = 1 [18:01:20.455] SequentialFuture started (and completed) [18:01:20.455] signalConditions() ... [18:01:20.455] - include = 'immediateCondition' [18:01:20.455] - exclude = [18:01:20.455] - resignal = FALSE [18:01:20.456] - Number of conditions: 1 [18:01:20.456] signalConditions() ... done [18:01:20.456] - Launch lazy future ... done [18:01:20.456] run() for 'SequentialFuture' ... done [18:01:20.456] signalConditions() ... [18:01:20.457] - include = 'immediateCondition' [18:01:20.457] - exclude = [18:01:20.457] - resignal = FALSE [18:01:20.457] - Number of conditions: 1 [18:01:20.457] signalConditions() ... done [18:01:20.457] Future state: 'finished' [18:01:20.458] signalConditions() ... [18:01:20.458] - include = 'condition' [18:01:20.458] - exclude = 'immediateCondition' [18:01:20.458] - resignal = TRUE [18:01:20.458] - Number of conditions: 1 [18:01:20.458] - Condition #1: 'simpleError', 'error', 'condition' [18:01:20.459] signalConditions() ... done Error in eval(quote({ : '...' used in an incorrect context [1] "Error in eval(quote({ : '...' used in an incorrect context\n" attr(,"class") [1] "try-error" attr(,"condition") ** Sum function 'E' with plan('sequential') ... function (...) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) globals <- globals::globalsByName("...", envir = environment()) f <- future({ fcn <- function() sum(...) fcn() }, envir = parent.frame(), globals = globals) y <- value(f) y } Arguments '...' exists: TRUE [18:01:20.460] getGlobalsAndPackages() ... [18:01:20.460] - globals passed as-is: [1] '...' [18:01:20.460] Resolving globals: FALSE [18:01:20.460] Tweak future expression to call with '...' arguments ... [18:01:20.460] { [18:01:20.460] do.call(function(...) { [18:01:20.460] fcn <- function() sum(...) [18:01:20.460] fcn() [18:01:20.460] }, args = future.call.arguments) [18:01:20.460] } [18:01:20.461] Tweak future expression to call with '...' arguments ... DONE [18:01:20.461] The total size of the 1 globals is 112 bytes (112 bytes) [18:01:20.462] The total size of the 1 globals exported for future expression ('{; fcn <- function() sum(...); fcn(); }') is 112 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'future.call.arguments' (112 bytes of class 'list') [18:01:20.462] - globals: [1] 'future.call.arguments' [18:01:20.462] [18:01:20.462] getGlobalsAndPackages() ... DONE [18:01:20.462] run() for 'Future' ... [18:01:20.463] - state: 'created' [18:01:20.463] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:01:20.463] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:01:20.463] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:01:20.464] - Field: 'label' [18:01:20.464] - Field: 'local' [18:01:20.464] - Field: 'owner' [18:01:20.464] - Field: 'envir' [18:01:20.464] - Field: 'packages' [18:01:20.465] - Field: 'gc' [18:01:20.465] - Field: 'conditions' [18:01:20.465] - Field: 'expr' [18:01:20.465] - Field: 'uuid' [18:01:20.465] - Field: 'seed' [18:01:20.465] - Field: 'version' [18:01:20.466] - Field: 'result' [18:01:20.466] - Field: 'asynchronous' [18:01:20.466] - Field: 'calls' [18:01:20.466] - Field: 'globals' [18:01:20.466] - Field: 'stdout' [18:01:20.466] - Field: 'earlySignal' [18:01:20.467] - Field: 'lazy' [18:01:20.467] - Field: 'state' [18:01:20.467] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:01:20.467] - Launch lazy future ... [18:01:20.467] Packages needed by the future expression (n = 0): [18:01:20.468] Packages needed by future strategies (n = 0): [18:01:20.469] { [18:01:20.469] { [18:01:20.469] { [18:01:20.469] ...future.startTime <- base::Sys.time() [18:01:20.469] { [18:01:20.469] { [18:01:20.469] { [18:01:20.469] base::local({ [18:01:20.469] has_future <- base::requireNamespace("future", [18:01:20.469] quietly = TRUE) [18:01:20.469] if (has_future) { [18:01:20.469] ns <- base::getNamespace("future") [18:01:20.469] version <- ns[[".package"]][["version"]] [18:01:20.469] if (is.null(version)) [18:01:20.469] version <- utils::packageVersion("future") [18:01:20.469] } [18:01:20.469] else { [18:01:20.469] version <- NULL [18:01:20.469] } [18:01:20.469] if (!has_future || version < "1.8.0") { [18:01:20.469] info <- base::c(r_version = base::gsub("R version ", [18:01:20.469] "", base::R.version$version.string), [18:01:20.469] platform = base::sprintf("%s (%s-bit)", [18:01:20.469] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:20.469] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:20.469] "release", "version")], collapse = " "), [18:01:20.469] hostname = base::Sys.info()[["nodename"]]) [18:01:20.469] info <- base::sprintf("%s: %s", base::names(info), [18:01:20.469] info) [18:01:20.469] info <- base::paste(info, collapse = "; ") [18:01:20.469] if (!has_future) { [18:01:20.469] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:20.469] info) [18:01:20.469] } [18:01:20.469] else { [18:01:20.469] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:20.469] info, version) [18:01:20.469] } [18:01:20.469] base::stop(msg) [18:01:20.469] } [18:01:20.469] }) [18:01:20.469] } [18:01:20.469] options(future.plan = NULL) [18:01:20.469] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.469] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:20.469] } [18:01:20.469] ...future.workdir <- getwd() [18:01:20.469] } [18:01:20.469] ...future.oldOptions <- base::as.list(base::.Options) [18:01:20.469] ...future.oldEnvVars <- base::Sys.getenv() [18:01:20.469] } [18:01:20.469] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:20.469] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:20.469] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:20.469] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:20.469] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:20.469] future.stdout.windows.reencode = NULL, width = 80L) [18:01:20.469] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:20.469] base::names(...future.oldOptions)) [18:01:20.469] } [18:01:20.469] if (FALSE) { [18:01:20.469] } [18:01:20.469] else { [18:01:20.469] if (TRUE) { [18:01:20.469] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:20.469] open = "w") [18:01:20.469] } [18:01:20.469] else { [18:01:20.469] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:20.469] windows = "NUL", "/dev/null"), open = "w") [18:01:20.469] } [18:01:20.469] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:20.469] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:20.469] base::sink(type = "output", split = FALSE) [18:01:20.469] base::close(...future.stdout) [18:01:20.469] }, add = TRUE) [18:01:20.469] } [18:01:20.469] ...future.frame <- base::sys.nframe() [18:01:20.469] ...future.conditions <- base::list() [18:01:20.469] ...future.rng <- base::globalenv()$.Random.seed [18:01:20.469] if (FALSE) { [18:01:20.469] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:20.469] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:20.469] } [18:01:20.469] ...future.result <- base::tryCatch({ [18:01:20.469] base::withCallingHandlers({ [18:01:20.469] ...future.value <- base::withVisible(base::local({ [18:01:20.469] do.call(function(...) { [18:01:20.469] fcn <- function() sum(...) [18:01:20.469] fcn() [18:01:20.469] }, args = future.call.arguments) [18:01:20.469] })) [18:01:20.469] future::FutureResult(value = ...future.value$value, [18:01:20.469] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.469] ...future.rng), globalenv = if (FALSE) [18:01:20.469] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:20.469] ...future.globalenv.names)) [18:01:20.469] else NULL, started = ...future.startTime, version = "1.8") [18:01:20.469] }, condition = base::local({ [18:01:20.469] c <- base::c [18:01:20.469] inherits <- base::inherits [18:01:20.469] invokeRestart <- base::invokeRestart [18:01:20.469] length <- base::length [18:01:20.469] list <- base::list [18:01:20.469] seq.int <- base::seq.int [18:01:20.469] signalCondition <- base::signalCondition [18:01:20.469] sys.calls <- base::sys.calls [18:01:20.469] `[[` <- base::`[[` [18:01:20.469] `+` <- base::`+` [18:01:20.469] `<<-` <- base::`<<-` [18:01:20.469] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:20.469] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:20.469] 3L)] [18:01:20.469] } [18:01:20.469] function(cond) { [18:01:20.469] is_error <- inherits(cond, "error") [18:01:20.469] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:20.469] NULL) [18:01:20.469] if (is_error) { [18:01:20.469] sessionInformation <- function() { [18:01:20.469] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:20.469] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:20.469] search = base::search(), system = base::Sys.info()) [18:01:20.469] } [18:01:20.469] ...future.conditions[[length(...future.conditions) + [18:01:20.469] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:20.469] cond$call), session = sessionInformation(), [18:01:20.469] timestamp = base::Sys.time(), signaled = 0L) [18:01:20.469] signalCondition(cond) [18:01:20.469] } [18:01:20.469] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:20.469] "immediateCondition"))) { [18:01:20.469] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:20.469] ...future.conditions[[length(...future.conditions) + [18:01:20.469] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:20.469] if (TRUE && !signal) { [18:01:20.469] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.469] { [18:01:20.469] inherits <- base::inherits [18:01:20.469] invokeRestart <- base::invokeRestart [18:01:20.469] is.null <- base::is.null [18:01:20.469] muffled <- FALSE [18:01:20.469] if (inherits(cond, "message")) { [18:01:20.469] muffled <- grepl(pattern, "muffleMessage") [18:01:20.469] if (muffled) [18:01:20.469] invokeRestart("muffleMessage") [18:01:20.469] } [18:01:20.469] else if (inherits(cond, "warning")) { [18:01:20.469] muffled <- grepl(pattern, "muffleWarning") [18:01:20.469] if (muffled) [18:01:20.469] invokeRestart("muffleWarning") [18:01:20.469] } [18:01:20.469] else if (inherits(cond, "condition")) { [18:01:20.469] if (!is.null(pattern)) { [18:01:20.469] computeRestarts <- base::computeRestarts [18:01:20.469] grepl <- base::grepl [18:01:20.469] restarts <- computeRestarts(cond) [18:01:20.469] for (restart in restarts) { [18:01:20.469] name <- restart$name [18:01:20.469] if (is.null(name)) [18:01:20.469] next [18:01:20.469] if (!grepl(pattern, name)) [18:01:20.469] next [18:01:20.469] invokeRestart(restart) [18:01:20.469] muffled <- TRUE [18:01:20.469] break [18:01:20.469] } [18:01:20.469] } [18:01:20.469] } [18:01:20.469] invisible(muffled) [18:01:20.469] } [18:01:20.469] muffleCondition(cond, pattern = "^muffle") [18:01:20.469] } [18:01:20.469] } [18:01:20.469] else { [18:01:20.469] if (TRUE) { [18:01:20.469] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.469] { [18:01:20.469] inherits <- base::inherits [18:01:20.469] invokeRestart <- base::invokeRestart [18:01:20.469] is.null <- base::is.null [18:01:20.469] muffled <- FALSE [18:01:20.469] if (inherits(cond, "message")) { [18:01:20.469] muffled <- grepl(pattern, "muffleMessage") [18:01:20.469] if (muffled) [18:01:20.469] invokeRestart("muffleMessage") [18:01:20.469] } [18:01:20.469] else if (inherits(cond, "warning")) { [18:01:20.469] muffled <- grepl(pattern, "muffleWarning") [18:01:20.469] if (muffled) [18:01:20.469] invokeRestart("muffleWarning") [18:01:20.469] } [18:01:20.469] else if (inherits(cond, "condition")) { [18:01:20.469] if (!is.null(pattern)) { [18:01:20.469] computeRestarts <- base::computeRestarts [18:01:20.469] grepl <- base::grepl [18:01:20.469] restarts <- computeRestarts(cond) [18:01:20.469] for (restart in restarts) { [18:01:20.469] name <- restart$name [18:01:20.469] if (is.null(name)) [18:01:20.469] next [18:01:20.469] if (!grepl(pattern, name)) [18:01:20.469] next [18:01:20.469] invokeRestart(restart) [18:01:20.469] muffled <- TRUE [18:01:20.469] break [18:01:20.469] } [18:01:20.469] } [18:01:20.469] } [18:01:20.469] invisible(muffled) [18:01:20.469] } [18:01:20.469] muffleCondition(cond, pattern = "^muffle") [18:01:20.469] } [18:01:20.469] } [18:01:20.469] } [18:01:20.469] })) [18:01:20.469] }, error = function(ex) { [18:01:20.469] base::structure(base::list(value = NULL, visible = NULL, [18:01:20.469] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.469] ...future.rng), started = ...future.startTime, [18:01:20.469] finished = Sys.time(), session_uuid = NA_character_, [18:01:20.469] version = "1.8"), class = "FutureResult") [18:01:20.469] }, finally = { [18:01:20.469] if (!identical(...future.workdir, getwd())) [18:01:20.469] setwd(...future.workdir) [18:01:20.469] { [18:01:20.469] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:20.469] ...future.oldOptions$nwarnings <- NULL [18:01:20.469] } [18:01:20.469] base::options(...future.oldOptions) [18:01:20.469] if (.Platform$OS.type == "windows") { [18:01:20.469] old_names <- names(...future.oldEnvVars) [18:01:20.469] envs <- base::Sys.getenv() [18:01:20.469] names <- names(envs) [18:01:20.469] common <- intersect(names, old_names) [18:01:20.469] added <- setdiff(names, old_names) [18:01:20.469] removed <- setdiff(old_names, names) [18:01:20.469] changed <- common[...future.oldEnvVars[common] != [18:01:20.469] envs[common]] [18:01:20.469] NAMES <- toupper(changed) [18:01:20.469] args <- list() [18:01:20.469] for (kk in seq_along(NAMES)) { [18:01:20.469] name <- changed[[kk]] [18:01:20.469] NAME <- NAMES[[kk]] [18:01:20.469] if (name != NAME && is.element(NAME, old_names)) [18:01:20.469] next [18:01:20.469] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.469] } [18:01:20.469] NAMES <- toupper(added) [18:01:20.469] for (kk in seq_along(NAMES)) { [18:01:20.469] name <- added[[kk]] [18:01:20.469] NAME <- NAMES[[kk]] [18:01:20.469] if (name != NAME && is.element(NAME, old_names)) [18:01:20.469] next [18:01:20.469] args[[name]] <- "" [18:01:20.469] } [18:01:20.469] NAMES <- toupper(removed) [18:01:20.469] for (kk in seq_along(NAMES)) { [18:01:20.469] name <- removed[[kk]] [18:01:20.469] NAME <- NAMES[[kk]] [18:01:20.469] if (name != NAME && is.element(NAME, old_names)) [18:01:20.469] next [18:01:20.469] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.469] } [18:01:20.469] if (length(args) > 0) [18:01:20.469] base::do.call(base::Sys.setenv, args = args) [18:01:20.469] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:20.469] } [18:01:20.469] else { [18:01:20.469] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:20.469] } [18:01:20.469] { [18:01:20.469] if (base::length(...future.futureOptionsAdded) > [18:01:20.469] 0L) { [18:01:20.469] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:20.469] base::names(opts) <- ...future.futureOptionsAdded [18:01:20.469] base::options(opts) [18:01:20.469] } [18:01:20.469] { [18:01:20.469] { [18:01:20.469] NULL [18:01:20.469] RNGkind("Mersenne-Twister") [18:01:20.469] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:01:20.469] inherits = FALSE) [18:01:20.469] } [18:01:20.469] options(future.plan = NULL) [18:01:20.469] if (is.na(NA_character_)) [18:01:20.469] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.469] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:20.469] future::plan(list(function (..., envir = parent.frame()) [18:01:20.469] { [18:01:20.469] future <- SequentialFuture(..., envir = envir) [18:01:20.469] if (!future$lazy) [18:01:20.469] future <- run(future) [18:01:20.469] invisible(future) [18:01:20.469] }), .cleanup = FALSE, .init = FALSE) [18:01:20.469] } [18:01:20.469] } [18:01:20.469] } [18:01:20.469] }) [18:01:20.469] if (TRUE) { [18:01:20.469] base::sink(type = "output", split = FALSE) [18:01:20.469] if (TRUE) { [18:01:20.469] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:20.469] } [18:01:20.469] else { [18:01:20.469] ...future.result["stdout"] <- base::list(NULL) [18:01:20.469] } [18:01:20.469] base::close(...future.stdout) [18:01:20.469] ...future.stdout <- NULL [18:01:20.469] } [18:01:20.469] ...future.result$conditions <- ...future.conditions [18:01:20.469] ...future.result$finished <- base::Sys.time() [18:01:20.469] ...future.result [18:01:20.469] } [18:01:20.473] assign_globals() ... [18:01:20.473] List of 1 [18:01:20.473] $ future.call.arguments:List of 2 [18:01:20.473] ..$ : int [1:2] 1 2 [18:01:20.473] ..$ : num 3 [18:01:20.473] ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:01:20.473] - attr(*, "where")=List of 1 [18:01:20.473] ..$ future.call.arguments: [18:01:20.473] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:01:20.473] - attr(*, "resolved")= logi FALSE [18:01:20.473] - attr(*, "total_size")= num 112 [18:01:20.473] - attr(*, "already-done")= logi TRUE [18:01:20.477] - copied 'future.call.arguments' to environment [18:01:20.477] assign_globals() ... done [18:01:20.478] plan(): Setting new future strategy stack: [18:01:20.478] List of future strategies: [18:01:20.478] 1. sequential: [18:01:20.478] - args: function (..., envir = parent.frame()) [18:01:20.478] - tweaked: FALSE [18:01:20.478] - call: NULL [18:01:20.478] plan(): nbrOfWorkers() = 1 [18:01:20.479] plan(): Setting new future strategy stack: [18:01:20.479] List of future strategies: [18:01:20.479] 1. sequential: [18:01:20.479] - args: function (..., envir = parent.frame()) [18:01:20.479] - tweaked: FALSE [18:01:20.479] - call: plan(strategy, substitute = FALSE) [18:01:20.480] plan(): nbrOfWorkers() = 1 [18:01:20.480] SequentialFuture started (and completed) [18:01:20.480] - Launch lazy future ... done [18:01:20.480] run() for 'SequentialFuture' ... done [1] 6 ** Sum function 'F' with plan('sequential') ... function (x, y) { message("Using '...' in a formula") fcn <- function(x, y) { z = ~list(...) sum(x, y) } f <- future(fcn(x, y)) y <- value(f) y } Using '...' in a formula [18:01:20.481] getGlobalsAndPackages() ... [18:01:20.481] Searching for globals... [18:01:20.485] - globals found: [9] 'fcn', 'x', 'y', '{', '=', '~', 'list', 'sum', '...' [18:01:20.485] Searching for globals ... DONE [18:01:20.485] Resolving globals: FALSE [18:01:20.485] Tweak future expression to call with '...' arguments ... [18:01:20.486] The total size of the 3 globals is 4.18 KiB (4280 bytes) [18:01:20.487] The total size of the 3 globals exported for future expression ('fcn(x, y)') is 4.18 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are three globals: 'fcn' (4.07 KiB of class 'function'), 'x' (56 bytes of class 'numeric') and 'y' (56 bytes of class 'numeric') [18:01:20.487] - globals: [3] 'fcn', 'x', 'y' [18:01:20.487] [18:01:20.487] getGlobalsAndPackages() ... DONE [18:01:20.487] run() for 'Future' ... [18:01:20.488] - state: 'created' [18:01:20.488] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:01:20.488] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:01:20.488] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:01:20.489] - Field: 'label' [18:01:20.489] - Field: 'local' [18:01:20.489] - Field: 'owner' [18:01:20.489] - Field: 'envir' [18:01:20.489] - Field: 'packages' [18:01:20.489] - Field: 'gc' [18:01:20.490] - Field: 'conditions' [18:01:20.490] - Field: 'expr' [18:01:20.490] - Field: 'uuid' [18:01:20.490] - Field: 'seed' [18:01:20.490] - Field: 'version' [18:01:20.490] - Field: 'result' [18:01:20.491] - Field: 'asynchronous' [18:01:20.491] - Field: 'calls' [18:01:20.491] - Field: 'globals' [18:01:20.491] - Field: 'stdout' [18:01:20.491] - Field: 'earlySignal' [18:01:20.492] - Field: 'lazy' [18:01:20.492] - Field: 'state' [18:01:20.492] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:01:20.492] - Launch lazy future ... [18:01:20.492] Packages needed by the future expression (n = 0): [18:01:20.492] Packages needed by future strategies (n = 0): [18:01:20.493] { [18:01:20.493] { [18:01:20.493] { [18:01:20.493] ...future.startTime <- base::Sys.time() [18:01:20.493] { [18:01:20.493] { [18:01:20.493] { [18:01:20.493] base::local({ [18:01:20.493] has_future <- base::requireNamespace("future", [18:01:20.493] quietly = TRUE) [18:01:20.493] if (has_future) { [18:01:20.493] ns <- base::getNamespace("future") [18:01:20.493] version <- ns[[".package"]][["version"]] [18:01:20.493] if (is.null(version)) [18:01:20.493] version <- utils::packageVersion("future") [18:01:20.493] } [18:01:20.493] else { [18:01:20.493] version <- NULL [18:01:20.493] } [18:01:20.493] if (!has_future || version < "1.8.0") { [18:01:20.493] info <- base::c(r_version = base::gsub("R version ", [18:01:20.493] "", base::R.version$version.string), [18:01:20.493] platform = base::sprintf("%s (%s-bit)", [18:01:20.493] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:20.493] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:20.493] "release", "version")], collapse = " "), [18:01:20.493] hostname = base::Sys.info()[["nodename"]]) [18:01:20.493] info <- base::sprintf("%s: %s", base::names(info), [18:01:20.493] info) [18:01:20.493] info <- base::paste(info, collapse = "; ") [18:01:20.493] if (!has_future) { [18:01:20.493] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:20.493] info) [18:01:20.493] } [18:01:20.493] else { [18:01:20.493] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:20.493] info, version) [18:01:20.493] } [18:01:20.493] base::stop(msg) [18:01:20.493] } [18:01:20.493] }) [18:01:20.493] } [18:01:20.493] options(future.plan = NULL) [18:01:20.493] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.493] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:20.493] } [18:01:20.493] ...future.workdir <- getwd() [18:01:20.493] } [18:01:20.493] ...future.oldOptions <- base::as.list(base::.Options) [18:01:20.493] ...future.oldEnvVars <- base::Sys.getenv() [18:01:20.493] } [18:01:20.493] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:20.493] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:20.493] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:20.493] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:20.493] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:20.493] future.stdout.windows.reencode = NULL, width = 80L) [18:01:20.493] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:20.493] base::names(...future.oldOptions)) [18:01:20.493] } [18:01:20.493] if (FALSE) { [18:01:20.493] } [18:01:20.493] else { [18:01:20.493] if (TRUE) { [18:01:20.493] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:20.493] open = "w") [18:01:20.493] } [18:01:20.493] else { [18:01:20.493] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:20.493] windows = "NUL", "/dev/null"), open = "w") [18:01:20.493] } [18:01:20.493] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:20.493] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:20.493] base::sink(type = "output", split = FALSE) [18:01:20.493] base::close(...future.stdout) [18:01:20.493] }, add = TRUE) [18:01:20.493] } [18:01:20.493] ...future.frame <- base::sys.nframe() [18:01:20.493] ...future.conditions <- base::list() [18:01:20.493] ...future.rng <- base::globalenv()$.Random.seed [18:01:20.493] if (FALSE) { [18:01:20.493] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:20.493] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:20.493] } [18:01:20.493] ...future.result <- base::tryCatch({ [18:01:20.493] base::withCallingHandlers({ [18:01:20.493] ...future.value <- base::withVisible(base::local(fcn(x, [18:01:20.493] y))) [18:01:20.493] future::FutureResult(value = ...future.value$value, [18:01:20.493] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.493] ...future.rng), globalenv = if (FALSE) [18:01:20.493] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:20.493] ...future.globalenv.names)) [18:01:20.493] else NULL, started = ...future.startTime, version = "1.8") [18:01:20.493] }, condition = base::local({ [18:01:20.493] c <- base::c [18:01:20.493] inherits <- base::inherits [18:01:20.493] invokeRestart <- base::invokeRestart [18:01:20.493] length <- base::length [18:01:20.493] list <- base::list [18:01:20.493] seq.int <- base::seq.int [18:01:20.493] signalCondition <- base::signalCondition [18:01:20.493] sys.calls <- base::sys.calls [18:01:20.493] `[[` <- base::`[[` [18:01:20.493] `+` <- base::`+` [18:01:20.493] `<<-` <- base::`<<-` [18:01:20.493] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:20.493] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:20.493] 3L)] [18:01:20.493] } [18:01:20.493] function(cond) { [18:01:20.493] is_error <- inherits(cond, "error") [18:01:20.493] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:20.493] NULL) [18:01:20.493] if (is_error) { [18:01:20.493] sessionInformation <- function() { [18:01:20.493] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:20.493] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:20.493] search = base::search(), system = base::Sys.info()) [18:01:20.493] } [18:01:20.493] ...future.conditions[[length(...future.conditions) + [18:01:20.493] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:20.493] cond$call), session = sessionInformation(), [18:01:20.493] timestamp = base::Sys.time(), signaled = 0L) [18:01:20.493] signalCondition(cond) [18:01:20.493] } [18:01:20.493] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:20.493] "immediateCondition"))) { [18:01:20.493] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:20.493] ...future.conditions[[length(...future.conditions) + [18:01:20.493] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:20.493] if (TRUE && !signal) { [18:01:20.493] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.493] { [18:01:20.493] inherits <- base::inherits [18:01:20.493] invokeRestart <- base::invokeRestart [18:01:20.493] is.null <- base::is.null [18:01:20.493] muffled <- FALSE [18:01:20.493] if (inherits(cond, "message")) { [18:01:20.493] muffled <- grepl(pattern, "muffleMessage") [18:01:20.493] if (muffled) [18:01:20.493] invokeRestart("muffleMessage") [18:01:20.493] } [18:01:20.493] else if (inherits(cond, "warning")) { [18:01:20.493] muffled <- grepl(pattern, "muffleWarning") [18:01:20.493] if (muffled) [18:01:20.493] invokeRestart("muffleWarning") [18:01:20.493] } [18:01:20.493] else if (inherits(cond, "condition")) { [18:01:20.493] if (!is.null(pattern)) { [18:01:20.493] computeRestarts <- base::computeRestarts [18:01:20.493] grepl <- base::grepl [18:01:20.493] restarts <- computeRestarts(cond) [18:01:20.493] for (restart in restarts) { [18:01:20.493] name <- restart$name [18:01:20.493] if (is.null(name)) [18:01:20.493] next [18:01:20.493] if (!grepl(pattern, name)) [18:01:20.493] next [18:01:20.493] invokeRestart(restart) [18:01:20.493] muffled <- TRUE [18:01:20.493] break [18:01:20.493] } [18:01:20.493] } [18:01:20.493] } [18:01:20.493] invisible(muffled) [18:01:20.493] } [18:01:20.493] muffleCondition(cond, pattern = "^muffle") [18:01:20.493] } [18:01:20.493] } [18:01:20.493] else { [18:01:20.493] if (TRUE) { [18:01:20.493] muffleCondition <- function (cond, pattern = "^muffle") [18:01:20.493] { [18:01:20.493] inherits <- base::inherits [18:01:20.493] invokeRestart <- base::invokeRestart [18:01:20.493] is.null <- base::is.null [18:01:20.493] muffled <- FALSE [18:01:20.493] if (inherits(cond, "message")) { [18:01:20.493] muffled <- grepl(pattern, "muffleMessage") [18:01:20.493] if (muffled) [18:01:20.493] invokeRestart("muffleMessage") [18:01:20.493] } [18:01:20.493] else if (inherits(cond, "warning")) { [18:01:20.493] muffled <- grepl(pattern, "muffleWarning") [18:01:20.493] if (muffled) [18:01:20.493] invokeRestart("muffleWarning") [18:01:20.493] } [18:01:20.493] else if (inherits(cond, "condition")) { [18:01:20.493] if (!is.null(pattern)) { [18:01:20.493] computeRestarts <- base::computeRestarts [18:01:20.493] grepl <- base::grepl [18:01:20.493] restarts <- computeRestarts(cond) [18:01:20.493] for (restart in restarts) { [18:01:20.493] name <- restart$name [18:01:20.493] if (is.null(name)) [18:01:20.493] next [18:01:20.493] if (!grepl(pattern, name)) [18:01:20.493] next [18:01:20.493] invokeRestart(restart) [18:01:20.493] muffled <- TRUE [18:01:20.493] break [18:01:20.493] } [18:01:20.493] } [18:01:20.493] } [18:01:20.493] invisible(muffled) [18:01:20.493] } [18:01:20.493] muffleCondition(cond, pattern = "^muffle") [18:01:20.493] } [18:01:20.493] } [18:01:20.493] } [18:01:20.493] })) [18:01:20.493] }, error = function(ex) { [18:01:20.493] base::structure(base::list(value = NULL, visible = NULL, [18:01:20.493] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:20.493] ...future.rng), started = ...future.startTime, [18:01:20.493] finished = Sys.time(), session_uuid = NA_character_, [18:01:20.493] version = "1.8"), class = "FutureResult") [18:01:20.493] }, finally = { [18:01:20.493] if (!identical(...future.workdir, getwd())) [18:01:20.493] setwd(...future.workdir) [18:01:20.493] { [18:01:20.493] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:20.493] ...future.oldOptions$nwarnings <- NULL [18:01:20.493] } [18:01:20.493] base::options(...future.oldOptions) [18:01:20.493] if (.Platform$OS.type == "windows") { [18:01:20.493] old_names <- names(...future.oldEnvVars) [18:01:20.493] envs <- base::Sys.getenv() [18:01:20.493] names <- names(envs) [18:01:20.493] common <- intersect(names, old_names) [18:01:20.493] added <- setdiff(names, old_names) [18:01:20.493] removed <- setdiff(old_names, names) [18:01:20.493] changed <- common[...future.oldEnvVars[common] != [18:01:20.493] envs[common]] [18:01:20.493] NAMES <- toupper(changed) [18:01:20.493] args <- list() [18:01:20.493] for (kk in seq_along(NAMES)) { [18:01:20.493] name <- changed[[kk]] [18:01:20.493] NAME <- NAMES[[kk]] [18:01:20.493] if (name != NAME && is.element(NAME, old_names)) [18:01:20.493] next [18:01:20.493] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.493] } [18:01:20.493] NAMES <- toupper(added) [18:01:20.493] for (kk in seq_along(NAMES)) { [18:01:20.493] name <- added[[kk]] [18:01:20.493] NAME <- NAMES[[kk]] [18:01:20.493] if (name != NAME && is.element(NAME, old_names)) [18:01:20.493] next [18:01:20.493] args[[name]] <- "" [18:01:20.493] } [18:01:20.493] NAMES <- toupper(removed) [18:01:20.493] for (kk in seq_along(NAMES)) { [18:01:20.493] name <- removed[[kk]] [18:01:20.493] NAME <- NAMES[[kk]] [18:01:20.493] if (name != NAME && is.element(NAME, old_names)) [18:01:20.493] next [18:01:20.493] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:20.493] } [18:01:20.493] if (length(args) > 0) [18:01:20.493] base::do.call(base::Sys.setenv, args = args) [18:01:20.493] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:20.493] } [18:01:20.493] else { [18:01:20.493] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:20.493] } [18:01:20.493] { [18:01:20.493] if (base::length(...future.futureOptionsAdded) > [18:01:20.493] 0L) { [18:01:20.493] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:20.493] base::names(opts) <- ...future.futureOptionsAdded [18:01:20.493] base::options(opts) [18:01:20.493] } [18:01:20.493] { [18:01:20.493] { [18:01:20.493] NULL [18:01:20.493] RNGkind("Mersenne-Twister") [18:01:20.493] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:01:20.493] inherits = FALSE) [18:01:20.493] } [18:01:20.493] options(future.plan = NULL) [18:01:20.493] if (is.na(NA_character_)) [18:01:20.493] Sys.unsetenv("R_FUTURE_PLAN") [18:01:20.493] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:20.493] future::plan(list(function (..., envir = parent.frame()) [18:01:20.493] { [18:01:20.493] future <- SequentialFuture(..., envir = envir) [18:01:20.493] if (!future$lazy) [18:01:20.493] future <- run(future) [18:01:20.493] invisible(future) [18:01:20.493] }), .cleanup = FALSE, .init = FALSE) [18:01:20.493] } [18:01:20.493] } [18:01:20.493] } [18:01:20.493] }) [18:01:20.493] if (TRUE) { [18:01:20.493] base::sink(type = "output", split = FALSE) [18:01:20.493] if (TRUE) { [18:01:20.493] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:20.493] } [18:01:20.493] else { [18:01:20.493] ...future.result["stdout"] <- base::list(NULL) [18:01:20.493] } [18:01:20.493] base::close(...future.stdout) [18:01:20.493] ...future.stdout <- NULL [18:01:20.493] } [18:01:20.493] ...future.result$conditions <- ...future.conditions [18:01:20.493] ...future.result$finished <- base::Sys.time() [18:01:20.493] ...future.result [18:01:20.493] } [18:01:20.497] assign_globals() ... [18:01:20.497] List of 3 [18:01:20.497] $ fcn:function (x, y) [18:01:20.497] $ x : int [1:2] 1 2 [18:01:20.497] $ y : num 3 [18:01:20.497] - attr(*, "where")=List of 3 [18:01:20.497] ..$ fcn: [18:01:20.497] ..$ x : [18:01:20.497] ..$ y : [18:01:20.497] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:01:20.497] - attr(*, "resolved")= logi FALSE [18:01:20.497] - attr(*, "total_size")= num 4280 [18:01:20.497] - attr(*, "already-done")= logi TRUE [18:01:20.501] - reassign environment for 'fcn' [18:01:20.501] - copied 'fcn' to environment [18:01:20.501] - copied 'x' to environment [18:01:20.502] - copied 'y' to environment [18:01:20.502] assign_globals() ... done [18:01:20.502] plan(): Setting new future strategy stack: [18:01:20.502] List of future strategies: [18:01:20.502] 1. sequential: [18:01:20.502] - args: function (..., envir = parent.frame()) [18:01:20.502] - tweaked: FALSE [18:01:20.502] - call: NULL [18:01:20.503] plan(): nbrOfWorkers() = 1 [18:01:20.504] plan(): Setting new future strategy stack: [18:01:20.504] List of future strategies: [18:01:20.504] 1. sequential: [18:01:20.504] - args: function (..., envir = parent.frame()) [18:01:20.504] - tweaked: FALSE [18:01:20.504] - call: plan(strategy, substitute = FALSE) [18:01:20.504] plan(): nbrOfWorkers() = 1 [18:01:20.505] SequentialFuture started (and completed) [18:01:20.505] - Launch lazy future ... done [18:01:20.505] run() for 'SequentialFuture' ... done [1] 6 Testing with 1 cores ... DONE Testing with 2 cores ... *** Global argument '...' ... - plan('multisession') ... [18:01:20.512] plan(): Setting new future strategy stack: [18:01:20.513] List of future strategies: [18:01:20.513] 1. multisession: [18:01:20.513] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:01:20.513] - tweaked: FALSE [18:01:20.513] - call: plan(strategy, substitute = FALSE) [18:01:20.513] plan(): plan_init() of 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... [18:01:20.513] multisession: [18:01:20.513] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:01:20.513] - tweaked: FALSE [18:01:20.513] - call: plan(strategy, substitute = FALSE) [18:01:20.518] getGlobalsAndPackages() ... [18:01:20.518] Not searching for globals [18:01:20.518] - globals: [0] [18:01:20.519] getGlobalsAndPackages() ... DONE [18:01:20.519] [local output] makeClusterPSOCK() ... [18:01:20.548] [local output] Workers: [n = 2] 'localhost', 'localhost' [18:01:20.555] [local output] Base port: 30675 [18:01:20.555] [local output] Getting setup options for 2 cluster nodes ... [18:01:20.555] [local output] - Node 1 of 2 ... [18:01:20.556] [local output] localMachine=TRUE => revtunnel=FALSE [18:01:20.557] Testing if worker's PID can be inferred: '"D:/RCompile/recent/R/bin/x64/Rscript" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/RtmpEjdOKf/worker.rank=1.parallelly.parent=9400.24b81f1043fe.pid\")), silent = TRUE)" -e "file.exists(\"D:/temp/RtmpEjdOKf/worker.rank=1.parallelly.parent=9400.24b81f1043fe.pid\")"' [18:01:20.882] - Possible to infer worker's PID: TRUE [18:01:20.883] [local output] Rscript port: 30675 [18:01:20.884] [local output] - Node 2 of 2 ... [18:01:20.884] [local output] localMachine=TRUE => revtunnel=FALSE [18:01:20.886] [local output] Rscript port: 30675 [18:01:20.886] [local output] Getting setup options for 2 cluster nodes ... done [18:01:20.887] [local output] - Parallel setup requested for some PSOCK nodes [18:01:20.888] [local output] Setting up PSOCK nodes in parallel [18:01:20.888] List of 36 [18:01:20.888] $ worker : chr "localhost" [18:01:20.888] ..- attr(*, "localhost")= logi TRUE [18:01:20.888] $ master : chr "localhost" [18:01:20.888] $ port : int 30675 [18:01:20.888] $ connectTimeout : num 120 [18:01:20.888] $ timeout : num 120 [18:01:20.888] $ rscript : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\"" [18:01:20.888] $ homogeneous : logi TRUE [18:01:20.888] $ rscript_args : chr "--default-packages=datasets,utils,grDevices,graphics,stats,methods -e \"#label=dotdotdot.R:9400:CRANWIN3:CRAN\""| __truncated__ [18:01:20.888] $ rscript_envs : NULL [18:01:20.888] $ rscript_libs : chr [1:2] "D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c" "D:/RCompile/recent/R/library" [18:01:20.888] $ rscript_startup : NULL [18:01:20.888] $ rscript_sh : chr "cmd" [18:01:20.888] $ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [18:01:20.888] $ methods : logi TRUE [18:01:20.888] $ socketOptions : chr "no-delay" [18:01:20.888] $ useXDR : logi FALSE [18:01:20.888] $ outfile : chr "/dev/null" [18:01:20.888] $ renice : int NA [18:01:20.888] $ rshcmd : NULL [18:01:20.888] $ user : chr(0) [18:01:20.888] $ revtunnel : logi FALSE [18:01:20.888] $ rshlogfile : NULL [18:01:20.888] $ rshopts : chr(0) [18:01:20.888] $ rank : int 1 [18:01:20.888] $ manual : logi FALSE [18:01:20.888] $ dryrun : logi FALSE [18:01:20.888] $ quiet : logi FALSE [18:01:20.888] $ setup_strategy : chr "parallel" [18:01:20.888] $ local_cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [18:01:20.888] $ pidfile : chr "D:/temp/RtmpEjdOKf/worker.rank=1.parallelly.parent=9400.24b81f1043fe.pid" [18:01:20.888] $ rshcmd_label : NULL [18:01:20.888] $ rsh_call : NULL [18:01:20.888] $ cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [18:01:20.888] $ localMachine : logi TRUE [18:01:20.888] $ make_fcn :function (worker = getOption2("parallelly.localhost.hostname", "localhost"), [18:01:20.888] master = NULL, port, connectTimeout = getOption2("parallelly.makeNodePSOCK.connectTimeout", [18:01:20.888] 2 * 60), timeout = getOption2("parallelly.makeNodePSOCK.timeout", [18:01:20.888] 30 * 24 * 60 * 60), rscript = NULL, homogeneous = NULL, rscript_args = NULL, [18:01:20.888] rscript_envs = NULL, rscript_libs = NULL, rscript_startup = NULL, rscript_sh = c("auto", [18:01:20.888] "cmd", "sh"), default_packages = c("datasets", "utils", "grDevices", [18:01:20.888] "graphics", "stats", if (methods) "methods"), methods = TRUE, socketOptions = getOption2("parallelly.makeNodePSOCK.socketOptions", [18:01:20.888] "no-delay"), useXDR = getOption2("parallelly.makeNodePSOCK.useXDR", [18:01:20.888] FALSE), outfile = "/dev/null", renice = NA_integer_, rshcmd = getOption2("parallelly.makeNodePSOCK.rshcmd", [18:01:20.888] NULL), user = NULL, revtunnel = NA, rshlogfile = NULL, rshopts = getOption2("parallelly.makeNodePSOCK.rshopts", [18:01:20.888] NULL), rank = 1L, manual = FALSE, dryrun = FALSE, quiet = FALSE, [18:01:20.888] setup_strategy = getOption2("parallelly.makeNodePSOCK.setup_strategy", [18:01:20.888] "parallel"), action = c("launch", "options"), verbose = FALSE) [18:01:20.888] $ arguments :List of 28 [18:01:20.888] ..$ worker : chr "localhost" [18:01:20.888] ..$ master : NULL [18:01:20.888] ..$ port : int 30675 [18:01:20.888] ..$ connectTimeout : num 120 [18:01:20.888] ..$ timeout : num 120 [18:01:20.888] ..$ rscript : NULL [18:01:20.888] ..$ homogeneous : NULL [18:01:20.888] ..$ rscript_args : NULL [18:01:20.888] ..$ rscript_envs : NULL [18:01:20.888] ..$ rscript_libs : chr [1:2] "D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c" "D:/RCompile/recent/R/library" [18:01:20.888] ..$ rscript_startup : NULL [18:01:20.888] ..$ rscript_sh : chr [1:3] "auto" "cmd" "sh" [18:01:20.888] ..$ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [18:01:20.888] ..$ methods : logi TRUE [18:01:20.888] ..$ socketOptions : chr "no-delay" [18:01:20.888] ..$ useXDR : logi FALSE [18:01:20.888] ..$ outfile : chr "/dev/null" [18:01:20.888] ..$ renice : int NA [18:01:20.888] ..$ rshcmd : NULL [18:01:20.888] ..$ user : NULL [18:01:20.888] ..$ revtunnel : logi NA [18:01:20.888] ..$ rshlogfile : NULL [18:01:20.888] ..$ rshopts : NULL [18:01:20.888] ..$ rank : int 1 [18:01:20.888] ..$ manual : logi FALSE [18:01:20.888] ..$ dryrun : logi FALSE [18:01:20.888] ..$ quiet : logi FALSE [18:01:20.888] ..$ setup_strategy : chr "parallel" [18:01:20.888] - attr(*, "class")= chr [1:2] "makeNodePSOCKOptions" "makeNodeOptions" [18:01:20.909] [local output] System call to launch all workers: [18:01:20.909] [local output] "D:/RCompile/recent/R/bin/x64/Rscript" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "#label=dotdotdot.R:9400:CRANWIN3:CRAN" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/RtmpEjdOKf/worker.rank=1.parallelly.parent=9400.24b81f1043fe.pid\")), silent = TRUE)" -e "options(socketOptions = \"no-delay\")" -e ".libPaths(c(\"D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c\",\"D:/RCompile/recent/R/library\"))" -e "workRSOCK <- tryCatch(parallel:::.workRSOCK, error=function(e) parallel:::.slaveRSOCK); workRSOCK()" MASTER=localhost PORT=30675 OUT=/dev/null TIMEOUT=120 XDR=FALSE SETUPTIMEOUT=120 SETUPSTRATEGY=parallel [18:01:20.910] [local output] Starting PSOCK main server [18:01:20.919] [local output] Workers launched [18:01:20.919] [local output] Waiting for workers to connect back [18:01:20.919] - [local output] 0 workers out of 2 ready [18:01:21.111] - [local output] 0 workers out of 2 ready [18:01:21.112] - [local output] 1 workers out of 2 ready [18:01:21.113] - [local output] 1 workers out of 2 ready [18:01:21.114] - [local output] 2 workers out of 2 ready [18:01:21.114] [local output] Launching of workers completed [18:01:21.114] [local output] Collecting session information from workers [18:01:21.115] [local output] - Worker #1 of 2 [18:01:21.116] [local output] - Worker #2 of 2 [18:01:21.116] [local output] makeClusterPSOCK() ... done [18:01:21.129] Packages needed by the future expression (n = 0): [18:01:21.129] Packages needed by future strategies (n = 0): [18:01:21.130] { [18:01:21.130] { [18:01:21.130] { [18:01:21.130] ...future.startTime <- base::Sys.time() [18:01:21.130] { [18:01:21.130] { [18:01:21.130] { [18:01:21.130] { [18:01:21.130] base::local({ [18:01:21.130] has_future <- base::requireNamespace("future", [18:01:21.130] quietly = TRUE) [18:01:21.130] if (has_future) { [18:01:21.130] ns <- base::getNamespace("future") [18:01:21.130] version <- ns[[".package"]][["version"]] [18:01:21.130] if (is.null(version)) [18:01:21.130] version <- utils::packageVersion("future") [18:01:21.130] } [18:01:21.130] else { [18:01:21.130] version <- NULL [18:01:21.130] } [18:01:21.130] if (!has_future || version < "1.8.0") { [18:01:21.130] info <- base::c(r_version = base::gsub("R version ", [18:01:21.130] "", base::R.version$version.string), [18:01:21.130] platform = base::sprintf("%s (%s-bit)", [18:01:21.130] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:21.130] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:21.130] "release", "version")], collapse = " "), [18:01:21.130] hostname = base::Sys.info()[["nodename"]]) [18:01:21.130] info <- base::sprintf("%s: %s", base::names(info), [18:01:21.130] info) [18:01:21.130] info <- base::paste(info, collapse = "; ") [18:01:21.130] if (!has_future) { [18:01:21.130] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:21.130] info) [18:01:21.130] } [18:01:21.130] else { [18:01:21.130] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:21.130] info, version) [18:01:21.130] } [18:01:21.130] base::stop(msg) [18:01:21.130] } [18:01:21.130] }) [18:01:21.130] } [18:01:21.130] ...future.mc.cores.old <- base::getOption("mc.cores") [18:01:21.130] base::options(mc.cores = 1L) [18:01:21.130] } [18:01:21.130] options(future.plan = NULL) [18:01:21.130] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.130] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:21.130] } [18:01:21.130] ...future.workdir <- getwd() [18:01:21.130] } [18:01:21.130] ...future.oldOptions <- base::as.list(base::.Options) [18:01:21.130] ...future.oldEnvVars <- base::Sys.getenv() [18:01:21.130] } [18:01:21.130] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:21.130] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:21.130] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:21.130] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:21.130] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:21.130] future.stdout.windows.reencode = NULL, width = 80L) [18:01:21.130] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:21.130] base::names(...future.oldOptions)) [18:01:21.130] } [18:01:21.130] if (FALSE) { [18:01:21.130] } [18:01:21.130] else { [18:01:21.130] if (TRUE) { [18:01:21.130] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:21.130] open = "w") [18:01:21.130] } [18:01:21.130] else { [18:01:21.130] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:21.130] windows = "NUL", "/dev/null"), open = "w") [18:01:21.130] } [18:01:21.130] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:21.130] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:21.130] base::sink(type = "output", split = FALSE) [18:01:21.130] base::close(...future.stdout) [18:01:21.130] }, add = TRUE) [18:01:21.130] } [18:01:21.130] ...future.frame <- base::sys.nframe() [18:01:21.130] ...future.conditions <- base::list() [18:01:21.130] ...future.rng <- base::globalenv()$.Random.seed [18:01:21.130] if (FALSE) { [18:01:21.130] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:21.130] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:21.130] } [18:01:21.130] ...future.result <- base::tryCatch({ [18:01:21.130] base::withCallingHandlers({ [18:01:21.130] ...future.value <- base::withVisible(base::local({ [18:01:21.130] ...future.makeSendCondition <- local({ [18:01:21.130] sendCondition <- NULL [18:01:21.130] function(frame = 1L) { [18:01:21.130] if (is.function(sendCondition)) [18:01:21.130] return(sendCondition) [18:01:21.130] ns <- getNamespace("parallel") [18:01:21.130] if (exists("sendData", mode = "function", [18:01:21.130] envir = ns)) { [18:01:21.130] parallel_sendData <- get("sendData", mode = "function", [18:01:21.130] envir = ns) [18:01:21.130] envir <- sys.frame(frame) [18:01:21.130] master <- NULL [18:01:21.130] while (!identical(envir, .GlobalEnv) && [18:01:21.130] !identical(envir, emptyenv())) { [18:01:21.130] if (exists("master", mode = "list", envir = envir, [18:01:21.130] inherits = FALSE)) { [18:01:21.130] master <- get("master", mode = "list", [18:01:21.130] envir = envir, inherits = FALSE) [18:01:21.130] if (inherits(master, c("SOCKnode", [18:01:21.130] "SOCK0node"))) { [18:01:21.130] sendCondition <<- function(cond) { [18:01:21.130] data <- list(type = "VALUE", value = cond, [18:01:21.130] success = TRUE) [18:01:21.130] parallel_sendData(master, data) [18:01:21.130] } [18:01:21.130] return(sendCondition) [18:01:21.130] } [18:01:21.130] } [18:01:21.130] frame <- frame + 1L [18:01:21.130] envir <- sys.frame(frame) [18:01:21.130] } [18:01:21.130] } [18:01:21.130] sendCondition <<- function(cond) NULL [18:01:21.130] } [18:01:21.130] }) [18:01:21.130] withCallingHandlers({ [18:01:21.130] NA [18:01:21.130] }, immediateCondition = function(cond) { [18:01:21.130] sendCondition <- ...future.makeSendCondition() [18:01:21.130] sendCondition(cond) [18:01:21.130] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.130] { [18:01:21.130] inherits <- base::inherits [18:01:21.130] invokeRestart <- base::invokeRestart [18:01:21.130] is.null <- base::is.null [18:01:21.130] muffled <- FALSE [18:01:21.130] if (inherits(cond, "message")) { [18:01:21.130] muffled <- grepl(pattern, "muffleMessage") [18:01:21.130] if (muffled) [18:01:21.130] invokeRestart("muffleMessage") [18:01:21.130] } [18:01:21.130] else if (inherits(cond, "warning")) { [18:01:21.130] muffled <- grepl(pattern, "muffleWarning") [18:01:21.130] if (muffled) [18:01:21.130] invokeRestart("muffleWarning") [18:01:21.130] } [18:01:21.130] else if (inherits(cond, "condition")) { [18:01:21.130] if (!is.null(pattern)) { [18:01:21.130] computeRestarts <- base::computeRestarts [18:01:21.130] grepl <- base::grepl [18:01:21.130] restarts <- computeRestarts(cond) [18:01:21.130] for (restart in restarts) { [18:01:21.130] name <- restart$name [18:01:21.130] if (is.null(name)) [18:01:21.130] next [18:01:21.130] if (!grepl(pattern, name)) [18:01:21.130] next [18:01:21.130] invokeRestart(restart) [18:01:21.130] muffled <- TRUE [18:01:21.130] break [18:01:21.130] } [18:01:21.130] } [18:01:21.130] } [18:01:21.130] invisible(muffled) [18:01:21.130] } [18:01:21.130] muffleCondition(cond) [18:01:21.130] }) [18:01:21.130] })) [18:01:21.130] future::FutureResult(value = ...future.value$value, [18:01:21.130] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.130] ...future.rng), globalenv = if (FALSE) [18:01:21.130] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:21.130] ...future.globalenv.names)) [18:01:21.130] else NULL, started = ...future.startTime, version = "1.8") [18:01:21.130] }, condition = base::local({ [18:01:21.130] c <- base::c [18:01:21.130] inherits <- base::inherits [18:01:21.130] invokeRestart <- base::invokeRestart [18:01:21.130] length <- base::length [18:01:21.130] list <- base::list [18:01:21.130] seq.int <- base::seq.int [18:01:21.130] signalCondition <- base::signalCondition [18:01:21.130] sys.calls <- base::sys.calls [18:01:21.130] `[[` <- base::`[[` [18:01:21.130] `+` <- base::`+` [18:01:21.130] `<<-` <- base::`<<-` [18:01:21.130] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:21.130] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:21.130] 3L)] [18:01:21.130] } [18:01:21.130] function(cond) { [18:01:21.130] is_error <- inherits(cond, "error") [18:01:21.130] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:21.130] NULL) [18:01:21.130] if (is_error) { [18:01:21.130] sessionInformation <- function() { [18:01:21.130] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:21.130] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:21.130] search = base::search(), system = base::Sys.info()) [18:01:21.130] } [18:01:21.130] ...future.conditions[[length(...future.conditions) + [18:01:21.130] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:21.130] cond$call), session = sessionInformation(), [18:01:21.130] timestamp = base::Sys.time(), signaled = 0L) [18:01:21.130] signalCondition(cond) [18:01:21.130] } [18:01:21.130] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:21.130] "immediateCondition"))) { [18:01:21.130] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:21.130] ...future.conditions[[length(...future.conditions) + [18:01:21.130] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:21.130] if (TRUE && !signal) { [18:01:21.130] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.130] { [18:01:21.130] inherits <- base::inherits [18:01:21.130] invokeRestart <- base::invokeRestart [18:01:21.130] is.null <- base::is.null [18:01:21.130] muffled <- FALSE [18:01:21.130] if (inherits(cond, "message")) { [18:01:21.130] muffled <- grepl(pattern, "muffleMessage") [18:01:21.130] if (muffled) [18:01:21.130] invokeRestart("muffleMessage") [18:01:21.130] } [18:01:21.130] else if (inherits(cond, "warning")) { [18:01:21.130] muffled <- grepl(pattern, "muffleWarning") [18:01:21.130] if (muffled) [18:01:21.130] invokeRestart("muffleWarning") [18:01:21.130] } [18:01:21.130] else if (inherits(cond, "condition")) { [18:01:21.130] if (!is.null(pattern)) { [18:01:21.130] computeRestarts <- base::computeRestarts [18:01:21.130] grepl <- base::grepl [18:01:21.130] restarts <- computeRestarts(cond) [18:01:21.130] for (restart in restarts) { [18:01:21.130] name <- restart$name [18:01:21.130] if (is.null(name)) [18:01:21.130] next [18:01:21.130] if (!grepl(pattern, name)) [18:01:21.130] next [18:01:21.130] invokeRestart(restart) [18:01:21.130] muffled <- TRUE [18:01:21.130] break [18:01:21.130] } [18:01:21.130] } [18:01:21.130] } [18:01:21.130] invisible(muffled) [18:01:21.130] } [18:01:21.130] muffleCondition(cond, pattern = "^muffle") [18:01:21.130] } [18:01:21.130] } [18:01:21.130] else { [18:01:21.130] if (TRUE) { [18:01:21.130] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.130] { [18:01:21.130] inherits <- base::inherits [18:01:21.130] invokeRestart <- base::invokeRestart [18:01:21.130] is.null <- base::is.null [18:01:21.130] muffled <- FALSE [18:01:21.130] if (inherits(cond, "message")) { [18:01:21.130] muffled <- grepl(pattern, "muffleMessage") [18:01:21.130] if (muffled) [18:01:21.130] invokeRestart("muffleMessage") [18:01:21.130] } [18:01:21.130] else if (inherits(cond, "warning")) { [18:01:21.130] muffled <- grepl(pattern, "muffleWarning") [18:01:21.130] if (muffled) [18:01:21.130] invokeRestart("muffleWarning") [18:01:21.130] } [18:01:21.130] else if (inherits(cond, "condition")) { [18:01:21.130] if (!is.null(pattern)) { [18:01:21.130] computeRestarts <- base::computeRestarts [18:01:21.130] grepl <- base::grepl [18:01:21.130] restarts <- computeRestarts(cond) [18:01:21.130] for (restart in restarts) { [18:01:21.130] name <- restart$name [18:01:21.130] if (is.null(name)) [18:01:21.130] next [18:01:21.130] if (!grepl(pattern, name)) [18:01:21.130] next [18:01:21.130] invokeRestart(restart) [18:01:21.130] muffled <- TRUE [18:01:21.130] break [18:01:21.130] } [18:01:21.130] } [18:01:21.130] } [18:01:21.130] invisible(muffled) [18:01:21.130] } [18:01:21.130] muffleCondition(cond, pattern = "^muffle") [18:01:21.130] } [18:01:21.130] } [18:01:21.130] } [18:01:21.130] })) [18:01:21.130] }, error = function(ex) { [18:01:21.130] base::structure(base::list(value = NULL, visible = NULL, [18:01:21.130] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.130] ...future.rng), started = ...future.startTime, [18:01:21.130] finished = Sys.time(), session_uuid = NA_character_, [18:01:21.130] version = "1.8"), class = "FutureResult") [18:01:21.130] }, finally = { [18:01:21.130] if (!identical(...future.workdir, getwd())) [18:01:21.130] setwd(...future.workdir) [18:01:21.130] { [18:01:21.130] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:21.130] ...future.oldOptions$nwarnings <- NULL [18:01:21.130] } [18:01:21.130] base::options(...future.oldOptions) [18:01:21.130] if (.Platform$OS.type == "windows") { [18:01:21.130] old_names <- names(...future.oldEnvVars) [18:01:21.130] envs <- base::Sys.getenv() [18:01:21.130] names <- names(envs) [18:01:21.130] common <- intersect(names, old_names) [18:01:21.130] added <- setdiff(names, old_names) [18:01:21.130] removed <- setdiff(old_names, names) [18:01:21.130] changed <- common[...future.oldEnvVars[common] != [18:01:21.130] envs[common]] [18:01:21.130] NAMES <- toupper(changed) [18:01:21.130] args <- list() [18:01:21.130] for (kk in seq_along(NAMES)) { [18:01:21.130] name <- changed[[kk]] [18:01:21.130] NAME <- NAMES[[kk]] [18:01:21.130] if (name != NAME && is.element(NAME, old_names)) [18:01:21.130] next [18:01:21.130] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.130] } [18:01:21.130] NAMES <- toupper(added) [18:01:21.130] for (kk in seq_along(NAMES)) { [18:01:21.130] name <- added[[kk]] [18:01:21.130] NAME <- NAMES[[kk]] [18:01:21.130] if (name != NAME && is.element(NAME, old_names)) [18:01:21.130] next [18:01:21.130] args[[name]] <- "" [18:01:21.130] } [18:01:21.130] NAMES <- toupper(removed) [18:01:21.130] for (kk in seq_along(NAMES)) { [18:01:21.130] name <- removed[[kk]] [18:01:21.130] NAME <- NAMES[[kk]] [18:01:21.130] if (name != NAME && is.element(NAME, old_names)) [18:01:21.130] next [18:01:21.130] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.130] } [18:01:21.130] if (length(args) > 0) [18:01:21.130] base::do.call(base::Sys.setenv, args = args) [18:01:21.130] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:21.130] } [18:01:21.130] else { [18:01:21.130] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:21.130] } [18:01:21.130] { [18:01:21.130] if (base::length(...future.futureOptionsAdded) > [18:01:21.130] 0L) { [18:01:21.130] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:21.130] base::names(opts) <- ...future.futureOptionsAdded [18:01:21.130] base::options(opts) [18:01:21.130] } [18:01:21.130] { [18:01:21.130] { [18:01:21.130] base::options(mc.cores = ...future.mc.cores.old) [18:01:21.130] NULL [18:01:21.130] } [18:01:21.130] options(future.plan = NULL) [18:01:21.130] if (is.na(NA_character_)) [18:01:21.130] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.130] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:21.130] future::plan(list(function (..., workers = availableCores(), [18:01:21.130] lazy = FALSE, rscript_libs = .libPaths(), [18:01:21.130] envir = parent.frame()) [18:01:21.130] { [18:01:21.130] if (is.function(workers)) [18:01:21.130] workers <- workers() [18:01:21.130] workers <- structure(as.integer(workers), [18:01:21.130] class = class(workers)) [18:01:21.130] stop_if_not(length(workers) == 1, is.finite(workers), [18:01:21.130] workers >= 1) [18:01:21.130] if (workers == 1L && !inherits(workers, "AsIs")) { [18:01:21.130] return(sequential(..., lazy = TRUE, envir = envir)) [18:01:21.130] } [18:01:21.130] future <- MultisessionFuture(..., workers = workers, [18:01:21.130] lazy = lazy, rscript_libs = rscript_libs, [18:01:21.130] envir = envir) [18:01:21.130] if (!future$lazy) [18:01:21.130] future <- run(future) [18:01:21.130] invisible(future) [18:01:21.130] }), .cleanup = FALSE, .init = FALSE) [18:01:21.130] } [18:01:21.130] } [18:01:21.130] } [18:01:21.130] }) [18:01:21.130] if (TRUE) { [18:01:21.130] base::sink(type = "output", split = FALSE) [18:01:21.130] if (TRUE) { [18:01:21.130] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:21.130] } [18:01:21.130] else { [18:01:21.130] ...future.result["stdout"] <- base::list(NULL) [18:01:21.130] } [18:01:21.130] base::close(...future.stdout) [18:01:21.130] ...future.stdout <- NULL [18:01:21.130] } [18:01:21.130] ...future.result$conditions <- ...future.conditions [18:01:21.130] ...future.result$finished <- base::Sys.time() [18:01:21.130] ...future.result [18:01:21.130] } [18:01:21.218] MultisessionFuture started [18:01:21.218] result() for ClusterFuture ... [18:01:21.218] receiveMessageFromWorker() for ClusterFuture ... [18:01:21.219] - Validating connection of MultisessionFuture [18:01:21.276] - received message: FutureResult [18:01:21.276] - Received FutureResult [18:01:21.280] - Erased future from FutureRegistry [18:01:21.280] result() for ClusterFuture ... [18:01:21.280] - result already collected: FutureResult [18:01:21.280] result() for ClusterFuture ... done [18:01:21.281] receiveMessageFromWorker() for ClusterFuture ... done [18:01:21.281] result() for ClusterFuture ... done [18:01:21.281] result() for ClusterFuture ... [18:01:21.281] - result already collected: FutureResult [18:01:21.281] result() for ClusterFuture ... done [18:01:21.282] plan(): plan_init() of 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... DONE [18:01:21.284] plan(): nbrOfWorkers() = 2 ** Sum function 'A' with plan('multisession') ... function (x, ...) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) y %<-% { sum(x, ...) } y } Arguments '...' exists: TRUE [18:01:21.285] getGlobalsAndPackages() ... [18:01:21.285] Searching for globals... [18:01:21.287] - globals found: [4] '{', 'sum', 'x', '...' [18:01:21.288] Searching for globals ... DONE [18:01:21.288] Resolving globals: FALSE [18:01:21.288] Tweak future expression to call with '...' arguments ... [18:01:21.288] { [18:01:21.288] do.call(function(...) { [18:01:21.288] sum(x, ...) [18:01:21.288] }, args = future.call.arguments) [18:01:21.288] } [18:01:21.289] Tweak future expression to call with '...' arguments ... DONE [18:01:21.289] The total size of the 2 globals is 112 bytes (112 bytes) [18:01:21.290] The total size of the 2 globals exported for future expression ('{; sum(x, ...); }') is 112 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'x' (56 bytes of class 'numeric') and 'future.call.arguments' (56 bytes of class 'list') [18:01:21.290] - globals: [2] 'x', 'future.call.arguments' [18:01:21.290] [18:01:21.291] getGlobalsAndPackages() ... DONE [18:01:21.291] run() for 'Future' ... [18:01:21.291] - state: 'created' [18:01:21.292] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:01:21.306] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:01:21.306] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:01:21.307] - Field: 'node' [18:01:21.307] - Field: 'label' [18:01:21.307] - Field: 'local' [18:01:21.307] - Field: 'owner' [18:01:21.307] - Field: 'envir' [18:01:21.307] - Field: 'workers' [18:01:21.308] - Field: 'packages' [18:01:21.308] - Field: 'gc' [18:01:21.308] - Field: 'conditions' [18:01:21.308] - Field: 'persistent' [18:01:21.308] - Field: 'expr' [18:01:21.309] - Field: 'uuid' [18:01:21.309] - Field: 'seed' [18:01:21.309] - Field: 'version' [18:01:21.309] - Field: 'result' [18:01:21.309] - Field: 'asynchronous' [18:01:21.310] - Field: 'calls' [18:01:21.310] - Field: 'globals' [18:01:21.310] - Field: 'stdout' [18:01:21.310] - Field: 'earlySignal' [18:01:21.310] - Field: 'lazy' [18:01:21.311] - Field: 'state' [18:01:21.311] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:01:21.311] - Launch lazy future ... [18:01:21.311] Packages needed by the future expression (n = 0): [18:01:21.312] Packages needed by future strategies (n = 0): [18:01:21.312] { [18:01:21.312] { [18:01:21.312] { [18:01:21.312] ...future.startTime <- base::Sys.time() [18:01:21.312] { [18:01:21.312] { [18:01:21.312] { [18:01:21.312] { [18:01:21.312] base::local({ [18:01:21.312] has_future <- base::requireNamespace("future", [18:01:21.312] quietly = TRUE) [18:01:21.312] if (has_future) { [18:01:21.312] ns <- base::getNamespace("future") [18:01:21.312] version <- ns[[".package"]][["version"]] [18:01:21.312] if (is.null(version)) [18:01:21.312] version <- utils::packageVersion("future") [18:01:21.312] } [18:01:21.312] else { [18:01:21.312] version <- NULL [18:01:21.312] } [18:01:21.312] if (!has_future || version < "1.8.0") { [18:01:21.312] info <- base::c(r_version = base::gsub("R version ", [18:01:21.312] "", base::R.version$version.string), [18:01:21.312] platform = base::sprintf("%s (%s-bit)", [18:01:21.312] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:21.312] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:21.312] "release", "version")], collapse = " "), [18:01:21.312] hostname = base::Sys.info()[["nodename"]]) [18:01:21.312] info <- base::sprintf("%s: %s", base::names(info), [18:01:21.312] info) [18:01:21.312] info <- base::paste(info, collapse = "; ") [18:01:21.312] if (!has_future) { [18:01:21.312] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:21.312] info) [18:01:21.312] } [18:01:21.312] else { [18:01:21.312] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:21.312] info, version) [18:01:21.312] } [18:01:21.312] base::stop(msg) [18:01:21.312] } [18:01:21.312] }) [18:01:21.312] } [18:01:21.312] ...future.mc.cores.old <- base::getOption("mc.cores") [18:01:21.312] base::options(mc.cores = 1L) [18:01:21.312] } [18:01:21.312] options(future.plan = NULL) [18:01:21.312] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.312] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:21.312] } [18:01:21.312] ...future.workdir <- getwd() [18:01:21.312] } [18:01:21.312] ...future.oldOptions <- base::as.list(base::.Options) [18:01:21.312] ...future.oldEnvVars <- base::Sys.getenv() [18:01:21.312] } [18:01:21.312] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:21.312] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:21.312] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:21.312] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:21.312] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:21.312] future.stdout.windows.reencode = NULL, width = 80L) [18:01:21.312] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:21.312] base::names(...future.oldOptions)) [18:01:21.312] } [18:01:21.312] if (FALSE) { [18:01:21.312] } [18:01:21.312] else { [18:01:21.312] if (TRUE) { [18:01:21.312] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:21.312] open = "w") [18:01:21.312] } [18:01:21.312] else { [18:01:21.312] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:21.312] windows = "NUL", "/dev/null"), open = "w") [18:01:21.312] } [18:01:21.312] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:21.312] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:21.312] base::sink(type = "output", split = FALSE) [18:01:21.312] base::close(...future.stdout) [18:01:21.312] }, add = TRUE) [18:01:21.312] } [18:01:21.312] ...future.frame <- base::sys.nframe() [18:01:21.312] ...future.conditions <- base::list() [18:01:21.312] ...future.rng <- base::globalenv()$.Random.seed [18:01:21.312] if (FALSE) { [18:01:21.312] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:21.312] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:21.312] } [18:01:21.312] ...future.result <- base::tryCatch({ [18:01:21.312] base::withCallingHandlers({ [18:01:21.312] ...future.value <- base::withVisible(base::local({ [18:01:21.312] ...future.makeSendCondition <- local({ [18:01:21.312] sendCondition <- NULL [18:01:21.312] function(frame = 1L) { [18:01:21.312] if (is.function(sendCondition)) [18:01:21.312] return(sendCondition) [18:01:21.312] ns <- getNamespace("parallel") [18:01:21.312] if (exists("sendData", mode = "function", [18:01:21.312] envir = ns)) { [18:01:21.312] parallel_sendData <- get("sendData", mode = "function", [18:01:21.312] envir = ns) [18:01:21.312] envir <- sys.frame(frame) [18:01:21.312] master <- NULL [18:01:21.312] while (!identical(envir, .GlobalEnv) && [18:01:21.312] !identical(envir, emptyenv())) { [18:01:21.312] if (exists("master", mode = "list", envir = envir, [18:01:21.312] inherits = FALSE)) { [18:01:21.312] master <- get("master", mode = "list", [18:01:21.312] envir = envir, inherits = FALSE) [18:01:21.312] if (inherits(master, c("SOCKnode", [18:01:21.312] "SOCK0node"))) { [18:01:21.312] sendCondition <<- function(cond) { [18:01:21.312] data <- list(type = "VALUE", value = cond, [18:01:21.312] success = TRUE) [18:01:21.312] parallel_sendData(master, data) [18:01:21.312] } [18:01:21.312] return(sendCondition) [18:01:21.312] } [18:01:21.312] } [18:01:21.312] frame <- frame + 1L [18:01:21.312] envir <- sys.frame(frame) [18:01:21.312] } [18:01:21.312] } [18:01:21.312] sendCondition <<- function(cond) NULL [18:01:21.312] } [18:01:21.312] }) [18:01:21.312] withCallingHandlers({ [18:01:21.312] { [18:01:21.312] do.call(function(...) { [18:01:21.312] sum(x, ...) [18:01:21.312] }, args = future.call.arguments) [18:01:21.312] } [18:01:21.312] }, immediateCondition = function(cond) { [18:01:21.312] sendCondition <- ...future.makeSendCondition() [18:01:21.312] sendCondition(cond) [18:01:21.312] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.312] { [18:01:21.312] inherits <- base::inherits [18:01:21.312] invokeRestart <- base::invokeRestart [18:01:21.312] is.null <- base::is.null [18:01:21.312] muffled <- FALSE [18:01:21.312] if (inherits(cond, "message")) { [18:01:21.312] muffled <- grepl(pattern, "muffleMessage") [18:01:21.312] if (muffled) [18:01:21.312] invokeRestart("muffleMessage") [18:01:21.312] } [18:01:21.312] else if (inherits(cond, "warning")) { [18:01:21.312] muffled <- grepl(pattern, "muffleWarning") [18:01:21.312] if (muffled) [18:01:21.312] invokeRestart("muffleWarning") [18:01:21.312] } [18:01:21.312] else if (inherits(cond, "condition")) { [18:01:21.312] if (!is.null(pattern)) { [18:01:21.312] computeRestarts <- base::computeRestarts [18:01:21.312] grepl <- base::grepl [18:01:21.312] restarts <- computeRestarts(cond) [18:01:21.312] for (restart in restarts) { [18:01:21.312] name <- restart$name [18:01:21.312] if (is.null(name)) [18:01:21.312] next [18:01:21.312] if (!grepl(pattern, name)) [18:01:21.312] next [18:01:21.312] invokeRestart(restart) [18:01:21.312] muffled <- TRUE [18:01:21.312] break [18:01:21.312] } [18:01:21.312] } [18:01:21.312] } [18:01:21.312] invisible(muffled) [18:01:21.312] } [18:01:21.312] muffleCondition(cond) [18:01:21.312] }) [18:01:21.312] })) [18:01:21.312] future::FutureResult(value = ...future.value$value, [18:01:21.312] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.312] ...future.rng), globalenv = if (FALSE) [18:01:21.312] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:21.312] ...future.globalenv.names)) [18:01:21.312] else NULL, started = ...future.startTime, version = "1.8") [18:01:21.312] }, condition = base::local({ [18:01:21.312] c <- base::c [18:01:21.312] inherits <- base::inherits [18:01:21.312] invokeRestart <- base::invokeRestart [18:01:21.312] length <- base::length [18:01:21.312] list <- base::list [18:01:21.312] seq.int <- base::seq.int [18:01:21.312] signalCondition <- base::signalCondition [18:01:21.312] sys.calls <- base::sys.calls [18:01:21.312] `[[` <- base::`[[` [18:01:21.312] `+` <- base::`+` [18:01:21.312] `<<-` <- base::`<<-` [18:01:21.312] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:21.312] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:21.312] 3L)] [18:01:21.312] } [18:01:21.312] function(cond) { [18:01:21.312] is_error <- inherits(cond, "error") [18:01:21.312] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:21.312] NULL) [18:01:21.312] if (is_error) { [18:01:21.312] sessionInformation <- function() { [18:01:21.312] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:21.312] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:21.312] search = base::search(), system = base::Sys.info()) [18:01:21.312] } [18:01:21.312] ...future.conditions[[length(...future.conditions) + [18:01:21.312] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:21.312] cond$call), session = sessionInformation(), [18:01:21.312] timestamp = base::Sys.time(), signaled = 0L) [18:01:21.312] signalCondition(cond) [18:01:21.312] } [18:01:21.312] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:21.312] "immediateCondition"))) { [18:01:21.312] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:21.312] ...future.conditions[[length(...future.conditions) + [18:01:21.312] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:21.312] if (TRUE && !signal) { [18:01:21.312] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.312] { [18:01:21.312] inherits <- base::inherits [18:01:21.312] invokeRestart <- base::invokeRestart [18:01:21.312] is.null <- base::is.null [18:01:21.312] muffled <- FALSE [18:01:21.312] if (inherits(cond, "message")) { [18:01:21.312] muffled <- grepl(pattern, "muffleMessage") [18:01:21.312] if (muffled) [18:01:21.312] invokeRestart("muffleMessage") [18:01:21.312] } [18:01:21.312] else if (inherits(cond, "warning")) { [18:01:21.312] muffled <- grepl(pattern, "muffleWarning") [18:01:21.312] if (muffled) [18:01:21.312] invokeRestart("muffleWarning") [18:01:21.312] } [18:01:21.312] else if (inherits(cond, "condition")) { [18:01:21.312] if (!is.null(pattern)) { [18:01:21.312] computeRestarts <- base::computeRestarts [18:01:21.312] grepl <- base::grepl [18:01:21.312] restarts <- computeRestarts(cond) [18:01:21.312] for (restart in restarts) { [18:01:21.312] name <- restart$name [18:01:21.312] if (is.null(name)) [18:01:21.312] next [18:01:21.312] if (!grepl(pattern, name)) [18:01:21.312] next [18:01:21.312] invokeRestart(restart) [18:01:21.312] muffled <- TRUE [18:01:21.312] break [18:01:21.312] } [18:01:21.312] } [18:01:21.312] } [18:01:21.312] invisible(muffled) [18:01:21.312] } [18:01:21.312] muffleCondition(cond, pattern = "^muffle") [18:01:21.312] } [18:01:21.312] } [18:01:21.312] else { [18:01:21.312] if (TRUE) { [18:01:21.312] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.312] { [18:01:21.312] inherits <- base::inherits [18:01:21.312] invokeRestart <- base::invokeRestart [18:01:21.312] is.null <- base::is.null [18:01:21.312] muffled <- FALSE [18:01:21.312] if (inherits(cond, "message")) { [18:01:21.312] muffled <- grepl(pattern, "muffleMessage") [18:01:21.312] if (muffled) [18:01:21.312] invokeRestart("muffleMessage") [18:01:21.312] } [18:01:21.312] else if (inherits(cond, "warning")) { [18:01:21.312] muffled <- grepl(pattern, "muffleWarning") [18:01:21.312] if (muffled) [18:01:21.312] invokeRestart("muffleWarning") [18:01:21.312] } [18:01:21.312] else if (inherits(cond, "condition")) { [18:01:21.312] if (!is.null(pattern)) { [18:01:21.312] computeRestarts <- base::computeRestarts [18:01:21.312] grepl <- base::grepl [18:01:21.312] restarts <- computeRestarts(cond) [18:01:21.312] for (restart in restarts) { [18:01:21.312] name <- restart$name [18:01:21.312] if (is.null(name)) [18:01:21.312] next [18:01:21.312] if (!grepl(pattern, name)) [18:01:21.312] next [18:01:21.312] invokeRestart(restart) [18:01:21.312] muffled <- TRUE [18:01:21.312] break [18:01:21.312] } [18:01:21.312] } [18:01:21.312] } [18:01:21.312] invisible(muffled) [18:01:21.312] } [18:01:21.312] muffleCondition(cond, pattern = "^muffle") [18:01:21.312] } [18:01:21.312] } [18:01:21.312] } [18:01:21.312] })) [18:01:21.312] }, error = function(ex) { [18:01:21.312] base::structure(base::list(value = NULL, visible = NULL, [18:01:21.312] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.312] ...future.rng), started = ...future.startTime, [18:01:21.312] finished = Sys.time(), session_uuid = NA_character_, [18:01:21.312] version = "1.8"), class = "FutureResult") [18:01:21.312] }, finally = { [18:01:21.312] if (!identical(...future.workdir, getwd())) [18:01:21.312] setwd(...future.workdir) [18:01:21.312] { [18:01:21.312] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:21.312] ...future.oldOptions$nwarnings <- NULL [18:01:21.312] } [18:01:21.312] base::options(...future.oldOptions) [18:01:21.312] if (.Platform$OS.type == "windows") { [18:01:21.312] old_names <- names(...future.oldEnvVars) [18:01:21.312] envs <- base::Sys.getenv() [18:01:21.312] names <- names(envs) [18:01:21.312] common <- intersect(names, old_names) [18:01:21.312] added <- setdiff(names, old_names) [18:01:21.312] removed <- setdiff(old_names, names) [18:01:21.312] changed <- common[...future.oldEnvVars[common] != [18:01:21.312] envs[common]] [18:01:21.312] NAMES <- toupper(changed) [18:01:21.312] args <- list() [18:01:21.312] for (kk in seq_along(NAMES)) { [18:01:21.312] name <- changed[[kk]] [18:01:21.312] NAME <- NAMES[[kk]] [18:01:21.312] if (name != NAME && is.element(NAME, old_names)) [18:01:21.312] next [18:01:21.312] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.312] } [18:01:21.312] NAMES <- toupper(added) [18:01:21.312] for (kk in seq_along(NAMES)) { [18:01:21.312] name <- added[[kk]] [18:01:21.312] NAME <- NAMES[[kk]] [18:01:21.312] if (name != NAME && is.element(NAME, old_names)) [18:01:21.312] next [18:01:21.312] args[[name]] <- "" [18:01:21.312] } [18:01:21.312] NAMES <- toupper(removed) [18:01:21.312] for (kk in seq_along(NAMES)) { [18:01:21.312] name <- removed[[kk]] [18:01:21.312] NAME <- NAMES[[kk]] [18:01:21.312] if (name != NAME && is.element(NAME, old_names)) [18:01:21.312] next [18:01:21.312] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.312] } [18:01:21.312] if (length(args) > 0) [18:01:21.312] base::do.call(base::Sys.setenv, args = args) [18:01:21.312] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:21.312] } [18:01:21.312] else { [18:01:21.312] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:21.312] } [18:01:21.312] { [18:01:21.312] if (base::length(...future.futureOptionsAdded) > [18:01:21.312] 0L) { [18:01:21.312] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:21.312] base::names(opts) <- ...future.futureOptionsAdded [18:01:21.312] base::options(opts) [18:01:21.312] } [18:01:21.312] { [18:01:21.312] { [18:01:21.312] base::options(mc.cores = ...future.mc.cores.old) [18:01:21.312] NULL [18:01:21.312] } [18:01:21.312] options(future.plan = NULL) [18:01:21.312] if (is.na(NA_character_)) [18:01:21.312] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.312] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:21.312] future::plan(list(function (..., workers = availableCores(), [18:01:21.312] lazy = FALSE, rscript_libs = .libPaths(), [18:01:21.312] envir = parent.frame()) [18:01:21.312] { [18:01:21.312] if (is.function(workers)) [18:01:21.312] workers <- workers() [18:01:21.312] workers <- structure(as.integer(workers), [18:01:21.312] class = class(workers)) [18:01:21.312] stop_if_not(length(workers) == 1, is.finite(workers), [18:01:21.312] workers >= 1) [18:01:21.312] if (workers == 1L && !inherits(workers, "AsIs")) { [18:01:21.312] return(sequential(..., lazy = TRUE, envir = envir)) [18:01:21.312] } [18:01:21.312] future <- MultisessionFuture(..., workers = workers, [18:01:21.312] lazy = lazy, rscript_libs = rscript_libs, [18:01:21.312] envir = envir) [18:01:21.312] if (!future$lazy) [18:01:21.312] future <- run(future) [18:01:21.312] invisible(future) [18:01:21.312] }), .cleanup = FALSE, .init = FALSE) [18:01:21.312] } [18:01:21.312] } [18:01:21.312] } [18:01:21.312] }) [18:01:21.312] if (TRUE) { [18:01:21.312] base::sink(type = "output", split = FALSE) [18:01:21.312] if (TRUE) { [18:01:21.312] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:21.312] } [18:01:21.312] else { [18:01:21.312] ...future.result["stdout"] <- base::list(NULL) [18:01:21.312] } [18:01:21.312] base::close(...future.stdout) [18:01:21.312] ...future.stdout <- NULL [18:01:21.312] } [18:01:21.312] ...future.result$conditions <- ...future.conditions [18:01:21.312] ...future.result$finished <- base::Sys.time() [18:01:21.312] ...future.result [18:01:21.312] } [18:01:21.318] Exporting 2 global objects (112 bytes) to cluster node #1 ... [18:01:21.318] Exporting 'x' (56 bytes) to cluster node #1 ... [18:01:21.319] Exporting 'x' (56 bytes) to cluster node #1 ... DONE [18:01:21.319] Exporting 'future.call.arguments' (56 bytes) to cluster node #1 ... [18:01:21.320] Exporting 'future.call.arguments' (56 bytes) to cluster node #1 ... DONE [18:01:21.320] Exporting 2 global objects (112 bytes) to cluster node #1 ... DONE [18:01:21.321] MultisessionFuture started [18:01:21.321] - Launch lazy future ... done [18:01:21.321] run() for 'MultisessionFuture' ... done [18:01:21.321] result() for ClusterFuture ... [18:01:21.322] receiveMessageFromWorker() for ClusterFuture ... [18:01:21.322] - Validating connection of MultisessionFuture [18:01:21.339] - received message: FutureResult [18:01:21.339] - Received FutureResult [18:01:21.339] - Erased future from FutureRegistry [18:01:21.339] result() for ClusterFuture ... [18:01:21.340] - result already collected: FutureResult [18:01:21.340] result() for ClusterFuture ... done [18:01:21.340] receiveMessageFromWorker() for ClusterFuture ... done [18:01:21.340] result() for ClusterFuture ... done [18:01:21.340] result() for ClusterFuture ... [18:01:21.341] - result already collected: FutureResult [18:01:21.341] result() for ClusterFuture ... done [1] 6 ** Sum function 'B' with plan('multisession') ... function (x, ...) { sumt <- function(x) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) y %<-% { sum(x, ...) } y } sumt(x) } Arguments '...' exists: TRUE [18:01:21.342] getGlobalsAndPackages() ... [18:01:21.342] Searching for globals... [18:01:21.344] - globals found: [4] '{', 'sum', 'x', '...' [18:01:21.344] Searching for globals ... DONE [18:01:21.344] Resolving globals: FALSE [18:01:21.344] Tweak future expression to call with '...' arguments ... [18:01:21.345] { [18:01:21.345] do.call(function(...) { [18:01:21.345] sum(x, ...) [18:01:21.345] }, args = future.call.arguments) [18:01:21.345] } [18:01:21.345] Tweak future expression to call with '...' arguments ... DONE [18:01:21.346] The total size of the 2 globals is 112 bytes (112 bytes) [18:01:21.346] The total size of the 2 globals exported for future expression ('{; sum(x, ...); }') is 112 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'x' (56 bytes of class 'numeric') and 'future.call.arguments' (56 bytes of class 'list') [18:01:21.346] - globals: [2] 'x', 'future.call.arguments' [18:01:21.347] [18:01:21.347] getGlobalsAndPackages() ... DONE [18:01:21.347] run() for 'Future' ... [18:01:21.347] - state: 'created' [18:01:21.348] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:01:21.362] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:01:21.362] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:01:21.362] - Field: 'node' [18:01:21.362] - Field: 'label' [18:01:21.363] - Field: 'local' [18:01:21.363] - Field: 'owner' [18:01:21.363] - Field: 'envir' [18:01:21.363] - Field: 'workers' [18:01:21.363] - Field: 'packages' [18:01:21.364] - Field: 'gc' [18:01:21.364] - Field: 'conditions' [18:01:21.364] - Field: 'persistent' [18:01:21.364] - Field: 'expr' [18:01:21.364] - Field: 'uuid' [18:01:21.365] - Field: 'seed' [18:01:21.365] - Field: 'version' [18:01:21.365] - Field: 'result' [18:01:21.365] - Field: 'asynchronous' [18:01:21.365] - Field: 'calls' [18:01:21.366] - Field: 'globals' [18:01:21.366] - Field: 'stdout' [18:01:21.366] - Field: 'earlySignal' [18:01:21.366] - Field: 'lazy' [18:01:21.366] - Field: 'state' [18:01:21.367] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:01:21.367] - Launch lazy future ... [18:01:21.367] Packages needed by the future expression (n = 0): [18:01:21.367] Packages needed by future strategies (n = 0): [18:01:21.368] { [18:01:21.368] { [18:01:21.368] { [18:01:21.368] ...future.startTime <- base::Sys.time() [18:01:21.368] { [18:01:21.368] { [18:01:21.368] { [18:01:21.368] { [18:01:21.368] base::local({ [18:01:21.368] has_future <- base::requireNamespace("future", [18:01:21.368] quietly = TRUE) [18:01:21.368] if (has_future) { [18:01:21.368] ns <- base::getNamespace("future") [18:01:21.368] version <- ns[[".package"]][["version"]] [18:01:21.368] if (is.null(version)) [18:01:21.368] version <- utils::packageVersion("future") [18:01:21.368] } [18:01:21.368] else { [18:01:21.368] version <- NULL [18:01:21.368] } [18:01:21.368] if (!has_future || version < "1.8.0") { [18:01:21.368] info <- base::c(r_version = base::gsub("R version ", [18:01:21.368] "", base::R.version$version.string), [18:01:21.368] platform = base::sprintf("%s (%s-bit)", [18:01:21.368] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:21.368] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:21.368] "release", "version")], collapse = " "), [18:01:21.368] hostname = base::Sys.info()[["nodename"]]) [18:01:21.368] info <- base::sprintf("%s: %s", base::names(info), [18:01:21.368] info) [18:01:21.368] info <- base::paste(info, collapse = "; ") [18:01:21.368] if (!has_future) { [18:01:21.368] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:21.368] info) [18:01:21.368] } [18:01:21.368] else { [18:01:21.368] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:21.368] info, version) [18:01:21.368] } [18:01:21.368] base::stop(msg) [18:01:21.368] } [18:01:21.368] }) [18:01:21.368] } [18:01:21.368] ...future.mc.cores.old <- base::getOption("mc.cores") [18:01:21.368] base::options(mc.cores = 1L) [18:01:21.368] } [18:01:21.368] options(future.plan = NULL) [18:01:21.368] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.368] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:21.368] } [18:01:21.368] ...future.workdir <- getwd() [18:01:21.368] } [18:01:21.368] ...future.oldOptions <- base::as.list(base::.Options) [18:01:21.368] ...future.oldEnvVars <- base::Sys.getenv() [18:01:21.368] } [18:01:21.368] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:21.368] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:21.368] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:21.368] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:21.368] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:21.368] future.stdout.windows.reencode = NULL, width = 80L) [18:01:21.368] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:21.368] base::names(...future.oldOptions)) [18:01:21.368] } [18:01:21.368] if (FALSE) { [18:01:21.368] } [18:01:21.368] else { [18:01:21.368] if (TRUE) { [18:01:21.368] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:21.368] open = "w") [18:01:21.368] } [18:01:21.368] else { [18:01:21.368] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:21.368] windows = "NUL", "/dev/null"), open = "w") [18:01:21.368] } [18:01:21.368] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:21.368] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:21.368] base::sink(type = "output", split = FALSE) [18:01:21.368] base::close(...future.stdout) [18:01:21.368] }, add = TRUE) [18:01:21.368] } [18:01:21.368] ...future.frame <- base::sys.nframe() [18:01:21.368] ...future.conditions <- base::list() [18:01:21.368] ...future.rng <- base::globalenv()$.Random.seed [18:01:21.368] if (FALSE) { [18:01:21.368] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:21.368] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:21.368] } [18:01:21.368] ...future.result <- base::tryCatch({ [18:01:21.368] base::withCallingHandlers({ [18:01:21.368] ...future.value <- base::withVisible(base::local({ [18:01:21.368] ...future.makeSendCondition <- local({ [18:01:21.368] sendCondition <- NULL [18:01:21.368] function(frame = 1L) { [18:01:21.368] if (is.function(sendCondition)) [18:01:21.368] return(sendCondition) [18:01:21.368] ns <- getNamespace("parallel") [18:01:21.368] if (exists("sendData", mode = "function", [18:01:21.368] envir = ns)) { [18:01:21.368] parallel_sendData <- get("sendData", mode = "function", [18:01:21.368] envir = ns) [18:01:21.368] envir <- sys.frame(frame) [18:01:21.368] master <- NULL [18:01:21.368] while (!identical(envir, .GlobalEnv) && [18:01:21.368] !identical(envir, emptyenv())) { [18:01:21.368] if (exists("master", mode = "list", envir = envir, [18:01:21.368] inherits = FALSE)) { [18:01:21.368] master <- get("master", mode = "list", [18:01:21.368] envir = envir, inherits = FALSE) [18:01:21.368] if (inherits(master, c("SOCKnode", [18:01:21.368] "SOCK0node"))) { [18:01:21.368] sendCondition <<- function(cond) { [18:01:21.368] data <- list(type = "VALUE", value = cond, [18:01:21.368] success = TRUE) [18:01:21.368] parallel_sendData(master, data) [18:01:21.368] } [18:01:21.368] return(sendCondition) [18:01:21.368] } [18:01:21.368] } [18:01:21.368] frame <- frame + 1L [18:01:21.368] envir <- sys.frame(frame) [18:01:21.368] } [18:01:21.368] } [18:01:21.368] sendCondition <<- function(cond) NULL [18:01:21.368] } [18:01:21.368] }) [18:01:21.368] withCallingHandlers({ [18:01:21.368] { [18:01:21.368] do.call(function(...) { [18:01:21.368] sum(x, ...) [18:01:21.368] }, args = future.call.arguments) [18:01:21.368] } [18:01:21.368] }, immediateCondition = function(cond) { [18:01:21.368] sendCondition <- ...future.makeSendCondition() [18:01:21.368] sendCondition(cond) [18:01:21.368] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.368] { [18:01:21.368] inherits <- base::inherits [18:01:21.368] invokeRestart <- base::invokeRestart [18:01:21.368] is.null <- base::is.null [18:01:21.368] muffled <- FALSE [18:01:21.368] if (inherits(cond, "message")) { [18:01:21.368] muffled <- grepl(pattern, "muffleMessage") [18:01:21.368] if (muffled) [18:01:21.368] invokeRestart("muffleMessage") [18:01:21.368] } [18:01:21.368] else if (inherits(cond, "warning")) { [18:01:21.368] muffled <- grepl(pattern, "muffleWarning") [18:01:21.368] if (muffled) [18:01:21.368] invokeRestart("muffleWarning") [18:01:21.368] } [18:01:21.368] else if (inherits(cond, "condition")) { [18:01:21.368] if (!is.null(pattern)) { [18:01:21.368] computeRestarts <- base::computeRestarts [18:01:21.368] grepl <- base::grepl [18:01:21.368] restarts <- computeRestarts(cond) [18:01:21.368] for (restart in restarts) { [18:01:21.368] name <- restart$name [18:01:21.368] if (is.null(name)) [18:01:21.368] next [18:01:21.368] if (!grepl(pattern, name)) [18:01:21.368] next [18:01:21.368] invokeRestart(restart) [18:01:21.368] muffled <- TRUE [18:01:21.368] break [18:01:21.368] } [18:01:21.368] } [18:01:21.368] } [18:01:21.368] invisible(muffled) [18:01:21.368] } [18:01:21.368] muffleCondition(cond) [18:01:21.368] }) [18:01:21.368] })) [18:01:21.368] future::FutureResult(value = ...future.value$value, [18:01:21.368] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.368] ...future.rng), globalenv = if (FALSE) [18:01:21.368] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:21.368] ...future.globalenv.names)) [18:01:21.368] else NULL, started = ...future.startTime, version = "1.8") [18:01:21.368] }, condition = base::local({ [18:01:21.368] c <- base::c [18:01:21.368] inherits <- base::inherits [18:01:21.368] invokeRestart <- base::invokeRestart [18:01:21.368] length <- base::length [18:01:21.368] list <- base::list [18:01:21.368] seq.int <- base::seq.int [18:01:21.368] signalCondition <- base::signalCondition [18:01:21.368] sys.calls <- base::sys.calls [18:01:21.368] `[[` <- base::`[[` [18:01:21.368] `+` <- base::`+` [18:01:21.368] `<<-` <- base::`<<-` [18:01:21.368] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:21.368] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:21.368] 3L)] [18:01:21.368] } [18:01:21.368] function(cond) { [18:01:21.368] is_error <- inherits(cond, "error") [18:01:21.368] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:21.368] NULL) [18:01:21.368] if (is_error) { [18:01:21.368] sessionInformation <- function() { [18:01:21.368] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:21.368] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:21.368] search = base::search(), system = base::Sys.info()) [18:01:21.368] } [18:01:21.368] ...future.conditions[[length(...future.conditions) + [18:01:21.368] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:21.368] cond$call), session = sessionInformation(), [18:01:21.368] timestamp = base::Sys.time(), signaled = 0L) [18:01:21.368] signalCondition(cond) [18:01:21.368] } [18:01:21.368] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:21.368] "immediateCondition"))) { [18:01:21.368] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:21.368] ...future.conditions[[length(...future.conditions) + [18:01:21.368] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:21.368] if (TRUE && !signal) { [18:01:21.368] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.368] { [18:01:21.368] inherits <- base::inherits [18:01:21.368] invokeRestart <- base::invokeRestart [18:01:21.368] is.null <- base::is.null [18:01:21.368] muffled <- FALSE [18:01:21.368] if (inherits(cond, "message")) { [18:01:21.368] muffled <- grepl(pattern, "muffleMessage") [18:01:21.368] if (muffled) [18:01:21.368] invokeRestart("muffleMessage") [18:01:21.368] } [18:01:21.368] else if (inherits(cond, "warning")) { [18:01:21.368] muffled <- grepl(pattern, "muffleWarning") [18:01:21.368] if (muffled) [18:01:21.368] invokeRestart("muffleWarning") [18:01:21.368] } [18:01:21.368] else if (inherits(cond, "condition")) { [18:01:21.368] if (!is.null(pattern)) { [18:01:21.368] computeRestarts <- base::computeRestarts [18:01:21.368] grepl <- base::grepl [18:01:21.368] restarts <- computeRestarts(cond) [18:01:21.368] for (restart in restarts) { [18:01:21.368] name <- restart$name [18:01:21.368] if (is.null(name)) [18:01:21.368] next [18:01:21.368] if (!grepl(pattern, name)) [18:01:21.368] next [18:01:21.368] invokeRestart(restart) [18:01:21.368] muffled <- TRUE [18:01:21.368] break [18:01:21.368] } [18:01:21.368] } [18:01:21.368] } [18:01:21.368] invisible(muffled) [18:01:21.368] } [18:01:21.368] muffleCondition(cond, pattern = "^muffle") [18:01:21.368] } [18:01:21.368] } [18:01:21.368] else { [18:01:21.368] if (TRUE) { [18:01:21.368] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.368] { [18:01:21.368] inherits <- base::inherits [18:01:21.368] invokeRestart <- base::invokeRestart [18:01:21.368] is.null <- base::is.null [18:01:21.368] muffled <- FALSE [18:01:21.368] if (inherits(cond, "message")) { [18:01:21.368] muffled <- grepl(pattern, "muffleMessage") [18:01:21.368] if (muffled) [18:01:21.368] invokeRestart("muffleMessage") [18:01:21.368] } [18:01:21.368] else if (inherits(cond, "warning")) { [18:01:21.368] muffled <- grepl(pattern, "muffleWarning") [18:01:21.368] if (muffled) [18:01:21.368] invokeRestart("muffleWarning") [18:01:21.368] } [18:01:21.368] else if (inherits(cond, "condition")) { [18:01:21.368] if (!is.null(pattern)) { [18:01:21.368] computeRestarts <- base::computeRestarts [18:01:21.368] grepl <- base::grepl [18:01:21.368] restarts <- computeRestarts(cond) [18:01:21.368] for (restart in restarts) { [18:01:21.368] name <- restart$name [18:01:21.368] if (is.null(name)) [18:01:21.368] next [18:01:21.368] if (!grepl(pattern, name)) [18:01:21.368] next [18:01:21.368] invokeRestart(restart) [18:01:21.368] muffled <- TRUE [18:01:21.368] break [18:01:21.368] } [18:01:21.368] } [18:01:21.368] } [18:01:21.368] invisible(muffled) [18:01:21.368] } [18:01:21.368] muffleCondition(cond, pattern = "^muffle") [18:01:21.368] } [18:01:21.368] } [18:01:21.368] } [18:01:21.368] })) [18:01:21.368] }, error = function(ex) { [18:01:21.368] base::structure(base::list(value = NULL, visible = NULL, [18:01:21.368] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.368] ...future.rng), started = ...future.startTime, [18:01:21.368] finished = Sys.time(), session_uuid = NA_character_, [18:01:21.368] version = "1.8"), class = "FutureResult") [18:01:21.368] }, finally = { [18:01:21.368] if (!identical(...future.workdir, getwd())) [18:01:21.368] setwd(...future.workdir) [18:01:21.368] { [18:01:21.368] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:21.368] ...future.oldOptions$nwarnings <- NULL [18:01:21.368] } [18:01:21.368] base::options(...future.oldOptions) [18:01:21.368] if (.Platform$OS.type == "windows") { [18:01:21.368] old_names <- names(...future.oldEnvVars) [18:01:21.368] envs <- base::Sys.getenv() [18:01:21.368] names <- names(envs) [18:01:21.368] common <- intersect(names, old_names) [18:01:21.368] added <- setdiff(names, old_names) [18:01:21.368] removed <- setdiff(old_names, names) [18:01:21.368] changed <- common[...future.oldEnvVars[common] != [18:01:21.368] envs[common]] [18:01:21.368] NAMES <- toupper(changed) [18:01:21.368] args <- list() [18:01:21.368] for (kk in seq_along(NAMES)) { [18:01:21.368] name <- changed[[kk]] [18:01:21.368] NAME <- NAMES[[kk]] [18:01:21.368] if (name != NAME && is.element(NAME, old_names)) [18:01:21.368] next [18:01:21.368] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.368] } [18:01:21.368] NAMES <- toupper(added) [18:01:21.368] for (kk in seq_along(NAMES)) { [18:01:21.368] name <- added[[kk]] [18:01:21.368] NAME <- NAMES[[kk]] [18:01:21.368] if (name != NAME && is.element(NAME, old_names)) [18:01:21.368] next [18:01:21.368] args[[name]] <- "" [18:01:21.368] } [18:01:21.368] NAMES <- toupper(removed) [18:01:21.368] for (kk in seq_along(NAMES)) { [18:01:21.368] name <- removed[[kk]] [18:01:21.368] NAME <- NAMES[[kk]] [18:01:21.368] if (name != NAME && is.element(NAME, old_names)) [18:01:21.368] next [18:01:21.368] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.368] } [18:01:21.368] if (length(args) > 0) [18:01:21.368] base::do.call(base::Sys.setenv, args = args) [18:01:21.368] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:21.368] } [18:01:21.368] else { [18:01:21.368] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:21.368] } [18:01:21.368] { [18:01:21.368] if (base::length(...future.futureOptionsAdded) > [18:01:21.368] 0L) { [18:01:21.368] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:21.368] base::names(opts) <- ...future.futureOptionsAdded [18:01:21.368] base::options(opts) [18:01:21.368] } [18:01:21.368] { [18:01:21.368] { [18:01:21.368] base::options(mc.cores = ...future.mc.cores.old) [18:01:21.368] NULL [18:01:21.368] } [18:01:21.368] options(future.plan = NULL) [18:01:21.368] if (is.na(NA_character_)) [18:01:21.368] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.368] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:21.368] future::plan(list(function (..., workers = availableCores(), [18:01:21.368] lazy = FALSE, rscript_libs = .libPaths(), [18:01:21.368] envir = parent.frame()) [18:01:21.368] { [18:01:21.368] if (is.function(workers)) [18:01:21.368] workers <- workers() [18:01:21.368] workers <- structure(as.integer(workers), [18:01:21.368] class = class(workers)) [18:01:21.368] stop_if_not(length(workers) == 1, is.finite(workers), [18:01:21.368] workers >= 1) [18:01:21.368] if (workers == 1L && !inherits(workers, "AsIs")) { [18:01:21.368] return(sequential(..., lazy = TRUE, envir = envir)) [18:01:21.368] } [18:01:21.368] future <- MultisessionFuture(..., workers = workers, [18:01:21.368] lazy = lazy, rscript_libs = rscript_libs, [18:01:21.368] envir = envir) [18:01:21.368] if (!future$lazy) [18:01:21.368] future <- run(future) [18:01:21.368] invisible(future) [18:01:21.368] }), .cleanup = FALSE, .init = FALSE) [18:01:21.368] } [18:01:21.368] } [18:01:21.368] } [18:01:21.368] }) [18:01:21.368] if (TRUE) { [18:01:21.368] base::sink(type = "output", split = FALSE) [18:01:21.368] if (TRUE) { [18:01:21.368] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:21.368] } [18:01:21.368] else { [18:01:21.368] ...future.result["stdout"] <- base::list(NULL) [18:01:21.368] } [18:01:21.368] base::close(...future.stdout) [18:01:21.368] ...future.stdout <- NULL [18:01:21.368] } [18:01:21.368] ...future.result$conditions <- ...future.conditions [18:01:21.368] ...future.result$finished <- base::Sys.time() [18:01:21.368] ...future.result [18:01:21.368] } [18:01:21.374] Exporting 2 global objects (112 bytes) to cluster node #1 ... [18:01:21.374] Exporting 'x' (56 bytes) to cluster node #1 ... [18:01:21.374] Exporting 'x' (56 bytes) to cluster node #1 ... DONE [18:01:21.375] Exporting 'future.call.arguments' (56 bytes) to cluster node #1 ... [18:01:21.375] Exporting 'future.call.arguments' (56 bytes) to cluster node #1 ... DONE [18:01:21.375] Exporting 2 global objects (112 bytes) to cluster node #1 ... DONE [18:01:21.376] MultisessionFuture started [18:01:21.376] - Launch lazy future ... done [18:01:21.376] run() for 'MultisessionFuture' ... done [18:01:21.377] result() for ClusterFuture ... [18:01:21.377] receiveMessageFromWorker() for ClusterFuture ... [18:01:21.377] - Validating connection of MultisessionFuture [18:01:21.392] - received message: FutureResult [18:01:21.392] - Received FutureResult [18:01:21.392] - Erased future from FutureRegistry [18:01:21.393] result() for ClusterFuture ... [18:01:21.393] - result already collected: FutureResult [18:01:21.393] result() for ClusterFuture ... done [18:01:21.393] receiveMessageFromWorker() for ClusterFuture ... done [18:01:21.393] result() for ClusterFuture ... done [18:01:21.394] result() for ClusterFuture ... [18:01:21.394] - result already collected: FutureResult [18:01:21.394] result() for ClusterFuture ... done [1] 6 ** Sum function 'C' with plan('multisession') ... function (x, y) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) y %<-% { sum(x, y) } y } Arguments '...' exists: FALSE [18:01:21.395] getGlobalsAndPackages() ... [18:01:21.395] Searching for globals... [18:01:21.397] - globals found: [4] '{', 'sum', 'x', 'y' [18:01:21.397] Searching for globals ... DONE [18:01:21.397] Resolving globals: FALSE [18:01:21.398] The total size of the 2 globals is 112 bytes (112 bytes) [18:01:21.398] The total size of the 2 globals exported for future expression ('{; sum(x, y); }') is 112 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'x' (56 bytes of class 'numeric') and 'y' (56 bytes of class 'numeric') [18:01:21.398] - globals: [2] 'x', 'y' [18:01:21.399] [18:01:21.399] getGlobalsAndPackages() ... DONE [18:01:21.399] run() for 'Future' ... [18:01:21.399] - state: 'created' [18:01:21.400] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:01:21.414] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:01:21.414] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:01:21.417] - Field: 'node' [18:01:21.417] - Field: 'label' [18:01:21.417] - Field: 'local' [18:01:21.418] - Field: 'owner' [18:01:21.418] - Field: 'envir' [18:01:21.418] - Field: 'workers' [18:01:21.418] - Field: 'packages' [18:01:21.418] - Field: 'gc' [18:01:21.419] - Field: 'conditions' [18:01:21.419] - Field: 'persistent' [18:01:21.419] - Field: 'expr' [18:01:21.419] - Field: 'uuid' [18:01:21.419] - Field: 'seed' [18:01:21.419] - Field: 'version' [18:01:21.420] - Field: 'result' [18:01:21.420] - Field: 'asynchronous' [18:01:21.420] - Field: 'calls' [18:01:21.420] - Field: 'globals' [18:01:21.420] - Field: 'stdout' [18:01:21.420] - Field: 'earlySignal' [18:01:21.421] - Field: 'lazy' [18:01:21.421] - Field: 'state' [18:01:21.421] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:01:21.421] - Launch lazy future ... [18:01:21.422] Packages needed by the future expression (n = 0): [18:01:21.422] Packages needed by future strategies (n = 0): [18:01:21.422] { [18:01:21.422] { [18:01:21.422] { [18:01:21.422] ...future.startTime <- base::Sys.time() [18:01:21.422] { [18:01:21.422] { [18:01:21.422] { [18:01:21.422] { [18:01:21.422] base::local({ [18:01:21.422] has_future <- base::requireNamespace("future", [18:01:21.422] quietly = TRUE) [18:01:21.422] if (has_future) { [18:01:21.422] ns <- base::getNamespace("future") [18:01:21.422] version <- ns[[".package"]][["version"]] [18:01:21.422] if (is.null(version)) [18:01:21.422] version <- utils::packageVersion("future") [18:01:21.422] } [18:01:21.422] else { [18:01:21.422] version <- NULL [18:01:21.422] } [18:01:21.422] if (!has_future || version < "1.8.0") { [18:01:21.422] info <- base::c(r_version = base::gsub("R version ", [18:01:21.422] "", base::R.version$version.string), [18:01:21.422] platform = base::sprintf("%s (%s-bit)", [18:01:21.422] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:21.422] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:21.422] "release", "version")], collapse = " "), [18:01:21.422] hostname = base::Sys.info()[["nodename"]]) [18:01:21.422] info <- base::sprintf("%s: %s", base::names(info), [18:01:21.422] info) [18:01:21.422] info <- base::paste(info, collapse = "; ") [18:01:21.422] if (!has_future) { [18:01:21.422] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:21.422] info) [18:01:21.422] } [18:01:21.422] else { [18:01:21.422] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:21.422] info, version) [18:01:21.422] } [18:01:21.422] base::stop(msg) [18:01:21.422] } [18:01:21.422] }) [18:01:21.422] } [18:01:21.422] ...future.mc.cores.old <- base::getOption("mc.cores") [18:01:21.422] base::options(mc.cores = 1L) [18:01:21.422] } [18:01:21.422] options(future.plan = NULL) [18:01:21.422] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.422] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:21.422] } [18:01:21.422] ...future.workdir <- getwd() [18:01:21.422] } [18:01:21.422] ...future.oldOptions <- base::as.list(base::.Options) [18:01:21.422] ...future.oldEnvVars <- base::Sys.getenv() [18:01:21.422] } [18:01:21.422] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:21.422] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:21.422] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:21.422] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:21.422] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:21.422] future.stdout.windows.reencode = NULL, width = 80L) [18:01:21.422] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:21.422] base::names(...future.oldOptions)) [18:01:21.422] } [18:01:21.422] if (FALSE) { [18:01:21.422] } [18:01:21.422] else { [18:01:21.422] if (TRUE) { [18:01:21.422] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:21.422] open = "w") [18:01:21.422] } [18:01:21.422] else { [18:01:21.422] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:21.422] windows = "NUL", "/dev/null"), open = "w") [18:01:21.422] } [18:01:21.422] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:21.422] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:21.422] base::sink(type = "output", split = FALSE) [18:01:21.422] base::close(...future.stdout) [18:01:21.422] }, add = TRUE) [18:01:21.422] } [18:01:21.422] ...future.frame <- base::sys.nframe() [18:01:21.422] ...future.conditions <- base::list() [18:01:21.422] ...future.rng <- base::globalenv()$.Random.seed [18:01:21.422] if (FALSE) { [18:01:21.422] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:21.422] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:21.422] } [18:01:21.422] ...future.result <- base::tryCatch({ [18:01:21.422] base::withCallingHandlers({ [18:01:21.422] ...future.value <- base::withVisible(base::local({ [18:01:21.422] ...future.makeSendCondition <- local({ [18:01:21.422] sendCondition <- NULL [18:01:21.422] function(frame = 1L) { [18:01:21.422] if (is.function(sendCondition)) [18:01:21.422] return(sendCondition) [18:01:21.422] ns <- getNamespace("parallel") [18:01:21.422] if (exists("sendData", mode = "function", [18:01:21.422] envir = ns)) { [18:01:21.422] parallel_sendData <- get("sendData", mode = "function", [18:01:21.422] envir = ns) [18:01:21.422] envir <- sys.frame(frame) [18:01:21.422] master <- NULL [18:01:21.422] while (!identical(envir, .GlobalEnv) && [18:01:21.422] !identical(envir, emptyenv())) { [18:01:21.422] if (exists("master", mode = "list", envir = envir, [18:01:21.422] inherits = FALSE)) { [18:01:21.422] master <- get("master", mode = "list", [18:01:21.422] envir = envir, inherits = FALSE) [18:01:21.422] if (inherits(master, c("SOCKnode", [18:01:21.422] "SOCK0node"))) { [18:01:21.422] sendCondition <<- function(cond) { [18:01:21.422] data <- list(type = "VALUE", value = cond, [18:01:21.422] success = TRUE) [18:01:21.422] parallel_sendData(master, data) [18:01:21.422] } [18:01:21.422] return(sendCondition) [18:01:21.422] } [18:01:21.422] } [18:01:21.422] frame <- frame + 1L [18:01:21.422] envir <- sys.frame(frame) [18:01:21.422] } [18:01:21.422] } [18:01:21.422] sendCondition <<- function(cond) NULL [18:01:21.422] } [18:01:21.422] }) [18:01:21.422] withCallingHandlers({ [18:01:21.422] { [18:01:21.422] sum(x, y) [18:01:21.422] } [18:01:21.422] }, immediateCondition = function(cond) { [18:01:21.422] sendCondition <- ...future.makeSendCondition() [18:01:21.422] sendCondition(cond) [18:01:21.422] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.422] { [18:01:21.422] inherits <- base::inherits [18:01:21.422] invokeRestart <- base::invokeRestart [18:01:21.422] is.null <- base::is.null [18:01:21.422] muffled <- FALSE [18:01:21.422] if (inherits(cond, "message")) { [18:01:21.422] muffled <- grepl(pattern, "muffleMessage") [18:01:21.422] if (muffled) [18:01:21.422] invokeRestart("muffleMessage") [18:01:21.422] } [18:01:21.422] else if (inherits(cond, "warning")) { [18:01:21.422] muffled <- grepl(pattern, "muffleWarning") [18:01:21.422] if (muffled) [18:01:21.422] invokeRestart("muffleWarning") [18:01:21.422] } [18:01:21.422] else if (inherits(cond, "condition")) { [18:01:21.422] if (!is.null(pattern)) { [18:01:21.422] computeRestarts <- base::computeRestarts [18:01:21.422] grepl <- base::grepl [18:01:21.422] restarts <- computeRestarts(cond) [18:01:21.422] for (restart in restarts) { [18:01:21.422] name <- restart$name [18:01:21.422] if (is.null(name)) [18:01:21.422] next [18:01:21.422] if (!grepl(pattern, name)) [18:01:21.422] next [18:01:21.422] invokeRestart(restart) [18:01:21.422] muffled <- TRUE [18:01:21.422] break [18:01:21.422] } [18:01:21.422] } [18:01:21.422] } [18:01:21.422] invisible(muffled) [18:01:21.422] } [18:01:21.422] muffleCondition(cond) [18:01:21.422] }) [18:01:21.422] })) [18:01:21.422] future::FutureResult(value = ...future.value$value, [18:01:21.422] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.422] ...future.rng), globalenv = if (FALSE) [18:01:21.422] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:21.422] ...future.globalenv.names)) [18:01:21.422] else NULL, started = ...future.startTime, version = "1.8") [18:01:21.422] }, condition = base::local({ [18:01:21.422] c <- base::c [18:01:21.422] inherits <- base::inherits [18:01:21.422] invokeRestart <- base::invokeRestart [18:01:21.422] length <- base::length [18:01:21.422] list <- base::list [18:01:21.422] seq.int <- base::seq.int [18:01:21.422] signalCondition <- base::signalCondition [18:01:21.422] sys.calls <- base::sys.calls [18:01:21.422] `[[` <- base::`[[` [18:01:21.422] `+` <- base::`+` [18:01:21.422] `<<-` <- base::`<<-` [18:01:21.422] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:21.422] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:21.422] 3L)] [18:01:21.422] } [18:01:21.422] function(cond) { [18:01:21.422] is_error <- inherits(cond, "error") [18:01:21.422] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:21.422] NULL) [18:01:21.422] if (is_error) { [18:01:21.422] sessionInformation <- function() { [18:01:21.422] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:21.422] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:21.422] search = base::search(), system = base::Sys.info()) [18:01:21.422] } [18:01:21.422] ...future.conditions[[length(...future.conditions) + [18:01:21.422] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:21.422] cond$call), session = sessionInformation(), [18:01:21.422] timestamp = base::Sys.time(), signaled = 0L) [18:01:21.422] signalCondition(cond) [18:01:21.422] } [18:01:21.422] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:21.422] "immediateCondition"))) { [18:01:21.422] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:21.422] ...future.conditions[[length(...future.conditions) + [18:01:21.422] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:21.422] if (TRUE && !signal) { [18:01:21.422] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.422] { [18:01:21.422] inherits <- base::inherits [18:01:21.422] invokeRestart <- base::invokeRestart [18:01:21.422] is.null <- base::is.null [18:01:21.422] muffled <- FALSE [18:01:21.422] if (inherits(cond, "message")) { [18:01:21.422] muffled <- grepl(pattern, "muffleMessage") [18:01:21.422] if (muffled) [18:01:21.422] invokeRestart("muffleMessage") [18:01:21.422] } [18:01:21.422] else if (inherits(cond, "warning")) { [18:01:21.422] muffled <- grepl(pattern, "muffleWarning") [18:01:21.422] if (muffled) [18:01:21.422] invokeRestart("muffleWarning") [18:01:21.422] } [18:01:21.422] else if (inherits(cond, "condition")) { [18:01:21.422] if (!is.null(pattern)) { [18:01:21.422] computeRestarts <- base::computeRestarts [18:01:21.422] grepl <- base::grepl [18:01:21.422] restarts <- computeRestarts(cond) [18:01:21.422] for (restart in restarts) { [18:01:21.422] name <- restart$name [18:01:21.422] if (is.null(name)) [18:01:21.422] next [18:01:21.422] if (!grepl(pattern, name)) [18:01:21.422] next [18:01:21.422] invokeRestart(restart) [18:01:21.422] muffled <- TRUE [18:01:21.422] break [18:01:21.422] } [18:01:21.422] } [18:01:21.422] } [18:01:21.422] invisible(muffled) [18:01:21.422] } [18:01:21.422] muffleCondition(cond, pattern = "^muffle") [18:01:21.422] } [18:01:21.422] } [18:01:21.422] else { [18:01:21.422] if (TRUE) { [18:01:21.422] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.422] { [18:01:21.422] inherits <- base::inherits [18:01:21.422] invokeRestart <- base::invokeRestart [18:01:21.422] is.null <- base::is.null [18:01:21.422] muffled <- FALSE [18:01:21.422] if (inherits(cond, "message")) { [18:01:21.422] muffled <- grepl(pattern, "muffleMessage") [18:01:21.422] if (muffled) [18:01:21.422] invokeRestart("muffleMessage") [18:01:21.422] } [18:01:21.422] else if (inherits(cond, "warning")) { [18:01:21.422] muffled <- grepl(pattern, "muffleWarning") [18:01:21.422] if (muffled) [18:01:21.422] invokeRestart("muffleWarning") [18:01:21.422] } [18:01:21.422] else if (inherits(cond, "condition")) { [18:01:21.422] if (!is.null(pattern)) { [18:01:21.422] computeRestarts <- base::computeRestarts [18:01:21.422] grepl <- base::grepl [18:01:21.422] restarts <- computeRestarts(cond) [18:01:21.422] for (restart in restarts) { [18:01:21.422] name <- restart$name [18:01:21.422] if (is.null(name)) [18:01:21.422] next [18:01:21.422] if (!grepl(pattern, name)) [18:01:21.422] next [18:01:21.422] invokeRestart(restart) [18:01:21.422] muffled <- TRUE [18:01:21.422] break [18:01:21.422] } [18:01:21.422] } [18:01:21.422] } [18:01:21.422] invisible(muffled) [18:01:21.422] } [18:01:21.422] muffleCondition(cond, pattern = "^muffle") [18:01:21.422] } [18:01:21.422] } [18:01:21.422] } [18:01:21.422] })) [18:01:21.422] }, error = function(ex) { [18:01:21.422] base::structure(base::list(value = NULL, visible = NULL, [18:01:21.422] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.422] ...future.rng), started = ...future.startTime, [18:01:21.422] finished = Sys.time(), session_uuid = NA_character_, [18:01:21.422] version = "1.8"), class = "FutureResult") [18:01:21.422] }, finally = { [18:01:21.422] if (!identical(...future.workdir, getwd())) [18:01:21.422] setwd(...future.workdir) [18:01:21.422] { [18:01:21.422] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:21.422] ...future.oldOptions$nwarnings <- NULL [18:01:21.422] } [18:01:21.422] base::options(...future.oldOptions) [18:01:21.422] if (.Platform$OS.type == "windows") { [18:01:21.422] old_names <- names(...future.oldEnvVars) [18:01:21.422] envs <- base::Sys.getenv() [18:01:21.422] names <- names(envs) [18:01:21.422] common <- intersect(names, old_names) [18:01:21.422] added <- setdiff(names, old_names) [18:01:21.422] removed <- setdiff(old_names, names) [18:01:21.422] changed <- common[...future.oldEnvVars[common] != [18:01:21.422] envs[common]] [18:01:21.422] NAMES <- toupper(changed) [18:01:21.422] args <- list() [18:01:21.422] for (kk in seq_along(NAMES)) { [18:01:21.422] name <- changed[[kk]] [18:01:21.422] NAME <- NAMES[[kk]] [18:01:21.422] if (name != NAME && is.element(NAME, old_names)) [18:01:21.422] next [18:01:21.422] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.422] } [18:01:21.422] NAMES <- toupper(added) [18:01:21.422] for (kk in seq_along(NAMES)) { [18:01:21.422] name <- added[[kk]] [18:01:21.422] NAME <- NAMES[[kk]] [18:01:21.422] if (name != NAME && is.element(NAME, old_names)) [18:01:21.422] next [18:01:21.422] args[[name]] <- "" [18:01:21.422] } [18:01:21.422] NAMES <- toupper(removed) [18:01:21.422] for (kk in seq_along(NAMES)) { [18:01:21.422] name <- removed[[kk]] [18:01:21.422] NAME <- NAMES[[kk]] [18:01:21.422] if (name != NAME && is.element(NAME, old_names)) [18:01:21.422] next [18:01:21.422] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.422] } [18:01:21.422] if (length(args) > 0) [18:01:21.422] base::do.call(base::Sys.setenv, args = args) [18:01:21.422] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:21.422] } [18:01:21.422] else { [18:01:21.422] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:21.422] } [18:01:21.422] { [18:01:21.422] if (base::length(...future.futureOptionsAdded) > [18:01:21.422] 0L) { [18:01:21.422] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:21.422] base::names(opts) <- ...future.futureOptionsAdded [18:01:21.422] base::options(opts) [18:01:21.422] } [18:01:21.422] { [18:01:21.422] { [18:01:21.422] base::options(mc.cores = ...future.mc.cores.old) [18:01:21.422] NULL [18:01:21.422] } [18:01:21.422] options(future.plan = NULL) [18:01:21.422] if (is.na(NA_character_)) [18:01:21.422] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.422] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:21.422] future::plan(list(function (..., workers = availableCores(), [18:01:21.422] lazy = FALSE, rscript_libs = .libPaths(), [18:01:21.422] envir = parent.frame()) [18:01:21.422] { [18:01:21.422] if (is.function(workers)) [18:01:21.422] workers <- workers() [18:01:21.422] workers <- structure(as.integer(workers), [18:01:21.422] class = class(workers)) [18:01:21.422] stop_if_not(length(workers) == 1, is.finite(workers), [18:01:21.422] workers >= 1) [18:01:21.422] if (workers == 1L && !inherits(workers, "AsIs")) { [18:01:21.422] return(sequential(..., lazy = TRUE, envir = envir)) [18:01:21.422] } [18:01:21.422] future <- MultisessionFuture(..., workers = workers, [18:01:21.422] lazy = lazy, rscript_libs = rscript_libs, [18:01:21.422] envir = envir) [18:01:21.422] if (!future$lazy) [18:01:21.422] future <- run(future) [18:01:21.422] invisible(future) [18:01:21.422] }), .cleanup = FALSE, .init = FALSE) [18:01:21.422] } [18:01:21.422] } [18:01:21.422] } [18:01:21.422] }) [18:01:21.422] if (TRUE) { [18:01:21.422] base::sink(type = "output", split = FALSE) [18:01:21.422] if (TRUE) { [18:01:21.422] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:21.422] } [18:01:21.422] else { [18:01:21.422] ...future.result["stdout"] <- base::list(NULL) [18:01:21.422] } [18:01:21.422] base::close(...future.stdout) [18:01:21.422] ...future.stdout <- NULL [18:01:21.422] } [18:01:21.422] ...future.result$conditions <- ...future.conditions [18:01:21.422] ...future.result$finished <- base::Sys.time() [18:01:21.422] ...future.result [18:01:21.422] } [18:01:21.428] Exporting 2 global objects (112 bytes) to cluster node #1 ... [18:01:21.428] Exporting 'x' (56 bytes) to cluster node #1 ... [18:01:21.428] Exporting 'x' (56 bytes) to cluster node #1 ... DONE [18:01:21.428] Exporting 'y' (56 bytes) to cluster node #1 ... [18:01:21.429] Exporting 'y' (56 bytes) to cluster node #1 ... DONE [18:01:21.429] Exporting 2 global objects (112 bytes) to cluster node #1 ... DONE [18:01:21.430] MultisessionFuture started [18:01:21.430] - Launch lazy future ... done [18:01:21.430] run() for 'MultisessionFuture' ... done [18:01:21.430] result() for ClusterFuture ... [18:01:21.430] receiveMessageFromWorker() for ClusterFuture ... [18:01:21.431] - Validating connection of MultisessionFuture [18:01:21.447] - received message: FutureResult [18:01:21.448] - Received FutureResult [18:01:21.448] - Erased future from FutureRegistry [18:01:21.448] result() for ClusterFuture ... [18:01:21.448] - result already collected: FutureResult [18:01:21.448] result() for ClusterFuture ... done [18:01:21.448] receiveMessageFromWorker() for ClusterFuture ... done [18:01:21.449] result() for ClusterFuture ... done [18:01:21.449] result() for ClusterFuture ... [18:01:21.449] - result already collected: FutureResult [18:01:21.449] result() for ClusterFuture ... done [1] 6 ** Sum function 'D' with plan('multisession') ... function (x, y) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) y %<-% { sum(x, y, ...) } y } Arguments '...' exists: FALSE [18:01:21.450] getGlobalsAndPackages() ... [18:01:21.450] Searching for globals... [18:01:21.452] - globals found: [5] '{', 'sum', 'x', 'y', '...' [18:01:21.452] Searching for globals ... DONE [18:01:21.452] Resolving globals: FALSE [18:01:21.452] Tweak future expression to call with '...' arguments ... [18:01:21.453] The total size of the 2 globals is 112 bytes (112 bytes) [18:01:21.453] The total size of the 2 globals exported for future expression ('{; sum(x, y, ...); }') is 112 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'x' (56 bytes of class 'numeric') and 'y' (56 bytes of class 'numeric') [18:01:21.453] - globals: [2] 'x', 'y' [18:01:21.454] [18:01:21.454] getGlobalsAndPackages() ... DONE [18:01:21.454] run() for 'Future' ... [18:01:21.454] - state: 'created' [18:01:21.455] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:01:21.468] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:01:21.468] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:01:21.469] - Field: 'node' [18:01:21.469] - Field: 'label' [18:01:21.469] - Field: 'local' [18:01:21.469] - Field: 'owner' [18:01:21.469] - Field: 'envir' [18:01:21.470] - Field: 'workers' [18:01:21.470] - Field: 'packages' [18:01:21.470] - Field: 'gc' [18:01:21.470] - Field: 'conditions' [18:01:21.470] - Field: 'persistent' [18:01:21.470] - Field: 'expr' [18:01:21.471] - Field: 'uuid' [18:01:21.471] - Field: 'seed' [18:01:21.471] - Field: 'version' [18:01:21.471] - Field: 'result' [18:01:21.471] - Field: 'asynchronous' [18:01:21.471] - Field: 'calls' [18:01:21.472] - Field: 'globals' [18:01:21.472] - Field: 'stdout' [18:01:21.472] - Field: 'earlySignal' [18:01:21.472] - Field: 'lazy' [18:01:21.472] - Field: 'state' [18:01:21.473] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:01:21.473] - Launch lazy future ... [18:01:21.473] Packages needed by the future expression (n = 0): [18:01:21.473] Packages needed by future strategies (n = 0): [18:01:21.474] { [18:01:21.474] { [18:01:21.474] { [18:01:21.474] ...future.startTime <- base::Sys.time() [18:01:21.474] { [18:01:21.474] { [18:01:21.474] { [18:01:21.474] { [18:01:21.474] base::local({ [18:01:21.474] has_future <- base::requireNamespace("future", [18:01:21.474] quietly = TRUE) [18:01:21.474] if (has_future) { [18:01:21.474] ns <- base::getNamespace("future") [18:01:21.474] version <- ns[[".package"]][["version"]] [18:01:21.474] if (is.null(version)) [18:01:21.474] version <- utils::packageVersion("future") [18:01:21.474] } [18:01:21.474] else { [18:01:21.474] version <- NULL [18:01:21.474] } [18:01:21.474] if (!has_future || version < "1.8.0") { [18:01:21.474] info <- base::c(r_version = base::gsub("R version ", [18:01:21.474] "", base::R.version$version.string), [18:01:21.474] platform = base::sprintf("%s (%s-bit)", [18:01:21.474] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:21.474] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:21.474] "release", "version")], collapse = " "), [18:01:21.474] hostname = base::Sys.info()[["nodename"]]) [18:01:21.474] info <- base::sprintf("%s: %s", base::names(info), [18:01:21.474] info) [18:01:21.474] info <- base::paste(info, collapse = "; ") [18:01:21.474] if (!has_future) { [18:01:21.474] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:21.474] info) [18:01:21.474] } [18:01:21.474] else { [18:01:21.474] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:21.474] info, version) [18:01:21.474] } [18:01:21.474] base::stop(msg) [18:01:21.474] } [18:01:21.474] }) [18:01:21.474] } [18:01:21.474] ...future.mc.cores.old <- base::getOption("mc.cores") [18:01:21.474] base::options(mc.cores = 1L) [18:01:21.474] } [18:01:21.474] options(future.plan = NULL) [18:01:21.474] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.474] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:21.474] } [18:01:21.474] ...future.workdir <- getwd() [18:01:21.474] } [18:01:21.474] ...future.oldOptions <- base::as.list(base::.Options) [18:01:21.474] ...future.oldEnvVars <- base::Sys.getenv() [18:01:21.474] } [18:01:21.474] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:21.474] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:21.474] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:21.474] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:21.474] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:21.474] future.stdout.windows.reencode = NULL, width = 80L) [18:01:21.474] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:21.474] base::names(...future.oldOptions)) [18:01:21.474] } [18:01:21.474] if (FALSE) { [18:01:21.474] } [18:01:21.474] else { [18:01:21.474] if (TRUE) { [18:01:21.474] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:21.474] open = "w") [18:01:21.474] } [18:01:21.474] else { [18:01:21.474] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:21.474] windows = "NUL", "/dev/null"), open = "w") [18:01:21.474] } [18:01:21.474] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:21.474] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:21.474] base::sink(type = "output", split = FALSE) [18:01:21.474] base::close(...future.stdout) [18:01:21.474] }, add = TRUE) [18:01:21.474] } [18:01:21.474] ...future.frame <- base::sys.nframe() [18:01:21.474] ...future.conditions <- base::list() [18:01:21.474] ...future.rng <- base::globalenv()$.Random.seed [18:01:21.474] if (FALSE) { [18:01:21.474] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:21.474] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:21.474] } [18:01:21.474] ...future.result <- base::tryCatch({ [18:01:21.474] base::withCallingHandlers({ [18:01:21.474] ...future.value <- base::withVisible(base::local({ [18:01:21.474] ...future.makeSendCondition <- local({ [18:01:21.474] sendCondition <- NULL [18:01:21.474] function(frame = 1L) { [18:01:21.474] if (is.function(sendCondition)) [18:01:21.474] return(sendCondition) [18:01:21.474] ns <- getNamespace("parallel") [18:01:21.474] if (exists("sendData", mode = "function", [18:01:21.474] envir = ns)) { [18:01:21.474] parallel_sendData <- get("sendData", mode = "function", [18:01:21.474] envir = ns) [18:01:21.474] envir <- sys.frame(frame) [18:01:21.474] master <- NULL [18:01:21.474] while (!identical(envir, .GlobalEnv) && [18:01:21.474] !identical(envir, emptyenv())) { [18:01:21.474] if (exists("master", mode = "list", envir = envir, [18:01:21.474] inherits = FALSE)) { [18:01:21.474] master <- get("master", mode = "list", [18:01:21.474] envir = envir, inherits = FALSE) [18:01:21.474] if (inherits(master, c("SOCKnode", [18:01:21.474] "SOCK0node"))) { [18:01:21.474] sendCondition <<- function(cond) { [18:01:21.474] data <- list(type = "VALUE", value = cond, [18:01:21.474] success = TRUE) [18:01:21.474] parallel_sendData(master, data) [18:01:21.474] } [18:01:21.474] return(sendCondition) [18:01:21.474] } [18:01:21.474] } [18:01:21.474] frame <- frame + 1L [18:01:21.474] envir <- sys.frame(frame) [18:01:21.474] } [18:01:21.474] } [18:01:21.474] sendCondition <<- function(cond) NULL [18:01:21.474] } [18:01:21.474] }) [18:01:21.474] withCallingHandlers({ [18:01:21.474] { [18:01:21.474] sum(x, y, ...) [18:01:21.474] } [18:01:21.474] }, immediateCondition = function(cond) { [18:01:21.474] sendCondition <- ...future.makeSendCondition() [18:01:21.474] sendCondition(cond) [18:01:21.474] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.474] { [18:01:21.474] inherits <- base::inherits [18:01:21.474] invokeRestart <- base::invokeRestart [18:01:21.474] is.null <- base::is.null [18:01:21.474] muffled <- FALSE [18:01:21.474] if (inherits(cond, "message")) { [18:01:21.474] muffled <- grepl(pattern, "muffleMessage") [18:01:21.474] if (muffled) [18:01:21.474] invokeRestart("muffleMessage") [18:01:21.474] } [18:01:21.474] else if (inherits(cond, "warning")) { [18:01:21.474] muffled <- grepl(pattern, "muffleWarning") [18:01:21.474] if (muffled) [18:01:21.474] invokeRestart("muffleWarning") [18:01:21.474] } [18:01:21.474] else if (inherits(cond, "condition")) { [18:01:21.474] if (!is.null(pattern)) { [18:01:21.474] computeRestarts <- base::computeRestarts [18:01:21.474] grepl <- base::grepl [18:01:21.474] restarts <- computeRestarts(cond) [18:01:21.474] for (restart in restarts) { [18:01:21.474] name <- restart$name [18:01:21.474] if (is.null(name)) [18:01:21.474] next [18:01:21.474] if (!grepl(pattern, name)) [18:01:21.474] next [18:01:21.474] invokeRestart(restart) [18:01:21.474] muffled <- TRUE [18:01:21.474] break [18:01:21.474] } [18:01:21.474] } [18:01:21.474] } [18:01:21.474] invisible(muffled) [18:01:21.474] } [18:01:21.474] muffleCondition(cond) [18:01:21.474] }) [18:01:21.474] })) [18:01:21.474] future::FutureResult(value = ...future.value$value, [18:01:21.474] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.474] ...future.rng), globalenv = if (FALSE) [18:01:21.474] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:21.474] ...future.globalenv.names)) [18:01:21.474] else NULL, started = ...future.startTime, version = "1.8") [18:01:21.474] }, condition = base::local({ [18:01:21.474] c <- base::c [18:01:21.474] inherits <- base::inherits [18:01:21.474] invokeRestart <- base::invokeRestart [18:01:21.474] length <- base::length [18:01:21.474] list <- base::list [18:01:21.474] seq.int <- base::seq.int [18:01:21.474] signalCondition <- base::signalCondition [18:01:21.474] sys.calls <- base::sys.calls [18:01:21.474] `[[` <- base::`[[` [18:01:21.474] `+` <- base::`+` [18:01:21.474] `<<-` <- base::`<<-` [18:01:21.474] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:21.474] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:21.474] 3L)] [18:01:21.474] } [18:01:21.474] function(cond) { [18:01:21.474] is_error <- inherits(cond, "error") [18:01:21.474] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:21.474] NULL) [18:01:21.474] if (is_error) { [18:01:21.474] sessionInformation <- function() { [18:01:21.474] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:21.474] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:21.474] search = base::search(), system = base::Sys.info()) [18:01:21.474] } [18:01:21.474] ...future.conditions[[length(...future.conditions) + [18:01:21.474] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:21.474] cond$call), session = sessionInformation(), [18:01:21.474] timestamp = base::Sys.time(), signaled = 0L) [18:01:21.474] signalCondition(cond) [18:01:21.474] } [18:01:21.474] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:21.474] "immediateCondition"))) { [18:01:21.474] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:21.474] ...future.conditions[[length(...future.conditions) + [18:01:21.474] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:21.474] if (TRUE && !signal) { [18:01:21.474] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.474] { [18:01:21.474] inherits <- base::inherits [18:01:21.474] invokeRestart <- base::invokeRestart [18:01:21.474] is.null <- base::is.null [18:01:21.474] muffled <- FALSE [18:01:21.474] if (inherits(cond, "message")) { [18:01:21.474] muffled <- grepl(pattern, "muffleMessage") [18:01:21.474] if (muffled) [18:01:21.474] invokeRestart("muffleMessage") [18:01:21.474] } [18:01:21.474] else if (inherits(cond, "warning")) { [18:01:21.474] muffled <- grepl(pattern, "muffleWarning") [18:01:21.474] if (muffled) [18:01:21.474] invokeRestart("muffleWarning") [18:01:21.474] } [18:01:21.474] else if (inherits(cond, "condition")) { [18:01:21.474] if (!is.null(pattern)) { [18:01:21.474] computeRestarts <- base::computeRestarts [18:01:21.474] grepl <- base::grepl [18:01:21.474] restarts <- computeRestarts(cond) [18:01:21.474] for (restart in restarts) { [18:01:21.474] name <- restart$name [18:01:21.474] if (is.null(name)) [18:01:21.474] next [18:01:21.474] if (!grepl(pattern, name)) [18:01:21.474] next [18:01:21.474] invokeRestart(restart) [18:01:21.474] muffled <- TRUE [18:01:21.474] break [18:01:21.474] } [18:01:21.474] } [18:01:21.474] } [18:01:21.474] invisible(muffled) [18:01:21.474] } [18:01:21.474] muffleCondition(cond, pattern = "^muffle") [18:01:21.474] } [18:01:21.474] } [18:01:21.474] else { [18:01:21.474] if (TRUE) { [18:01:21.474] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.474] { [18:01:21.474] inherits <- base::inherits [18:01:21.474] invokeRestart <- base::invokeRestart [18:01:21.474] is.null <- base::is.null [18:01:21.474] muffled <- FALSE [18:01:21.474] if (inherits(cond, "message")) { [18:01:21.474] muffled <- grepl(pattern, "muffleMessage") [18:01:21.474] if (muffled) [18:01:21.474] invokeRestart("muffleMessage") [18:01:21.474] } [18:01:21.474] else if (inherits(cond, "warning")) { [18:01:21.474] muffled <- grepl(pattern, "muffleWarning") [18:01:21.474] if (muffled) [18:01:21.474] invokeRestart("muffleWarning") [18:01:21.474] } [18:01:21.474] else if (inherits(cond, "condition")) { [18:01:21.474] if (!is.null(pattern)) { [18:01:21.474] computeRestarts <- base::computeRestarts [18:01:21.474] grepl <- base::grepl [18:01:21.474] restarts <- computeRestarts(cond) [18:01:21.474] for (restart in restarts) { [18:01:21.474] name <- restart$name [18:01:21.474] if (is.null(name)) [18:01:21.474] next [18:01:21.474] if (!grepl(pattern, name)) [18:01:21.474] next [18:01:21.474] invokeRestart(restart) [18:01:21.474] muffled <- TRUE [18:01:21.474] break [18:01:21.474] } [18:01:21.474] } [18:01:21.474] } [18:01:21.474] invisible(muffled) [18:01:21.474] } [18:01:21.474] muffleCondition(cond, pattern = "^muffle") [18:01:21.474] } [18:01:21.474] } [18:01:21.474] } [18:01:21.474] })) [18:01:21.474] }, error = function(ex) { [18:01:21.474] base::structure(base::list(value = NULL, visible = NULL, [18:01:21.474] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.474] ...future.rng), started = ...future.startTime, [18:01:21.474] finished = Sys.time(), session_uuid = NA_character_, [18:01:21.474] version = "1.8"), class = "FutureResult") [18:01:21.474] }, finally = { [18:01:21.474] if (!identical(...future.workdir, getwd())) [18:01:21.474] setwd(...future.workdir) [18:01:21.474] { [18:01:21.474] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:21.474] ...future.oldOptions$nwarnings <- NULL [18:01:21.474] } [18:01:21.474] base::options(...future.oldOptions) [18:01:21.474] if (.Platform$OS.type == "windows") { [18:01:21.474] old_names <- names(...future.oldEnvVars) [18:01:21.474] envs <- base::Sys.getenv() [18:01:21.474] names <- names(envs) [18:01:21.474] common <- intersect(names, old_names) [18:01:21.474] added <- setdiff(names, old_names) [18:01:21.474] removed <- setdiff(old_names, names) [18:01:21.474] changed <- common[...future.oldEnvVars[common] != [18:01:21.474] envs[common]] [18:01:21.474] NAMES <- toupper(changed) [18:01:21.474] args <- list() [18:01:21.474] for (kk in seq_along(NAMES)) { [18:01:21.474] name <- changed[[kk]] [18:01:21.474] NAME <- NAMES[[kk]] [18:01:21.474] if (name != NAME && is.element(NAME, old_names)) [18:01:21.474] next [18:01:21.474] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.474] } [18:01:21.474] NAMES <- toupper(added) [18:01:21.474] for (kk in seq_along(NAMES)) { [18:01:21.474] name <- added[[kk]] [18:01:21.474] NAME <- NAMES[[kk]] [18:01:21.474] if (name != NAME && is.element(NAME, old_names)) [18:01:21.474] next [18:01:21.474] args[[name]] <- "" [18:01:21.474] } [18:01:21.474] NAMES <- toupper(removed) [18:01:21.474] for (kk in seq_along(NAMES)) { [18:01:21.474] name <- removed[[kk]] [18:01:21.474] NAME <- NAMES[[kk]] [18:01:21.474] if (name != NAME && is.element(NAME, old_names)) [18:01:21.474] next [18:01:21.474] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.474] } [18:01:21.474] if (length(args) > 0) [18:01:21.474] base::do.call(base::Sys.setenv, args = args) [18:01:21.474] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:21.474] } [18:01:21.474] else { [18:01:21.474] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:21.474] } [18:01:21.474] { [18:01:21.474] if (base::length(...future.futureOptionsAdded) > [18:01:21.474] 0L) { [18:01:21.474] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:21.474] base::names(opts) <- ...future.futureOptionsAdded [18:01:21.474] base::options(opts) [18:01:21.474] } [18:01:21.474] { [18:01:21.474] { [18:01:21.474] base::options(mc.cores = ...future.mc.cores.old) [18:01:21.474] NULL [18:01:21.474] } [18:01:21.474] options(future.plan = NULL) [18:01:21.474] if (is.na(NA_character_)) [18:01:21.474] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.474] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:21.474] future::plan(list(function (..., workers = availableCores(), [18:01:21.474] lazy = FALSE, rscript_libs = .libPaths(), [18:01:21.474] envir = parent.frame()) [18:01:21.474] { [18:01:21.474] if (is.function(workers)) [18:01:21.474] workers <- workers() [18:01:21.474] workers <- structure(as.integer(workers), [18:01:21.474] class = class(workers)) [18:01:21.474] stop_if_not(length(workers) == 1, is.finite(workers), [18:01:21.474] workers >= 1) [18:01:21.474] if (workers == 1L && !inherits(workers, "AsIs")) { [18:01:21.474] return(sequential(..., lazy = TRUE, envir = envir)) [18:01:21.474] } [18:01:21.474] future <- MultisessionFuture(..., workers = workers, [18:01:21.474] lazy = lazy, rscript_libs = rscript_libs, [18:01:21.474] envir = envir) [18:01:21.474] if (!future$lazy) [18:01:21.474] future <- run(future) [18:01:21.474] invisible(future) [18:01:21.474] }), .cleanup = FALSE, .init = FALSE) [18:01:21.474] } [18:01:21.474] } [18:01:21.474] } [18:01:21.474] }) [18:01:21.474] if (TRUE) { [18:01:21.474] base::sink(type = "output", split = FALSE) [18:01:21.474] if (TRUE) { [18:01:21.474] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:21.474] } [18:01:21.474] else { [18:01:21.474] ...future.result["stdout"] <- base::list(NULL) [18:01:21.474] } [18:01:21.474] base::close(...future.stdout) [18:01:21.474] ...future.stdout <- NULL [18:01:21.474] } [18:01:21.474] ...future.result$conditions <- ...future.conditions [18:01:21.474] ...future.result$finished <- base::Sys.time() [18:01:21.474] ...future.result [18:01:21.474] } [18:01:21.479] Exporting 2 global objects (112 bytes) to cluster node #1 ... [18:01:21.479] Exporting 'x' (56 bytes) to cluster node #1 ... [18:01:21.480] Exporting 'x' (56 bytes) to cluster node #1 ... DONE [18:01:21.480] Exporting 'y' (56 bytes) to cluster node #1 ... [18:01:21.480] Exporting 'y' (56 bytes) to cluster node #1 ... DONE [18:01:21.480] Exporting 2 global objects (112 bytes) to cluster node #1 ... DONE [18:01:21.481] MultisessionFuture started [18:01:21.481] - Launch lazy future ... done [18:01:21.481] run() for 'MultisessionFuture' ... done [18:01:21.482] result() for ClusterFuture ... [18:01:21.482] receiveMessageFromWorker() for ClusterFuture ... [18:01:21.482] - Validating connection of MultisessionFuture [18:01:21.498] - received message: FutureResult [18:01:21.498] - Received FutureResult [18:01:21.498] - Erased future from FutureRegistry [18:01:21.499] result() for ClusterFuture ... [18:01:21.499] - result already collected: FutureResult [18:01:21.499] result() for ClusterFuture ... done [18:01:21.499] signalConditions() ... [18:01:21.499] - include = 'immediateCondition' [18:01:21.499] - exclude = [18:01:21.500] - resignal = FALSE [18:01:21.500] - Number of conditions: 1 [18:01:21.500] signalConditions() ... done [18:01:21.500] receiveMessageFromWorker() for ClusterFuture ... done [18:01:21.500] result() for ClusterFuture ... done [18:01:21.500] result() for ClusterFuture ... [18:01:21.501] - result already collected: FutureResult [18:01:21.501] result() for ClusterFuture ... done [18:01:21.501] signalConditions() ... [18:01:21.501] - include = 'immediateCondition' [18:01:21.501] - exclude = [18:01:21.501] - resignal = FALSE [18:01:21.502] - Number of conditions: 1 [18:01:21.502] signalConditions() ... done [18:01:21.502] Future state: 'finished' [18:01:21.502] result() for ClusterFuture ... [18:01:21.502] - result already collected: FutureResult [18:01:21.502] result() for ClusterFuture ... done [18:01:21.503] signalConditions() ... [18:01:21.503] - include = 'condition' [18:01:21.503] - exclude = 'immediateCondition' [18:01:21.503] - resignal = TRUE [18:01:21.503] - Number of conditions: 1 [18:01:21.503] - Condition #1: 'simpleError', 'error', 'condition' [18:01:21.504] signalConditions() ... done Error in withCallingHandlers({ : '...' used in an incorrect context [1] "Error in withCallingHandlers({ : '...' used in an incorrect context\n" attr(,"class") [1] "try-error" attr(,"condition") ** Sum function 'E' with plan('multisession') ... function (...) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) globals <- globals::globalsByName("...", envir = environment()) f <- future({ fcn <- function() sum(...) fcn() }, envir = parent.frame(), globals = globals) y <- value(f) y } Arguments '...' exists: TRUE [18:01:21.505] getGlobalsAndPackages() ... [18:01:21.505] - globals passed as-is: [1] '...' [18:01:21.505] Resolving globals: FALSE [18:01:21.505] Tweak future expression to call with '...' arguments ... [18:01:21.506] { [18:01:21.506] do.call(function(...) { [18:01:21.506] fcn <- function() sum(...) [18:01:21.506] fcn() [18:01:21.506] }, args = future.call.arguments) [18:01:21.506] } [18:01:21.506] Tweak future expression to call with '...' arguments ... DONE [18:01:21.506] The total size of the 1 globals is 112 bytes (112 bytes) [18:01:21.507] The total size of the 1 globals exported for future expression ('{; fcn <- function() sum(...); fcn(); }') is 112 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'future.call.arguments' (112 bytes of class 'list') [18:01:21.507] - globals: [1] 'future.call.arguments' [18:01:21.507] [18:01:21.508] getGlobalsAndPackages() ... DONE [18:01:21.508] run() for 'Future' ... [18:01:21.508] - state: 'created' [18:01:21.508] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:01:21.525] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:01:21.525] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:01:21.525] - Field: 'node' [18:01:21.525] - Field: 'label' [18:01:21.525] - Field: 'local' [18:01:21.526] - Field: 'owner' [18:01:21.526] - Field: 'envir' [18:01:21.526] - Field: 'workers' [18:01:21.526] - Field: 'packages' [18:01:21.526] - Field: 'gc' [18:01:21.527] - Field: 'conditions' [18:01:21.527] - Field: 'persistent' [18:01:21.527] - Field: 'expr' [18:01:21.527] - Field: 'uuid' [18:01:21.527] - Field: 'seed' [18:01:21.527] - Field: 'version' [18:01:21.528] - Field: 'result' [18:01:21.528] - Field: 'asynchronous' [18:01:21.528] - Field: 'calls' [18:01:21.528] - Field: 'globals' [18:01:21.528] - Field: 'stdout' [18:01:21.529] - Field: 'earlySignal' [18:01:21.529] - Field: 'lazy' [18:01:21.529] - Field: 'state' [18:01:21.529] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:01:21.529] - Launch lazy future ... [18:01:21.530] Packages needed by the future expression (n = 0): [18:01:21.530] Packages needed by future strategies (n = 0): [18:01:21.530] { [18:01:21.530] { [18:01:21.530] { [18:01:21.530] ...future.startTime <- base::Sys.time() [18:01:21.530] { [18:01:21.530] { [18:01:21.530] { [18:01:21.530] { [18:01:21.530] base::local({ [18:01:21.530] has_future <- base::requireNamespace("future", [18:01:21.530] quietly = TRUE) [18:01:21.530] if (has_future) { [18:01:21.530] ns <- base::getNamespace("future") [18:01:21.530] version <- ns[[".package"]][["version"]] [18:01:21.530] if (is.null(version)) [18:01:21.530] version <- utils::packageVersion("future") [18:01:21.530] } [18:01:21.530] else { [18:01:21.530] version <- NULL [18:01:21.530] } [18:01:21.530] if (!has_future || version < "1.8.0") { [18:01:21.530] info <- base::c(r_version = base::gsub("R version ", [18:01:21.530] "", base::R.version$version.string), [18:01:21.530] platform = base::sprintf("%s (%s-bit)", [18:01:21.530] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:21.530] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:21.530] "release", "version")], collapse = " "), [18:01:21.530] hostname = base::Sys.info()[["nodename"]]) [18:01:21.530] info <- base::sprintf("%s: %s", base::names(info), [18:01:21.530] info) [18:01:21.530] info <- base::paste(info, collapse = "; ") [18:01:21.530] if (!has_future) { [18:01:21.530] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:21.530] info) [18:01:21.530] } [18:01:21.530] else { [18:01:21.530] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:21.530] info, version) [18:01:21.530] } [18:01:21.530] base::stop(msg) [18:01:21.530] } [18:01:21.530] }) [18:01:21.530] } [18:01:21.530] ...future.mc.cores.old <- base::getOption("mc.cores") [18:01:21.530] base::options(mc.cores = 1L) [18:01:21.530] } [18:01:21.530] options(future.plan = NULL) [18:01:21.530] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.530] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:21.530] } [18:01:21.530] ...future.workdir <- getwd() [18:01:21.530] } [18:01:21.530] ...future.oldOptions <- base::as.list(base::.Options) [18:01:21.530] ...future.oldEnvVars <- base::Sys.getenv() [18:01:21.530] } [18:01:21.530] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:21.530] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:21.530] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:21.530] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:21.530] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:21.530] future.stdout.windows.reencode = NULL, width = 80L) [18:01:21.530] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:21.530] base::names(...future.oldOptions)) [18:01:21.530] } [18:01:21.530] if (FALSE) { [18:01:21.530] } [18:01:21.530] else { [18:01:21.530] if (TRUE) { [18:01:21.530] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:21.530] open = "w") [18:01:21.530] } [18:01:21.530] else { [18:01:21.530] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:21.530] windows = "NUL", "/dev/null"), open = "w") [18:01:21.530] } [18:01:21.530] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:21.530] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:21.530] base::sink(type = "output", split = FALSE) [18:01:21.530] base::close(...future.stdout) [18:01:21.530] }, add = TRUE) [18:01:21.530] } [18:01:21.530] ...future.frame <- base::sys.nframe() [18:01:21.530] ...future.conditions <- base::list() [18:01:21.530] ...future.rng <- base::globalenv()$.Random.seed [18:01:21.530] if (FALSE) { [18:01:21.530] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:21.530] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:21.530] } [18:01:21.530] ...future.result <- base::tryCatch({ [18:01:21.530] base::withCallingHandlers({ [18:01:21.530] ...future.value <- base::withVisible(base::local({ [18:01:21.530] ...future.makeSendCondition <- local({ [18:01:21.530] sendCondition <- NULL [18:01:21.530] function(frame = 1L) { [18:01:21.530] if (is.function(sendCondition)) [18:01:21.530] return(sendCondition) [18:01:21.530] ns <- getNamespace("parallel") [18:01:21.530] if (exists("sendData", mode = "function", [18:01:21.530] envir = ns)) { [18:01:21.530] parallel_sendData <- get("sendData", mode = "function", [18:01:21.530] envir = ns) [18:01:21.530] envir <- sys.frame(frame) [18:01:21.530] master <- NULL [18:01:21.530] while (!identical(envir, .GlobalEnv) && [18:01:21.530] !identical(envir, emptyenv())) { [18:01:21.530] if (exists("master", mode = "list", envir = envir, [18:01:21.530] inherits = FALSE)) { [18:01:21.530] master <- get("master", mode = "list", [18:01:21.530] envir = envir, inherits = FALSE) [18:01:21.530] if (inherits(master, c("SOCKnode", [18:01:21.530] "SOCK0node"))) { [18:01:21.530] sendCondition <<- function(cond) { [18:01:21.530] data <- list(type = "VALUE", value = cond, [18:01:21.530] success = TRUE) [18:01:21.530] parallel_sendData(master, data) [18:01:21.530] } [18:01:21.530] return(sendCondition) [18:01:21.530] } [18:01:21.530] } [18:01:21.530] frame <- frame + 1L [18:01:21.530] envir <- sys.frame(frame) [18:01:21.530] } [18:01:21.530] } [18:01:21.530] sendCondition <<- function(cond) NULL [18:01:21.530] } [18:01:21.530] }) [18:01:21.530] withCallingHandlers({ [18:01:21.530] { [18:01:21.530] do.call(function(...) { [18:01:21.530] fcn <- function() sum(...) [18:01:21.530] fcn() [18:01:21.530] }, args = future.call.arguments) [18:01:21.530] } [18:01:21.530] }, immediateCondition = function(cond) { [18:01:21.530] sendCondition <- ...future.makeSendCondition() [18:01:21.530] sendCondition(cond) [18:01:21.530] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.530] { [18:01:21.530] inherits <- base::inherits [18:01:21.530] invokeRestart <- base::invokeRestart [18:01:21.530] is.null <- base::is.null [18:01:21.530] muffled <- FALSE [18:01:21.530] if (inherits(cond, "message")) { [18:01:21.530] muffled <- grepl(pattern, "muffleMessage") [18:01:21.530] if (muffled) [18:01:21.530] invokeRestart("muffleMessage") [18:01:21.530] } [18:01:21.530] else if (inherits(cond, "warning")) { [18:01:21.530] muffled <- grepl(pattern, "muffleWarning") [18:01:21.530] if (muffled) [18:01:21.530] invokeRestart("muffleWarning") [18:01:21.530] } [18:01:21.530] else if (inherits(cond, "condition")) { [18:01:21.530] if (!is.null(pattern)) { [18:01:21.530] computeRestarts <- base::computeRestarts [18:01:21.530] grepl <- base::grepl [18:01:21.530] restarts <- computeRestarts(cond) [18:01:21.530] for (restart in restarts) { [18:01:21.530] name <- restart$name [18:01:21.530] if (is.null(name)) [18:01:21.530] next [18:01:21.530] if (!grepl(pattern, name)) [18:01:21.530] next [18:01:21.530] invokeRestart(restart) [18:01:21.530] muffled <- TRUE [18:01:21.530] break [18:01:21.530] } [18:01:21.530] } [18:01:21.530] } [18:01:21.530] invisible(muffled) [18:01:21.530] } [18:01:21.530] muffleCondition(cond) [18:01:21.530] }) [18:01:21.530] })) [18:01:21.530] future::FutureResult(value = ...future.value$value, [18:01:21.530] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.530] ...future.rng), globalenv = if (FALSE) [18:01:21.530] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:21.530] ...future.globalenv.names)) [18:01:21.530] else NULL, started = ...future.startTime, version = "1.8") [18:01:21.530] }, condition = base::local({ [18:01:21.530] c <- base::c [18:01:21.530] inherits <- base::inherits [18:01:21.530] invokeRestart <- base::invokeRestart [18:01:21.530] length <- base::length [18:01:21.530] list <- base::list [18:01:21.530] seq.int <- base::seq.int [18:01:21.530] signalCondition <- base::signalCondition [18:01:21.530] sys.calls <- base::sys.calls [18:01:21.530] `[[` <- base::`[[` [18:01:21.530] `+` <- base::`+` [18:01:21.530] `<<-` <- base::`<<-` [18:01:21.530] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:21.530] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:21.530] 3L)] [18:01:21.530] } [18:01:21.530] function(cond) { [18:01:21.530] is_error <- inherits(cond, "error") [18:01:21.530] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:21.530] NULL) [18:01:21.530] if (is_error) { [18:01:21.530] sessionInformation <- function() { [18:01:21.530] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:21.530] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:21.530] search = base::search(), system = base::Sys.info()) [18:01:21.530] } [18:01:21.530] ...future.conditions[[length(...future.conditions) + [18:01:21.530] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:21.530] cond$call), session = sessionInformation(), [18:01:21.530] timestamp = base::Sys.time(), signaled = 0L) [18:01:21.530] signalCondition(cond) [18:01:21.530] } [18:01:21.530] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:21.530] "immediateCondition"))) { [18:01:21.530] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:21.530] ...future.conditions[[length(...future.conditions) + [18:01:21.530] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:21.530] if (TRUE && !signal) { [18:01:21.530] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.530] { [18:01:21.530] inherits <- base::inherits [18:01:21.530] invokeRestart <- base::invokeRestart [18:01:21.530] is.null <- base::is.null [18:01:21.530] muffled <- FALSE [18:01:21.530] if (inherits(cond, "message")) { [18:01:21.530] muffled <- grepl(pattern, "muffleMessage") [18:01:21.530] if (muffled) [18:01:21.530] invokeRestart("muffleMessage") [18:01:21.530] } [18:01:21.530] else if (inherits(cond, "warning")) { [18:01:21.530] muffled <- grepl(pattern, "muffleWarning") [18:01:21.530] if (muffled) [18:01:21.530] invokeRestart("muffleWarning") [18:01:21.530] } [18:01:21.530] else if (inherits(cond, "condition")) { [18:01:21.530] if (!is.null(pattern)) { [18:01:21.530] computeRestarts <- base::computeRestarts [18:01:21.530] grepl <- base::grepl [18:01:21.530] restarts <- computeRestarts(cond) [18:01:21.530] for (restart in restarts) { [18:01:21.530] name <- restart$name [18:01:21.530] if (is.null(name)) [18:01:21.530] next [18:01:21.530] if (!grepl(pattern, name)) [18:01:21.530] next [18:01:21.530] invokeRestart(restart) [18:01:21.530] muffled <- TRUE [18:01:21.530] break [18:01:21.530] } [18:01:21.530] } [18:01:21.530] } [18:01:21.530] invisible(muffled) [18:01:21.530] } [18:01:21.530] muffleCondition(cond, pattern = "^muffle") [18:01:21.530] } [18:01:21.530] } [18:01:21.530] else { [18:01:21.530] if (TRUE) { [18:01:21.530] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.530] { [18:01:21.530] inherits <- base::inherits [18:01:21.530] invokeRestart <- base::invokeRestart [18:01:21.530] is.null <- base::is.null [18:01:21.530] muffled <- FALSE [18:01:21.530] if (inherits(cond, "message")) { [18:01:21.530] muffled <- grepl(pattern, "muffleMessage") [18:01:21.530] if (muffled) [18:01:21.530] invokeRestart("muffleMessage") [18:01:21.530] } [18:01:21.530] else if (inherits(cond, "warning")) { [18:01:21.530] muffled <- grepl(pattern, "muffleWarning") [18:01:21.530] if (muffled) [18:01:21.530] invokeRestart("muffleWarning") [18:01:21.530] } [18:01:21.530] else if (inherits(cond, "condition")) { [18:01:21.530] if (!is.null(pattern)) { [18:01:21.530] computeRestarts <- base::computeRestarts [18:01:21.530] grepl <- base::grepl [18:01:21.530] restarts <- computeRestarts(cond) [18:01:21.530] for (restart in restarts) { [18:01:21.530] name <- restart$name [18:01:21.530] if (is.null(name)) [18:01:21.530] next [18:01:21.530] if (!grepl(pattern, name)) [18:01:21.530] next [18:01:21.530] invokeRestart(restart) [18:01:21.530] muffled <- TRUE [18:01:21.530] break [18:01:21.530] } [18:01:21.530] } [18:01:21.530] } [18:01:21.530] invisible(muffled) [18:01:21.530] } [18:01:21.530] muffleCondition(cond, pattern = "^muffle") [18:01:21.530] } [18:01:21.530] } [18:01:21.530] } [18:01:21.530] })) [18:01:21.530] }, error = function(ex) { [18:01:21.530] base::structure(base::list(value = NULL, visible = NULL, [18:01:21.530] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.530] ...future.rng), started = ...future.startTime, [18:01:21.530] finished = Sys.time(), session_uuid = NA_character_, [18:01:21.530] version = "1.8"), class = "FutureResult") [18:01:21.530] }, finally = { [18:01:21.530] if (!identical(...future.workdir, getwd())) [18:01:21.530] setwd(...future.workdir) [18:01:21.530] { [18:01:21.530] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:21.530] ...future.oldOptions$nwarnings <- NULL [18:01:21.530] } [18:01:21.530] base::options(...future.oldOptions) [18:01:21.530] if (.Platform$OS.type == "windows") { [18:01:21.530] old_names <- names(...future.oldEnvVars) [18:01:21.530] envs <- base::Sys.getenv() [18:01:21.530] names <- names(envs) [18:01:21.530] common <- intersect(names, old_names) [18:01:21.530] added <- setdiff(names, old_names) [18:01:21.530] removed <- setdiff(old_names, names) [18:01:21.530] changed <- common[...future.oldEnvVars[common] != [18:01:21.530] envs[common]] [18:01:21.530] NAMES <- toupper(changed) [18:01:21.530] args <- list() [18:01:21.530] for (kk in seq_along(NAMES)) { [18:01:21.530] name <- changed[[kk]] [18:01:21.530] NAME <- NAMES[[kk]] [18:01:21.530] if (name != NAME && is.element(NAME, old_names)) [18:01:21.530] next [18:01:21.530] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.530] } [18:01:21.530] NAMES <- toupper(added) [18:01:21.530] for (kk in seq_along(NAMES)) { [18:01:21.530] name <- added[[kk]] [18:01:21.530] NAME <- NAMES[[kk]] [18:01:21.530] if (name != NAME && is.element(NAME, old_names)) [18:01:21.530] next [18:01:21.530] args[[name]] <- "" [18:01:21.530] } [18:01:21.530] NAMES <- toupper(removed) [18:01:21.530] for (kk in seq_along(NAMES)) { [18:01:21.530] name <- removed[[kk]] [18:01:21.530] NAME <- NAMES[[kk]] [18:01:21.530] if (name != NAME && is.element(NAME, old_names)) [18:01:21.530] next [18:01:21.530] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.530] } [18:01:21.530] if (length(args) > 0) [18:01:21.530] base::do.call(base::Sys.setenv, args = args) [18:01:21.530] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:21.530] } [18:01:21.530] else { [18:01:21.530] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:21.530] } [18:01:21.530] { [18:01:21.530] if (base::length(...future.futureOptionsAdded) > [18:01:21.530] 0L) { [18:01:21.530] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:21.530] base::names(opts) <- ...future.futureOptionsAdded [18:01:21.530] base::options(opts) [18:01:21.530] } [18:01:21.530] { [18:01:21.530] { [18:01:21.530] base::options(mc.cores = ...future.mc.cores.old) [18:01:21.530] NULL [18:01:21.530] } [18:01:21.530] options(future.plan = NULL) [18:01:21.530] if (is.na(NA_character_)) [18:01:21.530] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.530] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:21.530] future::plan(list(function (..., workers = availableCores(), [18:01:21.530] lazy = FALSE, rscript_libs = .libPaths(), [18:01:21.530] envir = parent.frame()) [18:01:21.530] { [18:01:21.530] if (is.function(workers)) [18:01:21.530] workers <- workers() [18:01:21.530] workers <- structure(as.integer(workers), [18:01:21.530] class = class(workers)) [18:01:21.530] stop_if_not(length(workers) == 1, is.finite(workers), [18:01:21.530] workers >= 1) [18:01:21.530] if (workers == 1L && !inherits(workers, "AsIs")) { [18:01:21.530] return(sequential(..., lazy = TRUE, envir = envir)) [18:01:21.530] } [18:01:21.530] future <- MultisessionFuture(..., workers = workers, [18:01:21.530] lazy = lazy, rscript_libs = rscript_libs, [18:01:21.530] envir = envir) [18:01:21.530] if (!future$lazy) [18:01:21.530] future <- run(future) [18:01:21.530] invisible(future) [18:01:21.530] }), .cleanup = FALSE, .init = FALSE) [18:01:21.530] } [18:01:21.530] } [18:01:21.530] } [18:01:21.530] }) [18:01:21.530] if (TRUE) { [18:01:21.530] base::sink(type = "output", split = FALSE) [18:01:21.530] if (TRUE) { [18:01:21.530] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:21.530] } [18:01:21.530] else { [18:01:21.530] ...future.result["stdout"] <- base::list(NULL) [18:01:21.530] } [18:01:21.530] base::close(...future.stdout) [18:01:21.530] ...future.stdout <- NULL [18:01:21.530] } [18:01:21.530] ...future.result$conditions <- ...future.conditions [18:01:21.530] ...future.result$finished <- base::Sys.time() [18:01:21.530] ...future.result [18:01:21.530] } [18:01:21.536] Exporting 1 global objects (112 bytes) to cluster node #1 ... [18:01:21.536] Exporting 'future.call.arguments' (112 bytes) to cluster node #1 ... [18:01:21.536] Exporting 'future.call.arguments' (112 bytes) to cluster node #1 ... DONE [18:01:21.537] Exporting 1 global objects (112 bytes) to cluster node #1 ... DONE [18:01:21.537] MultisessionFuture started [18:01:21.537] - Launch lazy future ... done [18:01:21.538] run() for 'MultisessionFuture' ... done [18:01:21.538] result() for ClusterFuture ... [18:01:21.538] receiveMessageFromWorker() for ClusterFuture ... [18:01:21.538] - Validating connection of MultisessionFuture [18:01:21.555] - received message: FutureResult [18:01:21.555] - Received FutureResult [18:01:21.555] - Erased future from FutureRegistry [18:01:21.555] result() for ClusterFuture ... [18:01:21.555] - result already collected: FutureResult [18:01:21.555] result() for ClusterFuture ... done [18:01:21.556] receiveMessageFromWorker() for ClusterFuture ... done [18:01:21.556] result() for ClusterFuture ... done [18:01:21.556] result() for ClusterFuture ... [18:01:21.556] - result already collected: FutureResult [18:01:21.556] result() for ClusterFuture ... done [1] 6 ** Sum function 'F' with plan('multisession') ... function (x, y) { message("Using '...' in a formula") fcn <- function(x, y) { z = ~list(...) sum(x, y) } f <- future(fcn(x, y)) y <- value(f) y } Using '...' in a formula [18:01:21.557] getGlobalsAndPackages() ... [18:01:21.557] Searching for globals... [18:01:21.560] - globals found: [9] 'fcn', 'x', 'y', '{', '=', '~', 'list', 'sum', '...' [18:01:21.561] Searching for globals ... DONE [18:01:21.561] Resolving globals: FALSE [18:01:21.561] Tweak future expression to call with '...' arguments ... [18:01:21.562] The total size of the 3 globals is 4.18 KiB (4280 bytes) [18:01:21.562] The total size of the 3 globals exported for future expression ('fcn(x, y)') is 4.18 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are three globals: 'fcn' (4.07 KiB of class 'function'), 'x' (56 bytes of class 'numeric') and 'y' (56 bytes of class 'numeric') [18:01:21.562] - globals: [3] 'fcn', 'x', 'y' [18:01:21.562] [18:01:21.563] getGlobalsAndPackages() ... DONE [18:01:21.563] run() for 'Future' ... [18:01:21.563] - state: 'created' [18:01:21.563] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:01:21.577] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:01:21.577] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:01:21.577] - Field: 'node' [18:01:21.578] - Field: 'label' [18:01:21.578] - Field: 'local' [18:01:21.578] - Field: 'owner' [18:01:21.578] - Field: 'envir' [18:01:21.578] - Field: 'workers' [18:01:21.578] - Field: 'packages' [18:01:21.579] - Field: 'gc' [18:01:21.579] - Field: 'conditions' [18:01:21.579] - Field: 'persistent' [18:01:21.579] - Field: 'expr' [18:01:21.579] - Field: 'uuid' [18:01:21.580] - Field: 'seed' [18:01:21.580] - Field: 'version' [18:01:21.580] - Field: 'result' [18:01:21.580] - Field: 'asynchronous' [18:01:21.580] - Field: 'calls' [18:01:21.580] - Field: 'globals' [18:01:21.581] - Field: 'stdout' [18:01:21.581] - Field: 'earlySignal' [18:01:21.581] - Field: 'lazy' [18:01:21.581] - Field: 'state' [18:01:21.581] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:01:21.582] - Launch lazy future ... [18:01:21.582] Packages needed by the future expression (n = 0): [18:01:21.582] Packages needed by future strategies (n = 0): [18:01:21.583] { [18:01:21.583] { [18:01:21.583] { [18:01:21.583] ...future.startTime <- base::Sys.time() [18:01:21.583] { [18:01:21.583] { [18:01:21.583] { [18:01:21.583] { [18:01:21.583] base::local({ [18:01:21.583] has_future <- base::requireNamespace("future", [18:01:21.583] quietly = TRUE) [18:01:21.583] if (has_future) { [18:01:21.583] ns <- base::getNamespace("future") [18:01:21.583] version <- ns[[".package"]][["version"]] [18:01:21.583] if (is.null(version)) [18:01:21.583] version <- utils::packageVersion("future") [18:01:21.583] } [18:01:21.583] else { [18:01:21.583] version <- NULL [18:01:21.583] } [18:01:21.583] if (!has_future || version < "1.8.0") { [18:01:21.583] info <- base::c(r_version = base::gsub("R version ", [18:01:21.583] "", base::R.version$version.string), [18:01:21.583] platform = base::sprintf("%s (%s-bit)", [18:01:21.583] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:01:21.583] os = base::paste(base::Sys.info()[base::c("sysname", [18:01:21.583] "release", "version")], collapse = " "), [18:01:21.583] hostname = base::Sys.info()[["nodename"]]) [18:01:21.583] info <- base::sprintf("%s: %s", base::names(info), [18:01:21.583] info) [18:01:21.583] info <- base::paste(info, collapse = "; ") [18:01:21.583] if (!has_future) { [18:01:21.583] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:01:21.583] info) [18:01:21.583] } [18:01:21.583] else { [18:01:21.583] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:01:21.583] info, version) [18:01:21.583] } [18:01:21.583] base::stop(msg) [18:01:21.583] } [18:01:21.583] }) [18:01:21.583] } [18:01:21.583] ...future.mc.cores.old <- base::getOption("mc.cores") [18:01:21.583] base::options(mc.cores = 1L) [18:01:21.583] } [18:01:21.583] options(future.plan = NULL) [18:01:21.583] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.583] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:01:21.583] } [18:01:21.583] ...future.workdir <- getwd() [18:01:21.583] } [18:01:21.583] ...future.oldOptions <- base::as.list(base::.Options) [18:01:21.583] ...future.oldEnvVars <- base::Sys.getenv() [18:01:21.583] } [18:01:21.583] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:01:21.583] future.globals.maxSize = NULL, future.globals.method = NULL, [18:01:21.583] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:01:21.583] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:01:21.583] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:01:21.583] future.stdout.windows.reencode = NULL, width = 80L) [18:01:21.583] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:01:21.583] base::names(...future.oldOptions)) [18:01:21.583] } [18:01:21.583] if (FALSE) { [18:01:21.583] } [18:01:21.583] else { [18:01:21.583] if (TRUE) { [18:01:21.583] ...future.stdout <- base::rawConnection(base::raw(0L), [18:01:21.583] open = "w") [18:01:21.583] } [18:01:21.583] else { [18:01:21.583] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:01:21.583] windows = "NUL", "/dev/null"), open = "w") [18:01:21.583] } [18:01:21.583] base::sink(...future.stdout, type = "output", split = FALSE) [18:01:21.583] base::on.exit(if (!base::is.null(...future.stdout)) { [18:01:21.583] base::sink(type = "output", split = FALSE) [18:01:21.583] base::close(...future.stdout) [18:01:21.583] }, add = TRUE) [18:01:21.583] } [18:01:21.583] ...future.frame <- base::sys.nframe() [18:01:21.583] ...future.conditions <- base::list() [18:01:21.583] ...future.rng <- base::globalenv()$.Random.seed [18:01:21.583] if (FALSE) { [18:01:21.583] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:01:21.583] "...future.value", "...future.globalenv.names", ".Random.seed") [18:01:21.583] } [18:01:21.583] ...future.result <- base::tryCatch({ [18:01:21.583] base::withCallingHandlers({ [18:01:21.583] ...future.value <- base::withVisible(base::local({ [18:01:21.583] ...future.makeSendCondition <- local({ [18:01:21.583] sendCondition <- NULL [18:01:21.583] function(frame = 1L) { [18:01:21.583] if (is.function(sendCondition)) [18:01:21.583] return(sendCondition) [18:01:21.583] ns <- getNamespace("parallel") [18:01:21.583] if (exists("sendData", mode = "function", [18:01:21.583] envir = ns)) { [18:01:21.583] parallel_sendData <- get("sendData", mode = "function", [18:01:21.583] envir = ns) [18:01:21.583] envir <- sys.frame(frame) [18:01:21.583] master <- NULL [18:01:21.583] while (!identical(envir, .GlobalEnv) && [18:01:21.583] !identical(envir, emptyenv())) { [18:01:21.583] if (exists("master", mode = "list", envir = envir, [18:01:21.583] inherits = FALSE)) { [18:01:21.583] master <- get("master", mode = "list", [18:01:21.583] envir = envir, inherits = FALSE) [18:01:21.583] if (inherits(master, c("SOCKnode", [18:01:21.583] "SOCK0node"))) { [18:01:21.583] sendCondition <<- function(cond) { [18:01:21.583] data <- list(type = "VALUE", value = cond, [18:01:21.583] success = TRUE) [18:01:21.583] parallel_sendData(master, data) [18:01:21.583] } [18:01:21.583] return(sendCondition) [18:01:21.583] } [18:01:21.583] } [18:01:21.583] frame <- frame + 1L [18:01:21.583] envir <- sys.frame(frame) [18:01:21.583] } [18:01:21.583] } [18:01:21.583] sendCondition <<- function(cond) NULL [18:01:21.583] } [18:01:21.583] }) [18:01:21.583] withCallingHandlers({ [18:01:21.583] fcn(x, y) [18:01:21.583] }, immediateCondition = function(cond) { [18:01:21.583] sendCondition <- ...future.makeSendCondition() [18:01:21.583] sendCondition(cond) [18:01:21.583] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.583] { [18:01:21.583] inherits <- base::inherits [18:01:21.583] invokeRestart <- base::invokeRestart [18:01:21.583] is.null <- base::is.null [18:01:21.583] muffled <- FALSE [18:01:21.583] if (inherits(cond, "message")) { [18:01:21.583] muffled <- grepl(pattern, "muffleMessage") [18:01:21.583] if (muffled) [18:01:21.583] invokeRestart("muffleMessage") [18:01:21.583] } [18:01:21.583] else if (inherits(cond, "warning")) { [18:01:21.583] muffled <- grepl(pattern, "muffleWarning") [18:01:21.583] if (muffled) [18:01:21.583] invokeRestart("muffleWarning") [18:01:21.583] } [18:01:21.583] else if (inherits(cond, "condition")) { [18:01:21.583] if (!is.null(pattern)) { [18:01:21.583] computeRestarts <- base::computeRestarts [18:01:21.583] grepl <- base::grepl [18:01:21.583] restarts <- computeRestarts(cond) [18:01:21.583] for (restart in restarts) { [18:01:21.583] name <- restart$name [18:01:21.583] if (is.null(name)) [18:01:21.583] next [18:01:21.583] if (!grepl(pattern, name)) [18:01:21.583] next [18:01:21.583] invokeRestart(restart) [18:01:21.583] muffled <- TRUE [18:01:21.583] break [18:01:21.583] } [18:01:21.583] } [18:01:21.583] } [18:01:21.583] invisible(muffled) [18:01:21.583] } [18:01:21.583] muffleCondition(cond) [18:01:21.583] }) [18:01:21.583] })) [18:01:21.583] future::FutureResult(value = ...future.value$value, [18:01:21.583] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.583] ...future.rng), globalenv = if (FALSE) [18:01:21.583] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:01:21.583] ...future.globalenv.names)) [18:01:21.583] else NULL, started = ...future.startTime, version = "1.8") [18:01:21.583] }, condition = base::local({ [18:01:21.583] c <- base::c [18:01:21.583] inherits <- base::inherits [18:01:21.583] invokeRestart <- base::invokeRestart [18:01:21.583] length <- base::length [18:01:21.583] list <- base::list [18:01:21.583] seq.int <- base::seq.int [18:01:21.583] signalCondition <- base::signalCondition [18:01:21.583] sys.calls <- base::sys.calls [18:01:21.583] `[[` <- base::`[[` [18:01:21.583] `+` <- base::`+` [18:01:21.583] `<<-` <- base::`<<-` [18:01:21.583] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:01:21.583] calls[seq.int(from = from + 12L, to = length(calls) - [18:01:21.583] 3L)] [18:01:21.583] } [18:01:21.583] function(cond) { [18:01:21.583] is_error <- inherits(cond, "error") [18:01:21.583] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:01:21.583] NULL) [18:01:21.583] if (is_error) { [18:01:21.583] sessionInformation <- function() { [18:01:21.583] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:01:21.583] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:01:21.583] search = base::search(), system = base::Sys.info()) [18:01:21.583] } [18:01:21.583] ...future.conditions[[length(...future.conditions) + [18:01:21.583] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:01:21.583] cond$call), session = sessionInformation(), [18:01:21.583] timestamp = base::Sys.time(), signaled = 0L) [18:01:21.583] signalCondition(cond) [18:01:21.583] } [18:01:21.583] else if (!ignore && TRUE && inherits(cond, c("condition", [18:01:21.583] "immediateCondition"))) { [18:01:21.583] signal <- TRUE && inherits(cond, "immediateCondition") [18:01:21.583] ...future.conditions[[length(...future.conditions) + [18:01:21.583] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:01:21.583] if (TRUE && !signal) { [18:01:21.583] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.583] { [18:01:21.583] inherits <- base::inherits [18:01:21.583] invokeRestart <- base::invokeRestart [18:01:21.583] is.null <- base::is.null [18:01:21.583] muffled <- FALSE [18:01:21.583] if (inherits(cond, "message")) { [18:01:21.583] muffled <- grepl(pattern, "muffleMessage") [18:01:21.583] if (muffled) [18:01:21.583] invokeRestart("muffleMessage") [18:01:21.583] } [18:01:21.583] else if (inherits(cond, "warning")) { [18:01:21.583] muffled <- grepl(pattern, "muffleWarning") [18:01:21.583] if (muffled) [18:01:21.583] invokeRestart("muffleWarning") [18:01:21.583] } [18:01:21.583] else if (inherits(cond, "condition")) { [18:01:21.583] if (!is.null(pattern)) { [18:01:21.583] computeRestarts <- base::computeRestarts [18:01:21.583] grepl <- base::grepl [18:01:21.583] restarts <- computeRestarts(cond) [18:01:21.583] for (restart in restarts) { [18:01:21.583] name <- restart$name [18:01:21.583] if (is.null(name)) [18:01:21.583] next [18:01:21.583] if (!grepl(pattern, name)) [18:01:21.583] next [18:01:21.583] invokeRestart(restart) [18:01:21.583] muffled <- TRUE [18:01:21.583] break [18:01:21.583] } [18:01:21.583] } [18:01:21.583] } [18:01:21.583] invisible(muffled) [18:01:21.583] } [18:01:21.583] muffleCondition(cond, pattern = "^muffle") [18:01:21.583] } [18:01:21.583] } [18:01:21.583] else { [18:01:21.583] if (TRUE) { [18:01:21.583] muffleCondition <- function (cond, pattern = "^muffle") [18:01:21.583] { [18:01:21.583] inherits <- base::inherits [18:01:21.583] invokeRestart <- base::invokeRestart [18:01:21.583] is.null <- base::is.null [18:01:21.583] muffled <- FALSE [18:01:21.583] if (inherits(cond, "message")) { [18:01:21.583] muffled <- grepl(pattern, "muffleMessage") [18:01:21.583] if (muffled) [18:01:21.583] invokeRestart("muffleMessage") [18:01:21.583] } [18:01:21.583] else if (inherits(cond, "warning")) { [18:01:21.583] muffled <- grepl(pattern, "muffleWarning") [18:01:21.583] if (muffled) [18:01:21.583] invokeRestart("muffleWarning") [18:01:21.583] } [18:01:21.583] else if (inherits(cond, "condition")) { [18:01:21.583] if (!is.null(pattern)) { [18:01:21.583] computeRestarts <- base::computeRestarts [18:01:21.583] grepl <- base::grepl [18:01:21.583] restarts <- computeRestarts(cond) [18:01:21.583] for (restart in restarts) { [18:01:21.583] name <- restart$name [18:01:21.583] if (is.null(name)) [18:01:21.583] next [18:01:21.583] if (!grepl(pattern, name)) [18:01:21.583] next [18:01:21.583] invokeRestart(restart) [18:01:21.583] muffled <- TRUE [18:01:21.583] break [18:01:21.583] } [18:01:21.583] } [18:01:21.583] } [18:01:21.583] invisible(muffled) [18:01:21.583] } [18:01:21.583] muffleCondition(cond, pattern = "^muffle") [18:01:21.583] } [18:01:21.583] } [18:01:21.583] } [18:01:21.583] })) [18:01:21.583] }, error = function(ex) { [18:01:21.583] base::structure(base::list(value = NULL, visible = NULL, [18:01:21.583] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:01:21.583] ...future.rng), started = ...future.startTime, [18:01:21.583] finished = Sys.time(), session_uuid = NA_character_, [18:01:21.583] version = "1.8"), class = "FutureResult") [18:01:21.583] }, finally = { [18:01:21.583] if (!identical(...future.workdir, getwd())) [18:01:21.583] setwd(...future.workdir) [18:01:21.583] { [18:01:21.583] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:01:21.583] ...future.oldOptions$nwarnings <- NULL [18:01:21.583] } [18:01:21.583] base::options(...future.oldOptions) [18:01:21.583] if (.Platform$OS.type == "windows") { [18:01:21.583] old_names <- names(...future.oldEnvVars) [18:01:21.583] envs <- base::Sys.getenv() [18:01:21.583] names <- names(envs) [18:01:21.583] common <- intersect(names, old_names) [18:01:21.583] added <- setdiff(names, old_names) [18:01:21.583] removed <- setdiff(old_names, names) [18:01:21.583] changed <- common[...future.oldEnvVars[common] != [18:01:21.583] envs[common]] [18:01:21.583] NAMES <- toupper(changed) [18:01:21.583] args <- list() [18:01:21.583] for (kk in seq_along(NAMES)) { [18:01:21.583] name <- changed[[kk]] [18:01:21.583] NAME <- NAMES[[kk]] [18:01:21.583] if (name != NAME && is.element(NAME, old_names)) [18:01:21.583] next [18:01:21.583] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.583] } [18:01:21.583] NAMES <- toupper(added) [18:01:21.583] for (kk in seq_along(NAMES)) { [18:01:21.583] name <- added[[kk]] [18:01:21.583] NAME <- NAMES[[kk]] [18:01:21.583] if (name != NAME && is.element(NAME, old_names)) [18:01:21.583] next [18:01:21.583] args[[name]] <- "" [18:01:21.583] } [18:01:21.583] NAMES <- toupper(removed) [18:01:21.583] for (kk in seq_along(NAMES)) { [18:01:21.583] name <- removed[[kk]] [18:01:21.583] NAME <- NAMES[[kk]] [18:01:21.583] if (name != NAME && is.element(NAME, old_names)) [18:01:21.583] next [18:01:21.583] args[[name]] <- ...future.oldEnvVars[[name]] [18:01:21.583] } [18:01:21.583] if (length(args) > 0) [18:01:21.583] base::do.call(base::Sys.setenv, args = args) [18:01:21.583] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:01:21.583] } [18:01:21.583] else { [18:01:21.583] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:01:21.583] } [18:01:21.583] { [18:01:21.583] if (base::length(...future.futureOptionsAdded) > [18:01:21.583] 0L) { [18:01:21.583] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:01:21.583] base::names(opts) <- ...future.futureOptionsAdded [18:01:21.583] base::options(opts) [18:01:21.583] } [18:01:21.583] { [18:01:21.583] { [18:01:21.583] base::options(mc.cores = ...future.mc.cores.old) [18:01:21.583] NULL [18:01:21.583] } [18:01:21.583] options(future.plan = NULL) [18:01:21.583] if (is.na(NA_character_)) [18:01:21.583] Sys.unsetenv("R_FUTURE_PLAN") [18:01:21.583] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:01:21.583] future::plan(list(function (..., workers = availableCores(), [18:01:21.583] lazy = FALSE, rscript_libs = .libPaths(), [18:01:21.583] envir = parent.frame()) [18:01:21.583] { [18:01:21.583] if (is.function(workers)) [18:01:21.583] workers <- workers() [18:01:21.583] workers <- structure(as.integer(workers), [18:01:21.583] class = class(workers)) [18:01:21.583] stop_if_not(length(workers) == 1, is.finite(workers), [18:01:21.583] workers >= 1) [18:01:21.583] if (workers == 1L && !inherits(workers, "AsIs")) { [18:01:21.583] return(sequential(..., lazy = TRUE, envir = envir)) [18:01:21.583] } [18:01:21.583] future <- MultisessionFuture(..., workers = workers, [18:01:21.583] lazy = lazy, rscript_libs = rscript_libs, [18:01:21.583] envir = envir) [18:01:21.583] if (!future$lazy) [18:01:21.583] future <- run(future) [18:01:21.583] invisible(future) [18:01:21.583] }), .cleanup = FALSE, .init = FALSE) [18:01:21.583] } [18:01:21.583] } [18:01:21.583] } [18:01:21.583] }) [18:01:21.583] if (TRUE) { [18:01:21.583] base::sink(type = "output", split = FALSE) [18:01:21.583] if (TRUE) { [18:01:21.583] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:01:21.583] } [18:01:21.583] else { [18:01:21.583] ...future.result["stdout"] <- base::list(NULL) [18:01:21.583] } [18:01:21.583] base::close(...future.stdout) [18:01:21.583] ...future.stdout <- NULL [18:01:21.583] } [18:01:21.583] ...future.result$conditions <- ...future.conditions [18:01:21.583] ...future.result$finished <- base::Sys.time() [18:01:21.583] ...future.result [18:01:21.583] } [18:01:21.588] Exporting 3 global objects (4.18 KiB) to cluster node #1 ... [18:01:21.588] Exporting 'fcn' (4.07 KiB) to cluster node #1 ... [18:01:21.589] Exporting 'fcn' (4.07 KiB) to cluster node #1 ... DONE [18:01:21.589] Exporting 'x' (56 bytes) to cluster node #1 ... [18:01:21.589] Exporting 'x' (56 bytes) to cluster node #1 ... DONE [18:01:21.589] Exporting 'y' (56 bytes) to cluster node #1 ... [18:01:21.590] Exporting 'y' (56 bytes) to cluster node #1 ... DONE [18:01:21.590] Exporting 3 global objects (4.18 KiB) to cluster node #1 ... DONE [18:01:21.591] MultisessionFuture started [18:01:21.591] - Launch lazy future ... done [18:01:21.591] run() for 'MultisessionFuture' ... done [18:01:21.591] result() for ClusterFuture ... [18:01:21.591] receiveMessageFromWorker() for ClusterFuture ... [18:01:21.591] - Validating connection of MultisessionFuture [18:01:21.608] - received message: FutureResult [18:01:21.608] - Received FutureResult [18:01:21.608] - Erased future from FutureRegistry [18:01:21.608] result() for ClusterFuture ... [18:01:21.608] - result already collected: FutureResult [18:01:21.608] result() for ClusterFuture ... done [18:01:21.609] receiveMessageFromWorker() for ClusterFuture ... done [18:01:21.609] result() for ClusterFuture ... done [18:01:21.609] result() for ClusterFuture ... [18:01:21.609] - result already collected: FutureResult [18:01:21.609] result() for ClusterFuture ... done [1] 6 Testing with 2 cores ... DONE > > message("*** Global argument '...' ... DONE") *** Global argument '...' ... DONE > > source("incl/end.R") [18:01:21.610] plan(): Setting new future strategy stack: [18:01:21.611] List of future strategies: [18:01:21.611] 1. FutureStrategy: [18:01:21.611] - args: function (..., envir = parent.frame()) [18:01:21.611] - tweaked: FALSE [18:01:21.611] - call: future::plan(oplan) [18:01:21.612] plan(): nbrOfWorkers() = 1 Failed to undo environment variables: - Expected environment variables: [n=201] '!ExitCode', 'ALLUSERSPROFILE', 'APPDATA', 'BIBINPUTS', 'BINDIR', 'BSTINPUTS', 'COMMONPROGRAMFILES', 'COMPUTERNAME', 'COMSPEC', 'CURL_CA_BUNDLE', 'CYGWIN', 'CommonProgramFiles(x86)', 'CommonProgramW6432', 'DriverData', 'HOME', 'HOMEDRIVE', 'HOMEPATH', 'JAGS_ROOT', 'JAVA_HOME', 'LANGUAGE', 'LC_COLLATE', 'LC_MONETARY', 'LC_TIME', 'LOCALAPPDATA', 'LOGONSERVER', 'LS_HOME', 'LS_LICENSE_PATH', 'MAKE', 'MAKEFLAGS', 'MAKELEVEL', 'MFLAGS', 'MSMPI_BENCHMARKS', 'MSMPI_BIN', 'MSYS2_ENV_CONV_EXCL', 'NUMBER_OF_PROCESSORS', 'OMP_THREAD_LIMIT', 'OS', 'PATH', 'PATHEXT', 'PROCESSOR_ARCHITECTURE', 'PROCESSOR_IDENTIFIER', 'PROCESSOR_LEVEL', 'PROCESSOR_REVISION', 'PROGRAMFILES', 'PROMPT', 'PSModulePath', 'PUBLIC', 'PWD', 'ProgramData', 'ProgramFiles(x86)', 'ProgramW6432', 'RETICULATE_AUTOCONFIGURE', 'RTOOLS43_HOME', 'R_ARCH', 'R_BROWSER', 'R_BZIPCMD', 'R_CMD', 'R_COMPILED_BY', 'R_CRAN_WEB', 'R_CUSTOM_TOOLS_PATH', 'R_CUSTOM_TOOLS_SOFT', 'R_DOC_DIR', 'R_ENVIRON_USER', 'R_GSCMD', 'R_GZIPCMD', 'R_HOME', 'R_INCLUDE_DIR', 'R_INSTALL_TAR', 'R_LIBS', 'R_LIBS_SITE', 'R_LIBS_USER', 'R_MAX_NUM_DLLS', 'R_OSTYPE', 'R_PAPERSIZE', 'R_PAPERSIZE_USER', 'R_PARALLELLY_MAKENODEPSOCK_AUTOKILL', 'R_PARALLELLY_MAKENODEPSOCK_CONNECTTIMEOUT', 'R_PARALLELLY_MAKENODEPSOCK_RSCRIPT_LABEL', 'R_PARALLELLY_MAKENODEPSOCK_SESSIONINFO_PKGS', 'R_PARALLELLY_MAKENODEPSOCK_TIMEOUT', 'R_PARALLELLY_RANDOM_PORTS', 'R_PARALLEL_PORT', 'R_RD4PDF', 'R_RTOOLS43_PATH', 'R_SCRIPT_LEGACY', 'R_SHARE_DIR', 'R_TESTS', 'R_UNZIPCMD', 'R_USER', 'R_VERSION', 'R_ZIPCMD', 'SED', 'SHLVL', 'SYSTEMDRIVE', 'SYSTEMROOT', 'TAR', 'TAR_OPTIONS', 'TEMP', 'TERM', 'TEXINPUTS', 'TMP', 'TMPDIR', 'USERDOMAIN', 'USERDOMAIN_ROAMINGPROFILE', 'USERNAME', 'USERPROFILE', 'WINDIR', '_', '_R_CHECK_AUTOCONF_', '_R_CHECK_BOGUS_RETURN_', '_R_CHECK_BROWSER_NONINTERACTIVE_', '_R_CHECK_BUILD_VIGNETTES_SEPARATELY_', '_R_CHECK_CODETOOLS_PROFILE_', '_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_', '_R_CHECK_CODE_ATTACH_', '_R_CHECK_CODE_CLASS_IS_STRING_', '_R_CHECK_CODE_DATA_INTO_GLOBALENV_', '_R_CHECK_CODE_USAGE_VIA_NAMESPACES_', '_R_CHECK_CODE_USAGE_WITHOUT_LOADING_', '_R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_', '_R_CHECK_CODOC_VARIABLES_IN_USAGES_', '_R_CHECK_COMPACT_DATA2_', '_R_CHECK_COMPILATION_FLAGS_', '_R_CHECK_CONNECTIONS_LEFT_OPEN_', '_R_CHECK_CRAN_INCOMING_', '_R_CHECK_CRAN_INCOMING_CHECK_FILE_URIS_', '_R_CHECK_CRAN_INCOMING_CHECK_URLS_IN_PARALLEL_', '_R_CHECK_CRAN_INCOMING_NOTE_GNU_MAKE_', '_R_CHECK_CRAN_INCOMING_REMOTE_', '_R_CHECK_CRAN_INCOMING_USE_ASPELL_', '_R_CHECK_DATALIST_', '_R_CHECK_DEPRECATED_DEFUNCT_', '_R_CHECK_DOC_SIZES2_', '_R_CHECK_DOT_FIRSTLIB_', '_R_CHECK_DOT_INTERNAL_', '_R_CHECK_EXAMPLE_TIMING_THRESHOLD_', '_R_CHECK_EXECUTABLES_', '_R_CHECK_EXECUTABLES_EXCLUSIONS_', '_R_CHECK_FF_CALLS_', '_R_CHECK_FF_DUP_', '_R_CHECK_FORCE_SUGGESTS_', '_R_CHECK_FUTURE_FILE_TIMESTAMPS_', '_R_CHECK_FUTURE_FILE_TIMESTAMPS_LEEWAY_', '_R_CHECK_HAVE_MYSQL_', '_R_CHECK_HAVE_ODBC_', '_R_CHECK_HAVE_PERL_', '_R_CHECK_HAVE_POSTGRES_', '_R_CHECK_INSTALL_DEPENDS_', '_R_CHECK_INTERNALS2_', '_R_CHECK_LENGTH_1_CONDITION_', '_R_CHECK_LICENSE_', '_R_CHECK_LIMIT_CORES_', '_R_CHECK_MATRIX_DATA_', '_R_CHECK_NATIVE_ROUTINE_REGISTRATION_', '_R_CHECK_NEWS_IN_PLAIN_TEXT_', '_R_CHECK_NO_RECOMMENDED_', '_R_CHECK_NO_STOP_ON_TEST_ERROR_', '_R_CHECK_ORPHANED_', '_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_', '_R_CHECK_PACKAGES_USED_IGNORE_UNUSED_IMPORTS_', '_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_', '_R_CHECK_PACKAGE_DATASETS_SUPPRESS_NOTES_', '_R_CHECK_PACKAGE_NAME_', '_R_CHECK_PKG_SIZES_', '_R_CHECK_PKG_SIZES_THRESHOLD_', '_R_CHECK_PRAGMAS_', '_R_CHECK_RD_EXAMPLES_T_AND_F_', '_R_CHECK_RD_LINE_WIDTHS_', '_R_CHECK_RD_MATH_RENDERING_', '_R_CHECK_RD_VALIDATE_RD2HTML_', '_R_CHECK_REPLACING_IMPORTS_', '_R_CHECK_R_DEPENDS_', '_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_', '_R_CHECK_SCREEN_DEVICE_', '_R_CHECK_SERIALIZATION_', '_R_CHECK_SHLIB_OPENMP_FLAGS_', '_R_CHECK_SRC_MINUS_W_IMPLICIT_', '_R_CHECK_SUBDIRS_NOCASE_', '_R_CHECK_SUBDIRS_STRICT_', '_R_CHECK_SUGGESTS_ONLY_', '_R_CHECK_SYSTEM_CLOCK_', '_R_CHECK_TESTS_NLINES_', '_R_CHECK_TEST_TIMING_', '_R_CHECK_TIMINGS_', '_R_CHECK_TOPLEVEL_FILES_', '_R_CHECK_UNDOC_USE_ALL_NAMES_', '_R_CHECK_UNSAFE_CALLS_', '_R_CHECK_URLS_SHOW_301_STATUS_', '_R_CHECK_VC_DIRS_', '_R_CHECK_VIGNETTES_NLINES_', '_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_', '_R_CHECK_VIGNETTE_TIMING_', '_R_CHECK_VIGNETTE_TITLES_', '_R_CHECK_WINDOWS_DEVICE_', '_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_', '_R_CLASS_MATRIX_ARRAY_', '_R_INSTALL_TIME_PATCHES_', '_R_S3_METHOD_LOOKUP_BASEENV_AFTER_GLOBALENV_', '_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_', 'maj.version', 'nextArg--timingsnextArg--install' - Environment variables still there: [n=0] - Environment variables missing: [n=1] 'MAKEFLAGS' Differences environment variable by environment variable: List of 3 $ name : chr "MAKEFLAGS" $ expected: 'Dlist' chr "" $ actual : 'Dlist' chr NA > > proc.time() user system elapsed 0.78 0.09 1.62