R version 4.4.0 beta (2024-04-15 r86425 ucrt) -- "Puppy Cup" 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:10:31.654] plan(): Setting new future strategy stack: [13:10:31.656] List of future strategies: [13:10:31.656] 1. mirai_multisession: [13:10:31.656] - args: function (expr, substitute = TRUE, envir = parent.frame(), ..., workers = availableCores()) [13:10:31.656] - tweaked: FALSE [13:10:31.656] - call: future::plan(future.mirai::mirai_multisession) [13:10:31.668] plan(): plan_init() of 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' ... [13:10:31.668] < mirai | $data > [13:10:31.673] getGlobalsAndPackages() ... [13:10:31.673] Not searching for globals [13:10:31.674] - globals: [0] [13:10:31.674] getGlobalsAndPackages() ... DONE [13:10:31.674] getGlobalsAndPackages() ... [13:10:31.675] [13:10:31.675] - globals: [0] [13:10:31.675] getGlobalsAndPackages() ... DONE [13:10:31.958] Packages needed by the future expression (n = 0): [13:10:31.959] Packages needed by future strategies (n = 0): [13:10:31.960] { [13:10:31.960] { [13:10:31.960] { [13:10:31.960] ...future.startTime <- base::Sys.time() [13:10:31.960] { [13:10:31.960] { [13:10:31.960] { [13:10:31.960] base::local({ [13:10:31.960] has_future <- base::requireNamespace("future", [13:10:31.960] quietly = TRUE) [13:10:31.960] if (has_future) { [13:10:31.960] ns <- base::getNamespace("future") [13:10:31.960] version <- ns[[".package"]][["version"]] [13:10:31.960] if (is.null(version)) [13:10:31.960] version <- utils::packageVersion("future") [13:10:31.960] } [13:10:31.960] else { [13:10:31.960] version <- NULL [13:10:31.960] } [13:10:31.960] if (!has_future || version < "1.8.0") { [13:10:31.960] info <- base::c(r_version = base::gsub("R version ", [13:10:31.960] "", base::R.version$version.string), [13:10:31.960] platform = base::sprintf("%s (%s-bit)", [13:10:31.960] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:10:31.960] os = base::paste(base::Sys.info()[base::c("sysname", [13:10:31.960] "release", "version")], collapse = " "), [13:10:31.960] hostname = base::Sys.info()[["nodename"]]) [13:10:31.960] info <- base::sprintf("%s: %s", base::names(info), [13:10:31.960] info) [13:10:31.960] info <- base::paste(info, collapse = "; ") [13:10:31.960] if (!has_future) { [13:10:31.960] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:10:31.960] info) [13:10:31.960] } [13:10:31.960] else { [13:10:31.960] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:10:31.960] info, version) [13:10:31.960] } [13:10:31.960] base::stop(msg) [13:10:31.960] } [13:10:31.960] }) [13:10:31.960] } [13:10:31.960] ...future.strategy.old <- future::plan("list") [13:10:31.960] options(future.plan = NULL) [13:10:31.960] Sys.unsetenv("R_FUTURE_PLAN") [13:10:31.960] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:10:31.960] } [13:10:31.960] ...future.workdir <- getwd() [13:10:31.960] } [13:10:31.960] ...future.oldOptions <- base::as.list(base::.Options) [13:10:31.960] ...future.oldEnvVars <- base::Sys.getenv() [13:10:31.960] } [13:10:31.960] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:10:31.960] future.globals.maxSize = NULL, future.globals.method = NULL, [13:10:31.960] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:10:31.960] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:10:31.960] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:10:31.960] future.stdout.windows.reencode = NULL, width = 80L) [13:10:31.960] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:10:31.960] base::names(...future.oldOptions)) [13:10:31.960] } [13:10:31.960] if (FALSE) { [13:10:31.960] } [13:10:31.960] else { [13:10:31.960] if (TRUE) { [13:10:31.960] ...future.stdout <- base::rawConnection(base::raw(0L), [13:10:31.960] open = "w") [13:10:31.960] } [13:10:31.960] else { [13:10:31.960] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:10:31.960] windows = "NUL", "/dev/null"), open = "w") [13:10:31.960] } [13:10:31.960] base::sink(...future.stdout, type = "output", split = FALSE) [13:10:31.960] base::on.exit(if (!base::is.null(...future.stdout)) { [13:10:31.960] base::sink(type = "output", split = FALSE) [13:10:31.960] base::close(...future.stdout) [13:10:31.960] }, add = TRUE) [13:10:31.960] } [13:10:31.960] ...future.frame <- base::sys.nframe() [13:10:31.960] ...future.conditions <- base::list() [13:10:31.960] ...future.rng <- base::globalenv()$.Random.seed [13:10:31.960] if (FALSE) { [13:10:31.960] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:10:31.960] "...future.value", "...future.globalenv.names", ".Random.seed") [13:10:31.960] } [13:10:31.960] ...future.result <- base::tryCatch({ [13:10:31.960] base::withCallingHandlers({ [13:10:31.960] ...future.value <- base::withVisible(base::local(NA)) [13:10:31.960] future::FutureResult(value = ...future.value$value, [13:10:31.960] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:10:31.960] ...future.rng), globalenv = if (FALSE) [13:10:31.960] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:10:31.960] ...future.globalenv.names)) [13:10:31.960] else NULL, started = ...future.startTime, version = "1.8") [13:10:31.960] }, condition = base::local({ [13:10:31.960] c <- base::c [13:10:31.960] inherits <- base::inherits [13:10:31.960] invokeRestart <- base::invokeRestart [13:10:31.960] length <- base::length [13:10:31.960] list <- base::list [13:10:31.960] seq.int <- base::seq.int [13:10:31.960] signalCondition <- base::signalCondition [13:10:31.960] sys.calls <- base::sys.calls [13:10:31.960] `[[` <- base::`[[` [13:10:31.960] `+` <- base::`+` [13:10:31.960] `<<-` <- base::`<<-` [13:10:31.960] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:10:31.960] calls[seq.int(from = from + 12L, to = length(calls) - [13:10:31.960] 3L)] [13:10:31.960] } [13:10:31.960] function(cond) { [13:10:31.960] is_error <- inherits(cond, "error") [13:10:31.960] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:10:31.960] NULL) [13:10:31.960] if (is_error) { [13:10:31.960] sessionInformation <- function() { [13:10:31.960] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:10:31.960] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:10:31.960] search = base::search(), system = base::Sys.info()) [13:10:31.960] } [13:10:31.960] ...future.conditions[[length(...future.conditions) + [13:10:31.960] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:10:31.960] cond$call), session = sessionInformation(), [13:10:31.960] timestamp = base::Sys.time(), signaled = 0L) [13:10:31.960] signalCondition(cond) [13:10:31.960] } [13:10:31.960] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:10:31.960] signal <- FALSE && inherits(cond, character(0)) [13:10:31.960] ...future.conditions[[length(...future.conditions) + [13:10:31.960] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:10:31.960] if (FALSE && !signal) { [13:10:31.960] muffleCondition <- function (cond, pattern = "^muffle") [13:10:31.960] { [13:10:31.960] inherits <- base::inherits [13:10:31.960] invokeRestart <- base::invokeRestart [13:10:31.960] is.null <- base::is.null [13:10:31.960] muffled <- FALSE [13:10:31.960] if (inherits(cond, "message")) { [13:10:31.960] muffled <- grepl(pattern, "muffleMessage") [13:10:31.960] if (muffled) [13:10:31.960] invokeRestart("muffleMessage") [13:10:31.960] } [13:10:31.960] else if (inherits(cond, "warning")) { [13:10:31.960] muffled <- grepl(pattern, "muffleWarning") [13:10:31.960] if (muffled) [13:10:31.960] invokeRestart("muffleWarning") [13:10:31.960] } [13:10:31.960] else if (inherits(cond, "condition")) { [13:10:31.960] if (!is.null(pattern)) { [13:10:31.960] computeRestarts <- base::computeRestarts [13:10:31.960] grepl <- base::grepl [13:10:31.960] restarts <- computeRestarts(cond) [13:10:31.960] for (restart in restarts) { [13:10:31.960] name <- restart$name [13:10:31.960] if (is.null(name)) [13:10:31.960] next [13:10:31.960] if (!grepl(pattern, name)) [13:10:31.960] next [13:10:31.960] invokeRestart(restart) [13:10:31.960] muffled <- TRUE [13:10:31.960] break [13:10:31.960] } [13:10:31.960] } [13:10:31.960] } [13:10:31.960] invisible(muffled) [13:10:31.960] } [13:10:31.960] muffleCondition(cond, pattern = "^muffle") [13:10:31.960] } [13:10:31.960] } [13:10:31.960] else { [13:10:31.960] if (TRUE) { [13:10:31.960] muffleCondition <- function (cond, pattern = "^muffle") [13:10:31.960] { [13:10:31.960] inherits <- base::inherits [13:10:31.960] invokeRestart <- base::invokeRestart [13:10:31.960] is.null <- base::is.null [13:10:31.960] muffled <- FALSE [13:10:31.960] if (inherits(cond, "message")) { [13:10:31.960] muffled <- grepl(pattern, "muffleMessage") [13:10:31.960] if (muffled) [13:10:31.960] invokeRestart("muffleMessage") [13:10:31.960] } [13:10:31.960] else if (inherits(cond, "warning")) { [13:10:31.960] muffled <- grepl(pattern, "muffleWarning") [13:10:31.960] if (muffled) [13:10:31.960] invokeRestart("muffleWarning") [13:10:31.960] } [13:10:31.960] else if (inherits(cond, "condition")) { [13:10:31.960] if (!is.null(pattern)) { [13:10:31.960] computeRestarts <- base::computeRestarts [13:10:31.960] grepl <- base::grepl [13:10:31.960] restarts <- computeRestarts(cond) [13:10:31.960] for (restart in restarts) { [13:10:31.960] name <- restart$name [13:10:31.960] if (is.null(name)) [13:10:31.960] next [13:10:31.960] if (!grepl(pattern, name)) [13:10:31.960] next [13:10:31.960] invokeRestart(restart) [13:10:31.960] muffled <- TRUE [13:10:31.960] break [13:10:31.960] } [13:10:31.960] } [13:10:31.960] } [13:10:31.960] invisible(muffled) [13:10:31.960] } [13:10:31.960] muffleCondition(cond, pattern = "^muffle") [13:10:31.960] } [13:10:31.960] } [13:10:31.960] } [13:10:31.960] })) [13:10:31.960] }, error = function(ex) { [13:10:31.960] base::structure(base::list(value = NULL, visible = NULL, [13:10:31.960] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:10:31.960] ...future.rng), started = ...future.startTime, [13:10:31.960] finished = Sys.time(), session_uuid = NA_character_, [13:10:31.960] version = "1.8"), class = "FutureResult") [13:10:31.960] }, finally = { [13:10:31.960] if (!identical(...future.workdir, getwd())) [13:10:31.960] setwd(...future.workdir) [13:10:31.960] { [13:10:31.960] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:10:31.960] ...future.oldOptions$nwarnings <- NULL [13:10:31.960] } [13:10:31.960] base::options(...future.oldOptions) [13:10:31.960] if (.Platform$OS.type == "windows") { [13:10:31.960] old_names <- names(...future.oldEnvVars) [13:10:31.960] envs <- base::Sys.getenv() [13:10:31.960] names <- names(envs) [13:10:31.960] common <- intersect(names, old_names) [13:10:31.960] added <- setdiff(names, old_names) [13:10:31.960] removed <- setdiff(old_names, names) [13:10:31.960] changed <- common[...future.oldEnvVars[common] != [13:10:31.960] envs[common]] [13:10:31.960] NAMES <- toupper(changed) [13:10:31.960] args <- list() [13:10:31.960] for (kk in seq_along(NAMES)) { [13:10:31.960] name <- changed[[kk]] [13:10:31.960] NAME <- NAMES[[kk]] [13:10:31.960] if (name != NAME && is.element(NAME, old_names)) [13:10:31.960] next [13:10:31.960] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:31.960] } [13:10:31.960] NAMES <- toupper(added) [13:10:31.960] for (kk in seq_along(NAMES)) { [13:10:31.960] name <- added[[kk]] [13:10:31.960] NAME <- NAMES[[kk]] [13:10:31.960] if (name != NAME && is.element(NAME, old_names)) [13:10:31.960] next [13:10:31.960] args[[name]] <- "" [13:10:31.960] } [13:10:31.960] NAMES <- toupper(removed) [13:10:31.960] for (kk in seq_along(NAMES)) { [13:10:31.960] name <- removed[[kk]] [13:10:31.960] NAME <- NAMES[[kk]] [13:10:31.960] if (name != NAME && is.element(NAME, old_names)) [13:10:31.960] next [13:10:31.960] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:31.960] } [13:10:31.960] if (length(args) > 0) [13:10:31.960] base::do.call(base::Sys.setenv, args = args) [13:10:31.960] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:10:31.960] } [13:10:31.960] else { [13:10:31.960] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:10:31.960] } [13:10:31.960] { [13:10:31.960] if (base::length(...future.futureOptionsAdded) > [13:10:31.960] 0L) { [13:10:31.960] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:10:31.960] base::names(opts) <- ...future.futureOptionsAdded [13:10:31.960] base::options(opts) [13:10:31.960] } [13:10:31.960] { [13:10:31.960] NULL [13:10:31.960] options(future.plan = NULL) [13:10:31.960] if (is.na(NA_character_)) [13:10:31.960] Sys.unsetenv("R_FUTURE_PLAN") [13:10:31.960] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:10:31.960] future::plan(...future.strategy.old, .cleanup = FALSE, [13:10:31.960] .init = FALSE) [13:10:31.960] } [13:10:31.960] } [13:10:31.960] } [13:10:31.960] }) [13:10:31.960] if (TRUE) { [13:10:31.960] base::sink(type = "output", split = FALSE) [13:10:31.960] if (TRUE) { [13:10:31.960] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:10:31.960] } [13:10:31.960] else { [13:10:31.960] ...future.result["stdout"] <- base::list(NULL) [13:10:31.960] } [13:10:31.960] base::close(...future.stdout) [13:10:31.960] ...future.stdout <- NULL [13:10:31.960] } [13:10:31.960] ...future.result$conditions <- ...future.conditions [13:10:31.960] ...future.result$finished <- base::Sys.time() [13:10:31.960] ...future.result [13:10:31.960] } [13:10:32.061] plan(): plan_init() of 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' ... DONE [13:10:32.061] 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:10:32.063] plan(): Setting new future strategy stack: [13:10:32.063] List of future strategies: [13:10:32.063] 1. mirai_multisession: [13:10:32.063] - args: function (..., workers = 2, envir = parent.frame()) [13:10:32.063] - tweaked: TRUE [13:10:32.063] - call: plan(mirai_multisession, workers = 2) [13:10:32.076] plan(): plan_init() of 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' ... [13:10:32.076] < mirai | $data > [13:10:32.077] getGlobalsAndPackages() ... [13:10:32.077] Not searching for globals [13:10:32.077] - globals: [0] [13:10:32.077] getGlobalsAndPackages() ... DONE [13:10:32.077] getGlobalsAndPackages() ... [13:10:32.078] [13:10:32.078] - globals: [0] [13:10:32.078] getGlobalsAndPackages() ... DONE [13:10:32.078] Packages needed by the future expression (n = 0): [13:10:32.078] Packages needed by future strategies (n = 0): [13:10:32.079] { [13:10:32.079] { [13:10:32.079] { [13:10:32.079] ...future.startTime <- base::Sys.time() [13:10:32.079] { [13:10:32.079] { [13:10:32.079] { [13:10:32.079] base::local({ [13:10:32.079] has_future <- base::requireNamespace("future", [13:10:32.079] quietly = TRUE) [13:10:32.079] if (has_future) { [13:10:32.079] ns <- base::getNamespace("future") [13:10:32.079] version <- ns[[".package"]][["version"]] [13:10:32.079] if (is.null(version)) [13:10:32.079] version <- utils::packageVersion("future") [13:10:32.079] } [13:10:32.079] else { [13:10:32.079] version <- NULL [13:10:32.079] } [13:10:32.079] if (!has_future || version < "1.8.0") { [13:10:32.079] info <- base::c(r_version = base::gsub("R version ", [13:10:32.079] "", base::R.version$version.string), [13:10:32.079] platform = base::sprintf("%s (%s-bit)", [13:10:32.079] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:10:32.079] os = base::paste(base::Sys.info()[base::c("sysname", [13:10:32.079] "release", "version")], collapse = " "), [13:10:32.079] hostname = base::Sys.info()[["nodename"]]) [13:10:32.079] info <- base::sprintf("%s: %s", base::names(info), [13:10:32.079] info) [13:10:32.079] info <- base::paste(info, collapse = "; ") [13:10:32.079] if (!has_future) { [13:10:32.079] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:10:32.079] info) [13:10:32.079] } [13:10:32.079] else { [13:10:32.079] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:10:32.079] info, version) [13:10:32.079] } [13:10:32.079] base::stop(msg) [13:10:32.079] } [13:10:32.079] }) [13:10:32.079] } [13:10:32.079] ...future.strategy.old <- future::plan("list") [13:10:32.079] options(future.plan = NULL) [13:10:32.079] Sys.unsetenv("R_FUTURE_PLAN") [13:10:32.079] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:10:32.079] } [13:10:32.079] ...future.workdir <- getwd() [13:10:32.079] } [13:10:32.079] ...future.oldOptions <- base::as.list(base::.Options) [13:10:32.079] ...future.oldEnvVars <- base::Sys.getenv() [13:10:32.079] } [13:10:32.079] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:10:32.079] future.globals.maxSize = NULL, future.globals.method = NULL, [13:10:32.079] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:10:32.079] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:10:32.079] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:10:32.079] future.stdout.windows.reencode = NULL, width = 80L) [13:10:32.079] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:10:32.079] base::names(...future.oldOptions)) [13:10:32.079] } [13:10:32.079] if (FALSE) { [13:10:32.079] } [13:10:32.079] else { [13:10:32.079] if (TRUE) { [13:10:32.079] ...future.stdout <- base::rawConnection(base::raw(0L), [13:10:32.079] open = "w") [13:10:32.079] } [13:10:32.079] else { [13:10:32.079] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:10:32.079] windows = "NUL", "/dev/null"), open = "w") [13:10:32.079] } [13:10:32.079] base::sink(...future.stdout, type = "output", split = FALSE) [13:10:32.079] base::on.exit(if (!base::is.null(...future.stdout)) { [13:10:32.079] base::sink(type = "output", split = FALSE) [13:10:32.079] base::close(...future.stdout) [13:10:32.079] }, add = TRUE) [13:10:32.079] } [13:10:32.079] ...future.frame <- base::sys.nframe() [13:10:32.079] ...future.conditions <- base::list() [13:10:32.079] ...future.rng <- base::globalenv()$.Random.seed [13:10:32.079] if (FALSE) { [13:10:32.079] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:10:32.079] "...future.value", "...future.globalenv.names", ".Random.seed") [13:10:32.079] } [13:10:32.079] ...future.result <- base::tryCatch({ [13:10:32.079] base::withCallingHandlers({ [13:10:32.079] ...future.value <- base::withVisible(base::local(NA)) [13:10:32.079] future::FutureResult(value = ...future.value$value, [13:10:32.079] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:10:32.079] ...future.rng), globalenv = if (FALSE) [13:10:32.079] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:10:32.079] ...future.globalenv.names)) [13:10:32.079] else NULL, started = ...future.startTime, version = "1.8") [13:10:32.079] }, condition = base::local({ [13:10:32.079] c <- base::c [13:10:32.079] inherits <- base::inherits [13:10:32.079] invokeRestart <- base::invokeRestart [13:10:32.079] length <- base::length [13:10:32.079] list <- base::list [13:10:32.079] seq.int <- base::seq.int [13:10:32.079] signalCondition <- base::signalCondition [13:10:32.079] sys.calls <- base::sys.calls [13:10:32.079] `[[` <- base::`[[` [13:10:32.079] `+` <- base::`+` [13:10:32.079] `<<-` <- base::`<<-` [13:10:32.079] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:10:32.079] calls[seq.int(from = from + 12L, to = length(calls) - [13:10:32.079] 3L)] [13:10:32.079] } [13:10:32.079] function(cond) { [13:10:32.079] is_error <- inherits(cond, "error") [13:10:32.079] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:10:32.079] NULL) [13:10:32.079] if (is_error) { [13:10:32.079] sessionInformation <- function() { [13:10:32.079] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:10:32.079] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:10:32.079] search = base::search(), system = base::Sys.info()) [13:10:32.079] } [13:10:32.079] ...future.conditions[[length(...future.conditions) + [13:10:32.079] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:10:32.079] cond$call), session = sessionInformation(), [13:10:32.079] timestamp = base::Sys.time(), signaled = 0L) [13:10:32.079] signalCondition(cond) [13:10:32.079] } [13:10:32.079] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:10:32.079] signal <- FALSE && inherits(cond, character(0)) [13:10:32.079] ...future.conditions[[length(...future.conditions) + [13:10:32.079] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:10:32.079] if (FALSE && !signal) { [13:10:32.079] muffleCondition <- function (cond, pattern = "^muffle") [13:10:32.079] { [13:10:32.079] inherits <- base::inherits [13:10:32.079] invokeRestart <- base::invokeRestart [13:10:32.079] is.null <- base::is.null [13:10:32.079] muffled <- FALSE [13:10:32.079] if (inherits(cond, "message")) { [13:10:32.079] muffled <- grepl(pattern, "muffleMessage") [13:10:32.079] if (muffled) [13:10:32.079] invokeRestart("muffleMessage") [13:10:32.079] } [13:10:32.079] else if (inherits(cond, "warning")) { [13:10:32.079] muffled <- grepl(pattern, "muffleWarning") [13:10:32.079] if (muffled) [13:10:32.079] invokeRestart("muffleWarning") [13:10:32.079] } [13:10:32.079] else if (inherits(cond, "condition")) { [13:10:32.079] if (!is.null(pattern)) { [13:10:32.079] computeRestarts <- base::computeRestarts [13:10:32.079] grepl <- base::grepl [13:10:32.079] restarts <- computeRestarts(cond) [13:10:32.079] for (restart in restarts) { [13:10:32.079] name <- restart$name [13:10:32.079] if (is.null(name)) [13:10:32.079] next [13:10:32.079] if (!grepl(pattern, name)) [13:10:32.079] next [13:10:32.079] invokeRestart(restart) [13:10:32.079] muffled <- TRUE [13:10:32.079] break [13:10:32.079] } [13:10:32.079] } [13:10:32.079] } [13:10:32.079] invisible(muffled) [13:10:32.079] } [13:10:32.079] muffleCondition(cond, pattern = "^muffle") [13:10:32.079] } [13:10:32.079] } [13:10:32.079] else { [13:10:32.079] if (TRUE) { [13:10:32.079] muffleCondition <- function (cond, pattern = "^muffle") [13:10:32.079] { [13:10:32.079] inherits <- base::inherits [13:10:32.079] invokeRestart <- base::invokeRestart [13:10:32.079] is.null <- base::is.null [13:10:32.079] muffled <- FALSE [13:10:32.079] if (inherits(cond, "message")) { [13:10:32.079] muffled <- grepl(pattern, "muffleMessage") [13:10:32.079] if (muffled) [13:10:32.079] invokeRestart("muffleMessage") [13:10:32.079] } [13:10:32.079] else if (inherits(cond, "warning")) { [13:10:32.079] muffled <- grepl(pattern, "muffleWarning") [13:10:32.079] if (muffled) [13:10:32.079] invokeRestart("muffleWarning") [13:10:32.079] } [13:10:32.079] else if (inherits(cond, "condition")) { [13:10:32.079] if (!is.null(pattern)) { [13:10:32.079] computeRestarts <- base::computeRestarts [13:10:32.079] grepl <- base::grepl [13:10:32.079] restarts <- computeRestarts(cond) [13:10:32.079] for (restart in restarts) { [13:10:32.079] name <- restart$name [13:10:32.079] if (is.null(name)) [13:10:32.079] next [13:10:32.079] if (!grepl(pattern, name)) [13:10:32.079] next [13:10:32.079] invokeRestart(restart) [13:10:32.079] muffled <- TRUE [13:10:32.079] break [13:10:32.079] } [13:10:32.079] } [13:10:32.079] } [13:10:32.079] invisible(muffled) [13:10:32.079] } [13:10:32.079] muffleCondition(cond, pattern = "^muffle") [13:10:32.079] } [13:10:32.079] } [13:10:32.079] } [13:10:32.079] })) [13:10:32.079] }, error = function(ex) { [13:10:32.079] base::structure(base::list(value = NULL, visible = NULL, [13:10:32.079] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:10:32.079] ...future.rng), started = ...future.startTime, [13:10:32.079] finished = Sys.time(), session_uuid = NA_character_, [13:10:32.079] version = "1.8"), class = "FutureResult") [13:10:32.079] }, finally = { [13:10:32.079] if (!identical(...future.workdir, getwd())) [13:10:32.079] setwd(...future.workdir) [13:10:32.079] { [13:10:32.079] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:10:32.079] ...future.oldOptions$nwarnings <- NULL [13:10:32.079] } [13:10:32.079] base::options(...future.oldOptions) [13:10:32.079] if (.Platform$OS.type == "windows") { [13:10:32.079] old_names <- names(...future.oldEnvVars) [13:10:32.079] envs <- base::Sys.getenv() [13:10:32.079] names <- names(envs) [13:10:32.079] common <- intersect(names, old_names) [13:10:32.079] added <- setdiff(names, old_names) [13:10:32.079] removed <- setdiff(old_names, names) [13:10:32.079] changed <- common[...future.oldEnvVars[common] != [13:10:32.079] envs[common]] [13:10:32.079] NAMES <- toupper(changed) [13:10:32.079] args <- list() [13:10:32.079] for (kk in seq_along(NAMES)) { [13:10:32.079] name <- changed[[kk]] [13:10:32.079] NAME <- NAMES[[kk]] [13:10:32.079] if (name != NAME && is.element(NAME, old_names)) [13:10:32.079] next [13:10:32.079] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:32.079] } [13:10:32.079] NAMES <- toupper(added) [13:10:32.079] for (kk in seq_along(NAMES)) { [13:10:32.079] name <- added[[kk]] [13:10:32.079] NAME <- NAMES[[kk]] [13:10:32.079] if (name != NAME && is.element(NAME, old_names)) [13:10:32.079] next [13:10:32.079] args[[name]] <- "" [13:10:32.079] } [13:10:32.079] NAMES <- toupper(removed) [13:10:32.079] for (kk in seq_along(NAMES)) { [13:10:32.079] name <- removed[[kk]] [13:10:32.079] NAME <- NAMES[[kk]] [13:10:32.079] if (name != NAME && is.element(NAME, old_names)) [13:10:32.079] next [13:10:32.079] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:32.079] } [13:10:32.079] if (length(args) > 0) [13:10:32.079] base::do.call(base::Sys.setenv, args = args) [13:10:32.079] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:10:32.079] } [13:10:32.079] else { [13:10:32.079] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:10:32.079] } [13:10:32.079] { [13:10:32.079] if (base::length(...future.futureOptionsAdded) > [13:10:32.079] 0L) { [13:10:32.079] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:10:32.079] base::names(opts) <- ...future.futureOptionsAdded [13:10:32.079] base::options(opts) [13:10:32.079] } [13:10:32.079] { [13:10:32.079] NULL [13:10:32.079] options(future.plan = NULL) [13:10:32.079] if (is.na(NA_character_)) [13:10:32.079] Sys.unsetenv("R_FUTURE_PLAN") [13:10:32.079] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:10:32.079] future::plan(...future.strategy.old, .cleanup = FALSE, [13:10:32.079] .init = FALSE) [13:10:32.079] } [13:10:32.079] } [13:10:32.079] } [13:10:32.079] }) [13:10:32.079] if (TRUE) { [13:10:32.079] base::sink(type = "output", split = FALSE) [13:10:32.079] if (TRUE) { [13:10:32.079] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:10:32.079] } [13:10:32.079] else { [13:10:32.079] ...future.result["stdout"] <- base::list(NULL) [13:10:32.079] } [13:10:32.079] base::close(...future.stdout) [13:10:32.079] ...future.stdout <- NULL [13:10:32.079] } [13:10:32.079] ...future.result$conditions <- ...future.conditions [13:10:32.079] ...future.result$finished <- base::Sys.time() [13:10:32.079] ...future.result [13:10:32.079] } [13:10:32.180] plan(): plan_init() of 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' ... DONE [13:10:32.180] 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:10:32.235] getGlobalsAndPackages() ... [13:10:32.235] Searching for globals... [13:10:32.246] - globals found: [9] '{', 'message', 'sprintf', 'ii', 'n', '<-', 'mandelbrot', 'C', 'delay' [13:10:32.246] Searching for globals ... DONE [13:10:32.246] Resolving globals: FALSE [13:10:32.247] The total size of the 4 globals is 14.24 KiB (14584 bytes) [13:10:32.248] 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:10:32.248] - globals: [4] 'ii', 'n', 'C', 'delay' [13:10:32.249] - packages: [1] 'future' [13:10:32.249] getGlobalsAndPackages() ... DONE 2[13:10:32.253] getGlobalsAndPackages() ... [13:10:32.254] Searching for globals... [13:10:32.260] - globals found: [9] '{', 'message', 'sprintf', 'ii', 'n', '<-', 'mandelbrot', 'C', 'delay' [13:10:32.260] Searching for globals ... DONE [13:10:32.260] Resolving globals: FALSE [13:10:32.261] The total size of the 4 globals is 14.24 KiB (14584 bytes) [13:10:32.262] 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:10:32.262] - globals: [4] 'ii', 'n', 'C', 'delay' [13:10:32.262] - packages: [1] 'future' [13:10:32.262] getGlobalsAndPackages() ... DONE 3[13:10:32.263] getGlobalsAndPackages() ... [13:10:32.263] Searching for globals... [13:10:32.267] - globals found: [9] '{', 'message', 'sprintf', 'ii', 'n', '<-', 'mandelbrot', 'C', 'delay' [13:10:32.267] Searching for globals ... DONE [13:10:32.267] Resolving globals: FALSE [13:10:32.268] The total size of the 4 globals is 14.24 KiB (14584 bytes) [13:10:32.269] 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:10:32.269] - globals: [4] 'ii', 'n', 'C', 'delay' [13:10:32.269] - packages: [1] 'future' [13:10:32.269] getGlobalsAndPackages() ... DONE 4[13:10:32.270] getGlobalsAndPackages() ... [13:10:32.270] Searching for globals... [13:10:32.274] - globals found: [9] '{', 'message', 'sprintf', 'ii', 'n', '<-', 'mandelbrot', 'C', 'delay' [13:10:32.274] Searching for globals ... DONE [13:10:32.274] Resolving globals: FALSE [13:10:32.275] The total size of the 4 globals is 14.24 KiB (14584 bytes) [13:10:32.276] 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:10:32.276] - globals: [4] 'ii', 'n', 'C', 'delay' [13:10:32.276] - packages: [1] 'future' [13:10:32.276] getGlobalsAndPackages() ... DONE > message(".") . > ## Calculate and plot tiles > repeat { + counts <- plot_what_is_done(counts) + if (!any(sapply(counts, FUN = inherits, "Future"))) break + } [13:10:32.288] resolved() for 'Future' ... [13:10:32.288] - state: 'created' [13:10:32.288] - run: TRUE [13:10:32.289] - run() ... [13:10:32.289] run() for 'Future' ... [13:10:32.289] - state: 'created' [13:10:32.289] - Future backend: 'FutureStrategy', 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' [13:10:32.290] - Future class: 'MiraiFuture', 'MultiprocessFuture', 'Future', 'environment' [13:10:32.290] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... [13:10:32.290] - Field: 'label' [13:10:32.290] - Field: 'local' [13:10:32.291] - Field: 'owner' [13:10:32.291] - Field: 'envir' [13:10:32.291] - Field: 'packages' [13:10:32.291] - Field: 'gc' [13:10:32.291] - Field: 'conditions' [13:10:32.291] - Field: 'expr' [13:10:32.292] - Field: 'uuid' [13:10:32.292] - Field: 'seed' [13:10:32.292] - Field: 'version' [13:10:32.292] - Field: 'result' [13:10:32.292] - Field: 'asynchronous' [13:10:32.292] - Field: 'calls' [13:10:32.293] - Field: 'globals' [13:10:32.293] - Field: 'stdout' [13:10:32.293] - Field: 'earlySignal' [13:10:32.293] - Field: 'lazy' [13:10:32.293] - Field: 'state' [13:10:32.293] - Field: '.cluster' [13:10:32.294] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... done [13:10:32.294] - Launch lazy future ... [13:10:32.294] Packages needed by the future expression (n = 1): 'future' [13:10:32.294] Packages needed by future strategies (n = 0): [13:10:32.295] { [13:10:32.295] { [13:10:32.295] { [13:10:32.295] ...future.startTime <- base::Sys.time() [13:10:32.295] { [13:10:32.295] { [13:10:32.295] { [13:10:32.295] { [13:10:32.295] base::local({ [13:10:32.295] has_future <- base::requireNamespace("future", [13:10:32.295] quietly = TRUE) [13:10:32.295] if (has_future) { [13:10:32.295] ns <- base::getNamespace("future") [13:10:32.295] version <- ns[[".package"]][["version"]] [13:10:32.295] if (is.null(version)) [13:10:32.295] version <- utils::packageVersion("future") [13:10:32.295] } [13:10:32.295] else { [13:10:32.295] version <- NULL [13:10:32.295] } [13:10:32.295] if (!has_future || version < "1.8.0") { [13:10:32.295] info <- base::c(r_version = base::gsub("R version ", [13:10:32.295] "", base::R.version$version.string), [13:10:32.295] platform = base::sprintf("%s (%s-bit)", [13:10:32.295] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:10:32.295] os = base::paste(base::Sys.info()[base::c("sysname", [13:10:32.295] "release", "version")], collapse = " "), [13:10:32.295] hostname = base::Sys.info()[["nodename"]]) [13:10:32.295] info <- base::sprintf("%s: %s", base::names(info), [13:10:32.295] info) [13:10:32.295] info <- base::paste(info, collapse = "; ") [13:10:32.295] if (!has_future) { [13:10:32.295] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:10:32.295] info) [13:10:32.295] } [13:10:32.295] else { [13:10:32.295] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:10:32.295] info, version) [13:10:32.295] } [13:10:32.295] base::stop(msg) [13:10:32.295] } [13:10:32.295] }) [13:10:32.295] } [13:10:32.295] base::local({ [13:10:32.295] for (pkg in "future") { [13:10:32.295] base::loadNamespace(pkg) [13:10:32.295] base::library(pkg, character.only = TRUE) [13:10:32.295] } [13:10:32.295] }) [13:10:32.295] } [13:10:32.295] ...future.strategy.old <- future::plan("list") [13:10:32.295] options(future.plan = NULL) [13:10:32.295] Sys.unsetenv("R_FUTURE_PLAN") [13:10:32.295] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:10:32.295] } [13:10:32.295] ...future.workdir <- getwd() [13:10:32.295] } [13:10:32.295] ...future.oldOptions <- base::as.list(base::.Options) [13:10:32.295] ...future.oldEnvVars <- base::Sys.getenv() [13:10:32.295] } [13:10:32.295] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:10:32.295] future.globals.maxSize = NULL, future.globals.method = NULL, [13:10:32.295] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:10:32.295] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:10:32.295] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:10:32.295] future.stdout.windows.reencode = NULL, width = 80L) [13:10:32.295] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:10:32.295] base::names(...future.oldOptions)) [13:10:32.295] } [13:10:32.295] if (FALSE) { [13:10:32.295] } [13:10:32.295] else { [13:10:32.295] if (TRUE) { [13:10:32.295] ...future.stdout <- base::rawConnection(base::raw(0L), [13:10:32.295] open = "w") [13:10:32.295] } [13:10:32.295] else { [13:10:32.295] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:10:32.295] windows = "NUL", "/dev/null"), open = "w") [13:10:32.295] } [13:10:32.295] base::sink(...future.stdout, type = "output", split = FALSE) [13:10:32.295] base::on.exit(if (!base::is.null(...future.stdout)) { [13:10:32.295] base::sink(type = "output", split = FALSE) [13:10:32.295] base::close(...future.stdout) [13:10:32.295] }, add = TRUE) [13:10:32.295] } [13:10:32.295] ...future.frame <- base::sys.nframe() [13:10:32.295] ...future.conditions <- base::list() [13:10:32.295] ...future.rng <- base::globalenv()$.Random.seed [13:10:32.295] if (FALSE) { [13:10:32.295] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:10:32.295] "...future.value", "...future.globalenv.names", ".Random.seed") [13:10:32.295] } [13:10:32.295] ...future.result <- base::tryCatch({ [13:10:32.295] base::withCallingHandlers({ [13:10:32.295] ...future.value <- base::withVisible(base::local({ [13:10:32.295] message(sprintf("Calculating tile #%d of %d ...", [13:10:32.295] ii, n), appendLF = FALSE) [13:10:32.295] fit <- mandelbrot(C) [13:10:32.295] delay(fit) [13:10:32.295] message(" done") [13:10:32.295] fit [13:10:32.295] })) [13:10:32.295] future::FutureResult(value = ...future.value$value, [13:10:32.295] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:10:32.295] ...future.rng), globalenv = if (FALSE) [13:10:32.295] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:10:32.295] ...future.globalenv.names)) [13:10:32.295] else NULL, started = ...future.startTime, version = "1.8") [13:10:32.295] }, condition = base::local({ [13:10:32.295] c <- base::c [13:10:32.295] inherits <- base::inherits [13:10:32.295] invokeRestart <- base::invokeRestart [13:10:32.295] length <- base::length [13:10:32.295] list <- base::list [13:10:32.295] seq.int <- base::seq.int [13:10:32.295] signalCondition <- base::signalCondition [13:10:32.295] sys.calls <- base::sys.calls [13:10:32.295] `[[` <- base::`[[` [13:10:32.295] `+` <- base::`+` [13:10:32.295] `<<-` <- base::`<<-` [13:10:32.295] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:10:32.295] calls[seq.int(from = from + 12L, to = length(calls) - [13:10:32.295] 3L)] [13:10:32.295] } [13:10:32.295] function(cond) { [13:10:32.295] is_error <- inherits(cond, "error") [13:10:32.295] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:10:32.295] NULL) [13:10:32.295] if (is_error) { [13:10:32.295] sessionInformation <- function() { [13:10:32.295] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:10:32.295] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:10:32.295] search = base::search(), system = base::Sys.info()) [13:10:32.295] } [13:10:32.295] ...future.conditions[[length(...future.conditions) + [13:10:32.295] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:10:32.295] cond$call), session = sessionInformation(), [13:10:32.295] timestamp = base::Sys.time(), signaled = 0L) [13:10:32.295] signalCondition(cond) [13:10:32.295] } [13:10:32.295] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:10:32.295] signal <- FALSE && inherits(cond, character(0)) [13:10:32.295] ...future.conditions[[length(...future.conditions) + [13:10:32.295] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:10:32.295] if (FALSE && !signal) { [13:10:32.295] muffleCondition <- function (cond, pattern = "^muffle") [13:10:32.295] { [13:10:32.295] inherits <- base::inherits [13:10:32.295] invokeRestart <- base::invokeRestart [13:10:32.295] is.null <- base::is.null [13:10:32.295] muffled <- FALSE [13:10:32.295] if (inherits(cond, "message")) { [13:10:32.295] muffled <- grepl(pattern, "muffleMessage") [13:10:32.295] if (muffled) [13:10:32.295] invokeRestart("muffleMessage") [13:10:32.295] } [13:10:32.295] else if (inherits(cond, "warning")) { [13:10:32.295] muffled <- grepl(pattern, "muffleWarning") [13:10:32.295] if (muffled) [13:10:32.295] invokeRestart("muffleWarning") [13:10:32.295] } [13:10:32.295] else if (inherits(cond, "condition")) { [13:10:32.295] if (!is.null(pattern)) { [13:10:32.295] computeRestarts <- base::computeRestarts [13:10:32.295] grepl <- base::grepl [13:10:32.295] restarts <- computeRestarts(cond) [13:10:32.295] for (restart in restarts) { [13:10:32.295] name <- restart$name [13:10:32.295] if (is.null(name)) [13:10:32.295] next [13:10:32.295] if (!grepl(pattern, name)) [13:10:32.295] next [13:10:32.295] invokeRestart(restart) [13:10:32.295] muffled <- TRUE [13:10:32.295] break [13:10:32.295] } [13:10:32.295] } [13:10:32.295] } [13:10:32.295] invisible(muffled) [13:10:32.295] } [13:10:32.295] muffleCondition(cond, pattern = "^muffle") [13:10:32.295] } [13:10:32.295] } [13:10:32.295] else { [13:10:32.295] if (TRUE) { [13:10:32.295] muffleCondition <- function (cond, pattern = "^muffle") [13:10:32.295] { [13:10:32.295] inherits <- base::inherits [13:10:32.295] invokeRestart <- base::invokeRestart [13:10:32.295] is.null <- base::is.null [13:10:32.295] muffled <- FALSE [13:10:32.295] if (inherits(cond, "message")) { [13:10:32.295] muffled <- grepl(pattern, "muffleMessage") [13:10:32.295] if (muffled) [13:10:32.295] invokeRestart("muffleMessage") [13:10:32.295] } [13:10:32.295] else if (inherits(cond, "warning")) { [13:10:32.295] muffled <- grepl(pattern, "muffleWarning") [13:10:32.295] if (muffled) [13:10:32.295] invokeRestart("muffleWarning") [13:10:32.295] } [13:10:32.295] else if (inherits(cond, "condition")) { [13:10:32.295] if (!is.null(pattern)) { [13:10:32.295] computeRestarts <- base::computeRestarts [13:10:32.295] grepl <- base::grepl [13:10:32.295] restarts <- computeRestarts(cond) [13:10:32.295] for (restart in restarts) { [13:10:32.295] name <- restart$name [13:10:32.295] if (is.null(name)) [13:10:32.295] next [13:10:32.295] if (!grepl(pattern, name)) [13:10:32.295] next [13:10:32.295] invokeRestart(restart) [13:10:32.295] muffled <- TRUE [13:10:32.295] break [13:10:32.295] } [13:10:32.295] } [13:10:32.295] } [13:10:32.295] invisible(muffled) [13:10:32.295] } [13:10:32.295] muffleCondition(cond, pattern = "^muffle") [13:10:32.295] } [13:10:32.295] } [13:10:32.295] } [13:10:32.295] })) [13:10:32.295] }, error = function(ex) { [13:10:32.295] base::structure(base::list(value = NULL, visible = NULL, [13:10:32.295] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:10:32.295] ...future.rng), started = ...future.startTime, [13:10:32.295] finished = Sys.time(), session_uuid = NA_character_, [13:10:32.295] version = "1.8"), class = "FutureResult") [13:10:32.295] }, finally = { [13:10:32.295] if (!identical(...future.workdir, getwd())) [13:10:32.295] setwd(...future.workdir) [13:10:32.295] { [13:10:32.295] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:10:32.295] ...future.oldOptions$nwarnings <- NULL [13:10:32.295] } [13:10:32.295] base::options(...future.oldOptions) [13:10:32.295] if (.Platform$OS.type == "windows") { [13:10:32.295] old_names <- names(...future.oldEnvVars) [13:10:32.295] envs <- base::Sys.getenv() [13:10:32.295] names <- names(envs) [13:10:32.295] common <- intersect(names, old_names) [13:10:32.295] added <- setdiff(names, old_names) [13:10:32.295] removed <- setdiff(old_names, names) [13:10:32.295] changed <- common[...future.oldEnvVars[common] != [13:10:32.295] envs[common]] [13:10:32.295] NAMES <- toupper(changed) [13:10:32.295] args <- list() [13:10:32.295] for (kk in seq_along(NAMES)) { [13:10:32.295] name <- changed[[kk]] [13:10:32.295] NAME <- NAMES[[kk]] [13:10:32.295] if (name != NAME && is.element(NAME, old_names)) [13:10:32.295] next [13:10:32.295] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:32.295] } [13:10:32.295] NAMES <- toupper(added) [13:10:32.295] for (kk in seq_along(NAMES)) { [13:10:32.295] name <- added[[kk]] [13:10:32.295] NAME <- NAMES[[kk]] [13:10:32.295] if (name != NAME && is.element(NAME, old_names)) [13:10:32.295] next [13:10:32.295] args[[name]] <- "" [13:10:32.295] } [13:10:32.295] NAMES <- toupper(removed) [13:10:32.295] for (kk in seq_along(NAMES)) { [13:10:32.295] name <- removed[[kk]] [13:10:32.295] NAME <- NAMES[[kk]] [13:10:32.295] if (name != NAME && is.element(NAME, old_names)) [13:10:32.295] next [13:10:32.295] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:32.295] } [13:10:32.295] if (length(args) > 0) [13:10:32.295] base::do.call(base::Sys.setenv, args = args) [13:10:32.295] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:10:32.295] } [13:10:32.295] else { [13:10:32.295] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:10:32.295] } [13:10:32.295] { [13:10:32.295] if (base::length(...future.futureOptionsAdded) > [13:10:32.295] 0L) { [13:10:32.295] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:10:32.295] base::names(opts) <- ...future.futureOptionsAdded [13:10:32.295] base::options(opts) [13:10:32.295] } [13:10:32.295] { [13:10:32.295] NULL [13:10:32.295] options(future.plan = NULL) [13:10:32.295] if (is.na(NA_character_)) [13:10:32.295] Sys.unsetenv("R_FUTURE_PLAN") [13:10:32.295] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:10:32.295] future::plan(...future.strategy.old, .cleanup = FALSE, [13:10:32.295] .init = FALSE) [13:10:32.295] } [13:10:32.295] } [13:10:32.295] } [13:10:32.295] }) [13:10:32.295] if (TRUE) { [13:10:32.295] base::sink(type = "output", split = FALSE) [13:10:32.295] if (TRUE) { [13:10:32.295] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:10:32.295] } [13:10:32.295] else { [13:10:32.295] ...future.result["stdout"] <- base::list(NULL) [13:10:32.295] } [13:10:32.295] base::close(...future.stdout) [13:10:32.295] ...future.stdout <- NULL [13:10:32.295] } [13:10:32.295] ...future.result$conditions <- ...future.conditions [13:10:32.295] ...future.result$finished <- base::Sys.time() [13:10:32.295] ...future.result [13:10:32.295] } [13:10:32.299] - Launch lazy future ... done [13:10:32.299] run() for 'MiraiFuture' ... done [13:10:32.299] - run() ... done [13:10:32.299] - resolved() ... [13:10:32.300] resolved() for 'MiraiFuture' ... [13:10:32.300] - state: 'running' [13:10:32.300] - run: TRUE [13:10:32.300] - result: 'NULL' [13:10:32.301] - resolved: FALSE [13:10:32.301] resolved() for 'MiraiFuture' ... done [13:10:32.301] - resolved: FALSE [13:10:32.301] - resolved() ... done [13:10:32.301] resolved() for 'MiraiFuture' ... done [13:10:32.301] resolved() for 'Future' ... [13:10:32.302] - state: 'created' [13:10:32.302] - run: TRUE [13:10:32.302] - run() ... [13:10:32.302] run() for 'Future' ... [13:10:32.302] - state: 'created' [13:10:32.303] - Future backend: 'FutureStrategy', 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' [13:10:32.303] - Future class: 'MiraiFuture', 'MultiprocessFuture', 'Future', 'environment' [13:10:32.303] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... [13:10:32.303] - Field: 'label' [13:10:32.304] - Field: 'local' [13:10:32.304] - Field: 'owner' [13:10:32.304] - Field: 'envir' [13:10:32.304] - Field: 'packages' [13:10:32.304] - Field: 'gc' [13:10:32.304] - Field: 'conditions' [13:10:32.305] - Field: 'expr' [13:10:32.305] - Field: 'uuid' [13:10:32.305] - Field: 'seed' [13:10:32.305] - Field: 'version' [13:10:32.305] - Field: 'result' [13:10:32.305] - Field: 'asynchronous' [13:10:32.306] - Field: 'calls' [13:10:32.306] - Field: 'globals' [13:10:32.306] - Field: 'stdout' [13:10:32.306] - Field: 'earlySignal' [13:10:32.306] - Field: 'lazy' [13:10:32.306] - Field: 'state' [13:10:32.307] - Field: '.cluster' [13:10:32.307] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... done [13:10:32.307] - Launch lazy future ... [13:10:32.307] Packages needed by the future expression (n = 1): 'future' [13:10:32.307] Packages needed by future strategies (n = 0): [13:10:32.308] { [13:10:32.308] { [13:10:32.308] { [13:10:32.308] ...future.startTime <- base::Sys.time() [13:10:32.308] { [13:10:32.308] { [13:10:32.308] { [13:10:32.308] { [13:10:32.308] base::local({ [13:10:32.308] has_future <- base::requireNamespace("future", [13:10:32.308] quietly = TRUE) [13:10:32.308] if (has_future) { [13:10:32.308] ns <- base::getNamespace("future") [13:10:32.308] version <- ns[[".package"]][["version"]] [13:10:32.308] if (is.null(version)) [13:10:32.308] version <- utils::packageVersion("future") [13:10:32.308] } [13:10:32.308] else { [13:10:32.308] version <- NULL [13:10:32.308] } [13:10:32.308] if (!has_future || version < "1.8.0") { [13:10:32.308] info <- base::c(r_version = base::gsub("R version ", [13:10:32.308] "", base::R.version$version.string), [13:10:32.308] platform = base::sprintf("%s (%s-bit)", [13:10:32.308] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:10:32.308] os = base::paste(base::Sys.info()[base::c("sysname", [13:10:32.308] "release", "version")], collapse = " "), [13:10:32.308] hostname = base::Sys.info()[["nodename"]]) [13:10:32.308] info <- base::sprintf("%s: %s", base::names(info), [13:10:32.308] info) [13:10:32.308] info <- base::paste(info, collapse = "; ") [13:10:32.308] if (!has_future) { [13:10:32.308] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:10:32.308] info) [13:10:32.308] } [13:10:32.308] else { [13:10:32.308] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:10:32.308] info, version) [13:10:32.308] } [13:10:32.308] base::stop(msg) [13:10:32.308] } [13:10:32.308] }) [13:10:32.308] } [13:10:32.308] base::local({ [13:10:32.308] for (pkg in "future") { [13:10:32.308] base::loadNamespace(pkg) [13:10:32.308] base::library(pkg, character.only = TRUE) [13:10:32.308] } [13:10:32.308] }) [13:10:32.308] } [13:10:32.308] ...future.strategy.old <- future::plan("list") [13:10:32.308] options(future.plan = NULL) [13:10:32.308] Sys.unsetenv("R_FUTURE_PLAN") [13:10:32.308] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:10:32.308] } [13:10:32.308] ...future.workdir <- getwd() [13:10:32.308] } [13:10:32.308] ...future.oldOptions <- base::as.list(base::.Options) [13:10:32.308] ...future.oldEnvVars <- base::Sys.getenv() [13:10:32.308] } [13:10:32.308] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:10:32.308] future.globals.maxSize = NULL, future.globals.method = NULL, [13:10:32.308] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:10:32.308] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:10:32.308] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:10:32.308] future.stdout.windows.reencode = NULL, width = 80L) [13:10:32.308] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:10:32.308] base::names(...future.oldOptions)) [13:10:32.308] } [13:10:32.308] if (FALSE) { [13:10:32.308] } [13:10:32.308] else { [13:10:32.308] if (TRUE) { [13:10:32.308] ...future.stdout <- base::rawConnection(base::raw(0L), [13:10:32.308] open = "w") [13:10:32.308] } [13:10:32.308] else { [13:10:32.308] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:10:32.308] windows = "NUL", "/dev/null"), open = "w") [13:10:32.308] } [13:10:32.308] base::sink(...future.stdout, type = "output", split = FALSE) [13:10:32.308] base::on.exit(if (!base::is.null(...future.stdout)) { [13:10:32.308] base::sink(type = "output", split = FALSE) [13:10:32.308] base::close(...future.stdout) [13:10:32.308] }, add = TRUE) [13:10:32.308] } [13:10:32.308] ...future.frame <- base::sys.nframe() [13:10:32.308] ...future.conditions <- base::list() [13:10:32.308] ...future.rng <- base::globalenv()$.Random.seed [13:10:32.308] if (FALSE) { [13:10:32.308] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:10:32.308] "...future.value", "...future.globalenv.names", ".Random.seed") [13:10:32.308] } [13:10:32.308] ...future.result <- base::tryCatch({ [13:10:32.308] base::withCallingHandlers({ [13:10:32.308] ...future.value <- base::withVisible(base::local({ [13:10:32.308] message(sprintf("Calculating tile #%d of %d ...", [13:10:32.308] ii, n), appendLF = FALSE) [13:10:32.308] fit <- mandelbrot(C) [13:10:32.308] delay(fit) [13:10:32.308] message(" done") [13:10:32.308] fit [13:10:32.308] })) [13:10:32.308] future::FutureResult(value = ...future.value$value, [13:10:32.308] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:10:32.308] ...future.rng), globalenv = if (FALSE) [13:10:32.308] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:10:32.308] ...future.globalenv.names)) [13:10:32.308] else NULL, started = ...future.startTime, version = "1.8") [13:10:32.308] }, condition = base::local({ [13:10:32.308] c <- base::c [13:10:32.308] inherits <- base::inherits [13:10:32.308] invokeRestart <- base::invokeRestart [13:10:32.308] length <- base::length [13:10:32.308] list <- base::list [13:10:32.308] seq.int <- base::seq.int [13:10:32.308] signalCondition <- base::signalCondition [13:10:32.308] sys.calls <- base::sys.calls [13:10:32.308] `[[` <- base::`[[` [13:10:32.308] `+` <- base::`+` [13:10:32.308] `<<-` <- base::`<<-` [13:10:32.308] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:10:32.308] calls[seq.int(from = from + 12L, to = length(calls) - [13:10:32.308] 3L)] [13:10:32.308] } [13:10:32.308] function(cond) { [13:10:32.308] is_error <- inherits(cond, "error") [13:10:32.308] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:10:32.308] NULL) [13:10:32.308] if (is_error) { [13:10:32.308] sessionInformation <- function() { [13:10:32.308] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:10:32.308] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:10:32.308] search = base::search(), system = base::Sys.info()) [13:10:32.308] } [13:10:32.308] ...future.conditions[[length(...future.conditions) + [13:10:32.308] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:10:32.308] cond$call), session = sessionInformation(), [13:10:32.308] timestamp = base::Sys.time(), signaled = 0L) [13:10:32.308] signalCondition(cond) [13:10:32.308] } [13:10:32.308] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:10:32.308] signal <- FALSE && inherits(cond, character(0)) [13:10:32.308] ...future.conditions[[length(...future.conditions) + [13:10:32.308] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:10:32.308] if (FALSE && !signal) { [13:10:32.308] muffleCondition <- function (cond, pattern = "^muffle") [13:10:32.308] { [13:10:32.308] inherits <- base::inherits [13:10:32.308] invokeRestart <- base::invokeRestart [13:10:32.308] is.null <- base::is.null [13:10:32.308] muffled <- FALSE [13:10:32.308] if (inherits(cond, "message")) { [13:10:32.308] muffled <- grepl(pattern, "muffleMessage") [13:10:32.308] if (muffled) [13:10:32.308] invokeRestart("muffleMessage") [13:10:32.308] } [13:10:32.308] else if (inherits(cond, "warning")) { [13:10:32.308] muffled <- grepl(pattern, "muffleWarning") [13:10:32.308] if (muffled) [13:10:32.308] invokeRestart("muffleWarning") [13:10:32.308] } [13:10:32.308] else if (inherits(cond, "condition")) { [13:10:32.308] if (!is.null(pattern)) { [13:10:32.308] computeRestarts <- base::computeRestarts [13:10:32.308] grepl <- base::grepl [13:10:32.308] restarts <- computeRestarts(cond) [13:10:32.308] for (restart in restarts) { [13:10:32.308] name <- restart$name [13:10:32.308] if (is.null(name)) [13:10:32.308] next [13:10:32.308] if (!grepl(pattern, name)) [13:10:32.308] next [13:10:32.308] invokeRestart(restart) [13:10:32.308] muffled <- TRUE [13:10:32.308] break [13:10:32.308] } [13:10:32.308] } [13:10:32.308] } [13:10:32.308] invisible(muffled) [13:10:32.308] } [13:10:32.308] muffleCondition(cond, pattern = "^muffle") [13:10:32.308] } [13:10:32.308] } [13:10:32.308] else { [13:10:32.308] if (TRUE) { [13:10:32.308] muffleCondition <- function (cond, pattern = "^muffle") [13:10:32.308] { [13:10:32.308] inherits <- base::inherits [13:10:32.308] invokeRestart <- base::invokeRestart [13:10:32.308] is.null <- base::is.null [13:10:32.308] muffled <- FALSE [13:10:32.308] if (inherits(cond, "message")) { [13:10:32.308] muffled <- grepl(pattern, "muffleMessage") [13:10:32.308] if (muffled) [13:10:32.308] invokeRestart("muffleMessage") [13:10:32.308] } [13:10:32.308] else if (inherits(cond, "warning")) { [13:10:32.308] muffled <- grepl(pattern, "muffleWarning") [13:10:32.308] if (muffled) [13:10:32.308] invokeRestart("muffleWarning") [13:10:32.308] } [13:10:32.308] else if (inherits(cond, "condition")) { [13:10:32.308] if (!is.null(pattern)) { [13:10:32.308] computeRestarts <- base::computeRestarts [13:10:32.308] grepl <- base::grepl [13:10:32.308] restarts <- computeRestarts(cond) [13:10:32.308] for (restart in restarts) { [13:10:32.308] name <- restart$name [13:10:32.308] if (is.null(name)) [13:10:32.308] next [13:10:32.308] if (!grepl(pattern, name)) [13:10:32.308] next [13:10:32.308] invokeRestart(restart) [13:10:32.308] muffled <- TRUE [13:10:32.308] break [13:10:32.308] } [13:10:32.308] } [13:10:32.308] } [13:10:32.308] invisible(muffled) [13:10:32.308] } [13:10:32.308] muffleCondition(cond, pattern = "^muffle") [13:10:32.308] } [13:10:32.308] } [13:10:32.308] } [13:10:32.308] })) [13:10:32.308] }, error = function(ex) { [13:10:32.308] base::structure(base::list(value = NULL, visible = NULL, [13:10:32.308] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:10:32.308] ...future.rng), started = ...future.startTime, [13:10:32.308] finished = Sys.time(), session_uuid = NA_character_, [13:10:32.308] version = "1.8"), class = "FutureResult") [13:10:32.308] }, finally = { [13:10:32.308] if (!identical(...future.workdir, getwd())) [13:10:32.308] setwd(...future.workdir) [13:10:32.308] { [13:10:32.308] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:10:32.308] ...future.oldOptions$nwarnings <- NULL [13:10:32.308] } [13:10:32.308] base::options(...future.oldOptions) [13:10:32.308] if (.Platform$OS.type == "windows") { [13:10:32.308] old_names <- names(...future.oldEnvVars) [13:10:32.308] envs <- base::Sys.getenv() [13:10:32.308] names <- names(envs) [13:10:32.308] common <- intersect(names, old_names) [13:10:32.308] added <- setdiff(names, old_names) [13:10:32.308] removed <- setdiff(old_names, names) [13:10:32.308] changed <- common[...future.oldEnvVars[common] != [13:10:32.308] envs[common]] [13:10:32.308] NAMES <- toupper(changed) [13:10:32.308] args <- list() [13:10:32.308] for (kk in seq_along(NAMES)) { [13:10:32.308] name <- changed[[kk]] [13:10:32.308] NAME <- NAMES[[kk]] [13:10:32.308] if (name != NAME && is.element(NAME, old_names)) [13:10:32.308] next [13:10:32.308] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:32.308] } [13:10:32.308] NAMES <- toupper(added) [13:10:32.308] for (kk in seq_along(NAMES)) { [13:10:32.308] name <- added[[kk]] [13:10:32.308] NAME <- NAMES[[kk]] [13:10:32.308] if (name != NAME && is.element(NAME, old_names)) [13:10:32.308] next [13:10:32.308] args[[name]] <- "" [13:10:32.308] } [13:10:32.308] NAMES <- toupper(removed) [13:10:32.308] for (kk in seq_along(NAMES)) { [13:10:32.308] name <- removed[[kk]] [13:10:32.308] NAME <- NAMES[[kk]] [13:10:32.308] if (name != NAME && is.element(NAME, old_names)) [13:10:32.308] next [13:10:32.308] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:32.308] } [13:10:32.308] if (length(args) > 0) [13:10:32.308] base::do.call(base::Sys.setenv, args = args) [13:10:32.308] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:10:32.308] } [13:10:32.308] else { [13:10:32.308] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:10:32.308] } [13:10:32.308] { [13:10:32.308] if (base::length(...future.futureOptionsAdded) > [13:10:32.308] 0L) { [13:10:32.308] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:10:32.308] base::names(opts) <- ...future.futureOptionsAdded [13:10:32.308] base::options(opts) [13:10:32.308] } [13:10:32.308] { [13:10:32.308] NULL [13:10:32.308] options(future.plan = NULL) [13:10:32.308] if (is.na(NA_character_)) [13:10:32.308] Sys.unsetenv("R_FUTURE_PLAN") [13:10:32.308] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:10:32.308] future::plan(...future.strategy.old, .cleanup = FALSE, [13:10:32.308] .init = FALSE) [13:10:32.308] } [13:10:32.308] } [13:10:32.308] } [13:10:32.308] }) [13:10:32.308] if (TRUE) { [13:10:32.308] base::sink(type = "output", split = FALSE) [13:10:32.308] if (TRUE) { [13:10:32.308] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:10:32.308] } [13:10:32.308] else { [13:10:32.308] ...future.result["stdout"] <- base::list(NULL) [13:10:32.308] } [13:10:32.308] base::close(...future.stdout) [13:10:32.308] ...future.stdout <- NULL [13:10:32.308] } [13:10:32.308] ...future.result$conditions <- ...future.conditions [13:10:32.308] ...future.result$finished <- base::Sys.time() [13:10:32.308] ...future.result [13:10:32.308] } [13:10:32.312] - Launch lazy future ... done [13:10:32.312] run() for 'MiraiFuture' ... done [13:10:32.313] - run() ... done [13:10:32.313] - resolved() ... [13:10:32.313] resolved() for 'MiraiFuture' ... [13:10:32.313] - state: 'running' [13:10:32.313] - run: TRUE [13:10:32.313] - result: 'NULL' [13:10:32.314] - resolved: FALSE [13:10:32.314] resolved() for 'MiraiFuture' ... done [13:10:32.314] - resolved: FALSE [13:10:32.314] - resolved() ... done [13:10:32.314] resolved() for 'MiraiFuture' ... done [13:10:32.314] resolved() for 'Future' ... [13:10:32.315] - state: 'created' [13:10:32.316] - run: TRUE [13:10:32.316] - run() ... [13:10:32.317] run() for 'Future' ... [13:10:32.317] - state: 'created' [13:10:32.317] - Future backend: 'FutureStrategy', 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' [13:10:32.317] - Future class: 'MiraiFuture', 'MultiprocessFuture', 'Future', 'environment' [13:10:32.318] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... [13:10:32.318] - Field: 'label' [13:10:32.318] - Field: 'local' [13:10:32.318] - Field: 'owner' [13:10:32.318] - Field: 'envir' [13:10:32.318] - Field: 'packages' [13:10:32.319] - Field: 'gc' [13:10:32.319] - Field: 'conditions' [13:10:32.319] - Field: 'expr' [13:10:32.319] - Field: 'uuid' [13:10:32.319] - Field: 'seed' [13:10:32.319] - Field: 'version' [13:10:32.320] - Field: 'result' [13:10:32.320] - Field: 'asynchronous' [13:10:32.320] - Field: 'calls' [13:10:32.320] - Field: 'globals' [13:10:32.320] - Field: 'stdout' [13:10:32.321] - Field: 'earlySignal' [13:10:32.321] - Field: 'lazy' [13:10:32.321] - Field: 'state' [13:10:32.321] - Field: '.cluster' [13:10:32.321] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... done [13:10:32.321] - Launch lazy future ... [13:10:32.322] Packages needed by the future expression (n = 1): 'future' [13:10:32.322] Packages needed by future strategies (n = 0): [13:10:32.322] { [13:10:32.322] { [13:10:32.322] { [13:10:32.322] ...future.startTime <- base::Sys.time() [13:10:32.322] { [13:10:32.322] { [13:10:32.322] { [13:10:32.322] { [13:10:32.322] base::local({ [13:10:32.322] has_future <- base::requireNamespace("future", [13:10:32.322] quietly = TRUE) [13:10:32.322] if (has_future) { [13:10:32.322] ns <- base::getNamespace("future") [13:10:32.322] version <- ns[[".package"]][["version"]] [13:10:32.322] if (is.null(version)) [13:10:32.322] version <- utils::packageVersion("future") [13:10:32.322] } [13:10:32.322] else { [13:10:32.322] version <- NULL [13:10:32.322] } [13:10:32.322] if (!has_future || version < "1.8.0") { [13:10:32.322] info <- base::c(r_version = base::gsub("R version ", [13:10:32.322] "", base::R.version$version.string), [13:10:32.322] platform = base::sprintf("%s (%s-bit)", [13:10:32.322] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:10:32.322] os = base::paste(base::Sys.info()[base::c("sysname", [13:10:32.322] "release", "version")], collapse = " "), [13:10:32.322] hostname = base::Sys.info()[["nodename"]]) [13:10:32.322] info <- base::sprintf("%s: %s", base::names(info), [13:10:32.322] info) [13:10:32.322] info <- base::paste(info, collapse = "; ") [13:10:32.322] if (!has_future) { [13:10:32.322] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:10:32.322] info) [13:10:32.322] } [13:10:32.322] else { [13:10:32.322] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:10:32.322] info, version) [13:10:32.322] } [13:10:32.322] base::stop(msg) [13:10:32.322] } [13:10:32.322] }) [13:10:32.322] } [13:10:32.322] base::local({ [13:10:32.322] for (pkg in "future") { [13:10:32.322] base::loadNamespace(pkg) [13:10:32.322] base::library(pkg, character.only = TRUE) [13:10:32.322] } [13:10:32.322] }) [13:10:32.322] } [13:10:32.322] ...future.strategy.old <- future::plan("list") [13:10:32.322] options(future.plan = NULL) [13:10:32.322] Sys.unsetenv("R_FUTURE_PLAN") [13:10:32.322] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:10:32.322] } [13:10:32.322] ...future.workdir <- getwd() [13:10:32.322] } [13:10:32.322] ...future.oldOptions <- base::as.list(base::.Options) [13:10:32.322] ...future.oldEnvVars <- base::Sys.getenv() [13:10:32.322] } [13:10:32.322] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:10:32.322] future.globals.maxSize = NULL, future.globals.method = NULL, [13:10:32.322] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:10:32.322] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:10:32.322] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:10:32.322] future.stdout.windows.reencode = NULL, width = 80L) [13:10:32.322] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:10:32.322] base::names(...future.oldOptions)) [13:10:32.322] } [13:10:32.322] if (FALSE) { [13:10:32.322] } [13:10:32.322] else { [13:10:32.322] if (TRUE) { [13:10:32.322] ...future.stdout <- base::rawConnection(base::raw(0L), [13:10:32.322] open = "w") [13:10:32.322] } [13:10:32.322] else { [13:10:32.322] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:10:32.322] windows = "NUL", "/dev/null"), open = "w") [13:10:32.322] } [13:10:32.322] base::sink(...future.stdout, type = "output", split = FALSE) [13:10:32.322] base::on.exit(if (!base::is.null(...future.stdout)) { [13:10:32.322] base::sink(type = "output", split = FALSE) [13:10:32.322] base::close(...future.stdout) [13:10:32.322] }, add = TRUE) [13:10:32.322] } [13:10:32.322] ...future.frame <- base::sys.nframe() [13:10:32.322] ...future.conditions <- base::list() [13:10:32.322] ...future.rng <- base::globalenv()$.Random.seed [13:10:32.322] if (FALSE) { [13:10:32.322] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:10:32.322] "...future.value", "...future.globalenv.names", ".Random.seed") [13:10:32.322] } [13:10:32.322] ...future.result <- base::tryCatch({ [13:10:32.322] base::withCallingHandlers({ [13:10:32.322] ...future.value <- base::withVisible(base::local({ [13:10:32.322] message(sprintf("Calculating tile #%d of %d ...", [13:10:32.322] ii, n), appendLF = FALSE) [13:10:32.322] fit <- mandelbrot(C) [13:10:32.322] delay(fit) [13:10:32.322] message(" done") [13:10:32.322] fit [13:10:32.322] })) [13:10:32.322] future::FutureResult(value = ...future.value$value, [13:10:32.322] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:10:32.322] ...future.rng), globalenv = if (FALSE) [13:10:32.322] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:10:32.322] ...future.globalenv.names)) [13:10:32.322] else NULL, started = ...future.startTime, version = "1.8") [13:10:32.322] }, condition = base::local({ [13:10:32.322] c <- base::c [13:10:32.322] inherits <- base::inherits [13:10:32.322] invokeRestart <- base::invokeRestart [13:10:32.322] length <- base::length [13:10:32.322] list <- base::list [13:10:32.322] seq.int <- base::seq.int [13:10:32.322] signalCondition <- base::signalCondition [13:10:32.322] sys.calls <- base::sys.calls [13:10:32.322] `[[` <- base::`[[` [13:10:32.322] `+` <- base::`+` [13:10:32.322] `<<-` <- base::`<<-` [13:10:32.322] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:10:32.322] calls[seq.int(from = from + 12L, to = length(calls) - [13:10:32.322] 3L)] [13:10:32.322] } [13:10:32.322] function(cond) { [13:10:32.322] is_error <- inherits(cond, "error") [13:10:32.322] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:10:32.322] NULL) [13:10:32.322] if (is_error) { [13:10:32.322] sessionInformation <- function() { [13:10:32.322] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:10:32.322] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:10:32.322] search = base::search(), system = base::Sys.info()) [13:10:32.322] } [13:10:32.322] ...future.conditions[[length(...future.conditions) + [13:10:32.322] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:10:32.322] cond$call), session = sessionInformation(), [13:10:32.322] timestamp = base::Sys.time(), signaled = 0L) [13:10:32.322] signalCondition(cond) [13:10:32.322] } [13:10:32.322] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:10:32.322] signal <- FALSE && inherits(cond, character(0)) [13:10:32.322] ...future.conditions[[length(...future.conditions) + [13:10:32.322] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:10:32.322] if (FALSE && !signal) { [13:10:32.322] muffleCondition <- function (cond, pattern = "^muffle") [13:10:32.322] { [13:10:32.322] inherits <- base::inherits [13:10:32.322] invokeRestart <- base::invokeRestart [13:10:32.322] is.null <- base::is.null [13:10:32.322] muffled <- FALSE [13:10:32.322] if (inherits(cond, "message")) { [13:10:32.322] muffled <- grepl(pattern, "muffleMessage") [13:10:32.322] if (muffled) [13:10:32.322] invokeRestart("muffleMessage") [13:10:32.322] } [13:10:32.322] else if (inherits(cond, "warning")) { [13:10:32.322] muffled <- grepl(pattern, "muffleWarning") [13:10:32.322] if (muffled) [13:10:32.322] invokeRestart("muffleWarning") [13:10:32.322] } [13:10:32.322] else if (inherits(cond, "condition")) { [13:10:32.322] if (!is.null(pattern)) { [13:10:32.322] computeRestarts <- base::computeRestarts [13:10:32.322] grepl <- base::grepl [13:10:32.322] restarts <- computeRestarts(cond) [13:10:32.322] for (restart in restarts) { [13:10:32.322] name <- restart$name [13:10:32.322] if (is.null(name)) [13:10:32.322] next [13:10:32.322] if (!grepl(pattern, name)) [13:10:32.322] next [13:10:32.322] invokeRestart(restart) [13:10:32.322] muffled <- TRUE [13:10:32.322] break [13:10:32.322] } [13:10:32.322] } [13:10:32.322] } [13:10:32.322] invisible(muffled) [13:10:32.322] } [13:10:32.322] muffleCondition(cond, pattern = "^muffle") [13:10:32.322] } [13:10:32.322] } [13:10:32.322] else { [13:10:32.322] if (TRUE) { [13:10:32.322] muffleCondition <- function (cond, pattern = "^muffle") [13:10:32.322] { [13:10:32.322] inherits <- base::inherits [13:10:32.322] invokeRestart <- base::invokeRestart [13:10:32.322] is.null <- base::is.null [13:10:32.322] muffled <- FALSE [13:10:32.322] if (inherits(cond, "message")) { [13:10:32.322] muffled <- grepl(pattern, "muffleMessage") [13:10:32.322] if (muffled) [13:10:32.322] invokeRestart("muffleMessage") [13:10:32.322] } [13:10:32.322] else if (inherits(cond, "warning")) { [13:10:32.322] muffled <- grepl(pattern, "muffleWarning") [13:10:32.322] if (muffled) [13:10:32.322] invokeRestart("muffleWarning") [13:10:32.322] } [13:10:32.322] else if (inherits(cond, "condition")) { [13:10:32.322] if (!is.null(pattern)) { [13:10:32.322] computeRestarts <- base::computeRestarts [13:10:32.322] grepl <- base::grepl [13:10:32.322] restarts <- computeRestarts(cond) [13:10:32.322] for (restart in restarts) { [13:10:32.322] name <- restart$name [13:10:32.322] if (is.null(name)) [13:10:32.322] next [13:10:32.322] if (!grepl(pattern, name)) [13:10:32.322] next [13:10:32.322] invokeRestart(restart) [13:10:32.322] muffled <- TRUE [13:10:32.322] break [13:10:32.322] } [13:10:32.322] } [13:10:32.322] } [13:10:32.322] invisible(muffled) [13:10:32.322] } [13:10:32.322] muffleCondition(cond, pattern = "^muffle") [13:10:32.322] } [13:10:32.322] } [13:10:32.322] } [13:10:32.322] })) [13:10:32.322] }, error = function(ex) { [13:10:32.322] base::structure(base::list(value = NULL, visible = NULL, [13:10:32.322] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:10:32.322] ...future.rng), started = ...future.startTime, [13:10:32.322] finished = Sys.time(), session_uuid = NA_character_, [13:10:32.322] version = "1.8"), class = "FutureResult") [13:10:32.322] }, finally = { [13:10:32.322] if (!identical(...future.workdir, getwd())) [13:10:32.322] setwd(...future.workdir) [13:10:32.322] { [13:10:32.322] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:10:32.322] ...future.oldOptions$nwarnings <- NULL [13:10:32.322] } [13:10:32.322] base::options(...future.oldOptions) [13:10:32.322] if (.Platform$OS.type == "windows") { [13:10:32.322] old_names <- names(...future.oldEnvVars) [13:10:32.322] envs <- base::Sys.getenv() [13:10:32.322] names <- names(envs) [13:10:32.322] common <- intersect(names, old_names) [13:10:32.322] added <- setdiff(names, old_names) [13:10:32.322] removed <- setdiff(old_names, names) [13:10:32.322] changed <- common[...future.oldEnvVars[common] != [13:10:32.322] envs[common]] [13:10:32.322] NAMES <- toupper(changed) [13:10:32.322] args <- list() [13:10:32.322] for (kk in seq_along(NAMES)) { [13:10:32.322] name <- changed[[kk]] [13:10:32.322] NAME <- NAMES[[kk]] [13:10:32.322] if (name != NAME && is.element(NAME, old_names)) [13:10:32.322] next [13:10:32.322] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:32.322] } [13:10:32.322] NAMES <- toupper(added) [13:10:32.322] for (kk in seq_along(NAMES)) { [13:10:32.322] name <- added[[kk]] [13:10:32.322] NAME <- NAMES[[kk]] [13:10:32.322] if (name != NAME && is.element(NAME, old_names)) [13:10:32.322] next [13:10:32.322] args[[name]] <- "" [13:10:32.322] } [13:10:32.322] NAMES <- toupper(removed) [13:10:32.322] for (kk in seq_along(NAMES)) { [13:10:32.322] name <- removed[[kk]] [13:10:32.322] NAME <- NAMES[[kk]] [13:10:32.322] if (name != NAME && is.element(NAME, old_names)) [13:10:32.322] next [13:10:32.322] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:32.322] } [13:10:32.322] if (length(args) > 0) [13:10:32.322] base::do.call(base::Sys.setenv, args = args) [13:10:32.322] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:10:32.322] } [13:10:32.322] else { [13:10:32.322] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:10:32.322] } [13:10:32.322] { [13:10:32.322] if (base::length(...future.futureOptionsAdded) > [13:10:32.322] 0L) { [13:10:32.322] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:10:32.322] base::names(opts) <- ...future.futureOptionsAdded [13:10:32.322] base::options(opts) [13:10:32.322] } [13:10:32.322] { [13:10:32.322] NULL [13:10:32.322] options(future.plan = NULL) [13:10:32.322] if (is.na(NA_character_)) [13:10:32.322] Sys.unsetenv("R_FUTURE_PLAN") [13:10:32.322] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:10:32.322] future::plan(...future.strategy.old, .cleanup = FALSE, [13:10:32.322] .init = FALSE) [13:10:32.322] } [13:10:32.322] } [13:10:32.322] } [13:10:32.322] }) [13:10:32.322] if (TRUE) { [13:10:32.322] base::sink(type = "output", split = FALSE) [13:10:32.322] if (TRUE) { [13:10:32.322] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:10:32.322] } [13:10:32.322] else { [13:10:32.322] ...future.result["stdout"] <- base::list(NULL) [13:10:32.322] } [13:10:32.322] base::close(...future.stdout) [13:10:32.322] ...future.stdout <- NULL [13:10:32.322] } [13:10:32.322] ...future.result$conditions <- ...future.conditions [13:10:32.322] ...future.result$finished <- base::Sys.time() [13:10:32.322] ...future.result [13:10:32.322] } [13:10:32.326] - Launch lazy future ... done [13:10:32.327] run() for 'MiraiFuture' ... done [13:10:32.327] - run() ... done [13:10:32.327] - resolved() ... [13:10:32.327] resolved() for 'MiraiFuture' ... [13:10:32.327] - state: 'running' [13:10:32.327] - run: TRUE [13:10:32.328] - result: 'NULL' [13:10:32.328] - resolved: FALSE [13:10:32.328] resolved() for 'MiraiFuture' ... done [13:10:32.328] - resolved: FALSE [13:10:32.328] - resolved() ... done [13:10:32.328] resolved() for 'MiraiFuture' ... done [13:10:32.329] resolved() for 'Future' ... [13:10:32.329] - state: 'created' [13:10:32.329] - run: TRUE [13:10:32.329] - run() ... [13:10:32.329] run() for 'Future' ... [13:10:32.330] - state: 'created' [13:10:32.330] - Future backend: 'FutureStrategy', 'tweaked', 'mirai_multisession', 'mirai_cluster', 'mirai', 'multiprocess', 'future', 'function' [13:10:32.330] - Future class: 'MiraiFuture', 'MultiprocessFuture', 'Future', 'environment' [13:10:32.331] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... [13:10:32.331] - Field: 'label' [13:10:32.331] - Field: 'local' [13:10:32.331] - Field: 'owner' [13:10:32.331] - Field: 'envir' [13:10:32.331] - Field: 'packages' [13:10:32.332] - Field: 'gc' [13:10:32.332] - Field: 'conditions' [13:10:32.332] - Field: 'expr' [13:10:32.332] - Field: 'uuid' [13:10:32.332] - Field: 'seed' [13:10:32.333] - Field: 'version' [13:10:32.333] - Field: 'result' [13:10:32.333] - Field: 'asynchronous' [13:10:32.333] - Field: 'calls' [13:10:32.333] - Field: 'globals' [13:10:32.333] - Field: 'stdout' [13:10:32.334] - Field: 'earlySignal' [13:10:32.334] - Field: 'lazy' [13:10:32.334] - Field: 'state' [13:10:32.334] - Field: '.cluster' [13:10:32.334] - Copy elements of temporary 'MiraiFuture' to final 'Future' object ... done [13:10:32.334] - Launch lazy future ... [13:10:32.335] Packages needed by the future expression (n = 1): 'future' [13:10:32.335] Packages needed by future strategies (n = 0): [13:10:32.335] { [13:10:32.335] { [13:10:32.335] { [13:10:32.335] ...future.startTime <- base::Sys.time() [13:10:32.335] { [13:10:32.335] { [13:10:32.335] { [13:10:32.335] { [13:10:32.335] base::local({ [13:10:32.335] has_future <- base::requireNamespace("future", [13:10:32.335] quietly = TRUE) [13:10:32.335] if (has_future) { [13:10:32.335] ns <- base::getNamespace("future") [13:10:32.335] version <- ns[[".package"]][["version"]] [13:10:32.335] if (is.null(version)) [13:10:32.335] version <- utils::packageVersion("future") [13:10:32.335] } [13:10:32.335] else { [13:10:32.335] version <- NULL [13:10:32.335] } [13:10:32.335] if (!has_future || version < "1.8.0") { [13:10:32.335] info <- base::c(r_version = base::gsub("R version ", [13:10:32.335] "", base::R.version$version.string), [13:10:32.335] platform = base::sprintf("%s (%s-bit)", [13:10:32.335] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [13:10:32.335] os = base::paste(base::Sys.info()[base::c("sysname", [13:10:32.335] "release", "version")], collapse = " "), [13:10:32.335] hostname = base::Sys.info()[["nodename"]]) [13:10:32.335] info <- base::sprintf("%s: %s", base::names(info), [13:10:32.335] info) [13:10:32.335] info <- base::paste(info, collapse = "; ") [13:10:32.335] if (!has_future) { [13:10:32.335] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [13:10:32.335] info) [13:10:32.335] } [13:10:32.335] else { [13:10:32.335] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [13:10:32.335] info, version) [13:10:32.335] } [13:10:32.335] base::stop(msg) [13:10:32.335] } [13:10:32.335] }) [13:10:32.335] } [13:10:32.335] base::local({ [13:10:32.335] for (pkg in "future") { [13:10:32.335] base::loadNamespace(pkg) [13:10:32.335] base::library(pkg, character.only = TRUE) [13:10:32.335] } [13:10:32.335] }) [13:10:32.335] } [13:10:32.335] ...future.strategy.old <- future::plan("list") [13:10:32.335] options(future.plan = NULL) [13:10:32.335] Sys.unsetenv("R_FUTURE_PLAN") [13:10:32.335] future::plan("default", .cleanup = FALSE, .init = FALSE) [13:10:32.335] } [13:10:32.335] ...future.workdir <- getwd() [13:10:32.335] } [13:10:32.335] ...future.oldOptions <- base::as.list(base::.Options) [13:10:32.335] ...future.oldEnvVars <- base::Sys.getenv() [13:10:32.335] } [13:10:32.335] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [13:10:32.335] future.globals.maxSize = NULL, future.globals.method = NULL, [13:10:32.335] future.globals.onMissing = NULL, future.globals.onReference = NULL, [13:10:32.335] future.globals.resolve = NULL, future.resolve.recursive = NULL, [13:10:32.335] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [13:10:32.335] future.stdout.windows.reencode = NULL, width = 80L) [13:10:32.335] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [13:10:32.335] base::names(...future.oldOptions)) [13:10:32.335] } [13:10:32.335] if (FALSE) { [13:10:32.335] } [13:10:32.335] else { [13:10:32.335] if (TRUE) { [13:10:32.335] ...future.stdout <- base::rawConnection(base::raw(0L), [13:10:32.335] open = "w") [13:10:32.335] } [13:10:32.335] else { [13:10:32.335] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [13:10:32.335] windows = "NUL", "/dev/null"), open = "w") [13:10:32.335] } [13:10:32.335] base::sink(...future.stdout, type = "output", split = FALSE) [13:10:32.335] base::on.exit(if (!base::is.null(...future.stdout)) { [13:10:32.335] base::sink(type = "output", split = FALSE) [13:10:32.335] base::close(...future.stdout) [13:10:32.335] }, add = TRUE) [13:10:32.335] } [13:10:32.335] ...future.frame <- base::sys.nframe() [13:10:32.335] ...future.conditions <- base::list() [13:10:32.335] ...future.rng <- base::globalenv()$.Random.seed [13:10:32.335] if (FALSE) { [13:10:32.335] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [13:10:32.335] "...future.value", "...future.globalenv.names", ".Random.seed") [13:10:32.335] } [13:10:32.335] ...future.result <- base::tryCatch({ [13:10:32.335] base::withCallingHandlers({ [13:10:32.335] ...future.value <- base::withVisible(base::local({ [13:10:32.335] message(sprintf("Calculating tile #%d of %d ...", [13:10:32.335] ii, n), appendLF = FALSE) [13:10:32.335] fit <- mandelbrot(C) [13:10:32.335] delay(fit) [13:10:32.335] message(" done") [13:10:32.335] fit [13:10:32.335] })) [13:10:32.335] future::FutureResult(value = ...future.value$value, [13:10:32.335] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [13:10:32.335] ...future.rng), globalenv = if (FALSE) [13:10:32.335] list(added = base::setdiff(base::names(base::.GlobalEnv), [13:10:32.335] ...future.globalenv.names)) [13:10:32.335] else NULL, started = ...future.startTime, version = "1.8") [13:10:32.335] }, condition = base::local({ [13:10:32.335] c <- base::c [13:10:32.335] inherits <- base::inherits [13:10:32.335] invokeRestart <- base::invokeRestart [13:10:32.335] length <- base::length [13:10:32.335] list <- base::list [13:10:32.335] seq.int <- base::seq.int [13:10:32.335] signalCondition <- base::signalCondition [13:10:32.335] sys.calls <- base::sys.calls [13:10:32.335] `[[` <- base::`[[` [13:10:32.335] `+` <- base::`+` [13:10:32.335] `<<-` <- base::`<<-` [13:10:32.335] sysCalls <- function(calls = sys.calls(), from = 1L) { [13:10:32.335] calls[seq.int(from = from + 12L, to = length(calls) - [13:10:32.335] 3L)] [13:10:32.335] } [13:10:32.335] function(cond) { [13:10:32.335] is_error <- inherits(cond, "error") [13:10:32.335] ignore <- !is_error && !is.null(NULL) && inherits(cond, [13:10:32.335] NULL) [13:10:32.335] if (is_error) { [13:10:32.335] sessionInformation <- function() { [13:10:32.335] list(r = base::R.Version(), locale = base::Sys.getlocale(), [13:10:32.335] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [13:10:32.335] search = base::search(), system = base::Sys.info()) [13:10:32.335] } [13:10:32.335] ...future.conditions[[length(...future.conditions) + [13:10:32.335] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [13:10:32.335] cond$call), session = sessionInformation(), [13:10:32.335] timestamp = base::Sys.time(), signaled = 0L) [13:10:32.335] signalCondition(cond) [13:10:32.335] } [13:10:32.335] else if (!ignore && TRUE && inherits(cond, "condition")) { [13:10:32.335] signal <- FALSE && inherits(cond, character(0)) [13:10:32.335] ...future.conditions[[length(...future.conditions) + [13:10:32.335] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [13:10:32.335] if (FALSE && !signal) { [13:10:32.335] muffleCondition <- function (cond, pattern = "^muffle") [13:10:32.335] { [13:10:32.335] inherits <- base::inherits [13:10:32.335] invokeRestart <- base::invokeRestart [13:10:32.335] is.null <- base::is.null [13:10:32.335] muffled <- FALSE [13:10:32.335] if (inherits(cond, "message")) { [13:10:32.335] muffled <- grepl(pattern, "muffleMessage") [13:10:32.335] if (muffled) [13:10:32.335] invokeRestart("muffleMessage") [13:10:32.335] } [13:10:32.335] else if (inherits(cond, "warning")) { [13:10:32.335] muffled <- grepl(pattern, "muffleWarning") [13:10:32.335] if (muffled) [13:10:32.335] invokeRestart("muffleWarning") [13:10:32.335] } [13:10:32.335] else if (inherits(cond, "condition")) { [13:10:32.335] if (!is.null(pattern)) { [13:10:32.335] computeRestarts <- base::computeRestarts [13:10:32.335] grepl <- base::grepl [13:10:32.335] restarts <- computeRestarts(cond) [13:10:32.335] for (restart in restarts) { [13:10:32.335] name <- restart$name [13:10:32.335] if (is.null(name)) [13:10:32.335] next [13:10:32.335] if (!grepl(pattern, name)) [13:10:32.335] next [13:10:32.335] invokeRestart(restart) [13:10:32.335] muffled <- TRUE [13:10:32.335] break [13:10:32.335] } [13:10:32.335] } [13:10:32.335] } [13:10:32.335] invisible(muffled) [13:10:32.335] } [13:10:32.335] muffleCondition(cond, pattern = "^muffle") [13:10:32.335] } [13:10:32.335] } [13:10:32.335] else { [13:10:32.335] if (TRUE) { [13:10:32.335] muffleCondition <- function (cond, pattern = "^muffle") [13:10:32.335] { [13:10:32.335] inherits <- base::inherits [13:10:32.335] invokeRestart <- base::invokeRestart [13:10:32.335] is.null <- base::is.null [13:10:32.335] muffled <- FALSE [13:10:32.335] if (inherits(cond, "message")) { [13:10:32.335] muffled <- grepl(pattern, "muffleMessage") [13:10:32.335] if (muffled) [13:10:32.335] invokeRestart("muffleMessage") [13:10:32.335] } [13:10:32.335] else if (inherits(cond, "warning")) { [13:10:32.335] muffled <- grepl(pattern, "muffleWarning") [13:10:32.335] if (muffled) [13:10:32.335] invokeRestart("muffleWarning") [13:10:32.335] } [13:10:32.335] else if (inherits(cond, "condition")) { [13:10:32.335] if (!is.null(pattern)) { [13:10:32.335] computeRestarts <- base::computeRestarts [13:10:32.335] grepl <- base::grepl [13:10:32.335] restarts <- computeRestarts(cond) [13:10:32.335] for (restart in restarts) { [13:10:32.335] name <- restart$name [13:10:32.335] if (is.null(name)) [13:10:32.335] next [13:10:32.335] if (!grepl(pattern, name)) [13:10:32.335] next [13:10:32.335] invokeRestart(restart) [13:10:32.335] muffled <- TRUE [13:10:32.335] break [13:10:32.335] } [13:10:32.335] } [13:10:32.335] } [13:10:32.335] invisible(muffled) [13:10:32.335] } [13:10:32.335] muffleCondition(cond, pattern = "^muffle") [13:10:32.335] } [13:10:32.335] } [13:10:32.335] } [13:10:32.335] })) [13:10:32.335] }, error = function(ex) { [13:10:32.335] base::structure(base::list(value = NULL, visible = NULL, [13:10:32.335] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [13:10:32.335] ...future.rng), started = ...future.startTime, [13:10:32.335] finished = Sys.time(), session_uuid = NA_character_, [13:10:32.335] version = "1.8"), class = "FutureResult") [13:10:32.335] }, finally = { [13:10:32.335] if (!identical(...future.workdir, getwd())) [13:10:32.335] setwd(...future.workdir) [13:10:32.335] { [13:10:32.335] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [13:10:32.335] ...future.oldOptions$nwarnings <- NULL [13:10:32.335] } [13:10:32.335] base::options(...future.oldOptions) [13:10:32.335] if (.Platform$OS.type == "windows") { [13:10:32.335] old_names <- names(...future.oldEnvVars) [13:10:32.335] envs <- base::Sys.getenv() [13:10:32.335] names <- names(envs) [13:10:32.335] common <- intersect(names, old_names) [13:10:32.335] added <- setdiff(names, old_names) [13:10:32.335] removed <- setdiff(old_names, names) [13:10:32.335] changed <- common[...future.oldEnvVars[common] != [13:10:32.335] envs[common]] [13:10:32.335] NAMES <- toupper(changed) [13:10:32.335] args <- list() [13:10:32.335] for (kk in seq_along(NAMES)) { [13:10:32.335] name <- changed[[kk]] [13:10:32.335] NAME <- NAMES[[kk]] [13:10:32.335] if (name != NAME && is.element(NAME, old_names)) [13:10:32.335] next [13:10:32.335] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:32.335] } [13:10:32.335] NAMES <- toupper(added) [13:10:32.335] for (kk in seq_along(NAMES)) { [13:10:32.335] name <- added[[kk]] [13:10:32.335] NAME <- NAMES[[kk]] [13:10:32.335] if (name != NAME && is.element(NAME, old_names)) [13:10:32.335] next [13:10:32.335] args[[name]] <- "" [13:10:32.335] } [13:10:32.335] NAMES <- toupper(removed) [13:10:32.335] for (kk in seq_along(NAMES)) { [13:10:32.335] name <- removed[[kk]] [13:10:32.335] NAME <- NAMES[[kk]] [13:10:32.335] if (name != NAME && is.element(NAME, old_names)) [13:10:32.335] next [13:10:32.335] args[[name]] <- ...future.oldEnvVars[[name]] [13:10:32.335] } [13:10:32.335] if (length(args) > 0) [13:10:32.335] base::do.call(base::Sys.setenv, args = args) [13:10:32.335] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [13:10:32.335] } [13:10:32.335] else { [13:10:32.335] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [13:10:32.335] } [13:10:32.335] { [13:10:32.335] if (base::length(...future.futureOptionsAdded) > [13:10:32.335] 0L) { [13:10:32.335] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [13:10:32.335] base::names(opts) <- ...future.futureOptionsAdded [13:10:32.335] base::options(opts) [13:10:32.335] } [13:10:32.335] { [13:10:32.335] NULL [13:10:32.335] options(future.plan = NULL) [13:10:32.335] if (is.na(NA_character_)) [13:10:32.335] Sys.unsetenv("R_FUTURE_PLAN") [13:10:32.335] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [13:10:32.335] future::plan(...future.strategy.old, .cleanup = FALSE, [13:10:32.335] .init = FALSE) [13:10:32.335] } [13:10:32.335] } [13:10:32.335] } [13:10:32.335] }) [13:10:32.335] if (TRUE) { [13:10:32.335] base::sink(type = "output", split = FALSE) [13:10:32.335] if (TRUE) { [13:10:32.335] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [13:10:32.335] } [13:10:32.335] else { [13:10:32.335] ...future.result["stdout"] <- base::list(NULL) [13:10:32.335] } [13:10:32.335] base::close(...future.stdout) [13:10:32.335] ...future.stdout <- NULL [13:10:32.335] } [13:10:32.335] ...future.result$conditions <- ...future.conditions [13:10:32.335] ...future.result$finished <- base::Sys.time() [13:10:32.335] ...future.result [13:10:32.335] } [13:10:32.339] - Launch lazy future ... done [13:10:32.340] run() for 'MiraiFuture' ... done [13:10:32.340] - run() ... done [13:10:32.340] - resolved() ... [13:10:32.340] resolved() for 'MiraiFuture' ... [13:10:32.340] - state: 'running' [13:10:32.341] - run: TRUE [13:10:32.341] - result: 'NULL' [13:10:32.341] - resolved: FALSE [13:10:32.341] resolved() for 'MiraiFuture' ... done [13:10:32.341] - resolved: FALSE [13:10:32.342] - resolved() ... done [13:10:32.342] resolved() for 'MiraiFuture' ... done [13:10:32.342] resolved() for 'MiraiFuture' ... [13:10:32.342] - state: 'running' [13:10:32.342] - run: TRUE [13:10:32.343] - result: 'NULL' [13:10:32.343] - resolved: FALSE [13:10:32.343] resolved() for 'MiraiFuture' ... done Plotting tile #1 of 4 ... [13:10:32.343] signalConditions() ... [13:10:32.344] - include = 'immediateCondition' [13:10:32.344] - exclude = [13:10:32.344] - resignal = FALSE [13:10:32.344] - Number of conditions: 2 [13:10:32.344] signalConditions() ... done [13:10:32.344] Future state: 'finished' [13:10:32.345] signalConditions() ... [13:10:32.345] - include = 'condition' [13:10:32.345] - exclude = 'immediateCondition' [13:10:32.345] - resignal = TRUE [13:10:32.345] - Number of conditions: 2 [13:10:32.345] - Condition #1: 'simpleMessage', 'message', 'condition' Calculating tile #1 of 4 ...[13:10:32.346] - Condition #2: 'simpleMessage', 'message', 'condition' done [13:10:32.346] signalConditions() ... done [13:10:32.348] resolved() for 'MiraiFuture' ... [13:10:32.348] - state: 'running' [13:10:32.348] - run: TRUE [13:10:32.348] - result: 'NULL' [13:10:32.348] - resolved: FALSE [13:10:32.349] resolved() for 'MiraiFuture' ... done Plotting tile #2 of 4 ... [13:10:32.349] signalConditions() ... [13:10:32.349] - include = 'immediateCondition' [13:10:32.349] - exclude = [13:10:32.350] - resignal = FALSE [13:10:32.350] - Number of conditions: 2 [13:10:32.350] signalConditions() ... done [13:10:32.350] Future state: 'finished' [13:10:32.350] signalConditions() ... [13:10:32.351] - include = 'condition' [13:10:32.351] - exclude = 'immediateCondition' [13:10:32.351] - resignal = TRUE [13:10:32.351] - Number of conditions: 2 [13:10:32.351] - Condition #1: 'simpleMessage', 'message', 'condition' Calculating tile #2 of 4 ...[13:10:32.351] - Condition #2: 'simpleMessage', 'message', 'condition' done [13:10:32.352] signalConditions() ... done [13:10:32.352] resolved() for 'MiraiFuture' ... [13:10:32.353] - state: 'running' [13:10:32.353] - run: TRUE [13:10:32.353] - result: 'NULL' [13:10:32.353] - resolved: FALSE [13:10:32.353] resolved() for 'MiraiFuture' ... done [13:10:32.354] resolved() for 'MiraiFuture' ... [13:10:32.354] - state: 'running' [13:10:32.354] - run: TRUE [13:10:32.354] - result: 'NULL' [13:10:32.354] - resolved: FALSE [13:10:32.354] resolved() for 'MiraiFuture' ... done [13:10:32.355] resolved() for 'MiraiFuture' ... [13:10:32.355] - state: 'running' [13:10:32.357] - run: TRUE [13:10:32.357] - result: 'NULL' [13:10:32.357] - resolved: FALSE [13:10:32.357] resolved() for 'MiraiFuture' ... done [13:10:32.357] resolved() for 'MiraiFuture' ... [13:10:32.358] - state: 'running' [13:10:32.358] - run: TRUE [13:10:32.358] - result: 'NULL' [13:10:32.358] - resolved: FALSE [13:10:32.358] resolved() for 'MiraiFuture' ... done [13:10:32.358] resolved() for 'MiraiFuture' ... [13:10:32.359] - state: 'running' [13:10:32.359] - run: TRUE [13:10:32.359] - result: 'NULL' [13:10:32.359] - resolved: FALSE [13:10:32.359] resolved() for 'MiraiFuture' ... done [13:10:32.360] resolved() for 'MiraiFuture' ... [13:10:32.360] - state: 'running' [13:10:32.360] - run: TRUE [13:10:32.360] - result: 'NULL' [13:10:32.360] - resolved: FALSE [13:10:32.360] resolved() for 'MiraiFuture' ... done [13:10:32.361] resolved() for 'MiraiFuture' ... [13:10:32.361] - state: 'running' [13:10:32.361] - run: TRUE [13:10:32.361] - result: 'NULL' [13:10:32.361] - resolved: FALSE [13:10:32.362] resolved() for 'MiraiFuture' ... done [13:10:32.362] resolved() for 'MiraiFuture' ... [13:10:32.362] - state: 'running' [13:10:32.362] - run: TRUE [13:10:32.362] - result: 'NULL' [13:10:32.363] - resolved: FALSE [13:10:32.363] resolved() for 'MiraiFuture' ... done [13:10:32.363] resolved() for 'MiraiFuture' ... [13:10:32.363] - state: 'running' [13:10:32.363] - run: TRUE [13:10:32.363] - result: 'NULL' [13:10:32.364] - resolved: FALSE [13:10:32.364] resolved() for 'MiraiFuture' ... done [13:10:32.364] resolved() for 'MiraiFuture' ... [13:10:32.364] - state: 'running' [13:10:32.364] - run: TRUE [13:10:32.365] - result: 'NULL' [13:10:32.365] - resolved: FALSE [13:10:32.365] resolved() for 'MiraiFuture' ... done [13:10:32.365] resolved() for 'MiraiFuture' ... [13:10:32.365] - state: 'running' [13:10:32.365] - run: TRUE [13:10:32.366] - result: 'NULL' [13:10:32.366] - resolved: FALSE [13:10:32.366] resolved() for 'MiraiFuture' ... done [13:10:32.366] resolved() for 'MiraiFuture' ... [13:10:32.366] - state: 'running' [13:10:32.367] - run: TRUE [13:10:32.367] - result: 'NULL' [13:10:32.367] - resolved: FALSE [13:10:32.367] resolved() for 'MiraiFuture' ... done [13:10:32.367] resolved() for 'MiraiFuture' ... [13:10:32.367] - state: 'running' [13:10:32.368] - run: TRUE [13:10:32.368] - result: 'NULL' [13:10:32.368] - resolved: FALSE [13:10:32.368] resolved() for 'MiraiFuture' ... done [13:10:32.368] resolved() for 'MiraiFuture' ... [13:10:32.369] - state: 'running' [13:10:32.369] - run: TRUE [13:10:32.369] - result: 'NULL' [13:10:32.369] - resolved: FALSE [13:10:32.369] resolved() for 'MiraiFuture' ... done [13:10:32.369] resolved() for 'MiraiFuture' ... [13:10:32.370] - state: 'running' [13:10:32.370] - run: TRUE [13:10:32.370] - result: 'NULL' [13:10:32.370] - resolved: FALSE [13:10:32.370] resolved() for 'MiraiFuture' ... done Plotting tile #3 of 4 ... [13:10:32.371] signalConditions() ... [13:10:32.371] - include = 'immediateCondition' [13:10:32.371] - exclude = [13:10:32.371] - resignal = FALSE [13:10:32.371] - Number of conditions: 2 [13:10:32.372] signalConditions() ... done [13:10:32.372] Future state: 'finished' [13:10:32.372] signalConditions() ... [13:10:32.372] - include = 'condition' [13:10:32.372] - exclude = 'immediateCondition' [13:10:32.373] - resignal = TRUE [13:10:32.373] - Number of conditions: 2 [13:10:32.373] - Condition #1: 'simpleMessage', 'message', 'condition' Calculating tile #3 of 4 ...[13:10:32.373] - Condition #2: 'simpleMessage', 'message', 'condition' done [13:10:32.373] signalConditions() ... done [13:10:32.374] resolved() for 'MiraiFuture' ... [13:10:32.374] - state: 'running' [13:10:32.374] - run: TRUE [13:10:32.375] - result: 'NULL' [13:10:32.375] - resolved: FALSE [13:10:32.375] resolved() for 'MiraiFuture' ... done [13:10:32.375] resolved() for 'MiraiFuture' ... [13:10:32.375] - state: 'running' [13:10:32.375] - run: TRUE [13:10:32.376] - result: 'NULL' [13:10:32.376] - resolved: FALSE [13:10:32.376] resolved() for 'MiraiFuture' ... done [13:10:32.376] resolved() for 'MiraiFuture' ... [13:10:32.376] - state: 'running' [13:10:32.377] - run: TRUE [13:10:32.377] - result: 'NULL' [13:10:32.377] - resolved: FALSE [13:10:32.377] resolved() for 'MiraiFuture' ... done [13:10:32.378] resolved() for 'MiraiFuture' ... [13:10:32.378] - state: 'running' [13:10:32.378] - run: TRUE [13:10:32.378] - result: 'NULL' [13:10:32.378] - resolved: FALSE [13:10:32.378] resolved() for 'MiraiFuture' ... done [13:10:32.379] resolved() for 'MiraiFuture' ... [13:10:32.379] - state: 'running' [13:10:32.379] - run: TRUE [13:10:32.379] - result: 'NULL' [13:10:32.379] - resolved: FALSE [13:10:32.380] resolved() for 'MiraiFuture' ... done [13:10:32.380] resolved() for 'MiraiFuture' ... [13:10:32.380] - state: 'running' [13:10:32.380] - run: TRUE [13:10:32.380] - result: 'NULL' [13:10:32.380] - resolved: FALSE [13:10:32.381] resolved() for 'MiraiFuture' ... done [13:10:32.381] resolved() for 'MiraiFuture' ... [13:10:32.381] - state: 'running' [13:10:32.381] - run: TRUE [13:10:32.381] - result: 'NULL' [13:10:32.382] - resolved: FALSE [13:10:32.382] resolved() for 'MiraiFuture' ... done [13:10:32.382] resolved() for 'MiraiFuture' ... [13:10:32.382] - state: 'running' [13:10:32.382] - run: TRUE [13:10:32.383] - result: 'NULL' [13:10:32.383] - resolved: FALSE [13:10:32.383] resolved() for 'MiraiFuture' ... done Plotting tile #4 of 4 ... [13:10:32.383] signalConditions() ... [13:10:32.384] - include = 'immediateCondition' [13:10:32.384] - exclude = [13:10:32.384] - resignal = FALSE [13:10:32.384] - Number of conditions: 2 [13:10:32.384] signalConditions() ... done [13:10:32.384] Future state: 'finished' [13:10:32.385] signalConditions() ... [13:10:32.385] - include = 'condition' [13:10:32.385] - exclude = 'immediateCondition' [13:10:32.385] - resignal = TRUE [13:10:32.385] - Number of conditions: 2 [13:10:32.385] - Condition #1: 'simpleMessage', 'message', 'condition' Calculating tile #4 of 4 ...[13:10:32.386] - Condition #2: 'simpleMessage', 'message', 'condition' done [13:10:32.386] 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.07 1.01