R Under development (unstable) (2024-07-02 r86866 ucrt) -- "Unsuffered Consequences" Copyright (C) 2024 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") Loading required package: future [13:30:36.557] plan(): Setting new future strategy stack: [13:30:36.558] List of future strategies: [13:30:36.558] 1. mirai_multisession: [13:30:36.558] - args: function (expr, substitute = TRUE, envir = parent.frame(), ..., workers = availableCores()) [13:30:36.558] - tweaked: FALSE [13:30:36.558] - call: future::plan(future.mirai::mirai_multisession) [13:30:36.571] plan(): plan_init() of 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' ... [13:30:36.571] < mirai [$data] > [13:30:36.576] getGlobalsAndPackages() ... [13:30:36.576] Not searching for globals [13:30:36.576] - globals: [0] [13:30:36.577] getGlobalsAndPackages() ... DONE [13:30:36.577] getGlobalsAndPackages() ... [13:30:36.577] [13:30:36.577] - globals: [0] [13:30:36.578] getGlobalsAndPackages() ... DONE [13:30:36.833] Packages needed by the future expression (n = 0): [13:30:36.833] Packages needed by future strategies (n = 0): [13:30:36.834] { [13:30:36.834] { [13:30:36.834] { [13:30:36.834] ...future.startTime <- base::Sys.time() [13:30:36.834] { [13:30:36.834] { [13:30:36.834] { [13:30:36.834] base::local({ [13:30:36.834] has_future <- base::requireNamespace("future", [13:30:36.834] quietly = TRUE) [13:30:36.834] if (has_future) { [13:30:36.834] ns <- base::getNamespace("future") [13:30:36.834] version <- ns[[".package"]][["version"]] [13:30:36.834] if (is.null(version)) [13:30:36.834] version <- utils::packageVersion("future") [13:30:36.834] } [13:30:36.834] else { [13:30:36.834] version <- NULL [13:30:36.834] } [13:30:36.834] if (!has_future || version < "1.8.0") { [13:30:36.834] info <- base::c(r_version = base::gsub("R version ", [13:30:36.834] "", base::R.version$version.string), [13:30:36.834] platform = base::sprintf("%s (%s-bit)", [13:30:36.834] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:30:36.834] os = base::paste(base::Sys.info()[base::c("sysname", [13:30:36.834] "release", "version")], collapse = " "), [13:30:36.834] hostname = base::Sys.info()[["nodename"]]) [13:30:36.834] info <- base::sprintf("%s: %s", base::names(info), [13:30:36.834] info) [13:30:36.834] info <- base::paste(info, collapse = "; ") [13:30:36.834] if (!has_future) { [13:30:36.834] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:30:36.834] info) [13:30:36.834] } [13:30:36.834] else { [13:30:36.834] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:30:36.834] info, version) [13:30:36.834] } [13:30:36.834] base::stop(msg) [13:30:36.834] } [13:30:36.834] }) [13:30:36.834] } [13:30:36.834] ...future.strategy.old <- future::plan("list") [13:30:36.834] options(future.plan = NULL) [13:30:36.834] Sys.unsetenv("R_FUTURE_PLAN") [13:30:36.834] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:30:36.834] } [13:30:36.834] ...future.workdir <- getwd() [13:30:36.834] } [13:30:36.834] ...future.oldOptions <- base::as.list(base::.Options) [13:30:36.834] ...future.oldEnvVars <- base::Sys.getenv() [13:30:36.834] } [13:30:36.834] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:30:36.834] future.globals.maxSize = NULL, future.globals.method = NULL, [13:30:36.834] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:30:36.834] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:30:36.834] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:30:36.834] future.stdout.windows.reencode = NULL, width = 80L) [13:30:36.834] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:30:36.834] base::names(...future.oldOptions)) [13:30:36.834] } [13:30:36.834] if (FALSE) { [13:30:36.834] } [13:30:36.834] else { [13:30:36.834] if (TRUE) { [13:30:36.834] ...future.stdout <- base::rawConnection(base::raw(0L), [13:30:36.834] open = "w") [13:30:36.834] } [13:30:36.834] else { [13:30:36.834] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:30:36.834] windows = "NUL", "/dev/null"), open = "w") [13:30:36.834] } [13:30:36.834] base::sink(...future.stdout, type = "output", split = FALSE) [13:30:36.834] base::on.exit(if (!base::is.null(...future.stdout)) { [13:30:36.834] base::sink(type = "output", split = FALSE) [13:30:36.834] base::close(...future.stdout) [13:30:36.834] }, add = TRUE) [13:30:36.834] } [13:30:36.834] ...future.frame <- base::sys.nframe() [13:30:36.834] ...future.conditions <- base::list() [13:30:36.834] ...future.rng <- base::globalenv()$.Random.seed [13:30:36.834] if (FALSE) { [13:30:36.834] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:30:36.834] "...future.value", "...future.globalenv.names", ".Random.seed") [13:30:36.834] } [13:30:36.834] ...future.result <- base::tryCatch({ [13:30:36.834] base::withCallingHandlers({ [13:30:36.834] ...future.value <- base::withVisible(base::local(NA)) [13:30:36.834] future::FutureResult(value = ...future.value$value, [13:30:36.834] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:30:36.834] ...future.rng), globalenv = if (FALSE) [13:30:36.834] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:30:36.834] ...future.globalenv.names)) [13:30:36.834] else NULL, started = ...future.startTime, version = "1.8") [13:30:36.834] }, condition = base::local({ [13:30:36.834] c <- base::c [13:30:36.834] inherits <- base::inherits [13:30:36.834] invokeRestart <- base::invokeRestart [13:30:36.834] length <- base::length [13:30:36.834] list <- base::list [13:30:36.834] seq.int <- base::seq.int [13:30:36.834] signalCondition <- base::signalCondition [13:30:36.834] sys.calls <- base::sys.calls [13:30:36.834] `[[` <- base::`[[` [13:30:36.834] `+` <- base::`+` [13:30:36.834] `<<-` <- base::`<<-` [13:30:36.834] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:30:36.834] calls[seq.int(from = from + 12L, to = length(calls) - [13:30:36.834] 3L)] [13:30:36.834] } [13:30:36.834] function(cond) { [13:30:36.834] is_error <- inherits(cond, "error") [13:30:36.834] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:30:36.834] NULL) [13:30:36.834] if (is_error) { [13:30:36.834] sessionInformation <- function() { [13:30:36.834] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:30:36.834] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:30:36.834] search = base::search(), system = base::Sys.info()) [13:30:36.834] } [13:30:36.834] ...future.conditions[[length(...future.conditions) + [13:30:36.834] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:30:36.834] cond$call), session = sessionInformation(), [13:30:36.834] timestamp = base::Sys.time(), signaled = 0L) [13:30:36.834] signalCondition(cond) [13:30:36.834] } [13:30:36.834] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:30:36.834] signal <- FALSE && inherits(cond, character(0)) [13:30:36.834] ...future.conditions[[length(...future.conditions) + [13:30:36.834] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:30:36.834] if (FALSE && !signal) { [13:30:36.834] muffleCondition <- function (cond, pattern = "^muffle") [13:30:36.834] { [13:30:36.834] inherits <- base::inherits [13:30:36.834] invokeRestart <- base::invokeRestart [13:30:36.834] is.null <- base::is.null [13:30:36.834] muffled <- FALSE [13:30:36.834] if (inherits(cond, "message")) { [13:30:36.834] muffled <- grepl(pattern, "muffleMessage") [13:30:36.834] if (muffled) [13:30:36.834] invokeRestart("muffleMessage") [13:30:36.834] } [13:30:36.834] else if (inherits(cond, "warning")) { [13:30:36.834] muffled <- grepl(pattern, "muffleWarning") [13:30:36.834] if (muffled) [13:30:36.834] invokeRestart("muffleWarning") [13:30:36.834] } [13:30:36.834] else if (inherits(cond, "condition")) { [13:30:36.834] if (!is.null(pattern)) { [13:30:36.834] computeRestarts <- base::computeRestarts [13:30:36.834] grepl <- base::grepl [13:30:36.834] restarts <- computeRestarts(cond) [13:30:36.834] for (restart in restarts) { [13:30:36.834] name <- restart$name [13:30:36.834] if (is.null(name)) [13:30:36.834] next [13:30:36.834] if (!grepl(pattern, name)) [13:30:36.834] next [13:30:36.834] invokeRestart(restart) [13:30:36.834] muffled <- TRUE [13:30:36.834] break [13:30:36.834] } [13:30:36.834] } [13:30:36.834] } [13:30:36.834] invisible(muffled) [13:30:36.834] } [13:30:36.834] muffleCondition(cond, pattern = "^muffle") [13:30:36.834] } [13:30:36.834] } [13:30:36.834] else { [13:30:36.834] if (TRUE) { [13:30:36.834] muffleCondition <- function (cond, pattern = "^muffle") [13:30:36.834] { [13:30:36.834] inherits <- base::inherits [13:30:36.834] invokeRestart <- base::invokeRestart [13:30:36.834] is.null <- base::is.null [13:30:36.834] muffled <- FALSE [13:30:36.834] if (inherits(cond, "message")) { [13:30:36.834] muffled <- grepl(pattern, "muffleMessage") [13:30:36.834] if (muffled) [13:30:36.834] invokeRestart("muffleMessage") [13:30:36.834] } [13:30:36.834] else if (inherits(cond, "warning")) { [13:30:36.834] muffled <- grepl(pattern, "muffleWarning") [13:30:36.834] if (muffled) [13:30:36.834] invokeRestart("muffleWarning") [13:30:36.834] } [13:30:36.834] else if (inherits(cond, "condition")) { [13:30:36.834] if (!is.null(pattern)) { [13:30:36.834] computeRestarts <- base::computeRestarts [13:30:36.834] grepl <- base::grepl [13:30:36.834] restarts <- computeRestarts(cond) [13:30:36.834] for (restart in restarts) { [13:30:36.834] name <- restart$name [13:30:36.834] if (is.null(name)) [13:30:36.834] next [13:30:36.834] if (!grepl(pattern, name)) [13:30:36.834] next [13:30:36.834] invokeRestart(restart) [13:30:36.834] muffled <- TRUE [13:30:36.834] break [13:30:36.834] } [13:30:36.834] } [13:30:36.834] } [13:30:36.834] invisible(muffled) [13:30:36.834] } [13:30:36.834] muffleCondition(cond, pattern = "^muffle") [13:30:36.834] } [13:30:36.834] } [13:30:36.834] } [13:30:36.834] })) [13:30:36.834] }, error = function(ex) { [13:30:36.834] base::structure(base::list(value = NULL, visible = NULL, [13:30:36.834] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:30:36.834] ...future.rng), started = ...future.startTime, [13:30:36.834] finished = Sys.time(), session_uuid = NA_character_, [13:30:36.834] version = "1.8"), class = "FutureResult") [13:30:36.834] }, finally = { [13:30:36.834] if (!identical(...future.workdir, getwd())) [13:30:36.834] setwd(...future.workdir) [13:30:36.834] { [13:30:36.834] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:30:36.834] ...future.oldOptions$nwarnings <- NULL [13:30:36.834] } [13:30:36.834] base::options(...future.oldOptions) [13:30:36.834] if (.Platform$OS.type == "windows") { [13:30:36.834] old_names <- names(...future.oldEnvVars) [13:30:36.834] envs <- base::Sys.getenv() [13:30:36.834] names <- names(envs) [13:30:36.834] common <- intersect(names, old_names) [13:30:36.834] added <- setdiff(names, old_names) [13:30:36.834] removed <- setdiff(old_names, names) [13:30:36.834] changed <- common[...future.oldEnvVars[common] != [13:30:36.834] envs[common]] [13:30:36.834] NAMES <- toupper(changed) [13:30:36.834] args <- list() [13:30:36.834] for (kk in seq_along(NAMES)) { [13:30:36.834] name <- changed[[kk]] [13:30:36.834] NAME <- NAMES[[kk]] [13:30:36.834] if (name != NAME && is.element(NAME, old_names)) [13:30:36.834] next [13:30:36.834] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:36.834] } [13:30:36.834] NAMES <- toupper(added) [13:30:36.834] for (kk in seq_along(NAMES)) { [13:30:36.834] name <- added[[kk]] [13:30:36.834] NAME <- NAMES[[kk]] [13:30:36.834] if (name != NAME && is.element(NAME, old_names)) [13:30:36.834] next [13:30:36.834] args[[name]] <- "" [13:30:36.834] } [13:30:36.834] NAMES <- toupper(removed) [13:30:36.834] for (kk in seq_along(NAMES)) { [13:30:36.834] name <- removed[[kk]] [13:30:36.834] NAME <- NAMES[[kk]] [13:30:36.834] if (name != NAME && is.element(NAME, old_names)) [13:30:36.834] next [13:30:36.834] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:36.834] } [13:30:36.834] if (length(args) > 0) [13:30:36.834] base::do.call(base::Sys.setenv, args = args) [13:30:36.834] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:30:36.834] } [13:30:36.834] else { [13:30:36.834] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:30:36.834] } [13:30:36.834] { [13:30:36.834] if (base::length(...future.futureOptionsAdded) > [13:30:36.834] 0L) { [13:30:36.834] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:30:36.834] base::names(opts) <- ...future.futureOptionsAdded [13:30:36.834] base::options(opts) [13:30:36.834] } [13:30:36.834] { [13:30:36.834] NULL [13:30:36.834] options(future.plan = NULL) [13:30:36.834] if (is.na(NA_character_)) [13:30:36.834] Sys.unsetenv("R_FUTURE_PLAN") [13:30:36.834] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:30:36.834] future::plan(...future.strategy.old, .cleanup = FALSE, [13:30:36.834] .init = FALSE) [13:30:36.834] } [13:30:36.834] } [13:30:36.834] } [13:30:36.834] }) [13:30:36.834] if (TRUE) { [13:30:36.834] base::sink(type = "output", split = FALSE) [13:30:36.834] if (TRUE) { [13:30:36.834] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:30:36.834] } [13:30:36.834] else { [13:30:36.834] ...future.result["stdout"] <- base::list(NULL) [13:30:36.834] } [13:30:36.834] base::close(...future.stdout) [13:30:36.834] ...future.stdout <- NULL [13:30:36.834] } [13:30:36.834] ...future.result$conditions <- ...future.conditions [13:30:36.834] ...future.result$finished <- base::Sys.time() [13:30:36.834] ...future.result [13:30:36.834] } [13:30:36.954] plan(): plan_init() of 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' ... DONE [13:30:36.954] plan(): nbrOfWorkers() = 2 > > options(future.demo.mandelbrot.nrow = 2L) > options(future.demo.mandelbrot.resolution = 50L) > options(future.demo.mandelbrot.delay = FALSE) > > message("*** Demos ...") *** Demos ... > > message("*** Mandelbrot demo of the 'future' package ...") *** Mandelbrot demo of the 'future' package ... > > plan(mirai_multisession, workers = 2) [13:30:36.956] plan(): Setting new future strategy stack: [13:30:36.956] List of future strategies: [13:30:36.956] 1. mirai_multisession: [13:30:36.956] - args: function (..., workers = 2, envir = parent.frame()) [13:30:36.956] - tweaked: TRUE [13:30:36.956] - call: plan(mirai_multisession, workers = 2) [13:30:36.970] plan(): plan_init() of 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' ... [13:30:36.970] < mirai [$data] > [13:30:36.970] getGlobalsAndPackages() ... [13:30:36.971] Not searching for globals [13:30:36.971] - globals: [0] [13:30:36.971] getGlobalsAndPackages() ... DONE [13:30:36.971] getGlobalsAndPackages() ... [13:30:36.971] [13:30:36.971] - globals: [0] [13:30:36.972] getGlobalsAndPackages() ... DONE [13:30:36.972] Packages needed by the future expression (n = 0): [13:30:36.972] Packages needed by future strategies (n = 0): [13:30:36.973] { [13:30:36.973] { [13:30:36.973] { [13:30:36.973] ...future.startTime <- base::Sys.time() [13:30:36.973] { [13:30:36.973] { [13:30:36.973] { [13:30:36.973] base::local({ [13:30:36.973] has_future <- base::requireNamespace("future", [13:30:36.973] quietly = TRUE) [13:30:36.973] if (has_future) { [13:30:36.973] ns <- base::getNamespace("future") [13:30:36.973] version <- ns[[".package"]][["version"]] [13:30:36.973] if (is.null(version)) [13:30:36.973] version <- utils::packageVersion("future") [13:30:36.973] } [13:30:36.973] else { [13:30:36.973] version <- NULL [13:30:36.973] } [13:30:36.973] if (!has_future || version < "1.8.0") { [13:30:36.973] info <- base::c(r_version = base::gsub("R version ", [13:30:36.973] "", base::R.version$version.string), [13:30:36.973] platform = base::sprintf("%s (%s-bit)", [13:30:36.973] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:30:36.973] os = base::paste(base::Sys.info()[base::c("sysname", [13:30:36.973] "release", "version")], collapse = " "), [13:30:36.973] hostname = base::Sys.info()[["nodename"]]) [13:30:36.973] info <- base::sprintf("%s: %s", base::names(info), [13:30:36.973] info) [13:30:36.973] info <- base::paste(info, collapse = "; ") [13:30:36.973] if (!has_future) { [13:30:36.973] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:30:36.973] info) [13:30:36.973] } [13:30:36.973] else { [13:30:36.973] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:30:36.973] info, version) [13:30:36.973] } [13:30:36.973] base::stop(msg) [13:30:36.973] } [13:30:36.973] }) [13:30:36.973] } [13:30:36.973] ...future.strategy.old <- future::plan("list") [13:30:36.973] options(future.plan = NULL) [13:30:36.973] Sys.unsetenv("R_FUTURE_PLAN") [13:30:36.973] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:30:36.973] } [13:30:36.973] ...future.workdir <- getwd() [13:30:36.973] } [13:30:36.973] ...future.oldOptions <- base::as.list(base::.Options) [13:30:36.973] ...future.oldEnvVars <- base::Sys.getenv() [13:30:36.973] } [13:30:36.973] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:30:36.973] future.globals.maxSize = NULL, future.globals.method = NULL, [13:30:36.973] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:30:36.973] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:30:36.973] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:30:36.973] future.stdout.windows.reencode = NULL, width = 80L) [13:30:36.973] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:30:36.973] base::names(...future.oldOptions)) [13:30:36.973] } [13:30:36.973] if (FALSE) { [13:30:36.973] } [13:30:36.973] else { [13:30:36.973] if (TRUE) { [13:30:36.973] ...future.stdout <- base::rawConnection(base::raw(0L), [13:30:36.973] open = "w") [13:30:36.973] } [13:30:36.973] else { [13:30:36.973] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:30:36.973] windows = "NUL", "/dev/null"), open = "w") [13:30:36.973] } [13:30:36.973] base::sink(...future.stdout, type = "output", split = FALSE) [13:30:36.973] base::on.exit(if (!base::is.null(...future.stdout)) { [13:30:36.973] base::sink(type = "output", split = FALSE) [13:30:36.973] base::close(...future.stdout) [13:30:36.973] }, add = TRUE) [13:30:36.973] } [13:30:36.973] ...future.frame <- base::sys.nframe() [13:30:36.973] ...future.conditions <- base::list() [13:30:36.973] ...future.rng <- base::globalenv()$.Random.seed [13:30:36.973] if (FALSE) { [13:30:36.973] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:30:36.973] "...future.value", "...future.globalenv.names", ".Random.seed") [13:30:36.973] } [13:30:36.973] ...future.result <- base::tryCatch({ [13:30:36.973] base::withCallingHandlers({ [13:30:36.973] ...future.value <- base::withVisible(base::local(NA)) [13:30:36.973] future::FutureResult(value = ...future.value$value, [13:30:36.973] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:30:36.973] ...future.rng), globalenv = if (FALSE) [13:30:36.973] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:30:36.973] ...future.globalenv.names)) [13:30:36.973] else NULL, started = ...future.startTime, version = "1.8") [13:30:36.973] }, condition = base::local({ [13:30:36.973] c <- base::c [13:30:36.973] inherits <- base::inherits [13:30:36.973] invokeRestart <- base::invokeRestart [13:30:36.973] length <- base::length [13:30:36.973] list <- base::list [13:30:36.973] seq.int <- base::seq.int [13:30:36.973] signalCondition <- base::signalCondition [13:30:36.973] sys.calls <- base::sys.calls [13:30:36.973] `[[` <- base::`[[` [13:30:36.973] `+` <- base::`+` [13:30:36.973] `<<-` <- base::`<<-` [13:30:36.973] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:30:36.973] calls[seq.int(from = from + 12L, to = length(calls) - [13:30:36.973] 3L)] [13:30:36.973] } [13:30:36.973] function(cond) { [13:30:36.973] is_error <- inherits(cond, "error") [13:30:36.973] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:30:36.973] NULL) [13:30:36.973] if (is_error) { [13:30:36.973] sessionInformation <- function() { [13:30:36.973] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:30:36.973] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:30:36.973] search = base::search(), system = base::Sys.info()) [13:30:36.973] } [13:30:36.973] ...future.conditions[[length(...future.conditions) + [13:30:36.973] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:30:36.973] cond$call), session = sessionInformation(), [13:30:36.973] timestamp = base::Sys.time(), signaled = 0L) [13:30:36.973] signalCondition(cond) [13:30:36.973] } [13:30:36.973] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:30:36.973] signal <- FALSE && inherits(cond, character(0)) [13:30:36.973] ...future.conditions[[length(...future.conditions) + [13:30:36.973] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:30:36.973] if (FALSE && !signal) { [13:30:36.973] muffleCondition <- function (cond, pattern = "^muffle") [13:30:36.973] { [13:30:36.973] inherits <- base::inherits [13:30:36.973] invokeRestart <- base::invokeRestart [13:30:36.973] is.null <- base::is.null [13:30:36.973] muffled <- FALSE [13:30:36.973] if (inherits(cond, "message")) { [13:30:36.973] muffled <- grepl(pattern, "muffleMessage") [13:30:36.973] if (muffled) [13:30:36.973] invokeRestart("muffleMessage") [13:30:36.973] } [13:30:36.973] else if (inherits(cond, "warning")) { [13:30:36.973] muffled <- grepl(pattern, "muffleWarning") [13:30:36.973] if (muffled) [13:30:36.973] invokeRestart("muffleWarning") [13:30:36.973] } [13:30:36.973] else if (inherits(cond, "condition")) { [13:30:36.973] if (!is.null(pattern)) { [13:30:36.973] computeRestarts <- base::computeRestarts [13:30:36.973] grepl <- base::grepl [13:30:36.973] restarts <- computeRestarts(cond) [13:30:36.973] for (restart in restarts) { [13:30:36.973] name <- restart$name [13:30:36.973] if (is.null(name)) [13:30:36.973] next [13:30:36.973] if (!grepl(pattern, name)) [13:30:36.973] next [13:30:36.973] invokeRestart(restart) [13:30:36.973] muffled <- TRUE [13:30:36.973] break [13:30:36.973] } [13:30:36.973] } [13:30:36.973] } [13:30:36.973] invisible(muffled) [13:30:36.973] } [13:30:36.973] muffleCondition(cond, pattern = "^muffle") [13:30:36.973] } [13:30:36.973] } [13:30:36.973] else { [13:30:36.973] if (TRUE) { [13:30:36.973] muffleCondition <- function (cond, pattern = "^muffle") [13:30:36.973] { [13:30:36.973] inherits <- base::inherits [13:30:36.973] invokeRestart <- base::invokeRestart [13:30:36.973] is.null <- base::is.null [13:30:36.973] muffled <- FALSE [13:30:36.973] if (inherits(cond, "message")) { [13:30:36.973] muffled <- grepl(pattern, "muffleMessage") [13:30:36.973] if (muffled) [13:30:36.973] invokeRestart("muffleMessage") [13:30:36.973] } [13:30:36.973] else if (inherits(cond, "warning")) { [13:30:36.973] muffled <- grepl(pattern, "muffleWarning") [13:30:36.973] if (muffled) [13:30:36.973] invokeRestart("muffleWarning") [13:30:36.973] } [13:30:36.973] else if (inherits(cond, "condition")) { [13:30:36.973] if (!is.null(pattern)) { [13:30:36.973] computeRestarts <- base::computeRestarts [13:30:36.973] grepl <- base::grepl [13:30:36.973] restarts <- computeRestarts(cond) [13:30:36.973] for (restart in restarts) { [13:30:36.973] name <- restart$name [13:30:36.973] if (is.null(name)) [13:30:36.973] next [13:30:36.973] if (!grepl(pattern, name)) [13:30:36.973] next [13:30:36.973] invokeRestart(restart) [13:30:36.973] muffled <- TRUE [13:30:36.973] break [13:30:36.973] } [13:30:36.973] } [13:30:36.973] } [13:30:36.973] invisible(muffled) [13:30:36.973] } [13:30:36.973] muffleCondition(cond, pattern = "^muffle") [13:30:36.973] } [13:30:36.973] } [13:30:36.973] } [13:30:36.973] })) [13:30:36.973] }, error = function(ex) { [13:30:36.973] base::structure(base::list(value = NULL, visible = NULL, [13:30:36.973] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:30:36.973] ...future.rng), started = ...future.startTime, [13:30:36.973] finished = Sys.time(), session_uuid = NA_character_, [13:30:36.973] version = "1.8"), class = "FutureResult") [13:30:36.973] }, finally = { [13:30:36.973] if (!identical(...future.workdir, getwd())) [13:30:36.973] setwd(...future.workdir) [13:30:36.973] { [13:30:36.973] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:30:36.973] ...future.oldOptions$nwarnings <- NULL [13:30:36.973] } [13:30:36.973] base::options(...future.oldOptions) [13:30:36.973] if (.Platform$OS.type == "windows") { [13:30:36.973] old_names <- names(...future.oldEnvVars) [13:30:36.973] envs <- base::Sys.getenv() [13:30:36.973] names <- names(envs) [13:30:36.973] common <- intersect(names, old_names) [13:30:36.973] added <- setdiff(names, old_names) [13:30:36.973] removed <- setdiff(old_names, names) [13:30:36.973] changed <- common[...future.oldEnvVars[common] != [13:30:36.973] envs[common]] [13:30:36.973] NAMES <- toupper(changed) [13:30:36.973] args <- list() [13:30:36.973] for (kk in seq_along(NAMES)) { [13:30:36.973] name <- changed[[kk]] [13:30:36.973] NAME <- NAMES[[kk]] [13:30:36.973] if (name != NAME && is.element(NAME, old_names)) [13:30:36.973] next [13:30:36.973] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:36.973] } [13:30:36.973] NAMES <- toupper(added) [13:30:36.973] for (kk in seq_along(NAMES)) { [13:30:36.973] name <- added[[kk]] [13:30:36.973] NAME <- NAMES[[kk]] [13:30:36.973] if (name != NAME && is.element(NAME, old_names)) [13:30:36.973] next [13:30:36.973] args[[name]] <- "" [13:30:36.973] } [13:30:36.973] NAMES <- toupper(removed) [13:30:36.973] for (kk in seq_along(NAMES)) { [13:30:36.973] name <- removed[[kk]] [13:30:36.973] NAME <- NAMES[[kk]] [13:30:36.973] if (name != NAME && is.element(NAME, old_names)) [13:30:36.973] next [13:30:36.973] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:36.973] } [13:30:36.973] if (length(args) > 0) [13:30:36.973] base::do.call(base::Sys.setenv, args = args) [13:30:36.973] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:30:36.973] } [13:30:36.973] else { [13:30:36.973] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:30:36.973] } [13:30:36.973] { [13:30:36.973] if (base::length(...future.futureOptionsAdded) > [13:30:36.973] 0L) { [13:30:36.973] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:30:36.973] base::names(opts) <- ...future.futureOptionsAdded [13:30:36.973] base::options(opts) [13:30:36.973] } [13:30:36.973] { [13:30:36.973] NULL [13:30:36.973] options(future.plan = NULL) [13:30:36.973] if (is.na(NA_character_)) [13:30:36.973] Sys.unsetenv("R_FUTURE_PLAN") [13:30:36.973] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:30:36.973] future::plan(...future.strategy.old, .cleanup = FALSE, [13:30:36.973] .init = FALSE) [13:30:36.973] } [13:30:36.973] } [13:30:36.973] } [13:30:36.973] }) [13:30:36.973] if (TRUE) { [13:30:36.973] base::sink(type = "output", split = FALSE) [13:30:36.973] if (TRUE) { [13:30:36.973] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:30:36.973] } [13:30:36.973] else { [13:30:36.973] ...future.result["stdout"] <- base::list(NULL) [13:30:36.973] } [13:30:36.973] base::close(...future.stdout) [13:30:36.973] ...future.stdout <- NULL [13:30:36.973] } [13:30:36.973] ...future.result$conditions <- ...future.conditions [13:30:36.973] ...future.result$finished <- base::Sys.time() [13:30:36.973] ...future.result [13:30:36.973] } [13:30:37.093] plan(): plan_init() of 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' ... DONE [13:30:37.093] plan(): nbrOfWorkers() = 2 > demo("mandelbrot", package = "future", ask = FALSE) demo(mandelbrot) ---- ~~~~~~~~~~ > library("future") > library("graphics") > plot_what_is_done <- function(counts) { + for (kk in seq_along(counts)) { + f <- counts[[kk]] + + ## Already plotted? + if (!inherits(f, "Future")) next + + ## Not resolved? + if (!resolved(f)) next + + message(sprintf("Plotting tile #%d of %d ...", kk, n)) + counts[[kk]] <- value(f) + screen(kk) + plot(counts[[kk]]) + } + + counts + } > ## Options > region <- getOption("future.demo.mandelbrot.region", 1L) > if (!is.list(region)) { + if (region == 1L) { + region <- list(xmid = -0.75, ymid = 0.0, side = 3.0) + } else if (region == 2L) { + region <- list(xmid = 0.283, ymid = -0.0095, side = 0.00026) + } else if (region == 3L) { + region <- list(xmid = 0.282989, ymid = -0.01, side = 3e-8) + } + } > nrow <- getOption("future.demo.mandelbrot.nrow", 3L) > resolution <- getOption("future.demo.mandelbrot.resolution", 400L) > delay <- getOption("future.demo.mandelbrot.delay", interactive()) > if (isTRUE(delay)) { + delay <- function(counts) Sys.sleep(1.0) + } else if (!is.function(delay)) { + delay <- function(counts) {} + } > ## Generate Mandelbrot tiles to be computed > Cs <- mandelbrot_tiles(xmid = region$xmid, ymid = region$ymid, + side = region$side, nrow = nrow, + resolution = resolution) > if (interactive()) { + dev.new() + plot.new() + split.screen(dim(Cs)) + for (ii in seq_along(Cs)) { + screen(ii) + par(mar = c(0, 0, 0, 0)) + text(x = 1 / 2, y = 1 / 2, sprintf("Future #%d\nunresolved", ii), cex = 2) + } + } else { + split.screen(dim(Cs)) + } [1] 1 2 3 4 > ## Create all Mandelbrot tiles via lazy futures > n <- length(Cs) > message(sprintf("Creating %d Mandelbrot tiles:", n), appendLF = FALSE) Creating 4 Mandelbrot tiles: > counts <- lapply(seq_along(Cs), FUN=function(ii) { + message(" ", ii, appendLF = FALSE) + C <- Cs[[ii]] + future({ + message(sprintf("Calculating tile #%d of %d ...", ii, n), appendLF = FALSE) + fit <- mandelbrot(C) + + ## Emulate slowness + delay(fit) + + message(" done") + fit + }, lazy = TRUE) + }) 1[13:30:37.147] getGlobalsAndPackages() ... [13:30:37.148] Searching for globals... [13:30:37.158] - globals found: [9] '{', 'message', 'sprintf', 'ii', 'n', '<-', 'mandelbrot', 'C', 'delay' [13:30:37.159] Searching for globals ... DONE [13:30:37.159] Resolving globals: FALSE [13:30:37.160] The total size of the 4 globals is 14.24 KiB (14584 bytes) [13:30:37.161] The total size of the 4 globals exported for future expression ('{; message(sprintf("Calculating tile #%d of %d ...", ii, n),; appendLF = FALSE); fit <- mandelbrot(C); delay(fit); message(" done"); fit; }') is 14.24 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). The three largest globals are 'C' (10.72 KiB of class 'complex'), 'delay' (3.41 KiB of class 'function') and 'ii' (56 bytes of class 'numeric') [13:30:37.161] - globals: [4] 'ii', 'n', 'C', 'delay' [13:30:37.161] - packages: [1] 'future' [13:30:37.162] getGlobalsAndPackages() ... DONE 2[13:30:37.166] getGlobalsAndPackages() ... [13:30:37.166] Searching for globals... [13:30:37.172] - globals found: [9] '{', 'message', 'sprintf', 'ii', 'n', '<-', 'mandelbrot', 'C', 'delay' [13:30:37.172] Searching for globals ... DONE [13:30:37.173] Resolving globals: FALSE [13:30:37.173] The total size of the 4 globals is 14.24 KiB (14584 bytes) [13:30:37.174] The total size of the 4 globals exported for future expression ('{; message(sprintf("Calculating tile #%d of %d ...", ii, n),; appendLF = FALSE); fit <- mandelbrot(C); delay(fit); message(" done"); fit; }') is 14.24 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). The three largest globals are 'C' (10.72 KiB of class 'complex'), 'delay' (3.41 KiB of class 'function') and 'ii' (56 bytes of class 'numeric') [13:30:37.174] - globals: [4] 'ii', 'n', 'C', 'delay' [13:30:37.174] - packages: [1] 'future' [13:30:37.174] getGlobalsAndPackages() ... DONE 3[13:30:37.175] getGlobalsAndPackages() ... [13:30:37.175] Searching for globals... [13:30:37.179] - globals found: [9] '{', 'message', 'sprintf', 'ii', 'n', '<-', 'mandelbrot', 'C', 'delay' [13:30:37.179] Searching for globals ... DONE [13:30:37.179] Resolving globals: FALSE [13:30:37.180] The total size of the 4 globals is 14.24 KiB (14584 bytes) [13:30:37.181] The total size of the 4 globals exported for future expression ('{; message(sprintf("Calculating tile #%d of %d ...", ii, n),; appendLF = FALSE); fit <- mandelbrot(C); delay(fit); message(" done"); fit; }') is 14.24 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). The three largest globals are 'C' (10.72 KiB of class 'complex'), 'delay' (3.41 KiB of class 'function') and 'ii' (56 bytes of class 'numeric') [13:30:37.181] - globals: [4] 'ii', 'n', 'C', 'delay' [13:30:37.181] - packages: [1] 'future' [13:30:37.181] getGlobalsAndPackages() ... DONE 4[13:30:37.182] getGlobalsAndPackages() ... [13:30:37.182] Searching for globals... [13:30:37.186] - globals found: [9] '{', 'message', 'sprintf', 'ii', 'n', '<-', 'mandelbrot', 'C', 'delay' [13:30:37.186] Searching for globals ... DONE [13:30:37.186] Resolving globals: FALSE [13:30:37.187] The total size of the 4 globals is 14.24 KiB (14584 bytes) [13:30:37.187] The total size of the 4 globals exported for future expression ('{; message(sprintf("Calculating tile #%d of %d ...", ii, n),; appendLF = FALSE); fit <- mandelbrot(C); delay(fit); message(" done"); fit; }') is 14.24 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). The three largest globals are 'C' (10.72 KiB of class 'complex'), 'delay' (3.41 KiB of class 'function') and 'ii' (56 bytes of class 'numeric') [13:30:37.188] - globals: [4] 'ii', 'n', 'C', 'delay' [13:30:37.188] - packages: [1] 'future' [13:30:37.188] getGlobalsAndPackages() ... DONE > message(".") . > ## Calculate and plot tiles > repeat { + counts <- plot_what_is_done(counts) + if (!any(sapply(counts, FUN = inherits, "Future"))) break + } [13:30:37.199] resolved() for 'Future' ... [13:30:37.199] - state: 'created' [13:30:37.199] - run: TRUE [13:30:37.200] - run() ... [13:30:37.200] run() for 'Future' ... [13:30:37.200] - state: 'created' [13:30:37.200] - Future backend: 'FutureStrategy', 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' [13:30:37.201] - Future class: 'MiraiFuture', 'MultiprocessFuture', 'Future', 'environment' [13:30:37.201] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... [13:30:37.201] - Field: 'label' [13:30:37.201] - Field: 'local' [13:30:37.202] - Field: 'owner' [13:30:37.202] - Field: 'envir' [13:30:37.202] - Field: 'packages' [13:30:37.202] - Field: 'gc' [13:30:37.202] - Field: 'conditions' [13:30:37.202] - Field: 'expr' [13:30:37.203] - Field: 'uuid' [13:30:37.203] - Field: 'seed' [13:30:37.203] - Field: 'version' [13:30:37.203] - Field: 'result' [13:30:37.203] - Field: 'asynchronous' [13:30:37.203] - Field: 'calls' [13:30:37.204] - Field: 'globals' [13:30:37.204] - Field: 'stdout' [13:30:37.204] - Field: 'earlySignal' [13:30:37.204] - Field: 'lazy' [13:30:37.204] - Field: 'state' [13:30:37.204] - Field: '.cluster' [13:30:37.205] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... done [13:30:37.205] - Launch lazy future ... [13:30:37.205] Packages needed by the future expression (n = 1): 'future' [13:30:37.205] Packages needed by future strategies (n = 0): [13:30:37.206] { [13:30:37.206] { [13:30:37.206] { [13:30:37.206] ...future.startTime <- base::Sys.time() [13:30:37.206] { [13:30:37.206] { [13:30:37.206] { [13:30:37.206] { [13:30:37.206] base::local({ [13:30:37.206] has_future <- base::requireNamespace("future", [13:30:37.206] quietly = TRUE) [13:30:37.206] if (has_future) { [13:30:37.206] ns <- base::getNamespace("future") [13:30:37.206] version <- ns[[".package"]][["version"]] [13:30:37.206] if (is.null(version)) [13:30:37.206] version <- utils::packageVersion("future") [13:30:37.206] } [13:30:37.206] else { [13:30:37.206] version <- NULL [13:30:37.206] } [13:30:37.206] if (!has_future || version < "1.8.0") { [13:30:37.206] info <- base::c(r_version = base::gsub("R version ", [13:30:37.206] "", base::R.version$version.string), [13:30:37.206] platform = base::sprintf("%s (%s-bit)", [13:30:37.206] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:30:37.206] os = base::paste(base::Sys.info()[base::c("sysname", [13:30:37.206] "release", "version")], collapse = " "), [13:30:37.206] hostname = base::Sys.info()[["nodename"]]) [13:30:37.206] info <- base::sprintf("%s: %s", base::names(info), [13:30:37.206] info) [13:30:37.206] info <- base::paste(info, collapse = "; ") [13:30:37.206] if (!has_future) { [13:30:37.206] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:30:37.206] info) [13:30:37.206] } [13:30:37.206] else { [13:30:37.206] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:30:37.206] info, version) [13:30:37.206] } [13:30:37.206] base::stop(msg) [13:30:37.206] } [13:30:37.206] }) [13:30:37.206] } [13:30:37.206] base::local({ [13:30:37.206] for (pkg in "future") { [13:30:37.206] base::loadNamespace(pkg) [13:30:37.206] base::library(pkg, character.only = TRUE) [13:30:37.206] } [13:30:37.206] }) [13:30:37.206] } [13:30:37.206] ...future.strategy.old <- future::plan("list") [13:30:37.206] options(future.plan = NULL) [13:30:37.206] Sys.unsetenv("R_FUTURE_PLAN") [13:30:37.206] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:30:37.206] } [13:30:37.206] ...future.workdir <- getwd() [13:30:37.206] } [13:30:37.206] ...future.oldOptions <- base::as.list(base::.Options) [13:30:37.206] ...future.oldEnvVars <- base::Sys.getenv() [13:30:37.206] } [13:30:37.206] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:30:37.206] future.globals.maxSize = NULL, future.globals.method = NULL, [13:30:37.206] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:30:37.206] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:30:37.206] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:30:37.206] future.stdout.windows.reencode = NULL, width = 80L) [13:30:37.206] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:30:37.206] base::names(...future.oldOptions)) [13:30:37.206] } [13:30:37.206] if (FALSE) { [13:30:37.206] } [13:30:37.206] else { [13:30:37.206] if (TRUE) { [13:30:37.206] ...future.stdout <- base::rawConnection(base::raw(0L), [13:30:37.206] open = "w") [13:30:37.206] } [13:30:37.206] else { [13:30:37.206] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:30:37.206] windows = "NUL", "/dev/null"), open = "w") [13:30:37.206] } [13:30:37.206] base::sink(...future.stdout, type = "output", split = FALSE) [13:30:37.206] base::on.exit(if (!base::is.null(...future.stdout)) { [13:30:37.206] base::sink(type = "output", split = FALSE) [13:30:37.206] base::close(...future.stdout) [13:30:37.206] }, add = TRUE) [13:30:37.206] } [13:30:37.206] ...future.frame <- base::sys.nframe() [13:30:37.206] ...future.conditions <- base::list() [13:30:37.206] ...future.rng <- base::globalenv()$.Random.seed [13:30:37.206] if (FALSE) { [13:30:37.206] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:30:37.206] "...future.value", "...future.globalenv.names", ".Random.seed") [13:30:37.206] } [13:30:37.206] ...future.result <- base::tryCatch({ [13:30:37.206] base::withCallingHandlers({ [13:30:37.206] ...future.value <- base::withVisible(base::local({ [13:30:37.206] message(sprintf("Calculating tile #%d of %d ...", [13:30:37.206] ii, n), appendLF = FALSE) [13:30:37.206] fit <- mandelbrot(C) [13:30:37.206] delay(fit) [13:30:37.206] message(" done") [13:30:37.206] fit [13:30:37.206] })) [13:30:37.206] future::FutureResult(value = ...future.value$value, [13:30:37.206] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:30:37.206] ...future.rng), globalenv = if (FALSE) [13:30:37.206] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:30:37.206] ...future.globalenv.names)) [13:30:37.206] else NULL, started = ...future.startTime, version = "1.8") [13:30:37.206] }, condition = base::local({ [13:30:37.206] c <- base::c [13:30:37.206] inherits <- base::inherits [13:30:37.206] invokeRestart <- base::invokeRestart [13:30:37.206] length <- base::length [13:30:37.206] list <- base::list [13:30:37.206] seq.int <- base::seq.int [13:30:37.206] signalCondition <- base::signalCondition [13:30:37.206] sys.calls <- base::sys.calls [13:30:37.206] `[[` <- base::`[[` [13:30:37.206] `+` <- base::`+` [13:30:37.206] `<<-` <- base::`<<-` [13:30:37.206] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:30:37.206] calls[seq.int(from = from + 12L, to = length(calls) - [13:30:37.206] 3L)] [13:30:37.206] } [13:30:37.206] function(cond) { [13:30:37.206] is_error <- inherits(cond, "error") [13:30:37.206] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:30:37.206] NULL) [13:30:37.206] if (is_error) { [13:30:37.206] sessionInformation <- function() { [13:30:37.206] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:30:37.206] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:30:37.206] search = base::search(), system = base::Sys.info()) [13:30:37.206] } [13:30:37.206] ...future.conditions[[length(...future.conditions) + [13:30:37.206] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:30:37.206] cond$call), session = sessionInformation(), [13:30:37.206] timestamp = base::Sys.time(), signaled = 0L) [13:30:37.206] signalCondition(cond) [13:30:37.206] } [13:30:37.206] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:30:37.206] signal <- FALSE && inherits(cond, character(0)) [13:30:37.206] ...future.conditions[[length(...future.conditions) + [13:30:37.206] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:30:37.206] if (FALSE && !signal) { [13:30:37.206] muffleCondition <- function (cond, pattern = "^muffle") [13:30:37.206] { [13:30:37.206] inherits <- base::inherits [13:30:37.206] invokeRestart <- base::invokeRestart [13:30:37.206] is.null <- base::is.null [13:30:37.206] muffled <- FALSE [13:30:37.206] if (inherits(cond, "message")) { [13:30:37.206] muffled <- grepl(pattern, "muffleMessage") [13:30:37.206] if (muffled) [13:30:37.206] invokeRestart("muffleMessage") [13:30:37.206] } [13:30:37.206] else if (inherits(cond, "warning")) { [13:30:37.206] muffled <- grepl(pattern, "muffleWarning") [13:30:37.206] if (muffled) [13:30:37.206] invokeRestart("muffleWarning") [13:30:37.206] } [13:30:37.206] else if (inherits(cond, "condition")) { [13:30:37.206] if (!is.null(pattern)) { [13:30:37.206] computeRestarts <- base::computeRestarts [13:30:37.206] grepl <- base::grepl [13:30:37.206] restarts <- computeRestarts(cond) [13:30:37.206] for (restart in restarts) { [13:30:37.206] name <- restart$name [13:30:37.206] if (is.null(name)) [13:30:37.206] next [13:30:37.206] if (!grepl(pattern, name)) [13:30:37.206] next [13:30:37.206] invokeRestart(restart) [13:30:37.206] muffled <- TRUE [13:30:37.206] break [13:30:37.206] } [13:30:37.206] } [13:30:37.206] } [13:30:37.206] invisible(muffled) [13:30:37.206] } [13:30:37.206] muffleCondition(cond, pattern = "^muffle") [13:30:37.206] } [13:30:37.206] } [13:30:37.206] else { [13:30:37.206] if (TRUE) { [13:30:37.206] muffleCondition <- function (cond, pattern = "^muffle") [13:30:37.206] { [13:30:37.206] inherits <- base::inherits [13:30:37.206] invokeRestart <- base::invokeRestart [13:30:37.206] is.null <- base::is.null [13:30:37.206] muffled <- FALSE [13:30:37.206] if (inherits(cond, "message")) { [13:30:37.206] muffled <- grepl(pattern, "muffleMessage") [13:30:37.206] if (muffled) [13:30:37.206] invokeRestart("muffleMessage") [13:30:37.206] } [13:30:37.206] else if (inherits(cond, "warning")) { [13:30:37.206] muffled <- grepl(pattern, "muffleWarning") [13:30:37.206] if (muffled) [13:30:37.206] invokeRestart("muffleWarning") [13:30:37.206] } [13:30:37.206] else if (inherits(cond, "condition")) { [13:30:37.206] if (!is.null(pattern)) { [13:30:37.206] computeRestarts <- base::computeRestarts [13:30:37.206] grepl <- base::grepl [13:30:37.206] restarts <- computeRestarts(cond) [13:30:37.206] for (restart in restarts) { [13:30:37.206] name <- restart$name [13:30:37.206] if (is.null(name)) [13:30:37.206] next [13:30:37.206] if (!grepl(pattern, name)) [13:30:37.206] next [13:30:37.206] invokeRestart(restart) [13:30:37.206] muffled <- TRUE [13:30:37.206] break [13:30:37.206] } [13:30:37.206] } [13:30:37.206] } [13:30:37.206] invisible(muffled) [13:30:37.206] } [13:30:37.206] muffleCondition(cond, pattern = "^muffle") [13:30:37.206] } [13:30:37.206] } [13:30:37.206] } [13:30:37.206] })) [13:30:37.206] }, error = function(ex) { [13:30:37.206] base::structure(base::list(value = NULL, visible = NULL, [13:30:37.206] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:30:37.206] ...future.rng), started = ...future.startTime, [13:30:37.206] finished = Sys.time(), session_uuid = NA_character_, [13:30:37.206] version = "1.8"), class = "FutureResult") [13:30:37.206] }, finally = { [13:30:37.206] if (!identical(...future.workdir, getwd())) [13:30:37.206] setwd(...future.workdir) [13:30:37.206] { [13:30:37.206] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:30:37.206] ...future.oldOptions$nwarnings <- NULL [13:30:37.206] } [13:30:37.206] base::options(...future.oldOptions) [13:30:37.206] if (.Platform$OS.type == "windows") { [13:30:37.206] old_names <- names(...future.oldEnvVars) [13:30:37.206] envs <- base::Sys.getenv() [13:30:37.206] names <- names(envs) [13:30:37.206] common <- intersect(names, old_names) [13:30:37.206] added <- setdiff(names, old_names) [13:30:37.206] removed <- setdiff(old_names, names) [13:30:37.206] changed <- common[...future.oldEnvVars[common] != [13:30:37.206] envs[common]] [13:30:37.206] NAMES <- toupper(changed) [13:30:37.206] args <- list() [13:30:37.206] for (kk in seq_along(NAMES)) { [13:30:37.206] name <- changed[[kk]] [13:30:37.206] NAME <- NAMES[[kk]] [13:30:37.206] if (name != NAME && is.element(NAME, old_names)) [13:30:37.206] next [13:30:37.206] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:37.206] } [13:30:37.206] NAMES <- toupper(added) [13:30:37.206] for (kk in seq_along(NAMES)) { [13:30:37.206] name <- added[[kk]] [13:30:37.206] NAME <- NAMES[[kk]] [13:30:37.206] if (name != NAME && is.element(NAME, old_names)) [13:30:37.206] next [13:30:37.206] args[[name]] <- "" [13:30:37.206] } [13:30:37.206] NAMES <- toupper(removed) [13:30:37.206] for (kk in seq_along(NAMES)) { [13:30:37.206] name <- removed[[kk]] [13:30:37.206] NAME <- NAMES[[kk]] [13:30:37.206] if (name != NAME && is.element(NAME, old_names)) [13:30:37.206] next [13:30:37.206] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:37.206] } [13:30:37.206] if (length(args) > 0) [13:30:37.206] base::do.call(base::Sys.setenv, args = args) [13:30:37.206] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:30:37.206] } [13:30:37.206] else { [13:30:37.206] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:30:37.206] } [13:30:37.206] { [13:30:37.206] if (base::length(...future.futureOptionsAdded) > [13:30:37.206] 0L) { [13:30:37.206] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:30:37.206] base::names(opts) <- ...future.futureOptionsAdded [13:30:37.206] base::options(opts) [13:30:37.206] } [13:30:37.206] { [13:30:37.206] NULL [13:30:37.206] options(future.plan = NULL) [13:30:37.206] if (is.na(NA_character_)) [13:30:37.206] Sys.unsetenv("R_FUTURE_PLAN") [13:30:37.206] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:30:37.206] future::plan(...future.strategy.old, .cleanup = FALSE, [13:30:37.206] .init = FALSE) [13:30:37.206] } [13:30:37.206] } [13:30:37.206] } [13:30:37.206] }) [13:30:37.206] if (TRUE) { [13:30:37.206] base::sink(type = "output", split = FALSE) [13:30:37.206] if (TRUE) { [13:30:37.206] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:30:37.206] } [13:30:37.206] else { [13:30:37.206] ...future.result["stdout"] <- base::list(NULL) [13:30:37.206] } [13:30:37.206] base::close(...future.stdout) [13:30:37.206] ...future.stdout <- NULL [13:30:37.206] } [13:30:37.206] ...future.result$conditions <- ...future.conditions [13:30:37.206] ...future.result$finished <- base::Sys.time() [13:30:37.206] ...future.result [13:30:37.206] } [13:30:37.210] - Launch lazy future ... done [13:30:37.210] run() for 'MiraiFuture' ... done [13:30:37.210] - run() ... done [13:30:37.210] - resolved() ... [13:30:37.211] resolved() for 'MiraiFuture' ... [13:30:37.211] - state: 'running' [13:30:37.211] - run: TRUE [13:30:37.211] - result: 'NULL' [13:30:37.211] - resolved: FALSE [13:30:37.212] resolved() for 'MiraiFuture' ... done [13:30:37.212] - resolved: FALSE [13:30:37.212] - resolved() ... done [13:30:37.212] resolved() for 'MiraiFuture' ... done [13:30:37.212] resolved() for 'Future' ... [13:30:37.213] - state: 'created' [13:30:37.213] - run: TRUE [13:30:37.213] - run() ... [13:30:37.213] run() for 'Future' ... [13:30:37.213] - state: 'created' [13:30:37.213] - Future backend: 'FutureStrategy', 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' [13:30:37.214] - Future class: 'MiraiFuture', 'MultiprocessFuture', 'Future', 'environment' [13:30:37.214] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... [13:30:37.214] - Field: 'label' [13:30:37.214] - Field: 'local' [13:30:37.215] - Field: 'owner' [13:30:37.215] - Field: 'envir' [13:30:37.215] - Field: 'packages' [13:30:37.215] - Field: 'gc' [13:30:37.215] - Field: 'conditions' [13:30:37.215] - Field: 'expr' [13:30:37.216] - Field: 'uuid' [13:30:37.216] - Field: 'seed' [13:30:37.216] - Field: 'version' [13:30:37.216] - Field: 'result' [13:30:37.216] - Field: 'asynchronous' [13:30:37.218] - Field: 'calls' [13:30:37.218] - Field: 'globals' [13:30:37.218] - Field: 'stdout' [13:30:37.218] - Field: 'earlySignal' [13:30:37.218] - Field: 'lazy' [13:30:37.218] - Field: 'state' [13:30:37.219] - Field: '.cluster' [13:30:37.219] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... done [13:30:37.219] - Launch lazy future ... [13:30:37.219] Packages needed by the future expression (n = 1): 'future' [13:30:37.219] Packages needed by future strategies (n = 0): [13:30:37.220] { [13:30:37.220] { [13:30:37.220] { [13:30:37.220] ...future.startTime <- base::Sys.time() [13:30:37.220] { [13:30:37.220] { [13:30:37.220] { [13:30:37.220] { [13:30:37.220] base::local({ [13:30:37.220] has_future <- base::requireNamespace("future", [13:30:37.220] quietly = TRUE) [13:30:37.220] if (has_future) { [13:30:37.220] ns <- base::getNamespace("future") [13:30:37.220] version <- ns[[".package"]][["version"]] [13:30:37.220] if (is.null(version)) [13:30:37.220] version <- utils::packageVersion("future") [13:30:37.220] } [13:30:37.220] else { [13:30:37.220] version <- NULL [13:30:37.220] } [13:30:37.220] if (!has_future || version < "1.8.0") { [13:30:37.220] info <- base::c(r_version = base::gsub("R version ", [13:30:37.220] "", base::R.version$version.string), [13:30:37.220] platform = base::sprintf("%s (%s-bit)", [13:30:37.220] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:30:37.220] os = base::paste(base::Sys.info()[base::c("sysname", [13:30:37.220] "release", "version")], collapse = " "), [13:30:37.220] hostname = base::Sys.info()[["nodename"]]) [13:30:37.220] info <- base::sprintf("%s: %s", base::names(info), [13:30:37.220] info) [13:30:37.220] info <- base::paste(info, collapse = "; ") [13:30:37.220] if (!has_future) { [13:30:37.220] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:30:37.220] info) [13:30:37.220] } [13:30:37.220] else { [13:30:37.220] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:30:37.220] info, version) [13:30:37.220] } [13:30:37.220] base::stop(msg) [13:30:37.220] } [13:30:37.220] }) [13:30:37.220] } [13:30:37.220] base::local({ [13:30:37.220] for (pkg in "future") { [13:30:37.220] base::loadNamespace(pkg) [13:30:37.220] base::library(pkg, character.only = TRUE) [13:30:37.220] } [13:30:37.220] }) [13:30:37.220] } [13:30:37.220] ...future.strategy.old <- future::plan("list") [13:30:37.220] options(future.plan = NULL) [13:30:37.220] Sys.unsetenv("R_FUTURE_PLAN") [13:30:37.220] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:30:37.220] } [13:30:37.220] ...future.workdir <- getwd() [13:30:37.220] } [13:30:37.220] ...future.oldOptions <- base::as.list(base::.Options) [13:30:37.220] ...future.oldEnvVars <- base::Sys.getenv() [13:30:37.220] } [13:30:37.220] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:30:37.220] future.globals.maxSize = NULL, future.globals.method = NULL, [13:30:37.220] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:30:37.220] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:30:37.220] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:30:37.220] future.stdout.windows.reencode = NULL, width = 80L) [13:30:37.220] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:30:37.220] base::names(...future.oldOptions)) [13:30:37.220] } [13:30:37.220] if (FALSE) { [13:30:37.220] } [13:30:37.220] else { [13:30:37.220] if (TRUE) { [13:30:37.220] ...future.stdout <- base::rawConnection(base::raw(0L), [13:30:37.220] open = "w") [13:30:37.220] } [13:30:37.220] else { [13:30:37.220] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:30:37.220] windows = "NUL", "/dev/null"), open = "w") [13:30:37.220] } [13:30:37.220] base::sink(...future.stdout, type = "output", split = FALSE) [13:30:37.220] base::on.exit(if (!base::is.null(...future.stdout)) { [13:30:37.220] base::sink(type = "output", split = FALSE) [13:30:37.220] base::close(...future.stdout) [13:30:37.220] }, add = TRUE) [13:30:37.220] } [13:30:37.220] ...future.frame <- base::sys.nframe() [13:30:37.220] ...future.conditions <- base::list() [13:30:37.220] ...future.rng <- base::globalenv()$.Random.seed [13:30:37.220] if (FALSE) { [13:30:37.220] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:30:37.220] "...future.value", "...future.globalenv.names", ".Random.seed") [13:30:37.220] } [13:30:37.220] ...future.result <- base::tryCatch({ [13:30:37.220] base::withCallingHandlers({ [13:30:37.220] ...future.value <- base::withVisible(base::local({ [13:30:37.220] message(sprintf("Calculating tile #%d of %d ...", [13:30:37.220] ii, n), appendLF = FALSE) [13:30:37.220] fit <- mandelbrot(C) [13:30:37.220] delay(fit) [13:30:37.220] message(" done") [13:30:37.220] fit [13:30:37.220] })) [13:30:37.220] future::FutureResult(value = ...future.value$value, [13:30:37.220] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:30:37.220] ...future.rng), globalenv = if (FALSE) [13:30:37.220] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:30:37.220] ...future.globalenv.names)) [13:30:37.220] else NULL, started = ...future.startTime, version = "1.8") [13:30:37.220] }, condition = base::local({ [13:30:37.220] c <- base::c [13:30:37.220] inherits <- base::inherits [13:30:37.220] invokeRestart <- base::invokeRestart [13:30:37.220] length <- base::length [13:30:37.220] list <- base::list [13:30:37.220] seq.int <- base::seq.int [13:30:37.220] signalCondition <- base::signalCondition [13:30:37.220] sys.calls <- base::sys.calls [13:30:37.220] `[[` <- base::`[[` [13:30:37.220] `+` <- base::`+` [13:30:37.220] `<<-` <- base::`<<-` [13:30:37.220] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:30:37.220] calls[seq.int(from = from + 12L, to = length(calls) - [13:30:37.220] 3L)] [13:30:37.220] } [13:30:37.220] function(cond) { [13:30:37.220] is_error <- inherits(cond, "error") [13:30:37.220] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:30:37.220] NULL) [13:30:37.220] if (is_error) { [13:30:37.220] sessionInformation <- function() { [13:30:37.220] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:30:37.220] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:30:37.220] search = base::search(), system = base::Sys.info()) [13:30:37.220] } [13:30:37.220] ...future.conditions[[length(...future.conditions) + [13:30:37.220] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:30:37.220] cond$call), session = sessionInformation(), [13:30:37.220] timestamp = base::Sys.time(), signaled = 0L) [13:30:37.220] signalCondition(cond) [13:30:37.220] } [13:30:37.220] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:30:37.220] signal <- FALSE && inherits(cond, character(0)) [13:30:37.220] ...future.conditions[[length(...future.conditions) + [13:30:37.220] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:30:37.220] if (FALSE && !signal) { [13:30:37.220] muffleCondition <- function (cond, pattern = "^muffle") [13:30:37.220] { [13:30:37.220] inherits <- base::inherits [13:30:37.220] invokeRestart <- base::invokeRestart [13:30:37.220] is.null <- base::is.null [13:30:37.220] muffled <- FALSE [13:30:37.220] if (inherits(cond, "message")) { [13:30:37.220] muffled <- grepl(pattern, "muffleMessage") [13:30:37.220] if (muffled) [13:30:37.220] invokeRestart("muffleMessage") [13:30:37.220] } [13:30:37.220] else if (inherits(cond, "warning")) { [13:30:37.220] muffled <- grepl(pattern, "muffleWarning") [13:30:37.220] if (muffled) [13:30:37.220] invokeRestart("muffleWarning") [13:30:37.220] } [13:30:37.220] else if (inherits(cond, "condition")) { [13:30:37.220] if (!is.null(pattern)) { [13:30:37.220] computeRestarts <- base::computeRestarts [13:30:37.220] grepl <- base::grepl [13:30:37.220] restarts <- computeRestarts(cond) [13:30:37.220] for (restart in restarts) { [13:30:37.220] name <- restart$name [13:30:37.220] if (is.null(name)) [13:30:37.220] next [13:30:37.220] if (!grepl(pattern, name)) [13:30:37.220] next [13:30:37.220] invokeRestart(restart) [13:30:37.220] muffled <- TRUE [13:30:37.220] break [13:30:37.220] } [13:30:37.220] } [13:30:37.220] } [13:30:37.220] invisible(muffled) [13:30:37.220] } [13:30:37.220] muffleCondition(cond, pattern = "^muffle") [13:30:37.220] } [13:30:37.220] } [13:30:37.220] else { [13:30:37.220] if (TRUE) { [13:30:37.220] muffleCondition <- function (cond, pattern = "^muffle") [13:30:37.220] { [13:30:37.220] inherits <- base::inherits [13:30:37.220] invokeRestart <- base::invokeRestart [13:30:37.220] is.null <- base::is.null [13:30:37.220] muffled <- FALSE [13:30:37.220] if (inherits(cond, "message")) { [13:30:37.220] muffled <- grepl(pattern, "muffleMessage") [13:30:37.220] if (muffled) [13:30:37.220] invokeRestart("muffleMessage") [13:30:37.220] } [13:30:37.220] else if (inherits(cond, "warning")) { [13:30:37.220] muffled <- grepl(pattern, "muffleWarning") [13:30:37.220] if (muffled) [13:30:37.220] invokeRestart("muffleWarning") [13:30:37.220] } [13:30:37.220] else if (inherits(cond, "condition")) { [13:30:37.220] if (!is.null(pattern)) { [13:30:37.220] computeRestarts <- base::computeRestarts [13:30:37.220] grepl <- base::grepl [13:30:37.220] restarts <- computeRestarts(cond) [13:30:37.220] for (restart in restarts) { [13:30:37.220] name <- restart$name [13:30:37.220] if (is.null(name)) [13:30:37.220] next [13:30:37.220] if (!grepl(pattern, name)) [13:30:37.220] next [13:30:37.220] invokeRestart(restart) [13:30:37.220] muffled <- TRUE [13:30:37.220] break [13:30:37.220] } [13:30:37.220] } [13:30:37.220] } [13:30:37.220] invisible(muffled) [13:30:37.220] } [13:30:37.220] muffleCondition(cond, pattern = "^muffle") [13:30:37.220] } [13:30:37.220] } [13:30:37.220] } [13:30:37.220] })) [13:30:37.220] }, error = function(ex) { [13:30:37.220] base::structure(base::list(value = NULL, visible = NULL, [13:30:37.220] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:30:37.220] ...future.rng), started = ...future.startTime, [13:30:37.220] finished = Sys.time(), session_uuid = NA_character_, [13:30:37.220] version = "1.8"), class = "FutureResult") [13:30:37.220] }, finally = { [13:30:37.220] if (!identical(...future.workdir, getwd())) [13:30:37.220] setwd(...future.workdir) [13:30:37.220] { [13:30:37.220] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:30:37.220] ...future.oldOptions$nwarnings <- NULL [13:30:37.220] } [13:30:37.220] base::options(...future.oldOptions) [13:30:37.220] if (.Platform$OS.type == "windows") { [13:30:37.220] old_names <- names(...future.oldEnvVars) [13:30:37.220] envs <- base::Sys.getenv() [13:30:37.220] names <- names(envs) [13:30:37.220] common <- intersect(names, old_names) [13:30:37.220] added <- setdiff(names, old_names) [13:30:37.220] removed <- setdiff(old_names, names) [13:30:37.220] changed <- common[...future.oldEnvVars[common] != [13:30:37.220] envs[common]] [13:30:37.220] NAMES <- toupper(changed) [13:30:37.220] args <- list() [13:30:37.220] for (kk in seq_along(NAMES)) { [13:30:37.220] name <- changed[[kk]] [13:30:37.220] NAME <- NAMES[[kk]] [13:30:37.220] if (name != NAME && is.element(NAME, old_names)) [13:30:37.220] next [13:30:37.220] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:37.220] } [13:30:37.220] NAMES <- toupper(added) [13:30:37.220] for (kk in seq_along(NAMES)) { [13:30:37.220] name <- added[[kk]] [13:30:37.220] NAME <- NAMES[[kk]] [13:30:37.220] if (name != NAME && is.element(NAME, old_names)) [13:30:37.220] next [13:30:37.220] args[[name]] <- "" [13:30:37.220] } [13:30:37.220] NAMES <- toupper(removed) [13:30:37.220] for (kk in seq_along(NAMES)) { [13:30:37.220] name <- removed[[kk]] [13:30:37.220] NAME <- NAMES[[kk]] [13:30:37.220] if (name != NAME && is.element(NAME, old_names)) [13:30:37.220] next [13:30:37.220] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:37.220] } [13:30:37.220] if (length(args) > 0) [13:30:37.220] base::do.call(base::Sys.setenv, args = args) [13:30:37.220] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:30:37.220] } [13:30:37.220] else { [13:30:37.220] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:30:37.220] } [13:30:37.220] { [13:30:37.220] if (base::length(...future.futureOptionsAdded) > [13:30:37.220] 0L) { [13:30:37.220] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:30:37.220] base::names(opts) <- ...future.futureOptionsAdded [13:30:37.220] base::options(opts) [13:30:37.220] } [13:30:37.220] { [13:30:37.220] NULL [13:30:37.220] options(future.plan = NULL) [13:30:37.220] if (is.na(NA_character_)) [13:30:37.220] Sys.unsetenv("R_FUTURE_PLAN") [13:30:37.220] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:30:37.220] future::plan(...future.strategy.old, .cleanup = FALSE, [13:30:37.220] .init = FALSE) [13:30:37.220] } [13:30:37.220] } [13:30:37.220] } [13:30:37.220] }) [13:30:37.220] if (TRUE) { [13:30:37.220] base::sink(type = "output", split = FALSE) [13:30:37.220] if (TRUE) { [13:30:37.220] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:30:37.220] } [13:30:37.220] else { [13:30:37.220] ...future.result["stdout"] <- base::list(NULL) [13:30:37.220] } [13:30:37.220] base::close(...future.stdout) [13:30:37.220] ...future.stdout <- NULL [13:30:37.220] } [13:30:37.220] ...future.result$conditions <- ...future.conditions [13:30:37.220] ...future.result$finished <- base::Sys.time() [13:30:37.220] ...future.result [13:30:37.220] } [13:30:37.224] - Launch lazy future ... done [13:30:37.224] run() for 'MiraiFuture' ... done [13:30:37.224] - run() ... done [13:30:37.225] - resolved() ... [13:30:37.225] resolved() for 'MiraiFuture' ... [13:30:37.225] - state: 'running' [13:30:37.225] - run: TRUE [13:30:37.225] - result: 'NULL' [13:30:37.225] - resolved: FALSE [13:30:37.226] resolved() for 'MiraiFuture' ... done [13:30:37.226] - resolved: FALSE [13:30:37.226] - resolved() ... done [13:30:37.226] resolved() for 'MiraiFuture' ... done [13:30:37.226] resolved() for 'Future' ... [13:30:37.227] - state: 'created' [13:30:37.227] - run: TRUE [13:30:37.227] - run() ... [13:30:37.227] run() for 'Future' ... [13:30:37.227] - state: 'created' [13:30:37.227] - Future backend: 'FutureStrategy', 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' [13:30:37.228] - Future class: 'MiraiFuture', 'MultiprocessFuture', 'Future', 'environment' [13:30:37.228] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... [13:30:37.228] - Field: 'label' [13:30:37.228] - Field: 'local' [13:30:37.229] - Field: 'owner' [13:30:37.229] - Field: 'envir' [13:30:37.229] - Field: 'packages' [13:30:37.229] - Field: 'gc' [13:30:37.229] - Field: 'conditions' [13:30:37.229] - Field: 'expr' [13:30:37.230] - Field: 'uuid' [13:30:37.230] - Field: 'seed' [13:30:37.230] - Field: 'version' [13:30:37.230] - Field: 'result' [13:30:37.230] - Field: 'asynchronous' [13:30:37.230] - Field: 'calls' [13:30:37.231] - Field: 'globals' [13:30:37.231] - Field: 'stdout' [13:30:37.231] - Field: 'earlySignal' [13:30:37.231] - Field: 'lazy' [13:30:37.231] - Field: 'state' [13:30:37.231] - Field: '.cluster' [13:30:37.232] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... done [13:30:37.232] - Launch lazy future ... [13:30:37.232] Packages needed by the future expression (n = 1): 'future' [13:30:37.232] Packages needed by future strategies (n = 0): [13:30:37.233] { [13:30:37.233] { [13:30:37.233] { [13:30:37.233] ...future.startTime <- base::Sys.time() [13:30:37.233] { [13:30:37.233] { [13:30:37.233] { [13:30:37.233] { [13:30:37.233] base::local({ [13:30:37.233] has_future <- base::requireNamespace("future", [13:30:37.233] quietly = TRUE) [13:30:37.233] if (has_future) { [13:30:37.233] ns <- base::getNamespace("future") [13:30:37.233] version <- ns[[".package"]][["version"]] [13:30:37.233] if (is.null(version)) [13:30:37.233] version <- utils::packageVersion("future") [13:30:37.233] } [13:30:37.233] else { [13:30:37.233] version <- NULL [13:30:37.233] } [13:30:37.233] if (!has_future || version < "1.8.0") { [13:30:37.233] info <- base::c(r_version = base::gsub("R version ", [13:30:37.233] "", base::R.version$version.string), [13:30:37.233] platform = base::sprintf("%s (%s-bit)", [13:30:37.233] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:30:37.233] os = base::paste(base::Sys.info()[base::c("sysname", [13:30:37.233] "release", "version")], collapse = " "), [13:30:37.233] hostname = base::Sys.info()[["nodename"]]) [13:30:37.233] info <- base::sprintf("%s: %s", base::names(info), [13:30:37.233] info) [13:30:37.233] info <- base::paste(info, collapse = "; ") [13:30:37.233] if (!has_future) { [13:30:37.233] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:30:37.233] info) [13:30:37.233] } [13:30:37.233] else { [13:30:37.233] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:30:37.233] info, version) [13:30:37.233] } [13:30:37.233] base::stop(msg) [13:30:37.233] } [13:30:37.233] }) [13:30:37.233] } [13:30:37.233] base::local({ [13:30:37.233] for (pkg in "future") { [13:30:37.233] base::loadNamespace(pkg) [13:30:37.233] base::library(pkg, character.only = TRUE) [13:30:37.233] } [13:30:37.233] }) [13:30:37.233] } [13:30:37.233] ...future.strategy.old <- future::plan("list") [13:30:37.233] options(future.plan = NULL) [13:30:37.233] Sys.unsetenv("R_FUTURE_PLAN") [13:30:37.233] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:30:37.233] } [13:30:37.233] ...future.workdir <- getwd() [13:30:37.233] } [13:30:37.233] ...future.oldOptions <- base::as.list(base::.Options) [13:30:37.233] ...future.oldEnvVars <- base::Sys.getenv() [13:30:37.233] } [13:30:37.233] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:30:37.233] future.globals.maxSize = NULL, future.globals.method = NULL, [13:30:37.233] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:30:37.233] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:30:37.233] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:30:37.233] future.stdout.windows.reencode = NULL, width = 80L) [13:30:37.233] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:30:37.233] base::names(...future.oldOptions)) [13:30:37.233] } [13:30:37.233] if (FALSE) { [13:30:37.233] } [13:30:37.233] else { [13:30:37.233] if (TRUE) { [13:30:37.233] ...future.stdout <- base::rawConnection(base::raw(0L), [13:30:37.233] open = "w") [13:30:37.233] } [13:30:37.233] else { [13:30:37.233] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:30:37.233] windows = "NUL", "/dev/null"), open = "w") [13:30:37.233] } [13:30:37.233] base::sink(...future.stdout, type = "output", split = FALSE) [13:30:37.233] base::on.exit(if (!base::is.null(...future.stdout)) { [13:30:37.233] base::sink(type = "output", split = FALSE) [13:30:37.233] base::close(...future.stdout) [13:30:37.233] }, add = TRUE) [13:30:37.233] } [13:30:37.233] ...future.frame <- base::sys.nframe() [13:30:37.233] ...future.conditions <- base::list() [13:30:37.233] ...future.rng <- base::globalenv()$.Random.seed [13:30:37.233] if (FALSE) { [13:30:37.233] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:30:37.233] "...future.value", "...future.globalenv.names", ".Random.seed") [13:30:37.233] } [13:30:37.233] ...future.result <- base::tryCatch({ [13:30:37.233] base::withCallingHandlers({ [13:30:37.233] ...future.value <- base::withVisible(base::local({ [13:30:37.233] message(sprintf("Calculating tile #%d of %d ...", [13:30:37.233] ii, n), appendLF = FALSE) [13:30:37.233] fit <- mandelbrot(C) [13:30:37.233] delay(fit) [13:30:37.233] message(" done") [13:30:37.233] fit [13:30:37.233] })) [13:30:37.233] future::FutureResult(value = ...future.value$value, [13:30:37.233] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:30:37.233] ...future.rng), globalenv = if (FALSE) [13:30:37.233] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:30:37.233] ...future.globalenv.names)) [13:30:37.233] else NULL, started = ...future.startTime, version = "1.8") [13:30:37.233] }, condition = base::local({ [13:30:37.233] c <- base::c [13:30:37.233] inherits <- base::inherits [13:30:37.233] invokeRestart <- base::invokeRestart [13:30:37.233] length <- base::length [13:30:37.233] list <- base::list [13:30:37.233] seq.int <- base::seq.int [13:30:37.233] signalCondition <- base::signalCondition [13:30:37.233] sys.calls <- base::sys.calls [13:30:37.233] `[[` <- base::`[[` [13:30:37.233] `+` <- base::`+` [13:30:37.233] `<<-` <- base::`<<-` [13:30:37.233] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:30:37.233] calls[seq.int(from = from + 12L, to = length(calls) - [13:30:37.233] 3L)] [13:30:37.233] } [13:30:37.233] function(cond) { [13:30:37.233] is_error <- inherits(cond, "error") [13:30:37.233] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:30:37.233] NULL) [13:30:37.233] if (is_error) { [13:30:37.233] sessionInformation <- function() { [13:30:37.233] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:30:37.233] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:30:37.233] search = base::search(), system = base::Sys.info()) [13:30:37.233] } [13:30:37.233] ...future.conditions[[length(...future.conditions) + [13:30:37.233] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:30:37.233] cond$call), session = sessionInformation(), [13:30:37.233] timestamp = base::Sys.time(), signaled = 0L) [13:30:37.233] signalCondition(cond) [13:30:37.233] } [13:30:37.233] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:30:37.233] signal <- FALSE && inherits(cond, character(0)) [13:30:37.233] ...future.conditions[[length(...future.conditions) + [13:30:37.233] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:30:37.233] if (FALSE && !signal) { [13:30:37.233] muffleCondition <- function (cond, pattern = "^muffle") [13:30:37.233] { [13:30:37.233] inherits <- base::inherits [13:30:37.233] invokeRestart <- base::invokeRestart [13:30:37.233] is.null <- base::is.null [13:30:37.233] muffled <- FALSE [13:30:37.233] if (inherits(cond, "message")) { [13:30:37.233] muffled <- grepl(pattern, "muffleMessage") [13:30:37.233] if (muffled) [13:30:37.233] invokeRestart("muffleMessage") [13:30:37.233] } [13:30:37.233] else if (inherits(cond, "warning")) { [13:30:37.233] muffled <- grepl(pattern, "muffleWarning") [13:30:37.233] if (muffled) [13:30:37.233] invokeRestart("muffleWarning") [13:30:37.233] } [13:30:37.233] else if (inherits(cond, "condition")) { [13:30:37.233] if (!is.null(pattern)) { [13:30:37.233] computeRestarts <- base::computeRestarts [13:30:37.233] grepl <- base::grepl [13:30:37.233] restarts <- computeRestarts(cond) [13:30:37.233] for (restart in restarts) { [13:30:37.233] name <- restart$name [13:30:37.233] if (is.null(name)) [13:30:37.233] next [13:30:37.233] if (!grepl(pattern, name)) [13:30:37.233] next [13:30:37.233] invokeRestart(restart) [13:30:37.233] muffled <- TRUE [13:30:37.233] break [13:30:37.233] } [13:30:37.233] } [13:30:37.233] } [13:30:37.233] invisible(muffled) [13:30:37.233] } [13:30:37.233] muffleCondition(cond, pattern = "^muffle") [13:30:37.233] } [13:30:37.233] } [13:30:37.233] else { [13:30:37.233] if (TRUE) { [13:30:37.233] muffleCondition <- function (cond, pattern = "^muffle") [13:30:37.233] { [13:30:37.233] inherits <- base::inherits [13:30:37.233] invokeRestart <- base::invokeRestart [13:30:37.233] is.null <- base::is.null [13:30:37.233] muffled <- FALSE [13:30:37.233] if (inherits(cond, "message")) { [13:30:37.233] muffled <- grepl(pattern, "muffleMessage") [13:30:37.233] if (muffled) [13:30:37.233] invokeRestart("muffleMessage") [13:30:37.233] } [13:30:37.233] else if (inherits(cond, "warning")) { [13:30:37.233] muffled <- grepl(pattern, "muffleWarning") [13:30:37.233] if (muffled) [13:30:37.233] invokeRestart("muffleWarning") [13:30:37.233] } [13:30:37.233] else if (inherits(cond, "condition")) { [13:30:37.233] if (!is.null(pattern)) { [13:30:37.233] computeRestarts <- base::computeRestarts [13:30:37.233] grepl <- base::grepl [13:30:37.233] restarts <- computeRestarts(cond) [13:30:37.233] for (restart in restarts) { [13:30:37.233] name <- restart$name [13:30:37.233] if (is.null(name)) [13:30:37.233] next [13:30:37.233] if (!grepl(pattern, name)) [13:30:37.233] next [13:30:37.233] invokeRestart(restart) [13:30:37.233] muffled <- TRUE [13:30:37.233] break [13:30:37.233] } [13:30:37.233] } [13:30:37.233] } [13:30:37.233] invisible(muffled) [13:30:37.233] } [13:30:37.233] muffleCondition(cond, pattern = "^muffle") [13:30:37.233] } [13:30:37.233] } [13:30:37.233] } [13:30:37.233] })) [13:30:37.233] }, error = function(ex) { [13:30:37.233] base::structure(base::list(value = NULL, visible = NULL, [13:30:37.233] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:30:37.233] ...future.rng), started = ...future.startTime, [13:30:37.233] finished = Sys.time(), session_uuid = NA_character_, [13:30:37.233] version = "1.8"), class = "FutureResult") [13:30:37.233] }, finally = { [13:30:37.233] if (!identical(...future.workdir, getwd())) [13:30:37.233] setwd(...future.workdir) [13:30:37.233] { [13:30:37.233] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:30:37.233] ...future.oldOptions$nwarnings <- NULL [13:30:37.233] } [13:30:37.233] base::options(...future.oldOptions) [13:30:37.233] if (.Platform$OS.type == "windows") { [13:30:37.233] old_names <- names(...future.oldEnvVars) [13:30:37.233] envs <- base::Sys.getenv() [13:30:37.233] names <- names(envs) [13:30:37.233] common <- intersect(names, old_names) [13:30:37.233] added <- setdiff(names, old_names) [13:30:37.233] removed <- setdiff(old_names, names) [13:30:37.233] changed <- common[...future.oldEnvVars[common] != [13:30:37.233] envs[common]] [13:30:37.233] NAMES <- toupper(changed) [13:30:37.233] args <- list() [13:30:37.233] for (kk in seq_along(NAMES)) { [13:30:37.233] name <- changed[[kk]] [13:30:37.233] NAME <- NAMES[[kk]] [13:30:37.233] if (name != NAME && is.element(NAME, old_names)) [13:30:37.233] next [13:30:37.233] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:37.233] } [13:30:37.233] NAMES <- toupper(added) [13:30:37.233] for (kk in seq_along(NAMES)) { [13:30:37.233] name <- added[[kk]] [13:30:37.233] NAME <- NAMES[[kk]] [13:30:37.233] if (name != NAME && is.element(NAME, old_names)) [13:30:37.233] next [13:30:37.233] args[[name]] <- "" [13:30:37.233] } [13:30:37.233] NAMES <- toupper(removed) [13:30:37.233] for (kk in seq_along(NAMES)) { [13:30:37.233] name <- removed[[kk]] [13:30:37.233] NAME <- NAMES[[kk]] [13:30:37.233] if (name != NAME && is.element(NAME, old_names)) [13:30:37.233] next [13:30:37.233] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:37.233] } [13:30:37.233] if (length(args) > 0) [13:30:37.233] base::do.call(base::Sys.setenv, args = args) [13:30:37.233] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:30:37.233] } [13:30:37.233] else { [13:30:37.233] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:30:37.233] } [13:30:37.233] { [13:30:37.233] if (base::length(...future.futureOptionsAdded) > [13:30:37.233] 0L) { [13:30:37.233] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:30:37.233] base::names(opts) <- ...future.futureOptionsAdded [13:30:37.233] base::options(opts) [13:30:37.233] } [13:30:37.233] { [13:30:37.233] NULL [13:30:37.233] options(future.plan = NULL) [13:30:37.233] if (is.na(NA_character_)) [13:30:37.233] Sys.unsetenv("R_FUTURE_PLAN") [13:30:37.233] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:30:37.233] future::plan(...future.strategy.old, .cleanup = FALSE, [13:30:37.233] .init = FALSE) [13:30:37.233] } [13:30:37.233] } [13:30:37.233] } [13:30:37.233] }) [13:30:37.233] if (TRUE) { [13:30:37.233] base::sink(type = "output", split = FALSE) [13:30:37.233] if (TRUE) { [13:30:37.233] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:30:37.233] } [13:30:37.233] else { [13:30:37.233] ...future.result["stdout"] <- base::list(NULL) [13:30:37.233] } [13:30:37.233] base::close(...future.stdout) [13:30:37.233] ...future.stdout <- NULL [13:30:37.233] } [13:30:37.233] ...future.result$conditions <- ...future.conditions [13:30:37.233] ...future.result$finished <- base::Sys.time() [13:30:37.233] ...future.result [13:30:37.233] } [13:30:37.237] - Launch lazy future ... done [13:30:37.237] run() for 'MiraiFuture' ... done [13:30:37.237] - run() ... done [13:30:37.237] - resolved() ... [13:30:37.238] resolved() for 'MiraiFuture' ... [13:30:37.238] - state: 'running' [13:30:37.238] - run: TRUE [13:30:37.238] - result: 'NULL' [13:30:37.238] - resolved: FALSE [13:30:37.239] resolved() for 'MiraiFuture' ... done [13:30:37.239] - resolved: FALSE [13:30:37.239] - resolved() ... done [13:30:37.239] resolved() for 'MiraiFuture' ... done [13:30:37.239] resolved() for 'Future' ... [13:30:37.240] - state: 'created' [13:30:37.240] - run: TRUE [13:30:37.240] - run() ... [13:30:37.241] run() for 'Future' ... [13:30:37.241] - state: 'created' [13:30:37.241] - Future backend: 'FutureStrategy', 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' [13:30:37.242] - Future class: 'MiraiFuture', 'MultiprocessFuture', 'Future', 'environment' [13:30:37.242] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... [13:30:37.242] - Field: 'label' [13:30:37.242] - Field: 'local' [13:30:37.242] - Field: 'owner' [13:30:37.243] - Field: 'envir' [13:30:37.243] - Field: 'packages' [13:30:37.243] - Field: 'gc' [13:30:37.243] - Field: 'conditions' [13:30:37.243] - Field: 'expr' [13:30:37.244] - Field: 'uuid' [13:30:37.244] - Field: 'seed' [13:30:37.244] - Field: 'version' [13:30:37.244] - Field: 'result' [13:30:37.244] - Field: 'asynchronous' [13:30:37.244] - Field: 'calls' [13:30:37.245] - Field: 'globals' [13:30:37.245] - Field: 'stdout' [13:30:37.245] - Field: 'earlySignal' [13:30:37.245] - Field: 'lazy' [13:30:37.245] - Field: 'state' [13:30:37.245] - Field: '.cluster' [13:30:37.246] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... done [13:30:37.246] - Launch lazy future ... [13:30:37.246] Packages needed by the future expression (n = 1): 'future' [13:30:37.246] Packages needed by future strategies (n = 0): [13:30:37.247] { [13:30:37.247] { [13:30:37.247] { [13:30:37.247] ...future.startTime <- base::Sys.time() [13:30:37.247] { [13:30:37.247] { [13:30:37.247] { [13:30:37.247] { [13:30:37.247] base::local({ [13:30:37.247] has_future <- base::requireNamespace("future", [13:30:37.247] quietly = TRUE) [13:30:37.247] if (has_future) { [13:30:37.247] ns <- base::getNamespace("future") [13:30:37.247] version <- ns[[".package"]][["version"]] [13:30:37.247] if (is.null(version)) [13:30:37.247] version <- utils::packageVersion("future") [13:30:37.247] } [13:30:37.247] else { [13:30:37.247] version <- NULL [13:30:37.247] } [13:30:37.247] if (!has_future || version < "1.8.0") { [13:30:37.247] info <- base::c(r_version = base::gsub("R version ", [13:30:37.247] "", base::R.version$version.string), [13:30:37.247] platform = base::sprintf("%s (%s-bit)", [13:30:37.247] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:30:37.247] os = base::paste(base::Sys.info()[base::c("sysname", [13:30:37.247] "release", "version")], collapse = " "), [13:30:37.247] hostname = base::Sys.info()[["nodename"]]) [13:30:37.247] info <- base::sprintf("%s: %s", base::names(info), [13:30:37.247] info) [13:30:37.247] info <- base::paste(info, collapse = "; ") [13:30:37.247] if (!has_future) { [13:30:37.247] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:30:37.247] info) [13:30:37.247] } [13:30:37.247] else { [13:30:37.247] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:30:37.247] info, version) [13:30:37.247] } [13:30:37.247] base::stop(msg) [13:30:37.247] } [13:30:37.247] }) [13:30:37.247] } [13:30:37.247] base::local({ [13:30:37.247] for (pkg in "future") { [13:30:37.247] base::loadNamespace(pkg) [13:30:37.247] base::library(pkg, character.only = TRUE) [13:30:37.247] } [13:30:37.247] }) [13:30:37.247] } [13:30:37.247] ...future.strategy.old <- future::plan("list") [13:30:37.247] options(future.plan = NULL) [13:30:37.247] Sys.unsetenv("R_FUTURE_PLAN") [13:30:37.247] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:30:37.247] } [13:30:37.247] ...future.workdir <- getwd() [13:30:37.247] } [13:30:37.247] ...future.oldOptions <- base::as.list(base::.Options) [13:30:37.247] ...future.oldEnvVars <- base::Sys.getenv() [13:30:37.247] } [13:30:37.247] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:30:37.247] future.globals.maxSize = NULL, future.globals.method = NULL, [13:30:37.247] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:30:37.247] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:30:37.247] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:30:37.247] future.stdout.windows.reencode = NULL, width = 80L) [13:30:37.247] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:30:37.247] base::names(...future.oldOptions)) [13:30:37.247] } [13:30:37.247] if (FALSE) { [13:30:37.247] } [13:30:37.247] else { [13:30:37.247] if (TRUE) { [13:30:37.247] ...future.stdout <- base::rawConnection(base::raw(0L), [13:30:37.247] open = "w") [13:30:37.247] } [13:30:37.247] else { [13:30:37.247] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:30:37.247] windows = "NUL", "/dev/null"), open = "w") [13:30:37.247] } [13:30:37.247] base::sink(...future.stdout, type = "output", split = FALSE) [13:30:37.247] base::on.exit(if (!base::is.null(...future.stdout)) { [13:30:37.247] base::sink(type = "output", split = FALSE) [13:30:37.247] base::close(...future.stdout) [13:30:37.247] }, add = TRUE) [13:30:37.247] } [13:30:37.247] ...future.frame <- base::sys.nframe() [13:30:37.247] ...future.conditions <- base::list() [13:30:37.247] ...future.rng <- base::globalenv()$.Random.seed [13:30:37.247] if (FALSE) { [13:30:37.247] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:30:37.247] "...future.value", "...future.globalenv.names", ".Random.seed") [13:30:37.247] } [13:30:37.247] ...future.result <- base::tryCatch({ [13:30:37.247] base::withCallingHandlers({ [13:30:37.247] ...future.value <- base::withVisible(base::local({ [13:30:37.247] message(sprintf("Calculating tile #%d of %d ...", [13:30:37.247] ii, n), appendLF = FALSE) [13:30:37.247] fit <- mandelbrot(C) [13:30:37.247] delay(fit) [13:30:37.247] message(" done") [13:30:37.247] fit [13:30:37.247] })) [13:30:37.247] future::FutureResult(value = ...future.value$value, [13:30:37.247] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:30:37.247] ...future.rng), globalenv = if (FALSE) [13:30:37.247] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:30:37.247] ...future.globalenv.names)) [13:30:37.247] else NULL, started = ...future.startTime, version = "1.8") [13:30:37.247] }, condition = base::local({ [13:30:37.247] c <- base::c [13:30:37.247] inherits <- base::inherits [13:30:37.247] invokeRestart <- base::invokeRestart [13:30:37.247] length <- base::length [13:30:37.247] list <- base::list [13:30:37.247] seq.int <- base::seq.int [13:30:37.247] signalCondition <- base::signalCondition [13:30:37.247] sys.calls <- base::sys.calls [13:30:37.247] `[[` <- base::`[[` [13:30:37.247] `+` <- base::`+` [13:30:37.247] `<<-` <- base::`<<-` [13:30:37.247] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:30:37.247] calls[seq.int(from = from + 12L, to = length(calls) - [13:30:37.247] 3L)] [13:30:37.247] } [13:30:37.247] function(cond) { [13:30:37.247] is_error <- inherits(cond, "error") [13:30:37.247] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:30:37.247] NULL) [13:30:37.247] if (is_error) { [13:30:37.247] sessionInformation <- function() { [13:30:37.247] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:30:37.247] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:30:37.247] search = base::search(), system = base::Sys.info()) [13:30:37.247] } [13:30:37.247] ...future.conditions[[length(...future.conditions) + [13:30:37.247] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:30:37.247] cond$call), session = sessionInformation(), [13:30:37.247] timestamp = base::Sys.time(), signaled = 0L) [13:30:37.247] signalCondition(cond) [13:30:37.247] } [13:30:37.247] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:30:37.247] signal <- FALSE && inherits(cond, character(0)) [13:30:37.247] ...future.conditions[[length(...future.conditions) + [13:30:37.247] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:30:37.247] if (FALSE && !signal) { [13:30:37.247] muffleCondition <- function (cond, pattern = "^muffle") [13:30:37.247] { [13:30:37.247] inherits <- base::inherits [13:30:37.247] invokeRestart <- base::invokeRestart [13:30:37.247] is.null <- base::is.null [13:30:37.247] muffled <- FALSE [13:30:37.247] if (inherits(cond, "message")) { [13:30:37.247] muffled <- grepl(pattern, "muffleMessage") [13:30:37.247] if (muffled) [13:30:37.247] invokeRestart("muffleMessage") [13:30:37.247] } [13:30:37.247] else if (inherits(cond, "warning")) { [13:30:37.247] muffled <- grepl(pattern, "muffleWarning") [13:30:37.247] if (muffled) [13:30:37.247] invokeRestart("muffleWarning") [13:30:37.247] } [13:30:37.247] else if (inherits(cond, "condition")) { [13:30:37.247] if (!is.null(pattern)) { [13:30:37.247] computeRestarts <- base::computeRestarts [13:30:37.247] grepl <- base::grepl [13:30:37.247] restarts <- computeRestarts(cond) [13:30:37.247] for (restart in restarts) { [13:30:37.247] name <- restart$name [13:30:37.247] if (is.null(name)) [13:30:37.247] next [13:30:37.247] if (!grepl(pattern, name)) [13:30:37.247] next [13:30:37.247] invokeRestart(restart) [13:30:37.247] muffled <- TRUE [13:30:37.247] break [13:30:37.247] } [13:30:37.247] } [13:30:37.247] } [13:30:37.247] invisible(muffled) [13:30:37.247] } [13:30:37.247] muffleCondition(cond, pattern = "^muffle") [13:30:37.247] } [13:30:37.247] } [13:30:37.247] else { [13:30:37.247] if (TRUE) { [13:30:37.247] muffleCondition <- function (cond, pattern = "^muffle") [13:30:37.247] { [13:30:37.247] inherits <- base::inherits [13:30:37.247] invokeRestart <- base::invokeRestart [13:30:37.247] is.null <- base::is.null [13:30:37.247] muffled <- FALSE [13:30:37.247] if (inherits(cond, "message")) { [13:30:37.247] muffled <- grepl(pattern, "muffleMessage") [13:30:37.247] if (muffled) [13:30:37.247] invokeRestart("muffleMessage") [13:30:37.247] } [13:30:37.247] else if (inherits(cond, "warning")) { [13:30:37.247] muffled <- grepl(pattern, "muffleWarning") [13:30:37.247] if (muffled) [13:30:37.247] invokeRestart("muffleWarning") [13:30:37.247] } [13:30:37.247] else if (inherits(cond, "condition")) { [13:30:37.247] if (!is.null(pattern)) { [13:30:37.247] computeRestarts <- base::computeRestarts [13:30:37.247] grepl <- base::grepl [13:30:37.247] restarts <- computeRestarts(cond) [13:30:37.247] for (restart in restarts) { [13:30:37.247] name <- restart$name [13:30:37.247] if (is.null(name)) [13:30:37.247] next [13:30:37.247] if (!grepl(pattern, name)) [13:30:37.247] next [13:30:37.247] invokeRestart(restart) [13:30:37.247] muffled <- TRUE [13:30:37.247] break [13:30:37.247] } [13:30:37.247] } [13:30:37.247] } [13:30:37.247] invisible(muffled) [13:30:37.247] } [13:30:37.247] muffleCondition(cond, pattern = "^muffle") [13:30:37.247] } [13:30:37.247] } [13:30:37.247] } [13:30:37.247] })) [13:30:37.247] }, error = function(ex) { [13:30:37.247] base::structure(base::list(value = NULL, visible = NULL, [13:30:37.247] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:30:37.247] ...future.rng), started = ...future.startTime, [13:30:37.247] finished = Sys.time(), session_uuid = NA_character_, [13:30:37.247] version = "1.8"), class = "FutureResult") [13:30:37.247] }, finally = { [13:30:37.247] if (!identical(...future.workdir, getwd())) [13:30:37.247] setwd(...future.workdir) [13:30:37.247] { [13:30:37.247] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:30:37.247] ...future.oldOptions$nwarnings <- NULL [13:30:37.247] } [13:30:37.247] base::options(...future.oldOptions) [13:30:37.247] if (.Platform$OS.type == "windows") { [13:30:37.247] old_names <- names(...future.oldEnvVars) [13:30:37.247] envs <- base::Sys.getenv() [13:30:37.247] names <- names(envs) [13:30:37.247] common <- intersect(names, old_names) [13:30:37.247] added <- setdiff(names, old_names) [13:30:37.247] removed <- setdiff(old_names, names) [13:30:37.247] changed <- common[...future.oldEnvVars[common] != [13:30:37.247] envs[common]] [13:30:37.247] NAMES <- toupper(changed) [13:30:37.247] args <- list() [13:30:37.247] for (kk in seq_along(NAMES)) { [13:30:37.247] name <- changed[[kk]] [13:30:37.247] NAME <- NAMES[[kk]] [13:30:37.247] if (name != NAME && is.element(NAME, old_names)) [13:30:37.247] next [13:30:37.247] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:37.247] } [13:30:37.247] NAMES <- toupper(added) [13:30:37.247] for (kk in seq_along(NAMES)) { [13:30:37.247] name <- added[[kk]] [13:30:37.247] NAME <- NAMES[[kk]] [13:30:37.247] if (name != NAME && is.element(NAME, old_names)) [13:30:37.247] next [13:30:37.247] args[[name]] <- "" [13:30:37.247] } [13:30:37.247] NAMES <- toupper(removed) [13:30:37.247] for (kk in seq_along(NAMES)) { [13:30:37.247] name <- removed[[kk]] [13:30:37.247] NAME <- NAMES[[kk]] [13:30:37.247] if (name != NAME && is.element(NAME, old_names)) [13:30:37.247] next [13:30:37.247] args[[name]] <- ...future.oldEnvVars[[name]] [13:30:37.247] } [13:30:37.247] if (length(args) > 0) [13:30:37.247] base::do.call(base::Sys.setenv, args = args) [13:30:37.247] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:30:37.247] } [13:30:37.247] else { [13:30:37.247] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:30:37.247] } [13:30:37.247] { [13:30:37.247] if (base::length(...future.futureOptionsAdded) > [13:30:37.247] 0L) { [13:30:37.247] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:30:37.247] base::names(opts) <- ...future.futureOptionsAdded [13:30:37.247] base::options(opts) [13:30:37.247] } [13:30:37.247] { [13:30:37.247] NULL [13:30:37.247] options(future.plan = NULL) [13:30:37.247] if (is.na(NA_character_)) [13:30:37.247] Sys.unsetenv("R_FUTURE_PLAN") [13:30:37.247] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:30:37.247] future::plan(...future.strategy.old, .cleanup = FALSE, [13:30:37.247] .init = FALSE) [13:30:37.247] } [13:30:37.247] } [13:30:37.247] } [13:30:37.247] }) [13:30:37.247] if (TRUE) { [13:30:37.247] base::sink(type = "output", split = FALSE) [13:30:37.247] if (TRUE) { [13:30:37.247] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:30:37.247] } [13:30:37.247] else { [13:30:37.247] ...future.result["stdout"] <- base::list(NULL) [13:30:37.247] } [13:30:37.247] base::close(...future.stdout) [13:30:37.247] ...future.stdout <- NULL [13:30:37.247] } [13:30:37.247] ...future.result$conditions <- ...future.conditions [13:30:37.247] ...future.result$finished <- base::Sys.time() [13:30:37.247] ...future.result [13:30:37.247] } [13:30:37.251] - Launch lazy future ... done [13:30:37.251] run() for 'MiraiFuture' ... done [13:30:37.251] - run() ... done [13:30:37.252] - resolved() ... [13:30:37.252] resolved() for 'MiraiFuture' ... [13:30:37.252] - state: 'running' [13:30:37.252] - run: TRUE [13:30:37.252] - result: 'NULL' [13:30:37.252] - resolved: FALSE [13:30:37.253] resolved() for 'MiraiFuture' ... done [13:30:37.253] - resolved: FALSE [13:30:37.253] - resolved() ... done [13:30:37.253] resolved() for 'MiraiFuture' ... done [13:30:37.253] resolved() for 'MiraiFuture' ... [13:30:37.254] - state: 'running' [13:30:37.254] - run: TRUE [13:30:37.254] - result: 'NULL' [13:30:37.254] - resolved: FALSE [13:30:37.254] resolved() for 'MiraiFuture' ... done Plotting tile #1 of 4 ... [13:30:37.255] signalConditions() ... [13:30:37.255] - include = 'immediateCondition' [13:30:37.255] - exclude = [13:30:37.255] - resignal = FALSE [13:30:37.256] - Number of conditions: 2 [13:30:37.256] signalConditions() ... done [13:30:37.256] Future state: 'finished' [13:30:37.256] signalConditions() ... [13:30:37.256] - include = 'condition' [13:30:37.257] - exclude = 'immediateCondition' [13:30:37.257] - resignal = TRUE [13:30:37.257] - Number of conditions: 2 [13:30:37.257] - Condition #1: 'simpleMessage', 'message', 'condition' Calculating tile #1 of 4 ...[13:30:37.257] - Condition #2: 'simpleMessage', 'message', 'condition' done [13:30:37.257] signalConditions() ... done [13:30:37.261] resolved() for 'MiraiFuture' ... [13:30:37.261] - state: 'running' [13:30:37.262] - run: TRUE [13:30:37.262] - result: 'NULL' [13:30:37.262] - resolved: FALSE [13:30:37.262] resolved() for 'MiraiFuture' ... done Plotting tile #2 of 4 ... [13:30:37.263] signalConditions() ... [13:30:37.263] - include = 'immediateCondition' [13:30:37.263] - exclude = [13:30:37.263] - resignal = FALSE [13:30:37.263] - Number of conditions: 2 [13:30:37.264] signalConditions() ... done [13:30:37.264] Future state: 'finished' [13:30:37.264] signalConditions() ... [13:30:37.264] - include = 'condition' [13:30:37.264] - exclude = 'immediateCondition' [13:30:37.264] - resignal = TRUE [13:30:37.265] - Number of conditions: 2 [13:30:37.265] - Condition #1: 'simpleMessage', 'message', 'condition' Calculating tile #2 of 4 ...[13:30:37.265] - Condition #2: 'simpleMessage', 'message', 'condition' done [13:30:37.265] signalConditions() ... done [13:30:37.266] resolved() for 'MiraiFuture' ... [13:30:37.266] - state: 'running' [13:30:37.266] - run: TRUE [13:30:37.267] - result: 'NULL' [13:30:37.267] - resolved: FALSE [13:30:37.267] resolved() for 'MiraiFuture' ... done [13:30:37.267] resolved() for 'MiraiFuture' ... [13:30:37.267] - state: 'running' [13:30:37.267] - run: TRUE [13:30:37.268] - result: 'NULL' [13:30:37.268] - resolved: FALSE [13:30:37.268] resolved() for 'MiraiFuture' ... done [13:30:37.268] resolved() for 'MiraiFuture' ... [13:30:37.268] - state: 'running' [13:30:37.269] - run: TRUE [13:30:37.269] - result: 'NULL' [13:30:37.269] - resolved: FALSE [13:30:37.269] resolved() for 'MiraiFuture' ... done [13:30:37.269] resolved() for 'MiraiFuture' ... [13:30:37.269] - state: 'running' [13:30:37.270] - run: TRUE [13:30:37.270] - result: 'NULL' [13:30:37.270] - resolved: FALSE [13:30:37.270] resolved() for 'MiraiFuture' ... done [13:30:37.270] resolved() for 'MiraiFuture' ... [13:30:37.271] - state: 'running' [13:30:37.271] - run: TRUE [13:30:37.271] - result: 'NULL' [13:30:37.271] - resolved: FALSE [13:30:37.271] resolved() for 'MiraiFuture' ... done [13:30:37.272] resolved() for 'MiraiFuture' ... [13:30:37.272] - state: 'running' [13:30:37.272] - run: TRUE [13:30:37.272] - result: 'NULL' [13:30:37.272] - resolved: FALSE [13:30:37.272] resolved() for 'MiraiFuture' ... done [13:30:37.273] resolved() for 'MiraiFuture' ... [13:30:37.273] - state: 'running' [13:30:37.273] - run: TRUE [13:30:37.273] - result: 'NULL' [13:30:37.273] - resolved: FALSE [13:30:37.274] resolved() for 'MiraiFuture' ... done [13:30:37.274] resolved() for 'MiraiFuture' ... [13:30:37.274] - state: 'running' [13:30:37.274] - run: TRUE [13:30:37.274] - result: 'NULL' [13:30:37.274] - resolved: FALSE [13:30:37.275] resolved() for 'MiraiFuture' ... done [13:30:37.275] resolved() for 'MiraiFuture' ... [13:30:37.275] - state: 'running' [13:30:37.275] - run: TRUE [13:30:37.275] - result: 'NULL' [13:30:37.276] - resolved: FALSE [13:30:37.276] resolved() for 'MiraiFuture' ... done [13:30:37.276] resolved() for 'MiraiFuture' ... [13:30:37.276] - state: 'running' [13:30:37.276] - run: TRUE [13:30:37.276] - result: 'NULL' [13:30:37.277] - resolved: FALSE [13:30:37.277] resolved() for 'MiraiFuture' ... done [13:30:37.277] resolved() for 'MiraiFuture' ... [13:30:37.277] - state: 'running' [13:30:37.277] - run: TRUE [13:30:37.278] - result: 'NULL' [13:30:37.278] - resolved: FALSE [13:30:37.278] resolved() for 'MiraiFuture' ... done [13:30:37.278] resolved() for 'MiraiFuture' ... [13:30:37.278] - state: 'running' [13:30:37.278] - run: TRUE [13:30:37.279] - result: 'NULL' [13:30:37.279] - resolved: FALSE [13:30:37.279] resolved() for 'MiraiFuture' ... done [13:30:37.279] resolved() for 'MiraiFuture' ... [13:30:37.279] - state: 'running' [13:30:37.280] - run: TRUE [13:30:37.280] - result: 'NULL' [13:30:37.280] - resolved: FALSE [13:30:37.280] resolved() for 'MiraiFuture' ... done [13:30:37.280] resolved() for 'MiraiFuture' ... [13:30:37.280] - state: 'running' [13:30:37.281] - run: TRUE [13:30:37.281] - result: 'NULL' [13:30:37.281] - resolved: FALSE [13:30:37.281] resolved() for 'MiraiFuture' ... done [13:30:37.281] resolved() for 'MiraiFuture' ... [13:30:37.282] - state: 'running' [13:30:37.282] - run: TRUE [13:30:37.282] - result: 'NULL' [13:30:37.282] - resolved: FALSE [13:30:37.282] resolved() for 'MiraiFuture' ... done Plotting tile #3 of 4 ... [13:30:37.283] signalConditions() ... [13:30:37.283] - include = 'immediateCondition' [13:30:37.283] - exclude = [13:30:37.283] - resignal = FALSE [13:30:37.283] - Number of conditions: 2 [13:30:37.284] signalConditions() ... done [13:30:37.284] Future state: 'finished' [13:30:37.284] signalConditions() ... [13:30:37.284] - include = 'condition' [13:30:37.284] - exclude = 'immediateCondition' [13:30:37.285] - resignal = TRUE [13:30:37.285] - Number of conditions: 2 [13:30:37.285] - Condition #1: 'simpleMessage', 'message', 'condition' Calculating tile #3 of 4 ...[13:30:37.285] - Condition #2: 'simpleMessage', 'message', 'condition' done [13:30:37.285] signalConditions() ... done [13:30:37.286] resolved() for 'MiraiFuture' ... [13:30:37.286] - state: 'running' [13:30:37.286] - run: TRUE [13:30:37.287] - result: 'NULL' [13:30:37.287] - resolved: FALSE [13:30:37.287] resolved() for 'MiraiFuture' ... done [13:30:37.287] resolved() for 'MiraiFuture' ... [13:30:37.287] - state: 'running' [13:30:37.288] - run: TRUE [13:30:37.288] - result: 'NULL' [13:30:37.288] - resolved: FALSE [13:30:37.288] resolved() for 'MiraiFuture' ... done [13:30:37.288] resolved() for 'MiraiFuture' ... [13:30:37.289] - state: 'running' [13:30:37.289] - run: TRUE [13:30:37.289] - result: 'NULL' [13:30:37.289] - resolved: FALSE [13:30:37.289] resolved() for 'MiraiFuture' ... done [13:30:37.290] resolved() for 'MiraiFuture' ... [13:30:37.290] - state: 'running' [13:30:37.290] - run: TRUE [13:30:37.290] - result: 'NULL' [13:30:37.290] - resolved: FALSE [13:30:37.290] resolved() for 'MiraiFuture' ... done [13:30:37.291] resolved() for 'MiraiFuture' ... [13:30:37.291] - state: 'running' [13:30:37.291] - run: TRUE [13:30:37.291] - result: 'NULL' [13:30:37.291] - resolved: FALSE [13:30:37.291] resolved() for 'MiraiFuture' ... done [13:30:37.293] resolved() for 'MiraiFuture' ... [13:30:37.294] - state: 'running' [13:30:37.294] - run: TRUE [13:30:37.294] - result: 'NULL' [13:30:37.294] - resolved: FALSE [13:30:37.294] resolved() for 'MiraiFuture' ... done [13:30:37.294] resolved() for 'MiraiFuture' ... [13:30:37.295] - state: 'running' [13:30:37.295] - run: TRUE [13:30:37.295] - result: 'NULL' [13:30:37.295] - resolved: FALSE [13:30:37.295] resolved() for 'MiraiFuture' ... done [13:30:37.296] resolved() for 'MiraiFuture' ... [13:30:37.296] - state: 'running' [13:30:37.296] - run: TRUE [13:30:37.296] - result: 'NULL' [13:30:37.296] - resolved: FALSE [13:30:37.296] resolved() for 'MiraiFuture' ... done [13:30:37.297] resolved() for 'MiraiFuture' ... [13:30:37.297] - state: 'running' [13:30:37.297] - run: TRUE [13:30:37.297] - result: 'NULL' [13:30:37.297] - resolved: FALSE [13:30:37.298] resolved() for 'MiraiFuture' ... done [13:30:37.298] resolved() for 'MiraiFuture' ... [13:30:37.298] - state: 'running' [13:30:37.298] - run: TRUE [13:30:37.298] - result: 'NULL' [13:30:37.299] - resolved: FALSE [13:30:37.299] resolved() for 'MiraiFuture' ... done [13:30:37.299] resolved() for 'MiraiFuture' ... [13:30:37.299] - state: 'running' [13:30:37.299] - run: TRUE [13:30:37.299] - result: 'NULL' [13:30:37.300] - resolved: FALSE [13:30:37.300] resolved() for 'MiraiFuture' ... done Plotting tile #4 of 4 ... [13:30:37.300] signalConditions() ... [13:30:37.301] - include = 'immediateCondition' [13:30:37.301] - exclude = [13:30:37.301] - resignal = FALSE [13:30:37.301] - Number of conditions: 2 [13:30:37.301] signalConditions() ... done [13:30:37.301] Future state: 'finished' [13:30:37.302] signalConditions() ... [13:30:37.302] - include = 'condition' [13:30:37.302] - exclude = 'immediateCondition' [13:30:37.302] - resignal = TRUE [13:30:37.302] - Number of conditions: 2 [13:30:37.303] - Condition #1: 'simpleMessage', 'message', 'condition' Calculating tile #4 of 4 ...[13:30:37.303] - Condition #2: 'simpleMessage', 'message', 'condition' done [13:30:37.303] signalConditions() ... done > close.screen() [1] 1 2 3 4 > message("SUGGESTION: Try to rerun this demo after changing strategy for how futures are resolved, e.g. plan(multisession).\n") SUGGESTION: Try to rerun this demo after changing strategy for how futures are resolved, e.g. plan(multisession). > > message("*** Demos ... DONE") *** Demos ... DONE > > source("incl/end.R") > > proc.time() user system elapsed 0.51 0.09 1.04