R Under development (unstable) (2025-06-05 r88281 ucrt) -- "Unsuffered Consequences" Copyright (C) 2025 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. > ## 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' ... Sourcing 9 prologue scripts ... 01/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_prologue/001.load.R' 02/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_prologue/002.record-state.R' 03/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_prologue/030.imports.R' 04/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_prologue/050.utils.R' 05/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_prologue/090.context.R' 06/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_prologue/090.options.R' 07/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_prologue/091.envvars.R' 08/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_prologue/099.future-setup.R' 09/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_prologue/995.detrius-connections.R' Sourcing 9 prologue scripts ... done Running test script: 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/test-future_lapply,globals.R' > 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' [08:52:19.933] future_lapply() ... [08:52:19.943] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [08:52:19.943] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:19.945] | future_lapply() -> future_xapply() ... [08:52:19.946] | : Number of chunks: 1 [08:52:19.947] | : getGlobalsAndPackagesXApply() ... [08:52:19.947] | : . future.globals: FALSE [08:52:19.953] | : . globals found/used: [n=2] 'FUN', 'future.call.arguments' [08:52:19.954] | : . needed namespaces: [n=0] [08:52:19.954] | : . use_args: TRUE [08:52:19.954] | : . Getting '...' globals ... [08:52:19.957] | : . ' '...' content: [n=0] [08:52:19.957] | : . ' List of 1 [08:52:19.957] | : . ' $ ...: list() [08:52:19.957] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:19.957] | : . ' - attr(*, "where")=List of 1 [08:52:19.957] | : . ' ..$ ...: [08:52:19.957] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:19.957] | : . ' - attr(*, "resolved")= logi TRUE [08:52:19.957] | : . ' - attr(*, "total_size")= num NA [08:52:19.964] | : . Getting '...' globals ... done [08:52:19.964] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'future.call.arguments', '...' [08:52:19.965] | : . List of 3 [08:52:19.965] | : . $ ...future.FUN :function (x) [08:52:19.965] | : . $ future.call.arguments: list() [08:52:19.965] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:19.965] | : . $ ... : list() [08:52:19.965] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:19.965] | : . - attr(*, "where")=List of 3 [08:52:19.965] | : . ..$ ...future.FUN : [08:52:19.965] | : . ..$ future.call.arguments: [08:52:19.965] | : . ..$ ... : [08:52:19.965] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:19.965] | : . - attr(*, "resolved")= logi FALSE [08:52:19.965] | : . - attr(*, "total_size")= num 5448 [08:52:19.973] | : . Packages to be attached in all futures: [n=1] 'utils' [08:52:19.974] | : getGlobalsAndPackagesXApply() ... done [08:52:19.974] | : Globals pass to each chunk: [n=6] '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:19.975] | : List of 6 [08:52:19.975] | : $ ...future.FUN :function (x) [08:52:19.975] | : $ future.call.arguments : list() [08:52:19.975] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:19.975] | : $ ... : list() [08:52:19.975] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:19.975] | : $ ...future.elements_ii : NULL [08:52:19.975] | : $ ...future.seeds_ii : NULL [08:52:19.975] | : $ ...future.globals.maxSize: NULL [08:52:19.975] | : - attr(*, "where")=List of 6 [08:52:19.975] | : ..$ ...future.FUN : [08:52:19.975] | : ..$ future.call.arguments : [08:52:19.975] | : ..$ ... : [08:52:19.975] | : ..$ ...future.elements_ii : [08:52:19.975] | : ..$ ...future.seeds_ii : [08:52:19.975] | : ..$ ...future.globals.maxSize: [08:52:19.975] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:19.975] | : - attr(*, "resolved")= logi FALSE [08:52:19.975] | : - attr(*, "total_size")= num 5448 [08:52:19.986] | : Number of futures (= number of chunks): 1 [08:52:19.986] | : Launching 1 futures (chunks) ... [08:52:19.987] | : Chunk #1 of 1 ... [08:52:19.987] | : - seeds: [08:52:19.988] | : - All globals exported: [n=6] '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.175] | : Created future: [08:52:20.175] | : ClusterFuture: [08:52:20.175] | : Label: 'future_lapply-1' [08:52:20.175] | : Expression: [08:52:20.175] | : { [08:52:20.175] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:20.175] | : "# expression in do.call(), because function called uses '...' " [08:52:20.175] | : "# as a global variable " [08:52:20.175] | : do.call(function(...) { [08:52:20.175] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:20.175] | : "# without having an '...' argument. This means '...' is treated" [08:52:20.175] | : "# as a global variable. This may happen when FUN() is an " [08:52:20.175] | : "# anonymous function. " [08:52:20.175] | : "# " [08:52:20.175] | : "# If an anonymous function, we will make sure to restore the " [08:52:20.175] | : "# function environment of FUN() to the calling environment. " [08:52:20.175] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:20.175] | : "# global environment, which is where globals are written. " [08:52:20.175] | : penv <- env <- environment(...future.FUN) [08:52:20.175] | : repeat { [08:52:20.175] | : if (identical(env, globalenv()) || identical(env, [08:52:20.175] | : emptyenv())) [08:52:20.175] | : break [08:52:20.175] | : penv <- env [08:52:20.175] | : env <- parent.env(env) [08:52:20.175] | : } [08:52:20.175] | : if (identical(penv, globalenv())) { [08:52:20.175] | : environment(...future.FUN) <- environment() [08:52:20.175] | : } [08:52:20.175] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:20.175] | : !isNamespace(penv)) { [08:52:20.175] | : parent.env(penv) <- environment() [08:52:20.175] | : } [08:52:20.175] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:20.175] | : { [08:52:20.175] | : "# future.apply:::future_xapply(): preserve future option" [08:52:20.175] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:20.175] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:20.175] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:20.175] | : on.exit(options(oopts), add = TRUE) [08:52:20.175] | : } [08:52:20.175] | : { [08:52:20.175] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:20.175] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:20.175] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:20.175] | : { [08:52:20.175] | : ...future.FUN(...future.X_jj, ...) [08:52:20.175] | : } [08:52:20.175] | : }) [08:52:20.175] | : } [08:52:20.175] | : } [08:52:20.175] | : }, args = future.call.arguments) [08:52:20.175] | : } [08:52:20.175] | : 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) [08:52:20.175] | : Packages: 1 packages ('utils') [08:52:20.175] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:20.175] | : Capture standard output: TRUE [08:52:20.175] | : Capture condition classes: 'condition' (excluding '') [08:52:20.175] | : Immediate condition classes: 'immediateCondition' [08:52:20.175] | : Lazy evaluation: FALSE [08:52:20.175] | : Local evaluation: TRUE [08:52:20.175] | : Asynchronous evaluation: TRUE [08:52:20.175] | : Early signaling: FALSE [08:52:20.175] | : Environment: R_GlobalEnv [08:52:20.175] | : State: 'running' [08:52:20.175] | : Resolved: TRUE [08:52:20.175] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-1 [08:52:20.175] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:20.175] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:20.175] | : Value: [08:52:20.175] | : Conditions captured: [08:52:20.289] | : Chunk #1 of 1 ... DONE [08:52:20.289] | : Launching 1 futures (chunks) ... DONE [08:52:20.290] | : Resolving 1 futures (chunks) ... [08:52:20.293] | : onError() ... [08:52:20.294] | : . Received Warning: Caught simpleError. Canceling all iterations ... [08:52:20.295] | : . Signaling: [08:52:20.295] | : onError() ... done [08:52:20.295] | future_lapply() -> future_xapply() ... done [08:52:20.296] future_lapply() ... done Globals set 'B' [08:52:20.297] future_lapply() ... [08:52:20.298] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [08:52:20.299] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:20.299] | future_lapply() -> future_xapply() ... [08:52:20.299] | : Number of chunks: 1 [08:52:20.300] | : getGlobalsAndPackagesXApply() ... [08:52:20.300] | : . future.globals: TRUE [08:52:20.323] | : . globals found/used: [n=3] 'FUN', 'a', 'b' [08:52:20.323] | : . needed namespaces: [n=1] 'stats' [08:52:20.324] | : . use_args: TRUE [08:52:20.324] | : . Getting '...' globals ... [08:52:20.325] | : . ' '...' content: [n=0] [08:52:20.325] | : . ' List of 1 [08:52:20.325] | : . ' $ ...: list() [08:52:20.325] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.325] | : . ' - attr(*, "where")=List of 1 [08:52:20.325] | : . ' ..$ ...: [08:52:20.325] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.325] | : . ' - attr(*, "resolved")= logi TRUE [08:52:20.325] | : . ' - attr(*, "total_size")= num NA [08:52:20.331] | : . Getting '...' globals ... done [08:52:20.331] | : . Globals to be used in all futures (chunks): [n=4] '...future.FUN', 'a', 'b', '...' [08:52:20.332] | : . List of 4 [08:52:20.332] | : . $ ...future.FUN:function (x) [08:52:20.332] | : . $ a : num 1 [08:52:20.332] | : . $ b : num 2 [08:52:20.332] | : . $ ... : list() [08:52:20.332] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.332] | : . - attr(*, "where")=List of 4 [08:52:20.332] | : . ..$ ...future.FUN: [08:52:20.332] | : . ..$ a : [08:52:20.332] | : . ..$ b : [08:52:20.332] | : . ..$ ... : [08:52:20.332] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.332] | : . - attr(*, "resolved")= logi FALSE [08:52:20.332] | : . - attr(*, "total_size")= num 5429 [08:52:20.340] | : . Packages to be attached in all futures: [n=2] 'stats', 'utils' [08:52:20.341] | : getGlobalsAndPackagesXApply() ... done [08:52:20.341] | : Globals pass to each chunk: [n=7] '...future.FUN', 'a', 'b', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.341] | : List of 7 [08:52:20.341] | : $ ...future.FUN :function (x) [08:52:20.341] | : $ a : num 1 [08:52:20.341] | : $ b : num 2 [08:52:20.341] | : $ ... : list() [08:52:20.341] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.341] | : $ ...future.elements_ii : NULL [08:52:20.341] | : $ ...future.seeds_ii : NULL [08:52:20.341] | : $ ...future.globals.maxSize: NULL [08:52:20.341] | : - attr(*, "where")=List of 7 [08:52:20.341] | : ..$ ...future.FUN : [08:52:20.341] | : ..$ a : [08:52:20.341] | : ..$ b : [08:52:20.341] | : ..$ ... : [08:52:20.341] | : ..$ ...future.elements_ii : [08:52:20.341] | : ..$ ...future.seeds_ii : [08:52:20.341] | : ..$ ...future.globals.maxSize: [08:52:20.341] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.341] | : - attr(*, "resolved")= logi FALSE [08:52:20.341] | : - attr(*, "total_size")= num 5429 [08:52:20.352] | : Number of futures (= number of chunks): 1 [08:52:20.353] | : Launching 1 futures (chunks) ... [08:52:20.353] | : Chunk #1 of 1 ... [08:52:20.354] | : - Finding globals in 'X' for chunk #1 ... [08:52:20.355] | : + additional globals found: [n=0] [08:52:20.355] | : + additional namespaces needed: [n=0] [08:52:20.355] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:20.355] | : - seeds: [08:52:20.356] | : - All globals exported: [n=7] '...future.FUN', 'a', 'b', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.401] | : Created future: [08:52:20.401] | : ClusterFuture: [08:52:20.401] | : Label: 'future_lapply-1' [08:52:20.401] | : Expression: [08:52:20.401] | : { [08:52:20.401] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:20.401] | : "# expression in do.call(), because function called uses '...' " [08:52:20.401] | : "# as a global variable " [08:52:20.401] | : do.call(function(...) { [08:52:20.401] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:20.401] | : "# without having an '...' argument. This means '...' is treated" [08:52:20.401] | : "# as a global variable. This may happen when FUN() is an " [08:52:20.401] | : "# anonymous function. " [08:52:20.401] | : "# " [08:52:20.401] | : "# If an anonymous function, we will make sure to restore the " [08:52:20.401] | : "# function environment of FUN() to the calling environment. " [08:52:20.401] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:20.401] | : "# global environment, which is where globals are written. " [08:52:20.401] | : penv <- env <- environment(...future.FUN) [08:52:20.401] | : repeat { [08:52:20.401] | : if (identical(env, globalenv()) || identical(env, [08:52:20.401] | : emptyenv())) [08:52:20.401] | : break [08:52:20.401] | : penv <- env [08:52:20.401] | : env <- parent.env(env) [08:52:20.401] | : } [08:52:20.401] | : if (identical(penv, globalenv())) { [08:52:20.401] | : environment(...future.FUN) <- environment() [08:52:20.401] | : } [08:52:20.401] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:20.401] | : !isNamespace(penv)) { [08:52:20.401] | : parent.env(penv) <- environment() [08:52:20.401] | : } [08:52:20.401] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:20.401] | : { [08:52:20.401] | : "# future.apply:::future_xapply(): preserve future option" [08:52:20.401] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:20.401] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:20.401] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:20.401] | : on.exit(options(oopts), add = TRUE) [08:52:20.401] | : } [08:52:20.401] | : { [08:52:20.401] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:20.401] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:20.401] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:20.401] | : { [08:52:20.401] | : ...future.FUN(...future.X_jj, ...) [08:52:20.401] | : } [08:52:20.401] | : }) [08:52:20.401] | : } [08:52:20.401] | : } [08:52:20.401] | : }, args = future.call.arguments) [08:52:20.401] | : } [08:52:20.401] | : Globals: 7 objects totaling 5.55 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, ...) [08:52:20.401] | : Packages: 2 packages ('stats', 'utils') [08:52:20.401] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:20.401] | : Capture standard output: TRUE [08:52:20.401] | : Capture condition classes: 'condition' (excluding '') [08:52:20.401] | : Immediate condition classes: 'immediateCondition' [08:52:20.401] | : Lazy evaluation: FALSE [08:52:20.401] | : Local evaluation: TRUE [08:52:20.401] | : Asynchronous evaluation: TRUE [08:52:20.401] | : Early signaling: FALSE [08:52:20.401] | : Environment: R_GlobalEnv [08:52:20.401] | : State: 'running' [08:52:20.401] | : Resolved: TRUE [08:52:20.401] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-2 [08:52:20.401] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:20.401] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:20.401] | : Value: [08:52:20.401] | : Conditions captured: [08:52:20.415] | : Chunk #1 of 1 ... DONE [08:52:20.416] | : Launching 1 futures (chunks) ... DONE [08:52:20.416] | : Resolving 1 futures (chunks) ... [08:52:20.417] | : - Number of value chunks collected: 1 [08:52:20.417] | : Resolving 1 futures (chunks) ... DONE [08:52:20.418] | : Reducing values from 1 chunks ... [08:52:20.418] | : - Number of values collected after concatenation: 1 [08:52:20.418] | : - Number of values expected: 1 [08:52:20.419] | : Reducing values from 1 chunks ... DONE [08:52:20.419] | future_lapply() -> future_xapply() ... done [08:52:20.419] future_lapply() ... done [[1]] [1] 1 Globals set 'C' [08:52:20.420] future_lapply() ... [08:52:20.422] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [08:52:20.422] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:20.423] | future_lapply() -> future_xapply() ... [08:52:20.423] | : Number of chunks: 1 [08:52:20.423] | : getGlobalsAndPackagesXApply() ... [08:52:20.424] | : . future.globals: 'a', 'b' [08:52:20.424] | : . use_args: TRUE [08:52:20.425] | : . Globals to be used in all futures (chunks): [n=4] 'a', 'b', '...future.FUN', '...' [08:52:20.425] | : . List of 4 [08:52:20.425] | : . $ a : num 1 [08:52:20.425] | : . $ b : num 2 [08:52:20.425] | : . $ ...future.FUN:function (x) [08:52:20.425] | : . $ ... : list() [08:52:20.425] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.425] | : . - attr(*, "where")=List of 4 [08:52:20.425] | : . ..$ a : [08:52:20.425] | : . ..$ b : [08:52:20.425] | : . ..$ ...future.FUN: [08:52:20.425] | : . ..$ ... : [08:52:20.425] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.425] | : . - attr(*, "resolved")= logi FALSE [08:52:20.425] | : . - attr(*, "total_size")= num NA [08:52:20.434] | : . Packages to be attached in all futures: [n=1] 'utils' [08:52:20.435] | : getGlobalsAndPackagesXApply() ... done [08:52:20.435] | : Globals pass to each chunk: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.435] | : List of 7 [08:52:20.435] | : $ a : num 1 [08:52:20.435] | : $ b : num 2 [08:52:20.435] | : $ ...future.FUN :function (x) [08:52:20.435] | : $ ... : list() [08:52:20.435] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.435] | : $ ...future.elements_ii : NULL [08:52:20.435] | : $ ...future.seeds_ii : NULL [08:52:20.435] | : $ ...future.globals.maxSize: NULL [08:52:20.435] | : - attr(*, "where")=List of 7 [08:52:20.435] | : ..$ a : [08:52:20.435] | : ..$ b : [08:52:20.435] | : ..$ ...future.FUN : [08:52:20.435] | : ..$ ... : [08:52:20.435] | : ..$ ...future.elements_ii : [08:52:20.435] | : ..$ ...future.seeds_ii : [08:52:20.435] | : ..$ ...future.globals.maxSize: [08:52:20.435] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.435] | : - attr(*, "resolved")= logi FALSE [08:52:20.435] | : - attr(*, "total_size")= num NA [08:52:20.446] | : Number of futures (= number of chunks): 1 [08:52:20.447] | : Launching 1 futures (chunks) ... [08:52:20.447] | : Chunk #1 of 1 ... [08:52:20.447] | : - seeds: [08:52:20.448] | : - All globals exported: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.495] | : Created future: [08:52:20.495] | : ClusterFuture: [08:52:20.495] | : Label: 'future_lapply-1' [08:52:20.495] | : Expression: [08:52:20.495] | : { [08:52:20.495] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:20.495] | : "# expression in do.call(), because function called uses '...' " [08:52:20.495] | : "# as a global variable " [08:52:20.495] | : do.call(function(...) { [08:52:20.495] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:20.495] | : "# without having an '...' argument. This means '...' is treated" [08:52:20.495] | : "# as a global variable. This may happen when FUN() is an " [08:52:20.495] | : "# anonymous function. " [08:52:20.495] | : "# " [08:52:20.495] | : "# If an anonymous function, we will make sure to restore the " [08:52:20.495] | : "# function environment of FUN() to the calling environment. " [08:52:20.495] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:20.495] | : "# global environment, which is where globals are written. " [08:52:20.495] | : penv <- env <- environment(...future.FUN) [08:52:20.495] | : repeat { [08:52:20.495] | : if (identical(env, globalenv()) || identical(env, [08:52:20.495] | : emptyenv())) [08:52:20.495] | : break [08:52:20.495] | : penv <- env [08:52:20.495] | : env <- parent.env(env) [08:52:20.495] | : } [08:52:20.495] | : if (identical(penv, globalenv())) { [08:52:20.495] | : environment(...future.FUN) <- environment() [08:52:20.495] | : } [08:52:20.495] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:20.495] | : !isNamespace(penv)) { [08:52:20.495] | : parent.env(penv) <- environment() [08:52:20.495] | : } [08:52:20.495] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:20.495] | : { [08:52:20.495] | : "# future.apply:::future_xapply(): preserve future option" [08:52:20.495] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:20.495] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:20.495] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:20.495] | : on.exit(options(oopts), add = TRUE) [08:52:20.495] | : } [08:52:20.495] | : { [08:52:20.495] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:20.495] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:20.495] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:20.495] | : { [08:52:20.495] | : ...future.FUN(...future.X_jj, ...) [08:52:20.495] | : } [08:52:20.495] | : }) [08:52:20.495] | : } [08:52:20.495] | : } [08:52:20.495] | : }, args = future.call.arguments) [08:52:20.495] | : } [08:52:20.495] | : 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, ...) [08:52:20.495] | : Packages: 1 packages ('utils') [08:52:20.495] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:20.495] | : Capture standard output: TRUE [08:52:20.495] | : Capture condition classes: 'condition' (excluding '') [08:52:20.495] | : Immediate condition classes: 'immediateCondition' [08:52:20.495] | : Lazy evaluation: FALSE [08:52:20.495] | : Local evaluation: TRUE [08:52:20.495] | : Asynchronous evaluation: TRUE [08:52:20.495] | : Early signaling: FALSE [08:52:20.495] | : Environment: R_GlobalEnv [08:52:20.495] | : State: 'running' [08:52:20.495] | : Resolved: TRUE [08:52:20.495] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-3 [08:52:20.495] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:20.495] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:20.495] | : Value: [08:52:20.495] | : Conditions captured: [08:52:20.503] | : Chunk #1 of 1 ... DONE [08:52:20.503] | : Launching 1 futures (chunks) ... DONE [08:52:20.503] | : Resolving 1 futures (chunks) ... [08:52:20.504] | : - Number of value chunks collected: 1 [08:52:20.505] | : Resolving 1 futures (chunks) ... DONE [08:52:20.505] | : Reducing values from 1 chunks ... [08:52:20.505] | : - Number of values collected after concatenation: 1 [08:52:20.506] | : - Number of values expected: 1 [08:52:20.506] | : Reducing values from 1 chunks ... DONE [08:52:20.506] | future_lapply() -> future_xapply() ... done [08:52:20.507] future_lapply() ... done [[1]] [1] 1 Globals set 'D' [08:52:20.507] future_lapply() ... [08:52:20.509] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [08:52:20.509] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:20.510] | future_lapply() -> future_xapply() ... [08:52:20.510] | : Number of chunks: 1 [08:52:20.511] | : getGlobalsAndPackagesXApply() ... [08:52:20.511] | : . future.globals: with names 'a', 'b' [08:52:20.512] | : . use_args: TRUE [08:52:20.512] | : . Getting '...' globals ... [08:52:20.516] | : . ' '...' content: [n=0] [08:52:20.516] | : . ' List of 1 [08:52:20.516] | : . ' $ ...: list() [08:52:20.516] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.516] | : . ' - attr(*, "where")=List of 1 [08:52:20.516] | : . ' ..$ ...: [08:52:20.516] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.516] | : . ' - attr(*, "resolved")= logi TRUE [08:52:20.516] | : . ' - attr(*, "total_size")= num NA [08:52:20.521] | : . Getting '...' globals ... done [08:52:20.522] | : . Globals to be used in all futures (chunks): [n=4] 'a', 'b', '...future.FUN', '...' [08:52:20.522] | : . List of 4 [08:52:20.522] | : . $ a : num 2 [08:52:20.522] | : . $ b : num 3 [08:52:20.522] | : . $ ...future.FUN:function (x) [08:52:20.522] | : . $ ... : list() [08:52:20.522] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.522] | : . - attr(*, "where")=List of 4 [08:52:20.522] | : . ..$ a : [08:52:20.522] | : . ..$ b : [08:52:20.522] | : . ..$ ...future.FUN: [08:52:20.522] | : . ..$ ... : [08:52:20.522] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.522] | : . - attr(*, "resolved")= logi FALSE [08:52:20.522] | : . - attr(*, "total_size")= num NA [08:52:20.531] | : . Packages to be attached in all futures: [n=1] 'utils' [08:52:20.532] | : getGlobalsAndPackagesXApply() ... done [08:52:20.532] | : Globals pass to each chunk: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.533] | : List of 7 [08:52:20.533] | : $ a : num 2 [08:52:20.533] | : $ b : num 3 [08:52:20.533] | : $ ...future.FUN :function (x) [08:52:20.533] | : $ ... : list() [08:52:20.533] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.533] | : $ ...future.elements_ii : NULL [08:52:20.533] | : $ ...future.seeds_ii : NULL [08:52:20.533] | : $ ...future.globals.maxSize: NULL [08:52:20.533] | : - attr(*, "where")=List of 7 [08:52:20.533] | : ..$ a : [08:52:20.533] | : ..$ b : [08:52:20.533] | : ..$ ...future.FUN : [08:52:20.533] | : ..$ ... : [08:52:20.533] | : ..$ ...future.elements_ii : [08:52:20.533] | : ..$ ...future.seeds_ii : [08:52:20.533] | : ..$ ...future.globals.maxSize: [08:52:20.533] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.533] | : - attr(*, "resolved")= logi FALSE [08:52:20.533] | : - attr(*, "total_size")= num NA [08:52:20.544] | : Number of futures (= number of chunks): 1 [08:52:20.544] | : Launching 1 futures (chunks) ... [08:52:20.545] | : Chunk #1 of 1 ... [08:52:20.545] | : - seeds: [08:52:20.545] | : - All globals exported: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.595] | : Created future: [08:52:20.595] | : ClusterFuture: [08:52:20.595] | : Label: 'future_lapply-1' [08:52:20.595] | : Expression: [08:52:20.595] | : { [08:52:20.595] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:20.595] | : "# expression in do.call(), because function called uses '...' " [08:52:20.595] | : "# as a global variable " [08:52:20.595] | : do.call(function(...) { [08:52:20.595] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:20.595] | : "# without having an '...' argument. This means '...' is treated" [08:52:20.595] | : "# as a global variable. This may happen when FUN() is an " [08:52:20.595] | : "# anonymous function. " [08:52:20.595] | : "# " [08:52:20.595] | : "# If an anonymous function, we will make sure to restore the " [08:52:20.595] | : "# function environment of FUN() to the calling environment. " [08:52:20.595] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:20.595] | : "# global environment, which is where globals are written. " [08:52:20.595] | : penv <- env <- environment(...future.FUN) [08:52:20.595] | : repeat { [08:52:20.595] | : if (identical(env, globalenv()) || identical(env, [08:52:20.595] | : emptyenv())) [08:52:20.595] | : break [08:52:20.595] | : penv <- env [08:52:20.595] | : env <- parent.env(env) [08:52:20.595] | : } [08:52:20.595] | : if (identical(penv, globalenv())) { [08:52:20.595] | : environment(...future.FUN) <- environment() [08:52:20.595] | : } [08:52:20.595] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:20.595] | : !isNamespace(penv)) { [08:52:20.595] | : parent.env(penv) <- environment() [08:52:20.595] | : } [08:52:20.595] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:20.595] | : { [08:52:20.595] | : "# future.apply:::future_xapply(): preserve future option" [08:52:20.595] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:20.595] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:20.595] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:20.595] | : on.exit(options(oopts), add = TRUE) [08:52:20.595] | : } [08:52:20.595] | : { [08:52:20.595] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:20.595] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:20.595] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:20.595] | : { [08:52:20.595] | : ...future.FUN(...future.X_jj, ...) [08:52:20.595] | : } [08:52:20.595] | : }) [08:52:20.595] | : } [08:52:20.595] | : } [08:52:20.595] | : }, args = future.call.arguments) [08:52:20.595] | : } [08:52:20.595] | : 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, ...) [08:52:20.595] | : Packages: 1 packages ('utils') [08:52:20.595] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:20.595] | : Capture standard output: TRUE [08:52:20.595] | : Capture condition classes: 'condition' (excluding '') [08:52:20.595] | : Immediate condition classes: 'immediateCondition' [08:52:20.595] | : Lazy evaluation: FALSE [08:52:20.595] | : Local evaluation: TRUE [08:52:20.595] | : Asynchronous evaluation: TRUE [08:52:20.595] | : Early signaling: FALSE [08:52:20.595] | : Environment: R_GlobalEnv [08:52:20.595] | : State: 'running' [08:52:20.595] | : Resolved: TRUE [08:52:20.595] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-4 [08:52:20.595] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:20.595] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:20.595] | : Value: [08:52:20.595] | : Conditions captured: [08:52:20.607] | : Chunk #1 of 1 ... DONE [08:52:20.607] | : Launching 1 futures (chunks) ... DONE [08:52:20.608] | : Resolving 1 futures (chunks) ... [08:52:20.609] | : - Number of value chunks collected: 1 [08:52:20.609] | : Resolving 1 futures (chunks) ... DONE [08:52:20.610] | : Reducing values from 1 chunks ... [08:52:20.610] | : - Number of values collected after concatenation: 1 [08:52:20.611] | : - Number of values expected: 1 [08:52:20.611] | : Reducing values from 1 chunks ... DONE [08:52:20.611] | future_lapply() -> future_xapply() ... done [08:52:20.612] 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")) [08:52:20.613] future_lapply() ... [08:52:20.615] | Globals in FUN(): [n=3] '{', '*', 'd' [08:52:20.615] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:20.616] | future_lapply() -> future_xapply() ... [08:52:20.616] | : Number of chunks: 1 [08:52:20.617] | : getGlobalsAndPackagesXApply() ... [08:52:20.617] | : . future.globals: FALSE [08:52:20.619] | : . globals found/used: [n=3] 'd', 'FUN', 'future.call.arguments' [08:52:20.619] | : . needed namespaces: [n=0] [08:52:20.619] | : . use_args: TRUE [08:52:20.620] | : . Getting '...' globals ... [08:52:20.620] | : . ' '...' content: [n=0] [08:52:20.620] | : . ' List of 1 [08:52:20.620] | : . ' $ ...: list() [08:52:20.620] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.620] | : . ' - attr(*, "where")=List of 1 [08:52:20.620] | : . ' ..$ ...: [08:52:20.620] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.620] | : . ' - attr(*, "resolved")= logi TRUE [08:52:20.620] | : . ' - attr(*, "total_size")= num NA [08:52:20.625] | : . Getting '...' globals ... done [08:52:20.625] | : . Globals to be used in all futures (chunks): [n=4] 'd', '...future.FUN', 'future.call.arguments', '...' [08:52:20.625] | : . List of 4 [08:52:20.625] | : . $ d : num 42 [08:52:20.625] | : . $ ...future.FUN :function (x) [08:52:20.625] | : . $ future.call.arguments: list() [08:52:20.625] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.625] | : . $ ... : list() [08:52:20.625] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.625] | : . - attr(*, "where")=List of 4 [08:52:20.625] | : . ..$ d : [08:52:20.625] | : . ..$ ...future.FUN : [08:52:20.625] | : . ..$ future.call.arguments: [08:52:20.625] | : . ..$ ... : [08:52:20.625] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.625] | : . - attr(*, "resolved")= logi FALSE [08:52:20.625] | : . - attr(*, "total_size")= num 3723 [08:52:20.631] | : . Packages to be attached in all futures: [n=0] [08:52:20.631] | : getGlobalsAndPackagesXApply() ... done [08:52:20.631] | : Globals pass to each chunk: [n=7] 'd', '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.631] | : List of 7 [08:52:20.631] | : $ d : num 42 [08:52:20.631] | : $ ...future.FUN :function (x) [08:52:20.631] | : $ future.call.arguments : list() [08:52:20.631] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.631] | : $ ... : list() [08:52:20.631] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.631] | : $ ...future.elements_ii : NULL [08:52:20.631] | : $ ...future.seeds_ii : NULL [08:52:20.631] | : $ ...future.globals.maxSize: NULL [08:52:20.631] | : - attr(*, "where")=List of 7 [08:52:20.631] | : ..$ d : [08:52:20.631] | : ..$ ...future.FUN : [08:52:20.631] | : ..$ future.call.arguments : [08:52:20.631] | : ..$ ... : [08:52:20.631] | : ..$ ...future.elements_ii : [08:52:20.631] | : ..$ ...future.seeds_ii : [08:52:20.631] | : ..$ ...future.globals.maxSize: [08:52:20.631] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.631] | : - attr(*, "resolved")= logi FALSE [08:52:20.631] | : - attr(*, "total_size")= num 3723 [08:52:20.638] | : Number of futures (= number of chunks): 1 [08:52:20.638] | : Launching 1 futures (chunks) ... [08:52:20.639] | : Chunk #1 of 1 ... [08:52:20.639] | : - seeds: [08:52:20.639] | : - All globals exported: [n=7] 'd', '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.680] | : Created future: [08:52:20.681] | : ClusterFuture: [08:52:20.681] | : Label: 'future_lapply-1' [08:52:20.681] | : Expression: [08:52:20.681] | : { [08:52:20.681] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:20.681] | : "# expression in do.call(), because function called uses '...' " [08:52:20.681] | : "# as a global variable " [08:52:20.681] | : do.call(function(...) { [08:52:20.681] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:20.681] | : "# without having an '...' argument. This means '...' is treated" [08:52:20.681] | : "# as a global variable. This may happen when FUN() is an " [08:52:20.681] | : "# anonymous function. " [08:52:20.681] | : "# " [08:52:20.681] | : "# If an anonymous function, we will make sure to restore the " [08:52:20.681] | : "# function environment of FUN() to the calling environment. " [08:52:20.681] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:20.681] | : "# global environment, which is where globals are written. " [08:52:20.681] | : penv <- env <- environment(...future.FUN) [08:52:20.681] | : repeat { [08:52:20.681] | : if (identical(env, globalenv()) || identical(env, [08:52:20.681] | : emptyenv())) [08:52:20.681] | : break [08:52:20.681] | : penv <- env [08:52:20.681] | : env <- parent.env(env) [08:52:20.681] | : } [08:52:20.681] | : if (identical(penv, globalenv())) { [08:52:20.681] | : environment(...future.FUN) <- environment() [08:52:20.681] | : } [08:52:20.681] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:20.681] | : !isNamespace(penv)) { [08:52:20.681] | : parent.env(penv) <- environment() [08:52:20.681] | : } [08:52:20.681] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:20.681] | : { [08:52:20.681] | : "# future.apply:::future_xapply(): preserve future option" [08:52:20.681] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:20.681] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:20.681] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:20.681] | : on.exit(options(oopts), add = TRUE) [08:52:20.681] | : } [08:52:20.681] | : { [08:52:20.681] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:20.681] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:20.681] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:20.681] | : { [08:52:20.681] | : ...future.FUN(...future.X_jj, ...) [08:52:20.681] | : } [08:52:20.681] | : }) [08:52:20.681] | : } [08:52:20.681] | : } [08:52:20.681] | : }, args = future.call.arguments) [08:52:20.681] | : } [08:52:20.681] | : Globals: 6 objects totaling 3.83 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, ...) [08:52:20.681] | : Packages: [08:52:20.681] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:20.681] | : Capture standard output: TRUE [08:52:20.681] | : Capture condition classes: 'condition' (excluding '') [08:52:20.681] | : Immediate condition classes: 'immediateCondition' [08:52:20.681] | : Lazy evaluation: FALSE [08:52:20.681] | : Local evaluation: TRUE [08:52:20.681] | : Asynchronous evaluation: TRUE [08:52:20.681] | : Early signaling: FALSE [08:52:20.681] | : Environment: R_GlobalEnv [08:52:20.681] | : State: 'running' [08:52:20.681] | : Resolved: TRUE [08:52:20.681] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-5 [08:52:20.681] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:20.681] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:20.681] | : Value: [08:52:20.681] | : Conditions captured: [08:52:20.690] | : Chunk #1 of 1 ... DONE [08:52:20.691] | : Launching 1 futures (chunks) ... DONE [08:52:20.691] | : Resolving 1 futures (chunks) ... [08:52:20.692] | : - Number of value chunks collected: 1 [08:52:20.693] | : Resolving 1 futures (chunks) ... DONE [08:52:20.693] | : Reducing values from 1 chunks ... [08:52:20.693] | : - Number of values collected after concatenation: 2 [08:52:20.693] | : - Number of values expected: 2 [08:52:20.694] | : Reducing values from 1 chunks ... DONE [08:52:20.694] | future_lapply() -> future_xapply() ... done [08:52:20.694] 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] [08:52:20.695] future_lapply() ... [08:52:20.697] | Globals in FUN(): [n=3] '{', '*', 'e' [08:52:20.697] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:20.697] | future_lapply() -> future_xapply() ... [08:52:20.698] | : Number of chunks: 1 [08:52:20.698] | : getGlobalsAndPackagesXApply() ... [08:52:20.699] | : . future.globals: TRUE [08:52:20.715] | : . globals found/used: [n=1] 'FUN' [08:52:20.715] | : . needed namespaces: [n=0] [08:52:20.715] | : . use_args: TRUE [08:52:20.716] | : . Getting '...' globals ... [08:52:20.717] | : . ' '...' content: [n=0] [08:52:20.717] | : . ' List of 1 [08:52:20.717] | : . ' $ ...: list() [08:52:20.717] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.717] | : . ' - attr(*, "where")=List of 1 [08:52:20.717] | : . ' ..$ ...: [08:52:20.717] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.717] | : . ' - attr(*, "resolved")= logi TRUE [08:52:20.717] | : . ' - attr(*, "total_size")= num NA [08:52:20.722] | : . Getting '...' globals ... done [08:52:20.723] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:20.723] | : . List of 2 [08:52:20.723] | : . $ ...future.FUN:function (x) [08:52:20.723] | : . $ ... : list() [08:52:20.723] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.723] | : . - attr(*, "where")=List of 2 [08:52:20.723] | : . ..$ ...future.FUN: [08:52:20.723] | : . ..$ ... : [08:52:20.723] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.723] | : . - attr(*, "resolved")= logi FALSE [08:52:20.723] | : . - attr(*, "total_size")= num 3614 [08:52:20.728] | : . Packages to be attached in all futures: [n=0] [08:52:20.728] | : getGlobalsAndPackagesXApply() ... done [08:52:20.728] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.729] | : List of 5 [08:52:20.729] | : $ ...future.FUN :function (x) [08:52:20.729] | : $ ... : list() [08:52:20.729] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:20.729] | : $ ...future.elements_ii : NULL [08:52:20.729] | : $ ...future.seeds_ii : NULL [08:52:20.729] | : $ ...future.globals.maxSize: NULL [08:52:20.729] | : - attr(*, "where")=List of 5 [08:52:20.729] | : ..$ ...future.FUN : [08:52:20.729] | : ..$ ... : [08:52:20.729] | : ..$ ...future.elements_ii : [08:52:20.729] | : ..$ ...future.seeds_ii : [08:52:20.729] | : ..$ ...future.globals.maxSize: [08:52:20.729] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:20.729] | : - attr(*, "resolved")= logi FALSE [08:52:20.729] | : - attr(*, "total_size")= num 3614 [08:52:20.734] | : Number of futures (= number of chunks): 1 [08:52:20.734] | : Launching 1 futures (chunks) ... [08:52:20.734] | : Chunk #1 of 1 ... [08:52:20.734] | : - Finding globals in 'X' for chunk #1 ... [08:52:20.735] | : + additional globals found: [n=0] [08:52:20.735] | : + additional namespaces needed: [n=0] [08:52:20.736] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:20.736] | : - seeds: [08:52:20.736] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:20.792] | : Created future: [08:52:20.792] | : ClusterFuture: [08:52:20.792] | : Label: 'future_lapply-1' [08:52:20.792] | : Expression: [08:52:20.792] | : { [08:52:20.792] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:20.792] | : "# expression in do.call(), because function called uses '...' " [08:52:20.792] | : "# as a global variable " [08:52:20.792] | : do.call(function(...) { [08:52:20.792] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:20.792] | : "# without having an '...' argument. This means '...' is treated" [08:52:20.792] | : "# as a global variable. This may happen when FUN() is an " [08:52:20.792] | : "# anonymous function. " [08:52:20.792] | : "# " [08:52:20.792] | : "# If an anonymous function, we will make sure to restore the " [08:52:20.792] | : "# function environment of FUN() to the calling environment. " [08:52:20.792] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:20.792] | : "# global environment, which is where globals are written. " [08:52:20.792] | : penv <- env <- environment(...future.FUN) [08:52:20.792] | : repeat { [08:52:20.792] | : if (identical(env, globalenv()) || identical(env, [08:52:20.792] | : emptyenv())) [08:52:20.792] | : break [08:52:20.792] | : penv <- env [08:52:20.792] | : env <- parent.env(env) [08:52:20.792] | : } [08:52:20.792] | : if (identical(penv, globalenv())) { [08:52:20.792] | : environment(...future.FUN) <- environment() [08:52:20.792] | : } [08:52:20.792] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:20.792] | : !isNamespace(penv)) { [08:52:20.792] | : parent.env(penv) <- environment() [08:52:20.792] | : } [08:52:20.792] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:20.792] | : { [08:52:20.792] | : "# future.apply:::future_xapply(): preserve future option" [08:52:20.792] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:20.792] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:20.792] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:20.792] | : on.exit(options(oopts), add = TRUE) [08:52:20.792] | : } [08:52:20.792] | : { [08:52:20.792] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:20.792] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:20.792] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:20.792] | : { [08:52:20.792] | : ...future.FUN(...future.X_jj, ...) [08:52:20.792] | : } [08:52:20.792] | : }) [08:52:20.792] | : } [08:52:20.792] | : } [08:52:20.792] | : }, args = future.call.arguments) [08:52:20.792] | : } [08:52:20.792] | : Globals: 5 objects totaling 3.82 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) [08:52:20.792] | : Packages: [08:52:20.792] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:20.792] | : Capture standard output: TRUE [08:52:20.792] | : Capture condition classes: 'condition' (excluding '') [08:52:20.792] | : Immediate condition classes: 'immediateCondition' [08:52:20.792] | : Lazy evaluation: FALSE [08:52:20.792] | : Local evaluation: TRUE [08:52:20.792] | : Asynchronous evaluation: TRUE [08:52:20.792] | : Early signaling: FALSE [08:52:20.792] | : Environment: R_GlobalEnv [08:52:20.792] | : State: 'running' [08:52:20.792] | : Resolved: TRUE [08:52:20.792] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-6 [08:52:20.792] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:20.792] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:20.792] | : Value: [08:52:20.792] | : Conditions captured: [08:52:20.803] | : Chunk #1 of 1 ... DONE [08:52:20.803] | : Launching 1 futures (chunks) ... DONE [08:52:20.804] | : Resolving 1 futures (chunks) ... [08:52:20.805] | : onError() ... [08:52:20.806] | : . Received Warning: Caught simpleError. Canceling all iterations ... [08:52:20.807] | : . Signaling: [08:52:20.807] | : onError() ... done [08:52:20.807] | future_lapply() -> future_xapply() ... done [08:52:20.807] 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] [08:52:20.978] future_lapply() ... [08:52:20.980] | Globals in FUN(): [n=7] '{', 'do.call', 'caller', 'c', 'list', '+', 'args' [08:52:20.981] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:20.981] | future_lapply() -> future_xapply() ... [08:52:20.982] | : Number of chunks: 1 [08:52:20.982] | : getGlobalsAndPackagesXApply() ... [08:52:20.982] | : . future.globals: TRUE [08:52:21.019] | : . globals found/used: [n=5] 'FUN', 'caller', 'args', 'call_my_add', 'my_add' [08:52:21.020] | : . needed namespaces: [n=0] [08:52:21.020] | : . use_args: TRUE [08:52:21.021] | : . Getting '...' globals ... [08:52:21.022] | : . ' '...' content: [n=0] [08:52:21.022] | : . ' List of 1 [08:52:21.022] | : . ' $ ...: list() [08:52:21.022] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.022] | : . ' - attr(*, "where")=List of 1 [08:52:21.022] | : . ' ..$ ...: [08:52:21.022] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.022] | : . ' - attr(*, "resolved")= logi TRUE [08:52:21.022] | : . ' - attr(*, "total_size")= num NA [08:52:21.027] | : . Getting '...' globals ... done [08:52:21.027] | : . Globals to be used in all futures (chunks): [n=6] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...' [08:52:21.027] | : . List of 6 [08:52:21.027] | : . $ ...future.FUN:function (i) [08:52:21.027] | : . $ caller :function (a, b, FUN = call_my_add) [08:52:21.027] | : . $ args :List of 1 [08:52:21.027] | : . ..$ FUN:function (a, b) [08:52:21.027] | : . $ call_my_add :function (a, b) [08:52:21.027] | : . $ my_add :function (a, b) [08:52:21.027] | : . $ ... : list() [08:52:21.027] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.027] | : . - attr(*, "where")=List of 6 [08:52:21.027] | : . ..$ ...future.FUN: [08:52:21.027] | : . ..$ caller : [08:52:21.027] | : . ..$ args : [08:52:21.027] | : . ..$ call_my_add : [08:52:21.027] | : . ..$ my_add : [08:52:21.027] | : . ..$ ... : [08:52:21.027] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.027] | : . - attr(*, "resolved")= logi FALSE [08:52:21.027] | : . - attr(*, "total_size")= num 6429 [08:52:21.037] | : . Packages to be attached in all futures: [n=0] [08:52:21.037] | : getGlobalsAndPackagesXApply() ... done [08:52:21.038] | : 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' [08:52:21.038] | : List of 9 [08:52:21.038] | : $ ...future.FUN :function (i) [08:52:21.038] | : $ caller :function (a, b, FUN = call_my_add) [08:52:21.038] | : $ args :List of 1 [08:52:21.038] | : ..$ FUN:function (a, b) [08:52:21.038] | : $ call_my_add :function (a, b) [08:52:21.038] | : $ my_add :function (a, b) [08:52:21.038] | : $ ... : list() [08:52:21.038] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.038] | : $ ...future.elements_ii : NULL [08:52:21.038] | : $ ...future.seeds_ii : NULL [08:52:21.038] | : $ ...future.globals.maxSize: NULL [08:52:21.038] | : - attr(*, "where")=List of 9 [08:52:21.038] | : ..$ ...future.FUN : [08:52:21.038] | : ..$ caller : [08:52:21.038] | : ..$ args : [08:52:21.038] | : ..$ call_my_add : [08:52:21.038] | : ..$ my_add : [08:52:21.038] | : ..$ ... : [08:52:21.038] | : ..$ ...future.elements_ii : [08:52:21.038] | : ..$ ...future.seeds_ii : [08:52:21.038] | : ..$ ...future.globals.maxSize: [08:52:21.038] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.038] | : - attr(*, "resolved")= logi FALSE [08:52:21.038] | : - attr(*, "total_size")= num 6429 [08:52:21.050] | : Number of futures (= number of chunks): 1 [08:52:21.050] | : Launching 1 futures (chunks) ... [08:52:21.051] | : Chunk #1 of 1 ... [08:52:21.051] | : - Finding globals in 'X' for chunk #1 ... [08:52:21.052] | : + additional globals found: [n=0] [08:52:21.052] | : + additional namespaces needed: [n=0] [08:52:21.052] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:21.053] | : - seeds: [08:52:21.053] | : - All globals exported: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.078] | : Created future: [08:52:21.079] | : SequentialFuture: [08:52:21.079] | : Label: 'future_lapply-1' [08:52:21.079] | : Expression: [08:52:21.079] | : { [08:52:21.079] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:21.079] | : "# expression in do.call(), because function called uses '...' " [08:52:21.079] | : "# as a global variable " [08:52:21.079] | : do.call(function(...) { [08:52:21.079] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:21.079] | : "# without having an '...' argument. This means '...' is treated" [08:52:21.079] | : "# as a global variable. This may happen when FUN() is an " [08:52:21.079] | : "# anonymous function. " [08:52:21.079] | : "# " [08:52:21.079] | : "# If an anonymous function, we will make sure to restore the " [08:52:21.079] | : "# function environment of FUN() to the calling environment. " [08:52:21.079] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:21.079] | : "# global environment, which is where globals are written. " [08:52:21.079] | : penv <- env <- environment(...future.FUN) [08:52:21.079] | : repeat { [08:52:21.079] | : if (identical(env, globalenv()) || identical(env, [08:52:21.079] | : emptyenv())) [08:52:21.079] | : break [08:52:21.079] | : penv <- env [08:52:21.079] | : env <- parent.env(env) [08:52:21.079] | : } [08:52:21.079] | : if (identical(penv, globalenv())) { [08:52:21.079] | : environment(...future.FUN) <- environment() [08:52:21.079] | : } [08:52:21.079] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:21.079] | : !isNamespace(penv)) { [08:52:21.079] | : parent.env(penv) <- environment() [08:52:21.079] | : } [08:52:21.079] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:21.079] | : { [08:52:21.079] | : "# future.apply:::future_xapply(): preserve future option" [08:52:21.079] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:21.079] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:21.079] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:21.079] | : on.exit(options(oopts), add = TRUE) [08:52:21.079] | : } [08:52:21.079] | : { [08:52:21.079] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:21.079] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:21.079] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:21.079] | : { [08:52:21.079] | : ...future.FUN(...future.X_jj, ...) [08:52:21.079] | : } [08:52:21.079] | : }) [08:52:21.079] | : } [08:52:21.079] | : } [08:52:21.079] | : }, args = future.call.arguments) [08:52:21.079] | : } [08:52:21.079] | : Globals: 9 objects totaling 8.83 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, ...) [08:52:21.079] | : Packages: [08:52:21.079] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:21.079] | : Capture standard output: TRUE [08:52:21.079] | : Capture condition classes: 'condition' (excluding '') [08:52:21.079] | : Immediate condition classes: 'immediateCondition' [08:52:21.079] | : Lazy evaluation: FALSE [08:52:21.079] | : Local evaluation: TRUE [08:52:21.079] | : Asynchronous evaluation: TRUE [08:52:21.079] | : Early signaling: FALSE [08:52:21.079] | : Environment: 0x000001960af97f08 [08:52:21.079] | : State: 'finished' [08:52:21.079] | : Resolved: TRUE [08:52:21.079] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-7 [08:52:21.079] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.079] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [08:52:21.079] | : Value: 67 bytes of class 'list' [08:52:21.079] | : Duration: 0.01899195 secs (started 2025-06-06 08:52:21.057421) [08:52:21.079] | : Worker process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.083] | : Chunk #1 of 1 ... DONE [08:52:21.083] | : Launching 1 futures (chunks) ... DONE [08:52:21.083] | : Resolving 1 futures (chunks) ... [08:52:21.085] | : - Number of value chunks collected: 1 [08:52:21.085] | : Resolving 1 futures (chunks) ... DONE [08:52:21.085] | : Reducing values from 1 chunks ... [08:52:21.085] | : - Number of values collected after concatenation: 3 [08:52:21.085] | : - Number of values expected: 3 [08:52:21.086] | : Reducing values from 1 chunks ... DONE [08:52:21.086] | future_lapply() -> future_xapply() ... done [08:52:21.086] future_lapply() ... done - future_lapply(x, FUN = do.call, ...) ... [08:52:21.087] future_lapply() ... [08:52:21.090] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [08:52:21.091] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:21.091] | future_lapply() -> future_xapply() ... [08:52:21.092] | : Number of chunks: 1 [08:52:21.092] | : getGlobalsAndPackagesXApply() ... [08:52:21.092] | : . future.globals: TRUE [08:52:21.127] | : . globals found/used: [n=1] 'FUN' [08:52:21.127] | : . needed namespaces: [n=0] [08:52:21.128] | : . use_args: TRUE [08:52:21.128] | : . Getting '...' globals ... [08:52:21.129] | : . ' '...' content: [n=1] 'what' [08:52:21.129] | : . ' List of 1 [08:52:21.129] | : . ' $ ...:List of 1 [08:52:21.129] | : . ' ..$ what:function (x) [08:52:21.129] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.129] | : . ' - attr(*, "where")=List of 1 [08:52:21.129] | : . ' ..$ ...: [08:52:21.129] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.129] | : . ' - attr(*, "resolved")= logi TRUE [08:52:21.129] | : . ' - attr(*, "total_size")= num NA [08:52:21.135] | : . Getting '...' globals ... done [08:52:21.135] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:21.136] | : . List of 2 [08:52:21.136] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [08:52:21.136] | : . $ ... :List of 1 [08:52:21.136] | : . ..$ what:function (x) [08:52:21.136] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.136] | : . - attr(*, "where")=List of 2 [08:52:21.136] | : . ..$ ...future.FUN: [08:52:21.136] | : . ..$ ... : [08:52:21.136] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.136] | : . - attr(*, "resolved")= logi FALSE [08:52:21.136] | : . - attr(*, "total_size")= num 7368 [08:52:21.141] | : . Packages to be attached in all futures: [n=0] [08:52:21.142] | : getGlobalsAndPackagesXApply() ... done [08:52:21.142] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.143] | : List of 5 [08:52:21.143] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [08:52:21.143] | : $ ... :List of 1 [08:52:21.143] | : ..$ what:function (x) [08:52:21.143] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.143] | : $ ...future.elements_ii : NULL [08:52:21.143] | : $ ...future.seeds_ii : NULL [08:52:21.143] | : $ ...future.globals.maxSize: NULL [08:52:21.143] | : - attr(*, "where")=List of 5 [08:52:21.143] | : ..$ ...future.FUN : [08:52:21.143] | : ..$ ... : [08:52:21.143] | : ..$ ...future.elements_ii : [08:52:21.143] | : ..$ ...future.seeds_ii : [08:52:21.143] | : ..$ ...future.globals.maxSize: [08:52:21.143] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.143] | : - attr(*, "resolved")= logi FALSE [08:52:21.143] | : - attr(*, "total_size")= num 7368 [08:52:21.151] | : Number of futures (= number of chunks): 1 [08:52:21.151] | : Launching 1 futures (chunks) ... [08:52:21.152] | : Chunk #1 of 1 ... [08:52:21.152] | : - Finding globals in 'X' for chunk #1 ... [08:52:21.153] | : + additional globals found: [n=0] [08:52:21.153] | : + additional namespaces needed: [n=0] [08:52:21.154] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:21.154] | : - seeds: [08:52:21.154] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.163] | : Created future: [08:52:21.164] | : SequentialFuture: [08:52:21.164] | : Label: 'future_lapply-1' [08:52:21.164] | : Expression: [08:52:21.164] | : { [08:52:21.164] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:21.164] | : "# expression in do.call(), because function called uses '...' " [08:52:21.164] | : "# as a global variable " [08:52:21.164] | : do.call(function(...) { [08:52:21.164] | : "# future.apply:::future_xapply(): preserve future option" [08:52:21.164] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:21.164] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:21.164] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:21.164] | : on.exit(options(oopts), add = TRUE) [08:52:21.164] | : } [08:52:21.164] | : { [08:52:21.164] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:21.164] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:21.164] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:21.164] | : { [08:52:21.164] | : ...future.FUN(...future.X_jj, ...) [08:52:21.164] | : } [08:52:21.164] | : }) [08:52:21.164] | : } [08:52:21.164] | : }, args = future.call.arguments) [08:52:21.164] | : } [08:52:21.164] | : 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) [08:52:21.164] | : Packages: [08:52:21.164] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:21.164] | : Capture standard output: TRUE [08:52:21.164] | : Capture condition classes: 'condition' (excluding '') [08:52:21.164] | : Immediate condition classes: 'immediateCondition' [08:52:21.164] | : Lazy evaluation: FALSE [08:52:21.164] | : Local evaluation: TRUE [08:52:21.164] | : Asynchronous evaluation: TRUE [08:52:21.164] | : Early signaling: FALSE [08:52:21.164] | : Environment: R_GlobalEnv [08:52:21.164] | : State: 'finished' [08:52:21.164] | : Resolved: TRUE [08:52:21.164] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-8 [08:52:21.164] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.164] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [08:52:21.164] | : Value: 43 bytes of class 'list' [08:52:21.164] | : Duration: 0.005348921 secs (started 2025-06-06 08:52:21.156482) [08:52:21.164] | : Worker process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.166] | : Chunk #1 of 1 ... DONE [08:52:21.167] | : Launching 1 futures (chunks) ... DONE [08:52:21.171] | : Resolving 1 futures (chunks) ... [08:52:21.172] | : - Number of value chunks collected: 1 [08:52:21.172] | : Resolving 1 futures (chunks) ... DONE [08:52:21.173] | : Reducing values from 1 chunks ... [08:52:21.173] | : - Number of values collected after concatenation: 1 [08:52:21.173] | : - Number of values expected: 1 [08:52:21.173] | : Reducing values from 1 chunks ... DONE [08:52:21.174] | future_lapply() -> future_xapply() ... done [08:52:21.174] future_lapply() ... done [08:52:21.174] future_lapply() ... [08:52:21.177] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [08:52:21.178] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:21.178] | future_lapply() -> future_xapply() ... [08:52:21.178] | : Number of chunks: 1 [08:52:21.179] | : getGlobalsAndPackagesXApply() ... [08:52:21.179] | : . future.globals: TRUE [08:52:21.210] | : . globals found/used: [n=1] 'FUN' [08:52:21.211] | : . needed namespaces: [n=0] [08:52:21.211] | : . use_args: TRUE [08:52:21.211] | : . Getting '...' globals ... [08:52:21.212] | : . ' '...' content: [n=1] 'what' [08:52:21.212] | : . ' List of 1 [08:52:21.212] | : . ' $ ...:List of 1 [08:52:21.212] | : . ' ..$ what:function (...) [08:52:21.212] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.212] | : . ' - attr(*, "where")=List of 1 [08:52:21.212] | : . ' ..$ ...: [08:52:21.212] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.212] | : . ' - attr(*, "resolved")= logi TRUE [08:52:21.212] | : . ' - attr(*, "total_size")= num NA [08:52:21.216] | : . Getting '...' globals ... done [08:52:21.216] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:21.216] | : . List of 2 [08:52:21.216] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [08:52:21.216] | : . $ ... :List of 1 [08:52:21.216] | : . ..$ what:function (...) [08:52:21.216] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.216] | : . - attr(*, "where")=List of 2 [08:52:21.216] | : . ..$ ...future.FUN: [08:52:21.216] | : . ..$ ... : [08:52:21.216] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.216] | : . - attr(*, "resolved")= logi FALSE [08:52:21.216] | : . - attr(*, "total_size")= num 7436 [08:52:21.220] | : . Packages to be attached in all futures: [n=0] [08:52:21.220] | : getGlobalsAndPackagesXApply() ... done [08:52:21.220] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.220] | : List of 5 [08:52:21.220] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [08:52:21.220] | : $ ... :List of 1 [08:52:21.220] | : ..$ what:function (...) [08:52:21.220] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.220] | : $ ...future.elements_ii : NULL [08:52:21.220] | : $ ...future.seeds_ii : NULL [08:52:21.220] | : $ ...future.globals.maxSize: NULL [08:52:21.220] | : - attr(*, "where")=List of 5 [08:52:21.220] | : ..$ ...future.FUN : [08:52:21.220] | : ..$ ... : [08:52:21.220] | : ..$ ...future.elements_ii : [08:52:21.220] | : ..$ ...future.seeds_ii : [08:52:21.220] | : ..$ ...future.globals.maxSize: [08:52:21.220] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.220] | : - attr(*, "resolved")= logi FALSE [08:52:21.220] | : - attr(*, "total_size")= num 7436 [08:52:21.226] | : Number of futures (= number of chunks): 1 [08:52:21.226] | : Launching 1 futures (chunks) ... [08:52:21.226] | : Chunk #1 of 1 ... [08:52:21.226] | : - Finding globals in 'X' for chunk #1 ... [08:52:21.227] | : + additional globals found: [n=0] [08:52:21.228] | : + additional namespaces needed: [n=0] [08:52:21.228] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:21.228] | : - seeds: [08:52:21.228] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.239] | : Created future: [08:52:21.239] | : SequentialFuture: [08:52:21.239] | : Label: 'future_lapply-1' [08:52:21.239] | : Expression: [08:52:21.239] | : { [08:52:21.239] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:21.239] | : "# expression in do.call(), because function called uses '...' " [08:52:21.239] | : "# as a global variable " [08:52:21.239] | : do.call(function(...) { [08:52:21.239] | : "# future.apply:::future_xapply(): preserve future option" [08:52:21.239] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:21.239] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:21.239] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:21.239] | : on.exit(options(oopts), add = TRUE) [08:52:21.239] | : } [08:52:21.239] | : { [08:52:21.239] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:21.239] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:21.239] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:21.239] | : { [08:52:21.239] | : ...future.FUN(...future.X_jj, ...) [08:52:21.239] | : } [08:52:21.239] | : }) [08:52:21.239] | : } [08:52:21.239] | : }, args = future.call.arguments) [08:52:21.239] | : } [08:52:21.239] | : Globals: 5 objects totaling 7.80 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) [08:52:21.239] | : Packages: [08:52:21.239] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:21.239] | : Capture standard output: TRUE [08:52:21.239] | : Capture condition classes: 'condition' (excluding '') [08:52:21.239] | : Immediate condition classes: 'immediateCondition' [08:52:21.239] | : Lazy evaluation: FALSE [08:52:21.239] | : Local evaluation: TRUE [08:52:21.239] | : Asynchronous evaluation: TRUE [08:52:21.239] | : Early signaling: FALSE [08:52:21.239] | : Environment: R_GlobalEnv [08:52:21.239] | : State: 'finished' [08:52:21.239] | : Resolved: TRUE [08:52:21.239] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-9 [08:52:21.239] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.239] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [08:52:21.239] | : Value: 43 bytes of class 'list' [08:52:21.239] | : Duration: 0.006937027 secs (started 2025-06-06 08:52:21.23069) [08:52:21.239] | : Worker process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.242] | : Chunk #1 of 1 ... DONE [08:52:21.242] | : Launching 1 futures (chunks) ... DONE [08:52:21.243] | : Resolving 1 futures (chunks) ... [08:52:21.244] | : - Number of value chunks collected: 1 [08:52:21.244] | : Resolving 1 futures (chunks) ... DONE [08:52:21.244] | : Reducing values from 1 chunks ... [08:52:21.245] | : - Number of values collected after concatenation: 1 [08:52:21.245] | : - Number of values expected: 1 [08:52:21.245] | : Reducing values from 1 chunks ... DONE [08:52:21.246] | future_lapply() -> future_xapply() ... done [08:52:21.246] future_lapply() ... done - future_lapply(x, ...) - passing arguments via '...' ... [08:52:21.247] future_lapply() ... [08:52:21.248] | Globals in FUN(): [n=1] 'typeof' [08:52:21.248] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:21.249] | future_lapply() -> future_xapply() ... [08:52:21.249] | : Number of chunks: 1 [08:52:21.249] | : getGlobalsAndPackagesXApply() ... [08:52:21.254] | : . future.globals: TRUE [08:52:21.267] | : . globals found/used: [n=1] 'FUN' [08:52:21.268] | : . needed namespaces: [n=0] [08:52:21.268] | : . use_args: TRUE [08:52:21.268] | : . Getting '...' globals ... [08:52:21.269] | : . ' '...' content: [n=1] 'b' [08:52:21.270] | : . ' List of 1 [08:52:21.270] | : . ' $ ...:List of 1 [08:52:21.270] | : . ' ..$ b:'data.frame': 2 obs. of 1 variable: [08:52:21.270] | : . ' .. ..$ a: int [1:2] 1 2 [08:52:21.270] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.270] | : . ' - attr(*, "where")=List of 1 [08:52:21.270] | : . ' ..$ ...: [08:52:21.270] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.270] | : . ' - attr(*, "resolved")= logi TRUE [08:52:21.270] | : . ' - attr(*, "total_size")= num NA [08:52:21.278] | : . Getting '...' globals ... done [08:52:21.278] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:21.279] | : . List of 2 [08:52:21.279] | : . $ ...future.FUN:function (a, b) [08:52:21.279] | : . $ ... :List of 1 [08:52:21.279] | : . ..$ b:'data.frame': 2 obs. of 1 variable: [08:52:21.279] | : . .. ..$ a: int [1:2] 1 2 [08:52:21.279] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.279] | : . - attr(*, "where")=List of 2 [08:52:21.279] | : . ..$ ...future.FUN: [08:52:21.279] | : . ..$ ... : [08:52:21.279] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.279] | : . - attr(*, "resolved")= logi FALSE [08:52:21.279] | : . - attr(*, "total_size")= num 4505 [08:52:21.287] | : . Packages to be attached in all futures: [n=0] [08:52:21.287] | : getGlobalsAndPackagesXApply() ... done [08:52:21.288] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.288] | : List of 5 [08:52:21.288] | : $ ...future.FUN :function (a, b) [08:52:21.288] | : $ ... :List of 1 [08:52:21.288] | : ..$ b:'data.frame': 2 obs. of 1 variable: [08:52:21.288] | : .. ..$ a: int [1:2] 1 2 [08:52:21.288] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.288] | : $ ...future.elements_ii : NULL [08:52:21.288] | : $ ...future.seeds_ii : NULL [08:52:21.288] | : $ ...future.globals.maxSize: NULL [08:52:21.288] | : - attr(*, "where")=List of 5 [08:52:21.288] | : ..$ ...future.FUN : [08:52:21.288] | : ..$ ... : [08:52:21.288] | : ..$ ...future.elements_ii : [08:52:21.288] | : ..$ ...future.seeds_ii : [08:52:21.288] | : ..$ ...future.globals.maxSize: [08:52:21.288] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.288] | : - attr(*, "resolved")= logi FALSE [08:52:21.288] | : - attr(*, "total_size")= num 4505 [08:52:21.299] | : Number of futures (= number of chunks): 1 [08:52:21.299] | : Launching 1 futures (chunks) ... [08:52:21.300] | : Chunk #1 of 1 ... [08:52:21.300] | : - Finding globals in 'X' for chunk #1 ... [08:52:21.301] | : + additional globals found: [n=0] [08:52:21.301] | : + additional namespaces needed: [n=0] [08:52:21.301] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:21.302] | : - seeds: [08:52:21.302] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.311] | : Created future: [08:52:21.312] | : SequentialFuture: [08:52:21.312] | : Label: 'future_lapply-1' [08:52:21.312] | : Expression: [08:52:21.312] | : { [08:52:21.312] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:21.312] | : "# expression in do.call(), because function called uses '...' " [08:52:21.312] | : "# as a global variable " [08:52:21.312] | : do.call(function(...) { [08:52:21.312] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:21.312] | : "# without having an '...' argument. This means '...' is treated" [08:52:21.312] | : "# as a global variable. This may happen when FUN() is an " [08:52:21.312] | : "# anonymous function. " [08:52:21.312] | : "# " [08:52:21.312] | : "# If an anonymous function, we will make sure to restore the " [08:52:21.312] | : "# function environment of FUN() to the calling environment. " [08:52:21.312] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:21.312] | : "# global environment, which is where globals are written. " [08:52:21.312] | : penv <- env <- environment(...future.FUN) [08:52:21.312] | : repeat { [08:52:21.312] | : if (identical(env, globalenv()) || identical(env, [08:52:21.312] | : emptyenv())) [08:52:21.312] | : break [08:52:21.312] | : penv <- env [08:52:21.312] | : env <- parent.env(env) [08:52:21.312] | : } [08:52:21.312] | : if (identical(penv, globalenv())) { [08:52:21.312] | : environment(...future.FUN) <- environment() [08:52:21.312] | : } [08:52:21.312] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:21.312] | : !isNamespace(penv)) { [08:52:21.312] | : parent.env(penv) <- environment() [08:52:21.312] | : } [08:52:21.312] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:21.312] | : { [08:52:21.312] | : "# future.apply:::future_xapply(): preserve future option" [08:52:21.312] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:21.312] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:21.312] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:21.312] | : on.exit(options(oopts), add = TRUE) [08:52:21.312] | : } [08:52:21.312] | : { [08:52:21.312] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:21.312] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:21.312] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:21.312] | : { [08:52:21.312] | : ...future.FUN(...future.X_jj, ...) [08:52:21.312] | : } [08:52:21.312] | : }) [08:52:21.312] | : } [08:52:21.312] | : } [08:52:21.312] | : }, args = future.call.arguments) [08:52:21.312] | : } [08:52:21.312] | : Globals: 5 objects totaling 4.67 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) [08:52:21.312] | : Packages: [08:52:21.312] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:21.312] | : Capture standard output: TRUE [08:52:21.312] | : Capture condition classes: 'condition' (excluding '') [08:52:21.312] | : Immediate condition classes: 'immediateCondition' [08:52:21.312] | : Lazy evaluation: FALSE [08:52:21.312] | : Local evaluation: TRUE [08:52:21.312] | : Asynchronous evaluation: TRUE [08:52:21.312] | : Early signaling: FALSE [08:52:21.312] | : Environment: R_GlobalEnv [08:52:21.312] | : State: 'finished' [08:52:21.312] | : Resolved: TRUE [08:52:21.312] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-10 [08:52:21.312] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.312] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [08:52:21.312] | : Value: 51 bytes of class 'list' [08:52:21.312] | : Duration: 0.005485058 secs (started 2025-06-06 08:52:21.304244) [08:52:21.312] | : Worker process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.315] | : Chunk #1 of 1 ... DONE [08:52:21.315] | : Launching 1 futures (chunks) ... DONE [08:52:21.316] | : Resolving 1 futures (chunks) ... [08:52:21.317] | : - Number of value chunks collected: 1 [08:52:21.317] | : Resolving 1 futures (chunks) ... DONE [08:52:21.317] | : Reducing values from 1 chunks ... [08:52:21.317] | : - Number of values collected after concatenation: 1 [08:52:21.318] | : - Number of values expected: 1 [08:52:21.318] | : Reducing values from 1 chunks ... DONE [08:52:21.318] | future_lapply() -> future_xapply() ... done [08:52:21.318] future_lapply() ... done [08:52:21.319] future_lapply() ... [08:52:21.320] | Globals in FUN(): [n=1] 'typeof' [08:52:21.320] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:21.321] | future_lapply() -> future_xapply() ... [08:52:21.321] | : Number of chunks: 1 [08:52:21.321] | : getGlobalsAndPackagesXApply() ... [08:52:21.321] | : . future.globals: TRUE [08:52:21.333] | : . globals found/used: [n=1] 'FUN' [08:52:21.334] | : . needed namespaces: [n=0] [08:52:21.334] | : . use_args: TRUE [08:52:21.334] | : . Getting '...' globals ... [08:52:21.335] | : . ' '...' content: [n=1] 'b' [08:52:21.335] | : . ' List of 1 [08:52:21.335] | : . ' $ ...:List of 1 [08:52:21.335] | : . ' ..$ b: [08:52:21.335] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.335] | : . ' - attr(*, "where")=List of 1 [08:52:21.335] | : . ' ..$ ...: [08:52:21.335] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.335] | : . ' - attr(*, "resolved")= logi TRUE [08:52:21.335] | : . ' - attr(*, "total_size")= num NA [08:52:21.341] | : . Getting '...' globals ... done [08:52:21.342] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:21.342] | : . List of 2 [08:52:21.342] | : . $ ...future.FUN:function (a, b) [08:52:21.342] | : . $ ... :List of 1 [08:52:21.342] | : . ..$ b: [08:52:21.342] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.342] | : . - attr(*, "where")=List of 2 [08:52:21.342] | : . ..$ ...future.FUN: [08:52:21.342] | : . ..$ ... : [08:52:21.342] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.342] | : . - attr(*, "resolved")= logi FALSE [08:52:21.342] | : . - attr(*, "total_size")= num 4260 [08:52:21.348] | : . Packages to be attached in all futures: [n=0] [08:52:21.348] | : getGlobalsAndPackagesXApply() ... done [08:52:21.348] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.349] | : List of 5 [08:52:21.349] | : $ ...future.FUN :function (a, b) [08:52:21.349] | : $ ... :List of 1 [08:52:21.349] | : ..$ b: [08:52:21.349] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.349] | : $ ...future.elements_ii : NULL [08:52:21.349] | : $ ...future.seeds_ii : NULL [08:52:21.349] | : $ ...future.globals.maxSize: NULL [08:52:21.349] | : - attr(*, "where")=List of 5 [08:52:21.349] | : ..$ ...future.FUN : [08:52:21.349] | : ..$ ... : [08:52:21.349] | : ..$ ...future.elements_ii : [08:52:21.349] | : ..$ ...future.seeds_ii : [08:52:21.349] | : ..$ ...future.globals.maxSize: [08:52:21.349] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.349] | : - attr(*, "resolved")= logi FALSE [08:52:21.349] | : - attr(*, "total_size")= num 4260 [08:52:21.357] | : Number of futures (= number of chunks): 1 [08:52:21.357] | : Launching 1 futures (chunks) ... [08:52:21.358] | : Chunk #1 of 1 ... [08:52:21.358] | : - Finding globals in 'X' for chunk #1 ... [08:52:21.359] | : + additional globals found: [n=0] [08:52:21.359] | : + additional namespaces needed: [n=0] [08:52:21.359] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:21.360] | : - seeds: [08:52:21.364] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.372] | : Created future: [08:52:21.373] | : SequentialFuture: [08:52:21.373] | : Label: 'future_lapply-1' [08:52:21.373] | : Expression: [08:52:21.373] | : { [08:52:21.373] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:21.373] | : "# expression in do.call(), because function called uses '...' " [08:52:21.373] | : "# as a global variable " [08:52:21.373] | : do.call(function(...) { [08:52:21.373] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:21.373] | : "# without having an '...' argument. This means '...' is treated" [08:52:21.373] | : "# as a global variable. This may happen when FUN() is an " [08:52:21.373] | : "# anonymous function. " [08:52:21.373] | : "# " [08:52:21.373] | : "# If an anonymous function, we will make sure to restore the " [08:52:21.373] | : "# function environment of FUN() to the calling environment. " [08:52:21.373] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:21.373] | : "# global environment, which is where globals are written. " [08:52:21.373] | : penv <- env <- environment(...future.FUN) [08:52:21.373] | : repeat { [08:52:21.373] | : if (identical(env, globalenv()) || identical(env, [08:52:21.373] | : emptyenv())) [08:52:21.373] | : break [08:52:21.373] | : penv <- env [08:52:21.373] | : env <- parent.env(env) [08:52:21.373] | : } [08:52:21.373] | : if (identical(penv, globalenv())) { [08:52:21.373] | : environment(...future.FUN) <- environment() [08:52:21.373] | : } [08:52:21.373] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:21.373] | : !isNamespace(penv)) { [08:52:21.373] | : parent.env(penv) <- environment() [08:52:21.373] | : } [08:52:21.373] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:21.373] | : { [08:52:21.373] | : "# future.apply:::future_xapply(): preserve future option" [08:52:21.373] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:21.373] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:21.373] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:21.373] | : on.exit(options(oopts), add = TRUE) [08:52:21.373] | : } [08:52:21.373] | : { [08:52:21.373] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:21.373] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:21.373] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:21.373] | : { [08:52:21.373] | : ...future.FUN(...future.X_jj, ...) [08:52:21.373] | : } [08:52:21.373] | : }) [08:52:21.373] | : } [08:52:21.373] | : } [08:52:21.373] | : }, args = future.call.arguments) [08:52:21.373] | : } [08:52:21.373] | : Globals: 5 objects totaling 4.43 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) [08:52:21.373] | : Packages: [08:52:21.373] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:21.373] | : Capture standard output: TRUE [08:52:21.373] | : Capture condition classes: 'condition' (excluding '') [08:52:21.373] | : Immediate condition classes: 'immediateCondition' [08:52:21.373] | : Lazy evaluation: FALSE [08:52:21.373] | : Local evaluation: TRUE [08:52:21.373] | : Asynchronous evaluation: TRUE [08:52:21.373] | : Early signaling: FALSE [08:52:21.373] | : Environment: R_GlobalEnv [08:52:21.373] | : State: 'finished' [08:52:21.373] | : Resolved: TRUE [08:52:21.373] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-11 [08:52:21.373] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.373] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [08:52:21.373] | : Value: 58 bytes of class 'list' [08:52:21.373] | : Duration: 0.004958868 secs (started 2025-06-06 08:52:21.366141) [08:52:21.373] | : Worker process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.376] | : Chunk #1 of 1 ... DONE [08:52:21.376] | : Launching 1 futures (chunks) ... DONE [08:52:21.376] | : Resolving 1 futures (chunks) ... [08:52:21.377] | : - Number of value chunks collected: 1 [08:52:21.378] | : Resolving 1 futures (chunks) ... DONE [08:52:21.378] | : Reducing values from 1 chunks ... [08:52:21.378] | : - Number of values collected after concatenation: 1 [08:52:21.378] | : - Number of values expected: 1 [08:52:21.379] | : Reducing values from 1 chunks ... DONE [08:52:21.379] | future_lapply() -> future_xapply() ... done [08:52:21.379] future_lapply() ... done [08:52:21.379] future_lapply() ... [08:52:21.380] | Globals in FUN(): [n=1] 'typeof' [08:52:21.381] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:21.381] | future_lapply() -> future_xapply() ... [08:52:21.382] | : Number of chunks: 1 [08:52:21.382] | : getGlobalsAndPackagesXApply() ... [08:52:21.382] | : . future.globals: TRUE [08:52:21.400] | : . globals found/used: [n=1] 'FUN' [08:52:21.401] | : . needed namespaces: [n=0] [08:52:21.401] | : . use_args: TRUE [08:52:21.402] | : . Getting '...' globals ... [08:52:21.403] | : . ' '...' content: [n=1] 'b' [08:52:21.403] | : . ' List of 1 [08:52:21.403] | : . ' $ ...:List of 1 [08:52:21.403] | : . ' ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [08:52:21.403] | : . ' .. .. ..@ slots :List of 4 [08:52:21.403] | : . ' .. .. .. ..$ .Data : chr "function" [08:52:21.403] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. ..$ target : chr "signature" [08:52:21.403] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. ..$ defined: chr "signature" [08:52:21.403] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. ..$ generic: chr "character" [08:52:21.403] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. ..@ contains :List of 4 [08:52:21.403] | : . ' .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "function" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr(0) [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 1 [08:52:21.403] | : . ' .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr "function" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 2 [08:52:21.403] | : . ' .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr "function" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 2 [08:52:21.403] | : . ' .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "optionalMethod" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr "function" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 3 [08:52:21.403] | : . ' .. .. ..@ virtual : logi FALSE [08:52:21.403] | : . ' .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [08:52:21.403] | : . ' list() [08:52:21.403] | : . ' .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [08:52:21.403] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:21.403] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [08:52:21.403] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [08:52:21.403] | : . ' .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [08:52:21.403] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:21.403] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [08:52:21.403] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [08:52:21.403] | : . ' .. .. .. .. ..$ generic: chr(0) [08:52:21.403] | : . ' .. .. ..@ validity : NULL [08:52:21.403] | : . ' .. .. ..@ access : list() [08:52:21.403] | : . ' .. .. ..@ className : chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. ..@ subclasses:List of 7 [08:52:21.403] | : . ' .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr(0) [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 1 [08:52:21.403] | : . ' .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr(0) [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 1 [08:52:21.403] | : . ' .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr(0) [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 1 [08:52:21.403] | : . ' .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr(0) [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 1 [08:52:21.403] | : . ' .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 2 [08:52:21.403] | : . ' .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr "MethodWithNext" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 2 [08:52:21.403] | : . ' .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.403] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.403] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:21.403] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.403] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.403] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:21.403] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.403] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.403] | : . ' .. .. .. .. .. ..@ distance : num 2 [08:52:21.403] | : . ' .. .. ..@ versionKey: [08:52:21.403] | : . ' .. .. ..@ sealed : logi TRUE [08:52:21.403] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.403] | : . ' - attr(*, "where")=List of 1 [08:52:21.403] | : . ' ..$ ...: [08:52:21.403] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.403] | : . ' - attr(*, "resolved")= logi TRUE [08:52:21.403] | : . ' - attr(*, "total_size")= num NA [08:52:21.504] | : . Getting '...' globals ... done [08:52:21.504] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:21.505] | : . List of 2 [08:52:21.505] | : . $ ...future.FUN:function (a, b) [08:52:21.505] | : . $ ... :List of 1 [08:52:21.505] | : . ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [08:52:21.505] | : . .. .. ..@ slots :List of 4 [08:52:21.505] | : . .. .. .. ..$ .Data : chr "function" [08:52:21.505] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. ..$ target : chr "signature" [08:52:21.505] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. ..$ defined: chr "signature" [08:52:21.505] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. ..$ generic: chr "character" [08:52:21.505] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. ..@ contains :List of 4 [08:52:21.505] | : . .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "function" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr(0) [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 1 [08:52:21.505] | : . .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr "function" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 2 [08:52:21.505] | : . .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr "function" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 2 [08:52:21.505] | : . .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "optionalMethod" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr "function" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 3 [08:52:21.505] | : . .. .. ..@ virtual : logi FALSE [08:52:21.505] | : . .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [08:52:21.505] | : . list() [08:52:21.505] | : . .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [08:52:21.505] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:21.505] | : . .. .. .. .. .. .. ..@ names : chr(0) [08:52:21.505] | : . .. .. .. .. .. .. ..@ package: chr(0) [08:52:21.505] | : . .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [08:52:21.505] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:21.505] | : . .. .. .. .. .. .. ..@ names : chr(0) [08:52:21.505] | : . .. .. .. .. .. .. ..@ package: chr(0) [08:52:21.505] | : . .. .. .. .. ..$ generic: chr(0) [08:52:21.505] | : . .. .. ..@ validity : NULL [08:52:21.505] | : . .. .. ..@ access : list() [08:52:21.505] | : . .. .. ..@ className : chr "MethodDefinition" [08:52:21.505] | : . .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. ..@ subclasses:List of 7 [08:52:21.505] | : . .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr(0) [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 1 [08:52:21.505] | : . .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr(0) [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 1 [08:52:21.505] | : . .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr(0) [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 1 [08:52:21.505] | : . .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr(0) [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 1 [08:52:21.505] | : . .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 2 [08:52:21.505] | : . .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr "MethodWithNext" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 2 [08:52:21.505] | : . .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.505] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.505] | : . .. .. .. .. .. ..@ test :function (object) [08:52:21.505] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.505] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.505] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:21.505] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.505] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.505] | : . .. .. .. .. .. ..@ distance : num 2 [08:52:21.505] | : . .. .. ..@ versionKey: [08:52:21.505] | : . .. .. ..@ sealed : logi TRUE [08:52:21.505] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.505] | : . - attr(*, "where")=List of 2 [08:52:21.505] | : . ..$ ...future.FUN: [08:52:21.505] | : . ..$ ... : [08:52:21.505] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.505] | : . - attr(*, "resolved")= logi FALSE [08:52:21.505] | : . - attr(*, "total_size")= num 106127 [08:52:21.596] | : . Packages to be attached in all futures: [n=0] [08:52:21.596] | : getGlobalsAndPackagesXApply() ... done [08:52:21.596] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.597] | : List of 5 [08:52:21.597] | : $ ...future.FUN :function (a, b) [08:52:21.597] | : $ ... :List of 1 [08:52:21.597] | : ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [08:52:21.597] | : .. .. ..@ slots :List of 4 [08:52:21.597] | : .. .. .. ..$ .Data : chr "function" [08:52:21.597] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. ..$ target : chr "signature" [08:52:21.597] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. ..$ defined: chr "signature" [08:52:21.597] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. ..$ generic: chr "character" [08:52:21.597] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. ..@ contains :List of 4 [08:52:21.597] | : .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "function" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr(0) [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 1 [08:52:21.597] | : .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr "function" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 2 [08:52:21.597] | : .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr "function" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 2 [08:52:21.597] | : .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "optionalMethod" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr "function" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 3 [08:52:21.597] | : .. .. ..@ virtual : logi FALSE [08:52:21.597] | : .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [08:52:21.597] | : list() [08:52:21.597] | : .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [08:52:21.597] | : .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:21.597] | : .. .. .. .. .. .. ..@ names : chr(0) [08:52:21.597] | : .. .. .. .. .. .. ..@ package: chr(0) [08:52:21.597] | : .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [08:52:21.597] | : .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:21.597] | : .. .. .. .. .. .. ..@ names : chr(0) [08:52:21.597] | : .. .. .. .. .. .. ..@ package: chr(0) [08:52:21.597] | : .. .. .. .. ..$ generic: chr(0) [08:52:21.597] | : .. .. ..@ validity : NULL [08:52:21.597] | : .. .. ..@ access : list() [08:52:21.597] | : .. .. ..@ className : chr "MethodDefinition" [08:52:21.597] | : .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. ..@ subclasses:List of 7 [08:52:21.597] | : .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr(0) [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 1 [08:52:21.597] | : .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr(0) [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 1 [08:52:21.597] | : .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr(0) [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 1 [08:52:21.597] | : .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr(0) [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 1 [08:52:21.597] | : .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 2 [08:52:21.597] | : .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr "MethodWithNext" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 2 [08:52:21.597] | : .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:21.597] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:21.597] | : .. .. .. .. .. ..@ test :function (object) [08:52:21.597] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:21.597] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:21.597] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:21.597] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:21.597] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:21.597] | : .. .. .. .. .. ..@ distance : num 2 [08:52:21.597] | : .. .. ..@ versionKey: [08:52:21.597] | : .. .. ..@ sealed : logi TRUE [08:52:21.597] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.597] | : $ ...future.elements_ii : NULL [08:52:21.597] | : $ ...future.seeds_ii : NULL [08:52:21.597] | : $ ...future.globals.maxSize: NULL [08:52:21.597] | : - attr(*, "where")=List of 5 [08:52:21.597] | : ..$ ...future.FUN : [08:52:21.597] | : ..$ ... : [08:52:21.597] | : ..$ ...future.elements_ii : [08:52:21.597] | : ..$ ...future.seeds_ii : [08:52:21.597] | : ..$ ...future.globals.maxSize: [08:52:21.597] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.597] | : - attr(*, "resolved")= logi FALSE [08:52:21.597] | : - attr(*, "total_size")= num 106127 [08:52:21.699] | : Number of futures (= number of chunks): 1 [08:52:21.700] | : Launching 1 futures (chunks) ... [08:52:21.700] | : Chunk #1 of 1 ... [08:52:21.700] | : - Finding globals in 'X' for chunk #1 ... [08:52:21.701] | : + additional globals found: [n=0] [08:52:21.702] | : + additional namespaces needed: [n=0] [08:52:21.702] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:21.702] | : - seeds: [08:52:21.702] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.711] | : Created future: [08:52:21.711] | : SequentialFuture: [08:52:21.711] | : Label: 'future_lapply-1' [08:52:21.711] | : Expression: [08:52:21.711] | : { [08:52:21.711] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:21.711] | : "# expression in do.call(), because function called uses '...' " [08:52:21.711] | : "# as a global variable " [08:52:21.711] | : do.call(function(...) { [08:52:21.711] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:21.711] | : "# without having an '...' argument. This means '...' is treated" [08:52:21.711] | : "# as a global variable. This may happen when FUN() is an " [08:52:21.711] | : "# anonymous function. " [08:52:21.711] | : "# " [08:52:21.711] | : "# If an anonymous function, we will make sure to restore the " [08:52:21.711] | : "# function environment of FUN() to the calling environment. " [08:52:21.711] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:21.711] | : "# global environment, which is where globals are written. " [08:52:21.711] | : penv <- env <- environment(...future.FUN) [08:52:21.711] | : repeat { [08:52:21.711] | : if (identical(env, globalenv()) || identical(env, [08:52:21.711] | : emptyenv())) [08:52:21.711] | : break [08:52:21.711] | : penv <- env [08:52:21.711] | : env <- parent.env(env) [08:52:21.711] | : } [08:52:21.711] | : if (identical(penv, globalenv())) { [08:52:21.711] | : environment(...future.FUN) <- environment() [08:52:21.711] | : } [08:52:21.711] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:21.711] | : !isNamespace(penv)) { [08:52:21.711] | : parent.env(penv) <- environment() [08:52:21.711] | : } [08:52:21.711] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:21.711] | : { [08:52:21.711] | : "# future.apply:::future_xapply(): preserve future option" [08:52:21.711] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:21.711] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:21.711] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:21.711] | : on.exit(options(oopts), add = TRUE) [08:52:21.711] | : } [08:52:21.711] | : { [08:52:21.711] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:21.711] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:21.711] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:21.711] | : { [08:52:21.711] | : ...future.FUN(...future.X_jj, ...) [08:52:21.711] | : } [08:52:21.711] | : }) [08:52:21.711] | : } [08:52:21.711] | : } [08:52:21.711] | : }, args = future.call.arguments) [08:52:21.711] | : } [08:52:21.711] | : Globals: 5 objects totaling 103.91 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) [08:52:21.711] | : Packages: [08:52:21.711] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:21.711] | : Capture standard output: TRUE [08:52:21.711] | : Capture condition classes: 'condition' (excluding '') [08:52:21.711] | : Immediate condition classes: 'immediateCondition' [08:52:21.711] | : Lazy evaluation: FALSE [08:52:21.711] | : Local evaluation: TRUE [08:52:21.711] | : Asynchronous evaluation: TRUE [08:52:21.711] | : Early signaling: FALSE [08:52:21.711] | : Environment: R_GlobalEnv [08:52:21.711] | : State: 'finished' [08:52:21.711] | : Resolved: TRUE [08:52:21.711] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-12 [08:52:21.711] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.711] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [08:52:21.711] | : Value: 49 bytes of class 'list' [08:52:21.711] | : Duration: 0.005220175 secs (started 2025-06-06 08:52:21.704409) [08:52:21.711] | : Worker process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.716] | : Chunk #1 of 1 ... DONE [08:52:21.716] | : Launching 1 futures (chunks) ... DONE [08:52:21.716] | : Resolving 1 futures (chunks) ... [08:52:21.717] | : - Number of value chunks collected: 1 [08:52:21.718] | : Resolving 1 futures (chunks) ... DONE [08:52:21.718] | : Reducing values from 1 chunks ... [08:52:21.718] | : - Number of values collected after concatenation: 1 [08:52:21.718] | : - Number of values expected: 1 [08:52:21.719] | : Reducing values from 1 chunks ... DONE [08:52:21.719] | future_lapply() -> future_xapply() ... done [08:52:21.719] future_lapply() ... done - future_lapply(X, ...) - 'X' containing globals ... List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 [08:52:21.723] future_lapply() ... [08:52:21.724] | Globals in FUN(): [n=0] [08:52:21.725] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:21.725] | future_lapply() -> future_xapply() ... [08:52:21.725] | : Number of chunks: 1 [08:52:21.726] | : getGlobalsAndPackagesXApply() ... [08:52:21.726] | : . future.globals: TRUE [08:52:21.732] | : . globals found/used: [n=1] 'FUN' [08:52:21.732] | : . needed namespaces: [n=0] [08:52:21.733] | : . use_args: TRUE [08:52:21.733] | : . Getting '...' globals ... [08:52:21.734] | : . ' '...' content: [n=0] [08:52:21.734] | : . ' List of 1 [08:52:21.734] | : . ' $ ...: list() [08:52:21.734] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.734] | : . ' - attr(*, "where")=List of 1 [08:52:21.734] | : . ' ..$ ...: [08:52:21.734] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.734] | : . ' - attr(*, "resolved")= logi TRUE [08:52:21.734] | : . ' - attr(*, "total_size")= num NA [08:52:21.739] | : . Getting '...' globals ... done [08:52:21.739] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:21.740] | : . List of 2 [08:52:21.740] | : . $ ...future.FUN:function (f) [08:52:21.740] | : . $ ... : list() [08:52:21.740] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.740] | : . - attr(*, "where")=List of 2 [08:52:21.740] | : . ..$ ...future.FUN: [08:52:21.740] | : . ..$ ... : [08:52:21.740] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.740] | : . - attr(*, "resolved")= logi FALSE [08:52:21.740] | : . - attr(*, "total_size")= num 5165 [08:52:21.745] | : . Packages to be attached in all futures: [n=0] [08:52:21.745] | : getGlobalsAndPackagesXApply() ... done [08:52:21.746] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.746] | : List of 5 [08:52:21.746] | : $ ...future.FUN :function (f) [08:52:21.746] | : $ ... : list() [08:52:21.746] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.746] | : $ ...future.elements_ii : NULL [08:52:21.746] | : $ ...future.seeds_ii : NULL [08:52:21.746] | : $ ...future.globals.maxSize: NULL [08:52:21.746] | : - attr(*, "where")=List of 5 [08:52:21.746] | : ..$ ...future.FUN : [08:52:21.746] | : ..$ ... : [08:52:21.746] | : ..$ ...future.elements_ii : [08:52:21.746] | : ..$ ...future.seeds_ii : [08:52:21.746] | : ..$ ...future.globals.maxSize: [08:52:21.746] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.746] | : - attr(*, "resolved")= logi FALSE [08:52:21.746] | : - attr(*, "total_size")= num 5165 [08:52:21.754] | : Number of futures (= number of chunks): 1 [08:52:21.754] | : Launching 1 futures (chunks) ... [08:52:21.755] | : Chunk #1 of 1 ... [08:52:21.755] | : - Finding globals in 'X' for chunk #1 ... [08:52:21.798] | : + additional globals found: [n=2] 'a', 'b' [08:52:21.799] | : + additional namespaces needed: [n=1] 'tools' [08:52:21.799] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:21.799] | : - seeds: [08:52:21.800] | : - All globals exported: [n=7] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize', 'a', 'b' [08:52:21.807] | : Created future: [08:52:21.808] | : SequentialFuture: [08:52:21.808] | : Label: 'future_lapply-1' [08:52:21.808] | : Expression: [08:52:21.808] | : { [08:52:21.808] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:21.808] | : "# expression in do.call(), because function called uses '...' " [08:52:21.808] | : "# as a global variable " [08:52:21.808] | : do.call(function(...) { [08:52:21.808] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:21.808] | : "# without having an '...' argument. This means '...' is treated" [08:52:21.808] | : "# as a global variable. This may happen when FUN() is an " [08:52:21.808] | : "# anonymous function. " [08:52:21.808] | : "# " [08:52:21.808] | : "# If an anonymous function, we will make sure to restore the " [08:52:21.808] | : "# function environment of FUN() to the calling environment. " [08:52:21.808] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:21.808] | : "# global environment, which is where globals are written. " [08:52:21.808] | : penv <- env <- environment(...future.FUN) [08:52:21.808] | : repeat { [08:52:21.808] | : if (identical(env, globalenv()) || identical(env, [08:52:21.808] | : emptyenv())) [08:52:21.808] | : break [08:52:21.808] | : penv <- env [08:52:21.808] | : env <- parent.env(env) [08:52:21.808] | : } [08:52:21.808] | : if (identical(penv, globalenv())) { [08:52:21.808] | : environment(...future.FUN) <- environment() [08:52:21.808] | : } [08:52:21.808] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:21.808] | : !isNamespace(penv)) { [08:52:21.808] | : parent.env(penv) <- environment() [08:52:21.808] | : } [08:52:21.808] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:21.808] | : { [08:52:21.808] | : "# future.apply:::future_xapply(): preserve future option" [08:52:21.808] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:21.808] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:21.808] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:21.808] | : on.exit(options(oopts), add = TRUE) [08:52:21.808] | : } [08:52:21.808] | : { [08:52:21.808] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:21.808] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:21.808] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:21.808] | : { [08:52:21.808] | : ...future.FUN(...future.X_jj, ...) [08:52:21.808] | : } [08:52:21.808] | : }) [08:52:21.808] | : } [08:52:21.808] | : } [08:52:21.808] | : }, args = future.call.arguments) [08:52:21.808] | : } [08:52:21.808] | : 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, ...) [08:52:21.808] | : Packages: 1 packages ('tools') [08:52:21.808] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:21.808] | : Capture standard output: TRUE [08:52:21.808] | : Capture condition classes: 'condition' (excluding '') [08:52:21.808] | : Immediate condition classes: 'immediateCondition' [08:52:21.808] | : Lazy evaluation: FALSE [08:52:21.808] | : Local evaluation: TRUE [08:52:21.808] | : Asynchronous evaluation: TRUE [08:52:21.808] | : Early signaling: FALSE [08:52:21.808] | : Environment: R_GlobalEnv [08:52:21.808] | : State: 'finished' [08:52:21.808] | : Resolved: TRUE [08:52:21.808] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-13 [08:52:21.808] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.808] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [08:52:21.808] | : Value: 91 bytes of class 'list' [08:52:21.808] | : Duration: 0.004765987 secs (started 2025-06-06 08:52:21.801615) [08:52:21.808] | : Worker process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.811] | : Chunk #1 of 1 ... DONE [08:52:21.811] | : Launching 1 futures (chunks) ... DONE [08:52:21.811] | : Resolving 1 futures (chunks) ... [08:52:21.812] | : - Number of value chunks collected: 1 [08:52:21.812] | : Resolving 1 futures (chunks) ... DONE [08:52:21.812] | : Reducing values from 1 chunks ... [08:52:21.813] | : - Number of values collected after concatenation: 4 [08:52:21.813] | : - Number of values expected: 4 [08:52:21.813] | : Reducing values from 1 chunks ... DONE [08:52:21.813] | future_lapply() -> future_xapply() ... done [08:52:21.813] future_lapply() ... done List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 - future_lapply(X, ...) - '{ a <- a + 1; a }' ... [08:52:21.816] future_lapply() ... [08:52:21.818] | Globals in FUN(): [n=4] '{', '<-', 'a', '+' [08:52:21.818] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:21.819] | future_lapply() -> future_xapply() ... [08:52:21.819] | : Number of chunks: 1 [08:52:21.819] | : getGlobalsAndPackagesXApply() ... [08:52:21.819] | : . future.globals: TRUE [08:52:21.832] | : . globals found/used: [n=2] 'FUN', 'a' [08:52:21.833] | : . needed namespaces: [n=0] [08:52:21.833] | : . use_args: TRUE [08:52:21.833] | : . Getting '...' globals ... [08:52:21.834] | : . ' '...' content: [n=0] [08:52:21.834] | : . ' List of 1 [08:52:21.834] | : . ' $ ...: list() [08:52:21.834] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.834] | : . ' - attr(*, "where")=List of 1 [08:52:21.834] | : . ' ..$ ...: [08:52:21.834] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.834] | : . ' - attr(*, "resolved")= logi TRUE [08:52:21.834] | : . ' - attr(*, "total_size")= num NA [08:52:21.839] | : . Getting '...' globals ... done [08:52:21.839] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [08:52:21.839] | : . List of 3 [08:52:21.839] | : . $ ...future.FUN:function (ii) [08:52:21.839] | : . $ a : num 1 [08:52:21.839] | : . $ ... : list() [08:52:21.839] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.839] | : . - attr(*, "where")=List of 3 [08:52:21.839] | : . ..$ ...future.FUN: [08:52:21.839] | : . ..$ a : [08:52:21.839] | : . ..$ ... : [08:52:21.839] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.839] | : . - attr(*, "resolved")= logi FALSE [08:52:21.839] | : . - attr(*, "total_size")= num 4124 [08:52:21.845] | : . Packages to be attached in all futures: [n=0] [08:52:21.845] | : getGlobalsAndPackagesXApply() ... done [08:52:21.846] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.846] | : List of 6 [08:52:21.846] | : $ ...future.FUN :function (ii) [08:52:21.846] | : $ a : num 1 [08:52:21.846] | : $ ... : list() [08:52:21.846] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.846] | : $ ...future.elements_ii : NULL [08:52:21.846] | : $ ...future.seeds_ii : NULL [08:52:21.846] | : $ ...future.globals.maxSize: NULL [08:52:21.846] | : - attr(*, "where")=List of 6 [08:52:21.846] | : ..$ ...future.FUN : [08:52:21.846] | : ..$ a : [08:52:21.846] | : ..$ ... : [08:52:21.846] | : ..$ ...future.elements_ii : [08:52:21.846] | : ..$ ...future.seeds_ii : [08:52:21.846] | : ..$ ...future.globals.maxSize: [08:52:21.846] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.846] | : - attr(*, "resolved")= logi FALSE [08:52:21.846] | : - attr(*, "total_size")= num 4124 [08:52:21.855] | : Number of futures (= number of chunks): 1 [08:52:21.855] | : Launching 1 futures (chunks) ... [08:52:21.855] | : Chunk #1 of 1 ... [08:52:21.856] | : - Finding globals in 'X' for chunk #1 ... [08:52:21.857] | : + additional globals found: [n=0] [08:52:21.857] | : + additional namespaces needed: [n=0] [08:52:21.857] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:21.857] | : - seeds: [08:52:21.857] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.866] | : Created future: [08:52:21.867] | : SequentialFuture: [08:52:21.867] | : Label: 'future_lapply-1' [08:52:21.867] | : Expression: [08:52:21.867] | : { [08:52:21.867] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:21.867] | : "# expression in do.call(), because function called uses '...' " [08:52:21.867] | : "# as a global variable " [08:52:21.867] | : do.call(function(...) { [08:52:21.867] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:21.867] | : "# without having an '...' argument. This means '...' is treated" [08:52:21.867] | : "# as a global variable. This may happen when FUN() is an " [08:52:21.867] | : "# anonymous function. " [08:52:21.867] | : "# " [08:52:21.867] | : "# If an anonymous function, we will make sure to restore the " [08:52:21.867] | : "# function environment of FUN() to the calling environment. " [08:52:21.867] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:21.867] | : "# global environment, which is where globals are written. " [08:52:21.867] | : penv <- env <- environment(...future.FUN) [08:52:21.867] | : repeat { [08:52:21.867] | : if (identical(env, globalenv()) || identical(env, [08:52:21.867] | : emptyenv())) [08:52:21.867] | : break [08:52:21.867] | : penv <- env [08:52:21.867] | : env <- parent.env(env) [08:52:21.867] | : } [08:52:21.867] | : if (identical(penv, globalenv())) { [08:52:21.867] | : environment(...future.FUN) <- environment() [08:52:21.867] | : } [08:52:21.867] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:21.867] | : !isNamespace(penv)) { [08:52:21.867] | : parent.env(penv) <- environment() [08:52:21.867] | : } [08:52:21.867] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:21.867] | : { [08:52:21.867] | : "# future.apply:::future_xapply(): preserve future option" [08:52:21.867] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:21.867] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:21.867] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:21.867] | : on.exit(options(oopts), add = TRUE) [08:52:21.867] | : } [08:52:21.867] | : { [08:52:21.867] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:21.867] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:21.867] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:21.867] | : { [08:52:21.867] | : ...future.FUN(...future.X_jj, ...) [08:52:21.867] | : } [08:52:21.867] | : }) [08:52:21.867] | : } [08:52:21.867] | : } [08:52:21.867] | : }, args = future.call.arguments) [08:52:21.867] | : } [08:52:21.867] | : 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, ...) [08:52:21.867] | : Packages: [08:52:21.867] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:21.867] | : Capture standard output: TRUE [08:52:21.867] | : Capture condition classes: 'condition' (excluding '') [08:52:21.867] | : Immediate condition classes: 'immediateCondition' [08:52:21.867] | : Lazy evaluation: FALSE [08:52:21.867] | : Local evaluation: TRUE [08:52:21.867] | : Asynchronous evaluation: TRUE [08:52:21.867] | : Early signaling: FALSE [08:52:21.867] | : Environment: R_GlobalEnv [08:52:21.867] | : State: 'finished' [08:52:21.867] | : Resolved: TRUE [08:52:21.867] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-14 [08:52:21.867] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.867] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [08:52:21.867] | : Value: 47 bytes of class 'list' [08:52:21.867] | : Duration: 0.005146027 secs (started 2025-06-06 08:52:21.859849) [08:52:21.867] | : Worker process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.870] | : Chunk #1 of 1 ... DONE [08:52:21.871] | : Launching 1 futures (chunks) ... DONE [08:52:21.871] | : Resolving 1 futures (chunks) ... [08:52:21.872] | : - Number of value chunks collected: 1 [08:52:21.872] | : Resolving 1 futures (chunks) ... DONE [08:52:21.872] | : Reducing values from 1 chunks ... [08:52:21.876] | : - Number of values collected after concatenation: 1 [08:52:21.876] | : - Number of values expected: 1 [08:52:21.876] | : Reducing values from 1 chunks ... DONE [08:52:21.877] | future_lapply() -> future_xapply() ... done [08:52:21.877] future_lapply() ... done - future_lapply(X, ...) - '{ a; a <- a + 1 }' ... [08:52:21.877] future_lapply() ... [08:52:21.879] | Globals in FUN(): [n=4] '{', 'a', '<-', '+' [08:52:21.879] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:21.880] | future_lapply() -> future_xapply() ... [08:52:21.880] | : Number of chunks: 1 [08:52:21.880] | : getGlobalsAndPackagesXApply() ... [08:52:21.880] | : . future.globals: TRUE [08:52:21.896] | : . globals found/used: [n=2] 'FUN', 'a' [08:52:21.896] | : . needed namespaces: [n=0] [08:52:21.897] | : . use_args: TRUE [08:52:21.897] | : . Getting '...' globals ... [08:52:21.898] | : . ' '...' content: [n=0] [08:52:21.898] | : . ' List of 1 [08:52:21.898] | : . ' $ ...: list() [08:52:21.898] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.898] | : . ' - attr(*, "where")=List of 1 [08:52:21.898] | : . ' ..$ ...: [08:52:21.898] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.898] | : . ' - attr(*, "resolved")= logi TRUE [08:52:21.898] | : . ' - attr(*, "total_size")= num NA [08:52:21.903] | : . Getting '...' globals ... done [08:52:21.904] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [08:52:21.904] | : . List of 3 [08:52:21.904] | : . $ ...future.FUN:function (ii) [08:52:21.904] | : . $ a : num 1 [08:52:21.904] | : . $ ... : list() [08:52:21.904] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.904] | : . - attr(*, "where")=List of 3 [08:52:21.904] | : . ..$ ...future.FUN: [08:52:21.904] | : . ..$ a : [08:52:21.904] | : . ..$ ... : [08:52:21.904] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.904] | : . - attr(*, "resolved")= logi FALSE [08:52:21.904] | : . - attr(*, "total_size")= num 4140 [08:52:21.910] | : . Packages to be attached in all futures: [n=0] [08:52:21.911] | : getGlobalsAndPackagesXApply() ... done [08:52:21.911] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.911] | : List of 6 [08:52:21.911] | : $ ...future.FUN :function (ii) [08:52:21.911] | : $ a : num 1 [08:52:21.911] | : $ ... : list() [08:52:21.911] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.911] | : $ ...future.elements_ii : NULL [08:52:21.911] | : $ ...future.seeds_ii : NULL [08:52:21.911] | : $ ...future.globals.maxSize: NULL [08:52:21.911] | : - attr(*, "where")=List of 6 [08:52:21.911] | : ..$ ...future.FUN : [08:52:21.911] | : ..$ a : [08:52:21.911] | : ..$ ... : [08:52:21.911] | : ..$ ...future.elements_ii : [08:52:21.911] | : ..$ ...future.seeds_ii : [08:52:21.911] | : ..$ ...future.globals.maxSize: [08:52:21.911] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.911] | : - attr(*, "resolved")= logi FALSE [08:52:21.911] | : - attr(*, "total_size")= num 4140 [08:52:21.920] | : Number of futures (= number of chunks): 1 [08:52:21.920] | : Launching 1 futures (chunks) ... [08:52:21.921] | : Chunk #1 of 1 ... [08:52:21.921] | : - Finding globals in 'X' for chunk #1 ... [08:52:21.922] | : + additional globals found: [n=0] [08:52:21.922] | : + additional namespaces needed: [n=0] [08:52:21.922] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:21.922] | : - seeds: [08:52:21.923] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.932] | : Created future: [08:52:21.932] | : SequentialFuture: [08:52:21.932] | : Label: 'future_lapply-1' [08:52:21.932] | : Expression: [08:52:21.932] | : { [08:52:21.932] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:21.932] | : "# expression in do.call(), because function called uses '...' " [08:52:21.932] | : "# as a global variable " [08:52:21.932] | : do.call(function(...) { [08:52:21.932] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:21.932] | : "# without having an '...' argument. This means '...' is treated" [08:52:21.932] | : "# as a global variable. This may happen when FUN() is an " [08:52:21.932] | : "# anonymous function. " [08:52:21.932] | : "# " [08:52:21.932] | : "# If an anonymous function, we will make sure to restore the " [08:52:21.932] | : "# function environment of FUN() to the calling environment. " [08:52:21.932] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:21.932] | : "# global environment, which is where globals are written. " [08:52:21.932] | : penv <- env <- environment(...future.FUN) [08:52:21.932] | : repeat { [08:52:21.932] | : if (identical(env, globalenv()) || identical(env, [08:52:21.932] | : emptyenv())) [08:52:21.932] | : break [08:52:21.932] | : penv <- env [08:52:21.932] | : env <- parent.env(env) [08:52:21.932] | : } [08:52:21.932] | : if (identical(penv, globalenv())) { [08:52:21.932] | : environment(...future.FUN) <- environment() [08:52:21.932] | : } [08:52:21.932] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:21.932] | : !isNamespace(penv)) { [08:52:21.932] | : parent.env(penv) <- environment() [08:52:21.932] | : } [08:52:21.932] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:21.932] | : { [08:52:21.932] | : "# future.apply:::future_xapply(): preserve future option" [08:52:21.932] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:21.932] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:21.932] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:21.932] | : on.exit(options(oopts), add = TRUE) [08:52:21.932] | : } [08:52:21.932] | : { [08:52:21.932] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:21.932] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:21.932] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:21.932] | : { [08:52:21.932] | : ...future.FUN(...future.X_jj, ...) [08:52:21.932] | : } [08:52:21.932] | : }) [08:52:21.932] | : } [08:52:21.932] | : } [08:52:21.932] | : }, args = future.call.arguments) [08:52:21.932] | : } [08:52:21.932] | : Globals: 6 objects totaling 4.30 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, ...) [08:52:21.932] | : Packages: [08:52:21.932] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:21.932] | : Capture standard output: TRUE [08:52:21.932] | : Capture condition classes: 'condition' (excluding '') [08:52:21.932] | : Immediate condition classes: 'immediateCondition' [08:52:21.932] | : Lazy evaluation: FALSE [08:52:21.932] | : Local evaluation: TRUE [08:52:21.932] | : Asynchronous evaluation: TRUE [08:52:21.932] | : Early signaling: FALSE [08:52:21.932] | : Environment: R_GlobalEnv [08:52:21.932] | : State: 'finished' [08:52:21.932] | : Resolved: TRUE [08:52:21.932] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-15 [08:52:21.932] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.932] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [08:52:21.932] | : Value: 47 bytes of class 'list' [08:52:21.932] | : Duration: 0.005122185 secs (started 2025-06-06 08:52:21.92498) [08:52:21.932] | : Worker process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.935] | : Chunk #1 of 1 ... DONE [08:52:21.935] | : Launching 1 futures (chunks) ... DONE [08:52:21.936] | : Resolving 1 futures (chunks) ... [08:52:21.937] | : - Number of value chunks collected: 1 [08:52:21.937] | : Resolving 1 futures (chunks) ... DONE [08:52:21.937] | : Reducing values from 1 chunks ... [08:52:21.937] | : - Number of values collected after concatenation: 1 [08:52:21.938] | : - Number of values expected: 1 [08:52:21.938] | : Reducing values from 1 chunks ... DONE [08:52:21.938] | future_lapply() -> future_xapply() ... done [08:52:21.938] future_lapply() ... done - future_lapply(..., future.globals = ) ... [08:52:21.939] future_lapply() ... [08:52:21.940] | Globals in FUN(): [n=1] 'a' [08:52:21.940] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:21.940] | future_lapply() -> future_xapply() ... [08:52:21.941] | : Number of chunks: 1 [08:52:21.941] | : getGlobalsAndPackagesXApply() ... [08:52:21.941] | : . future.globals: with names 'a' [08:52:21.942] | : . use_args: TRUE [08:52:21.942] | : . Getting '...' globals ... [08:52:21.943] | : . ' '...' content: [n=0] [08:52:21.943] | : . ' List of 1 [08:52:21.943] | : . ' $ ...: list() [08:52:21.943] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.943] | : . ' - attr(*, "where")=List of 1 [08:52:21.943] | : . ' ..$ ...: [08:52:21.943] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.943] | : . ' - attr(*, "resolved")= logi TRUE [08:52:21.943] | : . ' - attr(*, "total_size")= num NA [08:52:21.948] | : . Getting '...' globals ... done [08:52:21.948] | : . Globals to be used in all futures (chunks): [n=3] 'a', '...future.FUN', '...' [08:52:21.949] | : . List of 3 [08:52:21.949] | : . $ a : num 42 [08:52:21.949] | : . $ ...future.FUN:function (x) [08:52:21.949] | : . $ ... : list() [08:52:21.949] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.949] | : . - attr(*, "where")=List of 3 [08:52:21.949] | : . ..$ a : [08:52:21.949] | : . ..$ ...future.FUN: [08:52:21.949] | : . ..$ ... : [08:52:21.949] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.949] | : . - attr(*, "resolved")= logi FALSE [08:52:21.949] | : . - attr(*, "total_size")= num NA [08:52:21.955] | : . Packages to be attached in all futures: [n=0] [08:52:21.955] | : getGlobalsAndPackagesXApply() ... done [08:52:21.956] | : Globals pass to each chunk: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.956] | : List of 6 [08:52:21.956] | : $ a : num 42 [08:52:21.956] | : $ ...future.FUN :function (x) [08:52:21.956] | : $ ... : list() [08:52:21.956] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:21.956] | : $ ...future.elements_ii : NULL [08:52:21.956] | : $ ...future.seeds_ii : NULL [08:52:21.956] | : $ ...future.globals.maxSize: NULL [08:52:21.956] | : - attr(*, "where")=List of 6 [08:52:21.956] | : ..$ a : [08:52:21.956] | : ..$ ...future.FUN : [08:52:21.956] | : ..$ ... : [08:52:21.956] | : ..$ ...future.elements_ii : [08:52:21.956] | : ..$ ...future.seeds_ii : [08:52:21.956] | : ..$ ...future.globals.maxSize: [08:52:21.956] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:21.956] | : - attr(*, "resolved")= logi FALSE [08:52:21.956] | : - attr(*, "total_size")= num NA [08:52:21.961] | : Number of futures (= number of chunks): 1 [08:52:21.961] | : Launching 1 futures (chunks) ... [08:52:21.961] | : Chunk #1 of 1 ... [08:52:21.962] | : - seeds: [08:52:21.962] | : - All globals exported: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:21.971] | : Created future: [08:52:21.971] | : SequentialFuture: [08:52:21.971] | : Label: 'future_lapply-1' [08:52:21.971] | : Expression: [08:52:21.971] | : { [08:52:21.971] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:21.971] | : "# expression in do.call(), because function called uses '...' " [08:52:21.971] | : "# as a global variable " [08:52:21.971] | : do.call(function(...) { [08:52:21.971] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:21.971] | : "# without having an '...' argument. This means '...' is treated" [08:52:21.971] | : "# as a global variable. This may happen when FUN() is an " [08:52:21.971] | : "# anonymous function. " [08:52:21.971] | : "# " [08:52:21.971] | : "# If an anonymous function, we will make sure to restore the " [08:52:21.971] | : "# function environment of FUN() to the calling environment. " [08:52:21.971] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:21.971] | : "# global environment, which is where globals are written. " [08:52:21.971] | : penv <- env <- environment(...future.FUN) [08:52:21.971] | : repeat { [08:52:21.971] | : if (identical(env, globalenv()) || identical(env, [08:52:21.971] | : emptyenv())) [08:52:21.971] | : break [08:52:21.971] | : penv <- env [08:52:21.971] | : env <- parent.env(env) [08:52:21.971] | : } [08:52:21.971] | : if (identical(penv, globalenv())) { [08:52:21.971] | : environment(...future.FUN) <- environment() [08:52:21.971] | : } [08:52:21.971] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:21.971] | : !isNamespace(penv)) { [08:52:21.971] | : parent.env(penv) <- environment() [08:52:21.971] | : } [08:52:21.971] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:21.971] | : { [08:52:21.971] | : "# future.apply:::future_xapply(): preserve future option" [08:52:21.971] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:21.971] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:21.971] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:21.971] | : on.exit(options(oopts), add = TRUE) [08:52:21.971] | : } [08:52:21.971] | : { [08:52:21.971] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:21.971] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:21.971] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:21.971] | : { [08:52:21.971] | : ...future.FUN(...future.X_jj, ...) [08:52:21.971] | : } [08:52:21.971] | : }) [08:52:21.971] | : } [08:52:21.971] | : } [08:52:21.971] | : }, args = future.call.arguments) [08:52:21.971] | : } [08:52:21.971] | : Globals: 6 objects totaling 4.16 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, ...) [08:52:21.971] | : Packages: [08:52:21.971] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:21.971] | : Capture standard output: TRUE [08:52:21.971] | : Capture condition classes: 'condition' (excluding '') [08:52:21.971] | : Immediate condition classes: 'immediateCondition' [08:52:21.971] | : Lazy evaluation: FALSE [08:52:21.971] | : Local evaluation: TRUE [08:52:21.971] | : Asynchronous evaluation: TRUE [08:52:21.971] | : Early signaling: FALSE [08:52:21.971] | : Environment: R_GlobalEnv [08:52:21.971] | : State: 'finished' [08:52:21.971] | : Resolved: TRUE [08:52:21.971] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-16 [08:52:21.971] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.971] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [08:52:21.971] | : Value: 47 bytes of class 'list' [08:52:21.971] | : Duration: 0.006816149 secs (started 2025-06-06 08:52:21.963631) [08:52:21.971] | : Worker process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:21.973] | : Chunk #1 of 1 ... DONE [08:52:21.974] | : Launching 1 futures (chunks) ... DONE [08:52:21.974] | : Resolving 1 futures (chunks) ... [08:52:21.974] | : - Number of value chunks collected: 1 [08:52:21.975] | : Resolving 1 futures (chunks) ... DONE [08:52:21.975] | : Reducing values from 1 chunks ... [08:52:21.975] | : - Number of values collected after concatenation: 1 [08:52:21.975] | : - Number of values expected: 1 [08:52:21.975] | : Reducing values from 1 chunks ... DONE [08:52:21.975] | future_lapply() -> future_xapply() ... done [08:52:21.975] future_lapply() ... done List of 1 $ : num 42 [08:52:22.276] future_lapply() ... [08:52:22.278] | Globals in FUN(): [n=7] '{', 'do.call', 'caller', 'c', 'list', '+', 'args' [08:52:22.278] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:22.278] | future_lapply() -> future_xapply() ... [08:52:22.280] | : Number of chunks: 2 [08:52:22.280] | : getGlobalsAndPackagesXApply() ... [08:52:22.280] | : . future.globals: TRUE [08:52:22.311] | : . globals found/used: [n=5] 'FUN', 'caller', 'args', 'call_my_add', 'my_add' [08:52:22.311] | : . needed namespaces: [n=0] [08:52:22.312] | : . use_args: TRUE [08:52:22.312] | : . Getting '...' globals ... [08:52:22.313] | : . ' '...' content: [n=0] [08:52:22.313] | : . ' List of 1 [08:52:22.313] | : . ' $ ...: list() [08:52:22.313] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:22.313] | : . ' - attr(*, "where")=List of 1 [08:52:22.313] | : . ' ..$ ...: [08:52:22.313] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:22.313] | : . ' - attr(*, "resolved")= logi TRUE [08:52:22.313] | : . ' - attr(*, "total_size")= num NA [08:52:22.319] | : . Getting '...' globals ... done [08:52:22.320] | : . Globals to be used in all futures (chunks): [n=6] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...' [08:52:22.320] | : . List of 6 [08:52:22.320] | : . $ ...future.FUN:function (i) [08:52:22.320] | : . $ caller :function (a, b, FUN = call_my_add) [08:52:22.320] | : . $ args :List of 1 [08:52:22.320] | : . ..$ FUN:function (a, b) [08:52:22.320] | : . $ call_my_add :function (a, b) [08:52:22.320] | : . $ my_add :function (a, b) [08:52:22.320] | : . $ ... : list() [08:52:22.320] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:22.320] | : . - attr(*, "where")=List of 6 [08:52:22.320] | : . ..$ ...future.FUN: [08:52:22.320] | : . ..$ caller : [08:52:22.320] | : . ..$ args : [08:52:22.320] | : . ..$ call_my_add : [08:52:22.320] | : . ..$ my_add : [08:52:22.320] | : . ..$ ... : [08:52:22.320] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:22.320] | : . - attr(*, "resolved")= logi FALSE [08:52:22.320] | : . - attr(*, "total_size")= num 13245 [08:52:22.327] | : . Packages to be attached in all futures: [n=0] [08:52:22.327] | : getGlobalsAndPackagesXApply() ... done [08:52:22.327] | : 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' [08:52:22.327] | : List of 9 [08:52:22.327] | : $ ...future.FUN :function (i) [08:52:22.327] | : $ caller :function (a, b, FUN = call_my_add) [08:52:22.327] | : $ args :List of 1 [08:52:22.327] | : ..$ FUN:function (a, b) [08:52:22.327] | : $ call_my_add :function (a, b) [08:52:22.327] | : $ my_add :function (a, b) [08:52:22.327] | : $ ... : list() [08:52:22.327] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:22.327] | : $ ...future.elements_ii : NULL [08:52:22.327] | : $ ...future.seeds_ii : NULL [08:52:22.327] | : $ ...future.globals.maxSize: NULL [08:52:22.327] | : - attr(*, "where")=List of 9 [08:52:22.327] | : ..$ ...future.FUN : [08:52:22.327] | : ..$ caller : [08:52:22.327] | : ..$ args : [08:52:22.327] | : ..$ call_my_add : [08:52:22.327] | : ..$ my_add : [08:52:22.327] | : ..$ ... : [08:52:22.327] | : ..$ ...future.elements_ii : [08:52:22.327] | : ..$ ...future.seeds_ii : [08:52:22.327] | : ..$ ...future.globals.maxSize: [08:52:22.327] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:22.327] | : - attr(*, "resolved")= logi FALSE [08:52:22.327] | : - attr(*, "total_size")= num 13245 [08:52:22.336] | : Number of futures (= number of chunks): 2 [08:52:22.337] | : Launching 2 futures (chunks) ... [08:52:22.337] | : Chunk #1 of 2 ... [08:52:22.337] | : - Finding globals in 'X' for chunk #1 ... [08:52:22.338] | : + additional globals found: [n=0] [08:52:22.338] | : + additional namespaces needed: [n=0] [08:52:22.338] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:22.338] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [08:52:22.339] | : - seeds: [08:52:22.339] | : - All globals exported: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:22.546] | : Created future: [08:52:22.546] | : MultisessionFuture: [08:52:22.546] | : Label: 'future_lapply-1' [08:52:22.546] | : Expression: [08:52:22.546] | : { [08:52:22.546] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:22.546] | : "# expression in do.call(), because function called uses '...' " [08:52:22.546] | : "# as a global variable " [08:52:22.546] | : do.call(function(...) { [08:52:22.546] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:22.546] | : "# without having an '...' argument. This means '...' is treated" [08:52:22.546] | : "# as a global variable. This may happen when FUN() is an " [08:52:22.546] | : "# anonymous function. " [08:52:22.546] | : "# " [08:52:22.546] | : "# If an anonymous function, we will make sure to restore the " [08:52:22.546] | : "# function environment of FUN() to the calling environment. " [08:52:22.546] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:22.546] | : "# global environment, which is where globals are written. " [08:52:22.546] | : penv <- env <- environment(...future.FUN) [08:52:22.546] | : repeat { [08:52:22.546] | : if (identical(env, globalenv()) || identical(env, [08:52:22.546] | : emptyenv())) [08:52:22.546] | : break [08:52:22.546] | : penv <- env [08:52:22.546] | : env <- parent.env(env) [08:52:22.546] | : } [08:52:22.546] | : if (identical(penv, globalenv())) { [08:52:22.546] | : environment(...future.FUN) <- environment() [08:52:22.546] | : } [08:52:22.546] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:22.546] | : !isNamespace(penv)) { [08:52:22.546] | : parent.env(penv) <- environment() [08:52:22.546] | : } [08:52:22.546] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:22.546] | : { [08:52:22.546] | : "# future.apply:::future_xapply(): preserve future option" [08:52:22.546] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:22.546] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:22.546] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:22.546] | : on.exit(options(oopts), add = TRUE) [08:52:22.546] | : } [08:52:22.546] | : { [08:52:22.546] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:22.546] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:22.546] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:22.546] | : { [08:52:22.546] | : ...future.FUN(...future.X_jj, ...) [08:52:22.546] | : } [08:52:22.546] | : }) [08:52:22.546] | : } [08:52:22.546] | : } [08:52:22.546] | : }, args = future.call.arguments) [08:52:22.546] | : } [08:52:22.546] | : 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, ...) [08:52:22.546] | : Packages: [08:52:22.546] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:22.546] | : Capture standard output: TRUE [08:52:22.546] | : Capture condition classes: 'condition' (excluding '') [08:52:22.546] | : Immediate condition classes: 'immediateCondition' [08:52:22.546] | : Lazy evaluation: FALSE [08:52:22.546] | : Local evaluation: TRUE [08:52:22.546] | : Asynchronous evaluation: TRUE [08:52:22.546] | : Early signaling: FALSE [08:52:22.546] | : Environment: 0x000001960793d610 [08:52:22.546] | : State: 'running' [08:52:22.546] | : Resolved: TRUE [08:52:22.546] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-17 [08:52:22.546] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:22.546] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:22.546] | : Value: [08:52:22.546] | : Conditions captured: [08:52:22.675] | : Chunk #1 of 2 ... DONE [08:52:22.676] | : Chunk #2 of 2 ... [08:52:22.676] | : - Finding globals in 'X' for chunk #2 ... [08:52:22.677] | : + additional globals found: [n=0] [08:52:22.677] | : + additional namespaces needed: [n=0] [08:52:22.678] | : - Finding globals in 'X' for chunk #2 ... DONE [08:52:22.678] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [08:52:22.678] | : - seeds: [08:52:22.678] | : - All globals exported: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:22.749] | : Created future: [08:52:22.749] | : MultisessionFuture: [08:52:22.749] | : Label: 'future_lapply-2' [08:52:22.749] | : Expression: [08:52:22.749] | : { [08:52:22.749] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:22.749] | : "# expression in do.call(), because function called uses '...' " [08:52:22.749] | : "# as a global variable " [08:52:22.749] | : do.call(function(...) { [08:52:22.749] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:22.749] | : "# without having an '...' argument. This means '...' is treated" [08:52:22.749] | : "# as a global variable. This may happen when FUN() is an " [08:52:22.749] | : "# anonymous function. " [08:52:22.749] | : "# " [08:52:22.749] | : "# If an anonymous function, we will make sure to restore the " [08:52:22.749] | : "# function environment of FUN() to the calling environment. " [08:52:22.749] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:22.749] | : "# global environment, which is where globals are written. " [08:52:22.749] | : penv <- env <- environment(...future.FUN) [08:52:22.749] | : repeat { [08:52:22.749] | : if (identical(env, globalenv()) || identical(env, [08:52:22.749] | : emptyenv())) [08:52:22.749] | : break [08:52:22.749] | : penv <- env [08:52:22.749] | : env <- parent.env(env) [08:52:22.749] | : } [08:52:22.749] | : if (identical(penv, globalenv())) { [08:52:22.749] | : environment(...future.FUN) <- environment() [08:52:22.749] | : } [08:52:22.749] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:22.749] | : !isNamespace(penv)) { [08:52:22.749] | : parent.env(penv) <- environment() [08:52:22.749] | : } [08:52:22.749] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:22.749] | : { [08:52:22.749] | : "# future.apply:::future_xapply(): preserve future option" [08:52:22.749] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:22.749] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:22.749] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:22.749] | : on.exit(options(oopts), add = TRUE) [08:52:22.749] | : } [08:52:22.749] | : { [08:52:22.749] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:22.749] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:22.749] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:22.749] | : { [08:52:22.749] | : ...future.FUN(...future.X_jj, ...) [08:52:22.749] | : } [08:52:22.749] | : }) [08:52:22.749] | : } [08:52:22.749] | : } [08:52:22.749] | : }, args = future.call.arguments) [08:52:22.749] | : } [08:52:22.749] | : 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, ...) [08:52:22.749] | : Packages: [08:52:22.749] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:22.749] | : Capture standard output: TRUE [08:52:22.749] | : Capture condition classes: 'condition' (excluding '') [08:52:22.749] | : Immediate condition classes: 'immediateCondition' [08:52:22.749] | : Lazy evaluation: FALSE [08:52:22.749] | : Local evaluation: TRUE [08:52:22.749] | : Asynchronous evaluation: TRUE [08:52:22.749] | : Early signaling: FALSE [08:52:22.749] | : Environment: 0x000001960793d610 [08:52:22.749] | : State: 'running' [08:52:22.749] | : Resolved: TRUE [08:52:22.749] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-18 [08:52:22.749] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:22.749] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:22.749] | : Value: [08:52:22.749] | : Conditions captured: [08:52:22.760] | : Chunk #2 of 2 ... DONE [08:52:22.761] | : Launching 2 futures (chunks) ... DONE [08:52:22.761] | : Resolving 2 futures (chunks) ... [08:52:22.762] | : - Number of value chunks collected: 2 [08:52:22.762] | : Resolving 2 futures (chunks) ... DONE [08:52:22.763] | : Reducing values from 2 chunks ... [08:52:22.763] | : - Number of values collected after concatenation: 3 [08:52:22.763] | : - Number of values expected: 3 [08:52:22.763] | : Reducing values from 2 chunks ... DONE [08:52:22.764] | future_lapply() -> future_xapply() ... done [08:52:22.764] future_lapply() ... done - future_lapply(x, FUN = do.call, ...) ... [08:52:22.764] future_lapply() ... [08:52:22.767] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [08:52:22.767] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:22.767] | future_lapply() -> future_xapply() ... [08:52:22.768] | : Number of chunks: 1 [08:52:22.768] | : getGlobalsAndPackagesXApply() ... [08:52:22.768] | : . future.globals: TRUE [08:52:22.805] | : . globals found/used: [n=1] 'FUN' [08:52:22.805] | : . needed namespaces: [n=0] [08:52:22.805] | : . use_args: TRUE [08:52:22.806] | : . Getting '...' globals ... [08:52:22.806] | : . ' '...' content: [n=1] 'what' [08:52:22.807] | : . ' List of 1 [08:52:22.807] | : . ' $ ...:List of 1 [08:52:22.807] | : . ' ..$ what:function (x) [08:52:22.807] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:22.807] | : . ' - attr(*, "where")=List of 1 [08:52:22.807] | : . ' ..$ ...: [08:52:22.807] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:22.807] | : . ' - attr(*, "resolved")= logi TRUE [08:52:22.807] | : . ' - attr(*, "total_size")= num NA [08:52:22.812] | : . Getting '...' globals ... done [08:52:22.812] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:22.812] | : . List of 2 [08:52:22.812] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [08:52:22.812] | : . $ ... :List of 1 [08:52:22.812] | : . ..$ what:function (x) [08:52:22.812] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:22.812] | : . - attr(*, "where")=List of 2 [08:52:22.812] | : . ..$ ...future.FUN: [08:52:22.812] | : . ..$ ... : [08:52:22.812] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:22.812] | : . - attr(*, "resolved")= logi FALSE [08:52:22.812] | : . - attr(*, "total_size")= num 7368 [08:52:22.818] | : . Packages to be attached in all futures: [n=0] [08:52:22.818] | : getGlobalsAndPackagesXApply() ... done [08:52:22.819] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:22.819] | : List of 5 [08:52:22.819] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [08:52:22.819] | : $ ... :List of 1 [08:52:22.819] | : ..$ what:function (x) [08:52:22.819] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:22.819] | : $ ...future.elements_ii : NULL [08:52:22.819] | : $ ...future.seeds_ii : NULL [08:52:22.819] | : $ ...future.globals.maxSize: NULL [08:52:22.819] | : - attr(*, "where")=List of 5 [08:52:22.819] | : ..$ ...future.FUN : [08:52:22.819] | : ..$ ... : [08:52:22.819] | : ..$ ...future.elements_ii : [08:52:22.819] | : ..$ ...future.seeds_ii : [08:52:22.819] | : ..$ ...future.globals.maxSize: [08:52:22.819] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:22.819] | : - attr(*, "resolved")= logi FALSE [08:52:22.819] | : - attr(*, "total_size")= num 7368 [08:52:22.827] | : Number of futures (= number of chunks): 1 [08:52:22.828] | : Launching 1 futures (chunks) ... [08:52:22.828] | : Chunk #1 of 1 ... [08:52:22.828] | : - Finding globals in 'X' for chunk #1 ... [08:52:22.829] | : + additional globals found: [n=0] [08:52:22.830] | : + additional namespaces needed: [n=0] [08:52:22.830] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:22.830] | : - seeds: [08:52:22.830] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:22.891] | : Created future: [08:52:22.891] | : MultisessionFuture: [08:52:22.891] | : Label: 'future_lapply-1' [08:52:22.891] | : Expression: [08:52:22.891] | : { [08:52:22.891] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:22.891] | : "# expression in do.call(), because function called uses '...' " [08:52:22.891] | : "# as a global variable " [08:52:22.891] | : do.call(function(...) { [08:52:22.891] | : "# future.apply:::future_xapply(): preserve future option" [08:52:22.891] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:22.891] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:22.891] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:22.891] | : on.exit(options(oopts), add = TRUE) [08:52:22.891] | : } [08:52:22.891] | : { [08:52:22.891] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:22.891] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:22.891] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:22.891] | : { [08:52:22.891] | : ...future.FUN(...future.X_jj, ...) [08:52:22.891] | : } [08:52:22.891] | : }) [08:52:22.891] | : } [08:52:22.891] | : }, args = future.call.arguments) [08:52:22.891] | : } [08:52:22.891] | : 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) [08:52:22.891] | : Packages: [08:52:22.891] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:22.891] | : Capture standard output: TRUE [08:52:22.891] | : Capture condition classes: 'condition' (excluding '') [08:52:22.891] | : Immediate condition classes: 'immediateCondition' [08:52:22.891] | : Lazy evaluation: FALSE [08:52:22.891] | : Local evaluation: TRUE [08:52:22.891] | : Asynchronous evaluation: TRUE [08:52:22.891] | : Early signaling: FALSE [08:52:22.891] | : Environment: R_GlobalEnv [08:52:22.891] | : State: 'running' [08:52:22.891] | : Resolved: TRUE [08:52:22.891] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-19 [08:52:22.891] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:22.891] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:22.891] | : Value: [08:52:22.891] | : Conditions captured: [08:52:22.898] | : Chunk #1 of 1 ... DONE [08:52:22.898] | : Launching 1 futures (chunks) ... DONE [08:52:22.898] | : Resolving 1 futures (chunks) ... [08:52:22.899] | : - Number of value chunks collected: 1 [08:52:22.900] | : Resolving 1 futures (chunks) ... DONE [08:52:22.900] | : Reducing values from 1 chunks ... [08:52:22.900] | : - Number of values collected after concatenation: 1 [08:52:22.900] | : - Number of values expected: 1 [08:52:22.901] | : Reducing values from 1 chunks ... DONE [08:52:22.901] | future_lapply() -> future_xapply() ... done [08:52:22.901] future_lapply() ... done [08:52:22.901] future_lapply() ... [08:52:22.904] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [08:52:22.905] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:22.905] | future_lapply() -> future_xapply() ... [08:52:22.906] | : Number of chunks: 1 [08:52:22.906] | : getGlobalsAndPackagesXApply() ... [08:52:22.906] | : . future.globals: TRUE [08:52:22.949] | : . globals found/used: [n=1] 'FUN' [08:52:22.949] | : . needed namespaces: [n=0] [08:52:22.950] | : . use_args: TRUE [08:52:22.950] | : . Getting '...' globals ... [08:52:22.951] | : . ' '...' content: [n=1] 'what' [08:52:22.951] | : . ' List of 1 [08:52:22.951] | : . ' $ ...:List of 1 [08:52:22.951] | : . ' ..$ what:function (...) [08:52:22.951] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:22.951] | : . ' - attr(*, "where")=List of 1 [08:52:22.951] | : . ' ..$ ...: [08:52:22.951] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:22.951] | : . ' - attr(*, "resolved")= logi TRUE [08:52:22.951] | : . ' - attr(*, "total_size")= num NA [08:52:22.957] | : . Getting '...' globals ... done [08:52:22.957] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:22.958] | : . List of 2 [08:52:22.958] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [08:52:22.958] | : . $ ... :List of 1 [08:52:22.958] | : . ..$ what:function (...) [08:52:22.958] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:22.958] | : . - attr(*, "where")=List of 2 [08:52:22.958] | : . ..$ ...future.FUN: [08:52:22.958] | : . ..$ ... : [08:52:22.958] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:22.958] | : . - attr(*, "resolved")= logi FALSE [08:52:22.958] | : . - attr(*, "total_size")= num 7804 [08:52:22.964] | : . Packages to be attached in all futures: [n=0] [08:52:22.964] | : getGlobalsAndPackagesXApply() ... done [08:52:22.964] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:22.965] | : List of 5 [08:52:22.965] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [08:52:22.965] | : $ ... :List of 1 [08:52:22.965] | : ..$ what:function (...) [08:52:22.965] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:22.965] | : $ ...future.elements_ii : NULL [08:52:22.965] | : $ ...future.seeds_ii : NULL [08:52:22.965] | : $ ...future.globals.maxSize: NULL [08:52:22.965] | : - attr(*, "where")=List of 5 [08:52:22.965] | : ..$ ...future.FUN : [08:52:22.965] | : ..$ ... : [08:52:22.965] | : ..$ ...future.elements_ii : [08:52:22.965] | : ..$ ...future.seeds_ii : [08:52:22.965] | : ..$ ...future.globals.maxSize: [08:52:22.965] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:22.965] | : - attr(*, "resolved")= logi FALSE [08:52:22.965] | : - attr(*, "total_size")= num 7804 [08:52:22.973] | : Number of futures (= number of chunks): 1 [08:52:22.974] | : Launching 1 futures (chunks) ... [08:52:22.974] | : Chunk #1 of 1 ... [08:52:22.974] | : - Finding globals in 'X' for chunk #1 ... [08:52:22.975] | : + additional globals found: [n=0] [08:52:22.975] | : + additional namespaces needed: [n=0] [08:52:22.976] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:22.976] | : - seeds: [08:52:22.976] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:23.047] | : Created future: [08:52:23.048] | : MultisessionFuture: [08:52:23.048] | : Label: 'future_lapply-1' [08:52:23.048] | : Expression: [08:52:23.048] | : { [08:52:23.048] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:23.048] | : "# expression in do.call(), because function called uses '...' " [08:52:23.048] | : "# as a global variable " [08:52:23.048] | : do.call(function(...) { [08:52:23.048] | : "# future.apply:::future_xapply(): preserve future option" [08:52:23.048] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:23.048] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:23.048] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:23.048] | : on.exit(options(oopts), add = TRUE) [08:52:23.048] | : } [08:52:23.048] | : { [08:52:23.048] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:23.048] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:23.048] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:23.048] | : { [08:52:23.048] | : ...future.FUN(...future.X_jj, ...) [08:52:23.048] | : } [08:52:23.048] | : }) [08:52:23.048] | : } [08:52:23.048] | : }, args = future.call.arguments) [08:52:23.048] | : } [08:52:23.048] | : Globals: 5 objects totaling 7.80 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) [08:52:23.048] | : Packages: [08:52:23.048] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:23.048] | : Capture standard output: TRUE [08:52:23.048] | : Capture condition classes: 'condition' (excluding '') [08:52:23.048] | : Immediate condition classes: 'immediateCondition' [08:52:23.048] | : Lazy evaluation: FALSE [08:52:23.048] | : Local evaluation: TRUE [08:52:23.048] | : Asynchronous evaluation: TRUE [08:52:23.048] | : Early signaling: FALSE [08:52:23.048] | : Environment: R_GlobalEnv [08:52:23.048] | : State: 'running' [08:52:23.048] | : Resolved: TRUE [08:52:23.048] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-20 [08:52:23.048] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:23.048] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:23.048] | : Value: [08:52:23.048] | : Conditions captured: [08:52:23.058] | : Chunk #1 of 1 ... DONE [08:52:23.059] | : Launching 1 futures (chunks) ... DONE [08:52:23.059] | : Resolving 1 futures (chunks) ... [08:52:23.060] | : - Number of value chunks collected: 1 [08:52:23.060] | : Resolving 1 futures (chunks) ... DONE [08:52:23.060] | : Reducing values from 1 chunks ... [08:52:23.061] | : - Number of values collected after concatenation: 1 [08:52:23.061] | : - Number of values expected: 1 [08:52:23.061] | : Reducing values from 1 chunks ... DONE [08:52:23.061] | future_lapply() -> future_xapply() ... done [08:52:23.061] future_lapply() ... done - future_lapply(x, ...) - passing arguments via '...' ... [08:52:23.062] future_lapply() ... [08:52:23.062] | Globals in FUN(): [n=1] 'typeof' [08:52:23.062] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:23.063] | future_lapply() -> future_xapply() ... [08:52:23.063] | : Number of chunks: 1 [08:52:23.063] | : getGlobalsAndPackagesXApply() ... [08:52:23.063] | : . future.globals: TRUE [08:52:23.074] | : . globals found/used: [n=1] 'FUN' [08:52:23.074] | : . needed namespaces: [n=0] [08:52:23.075] | : . use_args: TRUE [08:52:23.075] | : . Getting '...' globals ... [08:52:23.076] | : . ' '...' content: [n=1] 'b' [08:52:23.076] | : . ' List of 1 [08:52:23.076] | : . ' $ ...:List of 1 [08:52:23.076] | : . ' ..$ b:'data.frame': 2 obs. of 1 variable: [08:52:23.076] | : . ' .. ..$ a: int [1:2] 1 2 [08:52:23.076] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.076] | : . ' - attr(*, "where")=List of 1 [08:52:23.076] | : . ' ..$ ...: [08:52:23.076] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.076] | : . ' - attr(*, "resolved")= logi TRUE [08:52:23.076] | : . ' - attr(*, "total_size")= num NA [08:52:23.082] | : . Getting '...' globals ... done [08:52:23.082] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:23.082] | : . List of 2 [08:52:23.082] | : . $ ...future.FUN:function (a, b) [08:52:23.082] | : . $ ... :List of 1 [08:52:23.082] | : . ..$ b:'data.frame': 2 obs. of 1 variable: [08:52:23.082] | : . .. ..$ a: int [1:2] 1 2 [08:52:23.082] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.082] | : . - attr(*, "where")=List of 2 [08:52:23.082] | : . ..$ ...future.FUN: [08:52:23.082] | : . ..$ ... : [08:52:23.082] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.082] | : . - attr(*, "resolved")= logi FALSE [08:52:23.082] | : . - attr(*, "total_size")= num 4505 [08:52:23.088] | : . Packages to be attached in all futures: [n=0] [08:52:23.088] | : getGlobalsAndPackagesXApply() ... done [08:52:23.089] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:23.089] | : List of 5 [08:52:23.089] | : $ ...future.FUN :function (a, b) [08:52:23.089] | : $ ... :List of 1 [08:52:23.089] | : ..$ b:'data.frame': 2 obs. of 1 variable: [08:52:23.089] | : .. ..$ a: int [1:2] 1 2 [08:52:23.089] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.089] | : $ ...future.elements_ii : NULL [08:52:23.089] | : $ ...future.seeds_ii : NULL [08:52:23.089] | : $ ...future.globals.maxSize: NULL [08:52:23.089] | : - attr(*, "where")=List of 5 [08:52:23.089] | : ..$ ...future.FUN : [08:52:23.089] | : ..$ ... : [08:52:23.089] | : ..$ ...future.elements_ii : [08:52:23.089] | : ..$ ...future.seeds_ii : [08:52:23.089] | : ..$ ...future.globals.maxSize: [08:52:23.089] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.089] | : - attr(*, "resolved")= logi FALSE [08:52:23.089] | : - attr(*, "total_size")= num 4505 [08:52:23.097] | : Number of futures (= number of chunks): 1 [08:52:23.097] | : Launching 1 futures (chunks) ... [08:52:23.097] | : Chunk #1 of 1 ... [08:52:23.097] | : - Finding globals in 'X' for chunk #1 ... [08:52:23.098] | : + additional globals found: [n=0] [08:52:23.098] | : + additional namespaces needed: [n=0] [08:52:23.098] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:23.098] | : - seeds: [08:52:23.099] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:23.181] | : Created future: [08:52:23.182] | : MultisessionFuture: [08:52:23.182] | : Label: 'future_lapply-1' [08:52:23.182] | : Expression: [08:52:23.182] | : { [08:52:23.182] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:23.182] | : "# expression in do.call(), because function called uses '...' " [08:52:23.182] | : "# as a global variable " [08:52:23.182] | : do.call(function(...) { [08:52:23.182] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:23.182] | : "# without having an '...' argument. This means '...' is treated" [08:52:23.182] | : "# as a global variable. This may happen when FUN() is an " [08:52:23.182] | : "# anonymous function. " [08:52:23.182] | : "# " [08:52:23.182] | : "# If an anonymous function, we will make sure to restore the " [08:52:23.182] | : "# function environment of FUN() to the calling environment. " [08:52:23.182] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:23.182] | : "# global environment, which is where globals are written. " [08:52:23.182] | : penv <- env <- environment(...future.FUN) [08:52:23.182] | : repeat { [08:52:23.182] | : if (identical(env, globalenv()) || identical(env, [08:52:23.182] | : emptyenv())) [08:52:23.182] | : break [08:52:23.182] | : penv <- env [08:52:23.182] | : env <- parent.env(env) [08:52:23.182] | : } [08:52:23.182] | : if (identical(penv, globalenv())) { [08:52:23.182] | : environment(...future.FUN) <- environment() [08:52:23.182] | : } [08:52:23.182] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:23.182] | : !isNamespace(penv)) { [08:52:23.182] | : parent.env(penv) <- environment() [08:52:23.182] | : } [08:52:23.182] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:23.182] | : { [08:52:23.182] | : "# future.apply:::future_xapply(): preserve future option" [08:52:23.182] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:23.182] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:23.182] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:23.182] | : on.exit(options(oopts), add = TRUE) [08:52:23.182] | : } [08:52:23.182] | : { [08:52:23.182] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:23.182] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:23.182] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:23.182] | : { [08:52:23.182] | : ...future.FUN(...future.X_jj, ...) [08:52:23.182] | : } [08:52:23.182] | : }) [08:52:23.182] | : } [08:52:23.182] | : } [08:52:23.182] | : }, args = future.call.arguments) [08:52:23.182] | : } [08:52:23.182] | : Globals: 5 objects totaling 4.67 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) [08:52:23.182] | : Packages: [08:52:23.182] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:23.182] | : Capture standard output: TRUE [08:52:23.182] | : Capture condition classes: 'condition' (excluding '') [08:52:23.182] | : Immediate condition classes: 'immediateCondition' [08:52:23.182] | : Lazy evaluation: FALSE [08:52:23.182] | : Local evaluation: TRUE [08:52:23.182] | : Asynchronous evaluation: TRUE [08:52:23.182] | : Early signaling: FALSE [08:52:23.182] | : Environment: R_GlobalEnv [08:52:23.182] | : State: 'running' [08:52:23.182] | : Resolved: TRUE [08:52:23.182] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-21 [08:52:23.182] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:23.182] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:23.182] | : Value: [08:52:23.182] | : Conditions captured: [08:52:23.189] | : Chunk #1 of 1 ... DONE [08:52:23.190] | : Launching 1 futures (chunks) ... DONE [08:52:23.190] | : Resolving 1 futures (chunks) ... [08:52:23.191] | : - Number of value chunks collected: 1 [08:52:23.191] | : Resolving 1 futures (chunks) ... DONE [08:52:23.192] | : Reducing values from 1 chunks ... [08:52:23.192] | : - Number of values collected after concatenation: 1 [08:52:23.192] | : - Number of values expected: 1 [08:52:23.192] | : Reducing values from 1 chunks ... DONE [08:52:23.193] | future_lapply() -> future_xapply() ... done [08:52:23.193] future_lapply() ... done [08:52:23.193] future_lapply() ... [08:52:23.194] | Globals in FUN(): [n=1] 'typeof' [08:52:23.195] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:23.195] | future_lapply() -> future_xapply() ... [08:52:23.195] | : Number of chunks: 1 [08:52:23.196] | : getGlobalsAndPackagesXApply() ... [08:52:23.196] | : . future.globals: TRUE [08:52:23.207] | : . globals found/used: [n=1] 'FUN' [08:52:23.208] | : . needed namespaces: [n=0] [08:52:23.208] | : . use_args: TRUE [08:52:23.208] | : . Getting '...' globals ... [08:52:23.209] | : . ' '...' content: [n=1] 'b' [08:52:23.209] | : . ' List of 1 [08:52:23.209] | : . ' $ ...:List of 1 [08:52:23.209] | : . ' ..$ b: [08:52:23.209] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.209] | : . ' - attr(*, "where")=List of 1 [08:52:23.209] | : . ' ..$ ...: [08:52:23.209] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.209] | : . ' - attr(*, "resolved")= logi TRUE [08:52:23.209] | : . ' - attr(*, "total_size")= num NA [08:52:23.215] | : . Getting '...' globals ... done [08:52:23.215] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:23.215] | : . List of 2 [08:52:23.215] | : . $ ...future.FUN:function (a, b) [08:52:23.215] | : . $ ... :List of 1 [08:52:23.215] | : . ..$ b: [08:52:23.215] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.215] | : . - attr(*, "where")=List of 2 [08:52:23.215] | : . ..$ ...future.FUN: [08:52:23.215] | : . ..$ ... : [08:52:23.215] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.215] | : . - attr(*, "resolved")= logi FALSE [08:52:23.215] | : . - attr(*, "total_size")= num 4260 [08:52:23.221] | : . Packages to be attached in all futures: [n=0] [08:52:23.222] | : getGlobalsAndPackagesXApply() ... done [08:52:23.222] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:23.222] | : List of 5 [08:52:23.222] | : $ ...future.FUN :function (a, b) [08:52:23.222] | : $ ... :List of 1 [08:52:23.222] | : ..$ b: [08:52:23.222] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.222] | : $ ...future.elements_ii : NULL [08:52:23.222] | : $ ...future.seeds_ii : NULL [08:52:23.222] | : $ ...future.globals.maxSize: NULL [08:52:23.222] | : - attr(*, "where")=List of 5 [08:52:23.222] | : ..$ ...future.FUN : [08:52:23.222] | : ..$ ... : [08:52:23.222] | : ..$ ...future.elements_ii : [08:52:23.222] | : ..$ ...future.seeds_ii : [08:52:23.222] | : ..$ ...future.globals.maxSize: [08:52:23.222] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.222] | : - attr(*, "resolved")= logi FALSE [08:52:23.222] | : - attr(*, "total_size")= num 4260 [08:52:23.230] | : Number of futures (= number of chunks): 1 [08:52:23.231] | : Launching 1 futures (chunks) ... [08:52:23.231] | : Chunk #1 of 1 ... [08:52:23.231] | : - Finding globals in 'X' for chunk #1 ... [08:52:23.235] | : + additional globals found: [n=0] [08:52:23.236] | : + additional namespaces needed: [n=0] [08:52:23.236] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:23.236] | : - seeds: [08:52:23.236] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:23.330] | : Created future: [08:52:23.331] | : MultisessionFuture: [08:52:23.331] | : Label: 'future_lapply-1' [08:52:23.331] | : Expression: [08:52:23.331] | : { [08:52:23.331] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:23.331] | : "# expression in do.call(), because function called uses '...' " [08:52:23.331] | : "# as a global variable " [08:52:23.331] | : do.call(function(...) { [08:52:23.331] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:23.331] | : "# without having an '...' argument. This means '...' is treated" [08:52:23.331] | : "# as a global variable. This may happen when FUN() is an " [08:52:23.331] | : "# anonymous function. " [08:52:23.331] | : "# " [08:52:23.331] | : "# If an anonymous function, we will make sure to restore the " [08:52:23.331] | : "# function environment of FUN() to the calling environment. " [08:52:23.331] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:23.331] | : "# global environment, which is where globals are written. " [08:52:23.331] | : penv <- env <- environment(...future.FUN) [08:52:23.331] | : repeat { [08:52:23.331] | : if (identical(env, globalenv()) || identical(env, [08:52:23.331] | : emptyenv())) [08:52:23.331] | : break [08:52:23.331] | : penv <- env [08:52:23.331] | : env <- parent.env(env) [08:52:23.331] | : } [08:52:23.331] | : if (identical(penv, globalenv())) { [08:52:23.331] | : environment(...future.FUN) <- environment() [08:52:23.331] | : } [08:52:23.331] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:23.331] | : !isNamespace(penv)) { [08:52:23.331] | : parent.env(penv) <- environment() [08:52:23.331] | : } [08:52:23.331] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:23.331] | : { [08:52:23.331] | : "# future.apply:::future_xapply(): preserve future option" [08:52:23.331] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:23.331] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:23.331] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:23.331] | : on.exit(options(oopts), add = TRUE) [08:52:23.331] | : } [08:52:23.331] | : { [08:52:23.331] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:23.331] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:23.331] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:23.331] | : { [08:52:23.331] | : ...future.FUN(...future.X_jj, ...) [08:52:23.331] | : } [08:52:23.331] | : }) [08:52:23.331] | : } [08:52:23.331] | : } [08:52:23.331] | : }, args = future.call.arguments) [08:52:23.331] | : } [08:52:23.331] | : Globals: 5 objects totaling 4.43 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) [08:52:23.331] | : Packages: [08:52:23.331] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:23.331] | : Capture standard output: TRUE [08:52:23.331] | : Capture condition classes: 'condition' (excluding '') [08:52:23.331] | : Immediate condition classes: 'immediateCondition' [08:52:23.331] | : Lazy evaluation: FALSE [08:52:23.331] | : Local evaluation: TRUE [08:52:23.331] | : Asynchronous evaluation: TRUE [08:52:23.331] | : Early signaling: FALSE [08:52:23.331] | : Environment: R_GlobalEnv [08:52:23.331] | : State: 'running' [08:52:23.331] | : Resolved: TRUE [08:52:23.331] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-22 [08:52:23.331] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:23.331] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:23.331] | : Value: [08:52:23.331] | : Conditions captured: [08:52:23.338] | : Chunk #1 of 1 ... DONE [08:52:23.338] | : Launching 1 futures (chunks) ... DONE [08:52:23.339] | : Resolving 1 futures (chunks) ... [08:52:23.340] | : - Number of value chunks collected: 1 [08:52:23.340] | : Resolving 1 futures (chunks) ... DONE [08:52:23.340] | : Reducing values from 1 chunks ... [08:52:23.340] | : - Number of values collected after concatenation: 1 [08:52:23.341] | : - Number of values expected: 1 [08:52:23.341] | : Reducing values from 1 chunks ... DONE [08:52:23.341] | future_lapply() -> future_xapply() ... done [08:52:23.341] future_lapply() ... done [08:52:23.342] future_lapply() ... [08:52:23.343] | Globals in FUN(): [n=1] 'typeof' [08:52:23.343] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:23.343] | future_lapply() -> future_xapply() ... [08:52:23.344] | : Number of chunks: 1 [08:52:23.344] | : getGlobalsAndPackagesXApply() ... [08:52:23.344] | : . future.globals: TRUE [08:52:23.358] | : . globals found/used: [n=1] 'FUN' [08:52:23.359] | : . needed namespaces: [n=0] [08:52:23.359] | : . use_args: TRUE [08:52:23.359] | : . Getting '...' globals ... [08:52:23.360] | : . ' '...' content: [n=1] 'b' [08:52:23.361] | : . ' List of 1 [08:52:23.361] | : . ' $ ...:List of 1 [08:52:23.361] | : . ' ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [08:52:23.361] | : . ' .. .. ..@ slots :List of 4 [08:52:23.361] | : . ' .. .. .. ..$ .Data : chr "function" [08:52:23.361] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. ..$ target : chr "signature" [08:52:23.361] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. ..$ defined: chr "signature" [08:52:23.361] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. ..$ generic: chr "character" [08:52:23.361] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. ..@ contains :List of 4 [08:52:23.361] | : . ' .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "function" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr(0) [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 1 [08:52:23.361] | : . ' .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr "function" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 2 [08:52:23.361] | : . ' .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr "function" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 2 [08:52:23.361] | : . ' .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "optionalMethod" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr "function" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 3 [08:52:23.361] | : . ' .. .. ..@ virtual : logi FALSE [08:52:23.361] | : . ' .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [08:52:23.361] | : . ' list() [08:52:23.361] | : . ' .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [08:52:23.361] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:23.361] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [08:52:23.361] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [08:52:23.361] | : . ' .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [08:52:23.361] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:23.361] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [08:52:23.361] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [08:52:23.361] | : . ' .. .. .. .. ..$ generic: chr(0) [08:52:23.361] | : . ' .. .. ..@ validity : NULL [08:52:23.361] | : . ' .. .. ..@ access : list() [08:52:23.361] | : . ' .. .. ..@ className : chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. ..@ subclasses:List of 7 [08:52:23.361] | : . ' .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr(0) [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 1 [08:52:23.361] | : . ' .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr(0) [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 1 [08:52:23.361] | : . ' .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr(0) [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 1 [08:52:23.361] | : . ' .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr(0) [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 1 [08:52:23.361] | : . ' .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 2 [08:52:23.361] | : . ' .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr "MethodWithNext" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 2 [08:52:23.361] | : . ' .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.361] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ package : chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.361] | : . ' .. .. .. .. .. ..@ test :function (object) [08:52:23.361] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.361] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.361] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:23.361] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.361] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.361] | : . ' .. .. .. .. .. ..@ distance : num 2 [08:52:23.361] | : . ' .. .. ..@ versionKey: [08:52:23.361] | : . ' .. .. ..@ sealed : logi TRUE [08:52:23.361] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.361] | : . ' - attr(*, "where")=List of 1 [08:52:23.361] | : . ' ..$ ...: [08:52:23.361] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.361] | : . ' - attr(*, "resolved")= logi TRUE [08:52:23.361] | : . ' - attr(*, "total_size")= num NA [08:52:23.467] | : . Getting '...' globals ... done [08:52:23.468] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:23.468] | : . List of 2 [08:52:23.468] | : . $ ...future.FUN:function (a, b) [08:52:23.468] | : . $ ... :List of 1 [08:52:23.468] | : . ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [08:52:23.468] | : . .. .. ..@ slots :List of 4 [08:52:23.468] | : . .. .. .. ..$ .Data : chr "function" [08:52:23.468] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. ..$ target : chr "signature" [08:52:23.468] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. ..$ defined: chr "signature" [08:52:23.468] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. ..$ generic: chr "character" [08:52:23.468] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. ..@ contains :List of 4 [08:52:23.468] | : . .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "function" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr(0) [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 1 [08:52:23.468] | : . .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr "function" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 2 [08:52:23.468] | : . .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr "function" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 2 [08:52:23.468] | : . .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "optionalMethod" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr "function" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 3 [08:52:23.468] | : . .. .. ..@ virtual : logi FALSE [08:52:23.468] | : . .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [08:52:23.468] | : . list() [08:52:23.468] | : . .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [08:52:23.468] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:23.468] | : . .. .. .. .. .. .. ..@ names : chr(0) [08:52:23.468] | : . .. .. .. .. .. .. ..@ package: chr(0) [08:52:23.468] | : . .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [08:52:23.468] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:23.468] | : . .. .. .. .. .. .. ..@ names : chr(0) [08:52:23.468] | : . .. .. .. .. .. .. ..@ package: chr(0) [08:52:23.468] | : . .. .. .. .. ..$ generic: chr(0) [08:52:23.468] | : . .. .. ..@ validity : NULL [08:52:23.468] | : . .. .. ..@ access : list() [08:52:23.468] | : . .. .. ..@ className : chr "MethodDefinition" [08:52:23.468] | : . .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. ..@ subclasses:List of 7 [08:52:23.468] | : . .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr(0) [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 1 [08:52:23.468] | : . .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr(0) [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 1 [08:52:23.468] | : . .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr(0) [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 1 [08:52:23.468] | : . .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr(0) [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 1 [08:52:23.468] | : . .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 2 [08:52:23.468] | : . .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr "MethodWithNext" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 2 [08:52:23.468] | : . .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.468] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ package : chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.468] | : . .. .. .. .. .. ..@ test :function (object) [08:52:23.468] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.468] | : . .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.468] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:23.468] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.468] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.468] | : . .. .. .. .. .. ..@ distance : num 2 [08:52:23.468] | : . .. .. ..@ versionKey: [08:52:23.468] | : . .. .. ..@ sealed : logi TRUE [08:52:23.468] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.468] | : . - attr(*, "where")=List of 2 [08:52:23.468] | : . ..$ ...future.FUN: [08:52:23.468] | : . ..$ ... : [08:52:23.468] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.468] | : . - attr(*, "resolved")= logi FALSE [08:52:23.468] | : . - attr(*, "total_size")= num 106127 [08:52:23.570] | : . Packages to be attached in all futures: [n=0] [08:52:23.571] | : getGlobalsAndPackagesXApply() ... done [08:52:23.571] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:23.572] | : List of 5 [08:52:23.572] | : $ ...future.FUN :function (a, b) [08:52:23.572] | : $ ... :List of 1 [08:52:23.572] | : ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [08:52:23.572] | : .. .. ..@ slots :List of 4 [08:52:23.572] | : .. .. .. ..$ .Data : chr "function" [08:52:23.572] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. ..$ target : chr "signature" [08:52:23.572] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. ..$ defined: chr "signature" [08:52:23.572] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. ..$ generic: chr "character" [08:52:23.572] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. ..@ contains :List of 4 [08:52:23.572] | : .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "function" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr(0) [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 1 [08:52:23.572] | : .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr "function" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 2 [08:52:23.572] | : .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr "function" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 2 [08:52:23.572] | : .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "optionalMethod" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr "function" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 3 [08:52:23.572] | : .. .. ..@ virtual : logi FALSE [08:52:23.572] | : .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [08:52:23.572] | : list() [08:52:23.572] | : .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [08:52:23.572] | : .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:23.572] | : .. .. .. .. .. .. ..@ names : chr(0) [08:52:23.572] | : .. .. .. .. .. .. ..@ package: chr(0) [08:52:23.572] | : .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [08:52:23.572] | : .. .. .. .. .. .. ..@ .Data : chr(0) [08:52:23.572] | : .. .. .. .. .. .. ..@ names : chr(0) [08:52:23.572] | : .. .. .. .. .. .. ..@ package: chr(0) [08:52:23.572] | : .. .. .. .. ..$ generic: chr(0) [08:52:23.572] | : .. .. ..@ validity : NULL [08:52:23.572] | : .. .. ..@ access : list() [08:52:23.572] | : .. .. ..@ className : chr "MethodDefinition" [08:52:23.572] | : .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. ..@ subclasses:List of 7 [08:52:23.572] | : .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr(0) [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 1 [08:52:23.572] | : .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr(0) [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 1 [08:52:23.572] | : .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr(0) [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 1 [08:52:23.572] | : .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr(0) [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 1 [08:52:23.572] | : .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 2 [08:52:23.572] | : .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr "MethodWithNext" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 2 [08:52:23.572] | : .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [08:52:23.572] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ package : chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [08:52:23.572] | : .. .. .. .. .. ..@ test :function (object) [08:52:23.572] | : .. .. .. .. .. ..@ replace :function (from, to, value) [08:52:23.572] | : .. .. .. .. .. ..@ simple : logi TRUE [08:52:23.572] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [08:52:23.572] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [08:52:23.572] | : .. .. .. .. .. ..@ dataPart : logi FALSE [08:52:23.572] | : .. .. .. .. .. ..@ distance : num 2 [08:52:23.572] | : .. .. ..@ versionKey: [08:52:23.572] | : .. .. ..@ sealed : logi TRUE [08:52:23.572] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.572] | : $ ...future.elements_ii : NULL [08:52:23.572] | : $ ...future.seeds_ii : NULL [08:52:23.572] | : $ ...future.globals.maxSize: NULL [08:52:23.572] | : - attr(*, "where")=List of 5 [08:52:23.572] | : ..$ ...future.FUN : [08:52:23.572] | : ..$ ... : [08:52:23.572] | : ..$ ...future.elements_ii : [08:52:23.572] | : ..$ ...future.seeds_ii : [08:52:23.572] | : ..$ ...future.globals.maxSize: [08:52:23.572] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.572] | : - attr(*, "resolved")= logi FALSE [08:52:23.572] | : - attr(*, "total_size")= num 106127 [08:52:23.680] | : Number of futures (= number of chunks): 1 [08:52:23.680] | : Launching 1 futures (chunks) ... [08:52:23.681] | : Chunk #1 of 1 ... [08:52:23.681] | : - Finding globals in 'X' for chunk #1 ... [08:52:23.682] | : + additional globals found: [n=0] [08:52:23.682] | : + additional namespaces needed: [n=0] [08:52:23.682] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:23.683] | : - seeds: [08:52:23.683] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:23.771] | : Created future: [08:52:23.771] | : MultisessionFuture: [08:52:23.771] | : Label: 'future_lapply-1' [08:52:23.771] | : Expression: [08:52:23.771] | : { [08:52:23.771] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:23.771] | : "# expression in do.call(), because function called uses '...' " [08:52:23.771] | : "# as a global variable " [08:52:23.771] | : do.call(function(...) { [08:52:23.771] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:23.771] | : "# without having an '...' argument. This means '...' is treated" [08:52:23.771] | : "# as a global variable. This may happen when FUN() is an " [08:52:23.771] | : "# anonymous function. " [08:52:23.771] | : "# " [08:52:23.771] | : "# If an anonymous function, we will make sure to restore the " [08:52:23.771] | : "# function environment of FUN() to the calling environment. " [08:52:23.771] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:23.771] | : "# global environment, which is where globals are written. " [08:52:23.771] | : penv <- env <- environment(...future.FUN) [08:52:23.771] | : repeat { [08:52:23.771] | : if (identical(env, globalenv()) || identical(env, [08:52:23.771] | : emptyenv())) [08:52:23.771] | : break [08:52:23.771] | : penv <- env [08:52:23.771] | : env <- parent.env(env) [08:52:23.771] | : } [08:52:23.771] | : if (identical(penv, globalenv())) { [08:52:23.771] | : environment(...future.FUN) <- environment() [08:52:23.771] | : } [08:52:23.771] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:23.771] | : !isNamespace(penv)) { [08:52:23.771] | : parent.env(penv) <- environment() [08:52:23.771] | : } [08:52:23.771] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:23.771] | : { [08:52:23.771] | : "# future.apply:::future_xapply(): preserve future option" [08:52:23.771] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:23.771] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:23.771] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:23.771] | : on.exit(options(oopts), add = TRUE) [08:52:23.771] | : } [08:52:23.771] | : { [08:52:23.771] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:23.771] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:23.771] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:23.771] | : { [08:52:23.771] | : ...future.FUN(...future.X_jj, ...) [08:52:23.771] | : } [08:52:23.771] | : }) [08:52:23.771] | : } [08:52:23.771] | : } [08:52:23.771] | : }, args = future.call.arguments) [08:52:23.771] | : } [08:52:23.771] | : Globals: 5 objects totaling 103.91 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) [08:52:23.771] | : Packages: [08:52:23.771] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:23.771] | : Capture standard output: TRUE [08:52:23.771] | : Capture condition classes: 'condition' (excluding '') [08:52:23.771] | : Immediate condition classes: 'immediateCondition' [08:52:23.771] | : Lazy evaluation: FALSE [08:52:23.771] | : Local evaluation: TRUE [08:52:23.771] | : Asynchronous evaluation: TRUE [08:52:23.771] | : Early signaling: FALSE [08:52:23.771] | : Environment: R_GlobalEnv [08:52:23.771] | : State: 'running' [08:52:23.771] | : Resolved: TRUE [08:52:23.771] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-23 [08:52:23.771] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:23.771] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:23.771] | : Value: [08:52:23.771] | : Conditions captured: [08:52:23.783] | : Chunk #1 of 1 ... DONE [08:52:23.784] | : Launching 1 futures (chunks) ... DONE [08:52:23.784] | : Resolving 1 futures (chunks) ... [08:52:23.785] | : - Number of value chunks collected: 1 [08:52:23.785] | : Resolving 1 futures (chunks) ... DONE [08:52:23.785] | : Reducing values from 1 chunks ... [08:52:23.786] | : - Number of values collected after concatenation: 1 [08:52:23.786] | : - Number of values expected: 1 [08:52:23.786] | : Reducing values from 1 chunks ... DONE [08:52:23.786] | future_lapply() -> future_xapply() ... done [08:52:23.787] future_lapply() ... done - future_lapply(X, ...) - 'X' containing globals ... List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 [08:52:23.791] future_lapply() ... [08:52:23.792] | Globals in FUN(): [n=0] [08:52:23.792] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:23.793] | future_lapply() -> future_xapply() ... [08:52:23.794] | : Number of chunks: 2 [08:52:23.794] | : getGlobalsAndPackagesXApply() ... [08:52:23.794] | : . future.globals: TRUE [08:52:23.801] | : . globals found/used: [n=1] 'FUN' [08:52:23.801] | : . needed namespaces: [n=0] [08:52:23.802] | : . use_args: TRUE [08:52:23.802] | : . Getting '...' globals ... [08:52:23.803] | : . ' '...' content: [n=0] [08:52:23.803] | : . ' List of 1 [08:52:23.803] | : . ' $ ...: list() [08:52:23.803] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.803] | : . ' - attr(*, "where")=List of 1 [08:52:23.803] | : . ' ..$ ...: [08:52:23.803] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.803] | : . ' - attr(*, "resolved")= logi TRUE [08:52:23.803] | : . ' - attr(*, "total_size")= num NA [08:52:23.809] | : . Getting '...' globals ... done [08:52:23.809] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:23.809] | : . List of 2 [08:52:23.809] | : . $ ...future.FUN:function (f) [08:52:23.809] | : . $ ... : list() [08:52:23.809] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.809] | : . - attr(*, "where")=List of 2 [08:52:23.809] | : . ..$ ...future.FUN: [08:52:23.809] | : . ..$ ... : [08:52:23.809] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.809] | : . - attr(*, "resolved")= logi FALSE [08:52:23.809] | : . - attr(*, "total_size")= num 5165 [08:52:23.815] | : . Packages to be attached in all futures: [n=0] [08:52:23.815] | : getGlobalsAndPackagesXApply() ... done [08:52:23.816] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:23.816] | : List of 5 [08:52:23.816] | : $ ...future.FUN :function (f) [08:52:23.816] | : $ ... : list() [08:52:23.816] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:23.816] | : $ ...future.elements_ii : NULL [08:52:23.816] | : $ ...future.seeds_ii : NULL [08:52:23.816] | : $ ...future.globals.maxSize: NULL [08:52:23.816] | : - attr(*, "where")=List of 5 [08:52:23.816] | : ..$ ...future.FUN : [08:52:23.816] | : ..$ ... : [08:52:23.816] | : ..$ ...future.elements_ii : [08:52:23.816] | : ..$ ...future.seeds_ii : [08:52:23.816] | : ..$ ...future.globals.maxSize: [08:52:23.816] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:23.816] | : - attr(*, "resolved")= logi FALSE [08:52:23.816] | : - attr(*, "total_size")= num 5165 [08:52:23.824] | : Number of futures (= number of chunks): 2 [08:52:23.824] | : Launching 2 futures (chunks) ... [08:52:23.825] | : Chunk #1 of 2 ... [08:52:23.825] | : - Finding globals in 'X' for chunk #1 ... [08:52:23.844] | : + additional globals found: [n=2] 'a', 'b' [08:52:23.844] | : + additional namespaces needed: [n=0] [08:52:23.844] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:23.845] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [08:52:23.845] | : - seeds: [08:52:23.845] | : - All globals exported: [n=7] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize', 'a', 'b' [08:52:23.924] | : Created future: [08:52:23.924] | : MultisessionFuture: [08:52:23.924] | : Label: 'future_lapply-1' [08:52:23.924] | : Expression: [08:52:23.924] | : { [08:52:23.924] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:23.924] | : "# expression in do.call(), because function called uses '...' " [08:52:23.924] | : "# as a global variable " [08:52:23.924] | : do.call(function(...) { [08:52:23.924] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:23.924] | : "# without having an '...' argument. This means '...' is treated" [08:52:23.924] | : "# as a global variable. This may happen when FUN() is an " [08:52:23.924] | : "# anonymous function. " [08:52:23.924] | : "# " [08:52:23.924] | : "# If an anonymous function, we will make sure to restore the " [08:52:23.924] | : "# function environment of FUN() to the calling environment. " [08:52:23.924] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:23.924] | : "# global environment, which is where globals are written. " [08:52:23.924] | : penv <- env <- environment(...future.FUN) [08:52:23.924] | : repeat { [08:52:23.924] | : if (identical(env, globalenv()) || identical(env, [08:52:23.924] | : emptyenv())) [08:52:23.924] | : break [08:52:23.924] | : penv <- env [08:52:23.924] | : env <- parent.env(env) [08:52:23.924] | : } [08:52:23.924] | : if (identical(penv, globalenv())) { [08:52:23.924] | : environment(...future.FUN) <- environment() [08:52:23.924] | : } [08:52:23.924] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:23.924] | : !isNamespace(penv)) { [08:52:23.924] | : parent.env(penv) <- environment() [08:52:23.924] | : } [08:52:23.924] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:23.924] | : { [08:52:23.924] | : "# future.apply:::future_xapply(): preserve future option" [08:52:23.924] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:23.924] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:23.924] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:23.924] | : on.exit(options(oopts), add = TRUE) [08:52:23.924] | : } [08:52:23.924] | : { [08:52:23.924] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:23.924] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:23.924] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:23.924] | : { [08:52:23.924] | : ...future.FUN(...future.X_jj, ...) [08:52:23.924] | : } [08:52:23.924] | : }) [08:52:23.924] | : } [08:52:23.924] | : } [08:52:23.924] | : }, args = future.call.arguments) [08:52:23.924] | : } [08:52:23.924] | : 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, ...) [08:52:23.924] | : Packages: [08:52:23.924] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:23.924] | : Capture standard output: TRUE [08:52:23.924] | : Capture condition classes: 'condition' (excluding '') [08:52:23.924] | : Immediate condition classes: 'immediateCondition' [08:52:23.924] | : Lazy evaluation: FALSE [08:52:23.924] | : Local evaluation: TRUE [08:52:23.924] | : Asynchronous evaluation: TRUE [08:52:23.924] | : Early signaling: FALSE [08:52:23.924] | : Environment: R_GlobalEnv [08:52:23.924] | : State: 'running' [08:52:23.924] | : Resolved: TRUE [08:52:23.924] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-24 [08:52:23.924] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:23.924] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:23.924] | : Value: [08:52:23.924] | : Conditions captured: [08:52:23.937] | : Chunk #1 of 2 ... DONE [08:52:23.937] | : Chunk #2 of 2 ... [08:52:23.937] | : - Finding globals in 'X' for chunk #2 ... [08:52:23.954] | : + additional globals found: [n=2] 'a', 'b' [08:52:23.954] | : + additional namespaces needed: [n=1] 'tools' [08:52:23.955] | : - Finding globals in 'X' for chunk #2 ... DONE [08:52:23.955] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [08:52:23.955] | : - seeds: [08:52:23.955] | : - All globals exported: [n=7] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize', 'a', 'b' [08:52:24.041] | : Created future: [08:52:24.041] | : MultisessionFuture: [08:52:24.041] | : Label: 'future_lapply-2' [08:52:24.041] | : Expression: [08:52:24.041] | : { [08:52:24.041] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:24.041] | : "# expression in do.call(), because function called uses '...' " [08:52:24.041] | : "# as a global variable " [08:52:24.041] | : do.call(function(...) { [08:52:24.041] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:24.041] | : "# without having an '...' argument. This means '...' is treated" [08:52:24.041] | : "# as a global variable. This may happen when FUN() is an " [08:52:24.041] | : "# anonymous function. " [08:52:24.041] | : "# " [08:52:24.041] | : "# If an anonymous function, we will make sure to restore the " [08:52:24.041] | : "# function environment of FUN() to the calling environment. " [08:52:24.041] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:24.041] | : "# global environment, which is where globals are written. " [08:52:24.041] | : penv <- env <- environment(...future.FUN) [08:52:24.041] | : repeat { [08:52:24.041] | : if (identical(env, globalenv()) || identical(env, [08:52:24.041] | : emptyenv())) [08:52:24.041] | : break [08:52:24.041] | : penv <- env [08:52:24.041] | : env <- parent.env(env) [08:52:24.041] | : } [08:52:24.041] | : if (identical(penv, globalenv())) { [08:52:24.041] | : environment(...future.FUN) <- environment() [08:52:24.041] | : } [08:52:24.041] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:24.041] | : !isNamespace(penv)) { [08:52:24.041] | : parent.env(penv) <- environment() [08:52:24.041] | : } [08:52:24.041] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:24.041] | : { [08:52:24.041] | : "# future.apply:::future_xapply(): preserve future option" [08:52:24.041] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:24.041] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:24.041] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:24.041] | : on.exit(options(oopts), add = TRUE) [08:52:24.041] | : } [08:52:24.041] | : { [08:52:24.041] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:24.041] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:24.041] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:24.041] | : { [08:52:24.041] | : ...future.FUN(...future.X_jj, ...) [08:52:24.041] | : } [08:52:24.041] | : }) [08:52:24.041] | : } [08:52:24.041] | : } [08:52:24.041] | : }, args = future.call.arguments) [08:52:24.041] | : } [08:52:24.041] | : Globals: 7 objects totaling 6.18 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, ...) [08:52:24.041] | : Packages: 1 packages ('tools') [08:52:24.041] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:24.041] | : Capture standard output: TRUE [08:52:24.041] | : Capture condition classes: 'condition' (excluding '') [08:52:24.041] | : Immediate condition classes: 'immediateCondition' [08:52:24.041] | : Lazy evaluation: FALSE [08:52:24.041] | : Local evaluation: TRUE [08:52:24.041] | : Asynchronous evaluation: TRUE [08:52:24.041] | : Early signaling: FALSE [08:52:24.041] | : Environment: R_GlobalEnv [08:52:24.041] | : State: 'running' [08:52:24.041] | : Resolved: TRUE [08:52:24.041] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-25 [08:52:24.041] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:24.041] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:24.041] | : Value: [08:52:24.041] | : Conditions captured: [08:52:24.056] | : Chunk #2 of 2 ... DONE [08:52:24.057] | : Launching 2 futures (chunks) ... DONE [08:52:24.057] | : Resolving 2 futures (chunks) ... [08:52:24.058] | : - Number of value chunks collected: 2 [08:52:24.058] | : Resolving 2 futures (chunks) ... DONE [08:52:24.058] | : Reducing values from 2 chunks ... [08:52:24.058] | : - Number of values collected after concatenation: 4 [08:52:24.059] | : - Number of values expected: 4 [08:52:24.059] | : Reducing values from 2 chunks ... DONE [08:52:24.059] | future_lapply() -> future_xapply() ... done [08:52:24.059] future_lapply() ... done List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 - future_lapply(X, ...) - '{ a <- a + 1; a }' ... [08:52:24.065] future_lapply() ... [08:52:24.067] | Globals in FUN(): [n=4] '{', '<-', 'a', '+' [08:52:24.067] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:24.067] | future_lapply() -> future_xapply() ... [08:52:24.068] | : Number of chunks: 1 [08:52:24.068] | : getGlobalsAndPackagesXApply() ... [08:52:24.068] | : . future.globals: TRUE [08:52:24.083] | : . globals found/used: [n=2] 'FUN', 'a' [08:52:24.083] | : . needed namespaces: [n=0] [08:52:24.084] | : . use_args: TRUE [08:52:24.084] | : . Getting '...' globals ... [08:52:24.085] | : . ' '...' content: [n=0] [08:52:24.085] | : . ' List of 1 [08:52:24.085] | : . ' $ ...: list() [08:52:24.085] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.085] | : . ' - attr(*, "where")=List of 1 [08:52:24.085] | : . ' ..$ ...: [08:52:24.085] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.085] | : . ' - attr(*, "resolved")= logi TRUE [08:52:24.085] | : . ' - attr(*, "total_size")= num NA [08:52:24.090] | : . Getting '...' globals ... done [08:52:24.091] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [08:52:24.091] | : . List of 3 [08:52:24.091] | : . $ ...future.FUN:function (ii) [08:52:24.091] | : . $ a : num 1 [08:52:24.091] | : . $ ... : list() [08:52:24.091] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.091] | : . - attr(*, "where")=List of 3 [08:52:24.091] | : . ..$ ...future.FUN: [08:52:24.091] | : . ..$ a : [08:52:24.091] | : . ..$ ... : [08:52:24.091] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.091] | : . - attr(*, "resolved")= logi FALSE [08:52:24.091] | : . - attr(*, "total_size")= num 4124 [08:52:24.098] | : . Packages to be attached in all futures: [n=0] [08:52:24.099] | : getGlobalsAndPackagesXApply() ... done [08:52:24.099] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.099] | : List of 6 [08:52:24.099] | : $ ...future.FUN :function (ii) [08:52:24.099] | : $ a : num 1 [08:52:24.099] | : $ ... : list() [08:52:24.099] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.099] | : $ ...future.elements_ii : NULL [08:52:24.099] | : $ ...future.seeds_ii : NULL [08:52:24.099] | : $ ...future.globals.maxSize: NULL [08:52:24.099] | : - attr(*, "where")=List of 6 [08:52:24.099] | : ..$ ...future.FUN : [08:52:24.099] | : ..$ a : [08:52:24.099] | : ..$ ... : [08:52:24.099] | : ..$ ...future.elements_ii : [08:52:24.099] | : ..$ ...future.seeds_ii : [08:52:24.099] | : ..$ ...future.globals.maxSize: [08:52:24.099] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.099] | : - attr(*, "resolved")= logi FALSE [08:52:24.099] | : - attr(*, "total_size")= num 4124 [08:52:24.109] | : Number of futures (= number of chunks): 1 [08:52:24.109] | : Launching 1 futures (chunks) ... [08:52:24.109] | : Chunk #1 of 1 ... [08:52:24.110] | : - Finding globals in 'X' for chunk #1 ... [08:52:24.110] | : + additional globals found: [n=0] [08:52:24.111] | : + additional namespaces needed: [n=0] [08:52:24.111] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:24.111] | : - seeds: [08:52:24.111] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.198] | : Created future: [08:52:24.198] | : MultisessionFuture: [08:52:24.198] | : Label: 'future_lapply-1' [08:52:24.198] | : Expression: [08:52:24.198] | : { [08:52:24.198] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:24.198] | : "# expression in do.call(), because function called uses '...' " [08:52:24.198] | : "# as a global variable " [08:52:24.198] | : do.call(function(...) { [08:52:24.198] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:24.198] | : "# without having an '...' argument. This means '...' is treated" [08:52:24.198] | : "# as a global variable. This may happen when FUN() is an " [08:52:24.198] | : "# anonymous function. " [08:52:24.198] | : "# " [08:52:24.198] | : "# If an anonymous function, we will make sure to restore the " [08:52:24.198] | : "# function environment of FUN() to the calling environment. " [08:52:24.198] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:24.198] | : "# global environment, which is where globals are written. " [08:52:24.198] | : penv <- env <- environment(...future.FUN) [08:52:24.198] | : repeat { [08:52:24.198] | : if (identical(env, globalenv()) || identical(env, [08:52:24.198] | : emptyenv())) [08:52:24.198] | : break [08:52:24.198] | : penv <- env [08:52:24.198] | : env <- parent.env(env) [08:52:24.198] | : } [08:52:24.198] | : if (identical(penv, globalenv())) { [08:52:24.198] | : environment(...future.FUN) <- environment() [08:52:24.198] | : } [08:52:24.198] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:24.198] | : !isNamespace(penv)) { [08:52:24.198] | : parent.env(penv) <- environment() [08:52:24.198] | : } [08:52:24.198] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:24.198] | : { [08:52:24.198] | : "# future.apply:::future_xapply(): preserve future option" [08:52:24.198] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:24.198] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:24.198] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:24.198] | : on.exit(options(oopts), add = TRUE) [08:52:24.198] | : } [08:52:24.198] | : { [08:52:24.198] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:24.198] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:24.198] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:24.198] | : { [08:52:24.198] | : ...future.FUN(...future.X_jj, ...) [08:52:24.198] | : } [08:52:24.198] | : }) [08:52:24.198] | : } [08:52:24.198] | : } [08:52:24.198] | : }, args = future.call.arguments) [08:52:24.198] | : } [08:52:24.198] | : 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, ...) [08:52:24.198] | : Packages: [08:52:24.198] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:24.198] | : Capture standard output: TRUE [08:52:24.198] | : Capture condition classes: 'condition' (excluding '') [08:52:24.198] | : Immediate condition classes: 'immediateCondition' [08:52:24.198] | : Lazy evaluation: FALSE [08:52:24.198] | : Local evaluation: TRUE [08:52:24.198] | : Asynchronous evaluation: TRUE [08:52:24.198] | : Early signaling: FALSE [08:52:24.198] | : Environment: R_GlobalEnv [08:52:24.198] | : State: 'running' [08:52:24.198] | : Resolved: TRUE [08:52:24.198] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-26 [08:52:24.198] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:24.198] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:24.198] | : Value: [08:52:24.198] | : Conditions captured: [08:52:24.207] | : Chunk #1 of 1 ... DONE [08:52:24.208] | : Launching 1 futures (chunks) ... DONE [08:52:24.208] | : Resolving 1 futures (chunks) ... [08:52:24.209] | : - Number of value chunks collected: 1 [08:52:24.209] | : Resolving 1 futures (chunks) ... DONE [08:52:24.210] | : Reducing values from 1 chunks ... [08:52:24.210] | : - Number of values collected after concatenation: 1 [08:52:24.210] | : - Number of values expected: 1 [08:52:24.211] | : Reducing values from 1 chunks ... DONE [08:52:24.211] | future_lapply() -> future_xapply() ... done [08:52:24.211] future_lapply() ... done - future_lapply(X, ...) - '{ a; a <- a + 1 }' ... [08:52:24.212] future_lapply() ... [08:52:24.214] | Globals in FUN(): [n=4] '{', 'a', '<-', '+' [08:52:24.214] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:24.214] | future_lapply() -> future_xapply() ... [08:52:24.215] | : Number of chunks: 1 [08:52:24.215] | : getGlobalsAndPackagesXApply() ... [08:52:24.216] | : . future.globals: TRUE [08:52:24.230] | : . globals found/used: [n=2] 'FUN', 'a' [08:52:24.231] | : . needed namespaces: [n=0] [08:52:24.233] | : . use_args: TRUE [08:52:24.233] | : . Getting '...' globals ... [08:52:24.234] | : . ' '...' content: [n=0] [08:52:24.234] | : . ' List of 1 [08:52:24.234] | : . ' $ ...: list() [08:52:24.234] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.234] | : . ' - attr(*, "where")=List of 1 [08:52:24.234] | : . ' ..$ ...: [08:52:24.234] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.234] | : . ' - attr(*, "resolved")= logi TRUE [08:52:24.234] | : . ' - attr(*, "total_size")= num NA [08:52:24.238] | : . Getting '...' globals ... done [08:52:24.238] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [08:52:24.238] | : . List of 3 [08:52:24.238] | : . $ ...future.FUN:function (ii) [08:52:24.238] | : . $ a : num 1 [08:52:24.238] | : . $ ... : list() [08:52:24.238] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.238] | : . - attr(*, "where")=List of 3 [08:52:24.238] | : . ..$ ...future.FUN: [08:52:24.238] | : . ..$ a : [08:52:24.238] | : . ..$ ... : [08:52:24.238] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.238] | : . - attr(*, "resolved")= logi FALSE [08:52:24.238] | : . - attr(*, "total_size")= num 4140 [08:52:24.242] | : . Packages to be attached in all futures: [n=0] [08:52:24.242] | : getGlobalsAndPackagesXApply() ... done [08:52:24.242] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.243] | : List of 6 [08:52:24.243] | : $ ...future.FUN :function (ii) [08:52:24.243] | : $ a : num 1 [08:52:24.243] | : $ ... : list() [08:52:24.243] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.243] | : $ ...future.elements_ii : NULL [08:52:24.243] | : $ ...future.seeds_ii : NULL [08:52:24.243] | : $ ...future.globals.maxSize: NULL [08:52:24.243] | : - attr(*, "where")=List of 6 [08:52:24.243] | : ..$ ...future.FUN : [08:52:24.243] | : ..$ a : [08:52:24.243] | : ..$ ... : [08:52:24.243] | : ..$ ...future.elements_ii : [08:52:24.243] | : ..$ ...future.seeds_ii : [08:52:24.243] | : ..$ ...future.globals.maxSize: [08:52:24.243] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.243] | : - attr(*, "resolved")= logi FALSE [08:52:24.243] | : - attr(*, "total_size")= num 4140 [08:52:24.253] | : Number of futures (= number of chunks): 1 [08:52:24.253] | : Launching 1 futures (chunks) ... [08:52:24.254] | : Chunk #1 of 1 ... [08:52:24.254] | : - Finding globals in 'X' for chunk #1 ... [08:52:24.255] | : + additional globals found: [n=0] [08:52:24.255] | : + additional namespaces needed: [n=0] [08:52:24.255] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:24.256] | : - seeds: [08:52:24.256] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.334] | : Created future: [08:52:24.335] | : MultisessionFuture: [08:52:24.335] | : Label: 'future_lapply-1' [08:52:24.335] | : Expression: [08:52:24.335] | : { [08:52:24.335] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:24.335] | : "# expression in do.call(), because function called uses '...' " [08:52:24.335] | : "# as a global variable " [08:52:24.335] | : do.call(function(...) { [08:52:24.335] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:24.335] | : "# without having an '...' argument. This means '...' is treated" [08:52:24.335] | : "# as a global variable. This may happen when FUN() is an " [08:52:24.335] | : "# anonymous function. " [08:52:24.335] | : "# " [08:52:24.335] | : "# If an anonymous function, we will make sure to restore the " [08:52:24.335] | : "# function environment of FUN() to the calling environment. " [08:52:24.335] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:24.335] | : "# global environment, which is where globals are written. " [08:52:24.335] | : penv <- env <- environment(...future.FUN) [08:52:24.335] | : repeat { [08:52:24.335] | : if (identical(env, globalenv()) || identical(env, [08:52:24.335] | : emptyenv())) [08:52:24.335] | : break [08:52:24.335] | : penv <- env [08:52:24.335] | : env <- parent.env(env) [08:52:24.335] | : } [08:52:24.335] | : if (identical(penv, globalenv())) { [08:52:24.335] | : environment(...future.FUN) <- environment() [08:52:24.335] | : } [08:52:24.335] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:24.335] | : !isNamespace(penv)) { [08:52:24.335] | : parent.env(penv) <- environment() [08:52:24.335] | : } [08:52:24.335] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:24.335] | : { [08:52:24.335] | : "# future.apply:::future_xapply(): preserve future option" [08:52:24.335] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:24.335] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:24.335] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:24.335] | : on.exit(options(oopts), add = TRUE) [08:52:24.335] | : } [08:52:24.335] | : { [08:52:24.335] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:24.335] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:24.335] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:24.335] | : { [08:52:24.335] | : ...future.FUN(...future.X_jj, ...) [08:52:24.335] | : } [08:52:24.335] | : }) [08:52:24.335] | : } [08:52:24.335] | : } [08:52:24.335] | : }, args = future.call.arguments) [08:52:24.335] | : } [08:52:24.335] | : Globals: 6 objects totaling 4.30 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, ...) [08:52:24.335] | : Packages: [08:52:24.335] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:24.335] | : Capture standard output: TRUE [08:52:24.335] | : Capture condition classes: 'condition' (excluding '') [08:52:24.335] | : Immediate condition classes: 'immediateCondition' [08:52:24.335] | : Lazy evaluation: FALSE [08:52:24.335] | : Local evaluation: TRUE [08:52:24.335] | : Asynchronous evaluation: TRUE [08:52:24.335] | : Early signaling: FALSE [08:52:24.335] | : Environment: R_GlobalEnv [08:52:24.335] | : State: 'running' [08:52:24.335] | : Resolved: TRUE [08:52:24.335] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-27 [08:52:24.335] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:24.335] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:24.335] | : Value: [08:52:24.335] | : Conditions captured: [08:52:24.348] | : Chunk #1 of 1 ... DONE [08:52:24.349] | : Launching 1 futures (chunks) ... DONE [08:52:24.349] | : Resolving 1 futures (chunks) ... [08:52:24.350] | : - Number of value chunks collected: 1 [08:52:24.350] | : Resolving 1 futures (chunks) ... DONE [08:52:24.351] | : Reducing values from 1 chunks ... [08:52:24.351] | : - Number of values collected after concatenation: 1 [08:52:24.351] | : - Number of values expected: 1 [08:52:24.352] | : Reducing values from 1 chunks ... DONE [08:52:24.352] | future_lapply() -> future_xapply() ... done [08:52:24.352] future_lapply() ... done - future_lapply(..., future.globals = ) ... [08:52:24.353] future_lapply() ... [08:52:24.354] | Globals in FUN(): [n=1] 'a' [08:52:24.354] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:24.354] | future_lapply() -> future_xapply() ... [08:52:24.355] | : Number of chunks: 1 [08:52:24.355] | : getGlobalsAndPackagesXApply() ... [08:52:24.355] | : . future.globals: with names 'a' [08:52:24.356] | : . use_args: TRUE [08:52:24.356] | : . Getting '...' globals ... [08:52:24.357] | : . ' '...' content: [n=0] [08:52:24.358] | : . ' List of 1 [08:52:24.358] | : . ' $ ...: list() [08:52:24.358] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.358] | : . ' - attr(*, "where")=List of 1 [08:52:24.358] | : . ' ..$ ...: [08:52:24.358] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.358] | : . ' - attr(*, "resolved")= logi TRUE [08:52:24.358] | : . ' - attr(*, "total_size")= num NA [08:52:24.363] | : . Getting '...' globals ... done [08:52:24.364] | : . Globals to be used in all futures (chunks): [n=3] 'a', '...future.FUN', '...' [08:52:24.364] | : . List of 3 [08:52:24.364] | : . $ a : num 42 [08:52:24.364] | : . $ ...future.FUN:function (x) [08:52:24.364] | : . $ ... : list() [08:52:24.364] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.364] | : . - attr(*, "where")=List of 3 [08:52:24.364] | : . ..$ a : [08:52:24.364] | : . ..$ ...future.FUN: [08:52:24.364] | : . ..$ ... : [08:52:24.364] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.364] | : . - attr(*, "resolved")= logi FALSE [08:52:24.364] | : . - attr(*, "total_size")= num NA [08:52:24.369] | : . Packages to be attached in all futures: [n=0] [08:52:24.369] | : getGlobalsAndPackagesXApply() ... done [08:52:24.370] | : Globals pass to each chunk: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.370] | : List of 6 [08:52:24.370] | : $ a : num 42 [08:52:24.370] | : $ ...future.FUN :function (x) [08:52:24.370] | : $ ... : list() [08:52:24.370] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.370] | : $ ...future.elements_ii : NULL [08:52:24.370] | : $ ...future.seeds_ii : NULL [08:52:24.370] | : $ ...future.globals.maxSize: NULL [08:52:24.370] | : - attr(*, "where")=List of 6 [08:52:24.370] | : ..$ a : [08:52:24.370] | : ..$ ...future.FUN : [08:52:24.370] | : ..$ ... : [08:52:24.370] | : ..$ ...future.elements_ii : [08:52:24.370] | : ..$ ...future.seeds_ii : [08:52:24.370] | : ..$ ...future.globals.maxSize: [08:52:24.370] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.370] | : - attr(*, "resolved")= logi FALSE [08:52:24.370] | : - attr(*, "total_size")= num NA [08:52:24.376] | : Number of futures (= number of chunks): 1 [08:52:24.376] | : Launching 1 futures (chunks) ... [08:52:24.376] | : Chunk #1 of 1 ... [08:52:24.376] | : - seeds: [08:52:24.376] | : - All globals exported: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.454] | : Created future: [08:52:24.455] | : MultisessionFuture: [08:52:24.455] | : Label: 'future_lapply-1' [08:52:24.455] | : Expression: [08:52:24.455] | : { [08:52:24.455] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:24.455] | : "# expression in do.call(), because function called uses '...' " [08:52:24.455] | : "# as a global variable " [08:52:24.455] | : do.call(function(...) { [08:52:24.455] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:24.455] | : "# without having an '...' argument. This means '...' is treated" [08:52:24.455] | : "# as a global variable. This may happen when FUN() is an " [08:52:24.455] | : "# anonymous function. " [08:52:24.455] | : "# " [08:52:24.455] | : "# If an anonymous function, we will make sure to restore the " [08:52:24.455] | : "# function environment of FUN() to the calling environment. " [08:52:24.455] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:24.455] | : "# global environment, which is where globals are written. " [08:52:24.455] | : penv <- env <- environment(...future.FUN) [08:52:24.455] | : repeat { [08:52:24.455] | : if (identical(env, globalenv()) || identical(env, [08:52:24.455] | : emptyenv())) [08:52:24.455] | : break [08:52:24.455] | : penv <- env [08:52:24.455] | : env <- parent.env(env) [08:52:24.455] | : } [08:52:24.455] | : if (identical(penv, globalenv())) { [08:52:24.455] | : environment(...future.FUN) <- environment() [08:52:24.455] | : } [08:52:24.455] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:24.455] | : !isNamespace(penv)) { [08:52:24.455] | : parent.env(penv) <- environment() [08:52:24.455] | : } [08:52:24.455] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:24.455] | : { [08:52:24.455] | : "# future.apply:::future_xapply(): preserve future option" [08:52:24.455] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:24.455] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:24.455] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:24.455] | : on.exit(options(oopts), add = TRUE) [08:52:24.455] | : } [08:52:24.455] | : { [08:52:24.455] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:24.455] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:24.455] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:24.455] | : { [08:52:24.455] | : ...future.FUN(...future.X_jj, ...) [08:52:24.455] | : } [08:52:24.455] | : }) [08:52:24.455] | : } [08:52:24.455] | : } [08:52:24.455] | : }, args = future.call.arguments) [08:52:24.455] | : } [08:52:24.455] | : Globals: 6 objects totaling 4.16 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, ...) [08:52:24.455] | : Packages: [08:52:24.455] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:24.455] | : Capture standard output: TRUE [08:52:24.455] | : Capture condition classes: 'condition' (excluding '') [08:52:24.455] | : Immediate condition classes: 'immediateCondition' [08:52:24.455] | : Lazy evaluation: FALSE [08:52:24.455] | : Local evaluation: TRUE [08:52:24.455] | : Asynchronous evaluation: TRUE [08:52:24.455] | : Early signaling: FALSE [08:52:24.455] | : Environment: R_GlobalEnv [08:52:24.455] | : State: 'running' [08:52:24.455] | : Resolved: TRUE [08:52:24.455] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-28 [08:52:24.455] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:24.455] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:24.455] | : Value: [08:52:24.455] | : Conditions captured: [08:52:24.465] | : Chunk #1 of 1 ... DONE [08:52:24.465] | : Launching 1 futures (chunks) ... DONE [08:52:24.466] | : Resolving 1 futures (chunks) ... [08:52:24.467] | : - Number of value chunks collected: 1 [08:52:24.467] | : Resolving 1 futures (chunks) ... DONE [08:52:24.468] | : Reducing values from 1 chunks ... [08:52:24.468] | : - Number of values collected after concatenation: 1 [08:52:24.468] | : - Number of values expected: 1 [08:52:24.469] | : Reducing values from 1 chunks ... DONE [08:52:24.469] | future_lapply() -> future_xapply() ... done [08:52:24.469] 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) [08:52:24.472] future_lapply() ... [08:52:24.473] | Globals in FUN(): [n=0] [08:52:24.473] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:24.474] | future_lapply() -> future_xapply() ... [08:52:24.475] | : Number of chunks: 2 [08:52:24.475] | : getGlobalsAndPackagesXApply() ... [08:52:24.475] | : . future.globals: TRUE [08:52:24.482] | : . globals found/used: [n=1] 'FUN' [08:52:24.482] | : . needed namespaces: [n=0] [08:52:24.482] | : . use_args: TRUE [08:52:24.483] | : . Getting '...' globals ... [08:52:24.484] | : . ' '...' content: [n=0] [08:52:24.484] | : . ' List of 1 [08:52:24.484] | : . ' $ ...: list() [08:52:24.484] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.484] | : . ' - attr(*, "where")=List of 1 [08:52:24.484] | : . ' ..$ ...: [08:52:24.484] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.484] | : . ' - attr(*, "resolved")= logi TRUE [08:52:24.484] | : . ' - attr(*, "total_size")= num NA [08:52:24.489] | : . Getting '...' globals ... done [08:52:24.490] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:24.490] | : . List of 2 [08:52:24.490] | : . $ ...future.FUN:function (y) [08:52:24.490] | : . $ ... : list() [08:52:24.490] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.490] | : . - attr(*, "where")=List of 2 [08:52:24.490] | : . ..$ ...future.FUN: [08:52:24.490] | : . ..$ ... : [08:52:24.490] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.490] | : . - attr(*, "resolved")= logi FALSE [08:52:24.490] | : . - attr(*, "total_size")= num 3716 [08:52:24.496] | : . Packages to be attached in all futures: [n=0] [08:52:24.497] | : getGlobalsAndPackagesXApply() ... done [08:52:24.497] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.498] | : List of 5 [08:52:24.498] | : $ ...future.FUN :function (y) [08:52:24.498] | : $ ... : list() [08:52:24.498] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.498] | : $ ...future.elements_ii : NULL [08:52:24.498] | : $ ...future.seeds_ii : NULL [08:52:24.498] | : $ ...future.globals.maxSize: NULL [08:52:24.498] | : - attr(*, "where")=List of 5 [08:52:24.498] | : ..$ ...future.FUN : [08:52:24.498] | : ..$ ... : [08:52:24.498] | : ..$ ...future.elements_ii : [08:52:24.498] | : ..$ ...future.seeds_ii : [08:52:24.498] | : ..$ ...future.globals.maxSize: [08:52:24.498] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.498] | : - attr(*, "resolved")= logi FALSE [08:52:24.498] | : - attr(*, "total_size")= num 3716 [08:52:24.507] | : Number of futures (= number of chunks): 2 [08:52:24.508] | : Launching 2 futures (chunks) ... [08:52:24.508] | : Chunk #1 of 2 ... [08:52:24.509] | : - Finding globals in 'X' for chunk #1 ... [08:52:24.510] | : + additional globals found: [n=0] [08:52:24.510] | : + additional namespaces needed: [n=0] [08:52:24.510] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:24.511] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [08:52:24.511] | : - seeds: [08:52:24.511] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.616] | : Created future: [08:52:24.616] | : MultisessionFuture: [08:52:24.616] | : Label: 'future_lapply-1' [08:52:24.616] | : Expression: [08:52:24.616] | : { [08:52:24.616] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:24.616] | : "# expression in do.call(), because function called uses '...' " [08:52:24.616] | : "# as a global variable " [08:52:24.616] | : do.call(function(...) { [08:52:24.616] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:24.616] | : "# without having an '...' argument. This means '...' is treated" [08:52:24.616] | : "# as a global variable. This may happen when FUN() is an " [08:52:24.616] | : "# anonymous function. " [08:52:24.616] | : "# " [08:52:24.616] | : "# If an anonymous function, we will make sure to restore the " [08:52:24.616] | : "# function environment of FUN() to the calling environment. " [08:52:24.616] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:24.616] | : "# global environment, which is where globals are written. " [08:52:24.616] | : penv <- env <- environment(...future.FUN) [08:52:24.616] | : repeat { [08:52:24.616] | : if (identical(env, globalenv()) || identical(env, [08:52:24.616] | : emptyenv())) [08:52:24.616] | : break [08:52:24.616] | : penv <- env [08:52:24.616] | : env <- parent.env(env) [08:52:24.616] | : } [08:52:24.616] | : if (identical(penv, globalenv())) { [08:52:24.616] | : environment(...future.FUN) <- environment() [08:52:24.616] | : } [08:52:24.616] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:24.616] | : !isNamespace(penv)) { [08:52:24.616] | : parent.env(penv) <- environment() [08:52:24.616] | : } [08:52:24.616] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:24.616] | : { [08:52:24.616] | : "# future.apply:::future_xapply(): preserve future option" [08:52:24.616] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:24.616] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:24.616] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:24.616] | : on.exit(options(oopts), add = TRUE) [08:52:24.616] | : } [08:52:24.616] | : { [08:52:24.616] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:24.616] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:24.616] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:24.616] | : { [08:52:24.616] | : ...future.FUN(...future.X_jj, ...) [08:52:24.616] | : } [08:52:24.616] | : }) [08:52:24.616] | : } [08:52:24.616] | : } [08:52:24.616] | : }, args = future.call.arguments) [08:52:24.616] | : } [08:52:24.616] | : 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) [08:52:24.616] | : Packages: [08:52:24.616] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:24.616] | : Capture standard output: TRUE [08:52:24.616] | : Capture condition classes: 'condition' (excluding '') [08:52:24.616] | : Immediate condition classes: 'immediateCondition' [08:52:24.616] | : Lazy evaluation: FALSE [08:52:24.616] | : Local evaluation: TRUE [08:52:24.616] | : Asynchronous evaluation: TRUE [08:52:24.616] | : Early signaling: FALSE [08:52:24.616] | : Environment: 0x000001960a58aa58 [08:52:24.616] | : State: 'running' [08:52:24.616] | : Resolved: TRUE [08:52:24.616] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-29 [08:52:24.616] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:24.616] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:24.616] | : Value: [08:52:24.616] | : Conditions captured: [08:52:24.628] | : Chunk #1 of 2 ... DONE [08:52:24.628] | : Chunk #2 of 2 ... [08:52:24.629] | : - Finding globals in 'X' for chunk #2 ... [08:52:24.630] | : + additional globals found: [n=0] [08:52:24.630] | : + additional namespaces needed: [n=0] [08:52:24.630] | : - Finding globals in 'X' for chunk #2 ... DONE [08:52:24.631] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [08:52:24.631] | : - seeds: [08:52:24.632] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.725] | : Created future: [08:52:24.725] | : MultisessionFuture: [08:52:24.725] | : Label: 'future_lapply-2' [08:52:24.725] | : Expression: [08:52:24.725] | : { [08:52:24.725] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:24.725] | : "# expression in do.call(), because function called uses '...' " [08:52:24.725] | : "# as a global variable " [08:52:24.725] | : do.call(function(...) { [08:52:24.725] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:24.725] | : "# without having an '...' argument. This means '...' is treated" [08:52:24.725] | : "# as a global variable. This may happen when FUN() is an " [08:52:24.725] | : "# anonymous function. " [08:52:24.725] | : "# " [08:52:24.725] | : "# If an anonymous function, we will make sure to restore the " [08:52:24.725] | : "# function environment of FUN() to the calling environment. " [08:52:24.725] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:24.725] | : "# global environment, which is where globals are written. " [08:52:24.725] | : penv <- env <- environment(...future.FUN) [08:52:24.725] | : repeat { [08:52:24.725] | : if (identical(env, globalenv()) || identical(env, [08:52:24.725] | : emptyenv())) [08:52:24.725] | : break [08:52:24.725] | : penv <- env [08:52:24.725] | : env <- parent.env(env) [08:52:24.725] | : } [08:52:24.725] | : if (identical(penv, globalenv())) { [08:52:24.725] | : environment(...future.FUN) <- environment() [08:52:24.725] | : } [08:52:24.725] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:24.725] | : !isNamespace(penv)) { [08:52:24.725] | : parent.env(penv) <- environment() [08:52:24.725] | : } [08:52:24.725] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:24.725] | : { [08:52:24.725] | : "# future.apply:::future_xapply(): preserve future option" [08:52:24.725] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:24.725] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:24.725] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:24.725] | : on.exit(options(oopts), add = TRUE) [08:52:24.725] | : } [08:52:24.725] | : { [08:52:24.725] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:24.725] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:24.725] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:24.725] | : { [08:52:24.725] | : ...future.FUN(...future.X_jj, ...) [08:52:24.725] | : } [08:52:24.725] | : }) [08:52:24.725] | : } [08:52:24.725] | : } [08:52:24.725] | : }, args = future.call.arguments) [08:52:24.725] | : } [08:52:24.725] | : 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) [08:52:24.725] | : Packages: [08:52:24.725] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:24.725] | : Capture standard output: TRUE [08:52:24.725] | : Capture condition classes: 'condition' (excluding '') [08:52:24.725] | : Immediate condition classes: 'immediateCondition' [08:52:24.725] | : Lazy evaluation: FALSE [08:52:24.725] | : Local evaluation: TRUE [08:52:24.725] | : Asynchronous evaluation: TRUE [08:52:24.725] | : Early signaling: FALSE [08:52:24.725] | : Environment: 0x000001960a58aa58 [08:52:24.725] | : State: 'running' [08:52:24.725] | : Resolved: TRUE [08:52:24.725] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-30 [08:52:24.725] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:24.725] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:24.725] | : Value: [08:52:24.725] | : Conditions captured: [08:52:24.735] | : Chunk #2 of 2 ... DONE [08:52:24.735] | : Launching 2 futures (chunks) ... DONE [08:52:24.735] | : Resolving 2 futures (chunks) ... [08:52:24.737] | : - Number of value chunks collected: 2 [08:52:24.737] | : Resolving 2 futures (chunks) ... DONE [08:52:24.738] | : Reducing values from 2 chunks ... [08:52:24.738] | : - Number of values collected after concatenation: 2 [08:52:24.738] | : - Number of values expected: 2 [08:52:24.739] | : Reducing values from 2 chunks ... DONE [08:52:24.739] | future_lapply() -> future_xapply() ... done [08:52:24.739] 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)) [08:52:24.741] future_lapply() ... [08:52:24.743] | Globals in FUN(): [n=0] [08:52:24.743] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:24.743] | future_lapply() -> future_xapply() ... [08:52:24.744] | : Number of chunks: 2 [08:52:24.745] | : getGlobalsAndPackagesXApply() ... [08:52:24.745] | : . future.globals: TRUE [08:52:24.756] | : . globals found/used: [n=1] 'FUN' [08:52:24.756] | : . needed namespaces: [n=0] [08:52:24.757] | : . use_args: TRUE [08:52:24.757] | : . Getting '...' globals ... [08:52:24.758] | : . ' '...' content: [n=0] [08:52:24.759] | : . ' List of 1 [08:52:24.759] | : . ' $ ...: list() [08:52:24.759] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.759] | : . ' - attr(*, "where")=List of 1 [08:52:24.759] | : . ' ..$ ...: [08:52:24.759] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.759] | : . ' - attr(*, "resolved")= logi TRUE [08:52:24.759] | : . ' - attr(*, "total_size")= num NA [08:52:24.764] | : . Getting '...' globals ... done [08:52:24.765] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:24.765] | : . List of 2 [08:52:24.765] | : . $ ...future.FUN:function (y) [08:52:24.765] | : . $ ... : list() [08:52:24.765] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.765] | : . - attr(*, "where")=List of 2 [08:52:24.765] | : . ..$ ...future.FUN: [08:52:24.765] | : . ..$ ... : [08:52:24.765] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.765] | : . - attr(*, "resolved")= logi FALSE [08:52:24.765] | : . - attr(*, "total_size")= num 3904 [08:52:24.771] | : . Packages to be attached in all futures: [n=0] [08:52:24.772] | : getGlobalsAndPackagesXApply() ... done [08:52:24.772] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.772] | : List of 5 [08:52:24.772] | : $ ...future.FUN :function (y) [08:52:24.772] | : $ ... : list() [08:52:24.772] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:24.772] | : $ ...future.elements_ii : NULL [08:52:24.772] | : $ ...future.seeds_ii : NULL [08:52:24.772] | : $ ...future.globals.maxSize: NULL [08:52:24.772] | : - attr(*, "where")=List of 5 [08:52:24.772] | : ..$ ...future.FUN : [08:52:24.772] | : ..$ ... : [08:52:24.772] | : ..$ ...future.elements_ii : [08:52:24.772] | : ..$ ...future.seeds_ii : [08:52:24.772] | : ..$ ...future.globals.maxSize: [08:52:24.772] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:24.772] | : - attr(*, "resolved")= logi FALSE [08:52:24.772] | : - attr(*, "total_size")= num 3904 [08:52:24.782] | : Number of futures (= number of chunks): 2 [08:52:24.782] | : Launching 2 futures (chunks) ... [08:52:24.782] | : Chunk #1 of 2 ... [08:52:24.783] | : - Finding globals in 'X' for chunk #1 ... [08:52:24.784] | : + additional globals found: [n=0] [08:52:24.784] | : + additional namespaces needed: [n=0] [08:52:24.784] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:24.785] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [08:52:24.785] | : - seeds: [08:52:24.785] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.877] | : Created future: [08:52:24.878] | : MultisessionFuture: [08:52:24.878] | : Label: 'future_lapply-1' [08:52:24.878] | : Expression: [08:52:24.878] | : { [08:52:24.878] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:24.878] | : "# expression in do.call(), because function called uses '...' " [08:52:24.878] | : "# as a global variable " [08:52:24.878] | : do.call(function(...) { [08:52:24.878] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:24.878] | : "# without having an '...' argument. This means '...' is treated" [08:52:24.878] | : "# as a global variable. This may happen when FUN() is an " [08:52:24.878] | : "# anonymous function. " [08:52:24.878] | : "# " [08:52:24.878] | : "# If an anonymous function, we will make sure to restore the " [08:52:24.878] | : "# function environment of FUN() to the calling environment. " [08:52:24.878] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:24.878] | : "# global environment, which is where globals are written. " [08:52:24.878] | : penv <- env <- environment(...future.FUN) [08:52:24.878] | : repeat { [08:52:24.878] | : if (identical(env, globalenv()) || identical(env, [08:52:24.878] | : emptyenv())) [08:52:24.878] | : break [08:52:24.878] | : penv <- env [08:52:24.878] | : env <- parent.env(env) [08:52:24.878] | : } [08:52:24.878] | : if (identical(penv, globalenv())) { [08:52:24.878] | : environment(...future.FUN) <- environment() [08:52:24.878] | : } [08:52:24.878] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:24.878] | : !isNamespace(penv)) { [08:52:24.878] | : parent.env(penv) <- environment() [08:52:24.878] | : } [08:52:24.878] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:24.878] | : { [08:52:24.878] | : "# future.apply:::future_xapply(): preserve future option" [08:52:24.878] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:24.878] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:24.878] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:24.878] | : on.exit(options(oopts), add = TRUE) [08:52:24.878] | : } [08:52:24.878] | : { [08:52:24.878] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:24.878] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:24.878] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:24.878] | : { [08:52:24.878] | : ...future.FUN(...future.X_jj, ...) [08:52:24.878] | : } [08:52:24.878] | : }) [08:52:24.878] | : } [08:52:24.878] | : } [08:52:24.878] | : }, args = future.call.arguments) [08:52:24.878] | : } [08:52:24.878] | : 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) [08:52:24.878] | : Packages: [08:52:24.878] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:24.878] | : Capture standard output: TRUE [08:52:24.878] | : Capture condition classes: 'condition' (excluding '') [08:52:24.878] | : Immediate condition classes: 'immediateCondition' [08:52:24.878] | : Lazy evaluation: FALSE [08:52:24.878] | : Local evaluation: TRUE [08:52:24.878] | : Asynchronous evaluation: TRUE [08:52:24.878] | : Early signaling: FALSE [08:52:24.878] | : Environment: 0x000001960a3214d8 [08:52:24.878] | : State: 'running' [08:52:24.878] | : Resolved: TRUE [08:52:24.878] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-31 [08:52:24.878] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:24.878] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:24.878] | : Value: [08:52:24.878] | : Conditions captured: [08:52:24.886] | : Chunk #1 of 2 ... DONE [08:52:24.887] | : Chunk #2 of 2 ... [08:52:24.887] | : - Finding globals in 'X' for chunk #2 ... [08:52:24.888] | : + additional globals found: [n=0] [08:52:24.888] | : + additional namespaces needed: [n=0] [08:52:24.888] | : - Finding globals in 'X' for chunk #2 ... DONE [08:52:24.889] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [08:52:24.889] | : - seeds: [08:52:24.889] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:24.991] | : Created future: [08:52:24.992] | : MultisessionFuture: [08:52:24.992] | : Label: 'future_lapply-2' [08:52:24.992] | : Expression: [08:52:24.992] | : { [08:52:24.992] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:24.992] | : "# expression in do.call(), because function called uses '...' " [08:52:24.992] | : "# as a global variable " [08:52:24.992] | : do.call(function(...) { [08:52:24.992] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:24.992] | : "# without having an '...' argument. This means '...' is treated" [08:52:24.992] | : "# as a global variable. This may happen when FUN() is an " [08:52:24.992] | : "# anonymous function. " [08:52:24.992] | : "# " [08:52:24.992] | : "# If an anonymous function, we will make sure to restore the " [08:52:24.992] | : "# function environment of FUN() to the calling environment. " [08:52:24.992] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:24.992] | : "# global environment, which is where globals are written. " [08:52:24.992] | : penv <- env <- environment(...future.FUN) [08:52:24.992] | : repeat { [08:52:24.992] | : if (identical(env, globalenv()) || identical(env, [08:52:24.992] | : emptyenv())) [08:52:24.992] | : break [08:52:24.992] | : penv <- env [08:52:24.992] | : env <- parent.env(env) [08:52:24.992] | : } [08:52:24.992] | : if (identical(penv, globalenv())) { [08:52:24.992] | : environment(...future.FUN) <- environment() [08:52:24.992] | : } [08:52:24.992] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:24.992] | : !isNamespace(penv)) { [08:52:24.992] | : parent.env(penv) <- environment() [08:52:24.992] | : } [08:52:24.992] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:24.992] | : { [08:52:24.992] | : "# future.apply:::future_xapply(): preserve future option" [08:52:24.992] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:24.992] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:24.992] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:24.992] | : on.exit(options(oopts), add = TRUE) [08:52:24.992] | : } [08:52:24.992] | : { [08:52:24.992] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:24.992] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:24.992] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:24.992] | : { [08:52:24.992] | : ...future.FUN(...future.X_jj, ...) [08:52:24.992] | : } [08:52:24.992] | : }) [08:52:24.992] | : } [08:52:24.992] | : } [08:52:24.992] | : }, args = future.call.arguments) [08:52:24.992] | : } [08:52:24.992] | : 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) [08:52:24.992] | : Packages: [08:52:24.992] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:24.992] | : Capture standard output: TRUE [08:52:24.992] | : Capture condition classes: 'condition' (excluding '') [08:52:24.992] | : Immediate condition classes: 'immediateCondition' [08:52:24.992] | : Lazy evaluation: FALSE [08:52:24.992] | : Local evaluation: TRUE [08:52:24.992] | : Asynchronous evaluation: TRUE [08:52:24.992] | : Early signaling: FALSE [08:52:24.992] | : Environment: 0x000001960a3214d8 [08:52:24.992] | : State: 'running' [08:52:24.992] | : Resolved: TRUE [08:52:24.992] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-32 [08:52:24.992] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:24.992] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:24.992] | : Value: [08:52:24.992] | : Conditions captured: [08:52:25.005] | : Chunk #2 of 2 ... DONE [08:52:25.005] | : Launching 2 futures (chunks) ... DONE [08:52:25.006] | : Resolving 2 futures (chunks) ... [08:52:25.007] | : - Number of value chunks collected: 2 [08:52:25.008] | : Resolving 2 futures (chunks) ... DONE [08:52:25.008] | : Reducing values from 2 chunks ... [08:52:25.008] | : - Number of values collected after concatenation: 2 [08:52:25.008] | : - Number of values expected: 2 [08:52:25.009] | : Reducing values from 2 chunks ... DONE [08:52:25.009] | future_lapply() -> future_xapply() ... done [08:52:25.009] 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) [08:52:25.016] future_lapply() ... [08:52:25.017] | Globals in FUN(): [n=2] '{', 'getOption' [08:52:25.017] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:25.018] | future_lapply() -> future_xapply() ... [08:52:25.018] | : Number of chunks: 2 [08:52:25.019] | : getGlobalsAndPackagesXApply() ... [08:52:25.019] | : . future.globals: TRUE [08:52:25.031] | : getGlobalsAndPackagesXApply() ... done [08:52:25.031] | future_lapply() -> future_xapply() ... done [08:52:25.031] 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) [08:52:25.032] future_lapply() ... [08:52:25.034] | Globals in FUN(): [n=2] '{', 'getOption' [08:52:25.034] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:25.034] | future_lapply() -> future_xapply() ... [08:52:25.035] | : Number of chunks: 2 [08:52:25.036] | : getGlobalsAndPackagesXApply() ... [08:52:25.036] | : . future.globals: TRUE [08:52:25.050] | : . globals found/used: [n=1] 'FUN' [08:52:25.050] | : . needed namespaces: [n=0] [08:52:25.050] | : . use_args: TRUE [08:52:25.051] | : . Getting '...' globals ... [08:52:25.052] | : . ' '...' content: [n=0] [08:52:25.052] | : . ' List of 1 [08:52:25.052] | : . ' $ ...: list() [08:52:25.052] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:25.052] | : . ' - attr(*, "where")=List of 1 [08:52:25.052] | : . ' ..$ ...: [08:52:25.052] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:25.052] | : . ' - attr(*, "resolved")= logi TRUE [08:52:25.052] | : . ' - attr(*, "total_size")= num NA [08:52:25.057] | : . Getting '...' globals ... done [08:52:25.058] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:25.058] | : . List of 2 [08:52:25.058] | : . $ ...future.FUN:function (x) [08:52:25.058] | : . $ ... : list() [08:52:25.058] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:25.058] | : . - attr(*, "where")=List of 2 [08:52:25.058] | : . ..$ ...future.FUN: [08:52:25.058] | : . ..$ ... : [08:52:25.058] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:25.058] | : . - attr(*, "resolved")= logi FALSE [08:52:25.058] | : . - attr(*, "total_size")= num 4670 [08:52:25.064] | : . Packages to be attached in all futures: [n=0] [08:52:25.064] | : getGlobalsAndPackagesXApply() ... done [08:52:25.065] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.065] | : List of 5 [08:52:25.065] | : $ ...future.FUN :function (x) [08:52:25.065] | : $ ... : list() [08:52:25.065] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:25.065] | : $ ...future.elements_ii : NULL [08:52:25.065] | : $ ...future.seeds_ii : NULL [08:52:25.065] | : $ ...future.globals.maxSize: NULL [08:52:25.065] | : - attr(*, "where")=List of 5 [08:52:25.065] | : ..$ ...future.FUN : [08:52:25.065] | : ..$ ... : [08:52:25.065] | : ..$ ...future.elements_ii : [08:52:25.065] | : ..$ ...future.seeds_ii : [08:52:25.065] | : ..$ ...future.globals.maxSize: [08:52:25.065] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:25.065] | : - attr(*, "resolved")= logi FALSE [08:52:25.065] | : - attr(*, "total_size")= num 4670 [08:52:25.073] | : Number of futures (= number of chunks): 2 [08:52:25.074] | : Launching 2 futures (chunks) ... [08:52:25.074] | : Chunk #1 of 2 ... [08:52:25.074] | : - Finding globals in 'X' for chunk #1 ... [08:52:25.075] | : + additional globals found: [n=0] [08:52:25.075] | : + additional namespaces needed: [n=0] [08:52:25.076] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:25.076] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [08:52:25.076] | : - seeds: [08:52:25.076] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.156] | : Created future: [08:52:25.156] | : MultisessionFuture: [08:52:25.156] | : Label: 'future_lapply-1' [08:52:25.156] | : Expression: [08:52:25.156] | : { [08:52:25.156] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:25.156] | : "# expression in do.call(), because function called uses '...' " [08:52:25.156] | : "# as a global variable " [08:52:25.156] | : do.call(function(...) { [08:52:25.156] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:25.156] | : "# without having an '...' argument. This means '...' is treated" [08:52:25.156] | : "# as a global variable. This may happen when FUN() is an " [08:52:25.156] | : "# anonymous function. " [08:52:25.156] | : "# " [08:52:25.156] | : "# If an anonymous function, we will make sure to restore the " [08:52:25.156] | : "# function environment of FUN() to the calling environment. " [08:52:25.156] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:25.156] | : "# global environment, which is where globals are written. " [08:52:25.156] | : penv <- env <- environment(...future.FUN) [08:52:25.156] | : repeat { [08:52:25.156] | : if (identical(env, globalenv()) || identical(env, [08:52:25.156] | : emptyenv())) [08:52:25.156] | : break [08:52:25.156] | : penv <- env [08:52:25.156] | : env <- parent.env(env) [08:52:25.156] | : } [08:52:25.156] | : if (identical(penv, globalenv())) { [08:52:25.156] | : environment(...future.FUN) <- environment() [08:52:25.156] | : } [08:52:25.156] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:25.156] | : !isNamespace(penv)) { [08:52:25.156] | : parent.env(penv) <- environment() [08:52:25.156] | : } [08:52:25.156] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:25.156] | : { [08:52:25.156] | : "# future.apply:::future_xapply(): preserve future option" [08:52:25.156] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:25.156] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:25.156] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:25.156] | : on.exit(options(oopts), add = TRUE) [08:52:25.156] | : } [08:52:25.156] | : { [08:52:25.156] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:25.156] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:25.156] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:25.156] | : { [08:52:25.156] | : ...future.FUN(...future.X_jj, ...) [08:52:25.156] | : } [08:52:25.156] | : }) [08:52:25.156] | : } [08:52:25.156] | : } [08:52:25.156] | : }, args = future.call.arguments) [08:52:25.156] | : } [08:52:25.156] | : 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) [08:52:25.156] | : Packages: [08:52:25.156] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:25.156] | : Capture standard output: TRUE [08:52:25.156] | : Capture condition classes: 'condition' (excluding '') [08:52:25.156] | : Immediate condition classes: 'immediateCondition' [08:52:25.156] | : Lazy evaluation: FALSE [08:52:25.156] | : Local evaluation: TRUE [08:52:25.156] | : Asynchronous evaluation: TRUE [08:52:25.156] | : Early signaling: FALSE [08:52:25.156] | : Environment: R_GlobalEnv [08:52:25.156] | : State: 'running' [08:52:25.156] | : Resolved: TRUE [08:52:25.156] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-33 [08:52:25.156] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:25.156] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:25.156] | : Value: [08:52:25.156] | : Conditions captured: [08:52:25.165] | : Chunk #1 of 2 ... DONE [08:52:25.165] | : Chunk #2 of 2 ... [08:52:25.166] | : - Finding globals in 'X' for chunk #2 ... [08:52:25.167] | : + additional globals found: [n=0] [08:52:25.167] | : + additional namespaces needed: [n=0] [08:52:25.167] | : - Finding globals in 'X' for chunk #2 ... DONE [08:52:25.167] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [08:52:25.168] | : - seeds: [08:52:25.168] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.244] | : Created future: [08:52:25.244] | : MultisessionFuture: [08:52:25.244] | : Label: 'future_lapply-2' [08:52:25.244] | : Expression: [08:52:25.244] | : { [08:52:25.244] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:25.244] | : "# expression in do.call(), because function called uses '...' " [08:52:25.244] | : "# as a global variable " [08:52:25.244] | : do.call(function(...) { [08:52:25.244] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:25.244] | : "# without having an '...' argument. This means '...' is treated" [08:52:25.244] | : "# as a global variable. This may happen when FUN() is an " [08:52:25.244] | : "# anonymous function. " [08:52:25.244] | : "# " [08:52:25.244] | : "# If an anonymous function, we will make sure to restore the " [08:52:25.244] | : "# function environment of FUN() to the calling environment. " [08:52:25.244] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:25.244] | : "# global environment, which is where globals are written. " [08:52:25.244] | : penv <- env <- environment(...future.FUN) [08:52:25.244] | : repeat { [08:52:25.244] | : if (identical(env, globalenv()) || identical(env, [08:52:25.244] | : emptyenv())) [08:52:25.244] | : break [08:52:25.244] | : penv <- env [08:52:25.244] | : env <- parent.env(env) [08:52:25.244] | : } [08:52:25.244] | : if (identical(penv, globalenv())) { [08:52:25.244] | : environment(...future.FUN) <- environment() [08:52:25.244] | : } [08:52:25.244] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:25.244] | : !isNamespace(penv)) { [08:52:25.244] | : parent.env(penv) <- environment() [08:52:25.244] | : } [08:52:25.244] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:25.244] | : { [08:52:25.244] | : "# future.apply:::future_xapply(): preserve future option" [08:52:25.244] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:25.244] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:25.244] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:25.244] | : on.exit(options(oopts), add = TRUE) [08:52:25.244] | : } [08:52:25.244] | : { [08:52:25.244] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:25.244] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:25.244] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:25.244] | : { [08:52:25.244] | : ...future.FUN(...future.X_jj, ...) [08:52:25.244] | : } [08:52:25.244] | : }) [08:52:25.244] | : } [08:52:25.244] | : } [08:52:25.244] | : }, args = future.call.arguments) [08:52:25.244] | : } [08:52:25.244] | : 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) [08:52:25.244] | : Packages: [08:52:25.244] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:25.244] | : Capture standard output: TRUE [08:52:25.244] | : Capture condition classes: 'condition' (excluding '') [08:52:25.244] | : Immediate condition classes: 'immediateCondition' [08:52:25.244] | : Lazy evaluation: FALSE [08:52:25.244] | : Local evaluation: TRUE [08:52:25.244] | : Asynchronous evaluation: TRUE [08:52:25.244] | : Early signaling: FALSE [08:52:25.244] | : Environment: R_GlobalEnv [08:52:25.244] | : State: 'running' [08:52:25.244] | : Resolved: TRUE [08:52:25.244] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-34 [08:52:25.244] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:25.244] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:25.244] | : Value: [08:52:25.244] | : Conditions captured: [08:52:25.255] | : Chunk #2 of 2 ... DONE [08:52:25.256] | : Launching 2 futures (chunks) ... DONE [08:52:25.256] | : Resolving 2 futures (chunks) ... [08:52:25.258] | : - Number of value chunks collected: 2 [08:52:25.258] | : Resolving 2 futures (chunks) ... DONE [08:52:25.258] | : Reducing values from 2 chunks ... [08:52:25.258] | : - Number of values collected after concatenation: 10 [08:52:25.259] | : - Number of values expected: 10 [08:52:25.259] | : Reducing values from 2 chunks ... DONE [08:52:25.259] | future_lapply() -> future_xapply() ... done [08:52:25.259] 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] [08:52:25.277] future_lapply() ... [08:52:25.278] | Globals in FUN(): [n=2] '{', 'getOption' [08:52:25.278] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:25.279] | future_lapply() -> future_xapply() ... [08:52:25.279] | : Number of chunks: 10 [08:52:25.279] | : getGlobalsAndPackagesXApply() ... [08:52:25.280] | : . future.globals: TRUE [08:52:25.288] | : . globals found/used: [n=1] 'FUN' [08:52:25.288] | : . needed namespaces: [n=0] [08:52:25.289] | : . use_args: TRUE [08:52:25.289] | : . Getting '...' globals ... [08:52:25.290] | : . ' '...' content: [n=0] [08:52:25.290] | : . ' List of 1 [08:52:25.290] | : . ' $ ...: list() [08:52:25.290] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:25.290] | : . ' - attr(*, "where")=List of 1 [08:52:25.290] | : . ' ..$ ...: [08:52:25.290] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:25.290] | : . ' - attr(*, "resolved")= logi TRUE [08:52:25.290] | : . ' - attr(*, "total_size")= num NA [08:52:25.294] | : . Getting '...' globals ... done [08:52:25.294] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:25.294] | : . List of 2 [08:52:25.294] | : . $ ...future.FUN:function (x) [08:52:25.294] | : . $ ... : list() [08:52:25.294] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:25.294] | : . - attr(*, "where")=List of 2 [08:52:25.294] | : . ..$ ...future.FUN: [08:52:25.294] | : . ..$ ... : [08:52:25.294] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:25.294] | : . - attr(*, "resolved")= logi FALSE [08:52:25.294] | : . - attr(*, "total_size")= num 5085 [08:52:25.299] | : . Packages to be attached in all futures: [n=0] [08:52:25.299] | : getGlobalsAndPackagesXApply() ... done [08:52:25.299] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.300] | : List of 5 [08:52:25.300] | : $ ...future.FUN :function (x) [08:52:25.300] | : $ ... : list() [08:52:25.300] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:25.300] | : $ ...future.elements_ii : NULL [08:52:25.300] | : $ ...future.seeds_ii : NULL [08:52:25.300] | : $ ...future.globals.maxSize: NULL [08:52:25.300] | : - attr(*, "where")=List of 5 [08:52:25.300] | : ..$ ...future.FUN : [08:52:25.300] | : ..$ ... : [08:52:25.300] | : ..$ ...future.elements_ii : [08:52:25.300] | : ..$ ...future.seeds_ii : [08:52:25.300] | : ..$ ...future.globals.maxSize: [08:52:25.300] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:25.300] | : - attr(*, "resolved")= logi FALSE [08:52:25.300] | : - attr(*, "total_size")= num 5085 [08:52:25.306] | : Number of futures (= number of chunks): 10 [08:52:25.306] | : Launching 10 futures (chunks) ... [08:52:25.307] | : Chunk #1 of 10 ... [08:52:25.307] | : - Finding globals in 'X' for chunk #1 ... [08:52:25.308] | : + additional globals found: [n=0] [08:52:25.308] | : + additional namespaces needed: [n=0] [08:52:25.308] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:25.309] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [08:52:25.309] | : - seeds: [08:52:25.309] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.387] | : Created future: [08:52:25.388] | : MultisessionFuture: [08:52:25.388] | : Label: 'future_lapply-1' [08:52:25.388] | : Expression: [08:52:25.388] | : { [08:52:25.388] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:25.388] | : "# expression in do.call(), because function called uses '...' " [08:52:25.388] | : "# as a global variable " [08:52:25.388] | : do.call(function(...) { [08:52:25.388] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:25.388] | : "# without having an '...' argument. This means '...' is treated" [08:52:25.388] | : "# as a global variable. This may happen when FUN() is an " [08:52:25.388] | : "# anonymous function. " [08:52:25.388] | : "# " [08:52:25.388] | : "# If an anonymous function, we will make sure to restore the " [08:52:25.388] | : "# function environment of FUN() to the calling environment. " [08:52:25.388] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:25.388] | : "# global environment, which is where globals are written. " [08:52:25.388] | : penv <- env <- environment(...future.FUN) [08:52:25.388] | : repeat { [08:52:25.388] | : if (identical(env, globalenv()) || identical(env, [08:52:25.388] | : emptyenv())) [08:52:25.388] | : break [08:52:25.388] | : penv <- env [08:52:25.388] | : env <- parent.env(env) [08:52:25.388] | : } [08:52:25.388] | : if (identical(penv, globalenv())) { [08:52:25.388] | : environment(...future.FUN) <- environment() [08:52:25.388] | : } [08:52:25.388] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:25.388] | : !isNamespace(penv)) { [08:52:25.388] | : parent.env(penv) <- environment() [08:52:25.388] | : } [08:52:25.388] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:25.388] | : { [08:52:25.388] | : "# future.apply:::future_xapply(): preserve future option" [08:52:25.388] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:25.388] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:25.388] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:25.388] | : on.exit(options(oopts), add = TRUE) [08:52:25.388] | : } [08:52:25.388] | : { [08:52:25.388] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:25.388] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:25.388] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:25.388] | : { [08:52:25.388] | : ...future.FUN(...future.X_jj, ...) [08:52:25.388] | : } [08:52:25.388] | : }) [08:52:25.388] | : } [08:52:25.388] | : } [08:52:25.388] | : }, args = future.call.arguments) [08:52:25.388] | : } [08:52:25.388] | : 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) [08:52:25.388] | : Packages: [08:52:25.388] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:25.388] | : Capture standard output: TRUE [08:52:25.388] | : Capture condition classes: 'condition' (excluding '') [08:52:25.388] | : Immediate condition classes: 'immediateCondition' [08:52:25.388] | : Lazy evaluation: FALSE [08:52:25.388] | : Local evaluation: TRUE [08:52:25.388] | : Asynchronous evaluation: TRUE [08:52:25.388] | : Early signaling: FALSE [08:52:25.388] | : Environment: R_GlobalEnv [08:52:25.388] | : State: 'running' [08:52:25.388] | : Resolved: TRUE [08:52:25.388] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-35 [08:52:25.388] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:25.388] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:25.388] | : Value: [08:52:25.388] | : Conditions captured: [08:52:25.396] | : Chunk #1 of 10 ... DONE [08:52:25.397] | : Chunk #2 of 10 ... [08:52:25.397] | : - Finding globals in 'X' for chunk #2 ... [08:52:25.398] | : + additional globals found: [n=0] [08:52:25.398] | : + additional namespaces needed: [n=0] [08:52:25.398] | : - Finding globals in 'X' for chunk #2 ... DONE [08:52:25.398] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [08:52:25.399] | : - seeds: [08:52:25.399] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.480] | : Created future: [08:52:25.480] | : MultisessionFuture: [08:52:25.480] | : Label: 'future_lapply-2' [08:52:25.480] | : Expression: [08:52:25.480] | : { [08:52:25.480] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:25.480] | : "# expression in do.call(), because function called uses '...' " [08:52:25.480] | : "# as a global variable " [08:52:25.480] | : do.call(function(...) { [08:52:25.480] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:25.480] | : "# without having an '...' argument. This means '...' is treated" [08:52:25.480] | : "# as a global variable. This may happen when FUN() is an " [08:52:25.480] | : "# anonymous function. " [08:52:25.480] | : "# " [08:52:25.480] | : "# If an anonymous function, we will make sure to restore the " [08:52:25.480] | : "# function environment of FUN() to the calling environment. " [08:52:25.480] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:25.480] | : "# global environment, which is where globals are written. " [08:52:25.480] | : penv <- env <- environment(...future.FUN) [08:52:25.480] | : repeat { [08:52:25.480] | : if (identical(env, globalenv()) || identical(env, [08:52:25.480] | : emptyenv())) [08:52:25.480] | : break [08:52:25.480] | : penv <- env [08:52:25.480] | : env <- parent.env(env) [08:52:25.480] | : } [08:52:25.480] | : if (identical(penv, globalenv())) { [08:52:25.480] | : environment(...future.FUN) <- environment() [08:52:25.480] | : } [08:52:25.480] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:25.480] | : !isNamespace(penv)) { [08:52:25.480] | : parent.env(penv) <- environment() [08:52:25.480] | : } [08:52:25.480] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:25.480] | : { [08:52:25.480] | : "# future.apply:::future_xapply(): preserve future option" [08:52:25.480] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:25.480] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:25.480] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:25.480] | : on.exit(options(oopts), add = TRUE) [08:52:25.480] | : } [08:52:25.480] | : { [08:52:25.480] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:25.480] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:25.480] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:25.480] | : { [08:52:25.480] | : ...future.FUN(...future.X_jj, ...) [08:52:25.480] | : } [08:52:25.480] | : }) [08:52:25.480] | : } [08:52:25.480] | : } [08:52:25.480] | : }, args = future.call.arguments) [08:52:25.480] | : } [08:52:25.480] | : 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) [08:52:25.480] | : Packages: [08:52:25.480] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:25.480] | : Capture standard output: TRUE [08:52:25.480] | : Capture condition classes: 'condition' (excluding '') [08:52:25.480] | : Immediate condition classes: 'immediateCondition' [08:52:25.480] | : Lazy evaluation: FALSE [08:52:25.480] | : Local evaluation: TRUE [08:52:25.480] | : Asynchronous evaluation: TRUE [08:52:25.480] | : Early signaling: FALSE [08:52:25.480] | : Environment: R_GlobalEnv [08:52:25.480] | : State: 'running' [08:52:25.480] | : Resolved: TRUE [08:52:25.480] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-36 [08:52:25.480] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:25.480] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:25.480] | : Value: [08:52:25.480] | : Conditions captured: [08:52:25.489] | : Chunk #2 of 10 ... DONE [08:52:25.489] | : Chunk #3 of 10 ... [08:52:25.490] | : - Finding globals in 'X' for chunk #3 ... [08:52:25.490] | : + additional globals found: [n=0] [08:52:25.490] | : + additional namespaces needed: [n=0] [08:52:25.491] | : - Finding globals in 'X' for chunk #3 ... DONE [08:52:25.491] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [08:52:25.491] | : - seeds: [08:52:25.491] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.588] | : Created future: [08:52:25.588] | : MultisessionFuture: [08:52:25.588] | : Label: 'future_lapply-3' [08:52:25.588] | : Expression: [08:52:25.588] | : { [08:52:25.588] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:25.588] | : "# expression in do.call(), because function called uses '...' " [08:52:25.588] | : "# as a global variable " [08:52:25.588] | : do.call(function(...) { [08:52:25.588] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:25.588] | : "# without having an '...' argument. This means '...' is treated" [08:52:25.588] | : "# as a global variable. This may happen when FUN() is an " [08:52:25.588] | : "# anonymous function. " [08:52:25.588] | : "# " [08:52:25.588] | : "# If an anonymous function, we will make sure to restore the " [08:52:25.588] | : "# function environment of FUN() to the calling environment. " [08:52:25.588] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:25.588] | : "# global environment, which is where globals are written. " [08:52:25.588] | : penv <- env <- environment(...future.FUN) [08:52:25.588] | : repeat { [08:52:25.588] | : if (identical(env, globalenv()) || identical(env, [08:52:25.588] | : emptyenv())) [08:52:25.588] | : break [08:52:25.588] | : penv <- env [08:52:25.588] | : env <- parent.env(env) [08:52:25.588] | : } [08:52:25.588] | : if (identical(penv, globalenv())) { [08:52:25.588] | : environment(...future.FUN) <- environment() [08:52:25.588] | : } [08:52:25.588] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:25.588] | : !isNamespace(penv)) { [08:52:25.588] | : parent.env(penv) <- environment() [08:52:25.588] | : } [08:52:25.588] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:25.588] | : { [08:52:25.588] | : "# future.apply:::future_xapply(): preserve future option" [08:52:25.588] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:25.588] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:25.588] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:25.588] | : on.exit(options(oopts), add = TRUE) [08:52:25.588] | : } [08:52:25.588] | : { [08:52:25.588] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:25.588] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:25.588] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:25.588] | : { [08:52:25.588] | : ...future.FUN(...future.X_jj, ...) [08:52:25.588] | : } [08:52:25.588] | : }) [08:52:25.588] | : } [08:52:25.588] | : } [08:52:25.588] | : }, args = future.call.arguments) [08:52:25.588] | : } [08:52:25.588] | : 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) [08:52:25.588] | : Packages: [08:52:25.588] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:25.588] | : Capture standard output: TRUE [08:52:25.588] | : Capture condition classes: 'condition' (excluding '') [08:52:25.588] | : Immediate condition classes: 'immediateCondition' [08:52:25.588] | : Lazy evaluation: FALSE [08:52:25.588] | : Local evaluation: TRUE [08:52:25.588] | : Asynchronous evaluation: TRUE [08:52:25.588] | : Early signaling: FALSE [08:52:25.588] | : Environment: R_GlobalEnv [08:52:25.588] | : State: 'running' [08:52:25.588] | : Resolved: TRUE [08:52:25.588] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-37 [08:52:25.588] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:25.588] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:25.588] | : Value: [08:52:25.588] | : Conditions captured: [08:52:25.633] | : Chunk #3 of 10 ... DONE [08:52:25.633] | : Chunk #4 of 10 ... [08:52:25.633] | : - Finding globals in 'X' for chunk #4 ... [08:52:25.634] | : + additional globals found: [n=0] [08:52:25.634] | : + additional namespaces needed: [n=0] [08:52:25.635] | : - Finding globals in 'X' for chunk #4 ... DONE [08:52:25.635] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [08:52:25.635] | : - seeds: [08:52:25.635] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.710] | : Created future: [08:52:25.711] | : MultisessionFuture: [08:52:25.711] | : Label: 'future_lapply-4' [08:52:25.711] | : Expression: [08:52:25.711] | : { [08:52:25.711] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:25.711] | : "# expression in do.call(), because function called uses '...' " [08:52:25.711] | : "# as a global variable " [08:52:25.711] | : do.call(function(...) { [08:52:25.711] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:25.711] | : "# without having an '...' argument. This means '...' is treated" [08:52:25.711] | : "# as a global variable. This may happen when FUN() is an " [08:52:25.711] | : "# anonymous function. " [08:52:25.711] | : "# " [08:52:25.711] | : "# If an anonymous function, we will make sure to restore the " [08:52:25.711] | : "# function environment of FUN() to the calling environment. " [08:52:25.711] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:25.711] | : "# global environment, which is where globals are written. " [08:52:25.711] | : penv <- env <- environment(...future.FUN) [08:52:25.711] | : repeat { [08:52:25.711] | : if (identical(env, globalenv()) || identical(env, [08:52:25.711] | : emptyenv())) [08:52:25.711] | : break [08:52:25.711] | : penv <- env [08:52:25.711] | : env <- parent.env(env) [08:52:25.711] | : } [08:52:25.711] | : if (identical(penv, globalenv())) { [08:52:25.711] | : environment(...future.FUN) <- environment() [08:52:25.711] | : } [08:52:25.711] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:25.711] | : !isNamespace(penv)) { [08:52:25.711] | : parent.env(penv) <- environment() [08:52:25.711] | : } [08:52:25.711] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:25.711] | : { [08:52:25.711] | : "# future.apply:::future_xapply(): preserve future option" [08:52:25.711] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:25.711] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:25.711] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:25.711] | : on.exit(options(oopts), add = TRUE) [08:52:25.711] | : } [08:52:25.711] | : { [08:52:25.711] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:25.711] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:25.711] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:25.711] | : { [08:52:25.711] | : ...future.FUN(...future.X_jj, ...) [08:52:25.711] | : } [08:52:25.711] | : }) [08:52:25.711] | : } [08:52:25.711] | : } [08:52:25.711] | : }, args = future.call.arguments) [08:52:25.711] | : } [08:52:25.711] | : 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) [08:52:25.711] | : Packages: [08:52:25.711] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:25.711] | : Capture standard output: TRUE [08:52:25.711] | : Capture condition classes: 'condition' (excluding '') [08:52:25.711] | : Immediate condition classes: 'immediateCondition' [08:52:25.711] | : Lazy evaluation: FALSE [08:52:25.711] | : Local evaluation: TRUE [08:52:25.711] | : Asynchronous evaluation: TRUE [08:52:25.711] | : Early signaling: FALSE [08:52:25.711] | : Environment: R_GlobalEnv [08:52:25.711] | : State: 'running' [08:52:25.711] | : Resolved: TRUE [08:52:25.711] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-38 [08:52:25.711] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:25.711] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:25.711] | : Value: [08:52:25.711] | : Conditions captured: [08:52:25.718] | : Chunk #4 of 10 ... DONE [08:52:25.718] | : Chunk #5 of 10 ... [08:52:25.718] | : - Finding globals in 'X' for chunk #5 ... [08:52:25.719] | : + additional globals found: [n=0] [08:52:25.720] | : + additional namespaces needed: [n=0] [08:52:25.720] | : - Finding globals in 'X' for chunk #5 ... DONE [08:52:25.720] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [08:52:25.720] | : - seeds: [08:52:25.721] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.799] | : Created future: [08:52:25.799] | : MultisessionFuture: [08:52:25.799] | : Label: 'future_lapply-5' [08:52:25.799] | : Expression: [08:52:25.799] | : { [08:52:25.799] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:25.799] | : "# expression in do.call(), because function called uses '...' " [08:52:25.799] | : "# as a global variable " [08:52:25.799] | : do.call(function(...) { [08:52:25.799] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:25.799] | : "# without having an '...' argument. This means '...' is treated" [08:52:25.799] | : "# as a global variable. This may happen when FUN() is an " [08:52:25.799] | : "# anonymous function. " [08:52:25.799] | : "# " [08:52:25.799] | : "# If an anonymous function, we will make sure to restore the " [08:52:25.799] | : "# function environment of FUN() to the calling environment. " [08:52:25.799] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:25.799] | : "# global environment, which is where globals are written. " [08:52:25.799] | : penv <- env <- environment(...future.FUN) [08:52:25.799] | : repeat { [08:52:25.799] | : if (identical(env, globalenv()) || identical(env, [08:52:25.799] | : emptyenv())) [08:52:25.799] | : break [08:52:25.799] | : penv <- env [08:52:25.799] | : env <- parent.env(env) [08:52:25.799] | : } [08:52:25.799] | : if (identical(penv, globalenv())) { [08:52:25.799] | : environment(...future.FUN) <- environment() [08:52:25.799] | : } [08:52:25.799] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:25.799] | : !isNamespace(penv)) { [08:52:25.799] | : parent.env(penv) <- environment() [08:52:25.799] | : } [08:52:25.799] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:25.799] | : { [08:52:25.799] | : "# future.apply:::future_xapply(): preserve future option" [08:52:25.799] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:25.799] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:25.799] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:25.799] | : on.exit(options(oopts), add = TRUE) [08:52:25.799] | : } [08:52:25.799] | : { [08:52:25.799] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:25.799] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:25.799] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:25.799] | : { [08:52:25.799] | : ...future.FUN(...future.X_jj, ...) [08:52:25.799] | : } [08:52:25.799] | : }) [08:52:25.799] | : } [08:52:25.799] | : } [08:52:25.799] | : }, args = future.call.arguments) [08:52:25.799] | : } [08:52:25.799] | : 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) [08:52:25.799] | : Packages: [08:52:25.799] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:25.799] | : Capture standard output: TRUE [08:52:25.799] | : Capture condition classes: 'condition' (excluding '') [08:52:25.799] | : Immediate condition classes: 'immediateCondition' [08:52:25.799] | : Lazy evaluation: FALSE [08:52:25.799] | : Local evaluation: TRUE [08:52:25.799] | : Asynchronous evaluation: TRUE [08:52:25.799] | : Early signaling: FALSE [08:52:25.799] | : Environment: R_GlobalEnv [08:52:25.799] | : State: 'running' [08:52:25.799] | : Resolved: TRUE [08:52:25.799] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-39 [08:52:25.799] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:25.799] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:25.799] | : Value: [08:52:25.799] | : Conditions captured: [08:52:25.807] | : Chunk #5 of 10 ... DONE [08:52:25.808] | : Chunk #6 of 10 ... [08:52:25.808] | : - Finding globals in 'X' for chunk #6 ... [08:52:25.809] | : + additional globals found: [n=0] [08:52:25.809] | : + additional namespaces needed: [n=0] [08:52:25.809] | : - Finding globals in 'X' for chunk #6 ... DONE [08:52:25.809] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [08:52:25.809] | : - seeds: [08:52:25.809] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.878] | : Created future: [08:52:25.879] | : MultisessionFuture: [08:52:25.879] | : Label: 'future_lapply-6' [08:52:25.879] | : Expression: [08:52:25.879] | : { [08:52:25.879] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:25.879] | : "# expression in do.call(), because function called uses '...' " [08:52:25.879] | : "# as a global variable " [08:52:25.879] | : do.call(function(...) { [08:52:25.879] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:25.879] | : "# without having an '...' argument. This means '...' is treated" [08:52:25.879] | : "# as a global variable. This may happen when FUN() is an " [08:52:25.879] | : "# anonymous function. " [08:52:25.879] | : "# " [08:52:25.879] | : "# If an anonymous function, we will make sure to restore the " [08:52:25.879] | : "# function environment of FUN() to the calling environment. " [08:52:25.879] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:25.879] | : "# global environment, which is where globals are written. " [08:52:25.879] | : penv <- env <- environment(...future.FUN) [08:52:25.879] | : repeat { [08:52:25.879] | : if (identical(env, globalenv()) || identical(env, [08:52:25.879] | : emptyenv())) [08:52:25.879] | : break [08:52:25.879] | : penv <- env [08:52:25.879] | : env <- parent.env(env) [08:52:25.879] | : } [08:52:25.879] | : if (identical(penv, globalenv())) { [08:52:25.879] | : environment(...future.FUN) <- environment() [08:52:25.879] | : } [08:52:25.879] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:25.879] | : !isNamespace(penv)) { [08:52:25.879] | : parent.env(penv) <- environment() [08:52:25.879] | : } [08:52:25.879] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:25.879] | : { [08:52:25.879] | : "# future.apply:::future_xapply(): preserve future option" [08:52:25.879] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:25.879] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:25.879] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:25.879] | : on.exit(options(oopts), add = TRUE) [08:52:25.879] | : } [08:52:25.879] | : { [08:52:25.879] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:25.879] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:25.879] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:25.879] | : { [08:52:25.879] | : ...future.FUN(...future.X_jj, ...) [08:52:25.879] | : } [08:52:25.879] | : }) [08:52:25.879] | : } [08:52:25.879] | : } [08:52:25.879] | : }, args = future.call.arguments) [08:52:25.879] | : } [08:52:25.879] | : 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) [08:52:25.879] | : Packages: [08:52:25.879] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:25.879] | : Capture standard output: TRUE [08:52:25.879] | : Capture condition classes: 'condition' (excluding '') [08:52:25.879] | : Immediate condition classes: 'immediateCondition' [08:52:25.879] | : Lazy evaluation: FALSE [08:52:25.879] | : Local evaluation: TRUE [08:52:25.879] | : Asynchronous evaluation: TRUE [08:52:25.879] | : Early signaling: FALSE [08:52:25.879] | : Environment: R_GlobalEnv [08:52:25.879] | : State: 'running' [08:52:25.879] | : Resolved: TRUE [08:52:25.879] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-40 [08:52:25.879] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:25.879] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:25.879] | : Value: [08:52:25.879] | : Conditions captured: [08:52:25.887] | : Chunk #6 of 10 ... DONE [08:52:25.887] | : Chunk #7 of 10 ... [08:52:25.887] | : - Finding globals in 'X' for chunk #7 ... [08:52:25.888] | : + additional globals found: [n=0] [08:52:25.888] | : + additional namespaces needed: [n=0] [08:52:25.888] | : - Finding globals in 'X' for chunk #7 ... DONE [08:52:25.889] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [08:52:25.889] | : - seeds: [08:52:25.889] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:25.962] | : Created future: [08:52:25.962] | : MultisessionFuture: [08:52:25.962] | : Label: 'future_lapply-7' [08:52:25.962] | : Expression: [08:52:25.962] | : { [08:52:25.962] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:25.962] | : "# expression in do.call(), because function called uses '...' " [08:52:25.962] | : "# as a global variable " [08:52:25.962] | : do.call(function(...) { [08:52:25.962] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:25.962] | : "# without having an '...' argument. This means '...' is treated" [08:52:25.962] | : "# as a global variable. This may happen when FUN() is an " [08:52:25.962] | : "# anonymous function. " [08:52:25.962] | : "# " [08:52:25.962] | : "# If an anonymous function, we will make sure to restore the " [08:52:25.962] | : "# function environment of FUN() to the calling environment. " [08:52:25.962] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:25.962] | : "# global environment, which is where globals are written. " [08:52:25.962] | : penv <- env <- environment(...future.FUN) [08:52:25.962] | : repeat { [08:52:25.962] | : if (identical(env, globalenv()) || identical(env, [08:52:25.962] | : emptyenv())) [08:52:25.962] | : break [08:52:25.962] | : penv <- env [08:52:25.962] | : env <- parent.env(env) [08:52:25.962] | : } [08:52:25.962] | : if (identical(penv, globalenv())) { [08:52:25.962] | : environment(...future.FUN) <- environment() [08:52:25.962] | : } [08:52:25.962] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:25.962] | : !isNamespace(penv)) { [08:52:25.962] | : parent.env(penv) <- environment() [08:52:25.962] | : } [08:52:25.962] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:25.962] | : { [08:52:25.962] | : "# future.apply:::future_xapply(): preserve future option" [08:52:25.962] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:25.962] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:25.962] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:25.962] | : on.exit(options(oopts), add = TRUE) [08:52:25.962] | : } [08:52:25.962] | : { [08:52:25.962] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:25.962] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:25.962] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:25.962] | : { [08:52:25.962] | : ...future.FUN(...future.X_jj, ...) [08:52:25.962] | : } [08:52:25.962] | : }) [08:52:25.962] | : } [08:52:25.962] | : } [08:52:25.962] | : }, args = future.call.arguments) [08:52:25.962] | : } [08:52:25.962] | : 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) [08:52:25.962] | : Packages: [08:52:25.962] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:25.962] | : Capture standard output: TRUE [08:52:25.962] | : Capture condition classes: 'condition' (excluding '') [08:52:25.962] | : Immediate condition classes: 'immediateCondition' [08:52:25.962] | : Lazy evaluation: FALSE [08:52:25.962] | : Local evaluation: TRUE [08:52:25.962] | : Asynchronous evaluation: TRUE [08:52:25.962] | : Early signaling: FALSE [08:52:25.962] | : Environment: R_GlobalEnv [08:52:25.962] | : State: 'running' [08:52:25.962] | : Resolved: TRUE [08:52:25.962] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-41 [08:52:25.962] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:25.962] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:25.962] | : Value: [08:52:25.962] | : Conditions captured: [08:52:25.972] | : Chunk #7 of 10 ... DONE [08:52:25.972] | : Chunk #8 of 10 ... [08:52:25.972] | : - Finding globals in 'X' for chunk #8 ... [08:52:25.973] | : + additional globals found: [n=0] [08:52:25.974] | : + additional namespaces needed: [n=0] [08:52:25.974] | : - Finding globals in 'X' for chunk #8 ... DONE [08:52:25.974] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [08:52:25.975] | : - seeds: [08:52:25.975] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.049] | : Created future: [08:52:26.049] | : MultisessionFuture: [08:52:26.049] | : Label: 'future_lapply-8' [08:52:26.049] | : Expression: [08:52:26.049] | : { [08:52:26.049] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.049] | : "# expression in do.call(), because function called uses '...' " [08:52:26.049] | : "# as a global variable " [08:52:26.049] | : do.call(function(...) { [08:52:26.049] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.049] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.049] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.049] | : "# anonymous function. " [08:52:26.049] | : "# " [08:52:26.049] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.049] | : "# function environment of FUN() to the calling environment. " [08:52:26.049] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.049] | : "# global environment, which is where globals are written. " [08:52:26.049] | : penv <- env <- environment(...future.FUN) [08:52:26.049] | : repeat { [08:52:26.049] | : if (identical(env, globalenv()) || identical(env, [08:52:26.049] | : emptyenv())) [08:52:26.049] | : break [08:52:26.049] | : penv <- env [08:52:26.049] | : env <- parent.env(env) [08:52:26.049] | : } [08:52:26.049] | : if (identical(penv, globalenv())) { [08:52:26.049] | : environment(...future.FUN) <- environment() [08:52:26.049] | : } [08:52:26.049] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.049] | : !isNamespace(penv)) { [08:52:26.049] | : parent.env(penv) <- environment() [08:52:26.049] | : } [08:52:26.049] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.049] | : { [08:52:26.049] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.049] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.049] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.049] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.049] | : on.exit(options(oopts), add = TRUE) [08:52:26.049] | : } [08:52:26.049] | : { [08:52:26.049] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.049] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.049] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.049] | : { [08:52:26.049] | : ...future.FUN(...future.X_jj, ...) [08:52:26.049] | : } [08:52:26.049] | : }) [08:52:26.049] | : } [08:52:26.049] | : } [08:52:26.049] | : }, args = future.call.arguments) [08:52:26.049] | : } [08:52:26.049] | : 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) [08:52:26.049] | : Packages: [08:52:26.049] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.049] | : Capture standard output: TRUE [08:52:26.049] | : Capture condition classes: 'condition' (excluding '') [08:52:26.049] | : Immediate condition classes: 'immediateCondition' [08:52:26.049] | : Lazy evaluation: FALSE [08:52:26.049] | : Local evaluation: TRUE [08:52:26.049] | : Asynchronous evaluation: TRUE [08:52:26.049] | : Early signaling: FALSE [08:52:26.049] | : Environment: R_GlobalEnv [08:52:26.049] | : State: 'running' [08:52:26.049] | : Resolved: TRUE [08:52:26.049] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-42 [08:52:26.049] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.049] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.049] | : Value: [08:52:26.049] | : Conditions captured: [08:52:26.058] | : Chunk #8 of 10 ... DONE [08:52:26.058] | : Chunk #9 of 10 ... [08:52:26.058] | : - Finding globals in 'X' for chunk #9 ... [08:52:26.059] | : + additional globals found: [n=0] [08:52:26.059] | : + additional namespaces needed: [n=0] [08:52:26.060] | : - Finding globals in 'X' for chunk #9 ... DONE [08:52:26.060] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [08:52:26.060] | : - seeds: [08:52:26.061] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.136] | : Created future: [08:52:26.136] | : MultisessionFuture: [08:52:26.136] | : Label: 'future_lapply-9' [08:52:26.136] | : Expression: [08:52:26.136] | : { [08:52:26.136] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.136] | : "# expression in do.call(), because function called uses '...' " [08:52:26.136] | : "# as a global variable " [08:52:26.136] | : do.call(function(...) { [08:52:26.136] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.136] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.136] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.136] | : "# anonymous function. " [08:52:26.136] | : "# " [08:52:26.136] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.136] | : "# function environment of FUN() to the calling environment. " [08:52:26.136] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.136] | : "# global environment, which is where globals are written. " [08:52:26.136] | : penv <- env <- environment(...future.FUN) [08:52:26.136] | : repeat { [08:52:26.136] | : if (identical(env, globalenv()) || identical(env, [08:52:26.136] | : emptyenv())) [08:52:26.136] | : break [08:52:26.136] | : penv <- env [08:52:26.136] | : env <- parent.env(env) [08:52:26.136] | : } [08:52:26.136] | : if (identical(penv, globalenv())) { [08:52:26.136] | : environment(...future.FUN) <- environment() [08:52:26.136] | : } [08:52:26.136] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.136] | : !isNamespace(penv)) { [08:52:26.136] | : parent.env(penv) <- environment() [08:52:26.136] | : } [08:52:26.136] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.136] | : { [08:52:26.136] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.136] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.136] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.136] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.136] | : on.exit(options(oopts), add = TRUE) [08:52:26.136] | : } [08:52:26.136] | : { [08:52:26.136] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.136] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.136] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.136] | : { [08:52:26.136] | : ...future.FUN(...future.X_jj, ...) [08:52:26.136] | : } [08:52:26.136] | : }) [08:52:26.136] | : } [08:52:26.136] | : } [08:52:26.136] | : }, args = future.call.arguments) [08:52:26.136] | : } [08:52:26.136] | : 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) [08:52:26.136] | : Packages: [08:52:26.136] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.136] | : Capture standard output: TRUE [08:52:26.136] | : Capture condition classes: 'condition' (excluding '') [08:52:26.136] | : Immediate condition classes: 'immediateCondition' [08:52:26.136] | : Lazy evaluation: FALSE [08:52:26.136] | : Local evaluation: TRUE [08:52:26.136] | : Asynchronous evaluation: TRUE [08:52:26.136] | : Early signaling: FALSE [08:52:26.136] | : Environment: R_GlobalEnv [08:52:26.136] | : State: 'running' [08:52:26.136] | : Resolved: TRUE [08:52:26.136] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-43 [08:52:26.136] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.136] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.136] | : Value: [08:52:26.136] | : Conditions captured: [08:52:26.143] | : Chunk #9 of 10 ... DONE [08:52:26.143] | : Chunk #10 of 10 ... [08:52:26.144] | : - Finding globals in 'X' for chunk #10 ... [08:52:26.144] | : + additional globals found: [n=0] [08:52:26.144] | : + additional namespaces needed: [n=0] [08:52:26.145] | : - Finding globals in 'X' for chunk #10 ... DONE [08:52:26.145] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [08:52:26.145] | : - seeds: [08:52:26.145] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.216] | : Created future: [08:52:26.217] | : MultisessionFuture: [08:52:26.217] | : Label: 'future_lapply-10' [08:52:26.217] | : Expression: [08:52:26.217] | : { [08:52:26.217] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.217] | : "# expression in do.call(), because function called uses '...' " [08:52:26.217] | : "# as a global variable " [08:52:26.217] | : do.call(function(...) { [08:52:26.217] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.217] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.217] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.217] | : "# anonymous function. " [08:52:26.217] | : "# " [08:52:26.217] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.217] | : "# function environment of FUN() to the calling environment. " [08:52:26.217] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.217] | : "# global environment, which is where globals are written. " [08:52:26.217] | : penv <- env <- environment(...future.FUN) [08:52:26.217] | : repeat { [08:52:26.217] | : if (identical(env, globalenv()) || identical(env, [08:52:26.217] | : emptyenv())) [08:52:26.217] | : break [08:52:26.217] | : penv <- env [08:52:26.217] | : env <- parent.env(env) [08:52:26.217] | : } [08:52:26.217] | : if (identical(penv, globalenv())) { [08:52:26.217] | : environment(...future.FUN) <- environment() [08:52:26.217] | : } [08:52:26.217] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.217] | : !isNamespace(penv)) { [08:52:26.217] | : parent.env(penv) <- environment() [08:52:26.217] | : } [08:52:26.217] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.217] | : { [08:52:26.217] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.217] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.217] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.217] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.217] | : on.exit(options(oopts), add = TRUE) [08:52:26.217] | : } [08:52:26.217] | : { [08:52:26.217] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.217] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.217] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.217] | : { [08:52:26.217] | : ...future.FUN(...future.X_jj, ...) [08:52:26.217] | : } [08:52:26.217] | : }) [08:52:26.217] | : } [08:52:26.217] | : } [08:52:26.217] | : }, args = future.call.arguments) [08:52:26.217] | : } [08:52:26.217] | : 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) [08:52:26.217] | : Packages: [08:52:26.217] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.217] | : Capture standard output: TRUE [08:52:26.217] | : Capture condition classes: 'condition' (excluding '') [08:52:26.217] | : Immediate condition classes: 'immediateCondition' [08:52:26.217] | : Lazy evaluation: FALSE [08:52:26.217] | : Local evaluation: TRUE [08:52:26.217] | : Asynchronous evaluation: TRUE [08:52:26.217] | : Early signaling: FALSE [08:52:26.217] | : Environment: R_GlobalEnv [08:52:26.217] | : State: 'running' [08:52:26.217] | : Resolved: TRUE [08:52:26.217] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-44 [08:52:26.217] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.217] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.217] | : Value: [08:52:26.217] | : Conditions captured: [08:52:26.223] | : Chunk #10 of 10 ... DONE [08:52:26.223] | : Launching 10 futures (chunks) ... DONE [08:52:26.223] | : Resolving 10 futures (chunks) ... [08:52:26.228] | : - Number of value chunks collected: 10 [08:52:26.228] | : Resolving 10 futures (chunks) ... DONE [08:52:26.229] | : Reducing values from 10 chunks ... [08:52:26.229] | : - Number of values collected after concatenation: 10 [08:52:26.229] | : - Number of values expected: 10 [08:52:26.229] | : Reducing values from 10 chunks ... DONE [08:52:26.230] | future_lapply() -> future_xapply() ... done [08:52:26.230] 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 [08:52:26.236] future_lapply() ... [08:52:26.237] | Globals in FUN(): [n=2] '{', 'getOption' [08:52:26.238] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:26.238] | future_lapply() -> future_xapply() ... [08:52:26.239] | : Number of chunks: 5 [08:52:26.239] | : getGlobalsAndPackagesXApply() ... [08:52:26.239] | : . future.globals: TRUE [08:52:26.253] | : . globals found/used: [n=1] 'FUN' [08:52:26.253] | : . needed namespaces: [n=0] [08:52:26.254] | : . use_args: TRUE [08:52:26.254] | : . Getting '...' globals ... [08:52:26.255] | : . ' '...' content: [n=0] [08:52:26.255] | : . ' List of 1 [08:52:26.255] | : . ' $ ...: list() [08:52:26.255] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:26.255] | : . ' - attr(*, "where")=List of 1 [08:52:26.255] | : . ' ..$ ...: [08:52:26.255] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:26.255] | : . ' - attr(*, "resolved")= logi TRUE [08:52:26.255] | : . ' - attr(*, "total_size")= num NA [08:52:26.260] | : . Getting '...' globals ... done [08:52:26.260] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:26.261] | : . List of 2 [08:52:26.261] | : . $ ...future.FUN:function (x) [08:52:26.261] | : . $ ... : list() [08:52:26.261] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:26.261] | : . - attr(*, "where")=List of 2 [08:52:26.261] | : . ..$ ...future.FUN: [08:52:26.261] | : . ..$ ... : [08:52:26.261] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:26.261] | : . - attr(*, "resolved")= logi FALSE [08:52:26.261] | : . - attr(*, "total_size")= num 5085 [08:52:26.266] | : . Packages to be attached in all futures: [n=0] [08:52:26.266] | : getGlobalsAndPackagesXApply() ... done [08:52:26.266] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.267] | : List of 5 [08:52:26.267] | : $ ...future.FUN :function (x) [08:52:26.267] | : $ ... : list() [08:52:26.267] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:26.267] | : $ ...future.elements_ii : NULL [08:52:26.267] | : $ ...future.seeds_ii : NULL [08:52:26.267] | : $ ...future.globals.maxSize: NULL [08:52:26.267] | : - attr(*, "where")=List of 5 [08:52:26.267] | : ..$ ...future.FUN : [08:52:26.267] | : ..$ ... : [08:52:26.267] | : ..$ ...future.elements_ii : [08:52:26.267] | : ..$ ...future.seeds_ii : [08:52:26.267] | : ..$ ...future.globals.maxSize: [08:52:26.267] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:26.267] | : - attr(*, "resolved")= logi FALSE [08:52:26.267] | : - attr(*, "total_size")= num 5085 [08:52:26.274] | : Number of futures (= number of chunks): 5 [08:52:26.274] | : Launching 5 futures (chunks) ... [08:52:26.275] | : Chunk #1 of 5 ... [08:52:26.275] | : - Finding globals in 'X' for chunk #1 ... [08:52:26.276] | : + additional globals found: [n=0] [08:52:26.276] | : + additional namespaces needed: [n=0] [08:52:26.276] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:26.277] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [08:52:26.277] | : - seeds: [08:52:26.277] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.342] | : Created future: [08:52:26.342] | : MultisessionFuture: [08:52:26.342] | : Label: 'future_lapply-1' [08:52:26.342] | : Expression: [08:52:26.342] | : { [08:52:26.342] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.342] | : "# expression in do.call(), because function called uses '...' " [08:52:26.342] | : "# as a global variable " [08:52:26.342] | : do.call(function(...) { [08:52:26.342] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.342] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.342] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.342] | : "# anonymous function. " [08:52:26.342] | : "# " [08:52:26.342] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.342] | : "# function environment of FUN() to the calling environment. " [08:52:26.342] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.342] | : "# global environment, which is where globals are written. " [08:52:26.342] | : penv <- env <- environment(...future.FUN) [08:52:26.342] | : repeat { [08:52:26.342] | : if (identical(env, globalenv()) || identical(env, [08:52:26.342] | : emptyenv())) [08:52:26.342] | : break [08:52:26.342] | : penv <- env [08:52:26.342] | : env <- parent.env(env) [08:52:26.342] | : } [08:52:26.342] | : if (identical(penv, globalenv())) { [08:52:26.342] | : environment(...future.FUN) <- environment() [08:52:26.342] | : } [08:52:26.342] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.342] | : !isNamespace(penv)) { [08:52:26.342] | : parent.env(penv) <- environment() [08:52:26.342] | : } [08:52:26.342] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.342] | : { [08:52:26.342] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.342] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.342] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.342] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.342] | : on.exit(options(oopts), add = TRUE) [08:52:26.342] | : } [08:52:26.342] | : { [08:52:26.342] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.342] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.342] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.342] | : { [08:52:26.342] | : ...future.FUN(...future.X_jj, ...) [08:52:26.342] | : } [08:52:26.342] | : }) [08:52:26.342] | : } [08:52:26.342] | : } [08:52:26.342] | : }, args = future.call.arguments) [08:52:26.342] | : } [08:52:26.342] | : Globals: 5 objects totaling 5.38 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) [08:52:26.342] | : Packages: [08:52:26.342] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.342] | : Capture standard output: TRUE [08:52:26.342] | : Capture condition classes: 'condition' (excluding '') [08:52:26.342] | : Immediate condition classes: 'immediateCondition' [08:52:26.342] | : Lazy evaluation: FALSE [08:52:26.342] | : Local evaluation: TRUE [08:52:26.342] | : Asynchronous evaluation: TRUE [08:52:26.342] | : Early signaling: FALSE [08:52:26.342] | : Environment: R_GlobalEnv [08:52:26.342] | : State: 'running' [08:52:26.342] | : Resolved: TRUE [08:52:26.342] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-45 [08:52:26.342] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.342] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.342] | : Value: [08:52:26.342] | : Conditions captured: [08:52:26.348] | : Chunk #1 of 5 ... DONE [08:52:26.348] | : Chunk #2 of 5 ... [08:52:26.348] | : - Finding globals in 'X' for chunk #2 ... [08:52:26.349] | : + additional globals found: [n=0] [08:52:26.349] | : + additional namespaces needed: [n=0] [08:52:26.349] | : - Finding globals in 'X' for chunk #2 ... DONE [08:52:26.349] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [08:52:26.349] | : - seeds: [08:52:26.349] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.408] | : Created future: [08:52:26.408] | : MultisessionFuture: [08:52:26.408] | : Label: 'future_lapply-2' [08:52:26.408] | : Expression: [08:52:26.408] | : { [08:52:26.408] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.408] | : "# expression in do.call(), because function called uses '...' " [08:52:26.408] | : "# as a global variable " [08:52:26.408] | : do.call(function(...) { [08:52:26.408] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.408] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.408] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.408] | : "# anonymous function. " [08:52:26.408] | : "# " [08:52:26.408] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.408] | : "# function environment of FUN() to the calling environment. " [08:52:26.408] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.408] | : "# global environment, which is where globals are written. " [08:52:26.408] | : penv <- env <- environment(...future.FUN) [08:52:26.408] | : repeat { [08:52:26.408] | : if (identical(env, globalenv()) || identical(env, [08:52:26.408] | : emptyenv())) [08:52:26.408] | : break [08:52:26.408] | : penv <- env [08:52:26.408] | : env <- parent.env(env) [08:52:26.408] | : } [08:52:26.408] | : if (identical(penv, globalenv())) { [08:52:26.408] | : environment(...future.FUN) <- environment() [08:52:26.408] | : } [08:52:26.408] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.408] | : !isNamespace(penv)) { [08:52:26.408] | : parent.env(penv) <- environment() [08:52:26.408] | : } [08:52:26.408] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.408] | : { [08:52:26.408] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.408] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.408] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.408] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.408] | : on.exit(options(oopts), add = TRUE) [08:52:26.408] | : } [08:52:26.408] | : { [08:52:26.408] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.408] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.408] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.408] | : { [08:52:26.408] | : ...future.FUN(...future.X_jj, ...) [08:52:26.408] | : } [08:52:26.408] | : }) [08:52:26.408] | : } [08:52:26.408] | : } [08:52:26.408] | : }, args = future.call.arguments) [08:52:26.408] | : } [08:52:26.408] | : Globals: 5 objects totaling 5.38 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) [08:52:26.408] | : Packages: [08:52:26.408] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.408] | : Capture standard output: TRUE [08:52:26.408] | : Capture condition classes: 'condition' (excluding '') [08:52:26.408] | : Immediate condition classes: 'immediateCondition' [08:52:26.408] | : Lazy evaluation: FALSE [08:52:26.408] | : Local evaluation: TRUE [08:52:26.408] | : Asynchronous evaluation: TRUE [08:52:26.408] | : Early signaling: FALSE [08:52:26.408] | : Environment: R_GlobalEnv [08:52:26.408] | : State: 'running' [08:52:26.408] | : Resolved: TRUE [08:52:26.408] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-46 [08:52:26.408] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.408] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.408] | : Value: [08:52:26.408] | : Conditions captured: [08:52:26.415] | : Chunk #2 of 5 ... DONE [08:52:26.415] | : Chunk #3 of 5 ... [08:52:26.415] | : - Finding globals in 'X' for chunk #3 ... [08:52:26.415] | : + additional globals found: [n=0] [08:52:26.416] | : + additional namespaces needed: [n=0] [08:52:26.416] | : - Finding globals in 'X' for chunk #3 ... DONE [08:52:26.416] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [08:52:26.416] | : - seeds: [08:52:26.416] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.473] | : Created future: [08:52:26.473] | : MultisessionFuture: [08:52:26.473] | : Label: 'future_lapply-3' [08:52:26.473] | : Expression: [08:52:26.473] | : { [08:52:26.473] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.473] | : "# expression in do.call(), because function called uses '...' " [08:52:26.473] | : "# as a global variable " [08:52:26.473] | : do.call(function(...) { [08:52:26.473] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.473] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.473] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.473] | : "# anonymous function. " [08:52:26.473] | : "# " [08:52:26.473] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.473] | : "# function environment of FUN() to the calling environment. " [08:52:26.473] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.473] | : "# global environment, which is where globals are written. " [08:52:26.473] | : penv <- env <- environment(...future.FUN) [08:52:26.473] | : repeat { [08:52:26.473] | : if (identical(env, globalenv()) || identical(env, [08:52:26.473] | : emptyenv())) [08:52:26.473] | : break [08:52:26.473] | : penv <- env [08:52:26.473] | : env <- parent.env(env) [08:52:26.473] | : } [08:52:26.473] | : if (identical(penv, globalenv())) { [08:52:26.473] | : environment(...future.FUN) <- environment() [08:52:26.473] | : } [08:52:26.473] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.473] | : !isNamespace(penv)) { [08:52:26.473] | : parent.env(penv) <- environment() [08:52:26.473] | : } [08:52:26.473] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.473] | : { [08:52:26.473] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.473] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.473] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.473] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.473] | : on.exit(options(oopts), add = TRUE) [08:52:26.473] | : } [08:52:26.473] | : { [08:52:26.473] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.473] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.473] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.473] | : { [08:52:26.473] | : ...future.FUN(...future.X_jj, ...) [08:52:26.473] | : } [08:52:26.473] | : }) [08:52:26.473] | : } [08:52:26.473] | : } [08:52:26.473] | : }, args = future.call.arguments) [08:52:26.473] | : } [08:52:26.473] | : Globals: 5 objects totaling 5.38 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) [08:52:26.473] | : Packages: [08:52:26.473] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.473] | : Capture standard output: TRUE [08:52:26.473] | : Capture condition classes: 'condition' (excluding '') [08:52:26.473] | : Immediate condition classes: 'immediateCondition' [08:52:26.473] | : Lazy evaluation: FALSE [08:52:26.473] | : Local evaluation: TRUE [08:52:26.473] | : Asynchronous evaluation: TRUE [08:52:26.473] | : Early signaling: FALSE [08:52:26.473] | : Environment: R_GlobalEnv [08:52:26.473] | : State: 'running' [08:52:26.473] | : Resolved: TRUE [08:52:26.473] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-47 [08:52:26.473] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.473] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.473] | : Value: [08:52:26.473] | : Conditions captured: [08:52:26.479] | : Chunk #3 of 5 ... DONE [08:52:26.479] | : Chunk #4 of 5 ... [08:52:26.479] | : - Finding globals in 'X' for chunk #4 ... [08:52:26.479] | : + additional globals found: [n=0] [08:52:26.480] | : + additional namespaces needed: [n=0] [08:52:26.480] | : - Finding globals in 'X' for chunk #4 ... DONE [08:52:26.480] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [08:52:26.480] | : - seeds: [08:52:26.480] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.556] | : Created future: [08:52:26.556] | : MultisessionFuture: [08:52:26.556] | : Label: 'future_lapply-4' [08:52:26.556] | : Expression: [08:52:26.556] | : { [08:52:26.556] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.556] | : "# expression in do.call(), because function called uses '...' " [08:52:26.556] | : "# as a global variable " [08:52:26.556] | : do.call(function(...) { [08:52:26.556] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.556] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.556] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.556] | : "# anonymous function. " [08:52:26.556] | : "# " [08:52:26.556] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.556] | : "# function environment of FUN() to the calling environment. " [08:52:26.556] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.556] | : "# global environment, which is where globals are written. " [08:52:26.556] | : penv <- env <- environment(...future.FUN) [08:52:26.556] | : repeat { [08:52:26.556] | : if (identical(env, globalenv()) || identical(env, [08:52:26.556] | : emptyenv())) [08:52:26.556] | : break [08:52:26.556] | : penv <- env [08:52:26.556] | : env <- parent.env(env) [08:52:26.556] | : } [08:52:26.556] | : if (identical(penv, globalenv())) { [08:52:26.556] | : environment(...future.FUN) <- environment() [08:52:26.556] | : } [08:52:26.556] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.556] | : !isNamespace(penv)) { [08:52:26.556] | : parent.env(penv) <- environment() [08:52:26.556] | : } [08:52:26.556] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.556] | : { [08:52:26.556] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.556] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.556] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.556] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.556] | : on.exit(options(oopts), add = TRUE) [08:52:26.556] | : } [08:52:26.556] | : { [08:52:26.556] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.556] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.556] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.556] | : { [08:52:26.556] | : ...future.FUN(...future.X_jj, ...) [08:52:26.556] | : } [08:52:26.556] | : }) [08:52:26.556] | : } [08:52:26.556] | : } [08:52:26.556] | : }, args = future.call.arguments) [08:52:26.556] | : } [08:52:26.556] | : Globals: 5 objects totaling 5.38 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) [08:52:26.556] | : Packages: [08:52:26.556] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.556] | : Capture standard output: TRUE [08:52:26.556] | : Capture condition classes: 'condition' (excluding '') [08:52:26.556] | : Immediate condition classes: 'immediateCondition' [08:52:26.556] | : Lazy evaluation: FALSE [08:52:26.556] | : Local evaluation: TRUE [08:52:26.556] | : Asynchronous evaluation: TRUE [08:52:26.556] | : Early signaling: FALSE [08:52:26.556] | : Environment: R_GlobalEnv [08:52:26.556] | : State: 'running' [08:52:26.556] | : Resolved: TRUE [08:52:26.556] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-48 [08:52:26.556] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.556] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.556] | : Value: [08:52:26.556] | : Conditions captured: [08:52:26.564] | : Chunk #4 of 5 ... DONE [08:52:26.565] | : Chunk #5 of 5 ... [08:52:26.565] | : - Finding globals in 'X' for chunk #5 ... [08:52:26.566] | : + additional globals found: [n=0] [08:52:26.567] | : + additional namespaces needed: [n=0] [08:52:26.567] | : - Finding globals in 'X' for chunk #5 ... DONE [08:52:26.568] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [08:52:26.568] | : - seeds: [08:52:26.568] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.661] | : Created future: [08:52:26.662] | : MultisessionFuture: [08:52:26.662] | : Label: 'future_lapply-5' [08:52:26.662] | : Expression: [08:52:26.662] | : { [08:52:26.662] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.662] | : "# expression in do.call(), because function called uses '...' " [08:52:26.662] | : "# as a global variable " [08:52:26.662] | : do.call(function(...) { [08:52:26.662] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.662] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.662] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.662] | : "# anonymous function. " [08:52:26.662] | : "# " [08:52:26.662] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.662] | : "# function environment of FUN() to the calling environment. " [08:52:26.662] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.662] | : "# global environment, which is where globals are written. " [08:52:26.662] | : penv <- env <- environment(...future.FUN) [08:52:26.662] | : repeat { [08:52:26.662] | : if (identical(env, globalenv()) || identical(env, [08:52:26.662] | : emptyenv())) [08:52:26.662] | : break [08:52:26.662] | : penv <- env [08:52:26.662] | : env <- parent.env(env) [08:52:26.662] | : } [08:52:26.662] | : if (identical(penv, globalenv())) { [08:52:26.662] | : environment(...future.FUN) <- environment() [08:52:26.662] | : } [08:52:26.662] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.662] | : !isNamespace(penv)) { [08:52:26.662] | : parent.env(penv) <- environment() [08:52:26.662] | : } [08:52:26.662] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.662] | : { [08:52:26.662] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.662] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.662] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.662] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.662] | : on.exit(options(oopts), add = TRUE) [08:52:26.662] | : } [08:52:26.662] | : { [08:52:26.662] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.662] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.662] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.662] | : { [08:52:26.662] | : ...future.FUN(...future.X_jj, ...) [08:52:26.662] | : } [08:52:26.662] | : }) [08:52:26.662] | : } [08:52:26.662] | : } [08:52:26.662] | : }, args = future.call.arguments) [08:52:26.662] | : } [08:52:26.662] | : Globals: 5 objects totaling 5.38 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) [08:52:26.662] | : Packages: [08:52:26.662] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.662] | : Capture standard output: TRUE [08:52:26.662] | : Capture condition classes: 'condition' (excluding '') [08:52:26.662] | : Immediate condition classes: 'immediateCondition' [08:52:26.662] | : Lazy evaluation: FALSE [08:52:26.662] | : Local evaluation: TRUE [08:52:26.662] | : Asynchronous evaluation: TRUE [08:52:26.662] | : Early signaling: FALSE [08:52:26.662] | : Environment: R_GlobalEnv [08:52:26.662] | : State: 'running' [08:52:26.662] | : Resolved: TRUE [08:52:26.662] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-49 [08:52:26.662] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.662] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.662] | : Value: [08:52:26.662] | : Conditions captured: [08:52:26.668] | : Chunk #5 of 5 ... DONE [08:52:26.668] | : Launching 5 futures (chunks) ... DONE [08:52:26.669] | : Resolving 5 futures (chunks) ... [08:52:26.671] | : - Number of value chunks collected: 5 [08:52:26.672] | : Resolving 5 futures (chunks) ... DONE [08:52:26.672] | : Reducing values from 5 chunks ... [08:52:26.672] | : - Number of values collected after concatenation: 10 [08:52:26.672] | : - Number of values expected: 10 [08:52:26.673] | : Reducing values from 5 chunks ... DONE [08:52:26.673] | future_lapply() -> future_xapply() ... done [08:52:26.673] 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 [08:52:26.680] future_lapply() ... [08:52:26.681] | Globals in FUN(): [n=2] '{', 'getOption' [08:52:26.681] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:26.681] | future_lapply() -> future_xapply() ... [08:52:26.682] | : Number of chunks: 2 [08:52:26.682] | : getGlobalsAndPackagesXApply() ... [08:52:26.682] | : . future.globals: TRUE [08:52:26.693] | : . globals found/used: [n=1] 'FUN' [08:52:26.693] | : . needed namespaces: [n=0] [08:52:26.693] | : . use_args: TRUE [08:52:26.694] | : . Getting '...' globals ... [08:52:26.694] | : . ' '...' content: [n=0] [08:52:26.695] | : . ' List of 1 [08:52:26.695] | : . ' $ ...: list() [08:52:26.695] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:26.695] | : . ' - attr(*, "where")=List of 1 [08:52:26.695] | : . ' ..$ ...: [08:52:26.695] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:26.695] | : . ' - attr(*, "resolved")= logi TRUE [08:52:26.695] | : . ' - attr(*, "total_size")= num NA [08:52:26.699] | : . Getting '...' globals ... done [08:52:26.700] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:26.700] | : . List of 2 [08:52:26.700] | : . $ ...future.FUN:function (x) [08:52:26.700] | : . $ ... : list() [08:52:26.700] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:26.700] | : . - attr(*, "where")=List of 2 [08:52:26.700] | : . ..$ ...future.FUN: [08:52:26.700] | : . ..$ ... : [08:52:26.700] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:26.700] | : . - attr(*, "resolved")= logi FALSE [08:52:26.700] | : . - attr(*, "total_size")= num 5085 [08:52:26.705] | : . Packages to be attached in all futures: [n=0] [08:52:26.705] | : getGlobalsAndPackagesXApply() ... done [08:52:26.706] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.706] | : List of 5 [08:52:26.706] | : $ ...future.FUN :function (x) [08:52:26.706] | : $ ... : list() [08:52:26.706] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:26.706] | : $ ...future.elements_ii : NULL [08:52:26.706] | : $ ...future.seeds_ii : NULL [08:52:26.706] | : $ ...future.globals.maxSize: NULL [08:52:26.706] | : - attr(*, "where")=List of 5 [08:52:26.706] | : ..$ ...future.FUN : [08:52:26.706] | : ..$ ... : [08:52:26.706] | : ..$ ...future.elements_ii : [08:52:26.706] | : ..$ ...future.seeds_ii : [08:52:26.706] | : ..$ ...future.globals.maxSize: [08:52:26.706] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:26.706] | : - attr(*, "resolved")= logi FALSE [08:52:26.706] | : - attr(*, "total_size")= num 5085 [08:52:26.713] | : Number of futures (= number of chunks): 2 [08:52:26.714] | : Launching 2 futures (chunks) ... [08:52:26.714] | : Chunk #1 of 2 ... [08:52:26.714] | : - Finding globals in 'X' for chunk #1 ... [08:52:26.715] | : + additional globals found: [n=0] [08:52:26.715] | : + additional namespaces needed: [n=0] [08:52:26.715] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:26.716] | : - Adjusted option 'future.globals.maxSize': 2306 -> 2 * 2306 = 4611 (bytes) [08:52:26.716] | : - seeds: [08:52:26.720] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.791] | : Created future: [08:52:26.792] | : MultisessionFuture: [08:52:26.792] | : Label: 'future_lapply-1' [08:52:26.792] | : Expression: [08:52:26.792] | : { [08:52:26.792] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.792] | : "# expression in do.call(), because function called uses '...' " [08:52:26.792] | : "# as a global variable " [08:52:26.792] | : do.call(function(...) { [08:52:26.792] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.792] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.792] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.792] | : "# anonymous function. " [08:52:26.792] | : "# " [08:52:26.792] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.792] | : "# function environment of FUN() to the calling environment. " [08:52:26.792] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.792] | : "# global environment, which is where globals are written. " [08:52:26.792] | : penv <- env <- environment(...future.FUN) [08:52:26.792] | : repeat { [08:52:26.792] | : if (identical(env, globalenv()) || identical(env, [08:52:26.792] | : emptyenv())) [08:52:26.792] | : break [08:52:26.792] | : penv <- env [08:52:26.792] | : env <- parent.env(env) [08:52:26.792] | : } [08:52:26.792] | : if (identical(penv, globalenv())) { [08:52:26.792] | : environment(...future.FUN) <- environment() [08:52:26.792] | : } [08:52:26.792] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.792] | : !isNamespace(penv)) { [08:52:26.792] | : parent.env(penv) <- environment() [08:52:26.792] | : } [08:52:26.792] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.792] | : { [08:52:26.792] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.792] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.792] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.792] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.792] | : on.exit(options(oopts), add = TRUE) [08:52:26.792] | : } [08:52:26.792] | : { [08:52:26.792] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.792] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.792] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.792] | : { [08:52:26.792] | : ...future.FUN(...future.X_jj, ...) [08:52:26.792] | : } [08:52:26.792] | : }) [08:52:26.792] | : } [08:52:26.792] | : } [08:52:26.792] | : }, args = future.call.arguments) [08:52:26.792] | : } [08:52:26.792] | : 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) [08:52:26.792] | : Packages: [08:52:26.792] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.792] | : Capture standard output: TRUE [08:52:26.792] | : Capture condition classes: 'condition' (excluding '') [08:52:26.792] | : Immediate condition classes: 'immediateCondition' [08:52:26.792] | : Lazy evaluation: FALSE [08:52:26.792] | : Local evaluation: TRUE [08:52:26.792] | : Asynchronous evaluation: TRUE [08:52:26.792] | : Early signaling: FALSE [08:52:26.792] | : Environment: R_GlobalEnv [08:52:26.792] | : State: 'running' [08:52:26.792] | : Resolved: TRUE [08:52:26.792] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-50 [08:52:26.792] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.792] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.792] | : Value: [08:52:26.792] | : Conditions captured: [08:52:26.796] | : Chunk #1 of 2 ... DONE [08:52:26.796] | : Chunk #2 of 2 ... [08:52:26.796] | : - Finding globals in 'X' for chunk #2 ... [08:52:26.797] | : + additional globals found: [n=0] [08:52:26.797] | : + additional namespaces needed: [n=0] [08:52:26.797] | : - Finding globals in 'X' for chunk #2 ... DONE [08:52:26.797] | : - Adjusted option 'future.globals.maxSize': 2306 -> 2 * 2306 = 4611 (bytes) [08:52:26.798] | : - seeds: [08:52:26.798] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.861] | : Created future: [08:52:26.861] | : MultisessionFuture: [08:52:26.861] | : Label: 'future_lapply-2' [08:52:26.861] | : Expression: [08:52:26.861] | : { [08:52:26.861] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.861] | : "# expression in do.call(), because function called uses '...' " [08:52:26.861] | : "# as a global variable " [08:52:26.861] | : do.call(function(...) { [08:52:26.861] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.861] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.861] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.861] | : "# anonymous function. " [08:52:26.861] | : "# " [08:52:26.861] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.861] | : "# function environment of FUN() to the calling environment. " [08:52:26.861] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.861] | : "# global environment, which is where globals are written. " [08:52:26.861] | : penv <- env <- environment(...future.FUN) [08:52:26.861] | : repeat { [08:52:26.861] | : if (identical(env, globalenv()) || identical(env, [08:52:26.861] | : emptyenv())) [08:52:26.861] | : break [08:52:26.861] | : penv <- env [08:52:26.861] | : env <- parent.env(env) [08:52:26.861] | : } [08:52:26.861] | : if (identical(penv, globalenv())) { [08:52:26.861] | : environment(...future.FUN) <- environment() [08:52:26.861] | : } [08:52:26.861] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.861] | : !isNamespace(penv)) { [08:52:26.861] | : parent.env(penv) <- environment() [08:52:26.861] | : } [08:52:26.861] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.861] | : { [08:52:26.861] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.861] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.861] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.861] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.861] | : on.exit(options(oopts), add = TRUE) [08:52:26.861] | : } [08:52:26.861] | : { [08:52:26.861] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.861] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.861] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.861] | : { [08:52:26.861] | : ...future.FUN(...future.X_jj, ...) [08:52:26.861] | : } [08:52:26.861] | : }) [08:52:26.861] | : } [08:52:26.861] | : } [08:52:26.861] | : }, args = future.call.arguments) [08:52:26.861] | : } [08:52:26.861] | : 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) [08:52:26.861] | : Packages: [08:52:26.861] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.861] | : Capture standard output: TRUE [08:52:26.861] | : Capture condition classes: 'condition' (excluding '') [08:52:26.861] | : Immediate condition classes: 'immediateCondition' [08:52:26.861] | : Lazy evaluation: FALSE [08:52:26.861] | : Local evaluation: TRUE [08:52:26.861] | : Asynchronous evaluation: TRUE [08:52:26.861] | : Early signaling: FALSE [08:52:26.861] | : Environment: R_GlobalEnv [08:52:26.861] | : State: 'running' [08:52:26.861] | : Resolved: TRUE [08:52:26.861] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-51 [08:52:26.861] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.861] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.861] | : Value: [08:52:26.861] | : Conditions captured: [08:52:26.868] | : Chunk #2 of 2 ... DONE [08:52:26.868] | : Launching 2 futures (chunks) ... DONE [08:52:26.868] | : Resolving 2 futures (chunks) ... [08:52:26.870] | : - Number of value chunks collected: 2 [08:52:26.870] | : Resolving 2 futures (chunks) ... DONE [08:52:26.870] | : Reducing values from 2 chunks ... [08:52:26.870] | : - Number of values collected after concatenation: 10 [08:52:26.871] | : - Number of values expected: 10 [08:52:26.871] | : Reducing values from 2 chunks ... DONE [08:52:26.871] | future_lapply() -> future_xapply() ... done [08:52:26.871] 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 [08:52:26.878] future_lapply() ... [08:52:26.879] | Globals in FUN(): [n=2] '{', 'getOption' [08:52:26.879] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:26.879] | future_lapply() -> future_xapply() ... [08:52:26.880] | : Number of chunks: 1 [08:52:26.880] | : getGlobalsAndPackagesXApply() ... [08:52:26.880] | : . future.globals: TRUE [08:52:26.889] | : . globals found/used: [n=1] 'FUN' [08:52:26.889] | : . needed namespaces: [n=0] [08:52:26.890] | : . use_args: TRUE [08:52:26.890] | : . Getting '...' globals ... [08:52:26.891] | : . ' '...' content: [n=0] [08:52:26.891] | : . ' List of 1 [08:52:26.891] | : . ' $ ...: list() [08:52:26.891] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:26.891] | : . ' - attr(*, "where")=List of 1 [08:52:26.891] | : . ' ..$ ...: [08:52:26.891] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:26.891] | : . ' - attr(*, "resolved")= logi TRUE [08:52:26.891] | : . ' - attr(*, "total_size")= num NA [08:52:26.895] | : . Getting '...' globals ... done [08:52:26.896] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:26.896] | : . List of 2 [08:52:26.896] | : . $ ...future.FUN:function (x) [08:52:26.896] | : . $ ... : list() [08:52:26.896] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:26.896] | : . - attr(*, "where")=List of 2 [08:52:26.896] | : . ..$ ...future.FUN: [08:52:26.896] | : . ..$ ... : [08:52:26.896] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:26.896] | : . - attr(*, "resolved")= logi FALSE [08:52:26.896] | : . - attr(*, "total_size")= num 5085 [08:52:26.901] | : . Packages to be attached in all futures: [n=0] [08:52:26.901] | : getGlobalsAndPackagesXApply() ... done [08:52:26.901] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.902] | : List of 5 [08:52:26.902] | : $ ...future.FUN :function (x) [08:52:26.902] | : $ ... : list() [08:52:26.902] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:26.902] | : $ ...future.elements_ii : NULL [08:52:26.902] | : $ ...future.seeds_ii : NULL [08:52:26.902] | : $ ...future.globals.maxSize: NULL [08:52:26.902] | : - attr(*, "where")=List of 5 [08:52:26.902] | : ..$ ...future.FUN : [08:52:26.902] | : ..$ ... : [08:52:26.902] | : ..$ ...future.elements_ii : [08:52:26.902] | : ..$ ...future.seeds_ii : [08:52:26.902] | : ..$ ...future.globals.maxSize: [08:52:26.902] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:26.902] | : - attr(*, "resolved")= logi FALSE [08:52:26.902] | : - attr(*, "total_size")= num 5085 [08:52:26.909] | : Number of futures (= number of chunks): 1 [08:52:26.909] | : Launching 1 futures (chunks) ... [08:52:26.909] | : Chunk #1 of 1 ... [08:52:26.910] | : - Finding globals in 'X' for chunk #1 ... [08:52:26.910] | : + additional globals found: [n=0] [08:52:26.911] | : + additional namespaces needed: [n=0] [08:52:26.911] | : - Finding globals in 'X' for chunk #1 ... DONE [08:52:26.911] | : - seeds: [08:52:26.911] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:26.993] | : Created future: [08:52:26.993] | : MultisessionFuture: [08:52:26.993] | : Label: 'future_lapply-1' [08:52:26.993] | : Expression: [08:52:26.993] | : { [08:52:26.993] | : "# future::getGlobalsAndPackages(): wrapping the original future" [08:52:26.993] | : "# expression in do.call(), because function called uses '...' " [08:52:26.993] | : "# as a global variable " [08:52:26.993] | : do.call(function(...) { [08:52:26.993] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [08:52:26.993] | : "# without having an '...' argument. This means '...' is treated" [08:52:26.993] | : "# as a global variable. This may happen when FUN() is an " [08:52:26.993] | : "# anonymous function. " [08:52:26.993] | : "# " [08:52:26.993] | : "# If an anonymous function, we will make sure to restore the " [08:52:26.993] | : "# function environment of FUN() to the calling environment. " [08:52:26.993] | : "# We assume FUN() an anonymous function if it lives in the " [08:52:26.993] | : "# global environment, which is where globals are written. " [08:52:26.993] | : penv <- env <- environment(...future.FUN) [08:52:26.993] | : repeat { [08:52:26.993] | : if (identical(env, globalenv()) || identical(env, [08:52:26.993] | : emptyenv())) [08:52:26.993] | : break [08:52:26.993] | : penv <- env [08:52:26.993] | : env <- parent.env(env) [08:52:26.993] | : } [08:52:26.993] | : if (identical(penv, globalenv())) { [08:52:26.993] | : environment(...future.FUN) <- environment() [08:52:26.993] | : } [08:52:26.993] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [08:52:26.993] | : !isNamespace(penv)) { [08:52:26.993] | : parent.env(penv) <- environment() [08:52:26.993] | : } [08:52:26.993] | : rm(list = c("env", "penv"), inherits = FALSE) [08:52:26.993] | : { [08:52:26.993] | : "# future.apply:::future_xapply(): preserve future option" [08:52:26.993] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [08:52:26.993] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [08:52:26.993] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [08:52:26.993] | : on.exit(options(oopts), add = TRUE) [08:52:26.993] | : } [08:52:26.993] | : { [08:52:26.993] | : "# future.apply::future_lapply(): process chunk of elements" [08:52:26.993] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [08:52:26.993] | : ...future.X_jj <- ...future.elements_ii[[jj]] [08:52:26.993] | : { [08:52:26.993] | : ...future.FUN(...future.X_jj, ...) [08:52:26.993] | : } [08:52:26.993] | : }) [08:52:26.993] | : } [08:52:26.993] | : } [08:52:26.993] | : }, args = future.call.arguments) [08:52:26.993] | : } [08:52:26.993] | : 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) [08:52:26.993] | : Packages: [08:52:26.993] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [08:52:26.993] | : Capture standard output: TRUE [08:52:26.993] | : Capture condition classes: 'condition' (excluding '') [08:52:26.993] | : Immediate condition classes: 'immediateCondition' [08:52:26.993] | : Lazy evaluation: FALSE [08:52:26.993] | : Local evaluation: TRUE [08:52:26.993] | : Asynchronous evaluation: TRUE [08:52:26.993] | : Early signaling: FALSE [08:52:26.993] | : Environment: R_GlobalEnv [08:52:26.993] | : State: 'running' [08:52:26.993] | : Resolved: TRUE [08:52:26.993] | : Unique identifier: 58e997ccba8e6bd9c3e7ca0a6ef8b876-52 [08:52:26.993] | : Owner process: 58e997ccba8e6bd9c3e7ca0a6ef8b876 [08:52:26.993] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:52:26.993] | : Value: [08:52:26.993] | : Conditions captured: [08:52:26.999] | : Chunk #1 of 1 ... DONE [08:52:27.000] | : Launching 1 futures (chunks) ... DONE [08:52:27.000] | : Resolving 1 futures (chunks) ... [08:52:27.000] | : - Number of value chunks collected: 1 [08:52:27.001] | : Resolving 1 futures (chunks) ... DONE [08:52:27.001] | : Reducing values from 1 chunks ... [08:52:27.001] | : - Number of values collected after concatenation: 10 [08:52:27.001] | : - Number of values expected: 10 [08:52:27.001] | : Reducing values from 1 chunks ... DONE [08:52:27.002] | future_lapply() -> future_xapply() ... done [08:52:27.002] 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) [08:52:27.008] future_lapply() ... [08:52:27.009] | Globals in FUN(): [n=0] [08:52:27.009] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:27.009] | future_lapply() -> future_xapply() ... [08:52:27.010] | : Number of chunks: 1 [08:52:27.010] | : getGlobalsAndPackagesXApply() ... [08:52:27.010] | : getGlobalsAndPackagesXApply() ... done [08:52:27.010] | future_lapply() -> future_xapply() ... done [08:52:27.010] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- tryCatch({ + y <- future_lapply(1, FUN = function(x) x, future.globals = list(1)) + }, error = identity) [08:52:27.011] future_lapply() ... [08:52:27.011] | Globals in FUN(): [n=0] [08:52:27.011] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:27.012] | future_lapply() -> future_xapply() ... [08:52:27.012] | : Number of chunks: 1 [08:52:27.012] | : getGlobalsAndPackagesXApply() ... [08:52:27.012] | : . future.globals: with names [08:52:27.012] | : getGlobalsAndPackagesXApply() ... done [08:52:27.013] | future_lapply() -> future_xapply() ... done [08:52:27.013] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- tryCatch({ + y <- future_lapply(1, FUN = function(x) x, future.globals = "...future.FUN") + }, error = identity) [08:52:27.013] future_lapply() ... [08:52:27.014] | Globals in FUN(): [n=0] [08:52:27.014] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:27.014] | future_lapply() -> future_xapply() ... [08:52:27.014] | : Number of chunks: 1 [08:52:27.015] | : getGlobalsAndPackagesXApply() ... [08:52:27.015] | : . future.globals: '...future.FUN' [08:52:27.015] | : . use_args: TRUE [08:52:27.016] | : getGlobalsAndPackagesXApply() ... done [08:52:27.016] | future_lapply() -> future_xapply() ... done [08:52:27.016] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- tryCatch({ + y <- future_lapply(1, FUN = function(x) x, future.globals = "...future.FUN") + }, error = identity) [08:52:27.017] future_lapply() ... [08:52:27.017] | Globals in FUN(): [n=0] [08:52:27.018] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:27.018] | future_lapply() -> future_xapply() ... [08:52:27.018] | : Number of chunks: 1 [08:52:27.019] | : getGlobalsAndPackagesXApply() ... [08:52:27.019] | : . future.globals: '...future.FUN' [08:52:27.019] | : . use_args: TRUE [08:52:27.020] | : getGlobalsAndPackagesXApply() ... done [08:52:27.020] | future_lapply() -> future_xapply() ... done [08:52:27.020] 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) [08:52:27.021] future_lapply() ... [08:52:27.021] | Globals in FUN(): [n=0] [08:52:27.022] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [08:52:27.022] | future_lapply() -> future_xapply() ... [08:52:27.022] | : Number of chunks: 1 [08:52:27.022] | : getGlobalsAndPackagesXApply() ... [08:52:27.022] | : . future.globals: TRUE [08:52:27.027] | : . globals found/used: [n=1] 'FUN' [08:52:27.027] | : . needed namespaces: [n=0] [08:52:27.028] | : . use_args: TRUE [08:52:27.028] | : . Getting '...' globals ... [08:52:27.028] | : . ' '...' content: [n=0] [08:52:27.028] | : . ' List of 1 [08:52:27.028] | : . ' $ ...: list() [08:52:27.028] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:27.028] | : . ' - attr(*, "where")=List of 1 [08:52:27.028] | : . ' ..$ ...: [08:52:27.028] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:27.028] | : . ' - attr(*, "resolved")= logi TRUE [08:52:27.028] | : . ' - attr(*, "total_size")= num NA [08:52:27.033] | : . Getting '...' globals ... done [08:52:27.033] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [08:52:27.034] | : . List of 2 [08:52:27.034] | : . $ ...future.FUN:function (f) [08:52:27.034] | : . $ ... : list() [08:52:27.034] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:27.034] | : . - attr(*, "where")=List of 2 [08:52:27.034] | : . ..$ ...future.FUN: [08:52:27.034] | : . ..$ ... : [08:52:27.034] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:27.034] | : . - attr(*, "resolved")= logi FALSE [08:52:27.034] | : . - attr(*, "total_size")= num 3255 [08:52:27.038] | : . Packages to be attached in all futures: [n=0] [08:52:27.039] | : getGlobalsAndPackagesXApply() ... done [08:52:27.039] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [08:52:27.039] | : List of 5 [08:52:27.039] | : $ ...future.FUN :function (f) [08:52:27.039] | : $ ... : list() [08:52:27.039] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [08:52:27.039] | : $ ...future.elements_ii : NULL [08:52:27.039] | : $ ...future.seeds_ii : NULL [08:52:27.039] | : $ ...future.globals.maxSize: NULL [08:52:27.039] | : - attr(*, "where")=List of 5 [08:52:27.039] | : ..$ ...future.FUN : [08:52:27.039] | : ..$ ... : [08:52:27.039] | : ..$ ...future.elements_ii : [08:52:27.039] | : ..$ ...future.seeds_ii : [08:52:27.039] | : ..$ ...future.globals.maxSize: [08:52:27.039] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [08:52:27.039] | : - attr(*, "resolved")= logi FALSE [08:52:27.039] | : - attr(*, "total_size")= num 3255 [08:52:27.046] | : Number of futures (= number of chunks): 1 [08:52:27.047] | : Launching 1 futures (chunks) ... [08:52:27.047] | : Chunk #1 of 1 ... [08:52:27.047] | : - Finding globals in 'X' for chunk #1 ... [08:52:27.056] | : + additional globals found: [n=1] '...future.elements_ii' [08:52:27.059] | : + additional namespaces needed: [n=0] [08:52:27.059] | : onError() ... [08:52:27.059] | : . Received Warning: Caught simpleError. Canceling all iterations ... [08:52:27.060] | : . Signaling: [08:52:27.060] | : onError() ... done [08:52:27.060] | future_lapply() -> future_xapply() ... done [08:52:27.060] future_lapply() ... done > stopifnot(inherits(res, "error")) > message("*** future_lapply() - globals exceptions ... DONE") *** future_lapply() - globals exceptions ... DONE Sourcing 6 epilogue scripts ... 01/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_epilogue/001.undo-future.R' 02/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_epilogue/002.undo-state.R' Failed to undo environment variables: - Expected environment variables: [n=213] '!ExitCode', 'ALLUSERSPROFILE', 'APPDATA', 'BIBINPUTS', 'BINDIR', 'BSTINPUTS', 'COMMONPROGRAMFILES', 'COMPUTERNAME', 'COMSPEC', 'CURL_CA_BUNDLE', 'CYGWIN', 'CommonProgramFiles(x86)', 'CommonProgramW6432', 'DriverData', 'HOME', 'HOMEDRIVE', 'HOMEPATH', 'JAGS_ROOT', 'JAVA_HOME', 'LANGUAGE', 'LC_COLLATE', 'LC_MONETARY', 'LC_TIME', 'LOCALAPPDATA', 'LOGONSERVER', 'LS_HOME', 'LS_LICENSE_PATH', 'MAKE', 'MAKEFLAGS', 'MAKELEVEL', 'MFLAGS', 'MSMPI_BENCHMARKS', 'MSMPI_BIN', 'MSYS2_ENV_CONV_EXCL', 'NUMBER_OF_PROCESSORS', 'OCL', 'OMP_THREAD_LIMIT', 'OS', 'PATH', 'PATHEXT', 'PROCESSOR_ARCHITECTURE', 'PROCESSOR_IDENTIFIER', 'PROCESSOR_LEVEL', 'PROCESSOR_REVISION', 'PROGRAMFILES', 'PROMPT', 'PSModulePath', 'PUBLIC', 'PWD', 'ProgramData', 'ProgramFiles(x86)', 'ProgramW6432', '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', '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_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_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_SPECIAL__', 'maj.version', 'nextArg--timingsnextArg--install', 'tempdirname' - Environment variables still there: [n=0] - Environment variables missing: [n=1] 'MAKEFLAGS' Differences environment variable by environment variable: 03/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_epilogue/090.gc.R' 04/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_epilogue/099.session_info.R' 05/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_epilogue/995.detritus-connections.R' 06/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future.apply/testme/_epilogue/999.detritus-files.R' Skipping, because path appears not to be an 'R CMD check' folder: 'D:/temp/2025_06_06_08_50_17_9343' Sourcing 6 epilogue scripts ... done Test time: user.self=6s, sys.self=0.3s, elapsed=8s, user.child=NAs, sys.child=NAs Test 'future_lapply,globals' ... success > > proc.time() user system elapsed 6.32 0.51 8.42