R Under development (unstable) (2026-02-18 r89435 ucrt) -- "Unsuffered Consequences" Copyright (C) 2026 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. > #! /usr/bin/env Rscript > ## This runs testme test script inst/testme/test-future_lapply,globals.R > ## Don't edit - it was autogenerated by inst/testme/deploy.R > future.apply:::testme("future_lapply,globals") Test 'future_lapply,globals' ... chr "none" > library(future.apply) Loading required package: future > library(tools) > options(future.debug = FALSE) > options(future.apply.debug = TRUE) > message("*** future_lapply() - globals ...") *** future_lapply() - globals ... > plan(cluster, workers = "localhost") > a <- 1 > b <- 2 > globals_set <- list(A = FALSE, B = TRUE, C = c("a", + "b"), D = list(a = 2, b = 3)) > x <- list(1) > y_truth <- list(A = NULL, B = list(1), C = list(1), + D = list(2)) > str(y_truth) List of 4 $ A: NULL $ B:List of 1 ..$ : num 1 $ C:List of 1 ..$ : num 1 $ D:List of 1 ..$ : num 2 > for (name in names(globals_set)) { + globals <- globals_set[[name]] + message("Globals set ", sQuote(name)) + y <- tryCatch({ + .... [TRUNCATED] Globals set 'A' [11:05:42.350] future_lapply() ... [11:05:42.358] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [11:05:42.358] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:42.359] | future_lapply() -> future_xapply() ... [11:05:42.360] | : Number of chunks: 1 [11:05:42.360] | : getGlobalsAndPackagesXApply() ... [11:05:42.361] | : . future.globals: FALSE [11:05:42.364] | : . globals found/used: [n=2] 'FUN', 'future.call.arguments' [11:05:42.364] | : . needed namespaces: [n=0] [11:05:42.365] | : . use_args: TRUE [11:05:42.365] | : . Getting '...' globals ... [11:05:42.367] | : . ' '...' content: [n=0] [11:05:42.367] | : . ' List of 1 [11:05:42.367] | : . ' $ ...: list() [11:05:42.367] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.367] | : . ' - attr(*, "where")=List of 1 [11:05:42.367] | : . ' ..$ ...: [11:05:42.367] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.367] | : . ' - attr(*, "resolved")= logi TRUE [11:05:42.367] | : . ' - attr(*, "total_size")= num NA [11:05:42.371] | : . Getting '...' globals ... done [11:05:42.371] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'future.call.arguments', '...' [11:05:42.371] | : . List of 3 [11:05:42.371] | : . $ ...future.FUN :function (x) [11:05:42.371] | : . $ future.call.arguments: list() [11:05:42.371] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.371] | : . $ ... : list() [11:05:42.371] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.371] | : . - attr(*, "where")=List of 3 [11:05:42.371] | : . ..$ ...future.FUN : [11:05:42.371] | : . ..$ future.call.arguments: [11:05:42.371] | : . ..$ ... : [11:05:42.371] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.371] | : . - attr(*, "resolved")= logi FALSE [11:05:42.371] | : . - attr(*, "total_size")= num 5448 [11:05:42.376] | : . Packages to be attached in all futures: [n=1] 'utils' [11:05:42.377] | : getGlobalsAndPackagesXApply() ... done [11:05:42.377] | : Globals pass to each chunk: [n=6] '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.377] | : List of 6 [11:05:42.377] | : $ ...future.FUN :function (x) [11:05:42.377] | : $ future.call.arguments : list() [11:05:42.377] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.377] | : $ ... : list() [11:05:42.377] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.377] | : $ ...future.elements_ii : NULL [11:05:42.377] | : $ ...future.seeds_ii : NULL [11:05:42.377] | : $ ...future.globals.maxSize: NULL [11:05:42.377] | : - attr(*, "where")=List of 6 [11:05:42.377] | : ..$ ...future.FUN : [11:05:42.377] | : ..$ future.call.arguments : [11:05:42.377] | : ..$ ... : [11:05:42.377] | : ..$ ...future.elements_ii : [11:05:42.377] | : ..$ ...future.seeds_ii : [11:05:42.377] | : ..$ ...future.globals.maxSize: [11:05:42.377] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.377] | : - attr(*, "resolved")= logi FALSE [11:05:42.377] | : - attr(*, "total_size")= num 5448 [11:05:42.384] | : Number of futures (= number of chunks): 1 [11:05:42.385] | : Launching 1 futures (chunks) ... [11:05:42.385] | : Chunk #1 of 1 ... [11:05:42.385] | : - seeds: [11:05:42.385] | : - All globals exported: [n=6] '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.391] | : Created future: [11:05:42.391] | : ClusterFuture: [11:05:42.391] | : Label: 'future_lapply-1' [11:05:42.391] | : Expression: [11:05:42.391] | : { [11:05:42.391] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:42.391] | : "# expression in do.call(), because function called uses '...' " [11:05:42.391] | : "# as a global variable " [11:05:42.391] | : do.call(function(...) { [11:05:42.391] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:42.391] | : "# without having an '...' argument. This means '...' is treated" [11:05:42.391] | : "# as a global variable. This may happen when FUN() is an " [11:05:42.391] | : "# anonymous function. " [11:05:42.391] | : "# " [11:05:42.391] | : "# If an anonymous function, we will make sure to restore the " [11:05:42.391] | : "# function environment of FUN() to the calling environment. " [11:05:42.391] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:42.391] | : "# global environment, which is where globals are written. " [11:05:42.391] | : penv <- env <- environment(...future.FUN) [11:05:42.391] | : repeat { [11:05:42.391] | : if (identical(env, globalenv()) || identical(env, [11:05:42.391] | : emptyenv())) [11:05:42.391] | : break [11:05:42.391] | : penv <- env [11:05:42.391] | : env <- parent.env(env) [11:05:42.391] | : } [11:05:42.391] | : if (identical(penv, globalenv())) { [11:05:42.391] | : environment(...future.FUN) <- environment() [11:05:42.391] | : } [11:05:42.391] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:42.391] | : !isNamespace(penv)) { [11:05:42.391] | : parent.env(penv) <- environment() [11:05:42.391] | : } [11:05:42.391] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:42.391] | : { [11:05:42.391] | : "# future.apply:::future_xapply(): preserve future option" [11:05:42.391] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:42.391] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:42.391] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:42.391] | : on.exit(options(oopts), add = TRUE) [11:05:42.391] | : } [11:05:42.391] | : { [11:05:42.391] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:42.391] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:42.391] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:42.391] | : { [11:05:42.391] | : ...future.FUN(...future.X_jj, ...) [11:05:42.391] | : } [11:05:42.391] | : }) [11:05:42.391] | : } [11:05:42.391] | : } [11:05:42.391] | : }, args = future.call.arguments) [11:05:42.391] | : } [11:05:42.391] | : Globals: 5 objects totaling 5.48 KiB (function '...future.FUN' of 683 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 47 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:42.391] | : Packages: 1 packages ('utils') [11:05:42.391] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:42.391] | : Capture standard output: TRUE [11:05:42.391] | : Capture condition classes: 'condition' (excluding '') [11:05:42.391] | : Immediate condition classes: 'immediateCondition' [11:05:42.391] | : Lazy evaluation: FALSE [11:05:42.391] | : Local evaluation: TRUE [11:05:42.391] | : Early signaling: FALSE [11:05:42.391] | : Actions: [n=1] 'run' [11:05:42.391] | : State: 'running' ("Future is being evaluated") [11:05:42.391] | : Resolved: TRUE [11:05:42.391] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-1 [11:05:42.391] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:42.391] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:42.391] | : Value: [11:05:42.391] | : Conditions captured: [11:05:42.471] | : Chunk #1 of 1 ... DONE [11:05:42.472] | : Launching 1 futures (chunks) ... DONE [11:05:42.472] | : Resolving 1 futures (chunks) ... [11:05:42.474] | : onError() ... [11:05:42.475] | : . Received Warning: Caught simpleError. Canceling all iterations ... [11:05:42.475] | : . Signaling: [11:05:42.476] | : onError() ... done [11:05:42.476] | future_lapply() -> future_xapply() ... done [11:05:42.476] future_lapply() ... done Globals set 'B' [11:05:42.477] future_lapply() ... [11:05:42.478] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [11:05:42.478] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:42.478] | future_lapply() -> future_xapply() ... [11:05:42.479] | : Number of chunks: 1 [11:05:42.479] | : getGlobalsAndPackagesXApply() ... [11:05:42.479] | : . future.globals: TRUE [11:05:42.493] | : . globals found/used: [n=3] 'FUN', 'a', 'b' [11:05:42.493] | : . needed namespaces: [n=1] 'stats' [11:05:42.494] | : . use_args: TRUE [11:05:42.494] | : . Getting '...' globals ... [11:05:42.494] | : . ' '...' content: [n=0] [11:05:42.495] | : . ' List of 1 [11:05:42.495] | : . ' $ ...: list() [11:05:42.495] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.495] | : . ' - attr(*, "where")=List of 1 [11:05:42.495] | : . ' ..$ ...: [11:05:42.495] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.495] | : . ' - attr(*, "resolved")= logi TRUE [11:05:42.495] | : . ' - attr(*, "total_size")= num NA [11:05:42.502] | : . Getting '...' globals ... done [11:05:42.502] | : . Globals to be used in all futures (chunks): [n=4] '...future.FUN', 'a', 'b', '...' [11:05:42.502] | : . List of 4 [11:05:42.502] | : . $ ...future.FUN:function (x) [11:05:42.502] | : . $ a : num 1 [11:05:42.502] | : . $ b : num 2 [11:05:42.502] | : . $ ... : list() [11:05:42.502] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.502] | : . - attr(*, "where")=List of 4 [11:05:42.502] | : . ..$ ...future.FUN: [11:05:42.502] | : . ..$ a : [11:05:42.502] | : . ..$ b : [11:05:42.502] | : . ..$ ... : [11:05:42.502] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.502] | : . - attr(*, "resolved")= logi FALSE [11:05:42.502] | : . - attr(*, "total_size")= num 5429 [11:05:42.507] | : . Packages to be attached in all futures: [n=2] 'stats', 'utils' [11:05:42.507] | : getGlobalsAndPackagesXApply() ... done [11:05:42.508] | : Globals pass to each chunk: [n=7] '...future.FUN', 'a', 'b', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.508] | : List of 7 [11:05:42.508] | : $ ...future.FUN :function (x) [11:05:42.508] | : $ a : num 1 [11:05:42.508] | : $ b : num 2 [11:05:42.508] | : $ ... : list() [11:05:42.508] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.508] | : $ ...future.elements_ii : NULL [11:05:42.508] | : $ ...future.seeds_ii : NULL [11:05:42.508] | : $ ...future.globals.maxSize: NULL [11:05:42.508] | : - attr(*, "where")=List of 7 [11:05:42.508] | : ..$ ...future.FUN : [11:05:42.508] | : ..$ a : [11:05:42.508] | : ..$ b : [11:05:42.508] | : ..$ ... : [11:05:42.508] | : ..$ ...future.elements_ii : [11:05:42.508] | : ..$ ...future.seeds_ii : [11:05:42.508] | : ..$ ...future.globals.maxSize: [11:05:42.508] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.508] | : - attr(*, "resolved")= logi FALSE [11:05:42.508] | : - attr(*, "total_size")= num 5429 [11:05:42.514] | : Number of futures (= number of chunks): 1 [11:05:42.514] | : Launching 1 futures (chunks) ... [11:05:42.515] | : Chunk #1 of 1 ... [11:05:42.515] | : - Finding globals in 'X' for chunk #1 ... [11:05:42.515] | : + additional globals found: [n=0] [11:05:42.516] | : + additional namespaces needed: [n=0] [11:05:42.516] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:42.516] | : - seeds: [11:05:42.516] | : - All globals exported: [n=7] '...future.FUN', 'a', 'b', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.518] | : Created future: [11:05:42.519] | : ClusterFuture: [11:05:42.519] | : Label: 'future_lapply-1' [11:05:42.519] | : Expression: [11:05:42.519] | : { [11:05:42.519] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:42.519] | : "# expression in do.call(), because function called uses '...' " [11:05:42.519] | : "# as a global variable " [11:05:42.519] | : do.call(function(...) { [11:05:42.519] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:42.519] | : "# without having an '...' argument. This means '...' is treated" [11:05:42.519] | : "# as a global variable. This may happen when FUN() is an " [11:05:42.519] | : "# anonymous function. " [11:05:42.519] | : "# " [11:05:42.519] | : "# If an anonymous function, we will make sure to restore the " [11:05:42.519] | : "# function environment of FUN() to the calling environment. " [11:05:42.519] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:42.519] | : "# global environment, which is where globals are written. " [11:05:42.519] | : penv <- env <- environment(...future.FUN) [11:05:42.519] | : repeat { [11:05:42.519] | : if (identical(env, globalenv()) || identical(env, [11:05:42.519] | : emptyenv())) [11:05:42.519] | : break [11:05:42.519] | : penv <- env [11:05:42.519] | : env <- parent.env(env) [11:05:42.519] | : } [11:05:42.519] | : if (identical(penv, globalenv())) { [11:05:42.519] | : environment(...future.FUN) <- environment() [11:05:42.519] | : } [11:05:42.519] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:42.519] | : !isNamespace(penv)) { [11:05:42.519] | : parent.env(penv) <- environment() [11:05:42.519] | : } [11:05:42.519] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:42.519] | : { [11:05:42.519] | : "# future.apply:::future_xapply(): preserve future option" [11:05:42.519] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:42.519] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:42.519] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:42.519] | : on.exit(options(oopts), add = TRUE) [11:05:42.519] | : } [11:05:42.519] | : { [11:05:42.519] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:42.519] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:42.519] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:42.519] | : { [11:05:42.519] | : ...future.FUN(...future.X_jj, ...) [11:05:42.519] | : } [11:05:42.519] | : }) [11:05:42.519] | : } [11:05:42.519] | : } [11:05:42.519] | : }, args = future.call.arguments) [11:05:42.519] | : } [11:05:42.519] | : Globals: 7 objects totaling 5.56 KiB (function '...future.FUN' of 683 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, numeric 'b' of 39 bytes, ...) [11:05:42.519] | : Packages: 2 packages ('stats', 'utils') [11:05:42.519] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:42.519] | : Capture standard output: TRUE [11:05:42.519] | : Capture condition classes: 'condition' (excluding '') [11:05:42.519] | : Immediate condition classes: 'immediateCondition' [11:05:42.519] | : Lazy evaluation: FALSE [11:05:42.519] | : Local evaluation: TRUE [11:05:42.519] | : Early signaling: FALSE [11:05:42.519] | : Actions: [n=1] 'run' [11:05:42.519] | : State: 'running' ("Future is being evaluated") [11:05:42.519] | : Resolved: TRUE [11:05:42.519] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-2 [11:05:42.519] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:42.519] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:42.519] | : Value: [11:05:42.519] | : Conditions captured: [11:05:42.525] | : Chunk #1 of 1 ... DONE [11:05:42.525] | : Launching 1 futures (chunks) ... DONE [11:05:42.525] | : Resolving 1 futures (chunks) ... [11:05:42.526] | : - Number of value chunks collected: 1 [11:05:42.526] | : Resolving 1 futures (chunks) ... DONE [11:05:42.526] | : Reducing values from 1 chunks ... [11:05:42.526] | : - Number of values collected after concatenation: 1 [11:05:42.526] | : - Number of values expected: 1 [11:05:42.527] | : Reducing values from 1 chunks ... DONE [11:05:42.527] | future_lapply() -> future_xapply() ... done [11:05:42.527] future_lapply() ... done [[1]] [1] 1 Globals set 'C' [11:05:42.527] future_lapply() ... [11:05:42.528] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [11:05:42.529] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:42.529] | future_lapply() -> future_xapply() ... [11:05:42.529] | : Number of chunks: 1 [11:05:42.529] | : getGlobalsAndPackagesXApply() ... [11:05:42.530] | : . future.globals: 'a', 'b' [11:05:42.530] | : . use_args: TRUE [11:05:42.530] | : . Globals to be used in all futures (chunks): [n=4] 'a', 'b', '...future.FUN', '...' [11:05:42.530] | : . List of 4 [11:05:42.530] | : . $ a : num 1 [11:05:42.530] | : . $ b : num 2 [11:05:42.530] | : . $ ...future.FUN:function (x) [11:05:42.530] | : . $ ... : list() [11:05:42.530] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.530] | : . - attr(*, "where")=List of 4 [11:05:42.530] | : . ..$ a : [11:05:42.530] | : . ..$ b : [11:05:42.530] | : . ..$ ...future.FUN: [11:05:42.530] | : . ..$ ... : [11:05:42.530] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.530] | : . - attr(*, "resolved")= logi FALSE [11:05:42.530] | : . - attr(*, "total_size")= num NA [11:05:42.535] | : . Packages to be attached in all futures: [n=1] 'utils' [11:05:42.536] | : getGlobalsAndPackagesXApply() ... done [11:05:42.536] | : Globals pass to each chunk: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.536] | : List of 7 [11:05:42.536] | : $ a : num 1 [11:05:42.536] | : $ b : num 2 [11:05:42.536] | : $ ...future.FUN :function (x) [11:05:42.536] | : $ ... : list() [11:05:42.536] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.536] | : $ ...future.elements_ii : NULL [11:05:42.536] | : $ ...future.seeds_ii : NULL [11:05:42.536] | : $ ...future.globals.maxSize: NULL [11:05:42.536] | : - attr(*, "where")=List of 7 [11:05:42.536] | : ..$ a : [11:05:42.536] | : ..$ b : [11:05:42.536] | : ..$ ...future.FUN : [11:05:42.536] | : ..$ ... : [11:05:42.536] | : ..$ ...future.elements_ii : [11:05:42.536] | : ..$ ...future.seeds_ii : [11:05:42.536] | : ..$ ...future.globals.maxSize: [11:05:42.536] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.536] | : - attr(*, "resolved")= logi FALSE [11:05:42.536] | : - attr(*, "total_size")= num NA [11:05:42.544] | : Number of futures (= number of chunks): 1 [11:05:42.545] | : Launching 1 futures (chunks) ... [11:05:42.545] | : Chunk #1 of 1 ... [11:05:42.545] | : - seeds: [11:05:42.545] | : - All globals exported: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.549] | : Created future: [11:05:42.550] | : ClusterFuture: [11:05:42.550] | : Label: 'future_lapply-1' [11:05:42.550] | : Expression: [11:05:42.550] | : { [11:05:42.550] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:42.550] | : "# expression in do.call(), because function called uses '...' " [11:05:42.550] | : "# as a global variable " [11:05:42.550] | : do.call(function(...) { [11:05:42.550] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:42.550] | : "# without having an '...' argument. This means '...' is treated" [11:05:42.550] | : "# as a global variable. This may happen when FUN() is an " [11:05:42.550] | : "# anonymous function. " [11:05:42.550] | : "# " [11:05:42.550] | : "# If an anonymous function, we will make sure to restore the " [11:05:42.550] | : "# function environment of FUN() to the calling environment. " [11:05:42.550] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:42.550] | : "# global environment, which is where globals are written. " [11:05:42.550] | : penv <- env <- environment(...future.FUN) [11:05:42.550] | : repeat { [11:05:42.550] | : if (identical(env, globalenv()) || identical(env, [11:05:42.550] | : emptyenv())) [11:05:42.550] | : break [11:05:42.550] | : penv <- env [11:05:42.550] | : env <- parent.env(env) [11:05:42.550] | : } [11:05:42.550] | : if (identical(penv, globalenv())) { [11:05:42.550] | : environment(...future.FUN) <- environment() [11:05:42.550] | : } [11:05:42.550] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:42.550] | : !isNamespace(penv)) { [11:05:42.550] | : parent.env(penv) <- environment() [11:05:42.550] | : } [11:05:42.550] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:42.550] | : { [11:05:42.550] | : "# future.apply:::future_xapply(): preserve future option" [11:05:42.550] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:42.550] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:42.550] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:42.550] | : on.exit(options(oopts), add = TRUE) [11:05:42.550] | : } [11:05:42.550] | : { [11:05:42.550] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:42.550] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:42.550] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:42.550] | : { [11:05:42.550] | : ...future.FUN(...future.X_jj, ...) [11:05:42.550] | : } [11:05:42.550] | : }) [11:05:42.550] | : } [11:05:42.550] | : } [11:05:42.550] | : }, args = future.call.arguments) [11:05:42.550] | : } [11:05:42.550] | : Globals: 7 objects totaling 5.57 KiB (function '...future.FUN' of 683 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, numeric 'b' of 39 bytes, ...) [11:05:42.550] | : Packages: 1 packages ('utils') [11:05:42.550] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:42.550] | : Capture standard output: TRUE [11:05:42.550] | : Capture condition classes: 'condition' (excluding '') [11:05:42.550] | : Immediate condition classes: 'immediateCondition' [11:05:42.550] | : Lazy evaluation: FALSE [11:05:42.550] | : Local evaluation: TRUE [11:05:42.550] | : Early signaling: FALSE [11:05:42.550] | : Actions: [n=1] 'run' [11:05:42.550] | : State: 'running' ("Future is being evaluated") [11:05:42.550] | : Resolved: TRUE [11:05:42.550] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-3 [11:05:42.550] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:42.550] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:42.550] | : Value: [11:05:42.550] | : Conditions captured: [11:05:42.557] | : Chunk #1 of 1 ... DONE [11:05:42.557] | : Launching 1 futures (chunks) ... DONE [11:05:42.557] | : Resolving 1 futures (chunks) ... [11:05:42.558] | : - Number of value chunks collected: 1 [11:05:42.558] | : Resolving 1 futures (chunks) ... DONE [11:05:42.559] | : Reducing values from 1 chunks ... [11:05:42.559] | : - Number of values collected after concatenation: 1 [11:05:42.559] | : - Number of values expected: 1 [11:05:42.559] | : Reducing values from 1 chunks ... DONE [11:05:42.559] | future_lapply() -> future_xapply() ... done [11:05:42.559] future_lapply() ... done [[1]] [1] 1 Globals set 'D' [11:05:42.560] future_lapply() ... [11:05:42.561] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [11:05:42.561] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:42.561] | future_lapply() -> future_xapply() ... [11:05:42.562] | : Number of chunks: 1 [11:05:42.562] | : getGlobalsAndPackagesXApply() ... [11:05:42.562] | : . future.globals: with names 'a', 'b' [11:05:42.562] | : . use_args: TRUE [11:05:42.562] | : . Getting '...' globals ... [11:05:42.563] | : . ' '...' content: [n=0] [11:05:42.563] | : . ' List of 1 [11:05:42.563] | : . ' $ ...: list() [11:05:42.563] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.563] | : . ' - attr(*, "where")=List of 1 [11:05:42.563] | : . ' ..$ ...: [11:05:42.563] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.563] | : . ' - attr(*, "resolved")= logi TRUE [11:05:42.563] | : . ' - attr(*, "total_size")= num NA [11:05:42.567] | : . Getting '...' globals ... done [11:05:42.567] | : . Globals to be used in all futures (chunks): [n=4] 'a', 'b', '...future.FUN', '...' [11:05:42.567] | : . List of 4 [11:05:42.567] | : . $ a : num 2 [11:05:42.567] | : . $ b : num 3 [11:05:42.567] | : . $ ...future.FUN:function (x) [11:05:42.567] | : . $ ... : list() [11:05:42.567] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.567] | : . - attr(*, "where")=List of 4 [11:05:42.567] | : . ..$ a : [11:05:42.567] | : . ..$ b : [11:05:42.567] | : . ..$ ...future.FUN: [11:05:42.567] | : . ..$ ... : [11:05:42.567] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.567] | : . - attr(*, "resolved")= logi FALSE [11:05:42.567] | : . - attr(*, "total_size")= num NA [11:05:42.572] | : . Packages to be attached in all futures: [n=1] 'utils' [11:05:42.572] | : getGlobalsAndPackagesXApply() ... done [11:05:42.572] | : Globals pass to each chunk: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.573] | : List of 7 [11:05:42.573] | : $ a : num 2 [11:05:42.573] | : $ b : num 3 [11:05:42.573] | : $ ...future.FUN :function (x) [11:05:42.573] | : $ ... : list() [11:05:42.573] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.573] | : $ ...future.elements_ii : NULL [11:05:42.573] | : $ ...future.seeds_ii : NULL [11:05:42.573] | : $ ...future.globals.maxSize: NULL [11:05:42.573] | : - attr(*, "where")=List of 7 [11:05:42.573] | : ..$ a : [11:05:42.573] | : ..$ b : [11:05:42.573] | : ..$ ...future.FUN : [11:05:42.573] | : ..$ ... : [11:05:42.573] | : ..$ ...future.elements_ii : [11:05:42.573] | : ..$ ...future.seeds_ii : [11:05:42.573] | : ..$ ...future.globals.maxSize: [11:05:42.573] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.573] | : - attr(*, "resolved")= logi FALSE [11:05:42.573] | : - attr(*, "total_size")= num NA [11:05:42.579] | : Number of futures (= number of chunks): 1 [11:05:42.580] | : Launching 1 futures (chunks) ... [11:05:42.580] | : Chunk #1 of 1 ... [11:05:42.580] | : - seeds: [11:05:42.580] | : - All globals exported: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.583] | : Created future: [11:05:42.583] | : ClusterFuture: [11:05:42.583] | : Label: 'future_lapply-1' [11:05:42.583] | : Expression: [11:05:42.583] | : { [11:05:42.583] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:42.583] | : "# expression in do.call(), because function called uses '...' " [11:05:42.583] | : "# as a global variable " [11:05:42.583] | : do.call(function(...) { [11:05:42.583] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:42.583] | : "# without having an '...' argument. This means '...' is treated" [11:05:42.583] | : "# as a global variable. This may happen when FUN() is an " [11:05:42.583] | : "# anonymous function. " [11:05:42.583] | : "# " [11:05:42.583] | : "# If an anonymous function, we will make sure to restore the " [11:05:42.583] | : "# function environment of FUN() to the calling environment. " [11:05:42.583] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:42.583] | : "# global environment, which is where globals are written. " [11:05:42.583] | : penv <- env <- environment(...future.FUN) [11:05:42.583] | : repeat { [11:05:42.583] | : if (identical(env, globalenv()) || identical(env, [11:05:42.583] | : emptyenv())) [11:05:42.583] | : break [11:05:42.583] | : penv <- env [11:05:42.583] | : env <- parent.env(env) [11:05:42.583] | : } [11:05:42.583] | : if (identical(penv, globalenv())) { [11:05:42.583] | : environment(...future.FUN) <- environment() [11:05:42.583] | : } [11:05:42.583] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:42.583] | : !isNamespace(penv)) { [11:05:42.583] | : parent.env(penv) <- environment() [11:05:42.583] | : } [11:05:42.583] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:42.583] | : { [11:05:42.583] | : "# future.apply:::future_xapply(): preserve future option" [11:05:42.583] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:42.583] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:42.583] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:42.583] | : on.exit(options(oopts), add = TRUE) [11:05:42.583] | : } [11:05:42.583] | : { [11:05:42.583] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:42.583] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:42.583] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:42.583] | : { [11:05:42.583] | : ...future.FUN(...future.X_jj, ...) [11:05:42.583] | : } [11:05:42.583] | : }) [11:05:42.583] | : } [11:05:42.583] | : } [11:05:42.583] | : }, args = future.call.arguments) [11:05:42.583] | : } [11:05:42.583] | : Globals: 7 objects totaling 5.62 KiB (function '...future.FUN' of 683 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, numeric 'b' of 39 bytes, ...) [11:05:42.583] | : Packages: 1 packages ('utils') [11:05:42.583] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:42.583] | : Capture standard output: TRUE [11:05:42.583] | : Capture condition classes: 'condition' (excluding '') [11:05:42.583] | : Immediate condition classes: 'immediateCondition' [11:05:42.583] | : Lazy evaluation: FALSE [11:05:42.583] | : Local evaluation: TRUE [11:05:42.583] | : Early signaling: FALSE [11:05:42.583] | : Actions: [n=1] 'run' [11:05:42.583] | : State: 'running' ("Future is being evaluated") [11:05:42.583] | : Resolved: TRUE [11:05:42.583] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-4 [11:05:42.583] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:42.583] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:42.583] | : Value: [11:05:42.583] | : Conditions captured: [11:05:42.590] | : Chunk #1 of 1 ... DONE [11:05:42.590] | : Launching 1 futures (chunks) ... DONE [11:05:42.590] | : Resolving 1 futures (chunks) ... [11:05:42.591] | : - Number of value chunks collected: 1 [11:05:42.591] | : Resolving 1 futures (chunks) ... DONE [11:05:42.591] | : Reducing values from 1 chunks ... [11:05:42.591] | : - Number of values collected after concatenation: 1 [11:05:42.592] | : - Number of values expected: 1 [11:05:42.592] | : Reducing values from 1 chunks ... DONE [11:05:42.592] | future_lapply() -> future_xapply() ... done [11:05:42.592] future_lapply() ... done [[1]] [1] 2 > message("*** future_lapply() - globals ... DONE") *** future_lapply() - globals ... DONE > message("*** future_lapply() - manual globals ...") *** future_lapply() - manual globals ... > d <- 42 > y <- future_lapply(1:2, FUN = function(x) { + x * d + }, future.globals = structure(FALSE, add = "d")) [11:05:42.593] future_lapply() ... [11:05:42.594] | Globals in FUN(): [n=3] '{', '*', 'd' [11:05:42.594] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:42.594] | future_lapply() -> future_xapply() ... [11:05:42.595] | : Number of chunks: 1 [11:05:42.595] | : getGlobalsAndPackagesXApply() ... [11:05:42.595] | : . future.globals: FALSE [11:05:42.596] | : . globals found/used: [n=3] 'd', 'FUN', 'future.call.arguments' [11:05:42.596] | : . needed namespaces: [n=0] [11:05:42.597] | : . use_args: TRUE [11:05:42.597] | : . Getting '...' globals ... [11:05:42.597] | : . ' '...' content: [n=0] [11:05:42.598] | : . ' List of 1 [11:05:42.598] | : . ' $ ...: list() [11:05:42.598] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.598] | : . ' - attr(*, "where")=List of 1 [11:05:42.598] | : . ' ..$ ...: [11:05:42.598] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.598] | : . ' - attr(*, "resolved")= logi TRUE [11:05:42.598] | : . ' - attr(*, "total_size")= num NA [11:05:42.603] | : . Getting '...' globals ... done [11:05:42.604] | : . Globals to be used in all futures (chunks): [n=4] 'd', '...future.FUN', 'future.call.arguments', '...' [11:05:42.604] | : . List of 4 [11:05:42.604] | : . $ d : num 42 [11:05:42.604] | : . $ ...future.FUN :function (x) [11:05:42.604] | : . $ future.call.arguments: list() [11:05:42.604] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.604] | : . $ ... : list() [11:05:42.604] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.604] | : . - attr(*, "where")=List of 4 [11:05:42.604] | : . ..$ d : [11:05:42.604] | : . ..$ ...future.FUN : [11:05:42.604] | : . ..$ future.call.arguments: [11:05:42.604] | : . ..$ ... : [11:05:42.604] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.604] | : . - attr(*, "resolved")= logi FALSE [11:05:42.604] | : . - attr(*, "total_size")= num 3723 [11:05:42.609] | : . Packages to be attached in all futures: [n=0] [11:05:42.610] | : getGlobalsAndPackagesXApply() ... done [11:05:42.610] | : Globals pass to each chunk: [n=7] 'd', '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.610] | : List of 7 [11:05:42.610] | : $ d : num 42 [11:05:42.610] | : $ ...future.FUN :function (x) [11:05:42.610] | : $ future.call.arguments : list() [11:05:42.610] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.610] | : $ ... : list() [11:05:42.610] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.610] | : $ ...future.elements_ii : NULL [11:05:42.610] | : $ ...future.seeds_ii : NULL [11:05:42.610] | : $ ...future.globals.maxSize: NULL [11:05:42.610] | : - attr(*, "where")=List of 7 [11:05:42.610] | : ..$ d : [11:05:42.610] | : ..$ ...future.FUN : [11:05:42.610] | : ..$ future.call.arguments : [11:05:42.610] | : ..$ ... : [11:05:42.610] | : ..$ ...future.elements_ii : [11:05:42.610] | : ..$ ...future.seeds_ii : [11:05:42.610] | : ..$ ...future.globals.maxSize: [11:05:42.610] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.610] | : - attr(*, "resolved")= logi FALSE [11:05:42.610] | : - attr(*, "total_size")= num 3723 [11:05:42.617] | : Number of futures (= number of chunks): 1 [11:05:42.618] | : Launching 1 futures (chunks) ... [11:05:42.618] | : Chunk #1 of 1 ... [11:05:42.618] | : - seeds: [11:05:42.618] | : - All globals exported: [n=7] 'd', '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.621] | : Created future: [11:05:42.621] | : ClusterFuture: [11:05:42.621] | : Label: 'future_lapply-1' [11:05:42.621] | : Expression: [11:05:42.621] | : { [11:05:42.621] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:42.621] | : "# expression in do.call(), because function called uses '...' " [11:05:42.621] | : "# as a global variable " [11:05:42.621] | : do.call(function(...) { [11:05:42.621] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:42.621] | : "# without having an '...' argument. This means '...' is treated" [11:05:42.621] | : "# as a global variable. This may happen when FUN() is an " [11:05:42.621] | : "# anonymous function. " [11:05:42.621] | : "# " [11:05:42.621] | : "# If an anonymous function, we will make sure to restore the " [11:05:42.621] | : "# function environment of FUN() to the calling environment. " [11:05:42.621] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:42.621] | : "# global environment, which is where globals are written. " [11:05:42.621] | : penv <- env <- environment(...future.FUN) [11:05:42.621] | : repeat { [11:05:42.621] | : if (identical(env, globalenv()) || identical(env, [11:05:42.621] | : emptyenv())) [11:05:42.621] | : break [11:05:42.621] | : penv <- env [11:05:42.621] | : env <- parent.env(env) [11:05:42.621] | : } [11:05:42.621] | : if (identical(penv, globalenv())) { [11:05:42.621] | : environment(...future.FUN) <- environment() [11:05:42.621] | : } [11:05:42.621] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:42.621] | : !isNamespace(penv)) { [11:05:42.621] | : parent.env(penv) <- environment() [11:05:42.621] | : } [11:05:42.621] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:42.621] | : { [11:05:42.621] | : "# future.apply:::future_xapply(): preserve future option" [11:05:42.621] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:42.621] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:42.621] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:42.621] | : on.exit(options(oopts), add = TRUE) [11:05:42.621] | : } [11:05:42.621] | : { [11:05:42.621] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:42.621] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:42.621] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:42.621] | : { [11:05:42.621] | : ...future.FUN(...future.X_jj, ...) [11:05:42.621] | : } [11:05:42.621] | : }) [11:05:42.621] | : } [11:05:42.621] | : } [11:05:42.621] | : }, args = future.call.arguments) [11:05:42.621] | : } [11:05:42.621] | : Globals: 6 objects totaling 3.84 KiB (function '...future.FUN' of 127 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 55 bytes, numeric 'd' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes, ...) [11:05:42.621] | : Packages: [11:05:42.621] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:42.621] | : Capture standard output: TRUE [11:05:42.621] | : Capture condition classes: 'condition' (excluding '') [11:05:42.621] | : Immediate condition classes: 'immediateCondition' [11:05:42.621] | : Lazy evaluation: FALSE [11:05:42.621] | : Local evaluation: TRUE [11:05:42.621] | : Early signaling: FALSE [11:05:42.621] | : Actions: [n=1] 'run' [11:05:42.621] | : State: 'running' ("Future is being evaluated") [11:05:42.621] | : Resolved: TRUE [11:05:42.621] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-5 [11:05:42.621] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:42.621] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:42.621] | : Value: [11:05:42.621] | : Conditions captured: [11:05:42.629] | : Chunk #1 of 1 ... DONE [11:05:42.629] | : Launching 1 futures (chunks) ... DONE [11:05:42.629] | : Resolving 1 futures (chunks) ... [11:05:42.630] | : - Number of value chunks collected: 1 [11:05:42.630] | : Resolving 1 futures (chunks) ... DONE [11:05:42.630] | : Reducing values from 1 chunks ... [11:05:42.630] | : - Number of values collected after concatenation: 2 [11:05:42.630] | : - Number of values expected: 2 [11:05:42.631] | : Reducing values from 1 chunks ... DONE [11:05:42.631] | future_lapply() -> future_xapply() ... done [11:05:42.631] future_lapply() ... done > stopifnot(identical(y, list(42, 84))) > e <- 42 > res <- tryCatch({ + future_lapply(1:2, FUN = function(x) { + 2 * e + }, future.globals = structure(TRUE, ignore = "e")) + }, error = .... [TRUNCATED] [11:05:42.632] future_lapply() ... [11:05:42.633] | Globals in FUN(): [n=3] '{', '*', 'e' [11:05:42.633] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:42.633] | future_lapply() -> future_xapply() ... [11:05:42.633] | : Number of chunks: 1 [11:05:42.634] | : getGlobalsAndPackagesXApply() ... [11:05:42.634] | : . future.globals: TRUE [11:05:42.643] | : . globals found/used: [n=1] 'FUN' [11:05:42.643] | : . needed namespaces: [n=0] [11:05:42.643] | : . use_args: TRUE [11:05:42.644] | : . Getting '...' globals ... [11:05:42.644] | : . ' '...' content: [n=0] [11:05:42.644] | : . ' List of 1 [11:05:42.644] | : . ' $ ...: list() [11:05:42.644] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.644] | : . ' - attr(*, "where")=List of 1 [11:05:42.644] | : . ' ..$ ...: [11:05:42.644] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.644] | : . ' - attr(*, "resolved")= logi TRUE [11:05:42.644] | : . ' - attr(*, "total_size")= num NA [11:05:42.648] | : . Getting '...' globals ... done [11:05:42.649] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:42.649] | : . List of 2 [11:05:42.649] | : . $ ...future.FUN:function (x) [11:05:42.649] | : . $ ... : list() [11:05:42.649] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.649] | : . - attr(*, "where")=List of 2 [11:05:42.649] | : . ..$ ...future.FUN: [11:05:42.649] | : . ..$ ... : [11:05:42.649] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.649] | : . - attr(*, "resolved")= logi FALSE [11:05:42.649] | : . - attr(*, "total_size")= num 3614 [11:05:42.653] | : . Packages to be attached in all futures: [n=0] [11:05:42.653] | : getGlobalsAndPackagesXApply() ... done [11:05:42.653] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.653] | : List of 5 [11:05:42.653] | : $ ...future.FUN :function (x) [11:05:42.653] | : $ ... : list() [11:05:42.653] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.653] | : $ ...future.elements_ii : NULL [11:05:42.653] | : $ ...future.seeds_ii : NULL [11:05:42.653] | : $ ...future.globals.maxSize: NULL [11:05:42.653] | : - attr(*, "where")=List of 5 [11:05:42.653] | : ..$ ...future.FUN : [11:05:42.653] | : ..$ ... : [11:05:42.653] | : ..$ ...future.elements_ii : [11:05:42.653] | : ..$ ...future.seeds_ii : [11:05:42.653] | : ..$ ...future.globals.maxSize: [11:05:42.653] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.653] | : - attr(*, "resolved")= logi FALSE [11:05:42.653] | : - attr(*, "total_size")= num 3614 [11:05:42.659] | : Number of futures (= number of chunks): 1 [11:05:42.659] | : Launching 1 futures (chunks) ... [11:05:42.659] | : Chunk #1 of 1 ... [11:05:42.659] | : - Finding globals in 'X' for chunk #1 ... [11:05:42.660] | : + additional globals found: [n=0] [11:05:42.660] | : + additional namespaces needed: [n=0] [11:05:42.660] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:42.660] | : - seeds: [11:05:42.661] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.663] | : Created future: [11:05:42.663] | : ClusterFuture: [11:05:42.663] | : Label: 'future_lapply-1' [11:05:42.663] | : Expression: [11:05:42.663] | : { [11:05:42.663] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:42.663] | : "# expression in do.call(), because function called uses '...' " [11:05:42.663] | : "# as a global variable " [11:05:42.663] | : do.call(function(...) { [11:05:42.663] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:42.663] | : "# without having an '...' argument. This means '...' is treated" [11:05:42.663] | : "# as a global variable. This may happen when FUN() is an " [11:05:42.663] | : "# anonymous function. " [11:05:42.663] | : "# " [11:05:42.663] | : "# If an anonymous function, we will make sure to restore the " [11:05:42.663] | : "# function environment of FUN() to the calling environment. " [11:05:42.663] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:42.663] | : "# global environment, which is where globals are written. " [11:05:42.663] | : penv <- env <- environment(...future.FUN) [11:05:42.663] | : repeat { [11:05:42.663] | : if (identical(env, globalenv()) || identical(env, [11:05:42.663] | : emptyenv())) [11:05:42.663] | : break [11:05:42.663] | : penv <- env [11:05:42.663] | : env <- parent.env(env) [11:05:42.663] | : } [11:05:42.663] | : if (identical(penv, globalenv())) { [11:05:42.663] | : environment(...future.FUN) <- environment() [11:05:42.663] | : } [11:05:42.663] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:42.663] | : !isNamespace(penv)) { [11:05:42.663] | : parent.env(penv) <- environment() [11:05:42.663] | : } [11:05:42.663] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:42.663] | : { [11:05:42.663] | : "# future.apply:::future_xapply(): preserve future option" [11:05:42.663] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:42.663] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:42.663] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:42.663] | : on.exit(options(oopts), add = TRUE) [11:05:42.663] | : } [11:05:42.663] | : { [11:05:42.663] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:42.663] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:42.663] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:42.663] | : { [11:05:42.663] | : ...future.FUN(...future.X_jj, ...) [11:05:42.663] | : } [11:05:42.663] | : }) [11:05:42.663] | : } [11:05:42.663] | : } [11:05:42.663] | : }, args = future.call.arguments) [11:05:42.663] | : } [11:05:42.663] | : Globals: 5 objects totaling 3.83 KiB (function '...future.FUN' of 139 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 55 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:42.663] | : Packages: [11:05:42.663] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:42.663] | : Capture standard output: TRUE [11:05:42.663] | : Capture condition classes: 'condition' (excluding '') [11:05:42.663] | : Immediate condition classes: 'immediateCondition' [11:05:42.663] | : Lazy evaluation: FALSE [11:05:42.663] | : Local evaluation: TRUE [11:05:42.663] | : Early signaling: FALSE [11:05:42.663] | : Actions: [n=1] 'run' [11:05:42.663] | : State: 'running' ("Future is being evaluated") [11:05:42.663] | : Resolved: TRUE [11:05:42.663] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-6 [11:05:42.663] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:42.663] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:42.663] | : Value: [11:05:42.663] | : Conditions captured: [11:05:42.669] | : Chunk #1 of 1 ... DONE [11:05:42.669] | : Launching 1 futures (chunks) ... DONE [11:05:42.669] | : Resolving 1 futures (chunks) ... [11:05:42.670] | : onError() ... [11:05:42.671] | : . Received Warning: Caught simpleError. Canceling all iterations ... [11:05:42.671] | : . Signaling: [11:05:42.671] | : onError() ... done [11:05:42.672] | future_lapply() -> future_xapply() ... done [11:05:42.672] future_lapply() ... done > stopifnot(inherits(res, "error")) > message("*** future_lapply() - manual globals ... DONE") *** future_lapply() - manual globals ... DONE > message("*** future_lapply() - tricky globals ...") *** future_lapply() - tricky globals ... > my_add <- function(a, b) a + b > call_my_add <- function(a, b) { + do.call(my_add, args = list(a = a, b = b)) + } > call_my_add_caller <- function(a, b, FUN = call_my_add) { + do.call(FUN, args = list(a = a, b = b)) + } > main <- function(x = 1:2, caller = call_my_add_caller, + args = list(FUN = call_my_add)) { + results <- future_lapply(x, FUN = function(i) .... [TRUNCATED] > x <- list(list(1:2)) > z_length <- lapply(x, FUN = do.call, what = length) > fun <- function(...) sum(...) > z_fun <- lapply(x, FUN = do.call, what = fun) > y0 <- NULL > for (strategy in supportedStrategies()) { + plan(strategy) + y <- main(1:3) + if (is.null(y0)) + y0 <- y + stopifnot(identi .... [TRUNCATED] [11:05:42.780] future_lapply() ... [11:05:42.782] | Globals in FUN(): [n=7] '{', 'do.call', 'caller', 'c', 'list', '+', 'args' [11:05:42.782] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:42.782] | future_lapply() -> future_xapply() ... [11:05:42.783] | : Number of chunks: 1 [11:05:42.783] | : getGlobalsAndPackagesXApply() ... [11:05:42.783] | : . future.globals: TRUE [11:05:42.819] | : . globals found/used: [n=5] 'FUN', 'caller', 'args', 'call_my_add', 'my_add' [11:05:42.819] | : . needed namespaces: [n=0] [11:05:42.819] | : . use_args: TRUE [11:05:42.820] | : . Getting '...' globals ... [11:05:42.820] | : . ' '...' content: [n=0] [11:05:42.820] | : . ' List of 1 [11:05:42.820] | : . ' $ ...: list() [11:05:42.820] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.820] | : . ' - attr(*, "where")=List of 1 [11:05:42.820] | : . ' ..$ ...: [11:05:42.820] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.820] | : . ' - attr(*, "resolved")= logi TRUE [11:05:42.820] | : . ' - attr(*, "total_size")= num NA [11:05:42.824] | : . Getting '...' globals ... done [11:05:42.824] | : . Globals to be used in all futures (chunks): [n=6] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...' [11:05:42.824] | : . List of 6 [11:05:42.824] | : . $ ...future.FUN:function (i) [11:05:42.824] | : . $ caller :function (a, b, FUN = call_my_add) [11:05:42.824] | : . $ args :List of 1 [11:05:42.824] | : . ..$ FUN:function (a, b) [11:05:42.824] | : . $ call_my_add :function (a, b) [11:05:42.824] | : . $ my_add :function (a, b) [11:05:42.824] | : . $ ... : list() [11:05:42.824] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.824] | : . - attr(*, "where")=List of 6 [11:05:42.824] | : . ..$ ...future.FUN: [11:05:42.824] | : . ..$ caller : [11:05:42.824] | : . ..$ args : [11:05:42.824] | : . ..$ call_my_add : [11:05:42.824] | : . ..$ my_add : [11:05:42.824] | : . ..$ ... : [11:05:42.824] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.824] | : . - attr(*, "resolved")= logi FALSE [11:05:42.824] | : . - attr(*, "total_size")= num 6429 [11:05:42.831] | : . Packages to be attached in all futures: [n=0] [11:05:42.831] | : getGlobalsAndPackagesXApply() ... done [11:05:42.831] | : Globals pass to each chunk: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.831] | : List of 9 [11:05:42.831] | : $ ...future.FUN :function (i) [11:05:42.831] | : $ caller :function (a, b, FUN = call_my_add) [11:05:42.831] | : $ args :List of 1 [11:05:42.831] | : ..$ FUN:function (a, b) [11:05:42.831] | : $ call_my_add :function (a, b) [11:05:42.831] | : $ my_add :function (a, b) [11:05:42.831] | : $ ... : list() [11:05:42.831] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.831] | : $ ...future.elements_ii : NULL [11:05:42.831] | : $ ...future.seeds_ii : NULL [11:05:42.831] | : $ ...future.globals.maxSize: NULL [11:05:42.831] | : - attr(*, "where")=List of 9 [11:05:42.831] | : ..$ ...future.FUN : [11:05:42.831] | : ..$ caller : [11:05:42.831] | : ..$ args : [11:05:42.831] | : ..$ call_my_add : [11:05:42.831] | : ..$ my_add : [11:05:42.831] | : ..$ ... : [11:05:42.831] | : ..$ ...future.elements_ii : [11:05:42.831] | : ..$ ...future.seeds_ii : [11:05:42.831] | : ..$ ...future.globals.maxSize: [11:05:42.831] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.831] | : - attr(*, "resolved")= logi FALSE [11:05:42.831] | : - attr(*, "total_size")= num 6429 [11:05:42.839] | : Number of futures (= number of chunks): 1 [11:05:42.839] | : Launching 1 futures (chunks) ... [11:05:42.839] | : Chunk #1 of 1 ... [11:05:42.840] | : - Finding globals in 'X' for chunk #1 ... [11:05:42.840] | : + additional globals found: [n=0] [11:05:42.840] | : + additional namespaces needed: [n=0] [11:05:42.841] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:42.841] | : - seeds: [11:05:42.841] | : - All globals exported: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.856] | : Created future: [11:05:42.856] | : SequentialFuture: [11:05:42.856] | : Label: 'future_lapply-1' [11:05:42.856] | : Expression: [11:05:42.856] | : { [11:05:42.856] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:42.856] | : "# expression in do.call(), because function called uses '...' " [11:05:42.856] | : "# as a global variable " [11:05:42.856] | : do.call(function(...) { [11:05:42.856] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:42.856] | : "# without having an '...' argument. This means '...' is treated" [11:05:42.856] | : "# as a global variable. This may happen when FUN() is an " [11:05:42.856] | : "# anonymous function. " [11:05:42.856] | : "# " [11:05:42.856] | : "# If an anonymous function, we will make sure to restore the " [11:05:42.856] | : "# function environment of FUN() to the calling environment. " [11:05:42.856] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:42.856] | : "# global environment, which is where globals are written. " [11:05:42.856] | : penv <- env <- environment(...future.FUN) [11:05:42.856] | : repeat { [11:05:42.856] | : if (identical(env, globalenv()) || identical(env, [11:05:42.856] | : emptyenv())) [11:05:42.856] | : break [11:05:42.856] | : penv <- env [11:05:42.856] | : env <- parent.env(env) [11:05:42.856] | : } [11:05:42.856] | : if (identical(penv, globalenv())) { [11:05:42.856] | : environment(...future.FUN) <- environment() [11:05:42.856] | : } [11:05:42.856] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:42.856] | : !isNamespace(penv)) { [11:05:42.856] | : parent.env(penv) <- environment() [11:05:42.856] | : } [11:05:42.856] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:42.856] | : { [11:05:42.856] | : "# future.apply:::future_xapply(): preserve future option" [11:05:42.856] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:42.856] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:42.856] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:42.856] | : on.exit(options(oopts), add = TRUE) [11:05:42.856] | : } [11:05:42.856] | : { [11:05:42.856] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:42.856] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:42.856] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:42.856] | : { [11:05:42.856] | : ...future.FUN(...future.X_jj, ...) [11:05:42.856] | : } [11:05:42.856] | : }) [11:05:42.856] | : } [11:05:42.856] | : } [11:05:42.856] | : }, args = future.call.arguments) [11:05:42.856] | : } [11:05:42.856] | : Globals: 9 objects totaling 8.84 KiB (function '...future.FUN' of 2.77 KiB, list 'args' of 928 bytes, function 'caller' of 904 bytes, function 'call_my_add' of 876 bytes, function 'my_add' of 114 bytes, ...) [11:05:42.856] | : Packages: [11:05:42.856] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:42.856] | : Capture standard output: TRUE [11:05:42.856] | : Capture condition classes: 'condition' (excluding '') [11:05:42.856] | : Immediate condition classes: 'immediateCondition' [11:05:42.856] | : Lazy evaluation: FALSE [11:05:42.856] | : Local evaluation: TRUE [11:05:42.856] | : Early signaling: FALSE [11:05:42.856] | : Actions: [n=1] 'run' [11:05:42.856] | : State: 'finished' ("Future was resolved successfully") [11:05:42.856] | : Resolved: TRUE [11:05:42.856] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-7 [11:05:42.856] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:42.856] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [11:05:42.856] | : Value: 67 bytes of class 'list' [11:05:42.856] | : Duration: 0.01096511 secs (started 2026-02-20 11:05:42.844095) [11:05:42.856] | : Worker process: d25b72138f884b2acb58249f46f44db3 [11:05:42.859] | : Chunk #1 of 1 ... DONE [11:05:42.859] | : Launching 1 futures (chunks) ... DONE [11:05:42.859] | : Resolving 1 futures (chunks) ... [11:05:42.860] | : - Number of value chunks collected: 1 [11:05:42.860] | : Resolving 1 futures (chunks) ... DONE [11:05:42.860] | : Reducing values from 1 chunks ... [11:05:42.860] | : - Number of values collected after concatenation: 3 [11:05:42.860] | : - Number of values expected: 3 [11:05:42.861] | : Reducing values from 1 chunks ... DONE [11:05:42.861] | future_lapply() -> future_xapply() ... done [11:05:42.861] future_lapply() ... done - future_lapply(x, FUN = do.call, ...) ... [11:05:42.861] future_lapply() ... [11:05:42.863] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [11:05:42.864] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:42.864] | future_lapply() -> future_xapply() ... [11:05:42.864] | : Number of chunks: 1 [11:05:42.864] | : getGlobalsAndPackagesXApply() ... [11:05:42.864] | : . future.globals: TRUE [11:05:42.891] | : . globals found/used: [n=1] 'FUN' [11:05:42.891] | : . needed namespaces: [n=0] [11:05:42.891] | : . use_args: TRUE [11:05:42.891] | : . Getting '...' globals ... [11:05:42.892] | : . ' '...' content: [n=1] 'what' [11:05:42.892] | : . ' List of 1 [11:05:42.892] | : . ' $ ...:List of 1 [11:05:42.892] | : . ' ..$ what:function (x) [11:05:42.892] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.892] | : . ' - attr(*, "where")=List of 1 [11:05:42.892] | : . ' ..$ ...: [11:05:42.892] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.892] | : . ' - attr(*, "resolved")= logi TRUE [11:05:42.892] | : . ' - attr(*, "total_size")= num NA [11:05:42.896] | : . Getting '...' globals ... done [11:05:42.896] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:42.896] | : . List of 2 [11:05:42.896] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [11:05:42.896] | : . $ ... :List of 1 [11:05:42.896] | : . ..$ what:function (x) [11:05:42.896] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.896] | : . - attr(*, "where")=List of 2 [11:05:42.896] | : . ..$ ...future.FUN: [11:05:42.896] | : . ..$ ... : [11:05:42.896] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.896] | : . - attr(*, "resolved")= logi FALSE [11:05:42.896] | : . - attr(*, "total_size")= num 7368 [11:05:42.900] | : . Packages to be attached in all futures: [n=0] [11:05:42.900] | : getGlobalsAndPackagesXApply() ... done [11:05:42.900] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.901] | : List of 5 [11:05:42.901] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [11:05:42.901] | : $ ... :List of 1 [11:05:42.901] | : ..$ what:function (x) [11:05:42.901] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.901] | : $ ...future.elements_ii : NULL [11:05:42.901] | : $ ...future.seeds_ii : NULL [11:05:42.901] | : $ ...future.globals.maxSize: NULL [11:05:42.901] | : - attr(*, "where")=List of 5 [11:05:42.901] | : ..$ ...future.FUN : [11:05:42.901] | : ..$ ... : [11:05:42.901] | : ..$ ...future.elements_ii : [11:05:42.901] | : ..$ ...future.seeds_ii : [11:05:42.901] | : ..$ ...future.globals.maxSize: [11:05:42.901] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.901] | : - attr(*, "resolved")= logi FALSE [11:05:42.901] | : - attr(*, "total_size")= num 7368 [11:05:42.906] | : Number of futures (= number of chunks): 1 [11:05:42.906] | : Launching 1 futures (chunks) ... [11:05:42.906] | : Chunk #1 of 1 ... [11:05:42.907] | : - Finding globals in 'X' for chunk #1 ... [11:05:42.907] | : + additional globals found: [n=0] [11:05:42.907] | : + additional namespaces needed: [n=0] [11:05:42.908] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:42.908] | : - seeds: [11:05:42.908] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.914] | : Created future: [11:05:42.914] | : SequentialFuture: [11:05:42.914] | : Label: 'future_lapply-1' [11:05:42.914] | : Expression: [11:05:42.914] | : { [11:05:42.914] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:42.914] | : "# expression in do.call(), because function called uses '...' " [11:05:42.914] | : "# as a global variable " [11:05:42.914] | : do.call(function(...) { [11:05:42.914] | : "# future.apply:::future_xapply(): preserve future option" [11:05:42.914] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:42.914] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:42.914] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:42.914] | : on.exit(options(oopts), add = TRUE) [11:05:42.914] | : } [11:05:42.914] | : { [11:05:42.914] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:42.914] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:42.914] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:42.914] | : { [11:05:42.914] | : ...future.FUN(...future.X_jj, ...) [11:05:42.914] | : } [11:05:42.914] | : }) [11:05:42.914] | : } [11:05:42.914] | : }, args = future.call.arguments) [11:05:42.914] | : } [11:05:42.914] | : Globals: 5 objects totaling 7.38 KiB (function '...future.FUN' of 1.79 KiB, DotDotDotList 'future.call.arguments' of 152 bytes, list '...future.elements_ii' of 149 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:42.914] | : Packages: [11:05:42.914] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:42.914] | : Capture standard output: TRUE [11:05:42.914] | : Capture condition classes: 'condition' (excluding '') [11:05:42.914] | : Immediate condition classes: 'immediateCondition' [11:05:42.914] | : Lazy evaluation: FALSE [11:05:42.914] | : Local evaluation: TRUE [11:05:42.914] | : Early signaling: FALSE [11:05:42.914] | : Actions: [n=1] 'run' [11:05:42.914] | : State: 'finished' ("Future was resolved successfully") [11:05:42.914] | : Resolved: TRUE [11:05:42.914] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-8 [11:05:42.914] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:42.914] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [11:05:42.914] | : Value: 43 bytes of class 'list' [11:05:42.914] | : Duration: 0.003426075 secs (started 2026-02-20 11:05:42.909587) [11:05:42.914] | : Worker process: d25b72138f884b2acb58249f46f44db3 [11:05:42.918] | : Chunk #1 of 1 ... DONE [11:05:42.918] | : Launching 1 futures (chunks) ... DONE [11:05:42.918] | : Resolving 1 futures (chunks) ... [11:05:42.919] | : - Number of value chunks collected: 1 [11:05:42.919] | : Resolving 1 futures (chunks) ... DONE [11:05:42.919] | : Reducing values from 1 chunks ... [11:05:42.920] | : - Number of values collected after concatenation: 1 [11:05:42.920] | : - Number of values expected: 1 [11:05:42.920] | : Reducing values from 1 chunks ... DONE [11:05:42.920] | future_lapply() -> future_xapply() ... done [11:05:42.920] future_lapply() ... done [11:05:42.920] future_lapply() ... [11:05:42.922] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [11:05:42.922] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:42.923] | future_lapply() -> future_xapply() ... [11:05:42.923] | : Number of chunks: 1 [11:05:42.923] | : getGlobalsAndPackagesXApply() ... [11:05:42.923] | : . future.globals: TRUE [11:05:42.953] | : . globals found/used: [n=1] 'FUN' [11:05:42.953] | : . needed namespaces: [n=0] [11:05:42.954] | : . use_args: TRUE [11:05:42.954] | : . Getting '...' globals ... [11:05:42.954] | : . ' '...' content: [n=1] 'what' [11:05:42.955] | : . ' List of 1 [11:05:42.955] | : . ' $ ...:List of 1 [11:05:42.955] | : . ' ..$ what:function (...) [11:05:42.955] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.955] | : . ' - attr(*, "where")=List of 1 [11:05:42.955] | : . ' ..$ ...: [11:05:42.955] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.955] | : . ' - attr(*, "resolved")= logi TRUE [11:05:42.955] | : . ' - attr(*, "total_size")= num NA [11:05:42.958] | : . Getting '...' globals ... done [11:05:42.958] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:42.959] | : . List of 2 [11:05:42.959] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [11:05:42.959] | : . $ ... :List of 1 [11:05:42.959] | : . ..$ what:function (...) [11:05:42.959] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.959] | : . - attr(*, "where")=List of 2 [11:05:42.959] | : . ..$ ...future.FUN: [11:05:42.959] | : . ..$ ... : [11:05:42.959] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.959] | : . - attr(*, "resolved")= logi FALSE [11:05:42.959] | : . - attr(*, "total_size")= num 7436 [11:05:42.963] | : . Packages to be attached in all futures: [n=0] [11:05:42.963] | : getGlobalsAndPackagesXApply() ... done [11:05:42.963] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.963] | : List of 5 [11:05:42.963] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [11:05:42.963] | : $ ... :List of 1 [11:05:42.963] | : ..$ what:function (...) [11:05:42.963] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.963] | : $ ...future.elements_ii : NULL [11:05:42.963] | : $ ...future.seeds_ii : NULL [11:05:42.963] | : $ ...future.globals.maxSize: NULL [11:05:42.963] | : - attr(*, "where")=List of 5 [11:05:42.963] | : ..$ ...future.FUN : [11:05:42.963] | : ..$ ... : [11:05:42.963] | : ..$ ...future.elements_ii : [11:05:42.963] | : ..$ ...future.seeds_ii : [11:05:42.963] | : ..$ ...future.globals.maxSize: [11:05:42.963] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.963] | : - attr(*, "resolved")= logi FALSE [11:05:42.963] | : - attr(*, "total_size")= num 7436 [11:05:42.969] | : Number of futures (= number of chunks): 1 [11:05:42.969] | : Launching 1 futures (chunks) ... [11:05:42.969] | : Chunk #1 of 1 ... [11:05:42.969] | : - Finding globals in 'X' for chunk #1 ... [11:05:42.970] | : + additional globals found: [n=0] [11:05:42.970] | : + additional namespaces needed: [n=0] [11:05:42.970] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:42.971] | : - seeds: [11:05:42.971] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:42.978] | : Created future: [11:05:42.978] | : SequentialFuture: [11:05:42.978] | : Label: 'future_lapply-1' [11:05:42.978] | : Expression: [11:05:42.978] | : { [11:05:42.978] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:42.978] | : "# expression in do.call(), because function called uses '...' " [11:05:42.978] | : "# as a global variable " [11:05:42.978] | : do.call(function(...) { [11:05:42.978] | : "# future.apply:::future_xapply(): preserve future option" [11:05:42.978] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:42.978] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:42.978] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:42.978] | : on.exit(options(oopts), add = TRUE) [11:05:42.978] | : } [11:05:42.978] | : { [11:05:42.978] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:42.978] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:42.978] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:42.978] | : { [11:05:42.978] | : ...future.FUN(...future.X_jj, ...) [11:05:42.978] | : } [11:05:42.978] | : }) [11:05:42.978] | : } [11:05:42.978] | : }, args = future.call.arguments) [11:05:42.978] | : } [11:05:42.978] | : Globals: 5 objects totaling 7.81 KiB (function '...future.FUN' of 1.79 KiB, DotDotDotList 'future.call.arguments' of 388 bytes, list '...future.elements_ii' of 149 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:42.978] | : Packages: [11:05:42.978] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:42.978] | : Capture standard output: TRUE [11:05:42.978] | : Capture condition classes: 'condition' (excluding '') [11:05:42.978] | : Immediate condition classes: 'immediateCondition' [11:05:42.978] | : Lazy evaluation: FALSE [11:05:42.978] | : Local evaluation: TRUE [11:05:42.978] | : Early signaling: FALSE [11:05:42.978] | : Actions: [n=1] 'run' [11:05:42.978] | : State: 'finished' ("Future was resolved successfully") [11:05:42.978] | : Resolved: TRUE [11:05:42.978] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-9 [11:05:42.978] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:42.978] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [11:05:42.978] | : Value: 43 bytes of class 'list' [11:05:42.978] | : Duration: 0.004401922 secs (started 2026-02-20 11:05:42.972408) [11:05:42.978] | : Worker process: d25b72138f884b2acb58249f46f44db3 [11:05:42.980] | : Chunk #1 of 1 ... DONE [11:05:42.980] | : Launching 1 futures (chunks) ... DONE [11:05:42.980] | : Resolving 1 futures (chunks) ... [11:05:42.981] | : - Number of value chunks collected: 1 [11:05:42.982] | : Resolving 1 futures (chunks) ... DONE [11:05:42.982] | : Reducing values from 1 chunks ... [11:05:42.982] | : - Number of values collected after concatenation: 1 [11:05:42.982] | : - Number of values expected: 1 [11:05:42.982] | : Reducing values from 1 chunks ... DONE [11:05:42.982] | future_lapply() -> future_xapply() ... done [11:05:42.983] future_lapply() ... done - future_lapply(x, ...) - passing arguments via '...' ... [11:05:42.983] future_lapply() ... [11:05:42.984] | Globals in FUN(): [n=1] 'typeof' [11:05:42.986] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:42.987] | future_lapply() -> future_xapply() ... [11:05:42.987] | : Number of chunks: 1 [11:05:42.987] | : getGlobalsAndPackagesXApply() ... [11:05:42.987] | : . future.globals: TRUE [11:05:42.996] | : . globals found/used: [n=1] 'FUN' [11:05:42.997] | : . needed namespaces: [n=0] [11:05:42.997] | : . use_args: TRUE [11:05:42.997] | : . Getting '...' globals ... [11:05:42.998] | : . ' '...' content: [n=1] 'b' [11:05:42.998] | : . ' List of 1 [11:05:42.998] | : . ' $ ...:List of 1 [11:05:42.998] | : . ' ..$ b:'data.frame': 2 obs. of 1 variable: [11:05:42.998] | : . ' .. ..$ a: int [1:2] 1 2 [11:05:42.998] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:42.998] | : . ' - attr(*, "where")=List of 1 [11:05:42.998] | : . ' ..$ ...: [11:05:42.998] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:42.998] | : . ' - attr(*, "resolved")= logi TRUE [11:05:42.998] | : . ' - attr(*, "total_size")= num NA [11:05:43.002] | : . Getting '...' globals ... done [11:05:43.002] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:43.002] | : . List of 2 [11:05:43.002] | : . $ ...future.FUN:function (a, b) [11:05:43.002] | : . $ ... :List of 1 [11:05:43.002] | : . ..$ b:'data.frame': 2 obs. of 1 variable: [11:05:43.002] | : . .. ..$ a: int [1:2] 1 2 [11:05:43.002] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.002] | : . - attr(*, "where")=List of 2 [11:05:43.002] | : . ..$ ...future.FUN: [11:05:43.002] | : . ..$ ... : [11:05:43.002] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.002] | : . - attr(*, "resolved")= logi FALSE [11:05:43.002] | : . - attr(*, "total_size")= num 4505 [11:05:43.007] | : . Packages to be attached in all futures: [n=0] [11:05:43.007] | : getGlobalsAndPackagesXApply() ... done [11:05:43.008] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.008] | : List of 5 [11:05:43.008] | : $ ...future.FUN :function (a, b) [11:05:43.008] | : $ ... :List of 1 [11:05:43.008] | : ..$ b:'data.frame': 2 obs. of 1 variable: [11:05:43.008] | : .. ..$ a: int [1:2] 1 2 [11:05:43.008] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.008] | : $ ...future.elements_ii : NULL [11:05:43.008] | : $ ...future.seeds_ii : NULL [11:05:43.008] | : $ ...future.globals.maxSize: NULL [11:05:43.008] | : - attr(*, "where")=List of 5 [11:05:43.008] | : ..$ ...future.FUN : [11:05:43.008] | : ..$ ... : [11:05:43.008] | : ..$ ...future.elements_ii : [11:05:43.008] | : ..$ ...future.seeds_ii : [11:05:43.008] | : ..$ ...future.globals.maxSize: [11:05:43.008] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.008] | : - attr(*, "resolved")= logi FALSE [11:05:43.008] | : - attr(*, "total_size")= num 4505 [11:05:43.014] | : Number of futures (= number of chunks): 1 [11:05:43.014] | : Launching 1 futures (chunks) ... [11:05:43.014] | : Chunk #1 of 1 ... [11:05:43.014] | : - Finding globals in 'X' for chunk #1 ... [11:05:43.015] | : + additional globals found: [n=0] [11:05:43.015] | : + additional namespaces needed: [n=0] [11:05:43.015] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:43.015] | : - seeds: [11:05:43.015] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.021] | : Created future: [11:05:43.021] | : SequentialFuture: [11:05:43.021] | : Label: 'future_lapply-1' [11:05:43.021] | : Expression: [11:05:43.021] | : { [11:05:43.021] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:43.021] | : "# expression in do.call(), because function called uses '...' " [11:05:43.021] | : "# as a global variable " [11:05:43.021] | : do.call(function(...) { [11:05:43.021] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:43.021] | : "# without having an '...' argument. This means '...' is treated" [11:05:43.021] | : "# as a global variable. This may happen when FUN() is an " [11:05:43.021] | : "# anonymous function. " [11:05:43.021] | : "# " [11:05:43.021] | : "# If an anonymous function, we will make sure to restore the " [11:05:43.021] | : "# function environment of FUN() to the calling environment. " [11:05:43.021] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:43.021] | : "# global environment, which is where globals are written. " [11:05:43.021] | : penv <- env <- environment(...future.FUN) [11:05:43.021] | : repeat { [11:05:43.021] | : if (identical(env, globalenv()) || identical(env, [11:05:43.021] | : emptyenv())) [11:05:43.021] | : break [11:05:43.021] | : penv <- env [11:05:43.021] | : env <- parent.env(env) [11:05:43.021] | : } [11:05:43.021] | : if (identical(penv, globalenv())) { [11:05:43.021] | : environment(...future.FUN) <- environment() [11:05:43.021] | : } [11:05:43.021] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:43.021] | : !isNamespace(penv)) { [11:05:43.021] | : parent.env(penv) <- environment() [11:05:43.021] | : } [11:05:43.021] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:43.021] | : { [11:05:43.021] | : "# future.apply:::future_xapply(): preserve future option" [11:05:43.021] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:43.021] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:43.021] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:43.021] | : on.exit(options(oopts), add = TRUE) [11:05:43.021] | : } [11:05:43.021] | : { [11:05:43.021] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:43.021] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:43.021] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:43.021] | : { [11:05:43.021] | : ...future.FUN(...future.X_jj, ...) [11:05:43.021] | : } [11:05:43.021] | : }) [11:05:43.021] | : } [11:05:43.021] | : } [11:05:43.021] | : }, args = future.call.arguments) [11:05:43.021] | : } [11:05:43.021] | : Globals: 5 objects totaling 4.68 KiB (DotDotDotList 'future.call.arguments' of 357 bytes, function '...future.FUN' of 332 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:43.021] | : Packages: [11:05:43.021] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:43.021] | : Capture standard output: TRUE [11:05:43.021] | : Capture condition classes: 'condition' (excluding '') [11:05:43.021] | : Immediate condition classes: 'immediateCondition' [11:05:43.021] | : Lazy evaluation: FALSE [11:05:43.021] | : Local evaluation: TRUE [11:05:43.021] | : Early signaling: FALSE [11:05:43.021] | : Actions: [n=1] 'run' [11:05:43.021] | : State: 'finished' ("Future was resolved successfully") [11:05:43.021] | : Resolved: TRUE [11:05:43.021] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-10 [11:05:43.021] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:43.021] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [11:05:43.021] | : Value: 51 bytes of class 'list' [11:05:43.021] | : Duration: 0.003226042 secs (started 2026-02-20 11:05:43.017155) [11:05:43.021] | : Worker process: d25b72138f884b2acb58249f46f44db3 [11:05:43.023] | : Chunk #1 of 1 ... DONE [11:05:43.024] | : Launching 1 futures (chunks) ... DONE [11:05:43.024] | : Resolving 1 futures (chunks) ... [11:05:43.024] | : - Number of value chunks collected: 1 [11:05:43.025] | : Resolving 1 futures (chunks) ... DONE [11:05:43.025] | : Reducing values from 1 chunks ... [11:05:43.025] | : - Number of values collected after concatenation: 1 [11:05:43.025] | : - Number of values expected: 1 [11:05:43.025] | : Reducing values from 1 chunks ... DONE [11:05:43.025] | future_lapply() -> future_xapply() ... done [11:05:43.026] future_lapply() ... done [11:05:43.026] future_lapply() ... [11:05:43.026] | Globals in FUN(): [n=1] 'typeof' [11:05:43.027] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:43.027] | future_lapply() -> future_xapply() ... [11:05:43.027] | : Number of chunks: 1 [11:05:43.027] | : getGlobalsAndPackagesXApply() ... [11:05:43.027] | : . future.globals: TRUE [11:05:43.037] | : . globals found/used: [n=1] 'FUN' [11:05:43.037] | : . needed namespaces: [n=0] [11:05:43.037] | : . use_args: TRUE [11:05:43.037] | : . Getting '...' globals ... [11:05:43.038] | : . ' '...' content: [n=1] 'b' [11:05:43.038] | : . ' List of 1 [11:05:43.038] | : . ' $ ...:List of 1 [11:05:43.038] | : . ' ..$ b: [11:05:43.038] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.038] | : . ' - attr(*, "where")=List of 1 [11:05:43.038] | : . ' ..$ ...: [11:05:43.038] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.038] | : . ' - attr(*, "resolved")= logi TRUE [11:05:43.038] | : . ' - attr(*, "total_size")= num NA [11:05:43.041] | : . Getting '...' globals ... done [11:05:43.042] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:43.042] | : . List of 2 [11:05:43.042] | : . $ ...future.FUN:function (a, b) [11:05:43.042] | : . $ ... :List of 1 [11:05:43.042] | : . ..$ b: [11:05:43.042] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.042] | : . - attr(*, "where")=List of 2 [11:05:43.042] | : . ..$ ...future.FUN: [11:05:43.042] | : . ..$ ... : [11:05:43.042] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.042] | : . - attr(*, "resolved")= logi FALSE [11:05:43.042] | : . - attr(*, "total_size")= num 4260 [11:05:43.046] | : . Packages to be attached in all futures: [n=0] [11:05:43.046] | : getGlobalsAndPackagesXApply() ... done [11:05:43.046] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.047] | : List of 5 [11:05:43.047] | : $ ...future.FUN :function (a, b) [11:05:43.047] | : $ ... :List of 1 [11:05:43.047] | : ..$ b: [11:05:43.047] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.047] | : $ ...future.elements_ii : NULL [11:05:43.047] | : $ ...future.seeds_ii : NULL [11:05:43.047] | : $ ...future.globals.maxSize: NULL [11:05:43.047] | : - attr(*, "where")=List of 5 [11:05:43.047] | : ..$ ...future.FUN : [11:05:43.047] | : ..$ ... : [11:05:43.047] | : ..$ ...future.elements_ii : [11:05:43.047] | : ..$ ...future.seeds_ii : [11:05:43.047] | : ..$ ...future.globals.maxSize: [11:05:43.047] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.047] | : - attr(*, "resolved")= logi FALSE [11:05:43.047] | : - attr(*, "total_size")= num 4260 [11:05:43.052] | : Number of futures (= number of chunks): 1 [11:05:43.052] | : Launching 1 futures (chunks) ... [11:05:43.052] | : Chunk #1 of 1 ... [11:05:43.053] | : - Finding globals in 'X' for chunk #1 ... [11:05:43.053] | : + additional globals found: [n=0] [11:05:43.053] | : + additional namespaces needed: [n=0] [11:05:43.053] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:43.054] | : - seeds: [11:05:43.054] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.061] | : Created future: [11:05:43.062] | : SequentialFuture: [11:05:43.062] | : Label: 'future_lapply-1' [11:05:43.062] | : Expression: [11:05:43.062] | : { [11:05:43.062] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:43.062] | : "# expression in do.call(), because function called uses '...' " [11:05:43.062] | : "# as a global variable " [11:05:43.062] | : do.call(function(...) { [11:05:43.062] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:43.062] | : "# without having an '...' argument. This means '...' is treated" [11:05:43.062] | : "# as a global variable. This may happen when FUN() is an " [11:05:43.062] | : "# anonymous function. " [11:05:43.062] | : "# " [11:05:43.062] | : "# If an anonymous function, we will make sure to restore the " [11:05:43.062] | : "# function environment of FUN() to the calling environment. " [11:05:43.062] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:43.062] | : "# global environment, which is where globals are written. " [11:05:43.062] | : penv <- env <- environment(...future.FUN) [11:05:43.062] | : repeat { [11:05:43.062] | : if (identical(env, globalenv()) || identical(env, [11:05:43.062] | : emptyenv())) [11:05:43.062] | : break [11:05:43.062] | : penv <- env [11:05:43.062] | : env <- parent.env(env) [11:05:43.062] | : } [11:05:43.062] | : if (identical(penv, globalenv())) { [11:05:43.062] | : environment(...future.FUN) <- environment() [11:05:43.062] | : } [11:05:43.062] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:43.062] | : !isNamespace(penv)) { [11:05:43.062] | : parent.env(penv) <- environment() [11:05:43.062] | : } [11:05:43.062] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:43.062] | : { [11:05:43.062] | : "# future.apply:::future_xapply(): preserve future option" [11:05:43.062] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:43.062] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:43.062] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:43.062] | : on.exit(options(oopts), add = TRUE) [11:05:43.062] | : } [11:05:43.062] | : { [11:05:43.062] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:43.062] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:43.062] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:43.062] | : { [11:05:43.062] | : ...future.FUN(...future.X_jj, ...) [11:05:43.062] | : } [11:05:43.062] | : }) [11:05:43.062] | : } [11:05:43.062] | : } [11:05:43.062] | : }, args = future.call.arguments) [11:05:43.062] | : } [11:05:43.062] | : Globals: 5 objects totaling 4.44 KiB (function '...future.FUN' of 332 bytes, DotDotDotList 'future.call.arguments' of 279 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:43.062] | : Packages: [11:05:43.062] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:43.062] | : Capture standard output: TRUE [11:05:43.062] | : Capture condition classes: 'condition' (excluding '') [11:05:43.062] | : Immediate condition classes: 'immediateCondition' [11:05:43.062] | : Lazy evaluation: FALSE [11:05:43.062] | : Local evaluation: TRUE [11:05:43.062] | : Early signaling: FALSE [11:05:43.062] | : Actions: [n=1] 'run' [11:05:43.062] | : State: 'finished' ("Future was resolved successfully") [11:05:43.062] | : Resolved: TRUE [11:05:43.062] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-11 [11:05:43.062] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:43.062] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [11:05:43.062] | : Value: 58 bytes of class 'list' [11:05:43.062] | : Duration: 0.005292892 secs (started 2026-02-20 11:05:43.055449) [11:05:43.062] | : Worker process: d25b72138f884b2acb58249f46f44db3 [11:05:43.064] | : Chunk #1 of 1 ... DONE [11:05:43.064] | : Launching 1 futures (chunks) ... DONE [11:05:43.064] | : Resolving 1 futures (chunks) ... [11:05:43.065] | : - Number of value chunks collected: 1 [11:05:43.065] | : Resolving 1 futures (chunks) ... DONE [11:05:43.065] | : Reducing values from 1 chunks ... [11:05:43.065] | : - Number of values collected after concatenation: 1 [11:05:43.065] | : - Number of values expected: 1 [11:05:43.065] | : Reducing values from 1 chunks ... DONE [11:05:43.066] | future_lapply() -> future_xapply() ... done [11:05:43.066] future_lapply() ... done [11:05:43.066] future_lapply() ... [11:05:43.067] | Globals in FUN(): [n=1] 'typeof' [11:05:43.067] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:43.067] | future_lapply() -> future_xapply() ... [11:05:43.067] | : Number of chunks: 1 [11:05:43.068] | : getGlobalsAndPackagesXApply() ... [11:05:43.068] | : . future.globals: TRUE [11:05:43.078] | : . globals found/used: [n=1] 'FUN' [11:05:43.078] | : . needed namespaces: [n=0] [11:05:43.078] | : . use_args: TRUE [11:05:43.078] | : . Getting '...' globals ... [11:05:43.079] | : . ' '...' content: [n=1] 'b' [11:05:43.079] | : . ' List of 1 [11:05:43.079] | : . ' $ ...:List of 1 [11:05:43.079] | : . ' ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [11:05:43.079] | : . ' .. .. ..@ slots :List of 4 [11:05:43.079] | : . ' .. .. .. ..$ .Data : chr "function" [11:05:43.079] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. ..$ target : chr "signature" [11:05:43.079] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. ..$ defined: chr "signature" [11:05:43.079] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. ..$ generic: chr "character" [11:05:43.079] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. ..@ contains :List of 4 [11:05:43.079] | : . ' .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "function" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr(0) [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 1 [11:05:43.079] | : . ' .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr "function" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 2 [11:05:43.079] | : . ' .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr "function" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 2 [11:05:43.079] | : . ' .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "optionalMethod" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr "function" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 3 [11:05:43.079] | : . ' .. .. ..@ virtual : logi FALSE [11:05:43.079] | : . ' .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [11:05:43.079] | : . ' list() [11:05:43.079] | : . ' .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [11:05:43.079] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:43.079] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [11:05:43.079] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [11:05:43.079] | : . ' .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [11:05:43.079] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:43.079] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [11:05:43.079] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [11:05:43.079] | : . ' .. .. .. .. ..$ generic: chr(0) [11:05:43.079] | : . ' .. .. ..@ validity : NULL [11:05:43.079] | : . ' .. .. ..@ access : list() [11:05:43.079] | : . ' .. .. ..@ className : chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. ..@ subclasses:List of 7 [11:05:43.079] | : . ' .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr(0) [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 1 [11:05:43.079] | : . ' .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr(0) [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 1 [11:05:43.079] | : . ' .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr(0) [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 1 [11:05:43.079] | : . ' .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr(0) [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 1 [11:05:43.079] | : . ' .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 2 [11:05:43.079] | : . ' .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr "MethodWithNext" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 2 [11:05:43.079] | : . ' .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.079] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.079] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:43.079] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.079] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.079] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:43.079] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.079] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.079] | : . ' .. .. .. .. .. ..@ distance : num 2 [11:05:43.079] | : . ' .. .. ..@ versionKey: [11:05:43.079] | : . ' .. .. ..@ sealed : logi TRUE [11:05:43.079] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.079] | : . ' - attr(*, "where")=List of 1 [11:05:43.079] | : . ' ..$ ...: [11:05:43.079] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.079] | : . ' - attr(*, "resolved")= logi TRUE [11:05:43.079] | : . ' - attr(*, "total_size")= num NA [11:05:43.149] | : . Getting '...' globals ... done [11:05:43.150] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:43.150] | : . List of 2 [11:05:43.150] | : . $ ...future.FUN:function (a, b) [11:05:43.150] | : . $ ... :List of 1 [11:05:43.150] | : . ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [11:05:43.150] | : . .. .. ..@ slots :List of 4 [11:05:43.150] | : . .. .. .. ..$ .Data : chr "function" [11:05:43.150] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. ..$ target : chr "signature" [11:05:43.150] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. ..$ defined: chr "signature" [11:05:43.150] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. ..$ generic: chr "character" [11:05:43.150] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. ..@ contains :List of 4 [11:05:43.150] | : . .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "function" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr(0) [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 1 [11:05:43.150] | : . .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr "function" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 2 [11:05:43.150] | : . .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr "function" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 2 [11:05:43.150] | : . .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "optionalMethod" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr "function" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 3 [11:05:43.150] | : . .. .. ..@ virtual : logi FALSE [11:05:43.150] | : . .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [11:05:43.150] | : . list() [11:05:43.150] | : . .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [11:05:43.150] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:43.150] | : . .. .. .. .. .. .. ..@ names : chr(0) [11:05:43.150] | : . .. .. .. .. .. .. ..@ package: chr(0) [11:05:43.150] | : . .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [11:05:43.150] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:43.150] | : . .. .. .. .. .. .. ..@ names : chr(0) [11:05:43.150] | : . .. .. .. .. .. .. ..@ package: chr(0) [11:05:43.150] | : . .. .. .. .. ..$ generic: chr(0) [11:05:43.150] | : . .. .. ..@ validity : NULL [11:05:43.150] | : . .. .. ..@ access : list() [11:05:43.150] | : . .. .. ..@ className : chr "MethodDefinition" [11:05:43.150] | : . .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. ..@ subclasses:List of 7 [11:05:43.150] | : . .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr(0) [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 1 [11:05:43.150] | : . .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr(0) [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 1 [11:05:43.150] | : . .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr(0) [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 1 [11:05:43.150] | : . .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr(0) [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 1 [11:05:43.150] | : . .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 2 [11:05:43.150] | : . .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr "MethodWithNext" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 2 [11:05:43.150] | : . .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.150] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.150] | : . .. .. .. .. .. ..@ test :function (object) [11:05:43.150] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.150] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.150] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:43.150] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.150] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.150] | : . .. .. .. .. .. ..@ distance : num 2 [11:05:43.150] | : . .. .. ..@ versionKey: [11:05:43.150] | : . .. .. ..@ sealed : logi TRUE [11:05:43.150] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.150] | : . - attr(*, "where")=List of 2 [11:05:43.150] | : . ..$ ...future.FUN: [11:05:43.150] | : . ..$ ... : [11:05:43.150] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.150] | : . - attr(*, "resolved")= logi FALSE [11:05:43.150] | : . - attr(*, "total_size")= num 106127 [11:05:43.219] | : . Packages to be attached in all futures: [n=0] [11:05:43.219] | : getGlobalsAndPackagesXApply() ... done [11:05:43.220] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.220] | : List of 5 [11:05:43.220] | : $ ...future.FUN :function (a, b) [11:05:43.220] | : $ ... :List of 1 [11:05:43.220] | : ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [11:05:43.220] | : .. .. ..@ slots :List of 4 [11:05:43.220] | : .. .. .. ..$ .Data : chr "function" [11:05:43.220] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. ..$ target : chr "signature" [11:05:43.220] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. ..$ defined: chr "signature" [11:05:43.220] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. ..$ generic: chr "character" [11:05:43.220] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. ..@ contains :List of 4 [11:05:43.220] | : .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "function" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr(0) [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 1 [11:05:43.220] | : .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr "function" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 2 [11:05:43.220] | : .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr "function" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 2 [11:05:43.220] | : .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "optionalMethod" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr "function" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 3 [11:05:43.220] | : .. .. ..@ virtual : logi FALSE [11:05:43.220] | : .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [11:05:43.220] | : list() [11:05:43.220] | : .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [11:05:43.220] | : .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:43.220] | : .. .. .. .. .. .. ..@ names : chr(0) [11:05:43.220] | : .. .. .. .. .. .. ..@ package: chr(0) [11:05:43.220] | : .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [11:05:43.220] | : .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:43.220] | : .. .. .. .. .. .. ..@ names : chr(0) [11:05:43.220] | : .. .. .. .. .. .. ..@ package: chr(0) [11:05:43.220] | : .. .. .. .. ..$ generic: chr(0) [11:05:43.220] | : .. .. ..@ validity : NULL [11:05:43.220] | : .. .. ..@ access : list() [11:05:43.220] | : .. .. ..@ className : chr "MethodDefinition" [11:05:43.220] | : .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. ..@ subclasses:List of 7 [11:05:43.220] | : .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr(0) [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 1 [11:05:43.220] | : .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr(0) [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 1 [11:05:43.220] | : .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr(0) [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 1 [11:05:43.220] | : .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr(0) [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 1 [11:05:43.220] | : .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 2 [11:05:43.220] | : .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr "MethodWithNext" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 2 [11:05:43.220] | : .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:43.220] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:43.220] | : .. .. .. .. .. ..@ test :function (object) [11:05:43.220] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:43.220] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:43.220] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:43.220] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:43.220] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:43.220] | : .. .. .. .. .. ..@ distance : num 2 [11:05:43.220] | : .. .. ..@ versionKey: [11:05:43.220] | : .. .. ..@ sealed : logi TRUE [11:05:43.220] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.220] | : $ ...future.elements_ii : NULL [11:05:43.220] | : $ ...future.seeds_ii : NULL [11:05:43.220] | : $ ...future.globals.maxSize: NULL [11:05:43.220] | : - attr(*, "where")=List of 5 [11:05:43.220] | : ..$ ...future.FUN : [11:05:43.220] | : ..$ ... : [11:05:43.220] | : ..$ ...future.elements_ii : [11:05:43.220] | : ..$ ...future.seeds_ii : [11:05:43.220] | : ..$ ...future.globals.maxSize: [11:05:43.220] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.220] | : - attr(*, "resolved")= logi FALSE [11:05:43.220] | : - attr(*, "total_size")= num 106127 [11:05:43.289] | : Number of futures (= number of chunks): 1 [11:05:43.290] | : Launching 1 futures (chunks) ... [11:05:43.290] | : Chunk #1 of 1 ... [11:05:43.290] | : - Finding globals in 'X' for chunk #1 ... [11:05:43.291] | : + additional globals found: [n=0] [11:05:43.291] | : + additional namespaces needed: [n=0] [11:05:43.291] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:43.291] | : - seeds: [11:05:43.291] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.297] | : Created future: [11:05:43.297] | : SequentialFuture: [11:05:43.297] | : Label: 'future_lapply-1' [11:05:43.297] | : Expression: [11:05:43.297] | : { [11:05:43.297] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:43.297] | : "# expression in do.call(), because function called uses '...' " [11:05:43.297] | : "# as a global variable " [11:05:43.297] | : do.call(function(...) { [11:05:43.297] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:43.297] | : "# without having an '...' argument. This means '...' is treated" [11:05:43.297] | : "# as a global variable. This may happen when FUN() is an " [11:05:43.297] | : "# anonymous function. " [11:05:43.297] | : "# " [11:05:43.297] | : "# If an anonymous function, we will make sure to restore the " [11:05:43.297] | : "# function environment of FUN() to the calling environment. " [11:05:43.297] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:43.297] | : "# global environment, which is where globals are written. " [11:05:43.297] | : penv <- env <- environment(...future.FUN) [11:05:43.297] | : repeat { [11:05:43.297] | : if (identical(env, globalenv()) || identical(env, [11:05:43.297] | : emptyenv())) [11:05:43.297] | : break [11:05:43.297] | : penv <- env [11:05:43.297] | : env <- parent.env(env) [11:05:43.297] | : } [11:05:43.297] | : if (identical(penv, globalenv())) { [11:05:43.297] | : environment(...future.FUN) <- environment() [11:05:43.297] | : } [11:05:43.297] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:43.297] | : !isNamespace(penv)) { [11:05:43.297] | : parent.env(penv) <- environment() [11:05:43.297] | : } [11:05:43.297] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:43.297] | : { [11:05:43.297] | : "# future.apply:::future_xapply(): preserve future option" [11:05:43.297] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:43.297] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:43.297] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:43.297] | : on.exit(options(oopts), add = TRUE) [11:05:43.297] | : } [11:05:43.297] | : { [11:05:43.297] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:43.297] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:43.297] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:43.297] | : { [11:05:43.297] | : ...future.FUN(...future.X_jj, ...) [11:05:43.297] | : } [11:05:43.297] | : }) [11:05:43.297] | : } [11:05:43.297] | : } [11:05:43.297] | : }, args = future.call.arguments) [11:05:43.297] | : } [11:05:43.297] | : Globals: 5 objects totaling 103.92 KiB (DotDotDotList 'future.call.arguments' of 50.30 KiB, function '...future.FUN' of 332 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:43.297] | : Packages: [11:05:43.297] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:43.297] | : Capture standard output: TRUE [11:05:43.297] | : Capture condition classes: 'condition' (excluding '') [11:05:43.297] | : Immediate condition classes: 'immediateCondition' [11:05:43.297] | : Lazy evaluation: FALSE [11:05:43.297] | : Local evaluation: TRUE [11:05:43.297] | : Early signaling: FALSE [11:05:43.297] | : Actions: [n=1] 'run' [11:05:43.297] | : State: 'finished' ("Future was resolved successfully") [11:05:43.297] | : Resolved: TRUE [11:05:43.297] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-12 [11:05:43.297] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:43.297] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [11:05:43.297] | : Value: 49 bytes of class 'list' [11:05:43.297] | : Duration: 0.003147125 secs (started 2026-02-20 11:05:43.293134) [11:05:43.297] | : Worker process: d25b72138f884b2acb58249f46f44db3 [11:05:43.300] | : Chunk #1 of 1 ... DONE [11:05:43.300] | : Launching 1 futures (chunks) ... DONE [11:05:43.300] | : Resolving 1 futures (chunks) ... [11:05:43.301] | : - Number of value chunks collected: 1 [11:05:43.301] | : Resolving 1 futures (chunks) ... DONE [11:05:43.301] | : Reducing values from 1 chunks ... [11:05:43.301] | : - Number of values collected after concatenation: 1 [11:05:43.302] | : - Number of values expected: 1 [11:05:43.302] | : Reducing values from 1 chunks ... DONE [11:05:43.302] | future_lapply() -> future_xapply() ... done [11:05:43.302] future_lapply() ... done - future_lapply(X, ...) - 'X' containing globals ... List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 [11:05:43.304] future_lapply() ... [11:05:43.305] | Globals in FUN(): [n=0] [11:05:43.305] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:43.305] | future_lapply() -> future_xapply() ... [11:05:43.306] | : Number of chunks: 1 [11:05:43.306] | : getGlobalsAndPackagesXApply() ... [11:05:43.306] | : . future.globals: TRUE [11:05:43.313] | : . globals found/used: [n=1] 'FUN' [11:05:43.313] | : . needed namespaces: [n=0] [11:05:43.314] | : . use_args: TRUE [11:05:43.314] | : . Getting '...' globals ... [11:05:43.317] | : . ' '...' content: [n=0] [11:05:43.317] | : . ' List of 1 [11:05:43.317] | : . ' $ ...: list() [11:05:43.317] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.317] | : . ' - attr(*, "where")=List of 1 [11:05:43.317] | : . ' ..$ ...: [11:05:43.317] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.317] | : . ' - attr(*, "resolved")= logi TRUE [11:05:43.317] | : . ' - attr(*, "total_size")= num NA [11:05:43.321] | : . Getting '...' globals ... done [11:05:43.321] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:43.321] | : . List of 2 [11:05:43.321] | : . $ ...future.FUN:function (f) [11:05:43.321] | : . $ ... : list() [11:05:43.321] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.321] | : . - attr(*, "where")=List of 2 [11:05:43.321] | : . ..$ ...future.FUN: [11:05:43.321] | : . ..$ ... : [11:05:43.321] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.321] | : . - attr(*, "resolved")= logi FALSE [11:05:43.321] | : . - attr(*, "total_size")= num 5165 [11:05:43.325] | : . Packages to be attached in all futures: [n=0] [11:05:43.325] | : getGlobalsAndPackagesXApply() ... done [11:05:43.325] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.325] | : List of 5 [11:05:43.325] | : $ ...future.FUN :function (f) [11:05:43.325] | : $ ... : list() [11:05:43.325] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.325] | : $ ...future.elements_ii : NULL [11:05:43.325] | : $ ...future.seeds_ii : NULL [11:05:43.325] | : $ ...future.globals.maxSize: NULL [11:05:43.325] | : - attr(*, "where")=List of 5 [11:05:43.325] | : ..$ ...future.FUN : [11:05:43.325] | : ..$ ... : [11:05:43.325] | : ..$ ...future.elements_ii : [11:05:43.325] | : ..$ ...future.seeds_ii : [11:05:43.325] | : ..$ ...future.globals.maxSize: [11:05:43.325] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.325] | : - attr(*, "resolved")= logi FALSE [11:05:43.325] | : - attr(*, "total_size")= num 5165 [11:05:43.331] | : Number of futures (= number of chunks): 1 [11:05:43.331] | : Launching 1 futures (chunks) ... [11:05:43.331] | : Chunk #1 of 1 ... [11:05:43.331] | : - Finding globals in 'X' for chunk #1 ... [11:05:43.363] | : + additional globals found: [n=2] 'a', 'b' [11:05:43.363] | : + additional namespaces needed: [n=1] 'tools' [11:05:43.363] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:43.363] | : - seeds: [11:05:43.364] | : - All globals exported: [n=7] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize', 'a', 'b' [11:05:43.370] | : Created future: [11:05:43.370] | : SequentialFuture: [11:05:43.370] | : Label: 'future_lapply-1' [11:05:43.370] | : Expression: [11:05:43.370] | : { [11:05:43.370] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:43.370] | : "# expression in do.call(), because function called uses '...' " [11:05:43.370] | : "# as a global variable " [11:05:43.370] | : do.call(function(...) { [11:05:43.370] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:43.370] | : "# without having an '...' argument. This means '...' is treated" [11:05:43.370] | : "# as a global variable. This may happen when FUN() is an " [11:05:43.370] | : "# anonymous function. " [11:05:43.370] | : "# " [11:05:43.370] | : "# If an anonymous function, we will make sure to restore the " [11:05:43.370] | : "# function environment of FUN() to the calling environment. " [11:05:43.370] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:43.370] | : "# global environment, which is where globals are written. " [11:05:43.370] | : penv <- env <- environment(...future.FUN) [11:05:43.370] | : repeat { [11:05:43.370] | : if (identical(env, globalenv()) || identical(env, [11:05:43.370] | : emptyenv())) [11:05:43.370] | : break [11:05:43.370] | : penv <- env [11:05:43.370] | : env <- parent.env(env) [11:05:43.370] | : } [11:05:43.370] | : if (identical(penv, globalenv())) { [11:05:43.370] | : environment(...future.FUN) <- environment() [11:05:43.370] | : } [11:05:43.370] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:43.370] | : !isNamespace(penv)) { [11:05:43.370] | : parent.env(penv) <- environment() [11:05:43.370] | : } [11:05:43.370] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:43.370] | : { [11:05:43.370] | : "# future.apply:::future_xapply(): preserve future option" [11:05:43.370] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:43.370] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:43.370] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:43.370] | : on.exit(options(oopts), add = TRUE) [11:05:43.370] | : } [11:05:43.370] | : { [11:05:43.370] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:43.370] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:43.370] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:43.370] | : { [11:05:43.370] | : ...future.FUN(...future.X_jj, ...) [11:05:43.370] | : } [11:05:43.370] | : }) [11:05:43.370] | : } [11:05:43.370] | : } [11:05:43.370] | : }, args = future.call.arguments) [11:05:43.370] | : } [11:05:43.370] | : Globals: 7 objects totaling 6.68 KiB (list '...future.elements_ii' of 1.40 KiB, function '...future.FUN' of 225 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric 'a' of 39 bytes, numeric 'b' of 39 bytes, ...) [11:05:43.370] | : Packages: 1 packages ('tools') [11:05:43.370] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:43.370] | : Capture standard output: TRUE [11:05:43.370] | : Capture condition classes: 'condition' (excluding '') [11:05:43.370] | : Immediate condition classes: 'immediateCondition' [11:05:43.370] | : Lazy evaluation: FALSE [11:05:43.370] | : Local evaluation: TRUE [11:05:43.370] | : Early signaling: FALSE [11:05:43.370] | : Actions: [n=1] 'run' [11:05:43.370] | : State: 'finished' ("Future was resolved successfully") [11:05:43.370] | : Resolved: TRUE [11:05:43.370] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-13 [11:05:43.370] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:43.370] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [11:05:43.370] | : Value: 91 bytes of class 'list' [11:05:43.370] | : Duration: 0.003660917 secs (started 2026-02-20 11:05:43.365324) [11:05:43.370] | : Worker process: d25b72138f884b2acb58249f46f44db3 [11:05:43.372] | : Chunk #1 of 1 ... DONE [11:05:43.372] | : Launching 1 futures (chunks) ... DONE [11:05:43.372] | : Resolving 1 futures (chunks) ... [11:05:43.373] | : - Number of value chunks collected: 1 [11:05:43.373] | : Resolving 1 futures (chunks) ... DONE [11:05:43.373] | : Reducing values from 1 chunks ... [11:05:43.374] | : - Number of values collected after concatenation: 4 [11:05:43.374] | : - Number of values expected: 4 [11:05:43.374] | : Reducing values from 1 chunks ... DONE [11:05:43.374] | future_lapply() -> future_xapply() ... done [11:05:43.374] future_lapply() ... done List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 - future_lapply(X, ...) - '{ a <- a + 1; a }' ... [11:05:43.376] future_lapply() ... [11:05:43.378] | Globals in FUN(): [n=4] '{', '<-', 'a', '+' [11:05:43.378] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:43.378] | future_lapply() -> future_xapply() ... [11:05:43.378] | : Number of chunks: 1 [11:05:43.378] | : getGlobalsAndPackagesXApply() ... [11:05:43.379] | : . future.globals: TRUE [11:05:43.392] | : . globals found/used: [n=2] 'FUN', 'a' [11:05:43.392] | : . needed namespaces: [n=0] [11:05:43.392] | : . use_args: TRUE [11:05:43.393] | : . Getting '...' globals ... [11:05:43.393] | : . ' '...' content: [n=0] [11:05:43.393] | : . ' List of 1 [11:05:43.393] | : . ' $ ...: list() [11:05:43.393] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.393] | : . ' - attr(*, "where")=List of 1 [11:05:43.393] | : . ' ..$ ...: [11:05:43.393] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.393] | : . ' - attr(*, "resolved")= logi TRUE [11:05:43.393] | : . ' - attr(*, "total_size")= num NA [11:05:43.396] | : . Getting '...' globals ... done [11:05:43.397] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [11:05:43.397] | : . List of 3 [11:05:43.397] | : . $ ...future.FUN:function (ii) [11:05:43.397] | : . $ a : num 1 [11:05:43.397] | : . $ ... : list() [11:05:43.397] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.397] | : . - attr(*, "where")=List of 3 [11:05:43.397] | : . ..$ ...future.FUN: [11:05:43.397] | : . ..$ a : [11:05:43.397] | : . ..$ ... : [11:05:43.397] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.397] | : . - attr(*, "resolved")= logi FALSE [11:05:43.397] | : . - attr(*, "total_size")= num 4124 [11:05:43.401] | : . Packages to be attached in all futures: [n=0] [11:05:43.401] | : getGlobalsAndPackagesXApply() ... done [11:05:43.401] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.401] | : List of 6 [11:05:43.401] | : $ ...future.FUN :function (ii) [11:05:43.401] | : $ a : num 1 [11:05:43.401] | : $ ... : list() [11:05:43.401] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.401] | : $ ...future.elements_ii : NULL [11:05:43.401] | : $ ...future.seeds_ii : NULL [11:05:43.401] | : $ ...future.globals.maxSize: NULL [11:05:43.401] | : - attr(*, "where")=List of 6 [11:05:43.401] | : ..$ ...future.FUN : [11:05:43.401] | : ..$ a : [11:05:43.401] | : ..$ ... : [11:05:43.401] | : ..$ ...future.elements_ii : [11:05:43.401] | : ..$ ...future.seeds_ii : [11:05:43.401] | : ..$ ...future.globals.maxSize: [11:05:43.401] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.401] | : - attr(*, "resolved")= logi FALSE [11:05:43.401] | : - attr(*, "total_size")= num 4124 [11:05:43.407] | : Number of futures (= number of chunks): 1 [11:05:43.407] | : Launching 1 futures (chunks) ... [11:05:43.408] | : Chunk #1 of 1 ... [11:05:43.408] | : - Finding globals in 'X' for chunk #1 ... [11:05:43.408] | : + additional globals found: [n=0] [11:05:43.408] | : + additional namespaces needed: [n=0] [11:05:43.409] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:43.409] | : - seeds: [11:05:43.409] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.415] | : Created future: [11:05:43.415] | : SequentialFuture: [11:05:43.415] | : Label: 'future_lapply-1' [11:05:43.415] | : Expression: [11:05:43.415] | : { [11:05:43.415] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:43.415] | : "# expression in do.call(), because function called uses '...' " [11:05:43.415] | : "# as a global variable " [11:05:43.415] | : do.call(function(...) { [11:05:43.415] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:43.415] | : "# without having an '...' argument. This means '...' is treated" [11:05:43.415] | : "# as a global variable. This may happen when FUN() is an " [11:05:43.415] | : "# anonymous function. " [11:05:43.415] | : "# " [11:05:43.415] | : "# If an anonymous function, we will make sure to restore the " [11:05:43.415] | : "# function environment of FUN() to the calling environment. " [11:05:43.415] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:43.415] | : "# global environment, which is where globals are written. " [11:05:43.415] | : penv <- env <- environment(...future.FUN) [11:05:43.415] | : repeat { [11:05:43.415] | : if (identical(env, globalenv()) || identical(env, [11:05:43.415] | : emptyenv())) [11:05:43.415] | : break [11:05:43.415] | : penv <- env [11:05:43.415] | : env <- parent.env(env) [11:05:43.415] | : } [11:05:43.415] | : if (identical(penv, globalenv())) { [11:05:43.415] | : environment(...future.FUN) <- environment() [11:05:43.415] | : } [11:05:43.415] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:43.415] | : !isNamespace(penv)) { [11:05:43.415] | : parent.env(penv) <- environment() [11:05:43.415] | : } [11:05:43.415] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:43.415] | : { [11:05:43.415] | : "# future.apply:::future_xapply(): preserve future option" [11:05:43.415] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:43.415] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:43.415] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:43.415] | : on.exit(options(oopts), add = TRUE) [11:05:43.415] | : } [11:05:43.415] | : { [11:05:43.415] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:43.415] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:43.415] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:43.415] | : { [11:05:43.415] | : ...future.FUN(...future.X_jj, ...) [11:05:43.415] | : } [11:05:43.415] | : }) [11:05:43.415] | : } [11:05:43.415] | : } [11:05:43.415] | : }, args = future.call.arguments) [11:05:43.415] | : } [11:05:43.415] | : Globals: 6 objects totaling 4.29 KiB (function '...future.FUN' of 511 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes, ...) [11:05:43.415] | : Packages: [11:05:43.415] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:43.415] | : Capture standard output: TRUE [11:05:43.415] | : Capture condition classes: 'condition' (excluding '') [11:05:43.415] | : Immediate condition classes: 'immediateCondition' [11:05:43.415] | : Lazy evaluation: FALSE [11:05:43.415] | : Local evaluation: TRUE [11:05:43.415] | : Early signaling: FALSE [11:05:43.415] | : Actions: [n=1] 'run' [11:05:43.415] | : State: 'finished' ("Future was resolved successfully") [11:05:43.415] | : Resolved: TRUE [11:05:43.415] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-14 [11:05:43.415] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:43.415] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [11:05:43.415] | : Value: 47 bytes of class 'list' [11:05:43.415] | : Duration: 0.003116846 secs (started 2026-02-20 11:05:43.410797) [11:05:43.415] | : Worker process: d25b72138f884b2acb58249f46f44db3 [11:05:43.417] | : Chunk #1 of 1 ... DONE [11:05:43.417] | : Launching 1 futures (chunks) ... DONE [11:05:43.417] | : Resolving 1 futures (chunks) ... [11:05:43.418] | : - Number of value chunks collected: 1 [11:05:43.418] | : Resolving 1 futures (chunks) ... DONE [11:05:43.418] | : Reducing values from 1 chunks ... [11:05:43.418] | : - Number of values collected after concatenation: 1 [11:05:43.419] | : - Number of values expected: 1 [11:05:43.419] | : Reducing values from 1 chunks ... DONE [11:05:43.419] | future_lapply() -> future_xapply() ... done [11:05:43.419] future_lapply() ... done - future_lapply(X, ...) - '{ a; a <- a + 1 }' ... [11:05:43.419] future_lapply() ... [11:05:43.420] | Globals in FUN(): [n=4] '{', 'a', '<-', '+' [11:05:43.421] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:43.421] | future_lapply() -> future_xapply() ... [11:05:43.421] | : Number of chunks: 1 [11:05:43.421] | : getGlobalsAndPackagesXApply() ... [11:05:43.422] | : . future.globals: TRUE [11:05:43.432] | : . globals found/used: [n=2] 'FUN', 'a' [11:05:43.432] | : . needed namespaces: [n=0] [11:05:43.432] | : . use_args: TRUE [11:05:43.433] | : . Getting '...' globals ... [11:05:43.433] | : . ' '...' content: [n=0] [11:05:43.433] | : . ' List of 1 [11:05:43.433] | : . ' $ ...: list() [11:05:43.433] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.433] | : . ' - attr(*, "where")=List of 1 [11:05:43.433] | : . ' ..$ ...: [11:05:43.433] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.433] | : . ' - attr(*, "resolved")= logi TRUE [11:05:43.433] | : . ' - attr(*, "total_size")= num NA [11:05:43.436] | : . Getting '...' globals ... done [11:05:43.437] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [11:05:43.437] | : . List of 3 [11:05:43.437] | : . $ ...future.FUN:function (ii) [11:05:43.437] | : . $ a : num 1 [11:05:43.437] | : . $ ... : list() [11:05:43.437] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.437] | : . - attr(*, "where")=List of 3 [11:05:43.437] | : . ..$ ...future.FUN: [11:05:43.437] | : . ..$ a : [11:05:43.437] | : . ..$ ... : [11:05:43.437] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.437] | : . - attr(*, "resolved")= logi FALSE [11:05:43.437] | : . - attr(*, "total_size")= num 4140 [11:05:43.441] | : . Packages to be attached in all futures: [n=0] [11:05:43.441] | : getGlobalsAndPackagesXApply() ... done [11:05:43.442] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.442] | : List of 6 [11:05:43.442] | : $ ...future.FUN :function (ii) [11:05:43.442] | : $ a : num 1 [11:05:43.442] | : $ ... : list() [11:05:43.442] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.442] | : $ ...future.elements_ii : NULL [11:05:43.442] | : $ ...future.seeds_ii : NULL [11:05:43.442] | : $ ...future.globals.maxSize: NULL [11:05:43.442] | : - attr(*, "where")=List of 6 [11:05:43.442] | : ..$ ...future.FUN : [11:05:43.442] | : ..$ a : [11:05:43.442] | : ..$ ... : [11:05:43.442] | : ..$ ...future.elements_ii : [11:05:43.442] | : ..$ ...future.seeds_ii : [11:05:43.442] | : ..$ ...future.globals.maxSize: [11:05:43.442] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.442] | : - attr(*, "resolved")= logi FALSE [11:05:43.442] | : - attr(*, "total_size")= num 4140 [11:05:43.448] | : Number of futures (= number of chunks): 1 [11:05:43.448] | : Launching 1 futures (chunks) ... [11:05:43.448] | : Chunk #1 of 1 ... [11:05:43.448] | : - Finding globals in 'X' for chunk #1 ... [11:05:43.449] | : + additional globals found: [n=0] [11:05:43.449] | : + additional namespaces needed: [n=0] [11:05:43.449] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:43.449] | : - seeds: [11:05:43.449] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.457] | : Created future: [11:05:43.457] | : SequentialFuture: [11:05:43.457] | : Label: 'future_lapply-1' [11:05:43.457] | : Expression: [11:05:43.457] | : { [11:05:43.457] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:43.457] | : "# expression in do.call(), because function called uses '...' " [11:05:43.457] | : "# as a global variable " [11:05:43.457] | : do.call(function(...) { [11:05:43.457] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:43.457] | : "# without having an '...' argument. This means '...' is treated" [11:05:43.457] | : "# as a global variable. This may happen when FUN() is an " [11:05:43.457] | : "# anonymous function. " [11:05:43.457] | : "# " [11:05:43.457] | : "# If an anonymous function, we will make sure to restore the " [11:05:43.457] | : "# function environment of FUN() to the calling environment. " [11:05:43.457] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:43.457] | : "# global environment, which is where globals are written. " [11:05:43.457] | : penv <- env <- environment(...future.FUN) [11:05:43.457] | : repeat { [11:05:43.457] | : if (identical(env, globalenv()) || identical(env, [11:05:43.457] | : emptyenv())) [11:05:43.457] | : break [11:05:43.457] | : penv <- env [11:05:43.457] | : env <- parent.env(env) [11:05:43.457] | : } [11:05:43.457] | : if (identical(penv, globalenv())) { [11:05:43.457] | : environment(...future.FUN) <- environment() [11:05:43.457] | : } [11:05:43.457] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:43.457] | : !isNamespace(penv)) { [11:05:43.457] | : parent.env(penv) <- environment() [11:05:43.457] | : } [11:05:43.457] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:43.457] | : { [11:05:43.457] | : "# future.apply:::future_xapply(): preserve future option" [11:05:43.457] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:43.457] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:43.457] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:43.457] | : on.exit(options(oopts), add = TRUE) [11:05:43.457] | : } [11:05:43.457] | : { [11:05:43.457] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:43.457] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:43.457] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:43.457] | : { [11:05:43.457] | : ...future.FUN(...future.X_jj, ...) [11:05:43.457] | : } [11:05:43.457] | : }) [11:05:43.457] | : } [11:05:43.457] | : } [11:05:43.457] | : }, args = future.call.arguments) [11:05:43.457] | : } [11:05:43.457] | : Globals: 6 objects totaling 4.31 KiB (function '...future.FUN' of 519 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes, ...) [11:05:43.457] | : Packages: [11:05:43.457] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:43.457] | : Capture standard output: TRUE [11:05:43.457] | : Capture condition classes: 'condition' (excluding '') [11:05:43.457] | : Immediate condition classes: 'immediateCondition' [11:05:43.457] | : Lazy evaluation: FALSE [11:05:43.457] | : Local evaluation: TRUE [11:05:43.457] | : Early signaling: FALSE [11:05:43.457] | : Actions: [n=1] 'run' [11:05:43.457] | : State: 'finished' ("Future was resolved successfully") [11:05:43.457] | : Resolved: TRUE [11:05:43.457] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-15 [11:05:43.457] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:43.457] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [11:05:43.457] | : Value: 47 bytes of class 'list' [11:05:43.457] | : Duration: 0.005296946 secs (started 2026-02-20 11:05:43.451128) [11:05:43.457] | : Worker process: d25b72138f884b2acb58249f46f44db3 [11:05:43.460] | : Chunk #1 of 1 ... DONE [11:05:43.460] | : Launching 1 futures (chunks) ... DONE [11:05:43.460] | : Resolving 1 futures (chunks) ... [11:05:43.461] | : - Number of value chunks collected: 1 [11:05:43.461] | : Resolving 1 futures (chunks) ... DONE [11:05:43.461] | : Reducing values from 1 chunks ... [11:05:43.461] | : - Number of values collected after concatenation: 1 [11:05:43.461] | : - Number of values expected: 1 [11:05:43.461] | : Reducing values from 1 chunks ... DONE [11:05:43.462] | future_lapply() -> future_xapply() ... done [11:05:43.462] future_lapply() ... done - future_lapply(..., future.globals = ) ... [11:05:43.462] future_lapply() ... [11:05:43.463] | Globals in FUN(): [n=1] 'a' [11:05:43.463] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:43.463] | future_lapply() -> future_xapply() ... [11:05:43.463] | : Number of chunks: 1 [11:05:43.463] | : getGlobalsAndPackagesXApply() ... [11:05:43.464] | : . future.globals: with names 'a' [11:05:43.464] | : . use_args: TRUE [11:05:43.464] | : . Getting '...' globals ... [11:05:43.465] | : . ' '...' content: [n=0] [11:05:43.465] | : . ' List of 1 [11:05:43.465] | : . ' $ ...: list() [11:05:43.465] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.465] | : . ' - attr(*, "where")=List of 1 [11:05:43.465] | : . ' ..$ ...: [11:05:43.465] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.465] | : . ' - attr(*, "resolved")= logi TRUE [11:05:43.465] | : . ' - attr(*, "total_size")= num NA [11:05:43.468] | : . Getting '...' globals ... done [11:05:43.468] | : . Globals to be used in all futures (chunks): [n=3] 'a', '...future.FUN', '...' [11:05:43.468] | : . List of 3 [11:05:43.468] | : . $ a : num 42 [11:05:43.468] | : . $ ...future.FUN:function (x) [11:05:43.468] | : . $ ... : list() [11:05:43.468] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.468] | : . - attr(*, "where")=List of 3 [11:05:43.468] | : . ..$ a : [11:05:43.468] | : . ..$ ...future.FUN: [11:05:43.468] | : . ..$ ... : [11:05:43.468] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.468] | : . - attr(*, "resolved")= logi FALSE [11:05:43.468] | : . - attr(*, "total_size")= num NA [11:05:43.472] | : . Packages to be attached in all futures: [n=0] [11:05:43.473] | : getGlobalsAndPackagesXApply() ... done [11:05:43.473] | : Globals pass to each chunk: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.473] | : List of 6 [11:05:43.473] | : $ a : num 42 [11:05:43.473] | : $ ...future.FUN :function (x) [11:05:43.473] | : $ ... : list() [11:05:43.473] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.473] | : $ ...future.elements_ii : NULL [11:05:43.473] | : $ ...future.seeds_ii : NULL [11:05:43.473] | : $ ...future.globals.maxSize: NULL [11:05:43.473] | : - attr(*, "where")=List of 6 [11:05:43.473] | : ..$ a : [11:05:43.473] | : ..$ ...future.FUN : [11:05:43.473] | : ..$ ... : [11:05:43.473] | : ..$ ...future.elements_ii : [11:05:43.473] | : ..$ ...future.seeds_ii : [11:05:43.473] | : ..$ ...future.globals.maxSize: [11:05:43.473] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.473] | : - attr(*, "resolved")= logi FALSE [11:05:43.473] | : - attr(*, "total_size")= num NA [11:05:43.479] | : Number of futures (= number of chunks): 1 [11:05:43.479] | : Launching 1 futures (chunks) ... [11:05:43.479] | : Chunk #1 of 1 ... [11:05:43.479] | : - seeds: [11:05:43.480] | : - All globals exported: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.485] | : Created future: [11:05:43.485] | : SequentialFuture: [11:05:43.485] | : Label: 'future_lapply-1' [11:05:43.485] | : Expression: [11:05:43.485] | : { [11:05:43.485] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:43.485] | : "# expression in do.call(), because function called uses '...' " [11:05:43.485] | : "# as a global variable " [11:05:43.485] | : do.call(function(...) { [11:05:43.485] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:43.485] | : "# without having an '...' argument. This means '...' is treated" [11:05:43.485] | : "# as a global variable. This may happen when FUN() is an " [11:05:43.485] | : "# anonymous function. " [11:05:43.485] | : "# " [11:05:43.485] | : "# If an anonymous function, we will make sure to restore the " [11:05:43.485] | : "# function environment of FUN() to the calling environment. " [11:05:43.485] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:43.485] | : "# global environment, which is where globals are written. " [11:05:43.485] | : penv <- env <- environment(...future.FUN) [11:05:43.485] | : repeat { [11:05:43.485] | : if (identical(env, globalenv()) || identical(env, [11:05:43.485] | : emptyenv())) [11:05:43.485] | : break [11:05:43.485] | : penv <- env [11:05:43.485] | : env <- parent.env(env) [11:05:43.485] | : } [11:05:43.485] | : if (identical(penv, globalenv())) { [11:05:43.485] | : environment(...future.FUN) <- environment() [11:05:43.485] | : } [11:05:43.485] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:43.485] | : !isNamespace(penv)) { [11:05:43.485] | : parent.env(penv) <- environment() [11:05:43.485] | : } [11:05:43.485] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:43.485] | : { [11:05:43.485] | : "# future.apply:::future_xapply(): preserve future option" [11:05:43.485] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:43.485] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:43.485] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:43.485] | : on.exit(options(oopts), add = TRUE) [11:05:43.485] | : } [11:05:43.485] | : { [11:05:43.485] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:43.485] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:43.485] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:43.485] | : { [11:05:43.485] | : ...future.FUN(...future.X_jj, ...) [11:05:43.485] | : } [11:05:43.485] | : }) [11:05:43.485] | : } [11:05:43.485] | : } [11:05:43.485] | : }, args = future.call.arguments) [11:05:43.485] | : } [11:05:43.485] | : Globals: 6 objects totaling 4.17 KiB (function '...future.FUN' of 298 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes, ...) [11:05:43.485] | : Packages: [11:05:43.485] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:43.485] | : Capture standard output: TRUE [11:05:43.485] | : Capture condition classes: 'condition' (excluding '') [11:05:43.485] | : Immediate condition classes: 'immediateCondition' [11:05:43.485] | : Lazy evaluation: FALSE [11:05:43.485] | : Local evaluation: TRUE [11:05:43.485] | : Early signaling: FALSE [11:05:43.485] | : Actions: [n=1] 'run' [11:05:43.485] | : State: 'finished' ("Future was resolved successfully") [11:05:43.485] | : Resolved: TRUE [11:05:43.485] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-16 [11:05:43.485] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:43.485] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [11:05:43.485] | : Value: 47 bytes of class 'list' [11:05:43.485] | : Duration: 0.003084898 secs (started 2026-02-20 11:05:43.481197) [11:05:43.485] | : Worker process: d25b72138f884b2acb58249f46f44db3 [11:05:43.487] | : Chunk #1 of 1 ... DONE [11:05:43.487] | : Launching 1 futures (chunks) ... DONE [11:05:43.488] | : Resolving 1 futures (chunks) ... [11:05:43.488] | : - Number of value chunks collected: 1 [11:05:43.488] | : Resolving 1 futures (chunks) ... DONE [11:05:43.488] | : Reducing values from 1 chunks ... [11:05:43.489] | : - Number of values collected after concatenation: 1 [11:05:43.489] | : - Number of values expected: 1 [11:05:43.489] | : Reducing values from 1 chunks ... DONE [11:05:43.489] | future_lapply() -> future_xapply() ... done [11:05:43.489] future_lapply() ... done List of 1 $ : num 42 [11:05:43.824] future_lapply() ... [11:05:43.826] | Globals in FUN(): [n=7] '{', 'do.call', 'caller', 'c', 'list', '+', 'args' [11:05:43.826] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:43.826] | future_lapply() -> future_xapply() ... [11:05:43.828] | : Number of chunks: 2 [11:05:43.828] | : getGlobalsAndPackagesXApply() ... [11:05:43.828] | : . future.globals: TRUE [11:05:43.867] | : . globals found/used: [n=5] 'FUN', 'caller', 'args', 'call_my_add', 'my_add' [11:05:43.867] | : . needed namespaces: [n=0] [11:05:43.867] | : . use_args: TRUE [11:05:43.867] | : . Getting '...' globals ... [11:05:43.868] | : . ' '...' content: [n=0] [11:05:43.868] | : . ' List of 1 [11:05:43.868] | : . ' $ ...: list() [11:05:43.868] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.868] | : . ' - attr(*, "where")=List of 1 [11:05:43.868] | : . ' ..$ ...: [11:05:43.868] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.868] | : . ' - attr(*, "resolved")= logi TRUE [11:05:43.868] | : . ' - attr(*, "total_size")= num NA [11:05:43.871] | : . Getting '...' globals ... done [11:05:43.872] | : . Globals to be used in all futures (chunks): [n=6] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...' [11:05:43.872] | : . List of 6 [11:05:43.872] | : . $ ...future.FUN:function (i) [11:05:43.872] | : . $ caller :function (a, b, FUN = call_my_add) [11:05:43.872] | : . $ args :List of 1 [11:05:43.872] | : . ..$ FUN:function (a, b) [11:05:43.872] | : . $ call_my_add :function (a, b) [11:05:43.872] | : . $ my_add :function (a, b) [11:05:43.872] | : . $ ... : list() [11:05:43.872] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.872] | : . - attr(*, "where")=List of 6 [11:05:43.872] | : . ..$ ...future.FUN: [11:05:43.872] | : . ..$ caller : [11:05:43.872] | : . ..$ args : [11:05:43.872] | : . ..$ call_my_add : [11:05:43.872] | : . ..$ my_add : [11:05:43.872] | : . ..$ ... : [11:05:43.872] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.872] | : . - attr(*, "resolved")= logi FALSE [11:05:43.872] | : . - attr(*, "total_size")= num 13245 [11:05:43.878] | : . Packages to be attached in all futures: [n=0] [11:05:43.878] | : getGlobalsAndPackagesXApply() ... done [11:05:43.878] | : Globals pass to each chunk: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.879] | : List of 9 [11:05:43.879] | : $ ...future.FUN :function (i) [11:05:43.879] | : $ caller :function (a, b, FUN = call_my_add) [11:05:43.879] | : $ args :List of 1 [11:05:43.879] | : ..$ FUN:function (a, b) [11:05:43.879] | : $ call_my_add :function (a, b) [11:05:43.879] | : $ my_add :function (a, b) [11:05:43.879] | : $ ... : list() [11:05:43.879] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:43.879] | : $ ...future.elements_ii : NULL [11:05:43.879] | : $ ...future.seeds_ii : NULL [11:05:43.879] | : $ ...future.globals.maxSize: NULL [11:05:43.879] | : - attr(*, "where")=List of 9 [11:05:43.879] | : ..$ ...future.FUN : [11:05:43.879] | : ..$ caller : [11:05:43.879] | : ..$ args : [11:05:43.879] | : ..$ call_my_add : [11:05:43.879] | : ..$ my_add : [11:05:43.879] | : ..$ ... : [11:05:43.879] | : ..$ ...future.elements_ii : [11:05:43.879] | : ..$ ...future.seeds_ii : [11:05:43.879] | : ..$ ...future.globals.maxSize: [11:05:43.879] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:43.879] | : - attr(*, "resolved")= logi FALSE [11:05:43.879] | : - attr(*, "total_size")= num 13245 [11:05:43.886] | : Number of futures (= number of chunks): 2 [11:05:43.887] | : Launching 2 futures (chunks) ... [11:05:43.887] | : Chunk #1 of 2 ... [11:05:43.887] | : - Finding globals in 'X' for chunk #1 ... [11:05:43.888] | : + additional globals found: [n=0] [11:05:43.888] | : + additional namespaces needed: [n=0] [11:05:43.888] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:43.888] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [11:05:43.888] | : - seeds: [11:05:43.888] | : - All globals exported: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.891] | : Created future: [11:05:43.891] | : MultisessionFuture: [11:05:43.891] | : Label: 'future_lapply-1' [11:05:43.891] | : Expression: [11:05:43.891] | : { [11:05:43.891] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:43.891] | : "# expression in do.call(), because function called uses '...' " [11:05:43.891] | : "# as a global variable " [11:05:43.891] | : do.call(function(...) { [11:05:43.891] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:43.891] | : "# without having an '...' argument. This means '...' is treated" [11:05:43.891] | : "# as a global variable. This may happen when FUN() is an " [11:05:43.891] | : "# anonymous function. " [11:05:43.891] | : "# " [11:05:43.891] | : "# If an anonymous function, we will make sure to restore the " [11:05:43.891] | : "# function environment of FUN() to the calling environment. " [11:05:43.891] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:43.891] | : "# global environment, which is where globals are written. " [11:05:43.891] | : penv <- env <- environment(...future.FUN) [11:05:43.891] | : repeat { [11:05:43.891] | : if (identical(env, globalenv()) || identical(env, [11:05:43.891] | : emptyenv())) [11:05:43.891] | : break [11:05:43.891] | : penv <- env [11:05:43.891] | : env <- parent.env(env) [11:05:43.891] | : } [11:05:43.891] | : if (identical(penv, globalenv())) { [11:05:43.891] | : environment(...future.FUN) <- environment() [11:05:43.891] | : } [11:05:43.891] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:43.891] | : !isNamespace(penv)) { [11:05:43.891] | : parent.env(penv) <- environment() [11:05:43.891] | : } [11:05:43.891] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:43.891] | : { [11:05:43.891] | : "# future.apply:::future_xapply(): preserve future option" [11:05:43.891] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:43.891] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:43.891] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:43.891] | : on.exit(options(oopts), add = TRUE) [11:05:43.891] | : } [11:05:43.891] | : { [11:05:43.891] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:43.891] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:43.891] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:43.891] | : { [11:05:43.891] | : ...future.FUN(...future.X_jj, ...) [11:05:43.891] | : } [11:05:43.891] | : }) [11:05:43.891] | : } [11:05:43.891] | : } [11:05:43.891] | : }, args = future.call.arguments) [11:05:43.891] | : } [11:05:43.891] | : Globals: 9 objects totaling 10.71 KiB (function '...future.FUN' of 3.30 KiB, list 'args' of 928 bytes, function 'caller' of 904 bytes, function 'call_my_add' of 876 bytes, function 'my_add' of 114 bytes, ...) [11:05:43.891] | : Packages: [11:05:43.891] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:43.891] | : Capture standard output: TRUE [11:05:43.891] | : Capture condition classes: 'condition' (excluding '') [11:05:43.891] | : Immediate condition classes: 'immediateCondition' [11:05:43.891] | : Lazy evaluation: FALSE [11:05:43.891] | : Local evaluation: TRUE [11:05:43.891] | : Early signaling: FALSE [11:05:43.891] | : Actions: [n=1] 'run' [11:05:43.891] | : State: 'running' ("Future is being evaluated") [11:05:43.891] | : Resolved: TRUE [11:05:43.891] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-17 [11:05:43.891] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:43.891] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:43.891] | : Value: [11:05:43.891] | : Conditions captured: [11:05:43.965] | : Chunk #1 of 2 ... DONE [11:05:43.965] | : Chunk #2 of 2 ... [11:05:43.966] | : - Finding globals in 'X' for chunk #2 ... [11:05:43.966] | : + additional globals found: [n=0] [11:05:43.966] | : + additional namespaces needed: [n=0] [11:05:43.966] | : - Finding globals in 'X' for chunk #2 ... DONE [11:05:43.967] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [11:05:43.967] | : - seeds: [11:05:43.967] | : - All globals exported: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:43.969] | : Created future: [11:05:43.970] | : MultisessionFuture: [11:05:43.970] | : Label: 'future_lapply-2' [11:05:43.970] | : Expression: [11:05:43.970] | : { [11:05:43.970] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:43.970] | : "# expression in do.call(), because function called uses '...' " [11:05:43.970] | : "# as a global variable " [11:05:43.970] | : do.call(function(...) { [11:05:43.970] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:43.970] | : "# without having an '...' argument. This means '...' is treated" [11:05:43.970] | : "# as a global variable. This may happen when FUN() is an " [11:05:43.970] | : "# anonymous function. " [11:05:43.970] | : "# " [11:05:43.970] | : "# If an anonymous function, we will make sure to restore the " [11:05:43.970] | : "# function environment of FUN() to the calling environment. " [11:05:43.970] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:43.970] | : "# global environment, which is where globals are written. " [11:05:43.970] | : penv <- env <- environment(...future.FUN) [11:05:43.970] | : repeat { [11:05:43.970] | : if (identical(env, globalenv()) || identical(env, [11:05:43.970] | : emptyenv())) [11:05:43.970] | : break [11:05:43.970] | : penv <- env [11:05:43.970] | : env <- parent.env(env) [11:05:43.970] | : } [11:05:43.970] | : if (identical(penv, globalenv())) { [11:05:43.970] | : environment(...future.FUN) <- environment() [11:05:43.970] | : } [11:05:43.970] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:43.970] | : !isNamespace(penv)) { [11:05:43.970] | : parent.env(penv) <- environment() [11:05:43.970] | : } [11:05:43.970] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:43.970] | : { [11:05:43.970] | : "# future.apply:::future_xapply(): preserve future option" [11:05:43.970] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:43.970] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:43.970] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:43.970] | : on.exit(options(oopts), add = TRUE) [11:05:43.970] | : } [11:05:43.970] | : { [11:05:43.970] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:43.970] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:43.970] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:43.970] | : { [11:05:43.970] | : ...future.FUN(...future.X_jj, ...) [11:05:43.970] | : } [11:05:43.970] | : }) [11:05:43.970] | : } [11:05:43.970] | : } [11:05:43.970] | : }, args = future.call.arguments) [11:05:43.970] | : } [11:05:43.970] | : Globals: 9 objects totaling 10.72 KiB (function '...future.FUN' of 3.30 KiB, list 'args' of 928 bytes, function 'caller' of 904 bytes, function 'call_my_add' of 876 bytes, function 'my_add' of 114 bytes, ...) [11:05:43.970] | : Packages: [11:05:43.970] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:43.970] | : Capture standard output: TRUE [11:05:43.970] | : Capture condition classes: 'condition' (excluding '') [11:05:43.970] | : Immediate condition classes: 'immediateCondition' [11:05:43.970] | : Lazy evaluation: FALSE [11:05:43.970] | : Local evaluation: TRUE [11:05:43.970] | : Early signaling: FALSE [11:05:43.970] | : Actions: [n=1] 'run' [11:05:43.970] | : State: 'running' ("Future is being evaluated") [11:05:43.970] | : Resolved: TRUE [11:05:43.970] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-18 [11:05:43.970] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:43.970] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:43.970] | : Value: [11:05:43.970] | : Conditions captured: [11:05:43.975] | : Chunk #2 of 2 ... DONE [11:05:43.975] | : Launching 2 futures (chunks) ... DONE [11:05:43.975] | : Resolving 2 futures (chunks) ... [11:05:43.976] | : - Number of value chunks collected: 2 [11:05:43.977] | : Resolving 2 futures (chunks) ... DONE [11:05:43.977] | : Reducing values from 2 chunks ... [11:05:43.977] | : - Number of values collected after concatenation: 3 [11:05:43.977] | : - Number of values expected: 3 [11:05:43.977] | : Reducing values from 2 chunks ... DONE [11:05:43.977] | future_lapply() -> future_xapply() ... done [11:05:43.978] future_lapply() ... done - future_lapply(x, FUN = do.call, ...) ... [11:05:43.978] future_lapply() ... [11:05:43.980] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [11:05:43.980] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:43.980] | future_lapply() -> future_xapply() ... [11:05:43.981] | : Number of chunks: 1 [11:05:43.981] | : getGlobalsAndPackagesXApply() ... [11:05:43.981] | : . future.globals: TRUE [11:05:44.010] | : . globals found/used: [n=1] 'FUN' [11:05:44.010] | : . needed namespaces: [n=0] [11:05:44.010] | : . use_args: TRUE [11:05:44.010] | : . Getting '...' globals ... [11:05:44.011] | : . ' '...' content: [n=1] 'what' [11:05:44.011] | : . ' List of 1 [11:05:44.011] | : . ' $ ...:List of 1 [11:05:44.011] | : . ' ..$ what:function (x) [11:05:44.011] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.011] | : . ' - attr(*, "where")=List of 1 [11:05:44.011] | : . ' ..$ ...: [11:05:44.011] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.011] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.011] | : . ' - attr(*, "total_size")= num NA [11:05:44.015] | : . Getting '...' globals ... done [11:05:44.015] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:44.015] | : . List of 2 [11:05:44.015] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [11:05:44.015] | : . $ ... :List of 1 [11:05:44.015] | : . ..$ what:function (x) [11:05:44.015] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.015] | : . - attr(*, "where")=List of 2 [11:05:44.015] | : . ..$ ...future.FUN: [11:05:44.015] | : . ..$ ... : [11:05:44.015] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.015] | : . - attr(*, "resolved")= logi FALSE [11:05:44.015] | : . - attr(*, "total_size")= num 7368 [11:05:44.019] | : . Packages to be attached in all futures: [n=0] [11:05:44.019] | : getGlobalsAndPackagesXApply() ... done [11:05:44.020] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.020] | : List of 5 [11:05:44.020] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [11:05:44.020] | : $ ... :List of 1 [11:05:44.020] | : ..$ what:function (x) [11:05:44.020] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.020] | : $ ...future.elements_ii : NULL [11:05:44.020] | : $ ...future.seeds_ii : NULL [11:05:44.020] | : $ ...future.globals.maxSize: NULL [11:05:44.020] | : - attr(*, "where")=List of 5 [11:05:44.020] | : ..$ ...future.FUN : [11:05:44.020] | : ..$ ... : [11:05:44.020] | : ..$ ...future.elements_ii : [11:05:44.020] | : ..$ ...future.seeds_ii : [11:05:44.020] | : ..$ ...future.globals.maxSize: [11:05:44.020] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.020] | : - attr(*, "resolved")= logi FALSE [11:05:44.020] | : - attr(*, "total_size")= num 7368 [11:05:44.025] | : Number of futures (= number of chunks): 1 [11:05:44.026] | : Launching 1 futures (chunks) ... [11:05:44.026] | : Chunk #1 of 1 ... [11:05:44.026] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.027] | : + additional globals found: [n=0] [11:05:44.027] | : + additional namespaces needed: [n=0] [11:05:44.027] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.027] | : - seeds: [11:05:44.027] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.030] | : Created future: [11:05:44.030] | : MultisessionFuture: [11:05:44.030] | : Label: 'future_lapply-1' [11:05:44.030] | : Expression: [11:05:44.030] | : { [11:05:44.030] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.030] | : "# expression in do.call(), because function called uses '...' " [11:05:44.030] | : "# as a global variable " [11:05:44.030] | : do.call(function(...) { [11:05:44.030] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.030] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.030] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.030] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.030] | : on.exit(options(oopts), add = TRUE) [11:05:44.030] | : } [11:05:44.030] | : { [11:05:44.030] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.030] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.030] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.030] | : { [11:05:44.030] | : ...future.FUN(...future.X_jj, ...) [11:05:44.030] | : } [11:05:44.030] | : }) [11:05:44.030] | : } [11:05:44.030] | : }, args = future.call.arguments) [11:05:44.030] | : } [11:05:44.030] | : Globals: 5 objects totaling 7.38 KiB (function '...future.FUN' of 1.79 KiB, DotDotDotList 'future.call.arguments' of 152 bytes, list '...future.elements_ii' of 149 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.030] | : Packages: [11:05:44.030] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.030] | : Capture standard output: TRUE [11:05:44.030] | : Capture condition classes: 'condition' (excluding '') [11:05:44.030] | : Immediate condition classes: 'immediateCondition' [11:05:44.030] | : Lazy evaluation: FALSE [11:05:44.030] | : Local evaluation: TRUE [11:05:44.030] | : Early signaling: FALSE [11:05:44.030] | : Actions: [n=1] 'run' [11:05:44.030] | : State: 'running' ("Future is being evaluated") [11:05:44.030] | : Resolved: TRUE [11:05:44.030] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-19 [11:05:44.030] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.030] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.030] | : Value: [11:05:44.030] | : Conditions captured: [11:05:44.035] | : Chunk #1 of 1 ... DONE [11:05:44.035] | : Launching 1 futures (chunks) ... DONE [11:05:44.035] | : Resolving 1 futures (chunks) ... [11:05:44.036] | : - Number of value chunks collected: 1 [11:05:44.036] | : Resolving 1 futures (chunks) ... DONE [11:05:44.036] | : Reducing values from 1 chunks ... [11:05:44.037] | : - Number of values collected after concatenation: 1 [11:05:44.037] | : - Number of values expected: 1 [11:05:44.037] | : Reducing values from 1 chunks ... DONE [11:05:44.037] | future_lapply() -> future_xapply() ... done [11:05:44.037] future_lapply() ... done [11:05:44.037] future_lapply() ... [11:05:44.039] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [11:05:44.040] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.040] | future_lapply() -> future_xapply() ... [11:05:44.040] | : Number of chunks: 1 [11:05:44.040] | : getGlobalsAndPackagesXApply() ... [11:05:44.040] | : . future.globals: TRUE [11:05:44.072] | : . globals found/used: [n=1] 'FUN' [11:05:44.073] | : . needed namespaces: [n=0] [11:05:44.073] | : . use_args: TRUE [11:05:44.073] | : . Getting '...' globals ... [11:05:44.074] | : . ' '...' content: [n=1] 'what' [11:05:44.074] | : . ' List of 1 [11:05:44.074] | : . ' $ ...:List of 1 [11:05:44.074] | : . ' ..$ what:function (...) [11:05:44.074] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.074] | : . ' - attr(*, "where")=List of 1 [11:05:44.074] | : . ' ..$ ...: [11:05:44.074] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.074] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.074] | : . ' - attr(*, "total_size")= num NA [11:05:44.077] | : . Getting '...' globals ... done [11:05:44.078] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:44.078] | : . List of 2 [11:05:44.078] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [11:05:44.078] | : . $ ... :List of 1 [11:05:44.078] | : . ..$ what:function (...) [11:05:44.078] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.078] | : . - attr(*, "where")=List of 2 [11:05:44.078] | : . ..$ ...future.FUN: [11:05:44.078] | : . ..$ ... : [11:05:44.078] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.078] | : . - attr(*, "resolved")= logi FALSE [11:05:44.078] | : . - attr(*, "total_size")= num 7804 [11:05:44.081] | : . Packages to be attached in all futures: [n=0] [11:05:44.082] | : getGlobalsAndPackagesXApply() ... done [11:05:44.082] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.082] | : List of 5 [11:05:44.082] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [11:05:44.082] | : $ ... :List of 1 [11:05:44.082] | : ..$ what:function (...) [11:05:44.082] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.082] | : $ ...future.elements_ii : NULL [11:05:44.082] | : $ ...future.seeds_ii : NULL [11:05:44.082] | : $ ...future.globals.maxSize: NULL [11:05:44.082] | : - attr(*, "where")=List of 5 [11:05:44.082] | : ..$ ...future.FUN : [11:05:44.082] | : ..$ ... : [11:05:44.082] | : ..$ ...future.elements_ii : [11:05:44.082] | : ..$ ...future.seeds_ii : [11:05:44.082] | : ..$ ...future.globals.maxSize: [11:05:44.082] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.082] | : - attr(*, "resolved")= logi FALSE [11:05:44.082] | : - attr(*, "total_size")= num 7804 [11:05:44.088] | : Number of futures (= number of chunks): 1 [11:05:44.088] | : Launching 1 futures (chunks) ... [11:05:44.088] | : Chunk #1 of 1 ... [11:05:44.088] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.089] | : + additional globals found: [n=0] [11:05:44.089] | : + additional namespaces needed: [n=0] [11:05:44.089] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.089] | : - seeds: [11:05:44.090] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.092] | : Created future: [11:05:44.092] | : MultisessionFuture: [11:05:44.092] | : Label: 'future_lapply-1' [11:05:44.092] | : Expression: [11:05:44.092] | : { [11:05:44.092] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.092] | : "# expression in do.call(), because function called uses '...' " [11:05:44.092] | : "# as a global variable " [11:05:44.092] | : do.call(function(...) { [11:05:44.092] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.092] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.092] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.092] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.092] | : on.exit(options(oopts), add = TRUE) [11:05:44.092] | : } [11:05:44.092] | : { [11:05:44.092] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.092] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.092] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.092] | : { [11:05:44.092] | : ...future.FUN(...future.X_jj, ...) [11:05:44.092] | : } [11:05:44.092] | : }) [11:05:44.092] | : } [11:05:44.092] | : }, args = future.call.arguments) [11:05:44.092] | : } [11:05:44.092] | : Globals: 5 objects totaling 7.81 KiB (function '...future.FUN' of 1.79 KiB, DotDotDotList 'future.call.arguments' of 388 bytes, list '...future.elements_ii' of 149 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.092] | : Packages: [11:05:44.092] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.092] | : Capture standard output: TRUE [11:05:44.092] | : Capture condition classes: 'condition' (excluding '') [11:05:44.092] | : Immediate condition classes: 'immediateCondition' [11:05:44.092] | : Lazy evaluation: FALSE [11:05:44.092] | : Local evaluation: TRUE [11:05:44.092] | : Early signaling: FALSE [11:05:44.092] | : Actions: [n=1] 'run' [11:05:44.092] | : State: 'running' ("Future is being evaluated") [11:05:44.092] | : Resolved: TRUE [11:05:44.092] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-20 [11:05:44.092] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.092] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.092] | : Value: [11:05:44.092] | : Conditions captured: [11:05:44.097] | : Chunk #1 of 1 ... DONE [11:05:44.097] | : Launching 1 futures (chunks) ... DONE [11:05:44.098] | : Resolving 1 futures (chunks) ... [11:05:44.098] | : - Number of value chunks collected: 1 [11:05:44.098] | : Resolving 1 futures (chunks) ... DONE [11:05:44.099] | : Reducing values from 1 chunks ... [11:05:44.099] | : - Number of values collected after concatenation: 1 [11:05:44.099] | : - Number of values expected: 1 [11:05:44.099] | : Reducing values from 1 chunks ... DONE [11:05:44.099] | future_lapply() -> future_xapply() ... done [11:05:44.099] future_lapply() ... done - future_lapply(x, ...) - passing arguments via '...' ... [11:05:44.100] future_lapply() ... [11:05:44.101] | Globals in FUN(): [n=1] 'typeof' [11:05:44.101] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.101] | future_lapply() -> future_xapply() ... [11:05:44.101] | : Number of chunks: 1 [11:05:44.102] | : getGlobalsAndPackagesXApply() ... [11:05:44.102] | : . future.globals: TRUE [11:05:44.121] | : . globals found/used: [n=1] 'FUN' [11:05:44.122] | : . needed namespaces: [n=0] [11:05:44.122] | : . use_args: TRUE [11:05:44.123] | : . Getting '...' globals ... [11:05:44.124] | : . ' '...' content: [n=1] 'b' [11:05:44.124] | : . ' List of 1 [11:05:44.124] | : . ' $ ...:List of 1 [11:05:44.124] | : . ' ..$ b:'data.frame': 2 obs. of 1 variable: [11:05:44.124] | : . ' .. ..$ a: int [1:2] 1 2 [11:05:44.124] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.124] | : . ' - attr(*, "where")=List of 1 [11:05:44.124] | : . ' ..$ ...: [11:05:44.124] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.124] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.124] | : . ' - attr(*, "total_size")= num NA [11:05:44.132] | : . Getting '...' globals ... done [11:05:44.133] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:44.133] | : . List of 2 [11:05:44.133] | : . $ ...future.FUN:function (a, b) [11:05:44.133] | : . $ ... :List of 1 [11:05:44.133] | : . ..$ b:'data.frame': 2 obs. of 1 variable: [11:05:44.133] | : . .. ..$ a: int [1:2] 1 2 [11:05:44.133] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.133] | : . - attr(*, "where")=List of 2 [11:05:44.133] | : . ..$ ...future.FUN: [11:05:44.133] | : . ..$ ... : [11:05:44.133] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.133] | : . - attr(*, "resolved")= logi FALSE [11:05:44.133] | : . - attr(*, "total_size")= num 4505 [11:05:44.142] | : . Packages to be attached in all futures: [n=0] [11:05:44.142] | : getGlobalsAndPackagesXApply() ... done [11:05:44.143] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.144] | : List of 5 [11:05:44.144] | : $ ...future.FUN :function (a, b) [11:05:44.144] | : $ ... :List of 1 [11:05:44.144] | : ..$ b:'data.frame': 2 obs. of 1 variable: [11:05:44.144] | : .. ..$ a: int [1:2] 1 2 [11:05:44.144] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.144] | : $ ...future.elements_ii : NULL [11:05:44.144] | : $ ...future.seeds_ii : NULL [11:05:44.144] | : $ ...future.globals.maxSize: NULL [11:05:44.144] | : - attr(*, "where")=List of 5 [11:05:44.144] | : ..$ ...future.FUN : [11:05:44.144] | : ..$ ... : [11:05:44.144] | : ..$ ...future.elements_ii : [11:05:44.144] | : ..$ ...future.seeds_ii : [11:05:44.144] | : ..$ ...future.globals.maxSize: [11:05:44.144] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.144] | : - attr(*, "resolved")= logi FALSE [11:05:44.144] | : - attr(*, "total_size")= num 4505 [11:05:44.164] | : Number of futures (= number of chunks): 1 [11:05:44.165] | : Launching 1 futures (chunks) ... [11:05:44.165] | : Chunk #1 of 1 ... [11:05:44.165] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.166] | : + additional globals found: [n=0] [11:05:44.167] | : + additional namespaces needed: [n=0] [11:05:44.167] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.167] | : - seeds: [11:05:44.167] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.171] | : Created future: [11:05:44.172] | : MultisessionFuture: [11:05:44.172] | : Label: 'future_lapply-1' [11:05:44.172] | : Expression: [11:05:44.172] | : { [11:05:44.172] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.172] | : "# expression in do.call(), because function called uses '...' " [11:05:44.172] | : "# as a global variable " [11:05:44.172] | : do.call(function(...) { [11:05:44.172] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.172] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.172] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.172] | : "# anonymous function. " [11:05:44.172] | : "# " [11:05:44.172] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.172] | : "# function environment of FUN() to the calling environment. " [11:05:44.172] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.172] | : "# global environment, which is where globals are written. " [11:05:44.172] | : penv <- env <- environment(...future.FUN) [11:05:44.172] | : repeat { [11:05:44.172] | : if (identical(env, globalenv()) || identical(env, [11:05:44.172] | : emptyenv())) [11:05:44.172] | : break [11:05:44.172] | : penv <- env [11:05:44.172] | : env <- parent.env(env) [11:05:44.172] | : } [11:05:44.172] | : if (identical(penv, globalenv())) { [11:05:44.172] | : environment(...future.FUN) <- environment() [11:05:44.172] | : } [11:05:44.172] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.172] | : !isNamespace(penv)) { [11:05:44.172] | : parent.env(penv) <- environment() [11:05:44.172] | : } [11:05:44.172] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.172] | : { [11:05:44.172] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.172] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.172] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.172] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.172] | : on.exit(options(oopts), add = TRUE) [11:05:44.172] | : } [11:05:44.172] | : { [11:05:44.172] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.172] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.172] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.172] | : { [11:05:44.172] | : ...future.FUN(...future.X_jj, ...) [11:05:44.172] | : } [11:05:44.172] | : }) [11:05:44.172] | : } [11:05:44.172] | : } [11:05:44.172] | : }, args = future.call.arguments) [11:05:44.172] | : } [11:05:44.172] | : Globals: 5 objects totaling 4.68 KiB (DotDotDotList 'future.call.arguments' of 357 bytes, function '...future.FUN' of 332 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.172] | : Packages: [11:05:44.172] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.172] | : Capture standard output: TRUE [11:05:44.172] | : Capture condition classes: 'condition' (excluding '') [11:05:44.172] | : Immediate condition classes: 'immediateCondition' [11:05:44.172] | : Lazy evaluation: FALSE [11:05:44.172] | : Local evaluation: TRUE [11:05:44.172] | : Early signaling: FALSE [11:05:44.172] | : Actions: [n=1] 'run' [11:05:44.172] | : State: 'running' ("Future is being evaluated") [11:05:44.172] | : Resolved: TRUE [11:05:44.172] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-21 [11:05:44.172] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.172] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.172] | : Value: [11:05:44.172] | : Conditions captured: [11:05:44.176] | : Chunk #1 of 1 ... DONE [11:05:44.177] | : Launching 1 futures (chunks) ... DONE [11:05:44.177] | : Resolving 1 futures (chunks) ... [11:05:44.177] | : - Number of value chunks collected: 1 [11:05:44.178] | : Resolving 1 futures (chunks) ... DONE [11:05:44.178] | : Reducing values from 1 chunks ... [11:05:44.178] | : - Number of values collected after concatenation: 1 [11:05:44.178] | : - Number of values expected: 1 [11:05:44.178] | : Reducing values from 1 chunks ... DONE [11:05:44.179] | future_lapply() -> future_xapply() ... done [11:05:44.179] future_lapply() ... done [11:05:44.179] future_lapply() ... [11:05:44.180] | Globals in FUN(): [n=1] 'typeof' [11:05:44.180] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.180] | future_lapply() -> future_xapply() ... [11:05:44.181] | : Number of chunks: 1 [11:05:44.181] | : getGlobalsAndPackagesXApply() ... [11:05:44.181] | : . future.globals: TRUE [11:05:44.192] | : . globals found/used: [n=1] 'FUN' [11:05:44.192] | : . needed namespaces: [n=0] [11:05:44.192] | : . use_args: TRUE [11:05:44.193] | : . Getting '...' globals ... [11:05:44.193] | : . ' '...' content: [n=1] 'b' [11:05:44.194] | : . ' List of 1 [11:05:44.194] | : . ' $ ...:List of 1 [11:05:44.194] | : . ' ..$ b: [11:05:44.194] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.194] | : . ' - attr(*, "where")=List of 1 [11:05:44.194] | : . ' ..$ ...: [11:05:44.194] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.194] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.194] | : . ' - attr(*, "total_size")= num NA [11:05:44.198] | : . Getting '...' globals ... done [11:05:44.198] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:44.198] | : . List of 2 [11:05:44.198] | : . $ ...future.FUN:function (a, b) [11:05:44.198] | : . $ ... :List of 1 [11:05:44.198] | : . ..$ b: [11:05:44.198] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.198] | : . - attr(*, "where")=List of 2 [11:05:44.198] | : . ..$ ...future.FUN: [11:05:44.198] | : . ..$ ... : [11:05:44.198] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.198] | : . - attr(*, "resolved")= logi FALSE [11:05:44.198] | : . - attr(*, "total_size")= num 4260 [11:05:44.203] | : . Packages to be attached in all futures: [n=0] [11:05:44.203] | : getGlobalsAndPackagesXApply() ... done [11:05:44.203] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.204] | : List of 5 [11:05:44.204] | : $ ...future.FUN :function (a, b) [11:05:44.204] | : $ ... :List of 1 [11:05:44.204] | : ..$ b: [11:05:44.204] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.204] | : $ ...future.elements_ii : NULL [11:05:44.204] | : $ ...future.seeds_ii : NULL [11:05:44.204] | : $ ...future.globals.maxSize: NULL [11:05:44.204] | : - attr(*, "where")=List of 5 [11:05:44.204] | : ..$ ...future.FUN : [11:05:44.204] | : ..$ ... : [11:05:44.204] | : ..$ ...future.elements_ii : [11:05:44.204] | : ..$ ...future.seeds_ii : [11:05:44.204] | : ..$ ...future.globals.maxSize: [11:05:44.204] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.204] | : - attr(*, "resolved")= logi FALSE [11:05:44.204] | : - attr(*, "total_size")= num 4260 [11:05:44.210] | : Number of futures (= number of chunks): 1 [11:05:44.210] | : Launching 1 futures (chunks) ... [11:05:44.210] | : Chunk #1 of 1 ... [11:05:44.211] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.211] | : + additional globals found: [n=0] [11:05:44.211] | : + additional namespaces needed: [n=0] [11:05:44.212] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.212] | : - seeds: [11:05:44.212] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.215] | : Created future: [11:05:44.215] | : MultisessionFuture: [11:05:44.215] | : Label: 'future_lapply-1' [11:05:44.215] | : Expression: [11:05:44.215] | : { [11:05:44.215] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.215] | : "# expression in do.call(), because function called uses '...' " [11:05:44.215] | : "# as a global variable " [11:05:44.215] | : do.call(function(...) { [11:05:44.215] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.215] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.215] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.215] | : "# anonymous function. " [11:05:44.215] | : "# " [11:05:44.215] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.215] | : "# function environment of FUN() to the calling environment. " [11:05:44.215] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.215] | : "# global environment, which is where globals are written. " [11:05:44.215] | : penv <- env <- environment(...future.FUN) [11:05:44.215] | : repeat { [11:05:44.215] | : if (identical(env, globalenv()) || identical(env, [11:05:44.215] | : emptyenv())) [11:05:44.215] | : break [11:05:44.215] | : penv <- env [11:05:44.215] | : env <- parent.env(env) [11:05:44.215] | : } [11:05:44.215] | : if (identical(penv, globalenv())) { [11:05:44.215] | : environment(...future.FUN) <- environment() [11:05:44.215] | : } [11:05:44.215] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.215] | : !isNamespace(penv)) { [11:05:44.215] | : parent.env(penv) <- environment() [11:05:44.215] | : } [11:05:44.215] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.215] | : { [11:05:44.215] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.215] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.215] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.215] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.215] | : on.exit(options(oopts), add = TRUE) [11:05:44.215] | : } [11:05:44.215] | : { [11:05:44.215] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.215] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.215] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.215] | : { [11:05:44.215] | : ...future.FUN(...future.X_jj, ...) [11:05:44.215] | : } [11:05:44.215] | : }) [11:05:44.215] | : } [11:05:44.215] | : } [11:05:44.215] | : }, args = future.call.arguments) [11:05:44.215] | : } [11:05:44.215] | : Globals: 5 objects totaling 4.44 KiB (function '...future.FUN' of 332 bytes, DotDotDotList 'future.call.arguments' of 279 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.215] | : Packages: [11:05:44.215] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.215] | : Capture standard output: TRUE [11:05:44.215] | : Capture condition classes: 'condition' (excluding '') [11:05:44.215] | : Immediate condition classes: 'immediateCondition' [11:05:44.215] | : Lazy evaluation: FALSE [11:05:44.215] | : Local evaluation: TRUE [11:05:44.215] | : Early signaling: FALSE [11:05:44.215] | : Actions: [n=1] 'run' [11:05:44.215] | : State: 'running' ("Future is being evaluated") [11:05:44.215] | : Resolved: TRUE [11:05:44.215] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-22 [11:05:44.215] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.215] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.215] | : Value: [11:05:44.215] | : Conditions captured: [11:05:44.224] | : Chunk #1 of 1 ... DONE [11:05:44.224] | : Launching 1 futures (chunks) ... DONE [11:05:44.224] | : Resolving 1 futures (chunks) ... [11:05:44.225] | : - Number of value chunks collected: 1 [11:05:44.225] | : Resolving 1 futures (chunks) ... DONE [11:05:44.225] | : Reducing values from 1 chunks ... [11:05:44.226] | : - Number of values collected after concatenation: 1 [11:05:44.226] | : - Number of values expected: 1 [11:05:44.226] | : Reducing values from 1 chunks ... DONE [11:05:44.226] | future_lapply() -> future_xapply() ... done [11:05:44.226] future_lapply() ... done [11:05:44.226] future_lapply() ... [11:05:44.227] | Globals in FUN(): [n=1] 'typeof' [11:05:44.228] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.228] | future_lapply() -> future_xapply() ... [11:05:44.228] | : Number of chunks: 1 [11:05:44.228] | : getGlobalsAndPackagesXApply() ... [11:05:44.229] | : . future.globals: TRUE [11:05:44.241] | : . globals found/used: [n=1] 'FUN' [11:05:44.241] | : . needed namespaces: [n=0] [11:05:44.242] | : . use_args: TRUE [11:05:44.242] | : . Getting '...' globals ... [11:05:44.243] | : . ' '...' content: [n=1] 'b' [11:05:44.243] | : . ' List of 1 [11:05:44.243] | : . ' $ ...:List of 1 [11:05:44.243] | : . ' ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [11:05:44.243] | : . ' .. .. ..@ slots :List of 4 [11:05:44.243] | : . ' .. .. .. ..$ .Data : chr "function" [11:05:44.243] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. ..$ target : chr "signature" [11:05:44.243] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. ..$ defined: chr "signature" [11:05:44.243] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. ..$ generic: chr "character" [11:05:44.243] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. ..@ contains :List of 4 [11:05:44.243] | : . ' .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "function" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr(0) [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 1 [11:05:44.243] | : . ' .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr "function" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 2 [11:05:44.243] | : . ' .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr "function" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 2 [11:05:44.243] | : . ' .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "optionalMethod" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr "function" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 3 [11:05:44.243] | : . ' .. .. ..@ virtual : logi FALSE [11:05:44.243] | : . ' .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [11:05:44.243] | : . ' list() [11:05:44.243] | : . ' .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [11:05:44.243] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:44.243] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [11:05:44.243] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [11:05:44.243] | : . ' .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [11:05:44.243] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:44.243] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [11:05:44.243] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [11:05:44.243] | : . ' .. .. .. .. ..$ generic: chr(0) [11:05:44.243] | : . ' .. .. ..@ validity : NULL [11:05:44.243] | : . ' .. .. ..@ access : list() [11:05:44.243] | : . ' .. .. ..@ className : chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. ..@ subclasses:List of 7 [11:05:44.243] | : . ' .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr(0) [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 1 [11:05:44.243] | : . ' .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr(0) [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 1 [11:05:44.243] | : . ' .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr(0) [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 1 [11:05:44.243] | : . ' .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr(0) [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 1 [11:05:44.243] | : . ' .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 2 [11:05:44.243] | : . ' .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr "MethodWithNext" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 2 [11:05:44.243] | : . ' .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.243] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ package : chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.243] | : . ' .. .. .. .. .. ..@ test :function (object) [11:05:44.243] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.243] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.243] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:44.243] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.243] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.243] | : . ' .. .. .. .. .. ..@ distance : num 2 [11:05:44.243] | : . ' .. .. ..@ versionKey: [11:05:44.243] | : . ' .. .. ..@ sealed : logi TRUE [11:05:44.243] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.243] | : . ' - attr(*, "where")=List of 1 [11:05:44.243] | : . ' ..$ ...: [11:05:44.243] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.243] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.243] | : . ' - attr(*, "total_size")= num NA [11:05:44.325] | : . Getting '...' globals ... done [11:05:44.329] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:44.329] | : . List of 2 [11:05:44.329] | : . $ ...future.FUN:function (a, b) [11:05:44.329] | : . $ ... :List of 1 [11:05:44.329] | : . ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [11:05:44.329] | : . .. .. ..@ slots :List of 4 [11:05:44.329] | : . .. .. .. ..$ .Data : chr "function" [11:05:44.329] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. ..$ target : chr "signature" [11:05:44.329] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. ..$ defined: chr "signature" [11:05:44.329] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. ..$ generic: chr "character" [11:05:44.329] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. ..@ contains :List of 4 [11:05:44.329] | : . .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "function" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr(0) [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 1 [11:05:44.329] | : . .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr "function" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 2 [11:05:44.329] | : . .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr "function" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 2 [11:05:44.329] | : . .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "optionalMethod" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr "function" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 3 [11:05:44.329] | : . .. .. ..@ virtual : logi FALSE [11:05:44.329] | : . .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [11:05:44.329] | : . list() [11:05:44.329] | : . .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [11:05:44.329] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:44.329] | : . .. .. .. .. .. .. ..@ names : chr(0) [11:05:44.329] | : . .. .. .. .. .. .. ..@ package: chr(0) [11:05:44.329] | : . .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [11:05:44.329] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:44.329] | : . .. .. .. .. .. .. ..@ names : chr(0) [11:05:44.329] | : . .. .. .. .. .. .. ..@ package: chr(0) [11:05:44.329] | : . .. .. .. .. ..$ generic: chr(0) [11:05:44.329] | : . .. .. ..@ validity : NULL [11:05:44.329] | : . .. .. ..@ access : list() [11:05:44.329] | : . .. .. ..@ className : chr "MethodDefinition" [11:05:44.329] | : . .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. ..@ subclasses:List of 7 [11:05:44.329] | : . .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr(0) [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 1 [11:05:44.329] | : . .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr(0) [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 1 [11:05:44.329] | : . .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr(0) [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 1 [11:05:44.329] | : . .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr(0) [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 1 [11:05:44.329] | : . .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 2 [11:05:44.329] | : . .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr "MethodWithNext" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 2 [11:05:44.329] | : . .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.329] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ package : chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.329] | : . .. .. .. .. .. ..@ test :function (object) [11:05:44.329] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.329] | : . .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.329] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:44.329] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.329] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.329] | : . .. .. .. .. .. ..@ distance : num 2 [11:05:44.329] | : . .. .. ..@ versionKey: [11:05:44.329] | : . .. .. ..@ sealed : logi TRUE [11:05:44.329] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.329] | : . - attr(*, "where")=List of 2 [11:05:44.329] | : . ..$ ...future.FUN: [11:05:44.329] | : . ..$ ... : [11:05:44.329] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.329] | : . - attr(*, "resolved")= logi FALSE [11:05:44.329] | : . - attr(*, "total_size")= num 106127 [11:05:44.404] | : . Packages to be attached in all futures: [n=0] [11:05:44.404] | : getGlobalsAndPackagesXApply() ... done [11:05:44.404] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.404] | : List of 5 [11:05:44.404] | : $ ...future.FUN :function (a, b) [11:05:44.404] | : $ ... :List of 1 [11:05:44.404] | : ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [11:05:44.404] | : .. .. ..@ slots :List of 4 [11:05:44.404] | : .. .. .. ..$ .Data : chr "function" [11:05:44.404] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. ..$ target : chr "signature" [11:05:44.404] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. ..$ defined: chr "signature" [11:05:44.404] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. ..$ generic: chr "character" [11:05:44.404] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. ..@ contains :List of 4 [11:05:44.404] | : .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "function" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr(0) [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 1 [11:05:44.404] | : .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr "function" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 2 [11:05:44.404] | : .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr "function" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 2 [11:05:44.404] | : .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "optionalMethod" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr "function" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 3 [11:05:44.404] | : .. .. ..@ virtual : logi FALSE [11:05:44.404] | : .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [11:05:44.404] | : list() [11:05:44.404] | : .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [11:05:44.404] | : .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:44.404] | : .. .. .. .. .. .. ..@ names : chr(0) [11:05:44.404] | : .. .. .. .. .. .. ..@ package: chr(0) [11:05:44.404] | : .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [11:05:44.404] | : .. .. .. .. .. .. ..@ .Data : chr(0) [11:05:44.404] | : .. .. .. .. .. .. ..@ names : chr(0) [11:05:44.404] | : .. .. .. .. .. .. ..@ package: chr(0) [11:05:44.404] | : .. .. .. .. ..$ generic: chr(0) [11:05:44.404] | : .. .. ..@ validity : NULL [11:05:44.404] | : .. .. ..@ access : list() [11:05:44.404] | : .. .. ..@ className : chr "MethodDefinition" [11:05:44.404] | : .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. ..@ subclasses:List of 7 [11:05:44.404] | : .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr(0) [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 1 [11:05:44.404] | : .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr(0) [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 1 [11:05:44.404] | : .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr(0) [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 1 [11:05:44.404] | : .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr(0) [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 1 [11:05:44.404] | : .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 2 [11:05:44.404] | : .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr "MethodWithNext" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 2 [11:05:44.404] | : .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [11:05:44.404] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ package : chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [11:05:44.404] | : .. .. .. .. .. ..@ test :function (object) [11:05:44.404] | : .. .. .. .. .. ..@ replace :function (from, to, value) [11:05:44.404] | : .. .. .. .. .. ..@ simple : logi TRUE [11:05:44.404] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [11:05:44.404] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [11:05:44.404] | : .. .. .. .. .. ..@ dataPart : logi FALSE [11:05:44.404] | : .. .. .. .. .. ..@ distance : num 2 [11:05:44.404] | : .. .. ..@ versionKey: [11:05:44.404] | : .. .. ..@ sealed : logi TRUE [11:05:44.404] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.404] | : $ ...future.elements_ii : NULL [11:05:44.404] | : $ ...future.seeds_ii : NULL [11:05:44.404] | : $ ...future.globals.maxSize: NULL [11:05:44.404] | : - attr(*, "where")=List of 5 [11:05:44.404] | : ..$ ...future.FUN : [11:05:44.404] | : ..$ ... : [11:05:44.404] | : ..$ ...future.elements_ii : [11:05:44.404] | : ..$ ...future.seeds_ii : [11:05:44.404] | : ..$ ...future.globals.maxSize: [11:05:44.404] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.404] | : - attr(*, "resolved")= logi FALSE [11:05:44.404] | : - attr(*, "total_size")= num 106127 [11:05:44.478] | : Number of futures (= number of chunks): 1 [11:05:44.478] | : Launching 1 futures (chunks) ... [11:05:44.478] | : Chunk #1 of 1 ... [11:05:44.479] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.479] | : + additional globals found: [n=0] [11:05:44.480] | : + additional namespaces needed: [n=0] [11:05:44.480] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.480] | : - seeds: [11:05:44.480] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.484] | : Created future: [11:05:44.484] | : MultisessionFuture: [11:05:44.484] | : Label: 'future_lapply-1' [11:05:44.484] | : Expression: [11:05:44.484] | : { [11:05:44.484] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.484] | : "# expression in do.call(), because function called uses '...' " [11:05:44.484] | : "# as a global variable " [11:05:44.484] | : do.call(function(...) { [11:05:44.484] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.484] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.484] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.484] | : "# anonymous function. " [11:05:44.484] | : "# " [11:05:44.484] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.484] | : "# function environment of FUN() to the calling environment. " [11:05:44.484] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.484] | : "# global environment, which is where globals are written. " [11:05:44.484] | : penv <- env <- environment(...future.FUN) [11:05:44.484] | : repeat { [11:05:44.484] | : if (identical(env, globalenv()) || identical(env, [11:05:44.484] | : emptyenv())) [11:05:44.484] | : break [11:05:44.484] | : penv <- env [11:05:44.484] | : env <- parent.env(env) [11:05:44.484] | : } [11:05:44.484] | : if (identical(penv, globalenv())) { [11:05:44.484] | : environment(...future.FUN) <- environment() [11:05:44.484] | : } [11:05:44.484] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.484] | : !isNamespace(penv)) { [11:05:44.484] | : parent.env(penv) <- environment() [11:05:44.484] | : } [11:05:44.484] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.484] | : { [11:05:44.484] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.484] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.484] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.484] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.484] | : on.exit(options(oopts), add = TRUE) [11:05:44.484] | : } [11:05:44.484] | : { [11:05:44.484] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.484] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.484] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.484] | : { [11:05:44.484] | : ...future.FUN(...future.X_jj, ...) [11:05:44.484] | : } [11:05:44.484] | : }) [11:05:44.484] | : } [11:05:44.484] | : } [11:05:44.484] | : }, args = future.call.arguments) [11:05:44.484] | : } [11:05:44.484] | : Globals: 5 objects totaling 103.92 KiB (DotDotDotList 'future.call.arguments' of 50.30 KiB, function '...future.FUN' of 332 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.484] | : Packages: [11:05:44.484] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.484] | : Capture standard output: TRUE [11:05:44.484] | : Capture condition classes: 'condition' (excluding '') [11:05:44.484] | : Immediate condition classes: 'immediateCondition' [11:05:44.484] | : Lazy evaluation: FALSE [11:05:44.484] | : Local evaluation: TRUE [11:05:44.484] | : Early signaling: FALSE [11:05:44.484] | : Actions: [n=1] 'run' [11:05:44.484] | : State: 'running' ("Future is being evaluated") [11:05:44.484] | : Resolved: TRUE [11:05:44.484] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-23 [11:05:44.484] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.484] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.484] | : Value: [11:05:44.484] | : Conditions captured: [11:05:44.492] | : Chunk #1 of 1 ... DONE [11:05:44.492] | : Launching 1 futures (chunks) ... DONE [11:05:44.492] | : Resolving 1 futures (chunks) ... [11:05:44.493] | : - Number of value chunks collected: 1 [11:05:44.493] | : Resolving 1 futures (chunks) ... DONE [11:05:44.493] | : Reducing values from 1 chunks ... [11:05:44.494] | : - Number of values collected after concatenation: 1 [11:05:44.494] | : - Number of values expected: 1 [11:05:44.494] | : Reducing values from 1 chunks ... DONE [11:05:44.494] | future_lapply() -> future_xapply() ... done [11:05:44.494] future_lapply() ... done - future_lapply(X, ...) - 'X' containing globals ... List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 [11:05:44.497] future_lapply() ... [11:05:44.498] | Globals in FUN(): [n=0] [11:05:44.498] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.498] | future_lapply() -> future_xapply() ... [11:05:44.499] | : Number of chunks: 2 [11:05:44.499] | : getGlobalsAndPackagesXApply() ... [11:05:44.499] | : . future.globals: TRUE [11:05:44.505] | : . globals found/used: [n=1] 'FUN' [11:05:44.505] | : . needed namespaces: [n=0] [11:05:44.505] | : . use_args: TRUE [11:05:44.505] | : . Getting '...' globals ... [11:05:44.506] | : . ' '...' content: [n=0] [11:05:44.506] | : . ' List of 1 [11:05:44.506] | : . ' $ ...: list() [11:05:44.506] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.506] | : . ' - attr(*, "where")=List of 1 [11:05:44.506] | : . ' ..$ ...: [11:05:44.506] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.506] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.506] | : . ' - attr(*, "total_size")= num NA [11:05:44.509] | : . Getting '...' globals ... done [11:05:44.510] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:44.510] | : . List of 2 [11:05:44.510] | : . $ ...future.FUN:function (f) [11:05:44.510] | : . $ ... : list() [11:05:44.510] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.510] | : . - attr(*, "where")=List of 2 [11:05:44.510] | : . ..$ ...future.FUN: [11:05:44.510] | : . ..$ ... : [11:05:44.510] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.510] | : . - attr(*, "resolved")= logi FALSE [11:05:44.510] | : . - attr(*, "total_size")= num 5165 [11:05:44.513] | : . Packages to be attached in all futures: [n=0] [11:05:44.513] | : getGlobalsAndPackagesXApply() ... done [11:05:44.514] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.514] | : List of 5 [11:05:44.514] | : $ ...future.FUN :function (f) [11:05:44.514] | : $ ... : list() [11:05:44.514] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.514] | : $ ...future.elements_ii : NULL [11:05:44.514] | : $ ...future.seeds_ii : NULL [11:05:44.514] | : $ ...future.globals.maxSize: NULL [11:05:44.514] | : - attr(*, "where")=List of 5 [11:05:44.514] | : ..$ ...future.FUN : [11:05:44.514] | : ..$ ... : [11:05:44.514] | : ..$ ...future.elements_ii : [11:05:44.514] | : ..$ ...future.seeds_ii : [11:05:44.514] | : ..$ ...future.globals.maxSize: [11:05:44.514] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.514] | : - attr(*, "resolved")= logi FALSE [11:05:44.514] | : - attr(*, "total_size")= num 5165 [11:05:44.519] | : Number of futures (= number of chunks): 2 [11:05:44.519] | : Launching 2 futures (chunks) ... [11:05:44.519] | : Chunk #1 of 2 ... [11:05:44.520] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.539] | : + additional globals found: [n=2] 'a', 'b' [11:05:44.540] | : + additional namespaces needed: [n=0] [11:05:44.540] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.540] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [11:05:44.540] | : - seeds: [11:05:44.540] | : - All globals exported: [n=7] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize', 'a', 'b' [11:05:44.543] | : Created future: [11:05:44.544] | : MultisessionFuture: [11:05:44.544] | : Label: 'future_lapply-1' [11:05:44.544] | : Expression: [11:05:44.544] | : { [11:05:44.544] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.544] | : "# expression in do.call(), because function called uses '...' " [11:05:44.544] | : "# as a global variable " [11:05:44.544] | : do.call(function(...) { [11:05:44.544] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.544] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.544] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.544] | : "# anonymous function. " [11:05:44.544] | : "# " [11:05:44.544] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.544] | : "# function environment of FUN() to the calling environment. " [11:05:44.544] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.544] | : "# global environment, which is where globals are written. " [11:05:44.544] | : penv <- env <- environment(...future.FUN) [11:05:44.544] | : repeat { [11:05:44.544] | : if (identical(env, globalenv()) || identical(env, [11:05:44.544] | : emptyenv())) [11:05:44.544] | : break [11:05:44.544] | : penv <- env [11:05:44.544] | : env <- parent.env(env) [11:05:44.544] | : } [11:05:44.544] | : if (identical(penv, globalenv())) { [11:05:44.544] | : environment(...future.FUN) <- environment() [11:05:44.544] | : } [11:05:44.544] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.544] | : !isNamespace(penv)) { [11:05:44.544] | : parent.env(penv) <- environment() [11:05:44.544] | : } [11:05:44.544] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.544] | : { [11:05:44.544] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.544] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.544] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.544] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.544] | : on.exit(options(oopts), add = TRUE) [11:05:44.544] | : } [11:05:44.544] | : { [11:05:44.544] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.544] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.544] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.544] | : { [11:05:44.544] | : ...future.FUN(...future.X_jj, ...) [11:05:44.544] | : } [11:05:44.544] | : }) [11:05:44.544] | : } [11:05:44.544] | : } [11:05:44.544] | : }, args = future.call.arguments) [11:05:44.544] | : } [11:05:44.544] | : Globals: 7 objects totaling 5.90 KiB (list '...future.elements_ii' of 588 bytes, function '...future.FUN' of 225 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric 'a' of 39 bytes, numeric 'b' of 39 bytes, ...) [11:05:44.544] | : Packages: [11:05:44.544] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.544] | : Capture standard output: TRUE [11:05:44.544] | : Capture condition classes: 'condition' (excluding '') [11:05:44.544] | : Immediate condition classes: 'immediateCondition' [11:05:44.544] | : Lazy evaluation: FALSE [11:05:44.544] | : Local evaluation: TRUE [11:05:44.544] | : Early signaling: FALSE [11:05:44.544] | : Actions: [n=1] 'run' [11:05:44.544] | : State: 'running' ("Future is being evaluated") [11:05:44.544] | : Resolved: TRUE [11:05:44.544] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-24 [11:05:44.544] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.544] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.544] | : Value: [11:05:44.544] | : Conditions captured: [11:05:44.551] | : Chunk #1 of 2 ... DONE [11:05:44.551] | : Chunk #2 of 2 ... [11:05:44.551] | : - Finding globals in 'X' for chunk #2 ... [11:05:44.567] | : + additional globals found: [n=2] 'a', 'b' [11:05:44.567] | : + additional namespaces needed: [n=1] 'tools' [11:05:44.568] | : - Finding globals in 'X' for chunk #2 ... DONE [11:05:44.568] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [11:05:44.568] | : - seeds: [11:05:44.568] | : - All globals exported: [n=7] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize', 'a', 'b' [11:05:44.571] | : Created future: [11:05:44.571] | : MultisessionFuture: [11:05:44.571] | : Label: 'future_lapply-2' [11:05:44.571] | : Expression: [11:05:44.571] | : { [11:05:44.571] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.571] | : "# expression in do.call(), because function called uses '...' " [11:05:44.571] | : "# as a global variable " [11:05:44.571] | : do.call(function(...) { [11:05:44.571] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.571] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.571] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.571] | : "# anonymous function. " [11:05:44.571] | : "# " [11:05:44.571] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.571] | : "# function environment of FUN() to the calling environment. " [11:05:44.571] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.571] | : "# global environment, which is where globals are written. " [11:05:44.571] | : penv <- env <- environment(...future.FUN) [11:05:44.571] | : repeat { [11:05:44.571] | : if (identical(env, globalenv()) || identical(env, [11:05:44.571] | : emptyenv())) [11:05:44.571] | : break [11:05:44.571] | : penv <- env [11:05:44.571] | : env <- parent.env(env) [11:05:44.571] | : } [11:05:44.571] | : if (identical(penv, globalenv())) { [11:05:44.571] | : environment(...future.FUN) <- environment() [11:05:44.571] | : } [11:05:44.571] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.571] | : !isNamespace(penv)) { [11:05:44.571] | : parent.env(penv) <- environment() [11:05:44.571] | : } [11:05:44.571] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.571] | : { [11:05:44.571] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.571] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.571] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.571] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.571] | : on.exit(options(oopts), add = TRUE) [11:05:44.571] | : } [11:05:44.571] | : { [11:05:44.571] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.571] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.571] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.571] | : { [11:05:44.571] | : ...future.FUN(...future.X_jj, ...) [11:05:44.571] | : } [11:05:44.571] | : }) [11:05:44.571] | : } [11:05:44.571] | : } [11:05:44.571] | : }, args = future.call.arguments) [11:05:44.571] | : } [11:05:44.571] | : Globals: 7 objects totaling 6.19 KiB (list '...future.elements_ii' of 903 bytes, function '...future.FUN' of 225 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric 'a' of 39 bytes, numeric 'b' of 39 bytes, ...) [11:05:44.571] | : Packages: 1 packages ('tools') [11:05:44.571] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.571] | : Capture standard output: TRUE [11:05:44.571] | : Capture condition classes: 'condition' (excluding '') [11:05:44.571] | : Immediate condition classes: 'immediateCondition' [11:05:44.571] | : Lazy evaluation: FALSE [11:05:44.571] | : Local evaluation: TRUE [11:05:44.571] | : Early signaling: FALSE [11:05:44.571] | : Actions: [n=1] 'run' [11:05:44.571] | : State: 'running' ("Future is being evaluated") [11:05:44.571] | : Resolved: TRUE [11:05:44.571] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-25 [11:05:44.571] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.571] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.571] | : Value: [11:05:44.571] | : Conditions captured: [11:05:44.585] | : Chunk #2 of 2 ... DONE [11:05:44.585] | : Launching 2 futures (chunks) ... DONE [11:05:44.586] | : Resolving 2 futures (chunks) ... [11:05:44.587] | : - Number of value chunks collected: 2 [11:05:44.587] | : Resolving 2 futures (chunks) ... DONE [11:05:44.587] | : Reducing values from 2 chunks ... [11:05:44.587] | : - Number of values collected after concatenation: 4 [11:05:44.587] | : - Number of values expected: 4 [11:05:44.588] | : Reducing values from 2 chunks ... DONE [11:05:44.588] | future_lapply() -> future_xapply() ... done [11:05:44.588] future_lapply() ... done List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 - future_lapply(X, ...) - '{ a <- a + 1; a }' ... [11:05:44.591] future_lapply() ... [11:05:44.592] | Globals in FUN(): [n=4] '{', '<-', 'a', '+' [11:05:44.592] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.593] | future_lapply() -> future_xapply() ... [11:05:44.593] | : Number of chunks: 1 [11:05:44.593] | : getGlobalsAndPackagesXApply() ... [11:05:44.593] | : . future.globals: TRUE [11:05:44.604] | : . globals found/used: [n=2] 'FUN', 'a' [11:05:44.605] | : . needed namespaces: [n=0] [11:05:44.605] | : . use_args: TRUE [11:05:44.605] | : . Getting '...' globals ... [11:05:44.606] | : . ' '...' content: [n=0] [11:05:44.606] | : . ' List of 1 [11:05:44.606] | : . ' $ ...: list() [11:05:44.606] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.606] | : . ' - attr(*, "where")=List of 1 [11:05:44.606] | : . ' ..$ ...: [11:05:44.606] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.606] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.606] | : . ' - attr(*, "total_size")= num NA [11:05:44.609] | : . Getting '...' globals ... done [11:05:44.610] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [11:05:44.610] | : . List of 3 [11:05:44.610] | : . $ ...future.FUN:function (ii) [11:05:44.610] | : . $ a : num 1 [11:05:44.610] | : . $ ... : list() [11:05:44.610] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.610] | : . - attr(*, "where")=List of 3 [11:05:44.610] | : . ..$ ...future.FUN: [11:05:44.610] | : . ..$ a : [11:05:44.610] | : . ..$ ... : [11:05:44.610] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.610] | : . - attr(*, "resolved")= logi FALSE [11:05:44.610] | : . - attr(*, "total_size")= num 4124 [11:05:44.614] | : . Packages to be attached in all futures: [n=0] [11:05:44.614] | : getGlobalsAndPackagesXApply() ... done [11:05:44.615] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.615] | : List of 6 [11:05:44.615] | : $ ...future.FUN :function (ii) [11:05:44.615] | : $ a : num 1 [11:05:44.615] | : $ ... : list() [11:05:44.615] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.615] | : $ ...future.elements_ii : NULL [11:05:44.615] | : $ ...future.seeds_ii : NULL [11:05:44.615] | : $ ...future.globals.maxSize: NULL [11:05:44.615] | : - attr(*, "where")=List of 6 [11:05:44.615] | : ..$ ...future.FUN : [11:05:44.615] | : ..$ a : [11:05:44.615] | : ..$ ... : [11:05:44.615] | : ..$ ...future.elements_ii : [11:05:44.615] | : ..$ ...future.seeds_ii : [11:05:44.615] | : ..$ ...future.globals.maxSize: [11:05:44.615] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.615] | : - attr(*, "resolved")= logi FALSE [11:05:44.615] | : - attr(*, "total_size")= num 4124 [11:05:44.625] | : Number of futures (= number of chunks): 1 [11:05:44.625] | : Launching 1 futures (chunks) ... [11:05:44.625] | : Chunk #1 of 1 ... [11:05:44.625] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.626] | : + additional globals found: [n=0] [11:05:44.626] | : + additional namespaces needed: [n=0] [11:05:44.626] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.626] | : - seeds: [11:05:44.626] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.629] | : Created future: [11:05:44.629] | : MultisessionFuture: [11:05:44.629] | : Label: 'future_lapply-1' [11:05:44.629] | : Expression: [11:05:44.629] | : { [11:05:44.629] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.629] | : "# expression in do.call(), because function called uses '...' " [11:05:44.629] | : "# as a global variable " [11:05:44.629] | : do.call(function(...) { [11:05:44.629] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.629] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.629] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.629] | : "# anonymous function. " [11:05:44.629] | : "# " [11:05:44.629] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.629] | : "# function environment of FUN() to the calling environment. " [11:05:44.629] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.629] | : "# global environment, which is where globals are written. " [11:05:44.629] | : penv <- env <- environment(...future.FUN) [11:05:44.629] | : repeat { [11:05:44.629] | : if (identical(env, globalenv()) || identical(env, [11:05:44.629] | : emptyenv())) [11:05:44.629] | : break [11:05:44.629] | : penv <- env [11:05:44.629] | : env <- parent.env(env) [11:05:44.629] | : } [11:05:44.629] | : if (identical(penv, globalenv())) { [11:05:44.629] | : environment(...future.FUN) <- environment() [11:05:44.629] | : } [11:05:44.629] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.629] | : !isNamespace(penv)) { [11:05:44.629] | : parent.env(penv) <- environment() [11:05:44.629] | : } [11:05:44.629] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.629] | : { [11:05:44.629] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.629] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.629] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.629] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.629] | : on.exit(options(oopts), add = TRUE) [11:05:44.629] | : } [11:05:44.629] | : { [11:05:44.629] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.629] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.629] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.629] | : { [11:05:44.629] | : ...future.FUN(...future.X_jj, ...) [11:05:44.629] | : } [11:05:44.629] | : }) [11:05:44.629] | : } [11:05:44.629] | : } [11:05:44.629] | : }, args = future.call.arguments) [11:05:44.629] | : } [11:05:44.629] | : Globals: 6 objects totaling 4.29 KiB (function '...future.FUN' of 511 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes, ...) [11:05:44.629] | : Packages: [11:05:44.629] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.629] | : Capture standard output: TRUE [11:05:44.629] | : Capture condition classes: 'condition' (excluding '') [11:05:44.629] | : Immediate condition classes: 'immediateCondition' [11:05:44.629] | : Lazy evaluation: FALSE [11:05:44.629] | : Local evaluation: TRUE [11:05:44.629] | : Early signaling: FALSE [11:05:44.629] | : Actions: [n=1] 'run' [11:05:44.629] | : State: 'running' ("Future is being evaluated") [11:05:44.629] | : Resolved: TRUE [11:05:44.629] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-26 [11:05:44.629] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.629] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.629] | : Value: [11:05:44.629] | : Conditions captured: [11:05:44.639] | : Chunk #1 of 1 ... DONE [11:05:44.639] | : Launching 1 futures (chunks) ... DONE [11:05:44.640] | : Resolving 1 futures (chunks) ... [11:05:44.640] | : - Number of value chunks collected: 1 [11:05:44.641] | : Resolving 1 futures (chunks) ... DONE [11:05:44.641] | : Reducing values from 1 chunks ... [11:05:44.641] | : - Number of values collected after concatenation: 1 [11:05:44.641] | : - Number of values expected: 1 [11:05:44.641] | : Reducing values from 1 chunks ... DONE [11:05:44.641] | future_lapply() -> future_xapply() ... done [11:05:44.641] future_lapply() ... done - future_lapply(X, ...) - '{ a; a <- a + 1 }' ... [11:05:44.642] future_lapply() ... [11:05:44.643] | Globals in FUN(): [n=4] '{', 'a', '<-', '+' [11:05:44.643] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.643] | future_lapply() -> future_xapply() ... [11:05:44.644] | : Number of chunks: 1 [11:05:44.644] | : getGlobalsAndPackagesXApply() ... [11:05:44.644] | : . future.globals: TRUE [11:05:44.655] | : . globals found/used: [n=2] 'FUN', 'a' [11:05:44.655] | : . needed namespaces: [n=0] [11:05:44.655] | : . use_args: TRUE [11:05:44.656] | : . Getting '...' globals ... [11:05:44.656] | : . ' '...' content: [n=0] [11:05:44.656] | : . ' List of 1 [11:05:44.656] | : . ' $ ...: list() [11:05:44.656] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.656] | : . ' - attr(*, "where")=List of 1 [11:05:44.656] | : . ' ..$ ...: [11:05:44.656] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.656] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.656] | : . ' - attr(*, "total_size")= num NA [11:05:44.660] | : . Getting '...' globals ... done [11:05:44.660] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [11:05:44.660] | : . List of 3 [11:05:44.660] | : . $ ...future.FUN:function (ii) [11:05:44.660] | : . $ a : num 1 [11:05:44.660] | : . $ ... : list() [11:05:44.660] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.660] | : . - attr(*, "where")=List of 3 [11:05:44.660] | : . ..$ ...future.FUN: [11:05:44.660] | : . ..$ a : [11:05:44.660] | : . ..$ ... : [11:05:44.660] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.660] | : . - attr(*, "resolved")= logi FALSE [11:05:44.660] | : . - attr(*, "total_size")= num 4140 [11:05:44.664] | : . Packages to be attached in all futures: [n=0] [11:05:44.665] | : getGlobalsAndPackagesXApply() ... done [11:05:44.665] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.665] | : List of 6 [11:05:44.665] | : $ ...future.FUN :function (ii) [11:05:44.665] | : $ a : num 1 [11:05:44.665] | : $ ... : list() [11:05:44.665] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.665] | : $ ...future.elements_ii : NULL [11:05:44.665] | : $ ...future.seeds_ii : NULL [11:05:44.665] | : $ ...future.globals.maxSize: NULL [11:05:44.665] | : - attr(*, "where")=List of 6 [11:05:44.665] | : ..$ ...future.FUN : [11:05:44.665] | : ..$ a : [11:05:44.665] | : ..$ ... : [11:05:44.665] | : ..$ ...future.elements_ii : [11:05:44.665] | : ..$ ...future.seeds_ii : [11:05:44.665] | : ..$ ...future.globals.maxSize: [11:05:44.665] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.665] | : - attr(*, "resolved")= logi FALSE [11:05:44.665] | : - attr(*, "total_size")= num 4140 [11:05:44.671] | : Number of futures (= number of chunks): 1 [11:05:44.671] | : Launching 1 futures (chunks) ... [11:05:44.672] | : Chunk #1 of 1 ... [11:05:44.672] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.672] | : + additional globals found: [n=0] [11:05:44.672] | : + additional namespaces needed: [n=0] [11:05:44.673] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.673] | : - seeds: [11:05:44.673] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.676] | : Created future: [11:05:44.676] | : MultisessionFuture: [11:05:44.676] | : Label: 'future_lapply-1' [11:05:44.676] | : Expression: [11:05:44.676] | : { [11:05:44.676] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.676] | : "# expression in do.call(), because function called uses '...' " [11:05:44.676] | : "# as a global variable " [11:05:44.676] | : do.call(function(...) { [11:05:44.676] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.676] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.676] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.676] | : "# anonymous function. " [11:05:44.676] | : "# " [11:05:44.676] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.676] | : "# function environment of FUN() to the calling environment. " [11:05:44.676] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.676] | : "# global environment, which is where globals are written. " [11:05:44.676] | : penv <- env <- environment(...future.FUN) [11:05:44.676] | : repeat { [11:05:44.676] | : if (identical(env, globalenv()) || identical(env, [11:05:44.676] | : emptyenv())) [11:05:44.676] | : break [11:05:44.676] | : penv <- env [11:05:44.676] | : env <- parent.env(env) [11:05:44.676] | : } [11:05:44.676] | : if (identical(penv, globalenv())) { [11:05:44.676] | : environment(...future.FUN) <- environment() [11:05:44.676] | : } [11:05:44.676] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.676] | : !isNamespace(penv)) { [11:05:44.676] | : parent.env(penv) <- environment() [11:05:44.676] | : } [11:05:44.676] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.676] | : { [11:05:44.676] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.676] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.676] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.676] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.676] | : on.exit(options(oopts), add = TRUE) [11:05:44.676] | : } [11:05:44.676] | : { [11:05:44.676] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.676] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.676] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.676] | : { [11:05:44.676] | : ...future.FUN(...future.X_jj, ...) [11:05:44.676] | : } [11:05:44.676] | : }) [11:05:44.676] | : } [11:05:44.676] | : } [11:05:44.676] | : }, args = future.call.arguments) [11:05:44.676] | : } [11:05:44.676] | : Globals: 6 objects totaling 4.31 KiB (function '...future.FUN' of 519 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes, ...) [11:05:44.676] | : Packages: [11:05:44.676] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.676] | : Capture standard output: TRUE [11:05:44.676] | : Capture condition classes: 'condition' (excluding '') [11:05:44.676] | : Immediate condition classes: 'immediateCondition' [11:05:44.676] | : Lazy evaluation: FALSE [11:05:44.676] | : Local evaluation: TRUE [11:05:44.676] | : Early signaling: FALSE [11:05:44.676] | : Actions: [n=1] 'run' [11:05:44.676] | : State: 'running' ("Future is being evaluated") [11:05:44.676] | : Resolved: TRUE [11:05:44.676] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-27 [11:05:44.676] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.676] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.676] | : Value: [11:05:44.676] | : Conditions captured: [11:05:44.685] | : Chunk #1 of 1 ... DONE [11:05:44.685] | : Launching 1 futures (chunks) ... DONE [11:05:44.685] | : Resolving 1 futures (chunks) ... [11:05:44.686] | : - Number of value chunks collected: 1 [11:05:44.686] | : Resolving 1 futures (chunks) ... DONE [11:05:44.686] | : Reducing values from 1 chunks ... [11:05:44.686] | : - Number of values collected after concatenation: 1 [11:05:44.687] | : - Number of values expected: 1 [11:05:44.687] | : Reducing values from 1 chunks ... DONE [11:05:44.687] | future_lapply() -> future_xapply() ... done [11:05:44.687] future_lapply() ... done - future_lapply(..., future.globals = ) ... [11:05:44.687] future_lapply() ... [11:05:44.688] | Globals in FUN(): [n=1] 'a' [11:05:44.688] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.688] | future_lapply() -> future_xapply() ... [11:05:44.689] | : Number of chunks: 1 [11:05:44.689] | : getGlobalsAndPackagesXApply() ... [11:05:44.689] | : . future.globals: with names 'a' [11:05:44.690] | : . use_args: TRUE [11:05:44.690] | : . Getting '...' globals ... [11:05:44.691] | : . ' '...' content: [n=0] [11:05:44.691] | : . ' List of 1 [11:05:44.691] | : . ' $ ...: list() [11:05:44.691] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.691] | : . ' - attr(*, "where")=List of 1 [11:05:44.691] | : . ' ..$ ...: [11:05:44.691] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.691] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.691] | : . ' - attr(*, "total_size")= num NA [11:05:44.694] | : . Getting '...' globals ... done [11:05:44.694] | : . Globals to be used in all futures (chunks): [n=3] 'a', '...future.FUN', '...' [11:05:44.694] | : . List of 3 [11:05:44.694] | : . $ a : num 42 [11:05:44.694] | : . $ ...future.FUN:function (x) [11:05:44.694] | : . $ ... : list() [11:05:44.694] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.694] | : . - attr(*, "where")=List of 3 [11:05:44.694] | : . ..$ a : [11:05:44.694] | : . ..$ ...future.FUN: [11:05:44.694] | : . ..$ ... : [11:05:44.694] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.694] | : . - attr(*, "resolved")= logi FALSE [11:05:44.694] | : . - attr(*, "total_size")= num NA [11:05:44.699] | : . Packages to be attached in all futures: [n=0] [11:05:44.699] | : getGlobalsAndPackagesXApply() ... done [11:05:44.699] | : Globals pass to each chunk: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.699] | : List of 6 [11:05:44.699] | : $ a : num 42 [11:05:44.699] | : $ ...future.FUN :function (x) [11:05:44.699] | : $ ... : list() [11:05:44.699] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.699] | : $ ...future.elements_ii : NULL [11:05:44.699] | : $ ...future.seeds_ii : NULL [11:05:44.699] | : $ ...future.globals.maxSize: NULL [11:05:44.699] | : - attr(*, "where")=List of 6 [11:05:44.699] | : ..$ a : [11:05:44.699] | : ..$ ...future.FUN : [11:05:44.699] | : ..$ ... : [11:05:44.699] | : ..$ ...future.elements_ii : [11:05:44.699] | : ..$ ...future.seeds_ii : [11:05:44.699] | : ..$ ...future.globals.maxSize: [11:05:44.699] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.699] | : - attr(*, "resolved")= logi FALSE [11:05:44.699] | : - attr(*, "total_size")= num NA [11:05:44.709] | : Number of futures (= number of chunks): 1 [11:05:44.710] | : Launching 1 futures (chunks) ... [11:05:44.710] | : Chunk #1 of 1 ... [11:05:44.710] | : - seeds: [11:05:44.710] | : - All globals exported: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.713] | : Created future: [11:05:44.714] | : MultisessionFuture: [11:05:44.714] | : Label: 'future_lapply-1' [11:05:44.714] | : Expression: [11:05:44.714] | : { [11:05:44.714] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.714] | : "# expression in do.call(), because function called uses '...' " [11:05:44.714] | : "# as a global variable " [11:05:44.714] | : do.call(function(...) { [11:05:44.714] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.714] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.714] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.714] | : "# anonymous function. " [11:05:44.714] | : "# " [11:05:44.714] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.714] | : "# function environment of FUN() to the calling environment. " [11:05:44.714] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.714] | : "# global environment, which is where globals are written. " [11:05:44.714] | : penv <- env <- environment(...future.FUN) [11:05:44.714] | : repeat { [11:05:44.714] | : if (identical(env, globalenv()) || identical(env, [11:05:44.714] | : emptyenv())) [11:05:44.714] | : break [11:05:44.714] | : penv <- env [11:05:44.714] | : env <- parent.env(env) [11:05:44.714] | : } [11:05:44.714] | : if (identical(penv, globalenv())) { [11:05:44.714] | : environment(...future.FUN) <- environment() [11:05:44.714] | : } [11:05:44.714] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.714] | : !isNamespace(penv)) { [11:05:44.714] | : parent.env(penv) <- environment() [11:05:44.714] | : } [11:05:44.714] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.714] | : { [11:05:44.714] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.714] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.714] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.714] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.714] | : on.exit(options(oopts), add = TRUE) [11:05:44.714] | : } [11:05:44.714] | : { [11:05:44.714] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.714] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.714] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.714] | : { [11:05:44.714] | : ...future.FUN(...future.X_jj, ...) [11:05:44.714] | : } [11:05:44.714] | : }) [11:05:44.714] | : } [11:05:44.714] | : } [11:05:44.714] | : }, args = future.call.arguments) [11:05:44.714] | : } [11:05:44.714] | : Globals: 6 objects totaling 4.17 KiB (function '...future.FUN' of 298 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes, ...) [11:05:44.714] | : Packages: [11:05:44.714] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.714] | : Capture standard output: TRUE [11:05:44.714] | : Capture condition classes: 'condition' (excluding '') [11:05:44.714] | : Immediate condition classes: 'immediateCondition' [11:05:44.714] | : Lazy evaluation: FALSE [11:05:44.714] | : Local evaluation: TRUE [11:05:44.714] | : Early signaling: FALSE [11:05:44.714] | : Actions: [n=1] 'run' [11:05:44.714] | : State: 'running' ("Future is being evaluated") [11:05:44.714] | : Resolved: TRUE [11:05:44.714] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-28 [11:05:44.714] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.714] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.714] | : Value: [11:05:44.714] | : Conditions captured: [11:05:44.722] | : Chunk #1 of 1 ... DONE [11:05:44.722] | : Launching 1 futures (chunks) ... DONE [11:05:44.722] | : Resolving 1 futures (chunks) ... [11:05:44.723] | : - Number of value chunks collected: 1 [11:05:44.723] | : Resolving 1 futures (chunks) ... DONE [11:05:44.723] | : Reducing values from 1 chunks ... [11:05:44.723] | : - Number of values collected after concatenation: 1 [11:05:44.723] | : - Number of values expected: 1 [11:05:44.724] | : Reducing values from 1 chunks ... DONE [11:05:44.724] | future_lapply() -> future_xapply() ... done [11:05:44.724] future_lapply() ... done List of 1 $ : num 42 > message("*** future_lapply() - tricky globals ... DONE") *** future_lapply() - tricky globals ... DONE > message("*** future_lapply() - missing arguments ...") *** future_lapply() - missing arguments ... > foo <- function(x, abc) future_lapply(x, FUN = function(y) y) > y <- foo(1:2) [11:05:44.725] future_lapply() ... [11:05:44.726] | Globals in FUN(): [n=0] [11:05:44.726] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.727] | future_lapply() -> future_xapply() ... [11:05:44.727] | : Number of chunks: 2 [11:05:44.727] | : getGlobalsAndPackagesXApply() ... [11:05:44.727] | : . future.globals: TRUE [11:05:44.733] | : . globals found/used: [n=1] 'FUN' [11:05:44.733] | : . needed namespaces: [n=0] [11:05:44.733] | : . use_args: TRUE [11:05:44.734] | : . Getting '...' globals ... [11:05:44.734] | : . ' '...' content: [n=0] [11:05:44.734] | : . ' List of 1 [11:05:44.734] | : . ' $ ...: list() [11:05:44.734] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.734] | : . ' - attr(*, "where")=List of 1 [11:05:44.734] | : . ' ..$ ...: [11:05:44.734] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.734] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.734] | : . ' - attr(*, "total_size")= num NA [11:05:44.737] | : . Getting '...' globals ... done [11:05:44.738] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:44.738] | : . List of 2 [11:05:44.738] | : . $ ...future.FUN:function (y) [11:05:44.738] | : . $ ... : list() [11:05:44.738] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.738] | : . - attr(*, "where")=List of 2 [11:05:44.738] | : . ..$ ...future.FUN: [11:05:44.738] | : . ..$ ... : [11:05:44.738] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.738] | : . - attr(*, "resolved")= logi FALSE [11:05:44.738] | : . - attr(*, "total_size")= num 3716 [11:05:44.741] | : . Packages to be attached in all futures: [n=0] [11:05:44.741] | : getGlobalsAndPackagesXApply() ... done [11:05:44.742] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.742] | : List of 5 [11:05:44.742] | : $ ...future.FUN :function (y) [11:05:44.742] | : $ ... : list() [11:05:44.742] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.742] | : $ ...future.elements_ii : NULL [11:05:44.742] | : $ ...future.seeds_ii : NULL [11:05:44.742] | : $ ...future.globals.maxSize: NULL [11:05:44.742] | : - attr(*, "where")=List of 5 [11:05:44.742] | : ..$ ...future.FUN : [11:05:44.742] | : ..$ ... : [11:05:44.742] | : ..$ ...future.elements_ii : [11:05:44.742] | : ..$ ...future.seeds_ii : [11:05:44.742] | : ..$ ...future.globals.maxSize: [11:05:44.742] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.742] | : - attr(*, "resolved")= logi FALSE [11:05:44.742] | : - attr(*, "total_size")= num 3716 [11:05:44.747] | : Number of futures (= number of chunks): 2 [11:05:44.747] | : Launching 2 futures (chunks) ... [11:05:44.747] | : Chunk #1 of 2 ... [11:05:44.748] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.748] | : + additional globals found: [n=0] [11:05:44.748] | : + additional namespaces needed: [n=0] [11:05:44.748] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.749] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [11:05:44.749] | : - seeds: [11:05:44.749] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.752] | : Created future: [11:05:44.752] | : MultisessionFuture: [11:05:44.752] | : Label: 'future_lapply-1' [11:05:44.752] | : Expression: [11:05:44.752] | : { [11:05:44.752] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.752] | : "# expression in do.call(), because function called uses '...' " [11:05:44.752] | : "# as a global variable " [11:05:44.752] | : do.call(function(...) { [11:05:44.752] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.752] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.752] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.752] | : "# anonymous function. " [11:05:44.752] | : "# " [11:05:44.752] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.752] | : "# function environment of FUN() to the calling environment. " [11:05:44.752] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.752] | : "# global environment, which is where globals are written. " [11:05:44.752] | : penv <- env <- environment(...future.FUN) [11:05:44.752] | : repeat { [11:05:44.752] | : if (identical(env, globalenv()) || identical(env, [11:05:44.752] | : emptyenv())) [11:05:44.752] | : break [11:05:44.752] | : penv <- env [11:05:44.752] | : env <- parent.env(env) [11:05:44.752] | : } [11:05:44.752] | : if (identical(penv, globalenv())) { [11:05:44.752] | : environment(...future.FUN) <- environment() [11:05:44.752] | : } [11:05:44.752] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.752] | : !isNamespace(penv)) { [11:05:44.752] | : parent.env(penv) <- environment() [11:05:44.752] | : } [11:05:44.752] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.752] | : { [11:05:44.752] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.752] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.752] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.752] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.752] | : on.exit(options(oopts), add = TRUE) [11:05:44.752] | : } [11:05:44.752] | : { [11:05:44.752] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.752] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.752] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.752] | : { [11:05:44.752] | : ...future.FUN(...future.X_jj, ...) [11:05:44.752] | : } [11:05:44.752] | : }) [11:05:44.752] | : } [11:05:44.752] | : } [11:05:44.752] | : }, args = future.call.arguments) [11:05:44.752] | : } [11:05:44.752] | : Globals: 5 objects totaling 3.71 KiB (function '...future.FUN' of 295 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.752] | : Packages: [11:05:44.752] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.752] | : Capture standard output: TRUE [11:05:44.752] | : Capture condition classes: 'condition' (excluding '') [11:05:44.752] | : Immediate condition classes: 'immediateCondition' [11:05:44.752] | : Lazy evaluation: FALSE [11:05:44.752] | : Local evaluation: TRUE [11:05:44.752] | : Early signaling: FALSE [11:05:44.752] | : Actions: [n=1] 'run' [11:05:44.752] | : State: 'running' ("Future is being evaluated") [11:05:44.752] | : Resolved: TRUE [11:05:44.752] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-29 [11:05:44.752] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.752] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.752] | : Value: [11:05:44.752] | : Conditions captured: [11:05:44.757] | : Chunk #1 of 2 ... DONE [11:05:44.758] | : Chunk #2 of 2 ... [11:05:44.758] | : - Finding globals in 'X' for chunk #2 ... [11:05:44.758] | : + additional globals found: [n=0] [11:05:44.759] | : + additional namespaces needed: [n=0] [11:05:44.759] | : - Finding globals in 'X' for chunk #2 ... DONE [11:05:44.759] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [11:05:44.759] | : - seeds: [11:05:44.759] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.761] | : Created future: [11:05:44.762] | : MultisessionFuture: [11:05:44.762] | : Label: 'future_lapply-2' [11:05:44.762] | : Expression: [11:05:44.762] | : { [11:05:44.762] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.762] | : "# expression in do.call(), because function called uses '...' " [11:05:44.762] | : "# as a global variable " [11:05:44.762] | : do.call(function(...) { [11:05:44.762] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.762] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.762] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.762] | : "# anonymous function. " [11:05:44.762] | : "# " [11:05:44.762] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.762] | : "# function environment of FUN() to the calling environment. " [11:05:44.762] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.762] | : "# global environment, which is where globals are written. " [11:05:44.762] | : penv <- env <- environment(...future.FUN) [11:05:44.762] | : repeat { [11:05:44.762] | : if (identical(env, globalenv()) || identical(env, [11:05:44.762] | : emptyenv())) [11:05:44.762] | : break [11:05:44.762] | : penv <- env [11:05:44.762] | : env <- parent.env(env) [11:05:44.762] | : } [11:05:44.762] | : if (identical(penv, globalenv())) { [11:05:44.762] | : environment(...future.FUN) <- environment() [11:05:44.762] | : } [11:05:44.762] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.762] | : !isNamespace(penv)) { [11:05:44.762] | : parent.env(penv) <- environment() [11:05:44.762] | : } [11:05:44.762] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.762] | : { [11:05:44.762] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.762] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.762] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.762] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.762] | : on.exit(options(oopts), add = TRUE) [11:05:44.762] | : } [11:05:44.762] | : { [11:05:44.762] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.762] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.762] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.762] | : { [11:05:44.762] | : ...future.FUN(...future.X_jj, ...) [11:05:44.762] | : } [11:05:44.762] | : }) [11:05:44.762] | : } [11:05:44.762] | : } [11:05:44.762] | : }, args = future.call.arguments) [11:05:44.762] | : } [11:05:44.762] | : Globals: 5 objects totaling 3.71 KiB (function '...future.FUN' of 295 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.762] | : Packages: [11:05:44.762] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.762] | : Capture standard output: TRUE [11:05:44.762] | : Capture condition classes: 'condition' (excluding '') [11:05:44.762] | : Immediate condition classes: 'immediateCondition' [11:05:44.762] | : Lazy evaluation: FALSE [11:05:44.762] | : Local evaluation: TRUE [11:05:44.762] | : Early signaling: FALSE [11:05:44.762] | : Actions: [n=1] 'run' [11:05:44.762] | : State: 'running' ("Future is being evaluated") [11:05:44.762] | : Resolved: TRUE [11:05:44.762] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-30 [11:05:44.762] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.762] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.762] | : Value: [11:05:44.762] | : Conditions captured: [11:05:44.766] | : Chunk #2 of 2 ... DONE [11:05:44.767] | : Launching 2 futures (chunks) ... DONE [11:05:44.767] | : Resolving 2 futures (chunks) ... [11:05:44.768] | : - Number of value chunks collected: 2 [11:05:44.768] | : Resolving 2 futures (chunks) ... DONE [11:05:44.768] | : Reducing values from 2 chunks ... [11:05:44.768] | : - Number of values collected after concatenation: 2 [11:05:44.768] | : - Number of values expected: 2 [11:05:44.769] | : Reducing values from 2 chunks ... DONE [11:05:44.769] | future_lapply() -> future_xapply() ... done [11:05:44.769] future_lapply() ... done > stopifnot(identical(y, as.list(1:2))) > message("*** future_lapply() - missing arguments ... DONE") *** future_lapply() - missing arguments ... DONE > message("*** future_lapply() - false positives ...") *** future_lapply() - false positives ... > suppressWarnings(rm(list = "xyz")) > foo <- function(x, abc) future_lapply(x, FUN = function(y) y) > y <- foo(1:2, abc = (xyz >= 3.14)) [11:05:44.770] future_lapply() ... [11:05:44.771] | Globals in FUN(): [n=0] [11:05:44.771] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.771] | future_lapply() -> future_xapply() ... [11:05:44.772] | : Number of chunks: 2 [11:05:44.772] | : getGlobalsAndPackagesXApply() ... [11:05:44.772] | : . future.globals: TRUE [11:05:44.778] | : . globals found/used: [n=1] 'FUN' [11:05:44.778] | : . needed namespaces: [n=0] [11:05:44.778] | : . use_args: TRUE [11:05:44.779] | : . Getting '...' globals ... [11:05:44.779] | : . ' '...' content: [n=0] [11:05:44.779] | : . ' List of 1 [11:05:44.779] | : . ' $ ...: list() [11:05:44.779] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.779] | : . ' - attr(*, "where")=List of 1 [11:05:44.779] | : . ' ..$ ...: [11:05:44.779] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.779] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.779] | : . ' - attr(*, "total_size")= num NA [11:05:44.783] | : . Getting '...' globals ... done [11:05:44.783] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:44.783] | : . List of 2 [11:05:44.783] | : . $ ...future.FUN:function (y) [11:05:44.783] | : . $ ... : list() [11:05:44.783] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.783] | : . - attr(*, "where")=List of 2 [11:05:44.783] | : . ..$ ...future.FUN: [11:05:44.783] | : . ..$ ... : [11:05:44.783] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.783] | : . - attr(*, "resolved")= logi FALSE [11:05:44.783] | : . - attr(*, "total_size")= num 3904 [11:05:44.787] | : . Packages to be attached in all futures: [n=0] [11:05:44.787] | : getGlobalsAndPackagesXApply() ... done [11:05:44.787] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.787] | : List of 5 [11:05:44.787] | : $ ...future.FUN :function (y) [11:05:44.787] | : $ ... : list() [11:05:44.787] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.787] | : $ ...future.elements_ii : NULL [11:05:44.787] | : $ ...future.seeds_ii : NULL [11:05:44.787] | : $ ...future.globals.maxSize: NULL [11:05:44.787] | : - attr(*, "where")=List of 5 [11:05:44.787] | : ..$ ...future.FUN : [11:05:44.787] | : ..$ ... : [11:05:44.787] | : ..$ ...future.elements_ii : [11:05:44.787] | : ..$ ...future.seeds_ii : [11:05:44.787] | : ..$ ...future.globals.maxSize: [11:05:44.787] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.787] | : - attr(*, "resolved")= logi FALSE [11:05:44.787] | : - attr(*, "total_size")= num 3904 [11:05:44.793] | : Number of futures (= number of chunks): 2 [11:05:44.793] | : Launching 2 futures (chunks) ... [11:05:44.793] | : Chunk #1 of 2 ... [11:05:44.793] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.794] | : + additional globals found: [n=0] [11:05:44.794] | : + additional namespaces needed: [n=0] [11:05:44.794] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.794] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [11:05:44.795] | : - seeds: [11:05:44.795] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.800] | : Created future: [11:05:44.801] | : MultisessionFuture: [11:05:44.801] | : Label: 'future_lapply-1' [11:05:44.801] | : Expression: [11:05:44.801] | : { [11:05:44.801] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.801] | : "# expression in do.call(), because function called uses '...' " [11:05:44.801] | : "# as a global variable " [11:05:44.801] | : do.call(function(...) { [11:05:44.801] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.801] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.801] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.801] | : "# anonymous function. " [11:05:44.801] | : "# " [11:05:44.801] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.801] | : "# function environment of FUN() to the calling environment. " [11:05:44.801] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.801] | : "# global environment, which is where globals are written. " [11:05:44.801] | : penv <- env <- environment(...future.FUN) [11:05:44.801] | : repeat { [11:05:44.801] | : if (identical(env, globalenv()) || identical(env, [11:05:44.801] | : emptyenv())) [11:05:44.801] | : break [11:05:44.801] | : penv <- env [11:05:44.801] | : env <- parent.env(env) [11:05:44.801] | : } [11:05:44.801] | : if (identical(penv, globalenv())) { [11:05:44.801] | : environment(...future.FUN) <- environment() [11:05:44.801] | : } [11:05:44.801] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.801] | : !isNamespace(penv)) { [11:05:44.801] | : parent.env(penv) <- environment() [11:05:44.801] | : } [11:05:44.801] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.801] | : { [11:05:44.801] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.801] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.801] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.801] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.801] | : on.exit(options(oopts), add = TRUE) [11:05:44.801] | : } [11:05:44.801] | : { [11:05:44.801] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.801] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.801] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.801] | : { [11:05:44.801] | : ...future.FUN(...future.X_jj, ...) [11:05:44.801] | : } [11:05:44.801] | : }) [11:05:44.801] | : } [11:05:44.801] | : } [11:05:44.801] | : }, args = future.call.arguments) [11:05:44.801] | : } [11:05:44.801] | : Globals: 5 objects totaling 3.80 KiB (function '...future.FUN' of 389 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.801] | : Packages: [11:05:44.801] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.801] | : Capture standard output: TRUE [11:05:44.801] | : Capture condition classes: 'condition' (excluding '') [11:05:44.801] | : Immediate condition classes: 'immediateCondition' [11:05:44.801] | : Lazy evaluation: FALSE [11:05:44.801] | : Local evaluation: TRUE [11:05:44.801] | : Early signaling: FALSE [11:05:44.801] | : Actions: [n=1] 'run' [11:05:44.801] | : State: 'running' ("Future is being evaluated") [11:05:44.801] | : Resolved: TRUE [11:05:44.801] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-31 [11:05:44.801] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.801] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.801] | : Value: [11:05:44.801] | : Conditions captured: [11:05:44.808] | : Chunk #1 of 2 ... DONE [11:05:44.808] | : Chunk #2 of 2 ... [11:05:44.808] | : - Finding globals in 'X' for chunk #2 ... [11:05:44.809] | : + additional globals found: [n=0] [11:05:44.809] | : + additional namespaces needed: [n=0] [11:05:44.809] | : - Finding globals in 'X' for chunk #2 ... DONE [11:05:44.809] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [11:05:44.809] | : - seeds: [11:05:44.810] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.812] | : Created future: [11:05:44.812] | : MultisessionFuture: [11:05:44.812] | : Label: 'future_lapply-2' [11:05:44.812] | : Expression: [11:05:44.812] | : { [11:05:44.812] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.812] | : "# expression in do.call(), because function called uses '...' " [11:05:44.812] | : "# as a global variable " [11:05:44.812] | : do.call(function(...) { [11:05:44.812] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.812] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.812] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.812] | : "# anonymous function. " [11:05:44.812] | : "# " [11:05:44.812] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.812] | : "# function environment of FUN() to the calling environment. " [11:05:44.812] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.812] | : "# global environment, which is where globals are written. " [11:05:44.812] | : penv <- env <- environment(...future.FUN) [11:05:44.812] | : repeat { [11:05:44.812] | : if (identical(env, globalenv()) || identical(env, [11:05:44.812] | : emptyenv())) [11:05:44.812] | : break [11:05:44.812] | : penv <- env [11:05:44.812] | : env <- parent.env(env) [11:05:44.812] | : } [11:05:44.812] | : if (identical(penv, globalenv())) { [11:05:44.812] | : environment(...future.FUN) <- environment() [11:05:44.812] | : } [11:05:44.812] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.812] | : !isNamespace(penv)) { [11:05:44.812] | : parent.env(penv) <- environment() [11:05:44.812] | : } [11:05:44.812] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.812] | : { [11:05:44.812] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.812] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.812] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.812] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.812] | : on.exit(options(oopts), add = TRUE) [11:05:44.812] | : } [11:05:44.812] | : { [11:05:44.812] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.812] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.812] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.812] | : { [11:05:44.812] | : ...future.FUN(...future.X_jj, ...) [11:05:44.812] | : } [11:05:44.812] | : }) [11:05:44.812] | : } [11:05:44.812] | : } [11:05:44.812] | : }, args = future.call.arguments) [11:05:44.812] | : } [11:05:44.812] | : Globals: 5 objects totaling 3.80 KiB (function '...future.FUN' of 389 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.812] | : Packages: [11:05:44.812] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.812] | : Capture standard output: TRUE [11:05:44.812] | : Capture condition classes: 'condition' (excluding '') [11:05:44.812] | : Immediate condition classes: 'immediateCondition' [11:05:44.812] | : Lazy evaluation: FALSE [11:05:44.812] | : Local evaluation: TRUE [11:05:44.812] | : Early signaling: FALSE [11:05:44.812] | : Actions: [n=1] 'run' [11:05:44.812] | : State: 'running' ("Future is being evaluated") [11:05:44.812] | : Resolved: TRUE [11:05:44.812] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-32 [11:05:44.812] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.812] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.812] | : Value: [11:05:44.812] | : Conditions captured: [11:05:44.821] | : Chunk #2 of 2 ... DONE [11:05:44.821] | : Launching 2 futures (chunks) ... DONE [11:05:44.821] | : Resolving 2 futures (chunks) ... [11:05:44.823] | : - Number of value chunks collected: 2 [11:05:44.823] | : Resolving 2 futures (chunks) ... DONE [11:05:44.823] | : Reducing values from 2 chunks ... [11:05:44.823] | : - Number of values collected after concatenation: 2 [11:05:44.823] | : - Number of values expected: 2 [11:05:44.824] | : Reducing values from 2 chunks ... DONE [11:05:44.824] | future_lapply() -> future_xapply() ... done [11:05:44.824] future_lapply() ... done > stopifnot(identical(y, as.list(1:2))) > message("*** future_lapply() - false positives ... DONE") *** future_lapply() - false positives ... DONE > message("*** future_lapply() - too large ...") *** future_lapply() - too large ... > oMaxSize <- getOption("future.globals.maxSize") > X <- replicate(10, 1:100, simplify = FALSE) > FUN <- function(x) { + getOption("future.globals.maxSize") + } > y0 <- lapply(X, FUN = FUN) > stopifnot(all(sapply(y0, FUN = identical, oMaxSize))) > sizes <- unclass(c(FUN = object.size(FUN), X = object.size(X))) > cat(sprintf("Baseline size of globals: %.2f KiB\n", + sizes[["FUN"]]/1024)) Baseline size of globals: 1.80 KiB > message("- true positive ...") - true positive ... > options(future.globals.maxSize = 1) > res <- tryCatch({ + y <- future_lapply(X, FUN = FUN) + }, error = identity) [11:05:44.828] future_lapply() ... [11:05:44.829] | Globals in FUN(): [n=2] '{', 'getOption' [11:05:44.829] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.830] | future_lapply() -> future_xapply() ... [11:05:44.830] | : Number of chunks: 2 [11:05:44.830] | : getGlobalsAndPackagesXApply() ... [11:05:44.831] | : . future.globals: TRUE [11:05:44.839] | : getGlobalsAndPackagesXApply() ... done [11:05:44.839] | future_lapply() -> future_xapply() ... done [11:05:44.839] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- NULL > options(future.globals.maxSize = oMaxSize) > maxSize <- getOption("future.globals.maxSize") > y <- future_lapply(X, FUN = FUN) [11:05:44.840] future_lapply() ... [11:05:44.841] | Globals in FUN(): [n=2] '{', 'getOption' [11:05:44.841] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.841] | future_lapply() -> future_xapply() ... [11:05:44.842] | : Number of chunks: 2 [11:05:44.842] | : getGlobalsAndPackagesXApply() ... [11:05:44.842] | : . future.globals: TRUE [11:05:44.850] | : . globals found/used: [n=1] 'FUN' [11:05:44.850] | : . needed namespaces: [n=0] [11:05:44.850] | : . use_args: TRUE [11:05:44.850] | : . Getting '...' globals ... [11:05:44.851] | : . ' '...' content: [n=0] [11:05:44.851] | : . ' List of 1 [11:05:44.851] | : . ' $ ...: list() [11:05:44.851] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.851] | : . ' - attr(*, "where")=List of 1 [11:05:44.851] | : . ' ..$ ...: [11:05:44.851] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.851] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.851] | : . ' - attr(*, "total_size")= num NA [11:05:44.855] | : . Getting '...' globals ... done [11:05:44.855] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:44.855] | : . List of 2 [11:05:44.855] | : . $ ...future.FUN:function (x) [11:05:44.855] | : . $ ... : list() [11:05:44.855] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.855] | : . - attr(*, "where")=List of 2 [11:05:44.855] | : . ..$ ...future.FUN: [11:05:44.855] | : . ..$ ... : [11:05:44.855] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.855] | : . - attr(*, "resolved")= logi FALSE [11:05:44.855] | : . - attr(*, "total_size")= num 4670 [11:05:44.860] | : . Packages to be attached in all futures: [n=0] [11:05:44.860] | : getGlobalsAndPackagesXApply() ... done [11:05:44.860] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.860] | : List of 5 [11:05:44.860] | : $ ...future.FUN :function (x) [11:05:44.860] | : $ ... : list() [11:05:44.860] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.860] | : $ ...future.elements_ii : NULL [11:05:44.860] | : $ ...future.seeds_ii : NULL [11:05:44.860] | : $ ...future.globals.maxSize: NULL [11:05:44.860] | : - attr(*, "where")=List of 5 [11:05:44.860] | : ..$ ...future.FUN : [11:05:44.860] | : ..$ ... : [11:05:44.860] | : ..$ ...future.elements_ii : [11:05:44.860] | : ..$ ...future.seeds_ii : [11:05:44.860] | : ..$ ...future.globals.maxSize: [11:05:44.860] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.860] | : - attr(*, "resolved")= logi FALSE [11:05:44.860] | : - attr(*, "total_size")= num 4670 [11:05:44.866] | : Number of futures (= number of chunks): 2 [11:05:44.866] | : Launching 2 futures (chunks) ... [11:05:44.866] | : Chunk #1 of 2 ... [11:05:44.866] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.867] | : + additional globals found: [n=0] [11:05:44.867] | : + additional namespaces needed: [n=0] [11:05:44.867] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.867] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [11:05:44.868] | : - seeds: [11:05:44.868] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.871] | : Created future: [11:05:44.871] | : MultisessionFuture: [11:05:44.871] | : Label: 'future_lapply-1' [11:05:44.871] | : Expression: [11:05:44.871] | : { [11:05:44.871] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.871] | : "# expression in do.call(), because function called uses '...' " [11:05:44.871] | : "# as a global variable " [11:05:44.871] | : do.call(function(...) { [11:05:44.871] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.871] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.871] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.871] | : "# anonymous function. " [11:05:44.871] | : "# " [11:05:44.871] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.871] | : "# function environment of FUN() to the calling environment. " [11:05:44.871] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.871] | : "# global environment, which is where globals are written. " [11:05:44.871] | : penv <- env <- environment(...future.FUN) [11:05:44.871] | : repeat { [11:05:44.871] | : if (identical(env, globalenv()) || identical(env, [11:05:44.871] | : emptyenv())) [11:05:44.871] | : break [11:05:44.871] | : penv <- env [11:05:44.871] | : env <- parent.env(env) [11:05:44.871] | : } [11:05:44.871] | : if (identical(penv, globalenv())) { [11:05:44.871] | : environment(...future.FUN) <- environment() [11:05:44.871] | : } [11:05:44.871] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.871] | : !isNamespace(penv)) { [11:05:44.871] | : parent.env(penv) <- environment() [11:05:44.871] | : } [11:05:44.871] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.871] | : { [11:05:44.871] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.871] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.871] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.871] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.871] | : on.exit(options(oopts), add = TRUE) [11:05:44.871] | : } [11:05:44.871] | : { [11:05:44.871] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.871] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.871] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.871] | : { [11:05:44.871] | : ...future.FUN(...future.X_jj, ...) [11:05:44.871] | : } [11:05:44.871] | : }) [11:05:44.871] | : } [11:05:44.871] | : } [11:05:44.871] | : }, args = future.call.arguments) [11:05:44.871] | : } [11:05:44.871] | : Globals: 5 objects totaling 5.19 KiB (list '...future.elements_ii' of 445 bytes, function '...future.FUN' of 407 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.871] | : Packages: [11:05:44.871] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.871] | : Capture standard output: TRUE [11:05:44.871] | : Capture condition classes: 'condition' (excluding '') [11:05:44.871] | : Immediate condition classes: 'immediateCondition' [11:05:44.871] | : Lazy evaluation: FALSE [11:05:44.871] | : Local evaluation: TRUE [11:05:44.871] | : Early signaling: FALSE [11:05:44.871] | : Actions: [n=1] 'run' [11:05:44.871] | : State: 'running' ("Future is being evaluated") [11:05:44.871] | : Resolved: TRUE [11:05:44.871] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-33 [11:05:44.871] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.871] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.871] | : Value: [11:05:44.871] | : Conditions captured: [11:05:44.879] | : Chunk #1 of 2 ... DONE [11:05:44.879] | : Chunk #2 of 2 ... [11:05:44.879] | : - Finding globals in 'X' for chunk #2 ... [11:05:44.880] | : + additional globals found: [n=0] [11:05:44.880] | : + additional namespaces needed: [n=0] [11:05:44.880] | : - Finding globals in 'X' for chunk #2 ... DONE [11:05:44.880] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [11:05:44.880] | : - seeds: [11:05:44.880] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.883] | : Created future: [11:05:44.883] | : MultisessionFuture: [11:05:44.883] | : Label: 'future_lapply-2' [11:05:44.883] | : Expression: [11:05:44.883] | : { [11:05:44.883] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.883] | : "# expression in do.call(), because function called uses '...' " [11:05:44.883] | : "# as a global variable " [11:05:44.883] | : do.call(function(...) { [11:05:44.883] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.883] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.883] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.883] | : "# anonymous function. " [11:05:44.883] | : "# " [11:05:44.883] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.883] | : "# function environment of FUN() to the calling environment. " [11:05:44.883] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.883] | : "# global environment, which is where globals are written. " [11:05:44.883] | : penv <- env <- environment(...future.FUN) [11:05:44.883] | : repeat { [11:05:44.883] | : if (identical(env, globalenv()) || identical(env, [11:05:44.883] | : emptyenv())) [11:05:44.883] | : break [11:05:44.883] | : penv <- env [11:05:44.883] | : env <- parent.env(env) [11:05:44.883] | : } [11:05:44.883] | : if (identical(penv, globalenv())) { [11:05:44.883] | : environment(...future.FUN) <- environment() [11:05:44.883] | : } [11:05:44.883] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.883] | : !isNamespace(penv)) { [11:05:44.883] | : parent.env(penv) <- environment() [11:05:44.883] | : } [11:05:44.883] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.883] | : { [11:05:44.883] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.883] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.883] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.883] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.883] | : on.exit(options(oopts), add = TRUE) [11:05:44.883] | : } [11:05:44.883] | : { [11:05:44.883] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.883] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.883] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.883] | : { [11:05:44.883] | : ...future.FUN(...future.X_jj, ...) [11:05:44.883] | : } [11:05:44.883] | : }) [11:05:44.883] | : } [11:05:44.883] | : } [11:05:44.883] | : }, args = future.call.arguments) [11:05:44.883] | : } [11:05:44.883] | : Globals: 5 objects totaling 5.19 KiB (list '...future.elements_ii' of 445 bytes, function '...future.FUN' of 407 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [11:05:44.883] | : Packages: [11:05:44.883] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.883] | : Capture standard output: TRUE [11:05:44.883] | : Capture condition classes: 'condition' (excluding '') [11:05:44.883] | : Immediate condition classes: 'immediateCondition' [11:05:44.883] | : Lazy evaluation: FALSE [11:05:44.883] | : Local evaluation: TRUE [11:05:44.883] | : Early signaling: FALSE [11:05:44.883] | : Actions: [n=1] 'run' [11:05:44.883] | : State: 'running' ("Future is being evaluated") [11:05:44.883] | : Resolved: TRUE [11:05:44.883] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-34 [11:05:44.883] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.883] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.883] | : Value: [11:05:44.883] | : Conditions captured: [11:05:44.890] | : Chunk #2 of 2 ... DONE [11:05:44.890] | : Launching 2 futures (chunks) ... DONE [11:05:44.890] | : Resolving 2 futures (chunks) ... [11:05:44.891] | : - Number of value chunks collected: 2 [11:05:44.892] | : Resolving 2 futures (chunks) ... DONE [11:05:44.892] | : Reducing values from 2 chunks ... [11:05:44.892] | : - Number of values collected after concatenation: 10 [11:05:44.892] | : - Number of values expected: 10 [11:05:44.892] | : Reducing values from 2 chunks ... DONE [11:05:44.892] | future_lapply() -> future_xapply() ... done [11:05:44.893] future_lapply() ... done > str(y) List of 10 $ : NULL $ : NULL $ : NULL $ : NULL $ : NULL $ : NULL $ : NULL $ : NULL $ : NULL $ : NULL > stopifnot(all(sapply(y, FUN = identical, oMaxSize))) > message("- approximately invariant to chunk size ...") - approximately invariant to chunk size ... > maxSize <- sizes[["FUN"]] + sizes[["X"]]/length(X) > options(future.globals.maxSize = maxSize) > for (chunk.size in c(1, 2, 5, 10)) { + y <- future_lapply(X, FUN = FUN, future.chunk.size = chunk.size) + str(y) + stopifnot(all(unlist( .... [TRUNCATED] [11:05:44.907] future_lapply() ... [11:05:44.908] | Globals in FUN(): [n=2] '{', 'getOption' [11:05:44.908] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:44.908] | future_lapply() -> future_xapply() ... [11:05:44.909] | : Number of chunks: 10 [11:05:44.909] | : getGlobalsAndPackagesXApply() ... [11:05:44.909] | : . future.globals: TRUE [11:05:44.917] | : . globals found/used: [n=1] 'FUN' [11:05:44.917] | : . needed namespaces: [n=0] [11:05:44.918] | : . use_args: TRUE [11:05:44.918] | : . Getting '...' globals ... [11:05:44.918] | : . ' '...' content: [n=0] [11:05:44.919] | : . ' List of 1 [11:05:44.919] | : . ' $ ...: list() [11:05:44.919] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.919] | : . ' - attr(*, "where")=List of 1 [11:05:44.919] | : . ' ..$ ...: [11:05:44.919] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.919] | : . ' - attr(*, "resolved")= logi TRUE [11:05:44.919] | : . ' - attr(*, "total_size")= num NA [11:05:44.922] | : . Getting '...' globals ... done [11:05:44.922] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:44.923] | : . List of 2 [11:05:44.923] | : . $ ...future.FUN:function (x) [11:05:44.923] | : . $ ... : list() [11:05:44.923] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.923] | : . - attr(*, "where")=List of 2 [11:05:44.923] | : . ..$ ...future.FUN: [11:05:44.923] | : . ..$ ... : [11:05:44.923] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.923] | : . - attr(*, "resolved")= logi FALSE [11:05:44.923] | : . - attr(*, "total_size")= num 5085 [11:05:44.926] | : . Packages to be attached in all futures: [n=0] [11:05:44.926] | : getGlobalsAndPackagesXApply() ... done [11:05:44.927] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.927] | : List of 5 [11:05:44.927] | : $ ...future.FUN :function (x) [11:05:44.927] | : $ ... : list() [11:05:44.927] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:44.927] | : $ ...future.elements_ii : NULL [11:05:44.927] | : $ ...future.seeds_ii : NULL [11:05:44.927] | : $ ...future.globals.maxSize: NULL [11:05:44.927] | : - attr(*, "where")=List of 5 [11:05:44.927] | : ..$ ...future.FUN : [11:05:44.927] | : ..$ ... : [11:05:44.927] | : ..$ ...future.elements_ii : [11:05:44.927] | : ..$ ...future.seeds_ii : [11:05:44.927] | : ..$ ...future.globals.maxSize: [11:05:44.927] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:44.927] | : - attr(*, "resolved")= logi FALSE [11:05:44.927] | : - attr(*, "total_size")= num 5085 [11:05:44.932] | : Number of futures (= number of chunks): 10 [11:05:44.933] | : Launching 10 futures (chunks) ... [11:05:44.933] | : Chunk #1 of 10 ... [11:05:44.933] | : - Finding globals in 'X' for chunk #1 ... [11:05:44.934] | : + additional globals found: [n=0] [11:05:44.934] | : + additional namespaces needed: [n=0] [11:05:44.934] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:44.934] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [11:05:44.935] | : - seeds: [11:05:44.935] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.938] | : Created future: [11:05:44.938] | : MultisessionFuture: [11:05:44.938] | : Label: 'future_lapply-1' [11:05:44.938] | : Expression: [11:05:44.938] | : { [11:05:44.938] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.938] | : "# expression in do.call(), because function called uses '...' " [11:05:44.938] | : "# as a global variable " [11:05:44.938] | : do.call(function(...) { [11:05:44.938] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.938] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.938] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.938] | : "# anonymous function. " [11:05:44.938] | : "# " [11:05:44.938] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.938] | : "# function environment of FUN() to the calling environment. " [11:05:44.938] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.938] | : "# global environment, which is where globals are written. " [11:05:44.938] | : penv <- env <- environment(...future.FUN) [11:05:44.938] | : repeat { [11:05:44.938] | : if (identical(env, globalenv()) || identical(env, [11:05:44.938] | : emptyenv())) [11:05:44.938] | : break [11:05:44.938] | : penv <- env [11:05:44.938] | : env <- parent.env(env) [11:05:44.938] | : } [11:05:44.938] | : if (identical(penv, globalenv())) { [11:05:44.938] | : environment(...future.FUN) <- environment() [11:05:44.938] | : } [11:05:44.938] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.938] | : !isNamespace(penv)) { [11:05:44.938] | : parent.env(penv) <- environment() [11:05:44.938] | : } [11:05:44.938] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.938] | : { [11:05:44.938] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.938] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.938] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.938] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.938] | : on.exit(options(oopts), add = TRUE) [11:05:44.938] | : } [11:05:44.938] | : { [11:05:44.938] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.938] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.938] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.938] | : { [11:05:44.938] | : ...future.FUN(...future.X_jj, ...) [11:05:44.938] | : } [11:05:44.938] | : }) [11:05:44.938] | : } [11:05:44.938] | : } [11:05:44.938] | : }, args = future.call.arguments) [11:05:44.938] | : } [11:05:44.938] | : Globals: 5 objects totaling 5.31 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 141 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:44.938] | : Packages: [11:05:44.938] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.938] | : Capture standard output: TRUE [11:05:44.938] | : Capture condition classes: 'condition' (excluding '') [11:05:44.938] | : Immediate condition classes: 'immediateCondition' [11:05:44.938] | : Lazy evaluation: FALSE [11:05:44.938] | : Local evaluation: TRUE [11:05:44.938] | : Early signaling: FALSE [11:05:44.938] | : Actions: [n=1] 'run' [11:05:44.938] | : State: 'running' ("Future is being evaluated") [11:05:44.938] | : Resolved: TRUE [11:05:44.938] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-35 [11:05:44.938] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.938] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.938] | : Value: [11:05:44.938] | : Conditions captured: [11:05:44.945] | : Chunk #1 of 10 ... DONE [11:05:44.945] | : Chunk #2 of 10 ... [11:05:44.946] | : - Finding globals in 'X' for chunk #2 ... [11:05:44.946] | : + additional globals found: [n=0] [11:05:44.946] | : + additional namespaces needed: [n=0] [11:05:44.947] | : - Finding globals in 'X' for chunk #2 ... DONE [11:05:44.947] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [11:05:44.947] | : - seeds: [11:05:44.947] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.949] | : Created future: [11:05:44.950] | : MultisessionFuture: [11:05:44.950] | : Label: 'future_lapply-2' [11:05:44.950] | : Expression: [11:05:44.950] | : { [11:05:44.950] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.950] | : "# expression in do.call(), because function called uses '...' " [11:05:44.950] | : "# as a global variable " [11:05:44.950] | : do.call(function(...) { [11:05:44.950] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.950] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.950] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.950] | : "# anonymous function. " [11:05:44.950] | : "# " [11:05:44.950] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.950] | : "# function environment of FUN() to the calling environment. " [11:05:44.950] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.950] | : "# global environment, which is where globals are written. " [11:05:44.950] | : penv <- env <- environment(...future.FUN) [11:05:44.950] | : repeat { [11:05:44.950] | : if (identical(env, globalenv()) || identical(env, [11:05:44.950] | : emptyenv())) [11:05:44.950] | : break [11:05:44.950] | : penv <- env [11:05:44.950] | : env <- parent.env(env) [11:05:44.950] | : } [11:05:44.950] | : if (identical(penv, globalenv())) { [11:05:44.950] | : environment(...future.FUN) <- environment() [11:05:44.950] | : } [11:05:44.950] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.950] | : !isNamespace(penv)) { [11:05:44.950] | : parent.env(penv) <- environment() [11:05:44.950] | : } [11:05:44.950] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.950] | : { [11:05:44.950] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.950] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.950] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.950] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.950] | : on.exit(options(oopts), add = TRUE) [11:05:44.950] | : } [11:05:44.950] | : { [11:05:44.950] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.950] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.950] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.950] | : { [11:05:44.950] | : ...future.FUN(...future.X_jj, ...) [11:05:44.950] | : } [11:05:44.950] | : }) [11:05:44.950] | : } [11:05:44.950] | : } [11:05:44.950] | : }, args = future.call.arguments) [11:05:44.950] | : } [11:05:44.950] | : Globals: 5 objects totaling 5.31 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 141 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:44.950] | : Packages: [11:05:44.950] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.950] | : Capture standard output: TRUE [11:05:44.950] | : Capture condition classes: 'condition' (excluding '') [11:05:44.950] | : Immediate condition classes: 'immediateCondition' [11:05:44.950] | : Lazy evaluation: FALSE [11:05:44.950] | : Local evaluation: TRUE [11:05:44.950] | : Early signaling: FALSE [11:05:44.950] | : Actions: [n=1] 'run' [11:05:44.950] | : State: 'running' ("Future is being evaluated") [11:05:44.950] | : Resolved: TRUE [11:05:44.950] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-36 [11:05:44.950] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.950] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.950] | : Value: [11:05:44.950] | : Conditions captured: [11:05:44.955] | : Chunk #2 of 10 ... DONE [11:05:44.955] | : Chunk #3 of 10 ... [11:05:44.955] | : - Finding globals in 'X' for chunk #3 ... [11:05:44.956] | : + additional globals found: [n=0] [11:05:44.956] | : + additional namespaces needed: [n=0] [11:05:44.956] | : - Finding globals in 'X' for chunk #3 ... DONE [11:05:44.956] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [11:05:44.956] | : - seeds: [11:05:44.957] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.959] | : Created future: [11:05:44.959] | : MultisessionFuture: [11:05:44.959] | : Label: 'future_lapply-3' [11:05:44.959] | : Expression: [11:05:44.959] | : { [11:05:44.959] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.959] | : "# expression in do.call(), because function called uses '...' " [11:05:44.959] | : "# as a global variable " [11:05:44.959] | : do.call(function(...) { [11:05:44.959] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.959] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.959] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.959] | : "# anonymous function. " [11:05:44.959] | : "# " [11:05:44.959] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.959] | : "# function environment of FUN() to the calling environment. " [11:05:44.959] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.959] | : "# global environment, which is where globals are written. " [11:05:44.959] | : penv <- env <- environment(...future.FUN) [11:05:44.959] | : repeat { [11:05:44.959] | : if (identical(env, globalenv()) || identical(env, [11:05:44.959] | : emptyenv())) [11:05:44.959] | : break [11:05:44.959] | : penv <- env [11:05:44.959] | : env <- parent.env(env) [11:05:44.959] | : } [11:05:44.959] | : if (identical(penv, globalenv())) { [11:05:44.959] | : environment(...future.FUN) <- environment() [11:05:44.959] | : } [11:05:44.959] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.959] | : !isNamespace(penv)) { [11:05:44.959] | : parent.env(penv) <- environment() [11:05:44.959] | : } [11:05:44.959] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.959] | : { [11:05:44.959] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.959] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.959] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.959] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.959] | : on.exit(options(oopts), add = TRUE) [11:05:44.959] | : } [11:05:44.959] | : { [11:05:44.959] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.959] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.959] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.959] | : { [11:05:44.959] | : ...future.FUN(...future.X_jj, ...) [11:05:44.959] | : } [11:05:44.959] | : }) [11:05:44.959] | : } [11:05:44.959] | : } [11:05:44.959] | : }, args = future.call.arguments) [11:05:44.959] | : } [11:05:44.959] | : Globals: 5 objects totaling 5.31 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 141 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:44.959] | : Packages: [11:05:44.959] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.959] | : Capture standard output: TRUE [11:05:44.959] | : Capture condition classes: 'condition' (excluding '') [11:05:44.959] | : Immediate condition classes: 'immediateCondition' [11:05:44.959] | : Lazy evaluation: FALSE [11:05:44.959] | : Local evaluation: TRUE [11:05:44.959] | : Early signaling: FALSE [11:05:44.959] | : Actions: [n=1] 'run' [11:05:44.959] | : State: 'running' ("Future is being evaluated") [11:05:44.959] | : Resolved: TRUE [11:05:44.959] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-37 [11:05:44.959] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.959] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.959] | : Value: [11:05:44.959] | : Conditions captured: [11:05:44.965] | : Chunk #3 of 10 ... DONE [11:05:44.965] | : Chunk #4 of 10 ... [11:05:44.965] | : - Finding globals in 'X' for chunk #4 ... [11:05:44.966] | : + additional globals found: [n=0] [11:05:44.966] | : + additional namespaces needed: [n=0] [11:05:44.966] | : - Finding globals in 'X' for chunk #4 ... DONE [11:05:44.966] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [11:05:44.967] | : - seeds: [11:05:44.967] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.969] | : Created future: [11:05:44.969] | : MultisessionFuture: [11:05:44.969] | : Label: 'future_lapply-4' [11:05:44.969] | : Expression: [11:05:44.969] | : { [11:05:44.969] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.969] | : "# expression in do.call(), because function called uses '...' " [11:05:44.969] | : "# as a global variable " [11:05:44.969] | : do.call(function(...) { [11:05:44.969] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.969] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.969] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.969] | : "# anonymous function. " [11:05:44.969] | : "# " [11:05:44.969] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.969] | : "# function environment of FUN() to the calling environment. " [11:05:44.969] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.969] | : "# global environment, which is where globals are written. " [11:05:44.969] | : penv <- env <- environment(...future.FUN) [11:05:44.969] | : repeat { [11:05:44.969] | : if (identical(env, globalenv()) || identical(env, [11:05:44.969] | : emptyenv())) [11:05:44.969] | : break [11:05:44.969] | : penv <- env [11:05:44.969] | : env <- parent.env(env) [11:05:44.969] | : } [11:05:44.969] | : if (identical(penv, globalenv())) { [11:05:44.969] | : environment(...future.FUN) <- environment() [11:05:44.969] | : } [11:05:44.969] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.969] | : !isNamespace(penv)) { [11:05:44.969] | : parent.env(penv) <- environment() [11:05:44.969] | : } [11:05:44.969] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.969] | : { [11:05:44.969] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.969] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.969] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.969] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.969] | : on.exit(options(oopts), add = TRUE) [11:05:44.969] | : } [11:05:44.969] | : { [11:05:44.969] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.969] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.969] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.969] | : { [11:05:44.969] | : ...future.FUN(...future.X_jj, ...) [11:05:44.969] | : } [11:05:44.969] | : }) [11:05:44.969] | : } [11:05:44.969] | : } [11:05:44.969] | : }, args = future.call.arguments) [11:05:44.969] | : } [11:05:44.969] | : Globals: 5 objects totaling 5.31 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 141 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:44.969] | : Packages: [11:05:44.969] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.969] | : Capture standard output: TRUE [11:05:44.969] | : Capture condition classes: 'condition' (excluding '') [11:05:44.969] | : Immediate condition classes: 'immediateCondition' [11:05:44.969] | : Lazy evaluation: FALSE [11:05:44.969] | : Local evaluation: TRUE [11:05:44.969] | : Early signaling: FALSE [11:05:44.969] | : Actions: [n=1] 'run' [11:05:44.969] | : State: 'running' ("Future is being evaluated") [11:05:44.969] | : Resolved: TRUE [11:05:44.969] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-38 [11:05:44.969] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.969] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.969] | : Value: [11:05:44.969] | : Conditions captured: [11:05:44.978] | : Chunk #4 of 10 ... DONE [11:05:44.978] | : Chunk #5 of 10 ... [11:05:44.978] | : - Finding globals in 'X' for chunk #5 ... [11:05:44.978] | : + additional globals found: [n=0] [11:05:44.979] | : + additional namespaces needed: [n=0] [11:05:44.979] | : - Finding globals in 'X' for chunk #5 ... DONE [11:05:44.979] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [11:05:44.979] | : - seeds: [11:05:44.979] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.982] | : Created future: [11:05:44.982] | : MultisessionFuture: [11:05:44.982] | : Label: 'future_lapply-5' [11:05:44.982] | : Expression: [11:05:44.982] | : { [11:05:44.982] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.982] | : "# expression in do.call(), because function called uses '...' " [11:05:44.982] | : "# as a global variable " [11:05:44.982] | : do.call(function(...) { [11:05:44.982] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.982] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.982] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.982] | : "# anonymous function. " [11:05:44.982] | : "# " [11:05:44.982] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.982] | : "# function environment of FUN() to the calling environment. " [11:05:44.982] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.982] | : "# global environment, which is where globals are written. " [11:05:44.982] | : penv <- env <- environment(...future.FUN) [11:05:44.982] | : repeat { [11:05:44.982] | : if (identical(env, globalenv()) || identical(env, [11:05:44.982] | : emptyenv())) [11:05:44.982] | : break [11:05:44.982] | : penv <- env [11:05:44.982] | : env <- parent.env(env) [11:05:44.982] | : } [11:05:44.982] | : if (identical(penv, globalenv())) { [11:05:44.982] | : environment(...future.FUN) <- environment() [11:05:44.982] | : } [11:05:44.982] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.982] | : !isNamespace(penv)) { [11:05:44.982] | : parent.env(penv) <- environment() [11:05:44.982] | : } [11:05:44.982] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.982] | : { [11:05:44.982] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.982] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.982] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.982] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.982] | : on.exit(options(oopts), add = TRUE) [11:05:44.982] | : } [11:05:44.982] | : { [11:05:44.982] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.982] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.982] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.982] | : { [11:05:44.982] | : ...future.FUN(...future.X_jj, ...) [11:05:44.982] | : } [11:05:44.982] | : }) [11:05:44.982] | : } [11:05:44.982] | : } [11:05:44.982] | : }, args = future.call.arguments) [11:05:44.982] | : } [11:05:44.982] | : Globals: 5 objects totaling 5.31 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 141 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:44.982] | : Packages: [11:05:44.982] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.982] | : Capture standard output: TRUE [11:05:44.982] | : Capture condition classes: 'condition' (excluding '') [11:05:44.982] | : Immediate condition classes: 'immediateCondition' [11:05:44.982] | : Lazy evaluation: FALSE [11:05:44.982] | : Local evaluation: TRUE [11:05:44.982] | : Early signaling: FALSE [11:05:44.982] | : Actions: [n=1] 'run' [11:05:44.982] | : State: 'running' ("Future is being evaluated") [11:05:44.982] | : Resolved: TRUE [11:05:44.982] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-39 [11:05:44.982] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.982] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.982] | : Value: [11:05:44.982] | : Conditions captured: [11:05:44.988] | : Chunk #5 of 10 ... DONE [11:05:44.988] | : Chunk #6 of 10 ... [11:05:44.988] | : - Finding globals in 'X' for chunk #6 ... [11:05:44.989] | : + additional globals found: [n=0] [11:05:44.989] | : + additional namespaces needed: [n=0] [11:05:44.989] | : - Finding globals in 'X' for chunk #6 ... DONE [11:05:44.989] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [11:05:44.990] | : - seeds: [11:05:44.990] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:44.992] | : Created future: [11:05:44.992] | : MultisessionFuture: [11:05:44.992] | : Label: 'future_lapply-6' [11:05:44.992] | : Expression: [11:05:44.992] | : { [11:05:44.992] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:44.992] | : "# expression in do.call(), because function called uses '...' " [11:05:44.992] | : "# as a global variable " [11:05:44.992] | : do.call(function(...) { [11:05:44.992] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:44.992] | : "# without having an '...' argument. This means '...' is treated" [11:05:44.992] | : "# as a global variable. This may happen when FUN() is an " [11:05:44.992] | : "# anonymous function. " [11:05:44.992] | : "# " [11:05:44.992] | : "# If an anonymous function, we will make sure to restore the " [11:05:44.992] | : "# function environment of FUN() to the calling environment. " [11:05:44.992] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:44.992] | : "# global environment, which is where globals are written. " [11:05:44.992] | : penv <- env <- environment(...future.FUN) [11:05:44.992] | : repeat { [11:05:44.992] | : if (identical(env, globalenv()) || identical(env, [11:05:44.992] | : emptyenv())) [11:05:44.992] | : break [11:05:44.992] | : penv <- env [11:05:44.992] | : env <- parent.env(env) [11:05:44.992] | : } [11:05:44.992] | : if (identical(penv, globalenv())) { [11:05:44.992] | : environment(...future.FUN) <- environment() [11:05:44.992] | : } [11:05:44.992] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:44.992] | : !isNamespace(penv)) { [11:05:44.992] | : parent.env(penv) <- environment() [11:05:44.992] | : } [11:05:44.992] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:44.992] | : { [11:05:44.992] | : "# future.apply:::future_xapply(): preserve future option" [11:05:44.992] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:44.992] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:44.992] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:44.992] | : on.exit(options(oopts), add = TRUE) [11:05:44.992] | : } [11:05:44.992] | : { [11:05:44.992] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:44.992] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:44.992] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:44.992] | : { [11:05:44.992] | : ...future.FUN(...future.X_jj, ...) [11:05:44.992] | : } [11:05:44.992] | : }) [11:05:44.992] | : } [11:05:44.992] | : } [11:05:44.992] | : }, args = future.call.arguments) [11:05:44.992] | : } [11:05:44.992] | : Globals: 5 objects totaling 5.31 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 141 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:44.992] | : Packages: [11:05:44.992] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:44.992] | : Capture standard output: TRUE [11:05:44.992] | : Capture condition classes: 'condition' (excluding '') [11:05:44.992] | : Immediate condition classes: 'immediateCondition' [11:05:44.992] | : Lazy evaluation: FALSE [11:05:44.992] | : Local evaluation: TRUE [11:05:44.992] | : Early signaling: FALSE [11:05:44.992] | : Actions: [n=1] 'run' [11:05:44.992] | : State: 'running' ("Future is being evaluated") [11:05:44.992] | : Resolved: TRUE [11:05:44.992] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-40 [11:05:44.992] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:44.992] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:44.992] | : Value: [11:05:44.992] | : Conditions captured: [11:05:44.998] | : Chunk #6 of 10 ... DONE [11:05:44.998] | : Chunk #7 of 10 ... [11:05:44.999] | : - Finding globals in 'X' for chunk #7 ... [11:05:44.999] | : + additional globals found: [n=0] [11:05:44.999] | : + additional namespaces needed: [n=0] [11:05:45.000] | : - Finding globals in 'X' for chunk #7 ... DONE [11:05:45.000] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [11:05:45.000] | : - seeds: [11:05:45.000] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.002] | : Created future: [11:05:45.003] | : MultisessionFuture: [11:05:45.003] | : Label: 'future_lapply-7' [11:05:45.003] | : Expression: [11:05:45.003] | : { [11:05:45.003] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.003] | : "# expression in do.call(), because function called uses '...' " [11:05:45.003] | : "# as a global variable " [11:05:45.003] | : do.call(function(...) { [11:05:45.003] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.003] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.003] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.003] | : "# anonymous function. " [11:05:45.003] | : "# " [11:05:45.003] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.003] | : "# function environment of FUN() to the calling environment. " [11:05:45.003] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.003] | : "# global environment, which is where globals are written. " [11:05:45.003] | : penv <- env <- environment(...future.FUN) [11:05:45.003] | : repeat { [11:05:45.003] | : if (identical(env, globalenv()) || identical(env, [11:05:45.003] | : emptyenv())) [11:05:45.003] | : break [11:05:45.003] | : penv <- env [11:05:45.003] | : env <- parent.env(env) [11:05:45.003] | : } [11:05:45.003] | : if (identical(penv, globalenv())) { [11:05:45.003] | : environment(...future.FUN) <- environment() [11:05:45.003] | : } [11:05:45.003] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.003] | : !isNamespace(penv)) { [11:05:45.003] | : parent.env(penv) <- environment() [11:05:45.003] | : } [11:05:45.003] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.003] | : { [11:05:45.003] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.003] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.003] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.003] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.003] | : on.exit(options(oopts), add = TRUE) [11:05:45.003] | : } [11:05:45.003] | : { [11:05:45.003] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.003] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.003] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.003] | : { [11:05:45.003] | : ...future.FUN(...future.X_jj, ...) [11:05:45.003] | : } [11:05:45.003] | : }) [11:05:45.003] | : } [11:05:45.003] | : } [11:05:45.003] | : }, args = future.call.arguments) [11:05:45.003] | : } [11:05:45.003] | : Globals: 5 objects totaling 5.31 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 141 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.003] | : Packages: [11:05:45.003] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.003] | : Capture standard output: TRUE [11:05:45.003] | : Capture condition classes: 'condition' (excluding '') [11:05:45.003] | : Immediate condition classes: 'immediateCondition' [11:05:45.003] | : Lazy evaluation: FALSE [11:05:45.003] | : Local evaluation: TRUE [11:05:45.003] | : Early signaling: FALSE [11:05:45.003] | : Actions: [n=1] 'run' [11:05:45.003] | : State: 'running' ("Future is being evaluated") [11:05:45.003] | : Resolved: TRUE [11:05:45.003] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-41 [11:05:45.003] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.003] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.003] | : Value: [11:05:45.003] | : Conditions captured: [11:05:45.008] | : Chunk #7 of 10 ... DONE [11:05:45.008] | : Chunk #8 of 10 ... [11:05:45.009] | : - Finding globals in 'X' for chunk #8 ... [11:05:45.009] | : + additional globals found: [n=0] [11:05:45.009] | : + additional namespaces needed: [n=0] [11:05:45.010] | : - Finding globals in 'X' for chunk #8 ... DONE [11:05:45.010] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [11:05:45.010] | : - seeds: [11:05:45.010] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.016] | : Created future: [11:05:45.016] | : MultisessionFuture: [11:05:45.016] | : Label: 'future_lapply-8' [11:05:45.016] | : Expression: [11:05:45.016] | : { [11:05:45.016] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.016] | : "# expression in do.call(), because function called uses '...' " [11:05:45.016] | : "# as a global variable " [11:05:45.016] | : do.call(function(...) { [11:05:45.016] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.016] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.016] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.016] | : "# anonymous function. " [11:05:45.016] | : "# " [11:05:45.016] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.016] | : "# function environment of FUN() to the calling environment. " [11:05:45.016] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.016] | : "# global environment, which is where globals are written. " [11:05:45.016] | : penv <- env <- environment(...future.FUN) [11:05:45.016] | : repeat { [11:05:45.016] | : if (identical(env, globalenv()) || identical(env, [11:05:45.016] | : emptyenv())) [11:05:45.016] | : break [11:05:45.016] | : penv <- env [11:05:45.016] | : env <- parent.env(env) [11:05:45.016] | : } [11:05:45.016] | : if (identical(penv, globalenv())) { [11:05:45.016] | : environment(...future.FUN) <- environment() [11:05:45.016] | : } [11:05:45.016] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.016] | : !isNamespace(penv)) { [11:05:45.016] | : parent.env(penv) <- environment() [11:05:45.016] | : } [11:05:45.016] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.016] | : { [11:05:45.016] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.016] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.016] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.016] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.016] | : on.exit(options(oopts), add = TRUE) [11:05:45.016] | : } [11:05:45.016] | : { [11:05:45.016] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.016] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.016] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.016] | : { [11:05:45.016] | : ...future.FUN(...future.X_jj, ...) [11:05:45.016] | : } [11:05:45.016] | : }) [11:05:45.016] | : } [11:05:45.016] | : } [11:05:45.016] | : }, args = future.call.arguments) [11:05:45.016] | : } [11:05:45.016] | : Globals: 5 objects totaling 5.31 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 141 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.016] | : Packages: [11:05:45.016] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.016] | : Capture standard output: TRUE [11:05:45.016] | : Capture condition classes: 'condition' (excluding '') [11:05:45.016] | : Immediate condition classes: 'immediateCondition' [11:05:45.016] | : Lazy evaluation: FALSE [11:05:45.016] | : Local evaluation: TRUE [11:05:45.016] | : Early signaling: FALSE [11:05:45.016] | : Actions: [n=1] 'run' [11:05:45.016] | : State: 'running' ("Future is being evaluated") [11:05:45.016] | : Resolved: TRUE [11:05:45.016] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-42 [11:05:45.016] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.016] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.016] | : Value: [11:05:45.016] | : Conditions captured: [11:05:45.022] | : Chunk #8 of 10 ... DONE [11:05:45.022] | : Chunk #9 of 10 ... [11:05:45.022] | : - Finding globals in 'X' for chunk #9 ... [11:05:45.023] | : + additional globals found: [n=0] [11:05:45.023] | : + additional namespaces needed: [n=0] [11:05:45.023] | : - Finding globals in 'X' for chunk #9 ... DONE [11:05:45.023] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [11:05:45.023] | : - seeds: [11:05:45.024] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.026] | : Created future: [11:05:45.026] | : MultisessionFuture: [11:05:45.026] | : Label: 'future_lapply-9' [11:05:45.026] | : Expression: [11:05:45.026] | : { [11:05:45.026] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.026] | : "# expression in do.call(), because function called uses '...' " [11:05:45.026] | : "# as a global variable " [11:05:45.026] | : do.call(function(...) { [11:05:45.026] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.026] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.026] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.026] | : "# anonymous function. " [11:05:45.026] | : "# " [11:05:45.026] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.026] | : "# function environment of FUN() to the calling environment. " [11:05:45.026] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.026] | : "# global environment, which is where globals are written. " [11:05:45.026] | : penv <- env <- environment(...future.FUN) [11:05:45.026] | : repeat { [11:05:45.026] | : if (identical(env, globalenv()) || identical(env, [11:05:45.026] | : emptyenv())) [11:05:45.026] | : break [11:05:45.026] | : penv <- env [11:05:45.026] | : env <- parent.env(env) [11:05:45.026] | : } [11:05:45.026] | : if (identical(penv, globalenv())) { [11:05:45.026] | : environment(...future.FUN) <- environment() [11:05:45.026] | : } [11:05:45.026] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.026] | : !isNamespace(penv)) { [11:05:45.026] | : parent.env(penv) <- environment() [11:05:45.026] | : } [11:05:45.026] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.026] | : { [11:05:45.026] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.026] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.026] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.026] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.026] | : on.exit(options(oopts), add = TRUE) [11:05:45.026] | : } [11:05:45.026] | : { [11:05:45.026] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.026] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.026] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.026] | : { [11:05:45.026] | : ...future.FUN(...future.X_jj, ...) [11:05:45.026] | : } [11:05:45.026] | : }) [11:05:45.026] | : } [11:05:45.026] | : } [11:05:45.026] | : }, args = future.call.arguments) [11:05:45.026] | : } [11:05:45.026] | : Globals: 5 objects totaling 5.31 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 141 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.026] | : Packages: [11:05:45.026] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.026] | : Capture standard output: TRUE [11:05:45.026] | : Capture condition classes: 'condition' (excluding '') [11:05:45.026] | : Immediate condition classes: 'immediateCondition' [11:05:45.026] | : Lazy evaluation: FALSE [11:05:45.026] | : Local evaluation: TRUE [11:05:45.026] | : Early signaling: FALSE [11:05:45.026] | : Actions: [n=1] 'run' [11:05:45.026] | : State: 'running' ("Future is being evaluated") [11:05:45.026] | : Resolved: TRUE [11:05:45.026] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-43 [11:05:45.026] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.026] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.026] | : Value: [11:05:45.026] | : Conditions captured: [11:05:45.032] | : Chunk #9 of 10 ... DONE [11:05:45.032] | : Chunk #10 of 10 ... [11:05:45.032] | : - Finding globals in 'X' for chunk #10 ... [11:05:45.033] | : + additional globals found: [n=0] [11:05:45.033] | : + additional namespaces needed: [n=0] [11:05:45.033] | : - Finding globals in 'X' for chunk #10 ... DONE [11:05:45.033] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [11:05:45.033] | : - seeds: [11:05:45.034] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.036] | : Created future: [11:05:45.036] | : MultisessionFuture: [11:05:45.036] | : Label: 'future_lapply-10' [11:05:45.036] | : Expression: [11:05:45.036] | : { [11:05:45.036] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.036] | : "# expression in do.call(), because function called uses '...' " [11:05:45.036] | : "# as a global variable " [11:05:45.036] | : do.call(function(...) { [11:05:45.036] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.036] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.036] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.036] | : "# anonymous function. " [11:05:45.036] | : "# " [11:05:45.036] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.036] | : "# function environment of FUN() to the calling environment. " [11:05:45.036] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.036] | : "# global environment, which is where globals are written. " [11:05:45.036] | : penv <- env <- environment(...future.FUN) [11:05:45.036] | : repeat { [11:05:45.036] | : if (identical(env, globalenv()) || identical(env, [11:05:45.036] | : emptyenv())) [11:05:45.036] | : break [11:05:45.036] | : penv <- env [11:05:45.036] | : env <- parent.env(env) [11:05:45.036] | : } [11:05:45.036] | : if (identical(penv, globalenv())) { [11:05:45.036] | : environment(...future.FUN) <- environment() [11:05:45.036] | : } [11:05:45.036] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.036] | : !isNamespace(penv)) { [11:05:45.036] | : parent.env(penv) <- environment() [11:05:45.036] | : } [11:05:45.036] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.036] | : { [11:05:45.036] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.036] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.036] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.036] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.036] | : on.exit(options(oopts), add = TRUE) [11:05:45.036] | : } [11:05:45.036] | : { [11:05:45.036] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.036] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.036] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.036] | : { [11:05:45.036] | : ...future.FUN(...future.X_jj, ...) [11:05:45.036] | : } [11:05:45.036] | : }) [11:05:45.036] | : } [11:05:45.036] | : } [11:05:45.036] | : }, args = future.call.arguments) [11:05:45.036] | : } [11:05:45.036] | : Globals: 5 objects totaling 5.31 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 141 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.036] | : Packages: [11:05:45.036] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.036] | : Capture standard output: TRUE [11:05:45.036] | : Capture condition classes: 'condition' (excluding '') [11:05:45.036] | : Immediate condition classes: 'immediateCondition' [11:05:45.036] | : Lazy evaluation: FALSE [11:05:45.036] | : Local evaluation: TRUE [11:05:45.036] | : Early signaling: FALSE [11:05:45.036] | : Actions: [n=1] 'run' [11:05:45.036] | : State: 'running' ("Future is being evaluated") [11:05:45.036] | : Resolved: TRUE [11:05:45.036] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-44 [11:05:45.036] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.036] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.036] | : Value: [11:05:45.036] | : Conditions captured: [11:05:45.044] | : Chunk #10 of 10 ... DONE [11:05:45.044] | : Launching 10 futures (chunks) ... DONE [11:05:45.044] | : Resolving 10 futures (chunks) ... [11:05:45.048] | : - Number of value chunks collected: 10 [11:05:45.048] | : Resolving 10 futures (chunks) ... DONE [11:05:45.048] | : Reducing values from 10 chunks ... [11:05:45.048] | : - Number of values collected after concatenation: 10 [11:05:45.048] | : - Number of values expected: 10 [11:05:45.049] | : Reducing values from 10 chunks ... DONE [11:05:45.049] | future_lapply() -> future_xapply() ... done [11:05:45.049] future_lapply() ... done List of 10 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 maxSize = 2305.6 bytes future.globals.maxSize = 2305.6 bytes [11:05:45.054] future_lapply() ... [11:05:45.055] | Globals in FUN(): [n=2] '{', 'getOption' [11:05:45.055] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:45.055] | future_lapply() -> future_xapply() ... [11:05:45.056] | : Number of chunks: 5 [11:05:45.056] | : getGlobalsAndPackagesXApply() ... [11:05:45.056] | : . future.globals: TRUE [11:05:45.066] | : . globals found/used: [n=1] 'FUN' [11:05:45.066] | : . needed namespaces: [n=0] [11:05:45.066] | : . use_args: TRUE [11:05:45.067] | : . Getting '...' globals ... [11:05:45.067] | : . ' '...' content: [n=0] [11:05:45.067] | : . ' List of 1 [11:05:45.067] | : . ' $ ...: list() [11:05:45.067] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.067] | : . ' - attr(*, "where")=List of 1 [11:05:45.067] | : . ' ..$ ...: [11:05:45.067] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.067] | : . ' - attr(*, "resolved")= logi TRUE [11:05:45.067] | : . ' - attr(*, "total_size")= num NA [11:05:45.071] | : . Getting '...' globals ... done [11:05:45.071] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:45.071] | : . List of 2 [11:05:45.071] | : . $ ...future.FUN:function (x) [11:05:45.071] | : . $ ... : list() [11:05:45.071] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.071] | : . - attr(*, "where")=List of 2 [11:05:45.071] | : . ..$ ...future.FUN: [11:05:45.071] | : . ..$ ... : [11:05:45.071] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.071] | : . - attr(*, "resolved")= logi FALSE [11:05:45.071] | : . - attr(*, "total_size")= num 5085 [11:05:45.075] | : . Packages to be attached in all futures: [n=0] [11:05:45.075] | : getGlobalsAndPackagesXApply() ... done [11:05:45.075] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.075] | : List of 5 [11:05:45.075] | : $ ...future.FUN :function (x) [11:05:45.075] | : $ ... : list() [11:05:45.075] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.075] | : $ ...future.elements_ii : NULL [11:05:45.075] | : $ ...future.seeds_ii : NULL [11:05:45.075] | : $ ...future.globals.maxSize: NULL [11:05:45.075] | : - attr(*, "where")=List of 5 [11:05:45.075] | : ..$ ...future.FUN : [11:05:45.075] | : ..$ ... : [11:05:45.075] | : ..$ ...future.elements_ii : [11:05:45.075] | : ..$ ...future.seeds_ii : [11:05:45.075] | : ..$ ...future.globals.maxSize: [11:05:45.075] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.075] | : - attr(*, "resolved")= logi FALSE [11:05:45.075] | : - attr(*, "total_size")= num 5085 [11:05:45.080] | : Number of futures (= number of chunks): 5 [11:05:45.081] | : Launching 5 futures (chunks) ... [11:05:45.081] | : Chunk #1 of 5 ... [11:05:45.081] | : - Finding globals in 'X' for chunk #1 ... [11:05:45.082] | : + additional globals found: [n=0] [11:05:45.082] | : + additional namespaces needed: [n=0] [11:05:45.082] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:45.082] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [11:05:45.082] | : - seeds: [11:05:45.082] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.085] | : Created future: [11:05:45.085] | : MultisessionFuture: [11:05:45.085] | : Label: 'future_lapply-1' [11:05:45.085] | : Expression: [11:05:45.085] | : { [11:05:45.085] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.085] | : "# expression in do.call(), because function called uses '...' " [11:05:45.085] | : "# as a global variable " [11:05:45.085] | : do.call(function(...) { [11:05:45.085] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.085] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.085] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.085] | : "# anonymous function. " [11:05:45.085] | : "# " [11:05:45.085] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.085] | : "# function environment of FUN() to the calling environment. " [11:05:45.085] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.085] | : "# global environment, which is where globals are written. " [11:05:45.085] | : penv <- env <- environment(...future.FUN) [11:05:45.085] | : repeat { [11:05:45.085] | : if (identical(env, globalenv()) || identical(env, [11:05:45.085] | : emptyenv())) [11:05:45.085] | : break [11:05:45.085] | : penv <- env [11:05:45.085] | : env <- parent.env(env) [11:05:45.085] | : } [11:05:45.085] | : if (identical(penv, globalenv())) { [11:05:45.085] | : environment(...future.FUN) <- environment() [11:05:45.085] | : } [11:05:45.085] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.085] | : !isNamespace(penv)) { [11:05:45.085] | : parent.env(penv) <- environment() [11:05:45.085] | : } [11:05:45.085] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.085] | : { [11:05:45.085] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.085] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.085] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.085] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.085] | : on.exit(options(oopts), add = TRUE) [11:05:45.085] | : } [11:05:45.085] | : { [11:05:45.085] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.085] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.085] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.085] | : { [11:05:45.085] | : ...future.FUN(...future.X_jj, ...) [11:05:45.085] | : } [11:05:45.085] | : }) [11:05:45.085] | : } [11:05:45.085] | : } [11:05:45.085] | : }, args = future.call.arguments) [11:05:45.085] | : } [11:05:45.085] | : Globals: 5 objects totaling 5.39 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 217 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.085] | : Packages: [11:05:45.085] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.085] | : Capture standard output: TRUE [11:05:45.085] | : Capture condition classes: 'condition' (excluding '') [11:05:45.085] | : Immediate condition classes: 'immediateCondition' [11:05:45.085] | : Lazy evaluation: FALSE [11:05:45.085] | : Local evaluation: TRUE [11:05:45.085] | : Early signaling: FALSE [11:05:45.085] | : Actions: [n=1] 'run' [11:05:45.085] | : State: 'running' ("Future is being evaluated") [11:05:45.085] | : Resolved: TRUE [11:05:45.085] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-45 [11:05:45.085] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.085] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.085] | : Value: [11:05:45.085] | : Conditions captured: [11:05:45.092] | : Chunk #1 of 5 ... DONE [11:05:45.092] | : Chunk #2 of 5 ... [11:05:45.092] | : - Finding globals in 'X' for chunk #2 ... [11:05:45.093] | : + additional globals found: [n=0] [11:05:45.093] | : + additional namespaces needed: [n=0] [11:05:45.093] | : - Finding globals in 'X' for chunk #2 ... DONE [11:05:45.093] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [11:05:45.094] | : - seeds: [11:05:45.094] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.096] | : Created future: [11:05:45.096] | : MultisessionFuture: [11:05:45.096] | : Label: 'future_lapply-2' [11:05:45.096] | : Expression: [11:05:45.096] | : { [11:05:45.096] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.096] | : "# expression in do.call(), because function called uses '...' " [11:05:45.096] | : "# as a global variable " [11:05:45.096] | : do.call(function(...) { [11:05:45.096] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.096] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.096] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.096] | : "# anonymous function. " [11:05:45.096] | : "# " [11:05:45.096] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.096] | : "# function environment of FUN() to the calling environment. " [11:05:45.096] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.096] | : "# global environment, which is where globals are written. " [11:05:45.096] | : penv <- env <- environment(...future.FUN) [11:05:45.096] | : repeat { [11:05:45.096] | : if (identical(env, globalenv()) || identical(env, [11:05:45.096] | : emptyenv())) [11:05:45.096] | : break [11:05:45.096] | : penv <- env [11:05:45.096] | : env <- parent.env(env) [11:05:45.096] | : } [11:05:45.096] | : if (identical(penv, globalenv())) { [11:05:45.096] | : environment(...future.FUN) <- environment() [11:05:45.096] | : } [11:05:45.096] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.096] | : !isNamespace(penv)) { [11:05:45.096] | : parent.env(penv) <- environment() [11:05:45.096] | : } [11:05:45.096] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.096] | : { [11:05:45.096] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.096] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.096] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.096] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.096] | : on.exit(options(oopts), add = TRUE) [11:05:45.096] | : } [11:05:45.096] | : { [11:05:45.096] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.096] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.096] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.096] | : { [11:05:45.096] | : ...future.FUN(...future.X_jj, ...) [11:05:45.096] | : } [11:05:45.096] | : }) [11:05:45.096] | : } [11:05:45.096] | : } [11:05:45.096] | : }, args = future.call.arguments) [11:05:45.096] | : } [11:05:45.096] | : Globals: 5 objects totaling 5.39 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 217 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.096] | : Packages: [11:05:45.096] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.096] | : Capture standard output: TRUE [11:05:45.096] | : Capture condition classes: 'condition' (excluding '') [11:05:45.096] | : Immediate condition classes: 'immediateCondition' [11:05:45.096] | : Lazy evaluation: FALSE [11:05:45.096] | : Local evaluation: TRUE [11:05:45.096] | : Early signaling: FALSE [11:05:45.096] | : Actions: [n=1] 'run' [11:05:45.096] | : State: 'running' ("Future is being evaluated") [11:05:45.096] | : Resolved: TRUE [11:05:45.096] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-46 [11:05:45.096] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.096] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.096] | : Value: [11:05:45.096] | : Conditions captured: [11:05:45.103] | : Chunk #2 of 5 ... DONE [11:05:45.104] | : Chunk #3 of 5 ... [11:05:45.104] | : - Finding globals in 'X' for chunk #3 ... [11:05:45.104] | : + additional globals found: [n=0] [11:05:45.105] | : + additional namespaces needed: [n=0] [11:05:45.105] | : - Finding globals in 'X' for chunk #3 ... DONE [11:05:45.105] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [11:05:45.105] | : - seeds: [11:05:45.105] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.107] | : Created future: [11:05:45.107] | : MultisessionFuture: [11:05:45.107] | : Label: 'future_lapply-3' [11:05:45.107] | : Expression: [11:05:45.107] | : { [11:05:45.107] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.107] | : "# expression in do.call(), because function called uses '...' " [11:05:45.107] | : "# as a global variable " [11:05:45.107] | : do.call(function(...) { [11:05:45.107] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.107] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.107] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.107] | : "# anonymous function. " [11:05:45.107] | : "# " [11:05:45.107] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.107] | : "# function environment of FUN() to the calling environment. " [11:05:45.107] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.107] | : "# global environment, which is where globals are written. " [11:05:45.107] | : penv <- env <- environment(...future.FUN) [11:05:45.107] | : repeat { [11:05:45.107] | : if (identical(env, globalenv()) || identical(env, [11:05:45.107] | : emptyenv())) [11:05:45.107] | : break [11:05:45.107] | : penv <- env [11:05:45.107] | : env <- parent.env(env) [11:05:45.107] | : } [11:05:45.107] | : if (identical(penv, globalenv())) { [11:05:45.107] | : environment(...future.FUN) <- environment() [11:05:45.107] | : } [11:05:45.107] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.107] | : !isNamespace(penv)) { [11:05:45.107] | : parent.env(penv) <- environment() [11:05:45.107] | : } [11:05:45.107] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.107] | : { [11:05:45.107] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.107] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.107] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.107] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.107] | : on.exit(options(oopts), add = TRUE) [11:05:45.107] | : } [11:05:45.107] | : { [11:05:45.107] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.107] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.107] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.107] | : { [11:05:45.107] | : ...future.FUN(...future.X_jj, ...) [11:05:45.107] | : } [11:05:45.107] | : }) [11:05:45.107] | : } [11:05:45.107] | : } [11:05:45.107] | : }, args = future.call.arguments) [11:05:45.107] | : } [11:05:45.107] | : Globals: 5 objects totaling 5.39 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 217 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.107] | : Packages: [11:05:45.107] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.107] | : Capture standard output: TRUE [11:05:45.107] | : Capture condition classes: 'condition' (excluding '') [11:05:45.107] | : Immediate condition classes: 'immediateCondition' [11:05:45.107] | : Lazy evaluation: FALSE [11:05:45.107] | : Local evaluation: TRUE [11:05:45.107] | : Early signaling: FALSE [11:05:45.107] | : Actions: [n=1] 'run' [11:05:45.107] | : State: 'running' ("Future is being evaluated") [11:05:45.107] | : Resolved: TRUE [11:05:45.107] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-47 [11:05:45.107] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.107] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.107] | : Value: [11:05:45.107] | : Conditions captured: [11:05:45.112] | : Chunk #3 of 5 ... DONE [11:05:45.112] | : Chunk #4 of 5 ... [11:05:45.112] | : - Finding globals in 'X' for chunk #4 ... [11:05:45.113] | : + additional globals found: [n=0] [11:05:45.113] | : + additional namespaces needed: [n=0] [11:05:45.113] | : - Finding globals in 'X' for chunk #4 ... DONE [11:05:45.113] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [11:05:45.114] | : - seeds: [11:05:45.114] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.116] | : Created future: [11:05:45.116] | : MultisessionFuture: [11:05:45.116] | : Label: 'future_lapply-4' [11:05:45.116] | : Expression: [11:05:45.116] | : { [11:05:45.116] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.116] | : "# expression in do.call(), because function called uses '...' " [11:05:45.116] | : "# as a global variable " [11:05:45.116] | : do.call(function(...) { [11:05:45.116] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.116] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.116] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.116] | : "# anonymous function. " [11:05:45.116] | : "# " [11:05:45.116] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.116] | : "# function environment of FUN() to the calling environment. " [11:05:45.116] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.116] | : "# global environment, which is where globals are written. " [11:05:45.116] | : penv <- env <- environment(...future.FUN) [11:05:45.116] | : repeat { [11:05:45.116] | : if (identical(env, globalenv()) || identical(env, [11:05:45.116] | : emptyenv())) [11:05:45.116] | : break [11:05:45.116] | : penv <- env [11:05:45.116] | : env <- parent.env(env) [11:05:45.116] | : } [11:05:45.116] | : if (identical(penv, globalenv())) { [11:05:45.116] | : environment(...future.FUN) <- environment() [11:05:45.116] | : } [11:05:45.116] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.116] | : !isNamespace(penv)) { [11:05:45.116] | : parent.env(penv) <- environment() [11:05:45.116] | : } [11:05:45.116] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.116] | : { [11:05:45.116] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.116] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.116] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.116] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.116] | : on.exit(options(oopts), add = TRUE) [11:05:45.116] | : } [11:05:45.116] | : { [11:05:45.116] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.116] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.116] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.116] | : { [11:05:45.116] | : ...future.FUN(...future.X_jj, ...) [11:05:45.116] | : } [11:05:45.116] | : }) [11:05:45.116] | : } [11:05:45.116] | : } [11:05:45.116] | : }, args = future.call.arguments) [11:05:45.116] | : } [11:05:45.116] | : Globals: 5 objects totaling 5.39 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 217 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.116] | : Packages: [11:05:45.116] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.116] | : Capture standard output: TRUE [11:05:45.116] | : Capture condition classes: 'condition' (excluding '') [11:05:45.116] | : Immediate condition classes: 'immediateCondition' [11:05:45.116] | : Lazy evaluation: FALSE [11:05:45.116] | : Local evaluation: TRUE [11:05:45.116] | : Early signaling: FALSE [11:05:45.116] | : Actions: [n=1] 'run' [11:05:45.116] | : State: 'running' ("Future is being evaluated") [11:05:45.116] | : Resolved: TRUE [11:05:45.116] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-48 [11:05:45.116] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.116] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.116] | : Value: [11:05:45.116] | : Conditions captured: [11:05:45.122] | : Chunk #4 of 5 ... DONE [11:05:45.122] | : Chunk #5 of 5 ... [11:05:45.123] | : - Finding globals in 'X' for chunk #5 ... [11:05:45.123] | : + additional globals found: [n=0] [11:05:45.126] | : + additional namespaces needed: [n=0] [11:05:45.126] | : - Finding globals in 'X' for chunk #5 ... DONE [11:05:45.127] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [11:05:45.127] | : - seeds: [11:05:45.127] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.129] | : Created future: [11:05:45.130] | : MultisessionFuture: [11:05:45.130] | : Label: 'future_lapply-5' [11:05:45.130] | : Expression: [11:05:45.130] | : { [11:05:45.130] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.130] | : "# expression in do.call(), because function called uses '...' " [11:05:45.130] | : "# as a global variable " [11:05:45.130] | : do.call(function(...) { [11:05:45.130] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.130] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.130] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.130] | : "# anonymous function. " [11:05:45.130] | : "# " [11:05:45.130] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.130] | : "# function environment of FUN() to the calling environment. " [11:05:45.130] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.130] | : "# global environment, which is where globals are written. " [11:05:45.130] | : penv <- env <- environment(...future.FUN) [11:05:45.130] | : repeat { [11:05:45.130] | : if (identical(env, globalenv()) || identical(env, [11:05:45.130] | : emptyenv())) [11:05:45.130] | : break [11:05:45.130] | : penv <- env [11:05:45.130] | : env <- parent.env(env) [11:05:45.130] | : } [11:05:45.130] | : if (identical(penv, globalenv())) { [11:05:45.130] | : environment(...future.FUN) <- environment() [11:05:45.130] | : } [11:05:45.130] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.130] | : !isNamespace(penv)) { [11:05:45.130] | : parent.env(penv) <- environment() [11:05:45.130] | : } [11:05:45.130] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.130] | : { [11:05:45.130] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.130] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.130] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.130] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.130] | : on.exit(options(oopts), add = TRUE) [11:05:45.130] | : } [11:05:45.130] | : { [11:05:45.130] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.130] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.130] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.130] | : { [11:05:45.130] | : ...future.FUN(...future.X_jj, ...) [11:05:45.130] | : } [11:05:45.130] | : }) [11:05:45.130] | : } [11:05:45.130] | : } [11:05:45.130] | : }, args = future.call.arguments) [11:05:45.130] | : } [11:05:45.130] | : Globals: 5 objects totaling 5.39 KiB (function '...future.FUN' of 407 bytes, list '...future.elements_ii' of 217 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.130] | : Packages: [11:05:45.130] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.130] | : Capture standard output: TRUE [11:05:45.130] | : Capture condition classes: 'condition' (excluding '') [11:05:45.130] | : Immediate condition classes: 'immediateCondition' [11:05:45.130] | : Lazy evaluation: FALSE [11:05:45.130] | : Local evaluation: TRUE [11:05:45.130] | : Early signaling: FALSE [11:05:45.130] | : Actions: [n=1] 'run' [11:05:45.130] | : State: 'running' ("Future is being evaluated") [11:05:45.130] | : Resolved: TRUE [11:05:45.130] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-49 [11:05:45.130] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.130] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.130] | : Value: [11:05:45.130] | : Conditions captured: [11:05:45.135] | : Chunk #5 of 5 ... DONE [11:05:45.136] | : Launching 5 futures (chunks) ... DONE [11:05:45.136] | : Resolving 5 futures (chunks) ... [11:05:45.138] | : - Number of value chunks collected: 5 [11:05:45.138] | : Resolving 5 futures (chunks) ... DONE [11:05:45.138] | : Reducing values from 5 chunks ... [11:05:45.138] | : - Number of values collected after concatenation: 10 [11:05:45.138] | : - Number of values expected: 10 [11:05:45.138] | : Reducing values from 5 chunks ... DONE [11:05:45.139] | future_lapply() -> future_xapply() ... done [11:05:45.139] future_lapply() ... done List of 10 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 maxSize = 2305.6 bytes future.globals.maxSize = 2305.6 bytes [11:05:45.144] future_lapply() ... [11:05:45.146] | Globals in FUN(): [n=2] '{', 'getOption' [11:05:45.146] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:45.146] | future_lapply() -> future_xapply() ... [11:05:45.147] | : Number of chunks: 2 [11:05:45.148] | : getGlobalsAndPackagesXApply() ... [11:05:45.148] | : . future.globals: TRUE [11:05:45.156] | : . globals found/used: [n=1] 'FUN' [11:05:45.156] | : . needed namespaces: [n=0] [11:05:45.156] | : . use_args: TRUE [11:05:45.156] | : . Getting '...' globals ... [11:05:45.157] | : . ' '...' content: [n=0] [11:05:45.157] | : . ' List of 1 [11:05:45.157] | : . ' $ ...: list() [11:05:45.157] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.157] | : . ' - attr(*, "where")=List of 1 [11:05:45.157] | : . ' ..$ ...: [11:05:45.157] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.157] | : . ' - attr(*, "resolved")= logi TRUE [11:05:45.157] | : . ' - attr(*, "total_size")= num NA [11:05:45.160] | : . Getting '...' globals ... done [11:05:45.161] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:45.161] | : . List of 2 [11:05:45.161] | : . $ ...future.FUN:function (x) [11:05:45.161] | : . $ ... : list() [11:05:45.161] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.161] | : . - attr(*, "where")=List of 2 [11:05:45.161] | : . ..$ ...future.FUN: [11:05:45.161] | : . ..$ ... : [11:05:45.161] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.161] | : . - attr(*, "resolved")= logi FALSE [11:05:45.161] | : . - attr(*, "total_size")= num 5085 [11:05:45.165] | : . Packages to be attached in all futures: [n=0] [11:05:45.165] | : getGlobalsAndPackagesXApply() ... done [11:05:45.165] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.165] | : List of 5 [11:05:45.165] | : $ ...future.FUN :function (x) [11:05:45.165] | : $ ... : list() [11:05:45.165] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.165] | : $ ...future.elements_ii : NULL [11:05:45.165] | : $ ...future.seeds_ii : NULL [11:05:45.165] | : $ ...future.globals.maxSize: NULL [11:05:45.165] | : - attr(*, "where")=List of 5 [11:05:45.165] | : ..$ ...future.FUN : [11:05:45.165] | : ..$ ... : [11:05:45.165] | : ..$ ...future.elements_ii : [11:05:45.165] | : ..$ ...future.seeds_ii : [11:05:45.165] | : ..$ ...future.globals.maxSize: [11:05:45.165] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.165] | : - attr(*, "resolved")= logi FALSE [11:05:45.165] | : - attr(*, "total_size")= num 5085 [11:05:45.171] | : Number of futures (= number of chunks): 2 [11:05:45.171] | : Launching 2 futures (chunks) ... [11:05:45.171] | : Chunk #1 of 2 ... [11:05:45.172] | : - Finding globals in 'X' for chunk #1 ... [11:05:45.172] | : + additional globals found: [n=0] [11:05:45.172] | : + additional namespaces needed: [n=0] [11:05:45.173] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:45.173] | : - Adjusted option 'future.globals.maxSize': 2306 -> 2 * 2306 = 4611 (bytes) [11:05:45.173] | : - seeds: [11:05:45.173] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.176] | : Created future: [11:05:45.176] | : MultisessionFuture: [11:05:45.176] | : Label: 'future_lapply-1' [11:05:45.176] | : Expression: [11:05:45.176] | : { [11:05:45.176] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.176] | : "# expression in do.call(), because function called uses '...' " [11:05:45.176] | : "# as a global variable " [11:05:45.176] | : do.call(function(...) { [11:05:45.176] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.176] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.176] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.176] | : "# anonymous function. " [11:05:45.176] | : "# " [11:05:45.176] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.176] | : "# function environment of FUN() to the calling environment. " [11:05:45.176] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.176] | : "# global environment, which is where globals are written. " [11:05:45.176] | : penv <- env <- environment(...future.FUN) [11:05:45.176] | : repeat { [11:05:45.176] | : if (identical(env, globalenv()) || identical(env, [11:05:45.176] | : emptyenv())) [11:05:45.176] | : break [11:05:45.176] | : penv <- env [11:05:45.176] | : env <- parent.env(env) [11:05:45.176] | : } [11:05:45.176] | : if (identical(penv, globalenv())) { [11:05:45.176] | : environment(...future.FUN) <- environment() [11:05:45.176] | : } [11:05:45.176] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.176] | : !isNamespace(penv)) { [11:05:45.176] | : parent.env(penv) <- environment() [11:05:45.176] | : } [11:05:45.176] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.176] | : { [11:05:45.176] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.176] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.176] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.176] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.176] | : on.exit(options(oopts), add = TRUE) [11:05:45.176] | : } [11:05:45.176] | : { [11:05:45.176] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.176] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.176] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.176] | : { [11:05:45.176] | : ...future.FUN(...future.X_jj, ...) [11:05:45.176] | : } [11:05:45.176] | : }) [11:05:45.176] | : } [11:05:45.176] | : } [11:05:45.176] | : }, args = future.call.arguments) [11:05:45.176] | : } [11:05:45.176] | : Globals: 5 objects totaling 5.61 KiB (list '...future.elements_ii' of 445 bytes, function '...future.FUN' of 407 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.176] | : Packages: [11:05:45.176] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.176] | : Capture standard output: TRUE [11:05:45.176] | : Capture condition classes: 'condition' (excluding '') [11:05:45.176] | : Immediate condition classes: 'immediateCondition' [11:05:45.176] | : Lazy evaluation: FALSE [11:05:45.176] | : Local evaluation: TRUE [11:05:45.176] | : Early signaling: FALSE [11:05:45.176] | : Actions: [n=1] 'run' [11:05:45.176] | : State: 'running' ("Future is being evaluated") [11:05:45.176] | : Resolved: TRUE [11:05:45.176] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-50 [11:05:45.176] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.176] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.176] | : Value: [11:05:45.176] | : Conditions captured: [11:05:45.185] | : Chunk #1 of 2 ... DONE [11:05:45.185] | : Chunk #2 of 2 ... [11:05:45.186] | : - Finding globals in 'X' for chunk #2 ... [11:05:45.186] | : + additional globals found: [n=0] [11:05:45.186] | : + additional namespaces needed: [n=0] [11:05:45.186] | : - Finding globals in 'X' for chunk #2 ... DONE [11:05:45.187] | : - Adjusted option 'future.globals.maxSize': 2306 -> 2 * 2306 = 4611 (bytes) [11:05:45.187] | : - seeds: [11:05:45.187] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.189] | : Created future: [11:05:45.189] | : MultisessionFuture: [11:05:45.189] | : Label: 'future_lapply-2' [11:05:45.189] | : Expression: [11:05:45.189] | : { [11:05:45.189] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.189] | : "# expression in do.call(), because function called uses '...' " [11:05:45.189] | : "# as a global variable " [11:05:45.189] | : do.call(function(...) { [11:05:45.189] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.189] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.189] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.189] | : "# anonymous function. " [11:05:45.189] | : "# " [11:05:45.189] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.189] | : "# function environment of FUN() to the calling environment. " [11:05:45.189] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.189] | : "# global environment, which is where globals are written. " [11:05:45.189] | : penv <- env <- environment(...future.FUN) [11:05:45.189] | : repeat { [11:05:45.189] | : if (identical(env, globalenv()) || identical(env, [11:05:45.189] | : emptyenv())) [11:05:45.189] | : break [11:05:45.189] | : penv <- env [11:05:45.189] | : env <- parent.env(env) [11:05:45.189] | : } [11:05:45.189] | : if (identical(penv, globalenv())) { [11:05:45.189] | : environment(...future.FUN) <- environment() [11:05:45.189] | : } [11:05:45.189] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.189] | : !isNamespace(penv)) { [11:05:45.189] | : parent.env(penv) <- environment() [11:05:45.189] | : } [11:05:45.189] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.189] | : { [11:05:45.189] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.189] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.189] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.189] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.189] | : on.exit(options(oopts), add = TRUE) [11:05:45.189] | : } [11:05:45.189] | : { [11:05:45.189] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.189] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.189] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.189] | : { [11:05:45.189] | : ...future.FUN(...future.X_jj, ...) [11:05:45.189] | : } [11:05:45.189] | : }) [11:05:45.189] | : } [11:05:45.189] | : } [11:05:45.189] | : }, args = future.call.arguments) [11:05:45.189] | : } [11:05:45.189] | : Globals: 5 objects totaling 5.61 KiB (list '...future.elements_ii' of 445 bytes, function '...future.FUN' of 407 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.189] | : Packages: [11:05:45.189] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.189] | : Capture standard output: TRUE [11:05:45.189] | : Capture condition classes: 'condition' (excluding '') [11:05:45.189] | : Immediate condition classes: 'immediateCondition' [11:05:45.189] | : Lazy evaluation: FALSE [11:05:45.189] | : Local evaluation: TRUE [11:05:45.189] | : Early signaling: FALSE [11:05:45.189] | : Actions: [n=1] 'run' [11:05:45.189] | : State: 'running' ("Future is being evaluated") [11:05:45.189] | : Resolved: TRUE [11:05:45.189] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-51 [11:05:45.189] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.189] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.189] | : Value: [11:05:45.189] | : Conditions captured: [11:05:45.195] | : Chunk #2 of 2 ... DONE [11:05:45.195] | : Launching 2 futures (chunks) ... DONE [11:05:45.195] | : Resolving 2 futures (chunks) ... [11:05:45.196] | : - Number of value chunks collected: 2 [11:05:45.196] | : Resolving 2 futures (chunks) ... DONE [11:05:45.196] | : Reducing values from 2 chunks ... [11:05:45.197] | : - Number of values collected after concatenation: 10 [11:05:45.197] | : - Number of values expected: 10 [11:05:45.197] | : Reducing values from 2 chunks ... DONE [11:05:45.197] | future_lapply() -> future_xapply() ... done [11:05:45.197] future_lapply() ... done List of 10 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 maxSize = 2305.6 bytes future.globals.maxSize = 2305.6 bytes [11:05:45.202] future_lapply() ... [11:05:45.203] | Globals in FUN(): [n=2] '{', 'getOption' [11:05:45.203] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:45.204] | future_lapply() -> future_xapply() ... [11:05:45.204] | : Number of chunks: 1 [11:05:45.204] | : getGlobalsAndPackagesXApply() ... [11:05:45.204] | : . future.globals: TRUE [11:05:45.212] | : . globals found/used: [n=1] 'FUN' [11:05:45.213] | : . needed namespaces: [n=0] [11:05:45.213] | : . use_args: TRUE [11:05:45.213] | : . Getting '...' globals ... [11:05:45.214] | : . ' '...' content: [n=0] [11:05:45.214] | : . ' List of 1 [11:05:45.214] | : . ' $ ...: list() [11:05:45.214] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.214] | : . ' - attr(*, "where")=List of 1 [11:05:45.214] | : . ' ..$ ...: [11:05:45.214] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.214] | : . ' - attr(*, "resolved")= logi TRUE [11:05:45.214] | : . ' - attr(*, "total_size")= num NA [11:05:45.222] | : . Getting '...' globals ... done [11:05:45.223] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:45.223] | : . List of 2 [11:05:45.223] | : . $ ...future.FUN:function (x) [11:05:45.223] | : . $ ... : list() [11:05:45.223] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.223] | : . - attr(*, "where")=List of 2 [11:05:45.223] | : . ..$ ...future.FUN: [11:05:45.223] | : . ..$ ... : [11:05:45.223] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.223] | : . - attr(*, "resolved")= logi FALSE [11:05:45.223] | : . - attr(*, "total_size")= num 5085 [11:05:45.227] | : . Packages to be attached in all futures: [n=0] [11:05:45.227] | : getGlobalsAndPackagesXApply() ... done [11:05:45.227] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.227] | : List of 5 [11:05:45.227] | : $ ...future.FUN :function (x) [11:05:45.227] | : $ ... : list() [11:05:45.227] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.227] | : $ ...future.elements_ii : NULL [11:05:45.227] | : $ ...future.seeds_ii : NULL [11:05:45.227] | : $ ...future.globals.maxSize: NULL [11:05:45.227] | : - attr(*, "where")=List of 5 [11:05:45.227] | : ..$ ...future.FUN : [11:05:45.227] | : ..$ ... : [11:05:45.227] | : ..$ ...future.elements_ii : [11:05:45.227] | : ..$ ...future.seeds_ii : [11:05:45.227] | : ..$ ...future.globals.maxSize: [11:05:45.227] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.227] | : - attr(*, "resolved")= logi FALSE [11:05:45.227] | : - attr(*, "total_size")= num 5085 [11:05:45.232] | : Number of futures (= number of chunks): 1 [11:05:45.233] | : Launching 1 futures (chunks) ... [11:05:45.233] | : Chunk #1 of 1 ... [11:05:45.233] | : - Finding globals in 'X' for chunk #1 ... [11:05:45.234] | : + additional globals found: [n=0] [11:05:45.234] | : + additional namespaces needed: [n=0] [11:05:45.234] | : - Finding globals in 'X' for chunk #1 ... DONE [11:05:45.234] | : - seeds: [11:05:45.234] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.237] | : Created future: [11:05:45.237] | : MultisessionFuture: [11:05:45.237] | : Label: 'future_lapply-1' [11:05:45.237] | : Expression: [11:05:45.237] | : { [11:05:45.237] | : "# future::getGlobalsAndPackages(): wrapping the original future" [11:05:45.237] | : "# expression in do.call(), because function called uses '...' " [11:05:45.237] | : "# as a global variable " [11:05:45.237] | : do.call(function(...) { [11:05:45.237] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [11:05:45.237] | : "# without having an '...' argument. This means '...' is treated" [11:05:45.237] | : "# as a global variable. This may happen when FUN() is an " [11:05:45.237] | : "# anonymous function. " [11:05:45.237] | : "# " [11:05:45.237] | : "# If an anonymous function, we will make sure to restore the " [11:05:45.237] | : "# function environment of FUN() to the calling environment. " [11:05:45.237] | : "# We assume FUN() an anonymous function if it lives in the " [11:05:45.237] | : "# global environment, which is where globals are written. " [11:05:45.237] | : penv <- env <- environment(...future.FUN) [11:05:45.237] | : repeat { [11:05:45.237] | : if (identical(env, globalenv()) || identical(env, [11:05:45.237] | : emptyenv())) [11:05:45.237] | : break [11:05:45.237] | : penv <- env [11:05:45.237] | : env <- parent.env(env) [11:05:45.237] | : } [11:05:45.237] | : if (identical(penv, globalenv())) { [11:05:45.237] | : environment(...future.FUN) <- environment() [11:05:45.237] | : } [11:05:45.237] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [11:05:45.237] | : !isNamespace(penv)) { [11:05:45.237] | : parent.env(penv) <- environment() [11:05:45.237] | : } [11:05:45.237] | : rm(list = c("env", "penv"), inherits = FALSE) [11:05:45.237] | : { [11:05:45.237] | : "# future.apply:::future_xapply(): preserve future option" [11:05:45.237] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [11:05:45.237] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [11:05:45.237] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [11:05:45.237] | : on.exit(options(oopts), add = TRUE) [11:05:45.237] | : } [11:05:45.237] | : { [11:05:45.237] | : "# future.apply::future_lapply(): process chunk of elements" [11:05:45.237] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [11:05:45.237] | : ...future.X_jj <- ...future.elements_ii[[jj]] [11:05:45.237] | : { [11:05:45.237] | : ...future.FUN(...future.X_jj, ...) [11:05:45.237] | : } [11:05:45.237] | : }) [11:05:45.237] | : } [11:05:45.237] | : } [11:05:45.237] | : }, args = future.call.arguments) [11:05:45.237] | : } [11:05:45.237] | : Globals: 5 objects totaling 5.98 KiB (list '...future.elements_ii' of 825 bytes, function '...future.FUN' of 407 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, numeric '...future.globals.maxSize' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes) [11:05:45.237] | : Packages: [11:05:45.237] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [11:05:45.237] | : Capture standard output: TRUE [11:05:45.237] | : Capture condition classes: 'condition' (excluding '') [11:05:45.237] | : Immediate condition classes: 'immediateCondition' [11:05:45.237] | : Lazy evaluation: FALSE [11:05:45.237] | : Local evaluation: TRUE [11:05:45.237] | : Early signaling: FALSE [11:05:45.237] | : Actions: [n=1] 'run' [11:05:45.237] | : State: 'running' ("Future is being evaluated") [11:05:45.237] | : Resolved: TRUE [11:05:45.237] | : Unique identifier: d25b72138f884b2acb58249f46f44db3-52 [11:05:45.237] | : Owner process: d25b72138f884b2acb58249f46f44db3 [11:05:45.237] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [11:05:45.237] | : Value: [11:05:45.237] | : Conditions captured: [11:05:45.242] | : Chunk #1 of 1 ... DONE [11:05:45.243] | : Launching 1 futures (chunks) ... DONE [11:05:45.243] | : Resolving 1 futures (chunks) ... [11:05:45.243] | : - Number of value chunks collected: 1 [11:05:45.243] | : Resolving 1 futures (chunks) ... DONE [11:05:45.244] | : Reducing values from 1 chunks ... [11:05:45.244] | : - Number of values collected after concatenation: 10 [11:05:45.244] | : - Number of values expected: 10 [11:05:45.244] | : Reducing values from 1 chunks ... DONE [11:05:45.244] | future_lapply() -> future_xapply() ... done [11:05:45.244] future_lapply() ... done List of 10 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 $ : num 2306 maxSize = 2305.6 bytes future.globals.maxSize = 2305.6 bytes > y <- NULL > options(future.globals.maxSize = oMaxSize) > message("*** future_lapply() - too large ... DONE") *** future_lapply() - too large ... DONE > message("*** future_lapply() - globals exceptions ...") *** future_lapply() - globals exceptions ... > res <- tryCatch({ + y <- future_lapply(1, FUN = function(x) x, future.globals = 42) + }, error = identity) [11:05:45.250] future_lapply() ... [11:05:45.250] | Globals in FUN(): [n=0] [11:05:45.250] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:45.251] | future_lapply() -> future_xapply() ... [11:05:45.251] | : Number of chunks: 1 [11:05:45.251] | : getGlobalsAndPackagesXApply() ... [11:05:45.251] | : getGlobalsAndPackagesXApply() ... done [11:05:45.252] | future_lapply() -> future_xapply() ... done [11:05:45.252] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- tryCatch({ + y <- future_lapply(1, FUN = function(x) x, future.globals = list(1)) + }, error = identity) [11:05:45.252] future_lapply() ... [11:05:45.253] | Globals in FUN(): [n=0] [11:05:45.253] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:45.253] | future_lapply() -> future_xapply() ... [11:05:45.253] | : Number of chunks: 1 [11:05:45.253] | : getGlobalsAndPackagesXApply() ... [11:05:45.254] | : . future.globals: with names [11:05:45.254] | : getGlobalsAndPackagesXApply() ... done [11:05:45.254] | future_lapply() -> future_xapply() ... done [11:05:45.254] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- tryCatch({ + y <- future_lapply(1, FUN = function(x) x, future.globals = "...future.FUN") + }, error = identity) [11:05:45.255] future_lapply() ... [11:05:45.255] | Globals in FUN(): [n=0] [11:05:45.255] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:45.256] | future_lapply() -> future_xapply() ... [11:05:45.256] | : Number of chunks: 1 [11:05:45.256] | : getGlobalsAndPackagesXApply() ... [11:05:45.256] | : . future.globals: '...future.FUN' [11:05:45.257] | : . use_args: TRUE [11:05:45.257] | : getGlobalsAndPackagesXApply() ... done [11:05:45.257] | future_lapply() -> future_xapply() ... done [11:05:45.257] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- tryCatch({ + y <- future_lapply(1, FUN = function(x) x, future.globals = "...future.FUN") + }, error = identity) [11:05:45.258] future_lapply() ... [11:05:45.258] | Globals in FUN(): [n=0] [11:05:45.258] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:45.259] | future_lapply() -> future_xapply() ... [11:05:45.259] | : Number of chunks: 1 [11:05:45.259] | : getGlobalsAndPackagesXApply() ... [11:05:45.259] | : . future.globals: '...future.FUN' [11:05:45.259] | : . use_args: TRUE [11:05:45.260] | : getGlobalsAndPackagesXApply() ... done [11:05:45.260] | future_lapply() -> future_xapply() ... done [11:05:45.260] future_lapply() ... done > stopifnot(inherits(res, "error")) > ...future.elements_ii <- 42 > X <- list(function() 2 * ...future.elements_ii) > res <- tryCatch({ + y <- future_lapply(X, FUN = function(f) f()) + }, error = identity) [11:05:45.261] future_lapply() ... [11:05:45.261] | Globals in FUN(): [n=0] [11:05:45.261] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [11:05:45.262] | future_lapply() -> future_xapply() ... [11:05:45.262] | : Number of chunks: 1 [11:05:45.262] | : getGlobalsAndPackagesXApply() ... [11:05:45.262] | : . future.globals: TRUE [11:05:45.268] | : . globals found/used: [n=1] 'FUN' [11:05:45.268] | : . needed namespaces: [n=0] [11:05:45.268] | : . use_args: TRUE [11:05:45.268] | : . Getting '...' globals ... [11:05:45.269] | : . ' '...' content: [n=0] [11:05:45.269] | : . ' List of 1 [11:05:45.269] | : . ' $ ...: list() [11:05:45.269] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.269] | : . ' - attr(*, "where")=List of 1 [11:05:45.269] | : . ' ..$ ...: [11:05:45.269] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.269] | : . ' - attr(*, "resolved")= logi TRUE [11:05:45.269] | : . ' - attr(*, "total_size")= num NA [11:05:45.272] | : . Getting '...' globals ... done [11:05:45.272] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [11:05:45.272] | : . List of 2 [11:05:45.272] | : . $ ...future.FUN:function (f) [11:05:45.272] | : . $ ... : list() [11:05:45.272] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.272] | : . - attr(*, "where")=List of 2 [11:05:45.272] | : . ..$ ...future.FUN: [11:05:45.272] | : . ..$ ... : [11:05:45.272] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.272] | : . - attr(*, "resolved")= logi FALSE [11:05:45.272] | : . - attr(*, "total_size")= num 3255 [11:05:45.276] | : . Packages to be attached in all futures: [n=0] [11:05:45.276] | : getGlobalsAndPackagesXApply() ... done [11:05:45.276] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [11:05:45.277] | : List of 5 [11:05:45.277] | : $ ...future.FUN :function (f) [11:05:45.277] | : $ ... : list() [11:05:45.277] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [11:05:45.277] | : $ ...future.elements_ii : NULL [11:05:45.277] | : $ ...future.seeds_ii : NULL [11:05:45.277] | : $ ...future.globals.maxSize: NULL [11:05:45.277] | : - attr(*, "where")=List of 5 [11:05:45.277] | : ..$ ...future.FUN : [11:05:45.277] | : ..$ ... : [11:05:45.277] | : ..$ ...future.elements_ii : [11:05:45.277] | : ..$ ...future.seeds_ii : [11:05:45.277] | : ..$ ...future.globals.maxSize: [11:05:45.277] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [11:05:45.277] | : - attr(*, "resolved")= logi FALSE [11:05:45.277] | : - attr(*, "total_size")= num 3255 [11:05:45.282] | : Number of futures (= number of chunks): 1 [11:05:45.282] | : Launching 1 futures (chunks) ... [11:05:45.282] | : Chunk #1 of 1 ... [11:05:45.282] | : - Finding globals in 'X' for chunk #1 ... [11:05:45.293] | : + additional globals found: [n=1] '...future.elements_ii' [11:05:45.293] | : + additional namespaces needed: [n=0] [11:05:45.294] | : onError() ... [11:05:45.294] | : . Received Warning: Caught simpleError. Canceling all iterations ... [11:05:45.294] | : . Signaling: [11:05:45.294] | : onError() ... done [11:05:45.295] | future_lapply() -> future_xapply() ... done [11:05:45.295] future_lapply() ... done > stopifnot(inherits(res, "error")) > message("*** future_lapply() - globals exceptions ... DONE") *** future_lapply() - globals exceptions ... DONE Failed to undo environment variables: - Expected environment variables: [n=218] '!ExitCode', 'ALLUSERSPROFILE', 'APPDATA', 'BIBINPUTS', 'BINDIR', 'BSTINPUTS', 'COMMONPROGRAMFILES', 'COMPUTERNAME', 'COMSPEC', 'CURL_CA_BUNDLE', 'CV_Instance001', 'CYGWIN', 'CommonProgramFiles(x86)', 'CommonProgramW6432', 'DriverData', 'HOME', 'HOMEDRIVE', 'HOMEPATH', 'JAGS_ROOT', 'JAVA_HOME', 'LANGUAGE', 'LC_COLLATE', 'LC_MONETARY', 'LC_TIME', 'LOCALAPPDATA', 'LOGONSERVER', 'LS_HOME', 'LS_LICENSE_PATH', 'MAKE', 'MAKEFLAGS', 'MAKELEVEL', 'MFLAGS', 'MSMPI_BENCHMARKS', 'MSMPI_BIN', 'MSYS2_ENV_CONV_EXCL', 'NUMBER_OF_PROCESSORS', 'OCL', 'OMP_THREAD_LIMIT', 'OS', 'PATH', 'PATHEXT', 'PROCESSOR_ARCHITECTURE', 'PROCESSOR_IDENTIFIER', 'PROCESSOR_LEVEL', 'PROCESSOR_REVISION', 'PROGRAMFILES', 'PROMPT', 'PSModulePath', 'PUBLIC', 'PWD', 'ProgramData', 'ProgramFiles(x86)', 'ProgramW6432', 'RTOOLS44_HOME', 'RTOOLS45_HOME', 'R_ARCH', 'R_BROWSER', 'R_BZIPCMD', 'R_CMD', 'R_COMPILED_BY', 'R_CRAN_WEB', 'R_CUSTOM_TOOLS_PATH', 'R_CUSTOM_TOOLS_SOFT', 'R_DOC_DIR', 'R_ENVIRON_USER', 'R_GSCMD', 'R_GZIPCMD', 'R_HOME', 'R_INCLUDE_DIR', 'R_INSTALL_TAR', 'R_LIBS', 'R_LIBS_SITE', 'R_LIBS_USER', 'R_MAX_NUM_DLLS', 'R_OSTYPE', 'R_PAPERSIZE', 'R_PAPERSIZE_USER', 'R_PARALLELLY_MAKENODEPSOCK_AUTOKILL', 'R_PARALLELLY_MAKENODEPSOCK_CONNECTTIMEOUT', 'R_PARALLELLY_MAKENODEPSOCK_RSCRIPT_LABEL', 'R_PARALLELLY_MAKENODEPSOCK_SESSIONINFO_PKGS', 'R_PARALLELLY_MAKENODEPSOCK_TIMEOUT', 'R_PARALLELLY_RANDOM_PORTS', 'R_PARALLEL_PORT', 'R_RD4PDF', 'R_RTOOLS45_PATH', 'R_SCRIPT_LEGACY', 'R_SHARE_DIR', 'R_TESTME_NAME', 'R_TESTME_PACKAGE', 'R_TESTME_PATH', 'R_TESTS', 'R_UNZIPCMD', 'R_USER', 'R_VERSION', 'R_ZIPCMD', 'SED', 'SHLVL', 'SYSTEMDRIVE', 'SYSTEMROOT', 'TAR', 'TAR_OPTIONS', 'TEMP', 'TERM', 'TETRAD_DIR', 'TEXINPUTS', 'TMP', 'TMPDIR', 'USERDOMAIN', 'USERDOMAIN_ROAMINGPROFILE', 'USERNAME', 'USERPROFILE', 'WINDIR', '_', '_R_CHECK_AUTOCONF_', '_R_CHECK_BOGUS_RETURN_', '_R_CHECK_BROWSER_NONINTERACTIVE_', '_R_CHECK_BUILD_VIGNETTES_SEPARATELY_', '_R_CHECK_CODETOOLS_PROFILE_', '_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_', '_R_CHECK_CODE_ATTACH_', '_R_CHECK_CODE_CLASS_IS_STRING_', '_R_CHECK_CODE_DATA_INTO_GLOBALENV_', '_R_CHECK_CODE_USAGE_VIA_NAMESPACES_', '_R_CHECK_CODE_USAGE_WITHOUT_LOADING_', '_R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_', '_R_CHECK_CODOC_VARIABLES_IN_USAGES_', '_R_CHECK_COMPACT_DATA2_', '_R_CHECK_COMPILATION_FLAGS_', '_R_CHECK_CONNECTIONS_LEFT_OPEN_', '_R_CHECK_CRAN_INCOMING_', '_R_CHECK_CRAN_INCOMING_ASPELL_RECHECK_MAYBE_', '_R_CHECK_CRAN_INCOMING_ASPELL_RECHECK_START_', '_R_CHECK_CRAN_INCOMING_CHECK_FILE_URIS_', '_R_CHECK_CRAN_INCOMING_CHECK_URLS_IN_PARALLEL_', '_R_CHECK_CRAN_INCOMING_NOTE_GNU_MAKE_', '_R_CHECK_CRAN_INCOMING_REMOTE_', '_R_CHECK_CRAN_INCOMING_USE_ASPELL_', '_R_CHECK_DATALIST_', '_R_CHECK_DEPRECATED_DEFUNCT_', '_R_CHECK_DOC_SIZES2_', '_R_CHECK_DOT_FIRSTLIB_', '_R_CHECK_DOT_INTERNAL_', '_R_CHECK_EXAMPLE_TIMING_THRESHOLD_', '_R_CHECK_EXECUTABLES_', '_R_CHECK_EXECUTABLES_EXCLUSIONS_', '_R_CHECK_FF_CALLS_', '_R_CHECK_FF_DUP_', '_R_CHECK_FORCE_SUGGESTS_', '_R_CHECK_FUTURE_FILE_TIMESTAMPS_', '_R_CHECK_FUTURE_FILE_TIMESTAMPS_LEEWAY_', '_R_CHECK_HAVE_MYSQL_', '_R_CHECK_HAVE_ODBC_', '_R_CHECK_HAVE_PERL_', '_R_CHECK_HAVE_POSTGRES_', '_R_CHECK_INSTALL_DEPENDS_', '_R_CHECK_INTERNALS2_', '_R_CHECK_LENGTH_1_CONDITION_', '_R_CHECK_LICENSE_', '_R_CHECK_LIMIT_CORES_', '_R_CHECK_LOG_USE_INFO_', '_R_CHECK_MATRIX_DATA_', '_R_CHECK_MBCS_CONVERSION_FAILURE_', '_R_CHECK_NATIVE_ROUTINE_REGISTRATION_', '_R_CHECK_NEWS_IN_PLAIN_TEXT_', '_R_CHECK_NO_RECOMMENDED_', '_R_CHECK_NO_STOP_ON_TEST_ERROR_', '_R_CHECK_ORPHANED_', '_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_', '_R_CHECK_PACKAGES_USED_IGNORE_UNUSED_IMPORTS_', '_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_', '_R_CHECK_PACKAGE_DATASETS_SUPPRESS_NOTES_', '_R_CHECK_PACKAGE_NAME_', '_R_CHECK_PKG_SIZES_', '_R_CHECK_PKG_SIZES_THRESHOLD_', '_R_CHECK_PRAGMAS_', '_R_CHECK_RCPP_NOT_NEEDED_', '_R_CHECK_RD_BIBENTRIES_CITED_NOT_SHOWN_', '_R_CHECK_RD_EXAMPLES_T_AND_F_', '_R_CHECK_RD_LINE_WIDTHS_', '_R_CHECK_RD_MATH_RENDERING_', '_R_CHECK_RD_NOTE_LOST_BRACES_', '_R_CHECK_RD_VALIDATE_RD2HTML_', '_R_CHECK_REPLACING_IMPORTS_', '_R_CHECK_R_DEPENDS_', '_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_', '_R_CHECK_SCREEN_DEVICE_', '_R_CHECK_SERIALIZATION_', '_R_CHECK_SHLIB_OPENMP_FLAGS_', '_R_CHECK_SRC_MINUS_W_IMPLICIT_', '_R_CHECK_SUBDIRS_NOCASE_', '_R_CHECK_SUGGESTS_ONLY_', '_R_CHECK_SYSTEM_CLOCK_', '_R_CHECK_TESTS_NLINES_', '_R_CHECK_TEST_TIMING_', '_R_CHECK_TIMINGS_', '_R_CHECK_TOPLEVEL_FILES_', '_R_CHECK_UNDOC_USE_ALL_NAMES_', '_R_CHECK_UNSAFE_CALLS_', '_R_CHECK_URLS_RELATIVE_PATHS_', '_R_CHECK_URLS_SHOW_301_STATUS_', '_R_CHECK_VC_DIRS_', '_R_CHECK_VIGNETTES_NLINES_', '_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_', '_R_CHECK_VIGNETTE_TIMING_', '_R_CHECK_VIGNETTE_TITLES_', '_R_CHECK_WINDOWS_DEVICE_', '_R_CHECK_XREFS_NOTE_MISSING_PACKAGE_ANCHORS_', '_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_', '_R_CLASS_MATRIX_ARRAY_', '_R_DEPRECATED_IS_R_', '_R_S3_METHOD_LOOKUP_BASEENV_AFTER_GLOBALENV_', '_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_', '_R_USE_STRICT_R_HEADERS_', '__R_CHECK_DOC_FILES_NOTE_IF_ALL_INTERNAL__', 'maj.version', 'nextArg--timingsnextArg--install', 'tempdirname' - Environment variables still there: [n=0] - Environment variables missing: [n=1] 'MAKEFLAGS' Differences environment variable by environment variable: Skipping, because path appears not to be an 'R CMD check' folder: 'D:/temp/2026_02_20_10_39_57_13008' Test time: user.self=3s, sys.self=0.05s, elapsed=4s, user.child=NAs, sys.child=NAs Test 'future_lapply,globals' ... success > > proc.time() user system elapsed 2.81 0.15 4.17