R Under development (unstable) (2023-12-20 r85713 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") [01:27:24.441] plan(): Setting new future strategy stack: [01:27:24.444] List of future strategies: [01:27:24.444] 1. sequential: [01:27:24.444] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.444] - tweaked: FALSE [01:27:24.444] - call: future::plan("sequential") [01:27:24.470] 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') ... [01:27:24.563] plan(): Setting new future strategy stack: [01:27:24.563] List of future strategies: [01:27:24.563] 1. sequential: [01:27:24.563] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.563] - tweaked: FALSE [01:27:24.563] - call: plan(strategy, substitute = FALSE) [01:27:24.587] plan(): nbrOfWorkers() = 1 ** Sum function 'A' with plan('sequential') ... function (x, ...) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) y %<-% { sum(x, ...) } y } Arguments '...' exists: TRUE [01:27:24.591] getGlobalsAndPackages() ... [01:27:24.592] Searching for globals... [01:27:24.604] - globals found: [4] '{', 'sum', 'x', '...' [01:27:24.604] Searching for globals ... DONE [01:27:24.605] Resolving globals: FALSE [01:27:24.605] Tweak future expression to call with '...' arguments ... [01:27:24.605] { [01:27:24.605] do.call(function(...) { [01:27:24.605] sum(x, ...) [01:27:24.605] }, args = future.call.arguments) [01:27:24.605] } [01:27:24.606] Tweak future expression to call with '...' arguments ... DONE [01:27:24.608] The total size of the 2 globals is 112 bytes (112 bytes) [01:27:24.608] 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') [01:27:24.609] - globals: [2] 'x', 'future.call.arguments' [01:27:24.609] [01:27:24.609] getGlobalsAndPackages() ... DONE [01:27:24.610] run() for 'Future' ... [01:27:24.610] - state: 'created' [01:27:24.611] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:24.611] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:24.612] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:24.612] - Field: 'label' [01:27:24.612] - Field: 'local' [01:27:24.612] - Field: 'owner' [01:27:24.612] - Field: 'envir' [01:27:24.613] - Field: 'packages' [01:27:24.613] - Field: 'gc' [01:27:24.613] - Field: 'conditions' [01:27:24.613] - Field: 'expr' [01:27:24.620] - Field: 'uuid' [01:27:24.620] - Field: 'seed' [01:27:24.620] - Field: 'version' [01:27:24.621] - Field: 'result' [01:27:24.621] - Field: 'asynchronous' [01:27:24.621] - Field: 'calls' [01:27:24.622] - Field: 'globals' [01:27:24.622] - Field: 'stdout' [01:27:24.622] - Field: 'earlySignal' [01:27:24.622] - Field: 'lazy' [01:27:24.623] - Field: 'state' [01:27:24.623] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:24.623] - Launch lazy future ... [01:27:24.625] Packages needed by the future expression (n = 0): [01:27:24.625] Packages needed by future strategies (n = 0): [01:27:24.627] { [01:27:24.627] { [01:27:24.627] { [01:27:24.627] ...future.startTime <- base::Sys.time() [01:27:24.627] { [01:27:24.627] { [01:27:24.627] { [01:27:24.627] base::local({ [01:27:24.627] has_future <- base::requireNamespace("future", [01:27:24.627] quietly = TRUE) [01:27:24.627] if (has_future) { [01:27:24.627] ns <- base::getNamespace("future") [01:27:24.627] version <- ns[[".package"]][["version"]] [01:27:24.627] if (is.null(version)) [01:27:24.627] version <- utils::packageVersion("future") [01:27:24.627] } [01:27:24.627] else { [01:27:24.627] version <- NULL [01:27:24.627] } [01:27:24.627] if (!has_future || version < "1.8.0") { [01:27:24.627] info <- base::c(r_version = base::gsub("R version ", [01:27:24.627] "", base::R.version$version.string), [01:27:24.627] platform = base::sprintf("%s (%s-bit)", [01:27:24.627] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:24.627] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:24.627] "release", "version")], collapse = " "), [01:27:24.627] hostname = base::Sys.info()[["nodename"]]) [01:27:24.627] info <- base::sprintf("%s: %s", base::names(info), [01:27:24.627] info) [01:27:24.627] info <- base::paste(info, collapse = "; ") [01:27:24.627] if (!has_future) { [01:27:24.627] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:24.627] info) [01:27:24.627] } [01:27:24.627] else { [01:27:24.627] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:24.627] info, version) [01:27:24.627] } [01:27:24.627] base::stop(msg) [01:27:24.627] } [01:27:24.627] }) [01:27:24.627] } [01:27:24.627] options(future.plan = NULL) [01:27:24.627] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.627] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:24.627] } [01:27:24.627] ...future.workdir <- getwd() [01:27:24.627] } [01:27:24.627] ...future.oldOptions <- base::as.list(base::.Options) [01:27:24.627] ...future.oldEnvVars <- base::Sys.getenv() [01:27:24.627] } [01:27:24.627] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:24.627] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:24.627] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:24.627] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:24.627] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:24.627] future.stdout.windows.reencode = NULL, width = 80L) [01:27:24.627] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:24.627] base::names(...future.oldOptions)) [01:27:24.627] } [01:27:24.627] if (FALSE) { [01:27:24.627] } [01:27:24.627] else { [01:27:24.627] if (TRUE) { [01:27:24.627] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:24.627] open = "w") [01:27:24.627] } [01:27:24.627] else { [01:27:24.627] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:24.627] windows = "NUL", "/dev/null"), open = "w") [01:27:24.627] } [01:27:24.627] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:24.627] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:24.627] base::sink(type = "output", split = FALSE) [01:27:24.627] base::close(...future.stdout) [01:27:24.627] }, add = TRUE) [01:27:24.627] } [01:27:24.627] ...future.frame <- base::sys.nframe() [01:27:24.627] ...future.conditions <- base::list() [01:27:24.627] ...future.rng <- base::globalenv()$.Random.seed [01:27:24.627] if (FALSE) { [01:27:24.627] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:24.627] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:24.627] } [01:27:24.627] ...future.result <- base::tryCatch({ [01:27:24.627] base::withCallingHandlers({ [01:27:24.627] ...future.value <- base::withVisible(base::local({ [01:27:24.627] do.call(function(...) { [01:27:24.627] sum(x, ...) [01:27:24.627] }, args = future.call.arguments) [01:27:24.627] })) [01:27:24.627] future::FutureResult(value = ...future.value$value, [01:27:24.627] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.627] ...future.rng), globalenv = if (FALSE) [01:27:24.627] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:24.627] ...future.globalenv.names)) [01:27:24.627] else NULL, started = ...future.startTime, version = "1.8") [01:27:24.627] }, condition = base::local({ [01:27:24.627] c <- base::c [01:27:24.627] inherits <- base::inherits [01:27:24.627] invokeRestart <- base::invokeRestart [01:27:24.627] length <- base::length [01:27:24.627] list <- base::list [01:27:24.627] seq.int <- base::seq.int [01:27:24.627] signalCondition <- base::signalCondition [01:27:24.627] sys.calls <- base::sys.calls [01:27:24.627] `[[` <- base::`[[` [01:27:24.627] `+` <- base::`+` [01:27:24.627] `<<-` <- base::`<<-` [01:27:24.627] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:24.627] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:24.627] 3L)] [01:27:24.627] } [01:27:24.627] function(cond) { [01:27:24.627] is_error <- inherits(cond, "error") [01:27:24.627] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:24.627] NULL) [01:27:24.627] if (is_error) { [01:27:24.627] sessionInformation <- function() { [01:27:24.627] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:24.627] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:24.627] search = base::search(), system = base::Sys.info()) [01:27:24.627] } [01:27:24.627] ...future.conditions[[length(...future.conditions) + [01:27:24.627] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:24.627] cond$call), session = sessionInformation(), [01:27:24.627] timestamp = base::Sys.time(), signaled = 0L) [01:27:24.627] signalCondition(cond) [01:27:24.627] } [01:27:24.627] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:24.627] "immediateCondition"))) { [01:27:24.627] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:24.627] ...future.conditions[[length(...future.conditions) + [01:27:24.627] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:24.627] if (TRUE && !signal) { [01:27:24.627] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.627] { [01:27:24.627] inherits <- base::inherits [01:27:24.627] invokeRestart <- base::invokeRestart [01:27:24.627] is.null <- base::is.null [01:27:24.627] muffled <- FALSE [01:27:24.627] if (inherits(cond, "message")) { [01:27:24.627] muffled <- grepl(pattern, "muffleMessage") [01:27:24.627] if (muffled) [01:27:24.627] invokeRestart("muffleMessage") [01:27:24.627] } [01:27:24.627] else if (inherits(cond, "warning")) { [01:27:24.627] muffled <- grepl(pattern, "muffleWarning") [01:27:24.627] if (muffled) [01:27:24.627] invokeRestart("muffleWarning") [01:27:24.627] } [01:27:24.627] else if (inherits(cond, "condition")) { [01:27:24.627] if (!is.null(pattern)) { [01:27:24.627] computeRestarts <- base::computeRestarts [01:27:24.627] grepl <- base::grepl [01:27:24.627] restarts <- computeRestarts(cond) [01:27:24.627] for (restart in restarts) { [01:27:24.627] name <- restart$name [01:27:24.627] if (is.null(name)) [01:27:24.627] next [01:27:24.627] if (!grepl(pattern, name)) [01:27:24.627] next [01:27:24.627] invokeRestart(restart) [01:27:24.627] muffled <- TRUE [01:27:24.627] break [01:27:24.627] } [01:27:24.627] } [01:27:24.627] } [01:27:24.627] invisible(muffled) [01:27:24.627] } [01:27:24.627] muffleCondition(cond, pattern = "^muffle") [01:27:24.627] } [01:27:24.627] } [01:27:24.627] else { [01:27:24.627] if (TRUE) { [01:27:24.627] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.627] { [01:27:24.627] inherits <- base::inherits [01:27:24.627] invokeRestart <- base::invokeRestart [01:27:24.627] is.null <- base::is.null [01:27:24.627] muffled <- FALSE [01:27:24.627] if (inherits(cond, "message")) { [01:27:24.627] muffled <- grepl(pattern, "muffleMessage") [01:27:24.627] if (muffled) [01:27:24.627] invokeRestart("muffleMessage") [01:27:24.627] } [01:27:24.627] else if (inherits(cond, "warning")) { [01:27:24.627] muffled <- grepl(pattern, "muffleWarning") [01:27:24.627] if (muffled) [01:27:24.627] invokeRestart("muffleWarning") [01:27:24.627] } [01:27:24.627] else if (inherits(cond, "condition")) { [01:27:24.627] if (!is.null(pattern)) { [01:27:24.627] computeRestarts <- base::computeRestarts [01:27:24.627] grepl <- base::grepl [01:27:24.627] restarts <- computeRestarts(cond) [01:27:24.627] for (restart in restarts) { [01:27:24.627] name <- restart$name [01:27:24.627] if (is.null(name)) [01:27:24.627] next [01:27:24.627] if (!grepl(pattern, name)) [01:27:24.627] next [01:27:24.627] invokeRestart(restart) [01:27:24.627] muffled <- TRUE [01:27:24.627] break [01:27:24.627] } [01:27:24.627] } [01:27:24.627] } [01:27:24.627] invisible(muffled) [01:27:24.627] } [01:27:24.627] muffleCondition(cond, pattern = "^muffle") [01:27:24.627] } [01:27:24.627] } [01:27:24.627] } [01:27:24.627] })) [01:27:24.627] }, error = function(ex) { [01:27:24.627] base::structure(base::list(value = NULL, visible = NULL, [01:27:24.627] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.627] ...future.rng), started = ...future.startTime, [01:27:24.627] finished = Sys.time(), session_uuid = NA_character_, [01:27:24.627] version = "1.8"), class = "FutureResult") [01:27:24.627] }, finally = { [01:27:24.627] if (!identical(...future.workdir, getwd())) [01:27:24.627] setwd(...future.workdir) [01:27:24.627] { [01:27:24.627] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:24.627] ...future.oldOptions$nwarnings <- NULL [01:27:24.627] } [01:27:24.627] base::options(...future.oldOptions) [01:27:24.627] if (.Platform$OS.type == "windows") { [01:27:24.627] old_names <- names(...future.oldEnvVars) [01:27:24.627] envs <- base::Sys.getenv() [01:27:24.627] names <- names(envs) [01:27:24.627] common <- intersect(names, old_names) [01:27:24.627] added <- setdiff(names, old_names) [01:27:24.627] removed <- setdiff(old_names, names) [01:27:24.627] changed <- common[...future.oldEnvVars[common] != [01:27:24.627] envs[common]] [01:27:24.627] NAMES <- toupper(changed) [01:27:24.627] args <- list() [01:27:24.627] for (kk in seq_along(NAMES)) { [01:27:24.627] name <- changed[[kk]] [01:27:24.627] NAME <- NAMES[[kk]] [01:27:24.627] if (name != NAME && is.element(NAME, old_names)) [01:27:24.627] next [01:27:24.627] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.627] } [01:27:24.627] NAMES <- toupper(added) [01:27:24.627] for (kk in seq_along(NAMES)) { [01:27:24.627] name <- added[[kk]] [01:27:24.627] NAME <- NAMES[[kk]] [01:27:24.627] if (name != NAME && is.element(NAME, old_names)) [01:27:24.627] next [01:27:24.627] args[[name]] <- "" [01:27:24.627] } [01:27:24.627] NAMES <- toupper(removed) [01:27:24.627] for (kk in seq_along(NAMES)) { [01:27:24.627] name <- removed[[kk]] [01:27:24.627] NAME <- NAMES[[kk]] [01:27:24.627] if (name != NAME && is.element(NAME, old_names)) [01:27:24.627] next [01:27:24.627] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.627] } [01:27:24.627] if (length(args) > 0) [01:27:24.627] base::do.call(base::Sys.setenv, args = args) [01:27:24.627] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:24.627] } [01:27:24.627] else { [01:27:24.627] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:24.627] } [01:27:24.627] { [01:27:24.627] if (base::length(...future.futureOptionsAdded) > [01:27:24.627] 0L) { [01:27:24.627] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:24.627] base::names(opts) <- ...future.futureOptionsAdded [01:27:24.627] base::options(opts) [01:27:24.627] } [01:27:24.627] { [01:27:24.627] { [01:27:24.627] NULL [01:27:24.627] RNGkind("Mersenne-Twister") [01:27:24.627] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:24.627] inherits = FALSE) [01:27:24.627] } [01:27:24.627] options(future.plan = NULL) [01:27:24.627] if (is.na(NA_character_)) [01:27:24.627] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.627] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:24.627] future::plan(list(function (..., envir = parent.frame()) [01:27:24.627] { [01:27:24.627] future <- SequentialFuture(..., envir = envir) [01:27:24.627] if (!future$lazy) [01:27:24.627] future <- run(future) [01:27:24.627] invisible(future) [01:27:24.627] }), .cleanup = FALSE, .init = FALSE) [01:27:24.627] } [01:27:24.627] } [01:27:24.627] } [01:27:24.627] }) [01:27:24.627] if (TRUE) { [01:27:24.627] base::sink(type = "output", split = FALSE) [01:27:24.627] if (TRUE) { [01:27:24.627] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:24.627] } [01:27:24.627] else { [01:27:24.627] ...future.result["stdout"] <- base::list(NULL) [01:27:24.627] } [01:27:24.627] base::close(...future.stdout) [01:27:24.627] ...future.stdout <- NULL [01:27:24.627] } [01:27:24.627] ...future.result$conditions <- ...future.conditions [01:27:24.627] ...future.result$finished <- base::Sys.time() [01:27:24.627] ...future.result [01:27:24.627] } [01:27:24.631] assign_globals() ... [01:27:24.632] List of 2 [01:27:24.632] $ x : int [1:2] 1 2 [01:27:24.632] $ future.call.arguments:List of 1 [01:27:24.632] ..$ : num 3 [01:27:24.632] ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [01:27:24.632] - attr(*, "where")=List of 2 [01:27:24.632] ..$ x : [01:27:24.632] ..$ future.call.arguments: [01:27:24.632] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [01:27:24.632] - attr(*, "resolved")= logi FALSE [01:27:24.632] - attr(*, "total_size")= num 112 [01:27:24.632] - attr(*, "already-done")= logi TRUE [01:27:24.642] - copied 'x' to environment [01:27:24.642] - copied 'future.call.arguments' to environment [01:27:24.643] assign_globals() ... done [01:27:24.643] plan(): Setting new future strategy stack: [01:27:24.644] List of future strategies: [01:27:24.644] 1. sequential: [01:27:24.644] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.644] - tweaked: FALSE [01:27:24.644] - call: NULL [01:27:24.645] plan(): nbrOfWorkers() = 1 [01:27:24.649] plan(): Setting new future strategy stack: [01:27:24.649] List of future strategies: [01:27:24.649] 1. sequential: [01:27:24.649] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.649] - tweaked: FALSE [01:27:24.649] - call: plan(strategy, substitute = FALSE) [01:27:24.651] plan(): nbrOfWorkers() = 1 [01:27:24.651] SequentialFuture started (and completed) [01:27:24.652] - Launch lazy future ... done [01:27:24.652] 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 [01:27:24.655] getGlobalsAndPackages() ... [01:27:24.655] Searching for globals... [01:27:24.658] - globals found: [4] '{', 'sum', 'x', '...' [01:27:24.658] Searching for globals ... DONE [01:27:24.658] Resolving globals: FALSE [01:27:24.659] Tweak future expression to call with '...' arguments ... [01:27:24.659] { [01:27:24.659] do.call(function(...) { [01:27:24.659] sum(x, ...) [01:27:24.659] }, args = future.call.arguments) [01:27:24.659] } [01:27:24.660] Tweak future expression to call with '...' arguments ... DONE [01:27:24.661] The total size of the 2 globals is 112 bytes (112 bytes) [01:27:24.662] 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') [01:27:24.662] - globals: [2] 'x', 'future.call.arguments' [01:27:24.662] [01:27:24.663] getGlobalsAndPackages() ... DONE [01:27:24.663] run() for 'Future' ... [01:27:24.663] - state: 'created' [01:27:24.664] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:24.664] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:24.664] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:24.664] - Field: 'label' [01:27:24.665] - Field: 'local' [01:27:24.665] - Field: 'owner' [01:27:24.665] - Field: 'envir' [01:27:24.665] - Field: 'packages' [01:27:24.665] - Field: 'gc' [01:27:24.666] - Field: 'conditions' [01:27:24.666] - Field: 'expr' [01:27:24.666] - Field: 'uuid' [01:27:24.666] - Field: 'seed' [01:27:24.666] - Field: 'version' [01:27:24.667] - Field: 'result' [01:27:24.667] - Field: 'asynchronous' [01:27:24.667] - Field: 'calls' [01:27:24.667] - Field: 'globals' [01:27:24.667] - Field: 'stdout' [01:27:24.668] - Field: 'earlySignal' [01:27:24.668] - Field: 'lazy' [01:27:24.668] - Field: 'state' [01:27:24.668] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:24.668] - Launch lazy future ... [01:27:24.669] Packages needed by the future expression (n = 0): [01:27:24.669] Packages needed by future strategies (n = 0): [01:27:24.670] { [01:27:24.670] { [01:27:24.670] { [01:27:24.670] ...future.startTime <- base::Sys.time() [01:27:24.670] { [01:27:24.670] { [01:27:24.670] { [01:27:24.670] base::local({ [01:27:24.670] has_future <- base::requireNamespace("future", [01:27:24.670] quietly = TRUE) [01:27:24.670] if (has_future) { [01:27:24.670] ns <- base::getNamespace("future") [01:27:24.670] version <- ns[[".package"]][["version"]] [01:27:24.670] if (is.null(version)) [01:27:24.670] version <- utils::packageVersion("future") [01:27:24.670] } [01:27:24.670] else { [01:27:24.670] version <- NULL [01:27:24.670] } [01:27:24.670] if (!has_future || version < "1.8.0") { [01:27:24.670] info <- base::c(r_version = base::gsub("R version ", [01:27:24.670] "", base::R.version$version.string), [01:27:24.670] platform = base::sprintf("%s (%s-bit)", [01:27:24.670] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:24.670] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:24.670] "release", "version")], collapse = " "), [01:27:24.670] hostname = base::Sys.info()[["nodename"]]) [01:27:24.670] info <- base::sprintf("%s: %s", base::names(info), [01:27:24.670] info) [01:27:24.670] info <- base::paste(info, collapse = "; ") [01:27:24.670] if (!has_future) { [01:27:24.670] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:24.670] info) [01:27:24.670] } [01:27:24.670] else { [01:27:24.670] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:24.670] info, version) [01:27:24.670] } [01:27:24.670] base::stop(msg) [01:27:24.670] } [01:27:24.670] }) [01:27:24.670] } [01:27:24.670] options(future.plan = NULL) [01:27:24.670] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.670] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:24.670] } [01:27:24.670] ...future.workdir <- getwd() [01:27:24.670] } [01:27:24.670] ...future.oldOptions <- base::as.list(base::.Options) [01:27:24.670] ...future.oldEnvVars <- base::Sys.getenv() [01:27:24.670] } [01:27:24.670] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:24.670] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:24.670] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:24.670] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:24.670] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:24.670] future.stdout.windows.reencode = NULL, width = 80L) [01:27:24.670] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:24.670] base::names(...future.oldOptions)) [01:27:24.670] } [01:27:24.670] if (FALSE) { [01:27:24.670] } [01:27:24.670] else { [01:27:24.670] if (TRUE) { [01:27:24.670] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:24.670] open = "w") [01:27:24.670] } [01:27:24.670] else { [01:27:24.670] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:24.670] windows = "NUL", "/dev/null"), open = "w") [01:27:24.670] } [01:27:24.670] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:24.670] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:24.670] base::sink(type = "output", split = FALSE) [01:27:24.670] base::close(...future.stdout) [01:27:24.670] }, add = TRUE) [01:27:24.670] } [01:27:24.670] ...future.frame <- base::sys.nframe() [01:27:24.670] ...future.conditions <- base::list() [01:27:24.670] ...future.rng <- base::globalenv()$.Random.seed [01:27:24.670] if (FALSE) { [01:27:24.670] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:24.670] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:24.670] } [01:27:24.670] ...future.result <- base::tryCatch({ [01:27:24.670] base::withCallingHandlers({ [01:27:24.670] ...future.value <- base::withVisible(base::local({ [01:27:24.670] do.call(function(...) { [01:27:24.670] sum(x, ...) [01:27:24.670] }, args = future.call.arguments) [01:27:24.670] })) [01:27:24.670] future::FutureResult(value = ...future.value$value, [01:27:24.670] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.670] ...future.rng), globalenv = if (FALSE) [01:27:24.670] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:24.670] ...future.globalenv.names)) [01:27:24.670] else NULL, started = ...future.startTime, version = "1.8") [01:27:24.670] }, condition = base::local({ [01:27:24.670] c <- base::c [01:27:24.670] inherits <- base::inherits [01:27:24.670] invokeRestart <- base::invokeRestart [01:27:24.670] length <- base::length [01:27:24.670] list <- base::list [01:27:24.670] seq.int <- base::seq.int [01:27:24.670] signalCondition <- base::signalCondition [01:27:24.670] sys.calls <- base::sys.calls [01:27:24.670] `[[` <- base::`[[` [01:27:24.670] `+` <- base::`+` [01:27:24.670] `<<-` <- base::`<<-` [01:27:24.670] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:24.670] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:24.670] 3L)] [01:27:24.670] } [01:27:24.670] function(cond) { [01:27:24.670] is_error <- inherits(cond, "error") [01:27:24.670] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:24.670] NULL) [01:27:24.670] if (is_error) { [01:27:24.670] sessionInformation <- function() { [01:27:24.670] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:24.670] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:24.670] search = base::search(), system = base::Sys.info()) [01:27:24.670] } [01:27:24.670] ...future.conditions[[length(...future.conditions) + [01:27:24.670] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:24.670] cond$call), session = sessionInformation(), [01:27:24.670] timestamp = base::Sys.time(), signaled = 0L) [01:27:24.670] signalCondition(cond) [01:27:24.670] } [01:27:24.670] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:24.670] "immediateCondition"))) { [01:27:24.670] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:24.670] ...future.conditions[[length(...future.conditions) + [01:27:24.670] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:24.670] if (TRUE && !signal) { [01:27:24.670] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.670] { [01:27:24.670] inherits <- base::inherits [01:27:24.670] invokeRestart <- base::invokeRestart [01:27:24.670] is.null <- base::is.null [01:27:24.670] muffled <- FALSE [01:27:24.670] if (inherits(cond, "message")) { [01:27:24.670] muffled <- grepl(pattern, "muffleMessage") [01:27:24.670] if (muffled) [01:27:24.670] invokeRestart("muffleMessage") [01:27:24.670] } [01:27:24.670] else if (inherits(cond, "warning")) { [01:27:24.670] muffled <- grepl(pattern, "muffleWarning") [01:27:24.670] if (muffled) [01:27:24.670] invokeRestart("muffleWarning") [01:27:24.670] } [01:27:24.670] else if (inherits(cond, "condition")) { [01:27:24.670] if (!is.null(pattern)) { [01:27:24.670] computeRestarts <- base::computeRestarts [01:27:24.670] grepl <- base::grepl [01:27:24.670] restarts <- computeRestarts(cond) [01:27:24.670] for (restart in restarts) { [01:27:24.670] name <- restart$name [01:27:24.670] if (is.null(name)) [01:27:24.670] next [01:27:24.670] if (!grepl(pattern, name)) [01:27:24.670] next [01:27:24.670] invokeRestart(restart) [01:27:24.670] muffled <- TRUE [01:27:24.670] break [01:27:24.670] } [01:27:24.670] } [01:27:24.670] } [01:27:24.670] invisible(muffled) [01:27:24.670] } [01:27:24.670] muffleCondition(cond, pattern = "^muffle") [01:27:24.670] } [01:27:24.670] } [01:27:24.670] else { [01:27:24.670] if (TRUE) { [01:27:24.670] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.670] { [01:27:24.670] inherits <- base::inherits [01:27:24.670] invokeRestart <- base::invokeRestart [01:27:24.670] is.null <- base::is.null [01:27:24.670] muffled <- FALSE [01:27:24.670] if (inherits(cond, "message")) { [01:27:24.670] muffled <- grepl(pattern, "muffleMessage") [01:27:24.670] if (muffled) [01:27:24.670] invokeRestart("muffleMessage") [01:27:24.670] } [01:27:24.670] else if (inherits(cond, "warning")) { [01:27:24.670] muffled <- grepl(pattern, "muffleWarning") [01:27:24.670] if (muffled) [01:27:24.670] invokeRestart("muffleWarning") [01:27:24.670] } [01:27:24.670] else if (inherits(cond, "condition")) { [01:27:24.670] if (!is.null(pattern)) { [01:27:24.670] computeRestarts <- base::computeRestarts [01:27:24.670] grepl <- base::grepl [01:27:24.670] restarts <- computeRestarts(cond) [01:27:24.670] for (restart in restarts) { [01:27:24.670] name <- restart$name [01:27:24.670] if (is.null(name)) [01:27:24.670] next [01:27:24.670] if (!grepl(pattern, name)) [01:27:24.670] next [01:27:24.670] invokeRestart(restart) [01:27:24.670] muffled <- TRUE [01:27:24.670] break [01:27:24.670] } [01:27:24.670] } [01:27:24.670] } [01:27:24.670] invisible(muffled) [01:27:24.670] } [01:27:24.670] muffleCondition(cond, pattern = "^muffle") [01:27:24.670] } [01:27:24.670] } [01:27:24.670] } [01:27:24.670] })) [01:27:24.670] }, error = function(ex) { [01:27:24.670] base::structure(base::list(value = NULL, visible = NULL, [01:27:24.670] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.670] ...future.rng), started = ...future.startTime, [01:27:24.670] finished = Sys.time(), session_uuid = NA_character_, [01:27:24.670] version = "1.8"), class = "FutureResult") [01:27:24.670] }, finally = { [01:27:24.670] if (!identical(...future.workdir, getwd())) [01:27:24.670] setwd(...future.workdir) [01:27:24.670] { [01:27:24.670] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:24.670] ...future.oldOptions$nwarnings <- NULL [01:27:24.670] } [01:27:24.670] base::options(...future.oldOptions) [01:27:24.670] if (.Platform$OS.type == "windows") { [01:27:24.670] old_names <- names(...future.oldEnvVars) [01:27:24.670] envs <- base::Sys.getenv() [01:27:24.670] names <- names(envs) [01:27:24.670] common <- intersect(names, old_names) [01:27:24.670] added <- setdiff(names, old_names) [01:27:24.670] removed <- setdiff(old_names, names) [01:27:24.670] changed <- common[...future.oldEnvVars[common] != [01:27:24.670] envs[common]] [01:27:24.670] NAMES <- toupper(changed) [01:27:24.670] args <- list() [01:27:24.670] for (kk in seq_along(NAMES)) { [01:27:24.670] name <- changed[[kk]] [01:27:24.670] NAME <- NAMES[[kk]] [01:27:24.670] if (name != NAME && is.element(NAME, old_names)) [01:27:24.670] next [01:27:24.670] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.670] } [01:27:24.670] NAMES <- toupper(added) [01:27:24.670] for (kk in seq_along(NAMES)) { [01:27:24.670] name <- added[[kk]] [01:27:24.670] NAME <- NAMES[[kk]] [01:27:24.670] if (name != NAME && is.element(NAME, old_names)) [01:27:24.670] next [01:27:24.670] args[[name]] <- "" [01:27:24.670] } [01:27:24.670] NAMES <- toupper(removed) [01:27:24.670] for (kk in seq_along(NAMES)) { [01:27:24.670] name <- removed[[kk]] [01:27:24.670] NAME <- NAMES[[kk]] [01:27:24.670] if (name != NAME && is.element(NAME, old_names)) [01:27:24.670] next [01:27:24.670] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.670] } [01:27:24.670] if (length(args) > 0) [01:27:24.670] base::do.call(base::Sys.setenv, args = args) [01:27:24.670] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:24.670] } [01:27:24.670] else { [01:27:24.670] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:24.670] } [01:27:24.670] { [01:27:24.670] if (base::length(...future.futureOptionsAdded) > [01:27:24.670] 0L) { [01:27:24.670] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:24.670] base::names(opts) <- ...future.futureOptionsAdded [01:27:24.670] base::options(opts) [01:27:24.670] } [01:27:24.670] { [01:27:24.670] { [01:27:24.670] NULL [01:27:24.670] RNGkind("Mersenne-Twister") [01:27:24.670] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:24.670] inherits = FALSE) [01:27:24.670] } [01:27:24.670] options(future.plan = NULL) [01:27:24.670] if (is.na(NA_character_)) [01:27:24.670] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.670] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:24.670] future::plan(list(function (..., envir = parent.frame()) [01:27:24.670] { [01:27:24.670] future <- SequentialFuture(..., envir = envir) [01:27:24.670] if (!future$lazy) [01:27:24.670] future <- run(future) [01:27:24.670] invisible(future) [01:27:24.670] }), .cleanup = FALSE, .init = FALSE) [01:27:24.670] } [01:27:24.670] } [01:27:24.670] } [01:27:24.670] }) [01:27:24.670] if (TRUE) { [01:27:24.670] base::sink(type = "output", split = FALSE) [01:27:24.670] if (TRUE) { [01:27:24.670] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:24.670] } [01:27:24.670] else { [01:27:24.670] ...future.result["stdout"] <- base::list(NULL) [01:27:24.670] } [01:27:24.670] base::close(...future.stdout) [01:27:24.670] ...future.stdout <- NULL [01:27:24.670] } [01:27:24.670] ...future.result$conditions <- ...future.conditions [01:27:24.670] ...future.result$finished <- base::Sys.time() [01:27:24.670] ...future.result [01:27:24.670] } [01:27:24.674] assign_globals() ... [01:27:24.674] List of 2 [01:27:24.674] $ x : int [1:2] 1 2 [01:27:24.674] $ future.call.arguments:List of 1 [01:27:24.674] ..$ : num 3 [01:27:24.674] ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [01:27:24.674] - attr(*, "where")=List of 2 [01:27:24.674] ..$ x : [01:27:24.674] ..$ future.call.arguments: [01:27:24.674] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [01:27:24.674] - attr(*, "resolved")= logi FALSE [01:27:24.674] - attr(*, "total_size")= num 112 [01:27:24.674] - attr(*, "already-done")= logi TRUE [01:27:24.684] - copied 'x' to environment [01:27:24.685] - copied 'future.call.arguments' to environment [01:27:24.685] assign_globals() ... done [01:27:24.685] plan(): Setting new future strategy stack: [01:27:24.686] List of future strategies: [01:27:24.686] 1. sequential: [01:27:24.686] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.686] - tweaked: FALSE [01:27:24.686] - call: NULL [01:27:24.686] plan(): nbrOfWorkers() = 1 [01:27:24.688] plan(): Setting new future strategy stack: [01:27:24.688] List of future strategies: [01:27:24.688] 1. sequential: [01:27:24.688] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.688] - tweaked: FALSE [01:27:24.688] - call: plan(strategy, substitute = FALSE) [01:27:24.689] plan(): nbrOfWorkers() = 1 [01:27:24.689] SequentialFuture started (and completed) [01:27:24.689] - Launch lazy future ... done [01:27:24.690] 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 [01:27:24.691] getGlobalsAndPackages() ... [01:27:24.691] Searching for globals... [01:27:24.693] - globals found: [4] '{', 'sum', 'x', 'y' [01:27:24.693] Searching for globals ... DONE [01:27:24.693] Resolving globals: FALSE [01:27:24.694] The total size of the 2 globals is 112 bytes (112 bytes) [01:27:24.694] 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') [01:27:24.695] - globals: [2] 'x', 'y' [01:27:24.695] [01:27:24.695] getGlobalsAndPackages() ... DONE [01:27:24.695] run() for 'Future' ... [01:27:24.696] - state: 'created' [01:27:24.696] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:24.696] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:24.697] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:24.697] - Field: 'label' [01:27:24.697] - Field: 'local' [01:27:24.697] - Field: 'owner' [01:27:24.697] - Field: 'envir' [01:27:24.698] - Field: 'packages' [01:27:24.698] - Field: 'gc' [01:27:24.698] - Field: 'conditions' [01:27:24.698] - Field: 'expr' [01:27:24.698] - Field: 'uuid' [01:27:24.699] - Field: 'seed' [01:27:24.699] - Field: 'version' [01:27:24.699] - Field: 'result' [01:27:24.699] - Field: 'asynchronous' [01:27:24.699] - Field: 'calls' [01:27:24.700] - Field: 'globals' [01:27:24.700] - Field: 'stdout' [01:27:24.700] - Field: 'earlySignal' [01:27:24.700] - Field: 'lazy' [01:27:24.700] - Field: 'state' [01:27:24.701] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:24.701] - Launch lazy future ... [01:27:24.701] Packages needed by the future expression (n = 0): [01:27:24.701] Packages needed by future strategies (n = 0): [01:27:24.702] { [01:27:24.702] { [01:27:24.702] { [01:27:24.702] ...future.startTime <- base::Sys.time() [01:27:24.702] { [01:27:24.702] { [01:27:24.702] { [01:27:24.702] base::local({ [01:27:24.702] has_future <- base::requireNamespace("future", [01:27:24.702] quietly = TRUE) [01:27:24.702] if (has_future) { [01:27:24.702] ns <- base::getNamespace("future") [01:27:24.702] version <- ns[[".package"]][["version"]] [01:27:24.702] if (is.null(version)) [01:27:24.702] version <- utils::packageVersion("future") [01:27:24.702] } [01:27:24.702] else { [01:27:24.702] version <- NULL [01:27:24.702] } [01:27:24.702] if (!has_future || version < "1.8.0") { [01:27:24.702] info <- base::c(r_version = base::gsub("R version ", [01:27:24.702] "", base::R.version$version.string), [01:27:24.702] platform = base::sprintf("%s (%s-bit)", [01:27:24.702] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:24.702] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:24.702] "release", "version")], collapse = " "), [01:27:24.702] hostname = base::Sys.info()[["nodename"]]) [01:27:24.702] info <- base::sprintf("%s: %s", base::names(info), [01:27:24.702] info) [01:27:24.702] info <- base::paste(info, collapse = "; ") [01:27:24.702] if (!has_future) { [01:27:24.702] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:24.702] info) [01:27:24.702] } [01:27:24.702] else { [01:27:24.702] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:24.702] info, version) [01:27:24.702] } [01:27:24.702] base::stop(msg) [01:27:24.702] } [01:27:24.702] }) [01:27:24.702] } [01:27:24.702] options(future.plan = NULL) [01:27:24.702] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.702] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:24.702] } [01:27:24.702] ...future.workdir <- getwd() [01:27:24.702] } [01:27:24.702] ...future.oldOptions <- base::as.list(base::.Options) [01:27:24.702] ...future.oldEnvVars <- base::Sys.getenv() [01:27:24.702] } [01:27:24.702] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:24.702] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:24.702] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:24.702] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:24.702] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:24.702] future.stdout.windows.reencode = NULL, width = 80L) [01:27:24.702] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:24.702] base::names(...future.oldOptions)) [01:27:24.702] } [01:27:24.702] if (FALSE) { [01:27:24.702] } [01:27:24.702] else { [01:27:24.702] if (TRUE) { [01:27:24.702] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:24.702] open = "w") [01:27:24.702] } [01:27:24.702] else { [01:27:24.702] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:24.702] windows = "NUL", "/dev/null"), open = "w") [01:27:24.702] } [01:27:24.702] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:24.702] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:24.702] base::sink(type = "output", split = FALSE) [01:27:24.702] base::close(...future.stdout) [01:27:24.702] }, add = TRUE) [01:27:24.702] } [01:27:24.702] ...future.frame <- base::sys.nframe() [01:27:24.702] ...future.conditions <- base::list() [01:27:24.702] ...future.rng <- base::globalenv()$.Random.seed [01:27:24.702] if (FALSE) { [01:27:24.702] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:24.702] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:24.702] } [01:27:24.702] ...future.result <- base::tryCatch({ [01:27:24.702] base::withCallingHandlers({ [01:27:24.702] ...future.value <- base::withVisible(base::local({ [01:27:24.702] sum(x, y) [01:27:24.702] })) [01:27:24.702] future::FutureResult(value = ...future.value$value, [01:27:24.702] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.702] ...future.rng), globalenv = if (FALSE) [01:27:24.702] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:24.702] ...future.globalenv.names)) [01:27:24.702] else NULL, started = ...future.startTime, version = "1.8") [01:27:24.702] }, condition = base::local({ [01:27:24.702] c <- base::c [01:27:24.702] inherits <- base::inherits [01:27:24.702] invokeRestart <- base::invokeRestart [01:27:24.702] length <- base::length [01:27:24.702] list <- base::list [01:27:24.702] seq.int <- base::seq.int [01:27:24.702] signalCondition <- base::signalCondition [01:27:24.702] sys.calls <- base::sys.calls [01:27:24.702] `[[` <- base::`[[` [01:27:24.702] `+` <- base::`+` [01:27:24.702] `<<-` <- base::`<<-` [01:27:24.702] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:24.702] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:24.702] 3L)] [01:27:24.702] } [01:27:24.702] function(cond) { [01:27:24.702] is_error <- inherits(cond, "error") [01:27:24.702] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:24.702] NULL) [01:27:24.702] if (is_error) { [01:27:24.702] sessionInformation <- function() { [01:27:24.702] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:24.702] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:24.702] search = base::search(), system = base::Sys.info()) [01:27:24.702] } [01:27:24.702] ...future.conditions[[length(...future.conditions) + [01:27:24.702] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:24.702] cond$call), session = sessionInformation(), [01:27:24.702] timestamp = base::Sys.time(), signaled = 0L) [01:27:24.702] signalCondition(cond) [01:27:24.702] } [01:27:24.702] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:24.702] "immediateCondition"))) { [01:27:24.702] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:24.702] ...future.conditions[[length(...future.conditions) + [01:27:24.702] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:24.702] if (TRUE && !signal) { [01:27:24.702] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.702] { [01:27:24.702] inherits <- base::inherits [01:27:24.702] invokeRestart <- base::invokeRestart [01:27:24.702] is.null <- base::is.null [01:27:24.702] muffled <- FALSE [01:27:24.702] if (inherits(cond, "message")) { [01:27:24.702] muffled <- grepl(pattern, "muffleMessage") [01:27:24.702] if (muffled) [01:27:24.702] invokeRestart("muffleMessage") [01:27:24.702] } [01:27:24.702] else if (inherits(cond, "warning")) { [01:27:24.702] muffled <- grepl(pattern, "muffleWarning") [01:27:24.702] if (muffled) [01:27:24.702] invokeRestart("muffleWarning") [01:27:24.702] } [01:27:24.702] else if (inherits(cond, "condition")) { [01:27:24.702] if (!is.null(pattern)) { [01:27:24.702] computeRestarts <- base::computeRestarts [01:27:24.702] grepl <- base::grepl [01:27:24.702] restarts <- computeRestarts(cond) [01:27:24.702] for (restart in restarts) { [01:27:24.702] name <- restart$name [01:27:24.702] if (is.null(name)) [01:27:24.702] next [01:27:24.702] if (!grepl(pattern, name)) [01:27:24.702] next [01:27:24.702] invokeRestart(restart) [01:27:24.702] muffled <- TRUE [01:27:24.702] break [01:27:24.702] } [01:27:24.702] } [01:27:24.702] } [01:27:24.702] invisible(muffled) [01:27:24.702] } [01:27:24.702] muffleCondition(cond, pattern = "^muffle") [01:27:24.702] } [01:27:24.702] } [01:27:24.702] else { [01:27:24.702] if (TRUE) { [01:27:24.702] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.702] { [01:27:24.702] inherits <- base::inherits [01:27:24.702] invokeRestart <- base::invokeRestart [01:27:24.702] is.null <- base::is.null [01:27:24.702] muffled <- FALSE [01:27:24.702] if (inherits(cond, "message")) { [01:27:24.702] muffled <- grepl(pattern, "muffleMessage") [01:27:24.702] if (muffled) [01:27:24.702] invokeRestart("muffleMessage") [01:27:24.702] } [01:27:24.702] else if (inherits(cond, "warning")) { [01:27:24.702] muffled <- grepl(pattern, "muffleWarning") [01:27:24.702] if (muffled) [01:27:24.702] invokeRestart("muffleWarning") [01:27:24.702] } [01:27:24.702] else if (inherits(cond, "condition")) { [01:27:24.702] if (!is.null(pattern)) { [01:27:24.702] computeRestarts <- base::computeRestarts [01:27:24.702] grepl <- base::grepl [01:27:24.702] restarts <- computeRestarts(cond) [01:27:24.702] for (restart in restarts) { [01:27:24.702] name <- restart$name [01:27:24.702] if (is.null(name)) [01:27:24.702] next [01:27:24.702] if (!grepl(pattern, name)) [01:27:24.702] next [01:27:24.702] invokeRestart(restart) [01:27:24.702] muffled <- TRUE [01:27:24.702] break [01:27:24.702] } [01:27:24.702] } [01:27:24.702] } [01:27:24.702] invisible(muffled) [01:27:24.702] } [01:27:24.702] muffleCondition(cond, pattern = "^muffle") [01:27:24.702] } [01:27:24.702] } [01:27:24.702] } [01:27:24.702] })) [01:27:24.702] }, error = function(ex) { [01:27:24.702] base::structure(base::list(value = NULL, visible = NULL, [01:27:24.702] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.702] ...future.rng), started = ...future.startTime, [01:27:24.702] finished = Sys.time(), session_uuid = NA_character_, [01:27:24.702] version = "1.8"), class = "FutureResult") [01:27:24.702] }, finally = { [01:27:24.702] if (!identical(...future.workdir, getwd())) [01:27:24.702] setwd(...future.workdir) [01:27:24.702] { [01:27:24.702] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:24.702] ...future.oldOptions$nwarnings <- NULL [01:27:24.702] } [01:27:24.702] base::options(...future.oldOptions) [01:27:24.702] if (.Platform$OS.type == "windows") { [01:27:24.702] old_names <- names(...future.oldEnvVars) [01:27:24.702] envs <- base::Sys.getenv() [01:27:24.702] names <- names(envs) [01:27:24.702] common <- intersect(names, old_names) [01:27:24.702] added <- setdiff(names, old_names) [01:27:24.702] removed <- setdiff(old_names, names) [01:27:24.702] changed <- common[...future.oldEnvVars[common] != [01:27:24.702] envs[common]] [01:27:24.702] NAMES <- toupper(changed) [01:27:24.702] args <- list() [01:27:24.702] for (kk in seq_along(NAMES)) { [01:27:24.702] name <- changed[[kk]] [01:27:24.702] NAME <- NAMES[[kk]] [01:27:24.702] if (name != NAME && is.element(NAME, old_names)) [01:27:24.702] next [01:27:24.702] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.702] } [01:27:24.702] NAMES <- toupper(added) [01:27:24.702] for (kk in seq_along(NAMES)) { [01:27:24.702] name <- added[[kk]] [01:27:24.702] NAME <- NAMES[[kk]] [01:27:24.702] if (name != NAME && is.element(NAME, old_names)) [01:27:24.702] next [01:27:24.702] args[[name]] <- "" [01:27:24.702] } [01:27:24.702] NAMES <- toupper(removed) [01:27:24.702] for (kk in seq_along(NAMES)) { [01:27:24.702] name <- removed[[kk]] [01:27:24.702] NAME <- NAMES[[kk]] [01:27:24.702] if (name != NAME && is.element(NAME, old_names)) [01:27:24.702] next [01:27:24.702] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.702] } [01:27:24.702] if (length(args) > 0) [01:27:24.702] base::do.call(base::Sys.setenv, args = args) [01:27:24.702] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:24.702] } [01:27:24.702] else { [01:27:24.702] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:24.702] } [01:27:24.702] { [01:27:24.702] if (base::length(...future.futureOptionsAdded) > [01:27:24.702] 0L) { [01:27:24.702] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:24.702] base::names(opts) <- ...future.futureOptionsAdded [01:27:24.702] base::options(opts) [01:27:24.702] } [01:27:24.702] { [01:27:24.702] { [01:27:24.702] NULL [01:27:24.702] RNGkind("Mersenne-Twister") [01:27:24.702] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:24.702] inherits = FALSE) [01:27:24.702] } [01:27:24.702] options(future.plan = NULL) [01:27:24.702] if (is.na(NA_character_)) [01:27:24.702] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.702] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:24.702] future::plan(list(function (..., envir = parent.frame()) [01:27:24.702] { [01:27:24.702] future <- SequentialFuture(..., envir = envir) [01:27:24.702] if (!future$lazy) [01:27:24.702] future <- run(future) [01:27:24.702] invisible(future) [01:27:24.702] }), .cleanup = FALSE, .init = FALSE) [01:27:24.702] } [01:27:24.702] } [01:27:24.702] } [01:27:24.702] }) [01:27:24.702] if (TRUE) { [01:27:24.702] base::sink(type = "output", split = FALSE) [01:27:24.702] if (TRUE) { [01:27:24.702] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:24.702] } [01:27:24.702] else { [01:27:24.702] ...future.result["stdout"] <- base::list(NULL) [01:27:24.702] } [01:27:24.702] base::close(...future.stdout) [01:27:24.702] ...future.stdout <- NULL [01:27:24.702] } [01:27:24.702] ...future.result$conditions <- ...future.conditions [01:27:24.702] ...future.result$finished <- base::Sys.time() [01:27:24.702] ...future.result [01:27:24.702] } [01:27:24.706] assign_globals() ... [01:27:24.706] List of 2 [01:27:24.706] $ x: int [1:2] 1 2 [01:27:24.706] $ y: num 3 [01:27:24.706] - attr(*, "where")=List of 2 [01:27:24.706] ..$ x: [01:27:24.706] ..$ y: [01:27:24.706] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [01:27:24.706] - attr(*, "resolved")= logi FALSE [01:27:24.706] - attr(*, "total_size")= num 112 [01:27:24.706] - attr(*, "already-done")= logi TRUE [01:27:24.710] - copied 'x' to environment [01:27:24.710] - copied 'y' to environment [01:27:24.710] assign_globals() ... done [01:27:24.711] plan(): Setting new future strategy stack: [01:27:24.711] List of future strategies: [01:27:24.711] 1. sequential: [01:27:24.711] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.711] - tweaked: FALSE [01:27:24.711] - call: NULL [01:27:24.712] plan(): nbrOfWorkers() = 1 [01:27:24.713] plan(): Setting new future strategy stack: [01:27:24.713] List of future strategies: [01:27:24.713] 1. sequential: [01:27:24.713] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.713] - tweaked: FALSE [01:27:24.713] - call: plan(strategy, substitute = FALSE) [01:27:24.714] plan(): nbrOfWorkers() = 1 [01:27:24.714] SequentialFuture started (and completed) [01:27:24.714] - Launch lazy future ... done [01:27:24.714] 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 [01:27:24.715] getGlobalsAndPackages() ... [01:27:24.716] Searching for globals... [01:27:24.718] - globals found: [5] '{', 'sum', 'x', 'y', '...' [01:27:24.718] Searching for globals ... DONE [01:27:24.718] Resolving globals: FALSE [01:27:24.718] Tweak future expression to call with '...' arguments ... [01:27:24.719] The total size of the 2 globals is 112 bytes (112 bytes) [01:27:24.720] 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') [01:27:24.720] - globals: [2] 'x', 'y' [01:27:24.720] [01:27:24.720] getGlobalsAndPackages() ... DONE [01:27:24.721] run() for 'Future' ... [01:27:24.721] - state: 'created' [01:27:24.721] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:24.722] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:24.722] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:24.722] - Field: 'label' [01:27:24.722] - Field: 'local' [01:27:24.723] - Field: 'owner' [01:27:24.723] - Field: 'envir' [01:27:24.723] - Field: 'packages' [01:27:24.725] - Field: 'gc' [01:27:24.726] - Field: 'conditions' [01:27:24.726] - Field: 'expr' [01:27:24.726] - Field: 'uuid' [01:27:24.726] - Field: 'seed' [01:27:24.726] - Field: 'version' [01:27:24.727] - Field: 'result' [01:27:24.727] - Field: 'asynchronous' [01:27:24.727] - Field: 'calls' [01:27:24.727] - Field: 'globals' [01:27:24.728] - Field: 'stdout' [01:27:24.728] - Field: 'earlySignal' [01:27:24.728] - Field: 'lazy' [01:27:24.728] - Field: 'state' [01:27:24.729] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:24.729] - Launch lazy future ... [01:27:24.729] Packages needed by the future expression (n = 0): [01:27:24.729] Packages needed by future strategies (n = 0): [01:27:24.730] { [01:27:24.730] { [01:27:24.730] { [01:27:24.730] ...future.startTime <- base::Sys.time() [01:27:24.730] { [01:27:24.730] { [01:27:24.730] { [01:27:24.730] base::local({ [01:27:24.730] has_future <- base::requireNamespace("future", [01:27:24.730] quietly = TRUE) [01:27:24.730] if (has_future) { [01:27:24.730] ns <- base::getNamespace("future") [01:27:24.730] version <- ns[[".package"]][["version"]] [01:27:24.730] if (is.null(version)) [01:27:24.730] version <- utils::packageVersion("future") [01:27:24.730] } [01:27:24.730] else { [01:27:24.730] version <- NULL [01:27:24.730] } [01:27:24.730] if (!has_future || version < "1.8.0") { [01:27:24.730] info <- base::c(r_version = base::gsub("R version ", [01:27:24.730] "", base::R.version$version.string), [01:27:24.730] platform = base::sprintf("%s (%s-bit)", [01:27:24.730] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:24.730] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:24.730] "release", "version")], collapse = " "), [01:27:24.730] hostname = base::Sys.info()[["nodename"]]) [01:27:24.730] info <- base::sprintf("%s: %s", base::names(info), [01:27:24.730] info) [01:27:24.730] info <- base::paste(info, collapse = "; ") [01:27:24.730] if (!has_future) { [01:27:24.730] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:24.730] info) [01:27:24.730] } [01:27:24.730] else { [01:27:24.730] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:24.730] info, version) [01:27:24.730] } [01:27:24.730] base::stop(msg) [01:27:24.730] } [01:27:24.730] }) [01:27:24.730] } [01:27:24.730] options(future.plan = NULL) [01:27:24.730] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.730] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:24.730] } [01:27:24.730] ...future.workdir <- getwd() [01:27:24.730] } [01:27:24.730] ...future.oldOptions <- base::as.list(base::.Options) [01:27:24.730] ...future.oldEnvVars <- base::Sys.getenv() [01:27:24.730] } [01:27:24.730] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:24.730] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:24.730] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:24.730] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:24.730] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:24.730] future.stdout.windows.reencode = NULL, width = 80L) [01:27:24.730] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:24.730] base::names(...future.oldOptions)) [01:27:24.730] } [01:27:24.730] if (FALSE) { [01:27:24.730] } [01:27:24.730] else { [01:27:24.730] if (TRUE) { [01:27:24.730] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:24.730] open = "w") [01:27:24.730] } [01:27:24.730] else { [01:27:24.730] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:24.730] windows = "NUL", "/dev/null"), open = "w") [01:27:24.730] } [01:27:24.730] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:24.730] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:24.730] base::sink(type = "output", split = FALSE) [01:27:24.730] base::close(...future.stdout) [01:27:24.730] }, add = TRUE) [01:27:24.730] } [01:27:24.730] ...future.frame <- base::sys.nframe() [01:27:24.730] ...future.conditions <- base::list() [01:27:24.730] ...future.rng <- base::globalenv()$.Random.seed [01:27:24.730] if (FALSE) { [01:27:24.730] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:24.730] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:24.730] } [01:27:24.730] ...future.result <- base::tryCatch({ [01:27:24.730] base::withCallingHandlers({ [01:27:24.730] ...future.value <- base::withVisible(base::local({ [01:27:24.730] sum(x, y, ...) [01:27:24.730] })) [01:27:24.730] future::FutureResult(value = ...future.value$value, [01:27:24.730] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.730] ...future.rng), globalenv = if (FALSE) [01:27:24.730] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:24.730] ...future.globalenv.names)) [01:27:24.730] else NULL, started = ...future.startTime, version = "1.8") [01:27:24.730] }, condition = base::local({ [01:27:24.730] c <- base::c [01:27:24.730] inherits <- base::inherits [01:27:24.730] invokeRestart <- base::invokeRestart [01:27:24.730] length <- base::length [01:27:24.730] list <- base::list [01:27:24.730] seq.int <- base::seq.int [01:27:24.730] signalCondition <- base::signalCondition [01:27:24.730] sys.calls <- base::sys.calls [01:27:24.730] `[[` <- base::`[[` [01:27:24.730] `+` <- base::`+` [01:27:24.730] `<<-` <- base::`<<-` [01:27:24.730] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:24.730] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:24.730] 3L)] [01:27:24.730] } [01:27:24.730] function(cond) { [01:27:24.730] is_error <- inherits(cond, "error") [01:27:24.730] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:24.730] NULL) [01:27:24.730] if (is_error) { [01:27:24.730] sessionInformation <- function() { [01:27:24.730] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:24.730] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:24.730] search = base::search(), system = base::Sys.info()) [01:27:24.730] } [01:27:24.730] ...future.conditions[[length(...future.conditions) + [01:27:24.730] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:24.730] cond$call), session = sessionInformation(), [01:27:24.730] timestamp = base::Sys.time(), signaled = 0L) [01:27:24.730] signalCondition(cond) [01:27:24.730] } [01:27:24.730] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:24.730] "immediateCondition"))) { [01:27:24.730] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:24.730] ...future.conditions[[length(...future.conditions) + [01:27:24.730] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:24.730] if (TRUE && !signal) { [01:27:24.730] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.730] { [01:27:24.730] inherits <- base::inherits [01:27:24.730] invokeRestart <- base::invokeRestart [01:27:24.730] is.null <- base::is.null [01:27:24.730] muffled <- FALSE [01:27:24.730] if (inherits(cond, "message")) { [01:27:24.730] muffled <- grepl(pattern, "muffleMessage") [01:27:24.730] if (muffled) [01:27:24.730] invokeRestart("muffleMessage") [01:27:24.730] } [01:27:24.730] else if (inherits(cond, "warning")) { [01:27:24.730] muffled <- grepl(pattern, "muffleWarning") [01:27:24.730] if (muffled) [01:27:24.730] invokeRestart("muffleWarning") [01:27:24.730] } [01:27:24.730] else if (inherits(cond, "condition")) { [01:27:24.730] if (!is.null(pattern)) { [01:27:24.730] computeRestarts <- base::computeRestarts [01:27:24.730] grepl <- base::grepl [01:27:24.730] restarts <- computeRestarts(cond) [01:27:24.730] for (restart in restarts) { [01:27:24.730] name <- restart$name [01:27:24.730] if (is.null(name)) [01:27:24.730] next [01:27:24.730] if (!grepl(pattern, name)) [01:27:24.730] next [01:27:24.730] invokeRestart(restart) [01:27:24.730] muffled <- TRUE [01:27:24.730] break [01:27:24.730] } [01:27:24.730] } [01:27:24.730] } [01:27:24.730] invisible(muffled) [01:27:24.730] } [01:27:24.730] muffleCondition(cond, pattern = "^muffle") [01:27:24.730] } [01:27:24.730] } [01:27:24.730] else { [01:27:24.730] if (TRUE) { [01:27:24.730] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.730] { [01:27:24.730] inherits <- base::inherits [01:27:24.730] invokeRestart <- base::invokeRestart [01:27:24.730] is.null <- base::is.null [01:27:24.730] muffled <- FALSE [01:27:24.730] if (inherits(cond, "message")) { [01:27:24.730] muffled <- grepl(pattern, "muffleMessage") [01:27:24.730] if (muffled) [01:27:24.730] invokeRestart("muffleMessage") [01:27:24.730] } [01:27:24.730] else if (inherits(cond, "warning")) { [01:27:24.730] muffled <- grepl(pattern, "muffleWarning") [01:27:24.730] if (muffled) [01:27:24.730] invokeRestart("muffleWarning") [01:27:24.730] } [01:27:24.730] else if (inherits(cond, "condition")) { [01:27:24.730] if (!is.null(pattern)) { [01:27:24.730] computeRestarts <- base::computeRestarts [01:27:24.730] grepl <- base::grepl [01:27:24.730] restarts <- computeRestarts(cond) [01:27:24.730] for (restart in restarts) { [01:27:24.730] name <- restart$name [01:27:24.730] if (is.null(name)) [01:27:24.730] next [01:27:24.730] if (!grepl(pattern, name)) [01:27:24.730] next [01:27:24.730] invokeRestart(restart) [01:27:24.730] muffled <- TRUE [01:27:24.730] break [01:27:24.730] } [01:27:24.730] } [01:27:24.730] } [01:27:24.730] invisible(muffled) [01:27:24.730] } [01:27:24.730] muffleCondition(cond, pattern = "^muffle") [01:27:24.730] } [01:27:24.730] } [01:27:24.730] } [01:27:24.730] })) [01:27:24.730] }, error = function(ex) { [01:27:24.730] base::structure(base::list(value = NULL, visible = NULL, [01:27:24.730] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.730] ...future.rng), started = ...future.startTime, [01:27:24.730] finished = Sys.time(), session_uuid = NA_character_, [01:27:24.730] version = "1.8"), class = "FutureResult") [01:27:24.730] }, finally = { [01:27:24.730] if (!identical(...future.workdir, getwd())) [01:27:24.730] setwd(...future.workdir) [01:27:24.730] { [01:27:24.730] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:24.730] ...future.oldOptions$nwarnings <- NULL [01:27:24.730] } [01:27:24.730] base::options(...future.oldOptions) [01:27:24.730] if (.Platform$OS.type == "windows") { [01:27:24.730] old_names <- names(...future.oldEnvVars) [01:27:24.730] envs <- base::Sys.getenv() [01:27:24.730] names <- names(envs) [01:27:24.730] common <- intersect(names, old_names) [01:27:24.730] added <- setdiff(names, old_names) [01:27:24.730] removed <- setdiff(old_names, names) [01:27:24.730] changed <- common[...future.oldEnvVars[common] != [01:27:24.730] envs[common]] [01:27:24.730] NAMES <- toupper(changed) [01:27:24.730] args <- list() [01:27:24.730] for (kk in seq_along(NAMES)) { [01:27:24.730] name <- changed[[kk]] [01:27:24.730] NAME <- NAMES[[kk]] [01:27:24.730] if (name != NAME && is.element(NAME, old_names)) [01:27:24.730] next [01:27:24.730] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.730] } [01:27:24.730] NAMES <- toupper(added) [01:27:24.730] for (kk in seq_along(NAMES)) { [01:27:24.730] name <- added[[kk]] [01:27:24.730] NAME <- NAMES[[kk]] [01:27:24.730] if (name != NAME && is.element(NAME, old_names)) [01:27:24.730] next [01:27:24.730] args[[name]] <- "" [01:27:24.730] } [01:27:24.730] NAMES <- toupper(removed) [01:27:24.730] for (kk in seq_along(NAMES)) { [01:27:24.730] name <- removed[[kk]] [01:27:24.730] NAME <- NAMES[[kk]] [01:27:24.730] if (name != NAME && is.element(NAME, old_names)) [01:27:24.730] next [01:27:24.730] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.730] } [01:27:24.730] if (length(args) > 0) [01:27:24.730] base::do.call(base::Sys.setenv, args = args) [01:27:24.730] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:24.730] } [01:27:24.730] else { [01:27:24.730] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:24.730] } [01:27:24.730] { [01:27:24.730] if (base::length(...future.futureOptionsAdded) > [01:27:24.730] 0L) { [01:27:24.730] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:24.730] base::names(opts) <- ...future.futureOptionsAdded [01:27:24.730] base::options(opts) [01:27:24.730] } [01:27:24.730] { [01:27:24.730] { [01:27:24.730] NULL [01:27:24.730] RNGkind("Mersenne-Twister") [01:27:24.730] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:24.730] inherits = FALSE) [01:27:24.730] } [01:27:24.730] options(future.plan = NULL) [01:27:24.730] if (is.na(NA_character_)) [01:27:24.730] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.730] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:24.730] future::plan(list(function (..., envir = parent.frame()) [01:27:24.730] { [01:27:24.730] future <- SequentialFuture(..., envir = envir) [01:27:24.730] if (!future$lazy) [01:27:24.730] future <- run(future) [01:27:24.730] invisible(future) [01:27:24.730] }), .cleanup = FALSE, .init = FALSE) [01:27:24.730] } [01:27:24.730] } [01:27:24.730] } [01:27:24.730] }) [01:27:24.730] if (TRUE) { [01:27:24.730] base::sink(type = "output", split = FALSE) [01:27:24.730] if (TRUE) { [01:27:24.730] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:24.730] } [01:27:24.730] else { [01:27:24.730] ...future.result["stdout"] <- base::list(NULL) [01:27:24.730] } [01:27:24.730] base::close(...future.stdout) [01:27:24.730] ...future.stdout <- NULL [01:27:24.730] } [01:27:24.730] ...future.result$conditions <- ...future.conditions [01:27:24.730] ...future.result$finished <- base::Sys.time() [01:27:24.730] ...future.result [01:27:24.730] } [01:27:24.734] assign_globals() ... [01:27:24.734] List of 2 [01:27:24.734] $ x: int [1:2] 1 2 [01:27:24.734] $ y: num 3 [01:27:24.734] - attr(*, "where")=List of 2 [01:27:24.734] ..$ x: [01:27:24.734] ..$ y: [01:27:24.734] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [01:27:24.734] - attr(*, "resolved")= logi FALSE [01:27:24.734] - attr(*, "total_size")= num 112 [01:27:24.734] - attr(*, "already-done")= logi TRUE [01:27:24.738] - copied 'x' to environment [01:27:24.739] - copied 'y' to environment [01:27:24.739] assign_globals() ... done [01:27:24.739] plan(): Setting new future strategy stack: [01:27:24.739] List of future strategies: [01:27:24.739] 1. sequential: [01:27:24.739] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.739] - tweaked: FALSE [01:27:24.739] - call: NULL [01:27:24.740] plan(): nbrOfWorkers() = 1 [01:27:24.742] plan(): Setting new future strategy stack: [01:27:24.742] List of future strategies: [01:27:24.742] 1. sequential: [01:27:24.742] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.742] - tweaked: FALSE [01:27:24.742] - call: plan(strategy, substitute = FALSE) [01:27:24.742] plan(): nbrOfWorkers() = 1 [01:27:24.743] SequentialFuture started (and completed) [01:27:24.743] signalConditions() ... [01:27:24.743] - include = 'immediateCondition' [01:27:24.743] - exclude = [01:27:24.743] - resignal = FALSE [01:27:24.744] - Number of conditions: 1 [01:27:24.744] signalConditions() ... done [01:27:24.744] - Launch lazy future ... done [01:27:24.744] run() for 'SequentialFuture' ... done [01:27:24.744] signalConditions() ... [01:27:24.745] - include = 'immediateCondition' [01:27:24.745] - exclude = [01:27:24.745] - resignal = FALSE [01:27:24.745] - Number of conditions: 1 [01:27:24.745] signalConditions() ... done [01:27:24.746] Future state: 'finished' [01:27:24.746] signalConditions() ... [01:27:24.746] - include = 'condition' [01:27:24.746] - exclude = 'immediateCondition' [01:27:24.746] - resignal = TRUE [01:27:24.747] - Number of conditions: 1 [01:27:24.747] - Condition #1: 'simpleError', 'error', 'condition' [01:27:24.747] 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 [01:27:24.748] getGlobalsAndPackages() ... [01:27:24.749] - globals passed as-is: [1] '...' [01:27:24.749] Resolving globals: FALSE [01:27:24.749] Tweak future expression to call with '...' arguments ... [01:27:24.749] { [01:27:24.749] do.call(function(...) { [01:27:24.749] fcn <- function() sum(...) [01:27:24.749] fcn() [01:27:24.749] }, args = future.call.arguments) [01:27:24.749] } [01:27:24.749] Tweak future expression to call with '...' arguments ... DONE [01:27:24.750] The total size of the 1 globals is 112 bytes (112 bytes) [01:27:24.750] 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') [01:27:24.751] - globals: [1] 'future.call.arguments' [01:27:24.751] [01:27:24.751] getGlobalsAndPackages() ... DONE [01:27:24.751] run() for 'Future' ... [01:27:24.752] - state: 'created' [01:27:24.752] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:24.752] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:24.752] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:24.753] - Field: 'label' [01:27:24.753] - Field: 'local' [01:27:24.753] - Field: 'owner' [01:27:24.753] - Field: 'envir' [01:27:24.753] - Field: 'packages' [01:27:24.753] - Field: 'gc' [01:27:24.754] - Field: 'conditions' [01:27:24.754] - Field: 'expr' [01:27:24.754] - Field: 'uuid' [01:27:24.754] - Field: 'seed' [01:27:24.754] - Field: 'version' [01:27:24.755] - Field: 'result' [01:27:24.755] - Field: 'asynchronous' [01:27:24.755] - Field: 'calls' [01:27:24.755] - Field: 'globals' [01:27:24.755] - Field: 'stdout' [01:27:24.755] - Field: 'earlySignal' [01:27:24.756] - Field: 'lazy' [01:27:24.756] - Field: 'state' [01:27:24.756] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:24.756] - Launch lazy future ... [01:27:24.757] Packages needed by the future expression (n = 0): [01:27:24.757] Packages needed by future strategies (n = 0): [01:27:24.757] { [01:27:24.757] { [01:27:24.757] { [01:27:24.757] ...future.startTime <- base::Sys.time() [01:27:24.757] { [01:27:24.757] { [01:27:24.757] { [01:27:24.757] base::local({ [01:27:24.757] has_future <- base::requireNamespace("future", [01:27:24.757] quietly = TRUE) [01:27:24.757] if (has_future) { [01:27:24.757] ns <- base::getNamespace("future") [01:27:24.757] version <- ns[[".package"]][["version"]] [01:27:24.757] if (is.null(version)) [01:27:24.757] version <- utils::packageVersion("future") [01:27:24.757] } [01:27:24.757] else { [01:27:24.757] version <- NULL [01:27:24.757] } [01:27:24.757] if (!has_future || version < "1.8.0") { [01:27:24.757] info <- base::c(r_version = base::gsub("R version ", [01:27:24.757] "", base::R.version$version.string), [01:27:24.757] platform = base::sprintf("%s (%s-bit)", [01:27:24.757] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:24.757] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:24.757] "release", "version")], collapse = " "), [01:27:24.757] hostname = base::Sys.info()[["nodename"]]) [01:27:24.757] info <- base::sprintf("%s: %s", base::names(info), [01:27:24.757] info) [01:27:24.757] info <- base::paste(info, collapse = "; ") [01:27:24.757] if (!has_future) { [01:27:24.757] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:24.757] info) [01:27:24.757] } [01:27:24.757] else { [01:27:24.757] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:24.757] info, version) [01:27:24.757] } [01:27:24.757] base::stop(msg) [01:27:24.757] } [01:27:24.757] }) [01:27:24.757] } [01:27:24.757] options(future.plan = NULL) [01:27:24.757] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.757] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:24.757] } [01:27:24.757] ...future.workdir <- getwd() [01:27:24.757] } [01:27:24.757] ...future.oldOptions <- base::as.list(base::.Options) [01:27:24.757] ...future.oldEnvVars <- base::Sys.getenv() [01:27:24.757] } [01:27:24.757] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:24.757] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:24.757] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:24.757] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:24.757] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:24.757] future.stdout.windows.reencode = NULL, width = 80L) [01:27:24.757] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:24.757] base::names(...future.oldOptions)) [01:27:24.757] } [01:27:24.757] if (FALSE) { [01:27:24.757] } [01:27:24.757] else { [01:27:24.757] if (TRUE) { [01:27:24.757] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:24.757] open = "w") [01:27:24.757] } [01:27:24.757] else { [01:27:24.757] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:24.757] windows = "NUL", "/dev/null"), open = "w") [01:27:24.757] } [01:27:24.757] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:24.757] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:24.757] base::sink(type = "output", split = FALSE) [01:27:24.757] base::close(...future.stdout) [01:27:24.757] }, add = TRUE) [01:27:24.757] } [01:27:24.757] ...future.frame <- base::sys.nframe() [01:27:24.757] ...future.conditions <- base::list() [01:27:24.757] ...future.rng <- base::globalenv()$.Random.seed [01:27:24.757] if (FALSE) { [01:27:24.757] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:24.757] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:24.757] } [01:27:24.757] ...future.result <- base::tryCatch({ [01:27:24.757] base::withCallingHandlers({ [01:27:24.757] ...future.value <- base::withVisible(base::local({ [01:27:24.757] do.call(function(...) { [01:27:24.757] fcn <- function() sum(...) [01:27:24.757] fcn() [01:27:24.757] }, args = future.call.arguments) [01:27:24.757] })) [01:27:24.757] future::FutureResult(value = ...future.value$value, [01:27:24.757] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.757] ...future.rng), globalenv = if (FALSE) [01:27:24.757] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:24.757] ...future.globalenv.names)) [01:27:24.757] else NULL, started = ...future.startTime, version = "1.8") [01:27:24.757] }, condition = base::local({ [01:27:24.757] c <- base::c [01:27:24.757] inherits <- base::inherits [01:27:24.757] invokeRestart <- base::invokeRestart [01:27:24.757] length <- base::length [01:27:24.757] list <- base::list [01:27:24.757] seq.int <- base::seq.int [01:27:24.757] signalCondition <- base::signalCondition [01:27:24.757] sys.calls <- base::sys.calls [01:27:24.757] `[[` <- base::`[[` [01:27:24.757] `+` <- base::`+` [01:27:24.757] `<<-` <- base::`<<-` [01:27:24.757] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:24.757] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:24.757] 3L)] [01:27:24.757] } [01:27:24.757] function(cond) { [01:27:24.757] is_error <- inherits(cond, "error") [01:27:24.757] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:24.757] NULL) [01:27:24.757] if (is_error) { [01:27:24.757] sessionInformation <- function() { [01:27:24.757] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:24.757] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:24.757] search = base::search(), system = base::Sys.info()) [01:27:24.757] } [01:27:24.757] ...future.conditions[[length(...future.conditions) + [01:27:24.757] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:24.757] cond$call), session = sessionInformation(), [01:27:24.757] timestamp = base::Sys.time(), signaled = 0L) [01:27:24.757] signalCondition(cond) [01:27:24.757] } [01:27:24.757] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:24.757] "immediateCondition"))) { [01:27:24.757] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:24.757] ...future.conditions[[length(...future.conditions) + [01:27:24.757] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:24.757] if (TRUE && !signal) { [01:27:24.757] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.757] { [01:27:24.757] inherits <- base::inherits [01:27:24.757] invokeRestart <- base::invokeRestart [01:27:24.757] is.null <- base::is.null [01:27:24.757] muffled <- FALSE [01:27:24.757] if (inherits(cond, "message")) { [01:27:24.757] muffled <- grepl(pattern, "muffleMessage") [01:27:24.757] if (muffled) [01:27:24.757] invokeRestart("muffleMessage") [01:27:24.757] } [01:27:24.757] else if (inherits(cond, "warning")) { [01:27:24.757] muffled <- grepl(pattern, "muffleWarning") [01:27:24.757] if (muffled) [01:27:24.757] invokeRestart("muffleWarning") [01:27:24.757] } [01:27:24.757] else if (inherits(cond, "condition")) { [01:27:24.757] if (!is.null(pattern)) { [01:27:24.757] computeRestarts <- base::computeRestarts [01:27:24.757] grepl <- base::grepl [01:27:24.757] restarts <- computeRestarts(cond) [01:27:24.757] for (restart in restarts) { [01:27:24.757] name <- restart$name [01:27:24.757] if (is.null(name)) [01:27:24.757] next [01:27:24.757] if (!grepl(pattern, name)) [01:27:24.757] next [01:27:24.757] invokeRestart(restart) [01:27:24.757] muffled <- TRUE [01:27:24.757] break [01:27:24.757] } [01:27:24.757] } [01:27:24.757] } [01:27:24.757] invisible(muffled) [01:27:24.757] } [01:27:24.757] muffleCondition(cond, pattern = "^muffle") [01:27:24.757] } [01:27:24.757] } [01:27:24.757] else { [01:27:24.757] if (TRUE) { [01:27:24.757] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.757] { [01:27:24.757] inherits <- base::inherits [01:27:24.757] invokeRestart <- base::invokeRestart [01:27:24.757] is.null <- base::is.null [01:27:24.757] muffled <- FALSE [01:27:24.757] if (inherits(cond, "message")) { [01:27:24.757] muffled <- grepl(pattern, "muffleMessage") [01:27:24.757] if (muffled) [01:27:24.757] invokeRestart("muffleMessage") [01:27:24.757] } [01:27:24.757] else if (inherits(cond, "warning")) { [01:27:24.757] muffled <- grepl(pattern, "muffleWarning") [01:27:24.757] if (muffled) [01:27:24.757] invokeRestart("muffleWarning") [01:27:24.757] } [01:27:24.757] else if (inherits(cond, "condition")) { [01:27:24.757] if (!is.null(pattern)) { [01:27:24.757] computeRestarts <- base::computeRestarts [01:27:24.757] grepl <- base::grepl [01:27:24.757] restarts <- computeRestarts(cond) [01:27:24.757] for (restart in restarts) { [01:27:24.757] name <- restart$name [01:27:24.757] if (is.null(name)) [01:27:24.757] next [01:27:24.757] if (!grepl(pattern, name)) [01:27:24.757] next [01:27:24.757] invokeRestart(restart) [01:27:24.757] muffled <- TRUE [01:27:24.757] break [01:27:24.757] } [01:27:24.757] } [01:27:24.757] } [01:27:24.757] invisible(muffled) [01:27:24.757] } [01:27:24.757] muffleCondition(cond, pattern = "^muffle") [01:27:24.757] } [01:27:24.757] } [01:27:24.757] } [01:27:24.757] })) [01:27:24.757] }, error = function(ex) { [01:27:24.757] base::structure(base::list(value = NULL, visible = NULL, [01:27:24.757] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.757] ...future.rng), started = ...future.startTime, [01:27:24.757] finished = Sys.time(), session_uuid = NA_character_, [01:27:24.757] version = "1.8"), class = "FutureResult") [01:27:24.757] }, finally = { [01:27:24.757] if (!identical(...future.workdir, getwd())) [01:27:24.757] setwd(...future.workdir) [01:27:24.757] { [01:27:24.757] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:24.757] ...future.oldOptions$nwarnings <- NULL [01:27:24.757] } [01:27:24.757] base::options(...future.oldOptions) [01:27:24.757] if (.Platform$OS.type == "windows") { [01:27:24.757] old_names <- names(...future.oldEnvVars) [01:27:24.757] envs <- base::Sys.getenv() [01:27:24.757] names <- names(envs) [01:27:24.757] common <- intersect(names, old_names) [01:27:24.757] added <- setdiff(names, old_names) [01:27:24.757] removed <- setdiff(old_names, names) [01:27:24.757] changed <- common[...future.oldEnvVars[common] != [01:27:24.757] envs[common]] [01:27:24.757] NAMES <- toupper(changed) [01:27:24.757] args <- list() [01:27:24.757] for (kk in seq_along(NAMES)) { [01:27:24.757] name <- changed[[kk]] [01:27:24.757] NAME <- NAMES[[kk]] [01:27:24.757] if (name != NAME && is.element(NAME, old_names)) [01:27:24.757] next [01:27:24.757] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.757] } [01:27:24.757] NAMES <- toupper(added) [01:27:24.757] for (kk in seq_along(NAMES)) { [01:27:24.757] name <- added[[kk]] [01:27:24.757] NAME <- NAMES[[kk]] [01:27:24.757] if (name != NAME && is.element(NAME, old_names)) [01:27:24.757] next [01:27:24.757] args[[name]] <- "" [01:27:24.757] } [01:27:24.757] NAMES <- toupper(removed) [01:27:24.757] for (kk in seq_along(NAMES)) { [01:27:24.757] name <- removed[[kk]] [01:27:24.757] NAME <- NAMES[[kk]] [01:27:24.757] if (name != NAME && is.element(NAME, old_names)) [01:27:24.757] next [01:27:24.757] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.757] } [01:27:24.757] if (length(args) > 0) [01:27:24.757] base::do.call(base::Sys.setenv, args = args) [01:27:24.757] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:24.757] } [01:27:24.757] else { [01:27:24.757] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:24.757] } [01:27:24.757] { [01:27:24.757] if (base::length(...future.futureOptionsAdded) > [01:27:24.757] 0L) { [01:27:24.757] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:24.757] base::names(opts) <- ...future.futureOptionsAdded [01:27:24.757] base::options(opts) [01:27:24.757] } [01:27:24.757] { [01:27:24.757] { [01:27:24.757] NULL [01:27:24.757] RNGkind("Mersenne-Twister") [01:27:24.757] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:24.757] inherits = FALSE) [01:27:24.757] } [01:27:24.757] options(future.plan = NULL) [01:27:24.757] if (is.na(NA_character_)) [01:27:24.757] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.757] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:24.757] future::plan(list(function (..., envir = parent.frame()) [01:27:24.757] { [01:27:24.757] future <- SequentialFuture(..., envir = envir) [01:27:24.757] if (!future$lazy) [01:27:24.757] future <- run(future) [01:27:24.757] invisible(future) [01:27:24.757] }), .cleanup = FALSE, .init = FALSE) [01:27:24.757] } [01:27:24.757] } [01:27:24.757] } [01:27:24.757] }) [01:27:24.757] if (TRUE) { [01:27:24.757] base::sink(type = "output", split = FALSE) [01:27:24.757] if (TRUE) { [01:27:24.757] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:24.757] } [01:27:24.757] else { [01:27:24.757] ...future.result["stdout"] <- base::list(NULL) [01:27:24.757] } [01:27:24.757] base::close(...future.stdout) [01:27:24.757] ...future.stdout <- NULL [01:27:24.757] } [01:27:24.757] ...future.result$conditions <- ...future.conditions [01:27:24.757] ...future.result$finished <- base::Sys.time() [01:27:24.757] ...future.result [01:27:24.757] } [01:27:24.761] assign_globals() ... [01:27:24.762] List of 1 [01:27:24.762] $ future.call.arguments:List of 2 [01:27:24.762] ..$ : int [1:2] 1 2 [01:27:24.762] ..$ : num 3 [01:27:24.762] ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [01:27:24.762] - attr(*, "where")=List of 1 [01:27:24.762] ..$ future.call.arguments: [01:27:24.762] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [01:27:24.762] - attr(*, "resolved")= logi FALSE [01:27:24.762] - attr(*, "total_size")= num 112 [01:27:24.762] - attr(*, "already-done")= logi TRUE [01:27:24.768] - copied 'future.call.arguments' to environment [01:27:24.768] assign_globals() ... done [01:27:24.768] plan(): Setting new future strategy stack: [01:27:24.769] List of future strategies: [01:27:24.769] 1. sequential: [01:27:24.769] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.769] - tweaked: FALSE [01:27:24.769] - call: NULL [01:27:24.769] plan(): nbrOfWorkers() = 1 [01:27:24.770] plan(): Setting new future strategy stack: [01:27:24.771] List of future strategies: [01:27:24.771] 1. sequential: [01:27:24.771] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.771] - tweaked: FALSE [01:27:24.771] - call: plan(strategy, substitute = FALSE) [01:27:24.771] plan(): nbrOfWorkers() = 1 [01:27:24.772] SequentialFuture started (and completed) [01:27:24.772] - Launch lazy future ... done [01:27:24.772] 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 [01:27:24.773] getGlobalsAndPackages() ... [01:27:24.773] Searching for globals... [01:27:24.777] - globals found: [9] 'fcn', 'x', 'y', '{', '=', '~', 'list', 'sum', '...' [01:27:24.777] Searching for globals ... DONE [01:27:24.777] Resolving globals: FALSE [01:27:24.778] Tweak future expression to call with '...' arguments ... [01:27:24.778] The total size of the 3 globals is 4.18 KiB (4280 bytes) [01:27:24.779] 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') [01:27:24.779] - globals: [3] 'fcn', 'x', 'y' [01:27:24.779] [01:27:24.779] getGlobalsAndPackages() ... DONE [01:27:24.780] run() for 'Future' ... [01:27:24.780] - state: 'created' [01:27:24.780] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:24.780] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:24.781] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:24.781] - Field: 'label' [01:27:24.781] - Field: 'local' [01:27:24.781] - Field: 'owner' [01:27:24.781] - Field: 'envir' [01:27:24.782] - Field: 'packages' [01:27:24.782] - Field: 'gc' [01:27:24.782] - Field: 'conditions' [01:27:24.782] - Field: 'expr' [01:27:24.782] - Field: 'uuid' [01:27:24.782] - Field: 'seed' [01:27:24.783] - Field: 'version' [01:27:24.783] - Field: 'result' [01:27:24.783] - Field: 'asynchronous' [01:27:24.783] - Field: 'calls' [01:27:24.783] - Field: 'globals' [01:27:24.784] - Field: 'stdout' [01:27:24.784] - Field: 'earlySignal' [01:27:24.784] - Field: 'lazy' [01:27:24.784] - Field: 'state' [01:27:24.784] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:24.784] - Launch lazy future ... [01:27:24.785] Packages needed by the future expression (n = 0): [01:27:24.785] Packages needed by future strategies (n = 0): [01:27:24.785] { [01:27:24.785] { [01:27:24.785] { [01:27:24.785] ...future.startTime <- base::Sys.time() [01:27:24.785] { [01:27:24.785] { [01:27:24.785] { [01:27:24.785] base::local({ [01:27:24.785] has_future <- base::requireNamespace("future", [01:27:24.785] quietly = TRUE) [01:27:24.785] if (has_future) { [01:27:24.785] ns <- base::getNamespace("future") [01:27:24.785] version <- ns[[".package"]][["version"]] [01:27:24.785] if (is.null(version)) [01:27:24.785] version <- utils::packageVersion("future") [01:27:24.785] } [01:27:24.785] else { [01:27:24.785] version <- NULL [01:27:24.785] } [01:27:24.785] if (!has_future || version < "1.8.0") { [01:27:24.785] info <- base::c(r_version = base::gsub("R version ", [01:27:24.785] "", base::R.version$version.string), [01:27:24.785] platform = base::sprintf("%s (%s-bit)", [01:27:24.785] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:24.785] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:24.785] "release", "version")], collapse = " "), [01:27:24.785] hostname = base::Sys.info()[["nodename"]]) [01:27:24.785] info <- base::sprintf("%s: %s", base::names(info), [01:27:24.785] info) [01:27:24.785] info <- base::paste(info, collapse = "; ") [01:27:24.785] if (!has_future) { [01:27:24.785] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:24.785] info) [01:27:24.785] } [01:27:24.785] else { [01:27:24.785] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:24.785] info, version) [01:27:24.785] } [01:27:24.785] base::stop(msg) [01:27:24.785] } [01:27:24.785] }) [01:27:24.785] } [01:27:24.785] options(future.plan = NULL) [01:27:24.785] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.785] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:24.785] } [01:27:24.785] ...future.workdir <- getwd() [01:27:24.785] } [01:27:24.785] ...future.oldOptions <- base::as.list(base::.Options) [01:27:24.785] ...future.oldEnvVars <- base::Sys.getenv() [01:27:24.785] } [01:27:24.785] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:24.785] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:24.785] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:24.785] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:24.785] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:24.785] future.stdout.windows.reencode = NULL, width = 80L) [01:27:24.785] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:24.785] base::names(...future.oldOptions)) [01:27:24.785] } [01:27:24.785] if (FALSE) { [01:27:24.785] } [01:27:24.785] else { [01:27:24.785] if (TRUE) { [01:27:24.785] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:24.785] open = "w") [01:27:24.785] } [01:27:24.785] else { [01:27:24.785] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:24.785] windows = "NUL", "/dev/null"), open = "w") [01:27:24.785] } [01:27:24.785] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:24.785] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:24.785] base::sink(type = "output", split = FALSE) [01:27:24.785] base::close(...future.stdout) [01:27:24.785] }, add = TRUE) [01:27:24.785] } [01:27:24.785] ...future.frame <- base::sys.nframe() [01:27:24.785] ...future.conditions <- base::list() [01:27:24.785] ...future.rng <- base::globalenv()$.Random.seed [01:27:24.785] if (FALSE) { [01:27:24.785] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:24.785] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:24.785] } [01:27:24.785] ...future.result <- base::tryCatch({ [01:27:24.785] base::withCallingHandlers({ [01:27:24.785] ...future.value <- base::withVisible(base::local(fcn(x, [01:27:24.785] y))) [01:27:24.785] future::FutureResult(value = ...future.value$value, [01:27:24.785] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.785] ...future.rng), globalenv = if (FALSE) [01:27:24.785] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:24.785] ...future.globalenv.names)) [01:27:24.785] else NULL, started = ...future.startTime, version = "1.8") [01:27:24.785] }, condition = base::local({ [01:27:24.785] c <- base::c [01:27:24.785] inherits <- base::inherits [01:27:24.785] invokeRestart <- base::invokeRestart [01:27:24.785] length <- base::length [01:27:24.785] list <- base::list [01:27:24.785] seq.int <- base::seq.int [01:27:24.785] signalCondition <- base::signalCondition [01:27:24.785] sys.calls <- base::sys.calls [01:27:24.785] `[[` <- base::`[[` [01:27:24.785] `+` <- base::`+` [01:27:24.785] `<<-` <- base::`<<-` [01:27:24.785] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:24.785] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:24.785] 3L)] [01:27:24.785] } [01:27:24.785] function(cond) { [01:27:24.785] is_error <- inherits(cond, "error") [01:27:24.785] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:24.785] NULL) [01:27:24.785] if (is_error) { [01:27:24.785] sessionInformation <- function() { [01:27:24.785] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:24.785] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:24.785] search = base::search(), system = base::Sys.info()) [01:27:24.785] } [01:27:24.785] ...future.conditions[[length(...future.conditions) + [01:27:24.785] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:24.785] cond$call), session = sessionInformation(), [01:27:24.785] timestamp = base::Sys.time(), signaled = 0L) [01:27:24.785] signalCondition(cond) [01:27:24.785] } [01:27:24.785] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:24.785] "immediateCondition"))) { [01:27:24.785] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:24.785] ...future.conditions[[length(...future.conditions) + [01:27:24.785] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:24.785] if (TRUE && !signal) { [01:27:24.785] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.785] { [01:27:24.785] inherits <- base::inherits [01:27:24.785] invokeRestart <- base::invokeRestart [01:27:24.785] is.null <- base::is.null [01:27:24.785] muffled <- FALSE [01:27:24.785] if (inherits(cond, "message")) { [01:27:24.785] muffled <- grepl(pattern, "muffleMessage") [01:27:24.785] if (muffled) [01:27:24.785] invokeRestart("muffleMessage") [01:27:24.785] } [01:27:24.785] else if (inherits(cond, "warning")) { [01:27:24.785] muffled <- grepl(pattern, "muffleWarning") [01:27:24.785] if (muffled) [01:27:24.785] invokeRestart("muffleWarning") [01:27:24.785] } [01:27:24.785] else if (inherits(cond, "condition")) { [01:27:24.785] if (!is.null(pattern)) { [01:27:24.785] computeRestarts <- base::computeRestarts [01:27:24.785] grepl <- base::grepl [01:27:24.785] restarts <- computeRestarts(cond) [01:27:24.785] for (restart in restarts) { [01:27:24.785] name <- restart$name [01:27:24.785] if (is.null(name)) [01:27:24.785] next [01:27:24.785] if (!grepl(pattern, name)) [01:27:24.785] next [01:27:24.785] invokeRestart(restart) [01:27:24.785] muffled <- TRUE [01:27:24.785] break [01:27:24.785] } [01:27:24.785] } [01:27:24.785] } [01:27:24.785] invisible(muffled) [01:27:24.785] } [01:27:24.785] muffleCondition(cond, pattern = "^muffle") [01:27:24.785] } [01:27:24.785] } [01:27:24.785] else { [01:27:24.785] if (TRUE) { [01:27:24.785] muffleCondition <- function (cond, pattern = "^muffle") [01:27:24.785] { [01:27:24.785] inherits <- base::inherits [01:27:24.785] invokeRestart <- base::invokeRestart [01:27:24.785] is.null <- base::is.null [01:27:24.785] muffled <- FALSE [01:27:24.785] if (inherits(cond, "message")) { [01:27:24.785] muffled <- grepl(pattern, "muffleMessage") [01:27:24.785] if (muffled) [01:27:24.785] invokeRestart("muffleMessage") [01:27:24.785] } [01:27:24.785] else if (inherits(cond, "warning")) { [01:27:24.785] muffled <- grepl(pattern, "muffleWarning") [01:27:24.785] if (muffled) [01:27:24.785] invokeRestart("muffleWarning") [01:27:24.785] } [01:27:24.785] else if (inherits(cond, "condition")) { [01:27:24.785] if (!is.null(pattern)) { [01:27:24.785] computeRestarts <- base::computeRestarts [01:27:24.785] grepl <- base::grepl [01:27:24.785] restarts <- computeRestarts(cond) [01:27:24.785] for (restart in restarts) { [01:27:24.785] name <- restart$name [01:27:24.785] if (is.null(name)) [01:27:24.785] next [01:27:24.785] if (!grepl(pattern, name)) [01:27:24.785] next [01:27:24.785] invokeRestart(restart) [01:27:24.785] muffled <- TRUE [01:27:24.785] break [01:27:24.785] } [01:27:24.785] } [01:27:24.785] } [01:27:24.785] invisible(muffled) [01:27:24.785] } [01:27:24.785] muffleCondition(cond, pattern = "^muffle") [01:27:24.785] } [01:27:24.785] } [01:27:24.785] } [01:27:24.785] })) [01:27:24.785] }, error = function(ex) { [01:27:24.785] base::structure(base::list(value = NULL, visible = NULL, [01:27:24.785] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:24.785] ...future.rng), started = ...future.startTime, [01:27:24.785] finished = Sys.time(), session_uuid = NA_character_, [01:27:24.785] version = "1.8"), class = "FutureResult") [01:27:24.785] }, finally = { [01:27:24.785] if (!identical(...future.workdir, getwd())) [01:27:24.785] setwd(...future.workdir) [01:27:24.785] { [01:27:24.785] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:24.785] ...future.oldOptions$nwarnings <- NULL [01:27:24.785] } [01:27:24.785] base::options(...future.oldOptions) [01:27:24.785] if (.Platform$OS.type == "windows") { [01:27:24.785] old_names <- names(...future.oldEnvVars) [01:27:24.785] envs <- base::Sys.getenv() [01:27:24.785] names <- names(envs) [01:27:24.785] common <- intersect(names, old_names) [01:27:24.785] added <- setdiff(names, old_names) [01:27:24.785] removed <- setdiff(old_names, names) [01:27:24.785] changed <- common[...future.oldEnvVars[common] != [01:27:24.785] envs[common]] [01:27:24.785] NAMES <- toupper(changed) [01:27:24.785] args <- list() [01:27:24.785] for (kk in seq_along(NAMES)) { [01:27:24.785] name <- changed[[kk]] [01:27:24.785] NAME <- NAMES[[kk]] [01:27:24.785] if (name != NAME && is.element(NAME, old_names)) [01:27:24.785] next [01:27:24.785] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.785] } [01:27:24.785] NAMES <- toupper(added) [01:27:24.785] for (kk in seq_along(NAMES)) { [01:27:24.785] name <- added[[kk]] [01:27:24.785] NAME <- NAMES[[kk]] [01:27:24.785] if (name != NAME && is.element(NAME, old_names)) [01:27:24.785] next [01:27:24.785] args[[name]] <- "" [01:27:24.785] } [01:27:24.785] NAMES <- toupper(removed) [01:27:24.785] for (kk in seq_along(NAMES)) { [01:27:24.785] name <- removed[[kk]] [01:27:24.785] NAME <- NAMES[[kk]] [01:27:24.785] if (name != NAME && is.element(NAME, old_names)) [01:27:24.785] next [01:27:24.785] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:24.785] } [01:27:24.785] if (length(args) > 0) [01:27:24.785] base::do.call(base::Sys.setenv, args = args) [01:27:24.785] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:24.785] } [01:27:24.785] else { [01:27:24.785] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:24.785] } [01:27:24.785] { [01:27:24.785] if (base::length(...future.futureOptionsAdded) > [01:27:24.785] 0L) { [01:27:24.785] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:24.785] base::names(opts) <- ...future.futureOptionsAdded [01:27:24.785] base::options(opts) [01:27:24.785] } [01:27:24.785] { [01:27:24.785] { [01:27:24.785] NULL [01:27:24.785] RNGkind("Mersenne-Twister") [01:27:24.785] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:24.785] inherits = FALSE) [01:27:24.785] } [01:27:24.785] options(future.plan = NULL) [01:27:24.785] if (is.na(NA_character_)) [01:27:24.785] Sys.unsetenv("R_FUTURE_PLAN") [01:27:24.785] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:24.785] future::plan(list(function (..., envir = parent.frame()) [01:27:24.785] { [01:27:24.785] future <- SequentialFuture(..., envir = envir) [01:27:24.785] if (!future$lazy) [01:27:24.785] future <- run(future) [01:27:24.785] invisible(future) [01:27:24.785] }), .cleanup = FALSE, .init = FALSE) [01:27:24.785] } [01:27:24.785] } [01:27:24.785] } [01:27:24.785] }) [01:27:24.785] if (TRUE) { [01:27:24.785] base::sink(type = "output", split = FALSE) [01:27:24.785] if (TRUE) { [01:27:24.785] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:24.785] } [01:27:24.785] else { [01:27:24.785] ...future.result["stdout"] <- base::list(NULL) [01:27:24.785] } [01:27:24.785] base::close(...future.stdout) [01:27:24.785] ...future.stdout <- NULL [01:27:24.785] } [01:27:24.785] ...future.result$conditions <- ...future.conditions [01:27:24.785] ...future.result$finished <- base::Sys.time() [01:27:24.785] ...future.result [01:27:24.785] } [01:27:24.789] assign_globals() ... [01:27:24.790] List of 3 [01:27:24.790] $ fcn:function (x, y) [01:27:24.790] $ x : int [1:2] 1 2 [01:27:24.790] $ y : num 3 [01:27:24.790] - attr(*, "where")=List of 3 [01:27:24.790] ..$ fcn: [01:27:24.790] ..$ x : [01:27:24.790] ..$ y : [01:27:24.790] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [01:27:24.790] - attr(*, "resolved")= logi FALSE [01:27:24.790] - attr(*, "total_size")= num 4280 [01:27:24.790] - attr(*, "already-done")= logi TRUE [01:27:24.794] - reassign environment for 'fcn' [01:27:24.794] - copied 'fcn' to environment [01:27:24.794] - copied 'x' to environment [01:27:24.794] - copied 'y' to environment [01:27:24.795] assign_globals() ... done [01:27:24.795] plan(): Setting new future strategy stack: [01:27:24.795] List of future strategies: [01:27:24.795] 1. sequential: [01:27:24.795] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.795] - tweaked: FALSE [01:27:24.795] - call: NULL [01:27:24.796] plan(): nbrOfWorkers() = 1 [01:27:24.797] plan(): Setting new future strategy stack: [01:27:24.797] List of future strategies: [01:27:24.797] 1. sequential: [01:27:24.797] - args: function (..., envir = parent.frame(), workers = "") [01:27:24.797] - tweaked: FALSE [01:27:24.797] - call: plan(strategy, substitute = FALSE) [01:27:24.798] plan(): nbrOfWorkers() = 1 [01:27:24.798] SequentialFuture started (and completed) [01:27:24.798] - Launch lazy future ... done [01:27:24.798] run() for 'SequentialFuture' ... done [1] 6 Testing with 1 cores ... DONE Testing with 2 cores ... *** Global argument '...' ... - plan('multisession') ... [01:27:24.808] plan(): Setting new future strategy stack: [01:27:24.808] List of future strategies: [01:27:24.808] 1. multisession: [01:27:24.808] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [01:27:24.808] - tweaked: FALSE [01:27:24.808] - call: plan(strategy, substitute = FALSE) [01:27:24.808] plan(): plan_init() of 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... [01:27:24.809] multisession: [01:27:24.809] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [01:27:24.809] - tweaked: FALSE [01:27:24.809] - call: plan(strategy, substitute = FALSE) [01:27:24.814] getGlobalsAndPackages() ... [01:27:24.814] Not searching for globals [01:27:24.814] - globals: [0] [01:27:24.815] getGlobalsAndPackages() ... DONE [01:27:24.815] [local output] makeClusterPSOCK() ... [01:27:24.918] [local output] Workers: [n = 2] 'localhost', 'localhost' [01:27:24.925] [local output] Base port: 38413 [01:27:24.925] [local output] Getting setup options for 2 cluster nodes ... [01:27:24.925] [local output] - Node 1 of 2 ... [01:27:24.926] [local output] localMachine=TRUE => revtunnel=FALSE [01:27:24.927] Testing if worker's PID can be inferred: '"D:/RCompile/recent/R/bin/x64/Rscript" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/Rtmp2twJhK/worker.rank=1.parallelly.parent=12992.32c073cbb0a.pid\")), silent = TRUE)" -e "file.exists(\"D:/temp/Rtmp2twJhK/worker.rank=1.parallelly.parent=12992.32c073cbb0a.pid\")"' [01:27:25.257] - Possible to infer worker's PID: TRUE [01:27:25.258] [local output] Rscript port: 38413 [01:27:25.258] [local output] - Node 2 of 2 ... [01:27:25.259] [local output] localMachine=TRUE => revtunnel=FALSE [01:27:25.260] [local output] Rscript port: 38413 [01:27:25.261] [local output] Getting setup options for 2 cluster nodes ... done [01:27:25.261] [local output] - Parallel setup requested for some PSOCK nodes [01:27:25.262] [local output] Setting up PSOCK nodes in parallel [01:27:25.262] List of 36 [01:27:25.262] $ worker : chr "localhost" [01:27:25.262] ..- attr(*, "localhost")= logi TRUE [01:27:25.262] $ master : chr "localhost" [01:27:25.262] $ port : int 38413 [01:27:25.262] $ connectTimeout : num 120 [01:27:25.262] $ timeout : num 120 [01:27:25.262] $ rscript : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\"" [01:27:25.262] $ homogeneous : logi TRUE [01:27:25.262] $ rscript_args : chr "--default-packages=datasets,utils,grDevices,graphics,stats,methods -e \"#label=dotdotdot.R:12992:CRANWIN3:CRAN\"| __truncated__ [01:27:25.262] $ rscript_envs : NULL [01:27:25.262] $ rscript_libs : chr [1:2] "D:/temp/RtmpCIb4qz/RLIBS_32fc52ae7b47" "D:/RCompile/recent/R/library" [01:27:25.262] $ rscript_startup : NULL [01:27:25.262] $ rscript_sh : chr "cmd" [01:27:25.262] $ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [01:27:25.262] $ methods : logi TRUE [01:27:25.262] $ socketOptions : chr "no-delay" [01:27:25.262] $ useXDR : logi FALSE [01:27:25.262] $ outfile : chr "/dev/null" [01:27:25.262] $ renice : int NA [01:27:25.262] $ rshcmd : NULL [01:27:25.262] $ user : chr(0) [01:27:25.262] $ revtunnel : logi FALSE [01:27:25.262] $ rshlogfile : NULL [01:27:25.262] $ rshopts : chr(0) [01:27:25.262] $ rank : int 1 [01:27:25.262] $ manual : logi FALSE [01:27:25.262] $ dryrun : logi FALSE [01:27:25.262] $ quiet : logi FALSE [01:27:25.262] $ setup_strategy : chr "parallel" [01:27:25.262] $ local_cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [01:27:25.262] $ pidfile : chr "D:/temp/Rtmp2twJhK/worker.rank=1.parallelly.parent=12992.32c073cbb0a.pid" [01:27:25.262] $ rshcmd_label : NULL [01:27:25.262] $ rsh_call : NULL [01:27:25.262] $ cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [01:27:25.262] $ localMachine : logi TRUE [01:27:25.262] $ make_fcn :function (worker = getOption2("parallelly.localhost.hostname", "localhost"), [01:27:25.262] master = NULL, port, connectTimeout = getOption2("parallelly.makeNodePSOCK.connectTimeout", [01:27:25.262] 2 * 60), timeout = getOption2("parallelly.makeNodePSOCK.timeout", [01:27:25.262] 30 * 24 * 60 * 60), rscript = NULL, homogeneous = NULL, rscript_args = NULL, [01:27:25.262] rscript_envs = NULL, rscript_libs = NULL, rscript_startup = NULL, rscript_sh = c("auto", [01:27:25.262] "cmd", "sh"), default_packages = c("datasets", "utils", "grDevices", [01:27:25.262] "graphics", "stats", if (methods) "methods"), methods = TRUE, socketOptions = getOption2("parallelly.makeNodePSOCK.socketOptions", [01:27:25.262] "no-delay"), useXDR = getOption2("parallelly.makeNodePSOCK.useXDR", [01:27:25.262] FALSE), outfile = "/dev/null", renice = NA_integer_, rshcmd = getOption2("parallelly.makeNodePSOCK.rshcmd", [01:27:25.262] NULL), user = NULL, revtunnel = NA, rshlogfile = NULL, rshopts = getOption2("parallelly.makeNodePSOCK.rshopts", [01:27:25.262] NULL), rank = 1L, manual = FALSE, dryrun = FALSE, quiet = FALSE, [01:27:25.262] setup_strategy = getOption2("parallelly.makeNodePSOCK.setup_strategy", [01:27:25.262] "parallel"), action = c("launch", "options"), verbose = FALSE) [01:27:25.262] $ arguments :List of 28 [01:27:25.262] ..$ worker : chr "localhost" [01:27:25.262] ..$ master : NULL [01:27:25.262] ..$ port : int 38413 [01:27:25.262] ..$ connectTimeout : num 120 [01:27:25.262] ..$ timeout : num 120 [01:27:25.262] ..$ rscript : NULL [01:27:25.262] ..$ homogeneous : NULL [01:27:25.262] ..$ rscript_args : NULL [01:27:25.262] ..$ rscript_envs : NULL [01:27:25.262] ..$ rscript_libs : chr [1:2] "D:/temp/RtmpCIb4qz/RLIBS_32fc52ae7b47" "D:/RCompile/recent/R/library" [01:27:25.262] ..$ rscript_startup : NULL [01:27:25.262] ..$ rscript_sh : chr [1:3] "auto" "cmd" "sh" [01:27:25.262] ..$ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [01:27:25.262] ..$ methods : logi TRUE [01:27:25.262] ..$ socketOptions : chr "no-delay" [01:27:25.262] ..$ useXDR : logi FALSE [01:27:25.262] ..$ outfile : chr "/dev/null" [01:27:25.262] ..$ renice : int NA [01:27:25.262] ..$ rshcmd : NULL [01:27:25.262] ..$ user : NULL [01:27:25.262] ..$ revtunnel : logi NA [01:27:25.262] ..$ rshlogfile : NULL [01:27:25.262] ..$ rshopts : NULL [01:27:25.262] ..$ rank : int 1 [01:27:25.262] ..$ manual : logi FALSE [01:27:25.262] ..$ dryrun : logi FALSE [01:27:25.262] ..$ quiet : logi FALSE [01:27:25.262] ..$ setup_strategy : chr "parallel" [01:27:25.262] - attr(*, "class")= chr [1:2] "makeNodePSOCKOptions" "makeNodeOptions" [01:27:25.292] [local output] System call to launch all workers: [01:27:25.292] [local output] "D:/RCompile/recent/R/bin/x64/Rscript" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "#label=dotdotdot.R:12992:CRANWIN3:CRAN" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/Rtmp2twJhK/worker.rank=1.parallelly.parent=12992.32c073cbb0a.pid\")), silent = TRUE)" -e "options(socketOptions = \"no-delay\")" -e ".libPaths(c(\"D:/temp/RtmpCIb4qz/RLIBS_32fc52ae7b47\",\"D:/RCompile/recent/R/library\"))" -e "workRSOCK <- tryCatch(parallel:::.workRSOCK, error=function(e) parallel:::.slaveRSOCK); workRSOCK()" MASTER=localhost PORT=38413 OUT=/dev/null TIMEOUT=120 XDR=FALSE SETUPTIMEOUT=120 SETUPSTRATEGY=parallel [01:27:25.292] [local output] Starting PSOCK main server [01:27:25.298] [local output] Workers launched [01:27:25.299] [local output] Waiting for workers to connect back [01:27:25.299] - [local output] 0 workers out of 2 ready [01:27:25.476] - [local output] 0 workers out of 2 ready [01:27:25.477] - [local output] 1 workers out of 2 ready [01:27:25.512] - [local output] 1 workers out of 2 ready [01:27:25.512] - [local output] 2 workers out of 2 ready [01:27:25.513] [local output] Launching of workers completed [01:27:25.513] [local output] Collecting session information from workers [01:27:25.514] [local output] - Worker #1 of 2 [01:27:25.515] [local output] - Worker #2 of 2 [01:27:25.515] [local output] makeClusterPSOCK() ... done [01:27:25.528] Packages needed by the future expression (n = 0): [01:27:25.528] Packages needed by future strategies (n = 0): [01:27:25.529] { [01:27:25.529] { [01:27:25.529] { [01:27:25.529] ...future.startTime <- base::Sys.time() [01:27:25.529] { [01:27:25.529] { [01:27:25.529] { [01:27:25.529] { [01:27:25.529] base::local({ [01:27:25.529] has_future <- base::requireNamespace("future", [01:27:25.529] quietly = TRUE) [01:27:25.529] if (has_future) { [01:27:25.529] ns <- base::getNamespace("future") [01:27:25.529] version <- ns[[".package"]][["version"]] [01:27:25.529] if (is.null(version)) [01:27:25.529] version <- utils::packageVersion("future") [01:27:25.529] } [01:27:25.529] else { [01:27:25.529] version <- NULL [01:27:25.529] } [01:27:25.529] if (!has_future || version < "1.8.0") { [01:27:25.529] info <- base::c(r_version = base::gsub("R version ", [01:27:25.529] "", base::R.version$version.string), [01:27:25.529] platform = base::sprintf("%s (%s-bit)", [01:27:25.529] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:25.529] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:25.529] "release", "version")], collapse = " "), [01:27:25.529] hostname = base::Sys.info()[["nodename"]]) [01:27:25.529] info <- base::sprintf("%s: %s", base::names(info), [01:27:25.529] info) [01:27:25.529] info <- base::paste(info, collapse = "; ") [01:27:25.529] if (!has_future) { [01:27:25.529] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:25.529] info) [01:27:25.529] } [01:27:25.529] else { [01:27:25.529] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:25.529] info, version) [01:27:25.529] } [01:27:25.529] base::stop(msg) [01:27:25.529] } [01:27:25.529] }) [01:27:25.529] } [01:27:25.529] ...future.mc.cores.old <- base::getOption("mc.cores") [01:27:25.529] base::options(mc.cores = 1L) [01:27:25.529] } [01:27:25.529] options(future.plan = NULL) [01:27:25.529] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.529] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:25.529] } [01:27:25.529] ...future.workdir <- getwd() [01:27:25.529] } [01:27:25.529] ...future.oldOptions <- base::as.list(base::.Options) [01:27:25.529] ...future.oldEnvVars <- base::Sys.getenv() [01:27:25.529] } [01:27:25.529] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:25.529] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:25.529] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:25.529] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:25.529] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:25.529] future.stdout.windows.reencode = NULL, width = 80L) [01:27:25.529] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:25.529] base::names(...future.oldOptions)) [01:27:25.529] } [01:27:25.529] if (FALSE) { [01:27:25.529] } [01:27:25.529] else { [01:27:25.529] if (TRUE) { [01:27:25.529] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:25.529] open = "w") [01:27:25.529] } [01:27:25.529] else { [01:27:25.529] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:25.529] windows = "NUL", "/dev/null"), open = "w") [01:27:25.529] } [01:27:25.529] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:25.529] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:25.529] base::sink(type = "output", split = FALSE) [01:27:25.529] base::close(...future.stdout) [01:27:25.529] }, add = TRUE) [01:27:25.529] } [01:27:25.529] ...future.frame <- base::sys.nframe() [01:27:25.529] ...future.conditions <- base::list() [01:27:25.529] ...future.rng <- base::globalenv()$.Random.seed [01:27:25.529] if (FALSE) { [01:27:25.529] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:25.529] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:25.529] } [01:27:25.529] ...future.result <- base::tryCatch({ [01:27:25.529] base::withCallingHandlers({ [01:27:25.529] ...future.value <- base::withVisible(base::local({ [01:27:25.529] ...future.makeSendCondition <- base::local({ [01:27:25.529] sendCondition <- NULL [01:27:25.529] function(frame = 1L) { [01:27:25.529] if (is.function(sendCondition)) [01:27:25.529] return(sendCondition) [01:27:25.529] ns <- getNamespace("parallel") [01:27:25.529] if (exists("sendData", mode = "function", [01:27:25.529] envir = ns)) { [01:27:25.529] parallel_sendData <- get("sendData", mode = "function", [01:27:25.529] envir = ns) [01:27:25.529] envir <- sys.frame(frame) [01:27:25.529] master <- NULL [01:27:25.529] while (!identical(envir, .GlobalEnv) && [01:27:25.529] !identical(envir, emptyenv())) { [01:27:25.529] if (exists("master", mode = "list", envir = envir, [01:27:25.529] inherits = FALSE)) { [01:27:25.529] master <- get("master", mode = "list", [01:27:25.529] envir = envir, inherits = FALSE) [01:27:25.529] if (inherits(master, c("SOCKnode", [01:27:25.529] "SOCK0node"))) { [01:27:25.529] sendCondition <<- function(cond) { [01:27:25.529] data <- list(type = "VALUE", value = cond, [01:27:25.529] success = TRUE) [01:27:25.529] parallel_sendData(master, data) [01:27:25.529] } [01:27:25.529] return(sendCondition) [01:27:25.529] } [01:27:25.529] } [01:27:25.529] frame <- frame + 1L [01:27:25.529] envir <- sys.frame(frame) [01:27:25.529] } [01:27:25.529] } [01:27:25.529] sendCondition <<- function(cond) NULL [01:27:25.529] } [01:27:25.529] }) [01:27:25.529] withCallingHandlers({ [01:27:25.529] NA [01:27:25.529] }, immediateCondition = function(cond) { [01:27:25.529] sendCondition <- ...future.makeSendCondition() [01:27:25.529] sendCondition(cond) [01:27:25.529] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.529] { [01:27:25.529] inherits <- base::inherits [01:27:25.529] invokeRestart <- base::invokeRestart [01:27:25.529] is.null <- base::is.null [01:27:25.529] muffled <- FALSE [01:27:25.529] if (inherits(cond, "message")) { [01:27:25.529] muffled <- grepl(pattern, "muffleMessage") [01:27:25.529] if (muffled) [01:27:25.529] invokeRestart("muffleMessage") [01:27:25.529] } [01:27:25.529] else if (inherits(cond, "warning")) { [01:27:25.529] muffled <- grepl(pattern, "muffleWarning") [01:27:25.529] if (muffled) [01:27:25.529] invokeRestart("muffleWarning") [01:27:25.529] } [01:27:25.529] else if (inherits(cond, "condition")) { [01:27:25.529] if (!is.null(pattern)) { [01:27:25.529] computeRestarts <- base::computeRestarts [01:27:25.529] grepl <- base::grepl [01:27:25.529] restarts <- computeRestarts(cond) [01:27:25.529] for (restart in restarts) { [01:27:25.529] name <- restart$name [01:27:25.529] if (is.null(name)) [01:27:25.529] next [01:27:25.529] if (!grepl(pattern, name)) [01:27:25.529] next [01:27:25.529] invokeRestart(restart) [01:27:25.529] muffled <- TRUE [01:27:25.529] break [01:27:25.529] } [01:27:25.529] } [01:27:25.529] } [01:27:25.529] invisible(muffled) [01:27:25.529] } [01:27:25.529] muffleCondition(cond) [01:27:25.529] }) [01:27:25.529] })) [01:27:25.529] future::FutureResult(value = ...future.value$value, [01:27:25.529] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.529] ...future.rng), globalenv = if (FALSE) [01:27:25.529] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:25.529] ...future.globalenv.names)) [01:27:25.529] else NULL, started = ...future.startTime, version = "1.8") [01:27:25.529] }, condition = base::local({ [01:27:25.529] c <- base::c [01:27:25.529] inherits <- base::inherits [01:27:25.529] invokeRestart <- base::invokeRestart [01:27:25.529] length <- base::length [01:27:25.529] list <- base::list [01:27:25.529] seq.int <- base::seq.int [01:27:25.529] signalCondition <- base::signalCondition [01:27:25.529] sys.calls <- base::sys.calls [01:27:25.529] `[[` <- base::`[[` [01:27:25.529] `+` <- base::`+` [01:27:25.529] `<<-` <- base::`<<-` [01:27:25.529] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:25.529] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:25.529] 3L)] [01:27:25.529] } [01:27:25.529] function(cond) { [01:27:25.529] is_error <- inherits(cond, "error") [01:27:25.529] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:25.529] NULL) [01:27:25.529] if (is_error) { [01:27:25.529] sessionInformation <- function() { [01:27:25.529] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:25.529] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:25.529] search = base::search(), system = base::Sys.info()) [01:27:25.529] } [01:27:25.529] ...future.conditions[[length(...future.conditions) + [01:27:25.529] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:25.529] cond$call), session = sessionInformation(), [01:27:25.529] timestamp = base::Sys.time(), signaled = 0L) [01:27:25.529] signalCondition(cond) [01:27:25.529] } [01:27:25.529] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:25.529] "immediateCondition"))) { [01:27:25.529] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:25.529] ...future.conditions[[length(...future.conditions) + [01:27:25.529] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:25.529] if (TRUE && !signal) { [01:27:25.529] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.529] { [01:27:25.529] inherits <- base::inherits [01:27:25.529] invokeRestart <- base::invokeRestart [01:27:25.529] is.null <- base::is.null [01:27:25.529] muffled <- FALSE [01:27:25.529] if (inherits(cond, "message")) { [01:27:25.529] muffled <- grepl(pattern, "muffleMessage") [01:27:25.529] if (muffled) [01:27:25.529] invokeRestart("muffleMessage") [01:27:25.529] } [01:27:25.529] else if (inherits(cond, "warning")) { [01:27:25.529] muffled <- grepl(pattern, "muffleWarning") [01:27:25.529] if (muffled) [01:27:25.529] invokeRestart("muffleWarning") [01:27:25.529] } [01:27:25.529] else if (inherits(cond, "condition")) { [01:27:25.529] if (!is.null(pattern)) { [01:27:25.529] computeRestarts <- base::computeRestarts [01:27:25.529] grepl <- base::grepl [01:27:25.529] restarts <- computeRestarts(cond) [01:27:25.529] for (restart in restarts) { [01:27:25.529] name <- restart$name [01:27:25.529] if (is.null(name)) [01:27:25.529] next [01:27:25.529] if (!grepl(pattern, name)) [01:27:25.529] next [01:27:25.529] invokeRestart(restart) [01:27:25.529] muffled <- TRUE [01:27:25.529] break [01:27:25.529] } [01:27:25.529] } [01:27:25.529] } [01:27:25.529] invisible(muffled) [01:27:25.529] } [01:27:25.529] muffleCondition(cond, pattern = "^muffle") [01:27:25.529] } [01:27:25.529] } [01:27:25.529] else { [01:27:25.529] if (TRUE) { [01:27:25.529] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.529] { [01:27:25.529] inherits <- base::inherits [01:27:25.529] invokeRestart <- base::invokeRestart [01:27:25.529] is.null <- base::is.null [01:27:25.529] muffled <- FALSE [01:27:25.529] if (inherits(cond, "message")) { [01:27:25.529] muffled <- grepl(pattern, "muffleMessage") [01:27:25.529] if (muffled) [01:27:25.529] invokeRestart("muffleMessage") [01:27:25.529] } [01:27:25.529] else if (inherits(cond, "warning")) { [01:27:25.529] muffled <- grepl(pattern, "muffleWarning") [01:27:25.529] if (muffled) [01:27:25.529] invokeRestart("muffleWarning") [01:27:25.529] } [01:27:25.529] else if (inherits(cond, "condition")) { [01:27:25.529] if (!is.null(pattern)) { [01:27:25.529] computeRestarts <- base::computeRestarts [01:27:25.529] grepl <- base::grepl [01:27:25.529] restarts <- computeRestarts(cond) [01:27:25.529] for (restart in restarts) { [01:27:25.529] name <- restart$name [01:27:25.529] if (is.null(name)) [01:27:25.529] next [01:27:25.529] if (!grepl(pattern, name)) [01:27:25.529] next [01:27:25.529] invokeRestart(restart) [01:27:25.529] muffled <- TRUE [01:27:25.529] break [01:27:25.529] } [01:27:25.529] } [01:27:25.529] } [01:27:25.529] invisible(muffled) [01:27:25.529] } [01:27:25.529] muffleCondition(cond, pattern = "^muffle") [01:27:25.529] } [01:27:25.529] } [01:27:25.529] } [01:27:25.529] })) [01:27:25.529] }, error = function(ex) { [01:27:25.529] base::structure(base::list(value = NULL, visible = NULL, [01:27:25.529] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.529] ...future.rng), started = ...future.startTime, [01:27:25.529] finished = Sys.time(), session_uuid = NA_character_, [01:27:25.529] version = "1.8"), class = "FutureResult") [01:27:25.529] }, finally = { [01:27:25.529] if (!identical(...future.workdir, getwd())) [01:27:25.529] setwd(...future.workdir) [01:27:25.529] { [01:27:25.529] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:25.529] ...future.oldOptions$nwarnings <- NULL [01:27:25.529] } [01:27:25.529] base::options(...future.oldOptions) [01:27:25.529] if (.Platform$OS.type == "windows") { [01:27:25.529] old_names <- names(...future.oldEnvVars) [01:27:25.529] envs <- base::Sys.getenv() [01:27:25.529] names <- names(envs) [01:27:25.529] common <- intersect(names, old_names) [01:27:25.529] added <- setdiff(names, old_names) [01:27:25.529] removed <- setdiff(old_names, names) [01:27:25.529] changed <- common[...future.oldEnvVars[common] != [01:27:25.529] envs[common]] [01:27:25.529] NAMES <- toupper(changed) [01:27:25.529] args <- list() [01:27:25.529] for (kk in seq_along(NAMES)) { [01:27:25.529] name <- changed[[kk]] [01:27:25.529] NAME <- NAMES[[kk]] [01:27:25.529] if (name != NAME && is.element(NAME, old_names)) [01:27:25.529] next [01:27:25.529] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.529] } [01:27:25.529] NAMES <- toupper(added) [01:27:25.529] for (kk in seq_along(NAMES)) { [01:27:25.529] name <- added[[kk]] [01:27:25.529] NAME <- NAMES[[kk]] [01:27:25.529] if (name != NAME && is.element(NAME, old_names)) [01:27:25.529] next [01:27:25.529] args[[name]] <- "" [01:27:25.529] } [01:27:25.529] NAMES <- toupper(removed) [01:27:25.529] for (kk in seq_along(NAMES)) { [01:27:25.529] name <- removed[[kk]] [01:27:25.529] NAME <- NAMES[[kk]] [01:27:25.529] if (name != NAME && is.element(NAME, old_names)) [01:27:25.529] next [01:27:25.529] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.529] } [01:27:25.529] if (length(args) > 0) [01:27:25.529] base::do.call(base::Sys.setenv, args = args) [01:27:25.529] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:25.529] } [01:27:25.529] else { [01:27:25.529] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:25.529] } [01:27:25.529] { [01:27:25.529] if (base::length(...future.futureOptionsAdded) > [01:27:25.529] 0L) { [01:27:25.529] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:25.529] base::names(opts) <- ...future.futureOptionsAdded [01:27:25.529] base::options(opts) [01:27:25.529] } [01:27:25.529] { [01:27:25.529] { [01:27:25.529] base::options(mc.cores = ...future.mc.cores.old) [01:27:25.529] NULL [01:27:25.529] } [01:27:25.529] options(future.plan = NULL) [01:27:25.529] if (is.na(NA_character_)) [01:27:25.529] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.529] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:25.529] future::plan(list(function (..., workers = availableCores(), [01:27:25.529] lazy = FALSE, rscript_libs = .libPaths(), [01:27:25.529] envir = parent.frame()) [01:27:25.529] { [01:27:25.529] if (is.function(workers)) [01:27:25.529] workers <- workers() [01:27:25.529] workers <- structure(as.integer(workers), [01:27:25.529] class = class(workers)) [01:27:25.529] stop_if_not(length(workers) == 1, is.finite(workers), [01:27:25.529] workers >= 1) [01:27:25.529] if (workers == 1L && !inherits(workers, "AsIs")) { [01:27:25.529] return(sequential(..., lazy = TRUE, envir = envir)) [01:27:25.529] } [01:27:25.529] future <- MultisessionFuture(..., workers = workers, [01:27:25.529] lazy = lazy, rscript_libs = rscript_libs, [01:27:25.529] envir = envir) [01:27:25.529] if (!future$lazy) [01:27:25.529] future <- run(future) [01:27:25.529] invisible(future) [01:27:25.529] }), .cleanup = FALSE, .init = FALSE) [01:27:25.529] } [01:27:25.529] } [01:27:25.529] } [01:27:25.529] }) [01:27:25.529] if (TRUE) { [01:27:25.529] base::sink(type = "output", split = FALSE) [01:27:25.529] if (TRUE) { [01:27:25.529] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:25.529] } [01:27:25.529] else { [01:27:25.529] ...future.result["stdout"] <- base::list(NULL) [01:27:25.529] } [01:27:25.529] base::close(...future.stdout) [01:27:25.529] ...future.stdout <- NULL [01:27:25.529] } [01:27:25.529] ...future.result$conditions <- ...future.conditions [01:27:25.529] ...future.result$finished <- base::Sys.time() [01:27:25.529] ...future.result [01:27:25.529] } [01:27:25.608] MultisessionFuture started [01:27:25.609] result() for ClusterFuture ... [01:27:25.609] receiveMessageFromWorker() for ClusterFuture ... [01:27:25.609] - Validating connection of MultisessionFuture [01:27:25.668] - received message: FutureResult [01:27:25.668] - Received FutureResult [01:27:25.672] - Erased future from FutureRegistry [01:27:25.672] result() for ClusterFuture ... [01:27:25.672] - result already collected: FutureResult [01:27:25.673] result() for ClusterFuture ... done [01:27:25.673] receiveMessageFromWorker() for ClusterFuture ... done [01:27:25.673] result() for ClusterFuture ... done [01:27:25.673] result() for ClusterFuture ... [01:27:25.673] - result already collected: FutureResult [01:27:25.673] result() for ClusterFuture ... done [01:27:25.674] plan(): plan_init() of 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... DONE [01:27:25.676] plan(): nbrOfWorkers() = 2 ** Sum function 'A' with plan('multisession') ... function (x, ...) { message("Arguments '...' exists: ", exists("...", inherits = TRUE)) y %<-% { sum(x, ...) } y } Arguments '...' exists: TRUE [01:27:25.677] getGlobalsAndPackages() ... [01:27:25.677] Searching for globals... [01:27:25.681] - globals found: [4] '{', 'sum', 'x', '...' [01:27:25.682] Searching for globals ... DONE [01:27:25.682] Resolving globals: FALSE [01:27:25.682] Tweak future expression to call with '...' arguments ... [01:27:25.683] { [01:27:25.683] do.call(function(...) { [01:27:25.683] sum(x, ...) [01:27:25.683] }, args = future.call.arguments) [01:27:25.683] } [01:27:25.683] Tweak future expression to call with '...' arguments ... DONE [01:27:25.684] The total size of the 2 globals is 112 bytes (112 bytes) [01:27:25.685] 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') [01:27:25.685] - globals: [2] 'x', 'future.call.arguments' [01:27:25.686] [01:27:25.686] getGlobalsAndPackages() ... DONE [01:27:25.687] run() for 'Future' ... [01:27:25.687] - state: 'created' [01:27:25.687] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [01:27:25.706] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [01:27:25.706] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [01:27:25.706] - Field: 'node' [01:27:25.706] - Field: 'label' [01:27:25.707] - Field: 'local' [01:27:25.707] - Field: 'owner' [01:27:25.707] - Field: 'envir' [01:27:25.707] - Field: 'workers' [01:27:25.707] - Field: 'packages' [01:27:25.708] - Field: 'gc' [01:27:25.708] - Field: 'conditions' [01:27:25.708] - Field: 'persistent' [01:27:25.708] - Field: 'expr' [01:27:25.709] - Field: 'uuid' [01:27:25.709] - Field: 'seed' [01:27:25.709] - Field: 'version' [01:27:25.709] - Field: 'result' [01:27:25.710] - Field: 'asynchronous' [01:27:25.710] - Field: 'calls' [01:27:25.710] - Field: 'globals' [01:27:25.710] - Field: 'stdout' [01:27:25.710] - Field: 'earlySignal' [01:27:25.711] - Field: 'lazy' [01:27:25.711] - Field: 'state' [01:27:25.711] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [01:27:25.711] - Launch lazy future ... [01:27:25.712] Packages needed by the future expression (n = 0): [01:27:25.712] Packages needed by future strategies (n = 0): [01:27:25.713] { [01:27:25.713] { [01:27:25.713] { [01:27:25.713] ...future.startTime <- base::Sys.time() [01:27:25.713] { [01:27:25.713] { [01:27:25.713] { [01:27:25.713] { [01:27:25.713] base::local({ [01:27:25.713] has_future <- base::requireNamespace("future", [01:27:25.713] quietly = TRUE) [01:27:25.713] if (has_future) { [01:27:25.713] ns <- base::getNamespace("future") [01:27:25.713] version <- ns[[".package"]][["version"]] [01:27:25.713] if (is.null(version)) [01:27:25.713] version <- utils::packageVersion("future") [01:27:25.713] } [01:27:25.713] else { [01:27:25.713] version <- NULL [01:27:25.713] } [01:27:25.713] if (!has_future || version < "1.8.0") { [01:27:25.713] info <- base::c(r_version = base::gsub("R version ", [01:27:25.713] "", base::R.version$version.string), [01:27:25.713] platform = base::sprintf("%s (%s-bit)", [01:27:25.713] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:25.713] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:25.713] "release", "version")], collapse = " "), [01:27:25.713] hostname = base::Sys.info()[["nodename"]]) [01:27:25.713] info <- base::sprintf("%s: %s", base::names(info), [01:27:25.713] info) [01:27:25.713] info <- base::paste(info, collapse = "; ") [01:27:25.713] if (!has_future) { [01:27:25.713] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:25.713] info) [01:27:25.713] } [01:27:25.713] else { [01:27:25.713] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:25.713] info, version) [01:27:25.713] } [01:27:25.713] base::stop(msg) [01:27:25.713] } [01:27:25.713] }) [01:27:25.713] } [01:27:25.713] ...future.mc.cores.old <- base::getOption("mc.cores") [01:27:25.713] base::options(mc.cores = 1L) [01:27:25.713] } [01:27:25.713] options(future.plan = NULL) [01:27:25.713] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.713] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:25.713] } [01:27:25.713] ...future.workdir <- getwd() [01:27:25.713] } [01:27:25.713] ...future.oldOptions <- base::as.list(base::.Options) [01:27:25.713] ...future.oldEnvVars <- base::Sys.getenv() [01:27:25.713] } [01:27:25.713] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:25.713] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:25.713] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:25.713] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:25.713] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:25.713] future.stdout.windows.reencode = NULL, width = 80L) [01:27:25.713] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:25.713] base::names(...future.oldOptions)) [01:27:25.713] } [01:27:25.713] if (FALSE) { [01:27:25.713] } [01:27:25.713] else { [01:27:25.713] if (TRUE) { [01:27:25.713] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:25.713] open = "w") [01:27:25.713] } [01:27:25.713] else { [01:27:25.713] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:25.713] windows = "NUL", "/dev/null"), open = "w") [01:27:25.713] } [01:27:25.713] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:25.713] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:25.713] base::sink(type = "output", split = FALSE) [01:27:25.713] base::close(...future.stdout) [01:27:25.713] }, add = TRUE) [01:27:25.713] } [01:27:25.713] ...future.frame <- base::sys.nframe() [01:27:25.713] ...future.conditions <- base::list() [01:27:25.713] ...future.rng <- base::globalenv()$.Random.seed [01:27:25.713] if (FALSE) { [01:27:25.713] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:25.713] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:25.713] } [01:27:25.713] ...future.result <- base::tryCatch({ [01:27:25.713] base::withCallingHandlers({ [01:27:25.713] ...future.value <- base::withVisible(base::local({ [01:27:25.713] ...future.makeSendCondition <- base::local({ [01:27:25.713] sendCondition <- NULL [01:27:25.713] function(frame = 1L) { [01:27:25.713] if (is.function(sendCondition)) [01:27:25.713] return(sendCondition) [01:27:25.713] ns <- getNamespace("parallel") [01:27:25.713] if (exists("sendData", mode = "function", [01:27:25.713] envir = ns)) { [01:27:25.713] parallel_sendData <- get("sendData", mode = "function", [01:27:25.713] envir = ns) [01:27:25.713] envir <- sys.frame(frame) [01:27:25.713] master <- NULL [01:27:25.713] while (!identical(envir, .GlobalEnv) && [01:27:25.713] !identical(envir, emptyenv())) { [01:27:25.713] if (exists("master", mode = "list", envir = envir, [01:27:25.713] inherits = FALSE)) { [01:27:25.713] master <- get("master", mode = "list", [01:27:25.713] envir = envir, inherits = FALSE) [01:27:25.713] if (inherits(master, c("SOCKnode", [01:27:25.713] "SOCK0node"))) { [01:27:25.713] sendCondition <<- function(cond) { [01:27:25.713] data <- list(type = "VALUE", value = cond, [01:27:25.713] success = TRUE) [01:27:25.713] parallel_sendData(master, data) [01:27:25.713] } [01:27:25.713] return(sendCondition) [01:27:25.713] } [01:27:25.713] } [01:27:25.713] frame <- frame + 1L [01:27:25.713] envir <- sys.frame(frame) [01:27:25.713] } [01:27:25.713] } [01:27:25.713] sendCondition <<- function(cond) NULL [01:27:25.713] } [01:27:25.713] }) [01:27:25.713] withCallingHandlers({ [01:27:25.713] { [01:27:25.713] do.call(function(...) { [01:27:25.713] sum(x, ...) [01:27:25.713] }, args = future.call.arguments) [01:27:25.713] } [01:27:25.713] }, immediateCondition = function(cond) { [01:27:25.713] sendCondition <- ...future.makeSendCondition() [01:27:25.713] sendCondition(cond) [01:27:25.713] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.713] { [01:27:25.713] inherits <- base::inherits [01:27:25.713] invokeRestart <- base::invokeRestart [01:27:25.713] is.null <- base::is.null [01:27:25.713] muffled <- FALSE [01:27:25.713] if (inherits(cond, "message")) { [01:27:25.713] muffled <- grepl(pattern, "muffleMessage") [01:27:25.713] if (muffled) [01:27:25.713] invokeRestart("muffleMessage") [01:27:25.713] } [01:27:25.713] else if (inherits(cond, "warning")) { [01:27:25.713] muffled <- grepl(pattern, "muffleWarning") [01:27:25.713] if (muffled) [01:27:25.713] invokeRestart("muffleWarning") [01:27:25.713] } [01:27:25.713] else if (inherits(cond, "condition")) { [01:27:25.713] if (!is.null(pattern)) { [01:27:25.713] computeRestarts <- base::computeRestarts [01:27:25.713] grepl <- base::grepl [01:27:25.713] restarts <- computeRestarts(cond) [01:27:25.713] for (restart in restarts) { [01:27:25.713] name <- restart$name [01:27:25.713] if (is.null(name)) [01:27:25.713] next [01:27:25.713] if (!grepl(pattern, name)) [01:27:25.713] next [01:27:25.713] invokeRestart(restart) [01:27:25.713] muffled <- TRUE [01:27:25.713] break [01:27:25.713] } [01:27:25.713] } [01:27:25.713] } [01:27:25.713] invisible(muffled) [01:27:25.713] } [01:27:25.713] muffleCondition(cond) [01:27:25.713] }) [01:27:25.713] })) [01:27:25.713] future::FutureResult(value = ...future.value$value, [01:27:25.713] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.713] ...future.rng), globalenv = if (FALSE) [01:27:25.713] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:25.713] ...future.globalenv.names)) [01:27:25.713] else NULL, started = ...future.startTime, version = "1.8") [01:27:25.713] }, condition = base::local({ [01:27:25.713] c <- base::c [01:27:25.713] inherits <- base::inherits [01:27:25.713] invokeRestart <- base::invokeRestart [01:27:25.713] length <- base::length [01:27:25.713] list <- base::list [01:27:25.713] seq.int <- base::seq.int [01:27:25.713] signalCondition <- base::signalCondition [01:27:25.713] sys.calls <- base::sys.calls [01:27:25.713] `[[` <- base::`[[` [01:27:25.713] `+` <- base::`+` [01:27:25.713] `<<-` <- base::`<<-` [01:27:25.713] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:25.713] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:25.713] 3L)] [01:27:25.713] } [01:27:25.713] function(cond) { [01:27:25.713] is_error <- inherits(cond, "error") [01:27:25.713] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:25.713] NULL) [01:27:25.713] if (is_error) { [01:27:25.713] sessionInformation <- function() { [01:27:25.713] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:25.713] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:25.713] search = base::search(), system = base::Sys.info()) [01:27:25.713] } [01:27:25.713] ...future.conditions[[length(...future.conditions) + [01:27:25.713] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:25.713] cond$call), session = sessionInformation(), [01:27:25.713] timestamp = base::Sys.time(), signaled = 0L) [01:27:25.713] signalCondition(cond) [01:27:25.713] } [01:27:25.713] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:25.713] "immediateCondition"))) { [01:27:25.713] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:25.713] ...future.conditions[[length(...future.conditions) + [01:27:25.713] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:25.713] if (TRUE && !signal) { [01:27:25.713] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.713] { [01:27:25.713] inherits <- base::inherits [01:27:25.713] invokeRestart <- base::invokeRestart [01:27:25.713] is.null <- base::is.null [01:27:25.713] muffled <- FALSE [01:27:25.713] if (inherits(cond, "message")) { [01:27:25.713] muffled <- grepl(pattern, "muffleMessage") [01:27:25.713] if (muffled) [01:27:25.713] invokeRestart("muffleMessage") [01:27:25.713] } [01:27:25.713] else if (inherits(cond, "warning")) { [01:27:25.713] muffled <- grepl(pattern, "muffleWarning") [01:27:25.713] if (muffled) [01:27:25.713] invokeRestart("muffleWarning") [01:27:25.713] } [01:27:25.713] else if (inherits(cond, "condition")) { [01:27:25.713] if (!is.null(pattern)) { [01:27:25.713] computeRestarts <- base::computeRestarts [01:27:25.713] grepl <- base::grepl [01:27:25.713] restarts <- computeRestarts(cond) [01:27:25.713] for (restart in restarts) { [01:27:25.713] name <- restart$name [01:27:25.713] if (is.null(name)) [01:27:25.713] next [01:27:25.713] if (!grepl(pattern, name)) [01:27:25.713] next [01:27:25.713] invokeRestart(restart) [01:27:25.713] muffled <- TRUE [01:27:25.713] break [01:27:25.713] } [01:27:25.713] } [01:27:25.713] } [01:27:25.713] invisible(muffled) [01:27:25.713] } [01:27:25.713] muffleCondition(cond, pattern = "^muffle") [01:27:25.713] } [01:27:25.713] } [01:27:25.713] else { [01:27:25.713] if (TRUE) { [01:27:25.713] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.713] { [01:27:25.713] inherits <- base::inherits [01:27:25.713] invokeRestart <- base::invokeRestart [01:27:25.713] is.null <- base::is.null [01:27:25.713] muffled <- FALSE [01:27:25.713] if (inherits(cond, "message")) { [01:27:25.713] muffled <- grepl(pattern, "muffleMessage") [01:27:25.713] if (muffled) [01:27:25.713] invokeRestart("muffleMessage") [01:27:25.713] } [01:27:25.713] else if (inherits(cond, "warning")) { [01:27:25.713] muffled <- grepl(pattern, "muffleWarning") [01:27:25.713] if (muffled) [01:27:25.713] invokeRestart("muffleWarning") [01:27:25.713] } [01:27:25.713] else if (inherits(cond, "condition")) { [01:27:25.713] if (!is.null(pattern)) { [01:27:25.713] computeRestarts <- base::computeRestarts [01:27:25.713] grepl <- base::grepl [01:27:25.713] restarts <- computeRestarts(cond) [01:27:25.713] for (restart in restarts) { [01:27:25.713] name <- restart$name [01:27:25.713] if (is.null(name)) [01:27:25.713] next [01:27:25.713] if (!grepl(pattern, name)) [01:27:25.713] next [01:27:25.713] invokeRestart(restart) [01:27:25.713] muffled <- TRUE [01:27:25.713] break [01:27:25.713] } [01:27:25.713] } [01:27:25.713] } [01:27:25.713] invisible(muffled) [01:27:25.713] } [01:27:25.713] muffleCondition(cond, pattern = "^muffle") [01:27:25.713] } [01:27:25.713] } [01:27:25.713] } [01:27:25.713] })) [01:27:25.713] }, error = function(ex) { [01:27:25.713] base::structure(base::list(value = NULL, visible = NULL, [01:27:25.713] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.713] ...future.rng), started = ...future.startTime, [01:27:25.713] finished = Sys.time(), session_uuid = NA_character_, [01:27:25.713] version = "1.8"), class = "FutureResult") [01:27:25.713] }, finally = { [01:27:25.713] if (!identical(...future.workdir, getwd())) [01:27:25.713] setwd(...future.workdir) [01:27:25.713] { [01:27:25.713] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:25.713] ...future.oldOptions$nwarnings <- NULL [01:27:25.713] } [01:27:25.713] base::options(...future.oldOptions) [01:27:25.713] if (.Platform$OS.type == "windows") { [01:27:25.713] old_names <- names(...future.oldEnvVars) [01:27:25.713] envs <- base::Sys.getenv() [01:27:25.713] names <- names(envs) [01:27:25.713] common <- intersect(names, old_names) [01:27:25.713] added <- setdiff(names, old_names) [01:27:25.713] removed <- setdiff(old_names, names) [01:27:25.713] changed <- common[...future.oldEnvVars[common] != [01:27:25.713] envs[common]] [01:27:25.713] NAMES <- toupper(changed) [01:27:25.713] args <- list() [01:27:25.713] for (kk in seq_along(NAMES)) { [01:27:25.713] name <- changed[[kk]] [01:27:25.713] NAME <- NAMES[[kk]] [01:27:25.713] if (name != NAME && is.element(NAME, old_names)) [01:27:25.713] next [01:27:25.713] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.713] } [01:27:25.713] NAMES <- toupper(added) [01:27:25.713] for (kk in seq_along(NAMES)) { [01:27:25.713] name <- added[[kk]] [01:27:25.713] NAME <- NAMES[[kk]] [01:27:25.713] if (name != NAME && is.element(NAME, old_names)) [01:27:25.713] next [01:27:25.713] args[[name]] <- "" [01:27:25.713] } [01:27:25.713] NAMES <- toupper(removed) [01:27:25.713] for (kk in seq_along(NAMES)) { [01:27:25.713] name <- removed[[kk]] [01:27:25.713] NAME <- NAMES[[kk]] [01:27:25.713] if (name != NAME && is.element(NAME, old_names)) [01:27:25.713] next [01:27:25.713] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.713] } [01:27:25.713] if (length(args) > 0) [01:27:25.713] base::do.call(base::Sys.setenv, args = args) [01:27:25.713] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:25.713] } [01:27:25.713] else { [01:27:25.713] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:25.713] } [01:27:25.713] { [01:27:25.713] if (base::length(...future.futureOptionsAdded) > [01:27:25.713] 0L) { [01:27:25.713] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:25.713] base::names(opts) <- ...future.futureOptionsAdded [01:27:25.713] base::options(opts) [01:27:25.713] } [01:27:25.713] { [01:27:25.713] { [01:27:25.713] base::options(mc.cores = ...future.mc.cores.old) [01:27:25.713] NULL [01:27:25.713] } [01:27:25.713] options(future.plan = NULL) [01:27:25.713] if (is.na(NA_character_)) [01:27:25.713] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.713] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:25.713] future::plan(list(function (..., workers = availableCores(), [01:27:25.713] lazy = FALSE, rscript_libs = .libPaths(), [01:27:25.713] envir = parent.frame()) [01:27:25.713] { [01:27:25.713] if (is.function(workers)) [01:27:25.713] workers <- workers() [01:27:25.713] workers <- structure(as.integer(workers), [01:27:25.713] class = class(workers)) [01:27:25.713] stop_if_not(length(workers) == 1, is.finite(workers), [01:27:25.713] workers >= 1) [01:27:25.713] if (workers == 1L && !inherits(workers, "AsIs")) { [01:27:25.713] return(sequential(..., lazy = TRUE, envir = envir)) [01:27:25.713] } [01:27:25.713] future <- MultisessionFuture(..., workers = workers, [01:27:25.713] lazy = lazy, rscript_libs = rscript_libs, [01:27:25.713] envir = envir) [01:27:25.713] if (!future$lazy) [01:27:25.713] future <- run(future) [01:27:25.713] invisible(future) [01:27:25.713] }), .cleanup = FALSE, .init = FALSE) [01:27:25.713] } [01:27:25.713] } [01:27:25.713] } [01:27:25.713] }) [01:27:25.713] if (TRUE) { [01:27:25.713] base::sink(type = "output", split = FALSE) [01:27:25.713] if (TRUE) { [01:27:25.713] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:25.713] } [01:27:25.713] else { [01:27:25.713] ...future.result["stdout"] <- base::list(NULL) [01:27:25.713] } [01:27:25.713] base::close(...future.stdout) [01:27:25.713] ...future.stdout <- NULL [01:27:25.713] } [01:27:25.713] ...future.result$conditions <- ...future.conditions [01:27:25.713] ...future.result$finished <- base::Sys.time() [01:27:25.713] ...future.result [01:27:25.713] } [01:27:25.720] Exporting 2 global objects (112 bytes) to cluster node #1 ... [01:27:25.721] Exporting 'x' (56 bytes) to cluster node #1 ... [01:27:25.722] Exporting 'x' (56 bytes) to cluster node #1 ... DONE [01:27:25.722] Exporting 'future.call.arguments' (56 bytes) to cluster node #1 ... [01:27:25.723] Exporting 'future.call.arguments' (56 bytes) to cluster node #1 ... DONE [01:27:25.723] Exporting 2 global objects (112 bytes) to cluster node #1 ... DONE [01:27:25.724] MultisessionFuture started [01:27:25.724] - Launch lazy future ... done [01:27:25.724] run() for 'MultisessionFuture' ... done [01:27:25.725] result() for ClusterFuture ... [01:27:25.725] receiveMessageFromWorker() for ClusterFuture ... [01:27:25.725] - Validating connection of MultisessionFuture [01:27:25.743] - received message: FutureResult [01:27:25.743] - Received FutureResult [01:27:25.743] - Erased future from FutureRegistry [01:27:25.743] result() for ClusterFuture ... [01:27:25.744] - result already collected: FutureResult [01:27:25.744] result() for ClusterFuture ... done [01:27:25.744] receiveMessageFromWorker() for ClusterFuture ... done [01:27:25.744] result() for ClusterFuture ... done [01:27:25.744] result() for ClusterFuture ... [01:27:25.744] - result already collected: FutureResult [01:27:25.745] 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 [01:27:25.746] getGlobalsAndPackages() ... [01:27:25.746] Searching for globals... [01:27:25.748] - globals found: [4] '{', 'sum', 'x', '...' [01:27:25.748] Searching for globals ... DONE [01:27:25.749] Resolving globals: FALSE [01:27:25.749] Tweak future expression to call with '...' arguments ... [01:27:25.749] { [01:27:25.749] do.call(function(...) { [01:27:25.749] sum(x, ...) [01:27:25.749] }, args = future.call.arguments) [01:27:25.749] } [01:27:25.750] Tweak future expression to call with '...' arguments ... DONE [01:27:25.750] The total size of the 2 globals is 112 bytes (112 bytes) [01:27:25.751] 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') [01:27:25.751] - globals: [2] 'x', 'future.call.arguments' [01:27:25.751] [01:27:25.752] getGlobalsAndPackages() ... DONE [01:27:25.752] run() for 'Future' ... [01:27:25.752] - state: 'created' [01:27:25.753] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [01:27:25.768] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [01:27:25.768] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [01:27:25.769] - Field: 'node' [01:27:25.769] - Field: 'label' [01:27:25.769] - Field: 'local' [01:27:25.769] - Field: 'owner' [01:27:25.770] - Field: 'envir' [01:27:25.770] - Field: 'workers' [01:27:25.770] - Field: 'packages' [01:27:25.770] - Field: 'gc' [01:27:25.770] - Field: 'conditions' [01:27:25.770] - Field: 'persistent' [01:27:25.771] - Field: 'expr' [01:27:25.771] - Field: 'uuid' [01:27:25.771] - Field: 'seed' [01:27:25.771] - Field: 'version' [01:27:25.771] - Field: 'result' [01:27:25.772] - Field: 'asynchronous' [01:27:25.772] - Field: 'calls' [01:27:25.772] - Field: 'globals' [01:27:25.772] - Field: 'stdout' [01:27:25.773] - Field: 'earlySignal' [01:27:25.773] - Field: 'lazy' [01:27:25.773] - Field: 'state' [01:27:25.773] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [01:27:25.773] - Launch lazy future ... [01:27:25.774] Packages needed by the future expression (n = 0): [01:27:25.774] Packages needed by future strategies (n = 0): [01:27:25.775] { [01:27:25.775] { [01:27:25.775] { [01:27:25.775] ...future.startTime <- base::Sys.time() [01:27:25.775] { [01:27:25.775] { [01:27:25.775] { [01:27:25.775] { [01:27:25.775] base::local({ [01:27:25.775] has_future <- base::requireNamespace("future", [01:27:25.775] quietly = TRUE) [01:27:25.775] if (has_future) { [01:27:25.775] ns <- base::getNamespace("future") [01:27:25.775] version <- ns[[".package"]][["version"]] [01:27:25.775] if (is.null(version)) [01:27:25.775] version <- utils::packageVersion("future") [01:27:25.775] } [01:27:25.775] else { [01:27:25.775] version <- NULL [01:27:25.775] } [01:27:25.775] if (!has_future || version < "1.8.0") { [01:27:25.775] info <- base::c(r_version = base::gsub("R version ", [01:27:25.775] "", base::R.version$version.string), [01:27:25.775] platform = base::sprintf("%s (%s-bit)", [01:27:25.775] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:25.775] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:25.775] "release", "version")], collapse = " "), [01:27:25.775] hostname = base::Sys.info()[["nodename"]]) [01:27:25.775] info <- base::sprintf("%s: %s", base::names(info), [01:27:25.775] info) [01:27:25.775] info <- base::paste(info, collapse = "; ") [01:27:25.775] if (!has_future) { [01:27:25.775] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:25.775] info) [01:27:25.775] } [01:27:25.775] else { [01:27:25.775] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:25.775] info, version) [01:27:25.775] } [01:27:25.775] base::stop(msg) [01:27:25.775] } [01:27:25.775] }) [01:27:25.775] } [01:27:25.775] ...future.mc.cores.old <- base::getOption("mc.cores") [01:27:25.775] base::options(mc.cores = 1L) [01:27:25.775] } [01:27:25.775] options(future.plan = NULL) [01:27:25.775] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.775] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:25.775] } [01:27:25.775] ...future.workdir <- getwd() [01:27:25.775] } [01:27:25.775] ...future.oldOptions <- base::as.list(base::.Options) [01:27:25.775] ...future.oldEnvVars <- base::Sys.getenv() [01:27:25.775] } [01:27:25.775] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:25.775] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:25.775] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:25.775] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:25.775] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:25.775] future.stdout.windows.reencode = NULL, width = 80L) [01:27:25.775] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:25.775] base::names(...future.oldOptions)) [01:27:25.775] } [01:27:25.775] if (FALSE) { [01:27:25.775] } [01:27:25.775] else { [01:27:25.775] if (TRUE) { [01:27:25.775] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:25.775] open = "w") [01:27:25.775] } [01:27:25.775] else { [01:27:25.775] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:25.775] windows = "NUL", "/dev/null"), open = "w") [01:27:25.775] } [01:27:25.775] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:25.775] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:25.775] base::sink(type = "output", split = FALSE) [01:27:25.775] base::close(...future.stdout) [01:27:25.775] }, add = TRUE) [01:27:25.775] } [01:27:25.775] ...future.frame <- base::sys.nframe() [01:27:25.775] ...future.conditions <- base::list() [01:27:25.775] ...future.rng <- base::globalenv()$.Random.seed [01:27:25.775] if (FALSE) { [01:27:25.775] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:25.775] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:25.775] } [01:27:25.775] ...future.result <- base::tryCatch({ [01:27:25.775] base::withCallingHandlers({ [01:27:25.775] ...future.value <- base::withVisible(base::local({ [01:27:25.775] ...future.makeSendCondition <- base::local({ [01:27:25.775] sendCondition <- NULL [01:27:25.775] function(frame = 1L) { [01:27:25.775] if (is.function(sendCondition)) [01:27:25.775] return(sendCondition) [01:27:25.775] ns <- getNamespace("parallel") [01:27:25.775] if (exists("sendData", mode = "function", [01:27:25.775] envir = ns)) { [01:27:25.775] parallel_sendData <- get("sendData", mode = "function", [01:27:25.775] envir = ns) [01:27:25.775] envir <- sys.frame(frame) [01:27:25.775] master <- NULL [01:27:25.775] while (!identical(envir, .GlobalEnv) && [01:27:25.775] !identical(envir, emptyenv())) { [01:27:25.775] if (exists("master", mode = "list", envir = envir, [01:27:25.775] inherits = FALSE)) { [01:27:25.775] master <- get("master", mode = "list", [01:27:25.775] envir = envir, inherits = FALSE) [01:27:25.775] if (inherits(master, c("SOCKnode", [01:27:25.775] "SOCK0node"))) { [01:27:25.775] sendCondition <<- function(cond) { [01:27:25.775] data <- list(type = "VALUE", value = cond, [01:27:25.775] success = TRUE) [01:27:25.775] parallel_sendData(master, data) [01:27:25.775] } [01:27:25.775] return(sendCondition) [01:27:25.775] } [01:27:25.775] } [01:27:25.775] frame <- frame + 1L [01:27:25.775] envir <- sys.frame(frame) [01:27:25.775] } [01:27:25.775] } [01:27:25.775] sendCondition <<- function(cond) NULL [01:27:25.775] } [01:27:25.775] }) [01:27:25.775] withCallingHandlers({ [01:27:25.775] { [01:27:25.775] do.call(function(...) { [01:27:25.775] sum(x, ...) [01:27:25.775] }, args = future.call.arguments) [01:27:25.775] } [01:27:25.775] }, immediateCondition = function(cond) { [01:27:25.775] sendCondition <- ...future.makeSendCondition() [01:27:25.775] sendCondition(cond) [01:27:25.775] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.775] { [01:27:25.775] inherits <- base::inherits [01:27:25.775] invokeRestart <- base::invokeRestart [01:27:25.775] is.null <- base::is.null [01:27:25.775] muffled <- FALSE [01:27:25.775] if (inherits(cond, "message")) { [01:27:25.775] muffled <- grepl(pattern, "muffleMessage") [01:27:25.775] if (muffled) [01:27:25.775] invokeRestart("muffleMessage") [01:27:25.775] } [01:27:25.775] else if (inherits(cond, "warning")) { [01:27:25.775] muffled <- grepl(pattern, "muffleWarning") [01:27:25.775] if (muffled) [01:27:25.775] invokeRestart("muffleWarning") [01:27:25.775] } [01:27:25.775] else if (inherits(cond, "condition")) { [01:27:25.775] if (!is.null(pattern)) { [01:27:25.775] computeRestarts <- base::computeRestarts [01:27:25.775] grepl <- base::grepl [01:27:25.775] restarts <- computeRestarts(cond) [01:27:25.775] for (restart in restarts) { [01:27:25.775] name <- restart$name [01:27:25.775] if (is.null(name)) [01:27:25.775] next [01:27:25.775] if (!grepl(pattern, name)) [01:27:25.775] next [01:27:25.775] invokeRestart(restart) [01:27:25.775] muffled <- TRUE [01:27:25.775] break [01:27:25.775] } [01:27:25.775] } [01:27:25.775] } [01:27:25.775] invisible(muffled) [01:27:25.775] } [01:27:25.775] muffleCondition(cond) [01:27:25.775] }) [01:27:25.775] })) [01:27:25.775] future::FutureResult(value = ...future.value$value, [01:27:25.775] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.775] ...future.rng), globalenv = if (FALSE) [01:27:25.775] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:25.775] ...future.globalenv.names)) [01:27:25.775] else NULL, started = ...future.startTime, version = "1.8") [01:27:25.775] }, condition = base::local({ [01:27:25.775] c <- base::c [01:27:25.775] inherits <- base::inherits [01:27:25.775] invokeRestart <- base::invokeRestart [01:27:25.775] length <- base::length [01:27:25.775] list <- base::list [01:27:25.775] seq.int <- base::seq.int [01:27:25.775] signalCondition <- base::signalCondition [01:27:25.775] sys.calls <- base::sys.calls [01:27:25.775] `[[` <- base::`[[` [01:27:25.775] `+` <- base::`+` [01:27:25.775] `<<-` <- base::`<<-` [01:27:25.775] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:25.775] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:25.775] 3L)] [01:27:25.775] } [01:27:25.775] function(cond) { [01:27:25.775] is_error <- inherits(cond, "error") [01:27:25.775] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:25.775] NULL) [01:27:25.775] if (is_error) { [01:27:25.775] sessionInformation <- function() { [01:27:25.775] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:25.775] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:25.775] search = base::search(), system = base::Sys.info()) [01:27:25.775] } [01:27:25.775] ...future.conditions[[length(...future.conditions) + [01:27:25.775] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:25.775] cond$call), session = sessionInformation(), [01:27:25.775] timestamp = base::Sys.time(), signaled = 0L) [01:27:25.775] signalCondition(cond) [01:27:25.775] } [01:27:25.775] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:25.775] "immediateCondition"))) { [01:27:25.775] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:25.775] ...future.conditions[[length(...future.conditions) + [01:27:25.775] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:25.775] if (TRUE && !signal) { [01:27:25.775] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.775] { [01:27:25.775] inherits <- base::inherits [01:27:25.775] invokeRestart <- base::invokeRestart [01:27:25.775] is.null <- base::is.null [01:27:25.775] muffled <- FALSE [01:27:25.775] if (inherits(cond, "message")) { [01:27:25.775] muffled <- grepl(pattern, "muffleMessage") [01:27:25.775] if (muffled) [01:27:25.775] invokeRestart("muffleMessage") [01:27:25.775] } [01:27:25.775] else if (inherits(cond, "warning")) { [01:27:25.775] muffled <- grepl(pattern, "muffleWarning") [01:27:25.775] if (muffled) [01:27:25.775] invokeRestart("muffleWarning") [01:27:25.775] } [01:27:25.775] else if (inherits(cond, "condition")) { [01:27:25.775] if (!is.null(pattern)) { [01:27:25.775] computeRestarts <- base::computeRestarts [01:27:25.775] grepl <- base::grepl [01:27:25.775] restarts <- computeRestarts(cond) [01:27:25.775] for (restart in restarts) { [01:27:25.775] name <- restart$name [01:27:25.775] if (is.null(name)) [01:27:25.775] next [01:27:25.775] if (!grepl(pattern, name)) [01:27:25.775] next [01:27:25.775] invokeRestart(restart) [01:27:25.775] muffled <- TRUE [01:27:25.775] break [01:27:25.775] } [01:27:25.775] } [01:27:25.775] } [01:27:25.775] invisible(muffled) [01:27:25.775] } [01:27:25.775] muffleCondition(cond, pattern = "^muffle") [01:27:25.775] } [01:27:25.775] } [01:27:25.775] else { [01:27:25.775] if (TRUE) { [01:27:25.775] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.775] { [01:27:25.775] inherits <- base::inherits [01:27:25.775] invokeRestart <- base::invokeRestart [01:27:25.775] is.null <- base::is.null [01:27:25.775] muffled <- FALSE [01:27:25.775] if (inherits(cond, "message")) { [01:27:25.775] muffled <- grepl(pattern, "muffleMessage") [01:27:25.775] if (muffled) [01:27:25.775] invokeRestart("muffleMessage") [01:27:25.775] } [01:27:25.775] else if (inherits(cond, "warning")) { [01:27:25.775] muffled <- grepl(pattern, "muffleWarning") [01:27:25.775] if (muffled) [01:27:25.775] invokeRestart("muffleWarning") [01:27:25.775] } [01:27:25.775] else if (inherits(cond, "condition")) { [01:27:25.775] if (!is.null(pattern)) { [01:27:25.775] computeRestarts <- base::computeRestarts [01:27:25.775] grepl <- base::grepl [01:27:25.775] restarts <- computeRestarts(cond) [01:27:25.775] for (restart in restarts) { [01:27:25.775] name <- restart$name [01:27:25.775] if (is.null(name)) [01:27:25.775] next [01:27:25.775] if (!grepl(pattern, name)) [01:27:25.775] next [01:27:25.775] invokeRestart(restart) [01:27:25.775] muffled <- TRUE [01:27:25.775] break [01:27:25.775] } [01:27:25.775] } [01:27:25.775] } [01:27:25.775] invisible(muffled) [01:27:25.775] } [01:27:25.775] muffleCondition(cond, pattern = "^muffle") [01:27:25.775] } [01:27:25.775] } [01:27:25.775] } [01:27:25.775] })) [01:27:25.775] }, error = function(ex) { [01:27:25.775] base::structure(base::list(value = NULL, visible = NULL, [01:27:25.775] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.775] ...future.rng), started = ...future.startTime, [01:27:25.775] finished = Sys.time(), session_uuid = NA_character_, [01:27:25.775] version = "1.8"), class = "FutureResult") [01:27:25.775] }, finally = { [01:27:25.775] if (!identical(...future.workdir, getwd())) [01:27:25.775] setwd(...future.workdir) [01:27:25.775] { [01:27:25.775] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:25.775] ...future.oldOptions$nwarnings <- NULL [01:27:25.775] } [01:27:25.775] base::options(...future.oldOptions) [01:27:25.775] if (.Platform$OS.type == "windows") { [01:27:25.775] old_names <- names(...future.oldEnvVars) [01:27:25.775] envs <- base::Sys.getenv() [01:27:25.775] names <- names(envs) [01:27:25.775] common <- intersect(names, old_names) [01:27:25.775] added <- setdiff(names, old_names) [01:27:25.775] removed <- setdiff(old_names, names) [01:27:25.775] changed <- common[...future.oldEnvVars[common] != [01:27:25.775] envs[common]] [01:27:25.775] NAMES <- toupper(changed) [01:27:25.775] args <- list() [01:27:25.775] for (kk in seq_along(NAMES)) { [01:27:25.775] name <- changed[[kk]] [01:27:25.775] NAME <- NAMES[[kk]] [01:27:25.775] if (name != NAME && is.element(NAME, old_names)) [01:27:25.775] next [01:27:25.775] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.775] } [01:27:25.775] NAMES <- toupper(added) [01:27:25.775] for (kk in seq_along(NAMES)) { [01:27:25.775] name <- added[[kk]] [01:27:25.775] NAME <- NAMES[[kk]] [01:27:25.775] if (name != NAME && is.element(NAME, old_names)) [01:27:25.775] next [01:27:25.775] args[[name]] <- "" [01:27:25.775] } [01:27:25.775] NAMES <- toupper(removed) [01:27:25.775] for (kk in seq_along(NAMES)) { [01:27:25.775] name <- removed[[kk]] [01:27:25.775] NAME <- NAMES[[kk]] [01:27:25.775] if (name != NAME && is.element(NAME, old_names)) [01:27:25.775] next [01:27:25.775] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.775] } [01:27:25.775] if (length(args) > 0) [01:27:25.775] base::do.call(base::Sys.setenv, args = args) [01:27:25.775] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:25.775] } [01:27:25.775] else { [01:27:25.775] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:25.775] } [01:27:25.775] { [01:27:25.775] if (base::length(...future.futureOptionsAdded) > [01:27:25.775] 0L) { [01:27:25.775] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:25.775] base::names(opts) <- ...future.futureOptionsAdded [01:27:25.775] base::options(opts) [01:27:25.775] } [01:27:25.775] { [01:27:25.775] { [01:27:25.775] base::options(mc.cores = ...future.mc.cores.old) [01:27:25.775] NULL [01:27:25.775] } [01:27:25.775] options(future.plan = NULL) [01:27:25.775] if (is.na(NA_character_)) [01:27:25.775] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.775] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:25.775] future::plan(list(function (..., workers = availableCores(), [01:27:25.775] lazy = FALSE, rscript_libs = .libPaths(), [01:27:25.775] envir = parent.frame()) [01:27:25.775] { [01:27:25.775] if (is.function(workers)) [01:27:25.775] workers <- workers() [01:27:25.775] workers <- structure(as.integer(workers), [01:27:25.775] class = class(workers)) [01:27:25.775] stop_if_not(length(workers) == 1, is.finite(workers), [01:27:25.775] workers >= 1) [01:27:25.775] if (workers == 1L && !inherits(workers, "AsIs")) { [01:27:25.775] return(sequential(..., lazy = TRUE, envir = envir)) [01:27:25.775] } [01:27:25.775] future <- MultisessionFuture(..., workers = workers, [01:27:25.775] lazy = lazy, rscript_libs = rscript_libs, [01:27:25.775] envir = envir) [01:27:25.775] if (!future$lazy) [01:27:25.775] future <- run(future) [01:27:25.775] invisible(future) [01:27:25.775] }), .cleanup = FALSE, .init = FALSE) [01:27:25.775] } [01:27:25.775] } [01:27:25.775] } [01:27:25.775] }) [01:27:25.775] if (TRUE) { [01:27:25.775] base::sink(type = "output", split = FALSE) [01:27:25.775] if (TRUE) { [01:27:25.775] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:25.775] } [01:27:25.775] else { [01:27:25.775] ...future.result["stdout"] <- base::list(NULL) [01:27:25.775] } [01:27:25.775] base::close(...future.stdout) [01:27:25.775] ...future.stdout <- NULL [01:27:25.775] } [01:27:25.775] ...future.result$conditions <- ...future.conditions [01:27:25.775] ...future.result$finished <- base::Sys.time() [01:27:25.775] ...future.result [01:27:25.775] } [01:27:25.781] Exporting 2 global objects (112 bytes) to cluster node #1 ... [01:27:25.781] Exporting 'x' (56 bytes) to cluster node #1 ... [01:27:25.781] Exporting 'x' (56 bytes) to cluster node #1 ... DONE [01:27:25.782] Exporting 'future.call.arguments' (56 bytes) to cluster node #1 ... [01:27:25.782] Exporting 'future.call.arguments' (56 bytes) to cluster node #1 ... DONE [01:27:25.782] Exporting 2 global objects (112 bytes) to cluster node #1 ... DONE [01:27:25.783] MultisessionFuture started [01:27:25.783] - Launch lazy future ... done [01:27:25.784] run() for 'MultisessionFuture' ... done [01:27:25.784] result() for ClusterFuture ... [01:27:25.784] receiveMessageFromWorker() for ClusterFuture ... [01:27:25.784] - Validating connection of MultisessionFuture [01:27:25.802] - received message: FutureResult [01:27:25.802] - Received FutureResult [01:27:25.802] - Erased future from FutureRegistry [01:27:25.802] result() for ClusterFuture ... [01:27:25.802] - result already collected: FutureResult [01:27:25.803] result() for ClusterFuture ... done [01:27:25.803] receiveMessageFromWorker() for ClusterFuture ... done [01:27:25.803] result() for ClusterFuture ... done [01:27:25.803] result() for ClusterFuture ... [01:27:25.803] - result already collected: FutureResult [01:27:25.804] 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 [01:27:25.804] getGlobalsAndPackages() ... [01:27:25.805] Searching for globals... [01:27:25.806] - globals found: [4] '{', 'sum', 'x', 'y' [01:27:25.807] Searching for globals ... DONE [01:27:25.807] Resolving globals: FALSE [01:27:25.807] The total size of the 2 globals is 112 bytes (112 bytes) [01:27:25.808] 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') [01:27:25.808] - globals: [2] 'x', 'y' [01:27:25.809] [01:27:25.809] getGlobalsAndPackages() ... DONE [01:27:25.809] run() for 'Future' ... [01:27:25.809] - state: 'created' [01:27:25.810] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [01:27:25.824] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [01:27:25.825] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [01:27:25.825] - Field: 'node' [01:27:25.825] - Field: 'label' [01:27:25.825] - Field: 'local' [01:27:25.826] - Field: 'owner' [01:27:25.826] - Field: 'envir' [01:27:25.826] - Field: 'workers' [01:27:25.826] - Field: 'packages' [01:27:25.826] - Field: 'gc' [01:27:25.827] - Field: 'conditions' [01:27:25.827] - Field: 'persistent' [01:27:25.827] - Field: 'expr' [01:27:25.827] - Field: 'uuid' [01:27:25.827] - Field: 'seed' [01:27:25.828] - Field: 'version' [01:27:25.828] - Field: 'result' [01:27:25.828] - Field: 'asynchronous' [01:27:25.828] - Field: 'calls' [01:27:25.828] - Field: 'globals' [01:27:25.829] - Field: 'stdout' [01:27:25.829] - Field: 'earlySignal' [01:27:25.829] - Field: 'lazy' [01:27:25.829] - Field: 'state' [01:27:25.829] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [01:27:25.830] - Launch lazy future ... [01:27:25.830] Packages needed by the future expression (n = 0): [01:27:25.830] Packages needed by future strategies (n = 0): [01:27:25.835] { [01:27:25.835] { [01:27:25.835] { [01:27:25.835] ...future.startTime <- base::Sys.time() [01:27:25.835] { [01:27:25.835] { [01:27:25.835] { [01:27:25.835] { [01:27:25.835] base::local({ [01:27:25.835] has_future <- base::requireNamespace("future", [01:27:25.835] quietly = TRUE) [01:27:25.835] if (has_future) { [01:27:25.835] ns <- base::getNamespace("future") [01:27:25.835] version <- ns[[".package"]][["version"]] [01:27:25.835] if (is.null(version)) [01:27:25.835] version <- utils::packageVersion("future") [01:27:25.835] } [01:27:25.835] else { [01:27:25.835] version <- NULL [01:27:25.835] } [01:27:25.835] if (!has_future || version < "1.8.0") { [01:27:25.835] info <- base::c(r_version = base::gsub("R version ", [01:27:25.835] "", base::R.version$version.string), [01:27:25.835] platform = base::sprintf("%s (%s-bit)", [01:27:25.835] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:25.835] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:25.835] "release", "version")], collapse = " "), [01:27:25.835] hostname = base::Sys.info()[["nodename"]]) [01:27:25.835] info <- base::sprintf("%s: %s", base::names(info), [01:27:25.835] info) [01:27:25.835] info <- base::paste(info, collapse = "; ") [01:27:25.835] if (!has_future) { [01:27:25.835] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:25.835] info) [01:27:25.835] } [01:27:25.835] else { [01:27:25.835] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:25.835] info, version) [01:27:25.835] } [01:27:25.835] base::stop(msg) [01:27:25.835] } [01:27:25.835] }) [01:27:25.835] } [01:27:25.835] ...future.mc.cores.old <- base::getOption("mc.cores") [01:27:25.835] base::options(mc.cores = 1L) [01:27:25.835] } [01:27:25.835] options(future.plan = NULL) [01:27:25.835] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.835] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:25.835] } [01:27:25.835] ...future.workdir <- getwd() [01:27:25.835] } [01:27:25.835] ...future.oldOptions <- base::as.list(base::.Options) [01:27:25.835] ...future.oldEnvVars <- base::Sys.getenv() [01:27:25.835] } [01:27:25.835] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:25.835] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:25.835] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:25.835] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:25.835] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:25.835] future.stdout.windows.reencode = NULL, width = 80L) [01:27:25.835] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:25.835] base::names(...future.oldOptions)) [01:27:25.835] } [01:27:25.835] if (FALSE) { [01:27:25.835] } [01:27:25.835] else { [01:27:25.835] if (TRUE) { [01:27:25.835] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:25.835] open = "w") [01:27:25.835] } [01:27:25.835] else { [01:27:25.835] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:25.835] windows = "NUL", "/dev/null"), open = "w") [01:27:25.835] } [01:27:25.835] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:25.835] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:25.835] base::sink(type = "output", split = FALSE) [01:27:25.835] base::close(...future.stdout) [01:27:25.835] }, add = TRUE) [01:27:25.835] } [01:27:25.835] ...future.frame <- base::sys.nframe() [01:27:25.835] ...future.conditions <- base::list() [01:27:25.835] ...future.rng <- base::globalenv()$.Random.seed [01:27:25.835] if (FALSE) { [01:27:25.835] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:25.835] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:25.835] } [01:27:25.835] ...future.result <- base::tryCatch({ [01:27:25.835] base::withCallingHandlers({ [01:27:25.835] ...future.value <- base::withVisible(base::local({ [01:27:25.835] ...future.makeSendCondition <- base::local({ [01:27:25.835] sendCondition <- NULL [01:27:25.835] function(frame = 1L) { [01:27:25.835] if (is.function(sendCondition)) [01:27:25.835] return(sendCondition) [01:27:25.835] ns <- getNamespace("parallel") [01:27:25.835] if (exists("sendData", mode = "function", [01:27:25.835] envir = ns)) { [01:27:25.835] parallel_sendData <- get("sendData", mode = "function", [01:27:25.835] envir = ns) [01:27:25.835] envir <- sys.frame(frame) [01:27:25.835] master <- NULL [01:27:25.835] while (!identical(envir, .GlobalEnv) && [01:27:25.835] !identical(envir, emptyenv())) { [01:27:25.835] if (exists("master", mode = "list", envir = envir, [01:27:25.835] inherits = FALSE)) { [01:27:25.835] master <- get("master", mode = "list", [01:27:25.835] envir = envir, inherits = FALSE) [01:27:25.835] if (inherits(master, c("SOCKnode", [01:27:25.835] "SOCK0node"))) { [01:27:25.835] sendCondition <<- function(cond) { [01:27:25.835] data <- list(type = "VALUE", value = cond, [01:27:25.835] success = TRUE) [01:27:25.835] parallel_sendData(master, data) [01:27:25.835] } [01:27:25.835] return(sendCondition) [01:27:25.835] } [01:27:25.835] } [01:27:25.835] frame <- frame + 1L [01:27:25.835] envir <- sys.frame(frame) [01:27:25.835] } [01:27:25.835] } [01:27:25.835] sendCondition <<- function(cond) NULL [01:27:25.835] } [01:27:25.835] }) [01:27:25.835] withCallingHandlers({ [01:27:25.835] { [01:27:25.835] sum(x, y) [01:27:25.835] } [01:27:25.835] }, immediateCondition = function(cond) { [01:27:25.835] sendCondition <- ...future.makeSendCondition() [01:27:25.835] sendCondition(cond) [01:27:25.835] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.835] { [01:27:25.835] inherits <- base::inherits [01:27:25.835] invokeRestart <- base::invokeRestart [01:27:25.835] is.null <- base::is.null [01:27:25.835] muffled <- FALSE [01:27:25.835] if (inherits(cond, "message")) { [01:27:25.835] muffled <- grepl(pattern, "muffleMessage") [01:27:25.835] if (muffled) [01:27:25.835] invokeRestart("muffleMessage") [01:27:25.835] } [01:27:25.835] else if (inherits(cond, "warning")) { [01:27:25.835] muffled <- grepl(pattern, "muffleWarning") [01:27:25.835] if (muffled) [01:27:25.835] invokeRestart("muffleWarning") [01:27:25.835] } [01:27:25.835] else if (inherits(cond, "condition")) { [01:27:25.835] if (!is.null(pattern)) { [01:27:25.835] computeRestarts <- base::computeRestarts [01:27:25.835] grepl <- base::grepl [01:27:25.835] restarts <- computeRestarts(cond) [01:27:25.835] for (restart in restarts) { [01:27:25.835] name <- restart$name [01:27:25.835] if (is.null(name)) [01:27:25.835] next [01:27:25.835] if (!grepl(pattern, name)) [01:27:25.835] next [01:27:25.835] invokeRestart(restart) [01:27:25.835] muffled <- TRUE [01:27:25.835] break [01:27:25.835] } [01:27:25.835] } [01:27:25.835] } [01:27:25.835] invisible(muffled) [01:27:25.835] } [01:27:25.835] muffleCondition(cond) [01:27:25.835] }) [01:27:25.835] })) [01:27:25.835] future::FutureResult(value = ...future.value$value, [01:27:25.835] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.835] ...future.rng), globalenv = if (FALSE) [01:27:25.835] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:25.835] ...future.globalenv.names)) [01:27:25.835] else NULL, started = ...future.startTime, version = "1.8") [01:27:25.835] }, condition = base::local({ [01:27:25.835] c <- base::c [01:27:25.835] inherits <- base::inherits [01:27:25.835] invokeRestart <- base::invokeRestart [01:27:25.835] length <- base::length [01:27:25.835] list <- base::list [01:27:25.835] seq.int <- base::seq.int [01:27:25.835] signalCondition <- base::signalCondition [01:27:25.835] sys.calls <- base::sys.calls [01:27:25.835] `[[` <- base::`[[` [01:27:25.835] `+` <- base::`+` [01:27:25.835] `<<-` <- base::`<<-` [01:27:25.835] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:25.835] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:25.835] 3L)] [01:27:25.835] } [01:27:25.835] function(cond) { [01:27:25.835] is_error <- inherits(cond, "error") [01:27:25.835] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:25.835] NULL) [01:27:25.835] if (is_error) { [01:27:25.835] sessionInformation <- function() { [01:27:25.835] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:25.835] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:25.835] search = base::search(), system = base::Sys.info()) [01:27:25.835] } [01:27:25.835] ...future.conditions[[length(...future.conditions) + [01:27:25.835] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:25.835] cond$call), session = sessionInformation(), [01:27:25.835] timestamp = base::Sys.time(), signaled = 0L) [01:27:25.835] signalCondition(cond) [01:27:25.835] } [01:27:25.835] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:25.835] "immediateCondition"))) { [01:27:25.835] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:25.835] ...future.conditions[[length(...future.conditions) + [01:27:25.835] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:25.835] if (TRUE && !signal) { [01:27:25.835] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.835] { [01:27:25.835] inherits <- base::inherits [01:27:25.835] invokeRestart <- base::invokeRestart [01:27:25.835] is.null <- base::is.null [01:27:25.835] muffled <- FALSE [01:27:25.835] if (inherits(cond, "message")) { [01:27:25.835] muffled <- grepl(pattern, "muffleMessage") [01:27:25.835] if (muffled) [01:27:25.835] invokeRestart("muffleMessage") [01:27:25.835] } [01:27:25.835] else if (inherits(cond, "warning")) { [01:27:25.835] muffled <- grepl(pattern, "muffleWarning") [01:27:25.835] if (muffled) [01:27:25.835] invokeRestart("muffleWarning") [01:27:25.835] } [01:27:25.835] else if (inherits(cond, "condition")) { [01:27:25.835] if (!is.null(pattern)) { [01:27:25.835] computeRestarts <- base::computeRestarts [01:27:25.835] grepl <- base::grepl [01:27:25.835] restarts <- computeRestarts(cond) [01:27:25.835] for (restart in restarts) { [01:27:25.835] name <- restart$name [01:27:25.835] if (is.null(name)) [01:27:25.835] next [01:27:25.835] if (!grepl(pattern, name)) [01:27:25.835] next [01:27:25.835] invokeRestart(restart) [01:27:25.835] muffled <- TRUE [01:27:25.835] break [01:27:25.835] } [01:27:25.835] } [01:27:25.835] } [01:27:25.835] invisible(muffled) [01:27:25.835] } [01:27:25.835] muffleCondition(cond, pattern = "^muffle") [01:27:25.835] } [01:27:25.835] } [01:27:25.835] else { [01:27:25.835] if (TRUE) { [01:27:25.835] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.835] { [01:27:25.835] inherits <- base::inherits [01:27:25.835] invokeRestart <- base::invokeRestart [01:27:25.835] is.null <- base::is.null [01:27:25.835] muffled <- FALSE [01:27:25.835] if (inherits(cond, "message")) { [01:27:25.835] muffled <- grepl(pattern, "muffleMessage") [01:27:25.835] if (muffled) [01:27:25.835] invokeRestart("muffleMessage") [01:27:25.835] } [01:27:25.835] else if (inherits(cond, "warning")) { [01:27:25.835] muffled <- grepl(pattern, "muffleWarning") [01:27:25.835] if (muffled) [01:27:25.835] invokeRestart("muffleWarning") [01:27:25.835] } [01:27:25.835] else if (inherits(cond, "condition")) { [01:27:25.835] if (!is.null(pattern)) { [01:27:25.835] computeRestarts <- base::computeRestarts [01:27:25.835] grepl <- base::grepl [01:27:25.835] restarts <- computeRestarts(cond) [01:27:25.835] for (restart in restarts) { [01:27:25.835] name <- restart$name [01:27:25.835] if (is.null(name)) [01:27:25.835] next [01:27:25.835] if (!grepl(pattern, name)) [01:27:25.835] next [01:27:25.835] invokeRestart(restart) [01:27:25.835] muffled <- TRUE [01:27:25.835] break [01:27:25.835] } [01:27:25.835] } [01:27:25.835] } [01:27:25.835] invisible(muffled) [01:27:25.835] } [01:27:25.835] muffleCondition(cond, pattern = "^muffle") [01:27:25.835] } [01:27:25.835] } [01:27:25.835] } [01:27:25.835] })) [01:27:25.835] }, error = function(ex) { [01:27:25.835] base::structure(base::list(value = NULL, visible = NULL, [01:27:25.835] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.835] ...future.rng), started = ...future.startTime, [01:27:25.835] finished = Sys.time(), session_uuid = NA_character_, [01:27:25.835] version = "1.8"), class = "FutureResult") [01:27:25.835] }, finally = { [01:27:25.835] if (!identical(...future.workdir, getwd())) [01:27:25.835] setwd(...future.workdir) [01:27:25.835] { [01:27:25.835] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:25.835] ...future.oldOptions$nwarnings <- NULL [01:27:25.835] } [01:27:25.835] base::options(...future.oldOptions) [01:27:25.835] if (.Platform$OS.type == "windows") { [01:27:25.835] old_names <- names(...future.oldEnvVars) [01:27:25.835] envs <- base::Sys.getenv() [01:27:25.835] names <- names(envs) [01:27:25.835] common <- intersect(names, old_names) [01:27:25.835] added <- setdiff(names, old_names) [01:27:25.835] removed <- setdiff(old_names, names) [01:27:25.835] changed <- common[...future.oldEnvVars[common] != [01:27:25.835] envs[common]] [01:27:25.835] NAMES <- toupper(changed) [01:27:25.835] args <- list() [01:27:25.835] for (kk in seq_along(NAMES)) { [01:27:25.835] name <- changed[[kk]] [01:27:25.835] NAME <- NAMES[[kk]] [01:27:25.835] if (name != NAME && is.element(NAME, old_names)) [01:27:25.835] next [01:27:25.835] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.835] } [01:27:25.835] NAMES <- toupper(added) [01:27:25.835] for (kk in seq_along(NAMES)) { [01:27:25.835] name <- added[[kk]] [01:27:25.835] NAME <- NAMES[[kk]] [01:27:25.835] if (name != NAME && is.element(NAME, old_names)) [01:27:25.835] next [01:27:25.835] args[[name]] <- "" [01:27:25.835] } [01:27:25.835] NAMES <- toupper(removed) [01:27:25.835] for (kk in seq_along(NAMES)) { [01:27:25.835] name <- removed[[kk]] [01:27:25.835] NAME <- NAMES[[kk]] [01:27:25.835] if (name != NAME && is.element(NAME, old_names)) [01:27:25.835] next [01:27:25.835] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.835] } [01:27:25.835] if (length(args) > 0) [01:27:25.835] base::do.call(base::Sys.setenv, args = args) [01:27:25.835] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:25.835] } [01:27:25.835] else { [01:27:25.835] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:25.835] } [01:27:25.835] { [01:27:25.835] if (base::length(...future.futureOptionsAdded) > [01:27:25.835] 0L) { [01:27:25.835] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:25.835] base::names(opts) <- ...future.futureOptionsAdded [01:27:25.835] base::options(opts) [01:27:25.835] } [01:27:25.835] { [01:27:25.835] { [01:27:25.835] base::options(mc.cores = ...future.mc.cores.old) [01:27:25.835] NULL [01:27:25.835] } [01:27:25.835] options(future.plan = NULL) [01:27:25.835] if (is.na(NA_character_)) [01:27:25.835] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.835] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:25.835] future::plan(list(function (..., workers = availableCores(), [01:27:25.835] lazy = FALSE, rscript_libs = .libPaths(), [01:27:25.835] envir = parent.frame()) [01:27:25.835] { [01:27:25.835] if (is.function(workers)) [01:27:25.835] workers <- workers() [01:27:25.835] workers <- structure(as.integer(workers), [01:27:25.835] class = class(workers)) [01:27:25.835] stop_if_not(length(workers) == 1, is.finite(workers), [01:27:25.835] workers >= 1) [01:27:25.835] if (workers == 1L && !inherits(workers, "AsIs")) { [01:27:25.835] return(sequential(..., lazy = TRUE, envir = envir)) [01:27:25.835] } [01:27:25.835] future <- MultisessionFuture(..., workers = workers, [01:27:25.835] lazy = lazy, rscript_libs = rscript_libs, [01:27:25.835] envir = envir) [01:27:25.835] if (!future$lazy) [01:27:25.835] future <- run(future) [01:27:25.835] invisible(future) [01:27:25.835] }), .cleanup = FALSE, .init = FALSE) [01:27:25.835] } [01:27:25.835] } [01:27:25.835] } [01:27:25.835] }) [01:27:25.835] if (TRUE) { [01:27:25.835] base::sink(type = "output", split = FALSE) [01:27:25.835] if (TRUE) { [01:27:25.835] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:25.835] } [01:27:25.835] else { [01:27:25.835] ...future.result["stdout"] <- base::list(NULL) [01:27:25.835] } [01:27:25.835] base::close(...future.stdout) [01:27:25.835] ...future.stdout <- NULL [01:27:25.835] } [01:27:25.835] ...future.result$conditions <- ...future.conditions [01:27:25.835] ...future.result$finished <- base::Sys.time() [01:27:25.835] ...future.result [01:27:25.835] } [01:27:25.840] Exporting 2 global objects (112 bytes) to cluster node #1 ... [01:27:25.840] Exporting 'x' (56 bytes) to cluster node #1 ... [01:27:25.841] Exporting 'x' (56 bytes) to cluster node #1 ... DONE [01:27:25.841] Exporting 'y' (56 bytes) to cluster node #1 ... [01:27:25.841] Exporting 'y' (56 bytes) to cluster node #1 ... DONE [01:27:25.842] Exporting 2 global objects (112 bytes) to cluster node #1 ... DONE [01:27:25.842] MultisessionFuture started [01:27:25.842] - Launch lazy future ... done [01:27:25.843] run() for 'MultisessionFuture' ... done [01:27:25.843] result() for ClusterFuture ... [01:27:25.843] receiveMessageFromWorker() for ClusterFuture ... [01:27:25.843] - Validating connection of MultisessionFuture [01:27:25.858] - received message: FutureResult [01:27:25.859] - Received FutureResult [01:27:25.859] - Erased future from FutureRegistry [01:27:25.859] result() for ClusterFuture ... [01:27:25.859] - result already collected: FutureResult [01:27:25.859] result() for ClusterFuture ... done [01:27:25.859] receiveMessageFromWorker() for ClusterFuture ... done [01:27:25.860] result() for ClusterFuture ... done [01:27:25.860] result() for ClusterFuture ... [01:27:25.860] - result already collected: FutureResult [01:27:25.860] 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 [01:27:25.861] getGlobalsAndPackages() ... [01:27:25.861] Searching for globals... [01:27:25.863] - globals found: [5] '{', 'sum', 'x', 'y', '...' [01:27:25.863] Searching for globals ... DONE [01:27:25.863] Resolving globals: FALSE [01:27:25.863] Tweak future expression to call with '...' arguments ... [01:27:25.864] The total size of the 2 globals is 112 bytes (112 bytes) [01:27:25.865] 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') [01:27:25.865] - globals: [2] 'x', 'y' [01:27:25.865] [01:27:25.865] getGlobalsAndPackages() ... DONE [01:27:25.866] run() for 'Future' ... [01:27:25.866] - state: 'created' [01:27:25.866] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [01:27:25.880] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [01:27:25.880] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [01:27:25.881] - Field: 'node' [01:27:25.881] - Field: 'label' [01:27:25.881] - Field: 'local' [01:27:25.881] - Field: 'owner' [01:27:25.882] - Field: 'envir' [01:27:25.882] - Field: 'workers' [01:27:25.882] - Field: 'packages' [01:27:25.882] - Field: 'gc' [01:27:25.882] - Field: 'conditions' [01:27:25.882] - Field: 'persistent' [01:27:25.883] - Field: 'expr' [01:27:25.883] - Field: 'uuid' [01:27:25.883] - Field: 'seed' [01:27:25.883] - Field: 'version' [01:27:25.883] - Field: 'result' [01:27:25.884] - Field: 'asynchronous' [01:27:25.884] - Field: 'calls' [01:27:25.884] - Field: 'globals' [01:27:25.884] - Field: 'stdout' [01:27:25.884] - Field: 'earlySignal' [01:27:25.884] - Field: 'lazy' [01:27:25.885] - Field: 'state' [01:27:25.885] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [01:27:25.885] - Launch lazy future ... [01:27:25.885] Packages needed by the future expression (n = 0): [01:27:25.886] Packages needed by future strategies (n = 0): [01:27:25.886] { [01:27:25.886] { [01:27:25.886] { [01:27:25.886] ...future.startTime <- base::Sys.time() [01:27:25.886] { [01:27:25.886] { [01:27:25.886] { [01:27:25.886] { [01:27:25.886] base::local({ [01:27:25.886] has_future <- base::requireNamespace("future", [01:27:25.886] quietly = TRUE) [01:27:25.886] if (has_future) { [01:27:25.886] ns <- base::getNamespace("future") [01:27:25.886] version <- ns[[".package"]][["version"]] [01:27:25.886] if (is.null(version)) [01:27:25.886] version <- utils::packageVersion("future") [01:27:25.886] } [01:27:25.886] else { [01:27:25.886] version <- NULL [01:27:25.886] } [01:27:25.886] if (!has_future || version < "1.8.0") { [01:27:25.886] info <- base::c(r_version = base::gsub("R version ", [01:27:25.886] "", base::R.version$version.string), [01:27:25.886] platform = base::sprintf("%s (%s-bit)", [01:27:25.886] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:25.886] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:25.886] "release", "version")], collapse = " "), [01:27:25.886] hostname = base::Sys.info()[["nodename"]]) [01:27:25.886] info <- base::sprintf("%s: %s", base::names(info), [01:27:25.886] info) [01:27:25.886] info <- base::paste(info, collapse = "; ") [01:27:25.886] if (!has_future) { [01:27:25.886] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:25.886] info) [01:27:25.886] } [01:27:25.886] else { [01:27:25.886] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:25.886] info, version) [01:27:25.886] } [01:27:25.886] base::stop(msg) [01:27:25.886] } [01:27:25.886] }) [01:27:25.886] } [01:27:25.886] ...future.mc.cores.old <- base::getOption("mc.cores") [01:27:25.886] base::options(mc.cores = 1L) [01:27:25.886] } [01:27:25.886] options(future.plan = NULL) [01:27:25.886] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.886] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:25.886] } [01:27:25.886] ...future.workdir <- getwd() [01:27:25.886] } [01:27:25.886] ...future.oldOptions <- base::as.list(base::.Options) [01:27:25.886] ...future.oldEnvVars <- base::Sys.getenv() [01:27:25.886] } [01:27:25.886] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:25.886] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:25.886] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:25.886] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:25.886] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:25.886] future.stdout.windows.reencode = NULL, width = 80L) [01:27:25.886] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:25.886] base::names(...future.oldOptions)) [01:27:25.886] } [01:27:25.886] if (FALSE) { [01:27:25.886] } [01:27:25.886] else { [01:27:25.886] if (TRUE) { [01:27:25.886] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:25.886] open = "w") [01:27:25.886] } [01:27:25.886] else { [01:27:25.886] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:25.886] windows = "NUL", "/dev/null"), open = "w") [01:27:25.886] } [01:27:25.886] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:25.886] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:25.886] base::sink(type = "output", split = FALSE) [01:27:25.886] base::close(...future.stdout) [01:27:25.886] }, add = TRUE) [01:27:25.886] } [01:27:25.886] ...future.frame <- base::sys.nframe() [01:27:25.886] ...future.conditions <- base::list() [01:27:25.886] ...future.rng <- base::globalenv()$.Random.seed [01:27:25.886] if (FALSE) { [01:27:25.886] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:25.886] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:25.886] } [01:27:25.886] ...future.result <- base::tryCatch({ [01:27:25.886] base::withCallingHandlers({ [01:27:25.886] ...future.value <- base::withVisible(base::local({ [01:27:25.886] ...future.makeSendCondition <- base::local({ [01:27:25.886] sendCondition <- NULL [01:27:25.886] function(frame = 1L) { [01:27:25.886] if (is.function(sendCondition)) [01:27:25.886] return(sendCondition) [01:27:25.886] ns <- getNamespace("parallel") [01:27:25.886] if (exists("sendData", mode = "function", [01:27:25.886] envir = ns)) { [01:27:25.886] parallel_sendData <- get("sendData", mode = "function", [01:27:25.886] envir = ns) [01:27:25.886] envir <- sys.frame(frame) [01:27:25.886] master <- NULL [01:27:25.886] while (!identical(envir, .GlobalEnv) && [01:27:25.886] !identical(envir, emptyenv())) { [01:27:25.886] if (exists("master", mode = "list", envir = envir, [01:27:25.886] inherits = FALSE)) { [01:27:25.886] master <- get("master", mode = "list", [01:27:25.886] envir = envir, inherits = FALSE) [01:27:25.886] if (inherits(master, c("SOCKnode", [01:27:25.886] "SOCK0node"))) { [01:27:25.886] sendCondition <<- function(cond) { [01:27:25.886] data <- list(type = "VALUE", value = cond, [01:27:25.886] success = TRUE) [01:27:25.886] parallel_sendData(master, data) [01:27:25.886] } [01:27:25.886] return(sendCondition) [01:27:25.886] } [01:27:25.886] } [01:27:25.886] frame <- frame + 1L [01:27:25.886] envir <- sys.frame(frame) [01:27:25.886] } [01:27:25.886] } [01:27:25.886] sendCondition <<- function(cond) NULL [01:27:25.886] } [01:27:25.886] }) [01:27:25.886] withCallingHandlers({ [01:27:25.886] { [01:27:25.886] sum(x, y, ...) [01:27:25.886] } [01:27:25.886] }, immediateCondition = function(cond) { [01:27:25.886] sendCondition <- ...future.makeSendCondition() [01:27:25.886] sendCondition(cond) [01:27:25.886] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.886] { [01:27:25.886] inherits <- base::inherits [01:27:25.886] invokeRestart <- base::invokeRestart [01:27:25.886] is.null <- base::is.null [01:27:25.886] muffled <- FALSE [01:27:25.886] if (inherits(cond, "message")) { [01:27:25.886] muffled <- grepl(pattern, "muffleMessage") [01:27:25.886] if (muffled) [01:27:25.886] invokeRestart("muffleMessage") [01:27:25.886] } [01:27:25.886] else if (inherits(cond, "warning")) { [01:27:25.886] muffled <- grepl(pattern, "muffleWarning") [01:27:25.886] if (muffled) [01:27:25.886] invokeRestart("muffleWarning") [01:27:25.886] } [01:27:25.886] else if (inherits(cond, "condition")) { [01:27:25.886] if (!is.null(pattern)) { [01:27:25.886] computeRestarts <- base::computeRestarts [01:27:25.886] grepl <- base::grepl [01:27:25.886] restarts <- computeRestarts(cond) [01:27:25.886] for (restart in restarts) { [01:27:25.886] name <- restart$name [01:27:25.886] if (is.null(name)) [01:27:25.886] next [01:27:25.886] if (!grepl(pattern, name)) [01:27:25.886] next [01:27:25.886] invokeRestart(restart) [01:27:25.886] muffled <- TRUE [01:27:25.886] break [01:27:25.886] } [01:27:25.886] } [01:27:25.886] } [01:27:25.886] invisible(muffled) [01:27:25.886] } [01:27:25.886] muffleCondition(cond) [01:27:25.886] }) [01:27:25.886] })) [01:27:25.886] future::FutureResult(value = ...future.value$value, [01:27:25.886] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.886] ...future.rng), globalenv = if (FALSE) [01:27:25.886] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:25.886] ...future.globalenv.names)) [01:27:25.886] else NULL, started = ...future.startTime, version = "1.8") [01:27:25.886] }, condition = base::local({ [01:27:25.886] c <- base::c [01:27:25.886] inherits <- base::inherits [01:27:25.886] invokeRestart <- base::invokeRestart [01:27:25.886] length <- base::length [01:27:25.886] list <- base::list [01:27:25.886] seq.int <- base::seq.int [01:27:25.886] signalCondition <- base::signalCondition [01:27:25.886] sys.calls <- base::sys.calls [01:27:25.886] `[[` <- base::`[[` [01:27:25.886] `+` <- base::`+` [01:27:25.886] `<<-` <- base::`<<-` [01:27:25.886] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:25.886] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:25.886] 3L)] [01:27:25.886] } [01:27:25.886] function(cond) { [01:27:25.886] is_error <- inherits(cond, "error") [01:27:25.886] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:25.886] NULL) [01:27:25.886] if (is_error) { [01:27:25.886] sessionInformation <- function() { [01:27:25.886] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:25.886] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:25.886] search = base::search(), system = base::Sys.info()) [01:27:25.886] } [01:27:25.886] ...future.conditions[[length(...future.conditions) + [01:27:25.886] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:25.886] cond$call), session = sessionInformation(), [01:27:25.886] timestamp = base::Sys.time(), signaled = 0L) [01:27:25.886] signalCondition(cond) [01:27:25.886] } [01:27:25.886] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:25.886] "immediateCondition"))) { [01:27:25.886] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:25.886] ...future.conditions[[length(...future.conditions) + [01:27:25.886] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:25.886] if (TRUE && !signal) { [01:27:25.886] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.886] { [01:27:25.886] inherits <- base::inherits [01:27:25.886] invokeRestart <- base::invokeRestart [01:27:25.886] is.null <- base::is.null [01:27:25.886] muffled <- FALSE [01:27:25.886] if (inherits(cond, "message")) { [01:27:25.886] muffled <- grepl(pattern, "muffleMessage") [01:27:25.886] if (muffled) [01:27:25.886] invokeRestart("muffleMessage") [01:27:25.886] } [01:27:25.886] else if (inherits(cond, "warning")) { [01:27:25.886] muffled <- grepl(pattern, "muffleWarning") [01:27:25.886] if (muffled) [01:27:25.886] invokeRestart("muffleWarning") [01:27:25.886] } [01:27:25.886] else if (inherits(cond, "condition")) { [01:27:25.886] if (!is.null(pattern)) { [01:27:25.886] computeRestarts <- base::computeRestarts [01:27:25.886] grepl <- base::grepl [01:27:25.886] restarts <- computeRestarts(cond) [01:27:25.886] for (restart in restarts) { [01:27:25.886] name <- restart$name [01:27:25.886] if (is.null(name)) [01:27:25.886] next [01:27:25.886] if (!grepl(pattern, name)) [01:27:25.886] next [01:27:25.886] invokeRestart(restart) [01:27:25.886] muffled <- TRUE [01:27:25.886] break [01:27:25.886] } [01:27:25.886] } [01:27:25.886] } [01:27:25.886] invisible(muffled) [01:27:25.886] } [01:27:25.886] muffleCondition(cond, pattern = "^muffle") [01:27:25.886] } [01:27:25.886] } [01:27:25.886] else { [01:27:25.886] if (TRUE) { [01:27:25.886] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.886] { [01:27:25.886] inherits <- base::inherits [01:27:25.886] invokeRestart <- base::invokeRestart [01:27:25.886] is.null <- base::is.null [01:27:25.886] muffled <- FALSE [01:27:25.886] if (inherits(cond, "message")) { [01:27:25.886] muffled <- grepl(pattern, "muffleMessage") [01:27:25.886] if (muffled) [01:27:25.886] invokeRestart("muffleMessage") [01:27:25.886] } [01:27:25.886] else if (inherits(cond, "warning")) { [01:27:25.886] muffled <- grepl(pattern, "muffleWarning") [01:27:25.886] if (muffled) [01:27:25.886] invokeRestart("muffleWarning") [01:27:25.886] } [01:27:25.886] else if (inherits(cond, "condition")) { [01:27:25.886] if (!is.null(pattern)) { [01:27:25.886] computeRestarts <- base::computeRestarts [01:27:25.886] grepl <- base::grepl [01:27:25.886] restarts <- computeRestarts(cond) [01:27:25.886] for (restart in restarts) { [01:27:25.886] name <- restart$name [01:27:25.886] if (is.null(name)) [01:27:25.886] next [01:27:25.886] if (!grepl(pattern, name)) [01:27:25.886] next [01:27:25.886] invokeRestart(restart) [01:27:25.886] muffled <- TRUE [01:27:25.886] break [01:27:25.886] } [01:27:25.886] } [01:27:25.886] } [01:27:25.886] invisible(muffled) [01:27:25.886] } [01:27:25.886] muffleCondition(cond, pattern = "^muffle") [01:27:25.886] } [01:27:25.886] } [01:27:25.886] } [01:27:25.886] })) [01:27:25.886] }, error = function(ex) { [01:27:25.886] base::structure(base::list(value = NULL, visible = NULL, [01:27:25.886] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.886] ...future.rng), started = ...future.startTime, [01:27:25.886] finished = Sys.time(), session_uuid = NA_character_, [01:27:25.886] version = "1.8"), class = "FutureResult") [01:27:25.886] }, finally = { [01:27:25.886] if (!identical(...future.workdir, getwd())) [01:27:25.886] setwd(...future.workdir) [01:27:25.886] { [01:27:25.886] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:25.886] ...future.oldOptions$nwarnings <- NULL [01:27:25.886] } [01:27:25.886] base::options(...future.oldOptions) [01:27:25.886] if (.Platform$OS.type == "windows") { [01:27:25.886] old_names <- names(...future.oldEnvVars) [01:27:25.886] envs <- base::Sys.getenv() [01:27:25.886] names <- names(envs) [01:27:25.886] common <- intersect(names, old_names) [01:27:25.886] added <- setdiff(names, old_names) [01:27:25.886] removed <- setdiff(old_names, names) [01:27:25.886] changed <- common[...future.oldEnvVars[common] != [01:27:25.886] envs[common]] [01:27:25.886] NAMES <- toupper(changed) [01:27:25.886] args <- list() [01:27:25.886] for (kk in seq_along(NAMES)) { [01:27:25.886] name <- changed[[kk]] [01:27:25.886] NAME <- NAMES[[kk]] [01:27:25.886] if (name != NAME && is.element(NAME, old_names)) [01:27:25.886] next [01:27:25.886] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.886] } [01:27:25.886] NAMES <- toupper(added) [01:27:25.886] for (kk in seq_along(NAMES)) { [01:27:25.886] name <- added[[kk]] [01:27:25.886] NAME <- NAMES[[kk]] [01:27:25.886] if (name != NAME && is.element(NAME, old_names)) [01:27:25.886] next [01:27:25.886] args[[name]] <- "" [01:27:25.886] } [01:27:25.886] NAMES <- toupper(removed) [01:27:25.886] for (kk in seq_along(NAMES)) { [01:27:25.886] name <- removed[[kk]] [01:27:25.886] NAME <- NAMES[[kk]] [01:27:25.886] if (name != NAME && is.element(NAME, old_names)) [01:27:25.886] next [01:27:25.886] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.886] } [01:27:25.886] if (length(args) > 0) [01:27:25.886] base::do.call(base::Sys.setenv, args = args) [01:27:25.886] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:25.886] } [01:27:25.886] else { [01:27:25.886] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:25.886] } [01:27:25.886] { [01:27:25.886] if (base::length(...future.futureOptionsAdded) > [01:27:25.886] 0L) { [01:27:25.886] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:25.886] base::names(opts) <- ...future.futureOptionsAdded [01:27:25.886] base::options(opts) [01:27:25.886] } [01:27:25.886] { [01:27:25.886] { [01:27:25.886] base::options(mc.cores = ...future.mc.cores.old) [01:27:25.886] NULL [01:27:25.886] } [01:27:25.886] options(future.plan = NULL) [01:27:25.886] if (is.na(NA_character_)) [01:27:25.886] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.886] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:25.886] future::plan(list(function (..., workers = availableCores(), [01:27:25.886] lazy = FALSE, rscript_libs = .libPaths(), [01:27:25.886] envir = parent.frame()) [01:27:25.886] { [01:27:25.886] if (is.function(workers)) [01:27:25.886] workers <- workers() [01:27:25.886] workers <- structure(as.integer(workers), [01:27:25.886] class = class(workers)) [01:27:25.886] stop_if_not(length(workers) == 1, is.finite(workers), [01:27:25.886] workers >= 1) [01:27:25.886] if (workers == 1L && !inherits(workers, "AsIs")) { [01:27:25.886] return(sequential(..., lazy = TRUE, envir = envir)) [01:27:25.886] } [01:27:25.886] future <- MultisessionFuture(..., workers = workers, [01:27:25.886] lazy = lazy, rscript_libs = rscript_libs, [01:27:25.886] envir = envir) [01:27:25.886] if (!future$lazy) [01:27:25.886] future <- run(future) [01:27:25.886] invisible(future) [01:27:25.886] }), .cleanup = FALSE, .init = FALSE) [01:27:25.886] } [01:27:25.886] } [01:27:25.886] } [01:27:25.886] }) [01:27:25.886] if (TRUE) { [01:27:25.886] base::sink(type = "output", split = FALSE) [01:27:25.886] if (TRUE) { [01:27:25.886] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:25.886] } [01:27:25.886] else { [01:27:25.886] ...future.result["stdout"] <- base::list(NULL) [01:27:25.886] } [01:27:25.886] base::close(...future.stdout) [01:27:25.886] ...future.stdout <- NULL [01:27:25.886] } [01:27:25.886] ...future.result$conditions <- ...future.conditions [01:27:25.886] ...future.result$finished <- base::Sys.time() [01:27:25.886] ...future.result [01:27:25.886] } [01:27:25.891] Exporting 2 global objects (112 bytes) to cluster node #1 ... [01:27:25.892] Exporting 'x' (56 bytes) to cluster node #1 ... [01:27:25.892] Exporting 'x' (56 bytes) to cluster node #1 ... DONE [01:27:25.892] Exporting 'y' (56 bytes) to cluster node #1 ... [01:27:25.893] Exporting 'y' (56 bytes) to cluster node #1 ... DONE [01:27:25.893] Exporting 2 global objects (112 bytes) to cluster node #1 ... DONE [01:27:25.894] MultisessionFuture started [01:27:25.894] - Launch lazy future ... done [01:27:25.894] run() for 'MultisessionFuture' ... done [01:27:25.894] result() for ClusterFuture ... [01:27:25.895] receiveMessageFromWorker() for ClusterFuture ... [01:27:25.895] - Validating connection of MultisessionFuture [01:27:25.913] - received message: FutureResult [01:27:25.914] - Received FutureResult [01:27:25.914] - Erased future from FutureRegistry [01:27:25.914] result() for ClusterFuture ... [01:27:25.914] - result already collected: FutureResult [01:27:25.915] result() for ClusterFuture ... done [01:27:25.915] signalConditions() ... [01:27:25.915] - include = 'immediateCondition' [01:27:25.915] - exclude = [01:27:25.915] - resignal = FALSE [01:27:25.916] - Number of conditions: 1 [01:27:25.916] signalConditions() ... done [01:27:25.916] receiveMessageFromWorker() for ClusterFuture ... done [01:27:25.916] result() for ClusterFuture ... done [01:27:25.917] result() for ClusterFuture ... [01:27:25.917] - result already collected: FutureResult [01:27:25.917] result() for ClusterFuture ... done [01:27:25.917] signalConditions() ... [01:27:25.917] - include = 'immediateCondition' [01:27:25.918] - exclude = [01:27:25.918] - resignal = FALSE [01:27:25.918] - Number of conditions: 1 [01:27:25.918] signalConditions() ... done [01:27:25.918] Future state: 'finished' [01:27:25.919] result() for ClusterFuture ... [01:27:25.919] - result already collected: FutureResult [01:27:25.919] result() for ClusterFuture ... done [01:27:25.919] signalConditions() ... [01:27:25.919] - include = 'condition' [01:27:25.919] - exclude = 'immediateCondition' [01:27:25.920] - resignal = TRUE [01:27:25.920] - Number of conditions: 1 [01:27:25.920] - Condition #1: 'simpleError', 'error', 'condition' [01:27:25.921] 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 [01:27:25.923] getGlobalsAndPackages() ... [01:27:25.923] - globals passed as-is: [1] '...' [01:27:25.923] Resolving globals: FALSE [01:27:25.923] Tweak future expression to call with '...' arguments ... [01:27:25.924] { [01:27:25.924] do.call(function(...) { [01:27:25.924] fcn <- function() sum(...) [01:27:25.924] fcn() [01:27:25.924] }, args = future.call.arguments) [01:27:25.924] } [01:27:25.924] Tweak future expression to call with '...' arguments ... DONE [01:27:25.925] The total size of the 1 globals is 112 bytes (112 bytes) [01:27:25.926] 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') [01:27:25.926] - globals: [1] 'future.call.arguments' [01:27:25.926] [01:27:25.926] getGlobalsAndPackages() ... DONE [01:27:25.927] run() for 'Future' ... [01:27:25.927] - state: 'created' [01:27:25.928] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [01:27:25.946] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [01:27:25.947] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [01:27:25.947] - Field: 'node' [01:27:25.947] - Field: 'label' [01:27:25.947] - Field: 'local' [01:27:25.948] - Field: 'owner' [01:27:25.948] - Field: 'envir' [01:27:25.948] - Field: 'workers' [01:27:25.948] - Field: 'packages' [01:27:25.948] - Field: 'gc' [01:27:25.949] - Field: 'conditions' [01:27:25.949] - Field: 'persistent' [01:27:25.949] - Field: 'expr' [01:27:25.949] - Field: 'uuid' [01:27:25.949] - Field: 'seed' [01:27:25.950] - Field: 'version' [01:27:25.950] - Field: 'result' [01:27:25.950] - Field: 'asynchronous' [01:27:25.950] - Field: 'calls' [01:27:25.950] - Field: 'globals' [01:27:25.951] - Field: 'stdout' [01:27:25.951] - Field: 'earlySignal' [01:27:25.951] - Field: 'lazy' [01:27:25.951] - Field: 'state' [01:27:25.951] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [01:27:25.952] - Launch lazy future ... [01:27:25.952] Packages needed by the future expression (n = 0): [01:27:25.952] Packages needed by future strategies (n = 0): [01:27:25.953] { [01:27:25.953] { [01:27:25.953] { [01:27:25.953] ...future.startTime <- base::Sys.time() [01:27:25.953] { [01:27:25.953] { [01:27:25.953] { [01:27:25.953] { [01:27:25.953] base::local({ [01:27:25.953] has_future <- base::requireNamespace("future", [01:27:25.953] quietly = TRUE) [01:27:25.953] if (has_future) { [01:27:25.953] ns <- base::getNamespace("future") [01:27:25.953] version <- ns[[".package"]][["version"]] [01:27:25.953] if (is.null(version)) [01:27:25.953] version <- utils::packageVersion("future") [01:27:25.953] } [01:27:25.953] else { [01:27:25.953] version <- NULL [01:27:25.953] } [01:27:25.953] if (!has_future || version < "1.8.0") { [01:27:25.953] info <- base::c(r_version = base::gsub("R version ", [01:27:25.953] "", base::R.version$version.string), [01:27:25.953] platform = base::sprintf("%s (%s-bit)", [01:27:25.953] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:25.953] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:25.953] "release", "version")], collapse = " "), [01:27:25.953] hostname = base::Sys.info()[["nodename"]]) [01:27:25.953] info <- base::sprintf("%s: %s", base::names(info), [01:27:25.953] info) [01:27:25.953] info <- base::paste(info, collapse = "; ") [01:27:25.953] if (!has_future) { [01:27:25.953] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:25.953] info) [01:27:25.953] } [01:27:25.953] else { [01:27:25.953] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:25.953] info, version) [01:27:25.953] } [01:27:25.953] base::stop(msg) [01:27:25.953] } [01:27:25.953] }) [01:27:25.953] } [01:27:25.953] ...future.mc.cores.old <- base::getOption("mc.cores") [01:27:25.953] base::options(mc.cores = 1L) [01:27:25.953] } [01:27:25.953] options(future.plan = NULL) [01:27:25.953] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.953] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:25.953] } [01:27:25.953] ...future.workdir <- getwd() [01:27:25.953] } [01:27:25.953] ...future.oldOptions <- base::as.list(base::.Options) [01:27:25.953] ...future.oldEnvVars <- base::Sys.getenv() [01:27:25.953] } [01:27:25.953] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:25.953] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:25.953] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:25.953] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:25.953] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:25.953] future.stdout.windows.reencode = NULL, width = 80L) [01:27:25.953] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:25.953] base::names(...future.oldOptions)) [01:27:25.953] } [01:27:25.953] if (FALSE) { [01:27:25.953] } [01:27:25.953] else { [01:27:25.953] if (TRUE) { [01:27:25.953] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:25.953] open = "w") [01:27:25.953] } [01:27:25.953] else { [01:27:25.953] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:25.953] windows = "NUL", "/dev/null"), open = "w") [01:27:25.953] } [01:27:25.953] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:25.953] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:25.953] base::sink(type = "output", split = FALSE) [01:27:25.953] base::close(...future.stdout) [01:27:25.953] }, add = TRUE) [01:27:25.953] } [01:27:25.953] ...future.frame <- base::sys.nframe() [01:27:25.953] ...future.conditions <- base::list() [01:27:25.953] ...future.rng <- base::globalenv()$.Random.seed [01:27:25.953] if (FALSE) { [01:27:25.953] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:25.953] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:25.953] } [01:27:25.953] ...future.result <- base::tryCatch({ [01:27:25.953] base::withCallingHandlers({ [01:27:25.953] ...future.value <- base::withVisible(base::local({ [01:27:25.953] ...future.makeSendCondition <- base::local({ [01:27:25.953] sendCondition <- NULL [01:27:25.953] function(frame = 1L) { [01:27:25.953] if (is.function(sendCondition)) [01:27:25.953] return(sendCondition) [01:27:25.953] ns <- getNamespace("parallel") [01:27:25.953] if (exists("sendData", mode = "function", [01:27:25.953] envir = ns)) { [01:27:25.953] parallel_sendData <- get("sendData", mode = "function", [01:27:25.953] envir = ns) [01:27:25.953] envir <- sys.frame(frame) [01:27:25.953] master <- NULL [01:27:25.953] while (!identical(envir, .GlobalEnv) && [01:27:25.953] !identical(envir, emptyenv())) { [01:27:25.953] if (exists("master", mode = "list", envir = envir, [01:27:25.953] inherits = FALSE)) { [01:27:25.953] master <- get("master", mode = "list", [01:27:25.953] envir = envir, inherits = FALSE) [01:27:25.953] if (inherits(master, c("SOCKnode", [01:27:25.953] "SOCK0node"))) { [01:27:25.953] sendCondition <<- function(cond) { [01:27:25.953] data <- list(type = "VALUE", value = cond, [01:27:25.953] success = TRUE) [01:27:25.953] parallel_sendData(master, data) [01:27:25.953] } [01:27:25.953] return(sendCondition) [01:27:25.953] } [01:27:25.953] } [01:27:25.953] frame <- frame + 1L [01:27:25.953] envir <- sys.frame(frame) [01:27:25.953] } [01:27:25.953] } [01:27:25.953] sendCondition <<- function(cond) NULL [01:27:25.953] } [01:27:25.953] }) [01:27:25.953] withCallingHandlers({ [01:27:25.953] { [01:27:25.953] do.call(function(...) { [01:27:25.953] fcn <- function() sum(...) [01:27:25.953] fcn() [01:27:25.953] }, args = future.call.arguments) [01:27:25.953] } [01:27:25.953] }, immediateCondition = function(cond) { [01:27:25.953] sendCondition <- ...future.makeSendCondition() [01:27:25.953] sendCondition(cond) [01:27:25.953] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.953] { [01:27:25.953] inherits <- base::inherits [01:27:25.953] invokeRestart <- base::invokeRestart [01:27:25.953] is.null <- base::is.null [01:27:25.953] muffled <- FALSE [01:27:25.953] if (inherits(cond, "message")) { [01:27:25.953] muffled <- grepl(pattern, "muffleMessage") [01:27:25.953] if (muffled) [01:27:25.953] invokeRestart("muffleMessage") [01:27:25.953] } [01:27:25.953] else if (inherits(cond, "warning")) { [01:27:25.953] muffled <- grepl(pattern, "muffleWarning") [01:27:25.953] if (muffled) [01:27:25.953] invokeRestart("muffleWarning") [01:27:25.953] } [01:27:25.953] else if (inherits(cond, "condition")) { [01:27:25.953] if (!is.null(pattern)) { [01:27:25.953] computeRestarts <- base::computeRestarts [01:27:25.953] grepl <- base::grepl [01:27:25.953] restarts <- computeRestarts(cond) [01:27:25.953] for (restart in restarts) { [01:27:25.953] name <- restart$name [01:27:25.953] if (is.null(name)) [01:27:25.953] next [01:27:25.953] if (!grepl(pattern, name)) [01:27:25.953] next [01:27:25.953] invokeRestart(restart) [01:27:25.953] muffled <- TRUE [01:27:25.953] break [01:27:25.953] } [01:27:25.953] } [01:27:25.953] } [01:27:25.953] invisible(muffled) [01:27:25.953] } [01:27:25.953] muffleCondition(cond) [01:27:25.953] }) [01:27:25.953] })) [01:27:25.953] future::FutureResult(value = ...future.value$value, [01:27:25.953] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.953] ...future.rng), globalenv = if (FALSE) [01:27:25.953] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:25.953] ...future.globalenv.names)) [01:27:25.953] else NULL, started = ...future.startTime, version = "1.8") [01:27:25.953] }, condition = base::local({ [01:27:25.953] c <- base::c [01:27:25.953] inherits <- base::inherits [01:27:25.953] invokeRestart <- base::invokeRestart [01:27:25.953] length <- base::length [01:27:25.953] list <- base::list [01:27:25.953] seq.int <- base::seq.int [01:27:25.953] signalCondition <- base::signalCondition [01:27:25.953] sys.calls <- base::sys.calls [01:27:25.953] `[[` <- base::`[[` [01:27:25.953] `+` <- base::`+` [01:27:25.953] `<<-` <- base::`<<-` [01:27:25.953] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:25.953] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:25.953] 3L)] [01:27:25.953] } [01:27:25.953] function(cond) { [01:27:25.953] is_error <- inherits(cond, "error") [01:27:25.953] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:25.953] NULL) [01:27:25.953] if (is_error) { [01:27:25.953] sessionInformation <- function() { [01:27:25.953] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:25.953] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:25.953] search = base::search(), system = base::Sys.info()) [01:27:25.953] } [01:27:25.953] ...future.conditions[[length(...future.conditions) + [01:27:25.953] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:25.953] cond$call), session = sessionInformation(), [01:27:25.953] timestamp = base::Sys.time(), signaled = 0L) [01:27:25.953] signalCondition(cond) [01:27:25.953] } [01:27:25.953] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:25.953] "immediateCondition"))) { [01:27:25.953] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:25.953] ...future.conditions[[length(...future.conditions) + [01:27:25.953] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:25.953] if (TRUE && !signal) { [01:27:25.953] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.953] { [01:27:25.953] inherits <- base::inherits [01:27:25.953] invokeRestart <- base::invokeRestart [01:27:25.953] is.null <- base::is.null [01:27:25.953] muffled <- FALSE [01:27:25.953] if (inherits(cond, "message")) { [01:27:25.953] muffled <- grepl(pattern, "muffleMessage") [01:27:25.953] if (muffled) [01:27:25.953] invokeRestart("muffleMessage") [01:27:25.953] } [01:27:25.953] else if (inherits(cond, "warning")) { [01:27:25.953] muffled <- grepl(pattern, "muffleWarning") [01:27:25.953] if (muffled) [01:27:25.953] invokeRestart("muffleWarning") [01:27:25.953] } [01:27:25.953] else if (inherits(cond, "condition")) { [01:27:25.953] if (!is.null(pattern)) { [01:27:25.953] computeRestarts <- base::computeRestarts [01:27:25.953] grepl <- base::grepl [01:27:25.953] restarts <- computeRestarts(cond) [01:27:25.953] for (restart in restarts) { [01:27:25.953] name <- restart$name [01:27:25.953] if (is.null(name)) [01:27:25.953] next [01:27:25.953] if (!grepl(pattern, name)) [01:27:25.953] next [01:27:25.953] invokeRestart(restart) [01:27:25.953] muffled <- TRUE [01:27:25.953] break [01:27:25.953] } [01:27:25.953] } [01:27:25.953] } [01:27:25.953] invisible(muffled) [01:27:25.953] } [01:27:25.953] muffleCondition(cond, pattern = "^muffle") [01:27:25.953] } [01:27:25.953] } [01:27:25.953] else { [01:27:25.953] if (TRUE) { [01:27:25.953] muffleCondition <- function (cond, pattern = "^muffle") [01:27:25.953] { [01:27:25.953] inherits <- base::inherits [01:27:25.953] invokeRestart <- base::invokeRestart [01:27:25.953] is.null <- base::is.null [01:27:25.953] muffled <- FALSE [01:27:25.953] if (inherits(cond, "message")) { [01:27:25.953] muffled <- grepl(pattern, "muffleMessage") [01:27:25.953] if (muffled) [01:27:25.953] invokeRestart("muffleMessage") [01:27:25.953] } [01:27:25.953] else if (inherits(cond, "warning")) { [01:27:25.953] muffled <- grepl(pattern, "muffleWarning") [01:27:25.953] if (muffled) [01:27:25.953] invokeRestart("muffleWarning") [01:27:25.953] } [01:27:25.953] else if (inherits(cond, "condition")) { [01:27:25.953] if (!is.null(pattern)) { [01:27:25.953] computeRestarts <- base::computeRestarts [01:27:25.953] grepl <- base::grepl [01:27:25.953] restarts <- computeRestarts(cond) [01:27:25.953] for (restart in restarts) { [01:27:25.953] name <- restart$name [01:27:25.953] if (is.null(name)) [01:27:25.953] next [01:27:25.953] if (!grepl(pattern, name)) [01:27:25.953] next [01:27:25.953] invokeRestart(restart) [01:27:25.953] muffled <- TRUE [01:27:25.953] break [01:27:25.953] } [01:27:25.953] } [01:27:25.953] } [01:27:25.953] invisible(muffled) [01:27:25.953] } [01:27:25.953] muffleCondition(cond, pattern = "^muffle") [01:27:25.953] } [01:27:25.953] } [01:27:25.953] } [01:27:25.953] })) [01:27:25.953] }, error = function(ex) { [01:27:25.953] base::structure(base::list(value = NULL, visible = NULL, [01:27:25.953] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:25.953] ...future.rng), started = ...future.startTime, [01:27:25.953] finished = Sys.time(), session_uuid = NA_character_, [01:27:25.953] version = "1.8"), class = "FutureResult") [01:27:25.953] }, finally = { [01:27:25.953] if (!identical(...future.workdir, getwd())) [01:27:25.953] setwd(...future.workdir) [01:27:25.953] { [01:27:25.953] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:25.953] ...future.oldOptions$nwarnings <- NULL [01:27:25.953] } [01:27:25.953] base::options(...future.oldOptions) [01:27:25.953] if (.Platform$OS.type == "windows") { [01:27:25.953] old_names <- names(...future.oldEnvVars) [01:27:25.953] envs <- base::Sys.getenv() [01:27:25.953] names <- names(envs) [01:27:25.953] common <- intersect(names, old_names) [01:27:25.953] added <- setdiff(names, old_names) [01:27:25.953] removed <- setdiff(old_names, names) [01:27:25.953] changed <- common[...future.oldEnvVars[common] != [01:27:25.953] envs[common]] [01:27:25.953] NAMES <- toupper(changed) [01:27:25.953] args <- list() [01:27:25.953] for (kk in seq_along(NAMES)) { [01:27:25.953] name <- changed[[kk]] [01:27:25.953] NAME <- NAMES[[kk]] [01:27:25.953] if (name != NAME && is.element(NAME, old_names)) [01:27:25.953] next [01:27:25.953] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.953] } [01:27:25.953] NAMES <- toupper(added) [01:27:25.953] for (kk in seq_along(NAMES)) { [01:27:25.953] name <- added[[kk]] [01:27:25.953] NAME <- NAMES[[kk]] [01:27:25.953] if (name != NAME && is.element(NAME, old_names)) [01:27:25.953] next [01:27:25.953] args[[name]] <- "" [01:27:25.953] } [01:27:25.953] NAMES <- toupper(removed) [01:27:25.953] for (kk in seq_along(NAMES)) { [01:27:25.953] name <- removed[[kk]] [01:27:25.953] NAME <- NAMES[[kk]] [01:27:25.953] if (name != NAME && is.element(NAME, old_names)) [01:27:25.953] next [01:27:25.953] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:25.953] } [01:27:25.953] if (length(args) > 0) [01:27:25.953] base::do.call(base::Sys.setenv, args = args) [01:27:25.953] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:25.953] } [01:27:25.953] else { [01:27:25.953] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:25.953] } [01:27:25.953] { [01:27:25.953] if (base::length(...future.futureOptionsAdded) > [01:27:25.953] 0L) { [01:27:25.953] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:25.953] base::names(opts) <- ...future.futureOptionsAdded [01:27:25.953] base::options(opts) [01:27:25.953] } [01:27:25.953] { [01:27:25.953] { [01:27:25.953] base::options(mc.cores = ...future.mc.cores.old) [01:27:25.953] NULL [01:27:25.953] } [01:27:25.953] options(future.plan = NULL) [01:27:25.953] if (is.na(NA_character_)) [01:27:25.953] Sys.unsetenv("R_FUTURE_PLAN") [01:27:25.953] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:25.953] future::plan(list(function (..., workers = availableCores(), [01:27:25.953] lazy = FALSE, rscript_libs = .libPaths(), [01:27:25.953] envir = parent.frame()) [01:27:25.953] { [01:27:25.953] if (is.function(workers)) [01:27:25.953] workers <- workers() [01:27:25.953] workers <- structure(as.integer(workers), [01:27:25.953] class = class(workers)) [01:27:25.953] stop_if_not(length(workers) == 1, is.finite(workers), [01:27:25.953] workers >= 1) [01:27:25.953] if (workers == 1L && !inherits(workers, "AsIs")) { [01:27:25.953] return(sequential(..., lazy = TRUE, envir = envir)) [01:27:25.953] } [01:27:25.953] future <- MultisessionFuture(..., workers = workers, [01:27:25.953] lazy = lazy, rscript_libs = rscript_libs, [01:27:25.953] envir = envir) [01:27:25.953] if (!future$lazy) [01:27:25.953] future <- run(future) [01:27:25.953] invisible(future) [01:27:25.953] }), .cleanup = FALSE, .init = FALSE) [01:27:25.953] } [01:27:25.953] } [01:27:25.953] } [01:27:25.953] }) [01:27:25.953] if (TRUE) { [01:27:25.953] base::sink(type = "output", split = FALSE) [01:27:25.953] if (TRUE) { [01:27:25.953] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:25.953] } [01:27:25.953] else { [01:27:25.953] ...future.result["stdout"] <- base::list(NULL) [01:27:25.953] } [01:27:25.953] base::close(...future.stdout) [01:27:25.953] ...future.stdout <- NULL [01:27:25.953] } [01:27:25.953] ...future.result$conditions <- ...future.conditions [01:27:25.953] ...future.result$finished <- base::Sys.time() [01:27:25.953] ...future.result [01:27:25.953] } [01:27:25.961] Exporting 1 global objects (112 bytes) to cluster node #1 ... [01:27:25.961] Exporting 'future.call.arguments' (112 bytes) to cluster node #1 ... [01:27:25.962] Exporting 'future.call.arguments' (112 bytes) to cluster node #1 ... DONE [01:27:25.962] Exporting 1 global objects (112 bytes) to cluster node #1 ... DONE [01:27:25.963] MultisessionFuture started [01:27:25.964] - Launch lazy future ... done [01:27:25.964] run() for 'MultisessionFuture' ... done [01:27:25.964] result() for ClusterFuture ... [01:27:25.964] receiveMessageFromWorker() for ClusterFuture ... [01:27:25.964] - Validating connection of MultisessionFuture [01:27:25.981] - received message: FutureResult [01:27:25.982] - Received FutureResult [01:27:25.982] - Erased future from FutureRegistry [01:27:25.982] result() for ClusterFuture ... [01:27:25.982] - result already collected: FutureResult [01:27:25.982] result() for ClusterFuture ... done [01:27:25.983] receiveMessageFromWorker() for ClusterFuture ... done [01:27:25.983] result() for ClusterFuture ... done [01:27:25.983] result() for ClusterFuture ... [01:27:25.983] - result already collected: FutureResult [01:27:25.983] 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 [01:27:25.984] getGlobalsAndPackages() ... [01:27:25.984] Searching for globals... [01:27:25.988] - globals found: [9] 'fcn', 'x', 'y', '{', '=', '~', 'list', 'sum', '...' [01:27:25.988] Searching for globals ... DONE [01:27:25.989] Resolving globals: FALSE [01:27:25.989] Tweak future expression to call with '...' arguments ... [01:27:25.990] The total size of the 3 globals is 4.18 KiB (4280 bytes) [01:27:25.990] 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') [01:27:25.991] - globals: [3] 'fcn', 'x', 'y' [01:27:25.991] [01:27:25.991] getGlobalsAndPackages() ... DONE [01:27:25.991] run() for 'Future' ... [01:27:25.992] - state: 'created' [01:27:25.992] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [01:27:26.008] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [01:27:26.008] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [01:27:26.008] - Field: 'node' [01:27:26.009] - Field: 'label' [01:27:26.009] - Field: 'local' [01:27:26.009] - Field: 'owner' [01:27:26.009] - Field: 'envir' [01:27:26.009] - Field: 'workers' [01:27:26.010] - Field: 'packages' [01:27:26.010] - Field: 'gc' [01:27:26.010] - Field: 'conditions' [01:27:26.010] - Field: 'persistent' [01:27:26.010] - Field: 'expr' [01:27:26.011] - Field: 'uuid' [01:27:26.011] - Field: 'seed' [01:27:26.011] - Field: 'version' [01:27:26.011] - Field: 'result' [01:27:26.011] - Field: 'asynchronous' [01:27:26.011] - Field: 'calls' [01:27:26.012] - Field: 'globals' [01:27:26.012] - Field: 'stdout' [01:27:26.012] - Field: 'earlySignal' [01:27:26.012] - Field: 'lazy' [01:27:26.012] - Field: 'state' [01:27:26.012] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [01:27:26.013] - Launch lazy future ... [01:27:26.013] Packages needed by the future expression (n = 0): [01:27:26.013] Packages needed by future strategies (n = 0): [01:27:26.014] { [01:27:26.014] { [01:27:26.014] { [01:27:26.014] ...future.startTime <- base::Sys.time() [01:27:26.014] { [01:27:26.014] { [01:27:26.014] { [01:27:26.014] { [01:27:26.014] base::local({ [01:27:26.014] has_future <- base::requireNamespace("future", [01:27:26.014] quietly = TRUE) [01:27:26.014] if (has_future) { [01:27:26.014] ns <- base::getNamespace("future") [01:27:26.014] version <- ns[[".package"]][["version"]] [01:27:26.014] if (is.null(version)) [01:27:26.014] version <- utils::packageVersion("future") [01:27:26.014] } [01:27:26.014] else { [01:27:26.014] version <- NULL [01:27:26.014] } [01:27:26.014] if (!has_future || version < "1.8.0") { [01:27:26.014] info <- base::c(r_version = base::gsub("R version ", [01:27:26.014] "", base::R.version$version.string), [01:27:26.014] platform = base::sprintf("%s (%s-bit)", [01:27:26.014] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:26.014] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:26.014] "release", "version")], collapse = " "), [01:27:26.014] hostname = base::Sys.info()[["nodename"]]) [01:27:26.014] info <- base::sprintf("%s: %s", base::names(info), [01:27:26.014] info) [01:27:26.014] info <- base::paste(info, collapse = "; ") [01:27:26.014] if (!has_future) { [01:27:26.014] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:26.014] info) [01:27:26.014] } [01:27:26.014] else { [01:27:26.014] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:26.014] info, version) [01:27:26.014] } [01:27:26.014] base::stop(msg) [01:27:26.014] } [01:27:26.014] }) [01:27:26.014] } [01:27:26.014] ...future.mc.cores.old <- base::getOption("mc.cores") [01:27:26.014] base::options(mc.cores = 1L) [01:27:26.014] } [01:27:26.014] options(future.plan = NULL) [01:27:26.014] Sys.unsetenv("R_FUTURE_PLAN") [01:27:26.014] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:26.014] } [01:27:26.014] ...future.workdir <- getwd() [01:27:26.014] } [01:27:26.014] ...future.oldOptions <- base::as.list(base::.Options) [01:27:26.014] ...future.oldEnvVars <- base::Sys.getenv() [01:27:26.014] } [01:27:26.014] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:26.014] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:26.014] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:26.014] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:26.014] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:26.014] future.stdout.windows.reencode = NULL, width = 80L) [01:27:26.014] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:26.014] base::names(...future.oldOptions)) [01:27:26.014] } [01:27:26.014] if (FALSE) { [01:27:26.014] } [01:27:26.014] else { [01:27:26.014] if (TRUE) { [01:27:26.014] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:26.014] open = "w") [01:27:26.014] } [01:27:26.014] else { [01:27:26.014] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:26.014] windows = "NUL", "/dev/null"), open = "w") [01:27:26.014] } [01:27:26.014] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:26.014] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:26.014] base::sink(type = "output", split = FALSE) [01:27:26.014] base::close(...future.stdout) [01:27:26.014] }, add = TRUE) [01:27:26.014] } [01:27:26.014] ...future.frame <- base::sys.nframe() [01:27:26.014] ...future.conditions <- base::list() [01:27:26.014] ...future.rng <- base::globalenv()$.Random.seed [01:27:26.014] if (FALSE) { [01:27:26.014] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:26.014] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:26.014] } [01:27:26.014] ...future.result <- base::tryCatch({ [01:27:26.014] base::withCallingHandlers({ [01:27:26.014] ...future.value <- base::withVisible(base::local({ [01:27:26.014] ...future.makeSendCondition <- base::local({ [01:27:26.014] sendCondition <- NULL [01:27:26.014] function(frame = 1L) { [01:27:26.014] if (is.function(sendCondition)) [01:27:26.014] return(sendCondition) [01:27:26.014] ns <- getNamespace("parallel") [01:27:26.014] if (exists("sendData", mode = "function", [01:27:26.014] envir = ns)) { [01:27:26.014] parallel_sendData <- get("sendData", mode = "function", [01:27:26.014] envir = ns) [01:27:26.014] envir <- sys.frame(frame) [01:27:26.014] master <- NULL [01:27:26.014] while (!identical(envir, .GlobalEnv) && [01:27:26.014] !identical(envir, emptyenv())) { [01:27:26.014] if (exists("master", mode = "list", envir = envir, [01:27:26.014] inherits = FALSE)) { [01:27:26.014] master <- get("master", mode = "list", [01:27:26.014] envir = envir, inherits = FALSE) [01:27:26.014] if (inherits(master, c("SOCKnode", [01:27:26.014] "SOCK0node"))) { [01:27:26.014] sendCondition <<- function(cond) { [01:27:26.014] data <- list(type = "VALUE", value = cond, [01:27:26.014] success = TRUE) [01:27:26.014] parallel_sendData(master, data) [01:27:26.014] } [01:27:26.014] return(sendCondition) [01:27:26.014] } [01:27:26.014] } [01:27:26.014] frame <- frame + 1L [01:27:26.014] envir <- sys.frame(frame) [01:27:26.014] } [01:27:26.014] } [01:27:26.014] sendCondition <<- function(cond) NULL [01:27:26.014] } [01:27:26.014] }) [01:27:26.014] withCallingHandlers({ [01:27:26.014] fcn(x, y) [01:27:26.014] }, immediateCondition = function(cond) { [01:27:26.014] sendCondition <- ...future.makeSendCondition() [01:27:26.014] sendCondition(cond) [01:27:26.014] muffleCondition <- function (cond, pattern = "^muffle") [01:27:26.014] { [01:27:26.014] inherits <- base::inherits [01:27:26.014] invokeRestart <- base::invokeRestart [01:27:26.014] is.null <- base::is.null [01:27:26.014] muffled <- FALSE [01:27:26.014] if (inherits(cond, "message")) { [01:27:26.014] muffled <- grepl(pattern, "muffleMessage") [01:27:26.014] if (muffled) [01:27:26.014] invokeRestart("muffleMessage") [01:27:26.014] } [01:27:26.014] else if (inherits(cond, "warning")) { [01:27:26.014] muffled <- grepl(pattern, "muffleWarning") [01:27:26.014] if (muffled) [01:27:26.014] invokeRestart("muffleWarning") [01:27:26.014] } [01:27:26.014] else if (inherits(cond, "condition")) { [01:27:26.014] if (!is.null(pattern)) { [01:27:26.014] computeRestarts <- base::computeRestarts [01:27:26.014] grepl <- base::grepl [01:27:26.014] restarts <- computeRestarts(cond) [01:27:26.014] for (restart in restarts) { [01:27:26.014] name <- restart$name [01:27:26.014] if (is.null(name)) [01:27:26.014] next [01:27:26.014] if (!grepl(pattern, name)) [01:27:26.014] next [01:27:26.014] invokeRestart(restart) [01:27:26.014] muffled <- TRUE [01:27:26.014] break [01:27:26.014] } [01:27:26.014] } [01:27:26.014] } [01:27:26.014] invisible(muffled) [01:27:26.014] } [01:27:26.014] muffleCondition(cond) [01:27:26.014] }) [01:27:26.014] })) [01:27:26.014] future::FutureResult(value = ...future.value$value, [01:27:26.014] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:26.014] ...future.rng), globalenv = if (FALSE) [01:27:26.014] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:26.014] ...future.globalenv.names)) [01:27:26.014] else NULL, started = ...future.startTime, version = "1.8") [01:27:26.014] }, condition = base::local({ [01:27:26.014] c <- base::c [01:27:26.014] inherits <- base::inherits [01:27:26.014] invokeRestart <- base::invokeRestart [01:27:26.014] length <- base::length [01:27:26.014] list <- base::list [01:27:26.014] seq.int <- base::seq.int [01:27:26.014] signalCondition <- base::signalCondition [01:27:26.014] sys.calls <- base::sys.calls [01:27:26.014] `[[` <- base::`[[` [01:27:26.014] `+` <- base::`+` [01:27:26.014] `<<-` <- base::`<<-` [01:27:26.014] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:26.014] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:26.014] 3L)] [01:27:26.014] } [01:27:26.014] function(cond) { [01:27:26.014] is_error <- inherits(cond, "error") [01:27:26.014] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:26.014] NULL) [01:27:26.014] if (is_error) { [01:27:26.014] sessionInformation <- function() { [01:27:26.014] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:26.014] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:26.014] search = base::search(), system = base::Sys.info()) [01:27:26.014] } [01:27:26.014] ...future.conditions[[length(...future.conditions) + [01:27:26.014] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:26.014] cond$call), session = sessionInformation(), [01:27:26.014] timestamp = base::Sys.time(), signaled = 0L) [01:27:26.014] signalCondition(cond) [01:27:26.014] } [01:27:26.014] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:26.014] "immediateCondition"))) { [01:27:26.014] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:26.014] ...future.conditions[[length(...future.conditions) + [01:27:26.014] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:26.014] if (TRUE && !signal) { [01:27:26.014] muffleCondition <- function (cond, pattern = "^muffle") [01:27:26.014] { [01:27:26.014] inherits <- base::inherits [01:27:26.014] invokeRestart <- base::invokeRestart [01:27:26.014] is.null <- base::is.null [01:27:26.014] muffled <- FALSE [01:27:26.014] if (inherits(cond, "message")) { [01:27:26.014] muffled <- grepl(pattern, "muffleMessage") [01:27:26.014] if (muffled) [01:27:26.014] invokeRestart("muffleMessage") [01:27:26.014] } [01:27:26.014] else if (inherits(cond, "warning")) { [01:27:26.014] muffled <- grepl(pattern, "muffleWarning") [01:27:26.014] if (muffled) [01:27:26.014] invokeRestart("muffleWarning") [01:27:26.014] } [01:27:26.014] else if (inherits(cond, "condition")) { [01:27:26.014] if (!is.null(pattern)) { [01:27:26.014] computeRestarts <- base::computeRestarts [01:27:26.014] grepl <- base::grepl [01:27:26.014] restarts <- computeRestarts(cond) [01:27:26.014] for (restart in restarts) { [01:27:26.014] name <- restart$name [01:27:26.014] if (is.null(name)) [01:27:26.014] next [01:27:26.014] if (!grepl(pattern, name)) [01:27:26.014] next [01:27:26.014] invokeRestart(restart) [01:27:26.014] muffled <- TRUE [01:27:26.014] break [01:27:26.014] } [01:27:26.014] } [01:27:26.014] } [01:27:26.014] invisible(muffled) [01:27:26.014] } [01:27:26.014] muffleCondition(cond, pattern = "^muffle") [01:27:26.014] } [01:27:26.014] } [01:27:26.014] else { [01:27:26.014] if (TRUE) { [01:27:26.014] muffleCondition <- function (cond, pattern = "^muffle") [01:27:26.014] { [01:27:26.014] inherits <- base::inherits [01:27:26.014] invokeRestart <- base::invokeRestart [01:27:26.014] is.null <- base::is.null [01:27:26.014] muffled <- FALSE [01:27:26.014] if (inherits(cond, "message")) { [01:27:26.014] muffled <- grepl(pattern, "muffleMessage") [01:27:26.014] if (muffled) [01:27:26.014] invokeRestart("muffleMessage") [01:27:26.014] } [01:27:26.014] else if (inherits(cond, "warning")) { [01:27:26.014] muffled <- grepl(pattern, "muffleWarning") [01:27:26.014] if (muffled) [01:27:26.014] invokeRestart("muffleWarning") [01:27:26.014] } [01:27:26.014] else if (inherits(cond, "condition")) { [01:27:26.014] if (!is.null(pattern)) { [01:27:26.014] computeRestarts <- base::computeRestarts [01:27:26.014] grepl <- base::grepl [01:27:26.014] restarts <- computeRestarts(cond) [01:27:26.014] for (restart in restarts) { [01:27:26.014] name <- restart$name [01:27:26.014] if (is.null(name)) [01:27:26.014] next [01:27:26.014] if (!grepl(pattern, name)) [01:27:26.014] next [01:27:26.014] invokeRestart(restart) [01:27:26.014] muffled <- TRUE [01:27:26.014] break [01:27:26.014] } [01:27:26.014] } [01:27:26.014] } [01:27:26.014] invisible(muffled) [01:27:26.014] } [01:27:26.014] muffleCondition(cond, pattern = "^muffle") [01:27:26.014] } [01:27:26.014] } [01:27:26.014] } [01:27:26.014] })) [01:27:26.014] }, error = function(ex) { [01:27:26.014] base::structure(base::list(value = NULL, visible = NULL, [01:27:26.014] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:26.014] ...future.rng), started = ...future.startTime, [01:27:26.014] finished = Sys.time(), session_uuid = NA_character_, [01:27:26.014] version = "1.8"), class = "FutureResult") [01:27:26.014] }, finally = { [01:27:26.014] if (!identical(...future.workdir, getwd())) [01:27:26.014] setwd(...future.workdir) [01:27:26.014] { [01:27:26.014] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:26.014] ...future.oldOptions$nwarnings <- NULL [01:27:26.014] } [01:27:26.014] base::options(...future.oldOptions) [01:27:26.014] if (.Platform$OS.type == "windows") { [01:27:26.014] old_names <- names(...future.oldEnvVars) [01:27:26.014] envs <- base::Sys.getenv() [01:27:26.014] names <- names(envs) [01:27:26.014] common <- intersect(names, old_names) [01:27:26.014] added <- setdiff(names, old_names) [01:27:26.014] removed <- setdiff(old_names, names) [01:27:26.014] changed <- common[...future.oldEnvVars[common] != [01:27:26.014] envs[common]] [01:27:26.014] NAMES <- toupper(changed) [01:27:26.014] args <- list() [01:27:26.014] for (kk in seq_along(NAMES)) { [01:27:26.014] name <- changed[[kk]] [01:27:26.014] NAME <- NAMES[[kk]] [01:27:26.014] if (name != NAME && is.element(NAME, old_names)) [01:27:26.014] next [01:27:26.014] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:26.014] } [01:27:26.014] NAMES <- toupper(added) [01:27:26.014] for (kk in seq_along(NAMES)) { [01:27:26.014] name <- added[[kk]] [01:27:26.014] NAME <- NAMES[[kk]] [01:27:26.014] if (name != NAME && is.element(NAME, old_names)) [01:27:26.014] next [01:27:26.014] args[[name]] <- "" [01:27:26.014] } [01:27:26.014] NAMES <- toupper(removed) [01:27:26.014] for (kk in seq_along(NAMES)) { [01:27:26.014] name <- removed[[kk]] [01:27:26.014] NAME <- NAMES[[kk]] [01:27:26.014] if (name != NAME && is.element(NAME, old_names)) [01:27:26.014] next [01:27:26.014] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:26.014] } [01:27:26.014] if (length(args) > 0) [01:27:26.014] base::do.call(base::Sys.setenv, args = args) [01:27:26.014] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:26.014] } [01:27:26.014] else { [01:27:26.014] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:26.014] } [01:27:26.014] { [01:27:26.014] if (base::length(...future.futureOptionsAdded) > [01:27:26.014] 0L) { [01:27:26.014] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:26.014] base::names(opts) <- ...future.futureOptionsAdded [01:27:26.014] base::options(opts) [01:27:26.014] } [01:27:26.014] { [01:27:26.014] { [01:27:26.014] base::options(mc.cores = ...future.mc.cores.old) [01:27:26.014] NULL [01:27:26.014] } [01:27:26.014] options(future.plan = NULL) [01:27:26.014] if (is.na(NA_character_)) [01:27:26.014] Sys.unsetenv("R_FUTURE_PLAN") [01:27:26.014] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:26.014] future::plan(list(function (..., workers = availableCores(), [01:27:26.014] lazy = FALSE, rscript_libs = .libPaths(), [01:27:26.014] envir = parent.frame()) [01:27:26.014] { [01:27:26.014] if (is.function(workers)) [01:27:26.014] workers <- workers() [01:27:26.014] workers <- structure(as.integer(workers), [01:27:26.014] class = class(workers)) [01:27:26.014] stop_if_not(length(workers) == 1, is.finite(workers), [01:27:26.014] workers >= 1) [01:27:26.014] if (workers == 1L && !inherits(workers, "AsIs")) { [01:27:26.014] return(sequential(..., lazy = TRUE, envir = envir)) [01:27:26.014] } [01:27:26.014] future <- MultisessionFuture(..., workers = workers, [01:27:26.014] lazy = lazy, rscript_libs = rscript_libs, [01:27:26.014] envir = envir) [01:27:26.014] if (!future$lazy) [01:27:26.014] future <- run(future) [01:27:26.014] invisible(future) [01:27:26.014] }), .cleanup = FALSE, .init = FALSE) [01:27:26.014] } [01:27:26.014] } [01:27:26.014] } [01:27:26.014] }) [01:27:26.014] if (TRUE) { [01:27:26.014] base::sink(type = "output", split = FALSE) [01:27:26.014] if (TRUE) { [01:27:26.014] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:26.014] } [01:27:26.014] else { [01:27:26.014] ...future.result["stdout"] <- base::list(NULL) [01:27:26.014] } [01:27:26.014] base::close(...future.stdout) [01:27:26.014] ...future.stdout <- NULL [01:27:26.014] } [01:27:26.014] ...future.result$conditions <- ...future.conditions [01:27:26.014] ...future.result$finished <- base::Sys.time() [01:27:26.014] ...future.result [01:27:26.014] } [01:27:26.020] Exporting 3 global objects (4.18 KiB) to cluster node #1 ... [01:27:26.020] Exporting 'fcn' (4.07 KiB) to cluster node #1 ... [01:27:26.020] Exporting 'fcn' (4.07 KiB) to cluster node #1 ... DONE [01:27:26.021] Exporting 'x' (56 bytes) to cluster node #1 ... [01:27:26.021] Exporting 'x' (56 bytes) to cluster node #1 ... DONE [01:27:26.021] Exporting 'y' (56 bytes) to cluster node #1 ... [01:27:26.022] Exporting 'y' (56 bytes) to cluster node #1 ... DONE [01:27:26.022] Exporting 3 global objects (4.18 KiB) to cluster node #1 ... DONE [01:27:26.023] MultisessionFuture started [01:27:26.023] - Launch lazy future ... done [01:27:26.023] run() for 'MultisessionFuture' ... done [01:27:26.024] result() for ClusterFuture ... [01:27:26.024] receiveMessageFromWorker() for ClusterFuture ... [01:27:26.024] - Validating connection of MultisessionFuture [01:27:26.043] - received message: FutureResult [01:27:26.043] - Received FutureResult [01:27:26.043] - Erased future from FutureRegistry [01:27:26.044] result() for ClusterFuture ... [01:27:26.044] - result already collected: FutureResult [01:27:26.044] result() for ClusterFuture ... done [01:27:26.044] receiveMessageFromWorker() for ClusterFuture ... done [01:27:26.044] result() for ClusterFuture ... done [01:27:26.044] result() for ClusterFuture ... [01:27:26.045] - result already collected: FutureResult [01:27:26.045] result() for ClusterFuture ... done [1] 6 Testing with 2 cores ... DONE > > message("*** Global argument '...' ... DONE") *** Global argument '...' ... DONE > > source("incl/end.R") [01:27:26.046] plan(): Setting new future strategy stack: [01:27:26.046] List of future strategies: [01:27:26.046] 1. FutureStrategy: [01:27:26.046] - args: function (..., envir = parent.frame(), workers = "") [01:27:26.046] - tweaked: FALSE [01:27:26.046] - call: future::plan(oplan) [01:27:26.047] plan(): nbrOfWorkers() = 1 Failed to undo environment variables: - Expected environment variables: [n=204] '!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', 'OCL', 'OMP_THREAD_LIMIT', 'OS', 'PATH', 'PATHEXT', 'PROCESSOR_ARCHITECTURE', 'PROCESSOR_IDENTIFIER', 'PROCESSOR_LEVEL', 'PROCESSOR_REVISION', 'PROGRAMFILES', 'PROMPT', 'PSModulePath', 'PUBLIC', 'PWD', 'ProgramData', 'ProgramFiles(x86)', 'ProgramW6432', '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_MBCS_CONVERSION_FAILURE_', '_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_NOTE_LOST_BRACES_', '_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_', '__R_CHECK_DOC_FILES_NOTE_IF_ALL_SPECIAL__', '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 1.04 0.15 1.95