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:02.121] plan(): Setting new future strategy stack: [01:27:02.122] List of future strategies: [01:27:02.122] 1. sequential: [01:27:02.122] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.122] - tweaked: FALSE [01:27:02.122] - call: future::plan("sequential") [01:27:02.141] plan(): nbrOfWorkers() = 1 > > message("*** backtrace( ) ...") *** backtrace( ) ... > > message("*** backtrace( ) - explicit future ...") *** backtrace( ) - explicit future ... > > f <- future({ 42L; stop("Woops") }) [01:27:02.150] getGlobalsAndPackages() ... [01:27:02.150] Searching for globals... [01:27:02.159] - globals found: [2] '{', 'stop' [01:27:02.159] Searching for globals ... DONE [01:27:02.159] Resolving globals: FALSE [01:27:02.160] [01:27:02.161] [01:27:02.161] getGlobalsAndPackages() ... DONE [01:27:02.163] run() for 'Future' ... [01:27:02.164] - state: 'created' [01:27:02.164] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:02.165] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:02.165] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:02.165] - Field: 'label' [01:27:02.166] - Field: 'local' [01:27:02.166] - Field: 'owner' [01:27:02.166] - Field: 'envir' [01:27:02.166] - Field: 'packages' [01:27:02.167] - Field: 'gc' [01:27:02.167] - Field: 'conditions' [01:27:02.167] - Field: 'expr' [01:27:02.167] - Field: 'uuid' [01:27:02.167] - Field: 'seed' [01:27:02.168] - Field: 'version' [01:27:02.168] - Field: 'result' [01:27:02.168] - Field: 'asynchronous' [01:27:02.168] - Field: 'calls' [01:27:02.169] - Field: 'globals' [01:27:02.169] - Field: 'stdout' [01:27:02.169] - Field: 'earlySignal' [01:27:02.169] - Field: 'lazy' [01:27:02.169] - Field: 'state' [01:27:02.170] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:02.170] - Launch lazy future ... [01:27:02.171] Packages needed by the future expression (n = 0): [01:27:02.172] Packages needed by future strategies (n = 0): [01:27:02.173] { [01:27:02.173] { [01:27:02.173] { [01:27:02.173] ...future.startTime <- base::Sys.time() [01:27:02.173] { [01:27:02.173] { [01:27:02.173] { [01:27:02.173] base::local({ [01:27:02.173] has_future <- base::requireNamespace("future", [01:27:02.173] quietly = TRUE) [01:27:02.173] if (has_future) { [01:27:02.173] ns <- base::getNamespace("future") [01:27:02.173] version <- ns[[".package"]][["version"]] [01:27:02.173] if (is.null(version)) [01:27:02.173] version <- utils::packageVersion("future") [01:27:02.173] } [01:27:02.173] else { [01:27:02.173] version <- NULL [01:27:02.173] } [01:27:02.173] if (!has_future || version < "1.8.0") { [01:27:02.173] info <- base::c(r_version = base::gsub("R version ", [01:27:02.173] "", base::R.version$version.string), [01:27:02.173] platform = base::sprintf("%s (%s-bit)", [01:27:02.173] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:02.173] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:02.173] "release", "version")], collapse = " "), [01:27:02.173] hostname = base::Sys.info()[["nodename"]]) [01:27:02.173] info <- base::sprintf("%s: %s", base::names(info), [01:27:02.173] info) [01:27:02.173] info <- base::paste(info, collapse = "; ") [01:27:02.173] if (!has_future) { [01:27:02.173] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:02.173] info) [01:27:02.173] } [01:27:02.173] else { [01:27:02.173] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:02.173] info, version) [01:27:02.173] } [01:27:02.173] base::stop(msg) [01:27:02.173] } [01:27:02.173] }) [01:27:02.173] } [01:27:02.173] options(future.plan = NULL) [01:27:02.173] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.173] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:02.173] } [01:27:02.173] ...future.workdir <- getwd() [01:27:02.173] } [01:27:02.173] ...future.oldOptions <- base::as.list(base::.Options) [01:27:02.173] ...future.oldEnvVars <- base::Sys.getenv() [01:27:02.173] } [01:27:02.173] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:02.173] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:02.173] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:02.173] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:02.173] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:02.173] future.stdout.windows.reencode = NULL, width = 80L) [01:27:02.173] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:02.173] base::names(...future.oldOptions)) [01:27:02.173] } [01:27:02.173] if (FALSE) { [01:27:02.173] } [01:27:02.173] else { [01:27:02.173] if (TRUE) { [01:27:02.173] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:02.173] open = "w") [01:27:02.173] } [01:27:02.173] else { [01:27:02.173] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:02.173] windows = "NUL", "/dev/null"), open = "w") [01:27:02.173] } [01:27:02.173] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:02.173] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:02.173] base::sink(type = "output", split = FALSE) [01:27:02.173] base::close(...future.stdout) [01:27:02.173] }, add = TRUE) [01:27:02.173] } [01:27:02.173] ...future.frame <- base::sys.nframe() [01:27:02.173] ...future.conditions <- base::list() [01:27:02.173] ...future.rng <- base::globalenv()$.Random.seed [01:27:02.173] if (FALSE) { [01:27:02.173] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:02.173] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:02.173] } [01:27:02.173] ...future.result <- base::tryCatch({ [01:27:02.173] base::withCallingHandlers({ [01:27:02.173] ...future.value <- base::withVisible(base::local({ [01:27:02.173] 42L [01:27:02.173] stop("Woops") [01:27:02.173] })) [01:27:02.173] future::FutureResult(value = ...future.value$value, [01:27:02.173] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.173] ...future.rng), globalenv = if (FALSE) [01:27:02.173] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:02.173] ...future.globalenv.names)) [01:27:02.173] else NULL, started = ...future.startTime, version = "1.8") [01:27:02.173] }, condition = base::local({ [01:27:02.173] c <- base::c [01:27:02.173] inherits <- base::inherits [01:27:02.173] invokeRestart <- base::invokeRestart [01:27:02.173] length <- base::length [01:27:02.173] list <- base::list [01:27:02.173] seq.int <- base::seq.int [01:27:02.173] signalCondition <- base::signalCondition [01:27:02.173] sys.calls <- base::sys.calls [01:27:02.173] `[[` <- base::`[[` [01:27:02.173] `+` <- base::`+` [01:27:02.173] `<<-` <- base::`<<-` [01:27:02.173] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:02.173] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:02.173] 3L)] [01:27:02.173] } [01:27:02.173] function(cond) { [01:27:02.173] is_error <- inherits(cond, "error") [01:27:02.173] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:02.173] NULL) [01:27:02.173] if (is_error) { [01:27:02.173] sessionInformation <- function() { [01:27:02.173] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:02.173] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:02.173] search = base::search(), system = base::Sys.info()) [01:27:02.173] } [01:27:02.173] ...future.conditions[[length(...future.conditions) + [01:27:02.173] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:02.173] cond$call), session = sessionInformation(), [01:27:02.173] timestamp = base::Sys.time(), signaled = 0L) [01:27:02.173] signalCondition(cond) [01:27:02.173] } [01:27:02.173] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:02.173] "immediateCondition"))) { [01:27:02.173] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:02.173] ...future.conditions[[length(...future.conditions) + [01:27:02.173] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:02.173] if (TRUE && !signal) { [01:27:02.173] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.173] { [01:27:02.173] inherits <- base::inherits [01:27:02.173] invokeRestart <- base::invokeRestart [01:27:02.173] is.null <- base::is.null [01:27:02.173] muffled <- FALSE [01:27:02.173] if (inherits(cond, "message")) { [01:27:02.173] muffled <- grepl(pattern, "muffleMessage") [01:27:02.173] if (muffled) [01:27:02.173] invokeRestart("muffleMessage") [01:27:02.173] } [01:27:02.173] else if (inherits(cond, "warning")) { [01:27:02.173] muffled <- grepl(pattern, "muffleWarning") [01:27:02.173] if (muffled) [01:27:02.173] invokeRestart("muffleWarning") [01:27:02.173] } [01:27:02.173] else if (inherits(cond, "condition")) { [01:27:02.173] if (!is.null(pattern)) { [01:27:02.173] computeRestarts <- base::computeRestarts [01:27:02.173] grepl <- base::grepl [01:27:02.173] restarts <- computeRestarts(cond) [01:27:02.173] for (restart in restarts) { [01:27:02.173] name <- restart$name [01:27:02.173] if (is.null(name)) [01:27:02.173] next [01:27:02.173] if (!grepl(pattern, name)) [01:27:02.173] next [01:27:02.173] invokeRestart(restart) [01:27:02.173] muffled <- TRUE [01:27:02.173] break [01:27:02.173] } [01:27:02.173] } [01:27:02.173] } [01:27:02.173] invisible(muffled) [01:27:02.173] } [01:27:02.173] muffleCondition(cond, pattern = "^muffle") [01:27:02.173] } [01:27:02.173] } [01:27:02.173] else { [01:27:02.173] if (TRUE) { [01:27:02.173] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.173] { [01:27:02.173] inherits <- base::inherits [01:27:02.173] invokeRestart <- base::invokeRestart [01:27:02.173] is.null <- base::is.null [01:27:02.173] muffled <- FALSE [01:27:02.173] if (inherits(cond, "message")) { [01:27:02.173] muffled <- grepl(pattern, "muffleMessage") [01:27:02.173] if (muffled) [01:27:02.173] invokeRestart("muffleMessage") [01:27:02.173] } [01:27:02.173] else if (inherits(cond, "warning")) { [01:27:02.173] muffled <- grepl(pattern, "muffleWarning") [01:27:02.173] if (muffled) [01:27:02.173] invokeRestart("muffleWarning") [01:27:02.173] } [01:27:02.173] else if (inherits(cond, "condition")) { [01:27:02.173] if (!is.null(pattern)) { [01:27:02.173] computeRestarts <- base::computeRestarts [01:27:02.173] grepl <- base::grepl [01:27:02.173] restarts <- computeRestarts(cond) [01:27:02.173] for (restart in restarts) { [01:27:02.173] name <- restart$name [01:27:02.173] if (is.null(name)) [01:27:02.173] next [01:27:02.173] if (!grepl(pattern, name)) [01:27:02.173] next [01:27:02.173] invokeRestart(restart) [01:27:02.173] muffled <- TRUE [01:27:02.173] break [01:27:02.173] } [01:27:02.173] } [01:27:02.173] } [01:27:02.173] invisible(muffled) [01:27:02.173] } [01:27:02.173] muffleCondition(cond, pattern = "^muffle") [01:27:02.173] } [01:27:02.173] } [01:27:02.173] } [01:27:02.173] })) [01:27:02.173] }, error = function(ex) { [01:27:02.173] base::structure(base::list(value = NULL, visible = NULL, [01:27:02.173] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.173] ...future.rng), started = ...future.startTime, [01:27:02.173] finished = Sys.time(), session_uuid = NA_character_, [01:27:02.173] version = "1.8"), class = "FutureResult") [01:27:02.173] }, finally = { [01:27:02.173] if (!identical(...future.workdir, getwd())) [01:27:02.173] setwd(...future.workdir) [01:27:02.173] { [01:27:02.173] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:02.173] ...future.oldOptions$nwarnings <- NULL [01:27:02.173] } [01:27:02.173] base::options(...future.oldOptions) [01:27:02.173] if (.Platform$OS.type == "windows") { [01:27:02.173] old_names <- names(...future.oldEnvVars) [01:27:02.173] envs <- base::Sys.getenv() [01:27:02.173] names <- names(envs) [01:27:02.173] common <- intersect(names, old_names) [01:27:02.173] added <- setdiff(names, old_names) [01:27:02.173] removed <- setdiff(old_names, names) [01:27:02.173] changed <- common[...future.oldEnvVars[common] != [01:27:02.173] envs[common]] [01:27:02.173] NAMES <- toupper(changed) [01:27:02.173] args <- list() [01:27:02.173] for (kk in seq_along(NAMES)) { [01:27:02.173] name <- changed[[kk]] [01:27:02.173] NAME <- NAMES[[kk]] [01:27:02.173] if (name != NAME && is.element(NAME, old_names)) [01:27:02.173] next [01:27:02.173] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.173] } [01:27:02.173] NAMES <- toupper(added) [01:27:02.173] for (kk in seq_along(NAMES)) { [01:27:02.173] name <- added[[kk]] [01:27:02.173] NAME <- NAMES[[kk]] [01:27:02.173] if (name != NAME && is.element(NAME, old_names)) [01:27:02.173] next [01:27:02.173] args[[name]] <- "" [01:27:02.173] } [01:27:02.173] NAMES <- toupper(removed) [01:27:02.173] for (kk in seq_along(NAMES)) { [01:27:02.173] name <- removed[[kk]] [01:27:02.173] NAME <- NAMES[[kk]] [01:27:02.173] if (name != NAME && is.element(NAME, old_names)) [01:27:02.173] next [01:27:02.173] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.173] } [01:27:02.173] if (length(args) > 0) [01:27:02.173] base::do.call(base::Sys.setenv, args = args) [01:27:02.173] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:02.173] } [01:27:02.173] else { [01:27:02.173] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:02.173] } [01:27:02.173] { [01:27:02.173] if (base::length(...future.futureOptionsAdded) > [01:27:02.173] 0L) { [01:27:02.173] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:02.173] base::names(opts) <- ...future.futureOptionsAdded [01:27:02.173] base::options(opts) [01:27:02.173] } [01:27:02.173] { [01:27:02.173] { [01:27:02.173] NULL [01:27:02.173] RNGkind("Mersenne-Twister") [01:27:02.173] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:02.173] inherits = FALSE) [01:27:02.173] } [01:27:02.173] options(future.plan = NULL) [01:27:02.173] if (is.na(NA_character_)) [01:27:02.173] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.173] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:02.173] future::plan(list(function (..., envir = parent.frame()) [01:27:02.173] { [01:27:02.173] future <- SequentialFuture(..., envir = envir) [01:27:02.173] if (!future$lazy) [01:27:02.173] future <- run(future) [01:27:02.173] invisible(future) [01:27:02.173] }), .cleanup = FALSE, .init = FALSE) [01:27:02.173] } [01:27:02.173] } [01:27:02.173] } [01:27:02.173] }) [01:27:02.173] if (TRUE) { [01:27:02.173] base::sink(type = "output", split = FALSE) [01:27:02.173] if (TRUE) { [01:27:02.173] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:02.173] } [01:27:02.173] else { [01:27:02.173] ...future.result["stdout"] <- base::list(NULL) [01:27:02.173] } [01:27:02.173] base::close(...future.stdout) [01:27:02.173] ...future.stdout <- NULL [01:27:02.173] } [01:27:02.173] ...future.result$conditions <- ...future.conditions [01:27:02.173] ...future.result$finished <- base::Sys.time() [01:27:02.173] ...future.result [01:27:02.173] } [01:27:02.178] plan(): Setting new future strategy stack: [01:27:02.179] List of future strategies: [01:27:02.179] 1. sequential: [01:27:02.179] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.179] - tweaked: FALSE [01:27:02.179] - call: NULL [01:27:02.180] plan(): nbrOfWorkers() = 1 [01:27:02.182] plan(): Setting new future strategy stack: [01:27:02.182] List of future strategies: [01:27:02.182] 1. sequential: [01:27:02.182] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.182] - tweaked: FALSE [01:27:02.182] - call: future::plan("sequential") [01:27:02.183] plan(): nbrOfWorkers() = 1 [01:27:02.183] SequentialFuture started (and completed) [01:27:02.184] signalConditions() ... [01:27:02.184] - include = 'immediateCondition' [01:27:02.184] - exclude = [01:27:02.185] - resignal = FALSE [01:27:02.185] - Number of conditions: 1 [01:27:02.185] signalConditions() ... done [01:27:02.185] - Launch lazy future ... done [01:27:02.185] run() for 'SequentialFuture' ... done > v <- value(f, signal = FALSE) [01:27:02.186] signalConditions() ... [01:27:02.186] - include = 'immediateCondition' [01:27:02.187] - exclude = [01:27:02.187] - resignal = FALSE [01:27:02.187] - Number of conditions: 1 [01:27:02.187] signalConditions() ... done > print(v) > calls <- backtrace(f) [01:27:02.195] resolved() for 'SequentialFuture' ... [01:27:02.196] - state: 'finished' [01:27:02.196] - run: TRUE [01:27:02.196] - result: 'FutureResult' [01:27:02.196] resolved() for 'SequentialFuture' ... done > print(calls) [[1]] future({ 42L stop("Woops") }) [[2]] Future(expr, substitute = FALSE, envir = envir, lazy = TRUE, seed = seed, globals = globals, packages = packages, stdout = stdout, conditions = conditions, earlySignal = earlySignal, label = label, gc = gc, ...) [[3]] eval(quote({ 42L stop("Woops") }), new.env()) [[4]] stop("Woops") [[5]] eval(quote({ 42L stop("Woops") }), new.env()) > > message("*** backtrace( ) - explicit future ... DONE") *** backtrace( ) - explicit future ... DONE > > > message("*** backtrace( ) - implicit future ...") *** backtrace( ) - implicit future ... > > v %<-% { 42L; stop("Woops") } [01:27:02.198] getGlobalsAndPackages() ... [01:27:02.198] Searching for globals... [01:27:02.199] - globals found: [2] '{', 'stop' [01:27:02.199] Searching for globals ... DONE [01:27:02.200] Resolving globals: FALSE [01:27:02.200] [01:27:02.200] [01:27:02.201] getGlobalsAndPackages() ... DONE [01:27:02.201] run() for 'Future' ... [01:27:02.201] - state: 'created' [01:27:02.201] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:02.202] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:02.202] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:02.202] - Field: 'label' [01:27:02.202] - Field: 'local' [01:27:02.203] - Field: 'owner' [01:27:02.203] - Field: 'envir' [01:27:02.203] - Field: 'packages' [01:27:02.203] - Field: 'gc' [01:27:02.203] - Field: 'conditions' [01:27:02.204] - Field: 'expr' [01:27:02.204] - Field: 'uuid' [01:27:02.204] - Field: 'seed' [01:27:02.204] - Field: 'version' [01:27:02.204] - Field: 'result' [01:27:02.205] - Field: 'asynchronous' [01:27:02.205] - Field: 'calls' [01:27:02.205] - Field: 'globals' [01:27:02.205] - Field: 'stdout' [01:27:02.205] - Field: 'earlySignal' [01:27:02.206] - Field: 'lazy' [01:27:02.206] - Field: 'state' [01:27:02.206] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:02.206] - Launch lazy future ... [01:27:02.207] Packages needed by the future expression (n = 0): [01:27:02.207] Packages needed by future strategies (n = 0): [01:27:02.208] { [01:27:02.208] { [01:27:02.208] { [01:27:02.208] ...future.startTime <- base::Sys.time() [01:27:02.208] { [01:27:02.208] { [01:27:02.208] { [01:27:02.208] base::local({ [01:27:02.208] has_future <- base::requireNamespace("future", [01:27:02.208] quietly = TRUE) [01:27:02.208] if (has_future) { [01:27:02.208] ns <- base::getNamespace("future") [01:27:02.208] version <- ns[[".package"]][["version"]] [01:27:02.208] if (is.null(version)) [01:27:02.208] version <- utils::packageVersion("future") [01:27:02.208] } [01:27:02.208] else { [01:27:02.208] version <- NULL [01:27:02.208] } [01:27:02.208] if (!has_future || version < "1.8.0") { [01:27:02.208] info <- base::c(r_version = base::gsub("R version ", [01:27:02.208] "", base::R.version$version.string), [01:27:02.208] platform = base::sprintf("%s (%s-bit)", [01:27:02.208] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:02.208] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:02.208] "release", "version")], collapse = " "), [01:27:02.208] hostname = base::Sys.info()[["nodename"]]) [01:27:02.208] info <- base::sprintf("%s: %s", base::names(info), [01:27:02.208] info) [01:27:02.208] info <- base::paste(info, collapse = "; ") [01:27:02.208] if (!has_future) { [01:27:02.208] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:02.208] info) [01:27:02.208] } [01:27:02.208] else { [01:27:02.208] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:02.208] info, version) [01:27:02.208] } [01:27:02.208] base::stop(msg) [01:27:02.208] } [01:27:02.208] }) [01:27:02.208] } [01:27:02.208] options(future.plan = NULL) [01:27:02.208] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.208] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:02.208] } [01:27:02.208] ...future.workdir <- getwd() [01:27:02.208] } [01:27:02.208] ...future.oldOptions <- base::as.list(base::.Options) [01:27:02.208] ...future.oldEnvVars <- base::Sys.getenv() [01:27:02.208] } [01:27:02.208] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:02.208] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:02.208] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:02.208] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:02.208] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:02.208] future.stdout.windows.reencode = NULL, width = 80L) [01:27:02.208] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:02.208] base::names(...future.oldOptions)) [01:27:02.208] } [01:27:02.208] if (FALSE) { [01:27:02.208] } [01:27:02.208] else { [01:27:02.208] if (TRUE) { [01:27:02.208] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:02.208] open = "w") [01:27:02.208] } [01:27:02.208] else { [01:27:02.208] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:02.208] windows = "NUL", "/dev/null"), open = "w") [01:27:02.208] } [01:27:02.208] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:02.208] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:02.208] base::sink(type = "output", split = FALSE) [01:27:02.208] base::close(...future.stdout) [01:27:02.208] }, add = TRUE) [01:27:02.208] } [01:27:02.208] ...future.frame <- base::sys.nframe() [01:27:02.208] ...future.conditions <- base::list() [01:27:02.208] ...future.rng <- base::globalenv()$.Random.seed [01:27:02.208] if (FALSE) { [01:27:02.208] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:02.208] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:02.208] } [01:27:02.208] ...future.result <- base::tryCatch({ [01:27:02.208] base::withCallingHandlers({ [01:27:02.208] ...future.value <- base::withVisible(base::local({ [01:27:02.208] 42L [01:27:02.208] stop("Woops") [01:27:02.208] })) [01:27:02.208] future::FutureResult(value = ...future.value$value, [01:27:02.208] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.208] ...future.rng), globalenv = if (FALSE) [01:27:02.208] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:02.208] ...future.globalenv.names)) [01:27:02.208] else NULL, started = ...future.startTime, version = "1.8") [01:27:02.208] }, condition = base::local({ [01:27:02.208] c <- base::c [01:27:02.208] inherits <- base::inherits [01:27:02.208] invokeRestart <- base::invokeRestart [01:27:02.208] length <- base::length [01:27:02.208] list <- base::list [01:27:02.208] seq.int <- base::seq.int [01:27:02.208] signalCondition <- base::signalCondition [01:27:02.208] sys.calls <- base::sys.calls [01:27:02.208] `[[` <- base::`[[` [01:27:02.208] `+` <- base::`+` [01:27:02.208] `<<-` <- base::`<<-` [01:27:02.208] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:02.208] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:02.208] 3L)] [01:27:02.208] } [01:27:02.208] function(cond) { [01:27:02.208] is_error <- inherits(cond, "error") [01:27:02.208] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:02.208] NULL) [01:27:02.208] if (is_error) { [01:27:02.208] sessionInformation <- function() { [01:27:02.208] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:02.208] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:02.208] search = base::search(), system = base::Sys.info()) [01:27:02.208] } [01:27:02.208] ...future.conditions[[length(...future.conditions) + [01:27:02.208] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:02.208] cond$call), session = sessionInformation(), [01:27:02.208] timestamp = base::Sys.time(), signaled = 0L) [01:27:02.208] signalCondition(cond) [01:27:02.208] } [01:27:02.208] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:02.208] "immediateCondition"))) { [01:27:02.208] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:02.208] ...future.conditions[[length(...future.conditions) + [01:27:02.208] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:02.208] if (TRUE && !signal) { [01:27:02.208] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.208] { [01:27:02.208] inherits <- base::inherits [01:27:02.208] invokeRestart <- base::invokeRestart [01:27:02.208] is.null <- base::is.null [01:27:02.208] muffled <- FALSE [01:27:02.208] if (inherits(cond, "message")) { [01:27:02.208] muffled <- grepl(pattern, "muffleMessage") [01:27:02.208] if (muffled) [01:27:02.208] invokeRestart("muffleMessage") [01:27:02.208] } [01:27:02.208] else if (inherits(cond, "warning")) { [01:27:02.208] muffled <- grepl(pattern, "muffleWarning") [01:27:02.208] if (muffled) [01:27:02.208] invokeRestart("muffleWarning") [01:27:02.208] } [01:27:02.208] else if (inherits(cond, "condition")) { [01:27:02.208] if (!is.null(pattern)) { [01:27:02.208] computeRestarts <- base::computeRestarts [01:27:02.208] grepl <- base::grepl [01:27:02.208] restarts <- computeRestarts(cond) [01:27:02.208] for (restart in restarts) { [01:27:02.208] name <- restart$name [01:27:02.208] if (is.null(name)) [01:27:02.208] next [01:27:02.208] if (!grepl(pattern, name)) [01:27:02.208] next [01:27:02.208] invokeRestart(restart) [01:27:02.208] muffled <- TRUE [01:27:02.208] break [01:27:02.208] } [01:27:02.208] } [01:27:02.208] } [01:27:02.208] invisible(muffled) [01:27:02.208] } [01:27:02.208] muffleCondition(cond, pattern = "^muffle") [01:27:02.208] } [01:27:02.208] } [01:27:02.208] else { [01:27:02.208] if (TRUE) { [01:27:02.208] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.208] { [01:27:02.208] inherits <- base::inherits [01:27:02.208] invokeRestart <- base::invokeRestart [01:27:02.208] is.null <- base::is.null [01:27:02.208] muffled <- FALSE [01:27:02.208] if (inherits(cond, "message")) { [01:27:02.208] muffled <- grepl(pattern, "muffleMessage") [01:27:02.208] if (muffled) [01:27:02.208] invokeRestart("muffleMessage") [01:27:02.208] } [01:27:02.208] else if (inherits(cond, "warning")) { [01:27:02.208] muffled <- grepl(pattern, "muffleWarning") [01:27:02.208] if (muffled) [01:27:02.208] invokeRestart("muffleWarning") [01:27:02.208] } [01:27:02.208] else if (inherits(cond, "condition")) { [01:27:02.208] if (!is.null(pattern)) { [01:27:02.208] computeRestarts <- base::computeRestarts [01:27:02.208] grepl <- base::grepl [01:27:02.208] restarts <- computeRestarts(cond) [01:27:02.208] for (restart in restarts) { [01:27:02.208] name <- restart$name [01:27:02.208] if (is.null(name)) [01:27:02.208] next [01:27:02.208] if (!grepl(pattern, name)) [01:27:02.208] next [01:27:02.208] invokeRestart(restart) [01:27:02.208] muffled <- TRUE [01:27:02.208] break [01:27:02.208] } [01:27:02.208] } [01:27:02.208] } [01:27:02.208] invisible(muffled) [01:27:02.208] } [01:27:02.208] muffleCondition(cond, pattern = "^muffle") [01:27:02.208] } [01:27:02.208] } [01:27:02.208] } [01:27:02.208] })) [01:27:02.208] }, error = function(ex) { [01:27:02.208] base::structure(base::list(value = NULL, visible = NULL, [01:27:02.208] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.208] ...future.rng), started = ...future.startTime, [01:27:02.208] finished = Sys.time(), session_uuid = NA_character_, [01:27:02.208] version = "1.8"), class = "FutureResult") [01:27:02.208] }, finally = { [01:27:02.208] if (!identical(...future.workdir, getwd())) [01:27:02.208] setwd(...future.workdir) [01:27:02.208] { [01:27:02.208] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:02.208] ...future.oldOptions$nwarnings <- NULL [01:27:02.208] } [01:27:02.208] base::options(...future.oldOptions) [01:27:02.208] if (.Platform$OS.type == "windows") { [01:27:02.208] old_names <- names(...future.oldEnvVars) [01:27:02.208] envs <- base::Sys.getenv() [01:27:02.208] names <- names(envs) [01:27:02.208] common <- intersect(names, old_names) [01:27:02.208] added <- setdiff(names, old_names) [01:27:02.208] removed <- setdiff(old_names, names) [01:27:02.208] changed <- common[...future.oldEnvVars[common] != [01:27:02.208] envs[common]] [01:27:02.208] NAMES <- toupper(changed) [01:27:02.208] args <- list() [01:27:02.208] for (kk in seq_along(NAMES)) { [01:27:02.208] name <- changed[[kk]] [01:27:02.208] NAME <- NAMES[[kk]] [01:27:02.208] if (name != NAME && is.element(NAME, old_names)) [01:27:02.208] next [01:27:02.208] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.208] } [01:27:02.208] NAMES <- toupper(added) [01:27:02.208] for (kk in seq_along(NAMES)) { [01:27:02.208] name <- added[[kk]] [01:27:02.208] NAME <- NAMES[[kk]] [01:27:02.208] if (name != NAME && is.element(NAME, old_names)) [01:27:02.208] next [01:27:02.208] args[[name]] <- "" [01:27:02.208] } [01:27:02.208] NAMES <- toupper(removed) [01:27:02.208] for (kk in seq_along(NAMES)) { [01:27:02.208] name <- removed[[kk]] [01:27:02.208] NAME <- NAMES[[kk]] [01:27:02.208] if (name != NAME && is.element(NAME, old_names)) [01:27:02.208] next [01:27:02.208] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.208] } [01:27:02.208] if (length(args) > 0) [01:27:02.208] base::do.call(base::Sys.setenv, args = args) [01:27:02.208] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:02.208] } [01:27:02.208] else { [01:27:02.208] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:02.208] } [01:27:02.208] { [01:27:02.208] if (base::length(...future.futureOptionsAdded) > [01:27:02.208] 0L) { [01:27:02.208] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:02.208] base::names(opts) <- ...future.futureOptionsAdded [01:27:02.208] base::options(opts) [01:27:02.208] } [01:27:02.208] { [01:27:02.208] { [01:27:02.208] NULL [01:27:02.208] RNGkind("Mersenne-Twister") [01:27:02.208] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:02.208] inherits = FALSE) [01:27:02.208] } [01:27:02.208] options(future.plan = NULL) [01:27:02.208] if (is.na(NA_character_)) [01:27:02.208] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.208] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:02.208] future::plan(list(function (..., envir = parent.frame()) [01:27:02.208] { [01:27:02.208] future <- SequentialFuture(..., envir = envir) [01:27:02.208] if (!future$lazy) [01:27:02.208] future <- run(future) [01:27:02.208] invisible(future) [01:27:02.208] }), .cleanup = FALSE, .init = FALSE) [01:27:02.208] } [01:27:02.208] } [01:27:02.208] } [01:27:02.208] }) [01:27:02.208] if (TRUE) { [01:27:02.208] base::sink(type = "output", split = FALSE) [01:27:02.208] if (TRUE) { [01:27:02.208] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:02.208] } [01:27:02.208] else { [01:27:02.208] ...future.result["stdout"] <- base::list(NULL) [01:27:02.208] } [01:27:02.208] base::close(...future.stdout) [01:27:02.208] ...future.stdout <- NULL [01:27:02.208] } [01:27:02.208] ...future.result$conditions <- ...future.conditions [01:27:02.208] ...future.result$finished <- base::Sys.time() [01:27:02.208] ...future.result [01:27:02.208] } [01:27:02.212] plan(): Setting new future strategy stack: [01:27:02.212] List of future strategies: [01:27:02.212] 1. sequential: [01:27:02.212] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.212] - tweaked: FALSE [01:27:02.212] - call: NULL [01:27:02.213] plan(): nbrOfWorkers() = 1 [01:27:02.214] plan(): Setting new future strategy stack: [01:27:02.215] List of future strategies: [01:27:02.215] 1. sequential: [01:27:02.215] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.215] - tweaked: FALSE [01:27:02.215] - call: future::plan("sequential") [01:27:02.215] plan(): nbrOfWorkers() = 1 [01:27:02.216] SequentialFuture started (and completed) [01:27:02.216] signalConditions() ... [01:27:02.216] - include = 'immediateCondition' [01:27:02.216] - exclude = [01:27:02.216] - resignal = FALSE [01:27:02.217] - Number of conditions: 1 [01:27:02.217] signalConditions() ... done [01:27:02.217] - Launch lazy future ... done [01:27:02.217] run() for 'SequentialFuture' ... done > calls <- backtrace(v) [01:27:02.218] resolved() for 'SequentialFuture' ... [01:27:02.218] - state: 'finished' [01:27:02.218] - run: TRUE [01:27:02.218] - result: 'FutureResult' [01:27:02.218] resolved() for 'SequentialFuture' ... done > print(calls) [[1]] v %<-% { 42L stop("Woops") } [[2]] futureAssignInternal(target, expr, envir = envir, substitute = FALSE) [[3]] futureAssign(name, expr, envir = envir, assign.env = assign.env, substitute = FALSE) [[4]] do.call(future::future, args = future.args, envir = assign.env) [[5]] (function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = FALSE, globals = TRUE, packages = NULL, stdout = TRUE, conditions = "condition", earlySignal = FALSE, label = NULL, gc = FALSE, ...) { if (substitute) expr <- substitute(expr) t_start <- Sys.time() gp <- getGlobalsAndPackages(expr, envir = envir, tweak = tweakExpression, globals = globals) expr <- gp$expr globals <- gp$globals if (length(packages) > 0 || length(gp$packages) > 0) { packages <- unique(c(gp$packages, packages)) } gp <- NULL attr(globals, "already-done") <- TRUE future <- Future(expr, substitute = FALSE, envir = envir, lazy = TRUE, seed = seed, globals = globals, packages = packages, stdout = stdout, conditions = conditions, earlySignal = earlySignal, label = label, gc = gc, ...) future$.defaultLocal <- !is.element("local", names(list(...))) if (getOption("future.journal", FALSE)) { future <- makeFutureJournal(future, event = "create", category = "overhead", start = t_start) } if (!lazy) { future <- run(future) future$lazy <- FALSE stop_if_not(inherits(future, "Future"), !future$lazy) } future })({ 42L stop("Woops") }, envir = , lazy = FALSE, seed = FALSE, globals = TRUE, packages = NULL, stdout = TRUE, conditions = "condition", earlySignal = FALSE, label = NULL, gc = FALSE) [[6]] Future(expr, substitute = FALSE, envir = envir, lazy = TRUE, seed = seed, globals = globals, packages = packages, stdout = stdout, conditions = conditions, earlySignal = earlySignal, label = label, gc = gc, ...) [[7]] eval(quote({ 42L stop("Woops") }), new.env()) [[8]] stop("Woops") [[9]] eval(quote({ 42L stop("Woops") }), new.env()) > > message("*** backtrace( ) - implicit future ... DONE") *** backtrace( ) - implicit future ... DONE > > > message("*** backtrace( ) - subsetting ...") *** backtrace( ) - subsetting ... > > env <- new.env() > env[["a"]] %<-% { 42L; stop("Woops") } [01:27:02.220] getGlobalsAndPackages() ... [01:27:02.220] Searching for globals... [01:27:02.222] - globals found: [2] '{', 'stop' [01:27:02.222] Searching for globals ... DONE [01:27:02.222] Resolving globals: FALSE [01:27:02.223] [01:27:02.223] [01:27:02.223] getGlobalsAndPackages() ... DONE [01:27:02.223] run() for 'Future' ... [01:27:02.224] - state: 'created' [01:27:02.224] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:02.224] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:02.225] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:02.225] - Field: 'label' [01:27:02.225] - Field: 'local' [01:27:02.225] - Field: 'owner' [01:27:02.225] - Field: 'envir' [01:27:02.226] - Field: 'packages' [01:27:02.226] - Field: 'gc' [01:27:02.226] - Field: 'conditions' [01:27:02.226] - Field: 'expr' [01:27:02.226] - Field: 'uuid' [01:27:02.227] - Field: 'seed' [01:27:02.227] - Field: 'version' [01:27:02.227] - Field: 'result' [01:27:02.227] - Field: 'asynchronous' [01:27:02.227] - Field: 'calls' [01:27:02.228] - Field: 'globals' [01:27:02.228] - Field: 'stdout' [01:27:02.228] - Field: 'earlySignal' [01:27:02.228] - Field: 'lazy' [01:27:02.228] - Field: 'state' [01:27:02.229] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:02.229] - Launch lazy future ... [01:27:02.229] Packages needed by the future expression (n = 0): [01:27:02.229] Packages needed by future strategies (n = 0): [01:27:02.230] { [01:27:02.230] { [01:27:02.230] { [01:27:02.230] ...future.startTime <- base::Sys.time() [01:27:02.230] { [01:27:02.230] { [01:27:02.230] { [01:27:02.230] base::local({ [01:27:02.230] has_future <- base::requireNamespace("future", [01:27:02.230] quietly = TRUE) [01:27:02.230] if (has_future) { [01:27:02.230] ns <- base::getNamespace("future") [01:27:02.230] version <- ns[[".package"]][["version"]] [01:27:02.230] if (is.null(version)) [01:27:02.230] version <- utils::packageVersion("future") [01:27:02.230] } [01:27:02.230] else { [01:27:02.230] version <- NULL [01:27:02.230] } [01:27:02.230] if (!has_future || version < "1.8.0") { [01:27:02.230] info <- base::c(r_version = base::gsub("R version ", [01:27:02.230] "", base::R.version$version.string), [01:27:02.230] platform = base::sprintf("%s (%s-bit)", [01:27:02.230] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:02.230] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:02.230] "release", "version")], collapse = " "), [01:27:02.230] hostname = base::Sys.info()[["nodename"]]) [01:27:02.230] info <- base::sprintf("%s: %s", base::names(info), [01:27:02.230] info) [01:27:02.230] info <- base::paste(info, collapse = "; ") [01:27:02.230] if (!has_future) { [01:27:02.230] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:02.230] info) [01:27:02.230] } [01:27:02.230] else { [01:27:02.230] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:02.230] info, version) [01:27:02.230] } [01:27:02.230] base::stop(msg) [01:27:02.230] } [01:27:02.230] }) [01:27:02.230] } [01:27:02.230] options(future.plan = NULL) [01:27:02.230] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.230] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:02.230] } [01:27:02.230] ...future.workdir <- getwd() [01:27:02.230] } [01:27:02.230] ...future.oldOptions <- base::as.list(base::.Options) [01:27:02.230] ...future.oldEnvVars <- base::Sys.getenv() [01:27:02.230] } [01:27:02.230] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:02.230] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:02.230] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:02.230] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:02.230] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:02.230] future.stdout.windows.reencode = NULL, width = 80L) [01:27:02.230] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:02.230] base::names(...future.oldOptions)) [01:27:02.230] } [01:27:02.230] if (FALSE) { [01:27:02.230] } [01:27:02.230] else { [01:27:02.230] if (TRUE) { [01:27:02.230] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:02.230] open = "w") [01:27:02.230] } [01:27:02.230] else { [01:27:02.230] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:02.230] windows = "NUL", "/dev/null"), open = "w") [01:27:02.230] } [01:27:02.230] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:02.230] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:02.230] base::sink(type = "output", split = FALSE) [01:27:02.230] base::close(...future.stdout) [01:27:02.230] }, add = TRUE) [01:27:02.230] } [01:27:02.230] ...future.frame <- base::sys.nframe() [01:27:02.230] ...future.conditions <- base::list() [01:27:02.230] ...future.rng <- base::globalenv()$.Random.seed [01:27:02.230] if (FALSE) { [01:27:02.230] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:02.230] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:02.230] } [01:27:02.230] ...future.result <- base::tryCatch({ [01:27:02.230] base::withCallingHandlers({ [01:27:02.230] ...future.value <- base::withVisible(base::local({ [01:27:02.230] 42L [01:27:02.230] stop("Woops") [01:27:02.230] })) [01:27:02.230] future::FutureResult(value = ...future.value$value, [01:27:02.230] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.230] ...future.rng), globalenv = if (FALSE) [01:27:02.230] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:02.230] ...future.globalenv.names)) [01:27:02.230] else NULL, started = ...future.startTime, version = "1.8") [01:27:02.230] }, condition = base::local({ [01:27:02.230] c <- base::c [01:27:02.230] inherits <- base::inherits [01:27:02.230] invokeRestart <- base::invokeRestart [01:27:02.230] length <- base::length [01:27:02.230] list <- base::list [01:27:02.230] seq.int <- base::seq.int [01:27:02.230] signalCondition <- base::signalCondition [01:27:02.230] sys.calls <- base::sys.calls [01:27:02.230] `[[` <- base::`[[` [01:27:02.230] `+` <- base::`+` [01:27:02.230] `<<-` <- base::`<<-` [01:27:02.230] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:02.230] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:02.230] 3L)] [01:27:02.230] } [01:27:02.230] function(cond) { [01:27:02.230] is_error <- inherits(cond, "error") [01:27:02.230] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:02.230] NULL) [01:27:02.230] if (is_error) { [01:27:02.230] sessionInformation <- function() { [01:27:02.230] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:02.230] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:02.230] search = base::search(), system = base::Sys.info()) [01:27:02.230] } [01:27:02.230] ...future.conditions[[length(...future.conditions) + [01:27:02.230] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:02.230] cond$call), session = sessionInformation(), [01:27:02.230] timestamp = base::Sys.time(), signaled = 0L) [01:27:02.230] signalCondition(cond) [01:27:02.230] } [01:27:02.230] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:02.230] "immediateCondition"))) { [01:27:02.230] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:02.230] ...future.conditions[[length(...future.conditions) + [01:27:02.230] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:02.230] if (TRUE && !signal) { [01:27:02.230] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.230] { [01:27:02.230] inherits <- base::inherits [01:27:02.230] invokeRestart <- base::invokeRestart [01:27:02.230] is.null <- base::is.null [01:27:02.230] muffled <- FALSE [01:27:02.230] if (inherits(cond, "message")) { [01:27:02.230] muffled <- grepl(pattern, "muffleMessage") [01:27:02.230] if (muffled) [01:27:02.230] invokeRestart("muffleMessage") [01:27:02.230] } [01:27:02.230] else if (inherits(cond, "warning")) { [01:27:02.230] muffled <- grepl(pattern, "muffleWarning") [01:27:02.230] if (muffled) [01:27:02.230] invokeRestart("muffleWarning") [01:27:02.230] } [01:27:02.230] else if (inherits(cond, "condition")) { [01:27:02.230] if (!is.null(pattern)) { [01:27:02.230] computeRestarts <- base::computeRestarts [01:27:02.230] grepl <- base::grepl [01:27:02.230] restarts <- computeRestarts(cond) [01:27:02.230] for (restart in restarts) { [01:27:02.230] name <- restart$name [01:27:02.230] if (is.null(name)) [01:27:02.230] next [01:27:02.230] if (!grepl(pattern, name)) [01:27:02.230] next [01:27:02.230] invokeRestart(restart) [01:27:02.230] muffled <- TRUE [01:27:02.230] break [01:27:02.230] } [01:27:02.230] } [01:27:02.230] } [01:27:02.230] invisible(muffled) [01:27:02.230] } [01:27:02.230] muffleCondition(cond, pattern = "^muffle") [01:27:02.230] } [01:27:02.230] } [01:27:02.230] else { [01:27:02.230] if (TRUE) { [01:27:02.230] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.230] { [01:27:02.230] inherits <- base::inherits [01:27:02.230] invokeRestart <- base::invokeRestart [01:27:02.230] is.null <- base::is.null [01:27:02.230] muffled <- FALSE [01:27:02.230] if (inherits(cond, "message")) { [01:27:02.230] muffled <- grepl(pattern, "muffleMessage") [01:27:02.230] if (muffled) [01:27:02.230] invokeRestart("muffleMessage") [01:27:02.230] } [01:27:02.230] else if (inherits(cond, "warning")) { [01:27:02.230] muffled <- grepl(pattern, "muffleWarning") [01:27:02.230] if (muffled) [01:27:02.230] invokeRestart("muffleWarning") [01:27:02.230] } [01:27:02.230] else if (inherits(cond, "condition")) { [01:27:02.230] if (!is.null(pattern)) { [01:27:02.230] computeRestarts <- base::computeRestarts [01:27:02.230] grepl <- base::grepl [01:27:02.230] restarts <- computeRestarts(cond) [01:27:02.230] for (restart in restarts) { [01:27:02.230] name <- restart$name [01:27:02.230] if (is.null(name)) [01:27:02.230] next [01:27:02.230] if (!grepl(pattern, name)) [01:27:02.230] next [01:27:02.230] invokeRestart(restart) [01:27:02.230] muffled <- TRUE [01:27:02.230] break [01:27:02.230] } [01:27:02.230] } [01:27:02.230] } [01:27:02.230] invisible(muffled) [01:27:02.230] } [01:27:02.230] muffleCondition(cond, pattern = "^muffle") [01:27:02.230] } [01:27:02.230] } [01:27:02.230] } [01:27:02.230] })) [01:27:02.230] }, error = function(ex) { [01:27:02.230] base::structure(base::list(value = NULL, visible = NULL, [01:27:02.230] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.230] ...future.rng), started = ...future.startTime, [01:27:02.230] finished = Sys.time(), session_uuid = NA_character_, [01:27:02.230] version = "1.8"), class = "FutureResult") [01:27:02.230] }, finally = { [01:27:02.230] if (!identical(...future.workdir, getwd())) [01:27:02.230] setwd(...future.workdir) [01:27:02.230] { [01:27:02.230] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:02.230] ...future.oldOptions$nwarnings <- NULL [01:27:02.230] } [01:27:02.230] base::options(...future.oldOptions) [01:27:02.230] if (.Platform$OS.type == "windows") { [01:27:02.230] old_names <- names(...future.oldEnvVars) [01:27:02.230] envs <- base::Sys.getenv() [01:27:02.230] names <- names(envs) [01:27:02.230] common <- intersect(names, old_names) [01:27:02.230] added <- setdiff(names, old_names) [01:27:02.230] removed <- setdiff(old_names, names) [01:27:02.230] changed <- common[...future.oldEnvVars[common] != [01:27:02.230] envs[common]] [01:27:02.230] NAMES <- toupper(changed) [01:27:02.230] args <- list() [01:27:02.230] for (kk in seq_along(NAMES)) { [01:27:02.230] name <- changed[[kk]] [01:27:02.230] NAME <- NAMES[[kk]] [01:27:02.230] if (name != NAME && is.element(NAME, old_names)) [01:27:02.230] next [01:27:02.230] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.230] } [01:27:02.230] NAMES <- toupper(added) [01:27:02.230] for (kk in seq_along(NAMES)) { [01:27:02.230] name <- added[[kk]] [01:27:02.230] NAME <- NAMES[[kk]] [01:27:02.230] if (name != NAME && is.element(NAME, old_names)) [01:27:02.230] next [01:27:02.230] args[[name]] <- "" [01:27:02.230] } [01:27:02.230] NAMES <- toupper(removed) [01:27:02.230] for (kk in seq_along(NAMES)) { [01:27:02.230] name <- removed[[kk]] [01:27:02.230] NAME <- NAMES[[kk]] [01:27:02.230] if (name != NAME && is.element(NAME, old_names)) [01:27:02.230] next [01:27:02.230] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.230] } [01:27:02.230] if (length(args) > 0) [01:27:02.230] base::do.call(base::Sys.setenv, args = args) [01:27:02.230] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:02.230] } [01:27:02.230] else { [01:27:02.230] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:02.230] } [01:27:02.230] { [01:27:02.230] if (base::length(...future.futureOptionsAdded) > [01:27:02.230] 0L) { [01:27:02.230] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:02.230] base::names(opts) <- ...future.futureOptionsAdded [01:27:02.230] base::options(opts) [01:27:02.230] } [01:27:02.230] { [01:27:02.230] { [01:27:02.230] NULL [01:27:02.230] RNGkind("Mersenne-Twister") [01:27:02.230] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:02.230] inherits = FALSE) [01:27:02.230] } [01:27:02.230] options(future.plan = NULL) [01:27:02.230] if (is.na(NA_character_)) [01:27:02.230] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.230] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:02.230] future::plan(list(function (..., envir = parent.frame()) [01:27:02.230] { [01:27:02.230] future <- SequentialFuture(..., envir = envir) [01:27:02.230] if (!future$lazy) [01:27:02.230] future <- run(future) [01:27:02.230] invisible(future) [01:27:02.230] }), .cleanup = FALSE, .init = FALSE) [01:27:02.230] } [01:27:02.230] } [01:27:02.230] } [01:27:02.230] }) [01:27:02.230] if (TRUE) { [01:27:02.230] base::sink(type = "output", split = FALSE) [01:27:02.230] if (TRUE) { [01:27:02.230] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:02.230] } [01:27:02.230] else { [01:27:02.230] ...future.result["stdout"] <- base::list(NULL) [01:27:02.230] } [01:27:02.230] base::close(...future.stdout) [01:27:02.230] ...future.stdout <- NULL [01:27:02.230] } [01:27:02.230] ...future.result$conditions <- ...future.conditions [01:27:02.230] ...future.result$finished <- base::Sys.time() [01:27:02.230] ...future.result [01:27:02.230] } [01:27:02.234] plan(): Setting new future strategy stack: [01:27:02.235] List of future strategies: [01:27:02.235] 1. sequential: [01:27:02.235] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.235] - tweaked: FALSE [01:27:02.235] - call: NULL [01:27:02.235] plan(): nbrOfWorkers() = 1 [01:27:02.237] plan(): Setting new future strategy stack: [01:27:02.237] List of future strategies: [01:27:02.237] 1. sequential: [01:27:02.237] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.237] - tweaked: FALSE [01:27:02.237] - call: future::plan("sequential") [01:27:02.238] plan(): nbrOfWorkers() = 1 [01:27:02.238] SequentialFuture started (and completed) [01:27:02.238] signalConditions() ... [01:27:02.238] - include = 'immediateCondition' [01:27:02.239] - exclude = [01:27:02.239] - resignal = FALSE [01:27:02.239] - Number of conditions: 1 [01:27:02.239] signalConditions() ... done [01:27:02.239] - Launch lazy future ... done [01:27:02.240] run() for 'SequentialFuture' ... done > env[["b"]] %<-% { 42L; stop("Woops") } [01:27:02.240] getGlobalsAndPackages() ... [01:27:02.240] Searching for globals... [01:27:02.242] - globals found: [2] '{', 'stop' [01:27:02.242] Searching for globals ... DONE [01:27:02.242] Resolving globals: FALSE [01:27:02.242] [01:27:02.243] [01:27:02.243] getGlobalsAndPackages() ... DONE [01:27:02.243] run() for 'Future' ... [01:27:02.243] - state: 'created' [01:27:02.244] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:02.244] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:02.244] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:02.244] - Field: 'label' [01:27:02.245] - Field: 'local' [01:27:02.245] - Field: 'owner' [01:27:02.245] - Field: 'envir' [01:27:02.247] - Field: 'packages' [01:27:02.248] - Field: 'gc' [01:27:02.248] - Field: 'conditions' [01:27:02.248] - Field: 'expr' [01:27:02.248] - Field: 'uuid' [01:27:02.248] - Field: 'seed' [01:27:02.249] - Field: 'version' [01:27:02.249] - Field: 'result' [01:27:02.249] - Field: 'asynchronous' [01:27:02.249] - Field: 'calls' [01:27:02.249] - Field: 'globals' [01:27:02.249] - Field: 'stdout' [01:27:02.250] - Field: 'earlySignal' [01:27:02.250] - Field: 'lazy' [01:27:02.250] - Field: 'state' [01:27:02.250] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:02.250] - Launch lazy future ... [01:27:02.251] Packages needed by the future expression (n = 0): [01:27:02.251] Packages needed by future strategies (n = 0): [01:27:02.251] { [01:27:02.251] { [01:27:02.251] { [01:27:02.251] ...future.startTime <- base::Sys.time() [01:27:02.251] { [01:27:02.251] { [01:27:02.251] { [01:27:02.251] base::local({ [01:27:02.251] has_future <- base::requireNamespace("future", [01:27:02.251] quietly = TRUE) [01:27:02.251] if (has_future) { [01:27:02.251] ns <- base::getNamespace("future") [01:27:02.251] version <- ns[[".package"]][["version"]] [01:27:02.251] if (is.null(version)) [01:27:02.251] version <- utils::packageVersion("future") [01:27:02.251] } [01:27:02.251] else { [01:27:02.251] version <- NULL [01:27:02.251] } [01:27:02.251] if (!has_future || version < "1.8.0") { [01:27:02.251] info <- base::c(r_version = base::gsub("R version ", [01:27:02.251] "", base::R.version$version.string), [01:27:02.251] platform = base::sprintf("%s (%s-bit)", [01:27:02.251] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:02.251] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:02.251] "release", "version")], collapse = " "), [01:27:02.251] hostname = base::Sys.info()[["nodename"]]) [01:27:02.251] info <- base::sprintf("%s: %s", base::names(info), [01:27:02.251] info) [01:27:02.251] info <- base::paste(info, collapse = "; ") [01:27:02.251] if (!has_future) { [01:27:02.251] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:02.251] info) [01:27:02.251] } [01:27:02.251] else { [01:27:02.251] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:02.251] info, version) [01:27:02.251] } [01:27:02.251] base::stop(msg) [01:27:02.251] } [01:27:02.251] }) [01:27:02.251] } [01:27:02.251] options(future.plan = NULL) [01:27:02.251] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.251] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:02.251] } [01:27:02.251] ...future.workdir <- getwd() [01:27:02.251] } [01:27:02.251] ...future.oldOptions <- base::as.list(base::.Options) [01:27:02.251] ...future.oldEnvVars <- base::Sys.getenv() [01:27:02.251] } [01:27:02.251] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:02.251] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:02.251] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:02.251] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:02.251] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:02.251] future.stdout.windows.reencode = NULL, width = 80L) [01:27:02.251] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:02.251] base::names(...future.oldOptions)) [01:27:02.251] } [01:27:02.251] if (FALSE) { [01:27:02.251] } [01:27:02.251] else { [01:27:02.251] if (TRUE) { [01:27:02.251] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:02.251] open = "w") [01:27:02.251] } [01:27:02.251] else { [01:27:02.251] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:02.251] windows = "NUL", "/dev/null"), open = "w") [01:27:02.251] } [01:27:02.251] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:02.251] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:02.251] base::sink(type = "output", split = FALSE) [01:27:02.251] base::close(...future.stdout) [01:27:02.251] }, add = TRUE) [01:27:02.251] } [01:27:02.251] ...future.frame <- base::sys.nframe() [01:27:02.251] ...future.conditions <- base::list() [01:27:02.251] ...future.rng <- base::globalenv()$.Random.seed [01:27:02.251] if (FALSE) { [01:27:02.251] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:02.251] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:02.251] } [01:27:02.251] ...future.result <- base::tryCatch({ [01:27:02.251] base::withCallingHandlers({ [01:27:02.251] ...future.value <- base::withVisible(base::local({ [01:27:02.251] 42L [01:27:02.251] stop("Woops") [01:27:02.251] })) [01:27:02.251] future::FutureResult(value = ...future.value$value, [01:27:02.251] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.251] ...future.rng), globalenv = if (FALSE) [01:27:02.251] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:02.251] ...future.globalenv.names)) [01:27:02.251] else NULL, started = ...future.startTime, version = "1.8") [01:27:02.251] }, condition = base::local({ [01:27:02.251] c <- base::c [01:27:02.251] inherits <- base::inherits [01:27:02.251] invokeRestart <- base::invokeRestart [01:27:02.251] length <- base::length [01:27:02.251] list <- base::list [01:27:02.251] seq.int <- base::seq.int [01:27:02.251] signalCondition <- base::signalCondition [01:27:02.251] sys.calls <- base::sys.calls [01:27:02.251] `[[` <- base::`[[` [01:27:02.251] `+` <- base::`+` [01:27:02.251] `<<-` <- base::`<<-` [01:27:02.251] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:02.251] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:02.251] 3L)] [01:27:02.251] } [01:27:02.251] function(cond) { [01:27:02.251] is_error <- inherits(cond, "error") [01:27:02.251] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:02.251] NULL) [01:27:02.251] if (is_error) { [01:27:02.251] sessionInformation <- function() { [01:27:02.251] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:02.251] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:02.251] search = base::search(), system = base::Sys.info()) [01:27:02.251] } [01:27:02.251] ...future.conditions[[length(...future.conditions) + [01:27:02.251] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:02.251] cond$call), session = sessionInformation(), [01:27:02.251] timestamp = base::Sys.time(), signaled = 0L) [01:27:02.251] signalCondition(cond) [01:27:02.251] } [01:27:02.251] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:02.251] "immediateCondition"))) { [01:27:02.251] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:02.251] ...future.conditions[[length(...future.conditions) + [01:27:02.251] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:02.251] if (TRUE && !signal) { [01:27:02.251] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.251] { [01:27:02.251] inherits <- base::inherits [01:27:02.251] invokeRestart <- base::invokeRestart [01:27:02.251] is.null <- base::is.null [01:27:02.251] muffled <- FALSE [01:27:02.251] if (inherits(cond, "message")) { [01:27:02.251] muffled <- grepl(pattern, "muffleMessage") [01:27:02.251] if (muffled) [01:27:02.251] invokeRestart("muffleMessage") [01:27:02.251] } [01:27:02.251] else if (inherits(cond, "warning")) { [01:27:02.251] muffled <- grepl(pattern, "muffleWarning") [01:27:02.251] if (muffled) [01:27:02.251] invokeRestart("muffleWarning") [01:27:02.251] } [01:27:02.251] else if (inherits(cond, "condition")) { [01:27:02.251] if (!is.null(pattern)) { [01:27:02.251] computeRestarts <- base::computeRestarts [01:27:02.251] grepl <- base::grepl [01:27:02.251] restarts <- computeRestarts(cond) [01:27:02.251] for (restart in restarts) { [01:27:02.251] name <- restart$name [01:27:02.251] if (is.null(name)) [01:27:02.251] next [01:27:02.251] if (!grepl(pattern, name)) [01:27:02.251] next [01:27:02.251] invokeRestart(restart) [01:27:02.251] muffled <- TRUE [01:27:02.251] break [01:27:02.251] } [01:27:02.251] } [01:27:02.251] } [01:27:02.251] invisible(muffled) [01:27:02.251] } [01:27:02.251] muffleCondition(cond, pattern = "^muffle") [01:27:02.251] } [01:27:02.251] } [01:27:02.251] else { [01:27:02.251] if (TRUE) { [01:27:02.251] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.251] { [01:27:02.251] inherits <- base::inherits [01:27:02.251] invokeRestart <- base::invokeRestart [01:27:02.251] is.null <- base::is.null [01:27:02.251] muffled <- FALSE [01:27:02.251] if (inherits(cond, "message")) { [01:27:02.251] muffled <- grepl(pattern, "muffleMessage") [01:27:02.251] if (muffled) [01:27:02.251] invokeRestart("muffleMessage") [01:27:02.251] } [01:27:02.251] else if (inherits(cond, "warning")) { [01:27:02.251] muffled <- grepl(pattern, "muffleWarning") [01:27:02.251] if (muffled) [01:27:02.251] invokeRestart("muffleWarning") [01:27:02.251] } [01:27:02.251] else if (inherits(cond, "condition")) { [01:27:02.251] if (!is.null(pattern)) { [01:27:02.251] computeRestarts <- base::computeRestarts [01:27:02.251] grepl <- base::grepl [01:27:02.251] restarts <- computeRestarts(cond) [01:27:02.251] for (restart in restarts) { [01:27:02.251] name <- restart$name [01:27:02.251] if (is.null(name)) [01:27:02.251] next [01:27:02.251] if (!grepl(pattern, name)) [01:27:02.251] next [01:27:02.251] invokeRestart(restart) [01:27:02.251] muffled <- TRUE [01:27:02.251] break [01:27:02.251] } [01:27:02.251] } [01:27:02.251] } [01:27:02.251] invisible(muffled) [01:27:02.251] } [01:27:02.251] muffleCondition(cond, pattern = "^muffle") [01:27:02.251] } [01:27:02.251] } [01:27:02.251] } [01:27:02.251] })) [01:27:02.251] }, error = function(ex) { [01:27:02.251] base::structure(base::list(value = NULL, visible = NULL, [01:27:02.251] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.251] ...future.rng), started = ...future.startTime, [01:27:02.251] finished = Sys.time(), session_uuid = NA_character_, [01:27:02.251] version = "1.8"), class = "FutureResult") [01:27:02.251] }, finally = { [01:27:02.251] if (!identical(...future.workdir, getwd())) [01:27:02.251] setwd(...future.workdir) [01:27:02.251] { [01:27:02.251] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:02.251] ...future.oldOptions$nwarnings <- NULL [01:27:02.251] } [01:27:02.251] base::options(...future.oldOptions) [01:27:02.251] if (.Platform$OS.type == "windows") { [01:27:02.251] old_names <- names(...future.oldEnvVars) [01:27:02.251] envs <- base::Sys.getenv() [01:27:02.251] names <- names(envs) [01:27:02.251] common <- intersect(names, old_names) [01:27:02.251] added <- setdiff(names, old_names) [01:27:02.251] removed <- setdiff(old_names, names) [01:27:02.251] changed <- common[...future.oldEnvVars[common] != [01:27:02.251] envs[common]] [01:27:02.251] NAMES <- toupper(changed) [01:27:02.251] args <- list() [01:27:02.251] for (kk in seq_along(NAMES)) { [01:27:02.251] name <- changed[[kk]] [01:27:02.251] NAME <- NAMES[[kk]] [01:27:02.251] if (name != NAME && is.element(NAME, old_names)) [01:27:02.251] next [01:27:02.251] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.251] } [01:27:02.251] NAMES <- toupper(added) [01:27:02.251] for (kk in seq_along(NAMES)) { [01:27:02.251] name <- added[[kk]] [01:27:02.251] NAME <- NAMES[[kk]] [01:27:02.251] if (name != NAME && is.element(NAME, old_names)) [01:27:02.251] next [01:27:02.251] args[[name]] <- "" [01:27:02.251] } [01:27:02.251] NAMES <- toupper(removed) [01:27:02.251] for (kk in seq_along(NAMES)) { [01:27:02.251] name <- removed[[kk]] [01:27:02.251] NAME <- NAMES[[kk]] [01:27:02.251] if (name != NAME && is.element(NAME, old_names)) [01:27:02.251] next [01:27:02.251] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.251] } [01:27:02.251] if (length(args) > 0) [01:27:02.251] base::do.call(base::Sys.setenv, args = args) [01:27:02.251] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:02.251] } [01:27:02.251] else { [01:27:02.251] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:02.251] } [01:27:02.251] { [01:27:02.251] if (base::length(...future.futureOptionsAdded) > [01:27:02.251] 0L) { [01:27:02.251] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:02.251] base::names(opts) <- ...future.futureOptionsAdded [01:27:02.251] base::options(opts) [01:27:02.251] } [01:27:02.251] { [01:27:02.251] { [01:27:02.251] NULL [01:27:02.251] RNGkind("Mersenne-Twister") [01:27:02.251] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:02.251] inherits = FALSE) [01:27:02.251] } [01:27:02.251] options(future.plan = NULL) [01:27:02.251] if (is.na(NA_character_)) [01:27:02.251] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.251] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:02.251] future::plan(list(function (..., envir = parent.frame()) [01:27:02.251] { [01:27:02.251] future <- SequentialFuture(..., envir = envir) [01:27:02.251] if (!future$lazy) [01:27:02.251] future <- run(future) [01:27:02.251] invisible(future) [01:27:02.251] }), .cleanup = FALSE, .init = FALSE) [01:27:02.251] } [01:27:02.251] } [01:27:02.251] } [01:27:02.251] }) [01:27:02.251] if (TRUE) { [01:27:02.251] base::sink(type = "output", split = FALSE) [01:27:02.251] if (TRUE) { [01:27:02.251] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:02.251] } [01:27:02.251] else { [01:27:02.251] ...future.result["stdout"] <- base::list(NULL) [01:27:02.251] } [01:27:02.251] base::close(...future.stdout) [01:27:02.251] ...future.stdout <- NULL [01:27:02.251] } [01:27:02.251] ...future.result$conditions <- ...future.conditions [01:27:02.251] ...future.result$finished <- base::Sys.time() [01:27:02.251] ...future.result [01:27:02.251] } [01:27:02.256] plan(): Setting new future strategy stack: [01:27:02.256] List of future strategies: [01:27:02.256] 1. sequential: [01:27:02.256] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.256] - tweaked: FALSE [01:27:02.256] - call: NULL [01:27:02.257] plan(): nbrOfWorkers() = 1 [01:27:02.258] plan(): Setting new future strategy stack: [01:27:02.258] List of future strategies: [01:27:02.258] 1. sequential: [01:27:02.258] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.258] - tweaked: FALSE [01:27:02.258] - call: future::plan("sequential") [01:27:02.259] plan(): nbrOfWorkers() = 1 [01:27:02.259] SequentialFuture started (and completed) [01:27:02.259] signalConditions() ... [01:27:02.260] - include = 'immediateCondition' [01:27:02.260] - exclude = [01:27:02.260] - resignal = FALSE [01:27:02.260] - Number of conditions: 1 [01:27:02.260] signalConditions() ... done [01:27:02.261] - Launch lazy future ... done [01:27:02.261] run() for 'SequentialFuture' ... done > calls <- backtrace(env[["b"]]) [01:27:02.261] resolved() for 'SequentialFuture' ... [01:27:02.262] - state: 'finished' [01:27:02.262] - run: TRUE [01:27:02.262] - result: 'FutureResult' [01:27:02.262] resolved() for 'SequentialFuture' ... done > print(calls) [[1]] env[["b"]] %<-% { 42L stop("Woops") } [[2]] futureAssignInternal(target, expr, envir = envir, substitute = FALSE) [[3]] futureAssign(name, expr, envir = envir, assign.env = assign.env, substitute = FALSE) [[4]] do.call(future::future, args = future.args, envir = assign.env) [[5]] (function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = FALSE, globals = TRUE, packages = NULL, stdout = TRUE, conditions = "condition", earlySignal = FALSE, label = NULL, gc = FALSE, ...) { if (substitute) expr <- substitute(expr) t_start <- Sys.time() gp <- getGlobalsAndPackages(expr, envir = envir, tweak = tweakExpression, globals = globals) expr <- gp$expr globals <- gp$globals if (length(packages) > 0 || length(gp$packages) > 0) { packages <- unique(c(gp$packages, packages)) } gp <- NULL attr(globals, "already-done") <- TRUE future <- Future(expr, substitute = FALSE, envir = envir, lazy = TRUE, seed = seed, globals = globals, packages = packages, stdout = stdout, conditions = conditions, earlySignal = earlySignal, label = label, gc = gc, ...) future$.defaultLocal <- !is.element("local", names(list(...))) if (getOption("future.journal", FALSE)) { future <- makeFutureJournal(future, event = "create", category = "overhead", start = t_start) } if (!lazy) { future <- run(future) future$lazy <- FALSE stop_if_not(inherits(future, "Future"), !future$lazy) } future })({ 42L stop("Woops") }, envir = , lazy = FALSE, seed = FALSE, globals = TRUE, packages = NULL, stdout = TRUE, conditions = "condition", earlySignal = FALSE, label = NULL, gc = FALSE) [[6]] Future(expr, substitute = FALSE, envir = envir, lazy = TRUE, seed = seed, globals = globals, packages = packages, stdout = stdout, conditions = conditions, earlySignal = earlySignal, label = label, gc = gc, ...) [[7]] eval(quote({ 42L stop("Woops") }), new.env()) [[8]] stop("Woops") [[9]] eval(quote({ 42L stop("Woops") }), new.env()) > stopifnot(is.list(calls)) > > lenv <- listenv::listenv() > lenv[[1]] %<-% { 42L; stop("Woops") } [01:27:02.264] getGlobalsAndPackages() ... [01:27:02.264] Searching for globals... [01:27:02.266] - globals found: [2] '{', 'stop' [01:27:02.266] Searching for globals ... DONE [01:27:02.266] Resolving globals: FALSE [01:27:02.267] [01:27:02.267] [01:27:02.267] getGlobalsAndPackages() ... DONE [01:27:02.268] run() for 'Future' ... [01:27:02.268] - state: 'created' [01:27:02.268] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:02.268] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:02.269] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:02.269] - Field: 'label' [01:27:02.269] - Field: 'local' [01:27:02.269] - Field: 'owner' [01:27:02.270] - Field: 'envir' [01:27:02.270] - Field: 'packages' [01:27:02.270] - Field: 'gc' [01:27:02.270] - Field: 'conditions' [01:27:02.270] - Field: 'expr' [01:27:02.271] - Field: 'uuid' [01:27:02.271] - Field: 'seed' [01:27:02.271] - Field: 'version' [01:27:02.271] - Field: 'result' [01:27:02.271] - Field: 'asynchronous' [01:27:02.272] - Field: 'calls' [01:27:02.272] - Field: 'globals' [01:27:02.272] - Field: 'stdout' [01:27:02.272] - Field: 'earlySignal' [01:27:02.272] - Field: 'lazy' [01:27:02.273] - Field: 'state' [01:27:02.273] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:02.273] - Launch lazy future ... [01:27:02.273] Packages needed by the future expression (n = 0): [01:27:02.274] Packages needed by future strategies (n = 0): [01:27:02.274] { [01:27:02.274] { [01:27:02.274] { [01:27:02.274] ...future.startTime <- base::Sys.time() [01:27:02.274] { [01:27:02.274] { [01:27:02.274] { [01:27:02.274] base::local({ [01:27:02.274] has_future <- base::requireNamespace("future", [01:27:02.274] quietly = TRUE) [01:27:02.274] if (has_future) { [01:27:02.274] ns <- base::getNamespace("future") [01:27:02.274] version <- ns[[".package"]][["version"]] [01:27:02.274] if (is.null(version)) [01:27:02.274] version <- utils::packageVersion("future") [01:27:02.274] } [01:27:02.274] else { [01:27:02.274] version <- NULL [01:27:02.274] } [01:27:02.274] if (!has_future || version < "1.8.0") { [01:27:02.274] info <- base::c(r_version = base::gsub("R version ", [01:27:02.274] "", base::R.version$version.string), [01:27:02.274] platform = base::sprintf("%s (%s-bit)", [01:27:02.274] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:02.274] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:02.274] "release", "version")], collapse = " "), [01:27:02.274] hostname = base::Sys.info()[["nodename"]]) [01:27:02.274] info <- base::sprintf("%s: %s", base::names(info), [01:27:02.274] info) [01:27:02.274] info <- base::paste(info, collapse = "; ") [01:27:02.274] if (!has_future) { [01:27:02.274] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:02.274] info) [01:27:02.274] } [01:27:02.274] else { [01:27:02.274] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:02.274] info, version) [01:27:02.274] } [01:27:02.274] base::stop(msg) [01:27:02.274] } [01:27:02.274] }) [01:27:02.274] } [01:27:02.274] options(future.plan = NULL) [01:27:02.274] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.274] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:02.274] } [01:27:02.274] ...future.workdir <- getwd() [01:27:02.274] } [01:27:02.274] ...future.oldOptions <- base::as.list(base::.Options) [01:27:02.274] ...future.oldEnvVars <- base::Sys.getenv() [01:27:02.274] } [01:27:02.274] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:02.274] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:02.274] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:02.274] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:02.274] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:02.274] future.stdout.windows.reencode = NULL, width = 80L) [01:27:02.274] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:02.274] base::names(...future.oldOptions)) [01:27:02.274] } [01:27:02.274] if (FALSE) { [01:27:02.274] } [01:27:02.274] else { [01:27:02.274] if (TRUE) { [01:27:02.274] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:02.274] open = "w") [01:27:02.274] } [01:27:02.274] else { [01:27:02.274] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:02.274] windows = "NUL", "/dev/null"), open = "w") [01:27:02.274] } [01:27:02.274] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:02.274] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:02.274] base::sink(type = "output", split = FALSE) [01:27:02.274] base::close(...future.stdout) [01:27:02.274] }, add = TRUE) [01:27:02.274] } [01:27:02.274] ...future.frame <- base::sys.nframe() [01:27:02.274] ...future.conditions <- base::list() [01:27:02.274] ...future.rng <- base::globalenv()$.Random.seed [01:27:02.274] if (FALSE) { [01:27:02.274] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:02.274] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:02.274] } [01:27:02.274] ...future.result <- base::tryCatch({ [01:27:02.274] base::withCallingHandlers({ [01:27:02.274] ...future.value <- base::withVisible(base::local({ [01:27:02.274] 42L [01:27:02.274] stop("Woops") [01:27:02.274] })) [01:27:02.274] future::FutureResult(value = ...future.value$value, [01:27:02.274] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.274] ...future.rng), globalenv = if (FALSE) [01:27:02.274] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:02.274] ...future.globalenv.names)) [01:27:02.274] else NULL, started = ...future.startTime, version = "1.8") [01:27:02.274] }, condition = base::local({ [01:27:02.274] c <- base::c [01:27:02.274] inherits <- base::inherits [01:27:02.274] invokeRestart <- base::invokeRestart [01:27:02.274] length <- base::length [01:27:02.274] list <- base::list [01:27:02.274] seq.int <- base::seq.int [01:27:02.274] signalCondition <- base::signalCondition [01:27:02.274] sys.calls <- base::sys.calls [01:27:02.274] `[[` <- base::`[[` [01:27:02.274] `+` <- base::`+` [01:27:02.274] `<<-` <- base::`<<-` [01:27:02.274] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:02.274] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:02.274] 3L)] [01:27:02.274] } [01:27:02.274] function(cond) { [01:27:02.274] is_error <- inherits(cond, "error") [01:27:02.274] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:02.274] NULL) [01:27:02.274] if (is_error) { [01:27:02.274] sessionInformation <- function() { [01:27:02.274] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:02.274] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:02.274] search = base::search(), system = base::Sys.info()) [01:27:02.274] } [01:27:02.274] ...future.conditions[[length(...future.conditions) + [01:27:02.274] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:02.274] cond$call), session = sessionInformation(), [01:27:02.274] timestamp = base::Sys.time(), signaled = 0L) [01:27:02.274] signalCondition(cond) [01:27:02.274] } [01:27:02.274] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:02.274] "immediateCondition"))) { [01:27:02.274] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:02.274] ...future.conditions[[length(...future.conditions) + [01:27:02.274] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:02.274] if (TRUE && !signal) { [01:27:02.274] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.274] { [01:27:02.274] inherits <- base::inherits [01:27:02.274] invokeRestart <- base::invokeRestart [01:27:02.274] is.null <- base::is.null [01:27:02.274] muffled <- FALSE [01:27:02.274] if (inherits(cond, "message")) { [01:27:02.274] muffled <- grepl(pattern, "muffleMessage") [01:27:02.274] if (muffled) [01:27:02.274] invokeRestart("muffleMessage") [01:27:02.274] } [01:27:02.274] else if (inherits(cond, "warning")) { [01:27:02.274] muffled <- grepl(pattern, "muffleWarning") [01:27:02.274] if (muffled) [01:27:02.274] invokeRestart("muffleWarning") [01:27:02.274] } [01:27:02.274] else if (inherits(cond, "condition")) { [01:27:02.274] if (!is.null(pattern)) { [01:27:02.274] computeRestarts <- base::computeRestarts [01:27:02.274] grepl <- base::grepl [01:27:02.274] restarts <- computeRestarts(cond) [01:27:02.274] for (restart in restarts) { [01:27:02.274] name <- restart$name [01:27:02.274] if (is.null(name)) [01:27:02.274] next [01:27:02.274] if (!grepl(pattern, name)) [01:27:02.274] next [01:27:02.274] invokeRestart(restart) [01:27:02.274] muffled <- TRUE [01:27:02.274] break [01:27:02.274] } [01:27:02.274] } [01:27:02.274] } [01:27:02.274] invisible(muffled) [01:27:02.274] } [01:27:02.274] muffleCondition(cond, pattern = "^muffle") [01:27:02.274] } [01:27:02.274] } [01:27:02.274] else { [01:27:02.274] if (TRUE) { [01:27:02.274] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.274] { [01:27:02.274] inherits <- base::inherits [01:27:02.274] invokeRestart <- base::invokeRestart [01:27:02.274] is.null <- base::is.null [01:27:02.274] muffled <- FALSE [01:27:02.274] if (inherits(cond, "message")) { [01:27:02.274] muffled <- grepl(pattern, "muffleMessage") [01:27:02.274] if (muffled) [01:27:02.274] invokeRestart("muffleMessage") [01:27:02.274] } [01:27:02.274] else if (inherits(cond, "warning")) { [01:27:02.274] muffled <- grepl(pattern, "muffleWarning") [01:27:02.274] if (muffled) [01:27:02.274] invokeRestart("muffleWarning") [01:27:02.274] } [01:27:02.274] else if (inherits(cond, "condition")) { [01:27:02.274] if (!is.null(pattern)) { [01:27:02.274] computeRestarts <- base::computeRestarts [01:27:02.274] grepl <- base::grepl [01:27:02.274] restarts <- computeRestarts(cond) [01:27:02.274] for (restart in restarts) { [01:27:02.274] name <- restart$name [01:27:02.274] if (is.null(name)) [01:27:02.274] next [01:27:02.274] if (!grepl(pattern, name)) [01:27:02.274] next [01:27:02.274] invokeRestart(restart) [01:27:02.274] muffled <- TRUE [01:27:02.274] break [01:27:02.274] } [01:27:02.274] } [01:27:02.274] } [01:27:02.274] invisible(muffled) [01:27:02.274] } [01:27:02.274] muffleCondition(cond, pattern = "^muffle") [01:27:02.274] } [01:27:02.274] } [01:27:02.274] } [01:27:02.274] })) [01:27:02.274] }, error = function(ex) { [01:27:02.274] base::structure(base::list(value = NULL, visible = NULL, [01:27:02.274] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.274] ...future.rng), started = ...future.startTime, [01:27:02.274] finished = Sys.time(), session_uuid = NA_character_, [01:27:02.274] version = "1.8"), class = "FutureResult") [01:27:02.274] }, finally = { [01:27:02.274] if (!identical(...future.workdir, getwd())) [01:27:02.274] setwd(...future.workdir) [01:27:02.274] { [01:27:02.274] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:02.274] ...future.oldOptions$nwarnings <- NULL [01:27:02.274] } [01:27:02.274] base::options(...future.oldOptions) [01:27:02.274] if (.Platform$OS.type == "windows") { [01:27:02.274] old_names <- names(...future.oldEnvVars) [01:27:02.274] envs <- base::Sys.getenv() [01:27:02.274] names <- names(envs) [01:27:02.274] common <- intersect(names, old_names) [01:27:02.274] added <- setdiff(names, old_names) [01:27:02.274] removed <- setdiff(old_names, names) [01:27:02.274] changed <- common[...future.oldEnvVars[common] != [01:27:02.274] envs[common]] [01:27:02.274] NAMES <- toupper(changed) [01:27:02.274] args <- list() [01:27:02.274] for (kk in seq_along(NAMES)) { [01:27:02.274] name <- changed[[kk]] [01:27:02.274] NAME <- NAMES[[kk]] [01:27:02.274] if (name != NAME && is.element(NAME, old_names)) [01:27:02.274] next [01:27:02.274] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.274] } [01:27:02.274] NAMES <- toupper(added) [01:27:02.274] for (kk in seq_along(NAMES)) { [01:27:02.274] name <- added[[kk]] [01:27:02.274] NAME <- NAMES[[kk]] [01:27:02.274] if (name != NAME && is.element(NAME, old_names)) [01:27:02.274] next [01:27:02.274] args[[name]] <- "" [01:27:02.274] } [01:27:02.274] NAMES <- toupper(removed) [01:27:02.274] for (kk in seq_along(NAMES)) { [01:27:02.274] name <- removed[[kk]] [01:27:02.274] NAME <- NAMES[[kk]] [01:27:02.274] if (name != NAME && is.element(NAME, old_names)) [01:27:02.274] next [01:27:02.274] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.274] } [01:27:02.274] if (length(args) > 0) [01:27:02.274] base::do.call(base::Sys.setenv, args = args) [01:27:02.274] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:02.274] } [01:27:02.274] else { [01:27:02.274] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:02.274] } [01:27:02.274] { [01:27:02.274] if (base::length(...future.futureOptionsAdded) > [01:27:02.274] 0L) { [01:27:02.274] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:02.274] base::names(opts) <- ...future.futureOptionsAdded [01:27:02.274] base::options(opts) [01:27:02.274] } [01:27:02.274] { [01:27:02.274] { [01:27:02.274] NULL [01:27:02.274] RNGkind("Mersenne-Twister") [01:27:02.274] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:02.274] inherits = FALSE) [01:27:02.274] } [01:27:02.274] options(future.plan = NULL) [01:27:02.274] if (is.na(NA_character_)) [01:27:02.274] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.274] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:02.274] future::plan(list(function (..., envir = parent.frame()) [01:27:02.274] { [01:27:02.274] future <- SequentialFuture(..., envir = envir) [01:27:02.274] if (!future$lazy) [01:27:02.274] future <- run(future) [01:27:02.274] invisible(future) [01:27:02.274] }), .cleanup = FALSE, .init = FALSE) [01:27:02.274] } [01:27:02.274] } [01:27:02.274] } [01:27:02.274] }) [01:27:02.274] if (TRUE) { [01:27:02.274] base::sink(type = "output", split = FALSE) [01:27:02.274] if (TRUE) { [01:27:02.274] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:02.274] } [01:27:02.274] else { [01:27:02.274] ...future.result["stdout"] <- base::list(NULL) [01:27:02.274] } [01:27:02.274] base::close(...future.stdout) [01:27:02.274] ...future.stdout <- NULL [01:27:02.274] } [01:27:02.274] ...future.result$conditions <- ...future.conditions [01:27:02.274] ...future.result$finished <- base::Sys.time() [01:27:02.274] ...future.result [01:27:02.274] } [01:27:02.278] plan(): Setting new future strategy stack: [01:27:02.279] List of future strategies: [01:27:02.279] 1. sequential: [01:27:02.279] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.279] - tweaked: FALSE [01:27:02.279] - call: NULL [01:27:02.279] plan(): nbrOfWorkers() = 1 [01:27:02.281] plan(): Setting new future strategy stack: [01:27:02.281] List of future strategies: [01:27:02.281] 1. sequential: [01:27:02.281] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.281] - tweaked: FALSE [01:27:02.281] - call: future::plan("sequential") [01:27:02.282] plan(): nbrOfWorkers() = 1 [01:27:02.282] SequentialFuture started (and completed) [01:27:02.282] signalConditions() ... [01:27:02.282] - include = 'immediateCondition' [01:27:02.283] - exclude = [01:27:02.283] - resignal = FALSE [01:27:02.283] - Number of conditions: 1 [01:27:02.283] signalConditions() ... done [01:27:02.283] - Launch lazy future ... done [01:27:02.284] run() for 'SequentialFuture' ... done > lenv[[2]] %<-% { 42L; stop("Woops") } [01:27:02.284] getGlobalsAndPackages() ... [01:27:02.284] Searching for globals... [01:27:02.285] - globals found: [2] '{', 'stop' [01:27:02.286] Searching for globals ... DONE [01:27:02.286] Resolving globals: FALSE [01:27:02.286] [01:27:02.286] [01:27:02.287] getGlobalsAndPackages() ... DONE [01:27:02.287] run() for 'Future' ... [01:27:02.287] - state: 'created' [01:27:02.287] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:02.288] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:02.288] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:02.288] - Field: 'label' [01:27:02.288] - Field: 'local' [01:27:02.289] - Field: 'owner' [01:27:02.289] - Field: 'envir' [01:27:02.289] - Field: 'packages' [01:27:02.289] - Field: 'gc' [01:27:02.289] - Field: 'conditions' [01:27:02.290] - Field: 'expr' [01:27:02.290] - Field: 'uuid' [01:27:02.290] - Field: 'seed' [01:27:02.290] - Field: 'version' [01:27:02.290] - Field: 'result' [01:27:02.291] - Field: 'asynchronous' [01:27:02.291] - Field: 'calls' [01:27:02.291] - Field: 'globals' [01:27:02.291] - Field: 'stdout' [01:27:02.291] - Field: 'earlySignal' [01:27:02.291] - Field: 'lazy' [01:27:02.292] - Field: 'state' [01:27:02.292] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:02.292] - Launch lazy future ... [01:27:02.292] Packages needed by the future expression (n = 0): [01:27:02.292] Packages needed by future strategies (n = 0): [01:27:02.293] { [01:27:02.293] { [01:27:02.293] { [01:27:02.293] ...future.startTime <- base::Sys.time() [01:27:02.293] { [01:27:02.293] { [01:27:02.293] { [01:27:02.293] base::local({ [01:27:02.293] has_future <- base::requireNamespace("future", [01:27:02.293] quietly = TRUE) [01:27:02.293] if (has_future) { [01:27:02.293] ns <- base::getNamespace("future") [01:27:02.293] version <- ns[[".package"]][["version"]] [01:27:02.293] if (is.null(version)) [01:27:02.293] version <- utils::packageVersion("future") [01:27:02.293] } [01:27:02.293] else { [01:27:02.293] version <- NULL [01:27:02.293] } [01:27:02.293] if (!has_future || version < "1.8.0") { [01:27:02.293] info <- base::c(r_version = base::gsub("R version ", [01:27:02.293] "", base::R.version$version.string), [01:27:02.293] platform = base::sprintf("%s (%s-bit)", [01:27:02.293] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:02.293] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:02.293] "release", "version")], collapse = " "), [01:27:02.293] hostname = base::Sys.info()[["nodename"]]) [01:27:02.293] info <- base::sprintf("%s: %s", base::names(info), [01:27:02.293] info) [01:27:02.293] info <- base::paste(info, collapse = "; ") [01:27:02.293] if (!has_future) { [01:27:02.293] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:02.293] info) [01:27:02.293] } [01:27:02.293] else { [01:27:02.293] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:02.293] info, version) [01:27:02.293] } [01:27:02.293] base::stop(msg) [01:27:02.293] } [01:27:02.293] }) [01:27:02.293] } [01:27:02.293] options(future.plan = NULL) [01:27:02.293] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.293] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:02.293] } [01:27:02.293] ...future.workdir <- getwd() [01:27:02.293] } [01:27:02.293] ...future.oldOptions <- base::as.list(base::.Options) [01:27:02.293] ...future.oldEnvVars <- base::Sys.getenv() [01:27:02.293] } [01:27:02.293] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:02.293] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:02.293] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:02.293] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:02.293] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:02.293] future.stdout.windows.reencode = NULL, width = 80L) [01:27:02.293] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:02.293] base::names(...future.oldOptions)) [01:27:02.293] } [01:27:02.293] if (FALSE) { [01:27:02.293] } [01:27:02.293] else { [01:27:02.293] if (TRUE) { [01:27:02.293] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:02.293] open = "w") [01:27:02.293] } [01:27:02.293] else { [01:27:02.293] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:02.293] windows = "NUL", "/dev/null"), open = "w") [01:27:02.293] } [01:27:02.293] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:02.293] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:02.293] base::sink(type = "output", split = FALSE) [01:27:02.293] base::close(...future.stdout) [01:27:02.293] }, add = TRUE) [01:27:02.293] } [01:27:02.293] ...future.frame <- base::sys.nframe() [01:27:02.293] ...future.conditions <- base::list() [01:27:02.293] ...future.rng <- base::globalenv()$.Random.seed [01:27:02.293] if (FALSE) { [01:27:02.293] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:02.293] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:02.293] } [01:27:02.293] ...future.result <- base::tryCatch({ [01:27:02.293] base::withCallingHandlers({ [01:27:02.293] ...future.value <- base::withVisible(base::local({ [01:27:02.293] 42L [01:27:02.293] stop("Woops") [01:27:02.293] })) [01:27:02.293] future::FutureResult(value = ...future.value$value, [01:27:02.293] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.293] ...future.rng), globalenv = if (FALSE) [01:27:02.293] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:02.293] ...future.globalenv.names)) [01:27:02.293] else NULL, started = ...future.startTime, version = "1.8") [01:27:02.293] }, condition = base::local({ [01:27:02.293] c <- base::c [01:27:02.293] inherits <- base::inherits [01:27:02.293] invokeRestart <- base::invokeRestart [01:27:02.293] length <- base::length [01:27:02.293] list <- base::list [01:27:02.293] seq.int <- base::seq.int [01:27:02.293] signalCondition <- base::signalCondition [01:27:02.293] sys.calls <- base::sys.calls [01:27:02.293] `[[` <- base::`[[` [01:27:02.293] `+` <- base::`+` [01:27:02.293] `<<-` <- base::`<<-` [01:27:02.293] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:02.293] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:02.293] 3L)] [01:27:02.293] } [01:27:02.293] function(cond) { [01:27:02.293] is_error <- inherits(cond, "error") [01:27:02.293] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:02.293] NULL) [01:27:02.293] if (is_error) { [01:27:02.293] sessionInformation <- function() { [01:27:02.293] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:02.293] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:02.293] search = base::search(), system = base::Sys.info()) [01:27:02.293] } [01:27:02.293] ...future.conditions[[length(...future.conditions) + [01:27:02.293] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:02.293] cond$call), session = sessionInformation(), [01:27:02.293] timestamp = base::Sys.time(), signaled = 0L) [01:27:02.293] signalCondition(cond) [01:27:02.293] } [01:27:02.293] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:02.293] "immediateCondition"))) { [01:27:02.293] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:02.293] ...future.conditions[[length(...future.conditions) + [01:27:02.293] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:02.293] if (TRUE && !signal) { [01:27:02.293] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.293] { [01:27:02.293] inherits <- base::inherits [01:27:02.293] invokeRestart <- base::invokeRestart [01:27:02.293] is.null <- base::is.null [01:27:02.293] muffled <- FALSE [01:27:02.293] if (inherits(cond, "message")) { [01:27:02.293] muffled <- grepl(pattern, "muffleMessage") [01:27:02.293] if (muffled) [01:27:02.293] invokeRestart("muffleMessage") [01:27:02.293] } [01:27:02.293] else if (inherits(cond, "warning")) { [01:27:02.293] muffled <- grepl(pattern, "muffleWarning") [01:27:02.293] if (muffled) [01:27:02.293] invokeRestart("muffleWarning") [01:27:02.293] } [01:27:02.293] else if (inherits(cond, "condition")) { [01:27:02.293] if (!is.null(pattern)) { [01:27:02.293] computeRestarts <- base::computeRestarts [01:27:02.293] grepl <- base::grepl [01:27:02.293] restarts <- computeRestarts(cond) [01:27:02.293] for (restart in restarts) { [01:27:02.293] name <- restart$name [01:27:02.293] if (is.null(name)) [01:27:02.293] next [01:27:02.293] if (!grepl(pattern, name)) [01:27:02.293] next [01:27:02.293] invokeRestart(restart) [01:27:02.293] muffled <- TRUE [01:27:02.293] break [01:27:02.293] } [01:27:02.293] } [01:27:02.293] } [01:27:02.293] invisible(muffled) [01:27:02.293] } [01:27:02.293] muffleCondition(cond, pattern = "^muffle") [01:27:02.293] } [01:27:02.293] } [01:27:02.293] else { [01:27:02.293] if (TRUE) { [01:27:02.293] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.293] { [01:27:02.293] inherits <- base::inherits [01:27:02.293] invokeRestart <- base::invokeRestart [01:27:02.293] is.null <- base::is.null [01:27:02.293] muffled <- FALSE [01:27:02.293] if (inherits(cond, "message")) { [01:27:02.293] muffled <- grepl(pattern, "muffleMessage") [01:27:02.293] if (muffled) [01:27:02.293] invokeRestart("muffleMessage") [01:27:02.293] } [01:27:02.293] else if (inherits(cond, "warning")) { [01:27:02.293] muffled <- grepl(pattern, "muffleWarning") [01:27:02.293] if (muffled) [01:27:02.293] invokeRestart("muffleWarning") [01:27:02.293] } [01:27:02.293] else if (inherits(cond, "condition")) { [01:27:02.293] if (!is.null(pattern)) { [01:27:02.293] computeRestarts <- base::computeRestarts [01:27:02.293] grepl <- base::grepl [01:27:02.293] restarts <- computeRestarts(cond) [01:27:02.293] for (restart in restarts) { [01:27:02.293] name <- restart$name [01:27:02.293] if (is.null(name)) [01:27:02.293] next [01:27:02.293] if (!grepl(pattern, name)) [01:27:02.293] next [01:27:02.293] invokeRestart(restart) [01:27:02.293] muffled <- TRUE [01:27:02.293] break [01:27:02.293] } [01:27:02.293] } [01:27:02.293] } [01:27:02.293] invisible(muffled) [01:27:02.293] } [01:27:02.293] muffleCondition(cond, pattern = "^muffle") [01:27:02.293] } [01:27:02.293] } [01:27:02.293] } [01:27:02.293] })) [01:27:02.293] }, error = function(ex) { [01:27:02.293] base::structure(base::list(value = NULL, visible = NULL, [01:27:02.293] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.293] ...future.rng), started = ...future.startTime, [01:27:02.293] finished = Sys.time(), session_uuid = NA_character_, [01:27:02.293] version = "1.8"), class = "FutureResult") [01:27:02.293] }, finally = { [01:27:02.293] if (!identical(...future.workdir, getwd())) [01:27:02.293] setwd(...future.workdir) [01:27:02.293] { [01:27:02.293] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:02.293] ...future.oldOptions$nwarnings <- NULL [01:27:02.293] } [01:27:02.293] base::options(...future.oldOptions) [01:27:02.293] if (.Platform$OS.type == "windows") { [01:27:02.293] old_names <- names(...future.oldEnvVars) [01:27:02.293] envs <- base::Sys.getenv() [01:27:02.293] names <- names(envs) [01:27:02.293] common <- intersect(names, old_names) [01:27:02.293] added <- setdiff(names, old_names) [01:27:02.293] removed <- setdiff(old_names, names) [01:27:02.293] changed <- common[...future.oldEnvVars[common] != [01:27:02.293] envs[common]] [01:27:02.293] NAMES <- toupper(changed) [01:27:02.293] args <- list() [01:27:02.293] for (kk in seq_along(NAMES)) { [01:27:02.293] name <- changed[[kk]] [01:27:02.293] NAME <- NAMES[[kk]] [01:27:02.293] if (name != NAME && is.element(NAME, old_names)) [01:27:02.293] next [01:27:02.293] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.293] } [01:27:02.293] NAMES <- toupper(added) [01:27:02.293] for (kk in seq_along(NAMES)) { [01:27:02.293] name <- added[[kk]] [01:27:02.293] NAME <- NAMES[[kk]] [01:27:02.293] if (name != NAME && is.element(NAME, old_names)) [01:27:02.293] next [01:27:02.293] args[[name]] <- "" [01:27:02.293] } [01:27:02.293] NAMES <- toupper(removed) [01:27:02.293] for (kk in seq_along(NAMES)) { [01:27:02.293] name <- removed[[kk]] [01:27:02.293] NAME <- NAMES[[kk]] [01:27:02.293] if (name != NAME && is.element(NAME, old_names)) [01:27:02.293] next [01:27:02.293] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.293] } [01:27:02.293] if (length(args) > 0) [01:27:02.293] base::do.call(base::Sys.setenv, args = args) [01:27:02.293] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:02.293] } [01:27:02.293] else { [01:27:02.293] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:02.293] } [01:27:02.293] { [01:27:02.293] if (base::length(...future.futureOptionsAdded) > [01:27:02.293] 0L) { [01:27:02.293] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:02.293] base::names(opts) <- ...future.futureOptionsAdded [01:27:02.293] base::options(opts) [01:27:02.293] } [01:27:02.293] { [01:27:02.293] { [01:27:02.293] NULL [01:27:02.293] RNGkind("Mersenne-Twister") [01:27:02.293] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:02.293] inherits = FALSE) [01:27:02.293] } [01:27:02.293] options(future.plan = NULL) [01:27:02.293] if (is.na(NA_character_)) [01:27:02.293] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.293] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:02.293] future::plan(list(function (..., envir = parent.frame()) [01:27:02.293] { [01:27:02.293] future <- SequentialFuture(..., envir = envir) [01:27:02.293] if (!future$lazy) [01:27:02.293] future <- run(future) [01:27:02.293] invisible(future) [01:27:02.293] }), .cleanup = FALSE, .init = FALSE) [01:27:02.293] } [01:27:02.293] } [01:27:02.293] } [01:27:02.293] }) [01:27:02.293] if (TRUE) { [01:27:02.293] base::sink(type = "output", split = FALSE) [01:27:02.293] if (TRUE) { [01:27:02.293] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:02.293] } [01:27:02.293] else { [01:27:02.293] ...future.result["stdout"] <- base::list(NULL) [01:27:02.293] } [01:27:02.293] base::close(...future.stdout) [01:27:02.293] ...future.stdout <- NULL [01:27:02.293] } [01:27:02.293] ...future.result$conditions <- ...future.conditions [01:27:02.293] ...future.result$finished <- base::Sys.time() [01:27:02.293] ...future.result [01:27:02.293] } [01:27:02.297] plan(): Setting new future strategy stack: [01:27:02.297] List of future strategies: [01:27:02.297] 1. sequential: [01:27:02.297] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.297] - tweaked: FALSE [01:27:02.297] - call: NULL [01:27:02.298] plan(): nbrOfWorkers() = 1 [01:27:02.301] plan(): Setting new future strategy stack: [01:27:02.302] List of future strategies: [01:27:02.302] 1. sequential: [01:27:02.302] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.302] - tweaked: FALSE [01:27:02.302] - call: future::plan("sequential") [01:27:02.303] plan(): nbrOfWorkers() = 1 [01:27:02.303] SequentialFuture started (and completed) [01:27:02.303] signalConditions() ... [01:27:02.304] - include = 'immediateCondition' [01:27:02.304] - exclude = [01:27:02.304] - resignal = FALSE [01:27:02.304] - Number of conditions: 1 [01:27:02.305] signalConditions() ... done [01:27:02.305] - Launch lazy future ... done [01:27:02.305] run() for 'SequentialFuture' ... done > calls <- backtrace(lenv[[2]]) [01:27:02.306] resolved() for 'SequentialFuture' ... [01:27:02.306] - state: 'finished' [01:27:02.306] - run: TRUE [01:27:02.307] - result: 'FutureResult' [01:27:02.307] resolved() for 'SequentialFuture' ... done > print(calls) [[1]] lenv[[2]] %<-% { 42L stop("Woops") } [[2]] futureAssignInternal(target, expr, envir = envir, substitute = FALSE) [[3]] futureAssign(name, expr, envir = envir, assign.env = assign.env, substitute = FALSE) [[4]] do.call(future::future, args = future.args, envir = assign.env) [[5]] (function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = FALSE, globals = TRUE, packages = NULL, stdout = TRUE, conditions = "condition", earlySignal = FALSE, label = NULL, gc = FALSE, ...) { if (substitute) expr <- substitute(expr) t_start <- Sys.time() gp <- getGlobalsAndPackages(expr, envir = envir, tweak = tweakExpression, globals = globals) expr <- gp$expr globals <- gp$globals if (length(packages) > 0 || length(gp$packages) > 0) { packages <- unique(c(gp$packages, packages)) } gp <- NULL attr(globals, "already-done") <- TRUE future <- Future(expr, substitute = FALSE, envir = envir, lazy = TRUE, seed = seed, globals = globals, packages = packages, stdout = stdout, conditions = conditions, earlySignal = earlySignal, label = label, gc = gc, ...) future$.defaultLocal <- !is.element("local", names(list(...))) if (getOption("future.journal", FALSE)) { future <- makeFutureJournal(future, event = "create", category = "overhead", start = t_start) } if (!lazy) { future <- run(future) future$lazy <- FALSE stop_if_not(inherits(future, "Future"), !future$lazy) } future })({ 42L stop("Woops") }, envir = , lazy = FALSE, seed = FALSE, globals = TRUE, packages = NULL, stdout = TRUE, conditions = "condition", earlySignal = FALSE, label = NULL, gc = FALSE) [[6]] Future(expr, substitute = FALSE, envir = envir, lazy = TRUE, seed = seed, globals = globals, packages = packages, stdout = stdout, conditions = conditions, earlySignal = earlySignal, label = label, gc = gc, ...) [[7]] eval(quote({ 42L stop("Woops") }), new.env()) [[8]] stop("Woops") [[9]] eval(quote({ 42L stop("Woops") }), new.env()) > stopifnot(is.list(calls)) > > ll <- list() > ll[[1]] <- future({ 42L; stop("Woops") }) [01:27:02.309] getGlobalsAndPackages() ... [01:27:02.309] Searching for globals... [01:27:02.311] - globals found: [2] '{', 'stop' [01:27:02.311] Searching for globals ... DONE [01:27:02.311] Resolving globals: FALSE [01:27:02.312] [01:27:02.312] [01:27:02.312] getGlobalsAndPackages() ... DONE [01:27:02.313] run() for 'Future' ... [01:27:02.313] - state: 'created' [01:27:02.313] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:02.314] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:02.314] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:02.315] - Field: 'label' [01:27:02.315] - Field: 'local' [01:27:02.315] - Field: 'owner' [01:27:02.315] - Field: 'envir' [01:27:02.316] - Field: 'packages' [01:27:02.316] - Field: 'gc' [01:27:02.316] - Field: 'conditions' [01:27:02.317] - Field: 'expr' [01:27:02.317] - Field: 'uuid' [01:27:02.317] - Field: 'seed' [01:27:02.317] - Field: 'version' [01:27:02.318] - Field: 'result' [01:27:02.318] - Field: 'asynchronous' [01:27:02.318] - Field: 'calls' [01:27:02.319] - Field: 'globals' [01:27:02.319] - Field: 'stdout' [01:27:02.319] - Field: 'earlySignal' [01:27:02.319] - Field: 'lazy' [01:27:02.320] - Field: 'state' [01:27:02.320] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:02.320] - Launch lazy future ... [01:27:02.321] Packages needed by the future expression (n = 0): [01:27:02.321] Packages needed by future strategies (n = 0): [01:27:02.322] { [01:27:02.322] { [01:27:02.322] { [01:27:02.322] ...future.startTime <- base::Sys.time() [01:27:02.322] { [01:27:02.322] { [01:27:02.322] { [01:27:02.322] base::local({ [01:27:02.322] has_future <- base::requireNamespace("future", [01:27:02.322] quietly = TRUE) [01:27:02.322] if (has_future) { [01:27:02.322] ns <- base::getNamespace("future") [01:27:02.322] version <- ns[[".package"]][["version"]] [01:27:02.322] if (is.null(version)) [01:27:02.322] version <- utils::packageVersion("future") [01:27:02.322] } [01:27:02.322] else { [01:27:02.322] version <- NULL [01:27:02.322] } [01:27:02.322] if (!has_future || version < "1.8.0") { [01:27:02.322] info <- base::c(r_version = base::gsub("R version ", [01:27:02.322] "", base::R.version$version.string), [01:27:02.322] platform = base::sprintf("%s (%s-bit)", [01:27:02.322] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:02.322] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:02.322] "release", "version")], collapse = " "), [01:27:02.322] hostname = base::Sys.info()[["nodename"]]) [01:27:02.322] info <- base::sprintf("%s: %s", base::names(info), [01:27:02.322] info) [01:27:02.322] info <- base::paste(info, collapse = "; ") [01:27:02.322] if (!has_future) { [01:27:02.322] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:02.322] info) [01:27:02.322] } [01:27:02.322] else { [01:27:02.322] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:02.322] info, version) [01:27:02.322] } [01:27:02.322] base::stop(msg) [01:27:02.322] } [01:27:02.322] }) [01:27:02.322] } [01:27:02.322] options(future.plan = NULL) [01:27:02.322] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.322] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:02.322] } [01:27:02.322] ...future.workdir <- getwd() [01:27:02.322] } [01:27:02.322] ...future.oldOptions <- base::as.list(base::.Options) [01:27:02.322] ...future.oldEnvVars <- base::Sys.getenv() [01:27:02.322] } [01:27:02.322] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:02.322] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:02.322] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:02.322] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:02.322] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:02.322] future.stdout.windows.reencode = NULL, width = 80L) [01:27:02.322] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:02.322] base::names(...future.oldOptions)) [01:27:02.322] } [01:27:02.322] if (FALSE) { [01:27:02.322] } [01:27:02.322] else { [01:27:02.322] if (TRUE) { [01:27:02.322] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:02.322] open = "w") [01:27:02.322] } [01:27:02.322] else { [01:27:02.322] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:02.322] windows = "NUL", "/dev/null"), open = "w") [01:27:02.322] } [01:27:02.322] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:02.322] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:02.322] base::sink(type = "output", split = FALSE) [01:27:02.322] base::close(...future.stdout) [01:27:02.322] }, add = TRUE) [01:27:02.322] } [01:27:02.322] ...future.frame <- base::sys.nframe() [01:27:02.322] ...future.conditions <- base::list() [01:27:02.322] ...future.rng <- base::globalenv()$.Random.seed [01:27:02.322] if (FALSE) { [01:27:02.322] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:02.322] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:02.322] } [01:27:02.322] ...future.result <- base::tryCatch({ [01:27:02.322] base::withCallingHandlers({ [01:27:02.322] ...future.value <- base::withVisible(base::local({ [01:27:02.322] 42L [01:27:02.322] stop("Woops") [01:27:02.322] })) [01:27:02.322] future::FutureResult(value = ...future.value$value, [01:27:02.322] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.322] ...future.rng), globalenv = if (FALSE) [01:27:02.322] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:02.322] ...future.globalenv.names)) [01:27:02.322] else NULL, started = ...future.startTime, version = "1.8") [01:27:02.322] }, condition = base::local({ [01:27:02.322] c <- base::c [01:27:02.322] inherits <- base::inherits [01:27:02.322] invokeRestart <- base::invokeRestart [01:27:02.322] length <- base::length [01:27:02.322] list <- base::list [01:27:02.322] seq.int <- base::seq.int [01:27:02.322] signalCondition <- base::signalCondition [01:27:02.322] sys.calls <- base::sys.calls [01:27:02.322] `[[` <- base::`[[` [01:27:02.322] `+` <- base::`+` [01:27:02.322] `<<-` <- base::`<<-` [01:27:02.322] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:02.322] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:02.322] 3L)] [01:27:02.322] } [01:27:02.322] function(cond) { [01:27:02.322] is_error <- inherits(cond, "error") [01:27:02.322] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:02.322] NULL) [01:27:02.322] if (is_error) { [01:27:02.322] sessionInformation <- function() { [01:27:02.322] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:02.322] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:02.322] search = base::search(), system = base::Sys.info()) [01:27:02.322] } [01:27:02.322] ...future.conditions[[length(...future.conditions) + [01:27:02.322] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:02.322] cond$call), session = sessionInformation(), [01:27:02.322] timestamp = base::Sys.time(), signaled = 0L) [01:27:02.322] signalCondition(cond) [01:27:02.322] } [01:27:02.322] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:02.322] "immediateCondition"))) { [01:27:02.322] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:02.322] ...future.conditions[[length(...future.conditions) + [01:27:02.322] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:02.322] if (TRUE && !signal) { [01:27:02.322] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.322] { [01:27:02.322] inherits <- base::inherits [01:27:02.322] invokeRestart <- base::invokeRestart [01:27:02.322] is.null <- base::is.null [01:27:02.322] muffled <- FALSE [01:27:02.322] if (inherits(cond, "message")) { [01:27:02.322] muffled <- grepl(pattern, "muffleMessage") [01:27:02.322] if (muffled) [01:27:02.322] invokeRestart("muffleMessage") [01:27:02.322] } [01:27:02.322] else if (inherits(cond, "warning")) { [01:27:02.322] muffled <- grepl(pattern, "muffleWarning") [01:27:02.322] if (muffled) [01:27:02.322] invokeRestart("muffleWarning") [01:27:02.322] } [01:27:02.322] else if (inherits(cond, "condition")) { [01:27:02.322] if (!is.null(pattern)) { [01:27:02.322] computeRestarts <- base::computeRestarts [01:27:02.322] grepl <- base::grepl [01:27:02.322] restarts <- computeRestarts(cond) [01:27:02.322] for (restart in restarts) { [01:27:02.322] name <- restart$name [01:27:02.322] if (is.null(name)) [01:27:02.322] next [01:27:02.322] if (!grepl(pattern, name)) [01:27:02.322] next [01:27:02.322] invokeRestart(restart) [01:27:02.322] muffled <- TRUE [01:27:02.322] break [01:27:02.322] } [01:27:02.322] } [01:27:02.322] } [01:27:02.322] invisible(muffled) [01:27:02.322] } [01:27:02.322] muffleCondition(cond, pattern = "^muffle") [01:27:02.322] } [01:27:02.322] } [01:27:02.322] else { [01:27:02.322] if (TRUE) { [01:27:02.322] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.322] { [01:27:02.322] inherits <- base::inherits [01:27:02.322] invokeRestart <- base::invokeRestart [01:27:02.322] is.null <- base::is.null [01:27:02.322] muffled <- FALSE [01:27:02.322] if (inherits(cond, "message")) { [01:27:02.322] muffled <- grepl(pattern, "muffleMessage") [01:27:02.322] if (muffled) [01:27:02.322] invokeRestart("muffleMessage") [01:27:02.322] } [01:27:02.322] else if (inherits(cond, "warning")) { [01:27:02.322] muffled <- grepl(pattern, "muffleWarning") [01:27:02.322] if (muffled) [01:27:02.322] invokeRestart("muffleWarning") [01:27:02.322] } [01:27:02.322] else if (inherits(cond, "condition")) { [01:27:02.322] if (!is.null(pattern)) { [01:27:02.322] computeRestarts <- base::computeRestarts [01:27:02.322] grepl <- base::grepl [01:27:02.322] restarts <- computeRestarts(cond) [01:27:02.322] for (restart in restarts) { [01:27:02.322] name <- restart$name [01:27:02.322] if (is.null(name)) [01:27:02.322] next [01:27:02.322] if (!grepl(pattern, name)) [01:27:02.322] next [01:27:02.322] invokeRestart(restart) [01:27:02.322] muffled <- TRUE [01:27:02.322] break [01:27:02.322] } [01:27:02.322] } [01:27:02.322] } [01:27:02.322] invisible(muffled) [01:27:02.322] } [01:27:02.322] muffleCondition(cond, pattern = "^muffle") [01:27:02.322] } [01:27:02.322] } [01:27:02.322] } [01:27:02.322] })) [01:27:02.322] }, error = function(ex) { [01:27:02.322] base::structure(base::list(value = NULL, visible = NULL, [01:27:02.322] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.322] ...future.rng), started = ...future.startTime, [01:27:02.322] finished = Sys.time(), session_uuid = NA_character_, [01:27:02.322] version = "1.8"), class = "FutureResult") [01:27:02.322] }, finally = { [01:27:02.322] if (!identical(...future.workdir, getwd())) [01:27:02.322] setwd(...future.workdir) [01:27:02.322] { [01:27:02.322] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:02.322] ...future.oldOptions$nwarnings <- NULL [01:27:02.322] } [01:27:02.322] base::options(...future.oldOptions) [01:27:02.322] if (.Platform$OS.type == "windows") { [01:27:02.322] old_names <- names(...future.oldEnvVars) [01:27:02.322] envs <- base::Sys.getenv() [01:27:02.322] names <- names(envs) [01:27:02.322] common <- intersect(names, old_names) [01:27:02.322] added <- setdiff(names, old_names) [01:27:02.322] removed <- setdiff(old_names, names) [01:27:02.322] changed <- common[...future.oldEnvVars[common] != [01:27:02.322] envs[common]] [01:27:02.322] NAMES <- toupper(changed) [01:27:02.322] args <- list() [01:27:02.322] for (kk in seq_along(NAMES)) { [01:27:02.322] name <- changed[[kk]] [01:27:02.322] NAME <- NAMES[[kk]] [01:27:02.322] if (name != NAME && is.element(NAME, old_names)) [01:27:02.322] next [01:27:02.322] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.322] } [01:27:02.322] NAMES <- toupper(added) [01:27:02.322] for (kk in seq_along(NAMES)) { [01:27:02.322] name <- added[[kk]] [01:27:02.322] NAME <- NAMES[[kk]] [01:27:02.322] if (name != NAME && is.element(NAME, old_names)) [01:27:02.322] next [01:27:02.322] args[[name]] <- "" [01:27:02.322] } [01:27:02.322] NAMES <- toupper(removed) [01:27:02.322] for (kk in seq_along(NAMES)) { [01:27:02.322] name <- removed[[kk]] [01:27:02.322] NAME <- NAMES[[kk]] [01:27:02.322] if (name != NAME && is.element(NAME, old_names)) [01:27:02.322] next [01:27:02.322] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.322] } [01:27:02.322] if (length(args) > 0) [01:27:02.322] base::do.call(base::Sys.setenv, args = args) [01:27:02.322] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:02.322] } [01:27:02.322] else { [01:27:02.322] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:02.322] } [01:27:02.322] { [01:27:02.322] if (base::length(...future.futureOptionsAdded) > [01:27:02.322] 0L) { [01:27:02.322] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:02.322] base::names(opts) <- ...future.futureOptionsAdded [01:27:02.322] base::options(opts) [01:27:02.322] } [01:27:02.322] { [01:27:02.322] { [01:27:02.322] NULL [01:27:02.322] RNGkind("Mersenne-Twister") [01:27:02.322] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:02.322] inherits = FALSE) [01:27:02.322] } [01:27:02.322] options(future.plan = NULL) [01:27:02.322] if (is.na(NA_character_)) [01:27:02.322] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.322] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:02.322] future::plan(list(function (..., envir = parent.frame()) [01:27:02.322] { [01:27:02.322] future <- SequentialFuture(..., envir = envir) [01:27:02.322] if (!future$lazy) [01:27:02.322] future <- run(future) [01:27:02.322] invisible(future) [01:27:02.322] }), .cleanup = FALSE, .init = FALSE) [01:27:02.322] } [01:27:02.322] } [01:27:02.322] } [01:27:02.322] }) [01:27:02.322] if (TRUE) { [01:27:02.322] base::sink(type = "output", split = FALSE) [01:27:02.322] if (TRUE) { [01:27:02.322] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:02.322] } [01:27:02.322] else { [01:27:02.322] ...future.result["stdout"] <- base::list(NULL) [01:27:02.322] } [01:27:02.322] base::close(...future.stdout) [01:27:02.322] ...future.stdout <- NULL [01:27:02.322] } [01:27:02.322] ...future.result$conditions <- ...future.conditions [01:27:02.322] ...future.result$finished <- base::Sys.time() [01:27:02.322] ...future.result [01:27:02.322] } [01:27:02.328] plan(): Setting new future strategy stack: [01:27:02.328] List of future strategies: [01:27:02.328] 1. sequential: [01:27:02.328] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.328] - tweaked: FALSE [01:27:02.328] - call: NULL [01:27:02.329] plan(): nbrOfWorkers() = 1 [01:27:02.331] plan(): Setting new future strategy stack: [01:27:02.332] List of future strategies: [01:27:02.332] 1. sequential: [01:27:02.332] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.332] - tweaked: FALSE [01:27:02.332] - call: future::plan("sequential") [01:27:02.333] plan(): nbrOfWorkers() = 1 [01:27:02.333] SequentialFuture started (and completed) [01:27:02.333] signalConditions() ... [01:27:02.333] - include = 'immediateCondition' [01:27:02.334] - exclude = [01:27:02.334] - resignal = FALSE [01:27:02.334] - Number of conditions: 1 [01:27:02.335] signalConditions() ... done [01:27:02.335] - Launch lazy future ... done [01:27:02.335] run() for 'SequentialFuture' ... done > ll[[2]] <- future({ 42L; stop("Woops") }) [01:27:02.336] getGlobalsAndPackages() ... [01:27:02.336] Searching for globals... [01:27:02.337] - globals found: [2] '{', 'stop' [01:27:02.338] Searching for globals ... DONE [01:27:02.338] Resolving globals: FALSE [01:27:02.339] [01:27:02.339] [01:27:02.339] getGlobalsAndPackages() ... DONE [01:27:02.340] run() for 'Future' ... [01:27:02.340] - state: 'created' [01:27:02.340] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:02.341] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:02.341] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:02.342] - Field: 'label' [01:27:02.342] - Field: 'local' [01:27:02.342] - Field: 'owner' [01:27:02.342] - Field: 'envir' [01:27:02.343] - Field: 'packages' [01:27:02.343] - Field: 'gc' [01:27:02.343] - Field: 'conditions' [01:27:02.344] - Field: 'expr' [01:27:02.344] - Field: 'uuid' [01:27:02.344] - Field: 'seed' [01:27:02.344] - Field: 'version' [01:27:02.345] - Field: 'result' [01:27:02.345] - Field: 'asynchronous' [01:27:02.345] - Field: 'calls' [01:27:02.345] - Field: 'globals' [01:27:02.346] - Field: 'stdout' [01:27:02.346] - Field: 'earlySignal' [01:27:02.346] - Field: 'lazy' [01:27:02.347] - Field: 'state' [01:27:02.347] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:02.347] - Launch lazy future ... [01:27:02.348] Packages needed by the future expression (n = 0): [01:27:02.348] Packages needed by future strategies (n = 0): [01:27:02.349] { [01:27:02.349] { [01:27:02.349] { [01:27:02.349] ...future.startTime <- base::Sys.time() [01:27:02.349] { [01:27:02.349] { [01:27:02.349] { [01:27:02.349] base::local({ [01:27:02.349] has_future <- base::requireNamespace("future", [01:27:02.349] quietly = TRUE) [01:27:02.349] if (has_future) { [01:27:02.349] ns <- base::getNamespace("future") [01:27:02.349] version <- ns[[".package"]][["version"]] [01:27:02.349] if (is.null(version)) [01:27:02.349] version <- utils::packageVersion("future") [01:27:02.349] } [01:27:02.349] else { [01:27:02.349] version <- NULL [01:27:02.349] } [01:27:02.349] if (!has_future || version < "1.8.0") { [01:27:02.349] info <- base::c(r_version = base::gsub("R version ", [01:27:02.349] "", base::R.version$version.string), [01:27:02.349] platform = base::sprintf("%s (%s-bit)", [01:27:02.349] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:02.349] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:02.349] "release", "version")], collapse = " "), [01:27:02.349] hostname = base::Sys.info()[["nodename"]]) [01:27:02.349] info <- base::sprintf("%s: %s", base::names(info), [01:27:02.349] info) [01:27:02.349] info <- base::paste(info, collapse = "; ") [01:27:02.349] if (!has_future) { [01:27:02.349] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:02.349] info) [01:27:02.349] } [01:27:02.349] else { [01:27:02.349] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:02.349] info, version) [01:27:02.349] } [01:27:02.349] base::stop(msg) [01:27:02.349] } [01:27:02.349] }) [01:27:02.349] } [01:27:02.349] options(future.plan = NULL) [01:27:02.349] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.349] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:02.349] } [01:27:02.349] ...future.workdir <- getwd() [01:27:02.349] } [01:27:02.349] ...future.oldOptions <- base::as.list(base::.Options) [01:27:02.349] ...future.oldEnvVars <- base::Sys.getenv() [01:27:02.349] } [01:27:02.349] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:02.349] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:02.349] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:02.349] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:02.349] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:02.349] future.stdout.windows.reencode = NULL, width = 80L) [01:27:02.349] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:02.349] base::names(...future.oldOptions)) [01:27:02.349] } [01:27:02.349] if (FALSE) { [01:27:02.349] } [01:27:02.349] else { [01:27:02.349] if (TRUE) { [01:27:02.349] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:02.349] open = "w") [01:27:02.349] } [01:27:02.349] else { [01:27:02.349] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:02.349] windows = "NUL", "/dev/null"), open = "w") [01:27:02.349] } [01:27:02.349] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:02.349] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:02.349] base::sink(type = "output", split = FALSE) [01:27:02.349] base::close(...future.stdout) [01:27:02.349] }, add = TRUE) [01:27:02.349] } [01:27:02.349] ...future.frame <- base::sys.nframe() [01:27:02.349] ...future.conditions <- base::list() [01:27:02.349] ...future.rng <- base::globalenv()$.Random.seed [01:27:02.349] if (FALSE) { [01:27:02.349] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:02.349] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:02.349] } [01:27:02.349] ...future.result <- base::tryCatch({ [01:27:02.349] base::withCallingHandlers({ [01:27:02.349] ...future.value <- base::withVisible(base::local({ [01:27:02.349] 42L [01:27:02.349] stop("Woops") [01:27:02.349] })) [01:27:02.349] future::FutureResult(value = ...future.value$value, [01:27:02.349] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.349] ...future.rng), globalenv = if (FALSE) [01:27:02.349] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:02.349] ...future.globalenv.names)) [01:27:02.349] else NULL, started = ...future.startTime, version = "1.8") [01:27:02.349] }, condition = base::local({ [01:27:02.349] c <- base::c [01:27:02.349] inherits <- base::inherits [01:27:02.349] invokeRestart <- base::invokeRestart [01:27:02.349] length <- base::length [01:27:02.349] list <- base::list [01:27:02.349] seq.int <- base::seq.int [01:27:02.349] signalCondition <- base::signalCondition [01:27:02.349] sys.calls <- base::sys.calls [01:27:02.349] `[[` <- base::`[[` [01:27:02.349] `+` <- base::`+` [01:27:02.349] `<<-` <- base::`<<-` [01:27:02.349] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:02.349] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:02.349] 3L)] [01:27:02.349] } [01:27:02.349] function(cond) { [01:27:02.349] is_error <- inherits(cond, "error") [01:27:02.349] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:02.349] NULL) [01:27:02.349] if (is_error) { [01:27:02.349] sessionInformation <- function() { [01:27:02.349] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:02.349] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:02.349] search = base::search(), system = base::Sys.info()) [01:27:02.349] } [01:27:02.349] ...future.conditions[[length(...future.conditions) + [01:27:02.349] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:02.349] cond$call), session = sessionInformation(), [01:27:02.349] timestamp = base::Sys.time(), signaled = 0L) [01:27:02.349] signalCondition(cond) [01:27:02.349] } [01:27:02.349] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:02.349] "immediateCondition"))) { [01:27:02.349] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:02.349] ...future.conditions[[length(...future.conditions) + [01:27:02.349] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:02.349] if (TRUE && !signal) { [01:27:02.349] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.349] { [01:27:02.349] inherits <- base::inherits [01:27:02.349] invokeRestart <- base::invokeRestart [01:27:02.349] is.null <- base::is.null [01:27:02.349] muffled <- FALSE [01:27:02.349] if (inherits(cond, "message")) { [01:27:02.349] muffled <- grepl(pattern, "muffleMessage") [01:27:02.349] if (muffled) [01:27:02.349] invokeRestart("muffleMessage") [01:27:02.349] } [01:27:02.349] else if (inherits(cond, "warning")) { [01:27:02.349] muffled <- grepl(pattern, "muffleWarning") [01:27:02.349] if (muffled) [01:27:02.349] invokeRestart("muffleWarning") [01:27:02.349] } [01:27:02.349] else if (inherits(cond, "condition")) { [01:27:02.349] if (!is.null(pattern)) { [01:27:02.349] computeRestarts <- base::computeRestarts [01:27:02.349] grepl <- base::grepl [01:27:02.349] restarts <- computeRestarts(cond) [01:27:02.349] for (restart in restarts) { [01:27:02.349] name <- restart$name [01:27:02.349] if (is.null(name)) [01:27:02.349] next [01:27:02.349] if (!grepl(pattern, name)) [01:27:02.349] next [01:27:02.349] invokeRestart(restart) [01:27:02.349] muffled <- TRUE [01:27:02.349] break [01:27:02.349] } [01:27:02.349] } [01:27:02.349] } [01:27:02.349] invisible(muffled) [01:27:02.349] } [01:27:02.349] muffleCondition(cond, pattern = "^muffle") [01:27:02.349] } [01:27:02.349] } [01:27:02.349] else { [01:27:02.349] if (TRUE) { [01:27:02.349] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.349] { [01:27:02.349] inherits <- base::inherits [01:27:02.349] invokeRestart <- base::invokeRestart [01:27:02.349] is.null <- base::is.null [01:27:02.349] muffled <- FALSE [01:27:02.349] if (inherits(cond, "message")) { [01:27:02.349] muffled <- grepl(pattern, "muffleMessage") [01:27:02.349] if (muffled) [01:27:02.349] invokeRestart("muffleMessage") [01:27:02.349] } [01:27:02.349] else if (inherits(cond, "warning")) { [01:27:02.349] muffled <- grepl(pattern, "muffleWarning") [01:27:02.349] if (muffled) [01:27:02.349] invokeRestart("muffleWarning") [01:27:02.349] } [01:27:02.349] else if (inherits(cond, "condition")) { [01:27:02.349] if (!is.null(pattern)) { [01:27:02.349] computeRestarts <- base::computeRestarts [01:27:02.349] grepl <- base::grepl [01:27:02.349] restarts <- computeRestarts(cond) [01:27:02.349] for (restart in restarts) { [01:27:02.349] name <- restart$name [01:27:02.349] if (is.null(name)) [01:27:02.349] next [01:27:02.349] if (!grepl(pattern, name)) [01:27:02.349] next [01:27:02.349] invokeRestart(restart) [01:27:02.349] muffled <- TRUE [01:27:02.349] break [01:27:02.349] } [01:27:02.349] } [01:27:02.349] } [01:27:02.349] invisible(muffled) [01:27:02.349] } [01:27:02.349] muffleCondition(cond, pattern = "^muffle") [01:27:02.349] } [01:27:02.349] } [01:27:02.349] } [01:27:02.349] })) [01:27:02.349] }, error = function(ex) { [01:27:02.349] base::structure(base::list(value = NULL, visible = NULL, [01:27:02.349] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.349] ...future.rng), started = ...future.startTime, [01:27:02.349] finished = Sys.time(), session_uuid = NA_character_, [01:27:02.349] version = "1.8"), class = "FutureResult") [01:27:02.349] }, finally = { [01:27:02.349] if (!identical(...future.workdir, getwd())) [01:27:02.349] setwd(...future.workdir) [01:27:02.349] { [01:27:02.349] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:02.349] ...future.oldOptions$nwarnings <- NULL [01:27:02.349] } [01:27:02.349] base::options(...future.oldOptions) [01:27:02.349] if (.Platform$OS.type == "windows") { [01:27:02.349] old_names <- names(...future.oldEnvVars) [01:27:02.349] envs <- base::Sys.getenv() [01:27:02.349] names <- names(envs) [01:27:02.349] common <- intersect(names, old_names) [01:27:02.349] added <- setdiff(names, old_names) [01:27:02.349] removed <- setdiff(old_names, names) [01:27:02.349] changed <- common[...future.oldEnvVars[common] != [01:27:02.349] envs[common]] [01:27:02.349] NAMES <- toupper(changed) [01:27:02.349] args <- list() [01:27:02.349] for (kk in seq_along(NAMES)) { [01:27:02.349] name <- changed[[kk]] [01:27:02.349] NAME <- NAMES[[kk]] [01:27:02.349] if (name != NAME && is.element(NAME, old_names)) [01:27:02.349] next [01:27:02.349] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.349] } [01:27:02.349] NAMES <- toupper(added) [01:27:02.349] for (kk in seq_along(NAMES)) { [01:27:02.349] name <- added[[kk]] [01:27:02.349] NAME <- NAMES[[kk]] [01:27:02.349] if (name != NAME && is.element(NAME, old_names)) [01:27:02.349] next [01:27:02.349] args[[name]] <- "" [01:27:02.349] } [01:27:02.349] NAMES <- toupper(removed) [01:27:02.349] for (kk in seq_along(NAMES)) { [01:27:02.349] name <- removed[[kk]] [01:27:02.349] NAME <- NAMES[[kk]] [01:27:02.349] if (name != NAME && is.element(NAME, old_names)) [01:27:02.349] next [01:27:02.349] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.349] } [01:27:02.349] if (length(args) > 0) [01:27:02.349] base::do.call(base::Sys.setenv, args = args) [01:27:02.349] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:02.349] } [01:27:02.349] else { [01:27:02.349] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:02.349] } [01:27:02.349] { [01:27:02.349] if (base::length(...future.futureOptionsAdded) > [01:27:02.349] 0L) { [01:27:02.349] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:02.349] base::names(opts) <- ...future.futureOptionsAdded [01:27:02.349] base::options(opts) [01:27:02.349] } [01:27:02.349] { [01:27:02.349] { [01:27:02.349] NULL [01:27:02.349] RNGkind("Mersenne-Twister") [01:27:02.349] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:02.349] inherits = FALSE) [01:27:02.349] } [01:27:02.349] options(future.plan = NULL) [01:27:02.349] if (is.na(NA_character_)) [01:27:02.349] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.349] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:02.349] future::plan(list(function (..., envir = parent.frame()) [01:27:02.349] { [01:27:02.349] future <- SequentialFuture(..., envir = envir) [01:27:02.349] if (!future$lazy) [01:27:02.349] future <- run(future) [01:27:02.349] invisible(future) [01:27:02.349] }), .cleanup = FALSE, .init = FALSE) [01:27:02.349] } [01:27:02.349] } [01:27:02.349] } [01:27:02.349] }) [01:27:02.349] if (TRUE) { [01:27:02.349] base::sink(type = "output", split = FALSE) [01:27:02.349] if (TRUE) { [01:27:02.349] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:02.349] } [01:27:02.349] else { [01:27:02.349] ...future.result["stdout"] <- base::list(NULL) [01:27:02.349] } [01:27:02.349] base::close(...future.stdout) [01:27:02.349] ...future.stdout <- NULL [01:27:02.349] } [01:27:02.349] ...future.result$conditions <- ...future.conditions [01:27:02.349] ...future.result$finished <- base::Sys.time() [01:27:02.349] ...future.result [01:27:02.349] } [01:27:02.355] plan(): Setting new future strategy stack: [01:27:02.355] List of future strategies: [01:27:02.355] 1. sequential: [01:27:02.355] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.355] - tweaked: FALSE [01:27:02.355] - call: NULL [01:27:02.356] plan(): nbrOfWorkers() = 1 [01:27:02.358] plan(): Setting new future strategy stack: [01:27:02.359] List of future strategies: [01:27:02.359] 1. sequential: [01:27:02.359] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.359] - tweaked: FALSE [01:27:02.359] - call: future::plan("sequential") [01:27:02.360] plan(): nbrOfWorkers() = 1 [01:27:02.360] SequentialFuture started (and completed) [01:27:02.360] signalConditions() ... [01:27:02.360] - include = 'immediateCondition' [01:27:02.361] - exclude = [01:27:02.361] - resignal = FALSE [01:27:02.361] - Number of conditions: 1 [01:27:02.362] signalConditions() ... done [01:27:02.362] - Launch lazy future ... done [01:27:02.362] run() for 'SequentialFuture' ... done > vs <- value(ll, signal = FALSE) [01:27:02.363] resolve() on list ... [01:27:02.363] recursive: 0 [01:27:02.364] length: 2 [01:27:02.364] [01:27:02.365] resolved() for 'SequentialFuture' ... [01:27:02.365] - state: 'finished' [01:27:02.365] - run: TRUE [01:27:02.365] - result: 'FutureResult' [01:27:02.366] resolved() for 'SequentialFuture' ... done [01:27:02.366] Future #1 [01:27:02.366] signalConditions() ... [01:27:02.367] - include = 'immediateCondition' [01:27:02.367] - exclude = [01:27:02.367] - resignal = FALSE [01:27:02.367] - Number of conditions: 1 [01:27:02.368] signalConditions() ... done [01:27:02.368] signalConditionsASAP(SequentialFuture, pos=1) ... [01:27:02.368] - nx: 2 [01:27:02.369] - relay: TRUE [01:27:02.369] - stdout: TRUE [01:27:02.372] - signal: FALSE [01:27:02.372] - resignal: FALSE [01:27:02.372] - force: TRUE [01:27:02.373] - relayed: [n=2] FALSE, FALSE [01:27:02.373] - queued futures: [n=2] FALSE, FALSE [01:27:02.373] - until=1 [01:27:02.373] - relaying element #1 [01:27:02.374] signalConditions() ... [01:27:02.374] - include = 'immediateCondition' [01:27:02.374] - exclude = [01:27:02.375] - resignal = FALSE [01:27:02.375] - Number of conditions: 1 [01:27:02.375] signalConditions() ... done [01:27:02.375] - relayed: [n=2] TRUE, FALSE [01:27:02.376] - queued futures: [n=2] TRUE, FALSE [01:27:02.376] signalConditionsASAP(SequentialFuture, pos=1) ... done [01:27:02.376] length: 1 (resolved future 1) [01:27:02.377] resolved() for 'SequentialFuture' ... [01:27:02.377] - state: 'finished' [01:27:02.377] - run: TRUE [01:27:02.378] - result: 'FutureResult' [01:27:02.378] resolved() for 'SequentialFuture' ... done [01:27:02.378] Future #2 [01:27:02.379] signalConditions() ... [01:27:02.379] - include = 'immediateCondition' [01:27:02.379] - exclude = [01:27:02.379] - resignal = FALSE [01:27:02.380] - Number of conditions: 1 [01:27:02.380] signalConditions() ... done [01:27:02.380] signalConditionsASAP(SequentialFuture, pos=2) ... [01:27:02.381] - nx: 2 [01:27:02.381] - relay: TRUE [01:27:02.381] - stdout: TRUE [01:27:02.381] - signal: FALSE [01:27:02.381] - resignal: FALSE [01:27:02.382] - force: TRUE [01:27:02.382] - relayed: [n=2] TRUE, FALSE [01:27:02.382] - queued futures: [n=2] TRUE, FALSE [01:27:02.382] - until=2 [01:27:02.383] - relaying element #2 [01:27:02.383] signalConditions() ... [01:27:02.383] - include = 'immediateCondition' [01:27:02.384] - exclude = [01:27:02.384] - resignal = FALSE [01:27:02.384] - Number of conditions: 1 [01:27:02.384] signalConditions() ... done [01:27:02.385] - relayed: [n=2] TRUE, TRUE [01:27:02.385] - queued futures: [n=2] TRUE, TRUE [01:27:02.385] signalConditionsASAP(SequentialFuture, pos=2) ... done [01:27:02.385] length: 0 (resolved future 2) [01:27:02.386] Relaying remaining futures [01:27:02.386] signalConditionsASAP(NULL, pos=0) ... [01:27:02.386] - nx: 2 [01:27:02.386] - relay: TRUE [01:27:02.387] - stdout: TRUE [01:27:02.387] - signal: FALSE [01:27:02.387] - resignal: FALSE [01:27:02.387] - force: TRUE [01:27:02.388] - relayed: [n=2] TRUE, TRUE [01:27:02.388] - queued futures: [n=2] TRUE, TRUE - flush all [01:27:02.388] - relayed: [n=2] TRUE, TRUE [01:27:02.389] - queued futures: [n=2] TRUE, TRUE [01:27:02.389] signalConditionsASAP(NULL, pos=0) ... done [01:27:02.389] resolve() on list ... DONE [01:27:02.389] signalConditions() ... [01:27:02.390] - include = 'immediateCondition' [01:27:02.390] - exclude = [01:27:02.390] - resignal = FALSE [01:27:02.390] - Number of conditions: 1 [01:27:02.391] signalConditions() ... done [01:27:02.391] signalConditions() ... [01:27:02.391] - include = 'immediateCondition' [01:27:02.392] - exclude = [01:27:02.392] - resignal = FALSE [01:27:02.392] - Number of conditions: 1 [01:27:02.392] signalConditions() ... done > calls <- backtrace(ll[[2]]) [01:27:02.393] resolved() for 'SequentialFuture' ... [01:27:02.394] - state: 'finished' [01:27:02.394] - run: TRUE [01:27:02.394] - result: 'FutureResult' [01:27:02.394] resolved() for 'SequentialFuture' ... done > print(calls) [[1]] future({ 42L stop("Woops") }) [[2]] Future(expr, substitute = FALSE, envir = envir, lazy = TRUE, seed = seed, globals = globals, packages = packages, stdout = stdout, conditions = conditions, earlySignal = earlySignal, label = label, gc = gc, ...) [[3]] eval(quote({ 42L stop("Woops") }), new.env()) [[4]] stop("Woops") [[5]] eval(quote({ 42L stop("Woops") }), new.env()) > stopifnot(is.list(calls)) > > message("*** backtrace( ) - subsetting ... DONE") *** backtrace( ) - subsetting ... DONE > > > message("*** backtrace( ) - exceptions ...") *** backtrace( ) - exceptions ... > > message("- No condition ...") - No condition ... > f <- future(42L) [01:27:02.396] getGlobalsAndPackages() ... [01:27:02.396] Searching for globals... [01:27:02.397] [01:27:02.397] Searching for globals ... DONE [01:27:02.397] - globals: [0] [01:27:02.397] getGlobalsAndPackages() ... DONE [01:27:02.398] run() for 'Future' ... [01:27:02.398] - state: 'created' [01:27:02.398] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:02.399] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:02.399] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:02.400] - Field: 'label' [01:27:02.400] - Field: 'local' [01:27:02.400] - Field: 'owner' [01:27:02.400] - Field: 'envir' [01:27:02.401] - Field: 'packages' [01:27:02.401] - Field: 'gc' [01:27:02.401] - Field: 'conditions' [01:27:02.402] - Field: 'expr' [01:27:02.402] - Field: 'uuid' [01:27:02.402] - Field: 'seed' [01:27:02.402] - Field: 'version' [01:27:02.403] - Field: 'result' [01:27:02.403] - Field: 'asynchronous' [01:27:02.403] - Field: 'calls' [01:27:02.404] - Field: 'globals' [01:27:02.404] - Field: 'stdout' [01:27:02.404] - Field: 'earlySignal' [01:27:02.404] - Field: 'lazy' [01:27:02.405] - Field: 'state' [01:27:02.405] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:02.405] - Launch lazy future ... [01:27:02.406] Packages needed by the future expression (n = 0): [01:27:02.406] Packages needed by future strategies (n = 0): [01:27:02.407] { [01:27:02.407] { [01:27:02.407] { [01:27:02.407] ...future.startTime <- base::Sys.time() [01:27:02.407] { [01:27:02.407] { [01:27:02.407] { [01:27:02.407] base::local({ [01:27:02.407] has_future <- base::requireNamespace("future", [01:27:02.407] quietly = TRUE) [01:27:02.407] if (has_future) { [01:27:02.407] ns <- base::getNamespace("future") [01:27:02.407] version <- ns[[".package"]][["version"]] [01:27:02.407] if (is.null(version)) [01:27:02.407] version <- utils::packageVersion("future") [01:27:02.407] } [01:27:02.407] else { [01:27:02.407] version <- NULL [01:27:02.407] } [01:27:02.407] if (!has_future || version < "1.8.0") { [01:27:02.407] info <- base::c(r_version = base::gsub("R version ", [01:27:02.407] "", base::R.version$version.string), [01:27:02.407] platform = base::sprintf("%s (%s-bit)", [01:27:02.407] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:02.407] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:02.407] "release", "version")], collapse = " "), [01:27:02.407] hostname = base::Sys.info()[["nodename"]]) [01:27:02.407] info <- base::sprintf("%s: %s", base::names(info), [01:27:02.407] info) [01:27:02.407] info <- base::paste(info, collapse = "; ") [01:27:02.407] if (!has_future) { [01:27:02.407] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:02.407] info) [01:27:02.407] } [01:27:02.407] else { [01:27:02.407] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:02.407] info, version) [01:27:02.407] } [01:27:02.407] base::stop(msg) [01:27:02.407] } [01:27:02.407] }) [01:27:02.407] } [01:27:02.407] options(future.plan = NULL) [01:27:02.407] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.407] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:02.407] } [01:27:02.407] ...future.workdir <- getwd() [01:27:02.407] } [01:27:02.407] ...future.oldOptions <- base::as.list(base::.Options) [01:27:02.407] ...future.oldEnvVars <- base::Sys.getenv() [01:27:02.407] } [01:27:02.407] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:02.407] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:02.407] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:02.407] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:02.407] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:02.407] future.stdout.windows.reencode = NULL, width = 80L) [01:27:02.407] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:02.407] base::names(...future.oldOptions)) [01:27:02.407] } [01:27:02.407] if (FALSE) { [01:27:02.407] } [01:27:02.407] else { [01:27:02.407] if (TRUE) { [01:27:02.407] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:02.407] open = "w") [01:27:02.407] } [01:27:02.407] else { [01:27:02.407] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:02.407] windows = "NUL", "/dev/null"), open = "w") [01:27:02.407] } [01:27:02.407] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:02.407] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:02.407] base::sink(type = "output", split = FALSE) [01:27:02.407] base::close(...future.stdout) [01:27:02.407] }, add = TRUE) [01:27:02.407] } [01:27:02.407] ...future.frame <- base::sys.nframe() [01:27:02.407] ...future.conditions <- base::list() [01:27:02.407] ...future.rng <- base::globalenv()$.Random.seed [01:27:02.407] if (FALSE) { [01:27:02.407] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:02.407] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:02.407] } [01:27:02.407] ...future.result <- base::tryCatch({ [01:27:02.407] base::withCallingHandlers({ [01:27:02.407] ...future.value <- base::withVisible(base::local(42L)) [01:27:02.407] future::FutureResult(value = ...future.value$value, [01:27:02.407] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.407] ...future.rng), globalenv = if (FALSE) [01:27:02.407] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:02.407] ...future.globalenv.names)) [01:27:02.407] else NULL, started = ...future.startTime, version = "1.8") [01:27:02.407] }, condition = base::local({ [01:27:02.407] c <- base::c [01:27:02.407] inherits <- base::inherits [01:27:02.407] invokeRestart <- base::invokeRestart [01:27:02.407] length <- base::length [01:27:02.407] list <- base::list [01:27:02.407] seq.int <- base::seq.int [01:27:02.407] signalCondition <- base::signalCondition [01:27:02.407] sys.calls <- base::sys.calls [01:27:02.407] `[[` <- base::`[[` [01:27:02.407] `+` <- base::`+` [01:27:02.407] `<<-` <- base::`<<-` [01:27:02.407] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:02.407] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:02.407] 3L)] [01:27:02.407] } [01:27:02.407] function(cond) { [01:27:02.407] is_error <- inherits(cond, "error") [01:27:02.407] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:02.407] NULL) [01:27:02.407] if (is_error) { [01:27:02.407] sessionInformation <- function() { [01:27:02.407] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:02.407] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:02.407] search = base::search(), system = base::Sys.info()) [01:27:02.407] } [01:27:02.407] ...future.conditions[[length(...future.conditions) + [01:27:02.407] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:02.407] cond$call), session = sessionInformation(), [01:27:02.407] timestamp = base::Sys.time(), signaled = 0L) [01:27:02.407] signalCondition(cond) [01:27:02.407] } [01:27:02.407] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:02.407] "immediateCondition"))) { [01:27:02.407] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:02.407] ...future.conditions[[length(...future.conditions) + [01:27:02.407] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:02.407] if (TRUE && !signal) { [01:27:02.407] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.407] { [01:27:02.407] inherits <- base::inherits [01:27:02.407] invokeRestart <- base::invokeRestart [01:27:02.407] is.null <- base::is.null [01:27:02.407] muffled <- FALSE [01:27:02.407] if (inherits(cond, "message")) { [01:27:02.407] muffled <- grepl(pattern, "muffleMessage") [01:27:02.407] if (muffled) [01:27:02.407] invokeRestart("muffleMessage") [01:27:02.407] } [01:27:02.407] else if (inherits(cond, "warning")) { [01:27:02.407] muffled <- grepl(pattern, "muffleWarning") [01:27:02.407] if (muffled) [01:27:02.407] invokeRestart("muffleWarning") [01:27:02.407] } [01:27:02.407] else if (inherits(cond, "condition")) { [01:27:02.407] if (!is.null(pattern)) { [01:27:02.407] computeRestarts <- base::computeRestarts [01:27:02.407] grepl <- base::grepl [01:27:02.407] restarts <- computeRestarts(cond) [01:27:02.407] for (restart in restarts) { [01:27:02.407] name <- restart$name [01:27:02.407] if (is.null(name)) [01:27:02.407] next [01:27:02.407] if (!grepl(pattern, name)) [01:27:02.407] next [01:27:02.407] invokeRestart(restart) [01:27:02.407] muffled <- TRUE [01:27:02.407] break [01:27:02.407] } [01:27:02.407] } [01:27:02.407] } [01:27:02.407] invisible(muffled) [01:27:02.407] } [01:27:02.407] muffleCondition(cond, pattern = "^muffle") [01:27:02.407] } [01:27:02.407] } [01:27:02.407] else { [01:27:02.407] if (TRUE) { [01:27:02.407] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.407] { [01:27:02.407] inherits <- base::inherits [01:27:02.407] invokeRestart <- base::invokeRestart [01:27:02.407] is.null <- base::is.null [01:27:02.407] muffled <- FALSE [01:27:02.407] if (inherits(cond, "message")) { [01:27:02.407] muffled <- grepl(pattern, "muffleMessage") [01:27:02.407] if (muffled) [01:27:02.407] invokeRestart("muffleMessage") [01:27:02.407] } [01:27:02.407] else if (inherits(cond, "warning")) { [01:27:02.407] muffled <- grepl(pattern, "muffleWarning") [01:27:02.407] if (muffled) [01:27:02.407] invokeRestart("muffleWarning") [01:27:02.407] } [01:27:02.407] else if (inherits(cond, "condition")) { [01:27:02.407] if (!is.null(pattern)) { [01:27:02.407] computeRestarts <- base::computeRestarts [01:27:02.407] grepl <- base::grepl [01:27:02.407] restarts <- computeRestarts(cond) [01:27:02.407] for (restart in restarts) { [01:27:02.407] name <- restart$name [01:27:02.407] if (is.null(name)) [01:27:02.407] next [01:27:02.407] if (!grepl(pattern, name)) [01:27:02.407] next [01:27:02.407] invokeRestart(restart) [01:27:02.407] muffled <- TRUE [01:27:02.407] break [01:27:02.407] } [01:27:02.407] } [01:27:02.407] } [01:27:02.407] invisible(muffled) [01:27:02.407] } [01:27:02.407] muffleCondition(cond, pattern = "^muffle") [01:27:02.407] } [01:27:02.407] } [01:27:02.407] } [01:27:02.407] })) [01:27:02.407] }, error = function(ex) { [01:27:02.407] base::structure(base::list(value = NULL, visible = NULL, [01:27:02.407] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.407] ...future.rng), started = ...future.startTime, [01:27:02.407] finished = Sys.time(), session_uuid = NA_character_, [01:27:02.407] version = "1.8"), class = "FutureResult") [01:27:02.407] }, finally = { [01:27:02.407] if (!identical(...future.workdir, getwd())) [01:27:02.407] setwd(...future.workdir) [01:27:02.407] { [01:27:02.407] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:02.407] ...future.oldOptions$nwarnings <- NULL [01:27:02.407] } [01:27:02.407] base::options(...future.oldOptions) [01:27:02.407] if (.Platform$OS.type == "windows") { [01:27:02.407] old_names <- names(...future.oldEnvVars) [01:27:02.407] envs <- base::Sys.getenv() [01:27:02.407] names <- names(envs) [01:27:02.407] common <- intersect(names, old_names) [01:27:02.407] added <- setdiff(names, old_names) [01:27:02.407] removed <- setdiff(old_names, names) [01:27:02.407] changed <- common[...future.oldEnvVars[common] != [01:27:02.407] envs[common]] [01:27:02.407] NAMES <- toupper(changed) [01:27:02.407] args <- list() [01:27:02.407] for (kk in seq_along(NAMES)) { [01:27:02.407] name <- changed[[kk]] [01:27:02.407] NAME <- NAMES[[kk]] [01:27:02.407] if (name != NAME && is.element(NAME, old_names)) [01:27:02.407] next [01:27:02.407] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.407] } [01:27:02.407] NAMES <- toupper(added) [01:27:02.407] for (kk in seq_along(NAMES)) { [01:27:02.407] name <- added[[kk]] [01:27:02.407] NAME <- NAMES[[kk]] [01:27:02.407] if (name != NAME && is.element(NAME, old_names)) [01:27:02.407] next [01:27:02.407] args[[name]] <- "" [01:27:02.407] } [01:27:02.407] NAMES <- toupper(removed) [01:27:02.407] for (kk in seq_along(NAMES)) { [01:27:02.407] name <- removed[[kk]] [01:27:02.407] NAME <- NAMES[[kk]] [01:27:02.407] if (name != NAME && is.element(NAME, old_names)) [01:27:02.407] next [01:27:02.407] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.407] } [01:27:02.407] if (length(args) > 0) [01:27:02.407] base::do.call(base::Sys.setenv, args = args) [01:27:02.407] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:02.407] } [01:27:02.407] else { [01:27:02.407] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:02.407] } [01:27:02.407] { [01:27:02.407] if (base::length(...future.futureOptionsAdded) > [01:27:02.407] 0L) { [01:27:02.407] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:02.407] base::names(opts) <- ...future.futureOptionsAdded [01:27:02.407] base::options(opts) [01:27:02.407] } [01:27:02.407] { [01:27:02.407] { [01:27:02.407] NULL [01:27:02.407] RNGkind("Mersenne-Twister") [01:27:02.407] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:02.407] inherits = FALSE) [01:27:02.407] } [01:27:02.407] options(future.plan = NULL) [01:27:02.407] if (is.na(NA_character_)) [01:27:02.407] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.407] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:02.407] future::plan(list(function (..., envir = parent.frame()) [01:27:02.407] { [01:27:02.407] future <- SequentialFuture(..., envir = envir) [01:27:02.407] if (!future$lazy) [01:27:02.407] future <- run(future) [01:27:02.407] invisible(future) [01:27:02.407] }), .cleanup = FALSE, .init = FALSE) [01:27:02.407] } [01:27:02.407] } [01:27:02.407] } [01:27:02.407] }) [01:27:02.407] if (TRUE) { [01:27:02.407] base::sink(type = "output", split = FALSE) [01:27:02.407] if (TRUE) { [01:27:02.407] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:02.407] } [01:27:02.407] else { [01:27:02.407] ...future.result["stdout"] <- base::list(NULL) [01:27:02.407] } [01:27:02.407] base::close(...future.stdout) [01:27:02.407] ...future.stdout <- NULL [01:27:02.407] } [01:27:02.407] ...future.result$conditions <- ...future.conditions [01:27:02.407] ...future.result$finished <- base::Sys.time() [01:27:02.407] ...future.result [01:27:02.407] } [01:27:02.413] plan(): Setting new future strategy stack: [01:27:02.414] List of future strategies: [01:27:02.414] 1. sequential: [01:27:02.414] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.414] - tweaked: FALSE [01:27:02.414] - call: NULL [01:27:02.415] plan(): nbrOfWorkers() = 1 [01:27:02.417] plan(): Setting new future strategy stack: [01:27:02.417] List of future strategies: [01:27:02.417] 1. sequential: [01:27:02.417] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.417] - tweaked: FALSE [01:27:02.417] - call: future::plan("sequential") [01:27:02.418] plan(): nbrOfWorkers() = 1 [01:27:02.419] SequentialFuture started (and completed) [01:27:02.419] - Launch lazy future ... done [01:27:02.419] run() for 'SequentialFuture' ... done > res <- tryCatch(backtrace(f), error = identity) [01:27:02.420] resolved() for 'SequentialFuture' ... [01:27:02.420] - state: 'finished' [01:27:02.420] - run: TRUE [01:27:02.421] - result: 'FutureResult' [01:27:02.421] resolved() for 'SequentialFuture' ... done > print(res) > stopifnot(inherits(res, "error")) > > message("- No call stack ...") - No call stack ... > f <- future({ 42L; stop("Woops") }) [01:27:02.422] getGlobalsAndPackages() ... [01:27:02.422] Searching for globals... [01:27:02.423] - globals found: [2] '{', 'stop' [01:27:02.424] Searching for globals ... DONE [01:27:02.424] Resolving globals: FALSE [01:27:02.425] [01:27:02.425] [01:27:02.425] getGlobalsAndPackages() ... DONE [01:27:02.425] run() for 'Future' ... [01:27:02.426] - state: 'created' [01:27:02.426] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [01:27:02.426] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [01:27:02.427] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [01:27:02.427] - Field: 'label' [01:27:02.427] - Field: 'local' [01:27:02.427] - Field: 'owner' [01:27:02.428] - Field: 'envir' [01:27:02.428] - Field: 'packages' [01:27:02.428] - Field: 'gc' [01:27:02.428] - Field: 'conditions' [01:27:02.428] - Field: 'expr' [01:27:02.429] - Field: 'uuid' [01:27:02.429] - Field: 'seed' [01:27:02.429] - Field: 'version' [01:27:02.429] - Field: 'result' [01:27:02.429] - Field: 'asynchronous' [01:27:02.430] - Field: 'calls' [01:27:02.430] - Field: 'globals' [01:27:02.430] - Field: 'stdout' [01:27:02.430] - Field: 'earlySignal' [01:27:02.431] - Field: 'lazy' [01:27:02.431] - Field: 'state' [01:27:02.431] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [01:27:02.431] - Launch lazy future ... [01:27:02.434] Packages needed by the future expression (n = 0): [01:27:02.434] Packages needed by future strategies (n = 0): [01:27:02.435] { [01:27:02.435] { [01:27:02.435] { [01:27:02.435] ...future.startTime <- base::Sys.time() [01:27:02.435] { [01:27:02.435] { [01:27:02.435] { [01:27:02.435] base::local({ [01:27:02.435] has_future <- base::requireNamespace("future", [01:27:02.435] quietly = TRUE) [01:27:02.435] if (has_future) { [01:27:02.435] ns <- base::getNamespace("future") [01:27:02.435] version <- ns[[".package"]][["version"]] [01:27:02.435] if (is.null(version)) [01:27:02.435] version <- utils::packageVersion("future") [01:27:02.435] } [01:27:02.435] else { [01:27:02.435] version <- NULL [01:27:02.435] } [01:27:02.435] if (!has_future || version < "1.8.0") { [01:27:02.435] info <- base::c(r_version = base::gsub("R version ", [01:27:02.435] "", base::R.version$version.string), [01:27:02.435] platform = base::sprintf("%s (%s-bit)", [01:27:02.435] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:02.435] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:02.435] "release", "version")], collapse = " "), [01:27:02.435] hostname = base::Sys.info()[["nodename"]]) [01:27:02.435] info <- base::sprintf("%s: %s", base::names(info), [01:27:02.435] info) [01:27:02.435] info <- base::paste(info, collapse = "; ") [01:27:02.435] if (!has_future) { [01:27:02.435] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:02.435] info) [01:27:02.435] } [01:27:02.435] else { [01:27:02.435] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:02.435] info, version) [01:27:02.435] } [01:27:02.435] base::stop(msg) [01:27:02.435] } [01:27:02.435] }) [01:27:02.435] } [01:27:02.435] options(future.plan = NULL) [01:27:02.435] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.435] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:02.435] } [01:27:02.435] ...future.workdir <- getwd() [01:27:02.435] } [01:27:02.435] ...future.oldOptions <- base::as.list(base::.Options) [01:27:02.435] ...future.oldEnvVars <- base::Sys.getenv() [01:27:02.435] } [01:27:02.435] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:02.435] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:02.435] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:02.435] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:02.435] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:02.435] future.stdout.windows.reencode = NULL, width = 80L) [01:27:02.435] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:02.435] base::names(...future.oldOptions)) [01:27:02.435] } [01:27:02.435] if (FALSE) { [01:27:02.435] } [01:27:02.435] else { [01:27:02.435] if (TRUE) { [01:27:02.435] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:02.435] open = "w") [01:27:02.435] } [01:27:02.435] else { [01:27:02.435] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:02.435] windows = "NUL", "/dev/null"), open = "w") [01:27:02.435] } [01:27:02.435] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:02.435] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:02.435] base::sink(type = "output", split = FALSE) [01:27:02.435] base::close(...future.stdout) [01:27:02.435] }, add = TRUE) [01:27:02.435] } [01:27:02.435] ...future.frame <- base::sys.nframe() [01:27:02.435] ...future.conditions <- base::list() [01:27:02.435] ...future.rng <- base::globalenv()$.Random.seed [01:27:02.435] if (FALSE) { [01:27:02.435] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:02.435] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:02.435] } [01:27:02.435] ...future.result <- base::tryCatch({ [01:27:02.435] base::withCallingHandlers({ [01:27:02.435] ...future.value <- base::withVisible(base::local({ [01:27:02.435] 42L [01:27:02.435] stop("Woops") [01:27:02.435] })) [01:27:02.435] future::FutureResult(value = ...future.value$value, [01:27:02.435] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.435] ...future.rng), globalenv = if (FALSE) [01:27:02.435] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:02.435] ...future.globalenv.names)) [01:27:02.435] else NULL, started = ...future.startTime, version = "1.8") [01:27:02.435] }, condition = base::local({ [01:27:02.435] c <- base::c [01:27:02.435] inherits <- base::inherits [01:27:02.435] invokeRestart <- base::invokeRestart [01:27:02.435] length <- base::length [01:27:02.435] list <- base::list [01:27:02.435] seq.int <- base::seq.int [01:27:02.435] signalCondition <- base::signalCondition [01:27:02.435] sys.calls <- base::sys.calls [01:27:02.435] `[[` <- base::`[[` [01:27:02.435] `+` <- base::`+` [01:27:02.435] `<<-` <- base::`<<-` [01:27:02.435] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:02.435] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:02.435] 3L)] [01:27:02.435] } [01:27:02.435] function(cond) { [01:27:02.435] is_error <- inherits(cond, "error") [01:27:02.435] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:02.435] NULL) [01:27:02.435] if (is_error) { [01:27:02.435] sessionInformation <- function() { [01:27:02.435] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:02.435] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:02.435] search = base::search(), system = base::Sys.info()) [01:27:02.435] } [01:27:02.435] ...future.conditions[[length(...future.conditions) + [01:27:02.435] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:02.435] cond$call), session = sessionInformation(), [01:27:02.435] timestamp = base::Sys.time(), signaled = 0L) [01:27:02.435] signalCondition(cond) [01:27:02.435] } [01:27:02.435] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:02.435] "immediateCondition"))) { [01:27:02.435] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:02.435] ...future.conditions[[length(...future.conditions) + [01:27:02.435] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:02.435] if (TRUE && !signal) { [01:27:02.435] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.435] { [01:27:02.435] inherits <- base::inherits [01:27:02.435] invokeRestart <- base::invokeRestart [01:27:02.435] is.null <- base::is.null [01:27:02.435] muffled <- FALSE [01:27:02.435] if (inherits(cond, "message")) { [01:27:02.435] muffled <- grepl(pattern, "muffleMessage") [01:27:02.435] if (muffled) [01:27:02.435] invokeRestart("muffleMessage") [01:27:02.435] } [01:27:02.435] else if (inherits(cond, "warning")) { [01:27:02.435] muffled <- grepl(pattern, "muffleWarning") [01:27:02.435] if (muffled) [01:27:02.435] invokeRestart("muffleWarning") [01:27:02.435] } [01:27:02.435] else if (inherits(cond, "condition")) { [01:27:02.435] if (!is.null(pattern)) { [01:27:02.435] computeRestarts <- base::computeRestarts [01:27:02.435] grepl <- base::grepl [01:27:02.435] restarts <- computeRestarts(cond) [01:27:02.435] for (restart in restarts) { [01:27:02.435] name <- restart$name [01:27:02.435] if (is.null(name)) [01:27:02.435] next [01:27:02.435] if (!grepl(pattern, name)) [01:27:02.435] next [01:27:02.435] invokeRestart(restart) [01:27:02.435] muffled <- TRUE [01:27:02.435] break [01:27:02.435] } [01:27:02.435] } [01:27:02.435] } [01:27:02.435] invisible(muffled) [01:27:02.435] } [01:27:02.435] muffleCondition(cond, pattern = "^muffle") [01:27:02.435] } [01:27:02.435] } [01:27:02.435] else { [01:27:02.435] if (TRUE) { [01:27:02.435] muffleCondition <- function (cond, pattern = "^muffle") [01:27:02.435] { [01:27:02.435] inherits <- base::inherits [01:27:02.435] invokeRestart <- base::invokeRestart [01:27:02.435] is.null <- base::is.null [01:27:02.435] muffled <- FALSE [01:27:02.435] if (inherits(cond, "message")) { [01:27:02.435] muffled <- grepl(pattern, "muffleMessage") [01:27:02.435] if (muffled) [01:27:02.435] invokeRestart("muffleMessage") [01:27:02.435] } [01:27:02.435] else if (inherits(cond, "warning")) { [01:27:02.435] muffled <- grepl(pattern, "muffleWarning") [01:27:02.435] if (muffled) [01:27:02.435] invokeRestart("muffleWarning") [01:27:02.435] } [01:27:02.435] else if (inherits(cond, "condition")) { [01:27:02.435] if (!is.null(pattern)) { [01:27:02.435] computeRestarts <- base::computeRestarts [01:27:02.435] grepl <- base::grepl [01:27:02.435] restarts <- computeRestarts(cond) [01:27:02.435] for (restart in restarts) { [01:27:02.435] name <- restart$name [01:27:02.435] if (is.null(name)) [01:27:02.435] next [01:27:02.435] if (!grepl(pattern, name)) [01:27:02.435] next [01:27:02.435] invokeRestart(restart) [01:27:02.435] muffled <- TRUE [01:27:02.435] break [01:27:02.435] } [01:27:02.435] } [01:27:02.435] } [01:27:02.435] invisible(muffled) [01:27:02.435] } [01:27:02.435] muffleCondition(cond, pattern = "^muffle") [01:27:02.435] } [01:27:02.435] } [01:27:02.435] } [01:27:02.435] })) [01:27:02.435] }, error = function(ex) { [01:27:02.435] base::structure(base::list(value = NULL, visible = NULL, [01:27:02.435] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:02.435] ...future.rng), started = ...future.startTime, [01:27:02.435] finished = Sys.time(), session_uuid = NA_character_, [01:27:02.435] version = "1.8"), class = "FutureResult") [01:27:02.435] }, finally = { [01:27:02.435] if (!identical(...future.workdir, getwd())) [01:27:02.435] setwd(...future.workdir) [01:27:02.435] { [01:27:02.435] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:02.435] ...future.oldOptions$nwarnings <- NULL [01:27:02.435] } [01:27:02.435] base::options(...future.oldOptions) [01:27:02.435] if (.Platform$OS.type == "windows") { [01:27:02.435] old_names <- names(...future.oldEnvVars) [01:27:02.435] envs <- base::Sys.getenv() [01:27:02.435] names <- names(envs) [01:27:02.435] common <- intersect(names, old_names) [01:27:02.435] added <- setdiff(names, old_names) [01:27:02.435] removed <- setdiff(old_names, names) [01:27:02.435] changed <- common[...future.oldEnvVars[common] != [01:27:02.435] envs[common]] [01:27:02.435] NAMES <- toupper(changed) [01:27:02.435] args <- list() [01:27:02.435] for (kk in seq_along(NAMES)) { [01:27:02.435] name <- changed[[kk]] [01:27:02.435] NAME <- NAMES[[kk]] [01:27:02.435] if (name != NAME && is.element(NAME, old_names)) [01:27:02.435] next [01:27:02.435] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.435] } [01:27:02.435] NAMES <- toupper(added) [01:27:02.435] for (kk in seq_along(NAMES)) { [01:27:02.435] name <- added[[kk]] [01:27:02.435] NAME <- NAMES[[kk]] [01:27:02.435] if (name != NAME && is.element(NAME, old_names)) [01:27:02.435] next [01:27:02.435] args[[name]] <- "" [01:27:02.435] } [01:27:02.435] NAMES <- toupper(removed) [01:27:02.435] for (kk in seq_along(NAMES)) { [01:27:02.435] name <- removed[[kk]] [01:27:02.435] NAME <- NAMES[[kk]] [01:27:02.435] if (name != NAME && is.element(NAME, old_names)) [01:27:02.435] next [01:27:02.435] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:02.435] } [01:27:02.435] if (length(args) > 0) [01:27:02.435] base::do.call(base::Sys.setenv, args = args) [01:27:02.435] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:02.435] } [01:27:02.435] else { [01:27:02.435] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:02.435] } [01:27:02.435] { [01:27:02.435] if (base::length(...future.futureOptionsAdded) > [01:27:02.435] 0L) { [01:27:02.435] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:02.435] base::names(opts) <- ...future.futureOptionsAdded [01:27:02.435] base::options(opts) [01:27:02.435] } [01:27:02.435] { [01:27:02.435] { [01:27:02.435] NULL [01:27:02.435] RNGkind("Mersenne-Twister") [01:27:02.435] base::rm(list = ".Random.seed", envir = base::globalenv(), [01:27:02.435] inherits = FALSE) [01:27:02.435] } [01:27:02.435] options(future.plan = NULL) [01:27:02.435] if (is.na(NA_character_)) [01:27:02.435] Sys.unsetenv("R_FUTURE_PLAN") [01:27:02.435] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:02.435] future::plan(list(function (..., envir = parent.frame()) [01:27:02.435] { [01:27:02.435] future <- SequentialFuture(..., envir = envir) [01:27:02.435] if (!future$lazy) [01:27:02.435] future <- run(future) [01:27:02.435] invisible(future) [01:27:02.435] }), .cleanup = FALSE, .init = FALSE) [01:27:02.435] } [01:27:02.435] } [01:27:02.435] } [01:27:02.435] }) [01:27:02.435] if (TRUE) { [01:27:02.435] base::sink(type = "output", split = FALSE) [01:27:02.435] if (TRUE) { [01:27:02.435] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:02.435] } [01:27:02.435] else { [01:27:02.435] ...future.result["stdout"] <- base::list(NULL) [01:27:02.435] } [01:27:02.435] base::close(...future.stdout) [01:27:02.435] ...future.stdout <- NULL [01:27:02.435] } [01:27:02.435] ...future.result$conditions <- ...future.conditions [01:27:02.435] ...future.result$finished <- base::Sys.time() [01:27:02.435] ...future.result [01:27:02.435] } [01:27:02.439] plan(): Setting new future strategy stack: [01:27:02.439] List of future strategies: [01:27:02.439] 1. sequential: [01:27:02.439] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.439] - tweaked: FALSE [01:27:02.439] - call: NULL [01:27:02.440] plan(): nbrOfWorkers() = 1 [01:27:02.441] plan(): Setting new future strategy stack: [01:27:02.441] List of future strategies: [01:27:02.441] 1. sequential: [01:27:02.441] - args: function (..., envir = parent.frame(), workers = "") [01:27:02.441] - tweaked: FALSE [01:27:02.441] - call: future::plan("sequential") [01:27:02.442] plan(): nbrOfWorkers() = 1 [01:27:02.442] SequentialFuture started (and completed) [01:27:02.442] signalConditions() ... [01:27:02.443] - include = 'immediateCondition' [01:27:02.443] - exclude = [01:27:02.443] - resignal = FALSE [01:27:02.443] - Number of conditions: 1 [01:27:02.443] signalConditions() ... done [01:27:02.444] - Launch lazy future ... done [01:27:02.444] run() for 'SequentialFuture' ... done > v <- value(f, signal = FALSE) [01:27:02.444] signalConditions() ... [01:27:02.444] - include = 'immediateCondition' [01:27:02.444] - exclude = [01:27:02.445] - resignal = FALSE [01:27:02.445] - Number of conditions: 1 [01:27:02.445] signalConditions() ... done > > if (availableCores() >= 2L) { + message("- Non-resolved future ...") + plan(multisession, workers = 2L) + f <- future({ Sys.sleep(3); 42L; stop("Woops") }) + res <- tryCatch(backtrace(f), error = identity) + print(res) + stopifnot(inherits(res, "error")) + + ## If we don't resolve the future, the cluster of workers will not + ## be able to shut down naturally. They will eventually time out, + ## but that will happen long after 'R CMD check' terminates. Because + ## of this, 'R CMD check --as-cran' will report on "detritus in the + ## temp directory" when running on MS Windows. This happens because + ## MS Windows doesn't shut down child processes as Linux and macOS + ## does when the main R session terminates. + resolve(f) + } - Non-resolved future ... [01:27:02.451] plan(): Setting new future strategy stack: [01:27:02.452] List of future strategies: [01:27:02.452] 1. multisession: [01:27:02.452] - args: function (..., workers = 2L, envir = parent.frame()) [01:27:02.452] - tweaked: TRUE [01:27:02.452] - call: plan(multisession, workers = 2L) [01:27:02.469] plan(): plan_init() of 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... [01:27:02.470] multisession: [01:27:02.470] - args: function (..., workers = 2L, envir = parent.frame()) [01:27:02.470] - tweaked: TRUE [01:27:02.470] - call: plan(multisession, workers = 2L) [01:27:02.470] getGlobalsAndPackages() ... [01:27:02.471] Not searching for globals [01:27:02.471] - globals: [0] [01:27:02.471] getGlobalsAndPackages() ... DONE [01:27:02.472] [local output] makeClusterPSOCK() ... [01:27:02.557] [local output] Workers: [n = 2] 'localhost', 'localhost' [01:27:02.564] [local output] Base port: 35228 [01:27:02.564] [local output] Getting setup options for 2 cluster nodes ... [01:27:02.564] [local output] - Node 1 of 2 ... [01:27:02.565] [local output] localMachine=TRUE => revtunnel=FALSE [01:27:02.566] Testing if worker's PID can be inferred: '"D:/RCompile/recent/R/bin/x64/Rscript" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/Rtmp8smuYi/worker.rank=1.parallelly.parent=8712.2208743c3cd2.pid\")), silent = TRUE)" -e "file.exists(\"D:/temp/Rtmp8smuYi/worker.rank=1.parallelly.parent=8712.2208743c3cd2.pid\")"' [01:27:02.786] - Possible to infer worker's PID: TRUE [01:27:02.787] [local output] Rscript port: 35228 [01:27:02.787] [local output] - Node 2 of 2 ... [01:27:02.788] [local output] localMachine=TRUE => revtunnel=FALSE [01:27:02.789] [local output] Rscript port: 35228 [01:27:02.790] [local output] Getting setup options for 2 cluster nodes ... done [01:27:02.790] [local output] - Parallel setup requested for some PSOCK nodes [01:27:02.791] [local output] Setting up PSOCK nodes in parallel [01:27:02.791] List of 36 [01:27:02.791] $ worker : chr "localhost" [01:27:02.791] ..- attr(*, "localhost")= logi TRUE [01:27:02.791] $ master : chr "localhost" [01:27:02.791] $ port : int 35228 [01:27:02.791] $ connectTimeout : num 120 [01:27:02.791] $ timeout : num 120 [01:27:02.791] $ rscript : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\"" [01:27:02.791] $ homogeneous : logi TRUE [01:27:02.791] $ rscript_args : chr "--default-packages=datasets,utils,grDevices,graphics,stats,methods -e \"#label=backtrace.R:8712:CRANWIN3:CRAN\""| __truncated__ [01:27:02.791] $ rscript_envs : NULL [01:27:02.791] $ rscript_libs : chr [1:2] "D:/temp/RtmpCIb4qz/RLIBS_32fc52ae7b47" "D:/RCompile/recent/R/library" [01:27:02.791] $ rscript_startup : NULL [01:27:02.791] $ rscript_sh : chr "cmd" [01:27:02.791] $ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [01:27:02.791] $ methods : logi TRUE [01:27:02.791] $ socketOptions : chr "no-delay" [01:27:02.791] $ useXDR : logi FALSE [01:27:02.791] $ outfile : chr "/dev/null" [01:27:02.791] $ renice : int NA [01:27:02.791] $ rshcmd : NULL [01:27:02.791] $ user : chr(0) [01:27:02.791] $ revtunnel : logi FALSE [01:27:02.791] $ rshlogfile : NULL [01:27:02.791] $ rshopts : chr(0) [01:27:02.791] $ rank : int 1 [01:27:02.791] $ manual : logi FALSE [01:27:02.791] $ dryrun : logi FALSE [01:27:02.791] $ quiet : logi FALSE [01:27:02.791] $ setup_strategy : chr "parallel" [01:27:02.791] $ local_cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [01:27:02.791] $ pidfile : chr "D:/temp/Rtmp8smuYi/worker.rank=1.parallelly.parent=8712.2208743c3cd2.pid" [01:27:02.791] $ rshcmd_label : NULL [01:27:02.791] $ rsh_call : NULL [01:27:02.791] $ cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [01:27:02.791] $ localMachine : logi TRUE [01:27:02.791] $ make_fcn :function (worker = getOption2("parallelly.localhost.hostname", "localhost"), [01:27:02.791] master = NULL, port, connectTimeout = getOption2("parallelly.makeNodePSOCK.connectTimeout", [01:27:02.791] 2 * 60), timeout = getOption2("parallelly.makeNodePSOCK.timeout", [01:27:02.791] 30 * 24 * 60 * 60), rscript = NULL, homogeneous = NULL, rscript_args = NULL, [01:27:02.791] rscript_envs = NULL, rscript_libs = NULL, rscript_startup = NULL, rscript_sh = c("auto", [01:27:02.791] "cmd", "sh"), default_packages = c("datasets", "utils", "grDevices", [01:27:02.791] "graphics", "stats", if (methods) "methods"), methods = TRUE, socketOptions = getOption2("parallelly.makeNodePSOCK.socketOptions", [01:27:02.791] "no-delay"), useXDR = getOption2("parallelly.makeNodePSOCK.useXDR", [01:27:02.791] FALSE), outfile = "/dev/null", renice = NA_integer_, rshcmd = getOption2("parallelly.makeNodePSOCK.rshcmd", [01:27:02.791] NULL), user = NULL, revtunnel = NA, rshlogfile = NULL, rshopts = getOption2("parallelly.makeNodePSOCK.rshopts", [01:27:02.791] NULL), rank = 1L, manual = FALSE, dryrun = FALSE, quiet = FALSE, [01:27:02.791] setup_strategy = getOption2("parallelly.makeNodePSOCK.setup_strategy", [01:27:02.791] "parallel"), action = c("launch", "options"), verbose = FALSE) [01:27:02.791] $ arguments :List of 28 [01:27:02.791] ..$ worker : chr "localhost" [01:27:02.791] ..$ master : NULL [01:27:02.791] ..$ port : int 35228 [01:27:02.791] ..$ connectTimeout : num 120 [01:27:02.791] ..$ timeout : num 120 [01:27:02.791] ..$ rscript : NULL [01:27:02.791] ..$ homogeneous : NULL [01:27:02.791] ..$ rscript_args : NULL [01:27:02.791] ..$ rscript_envs : NULL [01:27:02.791] ..$ rscript_libs : chr [1:2] "D:/temp/RtmpCIb4qz/RLIBS_32fc52ae7b47" "D:/RCompile/recent/R/library" [01:27:02.791] ..$ rscript_startup : NULL [01:27:02.791] ..$ rscript_sh : chr [1:3] "auto" "cmd" "sh" [01:27:02.791] ..$ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [01:27:02.791] ..$ methods : logi TRUE [01:27:02.791] ..$ socketOptions : chr "no-delay" [01:27:02.791] ..$ useXDR : logi FALSE [01:27:02.791] ..$ outfile : chr "/dev/null" [01:27:02.791] ..$ renice : int NA [01:27:02.791] ..$ rshcmd : NULL [01:27:02.791] ..$ user : NULL [01:27:02.791] ..$ revtunnel : logi NA [01:27:02.791] ..$ rshlogfile : NULL [01:27:02.791] ..$ rshopts : NULL [01:27:02.791] ..$ rank : int 1 [01:27:02.791] ..$ manual : logi FALSE [01:27:02.791] ..$ dryrun : logi FALSE [01:27:02.791] ..$ quiet : logi FALSE [01:27:02.791] ..$ setup_strategy : chr "parallel" [01:27:02.791] - attr(*, "class")= chr [1:2] "makeNodePSOCKOptions" "makeNodeOptions" [01:27:02.816] [local output] System call to launch all workers: [01:27:02.816] [local output] "D:/RCompile/recent/R/bin/x64/Rscript" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "#label=backtrace.R:8712:CRANWIN3:CRAN" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/Rtmp8smuYi/worker.rank=1.parallelly.parent=8712.2208743c3cd2.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=35228 OUT=/dev/null TIMEOUT=120 XDR=FALSE SETUPTIMEOUT=120 SETUPSTRATEGY=parallel [01:27:02.817] [local output] Starting PSOCK main server [01:27:02.823] [local output] Workers launched [01:27:02.823] [local output] Waiting for workers to connect back [01:27:02.824] - [local output] 0 workers out of 2 ready [01:27:03.015] - [local output] 0 workers out of 2 ready [01:27:03.015] - [local output] 1 workers out of 2 ready [01:27:03.018] - [local output] 1 workers out of 2 ready [01:27:03.019] - [local output] 2 workers out of 2 ready [01:27:03.019] [local output] Launching of workers completed [01:27:03.019] [local output] Collecting session information from workers [01:27:03.021] [local output] - Worker #1 of 2 [01:27:03.022] [local output] - Worker #2 of 2 [01:27:03.022] [local output] makeClusterPSOCK() ... done [01:27:03.036] Packages needed by the future expression (n = 0): [01:27:03.036] Packages needed by future strategies (n = 0): [01:27:03.037] { [01:27:03.037] { [01:27:03.037] { [01:27:03.037] ...future.startTime <- base::Sys.time() [01:27:03.037] { [01:27:03.037] { [01:27:03.037] { [01:27:03.037] { [01:27:03.037] base::local({ [01:27:03.037] has_future <- base::requireNamespace("future", [01:27:03.037] quietly = TRUE) [01:27:03.037] if (has_future) { [01:27:03.037] ns <- base::getNamespace("future") [01:27:03.037] version <- ns[[".package"]][["version"]] [01:27:03.037] if (is.null(version)) [01:27:03.037] version <- utils::packageVersion("future") [01:27:03.037] } [01:27:03.037] else { [01:27:03.037] version <- NULL [01:27:03.037] } [01:27:03.037] if (!has_future || version < "1.8.0") { [01:27:03.037] info <- base::c(r_version = base::gsub("R version ", [01:27:03.037] "", base::R.version$version.string), [01:27:03.037] platform = base::sprintf("%s (%s-bit)", [01:27:03.037] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:03.037] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:03.037] "release", "version")], collapse = " "), [01:27:03.037] hostname = base::Sys.info()[["nodename"]]) [01:27:03.037] info <- base::sprintf("%s: %s", base::names(info), [01:27:03.037] info) [01:27:03.037] info <- base::paste(info, collapse = "; ") [01:27:03.037] if (!has_future) { [01:27:03.037] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:03.037] info) [01:27:03.037] } [01:27:03.037] else { [01:27:03.037] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:03.037] info, version) [01:27:03.037] } [01:27:03.037] base::stop(msg) [01:27:03.037] } [01:27:03.037] }) [01:27:03.037] } [01:27:03.037] ...future.mc.cores.old <- base::getOption("mc.cores") [01:27:03.037] base::options(mc.cores = 1L) [01:27:03.037] } [01:27:03.037] options(future.plan = NULL) [01:27:03.037] Sys.unsetenv("R_FUTURE_PLAN") [01:27:03.037] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:03.037] } [01:27:03.037] ...future.workdir <- getwd() [01:27:03.037] } [01:27:03.037] ...future.oldOptions <- base::as.list(base::.Options) [01:27:03.037] ...future.oldEnvVars <- base::Sys.getenv() [01:27:03.037] } [01:27:03.037] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:03.037] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:03.037] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:03.037] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:03.037] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:03.037] future.stdout.windows.reencode = NULL, width = 80L) [01:27:03.037] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:03.037] base::names(...future.oldOptions)) [01:27:03.037] } [01:27:03.037] if (FALSE) { [01:27:03.037] } [01:27:03.037] else { [01:27:03.037] if (TRUE) { [01:27:03.037] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:03.037] open = "w") [01:27:03.037] } [01:27:03.037] else { [01:27:03.037] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:03.037] windows = "NUL", "/dev/null"), open = "w") [01:27:03.037] } [01:27:03.037] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:03.037] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:03.037] base::sink(type = "output", split = FALSE) [01:27:03.037] base::close(...future.stdout) [01:27:03.037] }, add = TRUE) [01:27:03.037] } [01:27:03.037] ...future.frame <- base::sys.nframe() [01:27:03.037] ...future.conditions <- base::list() [01:27:03.037] ...future.rng <- base::globalenv()$.Random.seed [01:27:03.037] if (FALSE) { [01:27:03.037] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:03.037] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:03.037] } [01:27:03.037] ...future.result <- base::tryCatch({ [01:27:03.037] base::withCallingHandlers({ [01:27:03.037] ...future.value <- base::withVisible(base::local({ [01:27:03.037] ...future.makeSendCondition <- base::local({ [01:27:03.037] sendCondition <- NULL [01:27:03.037] function(frame = 1L) { [01:27:03.037] if (is.function(sendCondition)) [01:27:03.037] return(sendCondition) [01:27:03.037] ns <- getNamespace("parallel") [01:27:03.037] if (exists("sendData", mode = "function", [01:27:03.037] envir = ns)) { [01:27:03.037] parallel_sendData <- get("sendData", mode = "function", [01:27:03.037] envir = ns) [01:27:03.037] envir <- sys.frame(frame) [01:27:03.037] master <- NULL [01:27:03.037] while (!identical(envir, .GlobalEnv) && [01:27:03.037] !identical(envir, emptyenv())) { [01:27:03.037] if (exists("master", mode = "list", envir = envir, [01:27:03.037] inherits = FALSE)) { [01:27:03.037] master <- get("master", mode = "list", [01:27:03.037] envir = envir, inherits = FALSE) [01:27:03.037] if (inherits(master, c("SOCKnode", [01:27:03.037] "SOCK0node"))) { [01:27:03.037] sendCondition <<- function(cond) { [01:27:03.037] data <- list(type = "VALUE", value = cond, [01:27:03.037] success = TRUE) [01:27:03.037] parallel_sendData(master, data) [01:27:03.037] } [01:27:03.037] return(sendCondition) [01:27:03.037] } [01:27:03.037] } [01:27:03.037] frame <- frame + 1L [01:27:03.037] envir <- sys.frame(frame) [01:27:03.037] } [01:27:03.037] } [01:27:03.037] sendCondition <<- function(cond) NULL [01:27:03.037] } [01:27:03.037] }) [01:27:03.037] withCallingHandlers({ [01:27:03.037] NA [01:27:03.037] }, immediateCondition = function(cond) { [01:27:03.037] sendCondition <- ...future.makeSendCondition() [01:27:03.037] sendCondition(cond) [01:27:03.037] muffleCondition <- function (cond, pattern = "^muffle") [01:27:03.037] { [01:27:03.037] inherits <- base::inherits [01:27:03.037] invokeRestart <- base::invokeRestart [01:27:03.037] is.null <- base::is.null [01:27:03.037] muffled <- FALSE [01:27:03.037] if (inherits(cond, "message")) { [01:27:03.037] muffled <- grepl(pattern, "muffleMessage") [01:27:03.037] if (muffled) [01:27:03.037] invokeRestart("muffleMessage") [01:27:03.037] } [01:27:03.037] else if (inherits(cond, "warning")) { [01:27:03.037] muffled <- grepl(pattern, "muffleWarning") [01:27:03.037] if (muffled) [01:27:03.037] invokeRestart("muffleWarning") [01:27:03.037] } [01:27:03.037] else if (inherits(cond, "condition")) { [01:27:03.037] if (!is.null(pattern)) { [01:27:03.037] computeRestarts <- base::computeRestarts [01:27:03.037] grepl <- base::grepl [01:27:03.037] restarts <- computeRestarts(cond) [01:27:03.037] for (restart in restarts) { [01:27:03.037] name <- restart$name [01:27:03.037] if (is.null(name)) [01:27:03.037] next [01:27:03.037] if (!grepl(pattern, name)) [01:27:03.037] next [01:27:03.037] invokeRestart(restart) [01:27:03.037] muffled <- TRUE [01:27:03.037] break [01:27:03.037] } [01:27:03.037] } [01:27:03.037] } [01:27:03.037] invisible(muffled) [01:27:03.037] } [01:27:03.037] muffleCondition(cond) [01:27:03.037] }) [01:27:03.037] })) [01:27:03.037] future::FutureResult(value = ...future.value$value, [01:27:03.037] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:03.037] ...future.rng), globalenv = if (FALSE) [01:27:03.037] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:03.037] ...future.globalenv.names)) [01:27:03.037] else NULL, started = ...future.startTime, version = "1.8") [01:27:03.037] }, condition = base::local({ [01:27:03.037] c <- base::c [01:27:03.037] inherits <- base::inherits [01:27:03.037] invokeRestart <- base::invokeRestart [01:27:03.037] length <- base::length [01:27:03.037] list <- base::list [01:27:03.037] seq.int <- base::seq.int [01:27:03.037] signalCondition <- base::signalCondition [01:27:03.037] sys.calls <- base::sys.calls [01:27:03.037] `[[` <- base::`[[` [01:27:03.037] `+` <- base::`+` [01:27:03.037] `<<-` <- base::`<<-` [01:27:03.037] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:03.037] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:03.037] 3L)] [01:27:03.037] } [01:27:03.037] function(cond) { [01:27:03.037] is_error <- inherits(cond, "error") [01:27:03.037] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:03.037] NULL) [01:27:03.037] if (is_error) { [01:27:03.037] sessionInformation <- function() { [01:27:03.037] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:03.037] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:03.037] search = base::search(), system = base::Sys.info()) [01:27:03.037] } [01:27:03.037] ...future.conditions[[length(...future.conditions) + [01:27:03.037] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:03.037] cond$call), session = sessionInformation(), [01:27:03.037] timestamp = base::Sys.time(), signaled = 0L) [01:27:03.037] signalCondition(cond) [01:27:03.037] } [01:27:03.037] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:03.037] "immediateCondition"))) { [01:27:03.037] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:03.037] ...future.conditions[[length(...future.conditions) + [01:27:03.037] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:03.037] if (TRUE && !signal) { [01:27:03.037] muffleCondition <- function (cond, pattern = "^muffle") [01:27:03.037] { [01:27:03.037] inherits <- base::inherits [01:27:03.037] invokeRestart <- base::invokeRestart [01:27:03.037] is.null <- base::is.null [01:27:03.037] muffled <- FALSE [01:27:03.037] if (inherits(cond, "message")) { [01:27:03.037] muffled <- grepl(pattern, "muffleMessage") [01:27:03.037] if (muffled) [01:27:03.037] invokeRestart("muffleMessage") [01:27:03.037] } [01:27:03.037] else if (inherits(cond, "warning")) { [01:27:03.037] muffled <- grepl(pattern, "muffleWarning") [01:27:03.037] if (muffled) [01:27:03.037] invokeRestart("muffleWarning") [01:27:03.037] } [01:27:03.037] else if (inherits(cond, "condition")) { [01:27:03.037] if (!is.null(pattern)) { [01:27:03.037] computeRestarts <- base::computeRestarts [01:27:03.037] grepl <- base::grepl [01:27:03.037] restarts <- computeRestarts(cond) [01:27:03.037] for (restart in restarts) { [01:27:03.037] name <- restart$name [01:27:03.037] if (is.null(name)) [01:27:03.037] next [01:27:03.037] if (!grepl(pattern, name)) [01:27:03.037] next [01:27:03.037] invokeRestart(restart) [01:27:03.037] muffled <- TRUE [01:27:03.037] break [01:27:03.037] } [01:27:03.037] } [01:27:03.037] } [01:27:03.037] invisible(muffled) [01:27:03.037] } [01:27:03.037] muffleCondition(cond, pattern = "^muffle") [01:27:03.037] } [01:27:03.037] } [01:27:03.037] else { [01:27:03.037] if (TRUE) { [01:27:03.037] muffleCondition <- function (cond, pattern = "^muffle") [01:27:03.037] { [01:27:03.037] inherits <- base::inherits [01:27:03.037] invokeRestart <- base::invokeRestart [01:27:03.037] is.null <- base::is.null [01:27:03.037] muffled <- FALSE [01:27:03.037] if (inherits(cond, "message")) { [01:27:03.037] muffled <- grepl(pattern, "muffleMessage") [01:27:03.037] if (muffled) [01:27:03.037] invokeRestart("muffleMessage") [01:27:03.037] } [01:27:03.037] else if (inherits(cond, "warning")) { [01:27:03.037] muffled <- grepl(pattern, "muffleWarning") [01:27:03.037] if (muffled) [01:27:03.037] invokeRestart("muffleWarning") [01:27:03.037] } [01:27:03.037] else if (inherits(cond, "condition")) { [01:27:03.037] if (!is.null(pattern)) { [01:27:03.037] computeRestarts <- base::computeRestarts [01:27:03.037] grepl <- base::grepl [01:27:03.037] restarts <- computeRestarts(cond) [01:27:03.037] for (restart in restarts) { [01:27:03.037] name <- restart$name [01:27:03.037] if (is.null(name)) [01:27:03.037] next [01:27:03.037] if (!grepl(pattern, name)) [01:27:03.037] next [01:27:03.037] invokeRestart(restart) [01:27:03.037] muffled <- TRUE [01:27:03.037] break [01:27:03.037] } [01:27:03.037] } [01:27:03.037] } [01:27:03.037] invisible(muffled) [01:27:03.037] } [01:27:03.037] muffleCondition(cond, pattern = "^muffle") [01:27:03.037] } [01:27:03.037] } [01:27:03.037] } [01:27:03.037] })) [01:27:03.037] }, error = function(ex) { [01:27:03.037] base::structure(base::list(value = NULL, visible = NULL, [01:27:03.037] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:03.037] ...future.rng), started = ...future.startTime, [01:27:03.037] finished = Sys.time(), session_uuid = NA_character_, [01:27:03.037] version = "1.8"), class = "FutureResult") [01:27:03.037] }, finally = { [01:27:03.037] if (!identical(...future.workdir, getwd())) [01:27:03.037] setwd(...future.workdir) [01:27:03.037] { [01:27:03.037] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:03.037] ...future.oldOptions$nwarnings <- NULL [01:27:03.037] } [01:27:03.037] base::options(...future.oldOptions) [01:27:03.037] if (.Platform$OS.type == "windows") { [01:27:03.037] old_names <- names(...future.oldEnvVars) [01:27:03.037] envs <- base::Sys.getenv() [01:27:03.037] names <- names(envs) [01:27:03.037] common <- intersect(names, old_names) [01:27:03.037] added <- setdiff(names, old_names) [01:27:03.037] removed <- setdiff(old_names, names) [01:27:03.037] changed <- common[...future.oldEnvVars[common] != [01:27:03.037] envs[common]] [01:27:03.037] NAMES <- toupper(changed) [01:27:03.037] args <- list() [01:27:03.037] for (kk in seq_along(NAMES)) { [01:27:03.037] name <- changed[[kk]] [01:27:03.037] NAME <- NAMES[[kk]] [01:27:03.037] if (name != NAME && is.element(NAME, old_names)) [01:27:03.037] next [01:27:03.037] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:03.037] } [01:27:03.037] NAMES <- toupper(added) [01:27:03.037] for (kk in seq_along(NAMES)) { [01:27:03.037] name <- added[[kk]] [01:27:03.037] NAME <- NAMES[[kk]] [01:27:03.037] if (name != NAME && is.element(NAME, old_names)) [01:27:03.037] next [01:27:03.037] args[[name]] <- "" [01:27:03.037] } [01:27:03.037] NAMES <- toupper(removed) [01:27:03.037] for (kk in seq_along(NAMES)) { [01:27:03.037] name <- removed[[kk]] [01:27:03.037] NAME <- NAMES[[kk]] [01:27:03.037] if (name != NAME && is.element(NAME, old_names)) [01:27:03.037] next [01:27:03.037] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:03.037] } [01:27:03.037] if (length(args) > 0) [01:27:03.037] base::do.call(base::Sys.setenv, args = args) [01:27:03.037] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:03.037] } [01:27:03.037] else { [01:27:03.037] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:03.037] } [01:27:03.037] { [01:27:03.037] if (base::length(...future.futureOptionsAdded) > [01:27:03.037] 0L) { [01:27:03.037] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:03.037] base::names(opts) <- ...future.futureOptionsAdded [01:27:03.037] base::options(opts) [01:27:03.037] } [01:27:03.037] { [01:27:03.037] { [01:27:03.037] base::options(mc.cores = ...future.mc.cores.old) [01:27:03.037] NULL [01:27:03.037] } [01:27:03.037] options(future.plan = NULL) [01:27:03.037] if (is.na(NA_character_)) [01:27:03.037] Sys.unsetenv("R_FUTURE_PLAN") [01:27:03.037] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:03.037] future::plan(list(function (..., workers = 2L, [01:27:03.037] envir = parent.frame()) [01:27:03.037] strategy(..., workers = workers, envir = envir)), [01:27:03.037] .cleanup = FALSE, .init = FALSE) [01:27:03.037] } [01:27:03.037] } [01:27:03.037] } [01:27:03.037] }) [01:27:03.037] if (TRUE) { [01:27:03.037] base::sink(type = "output", split = FALSE) [01:27:03.037] if (TRUE) { [01:27:03.037] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:03.037] } [01:27:03.037] else { [01:27:03.037] ...future.result["stdout"] <- base::list(NULL) [01:27:03.037] } [01:27:03.037] base::close(...future.stdout) [01:27:03.037] ...future.stdout <- NULL [01:27:03.037] } [01:27:03.037] ...future.result$conditions <- ...future.conditions [01:27:03.037] ...future.result$finished <- base::Sys.time() [01:27:03.037] ...future.result [01:27:03.037] } [01:27:03.117] MultisessionFuture started [01:27:03.117] result() for ClusterFuture ... [01:27:03.118] receiveMessageFromWorker() for ClusterFuture ... [01:27:03.118] - Validating connection of MultisessionFuture [01:27:03.172] - received message: FutureResult [01:27:03.172] - Received FutureResult [01:27:03.176] - Erased future from FutureRegistry [01:27:03.177] result() for ClusterFuture ... [01:27:03.177] - result already collected: FutureResult [01:27:03.178] result() for ClusterFuture ... done [01:27:03.178] receiveMessageFromWorker() for ClusterFuture ... done [01:27:03.178] result() for ClusterFuture ... done [01:27:03.178] result() for ClusterFuture ... [01:27:03.179] - result already collected: FutureResult [01:27:03.179] result() for ClusterFuture ... done [01:27:03.179] plan(): plan_init() of 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... DONE [01:27:03.180] plan(): nbrOfWorkers() = 2 [01:27:03.180] getGlobalsAndPackages() ... [01:27:03.181] Searching for globals... [01:27:03.184] - globals found: [3] '{', 'Sys.sleep', 'stop' [01:27:03.185] Searching for globals ... DONE [01:27:03.185] Resolving globals: FALSE [01:27:03.186] [01:27:03.186] [01:27:03.186] getGlobalsAndPackages() ... DONE [01:27:03.187] run() for 'Future' ... [01:27:03.187] - state: 'created' [01:27:03.187] - Future backend: 'FutureStrategy', 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [01:27:03.202] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [01:27:03.203] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [01:27:03.203] - Field: 'node' [01:27:03.203] - Field: 'label' [01:27:03.203] - Field: 'local' [01:27:03.203] - Field: 'owner' [01:27:03.204] - Field: 'envir' [01:27:03.204] - Field: 'workers' [01:27:03.204] - Field: 'packages' [01:27:03.204] - Field: 'gc' [01:27:03.204] - Field: 'conditions' [01:27:03.205] - Field: 'persistent' [01:27:03.205] - Field: 'expr' [01:27:03.205] - Field: 'uuid' [01:27:03.205] - Field: 'seed' [01:27:03.206] - Field: 'version' [01:27:03.206] - Field: 'result' [01:27:03.206] - Field: 'asynchronous' [01:27:03.206] - Field: 'calls' [01:27:03.206] - Field: 'globals' [01:27:03.207] - Field: 'stdout' [01:27:03.207] - Field: 'earlySignal' [01:27:03.207] - Field: 'lazy' [01:27:03.207] - Field: 'state' [01:27:03.208] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [01:27:03.208] - Launch lazy future ... [01:27:03.208] Packages needed by the future expression (n = 0): [01:27:03.209] Packages needed by future strategies (n = 0): [01:27:03.210] { [01:27:03.210] { [01:27:03.210] { [01:27:03.210] ...future.startTime <- base::Sys.time() [01:27:03.210] { [01:27:03.210] { [01:27:03.210] { [01:27:03.210] { [01:27:03.210] base::local({ [01:27:03.210] has_future <- base::requireNamespace("future", [01:27:03.210] quietly = TRUE) [01:27:03.210] if (has_future) { [01:27:03.210] ns <- base::getNamespace("future") [01:27:03.210] version <- ns[[".package"]][["version"]] [01:27:03.210] if (is.null(version)) [01:27:03.210] version <- utils::packageVersion("future") [01:27:03.210] } [01:27:03.210] else { [01:27:03.210] version <- NULL [01:27:03.210] } [01:27:03.210] if (!has_future || version < "1.8.0") { [01:27:03.210] info <- base::c(r_version = base::gsub("R version ", [01:27:03.210] "", base::R.version$version.string), [01:27:03.210] platform = base::sprintf("%s (%s-bit)", [01:27:03.210] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [01:27:03.210] os = base::paste(base::Sys.info()[base::c("sysname", [01:27:03.210] "release", "version")], collapse = " "), [01:27:03.210] hostname = base::Sys.info()[["nodename"]]) [01:27:03.210] info <- base::sprintf("%s: %s", base::names(info), [01:27:03.210] info) [01:27:03.210] info <- base::paste(info, collapse = "; ") [01:27:03.210] if (!has_future) { [01:27:03.210] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [01:27:03.210] info) [01:27:03.210] } [01:27:03.210] else { [01:27:03.210] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [01:27:03.210] info, version) [01:27:03.210] } [01:27:03.210] base::stop(msg) [01:27:03.210] } [01:27:03.210] }) [01:27:03.210] } [01:27:03.210] ...future.mc.cores.old <- base::getOption("mc.cores") [01:27:03.210] base::options(mc.cores = 1L) [01:27:03.210] } [01:27:03.210] options(future.plan = NULL) [01:27:03.210] Sys.unsetenv("R_FUTURE_PLAN") [01:27:03.210] future::plan("default", .cleanup = FALSE, .init = FALSE) [01:27:03.210] } [01:27:03.210] ...future.workdir <- getwd() [01:27:03.210] } [01:27:03.210] ...future.oldOptions <- base::as.list(base::.Options) [01:27:03.210] ...future.oldEnvVars <- base::Sys.getenv() [01:27:03.210] } [01:27:03.210] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [01:27:03.210] future.globals.maxSize = NULL, future.globals.method = NULL, [01:27:03.210] future.globals.onMissing = NULL, future.globals.onReference = NULL, [01:27:03.210] future.globals.resolve = NULL, future.resolve.recursive = NULL, [01:27:03.210] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [01:27:03.210] future.stdout.windows.reencode = NULL, width = 80L) [01:27:03.210] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [01:27:03.210] base::names(...future.oldOptions)) [01:27:03.210] } [01:27:03.210] if (FALSE) { [01:27:03.210] } [01:27:03.210] else { [01:27:03.210] if (TRUE) { [01:27:03.210] ...future.stdout <- base::rawConnection(base::raw(0L), [01:27:03.210] open = "w") [01:27:03.210] } [01:27:03.210] else { [01:27:03.210] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [01:27:03.210] windows = "NUL", "/dev/null"), open = "w") [01:27:03.210] } [01:27:03.210] base::sink(...future.stdout, type = "output", split = FALSE) [01:27:03.210] base::on.exit(if (!base::is.null(...future.stdout)) { [01:27:03.210] base::sink(type = "output", split = FALSE) [01:27:03.210] base::close(...future.stdout) [01:27:03.210] }, add = TRUE) [01:27:03.210] } [01:27:03.210] ...future.frame <- base::sys.nframe() [01:27:03.210] ...future.conditions <- base::list() [01:27:03.210] ...future.rng <- base::globalenv()$.Random.seed [01:27:03.210] if (FALSE) { [01:27:03.210] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [01:27:03.210] "...future.value", "...future.globalenv.names", ".Random.seed") [01:27:03.210] } [01:27:03.210] ...future.result <- base::tryCatch({ [01:27:03.210] base::withCallingHandlers({ [01:27:03.210] ...future.value <- base::withVisible(base::local({ [01:27:03.210] ...future.makeSendCondition <- base::local({ [01:27:03.210] sendCondition <- NULL [01:27:03.210] function(frame = 1L) { [01:27:03.210] if (is.function(sendCondition)) [01:27:03.210] return(sendCondition) [01:27:03.210] ns <- getNamespace("parallel") [01:27:03.210] if (exists("sendData", mode = "function", [01:27:03.210] envir = ns)) { [01:27:03.210] parallel_sendData <- get("sendData", mode = "function", [01:27:03.210] envir = ns) [01:27:03.210] envir <- sys.frame(frame) [01:27:03.210] master <- NULL [01:27:03.210] while (!identical(envir, .GlobalEnv) && [01:27:03.210] !identical(envir, emptyenv())) { [01:27:03.210] if (exists("master", mode = "list", envir = envir, [01:27:03.210] inherits = FALSE)) { [01:27:03.210] master <- get("master", mode = "list", [01:27:03.210] envir = envir, inherits = FALSE) [01:27:03.210] if (inherits(master, c("SOCKnode", [01:27:03.210] "SOCK0node"))) { [01:27:03.210] sendCondition <<- function(cond) { [01:27:03.210] data <- list(type = "VALUE", value = cond, [01:27:03.210] success = TRUE) [01:27:03.210] parallel_sendData(master, data) [01:27:03.210] } [01:27:03.210] return(sendCondition) [01:27:03.210] } [01:27:03.210] } [01:27:03.210] frame <- frame + 1L [01:27:03.210] envir <- sys.frame(frame) [01:27:03.210] } [01:27:03.210] } [01:27:03.210] sendCondition <<- function(cond) NULL [01:27:03.210] } [01:27:03.210] }) [01:27:03.210] withCallingHandlers({ [01:27:03.210] { [01:27:03.210] Sys.sleep(3) [01:27:03.210] 42L [01:27:03.210] stop("Woops") [01:27:03.210] } [01:27:03.210] }, immediateCondition = function(cond) { [01:27:03.210] sendCondition <- ...future.makeSendCondition() [01:27:03.210] sendCondition(cond) [01:27:03.210] muffleCondition <- function (cond, pattern = "^muffle") [01:27:03.210] { [01:27:03.210] inherits <- base::inherits [01:27:03.210] invokeRestart <- base::invokeRestart [01:27:03.210] is.null <- base::is.null [01:27:03.210] muffled <- FALSE [01:27:03.210] if (inherits(cond, "message")) { [01:27:03.210] muffled <- grepl(pattern, "muffleMessage") [01:27:03.210] if (muffled) [01:27:03.210] invokeRestart("muffleMessage") [01:27:03.210] } [01:27:03.210] else if (inherits(cond, "warning")) { [01:27:03.210] muffled <- grepl(pattern, "muffleWarning") [01:27:03.210] if (muffled) [01:27:03.210] invokeRestart("muffleWarning") [01:27:03.210] } [01:27:03.210] else if (inherits(cond, "condition")) { [01:27:03.210] if (!is.null(pattern)) { [01:27:03.210] computeRestarts <- base::computeRestarts [01:27:03.210] grepl <- base::grepl [01:27:03.210] restarts <- computeRestarts(cond) [01:27:03.210] for (restart in restarts) { [01:27:03.210] name <- restart$name [01:27:03.210] if (is.null(name)) [01:27:03.210] next [01:27:03.210] if (!grepl(pattern, name)) [01:27:03.210] next [01:27:03.210] invokeRestart(restart) [01:27:03.210] muffled <- TRUE [01:27:03.210] break [01:27:03.210] } [01:27:03.210] } [01:27:03.210] } [01:27:03.210] invisible(muffled) [01:27:03.210] } [01:27:03.210] muffleCondition(cond) [01:27:03.210] }) [01:27:03.210] })) [01:27:03.210] future::FutureResult(value = ...future.value$value, [01:27:03.210] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [01:27:03.210] ...future.rng), globalenv = if (FALSE) [01:27:03.210] list(added = base::setdiff(base::names(base::.GlobalEnv), [01:27:03.210] ...future.globalenv.names)) [01:27:03.210] else NULL, started = ...future.startTime, version = "1.8") [01:27:03.210] }, condition = base::local({ [01:27:03.210] c <- base::c [01:27:03.210] inherits <- base::inherits [01:27:03.210] invokeRestart <- base::invokeRestart [01:27:03.210] length <- base::length [01:27:03.210] list <- base::list [01:27:03.210] seq.int <- base::seq.int [01:27:03.210] signalCondition <- base::signalCondition [01:27:03.210] sys.calls <- base::sys.calls [01:27:03.210] `[[` <- base::`[[` [01:27:03.210] `+` <- base::`+` [01:27:03.210] `<<-` <- base::`<<-` [01:27:03.210] sysCalls <- function(calls = sys.calls(), from = 1L) { [01:27:03.210] calls[seq.int(from = from + 12L, to = length(calls) - [01:27:03.210] 3L)] [01:27:03.210] } [01:27:03.210] function(cond) { [01:27:03.210] is_error <- inherits(cond, "error") [01:27:03.210] ignore <- !is_error && !is.null(NULL) && inherits(cond, [01:27:03.210] NULL) [01:27:03.210] if (is_error) { [01:27:03.210] sessionInformation <- function() { [01:27:03.210] list(r = base::R.Version(), locale = base::Sys.getlocale(), [01:27:03.210] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [01:27:03.210] search = base::search(), system = base::Sys.info()) [01:27:03.210] } [01:27:03.210] ...future.conditions[[length(...future.conditions) + [01:27:03.210] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [01:27:03.210] cond$call), session = sessionInformation(), [01:27:03.210] timestamp = base::Sys.time(), signaled = 0L) [01:27:03.210] signalCondition(cond) [01:27:03.210] } [01:27:03.210] else if (!ignore && TRUE && inherits(cond, c("condition", [01:27:03.210] "immediateCondition"))) { [01:27:03.210] signal <- TRUE && inherits(cond, "immediateCondition") [01:27:03.210] ...future.conditions[[length(...future.conditions) + [01:27:03.210] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [01:27:03.210] if (TRUE && !signal) { [01:27:03.210] muffleCondition <- function (cond, pattern = "^muffle") [01:27:03.210] { [01:27:03.210] inherits <- base::inherits [01:27:03.210] invokeRestart <- base::invokeRestart [01:27:03.210] is.null <- base::is.null [01:27:03.210] muffled <- FALSE [01:27:03.210] if (inherits(cond, "message")) { [01:27:03.210] muffled <- grepl(pattern, "muffleMessage") [01:27:03.210] if (muffled) [01:27:03.210] invokeRestart("muffleMessage") [01:27:03.210] } [01:27:03.210] else if (inherits(cond, "warning")) { [01:27:03.210] muffled <- grepl(pattern, "muffleWarning") [01:27:03.210] if (muffled) [01:27:03.210] invokeRestart("muffleWarning") [01:27:03.210] } [01:27:03.210] else if (inherits(cond, "condition")) { [01:27:03.210] if (!is.null(pattern)) { [01:27:03.210] computeRestarts <- base::computeRestarts [01:27:03.210] grepl <- base::grepl [01:27:03.210] restarts <- computeRestarts(cond) [01:27:03.210] for (restart in restarts) { [01:27:03.210] name <- restart$name [01:27:03.210] if (is.null(name)) [01:27:03.210] next [01:27:03.210] if (!grepl(pattern, name)) [01:27:03.210] next [01:27:03.210] invokeRestart(restart) [01:27:03.210] muffled <- TRUE [01:27:03.210] break [01:27:03.210] } [01:27:03.210] } [01:27:03.210] } [01:27:03.210] invisible(muffled) [01:27:03.210] } [01:27:03.210] muffleCondition(cond, pattern = "^muffle") [01:27:03.210] } [01:27:03.210] } [01:27:03.210] else { [01:27:03.210] if (TRUE) { [01:27:03.210] muffleCondition <- function (cond, pattern = "^muffle") [01:27:03.210] { [01:27:03.210] inherits <- base::inherits [01:27:03.210] invokeRestart <- base::invokeRestart [01:27:03.210] is.null <- base::is.null [01:27:03.210] muffled <- FALSE [01:27:03.210] if (inherits(cond, "message")) { [01:27:03.210] muffled <- grepl(pattern, "muffleMessage") [01:27:03.210] if (muffled) [01:27:03.210] invokeRestart("muffleMessage") [01:27:03.210] } [01:27:03.210] else if (inherits(cond, "warning")) { [01:27:03.210] muffled <- grepl(pattern, "muffleWarning") [01:27:03.210] if (muffled) [01:27:03.210] invokeRestart("muffleWarning") [01:27:03.210] } [01:27:03.210] else if (inherits(cond, "condition")) { [01:27:03.210] if (!is.null(pattern)) { [01:27:03.210] computeRestarts <- base::computeRestarts [01:27:03.210] grepl <- base::grepl [01:27:03.210] restarts <- computeRestarts(cond) [01:27:03.210] for (restart in restarts) { [01:27:03.210] name <- restart$name [01:27:03.210] if (is.null(name)) [01:27:03.210] next [01:27:03.210] if (!grepl(pattern, name)) [01:27:03.210] next [01:27:03.210] invokeRestart(restart) [01:27:03.210] muffled <- TRUE [01:27:03.210] break [01:27:03.210] } [01:27:03.210] } [01:27:03.210] } [01:27:03.210] invisible(muffled) [01:27:03.210] } [01:27:03.210] muffleCondition(cond, pattern = "^muffle") [01:27:03.210] } [01:27:03.210] } [01:27:03.210] } [01:27:03.210] })) [01:27:03.210] }, error = function(ex) { [01:27:03.210] base::structure(base::list(value = NULL, visible = NULL, [01:27:03.210] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [01:27:03.210] ...future.rng), started = ...future.startTime, [01:27:03.210] finished = Sys.time(), session_uuid = NA_character_, [01:27:03.210] version = "1.8"), class = "FutureResult") [01:27:03.210] }, finally = { [01:27:03.210] if (!identical(...future.workdir, getwd())) [01:27:03.210] setwd(...future.workdir) [01:27:03.210] { [01:27:03.210] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [01:27:03.210] ...future.oldOptions$nwarnings <- NULL [01:27:03.210] } [01:27:03.210] base::options(...future.oldOptions) [01:27:03.210] if (.Platform$OS.type == "windows") { [01:27:03.210] old_names <- names(...future.oldEnvVars) [01:27:03.210] envs <- base::Sys.getenv() [01:27:03.210] names <- names(envs) [01:27:03.210] common <- intersect(names, old_names) [01:27:03.210] added <- setdiff(names, old_names) [01:27:03.210] removed <- setdiff(old_names, names) [01:27:03.210] changed <- common[...future.oldEnvVars[common] != [01:27:03.210] envs[common]] [01:27:03.210] NAMES <- toupper(changed) [01:27:03.210] args <- list() [01:27:03.210] for (kk in seq_along(NAMES)) { [01:27:03.210] name <- changed[[kk]] [01:27:03.210] NAME <- NAMES[[kk]] [01:27:03.210] if (name != NAME && is.element(NAME, old_names)) [01:27:03.210] next [01:27:03.210] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:03.210] } [01:27:03.210] NAMES <- toupper(added) [01:27:03.210] for (kk in seq_along(NAMES)) { [01:27:03.210] name <- added[[kk]] [01:27:03.210] NAME <- NAMES[[kk]] [01:27:03.210] if (name != NAME && is.element(NAME, old_names)) [01:27:03.210] next [01:27:03.210] args[[name]] <- "" [01:27:03.210] } [01:27:03.210] NAMES <- toupper(removed) [01:27:03.210] for (kk in seq_along(NAMES)) { [01:27:03.210] name <- removed[[kk]] [01:27:03.210] NAME <- NAMES[[kk]] [01:27:03.210] if (name != NAME && is.element(NAME, old_names)) [01:27:03.210] next [01:27:03.210] args[[name]] <- ...future.oldEnvVars[[name]] [01:27:03.210] } [01:27:03.210] if (length(args) > 0) [01:27:03.210] base::do.call(base::Sys.setenv, args = args) [01:27:03.210] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [01:27:03.210] } [01:27:03.210] else { [01:27:03.210] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [01:27:03.210] } [01:27:03.210] { [01:27:03.210] if (base::length(...future.futureOptionsAdded) > [01:27:03.210] 0L) { [01:27:03.210] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [01:27:03.210] base::names(opts) <- ...future.futureOptionsAdded [01:27:03.210] base::options(opts) [01:27:03.210] } [01:27:03.210] { [01:27:03.210] { [01:27:03.210] base::options(mc.cores = ...future.mc.cores.old) [01:27:03.210] NULL [01:27:03.210] } [01:27:03.210] options(future.plan = NULL) [01:27:03.210] if (is.na(NA_character_)) [01:27:03.210] Sys.unsetenv("R_FUTURE_PLAN") [01:27:03.210] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [01:27:03.210] future::plan(list(function (..., workers = 2L, [01:27:03.210] envir = parent.frame()) [01:27:03.210] strategy(..., workers = workers, envir = envir)), [01:27:03.210] .cleanup = FALSE, .init = FALSE) [01:27:03.210] } [01:27:03.210] } [01:27:03.210] } [01:27:03.210] }) [01:27:03.210] if (TRUE) { [01:27:03.210] base::sink(type = "output", split = FALSE) [01:27:03.210] if (TRUE) { [01:27:03.210] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [01:27:03.210] } [01:27:03.210] else { [01:27:03.210] ...future.result["stdout"] <- base::list(NULL) [01:27:03.210] } [01:27:03.210] base::close(...future.stdout) [01:27:03.210] ...future.stdout <- NULL [01:27:03.210] } [01:27:03.210] ...future.result$conditions <- ...future.conditions [01:27:03.210] ...future.result$finished <- base::Sys.time() [01:27:03.210] ...future.result [01:27:03.210] } [01:27:03.217] MultisessionFuture started [01:27:03.217] - Launch lazy future ... done [01:27:03.217] run() for 'MultisessionFuture' ... done [01:27:06.323] receiveMessageFromWorker() for ClusterFuture ... [01:27:06.323] - Validating connection of MultisessionFuture [01:27:06.324] - received message: FutureResult [01:27:06.324] - Received FutureResult [01:27:06.325] - Erased future from FutureRegistry [01:27:06.325] result() for ClusterFuture ... [01:27:06.325] - result already collected: FutureResult [01:27:06.325] result() for ClusterFuture ... done [01:27:06.325] signalConditions() ... [01:27:06.326] - include = 'immediateCondition' [01:27:06.326] - exclude = [01:27:06.326] - resignal = FALSE [01:27:06.326] - Number of conditions: 1 [01:27:06.326] signalConditions() ... done [01:27:06.327] receiveMessageFromWorker() for ClusterFuture ... done [01:27:06.327] A MultisessionFuture was resolved (result was not collected) MultisessionFuture: Label: '' Expression: { Sys.sleep(3) 42L stop("Woops") } Lazy evaluation: FALSE Asynchronous evaluation: TRUE Local evaluation: TRUE Environment: R_GlobalEnv Capture standard output: TRUE Capture condition classes: 'condition' (excluding 'nothing') Globals: Packages: L'Ecuyer-CMRG RNG seed: (seed = FALSE) Resolved: TRUE Value: 0 bytes of class 'NULL' Conditions captured: [n=1] 'simpleError' Early signaling: FALSE Owner process: e410ed40-1d67-cc17-dbbf-d103b2c1eab3 Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' > > message("*** backtrace( ) - exceptions ... DONE") *** backtrace( ) - exceptions ... DONE > > > message("*** backtrace( ) ... DONE") *** backtrace( ) ... DONE > > source("incl/end.R") [01:27:06.329] plan(): Setting new future strategy stack: [01:27:06.330] List of future strategies: [01:27:06.330] 1. FutureStrategy: [01:27:06.330] - args: function (..., envir = parent.frame(), workers = "") [01:27:06.330] - tweaked: FALSE [01:27:06.330] - call: future::plan(oplan) [01:27:06.331] 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 0.89 0.03 4.54