R Under development (unstable) (2026-01-16 r89305 ucrt) -- "Unsuffered Consequences" Copyright (C) 2026 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > #! /usr/bin/env Rscript > ## This runs testme test script inst/testme/test-future.apply-future_lapply,globals.R > ## Don't edit - it was autogenerated by inst/testme/deploy.R > futurize:::testme("future.apply-future_lapply,globals") Test 'future.apply-future_lapply,globals' ... chr "none" > library(futurize) 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' [18:22:39.500] future_lapply() ... [18:22:39.508] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [18:22:39.508] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:39.509] | future_lapply() -> future_xapply() ... [18:22:39.510] | : Number of chunks: 1 [18:22:39.511] | : getGlobalsAndPackagesXApply() ... [18:22:39.511] | : . future.globals: FALSE [18:22:39.514] | : . globals found/used: [n=2] 'FUN', 'future.call.arguments' [18:22:39.515] | : . needed namespaces: [n=0] [18:22:39.515] | : . use_args: TRUE [18:22:39.515] | : . Getting '...' globals ... [18:22:39.517] | : . ' '...' content: [n=0] [18:22:39.517] | : . ' List of 1 [18:22:39.517] | : . ' $ ...: list() [18:22:39.517] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.517] | : . ' - attr(*, "where")=List of 1 [18:22:39.517] | : . ' ..$ ...: [18:22:39.517] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.517] | : . ' - attr(*, "resolved")= logi TRUE [18:22:39.517] | : . ' - attr(*, "total_size")= num NA [18:22:39.521] | : . Getting '...' globals ... done [18:22:39.521] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'future.call.arguments', '...' [18:22:39.521] | : . List of 3 [18:22:39.521] | : . $ ...future.FUN :function (x) [18:22:39.521] | : . $ future.call.arguments: list() [18:22:39.521] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.521] | : . $ ... : list() [18:22:39.521] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.521] | : . - attr(*, "where")=List of 3 [18:22:39.521] | : . ..$ ...future.FUN : [18:22:39.521] | : . ..$ future.call.arguments: [18:22:39.521] | : . ..$ ... : [18:22:39.521] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.521] | : . - attr(*, "resolved")= logi FALSE [18:22:39.521] | : . - attr(*, "total_size")= num 3577 [18:22:39.526] | : . Packages to be attached in all futures: [n=1] 'utils' [18:22:39.526] | : getGlobalsAndPackagesXApply() ... done [18:22:39.527] | : Globals pass to each chunk: [n=6] '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.527] | : List of 6 [18:22:39.527] | : $ ...future.FUN :function (x) [18:22:39.527] | : $ future.call.arguments : list() [18:22:39.527] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.527] | : $ ... : list() [18:22:39.527] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.527] | : $ ...future.elements_ii : NULL [18:22:39.527] | : $ ...future.seeds_ii : NULL [18:22:39.527] | : $ ...future.globals.maxSize: NULL [18:22:39.527] | : - attr(*, "where")=List of 6 [18:22:39.527] | : ..$ ...future.FUN : [18:22:39.527] | : ..$ future.call.arguments : [18:22:39.527] | : ..$ ... : [18:22:39.527] | : ..$ ...future.elements_ii : [18:22:39.527] | : ..$ ...future.seeds_ii : [18:22:39.527] | : ..$ ...future.globals.maxSize: [18:22:39.527] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.527] | : - attr(*, "resolved")= logi FALSE [18:22:39.527] | : - attr(*, "total_size")= num 3577 [18:22:39.535] | : Number of futures (= number of chunks): 1 [18:22:39.535] | : Launching 1 futures (chunks) ... [18:22:39.535] | : Chunk #1 of 1 ... [18:22:39.536] | : - seeds: [18:22:39.536] | : - All globals exported: [n=6] '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.541] | : Created future: [18:22:39.541] | : ClusterFuture: [18:22:39.541] | : Label: 'future_lapply-1' [18:22:39.541] | : Expression: [18:22:39.541] | : { [18:22:39.541] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:39.541] | : "# expression in do.call(), because function called uses '...' " [18:22:39.541] | : "# as a global variable " [18:22:39.541] | : do.call(function(...) { [18:22:39.541] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:39.541] | : "# without having an '...' argument. This means '...' is treated" [18:22:39.541] | : "# as a global variable. This may happen when FUN() is an " [18:22:39.541] | : "# anonymous function. " [18:22:39.541] | : "# " [18:22:39.541] | : "# If an anonymous function, we will make sure to restore the " [18:22:39.541] | : "# function environment of FUN() to the calling environment. " [18:22:39.541] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:39.541] | : "# global environment, which is where globals are written. " [18:22:39.541] | : penv <- env <- environment(...future.FUN) [18:22:39.541] | : repeat { [18:22:39.541] | : if (identical(env, globalenv()) || identical(env, [18:22:39.541] | : emptyenv())) [18:22:39.541] | : break [18:22:39.541] | : penv <- env [18:22:39.541] | : env <- parent.env(env) [18:22:39.541] | : } [18:22:39.541] | : if (identical(penv, globalenv())) { [18:22:39.541] | : environment(...future.FUN) <- environment() [18:22:39.541] | : } [18:22:39.541] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:39.541] | : !isNamespace(penv)) { [18:22:39.541] | : parent.env(penv) <- environment() [18:22:39.541] | : } [18:22:39.541] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:39.541] | : { [18:22:39.541] | : "# future.apply:::future_xapply(): preserve future option" [18:22:39.541] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:39.541] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:39.541] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:39.541] | : on.exit(options(oopts), add = TRUE) [18:22:39.541] | : } [18:22:39.541] | : { [18:22:39.541] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:39.541] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:39.541] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:39.541] | : { [18:22:39.541] | : ...future.FUN(...future.X_jj, ...) [18:22:39.541] | : } [18:22:39.541] | : }) [18:22:39.541] | : } [18:22:39.541] | : } [18:22:39.541] | : }, args = future.call.arguments) [18:22:39.541] | : } [18:22:39.541] | : Globals: 5 objects totaling 3.68 KiB (function '...future.FUN' of 174 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) [18:22:39.541] | : Packages: 1 packages ('utils') [18:22:39.541] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:39.541] | : Capture standard output: TRUE [18:22:39.541] | : Capture condition classes: 'condition' (excluding '') [18:22:39.541] | : Immediate condition classes: 'immediateCondition' [18:22:39.541] | : Lazy evaluation: FALSE [18:22:39.541] | : Local evaluation: TRUE [18:22:39.541] | : Early signaling: FALSE [18:22:39.541] | : Actions: [n=1] 'run' [18:22:39.541] | : State: 'running' ("Future is being evaluated") [18:22:39.541] | : Resolved: TRUE [18:22:39.541] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-1 [18:22:39.541] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:39.541] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:39.541] | : Value: [18:22:39.541] | : Conditions captured: [18:22:39.618] | : Chunk #1 of 1 ... DONE [18:22:39.618] | : Launching 1 futures (chunks) ... DONE [18:22:39.619] | : Resolving 1 futures (chunks) ... [18:22:39.621] | : onError() ... [18:22:39.622] | : . Received Warning: Caught simpleError. Canceling all iterations ... [18:22:39.622] | : . Signaling: [18:22:39.623] | : onError() ... done [18:22:39.623] | future_lapply() -> future_xapply() ... done [18:22:39.623] future_lapply() ... done Globals set 'B' [18:22:39.624] future_lapply() ... [18:22:39.625] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [18:22:39.625] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:39.626] | future_lapply() -> future_xapply() ... [18:22:39.626] | : Number of chunks: 1 [18:22:39.626] | : getGlobalsAndPackagesXApply() ... [18:22:39.626] | : . future.globals: TRUE [18:22:39.643] | : . globals found/used: [n=3] 'FUN', 'a', 'b' [18:22:39.644] | : . needed namespaces: [n=1] 'stats' [18:22:39.644] | : . use_args: TRUE [18:22:39.644] | : . Getting '...' globals ... [18:22:39.645] | : . ' '...' content: [n=0] [18:22:39.645] | : . ' List of 1 [18:22:39.645] | : . ' $ ...: list() [18:22:39.645] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.645] | : . ' - attr(*, "where")=List of 1 [18:22:39.645] | : . ' ..$ ...: [18:22:39.645] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.645] | : . ' - attr(*, "resolved")= logi TRUE [18:22:39.645] | : . ' - attr(*, "total_size")= num NA [18:22:39.648] | : . Getting '...' globals ... done [18:22:39.648] | : . Globals to be used in all futures (chunks): [n=4] '...future.FUN', 'a', 'b', '...' [18:22:39.648] | : . List of 4 [18:22:39.648] | : . $ ...future.FUN:function (x) [18:22:39.648] | : . $ a : num 1 [18:22:39.648] | : . $ b : num 2 [18:22:39.648] | : . $ ... : list() [18:22:39.648] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.648] | : . - attr(*, "where")=List of 4 [18:22:39.648] | : . ..$ ...future.FUN: [18:22:39.648] | : . ..$ a : [18:22:39.648] | : . ..$ b : [18:22:39.648] | : . ..$ ... : [18:22:39.648] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.648] | : . - attr(*, "resolved")= logi FALSE [18:22:39.648] | : . - attr(*, "total_size")= num 3558 [18:22:39.653] | : . Packages to be attached in all futures: [n=2] 'stats', 'utils' [18:22:39.653] | : getGlobalsAndPackagesXApply() ... done [18:22:39.654] | : Globals pass to each chunk: [n=7] '...future.FUN', 'a', 'b', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.654] | : List of 7 [18:22:39.654] | : $ ...future.FUN :function (x) [18:22:39.654] | : $ a : num 1 [18:22:39.654] | : $ b : num 2 [18:22:39.654] | : $ ... : list() [18:22:39.654] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.654] | : $ ...future.elements_ii : NULL [18:22:39.654] | : $ ...future.seeds_ii : NULL [18:22:39.654] | : $ ...future.globals.maxSize: NULL [18:22:39.654] | : - attr(*, "where")=List of 7 [18:22:39.654] | : ..$ ...future.FUN : [18:22:39.654] | : ..$ a : [18:22:39.654] | : ..$ b : [18:22:39.654] | : ..$ ... : [18:22:39.654] | : ..$ ...future.elements_ii : [18:22:39.654] | : ..$ ...future.seeds_ii : [18:22:39.654] | : ..$ ...future.globals.maxSize: [18:22:39.654] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.654] | : - attr(*, "resolved")= logi FALSE [18:22:39.654] | : - attr(*, "total_size")= num 3558 [18:22:39.660] | : Number of futures (= number of chunks): 1 [18:22:39.661] | : Launching 1 futures (chunks) ... [18:22:39.661] | : Chunk #1 of 1 ... [18:22:39.661] | : - Finding globals in 'X' for chunk #1 ... [18:22:39.662] | : + additional globals found: [n=0] [18:22:39.662] | : + additional namespaces needed: [n=0] [18:22:39.662] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:39.662] | : - seeds: [18:22:39.662] | : - All globals exported: [n=7] '...future.FUN', 'a', 'b', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.665] | : Created future: [18:22:39.665] | : ClusterFuture: [18:22:39.665] | : Label: 'future_lapply-1' [18:22:39.665] | : Expression: [18:22:39.665] | : { [18:22:39.665] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:39.665] | : "# expression in do.call(), because function called uses '...' " [18:22:39.665] | : "# as a global variable " [18:22:39.665] | : do.call(function(...) { [18:22:39.665] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:39.665] | : "# without having an '...' argument. This means '...' is treated" [18:22:39.665] | : "# as a global variable. This may happen when FUN() is an " [18:22:39.665] | : "# anonymous function. " [18:22:39.665] | : "# " [18:22:39.665] | : "# If an anonymous function, we will make sure to restore the " [18:22:39.665] | : "# function environment of FUN() to the calling environment. " [18:22:39.665] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:39.665] | : "# global environment, which is where globals are written. " [18:22:39.665] | : penv <- env <- environment(...future.FUN) [18:22:39.665] | : repeat { [18:22:39.665] | : if (identical(env, globalenv()) || identical(env, [18:22:39.665] | : emptyenv())) [18:22:39.665] | : break [18:22:39.665] | : penv <- env [18:22:39.665] | : env <- parent.env(env) [18:22:39.665] | : } [18:22:39.665] | : if (identical(penv, globalenv())) { [18:22:39.665] | : environment(...future.FUN) <- environment() [18:22:39.665] | : } [18:22:39.665] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:39.665] | : !isNamespace(penv)) { [18:22:39.665] | : parent.env(penv) <- environment() [18:22:39.665] | : } [18:22:39.665] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:39.665] | : { [18:22:39.665] | : "# future.apply:::future_xapply(): preserve future option" [18:22:39.665] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:39.665] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:39.665] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:39.665] | : on.exit(options(oopts), add = TRUE) [18:22:39.665] | : } [18:22:39.665] | : { [18:22:39.665] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:39.665] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:39.665] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:39.665] | : { [18:22:39.665] | : ...future.FUN(...future.X_jj, ...) [18:22:39.665] | : } [18:22:39.665] | : }) [18:22:39.665] | : } [18:22:39.665] | : } [18:22:39.665] | : }, args = future.call.arguments) [18:22:39.665] | : } [18:22:39.665] | : Globals: 7 objects totaling 3.76 KiB (function '...future.FUN' of 174 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, ...) [18:22:39.665] | : Packages: 2 packages ('stats', 'utils') [18:22:39.665] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:39.665] | : Capture standard output: TRUE [18:22:39.665] | : Capture condition classes: 'condition' (excluding '') [18:22:39.665] | : Immediate condition classes: 'immediateCondition' [18:22:39.665] | : Lazy evaluation: FALSE [18:22:39.665] | : Local evaluation: TRUE [18:22:39.665] | : Early signaling: FALSE [18:22:39.665] | : Actions: [n=1] 'run' [18:22:39.665] | : State: 'running' ("Future is being evaluated") [18:22:39.665] | : Resolved: TRUE [18:22:39.665] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-2 [18:22:39.665] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:39.665] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:39.665] | : Value: [18:22:39.665] | : Conditions captured: [18:22:39.670] | : Chunk #1 of 1 ... DONE [18:22:39.670] | : Launching 1 futures (chunks) ... DONE [18:22:39.670] | : Resolving 1 futures (chunks) ... [18:22:39.671] | : - Number of value chunks collected: 1 [18:22:39.671] | : Resolving 1 futures (chunks) ... DONE [18:22:39.672] | : Reducing values from 1 chunks ... [18:22:39.672] | : - Number of values collected after concatenation: 1 [18:22:39.672] | : - Number of values expected: 1 [18:22:39.672] | : Reducing values from 1 chunks ... DONE [18:22:39.672] | future_lapply() -> future_xapply() ... done [18:22:39.672] future_lapply() ... done [[1]] [1] 1 Globals set 'C' [18:22:39.673] future_lapply() ... [18:22:39.674] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [18:22:39.674] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:39.675] | future_lapply() -> future_xapply() ... [18:22:39.675] | : Number of chunks: 1 [18:22:39.675] | : getGlobalsAndPackagesXApply() ... [18:22:39.675] | : . future.globals: 'a', 'b' [18:22:39.676] | : . use_args: TRUE [18:22:39.676] | : . Globals to be used in all futures (chunks): [n=4] 'a', 'b', '...future.FUN', '...' [18:22:39.676] | : . List of 4 [18:22:39.676] | : . $ a : num 1 [18:22:39.676] | : . $ b : num 2 [18:22:39.676] | : . $ ...future.FUN:function (x) [18:22:39.676] | : . $ ... : list() [18:22:39.676] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.676] | : . - attr(*, "where")=List of 4 [18:22:39.676] | : . ..$ a : [18:22:39.676] | : . ..$ b : [18:22:39.676] | : . ..$ ...future.FUN: [18:22:39.676] | : . ..$ ... : [18:22:39.676] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.676] | : . - attr(*, "resolved")= logi FALSE [18:22:39.676] | : . - attr(*, "total_size")= num NA [18:22:39.681] | : . Packages to be attached in all futures: [n=1] 'utils' [18:22:39.681] | : getGlobalsAndPackagesXApply() ... done [18:22:39.681] | : Globals pass to each chunk: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.682] | : List of 7 [18:22:39.682] | : $ a : num 1 [18:22:39.682] | : $ b : num 2 [18:22:39.682] | : $ ...future.FUN :function (x) [18:22:39.682] | : $ ... : list() [18:22:39.682] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.682] | : $ ...future.elements_ii : NULL [18:22:39.682] | : $ ...future.seeds_ii : NULL [18:22:39.682] | : $ ...future.globals.maxSize: NULL [18:22:39.682] | : - attr(*, "where")=List of 7 [18:22:39.682] | : ..$ a : [18:22:39.682] | : ..$ b : [18:22:39.682] | : ..$ ...future.FUN : [18:22:39.682] | : ..$ ... : [18:22:39.682] | : ..$ ...future.elements_ii : [18:22:39.682] | : ..$ ...future.seeds_ii : [18:22:39.682] | : ..$ ...future.globals.maxSize: [18:22:39.682] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.682] | : - attr(*, "resolved")= logi FALSE [18:22:39.682] | : - attr(*, "total_size")= num NA [18:22:39.688] | : Number of futures (= number of chunks): 1 [18:22:39.688] | : Launching 1 futures (chunks) ... [18:22:39.689] | : Chunk #1 of 1 ... [18:22:39.689] | : - seeds: [18:22:39.689] | : - All globals exported: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.691] | : Created future: [18:22:39.691] | : ClusterFuture: [18:22:39.691] | : Label: 'future_lapply-1' [18:22:39.691] | : Expression: [18:22:39.691] | : { [18:22:39.691] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:39.691] | : "# expression in do.call(), because function called uses '...' " [18:22:39.691] | : "# as a global variable " [18:22:39.691] | : do.call(function(...) { [18:22:39.691] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:39.691] | : "# without having an '...' argument. This means '...' is treated" [18:22:39.691] | : "# as a global variable. This may happen when FUN() is an " [18:22:39.691] | : "# anonymous function. " [18:22:39.691] | : "# " [18:22:39.691] | : "# If an anonymous function, we will make sure to restore the " [18:22:39.691] | : "# function environment of FUN() to the calling environment. " [18:22:39.691] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:39.691] | : "# global environment, which is where globals are written. " [18:22:39.691] | : penv <- env <- environment(...future.FUN) [18:22:39.691] | : repeat { [18:22:39.691] | : if (identical(env, globalenv()) || identical(env, [18:22:39.691] | : emptyenv())) [18:22:39.691] | : break [18:22:39.691] | : penv <- env [18:22:39.691] | : env <- parent.env(env) [18:22:39.691] | : } [18:22:39.691] | : if (identical(penv, globalenv())) { [18:22:39.691] | : environment(...future.FUN) <- environment() [18:22:39.691] | : } [18:22:39.691] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:39.691] | : !isNamespace(penv)) { [18:22:39.691] | : parent.env(penv) <- environment() [18:22:39.691] | : } [18:22:39.691] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:39.691] | : { [18:22:39.691] | : "# future.apply:::future_xapply(): preserve future option" [18:22:39.691] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:39.691] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:39.691] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:39.691] | : on.exit(options(oopts), add = TRUE) [18:22:39.691] | : } [18:22:39.691] | : { [18:22:39.691] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:39.691] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:39.691] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:39.691] | : { [18:22:39.691] | : ...future.FUN(...future.X_jj, ...) [18:22:39.691] | : } [18:22:39.691] | : }) [18:22:39.691] | : } [18:22:39.691] | : } [18:22:39.691] | : }, args = future.call.arguments) [18:22:39.691] | : } [18:22:39.691] | : Globals: 7 objects totaling 3.78 KiB (function '...future.FUN' of 174 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, ...) [18:22:39.691] | : Packages: 1 packages ('utils') [18:22:39.691] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:39.691] | : Capture standard output: TRUE [18:22:39.691] | : Capture condition classes: 'condition' (excluding '') [18:22:39.691] | : Immediate condition classes: 'immediateCondition' [18:22:39.691] | : Lazy evaluation: FALSE [18:22:39.691] | : Local evaluation: TRUE [18:22:39.691] | : Early signaling: FALSE [18:22:39.691] | : Actions: [n=1] 'run' [18:22:39.691] | : State: 'running' ("Future is being evaluated") [18:22:39.691] | : Resolved: TRUE [18:22:39.691] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-3 [18:22:39.691] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:39.691] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:39.691] | : Value: [18:22:39.691] | : Conditions captured: [18:22:39.696] | : Chunk #1 of 1 ... DONE [18:22:39.696] | : Launching 1 futures (chunks) ... DONE [18:22:39.696] | : Resolving 1 futures (chunks) ... [18:22:39.697] | : - Number of value chunks collected: 1 [18:22:39.697] | : Resolving 1 futures (chunks) ... DONE [18:22:39.697] | : Reducing values from 1 chunks ... [18:22:39.697] | : - Number of values collected after concatenation: 1 [18:22:39.698] | : - Number of values expected: 1 [18:22:39.698] | : Reducing values from 1 chunks ... DONE [18:22:39.698] | future_lapply() -> future_xapply() ... done [18:22:39.698] future_lapply() ... done [[1]] [1] 1 Globals set 'D' [18:22:39.699] future_lapply() ... [18:22:39.700] | Globals in FUN(): [n=5] '{', 'median', 'c', 'a', 'b' [18:22:39.700] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:39.700] | future_lapply() -> future_xapply() ... [18:22:39.700] | : Number of chunks: 1 [18:22:39.701] | : getGlobalsAndPackagesXApply() ... [18:22:39.701] | : . future.globals: with names 'a', 'b' [18:22:39.701] | : . use_args: TRUE [18:22:39.701] | : . Getting '...' globals ... [18:22:39.702] | : . ' '...' content: [n=0] [18:22:39.702] | : . ' List of 1 [18:22:39.702] | : . ' $ ...: list() [18:22:39.702] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.702] | : . ' - attr(*, "where")=List of 1 [18:22:39.702] | : . ' ..$ ...: [18:22:39.702] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.702] | : . ' - attr(*, "resolved")= logi TRUE [18:22:39.702] | : . ' - attr(*, "total_size")= num NA [18:22:39.705] | : . Getting '...' globals ... done [18:22:39.705] | : . Globals to be used in all futures (chunks): [n=4] 'a', 'b', '...future.FUN', '...' [18:22:39.706] | : . List of 4 [18:22:39.706] | : . $ a : num 2 [18:22:39.706] | : . $ b : num 3 [18:22:39.706] | : . $ ...future.FUN:function (x) [18:22:39.706] | : . $ ... : list() [18:22:39.706] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.706] | : . - attr(*, "where")=List of 4 [18:22:39.706] | : . ..$ a : [18:22:39.706] | : . ..$ b : [18:22:39.706] | : . ..$ ...future.FUN: [18:22:39.706] | : . ..$ ... : [18:22:39.706] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.706] | : . - attr(*, "resolved")= logi FALSE [18:22:39.706] | : . - attr(*, "total_size")= num NA [18:22:39.710] | : . Packages to be attached in all futures: [n=1] 'utils' [18:22:39.711] | : getGlobalsAndPackagesXApply() ... done [18:22:39.711] | : Globals pass to each chunk: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.711] | : List of 7 [18:22:39.711] | : $ a : num 2 [18:22:39.711] | : $ b : num 3 [18:22:39.711] | : $ ...future.FUN :function (x) [18:22:39.711] | : $ ... : list() [18:22:39.711] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.711] | : $ ...future.elements_ii : NULL [18:22:39.711] | : $ ...future.seeds_ii : NULL [18:22:39.711] | : $ ...future.globals.maxSize: NULL [18:22:39.711] | : - attr(*, "where")=List of 7 [18:22:39.711] | : ..$ a : [18:22:39.711] | : ..$ b : [18:22:39.711] | : ..$ ...future.FUN : [18:22:39.711] | : ..$ ... : [18:22:39.711] | : ..$ ...future.elements_ii : [18:22:39.711] | : ..$ ...future.seeds_ii : [18:22:39.711] | : ..$ ...future.globals.maxSize: [18:22:39.711] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.711] | : - attr(*, "resolved")= logi FALSE [18:22:39.711] | : - attr(*, "total_size")= num NA [18:22:39.718] | : Number of futures (= number of chunks): 1 [18:22:39.718] | : Launching 1 futures (chunks) ... [18:22:39.718] | : Chunk #1 of 1 ... [18:22:39.719] | : - seeds: [18:22:39.719] | : - All globals exported: [n=7] 'a', 'b', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.721] | : Created future: [18:22:39.721] | : ClusterFuture: [18:22:39.721] | : Label: 'future_lapply-1' [18:22:39.721] | : Expression: [18:22:39.721] | : { [18:22:39.721] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:39.721] | : "# expression in do.call(), because function called uses '...' " [18:22:39.721] | : "# as a global variable " [18:22:39.721] | : do.call(function(...) { [18:22:39.721] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:39.721] | : "# without having an '...' argument. This means '...' is treated" [18:22:39.721] | : "# as a global variable. This may happen when FUN() is an " [18:22:39.721] | : "# anonymous function. " [18:22:39.721] | : "# " [18:22:39.721] | : "# If an anonymous function, we will make sure to restore the " [18:22:39.721] | : "# function environment of FUN() to the calling environment. " [18:22:39.721] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:39.721] | : "# global environment, which is where globals are written. " [18:22:39.721] | : penv <- env <- environment(...future.FUN) [18:22:39.721] | : repeat { [18:22:39.721] | : if (identical(env, globalenv()) || identical(env, [18:22:39.721] | : emptyenv())) [18:22:39.721] | : break [18:22:39.721] | : penv <- env [18:22:39.721] | : env <- parent.env(env) [18:22:39.721] | : } [18:22:39.721] | : if (identical(penv, globalenv())) { [18:22:39.721] | : environment(...future.FUN) <- environment() [18:22:39.721] | : } [18:22:39.721] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:39.721] | : !isNamespace(penv)) { [18:22:39.721] | : parent.env(penv) <- environment() [18:22:39.721] | : } [18:22:39.721] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:39.721] | : { [18:22:39.721] | : "# future.apply:::future_xapply(): preserve future option" [18:22:39.721] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:39.721] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:39.721] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:39.721] | : on.exit(options(oopts), add = TRUE) [18:22:39.721] | : } [18:22:39.721] | : { [18:22:39.721] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:39.721] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:39.721] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:39.721] | : { [18:22:39.721] | : ...future.FUN(...future.X_jj, ...) [18:22:39.721] | : } [18:22:39.721] | : }) [18:22:39.721] | : } [18:22:39.721] | : } [18:22:39.721] | : }, args = future.call.arguments) [18:22:39.721] | : } [18:22:39.721] | : Globals: 7 objects totaling 3.88 KiB (function '...future.FUN' of 174 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, ...) [18:22:39.721] | : Packages: 1 packages ('utils') [18:22:39.721] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:39.721] | : Capture standard output: TRUE [18:22:39.721] | : Capture condition classes: 'condition' (excluding '') [18:22:39.721] | : Immediate condition classes: 'immediateCondition' [18:22:39.721] | : Lazy evaluation: FALSE [18:22:39.721] | : Local evaluation: TRUE [18:22:39.721] | : Early signaling: FALSE [18:22:39.721] | : Actions: [n=1] 'run' [18:22:39.721] | : State: 'running' ("Future is being evaluated") [18:22:39.721] | : Resolved: TRUE [18:22:39.721] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-4 [18:22:39.721] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:39.721] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:39.721] | : Value: [18:22:39.721] | : Conditions captured: [18:22:39.726] | : Chunk #1 of 1 ... DONE [18:22:39.726] | : Launching 1 futures (chunks) ... DONE [18:22:39.726] | : Resolving 1 futures (chunks) ... [18:22:39.727] | : - Number of value chunks collected: 1 [18:22:39.727] | : Resolving 1 futures (chunks) ... DONE [18:22:39.727] | : Reducing values from 1 chunks ... [18:22:39.727] | : - Number of values collected after concatenation: 1 [18:22:39.727] | : - Number of values expected: 1 [18:22:39.727] | : Reducing values from 1 chunks ... DONE [18:22:39.728] | future_lapply() -> future_xapply() ... done [18:22:39.728] 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 <- futurize(lapply(1:2, FUN = function(x) { + x * d + }), globals = structure(FALSE, add = "d")) [18:22:39.729] future_lapply() ... [18:22:39.730] | Globals in FUN(): [n=3] '{', '*', 'd' [18:22:39.730] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:39.730] | future_lapply() -> future_xapply() ... [18:22:39.730] | : Number of chunks: 1 [18:22:39.731] | : getGlobalsAndPackagesXApply() ... [18:22:39.731] | : . future.globals: FALSE [18:22:39.732] | : . globals found/used: [n=3] 'd', 'FUN', 'future.call.arguments' [18:22:39.732] | : . needed namespaces: [n=0] [18:22:39.732] | : . use_args: TRUE [18:22:39.732] | : . Getting '...' globals ... [18:22:39.733] | : . ' '...' content: [n=0] [18:22:39.733] | : . ' List of 1 [18:22:39.733] | : . ' $ ...: list() [18:22:39.733] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.733] | : . ' - attr(*, "where")=List of 1 [18:22:39.733] | : . ' ..$ ...: [18:22:39.733] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.733] | : . ' - attr(*, "resolved")= logi TRUE [18:22:39.733] | : . ' - attr(*, "total_size")= num NA [18:22:39.736] | : . Getting '...' globals ... done [18:22:39.736] | : . Globals to be used in all futures (chunks): [n=4] 'd', '...future.FUN', 'future.call.arguments', '...' [18:22:39.736] | : . List of 4 [18:22:39.736] | : . $ d : num 42 [18:22:39.736] | : . $ ...future.FUN :function (x) [18:22:39.736] | : . $ future.call.arguments: list() [18:22:39.736] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.736] | : . $ ... : list() [18:22:39.736] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.736] | : . - attr(*, "where")=List of 4 [18:22:39.736] | : . ..$ d : [18:22:39.736] | : . ..$ ...future.FUN : [18:22:39.736] | : . ..$ future.call.arguments: [18:22:39.736] | : . ..$ ... : [18:22:39.736] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.736] | : . - attr(*, "resolved")= logi FALSE [18:22:39.736] | : . - attr(*, "total_size")= num 3694 [18:22:39.742] | : . Packages to be attached in all futures: [n=0] [18:22:39.742] | : getGlobalsAndPackagesXApply() ... done [18:22:39.742] | : Globals pass to each chunk: [n=7] 'd', '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.742] | : List of 7 [18:22:39.742] | : $ d : num 42 [18:22:39.742] | : $ ...future.FUN :function (x) [18:22:39.742] | : $ future.call.arguments : list() [18:22:39.742] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.742] | : $ ... : list() [18:22:39.742] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.742] | : $ ...future.elements_ii : NULL [18:22:39.742] | : $ ...future.seeds_ii : NULL [18:22:39.742] | : $ ...future.globals.maxSize: NULL [18:22:39.742] | : - attr(*, "where")=List of 7 [18:22:39.742] | : ..$ d : [18:22:39.742] | : ..$ ...future.FUN : [18:22:39.742] | : ..$ future.call.arguments : [18:22:39.742] | : ..$ ... : [18:22:39.742] | : ..$ ...future.elements_ii : [18:22:39.742] | : ..$ ...future.seeds_ii : [18:22:39.742] | : ..$ ...future.globals.maxSize: [18:22:39.742] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.742] | : - attr(*, "resolved")= logi FALSE [18:22:39.742] | : - attr(*, "total_size")= num 3694 [18:22:39.749] | : Number of futures (= number of chunks): 1 [18:22:39.749] | : Launching 1 futures (chunks) ... [18:22:39.749] | : Chunk #1 of 1 ... [18:22:39.750] | : - seeds: [18:22:39.750] | : - All globals exported: [n=7] 'd', '...future.FUN', 'future.call.arguments', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.752] | : Created future: [18:22:39.752] | : ClusterFuture: [18:22:39.752] | : Label: 'future_lapply-1' [18:22:39.752] | : Expression: [18:22:39.752] | : { [18:22:39.752] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:39.752] | : "# expression in do.call(), because function called uses '...' " [18:22:39.752] | : "# as a global variable " [18:22:39.752] | : do.call(function(...) { [18:22:39.752] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:39.752] | : "# without having an '...' argument. This means '...' is treated" [18:22:39.752] | : "# as a global variable. This may happen when FUN() is an " [18:22:39.752] | : "# anonymous function. " [18:22:39.752] | : "# " [18:22:39.752] | : "# If an anonymous function, we will make sure to restore the " [18:22:39.752] | : "# function environment of FUN() to the calling environment. " [18:22:39.752] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:39.752] | : "# global environment, which is where globals are written. " [18:22:39.752] | : penv <- env <- environment(...future.FUN) [18:22:39.752] | : repeat { [18:22:39.752] | : if (identical(env, globalenv()) || identical(env, [18:22:39.752] | : emptyenv())) [18:22:39.752] | : break [18:22:39.752] | : penv <- env [18:22:39.752] | : env <- parent.env(env) [18:22:39.752] | : } [18:22:39.752] | : if (identical(penv, globalenv())) { [18:22:39.752] | : environment(...future.FUN) <- environment() [18:22:39.752] | : } [18:22:39.752] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:39.752] | : !isNamespace(penv)) { [18:22:39.752] | : parent.env(penv) <- environment() [18:22:39.752] | : } [18:22:39.752] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:39.752] | : { [18:22:39.752] | : "# future.apply:::future_xapply(): preserve future option" [18:22:39.752] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:39.752] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:39.752] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:39.752] | : on.exit(options(oopts), add = TRUE) [18:22:39.752] | : } [18:22:39.752] | : { [18:22:39.752] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:39.752] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:39.752] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:39.752] | : { [18:22:39.752] | : ...future.FUN(...future.X_jj, ...) [18:22:39.752] | : } [18:22:39.752] | : }) [18:22:39.752] | : } [18:22:39.752] | : } [18:22:39.752] | : }, args = future.call.arguments) [18:22:39.752] | : } [18:22:39.752] | : Globals: 6 objects totaling 3.81 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, ...) [18:22:39.752] | : Packages: [18:22:39.752] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:39.752] | : Capture standard output: TRUE [18:22:39.752] | : Capture condition classes: 'condition' (excluding '') [18:22:39.752] | : Immediate condition classes: 'immediateCondition' [18:22:39.752] | : Lazy evaluation: FALSE [18:22:39.752] | : Local evaluation: TRUE [18:22:39.752] | : Early signaling: FALSE [18:22:39.752] | : Actions: [n=1] 'run' [18:22:39.752] | : State: 'running' ("Future is being evaluated") [18:22:39.752] | : Resolved: TRUE [18:22:39.752] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-5 [18:22:39.752] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:39.752] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:39.752] | : Value: [18:22:39.752] | : Conditions captured: [18:22:39.759] | : Chunk #1 of 1 ... DONE [18:22:39.759] | : Launching 1 futures (chunks) ... DONE [18:22:39.759] | : Resolving 1 futures (chunks) ... [18:22:39.760] | : - Number of value chunks collected: 1 [18:22:39.760] | : Resolving 1 futures (chunks) ... DONE [18:22:39.760] | : Reducing values from 1 chunks ... [18:22:39.760] | : - Number of values collected after concatenation: 2 [18:22:39.760] | : - Number of values expected: 2 [18:22:39.760] | : Reducing values from 1 chunks ... DONE [18:22:39.761] | future_lapply() -> future_xapply() ... done [18:22:39.761] future_lapply() ... done > stopifnot(identical(y, list(42, 84))) > e <- 42 > res <- tryCatch({ + futurize(lapply(1:2, FUN = function(x) { + 2 * e + }), globals = structure(TRUE, ignore = "e")) + }, error = ide .... [TRUNCATED] [18:22:39.762] future_lapply() ... [18:22:39.762] | Globals in FUN(): [n=3] '{', '*', 'e' [18:22:39.763] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:39.763] | future_lapply() -> future_xapply() ... [18:22:39.763] | : Number of chunks: 1 [18:22:39.763] | : getGlobalsAndPackagesXApply() ... [18:22:39.763] | : . future.globals: TRUE [18:22:39.771] | : . globals found/used: [n=1] 'FUN' [18:22:39.771] | : . needed namespaces: [n=0] [18:22:39.771] | : . use_args: TRUE [18:22:39.771] | : . Getting '...' globals ... [18:22:39.772] | : . ' '...' content: [n=0] [18:22:39.772] | : . ' List of 1 [18:22:39.772] | : . ' $ ...: list() [18:22:39.772] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.772] | : . ' - attr(*, "where")=List of 1 [18:22:39.772] | : . ' ..$ ...: [18:22:39.772] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.772] | : . ' - attr(*, "resolved")= logi TRUE [18:22:39.772] | : . ' - attr(*, "total_size")= num NA [18:22:39.775] | : . Getting '...' globals ... done [18:22:39.775] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:39.775] | : . List of 2 [18:22:39.775] | : . $ ...future.FUN:function (x) [18:22:39.775] | : . $ ... : list() [18:22:39.775] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.775] | : . - attr(*, "where")=List of 2 [18:22:39.775] | : . ..$ ...future.FUN: [18:22:39.775] | : . ..$ ... : [18:22:39.775] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.775] | : . - attr(*, "resolved")= logi FALSE [18:22:39.775] | : . - attr(*, "total_size")= num 3585 [18:22:39.779] | : . Packages to be attached in all futures: [n=0] [18:22:39.779] | : getGlobalsAndPackagesXApply() ... done [18:22:39.779] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.780] | : List of 5 [18:22:39.780] | : $ ...future.FUN :function (x) [18:22:39.780] | : $ ... : list() [18:22:39.780] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.780] | : $ ...future.elements_ii : NULL [18:22:39.780] | : $ ...future.seeds_ii : NULL [18:22:39.780] | : $ ...future.globals.maxSize: NULL [18:22:39.780] | : - attr(*, "where")=List of 5 [18:22:39.780] | : ..$ ...future.FUN : [18:22:39.780] | : ..$ ... : [18:22:39.780] | : ..$ ...future.elements_ii : [18:22:39.780] | : ..$ ...future.seeds_ii : [18:22:39.780] | : ..$ ...future.globals.maxSize: [18:22:39.780] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.780] | : - attr(*, "resolved")= logi FALSE [18:22:39.780] | : - attr(*, "total_size")= num 3585 [18:22:39.785] | : Number of futures (= number of chunks): 1 [18:22:39.785] | : Launching 1 futures (chunks) ... [18:22:39.785] | : Chunk #1 of 1 ... [18:22:39.785] | : - Finding globals in 'X' for chunk #1 ... [18:22:39.786] | : + additional globals found: [n=0] [18:22:39.786] | : + additional namespaces needed: [n=0] [18:22:39.786] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:39.786] | : - seeds: [18:22:39.786] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.788] | : Created future: [18:22:39.789] | : ClusterFuture: [18:22:39.789] | : Label: 'future_lapply-1' [18:22:39.789] | : Expression: [18:22:39.789] | : { [18:22:39.789] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:39.789] | : "# expression in do.call(), because function called uses '...' " [18:22:39.789] | : "# as a global variable " [18:22:39.789] | : do.call(function(...) { [18:22:39.789] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:39.789] | : "# without having an '...' argument. This means '...' is treated" [18:22:39.789] | : "# as a global variable. This may happen when FUN() is an " [18:22:39.789] | : "# anonymous function. " [18:22:39.789] | : "# " [18:22:39.789] | : "# If an anonymous function, we will make sure to restore the " [18:22:39.789] | : "# function environment of FUN() to the calling environment. " [18:22:39.789] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:39.789] | : "# global environment, which is where globals are written. " [18:22:39.789] | : penv <- env <- environment(...future.FUN) [18:22:39.789] | : repeat { [18:22:39.789] | : if (identical(env, globalenv()) || identical(env, [18:22:39.789] | : emptyenv())) [18:22:39.789] | : break [18:22:39.789] | : penv <- env [18:22:39.789] | : env <- parent.env(env) [18:22:39.789] | : } [18:22:39.789] | : if (identical(penv, globalenv())) { [18:22:39.789] | : environment(...future.FUN) <- environment() [18:22:39.789] | : } [18:22:39.789] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:39.789] | : !isNamespace(penv)) { [18:22:39.789] | : parent.env(penv) <- environment() [18:22:39.789] | : } [18:22:39.789] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:39.789] | : { [18:22:39.789] | : "# future.apply:::future_xapply(): preserve future option" [18:22:39.789] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:39.789] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:39.789] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:39.789] | : on.exit(options(oopts), add = TRUE) [18:22:39.789] | : } [18:22:39.789] | : { [18:22:39.789] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:39.789] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:39.789] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:39.789] | : { [18:22:39.789] | : ...future.FUN(...future.X_jj, ...) [18:22:39.789] | : } [18:22:39.789] | : }) [18:22:39.789] | : } [18:22:39.789] | : } [18:22:39.789] | : }, args = future.call.arguments) [18:22:39.789] | : } [18:22:39.789] | : Globals: 5 objects totaling 3.80 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) [18:22:39.789] | : Packages: [18:22:39.789] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:39.789] | : Capture standard output: TRUE [18:22:39.789] | : Capture condition classes: 'condition' (excluding '') [18:22:39.789] | : Immediate condition classes: 'immediateCondition' [18:22:39.789] | : Lazy evaluation: FALSE [18:22:39.789] | : Local evaluation: TRUE [18:22:39.789] | : Early signaling: FALSE [18:22:39.789] | : Actions: [n=1] 'run' [18:22:39.789] | : State: 'running' ("Future is being evaluated") [18:22:39.789] | : Resolved: TRUE [18:22:39.789] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-6 [18:22:39.789] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:39.789] | : Class: 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:39.789] | : Value: [18:22:39.789] | : Conditions captured: [18:22:39.794] | : Chunk #1 of 1 ... DONE [18:22:39.794] | : Launching 1 futures (chunks) ... DONE [18:22:39.794] | : Resolving 1 futures (chunks) ... [18:22:39.795] | : onError() ... [18:22:39.795] | : . Received Warning: Caught simpleError. Canceling all iterations ... [18:22:39.796] | : . Signaling: [18:22:39.796] | : onError() ... done [18:22:39.796] | future_lapply() -> future_xapply() ... done [18:22:39.797] future_lapply() ... done > if (!"covr" %in% loadedNamespaces()) { + 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 <- futurize(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] [18:22:39.895] future_lapply() ... [18:22:39.896] | Globals in FUN(): [n=7] '{', 'do.call', 'caller', 'c', 'list', '+', 'args' [18:22:39.896] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:39.896] | future_lapply() -> future_xapply() ... [18:22:39.897] | : Number of chunks: 1 [18:22:39.897] | : getGlobalsAndPackagesXApply() ... [18:22:39.897] | : . future.globals: TRUE [18:22:39.924] | : . globals found/used: [n=5] 'FUN', 'caller', 'args', 'call_my_add', 'my_add' [18:22:39.924] | : . needed namespaces: [n=0] [18:22:39.925] | : . use_args: TRUE [18:22:39.925] | : . Getting '...' globals ... [18:22:39.925] | : . ' '...' content: [n=0] [18:22:39.926] | : . ' List of 1 [18:22:39.926] | : . ' $ ...: list() [18:22:39.926] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.926] | : . ' - attr(*, "where")=List of 1 [18:22:39.926] | : . ' ..$ ...: [18:22:39.926] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.926] | : . ' - attr(*, "resolved")= logi TRUE [18:22:39.926] | : . ' - attr(*, "total_size")= num NA [18:22:39.929] | : . Getting '...' globals ... done [18:22:39.929] | : . Globals to be used in all futures (chunks): [n=6] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...' [18:22:39.929] | : . List of 6 [18:22:39.929] | : . $ ...future.FUN:function (i) [18:22:39.929] | : . $ caller :function (a, b, FUN = call_my_add) [18:22:39.929] | : . $ args :List of 1 [18:22:39.929] | : . ..$ FUN:function (a, b) [18:22:39.929] | : . $ call_my_add :function (a, b) [18:22:39.929] | : . $ my_add :function (a, b) [18:22:39.929] | : . $ ... : list() [18:22:39.929] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.929] | : . - attr(*, "where")=List of 6 [18:22:39.929] | : . ..$ ...future.FUN: [18:22:39.929] | : . ..$ caller : [18:22:39.929] | : . ..$ args : [18:22:39.929] | : . ..$ call_my_add : [18:22:39.929] | : . ..$ my_add : [18:22:39.929] | : . ..$ ... : [18:22:39.929] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.929] | : . - attr(*, "resolved")= logi FALSE [18:22:39.929] | : . - attr(*, "total_size")= num 6429 [18:22:39.936] | : . Packages to be attached in all futures: [n=0] [18:22:39.936] | : getGlobalsAndPackagesXApply() ... done [18:22:39.936] | : 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' [18:22:39.937] | : List of 9 [18:22:39.937] | : $ ...future.FUN :function (i) [18:22:39.937] | : $ caller :function (a, b, FUN = call_my_add) [18:22:39.937] | : $ args :List of 1 [18:22:39.937] | : ..$ FUN:function (a, b) [18:22:39.937] | : $ call_my_add :function (a, b) [18:22:39.937] | : $ my_add :function (a, b) [18:22:39.937] | : $ ... : list() [18:22:39.937] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.937] | : $ ...future.elements_ii : NULL [18:22:39.937] | : $ ...future.seeds_ii : NULL [18:22:39.937] | : $ ...future.globals.maxSize: NULL [18:22:39.937] | : - attr(*, "where")=List of 9 [18:22:39.937] | : ..$ ...future.FUN : [18:22:39.937] | : ..$ caller : [18:22:39.937] | : ..$ args : [18:22:39.937] | : ..$ call_my_add : [18:22:39.937] | : ..$ my_add : [18:22:39.937] | : ..$ ... : [18:22:39.937] | : ..$ ...future.elements_ii : [18:22:39.937] | : ..$ ...future.seeds_ii : [18:22:39.937] | : ..$ ...future.globals.maxSize: [18:22:39.937] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.937] | : - attr(*, "resolved")= logi FALSE [18:22:39.937] | : - attr(*, "total_size")= num 6429 [18:22:39.945] | : Number of futures (= number of chunks): 1 [18:22:39.945] | : Launching 1 futures (chunks) ... [18:22:39.945] | : Chunk #1 of 1 ... [18:22:39.945] | : - Finding globals in 'X' for chunk #1 ... [18:22:39.946] | : + additional globals found: [n=0] [18:22:39.946] | : + additional namespaces needed: [n=0] [18:22:39.946] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:39.946] | : - seeds: [18:22:39.946] | : - All globals exported: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:39.960] | : Created future: [18:22:39.960] | : SequentialFuture: [18:22:39.960] | : Label: 'future_lapply-1' [18:22:39.960] | : Expression: [18:22:39.960] | : { [18:22:39.960] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:39.960] | : "# expression in do.call(), because function called uses '...' " [18:22:39.960] | : "# as a global variable " [18:22:39.960] | : do.call(function(...) { [18:22:39.960] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:39.960] | : "# without having an '...' argument. This means '...' is treated" [18:22:39.960] | : "# as a global variable. This may happen when FUN() is an " [18:22:39.960] | : "# anonymous function. " [18:22:39.960] | : "# " [18:22:39.960] | : "# If an anonymous function, we will make sure to restore the " [18:22:39.960] | : "# function environment of FUN() to the calling environment. " [18:22:39.960] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:39.960] | : "# global environment, which is where globals are written. " [18:22:39.960] | : penv <- env <- environment(...future.FUN) [18:22:39.960] | : repeat { [18:22:39.960] | : if (identical(env, globalenv()) || identical(env, [18:22:39.960] | : emptyenv())) [18:22:39.960] | : break [18:22:39.960] | : penv <- env [18:22:39.960] | : env <- parent.env(env) [18:22:39.960] | : } [18:22:39.960] | : if (identical(penv, globalenv())) { [18:22:39.960] | : environment(...future.FUN) <- environment() [18:22:39.960] | : } [18:22:39.960] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:39.960] | : !isNamespace(penv)) { [18:22:39.960] | : parent.env(penv) <- environment() [18:22:39.960] | : } [18:22:39.960] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:39.960] | : { [18:22:39.960] | : "# future.apply:::future_xapply(): preserve future option" [18:22:39.960] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:39.960] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:39.960] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:39.960] | : on.exit(options(oopts), add = TRUE) [18:22:39.960] | : } [18:22:39.960] | : { [18:22:39.960] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:39.960] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:39.960] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:39.960] | : { [18:22:39.960] | : ...future.FUN(...future.X_jj, ...) [18:22:39.960] | : } [18:22:39.960] | : }) [18:22:39.960] | : } [18:22:39.960] | : } [18:22:39.960] | : }, args = future.call.arguments) [18:22:39.960] | : } [18:22:39.960] | : Globals: 9 objects totaling 8.84 KiB (function '...future.FUN' of 2.77 KiB, list 'args' of 928 bytes, function 'caller' of 904 bytes, function 'call_my_add' of 876 bytes, function 'my_add' of 114 bytes, ...) [18:22:39.960] | : Packages: [18:22:39.960] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:39.960] | : Capture standard output: TRUE [18:22:39.960] | : Capture condition classes: 'condition' (excluding '') [18:22:39.960] | : Immediate condition classes: 'immediateCondition' [18:22:39.960] | : Lazy evaluation: FALSE [18:22:39.960] | : Local evaluation: TRUE [18:22:39.960] | : Early signaling: FALSE [18:22:39.960] | : Actions: [n=1] 'run' [18:22:39.960] | : State: 'finished' ("Future was resolved successfully") [18:22:39.960] | : Resolved: TRUE [18:22:39.960] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-7 [18:22:39.960] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:39.960] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [18:22:39.960] | : Value: 67 bytes of class 'list' [18:22:39.960] | : Duration: 0.009341002 secs (started 2026-01-18 18:22:39.949417) [18:22:39.960] | : Worker process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:39.963] | : Chunk #1 of 1 ... DONE [18:22:39.963] | : Launching 1 futures (chunks) ... DONE [18:22:39.963] | : Resolving 1 futures (chunks) ... [18:22:39.966] | : - Number of value chunks collected: 1 [18:22:39.966] | : Resolving 1 futures (chunks) ... DONE [18:22:39.966] | : Reducing values from 1 chunks ... [18:22:39.966] | : - Number of values collected after concatenation: 3 [18:22:39.966] | : - Number of values expected: 3 [18:22:39.966] | : Reducing values from 1 chunks ... DONE [18:22:39.967] | future_lapply() -> future_xapply() ... done [18:22:39.967] future_lapply() ... done - lapply(x, FUN = do.call, ...) |> futurize() ... [18:22:39.967] future_lapply() ... [18:22:39.970] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [18:22:39.970] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:39.970] | future_lapply() -> future_xapply() ... [18:22:39.970] | : Number of chunks: 1 [18:22:39.971] | : getGlobalsAndPackagesXApply() ... [18:22:39.971] | : . future.globals: TRUE [18:22:39.997] | : . globals found/used: [n=1] 'FUN' [18:22:39.997] | : . needed namespaces: [n=0] [18:22:39.998] | : . use_args: TRUE [18:22:39.998] | : . Getting '...' globals ... [18:22:39.999] | : . ' '...' content: [n=1] 'what' [18:22:39.999] | : . ' List of 1 [18:22:39.999] | : . ' $ ...:List of 1 [18:22:39.999] | : . ' ..$ what:function (x) [18:22:39.999] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:39.999] | : . ' - attr(*, "where")=List of 1 [18:22:39.999] | : . ' ..$ ...: [18:22:39.999] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:39.999] | : . ' - attr(*, "resolved")= logi TRUE [18:22:39.999] | : . ' - attr(*, "total_size")= num NA [18:22:40.004] | : . Getting '...' globals ... done [18:22:40.005] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:40.005] | : . List of 2 [18:22:40.005] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [18:22:40.005] | : . $ ... :List of 1 [18:22:40.005] | : . ..$ what:function (x) [18:22:40.005] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.005] | : . - attr(*, "where")=List of 2 [18:22:40.005] | : . ..$ ...future.FUN: [18:22:40.005] | : . ..$ ... : [18:22:40.005] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.005] | : . - attr(*, "resolved")= logi FALSE [18:22:40.005] | : . - attr(*, "total_size")= num 6979 [18:22:40.010] | : . Packages to be attached in all futures: [n=0] [18:22:40.010] | : getGlobalsAndPackagesXApply() ... done [18:22:40.010] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.011] | : List of 5 [18:22:40.011] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [18:22:40.011] | : $ ... :List of 1 [18:22:40.011] | : ..$ what:function (x) [18:22:40.011] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.011] | : $ ...future.elements_ii : NULL [18:22:40.011] | : $ ...future.seeds_ii : NULL [18:22:40.011] | : $ ...future.globals.maxSize: NULL [18:22:40.011] | : - attr(*, "where")=List of 5 [18:22:40.011] | : ..$ ...future.FUN : [18:22:40.011] | : ..$ ... : [18:22:40.011] | : ..$ ...future.elements_ii : [18:22:40.011] | : ..$ ...future.seeds_ii : [18:22:40.011] | : ..$ ...future.globals.maxSize: [18:22:40.011] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.011] | : - attr(*, "resolved")= logi FALSE [18:22:40.011] | : - attr(*, "total_size")= num 6979 [18:22:40.018] | : Number of futures (= number of chunks): 1 [18:22:40.018] | : Launching 1 futures (chunks) ... [18:22:40.019] | : Chunk #1 of 1 ... [18:22:40.019] | : - Finding globals in 'X' for chunk #1 ... [18:22:40.020] | : + additional globals found: [n=0] [18:22:40.020] | : + additional namespaces needed: [n=0] [18:22:40.020] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:40.020] | : - seeds: [18:22:40.021] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.029] | : Created future: [18:22:40.029] | : SequentialFuture: [18:22:40.029] | : Label: 'future_lapply-1' [18:22:40.029] | : Expression: [18:22:40.029] | : { [18:22:40.029] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:40.029] | : "# expression in do.call(), because function called uses '...' " [18:22:40.029] | : "# as a global variable " [18:22:40.029] | : do.call(function(...) { [18:22:40.029] | : "# future.apply:::future_xapply(): preserve future option" [18:22:40.029] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:40.029] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:40.029] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:40.029] | : on.exit(options(oopts), add = TRUE) [18:22:40.029] | : } [18:22:40.029] | : { [18:22:40.029] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:40.029] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:40.029] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:40.029] | : { [18:22:40.029] | : ...future.FUN(...future.X_jj, ...) [18:22:40.029] | : } [18:22:40.029] | : }) [18:22:40.029] | : } [18:22:40.029] | : }, args = future.call.arguments) [18:22:40.029] | : } [18:22:40.029] | : Globals: 5 objects totaling 7.00 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) [18:22:40.029] | : Packages: [18:22:40.029] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:40.029] | : Capture standard output: TRUE [18:22:40.029] | : Capture condition classes: 'condition' (excluding '') [18:22:40.029] | : Immediate condition classes: 'immediateCondition' [18:22:40.029] | : Lazy evaluation: FALSE [18:22:40.029] | : Local evaluation: TRUE [18:22:40.029] | : Early signaling: FALSE [18:22:40.029] | : Actions: [n=1] 'run' [18:22:40.029] | : State: 'finished' ("Future was resolved successfully") [18:22:40.029] | : Resolved: TRUE [18:22:40.029] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-8 [18:22:40.029] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.029] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [18:22:40.029] | : Value: 43 bytes of class 'list' [18:22:40.029] | : Duration: 0.004780054 secs (started 2026-01-18 18:22:40.022974) [18:22:40.029] | : Worker process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.032] | : Chunk #1 of 1 ... DONE [18:22:40.032] | : Launching 1 futures (chunks) ... DONE [18:22:40.032] | : Resolving 1 futures (chunks) ... [18:22:40.033] | : - Number of value chunks collected: 1 [18:22:40.033] | : Resolving 1 futures (chunks) ... DONE [18:22:40.033] | : Reducing values from 1 chunks ... [18:22:40.033] | : - Number of values collected after concatenation: 1 [18:22:40.034] | : - Number of values expected: 1 [18:22:40.034] | : Reducing values from 1 chunks ... DONE [18:22:40.034] | future_lapply() -> future_xapply() ... done [18:22:40.034] future_lapply() ... done [18:22:40.035] future_lapply() ... [18:22:40.038] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [18:22:40.038] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:40.038] | future_lapply() -> future_xapply() ... [18:22:40.039] | : Number of chunks: 1 [18:22:40.039] | : getGlobalsAndPackagesXApply() ... [18:22:40.039] | : . future.globals: TRUE [18:22:40.073] | : . globals found/used: [n=1] 'FUN' [18:22:40.073] | : . needed namespaces: [n=0] [18:22:40.073] | : . use_args: TRUE [18:22:40.073] | : . Getting '...' globals ... [18:22:40.074] | : . ' '...' content: [n=1] 'what' [18:22:40.074] | : . ' List of 1 [18:22:40.074] | : . ' $ ...:List of 1 [18:22:40.074] | : . ' ..$ what:function (...) [18:22:40.074] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.074] | : . ' - attr(*, "where")=List of 1 [18:22:40.074] | : . ' ..$ ...: [18:22:40.074] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.074] | : . ' - attr(*, "resolved")= logi TRUE [18:22:40.074] | : . ' - attr(*, "total_size")= num NA [18:22:40.078] | : . Getting '...' globals ... done [18:22:40.078] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:40.079] | : . List of 2 [18:22:40.079] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [18:22:40.079] | : . $ ... :List of 1 [18:22:40.079] | : . ..$ what:function (...) [18:22:40.079] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.079] | : . - attr(*, "where")=List of 2 [18:22:40.079] | : . ..$ ...future.FUN: [18:22:40.079] | : . ..$ ... : [18:22:40.079] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.079] | : . - attr(*, "resolved")= logi FALSE [18:22:40.079] | : . - attr(*, "total_size")= num 7047 [18:22:40.083] | : . Packages to be attached in all futures: [n=0] [18:22:40.083] | : getGlobalsAndPackagesXApply() ... done [18:22:40.083] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.083] | : List of 5 [18:22:40.083] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [18:22:40.083] | : $ ... :List of 1 [18:22:40.083] | : ..$ what:function (...) [18:22:40.083] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.083] | : $ ...future.elements_ii : NULL [18:22:40.083] | : $ ...future.seeds_ii : NULL [18:22:40.083] | : $ ...future.globals.maxSize: NULL [18:22:40.083] | : - attr(*, "where")=List of 5 [18:22:40.083] | : ..$ ...future.FUN : [18:22:40.083] | : ..$ ... : [18:22:40.083] | : ..$ ...future.elements_ii : [18:22:40.083] | : ..$ ...future.seeds_ii : [18:22:40.083] | : ..$ ...future.globals.maxSize: [18:22:40.083] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.083] | : - attr(*, "resolved")= logi FALSE [18:22:40.083] | : - attr(*, "total_size")= num 7047 [18:22:40.089] | : Number of futures (= number of chunks): 1 [18:22:40.090] | : Launching 1 futures (chunks) ... [18:22:40.090] | : Chunk #1 of 1 ... [18:22:40.090] | : - Finding globals in 'X' for chunk #1 ... [18:22:40.091] | : + additional globals found: [n=0] [18:22:40.091] | : + additional namespaces needed: [n=0] [18:22:40.091] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:40.091] | : - seeds: [18:22:40.091] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.099] | : Created future: [18:22:40.099] | : SequentialFuture: [18:22:40.099] | : Label: 'future_lapply-1' [18:22:40.099] | : Expression: [18:22:40.099] | : { [18:22:40.099] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:40.099] | : "# expression in do.call(), because function called uses '...' " [18:22:40.099] | : "# as a global variable " [18:22:40.099] | : do.call(function(...) { [18:22:40.099] | : "# future.apply:::future_xapply(): preserve future option" [18:22:40.099] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:40.099] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:40.099] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:40.099] | : on.exit(options(oopts), add = TRUE) [18:22:40.099] | : } [18:22:40.099] | : { [18:22:40.099] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:40.099] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:40.099] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:40.099] | : { [18:22:40.099] | : ...future.FUN(...future.X_jj, ...) [18:22:40.099] | : } [18:22:40.099] | : }) [18:22:40.099] | : } [18:22:40.099] | : }, args = future.call.arguments) [18:22:40.099] | : } [18:22:40.099] | : Globals: 5 objects totaling 7.43 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) [18:22:40.099] | : Packages: [18:22:40.099] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:40.099] | : Capture standard output: TRUE [18:22:40.099] | : Capture condition classes: 'condition' (excluding '') [18:22:40.099] | : Immediate condition classes: 'immediateCondition' [18:22:40.099] | : Lazy evaluation: FALSE [18:22:40.099] | : Local evaluation: TRUE [18:22:40.099] | : Early signaling: FALSE [18:22:40.099] | : Actions: [n=1] 'run' [18:22:40.099] | : State: 'finished' ("Future was resolved successfully") [18:22:40.099] | : Resolved: TRUE [18:22:40.099] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-9 [18:22:40.099] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.099] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [18:22:40.099] | : Value: 43 bytes of class 'list' [18:22:40.099] | : Duration: 0.005028963 secs (started 2026-01-18 18:22:40.093321) [18:22:40.099] | : Worker process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.101] | : Chunk #1 of 1 ... DONE [18:22:40.101] | : Launching 1 futures (chunks) ... DONE [18:22:40.102] | : Resolving 1 futures (chunks) ... [18:22:40.102] | : - Number of value chunks collected: 1 [18:22:40.102] | : Resolving 1 futures (chunks) ... DONE [18:22:40.103] | : Reducing values from 1 chunks ... [18:22:40.103] | : - Number of values collected after concatenation: 1 [18:22:40.103] | : - Number of values expected: 1 [18:22:40.103] | : Reducing values from 1 chunks ... DONE [18:22:40.103] | future_lapply() -> future_xapply() ... done [18:22:40.104] future_lapply() ... done - lapply(x, ...) |> futurize() - passing arguments via '...' ... [18:22:40.104] future_lapply() ... [18:22:40.105] | Globals in FUN(): [n=1] 'typeof' [18:22:40.105] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:40.106] | future_lapply() -> future_xapply() ... [18:22:40.106] | : Number of chunks: 1 [18:22:40.106] | : getGlobalsAndPackagesXApply() ... [18:22:40.106] | : . future.globals: TRUE [18:22:40.114] | : . globals found/used: [n=1] 'FUN' [18:22:40.115] | : . needed namespaces: [n=0] [18:22:40.115] | : . use_args: TRUE [18:22:40.115] | : . Getting '...' globals ... [18:22:40.116] | : . ' '...' content: [n=1] 'b' [18:22:40.116] | : . ' List of 1 [18:22:40.116] | : . ' $ ...:List of 1 [18:22:40.116] | : . ' ..$ b:'data.frame': 2 obs. of 1 variable: [18:22:40.116] | : . ' .. ..$ a: int [1:2] 1 2 [18:22:40.116] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.116] | : . ' - attr(*, "where")=List of 1 [18:22:40.116] | : . ' ..$ ...: [18:22:40.116] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.116] | : . ' - attr(*, "resolved")= logi TRUE [18:22:40.116] | : . ' - attr(*, "total_size")= num NA [18:22:40.120] | : . Getting '...' globals ... done [18:22:40.121] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:40.121] | : . List of 2 [18:22:40.121] | : . $ ...future.FUN:function (a, b) [18:22:40.121] | : . $ ... :List of 1 [18:22:40.121] | : . ..$ b:'data.frame': 2 obs. of 1 variable: [18:22:40.121] | : . .. ..$ a: int [1:2] 1 2 [18:22:40.121] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.121] | : . - attr(*, "where")=List of 2 [18:22:40.121] | : . ..$ ...future.FUN: [18:22:40.121] | : . ..$ ... : [18:22:40.121] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.121] | : . - attr(*, "resolved")= logi FALSE [18:22:40.121] | : . - attr(*, "total_size")= num 3751 [18:22:40.126] | : . Packages to be attached in all futures: [n=0] [18:22:40.126] | : getGlobalsAndPackagesXApply() ... done [18:22:40.126] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.126] | : List of 5 [18:22:40.126] | : $ ...future.FUN :function (a, b) [18:22:40.126] | : $ ... :List of 1 [18:22:40.126] | : ..$ b:'data.frame': 2 obs. of 1 variable: [18:22:40.126] | : .. ..$ a: int [1:2] 1 2 [18:22:40.126] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.126] | : $ ...future.elements_ii : NULL [18:22:40.126] | : $ ...future.seeds_ii : NULL [18:22:40.126] | : $ ...future.globals.maxSize: NULL [18:22:40.126] | : - attr(*, "where")=List of 5 [18:22:40.126] | : ..$ ...future.FUN : [18:22:40.126] | : ..$ ... : [18:22:40.126] | : ..$ ...future.elements_ii : [18:22:40.126] | : ..$ ...future.seeds_ii : [18:22:40.126] | : ..$ ...future.globals.maxSize: [18:22:40.126] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.126] | : - attr(*, "resolved")= logi FALSE [18:22:40.126] | : - attr(*, "total_size")= num 3751 [18:22:40.136] | : Number of futures (= number of chunks): 1 [18:22:40.136] | : Launching 1 futures (chunks) ... [18:22:40.136] | : Chunk #1 of 1 ... [18:22:40.136] | : - Finding globals in 'X' for chunk #1 ... [18:22:40.137] | : + additional globals found: [n=0] [18:22:40.137] | : + additional namespaces needed: [n=0] [18:22:40.137] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:40.137] | : - seeds: [18:22:40.138] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.143] | : Created future: [18:22:40.144] | : SequentialFuture: [18:22:40.144] | : Label: 'future_lapply-1' [18:22:40.144] | : Expression: [18:22:40.144] | : { [18:22:40.144] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:40.144] | : "# expression in do.call(), because function called uses '...' " [18:22:40.144] | : "# as a global variable " [18:22:40.144] | : do.call(function(...) { [18:22:40.144] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:40.144] | : "# without having an '...' argument. This means '...' is treated" [18:22:40.144] | : "# as a global variable. This may happen when FUN() is an " [18:22:40.144] | : "# anonymous function. " [18:22:40.144] | : "# " [18:22:40.144] | : "# If an anonymous function, we will make sure to restore the " [18:22:40.144] | : "# function environment of FUN() to the calling environment. " [18:22:40.144] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:40.144] | : "# global environment, which is where globals are written. " [18:22:40.144] | : penv <- env <- environment(...future.FUN) [18:22:40.144] | : repeat { [18:22:40.144] | : if (identical(env, globalenv()) || identical(env, [18:22:40.144] | : emptyenv())) [18:22:40.144] | : break [18:22:40.144] | : penv <- env [18:22:40.144] | : env <- parent.env(env) [18:22:40.144] | : } [18:22:40.144] | : if (identical(penv, globalenv())) { [18:22:40.144] | : environment(...future.FUN) <- environment() [18:22:40.144] | : } [18:22:40.144] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:40.144] | : !isNamespace(penv)) { [18:22:40.144] | : parent.env(penv) <- environment() [18:22:40.144] | : } [18:22:40.144] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:40.144] | : { [18:22:40.144] | : "# future.apply:::future_xapply(): preserve future option" [18:22:40.144] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:40.144] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:40.144] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:40.144] | : on.exit(options(oopts), add = TRUE) [18:22:40.144] | : } [18:22:40.144] | : { [18:22:40.144] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:40.144] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:40.144] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:40.144] | : { [18:22:40.144] | : ...future.FUN(...future.X_jj, ...) [18:22:40.144] | : } [18:22:40.144] | : }) [18:22:40.144] | : } [18:22:40.144] | : } [18:22:40.144] | : }, args = future.call.arguments) [18:22:40.144] | : } [18:22:40.144] | : Globals: 5 objects totaling 3.95 KiB (DotDotDotList 'future.call.arguments' of 357 bytes, function '...future.FUN' of 111 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [18:22:40.144] | : Packages: [18:22:40.144] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:40.144] | : Capture standard output: TRUE [18:22:40.144] | : Capture condition classes: 'condition' (excluding '') [18:22:40.144] | : Immediate condition classes: 'immediateCondition' [18:22:40.144] | : Lazy evaluation: FALSE [18:22:40.144] | : Local evaluation: TRUE [18:22:40.144] | : Early signaling: FALSE [18:22:40.144] | : Actions: [n=1] 'run' [18:22:40.144] | : State: 'finished' ("Future was resolved successfully") [18:22:40.144] | : Resolved: TRUE [18:22:40.144] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-10 [18:22:40.144] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.144] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [18:22:40.144] | : Value: 51 bytes of class 'list' [18:22:40.144] | : Duration: 0.00342083 secs (started 2026-01-18 18:22:40.139305) [18:22:40.144] | : Worker process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.146] | : Chunk #1 of 1 ... DONE [18:22:40.146] | : Launching 1 futures (chunks) ... DONE [18:22:40.146] | : Resolving 1 futures (chunks) ... [18:22:40.147] | : - Number of value chunks collected: 1 [18:22:40.147] | : Resolving 1 futures (chunks) ... DONE [18:22:40.147] | : Reducing values from 1 chunks ... [18:22:40.147] | : - Number of values collected after concatenation: 1 [18:22:40.148] | : - Number of values expected: 1 [18:22:40.148] | : Reducing values from 1 chunks ... DONE [18:22:40.148] | future_lapply() -> future_xapply() ... done [18:22:40.148] future_lapply() ... done [18:22:40.149] future_lapply() ... [18:22:40.149] | Globals in FUN(): [n=1] 'typeof' [18:22:40.150] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:40.150] | future_lapply() -> future_xapply() ... [18:22:40.150] | : Number of chunks: 1 [18:22:40.150] | : getGlobalsAndPackagesXApply() ... [18:22:40.150] | : . future.globals: TRUE [18:22:40.158] | : . globals found/used: [n=1] 'FUN' [18:22:40.158] | : . needed namespaces: [n=0] [18:22:40.158] | : . use_args: TRUE [18:22:40.159] | : . Getting '...' globals ... [18:22:40.159] | : . ' '...' content: [n=1] 'b' [18:22:40.159] | : . ' List of 1 [18:22:40.159] | : . ' $ ...:List of 1 [18:22:40.159] | : . ' ..$ b: [18:22:40.159] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.159] | : . ' - attr(*, "where")=List of 1 [18:22:40.159] | : . ' ..$ ...: [18:22:40.159] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.159] | : . ' - attr(*, "resolved")= logi TRUE [18:22:40.159] | : . ' - attr(*, "total_size")= num NA [18:22:40.163] | : . Getting '...' globals ... done [18:22:40.163] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:40.163] | : . List of 2 [18:22:40.163] | : . $ ...future.FUN:function (a, b) [18:22:40.163] | : . $ ... :List of 1 [18:22:40.163] | : . ..$ b: [18:22:40.163] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.163] | : . - attr(*, "where")=List of 2 [18:22:40.163] | : . ..$ ...future.FUN: [18:22:40.163] | : . ..$ ... : [18:22:40.163] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.163] | : . - attr(*, "resolved")= logi FALSE [18:22:40.163] | : . - attr(*, "total_size")= num 3506 [18:22:40.167] | : . Packages to be attached in all futures: [n=0] [18:22:40.167] | : getGlobalsAndPackagesXApply() ... done [18:22:40.168] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.168] | : List of 5 [18:22:40.168] | : $ ...future.FUN :function (a, b) [18:22:40.168] | : $ ... :List of 1 [18:22:40.168] | : ..$ b: [18:22:40.168] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.168] | : $ ...future.elements_ii : NULL [18:22:40.168] | : $ ...future.seeds_ii : NULL [18:22:40.168] | : $ ...future.globals.maxSize: NULL [18:22:40.168] | : - attr(*, "where")=List of 5 [18:22:40.168] | : ..$ ...future.FUN : [18:22:40.168] | : ..$ ... : [18:22:40.168] | : ..$ ...future.elements_ii : [18:22:40.168] | : ..$ ...future.seeds_ii : [18:22:40.168] | : ..$ ...future.globals.maxSize: [18:22:40.168] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.168] | : - attr(*, "resolved")= logi FALSE [18:22:40.168] | : - attr(*, "total_size")= num 3506 [18:22:40.174] | : Number of futures (= number of chunks): 1 [18:22:40.174] | : Launching 1 futures (chunks) ... [18:22:40.174] | : Chunk #1 of 1 ... [18:22:40.174] | : - Finding globals in 'X' for chunk #1 ... [18:22:40.175] | : + additional globals found: [n=0] [18:22:40.175] | : + additional namespaces needed: [n=0] [18:22:40.175] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:40.175] | : - seeds: [18:22:40.176] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.181] | : Created future: [18:22:40.182] | : SequentialFuture: [18:22:40.182] | : Label: 'future_lapply-1' [18:22:40.182] | : Expression: [18:22:40.182] | : { [18:22:40.182] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:40.182] | : "# expression in do.call(), because function called uses '...' " [18:22:40.182] | : "# as a global variable " [18:22:40.182] | : do.call(function(...) { [18:22:40.182] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:40.182] | : "# without having an '...' argument. This means '...' is treated" [18:22:40.182] | : "# as a global variable. This may happen when FUN() is an " [18:22:40.182] | : "# anonymous function. " [18:22:40.182] | : "# " [18:22:40.182] | : "# If an anonymous function, we will make sure to restore the " [18:22:40.182] | : "# function environment of FUN() to the calling environment. " [18:22:40.182] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:40.182] | : "# global environment, which is where globals are written. " [18:22:40.182] | : penv <- env <- environment(...future.FUN) [18:22:40.182] | : repeat { [18:22:40.182] | : if (identical(env, globalenv()) || identical(env, [18:22:40.182] | : emptyenv())) [18:22:40.182] | : break [18:22:40.182] | : penv <- env [18:22:40.182] | : env <- parent.env(env) [18:22:40.182] | : } [18:22:40.182] | : if (identical(penv, globalenv())) { [18:22:40.182] | : environment(...future.FUN) <- environment() [18:22:40.182] | : } [18:22:40.182] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:40.182] | : !isNamespace(penv)) { [18:22:40.182] | : parent.env(penv) <- environment() [18:22:40.182] | : } [18:22:40.182] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:40.182] | : { [18:22:40.182] | : "# future.apply:::future_xapply(): preserve future option" [18:22:40.182] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:40.182] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:40.182] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:40.182] | : on.exit(options(oopts), add = TRUE) [18:22:40.182] | : } [18:22:40.182] | : { [18:22:40.182] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:40.182] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:40.182] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:40.182] | : { [18:22:40.182] | : ...future.FUN(...future.X_jj, ...) [18:22:40.182] | : } [18:22:40.182] | : }) [18:22:40.182] | : } [18:22:40.182] | : } [18:22:40.182] | : }, args = future.call.arguments) [18:22:40.182] | : } [18:22:40.182] | : Globals: 5 objects totaling 3.71 KiB (DotDotDotList 'future.call.arguments' of 279 bytes, function '...future.FUN' of 111 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [18:22:40.182] | : Packages: [18:22:40.182] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:40.182] | : Capture standard output: TRUE [18:22:40.182] | : Capture condition classes: 'condition' (excluding '') [18:22:40.182] | : Immediate condition classes: 'immediateCondition' [18:22:40.182] | : Lazy evaluation: FALSE [18:22:40.182] | : Local evaluation: TRUE [18:22:40.182] | : Early signaling: FALSE [18:22:40.182] | : Actions: [n=1] 'run' [18:22:40.182] | : State: 'finished' ("Future was resolved successfully") [18:22:40.182] | : Resolved: TRUE [18:22:40.182] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-11 [18:22:40.182] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.182] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [18:22:40.182] | : Value: 58 bytes of class 'list' [18:22:40.182] | : Duration: 0.003354073 secs (started 2026-01-18 18:22:40.177316) [18:22:40.182] | : Worker process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.184] | : Chunk #1 of 1 ... DONE [18:22:40.184] | : Launching 1 futures (chunks) ... DONE [18:22:40.184] | : Resolving 1 futures (chunks) ... [18:22:40.185] | : - Number of value chunks collected: 1 [18:22:40.185] | : Resolving 1 futures (chunks) ... DONE [18:22:40.186] | : Reducing values from 1 chunks ... [18:22:40.186] | : - Number of values collected after concatenation: 1 [18:22:40.186] | : - Number of values expected: 1 [18:22:40.186] | : Reducing values from 1 chunks ... DONE [18:22:40.186] | future_lapply() -> future_xapply() ... done [18:22:40.186] future_lapply() ... done [18:22:40.187] future_lapply() ... [18:22:40.188] | Globals in FUN(): [n=1] 'typeof' [18:22:40.188] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:40.188] | future_lapply() -> future_xapply() ... [18:22:40.189] | : Number of chunks: 1 [18:22:40.189] | : getGlobalsAndPackagesXApply() ... [18:22:40.189] | : . future.globals: TRUE [18:22:40.197] | : . globals found/used: [n=1] 'FUN' [18:22:40.198] | : . needed namespaces: [n=0] [18:22:40.198] | : . use_args: TRUE [18:22:40.198] | : . Getting '...' globals ... [18:22:40.199] | : . ' '...' content: [n=1] 'b' [18:22:40.199] | : . ' List of 1 [18:22:40.199] | : . ' $ ...:List of 1 [18:22:40.199] | : . ' ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [18:22:40.199] | : . ' .. .. ..@ slots :List of 4 [18:22:40.199] | : . ' .. .. .. ..$ .Data : chr "function" [18:22:40.199] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. ..$ target : chr "signature" [18:22:40.199] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. ..$ defined: chr "signature" [18:22:40.199] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. ..$ generic: chr "character" [18:22:40.199] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. ..@ contains :List of 4 [18:22:40.199] | : . ' .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "function" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr(0) [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 1 [18:22:40.199] | : . ' .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr "function" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 2 [18:22:40.199] | : . ' .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr "function" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 2 [18:22:40.199] | : . ' .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "optionalMethod" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr "function" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 3 [18:22:40.199] | : . ' .. .. ..@ virtual : logi FALSE [18:22:40.199] | : . ' .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [18:22:40.199] | : . ' list() [18:22:40.199] | : . ' .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [18:22:40.199] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:40.199] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [18:22:40.199] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [18:22:40.199] | : . ' .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [18:22:40.199] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:40.199] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [18:22:40.199] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [18:22:40.199] | : . ' .. .. .. .. ..$ generic: chr(0) [18:22:40.199] | : . ' .. .. ..@ validity : NULL [18:22:40.199] | : . ' .. .. ..@ access : list() [18:22:40.199] | : . ' .. .. ..@ className : chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. ..@ subclasses:List of 7 [18:22:40.199] | : . ' .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr(0) [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 1 [18:22:40.199] | : . ' .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr(0) [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 1 [18:22:40.199] | : . ' .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr(0) [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 1 [18:22:40.199] | : . ' .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr(0) [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 1 [18:22:40.199] | : . ' .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 2 [18:22:40.199] | : . ' .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr "MethodWithNext" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 2 [18:22:40.199] | : . ' .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.199] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.199] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:40.199] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.199] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.199] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:40.199] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.199] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.199] | : . ' .. .. .. .. .. ..@ distance : num 2 [18:22:40.199] | : . ' .. .. ..@ versionKey: [18:22:40.199] | : . ' .. .. ..@ sealed : logi TRUE [18:22:40.199] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.199] | : . ' - attr(*, "where")=List of 1 [18:22:40.199] | : . ' ..$ ...: [18:22:40.199] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.199] | : . ' - attr(*, "resolved")= logi TRUE [18:22:40.199] | : . ' - attr(*, "total_size")= num NA [18:22:40.275] | : . Getting '...' globals ... done [18:22:40.275] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:40.275] | : . List of 2 [18:22:40.275] | : . $ ...future.FUN:function (a, b) [18:22:40.275] | : . $ ... :List of 1 [18:22:40.275] | : . ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [18:22:40.275] | : . .. .. ..@ slots :List of 4 [18:22:40.275] | : . .. .. .. ..$ .Data : chr "function" [18:22:40.275] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. ..$ target : chr "signature" [18:22:40.275] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. ..$ defined: chr "signature" [18:22:40.275] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. ..$ generic: chr "character" [18:22:40.275] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. ..@ contains :List of 4 [18:22:40.275] | : . .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "function" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr(0) [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 1 [18:22:40.275] | : . .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr "function" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 2 [18:22:40.275] | : . .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr "function" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 2 [18:22:40.275] | : . .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "optionalMethod" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr "function" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 3 [18:22:40.275] | : . .. .. ..@ virtual : logi FALSE [18:22:40.275] | : . .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [18:22:40.275] | : . list() [18:22:40.275] | : . .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [18:22:40.275] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:40.275] | : . .. .. .. .. .. .. ..@ names : chr(0) [18:22:40.275] | : . .. .. .. .. .. .. ..@ package: chr(0) [18:22:40.275] | : . .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [18:22:40.275] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:40.275] | : . .. .. .. .. .. .. ..@ names : chr(0) [18:22:40.275] | : . .. .. .. .. .. .. ..@ package: chr(0) [18:22:40.275] | : . .. .. .. .. ..$ generic: chr(0) [18:22:40.275] | : . .. .. ..@ validity : NULL [18:22:40.275] | : . .. .. ..@ access : list() [18:22:40.275] | : . .. .. ..@ className : chr "MethodDefinition" [18:22:40.275] | : . .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. ..@ subclasses:List of 7 [18:22:40.275] | : . .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr(0) [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 1 [18:22:40.275] | : . .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr(0) [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 1 [18:22:40.275] | : . .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr(0) [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 1 [18:22:40.275] | : . .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr(0) [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 1 [18:22:40.275] | : . .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 2 [18:22:40.275] | : . .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr "MethodWithNext" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 2 [18:22:40.275] | : . .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.275] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.275] | : . .. .. .. .. .. ..@ test :function (object) [18:22:40.275] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.275] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.275] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:40.275] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.275] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.275] | : . .. .. .. .. .. ..@ distance : num 2 [18:22:40.275] | : . .. .. ..@ versionKey: [18:22:40.275] | : . .. .. ..@ sealed : logi TRUE [18:22:40.275] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.275] | : . - attr(*, "where")=List of 2 [18:22:40.275] | : . ..$ ...future.FUN: [18:22:40.275] | : . ..$ ... : [18:22:40.275] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.275] | : . - attr(*, "resolved")= logi FALSE [18:22:40.275] | : . - attr(*, "total_size")= num 105373 [18:22:40.353] | : . Packages to be attached in all futures: [n=0] [18:22:40.353] | : getGlobalsAndPackagesXApply() ... done [18:22:40.354] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.354] | : List of 5 [18:22:40.354] | : $ ...future.FUN :function (a, b) [18:22:40.354] | : $ ... :List of 1 [18:22:40.354] | : ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [18:22:40.354] | : .. .. ..@ slots :List of 4 [18:22:40.354] | : .. .. .. ..$ .Data : chr "function" [18:22:40.354] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. ..$ target : chr "signature" [18:22:40.354] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. ..$ defined: chr "signature" [18:22:40.354] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. ..$ generic: chr "character" [18:22:40.354] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. ..@ contains :List of 4 [18:22:40.354] | : .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "function" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr(0) [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 1 [18:22:40.354] | : .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr "function" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 2 [18:22:40.354] | : .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr "function" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 2 [18:22:40.354] | : .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "optionalMethod" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr "function" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 3 [18:22:40.354] | : .. .. ..@ virtual : logi FALSE [18:22:40.354] | : .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [18:22:40.354] | : list() [18:22:40.354] | : .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [18:22:40.354] | : .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:40.354] | : .. .. .. .. .. .. ..@ names : chr(0) [18:22:40.354] | : .. .. .. .. .. .. ..@ package: chr(0) [18:22:40.354] | : .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [18:22:40.354] | : .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:40.354] | : .. .. .. .. .. .. ..@ names : chr(0) [18:22:40.354] | : .. .. .. .. .. .. ..@ package: chr(0) [18:22:40.354] | : .. .. .. .. ..$ generic: chr(0) [18:22:40.354] | : .. .. ..@ validity : NULL [18:22:40.354] | : .. .. ..@ access : list() [18:22:40.354] | : .. .. ..@ className : chr "MethodDefinition" [18:22:40.354] | : .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. ..@ subclasses:List of 7 [18:22:40.354] | : .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr(0) [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 1 [18:22:40.354] | : .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr(0) [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 1 [18:22:40.354] | : .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr(0) [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 1 [18:22:40.354] | : .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr(0) [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 1 [18:22:40.354] | : .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 2 [18:22:40.354] | : .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr "MethodWithNext" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 2 [18:22:40.354] | : .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:40.354] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:40.354] | : .. .. .. .. .. ..@ test :function (object) [18:22:40.354] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:40.354] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:40.354] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:40.354] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:40.354] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:40.354] | : .. .. .. .. .. ..@ distance : num 2 [18:22:40.354] | : .. .. ..@ versionKey: [18:22:40.354] | : .. .. ..@ sealed : logi TRUE [18:22:40.354] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.354] | : $ ...future.elements_ii : NULL [18:22:40.354] | : $ ...future.seeds_ii : NULL [18:22:40.354] | : $ ...future.globals.maxSize: NULL [18:22:40.354] | : - attr(*, "where")=List of 5 [18:22:40.354] | : ..$ ...future.FUN : [18:22:40.354] | : ..$ ... : [18:22:40.354] | : ..$ ...future.elements_ii : [18:22:40.354] | : ..$ ...future.seeds_ii : [18:22:40.354] | : ..$ ...future.globals.maxSize: [18:22:40.354] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.354] | : - attr(*, "resolved")= logi FALSE [18:22:40.354] | : - attr(*, "total_size")= num 105373 [18:22:40.440] | : Number of futures (= number of chunks): 1 [18:22:40.441] | : Launching 1 futures (chunks) ... [18:22:40.441] | : Chunk #1 of 1 ... [18:22:40.441] | : - Finding globals in 'X' for chunk #1 ... [18:22:40.442] | : + additional globals found: [n=0] [18:22:40.442] | : + additional namespaces needed: [n=0] [18:22:40.442] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:40.443] | : - seeds: [18:22:40.443] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.451] | : Created future: [18:22:40.451] | : SequentialFuture: [18:22:40.451] | : Label: 'future_lapply-1' [18:22:40.451] | : Expression: [18:22:40.451] | : { [18:22:40.451] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:40.451] | : "# expression in do.call(), because function called uses '...' " [18:22:40.451] | : "# as a global variable " [18:22:40.451] | : do.call(function(...) { [18:22:40.451] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:40.451] | : "# without having an '...' argument. This means '...' is treated" [18:22:40.451] | : "# as a global variable. This may happen when FUN() is an " [18:22:40.451] | : "# anonymous function. " [18:22:40.451] | : "# " [18:22:40.451] | : "# If an anonymous function, we will make sure to restore the " [18:22:40.451] | : "# function environment of FUN() to the calling environment. " [18:22:40.451] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:40.451] | : "# global environment, which is where globals are written. " [18:22:40.451] | : penv <- env <- environment(...future.FUN) [18:22:40.451] | : repeat { [18:22:40.451] | : if (identical(env, globalenv()) || identical(env, [18:22:40.451] | : emptyenv())) [18:22:40.451] | : break [18:22:40.451] | : penv <- env [18:22:40.451] | : env <- parent.env(env) [18:22:40.451] | : } [18:22:40.451] | : if (identical(penv, globalenv())) { [18:22:40.451] | : environment(...future.FUN) <- environment() [18:22:40.451] | : } [18:22:40.451] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:40.451] | : !isNamespace(penv)) { [18:22:40.451] | : parent.env(penv) <- environment() [18:22:40.451] | : } [18:22:40.451] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:40.451] | : { [18:22:40.451] | : "# future.apply:::future_xapply(): preserve future option" [18:22:40.451] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:40.451] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:40.451] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:40.451] | : on.exit(options(oopts), add = TRUE) [18:22:40.451] | : } [18:22:40.451] | : { [18:22:40.451] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:40.451] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:40.451] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:40.451] | : { [18:22:40.451] | : ...future.FUN(...future.X_jj, ...) [18:22:40.451] | : } [18:22:40.451] | : }) [18:22:40.451] | : } [18:22:40.451] | : } [18:22:40.451] | : }, args = future.call.arguments) [18:22:40.451] | : } [18:22:40.451] | : Globals: 5 objects totaling 103.19 KiB (DotDotDotList 'future.call.arguments' of 50.30 KiB, function '...future.FUN' of 111 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [18:22:40.451] | : Packages: [18:22:40.451] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:40.451] | : Capture standard output: TRUE [18:22:40.451] | : Capture condition classes: 'condition' (excluding '') [18:22:40.451] | : Immediate condition classes: 'immediateCondition' [18:22:40.451] | : Lazy evaluation: FALSE [18:22:40.451] | : Local evaluation: TRUE [18:22:40.451] | : Early signaling: FALSE [18:22:40.451] | : Actions: [n=1] 'run' [18:22:40.451] | : State: 'finished' ("Future was resolved successfully") [18:22:40.451] | : Resolved: TRUE [18:22:40.451] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-12 [18:22:40.451] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.451] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [18:22:40.451] | : Value: 49 bytes of class 'list' [18:22:40.451] | : Duration: 0.00444603 secs (started 2026-01-18 18:22:40.445146) [18:22:40.451] | : Worker process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.454] | : Chunk #1 of 1 ... DONE [18:22:40.455] | : Launching 1 futures (chunks) ... DONE [18:22:40.455] | : Resolving 1 futures (chunks) ... [18:22:40.456] | : - Number of value chunks collected: 1 [18:22:40.456] | : Resolving 1 futures (chunks) ... DONE [18:22:40.456] | : Reducing values from 1 chunks ... [18:22:40.456] | : - Number of values collected after concatenation: 1 [18:22:40.456] | : - Number of values expected: 1 [18:22:40.456] | : Reducing values from 1 chunks ... DONE [18:22:40.457] | future_lapply() -> future_xapply() ... done [18:22:40.457] future_lapply() ... done - lapply(X, ...) |> futurize() - 'X' containing globals ... List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 [18:22:40.460] future_lapply() ... [18:22:40.461] | Globals in FUN(): [n=0] [18:22:40.461] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:40.462] | future_lapply() -> future_xapply() ... [18:22:40.462] | : Number of chunks: 1 [18:22:40.462] | : getGlobalsAndPackagesXApply() ... [18:22:40.462] | : . future.globals: TRUE [18:22:40.467] | : . globals found/used: [n=1] 'FUN' [18:22:40.467] | : . needed namespaces: [n=0] [18:22:40.468] | : . use_args: TRUE [18:22:40.468] | : . Getting '...' globals ... [18:22:40.469] | : . ' '...' content: [n=0] [18:22:40.469] | : . ' List of 1 [18:22:40.469] | : . ' $ ...: list() [18:22:40.469] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.469] | : . ' - attr(*, "where")=List of 1 [18:22:40.469] | : . ' ..$ ...: [18:22:40.469] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.469] | : . ' - attr(*, "resolved")= logi TRUE [18:22:40.469] | : . ' - attr(*, "total_size")= num NA [18:22:40.472] | : . Getting '...' globals ... done [18:22:40.473] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:40.473] | : . List of 2 [18:22:40.473] | : . $ ...future.FUN:function (f) [18:22:40.473] | : . $ ... : list() [18:22:40.473] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.473] | : . - attr(*, "where")=List of 2 [18:22:40.473] | : . ..$ ...future.FUN: [18:22:40.473] | : . ..$ ... : [18:22:40.473] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.473] | : . - attr(*, "resolved")= logi FALSE [18:22:40.473] | : . - attr(*, "total_size")= num 4778 [18:22:40.477] | : . Packages to be attached in all futures: [n=0] [18:22:40.477] | : getGlobalsAndPackagesXApply() ... done [18:22:40.477] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.478] | : List of 5 [18:22:40.478] | : $ ...future.FUN :function (f) [18:22:40.478] | : $ ... : list() [18:22:40.478] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.478] | : $ ...future.elements_ii : NULL [18:22:40.478] | : $ ...future.seeds_ii : NULL [18:22:40.478] | : $ ...future.globals.maxSize: NULL [18:22:40.478] | : - attr(*, "where")=List of 5 [18:22:40.478] | : ..$ ...future.FUN : [18:22:40.478] | : ..$ ... : [18:22:40.478] | : ..$ ...future.elements_ii : [18:22:40.478] | : ..$ ...future.seeds_ii : [18:22:40.478] | : ..$ ...future.globals.maxSize: [18:22:40.478] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.478] | : - attr(*, "resolved")= logi FALSE [18:22:40.478] | : - attr(*, "total_size")= num 4778 [18:22:40.483] | : Number of futures (= number of chunks): 1 [18:22:40.484] | : Launching 1 futures (chunks) ... [18:22:40.484] | : Chunk #1 of 1 ... [18:22:40.484] | : - Finding globals in 'X' for chunk #1 ... [18:22:40.520] | : + additional globals found: [n=2] 'a', 'b' [18:22:40.520] | : + additional namespaces needed: [n=0] [18:22:40.521] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:40.521] | : - seeds: [18:22:40.521] | : - All globals exported: [n=7] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize', 'a', 'b' [18:22:40.528] | : Created future: [18:22:40.529] | : SequentialFuture: [18:22:40.529] | : Label: 'future_lapply-1' [18:22:40.529] | : Expression: [18:22:40.529] | : { [18:22:40.529] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:40.529] | : "# expression in do.call(), because function called uses '...' " [18:22:40.529] | : "# as a global variable " [18:22:40.529] | : do.call(function(...) { [18:22:40.529] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:40.529] | : "# without having an '...' argument. This means '...' is treated" [18:22:40.529] | : "# as a global variable. This may happen when FUN() is an " [18:22:40.529] | : "# anonymous function. " [18:22:40.529] | : "# " [18:22:40.529] | : "# If an anonymous function, we will make sure to restore the " [18:22:40.529] | : "# function environment of FUN() to the calling environment. " [18:22:40.529] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:40.529] | : "# global environment, which is where globals are written. " [18:22:40.529] | : penv <- env <- environment(...future.FUN) [18:22:40.529] | : repeat { [18:22:40.529] | : if (identical(env, globalenv()) || identical(env, [18:22:40.529] | : emptyenv())) [18:22:40.529] | : break [18:22:40.529] | : penv <- env [18:22:40.529] | : env <- parent.env(env) [18:22:40.529] | : } [18:22:40.529] | : if (identical(penv, globalenv())) { [18:22:40.529] | : environment(...future.FUN) <- environment() [18:22:40.529] | : } [18:22:40.529] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:40.529] | : !isNamespace(penv)) { [18:22:40.529] | : parent.env(penv) <- environment() [18:22:40.529] | : } [18:22:40.529] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:40.529] | : { [18:22:40.529] | : "# future.apply:::future_xapply(): preserve future option" [18:22:40.529] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:40.529] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:40.529] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:40.529] | : on.exit(options(oopts), add = TRUE) [18:22:40.529] | : } [18:22:40.529] | : { [18:22:40.529] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:40.529] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:40.529] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:40.529] | : { [18:22:40.529] | : ...future.FUN(...future.X_jj, ...) [18:22:40.529] | : } [18:22:40.529] | : }) [18:22:40.529] | : } [18:22:40.529] | : } [18:22:40.529] | : }, args = future.call.arguments) [18:22:40.529] | : } [18:22:40.529] | : Globals: 7 objects totaling 6.49 KiB (list '...future.elements_ii' of 1.59 KiB, DotDotDotList 'future.call.arguments' of 97 bytes, function '...future.FUN' of 68 bytes, numeric 'a' of 39 bytes, numeric 'b' of 39 bytes, ...) [18:22:40.529] | : Packages: [18:22:40.529] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:40.529] | : Capture standard output: TRUE [18:22:40.529] | : Capture condition classes: 'condition' (excluding '') [18:22:40.529] | : Immediate condition classes: 'immediateCondition' [18:22:40.529] | : Lazy evaluation: FALSE [18:22:40.529] | : Local evaluation: TRUE [18:22:40.529] | : Early signaling: FALSE [18:22:40.529] | : Actions: [n=1] 'run' [18:22:40.529] | : State: 'finished' ("Future was resolved successfully") [18:22:40.529] | : Resolved: TRUE [18:22:40.529] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-13 [18:22:40.529] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.529] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [18:22:40.529] | : Value: 91 bytes of class 'list' [18:22:40.529] | : Duration: 0.004415035 secs (started 2026-01-18 18:22:40.523024) [18:22:40.529] | : Worker process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.531] | : Chunk #1 of 1 ... DONE [18:22:40.531] | : Launching 1 futures (chunks) ... DONE [18:22:40.532] | : Resolving 1 futures (chunks) ... [18:22:40.532] | : - Number of value chunks collected: 1 [18:22:40.533] | : Resolving 1 futures (chunks) ... DONE [18:22:40.533] | : Reducing values from 1 chunks ... [18:22:40.533] | : - Number of values collected after concatenation: 4 [18:22:40.533] | : - Number of values expected: 4 [18:22:40.533] | : Reducing values from 1 chunks ... DONE [18:22:40.534] | future_lapply() -> future_xapply() ... done [18:22:40.534] future_lapply() ... done List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 - lapply(X, ...) |> futurize() - '{ a <- a + 1; a }' ... [18:22:40.537] future_lapply() ... [18:22:40.538] | Globals in FUN(): [n=4] '{', '<-', 'a', '+' [18:22:40.538] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:40.538] | future_lapply() -> future_xapply() ... [18:22:40.539] | : Number of chunks: 1 [18:22:40.539] | : getGlobalsAndPackagesXApply() ... [18:22:40.539] | : . future.globals: TRUE [18:22:40.550] | : . globals found/used: [n=2] 'FUN', 'a' [18:22:40.550] | : . needed namespaces: [n=0] [18:22:40.550] | : . use_args: TRUE [18:22:40.551] | : . Getting '...' globals ... [18:22:40.551] | : . ' '...' content: [n=0] [18:22:40.552] | : . ' List of 1 [18:22:40.552] | : . ' $ ...: list() [18:22:40.552] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.552] | : . ' - attr(*, "where")=List of 1 [18:22:40.552] | : . ' ..$ ...: [18:22:40.552] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.552] | : . ' - attr(*, "resolved")= logi TRUE [18:22:40.552] | : . ' - attr(*, "total_size")= num NA [18:22:40.555] | : . Getting '...' globals ... done [18:22:40.555] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [18:22:40.556] | : . List of 3 [18:22:40.556] | : . $ ...future.FUN:function (ii) [18:22:40.556] | : . $ a : num 1 [18:22:40.556] | : . $ ... : list() [18:22:40.556] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.556] | : . - attr(*, "where")=List of 3 [18:22:40.556] | : . ..$ ...future.FUN: [18:22:40.556] | : . ..$ a : [18:22:40.556] | : . ..$ ... : [18:22:40.556] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.556] | : . - attr(*, "resolved")= logi FALSE [18:22:40.556] | : . - attr(*, "total_size")= num 3499 [18:22:40.561] | : . Packages to be attached in all futures: [n=0] [18:22:40.561] | : getGlobalsAndPackagesXApply() ... done [18:22:40.561] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.562] | : List of 6 [18:22:40.562] | : $ ...future.FUN :function (ii) [18:22:40.562] | : $ a : num 1 [18:22:40.562] | : $ ... : list() [18:22:40.562] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.562] | : $ ...future.elements_ii : NULL [18:22:40.562] | : $ ...future.seeds_ii : NULL [18:22:40.562] | : $ ...future.globals.maxSize: NULL [18:22:40.562] | : - attr(*, "where")=List of 6 [18:22:40.562] | : ..$ ...future.FUN : [18:22:40.562] | : ..$ a : [18:22:40.562] | : ..$ ... : [18:22:40.562] | : ..$ ...future.elements_ii : [18:22:40.562] | : ..$ ...future.seeds_ii : [18:22:40.562] | : ..$ ...future.globals.maxSize: [18:22:40.562] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.562] | : - attr(*, "resolved")= logi FALSE [18:22:40.562] | : - attr(*, "total_size")= num 3499 [18:22:40.568] | : Number of futures (= number of chunks): 1 [18:22:40.569] | : Launching 1 futures (chunks) ... [18:22:40.569] | : Chunk #1 of 1 ... [18:22:40.569] | : - Finding globals in 'X' for chunk #1 ... [18:22:40.570] | : + additional globals found: [n=0] [18:22:40.570] | : + additional namespaces needed: [n=0] [18:22:40.570] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:40.570] | : - seeds: [18:22:40.571] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.577] | : Created future: [18:22:40.578] | : SequentialFuture: [18:22:40.578] | : Label: 'future_lapply-1' [18:22:40.578] | : Expression: [18:22:40.578] | : { [18:22:40.578] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:40.578] | : "# expression in do.call(), because function called uses '...' " [18:22:40.578] | : "# as a global variable " [18:22:40.578] | : do.call(function(...) { [18:22:40.578] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:40.578] | : "# without having an '...' argument. This means '...' is treated" [18:22:40.578] | : "# as a global variable. This may happen when FUN() is an " [18:22:40.578] | : "# anonymous function. " [18:22:40.578] | : "# " [18:22:40.578] | : "# If an anonymous function, we will make sure to restore the " [18:22:40.578] | : "# function environment of FUN() to the calling environment. " [18:22:40.578] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:40.578] | : "# global environment, which is where globals are written. " [18:22:40.578] | : penv <- env <- environment(...future.FUN) [18:22:40.578] | : repeat { [18:22:40.578] | : if (identical(env, globalenv()) || identical(env, [18:22:40.578] | : emptyenv())) [18:22:40.578] | : break [18:22:40.578] | : penv <- env [18:22:40.578] | : env <- parent.env(env) [18:22:40.578] | : } [18:22:40.578] | : if (identical(penv, globalenv())) { [18:22:40.578] | : environment(...future.FUN) <- environment() [18:22:40.578] | : } [18:22:40.578] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:40.578] | : !isNamespace(penv)) { [18:22:40.578] | : parent.env(penv) <- environment() [18:22:40.578] | : } [18:22:40.578] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:40.578] | : { [18:22:40.578] | : "# future.apply:::future_xapply(): preserve future option" [18:22:40.578] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:40.578] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:40.578] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:40.578] | : on.exit(options(oopts), add = TRUE) [18:22:40.578] | : } [18:22:40.578] | : { [18:22:40.578] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:40.578] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:40.578] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:40.578] | : { [18:22:40.578] | : ...future.FUN(...future.X_jj, ...) [18:22:40.578] | : } [18:22:40.578] | : }) [18:22:40.578] | : } [18:22:40.578] | : } [18:22:40.578] | : }, args = future.call.arguments) [18:22:40.578] | : } [18:22:40.578] | : Globals: 6 objects totaling 3.69 KiB (function '...future.FUN' of 182 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, ...) [18:22:40.578] | : Packages: [18:22:40.578] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:40.578] | : Capture standard output: TRUE [18:22:40.578] | : Capture condition classes: 'condition' (excluding '') [18:22:40.578] | : Immediate condition classes: 'immediateCondition' [18:22:40.578] | : Lazy evaluation: FALSE [18:22:40.578] | : Local evaluation: TRUE [18:22:40.578] | : Early signaling: FALSE [18:22:40.578] | : Actions: [n=1] 'run' [18:22:40.578] | : State: 'finished' ("Future was resolved successfully") [18:22:40.578] | : Resolved: TRUE [18:22:40.578] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-14 [18:22:40.578] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.578] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [18:22:40.578] | : Value: 47 bytes of class 'list' [18:22:40.578] | : Duration: 0.003803015 secs (started 2026-01-18 18:22:40.572568) [18:22:40.578] | : Worker process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.580] | : Chunk #1 of 1 ... DONE [18:22:40.580] | : Launching 1 futures (chunks) ... DONE [18:22:40.580] | : Resolving 1 futures (chunks) ... [18:22:40.581] | : - Number of value chunks collected: 1 [18:22:40.581] | : Resolving 1 futures (chunks) ... DONE [18:22:40.582] | : Reducing values from 1 chunks ... [18:22:40.582] | : - Number of values collected after concatenation: 1 [18:22:40.582] | : - Number of values expected: 1 [18:22:40.582] | : Reducing values from 1 chunks ... DONE [18:22:40.582] | future_lapply() -> future_xapply() ... done [18:22:40.583] future_lapply() ... done - lapply(X, ...) |> futurize() - '{ a; a <- a + 1 }' ... [18:22:40.583] future_lapply() ... [18:22:40.585] | Globals in FUN(): [n=4] '{', 'a', '<-', '+' [18:22:40.585] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:40.585] | future_lapply() -> future_xapply() ... [18:22:40.586] | : Number of chunks: 1 [18:22:40.586] | : getGlobalsAndPackagesXApply() ... [18:22:40.586] | : . future.globals: TRUE [18:22:40.604] | : . globals found/used: [n=2] 'FUN', 'a' [18:22:40.605] | : . needed namespaces: [n=0] [18:22:40.605] | : . use_args: TRUE [18:22:40.605] | : . Getting '...' globals ... [18:22:40.606] | : . ' '...' content: [n=0] [18:22:40.606] | : . ' List of 1 [18:22:40.606] | : . ' $ ...: list() [18:22:40.606] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.606] | : . ' - attr(*, "where")=List of 1 [18:22:40.606] | : . ' ..$ ...: [18:22:40.606] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.606] | : . ' - attr(*, "resolved")= logi TRUE [18:22:40.606] | : . ' - attr(*, "total_size")= num NA [18:22:40.610] | : . Getting '...' globals ... done [18:22:40.610] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [18:22:40.610] | : . List of 3 [18:22:40.610] | : . $ ...future.FUN:function (ii) [18:22:40.610] | : . $ a : num 1 [18:22:40.610] | : . $ ... : list() [18:22:40.610] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.610] | : . - attr(*, "where")=List of 3 [18:22:40.610] | : . ..$ ...future.FUN: [18:22:40.610] | : . ..$ a : [18:22:40.610] | : . ..$ ... : [18:22:40.610] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.610] | : . - attr(*, "resolved")= logi FALSE [18:22:40.610] | : . - attr(*, "total_size")= num 3499 [18:22:40.615] | : . Packages to be attached in all futures: [n=0] [18:22:40.616] | : getGlobalsAndPackagesXApply() ... done [18:22:40.616] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.616] | : List of 6 [18:22:40.616] | : $ ...future.FUN :function (ii) [18:22:40.616] | : $ a : num 1 [18:22:40.616] | : $ ... : list() [18:22:40.616] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.616] | : $ ...future.elements_ii : NULL [18:22:40.616] | : $ ...future.seeds_ii : NULL [18:22:40.616] | : $ ...future.globals.maxSize: NULL [18:22:40.616] | : - attr(*, "where")=List of 6 [18:22:40.616] | : ..$ ...future.FUN : [18:22:40.616] | : ..$ a : [18:22:40.616] | : ..$ ... : [18:22:40.616] | : ..$ ...future.elements_ii : [18:22:40.616] | : ..$ ...future.seeds_ii : [18:22:40.616] | : ..$ ...future.globals.maxSize: [18:22:40.616] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.616] | : - attr(*, "resolved")= logi FALSE [18:22:40.616] | : - attr(*, "total_size")= num 3499 [18:22:40.623] | : Number of futures (= number of chunks): 1 [18:22:40.624] | : Launching 1 futures (chunks) ... [18:22:40.624] | : Chunk #1 of 1 ... [18:22:40.624] | : - Finding globals in 'X' for chunk #1 ... [18:22:40.625] | : + additional globals found: [n=0] [18:22:40.625] | : + additional namespaces needed: [n=0] [18:22:40.625] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:40.625] | : - seeds: [18:22:40.625] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.632] | : Created future: [18:22:40.632] | : SequentialFuture: [18:22:40.632] | : Label: 'future_lapply-1' [18:22:40.632] | : Expression: [18:22:40.632] | : { [18:22:40.632] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:40.632] | : "# expression in do.call(), because function called uses '...' " [18:22:40.632] | : "# as a global variable " [18:22:40.632] | : do.call(function(...) { [18:22:40.632] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:40.632] | : "# without having an '...' argument. This means '...' is treated" [18:22:40.632] | : "# as a global variable. This may happen when FUN() is an " [18:22:40.632] | : "# anonymous function. " [18:22:40.632] | : "# " [18:22:40.632] | : "# If an anonymous function, we will make sure to restore the " [18:22:40.632] | : "# function environment of FUN() to the calling environment. " [18:22:40.632] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:40.632] | : "# global environment, which is where globals are written. " [18:22:40.632] | : penv <- env <- environment(...future.FUN) [18:22:40.632] | : repeat { [18:22:40.632] | : if (identical(env, globalenv()) || identical(env, [18:22:40.632] | : emptyenv())) [18:22:40.632] | : break [18:22:40.632] | : penv <- env [18:22:40.632] | : env <- parent.env(env) [18:22:40.632] | : } [18:22:40.632] | : if (identical(penv, globalenv())) { [18:22:40.632] | : environment(...future.FUN) <- environment() [18:22:40.632] | : } [18:22:40.632] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:40.632] | : !isNamespace(penv)) { [18:22:40.632] | : parent.env(penv) <- environment() [18:22:40.632] | : } [18:22:40.632] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:40.632] | : { [18:22:40.632] | : "# future.apply:::future_xapply(): preserve future option" [18:22:40.632] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:40.632] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:40.632] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:40.632] | : on.exit(options(oopts), add = TRUE) [18:22:40.632] | : } [18:22:40.632] | : { [18:22:40.632] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:40.632] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:40.632] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:40.632] | : { [18:22:40.632] | : ...future.FUN(...future.X_jj, ...) [18:22:40.632] | : } [18:22:40.632] | : }) [18:22:40.632] | : } [18:22:40.632] | : } [18:22:40.632] | : }, args = future.call.arguments) [18:22:40.632] | : } [18:22:40.632] | : Globals: 6 objects totaling 3.69 KiB (function '...future.FUN' of 182 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, ...) [18:22:40.632] | : Packages: [18:22:40.632] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:40.632] | : Capture standard output: TRUE [18:22:40.632] | : Capture condition classes: 'condition' (excluding '') [18:22:40.632] | : Immediate condition classes: 'immediateCondition' [18:22:40.632] | : Lazy evaluation: FALSE [18:22:40.632] | : Local evaluation: TRUE [18:22:40.632] | : Early signaling: FALSE [18:22:40.632] | : Actions: [n=1] 'run' [18:22:40.632] | : State: 'finished' ("Future was resolved successfully") [18:22:40.632] | : Resolved: TRUE [18:22:40.632] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-15 [18:22:40.632] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.632] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [18:22:40.632] | : Value: 47 bytes of class 'list' [18:22:40.632] | : Duration: 0.003695965 secs (started 2026-01-18 18:22:40.627379) [18:22:40.632] | : Worker process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.635] | : Chunk #1 of 1 ... DONE [18:22:40.635] | : Launching 1 futures (chunks) ... DONE [18:22:40.635] | : Resolving 1 futures (chunks) ... [18:22:40.636] | : - Number of value chunks collected: 1 [18:22:40.636] | : Resolving 1 futures (chunks) ... DONE [18:22:40.636] | : Reducing values from 1 chunks ... [18:22:40.636] | : - Number of values collected after concatenation: 1 [18:22:40.637] | : - Number of values expected: 1 [18:22:40.637] | : Reducing values from 1 chunks ... DONE [18:22:40.637] | future_lapply() -> future_xapply() ... done [18:22:40.637] future_lapply() ... done - lapply(..., future.globals = ) |> futurize() ... [18:22:40.638] future_lapply() ... [18:22:40.638] | Globals in FUN(): [n=1] 'a' [18:22:40.639] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:40.639] | future_lapply() -> future_xapply() ... [18:22:40.639] | : Number of chunks: 1 [18:22:40.640] | : getGlobalsAndPackagesXApply() ... [18:22:40.640] | : . future.globals: with names 'a' [18:22:40.640] | : . use_args: TRUE [18:22:40.640] | : . Getting '...' globals ... [18:22:40.641] | : . ' '...' content: [n=0] [18:22:40.641] | : . ' List of 1 [18:22:40.641] | : . ' $ ...: list() [18:22:40.641] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.641] | : . ' - attr(*, "where")=List of 1 [18:22:40.641] | : . ' ..$ ...: [18:22:40.641] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.641] | : . ' - attr(*, "resolved")= logi TRUE [18:22:40.641] | : . ' - attr(*, "total_size")= num NA [18:22:40.645] | : . Getting '...' globals ... done [18:22:40.645] | : . Globals to be used in all futures (chunks): [n=3] 'a', '...future.FUN', '...' [18:22:40.645] | : . List of 3 [18:22:40.645] | : . $ a : num 42 [18:22:40.645] | : . $ ...future.FUN:function (x) [18:22:40.645] | : . $ ... : list() [18:22:40.645] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.645] | : . - attr(*, "where")=List of 3 [18:22:40.645] | : . ..$ a : [18:22:40.645] | : . ..$ ...future.FUN: [18:22:40.645] | : . ..$ ... : [18:22:40.645] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.645] | : . - attr(*, "resolved")= logi FALSE [18:22:40.645] | : . - attr(*, "total_size")= num NA [18:22:40.651] | : . Packages to be attached in all futures: [n=0] [18:22:40.651] | : getGlobalsAndPackagesXApply() ... done [18:22:40.651] | : Globals pass to each chunk: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.651] | : List of 6 [18:22:40.651] | : $ a : num 42 [18:22:40.651] | : $ ...future.FUN :function (x) [18:22:40.651] | : $ ... : list() [18:22:40.651] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:40.651] | : $ ...future.elements_ii : NULL [18:22:40.651] | : $ ...future.seeds_ii : NULL [18:22:40.651] | : $ ...future.globals.maxSize: NULL [18:22:40.651] | : - attr(*, "where")=List of 6 [18:22:40.651] | : ..$ a : [18:22:40.651] | : ..$ ...future.FUN : [18:22:40.651] | : ..$ ... : [18:22:40.651] | : ..$ ...future.elements_ii : [18:22:40.651] | : ..$ ...future.seeds_ii : [18:22:40.651] | : ..$ ...future.globals.maxSize: [18:22:40.651] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:40.651] | : - attr(*, "resolved")= logi FALSE [18:22:40.651] | : - attr(*, "total_size")= num NA [18:22:40.659] | : Number of futures (= number of chunks): 1 [18:22:40.659] | : Launching 1 futures (chunks) ... [18:22:40.659] | : Chunk #1 of 1 ... [18:22:40.659] | : - seeds: [18:22:40.660] | : - All globals exported: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:40.666] | : Created future: [18:22:40.666] | : SequentialFuture: [18:22:40.666] | : Label: 'future_lapply-1' [18:22:40.666] | : Expression: [18:22:40.666] | : { [18:22:40.666] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:40.666] | : "# expression in do.call(), because function called uses '...' " [18:22:40.666] | : "# as a global variable " [18:22:40.666] | : do.call(function(...) { [18:22:40.666] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:40.666] | : "# without having an '...' argument. This means '...' is treated" [18:22:40.666] | : "# as a global variable. This may happen when FUN() is an " [18:22:40.666] | : "# anonymous function. " [18:22:40.666] | : "# " [18:22:40.666] | : "# If an anonymous function, we will make sure to restore the " [18:22:40.666] | : "# function environment of FUN() to the calling environment. " [18:22:40.666] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:40.666] | : "# global environment, which is where globals are written. " [18:22:40.666] | : penv <- env <- environment(...future.FUN) [18:22:40.666] | : repeat { [18:22:40.666] | : if (identical(env, globalenv()) || identical(env, [18:22:40.666] | : emptyenv())) [18:22:40.666] | : break [18:22:40.666] | : penv <- env [18:22:40.666] | : env <- parent.env(env) [18:22:40.666] | : } [18:22:40.666] | : if (identical(penv, globalenv())) { [18:22:40.666] | : environment(...future.FUN) <- environment() [18:22:40.666] | : } [18:22:40.666] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:40.666] | : !isNamespace(penv)) { [18:22:40.666] | : parent.env(penv) <- environment() [18:22:40.666] | : } [18:22:40.666] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:40.666] | : { [18:22:40.666] | : "# future.apply:::future_xapply(): preserve future option" [18:22:40.666] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:40.666] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:40.666] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:40.666] | : on.exit(options(oopts), add = TRUE) [18:22:40.666] | : } [18:22:40.666] | : { [18:22:40.666] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:40.666] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:40.666] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:40.666] | : { [18:22:40.666] | : ...future.FUN(...future.X_jj, ...) [18:22:40.666] | : } [18:22:40.666] | : }) [18:22:40.666] | : } [18:22:40.666] | : } [18:22:40.666] | : }, args = future.call.arguments) [18:22:40.666] | : } [18:22:40.666] | : Globals: 6 objects totaling 3.57 KiB (DotDotDotList 'future.call.arguments' of 97 bytes, function '...future.FUN' of 69 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes, ...) [18:22:40.666] | : Packages: [18:22:40.666] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:40.666] | : Capture standard output: TRUE [18:22:40.666] | : Capture condition classes: 'condition' (excluding '') [18:22:40.666] | : Immediate condition classes: 'immediateCondition' [18:22:40.666] | : Lazy evaluation: FALSE [18:22:40.666] | : Local evaluation: TRUE [18:22:40.666] | : Early signaling: FALSE [18:22:40.666] | : Actions: [n=1] 'run' [18:22:40.666] | : State: 'finished' ("Future was resolved successfully") [18:22:40.666] | : Resolved: TRUE [18:22:40.666] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-16 [18:22:40.666] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.666] | : Class: 'SequentialFuture', 'UniprocessFuture', 'Future' [18:22:40.666] | : Value: 47 bytes of class 'list' [18:22:40.666] | : Duration: 0.003736019 secs (started 2026-01-18 18:22:40.661507) [18:22:40.666] | : Worker process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:40.669] | : Chunk #1 of 1 ... DONE [18:22:40.669] | : Launching 1 futures (chunks) ... DONE [18:22:40.669] | : Resolving 1 futures (chunks) ... [18:22:40.670] | : - Number of value chunks collected: 1 [18:22:40.670] | : Resolving 1 futures (chunks) ... DONE [18:22:40.670] | : Reducing values from 1 chunks ... [18:22:40.670] | : - Number of values collected after concatenation: 1 [18:22:40.671] | : - Number of values expected: 1 [18:22:40.671] | : Reducing values from 1 chunks ... DONE [18:22:40.671] | future_lapply() -> future_xapply() ... done [18:22:40.671] future_lapply() ... done List of 1 $ : num 42 [18:22:41.036] future_lapply() ... [18:22:41.038] | Globals in FUN(): [n=7] '{', 'do.call', 'caller', 'c', 'list', '+', 'args' [18:22:41.038] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.038] | future_lapply() -> future_xapply() ... [18:22:41.042] | : Number of chunks: 2 [18:22:41.042] | : getGlobalsAndPackagesXApply() ... [18:22:41.042] | : . future.globals: TRUE [18:22:41.070] | : . globals found/used: [n=5] 'FUN', 'caller', 'args', 'call_my_add', 'my_add' [18:22:41.070] | : . needed namespaces: [n=0] [18:22:41.070] | : . use_args: TRUE [18:22:41.071] | : . Getting '...' globals ... [18:22:41.071] | : . ' '...' content: [n=0] [18:22:41.071] | : . ' List of 1 [18:22:41.071] | : . ' $ ...: list() [18:22:41.071] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.071] | : . ' - attr(*, "where")=List of 1 [18:22:41.071] | : . ' ..$ ...: [18:22:41.071] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.071] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.071] | : . ' - attr(*, "total_size")= num NA [18:22:41.075] | : . Getting '...' globals ... done [18:22:41.075] | : . Globals to be used in all futures (chunks): [n=6] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...' [18:22:41.075] | : . List of 6 [18:22:41.075] | : . $ ...future.FUN:function (i) [18:22:41.075] | : . $ caller :function (a, b, FUN = call_my_add) [18:22:41.075] | : . $ args :List of 1 [18:22:41.075] | : . ..$ FUN:function (a, b) [18:22:41.075] | : . $ call_my_add :function (a, b) [18:22:41.075] | : . $ my_add :function (a, b) [18:22:41.075] | : . $ ... : list() [18:22:41.075] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.075] | : . - attr(*, "where")=List of 6 [18:22:41.075] | : . ..$ ...future.FUN: [18:22:41.075] | : . ..$ caller : [18:22:41.075] | : . ..$ args : [18:22:41.075] | : . ..$ call_my_add : [18:22:41.075] | : . ..$ my_add : [18:22:41.075] | : . ..$ ... : [18:22:41.075] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.075] | : . - attr(*, "resolved")= logi FALSE [18:22:41.075] | : . - attr(*, "total_size")= num 10976 [18:22:41.081] | : . Packages to be attached in all futures: [n=0] [18:22:41.082] | : getGlobalsAndPackagesXApply() ... done [18:22:41.082] | : 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' [18:22:41.082] | : List of 9 [18:22:41.082] | : $ ...future.FUN :function (i) [18:22:41.082] | : $ caller :function (a, b, FUN = call_my_add) [18:22:41.082] | : $ args :List of 1 [18:22:41.082] | : ..$ FUN:function (a, b) [18:22:41.082] | : $ call_my_add :function (a, b) [18:22:41.082] | : $ my_add :function (a, b) [18:22:41.082] | : $ ... : list() [18:22:41.082] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.082] | : $ ...future.elements_ii : NULL [18:22:41.082] | : $ ...future.seeds_ii : NULL [18:22:41.082] | : $ ...future.globals.maxSize: NULL [18:22:41.082] | : - attr(*, "where")=List of 9 [18:22:41.082] | : ..$ ...future.FUN : [18:22:41.082] | : ..$ caller : [18:22:41.082] | : ..$ args : [18:22:41.082] | : ..$ call_my_add : [18:22:41.082] | : ..$ my_add : [18:22:41.082] | : ..$ ... : [18:22:41.082] | : ..$ ...future.elements_ii : [18:22:41.082] | : ..$ ...future.seeds_ii : [18:22:41.082] | : ..$ ...future.globals.maxSize: [18:22:41.082] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.082] | : - attr(*, "resolved")= logi FALSE [18:22:41.082] | : - attr(*, "total_size")= num 10976 [18:22:41.090] | : Number of futures (= number of chunks): 2 [18:22:41.090] | : Launching 2 futures (chunks) ... [18:22:41.090] | : Chunk #1 of 2 ... [18:22:41.090] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.091] | : + additional globals found: [n=0] [18:22:41.091] | : + additional namespaces needed: [n=0] [18:22:41.091] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.091] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [18:22:41.092] | : - seeds: [18:22:41.092] | : - All globals exported: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.094] | : Created future: [18:22:41.094] | : MultisessionFuture: [18:22:41.094] | : Label: 'future_lapply-1' [18:22:41.094] | : Expression: [18:22:41.094] | : { [18:22:41.094] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.094] | : "# expression in do.call(), because function called uses '...' " [18:22:41.094] | : "# as a global variable " [18:22:41.094] | : do.call(function(...) { [18:22:41.094] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.094] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.094] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.094] | : "# anonymous function. " [18:22:41.094] | : "# " [18:22:41.094] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.094] | : "# function environment of FUN() to the calling environment. " [18:22:41.094] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.094] | : "# global environment, which is where globals are written. " [18:22:41.094] | : penv <- env <- environment(...future.FUN) [18:22:41.094] | : repeat { [18:22:41.094] | : if (identical(env, globalenv()) || identical(env, [18:22:41.094] | : emptyenv())) [18:22:41.094] | : break [18:22:41.094] | : penv <- env [18:22:41.094] | : env <- parent.env(env) [18:22:41.094] | : } [18:22:41.094] | : if (identical(penv, globalenv())) { [18:22:41.094] | : environment(...future.FUN) <- environment() [18:22:41.094] | : } [18:22:41.094] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.094] | : !isNamespace(penv)) { [18:22:41.094] | : parent.env(penv) <- environment() [18:22:41.094] | : } [18:22:41.094] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.094] | : { [18:22:41.094] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.094] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.094] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.094] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.094] | : on.exit(options(oopts), add = TRUE) [18:22:41.094] | : } [18:22:41.094] | : { [18:22:41.094] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.094] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.094] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.094] | : { [18:22:41.094] | : ...future.FUN(...future.X_jj, ...) [18:22:41.094] | : } [18:22:41.094] | : }) [18:22:41.094] | : } [18:22:41.094] | : } [18:22:41.094] | : }, args = future.call.arguments) [18:22:41.094] | : } [18:22:41.094] | : Globals: 9 objects totaling 8.49 KiB (function '...future.FUN' of 2.44 KiB, list 'args' of 928 bytes, function 'caller' of 904 bytes, function 'call_my_add' of 876 bytes, function 'my_add' of 114 bytes, ...) [18:22:41.094] | : Packages: [18:22:41.094] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.094] | : Capture standard output: TRUE [18:22:41.094] | : Capture condition classes: 'condition' (excluding '') [18:22:41.094] | : Immediate condition classes: 'immediateCondition' [18:22:41.094] | : Lazy evaluation: FALSE [18:22:41.094] | : Local evaluation: TRUE [18:22:41.094] | : Early signaling: FALSE [18:22:41.094] | : Actions: [n=1] 'run' [18:22:41.094] | : State: 'running' ("Future is being evaluated") [18:22:41.094] | : Resolved: TRUE [18:22:41.094] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-17 [18:22:41.094] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.094] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.094] | : Value: [18:22:41.094] | : Conditions captured: [18:22:41.165] | : Chunk #1 of 2 ... DONE [18:22:41.165] | : Chunk #2 of 2 ... [18:22:41.165] | : - Finding globals in 'X' for chunk #2 ... [18:22:41.166] | : + additional globals found: [n=0] [18:22:41.166] | : + additional namespaces needed: [n=0] [18:22:41.166] | : - Finding globals in 'X' for chunk #2 ... DONE [18:22:41.166] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [18:22:41.166] | : - seeds: [18:22:41.167] | : - All globals exported: [n=9] '...future.FUN', 'caller', 'args', 'call_my_add', 'my_add', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.169] | : Created future: [18:22:41.169] | : MultisessionFuture: [18:22:41.169] | : Label: 'future_lapply-2' [18:22:41.169] | : Expression: [18:22:41.169] | : { [18:22:41.169] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.169] | : "# expression in do.call(), because function called uses '...' " [18:22:41.169] | : "# as a global variable " [18:22:41.169] | : do.call(function(...) { [18:22:41.169] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.169] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.169] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.169] | : "# anonymous function. " [18:22:41.169] | : "# " [18:22:41.169] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.169] | : "# function environment of FUN() to the calling environment. " [18:22:41.169] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.169] | : "# global environment, which is where globals are written. " [18:22:41.169] | : penv <- env <- environment(...future.FUN) [18:22:41.169] | : repeat { [18:22:41.169] | : if (identical(env, globalenv()) || identical(env, [18:22:41.169] | : emptyenv())) [18:22:41.169] | : break [18:22:41.169] | : penv <- env [18:22:41.169] | : env <- parent.env(env) [18:22:41.169] | : } [18:22:41.169] | : if (identical(penv, globalenv())) { [18:22:41.169] | : environment(...future.FUN) <- environment() [18:22:41.169] | : } [18:22:41.169] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.169] | : !isNamespace(penv)) { [18:22:41.169] | : parent.env(penv) <- environment() [18:22:41.169] | : } [18:22:41.169] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.169] | : { [18:22:41.169] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.169] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.169] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.169] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.169] | : on.exit(options(oopts), add = TRUE) [18:22:41.169] | : } [18:22:41.169] | : { [18:22:41.169] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.169] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.169] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.169] | : { [18:22:41.169] | : ...future.FUN(...future.X_jj, ...) [18:22:41.169] | : } [18:22:41.169] | : }) [18:22:41.169] | : } [18:22:41.169] | : } [18:22:41.169] | : }, args = future.call.arguments) [18:22:41.169] | : } [18:22:41.169] | : Globals: 9 objects totaling 8.50 KiB (function '...future.FUN' of 2.44 KiB, list 'args' of 928 bytes, function 'caller' of 904 bytes, function 'call_my_add' of 876 bytes, function 'my_add' of 114 bytes, ...) [18:22:41.169] | : Packages: [18:22:41.169] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.169] | : Capture standard output: TRUE [18:22:41.169] | : Capture condition classes: 'condition' (excluding '') [18:22:41.169] | : Immediate condition classes: 'immediateCondition' [18:22:41.169] | : Lazy evaluation: FALSE [18:22:41.169] | : Local evaluation: TRUE [18:22:41.169] | : Early signaling: FALSE [18:22:41.169] | : Actions: [n=1] 'run' [18:22:41.169] | : State: 'running' ("Future is being evaluated") [18:22:41.169] | : Resolved: TRUE [18:22:41.169] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-18 [18:22:41.169] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.169] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.169] | : Value: [18:22:41.169] | : Conditions captured: [18:22:41.175] | : Chunk #2 of 2 ... DONE [18:22:41.175] | : Launching 2 futures (chunks) ... DONE [18:22:41.175] | : Resolving 2 futures (chunks) ... [18:22:41.176] | : - Number of value chunks collected: 2 [18:22:41.176] | : Resolving 2 futures (chunks) ... DONE [18:22:41.176] | : Reducing values from 2 chunks ... [18:22:41.177] | : - Number of values collected after concatenation: 3 [18:22:41.177] | : - Number of values expected: 3 [18:22:41.177] | : Reducing values from 2 chunks ... DONE [18:22:41.177] | future_lapply() -> future_xapply() ... done [18:22:41.177] future_lapply() ... done - lapply(x, FUN = do.call, ...) |> futurize() ... [18:22:41.178] future_lapply() ... [18:22:41.182] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [18:22:41.182] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.183] | future_lapply() -> future_xapply() ... [18:22:41.183] | : Number of chunks: 1 [18:22:41.183] | : getGlobalsAndPackagesXApply() ... [18:22:41.183] | : . future.globals: TRUE [18:22:41.205] | : . globals found/used: [n=1] 'FUN' [18:22:41.206] | : . needed namespaces: [n=0] [18:22:41.206] | : . use_args: TRUE [18:22:41.206] | : . Getting '...' globals ... [18:22:41.207] | : . ' '...' content: [n=1] 'what' [18:22:41.207] | : . ' List of 1 [18:22:41.207] | : . ' $ ...:List of 1 [18:22:41.207] | : . ' ..$ what:function (x) [18:22:41.207] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.207] | : . ' - attr(*, "where")=List of 1 [18:22:41.207] | : . ' ..$ ...: [18:22:41.207] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.207] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.207] | : . ' - attr(*, "total_size")= num NA [18:22:41.210] | : . Getting '...' globals ... done [18:22:41.211] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:41.211] | : . List of 2 [18:22:41.211] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [18:22:41.211] | : . $ ... :List of 1 [18:22:41.211] | : . ..$ what:function (x) [18:22:41.211] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.211] | : . - attr(*, "where")=List of 2 [18:22:41.211] | : . ..$ ...future.FUN: [18:22:41.211] | : . ..$ ... : [18:22:41.211] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.211] | : . - attr(*, "resolved")= logi FALSE [18:22:41.211] | : . - attr(*, "total_size")= num 6979 [18:22:41.215] | : . Packages to be attached in all futures: [n=0] [18:22:41.215] | : getGlobalsAndPackagesXApply() ... done [18:22:41.215] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.215] | : List of 5 [18:22:41.215] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [18:22:41.215] | : $ ... :List of 1 [18:22:41.215] | : ..$ what:function (x) [18:22:41.215] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.215] | : $ ...future.elements_ii : NULL [18:22:41.215] | : $ ...future.seeds_ii : NULL [18:22:41.215] | : $ ...future.globals.maxSize: NULL [18:22:41.215] | : - attr(*, "where")=List of 5 [18:22:41.215] | : ..$ ...future.FUN : [18:22:41.215] | : ..$ ... : [18:22:41.215] | : ..$ ...future.elements_ii : [18:22:41.215] | : ..$ ...future.seeds_ii : [18:22:41.215] | : ..$ ...future.globals.maxSize: [18:22:41.215] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.215] | : - attr(*, "resolved")= logi FALSE [18:22:41.215] | : - attr(*, "total_size")= num 6979 [18:22:41.221] | : Number of futures (= number of chunks): 1 [18:22:41.221] | : Launching 1 futures (chunks) ... [18:22:41.222] | : Chunk #1 of 1 ... [18:22:41.222] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.222] | : + additional globals found: [n=0] [18:22:41.223] | : + additional namespaces needed: [n=0] [18:22:41.223] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.223] | : - seeds: [18:22:41.223] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.225] | : Created future: [18:22:41.225] | : MultisessionFuture: [18:22:41.225] | : Label: 'future_lapply-1' [18:22:41.225] | : Expression: [18:22:41.225] | : { [18:22:41.225] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.225] | : "# expression in do.call(), because function called uses '...' " [18:22:41.225] | : "# as a global variable " [18:22:41.225] | : do.call(function(...) { [18:22:41.225] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.225] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.225] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.225] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.225] | : on.exit(options(oopts), add = TRUE) [18:22:41.225] | : } [18:22:41.225] | : { [18:22:41.225] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.225] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.225] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.225] | : { [18:22:41.225] | : ...future.FUN(...future.X_jj, ...) [18:22:41.225] | : } [18:22:41.225] | : }) [18:22:41.225] | : } [18:22:41.225] | : }, args = future.call.arguments) [18:22:41.225] | : } [18:22:41.225] | : Globals: 5 objects totaling 7.00 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) [18:22:41.225] | : Packages: [18:22:41.225] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.225] | : Capture standard output: TRUE [18:22:41.225] | : Capture condition classes: 'condition' (excluding '') [18:22:41.225] | : Immediate condition classes: 'immediateCondition' [18:22:41.225] | : Lazy evaluation: FALSE [18:22:41.225] | : Local evaluation: TRUE [18:22:41.225] | : Early signaling: FALSE [18:22:41.225] | : Actions: [n=1] 'run' [18:22:41.225] | : State: 'running' ("Future is being evaluated") [18:22:41.225] | : Resolved: TRUE [18:22:41.225] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-19 [18:22:41.225] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.225] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.225] | : Value: [18:22:41.225] | : Conditions captured: [18:22:41.230] | : Chunk #1 of 1 ... DONE [18:22:41.230] | : Launching 1 futures (chunks) ... DONE [18:22:41.230] | : Resolving 1 futures (chunks) ... [18:22:41.231] | : - Number of value chunks collected: 1 [18:22:41.231] | : Resolving 1 futures (chunks) ... DONE [18:22:41.231] | : Reducing values from 1 chunks ... [18:22:41.231] | : - Number of values collected after concatenation: 1 [18:22:41.231] | : - Number of values expected: 1 [18:22:41.232] | : Reducing values from 1 chunks ... DONE [18:22:41.232] | future_lapply() -> future_xapply() ... done [18:22:41.232] future_lapply() ... done [18:22:41.232] future_lapply() ... [18:22:41.234] | Globals in FUN(): [n=10] 'parent.frame', '{', 'if', '!', 'is.list', 'stop', '<-', 'lapply', 'enquote', '.Internal' [18:22:41.235] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.235] | future_lapply() -> future_xapply() ... [18:22:41.235] | : Number of chunks: 1 [18:22:41.235] | : getGlobalsAndPackagesXApply() ... [18:22:41.235] | : . future.globals: TRUE [18:22:41.261] | : . globals found/used: [n=1] 'FUN' [18:22:41.262] | : . needed namespaces: [n=0] [18:22:41.262] | : . use_args: TRUE [18:22:41.262] | : . Getting '...' globals ... [18:22:41.263] | : . ' '...' content: [n=1] 'what' [18:22:41.263] | : . ' List of 1 [18:22:41.263] | : . ' $ ...:List of 1 [18:22:41.263] | : . ' ..$ what:function (...) [18:22:41.263] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.263] | : . ' - attr(*, "where")=List of 1 [18:22:41.263] | : . ' ..$ ...: [18:22:41.263] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.263] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.263] | : . ' - attr(*, "total_size")= num NA [18:22:41.266] | : . Getting '...' globals ... done [18:22:41.267] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:41.267] | : . List of 2 [18:22:41.267] | : . $ ...future.FUN:function (what, args, quote = FALSE, envir = parent.frame()) [18:22:41.267] | : . $ ... :List of 1 [18:22:41.267] | : . ..$ what:function (...) [18:22:41.267] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.267] | : . - attr(*, "where")=List of 2 [18:22:41.267] | : . ..$ ...future.FUN: [18:22:41.267] | : . ..$ ... : [18:22:41.267] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.267] | : . - attr(*, "resolved")= logi FALSE [18:22:41.267] | : . - attr(*, "total_size")= num 7415 [18:22:41.271] | : . Packages to be attached in all futures: [n=0] [18:22:41.271] | : getGlobalsAndPackagesXApply() ... done [18:22:41.271] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.271] | : List of 5 [18:22:41.271] | : $ ...future.FUN :function (what, args, quote = FALSE, envir = parent.frame()) [18:22:41.271] | : $ ... :List of 1 [18:22:41.271] | : ..$ what:function (...) [18:22:41.271] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.271] | : $ ...future.elements_ii : NULL [18:22:41.271] | : $ ...future.seeds_ii : NULL [18:22:41.271] | : $ ...future.globals.maxSize: NULL [18:22:41.271] | : - attr(*, "where")=List of 5 [18:22:41.271] | : ..$ ...future.FUN : [18:22:41.271] | : ..$ ... : [18:22:41.271] | : ..$ ...future.elements_ii : [18:22:41.271] | : ..$ ...future.seeds_ii : [18:22:41.271] | : ..$ ...future.globals.maxSize: [18:22:41.271] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.271] | : - attr(*, "resolved")= logi FALSE [18:22:41.271] | : - attr(*, "total_size")= num 7415 [18:22:41.277] | : Number of futures (= number of chunks): 1 [18:22:41.277] | : Launching 1 futures (chunks) ... [18:22:41.277] | : Chunk #1 of 1 ... [18:22:41.277] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.278] | : + additional globals found: [n=0] [18:22:41.278] | : + additional namespaces needed: [n=0] [18:22:41.278] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.278] | : - seeds: [18:22:41.279] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.281] | : Created future: [18:22:41.281] | : MultisessionFuture: [18:22:41.281] | : Label: 'future_lapply-1' [18:22:41.281] | : Expression: [18:22:41.281] | : { [18:22:41.281] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.281] | : "# expression in do.call(), because function called uses '...' " [18:22:41.281] | : "# as a global variable " [18:22:41.281] | : do.call(function(...) { [18:22:41.281] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.281] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.281] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.281] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.281] | : on.exit(options(oopts), add = TRUE) [18:22:41.281] | : } [18:22:41.281] | : { [18:22:41.281] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.281] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.281] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.281] | : { [18:22:41.281] | : ...future.FUN(...future.X_jj, ...) [18:22:41.281] | : } [18:22:41.281] | : }) [18:22:41.281] | : } [18:22:41.281] | : }, args = future.call.arguments) [18:22:41.281] | : } [18:22:41.281] | : Globals: 5 objects totaling 7.43 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) [18:22:41.281] | : Packages: [18:22:41.281] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.281] | : Capture standard output: TRUE [18:22:41.281] | : Capture condition classes: 'condition' (excluding '') [18:22:41.281] | : Immediate condition classes: 'immediateCondition' [18:22:41.281] | : Lazy evaluation: FALSE [18:22:41.281] | : Local evaluation: TRUE [18:22:41.281] | : Early signaling: FALSE [18:22:41.281] | : Actions: [n=1] 'run' [18:22:41.281] | : State: 'running' ("Future is being evaluated") [18:22:41.281] | : Resolved: TRUE [18:22:41.281] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-20 [18:22:41.281] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.281] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.281] | : Value: [18:22:41.281] | : Conditions captured: [18:22:41.286] | : Chunk #1 of 1 ... DONE [18:22:41.286] | : Launching 1 futures (chunks) ... DONE [18:22:41.286] | : Resolving 1 futures (chunks) ... [18:22:41.286] | : - Number of value chunks collected: 1 [18:22:41.287] | : Resolving 1 futures (chunks) ... DONE [18:22:41.287] | : Reducing values from 1 chunks ... [18:22:41.287] | : - Number of values collected after concatenation: 1 [18:22:41.287] | : - Number of values expected: 1 [18:22:41.287] | : Reducing values from 1 chunks ... DONE [18:22:41.287] | future_lapply() -> future_xapply() ... done [18:22:41.288] future_lapply() ... done - lapply(x, ...) |> futurize() - passing arguments via '...' ... [18:22:41.288] future_lapply() ... [18:22:41.289] | Globals in FUN(): [n=1] 'typeof' [18:22:41.289] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.289] | future_lapply() -> future_xapply() ... [18:22:41.290] | : Number of chunks: 1 [18:22:41.290] | : getGlobalsAndPackagesXApply() ... [18:22:41.290] | : . future.globals: TRUE [18:22:41.297] | : . globals found/used: [n=1] 'FUN' [18:22:41.298] | : . needed namespaces: [n=0] [18:22:41.298] | : . use_args: TRUE [18:22:41.298] | : . Getting '...' globals ... [18:22:41.299] | : . ' '...' content: [n=1] 'b' [18:22:41.299] | : . ' List of 1 [18:22:41.299] | : . ' $ ...:List of 1 [18:22:41.299] | : . ' ..$ b:'data.frame': 2 obs. of 1 variable: [18:22:41.299] | : . ' .. ..$ a: int [1:2] 1 2 [18:22:41.299] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.299] | : . ' - attr(*, "where")=List of 1 [18:22:41.299] | : . ' ..$ ...: [18:22:41.299] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.299] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.299] | : . ' - attr(*, "total_size")= num NA [18:22:41.303] | : . Getting '...' globals ... done [18:22:41.303] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:41.303] | : . List of 2 [18:22:41.303] | : . $ ...future.FUN:function (a, b) [18:22:41.303] | : . $ ... :List of 1 [18:22:41.303] | : . ..$ b:'data.frame': 2 obs. of 1 variable: [18:22:41.303] | : . .. ..$ a: int [1:2] 1 2 [18:22:41.303] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.303] | : . - attr(*, "where")=List of 2 [18:22:41.303] | : . ..$ ...future.FUN: [18:22:41.303] | : . ..$ ... : [18:22:41.303] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.303] | : . - attr(*, "resolved")= logi FALSE [18:22:41.303] | : . - attr(*, "total_size")= num 3751 [18:22:41.308] | : . Packages to be attached in all futures: [n=0] [18:22:41.308] | : getGlobalsAndPackagesXApply() ... done [18:22:41.308] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.308] | : List of 5 [18:22:41.308] | : $ ...future.FUN :function (a, b) [18:22:41.308] | : $ ... :List of 1 [18:22:41.308] | : ..$ b:'data.frame': 2 obs. of 1 variable: [18:22:41.308] | : .. ..$ a: int [1:2] 1 2 [18:22:41.308] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.308] | : $ ...future.elements_ii : NULL [18:22:41.308] | : $ ...future.seeds_ii : NULL [18:22:41.308] | : $ ...future.globals.maxSize: NULL [18:22:41.308] | : - attr(*, "where")=List of 5 [18:22:41.308] | : ..$ ...future.FUN : [18:22:41.308] | : ..$ ... : [18:22:41.308] | : ..$ ...future.elements_ii : [18:22:41.308] | : ..$ ...future.seeds_ii : [18:22:41.308] | : ..$ ...future.globals.maxSize: [18:22:41.308] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.308] | : - attr(*, "resolved")= logi FALSE [18:22:41.308] | : - attr(*, "total_size")= num 3751 [18:22:41.314] | : Number of futures (= number of chunks): 1 [18:22:41.315] | : Launching 1 futures (chunks) ... [18:22:41.315] | : Chunk #1 of 1 ... [18:22:41.315] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.315] | : + additional globals found: [n=0] [18:22:41.316] | : + additional namespaces needed: [n=0] [18:22:41.316] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.316] | : - seeds: [18:22:41.316] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.320] | : Created future: [18:22:41.320] | : MultisessionFuture: [18:22:41.320] | : Label: 'future_lapply-1' [18:22:41.320] | : Expression: [18:22:41.320] | : { [18:22:41.320] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.320] | : "# expression in do.call(), because function called uses '...' " [18:22:41.320] | : "# as a global variable " [18:22:41.320] | : do.call(function(...) { [18:22:41.320] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.320] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.320] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.320] | : "# anonymous function. " [18:22:41.320] | : "# " [18:22:41.320] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.320] | : "# function environment of FUN() to the calling environment. " [18:22:41.320] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.320] | : "# global environment, which is where globals are written. " [18:22:41.320] | : penv <- env <- environment(...future.FUN) [18:22:41.320] | : repeat { [18:22:41.320] | : if (identical(env, globalenv()) || identical(env, [18:22:41.320] | : emptyenv())) [18:22:41.320] | : break [18:22:41.320] | : penv <- env [18:22:41.320] | : env <- parent.env(env) [18:22:41.320] | : } [18:22:41.320] | : if (identical(penv, globalenv())) { [18:22:41.320] | : environment(...future.FUN) <- environment() [18:22:41.320] | : } [18:22:41.320] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.320] | : !isNamespace(penv)) { [18:22:41.320] | : parent.env(penv) <- environment() [18:22:41.320] | : } [18:22:41.320] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.320] | : { [18:22:41.320] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.320] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.320] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.320] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.320] | : on.exit(options(oopts), add = TRUE) [18:22:41.320] | : } [18:22:41.320] | : { [18:22:41.320] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.320] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.320] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.320] | : { [18:22:41.320] | : ...future.FUN(...future.X_jj, ...) [18:22:41.320] | : } [18:22:41.320] | : }) [18:22:41.320] | : } [18:22:41.320] | : } [18:22:41.320] | : }, args = future.call.arguments) [18:22:41.320] | : } [18:22:41.320] | : Globals: 5 objects totaling 3.95 KiB (DotDotDotList 'future.call.arguments' of 357 bytes, function '...future.FUN' of 111 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [18:22:41.320] | : Packages: [18:22:41.320] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.320] | : Capture standard output: TRUE [18:22:41.320] | : Capture condition classes: 'condition' (excluding '') [18:22:41.320] | : Immediate condition classes: 'immediateCondition' [18:22:41.320] | : Lazy evaluation: FALSE [18:22:41.320] | : Local evaluation: TRUE [18:22:41.320] | : Early signaling: FALSE [18:22:41.320] | : Actions: [n=1] 'run' [18:22:41.320] | : State: 'running' ("Future is being evaluated") [18:22:41.320] | : Resolved: TRUE [18:22:41.320] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-21 [18:22:41.320] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.320] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.320] | : Value: [18:22:41.320] | : Conditions captured: [18:22:41.325] | : Chunk #1 of 1 ... DONE [18:22:41.325] | : Launching 1 futures (chunks) ... DONE [18:22:41.325] | : Resolving 1 futures (chunks) ... [18:22:41.326] | : - Number of value chunks collected: 1 [18:22:41.326] | : Resolving 1 futures (chunks) ... DONE [18:22:41.326] | : Reducing values from 1 chunks ... [18:22:41.326] | : - Number of values collected after concatenation: 1 [18:22:41.326] | : - Number of values expected: 1 [18:22:41.326] | : Reducing values from 1 chunks ... DONE [18:22:41.327] | future_lapply() -> future_xapply() ... done [18:22:41.327] future_lapply() ... done [18:22:41.327] future_lapply() ... [18:22:41.328] | Globals in FUN(): [n=1] 'typeof' [18:22:41.328] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.328] | future_lapply() -> future_xapply() ... [18:22:41.329] | : Number of chunks: 1 [18:22:41.329] | : getGlobalsAndPackagesXApply() ... [18:22:41.329] | : . future.globals: TRUE [18:22:41.336] | : . globals found/used: [n=1] 'FUN' [18:22:41.336] | : . needed namespaces: [n=0] [18:22:41.336] | : . use_args: TRUE [18:22:41.336] | : . Getting '...' globals ... [18:22:41.337] | : . ' '...' content: [n=1] 'b' [18:22:41.337] | : . ' List of 1 [18:22:41.337] | : . ' $ ...:List of 1 [18:22:41.337] | : . ' ..$ b: [18:22:41.337] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.337] | : . ' - attr(*, "where")=List of 1 [18:22:41.337] | : . ' ..$ ...: [18:22:41.337] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.337] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.337] | : . ' - attr(*, "total_size")= num NA [18:22:41.340] | : . Getting '...' globals ... done [18:22:41.341] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:41.341] | : . List of 2 [18:22:41.341] | : . $ ...future.FUN:function (a, b) [18:22:41.341] | : . $ ... :List of 1 [18:22:41.341] | : . ..$ b: [18:22:41.341] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.341] | : . - attr(*, "where")=List of 2 [18:22:41.341] | : . ..$ ...future.FUN: [18:22:41.341] | : . ..$ ... : [18:22:41.341] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.341] | : . - attr(*, "resolved")= logi FALSE [18:22:41.341] | : . - attr(*, "total_size")= num 3506 [18:22:41.345] | : . Packages to be attached in all futures: [n=0] [18:22:41.345] | : getGlobalsAndPackagesXApply() ... done [18:22:41.345] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.345] | : List of 5 [18:22:41.345] | : $ ...future.FUN :function (a, b) [18:22:41.345] | : $ ... :List of 1 [18:22:41.345] | : ..$ b: [18:22:41.345] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.345] | : $ ...future.elements_ii : NULL [18:22:41.345] | : $ ...future.seeds_ii : NULL [18:22:41.345] | : $ ...future.globals.maxSize: NULL [18:22:41.345] | : - attr(*, "where")=List of 5 [18:22:41.345] | : ..$ ...future.FUN : [18:22:41.345] | : ..$ ... : [18:22:41.345] | : ..$ ...future.elements_ii : [18:22:41.345] | : ..$ ...future.seeds_ii : [18:22:41.345] | : ..$ ...future.globals.maxSize: [18:22:41.345] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.345] | : - attr(*, "resolved")= logi FALSE [18:22:41.345] | : - attr(*, "total_size")= num 3506 [18:22:41.351] | : Number of futures (= number of chunks): 1 [18:22:41.351] | : Launching 1 futures (chunks) ... [18:22:41.351] | : Chunk #1 of 1 ... [18:22:41.351] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.352] | : + additional globals found: [n=0] [18:22:41.352] | : + additional namespaces needed: [n=0] [18:22:41.352] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.352] | : - seeds: [18:22:41.352] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.354] | : Created future: [18:22:41.355] | : MultisessionFuture: [18:22:41.355] | : Label: 'future_lapply-1' [18:22:41.355] | : Expression: [18:22:41.355] | : { [18:22:41.355] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.355] | : "# expression in do.call(), because function called uses '...' " [18:22:41.355] | : "# as a global variable " [18:22:41.355] | : do.call(function(...) { [18:22:41.355] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.355] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.355] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.355] | : "# anonymous function. " [18:22:41.355] | : "# " [18:22:41.355] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.355] | : "# function environment of FUN() to the calling environment. " [18:22:41.355] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.355] | : "# global environment, which is where globals are written. " [18:22:41.355] | : penv <- env <- environment(...future.FUN) [18:22:41.355] | : repeat { [18:22:41.355] | : if (identical(env, globalenv()) || identical(env, [18:22:41.355] | : emptyenv())) [18:22:41.355] | : break [18:22:41.355] | : penv <- env [18:22:41.355] | : env <- parent.env(env) [18:22:41.355] | : } [18:22:41.355] | : if (identical(penv, globalenv())) { [18:22:41.355] | : environment(...future.FUN) <- environment() [18:22:41.355] | : } [18:22:41.355] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.355] | : !isNamespace(penv)) { [18:22:41.355] | : parent.env(penv) <- environment() [18:22:41.355] | : } [18:22:41.355] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.355] | : { [18:22:41.355] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.355] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.355] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.355] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.355] | : on.exit(options(oopts), add = TRUE) [18:22:41.355] | : } [18:22:41.355] | : { [18:22:41.355] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.355] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.355] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.355] | : { [18:22:41.355] | : ...future.FUN(...future.X_jj, ...) [18:22:41.355] | : } [18:22:41.355] | : }) [18:22:41.355] | : } [18:22:41.355] | : } [18:22:41.355] | : }, args = future.call.arguments) [18:22:41.355] | : } [18:22:41.355] | : Globals: 5 objects totaling 3.71 KiB (DotDotDotList 'future.call.arguments' of 279 bytes, function '...future.FUN' of 111 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [18:22:41.355] | : Packages: [18:22:41.355] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.355] | : Capture standard output: TRUE [18:22:41.355] | : Capture condition classes: 'condition' (excluding '') [18:22:41.355] | : Immediate condition classes: 'immediateCondition' [18:22:41.355] | : Lazy evaluation: FALSE [18:22:41.355] | : Local evaluation: TRUE [18:22:41.355] | : Early signaling: FALSE [18:22:41.355] | : Actions: [n=1] 'run' [18:22:41.355] | : State: 'running' ("Future is being evaluated") [18:22:41.355] | : Resolved: TRUE [18:22:41.355] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-22 [18:22:41.355] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.355] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.355] | : Value: [18:22:41.355] | : Conditions captured: [18:22:41.359] | : Chunk #1 of 1 ... DONE [18:22:41.359] | : Launching 1 futures (chunks) ... DONE [18:22:41.360] | : Resolving 1 futures (chunks) ... [18:22:41.360] | : - Number of value chunks collected: 1 [18:22:41.360] | : Resolving 1 futures (chunks) ... DONE [18:22:41.361] | : Reducing values from 1 chunks ... [18:22:41.361] | : - Number of values collected after concatenation: 1 [18:22:41.361] | : - Number of values expected: 1 [18:22:41.361] | : Reducing values from 1 chunks ... DONE [18:22:41.361] | future_lapply() -> future_xapply() ... done [18:22:41.361] future_lapply() ... done [18:22:41.362] future_lapply() ... [18:22:41.362] | Globals in FUN(): [n=1] 'typeof' [18:22:41.363] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.363] | future_lapply() -> future_xapply() ... [18:22:41.363] | : Number of chunks: 1 [18:22:41.363] | : getGlobalsAndPackagesXApply() ... [18:22:41.364] | : . future.globals: TRUE [18:22:41.371] | : . globals found/used: [n=1] 'FUN' [18:22:41.372] | : . needed namespaces: [n=0] [18:22:41.372] | : . use_args: TRUE [18:22:41.372] | : . Getting '...' globals ... [18:22:41.373] | : . ' '...' content: [n=1] 'b' [18:22:41.373] | : . ' List of 1 [18:22:41.373] | : . ' $ ...:List of 1 [18:22:41.373] | : . ' ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [18:22:41.373] | : . ' .. .. ..@ slots :List of 4 [18:22:41.373] | : . ' .. .. .. ..$ .Data : chr "function" [18:22:41.373] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. ..$ target : chr "signature" [18:22:41.373] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. ..$ defined: chr "signature" [18:22:41.373] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. ..$ generic: chr "character" [18:22:41.373] | : . ' .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. ..@ contains :List of 4 [18:22:41.373] | : . ' .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "function" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr(0) [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 1 [18:22:41.373] | : . ' .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr "function" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 2 [18:22:41.373] | : . ' .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr "function" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 2 [18:22:41.373] | : . ' .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "optionalMethod" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr "function" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 3 [18:22:41.373] | : . ' .. .. ..@ virtual : logi FALSE [18:22:41.373] | : . ' .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [18:22:41.373] | : . ' list() [18:22:41.373] | : . ' .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [18:22:41.373] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:41.373] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [18:22:41.373] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [18:22:41.373] | : . ' .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [18:22:41.373] | : . ' .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:41.373] | : . ' .. .. .. .. .. .. ..@ names : chr(0) [18:22:41.373] | : . ' .. .. .. .. .. .. ..@ package: chr(0) [18:22:41.373] | : . ' .. .. .. .. ..$ generic: chr(0) [18:22:41.373] | : . ' .. .. ..@ validity : NULL [18:22:41.373] | : . ' .. .. ..@ access : list() [18:22:41.373] | : . ' .. .. ..@ className : chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. ..@ subclasses:List of 7 [18:22:41.373] | : . ' .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr(0) [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 1 [18:22:41.373] | : . ' .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr(0) [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 1 [18:22:41.373] | : . ' .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr(0) [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 1 [18:22:41.373] | : . ' .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr(0) [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 1 [18:22:41.373] | : . ' .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 2 [18:22:41.373] | : . ' .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr "MethodWithNext" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 2 [18:22:41.373] | : . ' .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.373] | : . ' .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ package : chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.373] | : . ' .. .. .. .. .. ..@ test :function (object) [18:22:41.373] | : . ' .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.373] | : . ' .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.373] | : . ' .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:41.373] | : . ' .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.373] | : . ' .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.373] | : . ' .. .. .. .. .. ..@ distance : num 2 [18:22:41.373] | : . ' .. .. ..@ versionKey: [18:22:41.373] | : . ' .. .. ..@ sealed : logi TRUE [18:22:41.373] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.373] | : . ' - attr(*, "where")=List of 1 [18:22:41.373] | : . ' ..$ ...: [18:22:41.373] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.373] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.373] | : . ' - attr(*, "total_size")= num NA [18:22:41.441] | : . Getting '...' globals ... done [18:22:41.441] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:41.441] | : . List of 2 [18:22:41.441] | : . $ ...future.FUN:function (a, b) [18:22:41.441] | : . $ ... :List of 1 [18:22:41.441] | : . ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [18:22:41.441] | : . .. .. ..@ slots :List of 4 [18:22:41.441] | : . .. .. .. ..$ .Data : chr "function" [18:22:41.441] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. ..$ target : chr "signature" [18:22:41.441] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. ..$ defined: chr "signature" [18:22:41.441] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. ..$ generic: chr "character" [18:22:41.441] | : . .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. ..@ contains :List of 4 [18:22:41.441] | : . .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "function" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr(0) [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 1 [18:22:41.441] | : . .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr "function" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 2 [18:22:41.441] | : . .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr "function" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 2 [18:22:41.441] | : . .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "optionalMethod" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr "function" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 3 [18:22:41.441] | : . .. .. ..@ virtual : logi FALSE [18:22:41.441] | : . .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [18:22:41.441] | : . list() [18:22:41.441] | : . .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [18:22:41.441] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:41.441] | : . .. .. .. .. .. .. ..@ names : chr(0) [18:22:41.441] | : . .. .. .. .. .. .. ..@ package: chr(0) [18:22:41.441] | : . .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [18:22:41.441] | : . .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:41.441] | : . .. .. .. .. .. .. ..@ names : chr(0) [18:22:41.441] | : . .. .. .. .. .. .. ..@ package: chr(0) [18:22:41.441] | : . .. .. .. .. ..$ generic: chr(0) [18:22:41.441] | : . .. .. ..@ validity : NULL [18:22:41.441] | : . .. .. ..@ access : list() [18:22:41.441] | : . .. .. ..@ className : chr "MethodDefinition" [18:22:41.441] | : . .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. ..@ subclasses:List of 7 [18:22:41.441] | : . .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr(0) [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 1 [18:22:41.441] | : . .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr(0) [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 1 [18:22:41.441] | : . .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr(0) [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 1 [18:22:41.441] | : . .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr(0) [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 1 [18:22:41.441] | : . .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 2 [18:22:41.441] | : . .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr "MethodWithNext" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 2 [18:22:41.441] | : . .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.441] | : . .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ package : chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.441] | : . .. .. .. .. .. ..@ test :function (object) [18:22:41.441] | : . .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.441] | : . .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.441] | : . .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:41.441] | : . .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.441] | : . .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.441] | : . .. .. .. .. .. ..@ distance : num 2 [18:22:41.441] | : . .. .. ..@ versionKey: [18:22:41.441] | : . .. .. ..@ sealed : logi TRUE [18:22:41.441] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.441] | : . - attr(*, "where")=List of 2 [18:22:41.441] | : . ..$ ...future.FUN: [18:22:41.441] | : . ..$ ... : [18:22:41.441] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.441] | : . - attr(*, "resolved")= logi FALSE [18:22:41.441] | : . - attr(*, "total_size")= num 105373 [18:22:41.512] | : . Packages to be attached in all futures: [n=0] [18:22:41.512] | : getGlobalsAndPackagesXApply() ... done [18:22:41.513] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.513] | : List of 5 [18:22:41.513] | : $ ...future.FUN :function (a, b) [18:22:41.513] | : $ ... :List of 1 [18:22:41.513] | : ..$ b:Formal class 'classRepresentation' [package "methods"] with 11 slots [18:22:41.513] | : .. .. ..@ slots :List of 4 [18:22:41.513] | : .. .. .. ..$ .Data : chr "function" [18:22:41.513] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. ..$ target : chr "signature" [18:22:41.513] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. ..$ defined: chr "signature" [18:22:41.513] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. ..$ generic: chr "character" [18:22:41.513] | : .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. ..@ contains :List of 4 [18:22:41.513] | : .. .. .. ..$ function :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "function" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr(0) [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 1 [18:22:41.513] | : .. .. .. ..$ OptionalFunction:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "OptionalFunction" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr "function" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 2 [18:22:41.513] | : .. .. .. ..$ PossibleMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "PossibleMethod" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr "function" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 2 [18:22:41.513] | : .. .. .. ..$ optionalMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "optionalMethod" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr "function" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 3 [18:22:41.513] | : .. .. ..@ virtual : logi FALSE [18:22:41.513] | : .. .. ..@ prototype :Formal class 'function' [package ""] with 0 slots [18:22:41.513] | : list() [18:22:41.513] | : .. .. .. .. ..$ target :Formal class 'signature' [package "methods"] with 3 slots [18:22:41.513] | : .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:41.513] | : .. .. .. .. .. .. ..@ names : chr(0) [18:22:41.513] | : .. .. .. .. .. .. ..@ package: chr(0) [18:22:41.513] | : .. .. .. .. ..$ defined:Formal class 'signature' [package "methods"] with 3 slots [18:22:41.513] | : .. .. .. .. .. .. ..@ .Data : chr(0) [18:22:41.513] | : .. .. .. .. .. .. ..@ names : chr(0) [18:22:41.513] | : .. .. .. .. .. .. ..@ package: chr(0) [18:22:41.513] | : .. .. .. .. ..$ generic: chr(0) [18:22:41.513] | : .. .. ..@ validity : NULL [18:22:41.513] | : .. .. ..@ access : list() [18:22:41.513] | : .. .. ..@ className : chr "MethodDefinition" [18:22:41.513] | : .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. ..@ subclasses:List of 7 [18:22:41.513] | : .. .. .. ..$ derivedDefaultMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethod" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr(0) [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 1 [18:22:41.513] | : .. .. .. ..$ MethodWithNext :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNext" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr(0) [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 1 [18:22:41.513] | : .. .. .. ..$ SealedMethodDefinition :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "SealedMethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr(0) [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 1 [18:22:41.513] | : .. .. .. ..$ MethodDefinitionWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "MethodDefinitionWithTrace" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr(0) [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 1 [18:22:41.513] | : .. .. .. ..$ internalDispatchMethod :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "internalDispatchMethod" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 2 [18:22:41.513] | : .. .. .. ..$ MethodWithNextWithTrace :Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "MethodWithNextWithTrace" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr "MethodWithNext" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 2 [18:22:41.513] | : .. .. .. ..$ derivedDefaultMethodWithTrace:Formal class 'SClassExtension' [package "methods"] with 10 slots [18:22:41.513] | : .. .. .. .. .. ..@ subClass : chr "derivedDefaultMethodWithTrace" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ superClass: chr "MethodDefinition" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ package : chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ coerce :function (from, strict = TRUE) [18:22:41.513] | : .. .. .. .. .. ..@ test :function (object) [18:22:41.513] | : .. .. .. .. .. ..@ replace :function (from, to, value) [18:22:41.513] | : .. .. .. .. .. ..@ simple : logi TRUE [18:22:41.513] | : .. .. .. .. .. ..@ by : chr "derivedDefaultMethod" [18:22:41.513] | : .. .. .. .. .. .. ..- attr(*, "package")= chr "methods" [18:22:41.513] | : .. .. .. .. .. ..@ dataPart : logi FALSE [18:22:41.513] | : .. .. .. .. .. ..@ distance : num 2 [18:22:41.513] | : .. .. ..@ versionKey: [18:22:41.513] | : .. .. ..@ sealed : logi TRUE [18:22:41.513] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.513] | : $ ...future.elements_ii : NULL [18:22:41.513] | : $ ...future.seeds_ii : NULL [18:22:41.513] | : $ ...future.globals.maxSize: NULL [18:22:41.513] | : - attr(*, "where")=List of 5 [18:22:41.513] | : ..$ ...future.FUN : [18:22:41.513] | : ..$ ... : [18:22:41.513] | : ..$ ...future.elements_ii : [18:22:41.513] | : ..$ ...future.seeds_ii : [18:22:41.513] | : ..$ ...future.globals.maxSize: [18:22:41.513] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.513] | : - attr(*, "resolved")= logi FALSE [18:22:41.513] | : - attr(*, "total_size")= num 105373 [18:22:41.585] | : Number of futures (= number of chunks): 1 [18:22:41.585] | : Launching 1 futures (chunks) ... [18:22:41.585] | : Chunk #1 of 1 ... [18:22:41.585] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.586] | : + additional globals found: [n=0] [18:22:41.586] | : + additional namespaces needed: [n=0] [18:22:41.586] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.586] | : - seeds: [18:22:41.587] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.590] | : Created future: [18:22:41.590] | : MultisessionFuture: [18:22:41.590] | : Label: 'future_lapply-1' [18:22:41.590] | : Expression: [18:22:41.590] | : { [18:22:41.590] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.590] | : "# expression in do.call(), because function called uses '...' " [18:22:41.590] | : "# as a global variable " [18:22:41.590] | : do.call(function(...) { [18:22:41.590] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.590] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.590] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.590] | : "# anonymous function. " [18:22:41.590] | : "# " [18:22:41.590] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.590] | : "# function environment of FUN() to the calling environment. " [18:22:41.590] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.590] | : "# global environment, which is where globals are written. " [18:22:41.590] | : penv <- env <- environment(...future.FUN) [18:22:41.590] | : repeat { [18:22:41.590] | : if (identical(env, globalenv()) || identical(env, [18:22:41.590] | : emptyenv())) [18:22:41.590] | : break [18:22:41.590] | : penv <- env [18:22:41.590] | : env <- parent.env(env) [18:22:41.590] | : } [18:22:41.590] | : if (identical(penv, globalenv())) { [18:22:41.590] | : environment(...future.FUN) <- environment() [18:22:41.590] | : } [18:22:41.590] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.590] | : !isNamespace(penv)) { [18:22:41.590] | : parent.env(penv) <- environment() [18:22:41.590] | : } [18:22:41.590] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.590] | : { [18:22:41.590] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.590] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.590] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.590] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.590] | : on.exit(options(oopts), add = TRUE) [18:22:41.590] | : } [18:22:41.590] | : { [18:22:41.590] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.590] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.590] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.590] | : { [18:22:41.590] | : ...future.FUN(...future.X_jj, ...) [18:22:41.590] | : } [18:22:41.590] | : }) [18:22:41.590] | : } [18:22:41.590] | : } [18:22:41.590] | : }, args = future.call.arguments) [18:22:41.590] | : } [18:22:41.590] | : Globals: 5 objects totaling 103.19 KiB (DotDotDotList 'future.call.arguments' of 50.30 KiB, function '...future.FUN' of 111 bytes, list '...future.elements_ii' of 43 bytes, NULL '...future.seeds_ii' of 27 bytes, NULL '...future.globals.maxSize' of 27 bytes) [18:22:41.590] | : Packages: [18:22:41.590] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.590] | : Capture standard output: TRUE [18:22:41.590] | : Capture condition classes: 'condition' (excluding '') [18:22:41.590] | : Immediate condition classes: 'immediateCondition' [18:22:41.590] | : Lazy evaluation: FALSE [18:22:41.590] | : Local evaluation: TRUE [18:22:41.590] | : Early signaling: FALSE [18:22:41.590] | : Actions: [n=1] 'run' [18:22:41.590] | : State: 'running' ("Future is being evaluated") [18:22:41.590] | : Resolved: TRUE [18:22:41.590] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-23 [18:22:41.590] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.590] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.590] | : Value: [18:22:41.590] | : Conditions captured: [18:22:41.595] | : Chunk #1 of 1 ... DONE [18:22:41.596] | : Launching 1 futures (chunks) ... DONE [18:22:41.596] | : Resolving 1 futures (chunks) ... [18:22:41.596] | : - Number of value chunks collected: 1 [18:22:41.596] | : Resolving 1 futures (chunks) ... DONE [18:22:41.597] | : Reducing values from 1 chunks ... [18:22:41.597] | : - Number of values collected after concatenation: 1 [18:22:41.597] | : - Number of values expected: 1 [18:22:41.597] | : Reducing values from 1 chunks ... DONE [18:22:41.597] | future_lapply() -> future_xapply() ... done [18:22:41.597] future_lapply() ... done - lapply(X, ...) |> futurize() - 'X' containing globals ... List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 [18:22:41.600] future_lapply() ... [18:22:41.601] | Globals in FUN(): [n=0] [18:22:41.601] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.601] | future_lapply() -> future_xapply() ... [18:22:41.602] | : Number of chunks: 2 [18:22:41.602] | : getGlobalsAndPackagesXApply() ... [18:22:41.602] | : . future.globals: TRUE [18:22:41.607] | : . globals found/used: [n=1] 'FUN' [18:22:41.607] | : . needed namespaces: [n=0] [18:22:41.607] | : . use_args: TRUE [18:22:41.607] | : . Getting '...' globals ... [18:22:41.608] | : . ' '...' content: [n=0] [18:22:41.608] | : . ' List of 1 [18:22:41.608] | : . ' $ ...: list() [18:22:41.608] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.608] | : . ' - attr(*, "where")=List of 1 [18:22:41.608] | : . ' ..$ ...: [18:22:41.608] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.608] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.608] | : . ' - attr(*, "total_size")= num NA [18:22:41.611] | : . Getting '...' globals ... done [18:22:41.611] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:41.612] | : . List of 2 [18:22:41.612] | : . $ ...future.FUN:function (f) [18:22:41.612] | : . $ ... : list() [18:22:41.612] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.612] | : . - attr(*, "where")=List of 2 [18:22:41.612] | : . ..$ ...future.FUN: [18:22:41.612] | : . ..$ ... : [18:22:41.612] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.612] | : . - attr(*, "resolved")= logi FALSE [18:22:41.612] | : . - attr(*, "total_size")= num 4778 [18:22:41.615] | : . Packages to be attached in all futures: [n=0] [18:22:41.615] | : getGlobalsAndPackagesXApply() ... done [18:22:41.616] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.616] | : List of 5 [18:22:41.616] | : $ ...future.FUN :function (f) [18:22:41.616] | : $ ... : list() [18:22:41.616] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.616] | : $ ...future.elements_ii : NULL [18:22:41.616] | : $ ...future.seeds_ii : NULL [18:22:41.616] | : $ ...future.globals.maxSize: NULL [18:22:41.616] | : - attr(*, "where")=List of 5 [18:22:41.616] | : ..$ ...future.FUN : [18:22:41.616] | : ..$ ... : [18:22:41.616] | : ..$ ...future.elements_ii : [18:22:41.616] | : ..$ ...future.seeds_ii : [18:22:41.616] | : ..$ ...future.globals.maxSize: [18:22:41.616] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.616] | : - attr(*, "resolved")= logi FALSE [18:22:41.616] | : - attr(*, "total_size")= num 4778 [18:22:41.621] | : Number of futures (= number of chunks): 2 [18:22:41.621] | : Launching 2 futures (chunks) ... [18:22:41.621] | : Chunk #1 of 2 ... [18:22:41.621] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.634] | : + additional globals found: [n=2] 'a', 'b' [18:22:41.634] | : + additional namespaces needed: [n=0] [18:22:41.635] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.635] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [18:22:41.635] | : - seeds: [18:22:41.635] | : - All globals exported: [n=7] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize', 'a', 'b' [18:22:41.638] | : Created future: [18:22:41.638] | : MultisessionFuture: [18:22:41.638] | : Label: 'future_lapply-1' [18:22:41.638] | : Expression: [18:22:41.638] | : { [18:22:41.638] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.638] | : "# expression in do.call(), because function called uses '...' " [18:22:41.638] | : "# as a global variable " [18:22:41.638] | : do.call(function(...) { [18:22:41.638] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.638] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.638] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.638] | : "# anonymous function. " [18:22:41.638] | : "# " [18:22:41.638] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.638] | : "# function environment of FUN() to the calling environment. " [18:22:41.638] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.638] | : "# global environment, which is where globals are written. " [18:22:41.638] | : penv <- env <- environment(...future.FUN) [18:22:41.638] | : repeat { [18:22:41.638] | : if (identical(env, globalenv()) || identical(env, [18:22:41.638] | : emptyenv())) [18:22:41.638] | : break [18:22:41.638] | : penv <- env [18:22:41.638] | : env <- parent.env(env) [18:22:41.638] | : } [18:22:41.638] | : if (identical(penv, globalenv())) { [18:22:41.638] | : environment(...future.FUN) <- environment() [18:22:41.638] | : } [18:22:41.638] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.638] | : !isNamespace(penv)) { [18:22:41.638] | : parent.env(penv) <- environment() [18:22:41.638] | : } [18:22:41.638] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.638] | : { [18:22:41.638] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.638] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.638] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.638] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.638] | : on.exit(options(oopts), add = TRUE) [18:22:41.638] | : } [18:22:41.638] | : { [18:22:41.638] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.638] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.638] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.638] | : { [18:22:41.638] | : ...future.FUN(...future.X_jj, ...) [18:22:41.638] | : } [18:22:41.638] | : }) [18:22:41.638] | : } [18:22:41.638] | : } [18:22:41.638] | : }, args = future.call.arguments) [18:22:41.638] | : } [18:22:41.638] | : Globals: 7 objects totaling 5.54 KiB (list '...future.elements_ii' of 588 bytes, DotDotDotList 'future.call.arguments' of 97 bytes, function '...future.FUN' of 68 bytes, numeric 'a' of 39 bytes, numeric 'b' of 39 bytes, ...) [18:22:41.638] | : Packages: [18:22:41.638] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.638] | : Capture standard output: TRUE [18:22:41.638] | : Capture condition classes: 'condition' (excluding '') [18:22:41.638] | : Immediate condition classes: 'immediateCondition' [18:22:41.638] | : Lazy evaluation: FALSE [18:22:41.638] | : Local evaluation: TRUE [18:22:41.638] | : Early signaling: FALSE [18:22:41.638] | : Actions: [n=1] 'run' [18:22:41.638] | : State: 'running' ("Future is being evaluated") [18:22:41.638] | : Resolved: TRUE [18:22:41.638] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-24 [18:22:41.638] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.638] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.638] | : Value: [18:22:41.638] | : Conditions captured: [18:22:41.643] | : Chunk #1 of 2 ... DONE [18:22:41.643] | : Chunk #2 of 2 ... [18:22:41.643] | : - Finding globals in 'X' for chunk #2 ... [18:22:41.659] | : + additional globals found: [n=2] 'a', 'b' [18:22:41.659] | : + additional namespaces needed: [n=0] [18:22:41.659] | : - Finding globals in 'X' for chunk #2 ... DONE [18:22:41.659] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [18:22:41.660] | : - seeds: [18:22:41.660] | : - All globals exported: [n=7] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize', 'a', 'b' [18:22:41.662] | : Created future: [18:22:41.662] | : MultisessionFuture: [18:22:41.662] | : Label: 'future_lapply-2' [18:22:41.662] | : Expression: [18:22:41.662] | : { [18:22:41.662] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.662] | : "# expression in do.call(), because function called uses '...' " [18:22:41.662] | : "# as a global variable " [18:22:41.662] | : do.call(function(...) { [18:22:41.662] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.662] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.662] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.662] | : "# anonymous function. " [18:22:41.662] | : "# " [18:22:41.662] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.662] | : "# function environment of FUN() to the calling environment. " [18:22:41.662] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.662] | : "# global environment, which is where globals are written. " [18:22:41.662] | : penv <- env <- environment(...future.FUN) [18:22:41.662] | : repeat { [18:22:41.662] | : if (identical(env, globalenv()) || identical(env, [18:22:41.662] | : emptyenv())) [18:22:41.662] | : break [18:22:41.662] | : penv <- env [18:22:41.662] | : env <- parent.env(env) [18:22:41.662] | : } [18:22:41.662] | : if (identical(penv, globalenv())) { [18:22:41.662] | : environment(...future.FUN) <- environment() [18:22:41.662] | : } [18:22:41.662] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.662] | : !isNamespace(penv)) { [18:22:41.662] | : parent.env(penv) <- environment() [18:22:41.662] | : } [18:22:41.662] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.662] | : { [18:22:41.662] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.662] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.662] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.662] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.662] | : on.exit(options(oopts), add = TRUE) [18:22:41.662] | : } [18:22:41.662] | : { [18:22:41.662] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.662] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.662] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.662] | : { [18:22:41.662] | : ...future.FUN(...future.X_jj, ...) [18:22:41.662] | : } [18:22:41.662] | : }) [18:22:41.662] | : } [18:22:41.662] | : } [18:22:41.662] | : }, args = future.call.arguments) [18:22:41.662] | : } [18:22:41.662] | : Globals: 7 objects totaling 5.99 KiB (list '...future.elements_ii' of 1.08 KiB, DotDotDotList 'future.call.arguments' of 97 bytes, function '...future.FUN' of 68 bytes, numeric 'a' of 39 bytes, numeric 'b' of 39 bytes, ...) [18:22:41.662] | : Packages: [18:22:41.662] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.662] | : Capture standard output: TRUE [18:22:41.662] | : Capture condition classes: 'condition' (excluding '') [18:22:41.662] | : Immediate condition classes: 'immediateCondition' [18:22:41.662] | : Lazy evaluation: FALSE [18:22:41.662] | : Local evaluation: TRUE [18:22:41.662] | : Early signaling: FALSE [18:22:41.662] | : Actions: [n=1] 'run' [18:22:41.662] | : State: 'running' ("Future is being evaluated") [18:22:41.662] | : Resolved: TRUE [18:22:41.662] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-25 [18:22:41.662] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.662] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.662] | : Value: [18:22:41.662] | : Conditions captured: [18:22:41.667] | : Chunk #2 of 2 ... DONE [18:22:41.667] | : Launching 2 futures (chunks) ... DONE [18:22:41.667] | : Resolving 2 futures (chunks) ... [18:22:41.668] | : - Number of value chunks collected: 2 [18:22:41.669] | : Resolving 2 futures (chunks) ... DONE [18:22:41.669] | : Reducing values from 2 chunks ... [18:22:41.669] | : - Number of values collected after concatenation: 4 [18:22:41.669] | : - Number of values expected: 4 [18:22:41.669] | : Reducing values from 2 chunks ... DONE [18:22:41.669] | future_lapply() -> future_xapply() ... done [18:22:41.670] future_lapply() ... done List of 4 $ : num 84 $ : num 10.5 $ : num 63 $ : int 11 - lapply(X, ...) |> futurize() - '{ a <- a + 1; a }' ... [18:22:41.672] future_lapply() ... [18:22:41.673] | Globals in FUN(): [n=4] '{', '<-', 'a', '+' [18:22:41.673] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.674] | future_lapply() -> future_xapply() ... [18:22:41.674] | : Number of chunks: 1 [18:22:41.674] | : getGlobalsAndPackagesXApply() ... [18:22:41.674] | : . future.globals: TRUE [18:22:41.683] | : . globals found/used: [n=2] 'FUN', 'a' [18:22:41.683] | : . needed namespaces: [n=0] [18:22:41.684] | : . use_args: TRUE [18:22:41.684] | : . Getting '...' globals ... [18:22:41.684] | : . ' '...' content: [n=0] [18:22:41.685] | : . ' List of 1 [18:22:41.685] | : . ' $ ...: list() [18:22:41.685] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.685] | : . ' - attr(*, "where")=List of 1 [18:22:41.685] | : . ' ..$ ...: [18:22:41.685] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.685] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.685] | : . ' - attr(*, "total_size")= num NA [18:22:41.688] | : . Getting '...' globals ... done [18:22:41.688] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [18:22:41.688] | : . List of 3 [18:22:41.688] | : . $ ...future.FUN:function (ii) [18:22:41.688] | : . $ a : num 1 [18:22:41.688] | : . $ ... : list() [18:22:41.688] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.688] | : . - attr(*, "where")=List of 3 [18:22:41.688] | : . ..$ ...future.FUN: [18:22:41.688] | : . ..$ a : [18:22:41.688] | : . ..$ ... : [18:22:41.688] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.688] | : . - attr(*, "resolved")= logi FALSE [18:22:41.688] | : . - attr(*, "total_size")= num 3499 [18:22:41.692] | : . Packages to be attached in all futures: [n=0] [18:22:41.692] | : getGlobalsAndPackagesXApply() ... done [18:22:41.693] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.693] | : List of 6 [18:22:41.693] | : $ ...future.FUN :function (ii) [18:22:41.693] | : $ a : num 1 [18:22:41.693] | : $ ... : list() [18:22:41.693] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.693] | : $ ...future.elements_ii : NULL [18:22:41.693] | : $ ...future.seeds_ii : NULL [18:22:41.693] | : $ ...future.globals.maxSize: NULL [18:22:41.693] | : - attr(*, "where")=List of 6 [18:22:41.693] | : ..$ ...future.FUN : [18:22:41.693] | : ..$ a : [18:22:41.693] | : ..$ ... : [18:22:41.693] | : ..$ ...future.elements_ii : [18:22:41.693] | : ..$ ...future.seeds_ii : [18:22:41.693] | : ..$ ...future.globals.maxSize: [18:22:41.693] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.693] | : - attr(*, "resolved")= logi FALSE [18:22:41.693] | : - attr(*, "total_size")= num 3499 [18:22:41.699] | : Number of futures (= number of chunks): 1 [18:22:41.699] | : Launching 1 futures (chunks) ... [18:22:41.699] | : Chunk #1 of 1 ... [18:22:41.699] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.700] | : + additional globals found: [n=0] [18:22:41.700] | : + additional namespaces needed: [n=0] [18:22:41.700] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.700] | : - seeds: [18:22:41.700] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.702] | : Created future: [18:22:41.703] | : MultisessionFuture: [18:22:41.703] | : Label: 'future_lapply-1' [18:22:41.703] | : Expression: [18:22:41.703] | : { [18:22:41.703] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.703] | : "# expression in do.call(), because function called uses '...' " [18:22:41.703] | : "# as a global variable " [18:22:41.703] | : do.call(function(...) { [18:22:41.703] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.703] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.703] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.703] | : "# anonymous function. " [18:22:41.703] | : "# " [18:22:41.703] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.703] | : "# function environment of FUN() to the calling environment. " [18:22:41.703] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.703] | : "# global environment, which is where globals are written. " [18:22:41.703] | : penv <- env <- environment(...future.FUN) [18:22:41.703] | : repeat { [18:22:41.703] | : if (identical(env, globalenv()) || identical(env, [18:22:41.703] | : emptyenv())) [18:22:41.703] | : break [18:22:41.703] | : penv <- env [18:22:41.703] | : env <- parent.env(env) [18:22:41.703] | : } [18:22:41.703] | : if (identical(penv, globalenv())) { [18:22:41.703] | : environment(...future.FUN) <- environment() [18:22:41.703] | : } [18:22:41.703] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.703] | : !isNamespace(penv)) { [18:22:41.703] | : parent.env(penv) <- environment() [18:22:41.703] | : } [18:22:41.703] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.703] | : { [18:22:41.703] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.703] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.703] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.703] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.703] | : on.exit(options(oopts), add = TRUE) [18:22:41.703] | : } [18:22:41.703] | : { [18:22:41.703] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.703] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.703] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.703] | : { [18:22:41.703] | : ...future.FUN(...future.X_jj, ...) [18:22:41.703] | : } [18:22:41.703] | : }) [18:22:41.703] | : } [18:22:41.703] | : } [18:22:41.703] | : }, args = future.call.arguments) [18:22:41.703] | : } [18:22:41.703] | : Globals: 6 objects totaling 3.69 KiB (function '...future.FUN' of 182 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, ...) [18:22:41.703] | : Packages: [18:22:41.703] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.703] | : Capture standard output: TRUE [18:22:41.703] | : Capture condition classes: 'condition' (excluding '') [18:22:41.703] | : Immediate condition classes: 'immediateCondition' [18:22:41.703] | : Lazy evaluation: FALSE [18:22:41.703] | : Local evaluation: TRUE [18:22:41.703] | : Early signaling: FALSE [18:22:41.703] | : Actions: [n=1] 'run' [18:22:41.703] | : State: 'running' ("Future is being evaluated") [18:22:41.703] | : Resolved: TRUE [18:22:41.703] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-26 [18:22:41.703] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.703] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.703] | : Value: [18:22:41.703] | : Conditions captured: [18:22:41.709] | : Chunk #1 of 1 ... DONE [18:22:41.709] | : Launching 1 futures (chunks) ... DONE [18:22:41.709] | : Resolving 1 futures (chunks) ... [18:22:41.710] | : - Number of value chunks collected: 1 [18:22:41.710] | : Resolving 1 futures (chunks) ... DONE [18:22:41.710] | : Reducing values from 1 chunks ... [18:22:41.710] | : - Number of values collected after concatenation: 1 [18:22:41.711] | : - Number of values expected: 1 [18:22:41.711] | : Reducing values from 1 chunks ... DONE [18:22:41.711] | future_lapply() -> future_xapply() ... done [18:22:41.711] future_lapply() ... done - lapply(X, ...) |> futurize() - '{ a; a <- a + 1 }' ... [18:22:41.712] future_lapply() ... [18:22:41.713] | Globals in FUN(): [n=4] '{', 'a', '<-', '+' [18:22:41.713] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.713] | future_lapply() -> future_xapply() ... [18:22:41.713] | : Number of chunks: 1 [18:22:41.714] | : getGlobalsAndPackagesXApply() ... [18:22:41.714] | : . future.globals: TRUE [18:22:41.725] | : . globals found/used: [n=2] 'FUN', 'a' [18:22:41.725] | : . needed namespaces: [n=0] [18:22:41.725] | : . use_args: TRUE [18:22:41.726] | : . Getting '...' globals ... [18:22:41.726] | : . ' '...' content: [n=0] [18:22:41.727] | : . ' List of 1 [18:22:41.727] | : . ' $ ...: list() [18:22:41.727] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.727] | : . ' - attr(*, "where")=List of 1 [18:22:41.727] | : . ' ..$ ...: [18:22:41.727] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.727] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.727] | : . ' - attr(*, "total_size")= num NA [18:22:41.729] | : . Getting '...' globals ... done [18:22:41.730] | : . Globals to be used in all futures (chunks): [n=3] '...future.FUN', 'a', '...' [18:22:41.730] | : . List of 3 [18:22:41.730] | : . $ ...future.FUN:function (ii) [18:22:41.730] | : . $ a : num 1 [18:22:41.730] | : . $ ... : list() [18:22:41.730] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.730] | : . - attr(*, "where")=List of 3 [18:22:41.730] | : . ..$ ...future.FUN: [18:22:41.730] | : . ..$ a : [18:22:41.730] | : . ..$ ... : [18:22:41.730] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.730] | : . - attr(*, "resolved")= logi FALSE [18:22:41.730] | : . - attr(*, "total_size")= num 3499 [18:22:41.734] | : . Packages to be attached in all futures: [n=0] [18:22:41.734] | : getGlobalsAndPackagesXApply() ... done [18:22:41.735] | : Globals pass to each chunk: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.735] | : List of 6 [18:22:41.735] | : $ ...future.FUN :function (ii) [18:22:41.735] | : $ a : num 1 [18:22:41.735] | : $ ... : list() [18:22:41.735] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.735] | : $ ...future.elements_ii : NULL [18:22:41.735] | : $ ...future.seeds_ii : NULL [18:22:41.735] | : $ ...future.globals.maxSize: NULL [18:22:41.735] | : - attr(*, "where")=List of 6 [18:22:41.735] | : ..$ ...future.FUN : [18:22:41.735] | : ..$ a : [18:22:41.735] | : ..$ ... : [18:22:41.735] | : ..$ ...future.elements_ii : [18:22:41.735] | : ..$ ...future.seeds_ii : [18:22:41.735] | : ..$ ...future.globals.maxSize: [18:22:41.735] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.735] | : - attr(*, "resolved")= logi FALSE [18:22:41.735] | : - attr(*, "total_size")= num 3499 [18:22:41.741] | : Number of futures (= number of chunks): 1 [18:22:41.741] | : Launching 1 futures (chunks) ... [18:22:41.741] | : Chunk #1 of 1 ... [18:22:41.741] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.742] | : + additional globals found: [n=0] [18:22:41.742] | : + additional namespaces needed: [n=0] [18:22:41.742] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.742] | : - seeds: [18:22:41.742] | : - All globals exported: [n=6] '...future.FUN', 'a', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.744] | : Created future: [18:22:41.745] | : MultisessionFuture: [18:22:41.745] | : Label: 'future_lapply-1' [18:22:41.745] | : Expression: [18:22:41.745] | : { [18:22:41.745] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.745] | : "# expression in do.call(), because function called uses '...' " [18:22:41.745] | : "# as a global variable " [18:22:41.745] | : do.call(function(...) { [18:22:41.745] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.745] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.745] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.745] | : "# anonymous function. " [18:22:41.745] | : "# " [18:22:41.745] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.745] | : "# function environment of FUN() to the calling environment. " [18:22:41.745] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.745] | : "# global environment, which is where globals are written. " [18:22:41.745] | : penv <- env <- environment(...future.FUN) [18:22:41.745] | : repeat { [18:22:41.745] | : if (identical(env, globalenv()) || identical(env, [18:22:41.745] | : emptyenv())) [18:22:41.745] | : break [18:22:41.745] | : penv <- env [18:22:41.745] | : env <- parent.env(env) [18:22:41.745] | : } [18:22:41.745] | : if (identical(penv, globalenv())) { [18:22:41.745] | : environment(...future.FUN) <- environment() [18:22:41.745] | : } [18:22:41.745] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.745] | : !isNamespace(penv)) { [18:22:41.745] | : parent.env(penv) <- environment() [18:22:41.745] | : } [18:22:41.745] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.745] | : { [18:22:41.745] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.745] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.745] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.745] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.745] | : on.exit(options(oopts), add = TRUE) [18:22:41.745] | : } [18:22:41.745] | : { [18:22:41.745] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.745] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.745] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.745] | : { [18:22:41.745] | : ...future.FUN(...future.X_jj, ...) [18:22:41.745] | : } [18:22:41.745] | : }) [18:22:41.745] | : } [18:22:41.745] | : } [18:22:41.745] | : }, args = future.call.arguments) [18:22:41.745] | : } [18:22:41.745] | : Globals: 6 objects totaling 3.69 KiB (function '...future.FUN' of 182 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, ...) [18:22:41.745] | : Packages: [18:22:41.745] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.745] | : Capture standard output: TRUE [18:22:41.745] | : Capture condition classes: 'condition' (excluding '') [18:22:41.745] | : Immediate condition classes: 'immediateCondition' [18:22:41.745] | : Lazy evaluation: FALSE [18:22:41.745] | : Local evaluation: TRUE [18:22:41.745] | : Early signaling: FALSE [18:22:41.745] | : Actions: [n=1] 'run' [18:22:41.745] | : State: 'running' ("Future is being evaluated") [18:22:41.745] | : Resolved: TRUE [18:22:41.745] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-27 [18:22:41.745] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.745] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.745] | : Value: [18:22:41.745] | : Conditions captured: [18:22:41.749] | : Chunk #1 of 1 ... DONE [18:22:41.749] | : Launching 1 futures (chunks) ... DONE [18:22:41.750] | : Resolving 1 futures (chunks) ... [18:22:41.751] | : - Number of value chunks collected: 1 [18:22:41.751] | : Resolving 1 futures (chunks) ... DONE [18:22:41.751] | : Reducing values from 1 chunks ... [18:22:41.751] | : - Number of values collected after concatenation: 1 [18:22:41.751] | : - Number of values expected: 1 [18:22:41.751] | : Reducing values from 1 chunks ... DONE [18:22:41.752] | future_lapply() -> future_xapply() ... done [18:22:41.752] future_lapply() ... done - lapply(..., future.globals = ) |> futurize() ... [18:22:41.752] future_lapply() ... [18:22:41.753] | Globals in FUN(): [n=1] 'a' [18:22:41.753] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.753] | future_lapply() -> future_xapply() ... [18:22:41.754] | : Number of chunks: 1 [18:22:41.754] | : getGlobalsAndPackagesXApply() ... [18:22:41.754] | : . future.globals: with names 'a' [18:22:41.754] | : . use_args: TRUE [18:22:41.754] | : . Getting '...' globals ... [18:22:41.755] | : . ' '...' content: [n=0] [18:22:41.755] | : . ' List of 1 [18:22:41.755] | : . ' $ ...: list() [18:22:41.755] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.755] | : . ' - attr(*, "where")=List of 1 [18:22:41.755] | : . ' ..$ ...: [18:22:41.755] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.755] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.755] | : . ' - attr(*, "total_size")= num NA [18:22:41.758] | : . Getting '...' globals ... done [18:22:41.758] | : . Globals to be used in all futures (chunks): [n=3] 'a', '...future.FUN', '...' [18:22:41.759] | : . List of 3 [18:22:41.759] | : . $ a : num 42 [18:22:41.759] | : . $ ...future.FUN:function (x) [18:22:41.759] | : . $ ... : list() [18:22:41.759] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.759] | : . - attr(*, "where")=List of 3 [18:22:41.759] | : . ..$ a : [18:22:41.759] | : . ..$ ...future.FUN: [18:22:41.759] | : . ..$ ... : [18:22:41.759] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.759] | : . - attr(*, "resolved")= logi FALSE [18:22:41.759] | : . - attr(*, "total_size")= num NA [18:22:41.763] | : . Packages to be attached in all futures: [n=0] [18:22:41.763] | : getGlobalsAndPackagesXApply() ... done [18:22:41.763] | : Globals pass to each chunk: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.763] | : List of 6 [18:22:41.763] | : $ a : num 42 [18:22:41.763] | : $ ...future.FUN :function (x) [18:22:41.763] | : $ ... : list() [18:22:41.763] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.763] | : $ ...future.elements_ii : NULL [18:22:41.763] | : $ ...future.seeds_ii : NULL [18:22:41.763] | : $ ...future.globals.maxSize: NULL [18:22:41.763] | : - attr(*, "where")=List of 6 [18:22:41.763] | : ..$ a : [18:22:41.763] | : ..$ ...future.FUN : [18:22:41.763] | : ..$ ... : [18:22:41.763] | : ..$ ...future.elements_ii : [18:22:41.763] | : ..$ ...future.seeds_ii : [18:22:41.763] | : ..$ ...future.globals.maxSize: [18:22:41.763] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.763] | : - attr(*, "resolved")= logi FALSE [18:22:41.763] | : - attr(*, "total_size")= num NA [18:22:41.769] | : Number of futures (= number of chunks): 1 [18:22:41.769] | : Launching 1 futures (chunks) ... [18:22:41.770] | : Chunk #1 of 1 ... [18:22:41.770] | : - seeds: [18:22:41.770] | : - All globals exported: [n=6] 'a', '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.772] | : Created future: [18:22:41.772] | : MultisessionFuture: [18:22:41.772] | : Label: 'future_lapply-1' [18:22:41.772] | : Expression: [18:22:41.772] | : { [18:22:41.772] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.772] | : "# expression in do.call(), because function called uses '...' " [18:22:41.772] | : "# as a global variable " [18:22:41.772] | : do.call(function(...) { [18:22:41.772] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.772] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.772] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.772] | : "# anonymous function. " [18:22:41.772] | : "# " [18:22:41.772] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.772] | : "# function environment of FUN() to the calling environment. " [18:22:41.772] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.772] | : "# global environment, which is where globals are written. " [18:22:41.772] | : penv <- env <- environment(...future.FUN) [18:22:41.772] | : repeat { [18:22:41.772] | : if (identical(env, globalenv()) || identical(env, [18:22:41.772] | : emptyenv())) [18:22:41.772] | : break [18:22:41.772] | : penv <- env [18:22:41.772] | : env <- parent.env(env) [18:22:41.772] | : } [18:22:41.772] | : if (identical(penv, globalenv())) { [18:22:41.772] | : environment(...future.FUN) <- environment() [18:22:41.772] | : } [18:22:41.772] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.772] | : !isNamespace(penv)) { [18:22:41.772] | : parent.env(penv) <- environment() [18:22:41.772] | : } [18:22:41.772] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.772] | : { [18:22:41.772] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.772] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.772] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.772] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.772] | : on.exit(options(oopts), add = TRUE) [18:22:41.772] | : } [18:22:41.772] | : { [18:22:41.772] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.772] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.772] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.772] | : { [18:22:41.772] | : ...future.FUN(...future.X_jj, ...) [18:22:41.772] | : } [18:22:41.772] | : }) [18:22:41.772] | : } [18:22:41.772] | : } [18:22:41.772] | : }, args = future.call.arguments) [18:22:41.772] | : } [18:22:41.772] | : Globals: 6 objects totaling 3.57 KiB (DotDotDotList 'future.call.arguments' of 97 bytes, function '...future.FUN' of 69 bytes, list '...future.elements_ii' of 47 bytes, numeric 'a' of 39 bytes, NULL '...future.seeds_ii' of 27 bytes, ...) [18:22:41.772] | : Packages: [18:22:41.772] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.772] | : Capture standard output: TRUE [18:22:41.772] | : Capture condition classes: 'condition' (excluding '') [18:22:41.772] | : Immediate condition classes: 'immediateCondition' [18:22:41.772] | : Lazy evaluation: FALSE [18:22:41.772] | : Local evaluation: TRUE [18:22:41.772] | : Early signaling: FALSE [18:22:41.772] | : Actions: [n=1] 'run' [18:22:41.772] | : State: 'running' ("Future is being evaluated") [18:22:41.772] | : Resolved: TRUE [18:22:41.772] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-28 [18:22:41.772] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.772] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.772] | : Value: [18:22:41.772] | : Conditions captured: [18:22:41.777] | : Chunk #1 of 1 ... DONE [18:22:41.777] | : Launching 1 futures (chunks) ... DONE [18:22:41.777] | : Resolving 1 futures (chunks) ... [18:22:41.778] | : - Number of value chunks collected: 1 [18:22:41.778] | : Resolving 1 futures (chunks) ... DONE [18:22:41.778] | : Reducing values from 1 chunks ... [18:22:41.778] | : - Number of values collected after concatenation: 1 [18:22:41.778] | : - Number of values expected: 1 [18:22:41.779] | : Reducing values from 1 chunks ... DONE [18:22:41.779] | future_lapply() -> future_xapply() ... done [18:22:41.779] 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) futurize(lapply(x, FUN = function(y) y)) > y <- foo(1:2) [18:22:41.781] future_lapply() ... [18:22:41.781] | Globals in FUN(): [n=0] [18:22:41.781] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.782] | future_lapply() -> future_xapply() ... [18:22:41.782] | : Number of chunks: 2 [18:22:41.782] | : getGlobalsAndPackagesXApply() ... [18:22:41.782] | : . future.globals: TRUE [18:22:41.787] | : . globals found/used: [n=1] 'FUN' [18:22:41.787] | : . needed namespaces: [n=0] [18:22:41.787] | : . use_args: TRUE [18:22:41.787] | : . Getting '...' globals ... [18:22:41.788] | : . ' '...' content: [n=0] [18:22:41.788] | : . ' List of 1 [18:22:41.788] | : . ' $ ...: list() [18:22:41.788] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.788] | : . ' - attr(*, "where")=List of 1 [18:22:41.788] | : . ' ..$ ...: [18:22:41.788] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.788] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.788] | : . ' - attr(*, "total_size")= num NA [18:22:41.791] | : . Getting '...' globals ... done [18:22:41.791] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:41.791] | : . List of 2 [18:22:41.791] | : . $ ...future.FUN:function (y) [18:22:41.791] | : . $ ... : list() [18:22:41.791] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.791] | : . - attr(*, "where")=List of 2 [18:22:41.791] | : . ..$ ...future.FUN: [18:22:41.791] | : . ..$ ... : [18:22:41.791] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.791] | : . - attr(*, "resolved")= logi FALSE [18:22:41.791] | : . - attr(*, "total_size")= num 3716 [18:22:41.795] | : . Packages to be attached in all futures: [n=0] [18:22:41.795] | : getGlobalsAndPackagesXApply() ... done [18:22:41.795] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.796] | : List of 5 [18:22:41.796] | : $ ...future.FUN :function (y) [18:22:41.796] | : $ ... : list() [18:22:41.796] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.796] | : $ ...future.elements_ii : NULL [18:22:41.796] | : $ ...future.seeds_ii : NULL [18:22:41.796] | : $ ...future.globals.maxSize: NULL [18:22:41.796] | : - attr(*, "where")=List of 5 [18:22:41.796] | : ..$ ...future.FUN : [18:22:41.796] | : ..$ ... : [18:22:41.796] | : ..$ ...future.elements_ii : [18:22:41.796] | : ..$ ...future.seeds_ii : [18:22:41.796] | : ..$ ...future.globals.maxSize: [18:22:41.796] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.796] | : - attr(*, "resolved")= logi FALSE [18:22:41.796] | : - attr(*, "total_size")= num 3716 [18:22:41.803] | : Number of futures (= number of chunks): 2 [18:22:41.803] | : Launching 2 futures (chunks) ... [18:22:41.803] | : Chunk #1 of 2 ... [18:22:41.803] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.804] | : + additional globals found: [n=0] [18:22:41.804] | : + additional namespaces needed: [n=0] [18:22:41.804] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.804] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [18:22:41.804] | : - seeds: [18:22:41.805] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.806] | : Created future: [18:22:41.807] | : MultisessionFuture: [18:22:41.807] | : Label: 'future_lapply-1' [18:22:41.807] | : Expression: [18:22:41.807] | : { [18:22:41.807] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.807] | : "# expression in do.call(), because function called uses '...' " [18:22:41.807] | : "# as a global variable " [18:22:41.807] | : do.call(function(...) { [18:22:41.807] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.807] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.807] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.807] | : "# anonymous function. " [18:22:41.807] | : "# " [18:22:41.807] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.807] | : "# function environment of FUN() to the calling environment. " [18:22:41.807] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.807] | : "# global environment, which is where globals are written. " [18:22:41.807] | : penv <- env <- environment(...future.FUN) [18:22:41.807] | : repeat { [18:22:41.807] | : if (identical(env, globalenv()) || identical(env, [18:22:41.807] | : emptyenv())) [18:22:41.807] | : break [18:22:41.807] | : penv <- env [18:22:41.807] | : env <- parent.env(env) [18:22:41.807] | : } [18:22:41.807] | : if (identical(penv, globalenv())) { [18:22:41.807] | : environment(...future.FUN) <- environment() [18:22:41.807] | : } [18:22:41.807] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.807] | : !isNamespace(penv)) { [18:22:41.807] | : parent.env(penv) <- environment() [18:22:41.807] | : } [18:22:41.807] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.807] | : { [18:22:41.807] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.807] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.807] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.807] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.807] | : on.exit(options(oopts), add = TRUE) [18:22:41.807] | : } [18:22:41.807] | : { [18:22:41.807] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.807] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.807] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.807] | : { [18:22:41.807] | : ...future.FUN(...future.X_jj, ...) [18:22:41.807] | : } [18:22:41.807] | : }) [18:22:41.807] | : } [18:22:41.807] | : } [18:22:41.807] | : }, args = future.call.arguments) [18:22:41.807] | : } [18:22:41.807] | : 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) [18:22:41.807] | : Packages: [18:22:41.807] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.807] | : Capture standard output: TRUE [18:22:41.807] | : Capture condition classes: 'condition' (excluding '') [18:22:41.807] | : Immediate condition classes: 'immediateCondition' [18:22:41.807] | : Lazy evaluation: FALSE [18:22:41.807] | : Local evaluation: TRUE [18:22:41.807] | : Early signaling: FALSE [18:22:41.807] | : Actions: [n=1] 'run' [18:22:41.807] | : State: 'running' ("Future is being evaluated") [18:22:41.807] | : Resolved: TRUE [18:22:41.807] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-29 [18:22:41.807] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.807] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.807] | : Value: [18:22:41.807] | : Conditions captured: [18:22:41.811] | : Chunk #1 of 2 ... DONE [18:22:41.811] | : Chunk #2 of 2 ... [18:22:41.812] | : - Finding globals in 'X' for chunk #2 ... [18:22:41.812] | : + additional globals found: [n=0] [18:22:41.812] | : + additional namespaces needed: [n=0] [18:22:41.812] | : - Finding globals in 'X' for chunk #2 ... DONE [18:22:41.813] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [18:22:41.813] | : - seeds: [18:22:41.813] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.815] | : Created future: [18:22:41.815] | : MultisessionFuture: [18:22:41.815] | : Label: 'future_lapply-2' [18:22:41.815] | : Expression: [18:22:41.815] | : { [18:22:41.815] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.815] | : "# expression in do.call(), because function called uses '...' " [18:22:41.815] | : "# as a global variable " [18:22:41.815] | : do.call(function(...) { [18:22:41.815] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.815] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.815] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.815] | : "# anonymous function. " [18:22:41.815] | : "# " [18:22:41.815] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.815] | : "# function environment of FUN() to the calling environment. " [18:22:41.815] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.815] | : "# global environment, which is where globals are written. " [18:22:41.815] | : penv <- env <- environment(...future.FUN) [18:22:41.815] | : repeat { [18:22:41.815] | : if (identical(env, globalenv()) || identical(env, [18:22:41.815] | : emptyenv())) [18:22:41.815] | : break [18:22:41.815] | : penv <- env [18:22:41.815] | : env <- parent.env(env) [18:22:41.815] | : } [18:22:41.815] | : if (identical(penv, globalenv())) { [18:22:41.815] | : environment(...future.FUN) <- environment() [18:22:41.815] | : } [18:22:41.815] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.815] | : !isNamespace(penv)) { [18:22:41.815] | : parent.env(penv) <- environment() [18:22:41.815] | : } [18:22:41.815] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.815] | : { [18:22:41.815] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.815] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.815] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.815] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.815] | : on.exit(options(oopts), add = TRUE) [18:22:41.815] | : } [18:22:41.815] | : { [18:22:41.815] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.815] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.815] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.815] | : { [18:22:41.815] | : ...future.FUN(...future.X_jj, ...) [18:22:41.815] | : } [18:22:41.815] | : }) [18:22:41.815] | : } [18:22:41.815] | : } [18:22:41.815] | : }, args = future.call.arguments) [18:22:41.815] | : } [18:22:41.815] | : 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) [18:22:41.815] | : Packages: [18:22:41.815] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.815] | : Capture standard output: TRUE [18:22:41.815] | : Capture condition classes: 'condition' (excluding '') [18:22:41.815] | : Immediate condition classes: 'immediateCondition' [18:22:41.815] | : Lazy evaluation: FALSE [18:22:41.815] | : Local evaluation: TRUE [18:22:41.815] | : Early signaling: FALSE [18:22:41.815] | : Actions: [n=1] 'run' [18:22:41.815] | : State: 'running' ("Future is being evaluated") [18:22:41.815] | : Resolved: TRUE [18:22:41.815] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-30 [18:22:41.815] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.815] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.815] | : Value: [18:22:41.815] | : Conditions captured: [18:22:41.819] | : Chunk #2 of 2 ... DONE [18:22:41.820] | : Launching 2 futures (chunks) ... DONE [18:22:41.820] | : Resolving 2 futures (chunks) ... [18:22:41.821] | : - Number of value chunks collected: 2 [18:22:41.821] | : Resolving 2 futures (chunks) ... DONE [18:22:41.821] | : Reducing values from 2 chunks ... [18:22:41.821] | : - Number of values collected after concatenation: 2 [18:22:41.821] | : - Number of values expected: 2 [18:22:41.822] | : Reducing values from 2 chunks ... DONE [18:22:41.822] | future_lapply() -> future_xapply() ... done [18:22:41.822] 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) futurize(lapply(x, FUN = function(y) y)) > y <- foo(1:2, abc = (xyz >= 3.14)) [18:22:41.823] future_lapply() ... [18:22:41.824] | Globals in FUN(): [n=0] [18:22:41.824] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.824] | future_lapply() -> future_xapply() ... [18:22:41.825] | : Number of chunks: 2 [18:22:41.825] | : getGlobalsAndPackagesXApply() ... [18:22:41.825] | : . future.globals: TRUE [18:22:41.829] | : . globals found/used: [n=1] 'FUN' [18:22:41.829] | : . needed namespaces: [n=0] [18:22:41.830] | : . use_args: TRUE [18:22:41.830] | : . Getting '...' globals ... [18:22:41.830] | : . ' '...' content: [n=0] [18:22:41.831] | : . ' List of 1 [18:22:41.831] | : . ' $ ...: list() [18:22:41.831] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.831] | : . ' - attr(*, "where")=List of 1 [18:22:41.831] | : . ' ..$ ...: [18:22:41.831] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.831] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.831] | : . ' - attr(*, "total_size")= num NA [18:22:41.833] | : . Getting '...' globals ... done [18:22:41.834] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:41.834] | : . List of 2 [18:22:41.834] | : . $ ...future.FUN:function (y) [18:22:41.834] | : . $ ... : list() [18:22:41.834] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.834] | : . - attr(*, "where")=List of 2 [18:22:41.834] | : . ..$ ...future.FUN: [18:22:41.834] | : . ..$ ... : [18:22:41.834] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.834] | : . - attr(*, "resolved")= logi FALSE [18:22:41.834] | : . - attr(*, "total_size")= num 3904 [18:22:41.837] | : . Packages to be attached in all futures: [n=0] [18:22:41.838] | : getGlobalsAndPackagesXApply() ... done [18:22:41.838] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.838] | : List of 5 [18:22:41.838] | : $ ...future.FUN :function (y) [18:22:41.838] | : $ ... : list() [18:22:41.838] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.838] | : $ ...future.elements_ii : NULL [18:22:41.838] | : $ ...future.seeds_ii : NULL [18:22:41.838] | : $ ...future.globals.maxSize: NULL [18:22:41.838] | : - attr(*, "where")=List of 5 [18:22:41.838] | : ..$ ...future.FUN : [18:22:41.838] | : ..$ ... : [18:22:41.838] | : ..$ ...future.elements_ii : [18:22:41.838] | : ..$ ...future.seeds_ii : [18:22:41.838] | : ..$ ...future.globals.maxSize: [18:22:41.838] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.838] | : - attr(*, "resolved")= logi FALSE [18:22:41.838] | : - attr(*, "total_size")= num 3904 [18:22:41.843] | : Number of futures (= number of chunks): 2 [18:22:41.843] | : Launching 2 futures (chunks) ... [18:22:41.844] | : Chunk #1 of 2 ... [18:22:41.844] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.844] | : + additional globals found: [n=0] [18:22:41.844] | : + additional namespaces needed: [n=0] [18:22:41.845] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.845] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [18:22:41.845] | : - seeds: [18:22:41.845] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.847] | : Created future: [18:22:41.847] | : MultisessionFuture: [18:22:41.847] | : Label: 'future_lapply-1' [18:22:41.847] | : Expression: [18:22:41.847] | : { [18:22:41.847] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.847] | : "# expression in do.call(), because function called uses '...' " [18:22:41.847] | : "# as a global variable " [18:22:41.847] | : do.call(function(...) { [18:22:41.847] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.847] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.847] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.847] | : "# anonymous function. " [18:22:41.847] | : "# " [18:22:41.847] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.847] | : "# function environment of FUN() to the calling environment. " [18:22:41.847] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.847] | : "# global environment, which is where globals are written. " [18:22:41.847] | : penv <- env <- environment(...future.FUN) [18:22:41.847] | : repeat { [18:22:41.847] | : if (identical(env, globalenv()) || identical(env, [18:22:41.847] | : emptyenv())) [18:22:41.847] | : break [18:22:41.847] | : penv <- env [18:22:41.847] | : env <- parent.env(env) [18:22:41.847] | : } [18:22:41.847] | : if (identical(penv, globalenv())) { [18:22:41.847] | : environment(...future.FUN) <- environment() [18:22:41.847] | : } [18:22:41.847] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.847] | : !isNamespace(penv)) { [18:22:41.847] | : parent.env(penv) <- environment() [18:22:41.847] | : } [18:22:41.847] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.847] | : { [18:22:41.847] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.847] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.847] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.847] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.847] | : on.exit(options(oopts), add = TRUE) [18:22:41.847] | : } [18:22:41.847] | : { [18:22:41.847] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.847] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.847] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.847] | : { [18:22:41.847] | : ...future.FUN(...future.X_jj, ...) [18:22:41.847] | : } [18:22:41.847] | : }) [18:22:41.847] | : } [18:22:41.847] | : } [18:22:41.847] | : }, args = future.call.arguments) [18:22:41.847] | : } [18:22:41.847] | : 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) [18:22:41.847] | : Packages: [18:22:41.847] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.847] | : Capture standard output: TRUE [18:22:41.847] | : Capture condition classes: 'condition' (excluding '') [18:22:41.847] | : Immediate condition classes: 'immediateCondition' [18:22:41.847] | : Lazy evaluation: FALSE [18:22:41.847] | : Local evaluation: TRUE [18:22:41.847] | : Early signaling: FALSE [18:22:41.847] | : Actions: [n=1] 'run' [18:22:41.847] | : State: 'running' ("Future is being evaluated") [18:22:41.847] | : Resolved: TRUE [18:22:41.847] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-31 [18:22:41.847] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.847] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.847] | : Value: [18:22:41.847] | : Conditions captured: [18:22:41.852] | : Chunk #1 of 2 ... DONE [18:22:41.852] | : Chunk #2 of 2 ... [18:22:41.852] | : - Finding globals in 'X' for chunk #2 ... [18:22:41.853] | : + additional globals found: [n=0] [18:22:41.853] | : + additional namespaces needed: [n=0] [18:22:41.853] | : - Finding globals in 'X' for chunk #2 ... DONE [18:22:41.853] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [18:22:41.853] | : - seeds: [18:22:41.853] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.855] | : Created future: [18:22:41.855] | : MultisessionFuture: [18:22:41.855] | : Label: 'future_lapply-2' [18:22:41.855] | : Expression: [18:22:41.855] | : { [18:22:41.855] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.855] | : "# expression in do.call(), because function called uses '...' " [18:22:41.855] | : "# as a global variable " [18:22:41.855] | : do.call(function(...) { [18:22:41.855] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.855] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.855] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.855] | : "# anonymous function. " [18:22:41.855] | : "# " [18:22:41.855] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.855] | : "# function environment of FUN() to the calling environment. " [18:22:41.855] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.855] | : "# global environment, which is where globals are written. " [18:22:41.855] | : penv <- env <- environment(...future.FUN) [18:22:41.855] | : repeat { [18:22:41.855] | : if (identical(env, globalenv()) || identical(env, [18:22:41.855] | : emptyenv())) [18:22:41.855] | : break [18:22:41.855] | : penv <- env [18:22:41.855] | : env <- parent.env(env) [18:22:41.855] | : } [18:22:41.855] | : if (identical(penv, globalenv())) { [18:22:41.855] | : environment(...future.FUN) <- environment() [18:22:41.855] | : } [18:22:41.855] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.855] | : !isNamespace(penv)) { [18:22:41.855] | : parent.env(penv) <- environment() [18:22:41.855] | : } [18:22:41.855] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.855] | : { [18:22:41.855] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.855] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.855] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.855] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.855] | : on.exit(options(oopts), add = TRUE) [18:22:41.855] | : } [18:22:41.855] | : { [18:22:41.855] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.855] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.855] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.855] | : { [18:22:41.855] | : ...future.FUN(...future.X_jj, ...) [18:22:41.855] | : } [18:22:41.855] | : }) [18:22:41.855] | : } [18:22:41.855] | : } [18:22:41.855] | : }, args = future.call.arguments) [18:22:41.855] | : } [18:22:41.855] | : 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) [18:22:41.855] | : Packages: [18:22:41.855] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.855] | : Capture standard output: TRUE [18:22:41.855] | : Capture condition classes: 'condition' (excluding '') [18:22:41.855] | : Immediate condition classes: 'immediateCondition' [18:22:41.855] | : Lazy evaluation: FALSE [18:22:41.855] | : Local evaluation: TRUE [18:22:41.855] | : Early signaling: FALSE [18:22:41.855] | : Actions: [n=1] 'run' [18:22:41.855] | : State: 'running' ("Future is being evaluated") [18:22:41.855] | : Resolved: TRUE [18:22:41.855] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-32 [18:22:41.855] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.855] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.855] | : Value: [18:22:41.855] | : Conditions captured: [18:22:41.860] | : Chunk #2 of 2 ... DONE [18:22:41.860] | : Launching 2 futures (chunks) ... DONE [18:22:41.860] | : Resolving 2 futures (chunks) ... [18:22:41.861] | : - Number of value chunks collected: 2 [18:22:41.861] | : Resolving 2 futures (chunks) ... DONE [18:22:41.862] | : Reducing values from 2 chunks ... [18:22:41.862] | : - Number of values collected after concatenation: 2 [18:22:41.862] | : - Number of values expected: 2 [18:22:41.862] | : Reducing values from 2 chunks ... DONE [18:22:41.862] | future_lapply() -> future_xapply() ... done [18:22:41.862] 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 <- futurize(lapply(X, FUN = FUN)) + }, error = identity) [18:22:41.867] future_lapply() ... [18:22:41.867] | Globals in FUN(): [n=2] '{', 'getOption' [18:22:41.868] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.868] | future_lapply() -> future_xapply() ... [18:22:41.868] | : Number of chunks: 2 [18:22:41.869] | : getGlobalsAndPackagesXApply() ... [18:22:41.869] | : . future.globals: TRUE [18:22:41.875] | : getGlobalsAndPackagesXApply() ... done [18:22:41.875] | future_lapply() -> future_xapply() ... done [18:22:41.875] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- NULL > options(future.globals.maxSize = oMaxSize) > maxSize <- getOption("future.globals.maxSize") > y <- futurize(lapply(X, FUN = FUN)) [18:22:41.876] future_lapply() ... [18:22:41.877] | Globals in FUN(): [n=2] '{', 'getOption' [18:22:41.877] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.877] | future_lapply() -> future_xapply() ... [18:22:41.878] | : Number of chunks: 2 [18:22:41.878] | : getGlobalsAndPackagesXApply() ... [18:22:41.878] | : . future.globals: TRUE [18:22:41.887] | : . globals found/used: [n=1] 'FUN' [18:22:41.887] | : . needed namespaces: [n=0] [18:22:41.887] | : . use_args: TRUE [18:22:41.887] | : . Getting '...' globals ... [18:22:41.888] | : . ' '...' content: [n=0] [18:22:41.888] | : . ' List of 1 [18:22:41.888] | : . ' $ ...: list() [18:22:41.888] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.888] | : . ' - attr(*, "where")=List of 1 [18:22:41.888] | : . ' ..$ ...: [18:22:41.888] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.888] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.888] | : . ' - attr(*, "total_size")= num NA [18:22:41.891] | : . Getting '...' globals ... done [18:22:41.891] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:41.891] | : . List of 2 [18:22:41.891] | : . $ ...future.FUN:function (x) [18:22:41.891] | : . $ ... : list() [18:22:41.891] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.891] | : . - attr(*, "where")=List of 2 [18:22:41.891] | : . ..$ ...future.FUN: [18:22:41.891] | : . ..$ ... : [18:22:41.891] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.891] | : . - attr(*, "resolved")= logi FALSE [18:22:41.891] | : . - attr(*, "total_size")= num 4670 [18:22:41.895] | : . Packages to be attached in all futures: [n=0] [18:22:41.895] | : getGlobalsAndPackagesXApply() ... done [18:22:41.895] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.896] | : List of 5 [18:22:41.896] | : $ ...future.FUN :function (x) [18:22:41.896] | : $ ... : list() [18:22:41.896] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.896] | : $ ...future.elements_ii : NULL [18:22:41.896] | : $ ...future.seeds_ii : NULL [18:22:41.896] | : $ ...future.globals.maxSize: NULL [18:22:41.896] | : - attr(*, "where")=List of 5 [18:22:41.896] | : ..$ ...future.FUN : [18:22:41.896] | : ..$ ... : [18:22:41.896] | : ..$ ...future.elements_ii : [18:22:41.896] | : ..$ ...future.seeds_ii : [18:22:41.896] | : ..$ ...future.globals.maxSize: [18:22:41.896] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.896] | : - attr(*, "resolved")= logi FALSE [18:22:41.896] | : - attr(*, "total_size")= num 4670 [18:22:41.901] | : Number of futures (= number of chunks): 2 [18:22:41.901] | : Launching 2 futures (chunks) ... [18:22:41.901] | : Chunk #1 of 2 ... [18:22:41.901] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.902] | : + additional globals found: [n=0] [18:22:41.902] | : + additional namespaces needed: [n=0] [18:22:41.902] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.902] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [18:22:41.902] | : - seeds: [18:22:41.903] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.904] | : Created future: [18:22:41.905] | : MultisessionFuture: [18:22:41.905] | : Label: 'future_lapply-1' [18:22:41.905] | : Expression: [18:22:41.905] | : { [18:22:41.905] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.905] | : "# expression in do.call(), because function called uses '...' " [18:22:41.905] | : "# as a global variable " [18:22:41.905] | : do.call(function(...) { [18:22:41.905] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.905] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.905] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.905] | : "# anonymous function. " [18:22:41.905] | : "# " [18:22:41.905] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.905] | : "# function environment of FUN() to the calling environment. " [18:22:41.905] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.905] | : "# global environment, which is where globals are written. " [18:22:41.905] | : penv <- env <- environment(...future.FUN) [18:22:41.905] | : repeat { [18:22:41.905] | : if (identical(env, globalenv()) || identical(env, [18:22:41.905] | : emptyenv())) [18:22:41.905] | : break [18:22:41.905] | : penv <- env [18:22:41.905] | : env <- parent.env(env) [18:22:41.905] | : } [18:22:41.905] | : if (identical(penv, globalenv())) { [18:22:41.905] | : environment(...future.FUN) <- environment() [18:22:41.905] | : } [18:22:41.905] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.905] | : !isNamespace(penv)) { [18:22:41.905] | : parent.env(penv) <- environment() [18:22:41.905] | : } [18:22:41.905] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.905] | : { [18:22:41.905] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.905] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.905] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.905] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.905] | : on.exit(options(oopts), add = TRUE) [18:22:41.905] | : } [18:22:41.905] | : { [18:22:41.905] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.905] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.905] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.905] | : { [18:22:41.905] | : ...future.FUN(...future.X_jj, ...) [18:22:41.905] | : } [18:22:41.905] | : }) [18:22:41.905] | : } [18:22:41.905] | : } [18:22:41.905] | : }, args = future.call.arguments) [18:22:41.905] | : } [18:22:41.905] | : 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) [18:22:41.905] | : Packages: [18:22:41.905] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.905] | : Capture standard output: TRUE [18:22:41.905] | : Capture condition classes: 'condition' (excluding '') [18:22:41.905] | : Immediate condition classes: 'immediateCondition' [18:22:41.905] | : Lazy evaluation: FALSE [18:22:41.905] | : Local evaluation: TRUE [18:22:41.905] | : Early signaling: FALSE [18:22:41.905] | : Actions: [n=1] 'run' [18:22:41.905] | : State: 'running' ("Future is being evaluated") [18:22:41.905] | : Resolved: TRUE [18:22:41.905] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-33 [18:22:41.905] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.905] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.905] | : Value: [18:22:41.905] | : Conditions captured: [18:22:41.911] | : Chunk #1 of 2 ... DONE [18:22:41.911] | : Chunk #2 of 2 ... [18:22:41.911] | : - Finding globals in 'X' for chunk #2 ... [18:22:41.912] | : + additional globals found: [n=0] [18:22:41.912] | : + additional namespaces needed: [n=0] [18:22:41.912] | : - Finding globals in 'X' for chunk #2 ... DONE [18:22:41.912] | : - Adjusted option 'future.globals.maxSize': 524288000 -> 2 * 524288000 = 1048576000 (bytes) [18:22:41.912] | : - seeds: [18:22:41.913] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.914] | : Created future: [18:22:41.915] | : MultisessionFuture: [18:22:41.915] | : Label: 'future_lapply-2' [18:22:41.915] | : Expression: [18:22:41.915] | : { [18:22:41.915] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.915] | : "# expression in do.call(), because function called uses '...' " [18:22:41.915] | : "# as a global variable " [18:22:41.915] | : do.call(function(...) { [18:22:41.915] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.915] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.915] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.915] | : "# anonymous function. " [18:22:41.915] | : "# " [18:22:41.915] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.915] | : "# function environment of FUN() to the calling environment. " [18:22:41.915] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.915] | : "# global environment, which is where globals are written. " [18:22:41.915] | : penv <- env <- environment(...future.FUN) [18:22:41.915] | : repeat { [18:22:41.915] | : if (identical(env, globalenv()) || identical(env, [18:22:41.915] | : emptyenv())) [18:22:41.915] | : break [18:22:41.915] | : penv <- env [18:22:41.915] | : env <- parent.env(env) [18:22:41.915] | : } [18:22:41.915] | : if (identical(penv, globalenv())) { [18:22:41.915] | : environment(...future.FUN) <- environment() [18:22:41.915] | : } [18:22:41.915] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.915] | : !isNamespace(penv)) { [18:22:41.915] | : parent.env(penv) <- environment() [18:22:41.915] | : } [18:22:41.915] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.915] | : { [18:22:41.915] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.915] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.915] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.915] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.915] | : on.exit(options(oopts), add = TRUE) [18:22:41.915] | : } [18:22:41.915] | : { [18:22:41.915] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.915] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.915] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.915] | : { [18:22:41.915] | : ...future.FUN(...future.X_jj, ...) [18:22:41.915] | : } [18:22:41.915] | : }) [18:22:41.915] | : } [18:22:41.915] | : } [18:22:41.915] | : }, args = future.call.arguments) [18:22:41.915] | : } [18:22:41.915] | : 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) [18:22:41.915] | : Packages: [18:22:41.915] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.915] | : Capture standard output: TRUE [18:22:41.915] | : Capture condition classes: 'condition' (excluding '') [18:22:41.915] | : Immediate condition classes: 'immediateCondition' [18:22:41.915] | : Lazy evaluation: FALSE [18:22:41.915] | : Local evaluation: TRUE [18:22:41.915] | : Early signaling: FALSE [18:22:41.915] | : Actions: [n=1] 'run' [18:22:41.915] | : State: 'running' ("Future is being evaluated") [18:22:41.915] | : Resolved: TRUE [18:22:41.915] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-34 [18:22:41.915] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.915] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.915] | : Value: [18:22:41.915] | : Conditions captured: [18:22:41.919] | : Chunk #2 of 2 ... DONE [18:22:41.919] | : Launching 2 futures (chunks) ... DONE [18:22:41.919] | : Resolving 2 futures (chunks) ... [18:22:41.920] | : - Number of value chunks collected: 2 [18:22:41.921] | : Resolving 2 futures (chunks) ... DONE [18:22:41.921] | : Reducing values from 2 chunks ... [18:22:41.921] | : - Number of values collected after concatenation: 10 [18:22:41.921] | : - Number of values expected: 10 [18:22:41.921] | : Reducing values from 2 chunks ... DONE [18:22:41.921] | future_lapply() -> future_xapply() ... done [18:22:41.922] 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) > if ("covr" %in% loadedNamespaces()) maxSize <- maxSize + + 65000 > options(future.globals.maxSize = maxSize) > for (chunk_size in c(1, 2, 5, 10)) { + y <- futurize(lapply(X, FUN = FUN), chunk_size = chunk_size) + str(y) + stopifnot(all(unlist(y) = .... [TRUNCATED] [18:22:41.932] future_lapply() ... [18:22:41.932] | Globals in FUN(): [n=2] '{', 'getOption' [18:22:41.932] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:41.933] | future_lapply() -> future_xapply() ... [18:22:41.933] | : Number of chunks: 10 [18:22:41.933] | : getGlobalsAndPackagesXApply() ... [18:22:41.934] | : . future.globals: TRUE [18:22:41.940] | : . globals found/used: [n=1] 'FUN' [18:22:41.940] | : . needed namespaces: [n=0] [18:22:41.940] | : . use_args: TRUE [18:22:41.941] | : . Getting '...' globals ... [18:22:41.941] | : . ' '...' content: [n=0] [18:22:41.941] | : . ' List of 1 [18:22:41.941] | : . ' $ ...: list() [18:22:41.941] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.941] | : . ' - attr(*, "where")=List of 1 [18:22:41.941] | : . ' ..$ ...: [18:22:41.941] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.941] | : . ' - attr(*, "resolved")= logi TRUE [18:22:41.941] | : . ' - attr(*, "total_size")= num NA [18:22:41.944] | : . Getting '...' globals ... done [18:22:41.945] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:41.945] | : . List of 2 [18:22:41.945] | : . $ ...future.FUN:function (x) [18:22:41.945] | : . $ ... : list() [18:22:41.945] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.945] | : . - attr(*, "where")=List of 2 [18:22:41.945] | : . ..$ ...future.FUN: [18:22:41.945] | : . ..$ ... : [18:22:41.945] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.945] | : . - attr(*, "resolved")= logi FALSE [18:22:41.945] | : . - attr(*, "total_size")= num 4686 [18:22:41.948] | : . Packages to be attached in all futures: [n=0] [18:22:41.948] | : getGlobalsAndPackagesXApply() ... done [18:22:41.949] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.949] | : List of 5 [18:22:41.949] | : $ ...future.FUN :function (x) [18:22:41.949] | : $ ... : list() [18:22:41.949] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:41.949] | : $ ...future.elements_ii : NULL [18:22:41.949] | : $ ...future.seeds_ii : NULL [18:22:41.949] | : $ ...future.globals.maxSize: NULL [18:22:41.949] | : - attr(*, "where")=List of 5 [18:22:41.949] | : ..$ ...future.FUN : [18:22:41.949] | : ..$ ... : [18:22:41.949] | : ..$ ...future.elements_ii : [18:22:41.949] | : ..$ ...future.seeds_ii : [18:22:41.949] | : ..$ ...future.globals.maxSize: [18:22:41.949] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:41.949] | : - attr(*, "resolved")= logi FALSE [18:22:41.949] | : - attr(*, "total_size")= num 4686 [18:22:41.954] | : Number of futures (= number of chunks): 10 [18:22:41.954] | : Launching 10 futures (chunks) ... [18:22:41.954] | : Chunk #1 of 10 ... [18:22:41.955] | : - Finding globals in 'X' for chunk #1 ... [18:22:41.955] | : + additional globals found: [n=0] [18:22:41.955] | : + additional namespaces needed: [n=0] [18:22:41.955] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:41.956] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [18:22:41.956] | : - seeds: [18:22:41.956] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.960] | : Created future: [18:22:41.960] | : MultisessionFuture: [18:22:41.960] | : Label: 'future_lapply-1' [18:22:41.960] | : Expression: [18:22:41.960] | : { [18:22:41.960] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.960] | : "# expression in do.call(), because function called uses '...' " [18:22:41.960] | : "# as a global variable " [18:22:41.960] | : do.call(function(...) { [18:22:41.960] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.960] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.960] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.960] | : "# anonymous function. " [18:22:41.960] | : "# " [18:22:41.960] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.960] | : "# function environment of FUN() to the calling environment. " [18:22:41.960] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.960] | : "# global environment, which is where globals are written. " [18:22:41.960] | : penv <- env <- environment(...future.FUN) [18:22:41.960] | : repeat { [18:22:41.960] | : if (identical(env, globalenv()) || identical(env, [18:22:41.960] | : emptyenv())) [18:22:41.960] | : break [18:22:41.960] | : penv <- env [18:22:41.960] | : env <- parent.env(env) [18:22:41.960] | : } [18:22:41.960] | : if (identical(penv, globalenv())) { [18:22:41.960] | : environment(...future.FUN) <- environment() [18:22:41.960] | : } [18:22:41.960] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.960] | : !isNamespace(penv)) { [18:22:41.960] | : parent.env(penv) <- environment() [18:22:41.960] | : } [18:22:41.960] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.960] | : { [18:22:41.960] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.960] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.960] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.960] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.960] | : on.exit(options(oopts), add = TRUE) [18:22:41.960] | : } [18:22:41.960] | : { [18:22:41.960] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.960] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.960] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.960] | : { [18:22:41.960] | : ...future.FUN(...future.X_jj, ...) [18:22:41.960] | : } [18:22:41.960] | : }) [18:22:41.960] | : } [18:22:41.960] | : } [18:22:41.960] | : }, args = future.call.arguments) [18:22:41.960] | : } [18:22:41.960] | : Globals: 5 objects totaling 4.92 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) [18:22:41.960] | : Packages: [18:22:41.960] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.960] | : Capture standard output: TRUE [18:22:41.960] | : Capture condition classes: 'condition' (excluding '') [18:22:41.960] | : Immediate condition classes: 'immediateCondition' [18:22:41.960] | : Lazy evaluation: FALSE [18:22:41.960] | : Local evaluation: TRUE [18:22:41.960] | : Early signaling: FALSE [18:22:41.960] | : Actions: [n=1] 'run' [18:22:41.960] | : State: 'running' ("Future is being evaluated") [18:22:41.960] | : Resolved: TRUE [18:22:41.960] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-35 [18:22:41.960] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.960] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.960] | : Value: [18:22:41.960] | : Conditions captured: [18:22:41.965] | : Chunk #1 of 10 ... DONE [18:22:41.965] | : Chunk #2 of 10 ... [18:22:41.965] | : - Finding globals in 'X' for chunk #2 ... [18:22:41.965] | : + additional globals found: [n=0] [18:22:41.966] | : + additional namespaces needed: [n=0] [18:22:41.966] | : - Finding globals in 'X' for chunk #2 ... DONE [18:22:41.966] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [18:22:41.966] | : - seeds: [18:22:41.966] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.968] | : Created future: [18:22:41.968] | : MultisessionFuture: [18:22:41.968] | : Label: 'future_lapply-2' [18:22:41.968] | : Expression: [18:22:41.968] | : { [18:22:41.968] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.968] | : "# expression in do.call(), because function called uses '...' " [18:22:41.968] | : "# as a global variable " [18:22:41.968] | : do.call(function(...) { [18:22:41.968] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.968] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.968] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.968] | : "# anonymous function. " [18:22:41.968] | : "# " [18:22:41.968] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.968] | : "# function environment of FUN() to the calling environment. " [18:22:41.968] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.968] | : "# global environment, which is where globals are written. " [18:22:41.968] | : penv <- env <- environment(...future.FUN) [18:22:41.968] | : repeat { [18:22:41.968] | : if (identical(env, globalenv()) || identical(env, [18:22:41.968] | : emptyenv())) [18:22:41.968] | : break [18:22:41.968] | : penv <- env [18:22:41.968] | : env <- parent.env(env) [18:22:41.968] | : } [18:22:41.968] | : if (identical(penv, globalenv())) { [18:22:41.968] | : environment(...future.FUN) <- environment() [18:22:41.968] | : } [18:22:41.968] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.968] | : !isNamespace(penv)) { [18:22:41.968] | : parent.env(penv) <- environment() [18:22:41.968] | : } [18:22:41.968] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.968] | : { [18:22:41.968] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.968] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.968] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.968] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.968] | : on.exit(options(oopts), add = TRUE) [18:22:41.968] | : } [18:22:41.968] | : { [18:22:41.968] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.968] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.968] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.968] | : { [18:22:41.968] | : ...future.FUN(...future.X_jj, ...) [18:22:41.968] | : } [18:22:41.968] | : }) [18:22:41.968] | : } [18:22:41.968] | : } [18:22:41.968] | : }, args = future.call.arguments) [18:22:41.968] | : } [18:22:41.968] | : Globals: 5 objects totaling 4.92 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) [18:22:41.968] | : Packages: [18:22:41.968] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.968] | : Capture standard output: TRUE [18:22:41.968] | : Capture condition classes: 'condition' (excluding '') [18:22:41.968] | : Immediate condition classes: 'immediateCondition' [18:22:41.968] | : Lazy evaluation: FALSE [18:22:41.968] | : Local evaluation: TRUE [18:22:41.968] | : Early signaling: FALSE [18:22:41.968] | : Actions: [n=1] 'run' [18:22:41.968] | : State: 'running' ("Future is being evaluated") [18:22:41.968] | : Resolved: TRUE [18:22:41.968] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-36 [18:22:41.968] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.968] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.968] | : Value: [18:22:41.968] | : Conditions captured: [18:22:41.973] | : Chunk #2 of 10 ... DONE [18:22:41.973] | : Chunk #3 of 10 ... [18:22:41.973] | : - Finding globals in 'X' for chunk #3 ... [18:22:41.974] | : + additional globals found: [n=0] [18:22:41.974] | : + additional namespaces needed: [n=0] [18:22:41.974] | : - Finding globals in 'X' for chunk #3 ... DONE [18:22:41.974] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [18:22:41.974] | : - seeds: [18:22:41.975] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.976] | : Created future: [18:22:41.977] | : MultisessionFuture: [18:22:41.977] | : Label: 'future_lapply-3' [18:22:41.977] | : Expression: [18:22:41.977] | : { [18:22:41.977] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.977] | : "# expression in do.call(), because function called uses '...' " [18:22:41.977] | : "# as a global variable " [18:22:41.977] | : do.call(function(...) { [18:22:41.977] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.977] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.977] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.977] | : "# anonymous function. " [18:22:41.977] | : "# " [18:22:41.977] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.977] | : "# function environment of FUN() to the calling environment. " [18:22:41.977] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.977] | : "# global environment, which is where globals are written. " [18:22:41.977] | : penv <- env <- environment(...future.FUN) [18:22:41.977] | : repeat { [18:22:41.977] | : if (identical(env, globalenv()) || identical(env, [18:22:41.977] | : emptyenv())) [18:22:41.977] | : break [18:22:41.977] | : penv <- env [18:22:41.977] | : env <- parent.env(env) [18:22:41.977] | : } [18:22:41.977] | : if (identical(penv, globalenv())) { [18:22:41.977] | : environment(...future.FUN) <- environment() [18:22:41.977] | : } [18:22:41.977] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.977] | : !isNamespace(penv)) { [18:22:41.977] | : parent.env(penv) <- environment() [18:22:41.977] | : } [18:22:41.977] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.977] | : { [18:22:41.977] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.977] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.977] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.977] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.977] | : on.exit(options(oopts), add = TRUE) [18:22:41.977] | : } [18:22:41.977] | : { [18:22:41.977] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.977] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.977] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.977] | : { [18:22:41.977] | : ...future.FUN(...future.X_jj, ...) [18:22:41.977] | : } [18:22:41.977] | : }) [18:22:41.977] | : } [18:22:41.977] | : } [18:22:41.977] | : }, args = future.call.arguments) [18:22:41.977] | : } [18:22:41.977] | : Globals: 5 objects totaling 4.92 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) [18:22:41.977] | : Packages: [18:22:41.977] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.977] | : Capture standard output: TRUE [18:22:41.977] | : Capture condition classes: 'condition' (excluding '') [18:22:41.977] | : Immediate condition classes: 'immediateCondition' [18:22:41.977] | : Lazy evaluation: FALSE [18:22:41.977] | : Local evaluation: TRUE [18:22:41.977] | : Early signaling: FALSE [18:22:41.977] | : Actions: [n=1] 'run' [18:22:41.977] | : State: 'running' ("Future is being evaluated") [18:22:41.977] | : Resolved: TRUE [18:22:41.977] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-37 [18:22:41.977] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.977] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.977] | : Value: [18:22:41.977] | : Conditions captured: [18:22:41.981] | : Chunk #3 of 10 ... DONE [18:22:41.981] | : Chunk #4 of 10 ... [18:22:41.982] | : - Finding globals in 'X' for chunk #4 ... [18:22:41.982] | : + additional globals found: [n=0] [18:22:41.982] | : + additional namespaces needed: [n=0] [18:22:41.982] | : - Finding globals in 'X' for chunk #4 ... DONE [18:22:41.983] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [18:22:41.983] | : - seeds: [18:22:41.983] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.985] | : Created future: [18:22:41.985] | : MultisessionFuture: [18:22:41.985] | : Label: 'future_lapply-4' [18:22:41.985] | : Expression: [18:22:41.985] | : { [18:22:41.985] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.985] | : "# expression in do.call(), because function called uses '...' " [18:22:41.985] | : "# as a global variable " [18:22:41.985] | : do.call(function(...) { [18:22:41.985] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.985] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.985] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.985] | : "# anonymous function. " [18:22:41.985] | : "# " [18:22:41.985] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.985] | : "# function environment of FUN() to the calling environment. " [18:22:41.985] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.985] | : "# global environment, which is where globals are written. " [18:22:41.985] | : penv <- env <- environment(...future.FUN) [18:22:41.985] | : repeat { [18:22:41.985] | : if (identical(env, globalenv()) || identical(env, [18:22:41.985] | : emptyenv())) [18:22:41.985] | : break [18:22:41.985] | : penv <- env [18:22:41.985] | : env <- parent.env(env) [18:22:41.985] | : } [18:22:41.985] | : if (identical(penv, globalenv())) { [18:22:41.985] | : environment(...future.FUN) <- environment() [18:22:41.985] | : } [18:22:41.985] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.985] | : !isNamespace(penv)) { [18:22:41.985] | : parent.env(penv) <- environment() [18:22:41.985] | : } [18:22:41.985] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.985] | : { [18:22:41.985] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.985] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.985] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.985] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.985] | : on.exit(options(oopts), add = TRUE) [18:22:41.985] | : } [18:22:41.985] | : { [18:22:41.985] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.985] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.985] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.985] | : { [18:22:41.985] | : ...future.FUN(...future.X_jj, ...) [18:22:41.985] | : } [18:22:41.985] | : }) [18:22:41.985] | : } [18:22:41.985] | : } [18:22:41.985] | : }, args = future.call.arguments) [18:22:41.985] | : } [18:22:41.985] | : Globals: 5 objects totaling 4.92 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) [18:22:41.985] | : Packages: [18:22:41.985] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.985] | : Capture standard output: TRUE [18:22:41.985] | : Capture condition classes: 'condition' (excluding '') [18:22:41.985] | : Immediate condition classes: 'immediateCondition' [18:22:41.985] | : Lazy evaluation: FALSE [18:22:41.985] | : Local evaluation: TRUE [18:22:41.985] | : Early signaling: FALSE [18:22:41.985] | : Actions: [n=1] 'run' [18:22:41.985] | : State: 'running' ("Future is being evaluated") [18:22:41.985] | : Resolved: TRUE [18:22:41.985] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-38 [18:22:41.985] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.985] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.985] | : Value: [18:22:41.985] | : Conditions captured: [18:22:41.989] | : Chunk #4 of 10 ... DONE [18:22:41.989] | : Chunk #5 of 10 ... [18:22:41.990] | : - Finding globals in 'X' for chunk #5 ... [18:22:41.990] | : + additional globals found: [n=0] [18:22:41.990] | : + additional namespaces needed: [n=0] [18:22:41.991] | : - Finding globals in 'X' for chunk #5 ... DONE [18:22:41.991] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [18:22:41.991] | : - seeds: [18:22:41.991] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:41.993] | : Created future: [18:22:41.993] | : MultisessionFuture: [18:22:41.993] | : Label: 'future_lapply-5' [18:22:41.993] | : Expression: [18:22:41.993] | : { [18:22:41.993] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:41.993] | : "# expression in do.call(), because function called uses '...' " [18:22:41.993] | : "# as a global variable " [18:22:41.993] | : do.call(function(...) { [18:22:41.993] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:41.993] | : "# without having an '...' argument. This means '...' is treated" [18:22:41.993] | : "# as a global variable. This may happen when FUN() is an " [18:22:41.993] | : "# anonymous function. " [18:22:41.993] | : "# " [18:22:41.993] | : "# If an anonymous function, we will make sure to restore the " [18:22:41.993] | : "# function environment of FUN() to the calling environment. " [18:22:41.993] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:41.993] | : "# global environment, which is where globals are written. " [18:22:41.993] | : penv <- env <- environment(...future.FUN) [18:22:41.993] | : repeat { [18:22:41.993] | : if (identical(env, globalenv()) || identical(env, [18:22:41.993] | : emptyenv())) [18:22:41.993] | : break [18:22:41.993] | : penv <- env [18:22:41.993] | : env <- parent.env(env) [18:22:41.993] | : } [18:22:41.993] | : if (identical(penv, globalenv())) { [18:22:41.993] | : environment(...future.FUN) <- environment() [18:22:41.993] | : } [18:22:41.993] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:41.993] | : !isNamespace(penv)) { [18:22:41.993] | : parent.env(penv) <- environment() [18:22:41.993] | : } [18:22:41.993] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:41.993] | : { [18:22:41.993] | : "# future.apply:::future_xapply(): preserve future option" [18:22:41.993] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:41.993] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:41.993] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:41.993] | : on.exit(options(oopts), add = TRUE) [18:22:41.993] | : } [18:22:41.993] | : { [18:22:41.993] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:41.993] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:41.993] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:41.993] | : { [18:22:41.993] | : ...future.FUN(...future.X_jj, ...) [18:22:41.993] | : } [18:22:41.993] | : }) [18:22:41.993] | : } [18:22:41.993] | : } [18:22:41.993] | : }, args = future.call.arguments) [18:22:41.993] | : } [18:22:41.993] | : Globals: 5 objects totaling 4.92 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) [18:22:41.993] | : Packages: [18:22:41.993] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:41.993] | : Capture standard output: TRUE [18:22:41.993] | : Capture condition classes: 'condition' (excluding '') [18:22:41.993] | : Immediate condition classes: 'immediateCondition' [18:22:41.993] | : Lazy evaluation: FALSE [18:22:41.993] | : Local evaluation: TRUE [18:22:41.993] | : Early signaling: FALSE [18:22:41.993] | : Actions: [n=1] 'run' [18:22:41.993] | : State: 'running' ("Future is being evaluated") [18:22:41.993] | : Resolved: TRUE [18:22:41.993] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-39 [18:22:41.993] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:41.993] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:41.993] | : Value: [18:22:41.993] | : Conditions captured: [18:22:41.999] | : Chunk #5 of 10 ... DONE [18:22:41.999] | : Chunk #6 of 10 ... [18:22:41.999] | : - Finding globals in 'X' for chunk #6 ... [18:22:42.000] | : + additional globals found: [n=0] [18:22:42.000] | : + additional namespaces needed: [n=0] [18:22:42.000] | : - Finding globals in 'X' for chunk #6 ... DONE [18:22:42.000] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [18:22:42.001] | : - seeds: [18:22:42.001] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.003] | : Created future: [18:22:42.003] | : MultisessionFuture: [18:22:42.003] | : Label: 'future_lapply-6' [18:22:42.003] | : Expression: [18:22:42.003] | : { [18:22:42.003] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.003] | : "# expression in do.call(), because function called uses '...' " [18:22:42.003] | : "# as a global variable " [18:22:42.003] | : do.call(function(...) { [18:22:42.003] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.003] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.003] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.003] | : "# anonymous function. " [18:22:42.003] | : "# " [18:22:42.003] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.003] | : "# function environment of FUN() to the calling environment. " [18:22:42.003] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.003] | : "# global environment, which is where globals are written. " [18:22:42.003] | : penv <- env <- environment(...future.FUN) [18:22:42.003] | : repeat { [18:22:42.003] | : if (identical(env, globalenv()) || identical(env, [18:22:42.003] | : emptyenv())) [18:22:42.003] | : break [18:22:42.003] | : penv <- env [18:22:42.003] | : env <- parent.env(env) [18:22:42.003] | : } [18:22:42.003] | : if (identical(penv, globalenv())) { [18:22:42.003] | : environment(...future.FUN) <- environment() [18:22:42.003] | : } [18:22:42.003] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.003] | : !isNamespace(penv)) { [18:22:42.003] | : parent.env(penv) <- environment() [18:22:42.003] | : } [18:22:42.003] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.003] | : { [18:22:42.003] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.003] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.003] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.003] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.003] | : on.exit(options(oopts), add = TRUE) [18:22:42.003] | : } [18:22:42.003] | : { [18:22:42.003] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.003] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.003] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.003] | : { [18:22:42.003] | : ...future.FUN(...future.X_jj, ...) [18:22:42.003] | : } [18:22:42.003] | : }) [18:22:42.003] | : } [18:22:42.003] | : } [18:22:42.003] | : }, args = future.call.arguments) [18:22:42.003] | : } [18:22:42.003] | : Globals: 5 objects totaling 4.92 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) [18:22:42.003] | : Packages: [18:22:42.003] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.003] | : Capture standard output: TRUE [18:22:42.003] | : Capture condition classes: 'condition' (excluding '') [18:22:42.003] | : Immediate condition classes: 'immediateCondition' [18:22:42.003] | : Lazy evaluation: FALSE [18:22:42.003] | : Local evaluation: TRUE [18:22:42.003] | : Early signaling: FALSE [18:22:42.003] | : Actions: [n=1] 'run' [18:22:42.003] | : State: 'running' ("Future is being evaluated") [18:22:42.003] | : Resolved: TRUE [18:22:42.003] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-40 [18:22:42.003] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.003] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.003] | : Value: [18:22:42.003] | : Conditions captured: [18:22:42.007] | : Chunk #6 of 10 ... DONE [18:22:42.007] | : Chunk #7 of 10 ... [18:22:42.008] | : - Finding globals in 'X' for chunk #7 ... [18:22:42.008] | : + additional globals found: [n=0] [18:22:42.008] | : + additional namespaces needed: [n=0] [18:22:42.008] | : - Finding globals in 'X' for chunk #7 ... DONE [18:22:42.009] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [18:22:42.009] | : - seeds: [18:22:42.009] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.011] | : Created future: [18:22:42.011] | : MultisessionFuture: [18:22:42.011] | : Label: 'future_lapply-7' [18:22:42.011] | : Expression: [18:22:42.011] | : { [18:22:42.011] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.011] | : "# expression in do.call(), because function called uses '...' " [18:22:42.011] | : "# as a global variable " [18:22:42.011] | : do.call(function(...) { [18:22:42.011] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.011] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.011] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.011] | : "# anonymous function. " [18:22:42.011] | : "# " [18:22:42.011] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.011] | : "# function environment of FUN() to the calling environment. " [18:22:42.011] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.011] | : "# global environment, which is where globals are written. " [18:22:42.011] | : penv <- env <- environment(...future.FUN) [18:22:42.011] | : repeat { [18:22:42.011] | : if (identical(env, globalenv()) || identical(env, [18:22:42.011] | : emptyenv())) [18:22:42.011] | : break [18:22:42.011] | : penv <- env [18:22:42.011] | : env <- parent.env(env) [18:22:42.011] | : } [18:22:42.011] | : if (identical(penv, globalenv())) { [18:22:42.011] | : environment(...future.FUN) <- environment() [18:22:42.011] | : } [18:22:42.011] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.011] | : !isNamespace(penv)) { [18:22:42.011] | : parent.env(penv) <- environment() [18:22:42.011] | : } [18:22:42.011] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.011] | : { [18:22:42.011] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.011] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.011] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.011] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.011] | : on.exit(options(oopts), add = TRUE) [18:22:42.011] | : } [18:22:42.011] | : { [18:22:42.011] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.011] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.011] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.011] | : { [18:22:42.011] | : ...future.FUN(...future.X_jj, ...) [18:22:42.011] | : } [18:22:42.011] | : }) [18:22:42.011] | : } [18:22:42.011] | : } [18:22:42.011] | : }, args = future.call.arguments) [18:22:42.011] | : } [18:22:42.011] | : Globals: 5 objects totaling 4.92 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) [18:22:42.011] | : Packages: [18:22:42.011] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.011] | : Capture standard output: TRUE [18:22:42.011] | : Capture condition classes: 'condition' (excluding '') [18:22:42.011] | : Immediate condition classes: 'immediateCondition' [18:22:42.011] | : Lazy evaluation: FALSE [18:22:42.011] | : Local evaluation: TRUE [18:22:42.011] | : Early signaling: FALSE [18:22:42.011] | : Actions: [n=1] 'run' [18:22:42.011] | : State: 'running' ("Future is being evaluated") [18:22:42.011] | : Resolved: TRUE [18:22:42.011] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-41 [18:22:42.011] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.011] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.011] | : Value: [18:22:42.011] | : Conditions captured: [18:22:42.015] | : Chunk #7 of 10 ... DONE [18:22:42.015] | : Chunk #8 of 10 ... [18:22:42.016] | : - Finding globals in 'X' for chunk #8 ... [18:22:42.016] | : + additional globals found: [n=0] [18:22:42.016] | : + additional namespaces needed: [n=0] [18:22:42.016] | : - Finding globals in 'X' for chunk #8 ... DONE [18:22:42.017] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [18:22:42.017] | : - seeds: [18:22:42.017] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.019] | : Created future: [18:22:42.019] | : MultisessionFuture: [18:22:42.019] | : Label: 'future_lapply-8' [18:22:42.019] | : Expression: [18:22:42.019] | : { [18:22:42.019] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.019] | : "# expression in do.call(), because function called uses '...' " [18:22:42.019] | : "# as a global variable " [18:22:42.019] | : do.call(function(...) { [18:22:42.019] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.019] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.019] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.019] | : "# anonymous function. " [18:22:42.019] | : "# " [18:22:42.019] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.019] | : "# function environment of FUN() to the calling environment. " [18:22:42.019] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.019] | : "# global environment, which is where globals are written. " [18:22:42.019] | : penv <- env <- environment(...future.FUN) [18:22:42.019] | : repeat { [18:22:42.019] | : if (identical(env, globalenv()) || identical(env, [18:22:42.019] | : emptyenv())) [18:22:42.019] | : break [18:22:42.019] | : penv <- env [18:22:42.019] | : env <- parent.env(env) [18:22:42.019] | : } [18:22:42.019] | : if (identical(penv, globalenv())) { [18:22:42.019] | : environment(...future.FUN) <- environment() [18:22:42.019] | : } [18:22:42.019] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.019] | : !isNamespace(penv)) { [18:22:42.019] | : parent.env(penv) <- environment() [18:22:42.019] | : } [18:22:42.019] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.019] | : { [18:22:42.019] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.019] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.019] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.019] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.019] | : on.exit(options(oopts), add = TRUE) [18:22:42.019] | : } [18:22:42.019] | : { [18:22:42.019] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.019] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.019] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.019] | : { [18:22:42.019] | : ...future.FUN(...future.X_jj, ...) [18:22:42.019] | : } [18:22:42.019] | : }) [18:22:42.019] | : } [18:22:42.019] | : } [18:22:42.019] | : }, args = future.call.arguments) [18:22:42.019] | : } [18:22:42.019] | : Globals: 5 objects totaling 4.92 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) [18:22:42.019] | : Packages: [18:22:42.019] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.019] | : Capture standard output: TRUE [18:22:42.019] | : Capture condition classes: 'condition' (excluding '') [18:22:42.019] | : Immediate condition classes: 'immediateCondition' [18:22:42.019] | : Lazy evaluation: FALSE [18:22:42.019] | : Local evaluation: TRUE [18:22:42.019] | : Early signaling: FALSE [18:22:42.019] | : Actions: [n=1] 'run' [18:22:42.019] | : State: 'running' ("Future is being evaluated") [18:22:42.019] | : Resolved: TRUE [18:22:42.019] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-42 [18:22:42.019] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.019] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.019] | : Value: [18:22:42.019] | : Conditions captured: [18:22:42.023] | : Chunk #8 of 10 ... DONE [18:22:42.024] | : Chunk #9 of 10 ... [18:22:42.024] | : - Finding globals in 'X' for chunk #9 ... [18:22:42.024] | : + additional globals found: [n=0] [18:22:42.024] | : + additional namespaces needed: [n=0] [18:22:42.025] | : - Finding globals in 'X' for chunk #9 ... DONE [18:22:42.025] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [18:22:42.025] | : - seeds: [18:22:42.025] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.027] | : Created future: [18:22:42.027] | : MultisessionFuture: [18:22:42.027] | : Label: 'future_lapply-9' [18:22:42.027] | : Expression: [18:22:42.027] | : { [18:22:42.027] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.027] | : "# expression in do.call(), because function called uses '...' " [18:22:42.027] | : "# as a global variable " [18:22:42.027] | : do.call(function(...) { [18:22:42.027] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.027] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.027] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.027] | : "# anonymous function. " [18:22:42.027] | : "# " [18:22:42.027] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.027] | : "# function environment of FUN() to the calling environment. " [18:22:42.027] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.027] | : "# global environment, which is where globals are written. " [18:22:42.027] | : penv <- env <- environment(...future.FUN) [18:22:42.027] | : repeat { [18:22:42.027] | : if (identical(env, globalenv()) || identical(env, [18:22:42.027] | : emptyenv())) [18:22:42.027] | : break [18:22:42.027] | : penv <- env [18:22:42.027] | : env <- parent.env(env) [18:22:42.027] | : } [18:22:42.027] | : if (identical(penv, globalenv())) { [18:22:42.027] | : environment(...future.FUN) <- environment() [18:22:42.027] | : } [18:22:42.027] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.027] | : !isNamespace(penv)) { [18:22:42.027] | : parent.env(penv) <- environment() [18:22:42.027] | : } [18:22:42.027] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.027] | : { [18:22:42.027] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.027] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.027] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.027] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.027] | : on.exit(options(oopts), add = TRUE) [18:22:42.027] | : } [18:22:42.027] | : { [18:22:42.027] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.027] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.027] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.027] | : { [18:22:42.027] | : ...future.FUN(...future.X_jj, ...) [18:22:42.027] | : } [18:22:42.027] | : }) [18:22:42.027] | : } [18:22:42.027] | : } [18:22:42.027] | : }, args = future.call.arguments) [18:22:42.027] | : } [18:22:42.027] | : Globals: 5 objects totaling 4.92 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) [18:22:42.027] | : Packages: [18:22:42.027] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.027] | : Capture standard output: TRUE [18:22:42.027] | : Capture condition classes: 'condition' (excluding '') [18:22:42.027] | : Immediate condition classes: 'immediateCondition' [18:22:42.027] | : Lazy evaluation: FALSE [18:22:42.027] | : Local evaluation: TRUE [18:22:42.027] | : Early signaling: FALSE [18:22:42.027] | : Actions: [n=1] 'run' [18:22:42.027] | : State: 'running' ("Future is being evaluated") [18:22:42.027] | : Resolved: TRUE [18:22:42.027] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-43 [18:22:42.027] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.027] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.027] | : Value: [18:22:42.027] | : Conditions captured: [18:22:42.032] | : Chunk #9 of 10 ... DONE [18:22:42.032] | : Chunk #10 of 10 ... [18:22:42.032] | : - Finding globals in 'X' for chunk #10 ... [18:22:42.032] | : + additional globals found: [n=0] [18:22:42.033] | : + additional namespaces needed: [n=0] [18:22:42.033] | : - Finding globals in 'X' for chunk #10 ... DONE [18:22:42.033] | : - Adjusted option 'future.globals.maxSize': 2306 -> 10 * 2306 = 23056 (bytes) [18:22:42.033] | : - seeds: [18:22:42.033] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.035] | : Created future: [18:22:42.035] | : MultisessionFuture: [18:22:42.035] | : Label: 'future_lapply-10' [18:22:42.035] | : Expression: [18:22:42.035] | : { [18:22:42.035] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.035] | : "# expression in do.call(), because function called uses '...' " [18:22:42.035] | : "# as a global variable " [18:22:42.035] | : do.call(function(...) { [18:22:42.035] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.035] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.035] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.035] | : "# anonymous function. " [18:22:42.035] | : "# " [18:22:42.035] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.035] | : "# function environment of FUN() to the calling environment. " [18:22:42.035] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.035] | : "# global environment, which is where globals are written. " [18:22:42.035] | : penv <- env <- environment(...future.FUN) [18:22:42.035] | : repeat { [18:22:42.035] | : if (identical(env, globalenv()) || identical(env, [18:22:42.035] | : emptyenv())) [18:22:42.035] | : break [18:22:42.035] | : penv <- env [18:22:42.035] | : env <- parent.env(env) [18:22:42.035] | : } [18:22:42.035] | : if (identical(penv, globalenv())) { [18:22:42.035] | : environment(...future.FUN) <- environment() [18:22:42.035] | : } [18:22:42.035] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.035] | : !isNamespace(penv)) { [18:22:42.035] | : parent.env(penv) <- environment() [18:22:42.035] | : } [18:22:42.035] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.035] | : { [18:22:42.035] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.035] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.035] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.035] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.035] | : on.exit(options(oopts), add = TRUE) [18:22:42.035] | : } [18:22:42.035] | : { [18:22:42.035] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.035] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.035] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.035] | : { [18:22:42.035] | : ...future.FUN(...future.X_jj, ...) [18:22:42.035] | : } [18:22:42.035] | : }) [18:22:42.035] | : } [18:22:42.035] | : } [18:22:42.035] | : }, args = future.call.arguments) [18:22:42.035] | : } [18:22:42.035] | : Globals: 5 objects totaling 4.92 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) [18:22:42.035] | : Packages: [18:22:42.035] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.035] | : Capture standard output: TRUE [18:22:42.035] | : Capture condition classes: 'condition' (excluding '') [18:22:42.035] | : Immediate condition classes: 'immediateCondition' [18:22:42.035] | : Lazy evaluation: FALSE [18:22:42.035] | : Local evaluation: TRUE [18:22:42.035] | : Early signaling: FALSE [18:22:42.035] | : Actions: [n=1] 'run' [18:22:42.035] | : State: 'running' ("Future is being evaluated") [18:22:42.035] | : Resolved: TRUE [18:22:42.035] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-44 [18:22:42.035] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.035] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.035] | : Value: [18:22:42.035] | : Conditions captured: [18:22:42.040] | : Chunk #10 of 10 ... DONE [18:22:42.040] | : Launching 10 futures (chunks) ... DONE [18:22:42.040] | : Resolving 10 futures (chunks) ... [18:22:42.044] | : - Number of value chunks collected: 10 [18:22:42.044] | : Resolving 10 futures (chunks) ... DONE [18:22:42.044] | : Reducing values from 10 chunks ... [18:22:42.044] | : - Number of values collected after concatenation: 10 [18:22:42.044] | : - Number of values expected: 10 [18:22:42.044] | : Reducing values from 10 chunks ... DONE [18:22:42.045] | future_lapply() -> future_xapply() ... done [18:22:42.045] 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 [18:22:42.050] future_lapply() ... [18:22:42.051] | Globals in FUN(): [n=2] '{', 'getOption' [18:22:42.051] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:42.051] | future_lapply() -> future_xapply() ... [18:22:42.052] | : Number of chunks: 5 [18:22:42.052] | : getGlobalsAndPackagesXApply() ... [18:22:42.052] | : . future.globals: TRUE [18:22:42.058] | : . globals found/used: [n=1] 'FUN' [18:22:42.059] | : . needed namespaces: [n=0] [18:22:42.059] | : . use_args: TRUE [18:22:42.059] | : . Getting '...' globals ... [18:22:42.060] | : . ' '...' content: [n=0] [18:22:42.060] | : . ' List of 1 [18:22:42.060] | : . ' $ ...: list() [18:22:42.060] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.060] | : . ' - attr(*, "where")=List of 1 [18:22:42.060] | : . ' ..$ ...: [18:22:42.060] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.060] | : . ' - attr(*, "resolved")= logi TRUE [18:22:42.060] | : . ' - attr(*, "total_size")= num NA [18:22:42.063] | : . Getting '...' globals ... done [18:22:42.063] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:42.063] | : . List of 2 [18:22:42.063] | : . $ ...future.FUN:function (x) [18:22:42.063] | : . $ ... : list() [18:22:42.063] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.063] | : . - attr(*, "where")=List of 2 [18:22:42.063] | : . ..$ ...future.FUN: [18:22:42.063] | : . ..$ ... : [18:22:42.063] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.063] | : . - attr(*, "resolved")= logi FALSE [18:22:42.063] | : . - attr(*, "total_size")= num 4686 [18:22:42.069] | : . Packages to be attached in all futures: [n=0] [18:22:42.070] | : getGlobalsAndPackagesXApply() ... done [18:22:42.070] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.070] | : List of 5 [18:22:42.070] | : $ ...future.FUN :function (x) [18:22:42.070] | : $ ... : list() [18:22:42.070] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.070] | : $ ...future.elements_ii : NULL [18:22:42.070] | : $ ...future.seeds_ii : NULL [18:22:42.070] | : $ ...future.globals.maxSize: NULL [18:22:42.070] | : - attr(*, "where")=List of 5 [18:22:42.070] | : ..$ ...future.FUN : [18:22:42.070] | : ..$ ... : [18:22:42.070] | : ..$ ...future.elements_ii : [18:22:42.070] | : ..$ ...future.seeds_ii : [18:22:42.070] | : ..$ ...future.globals.maxSize: [18:22:42.070] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.070] | : - attr(*, "resolved")= logi FALSE [18:22:42.070] | : - attr(*, "total_size")= num 4686 [18:22:42.075] | : Number of futures (= number of chunks): 5 [18:22:42.075] | : Launching 5 futures (chunks) ... [18:22:42.075] | : Chunk #1 of 5 ... [18:22:42.076] | : - Finding globals in 'X' for chunk #1 ... [18:22:42.076] | : + additional globals found: [n=0] [18:22:42.076] | : + additional namespaces needed: [n=0] [18:22:42.076] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:42.077] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [18:22:42.077] | : - seeds: [18:22:42.077] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.079] | : Created future: [18:22:42.079] | : MultisessionFuture: [18:22:42.079] | : Label: 'future_lapply-1' [18:22:42.079] | : Expression: [18:22:42.079] | : { [18:22:42.079] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.079] | : "# expression in do.call(), because function called uses '...' " [18:22:42.079] | : "# as a global variable " [18:22:42.079] | : do.call(function(...) { [18:22:42.079] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.079] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.079] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.079] | : "# anonymous function. " [18:22:42.079] | : "# " [18:22:42.079] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.079] | : "# function environment of FUN() to the calling environment. " [18:22:42.079] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.079] | : "# global environment, which is where globals are written. " [18:22:42.079] | : penv <- env <- environment(...future.FUN) [18:22:42.079] | : repeat { [18:22:42.079] | : if (identical(env, globalenv()) || identical(env, [18:22:42.079] | : emptyenv())) [18:22:42.079] | : break [18:22:42.079] | : penv <- env [18:22:42.079] | : env <- parent.env(env) [18:22:42.079] | : } [18:22:42.079] | : if (identical(penv, globalenv())) { [18:22:42.079] | : environment(...future.FUN) <- environment() [18:22:42.079] | : } [18:22:42.079] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.079] | : !isNamespace(penv)) { [18:22:42.079] | : parent.env(penv) <- environment() [18:22:42.079] | : } [18:22:42.079] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.079] | : { [18:22:42.079] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.079] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.079] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.079] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.079] | : on.exit(options(oopts), add = TRUE) [18:22:42.079] | : } [18:22:42.079] | : { [18:22:42.079] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.079] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.079] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.079] | : { [18:22:42.079] | : ...future.FUN(...future.X_jj, ...) [18:22:42.079] | : } [18:22:42.079] | : }) [18:22:42.079] | : } [18:22:42.079] | : } [18:22:42.079] | : }, args = future.call.arguments) [18:22:42.079] | : } [18:22:42.079] | : Globals: 5 objects totaling 5.00 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) [18:22:42.079] | : Packages: [18:22:42.079] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.079] | : Capture standard output: TRUE [18:22:42.079] | : Capture condition classes: 'condition' (excluding '') [18:22:42.079] | : Immediate condition classes: 'immediateCondition' [18:22:42.079] | : Lazy evaluation: FALSE [18:22:42.079] | : Local evaluation: TRUE [18:22:42.079] | : Early signaling: FALSE [18:22:42.079] | : Actions: [n=1] 'run' [18:22:42.079] | : State: 'running' ("Future is being evaluated") [18:22:42.079] | : Resolved: TRUE [18:22:42.079] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-45 [18:22:42.079] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.079] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.079] | : Value: [18:22:42.079] | : Conditions captured: [18:22:42.085] | : Chunk #1 of 5 ... DONE [18:22:42.085] | : Chunk #2 of 5 ... [18:22:42.085] | : - Finding globals in 'X' for chunk #2 ... [18:22:42.086] | : + additional globals found: [n=0] [18:22:42.086] | : + additional namespaces needed: [n=0] [18:22:42.086] | : - Finding globals in 'X' for chunk #2 ... DONE [18:22:42.086] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [18:22:42.086] | : - seeds: [18:22:42.087] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.088] | : Created future: [18:22:42.089] | : MultisessionFuture: [18:22:42.089] | : Label: 'future_lapply-2' [18:22:42.089] | : Expression: [18:22:42.089] | : { [18:22:42.089] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.089] | : "# expression in do.call(), because function called uses '...' " [18:22:42.089] | : "# as a global variable " [18:22:42.089] | : do.call(function(...) { [18:22:42.089] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.089] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.089] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.089] | : "# anonymous function. " [18:22:42.089] | : "# " [18:22:42.089] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.089] | : "# function environment of FUN() to the calling environment. " [18:22:42.089] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.089] | : "# global environment, which is where globals are written. " [18:22:42.089] | : penv <- env <- environment(...future.FUN) [18:22:42.089] | : repeat { [18:22:42.089] | : if (identical(env, globalenv()) || identical(env, [18:22:42.089] | : emptyenv())) [18:22:42.089] | : break [18:22:42.089] | : penv <- env [18:22:42.089] | : env <- parent.env(env) [18:22:42.089] | : } [18:22:42.089] | : if (identical(penv, globalenv())) { [18:22:42.089] | : environment(...future.FUN) <- environment() [18:22:42.089] | : } [18:22:42.089] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.089] | : !isNamespace(penv)) { [18:22:42.089] | : parent.env(penv) <- environment() [18:22:42.089] | : } [18:22:42.089] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.089] | : { [18:22:42.089] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.089] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.089] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.089] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.089] | : on.exit(options(oopts), add = TRUE) [18:22:42.089] | : } [18:22:42.089] | : { [18:22:42.089] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.089] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.089] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.089] | : { [18:22:42.089] | : ...future.FUN(...future.X_jj, ...) [18:22:42.089] | : } [18:22:42.089] | : }) [18:22:42.089] | : } [18:22:42.089] | : } [18:22:42.089] | : }, args = future.call.arguments) [18:22:42.089] | : } [18:22:42.089] | : Globals: 5 objects totaling 5.00 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) [18:22:42.089] | : Packages: [18:22:42.089] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.089] | : Capture standard output: TRUE [18:22:42.089] | : Capture condition classes: 'condition' (excluding '') [18:22:42.089] | : Immediate condition classes: 'immediateCondition' [18:22:42.089] | : Lazy evaluation: FALSE [18:22:42.089] | : Local evaluation: TRUE [18:22:42.089] | : Early signaling: FALSE [18:22:42.089] | : Actions: [n=1] 'run' [18:22:42.089] | : State: 'running' ("Future is being evaluated") [18:22:42.089] | : Resolved: TRUE [18:22:42.089] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-46 [18:22:42.089] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.089] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.089] | : Value: [18:22:42.089] | : Conditions captured: [18:22:42.093] | : Chunk #2 of 5 ... DONE [18:22:42.093] | : Chunk #3 of 5 ... [18:22:42.093] | : - Finding globals in 'X' for chunk #3 ... [18:22:42.094] | : + additional globals found: [n=0] [18:22:42.094] | : + additional namespaces needed: [n=0] [18:22:42.094] | : - Finding globals in 'X' for chunk #3 ... DONE [18:22:42.094] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [18:22:42.095] | : - seeds: [18:22:42.095] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.097] | : Created future: [18:22:42.097] | : MultisessionFuture: [18:22:42.097] | : Label: 'future_lapply-3' [18:22:42.097] | : Expression: [18:22:42.097] | : { [18:22:42.097] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.097] | : "# expression in do.call(), because function called uses '...' " [18:22:42.097] | : "# as a global variable " [18:22:42.097] | : do.call(function(...) { [18:22:42.097] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.097] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.097] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.097] | : "# anonymous function. " [18:22:42.097] | : "# " [18:22:42.097] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.097] | : "# function environment of FUN() to the calling environment. " [18:22:42.097] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.097] | : "# global environment, which is where globals are written. " [18:22:42.097] | : penv <- env <- environment(...future.FUN) [18:22:42.097] | : repeat { [18:22:42.097] | : if (identical(env, globalenv()) || identical(env, [18:22:42.097] | : emptyenv())) [18:22:42.097] | : break [18:22:42.097] | : penv <- env [18:22:42.097] | : env <- parent.env(env) [18:22:42.097] | : } [18:22:42.097] | : if (identical(penv, globalenv())) { [18:22:42.097] | : environment(...future.FUN) <- environment() [18:22:42.097] | : } [18:22:42.097] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.097] | : !isNamespace(penv)) { [18:22:42.097] | : parent.env(penv) <- environment() [18:22:42.097] | : } [18:22:42.097] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.097] | : { [18:22:42.097] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.097] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.097] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.097] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.097] | : on.exit(options(oopts), add = TRUE) [18:22:42.097] | : } [18:22:42.097] | : { [18:22:42.097] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.097] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.097] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.097] | : { [18:22:42.097] | : ...future.FUN(...future.X_jj, ...) [18:22:42.097] | : } [18:22:42.097] | : }) [18:22:42.097] | : } [18:22:42.097] | : } [18:22:42.097] | : }, args = future.call.arguments) [18:22:42.097] | : } [18:22:42.097] | : Globals: 5 objects totaling 5.00 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) [18:22:42.097] | : Packages: [18:22:42.097] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.097] | : Capture standard output: TRUE [18:22:42.097] | : Capture condition classes: 'condition' (excluding '') [18:22:42.097] | : Immediate condition classes: 'immediateCondition' [18:22:42.097] | : Lazy evaluation: FALSE [18:22:42.097] | : Local evaluation: TRUE [18:22:42.097] | : Early signaling: FALSE [18:22:42.097] | : Actions: [n=1] 'run' [18:22:42.097] | : State: 'running' ("Future is being evaluated") [18:22:42.097] | : Resolved: TRUE [18:22:42.097] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-47 [18:22:42.097] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.097] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.097] | : Value: [18:22:42.097] | : Conditions captured: [18:22:42.101] | : Chunk #3 of 5 ... DONE [18:22:42.101] | : Chunk #4 of 5 ... [18:22:42.101] | : - Finding globals in 'X' for chunk #4 ... [18:22:42.102] | : + additional globals found: [n=0] [18:22:42.102] | : + additional namespaces needed: [n=0] [18:22:42.102] | : - Finding globals in 'X' for chunk #4 ... DONE [18:22:42.102] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [18:22:42.103] | : - seeds: [18:22:42.103] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.105] | : Created future: [18:22:42.105] | : MultisessionFuture: [18:22:42.105] | : Label: 'future_lapply-4' [18:22:42.105] | : Expression: [18:22:42.105] | : { [18:22:42.105] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.105] | : "# expression in do.call(), because function called uses '...' " [18:22:42.105] | : "# as a global variable " [18:22:42.105] | : do.call(function(...) { [18:22:42.105] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.105] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.105] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.105] | : "# anonymous function. " [18:22:42.105] | : "# " [18:22:42.105] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.105] | : "# function environment of FUN() to the calling environment. " [18:22:42.105] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.105] | : "# global environment, which is where globals are written. " [18:22:42.105] | : penv <- env <- environment(...future.FUN) [18:22:42.105] | : repeat { [18:22:42.105] | : if (identical(env, globalenv()) || identical(env, [18:22:42.105] | : emptyenv())) [18:22:42.105] | : break [18:22:42.105] | : penv <- env [18:22:42.105] | : env <- parent.env(env) [18:22:42.105] | : } [18:22:42.105] | : if (identical(penv, globalenv())) { [18:22:42.105] | : environment(...future.FUN) <- environment() [18:22:42.105] | : } [18:22:42.105] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.105] | : !isNamespace(penv)) { [18:22:42.105] | : parent.env(penv) <- environment() [18:22:42.105] | : } [18:22:42.105] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.105] | : { [18:22:42.105] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.105] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.105] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.105] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.105] | : on.exit(options(oopts), add = TRUE) [18:22:42.105] | : } [18:22:42.105] | : { [18:22:42.105] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.105] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.105] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.105] | : { [18:22:42.105] | : ...future.FUN(...future.X_jj, ...) [18:22:42.105] | : } [18:22:42.105] | : }) [18:22:42.105] | : } [18:22:42.105] | : } [18:22:42.105] | : }, args = future.call.arguments) [18:22:42.105] | : } [18:22:42.105] | : Globals: 5 objects totaling 5.00 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) [18:22:42.105] | : Packages: [18:22:42.105] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.105] | : Capture standard output: TRUE [18:22:42.105] | : Capture condition classes: 'condition' (excluding '') [18:22:42.105] | : Immediate condition classes: 'immediateCondition' [18:22:42.105] | : Lazy evaluation: FALSE [18:22:42.105] | : Local evaluation: TRUE [18:22:42.105] | : Early signaling: FALSE [18:22:42.105] | : Actions: [n=1] 'run' [18:22:42.105] | : State: 'running' ("Future is being evaluated") [18:22:42.105] | : Resolved: TRUE [18:22:42.105] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-48 [18:22:42.105] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.105] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.105] | : Value: [18:22:42.105] | : Conditions captured: [18:22:42.109] | : Chunk #4 of 5 ... DONE [18:22:42.110] | : Chunk #5 of 5 ... [18:22:42.110] | : - Finding globals in 'X' for chunk #5 ... [18:22:42.110] | : + additional globals found: [n=0] [18:22:42.111] | : + additional namespaces needed: [n=0] [18:22:42.111] | : - Finding globals in 'X' for chunk #5 ... DONE [18:22:42.111] | : - Adjusted option 'future.globals.maxSize': 2306 -> 5 * 2306 = 11528 (bytes) [18:22:42.111] | : - seeds: [18:22:42.111] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.113] | : Created future: [18:22:42.113] | : MultisessionFuture: [18:22:42.113] | : Label: 'future_lapply-5' [18:22:42.113] | : Expression: [18:22:42.113] | : { [18:22:42.113] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.113] | : "# expression in do.call(), because function called uses '...' " [18:22:42.113] | : "# as a global variable " [18:22:42.113] | : do.call(function(...) { [18:22:42.113] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.113] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.113] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.113] | : "# anonymous function. " [18:22:42.113] | : "# " [18:22:42.113] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.113] | : "# function environment of FUN() to the calling environment. " [18:22:42.113] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.113] | : "# global environment, which is where globals are written. " [18:22:42.113] | : penv <- env <- environment(...future.FUN) [18:22:42.113] | : repeat { [18:22:42.113] | : if (identical(env, globalenv()) || identical(env, [18:22:42.113] | : emptyenv())) [18:22:42.113] | : break [18:22:42.113] | : penv <- env [18:22:42.113] | : env <- parent.env(env) [18:22:42.113] | : } [18:22:42.113] | : if (identical(penv, globalenv())) { [18:22:42.113] | : environment(...future.FUN) <- environment() [18:22:42.113] | : } [18:22:42.113] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.113] | : !isNamespace(penv)) { [18:22:42.113] | : parent.env(penv) <- environment() [18:22:42.113] | : } [18:22:42.113] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.113] | : { [18:22:42.113] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.113] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.113] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.113] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.113] | : on.exit(options(oopts), add = TRUE) [18:22:42.113] | : } [18:22:42.113] | : { [18:22:42.113] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.113] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.113] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.113] | : { [18:22:42.113] | : ...future.FUN(...future.X_jj, ...) [18:22:42.113] | : } [18:22:42.113] | : }) [18:22:42.113] | : } [18:22:42.113] | : } [18:22:42.113] | : }, args = future.call.arguments) [18:22:42.113] | : } [18:22:42.113] | : Globals: 5 objects totaling 5.00 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) [18:22:42.113] | : Packages: [18:22:42.113] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.113] | : Capture standard output: TRUE [18:22:42.113] | : Capture condition classes: 'condition' (excluding '') [18:22:42.113] | : Immediate condition classes: 'immediateCondition' [18:22:42.113] | : Lazy evaluation: FALSE [18:22:42.113] | : Local evaluation: TRUE [18:22:42.113] | : Early signaling: FALSE [18:22:42.113] | : Actions: [n=1] 'run' [18:22:42.113] | : State: 'running' ("Future is being evaluated") [18:22:42.113] | : Resolved: TRUE [18:22:42.113] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-49 [18:22:42.113] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.113] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.113] | : Value: [18:22:42.113] | : Conditions captured: [18:22:42.118] | : Chunk #5 of 5 ... DONE [18:22:42.118] | : Launching 5 futures (chunks) ... DONE [18:22:42.118] | : Resolving 5 futures (chunks) ... [18:22:42.120] | : - Number of value chunks collected: 5 [18:22:42.120] | : Resolving 5 futures (chunks) ... DONE [18:22:42.120] | : Reducing values from 5 chunks ... [18:22:42.120] | : - Number of values collected after concatenation: 10 [18:22:42.121] | : - Number of values expected: 10 [18:22:42.121] | : Reducing values from 5 chunks ... DONE [18:22:42.121] | future_lapply() -> future_xapply() ... done [18:22:42.121] 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 [18:22:42.126] future_lapply() ... [18:22:42.127] | Globals in FUN(): [n=2] '{', 'getOption' [18:22:42.127] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:42.127] | future_lapply() -> future_xapply() ... [18:22:42.128] | : Number of chunks: 2 [18:22:42.128] | : getGlobalsAndPackagesXApply() ... [18:22:42.128] | : . future.globals: TRUE [18:22:42.134] | : . globals found/used: [n=1] 'FUN' [18:22:42.135] | : . needed namespaces: [n=0] [18:22:42.135] | : . use_args: TRUE [18:22:42.135] | : . Getting '...' globals ... [18:22:42.136] | : . ' '...' content: [n=0] [18:22:42.136] | : . ' List of 1 [18:22:42.136] | : . ' $ ...: list() [18:22:42.136] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.136] | : . ' - attr(*, "where")=List of 1 [18:22:42.136] | : . ' ..$ ...: [18:22:42.136] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.136] | : . ' - attr(*, "resolved")= logi TRUE [18:22:42.136] | : . ' - attr(*, "total_size")= num NA [18:22:42.139] | : . Getting '...' globals ... done [18:22:42.139] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:42.139] | : . List of 2 [18:22:42.139] | : . $ ...future.FUN:function (x) [18:22:42.139] | : . $ ... : list() [18:22:42.139] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.139] | : . - attr(*, "where")=List of 2 [18:22:42.139] | : . ..$ ...future.FUN: [18:22:42.139] | : . ..$ ... : [18:22:42.139] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.139] | : . - attr(*, "resolved")= logi FALSE [18:22:42.139] | : . - attr(*, "total_size")= num 4686 [18:22:42.143] | : . Packages to be attached in all futures: [n=0] [18:22:42.143] | : getGlobalsAndPackagesXApply() ... done [18:22:42.143] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.143] | : List of 5 [18:22:42.143] | : $ ...future.FUN :function (x) [18:22:42.143] | : $ ... : list() [18:22:42.143] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.143] | : $ ...future.elements_ii : NULL [18:22:42.143] | : $ ...future.seeds_ii : NULL [18:22:42.143] | : $ ...future.globals.maxSize: NULL [18:22:42.143] | : - attr(*, "where")=List of 5 [18:22:42.143] | : ..$ ...future.FUN : [18:22:42.143] | : ..$ ... : [18:22:42.143] | : ..$ ...future.elements_ii : [18:22:42.143] | : ..$ ...future.seeds_ii : [18:22:42.143] | : ..$ ...future.globals.maxSize: [18:22:42.143] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.143] | : - attr(*, "resolved")= logi FALSE [18:22:42.143] | : - attr(*, "total_size")= num 4686 [18:22:42.148] | : Number of futures (= number of chunks): 2 [18:22:42.149] | : Launching 2 futures (chunks) ... [18:22:42.149] | : Chunk #1 of 2 ... [18:22:42.149] | : - Finding globals in 'X' for chunk #1 ... [18:22:42.150] | : + additional globals found: [n=0] [18:22:42.150] | : + additional namespaces needed: [n=0] [18:22:42.150] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:42.150] | : - Adjusted option 'future.globals.maxSize': 2306 -> 2 * 2306 = 4611 (bytes) [18:22:42.150] | : - seeds: [18:22:42.153] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.155] | : Created future: [18:22:42.155] | : MultisessionFuture: [18:22:42.155] | : Label: 'future_lapply-1' [18:22:42.155] | : Expression: [18:22:42.155] | : { [18:22:42.155] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.155] | : "# expression in do.call(), because function called uses '...' " [18:22:42.155] | : "# as a global variable " [18:22:42.155] | : do.call(function(...) { [18:22:42.155] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.155] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.155] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.155] | : "# anonymous function. " [18:22:42.155] | : "# " [18:22:42.155] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.155] | : "# function environment of FUN() to the calling environment. " [18:22:42.155] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.155] | : "# global environment, which is where globals are written. " [18:22:42.155] | : penv <- env <- environment(...future.FUN) [18:22:42.155] | : repeat { [18:22:42.155] | : if (identical(env, globalenv()) || identical(env, [18:22:42.155] | : emptyenv())) [18:22:42.155] | : break [18:22:42.155] | : penv <- env [18:22:42.155] | : env <- parent.env(env) [18:22:42.155] | : } [18:22:42.155] | : if (identical(penv, globalenv())) { [18:22:42.155] | : environment(...future.FUN) <- environment() [18:22:42.155] | : } [18:22:42.155] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.155] | : !isNamespace(penv)) { [18:22:42.155] | : parent.env(penv) <- environment() [18:22:42.155] | : } [18:22:42.155] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.155] | : { [18:22:42.155] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.155] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.155] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.155] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.155] | : on.exit(options(oopts), add = TRUE) [18:22:42.155] | : } [18:22:42.155] | : { [18:22:42.155] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.155] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.155] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.155] | : { [18:22:42.155] | : ...future.FUN(...future.X_jj, ...) [18:22:42.155] | : } [18:22:42.155] | : }) [18:22:42.155] | : } [18:22:42.155] | : } [18:22:42.155] | : }, args = future.call.arguments) [18:22:42.155] | : } [18:22:42.155] | : Globals: 5 objects totaling 5.22 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) [18:22:42.155] | : Packages: [18:22:42.155] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.155] | : Capture standard output: TRUE [18:22:42.155] | : Capture condition classes: 'condition' (excluding '') [18:22:42.155] | : Immediate condition classes: 'immediateCondition' [18:22:42.155] | : Lazy evaluation: FALSE [18:22:42.155] | : Local evaluation: TRUE [18:22:42.155] | : Early signaling: FALSE [18:22:42.155] | : Actions: [n=1] 'run' [18:22:42.155] | : State: 'running' ("Future is being evaluated") [18:22:42.155] | : Resolved: TRUE [18:22:42.155] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-50 [18:22:42.155] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.155] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.155] | : Value: [18:22:42.155] | : Conditions captured: [18:22:42.159] | : Chunk #1 of 2 ... DONE [18:22:42.160] | : Chunk #2 of 2 ... [18:22:42.160] | : - Finding globals in 'X' for chunk #2 ... [18:22:42.160] | : + additional globals found: [n=0] [18:22:42.160] | : + additional namespaces needed: [n=0] [18:22:42.161] | : - Finding globals in 'X' for chunk #2 ... DONE [18:22:42.161] | : - Adjusted option 'future.globals.maxSize': 2306 -> 2 * 2306 = 4611 (bytes) [18:22:42.161] | : - seeds: [18:22:42.161] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.163] | : Created future: [18:22:42.163] | : MultisessionFuture: [18:22:42.163] | : Label: 'future_lapply-2' [18:22:42.163] | : Expression: [18:22:42.163] | : { [18:22:42.163] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.163] | : "# expression in do.call(), because function called uses '...' " [18:22:42.163] | : "# as a global variable " [18:22:42.163] | : do.call(function(...) { [18:22:42.163] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.163] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.163] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.163] | : "# anonymous function. " [18:22:42.163] | : "# " [18:22:42.163] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.163] | : "# function environment of FUN() to the calling environment. " [18:22:42.163] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.163] | : "# global environment, which is where globals are written. " [18:22:42.163] | : penv <- env <- environment(...future.FUN) [18:22:42.163] | : repeat { [18:22:42.163] | : if (identical(env, globalenv()) || identical(env, [18:22:42.163] | : emptyenv())) [18:22:42.163] | : break [18:22:42.163] | : penv <- env [18:22:42.163] | : env <- parent.env(env) [18:22:42.163] | : } [18:22:42.163] | : if (identical(penv, globalenv())) { [18:22:42.163] | : environment(...future.FUN) <- environment() [18:22:42.163] | : } [18:22:42.163] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.163] | : !isNamespace(penv)) { [18:22:42.163] | : parent.env(penv) <- environment() [18:22:42.163] | : } [18:22:42.163] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.163] | : { [18:22:42.163] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.163] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.163] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.163] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.163] | : on.exit(options(oopts), add = TRUE) [18:22:42.163] | : } [18:22:42.163] | : { [18:22:42.163] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.163] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.163] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.163] | : { [18:22:42.163] | : ...future.FUN(...future.X_jj, ...) [18:22:42.163] | : } [18:22:42.163] | : }) [18:22:42.163] | : } [18:22:42.163] | : } [18:22:42.163] | : }, args = future.call.arguments) [18:22:42.163] | : } [18:22:42.163] | : Globals: 5 objects totaling 5.22 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) [18:22:42.163] | : Packages: [18:22:42.163] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.163] | : Capture standard output: TRUE [18:22:42.163] | : Capture condition classes: 'condition' (excluding '') [18:22:42.163] | : Immediate condition classes: 'immediateCondition' [18:22:42.163] | : Lazy evaluation: FALSE [18:22:42.163] | : Local evaluation: TRUE [18:22:42.163] | : Early signaling: FALSE [18:22:42.163] | : Actions: [n=1] 'run' [18:22:42.163] | : State: 'running' ("Future is being evaluated") [18:22:42.163] | : Resolved: TRUE [18:22:42.163] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-51 [18:22:42.163] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.163] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.163] | : Value: [18:22:42.163] | : Conditions captured: [18:22:42.169] | : Chunk #2 of 2 ... DONE [18:22:42.169] | : Launching 2 futures (chunks) ... DONE [18:22:42.169] | : Resolving 2 futures (chunks) ... [18:22:42.170] | : - Number of value chunks collected: 2 [18:22:42.170] | : Resolving 2 futures (chunks) ... DONE [18:22:42.171] | : Reducing values from 2 chunks ... [18:22:42.171] | : - Number of values collected after concatenation: 10 [18:22:42.171] | : - Number of values expected: 10 [18:22:42.171] | : Reducing values from 2 chunks ... DONE [18:22:42.171] | future_lapply() -> future_xapply() ... done [18:22:42.172] 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 [18:22:42.176] future_lapply() ... [18:22:42.177] | Globals in FUN(): [n=2] '{', 'getOption' [18:22:42.177] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:42.178] | future_lapply() -> future_xapply() ... [18:22:42.178] | : Number of chunks: 1 [18:22:42.178] | : getGlobalsAndPackagesXApply() ... [18:22:42.178] | : . future.globals: TRUE [18:22:42.184] | : . globals found/used: [n=1] 'FUN' [18:22:42.185] | : . needed namespaces: [n=0] [18:22:42.185] | : . use_args: TRUE [18:22:42.185] | : . Getting '...' globals ... [18:22:42.186] | : . ' '...' content: [n=0] [18:22:42.186] | : . ' List of 1 [18:22:42.186] | : . ' $ ...: list() [18:22:42.186] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.186] | : . ' - attr(*, "where")=List of 1 [18:22:42.186] | : . ' ..$ ...: [18:22:42.186] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.186] | : . ' - attr(*, "resolved")= logi TRUE [18:22:42.186] | : . ' - attr(*, "total_size")= num NA [18:22:42.189] | : . Getting '...' globals ... done [18:22:42.189] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:42.189] | : . List of 2 [18:22:42.189] | : . $ ...future.FUN:function (x) [18:22:42.189] | : . $ ... : list() [18:22:42.189] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.189] | : . - attr(*, "where")=List of 2 [18:22:42.189] | : . ..$ ...future.FUN: [18:22:42.189] | : . ..$ ... : [18:22:42.189] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.189] | : . - attr(*, "resolved")= logi FALSE [18:22:42.189] | : . - attr(*, "total_size")= num 4686 [18:22:42.193] | : . Packages to be attached in all futures: [n=0] [18:22:42.193] | : getGlobalsAndPackagesXApply() ... done [18:22:42.193] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.193] | : List of 5 [18:22:42.193] | : $ ...future.FUN :function (x) [18:22:42.193] | : $ ... : list() [18:22:42.193] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.193] | : $ ...future.elements_ii : NULL [18:22:42.193] | : $ ...future.seeds_ii : NULL [18:22:42.193] | : $ ...future.globals.maxSize: NULL [18:22:42.193] | : - attr(*, "where")=List of 5 [18:22:42.193] | : ..$ ...future.FUN : [18:22:42.193] | : ..$ ... : [18:22:42.193] | : ..$ ...future.elements_ii : [18:22:42.193] | : ..$ ...future.seeds_ii : [18:22:42.193] | : ..$ ...future.globals.maxSize: [18:22:42.193] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.193] | : - attr(*, "resolved")= logi FALSE [18:22:42.193] | : - attr(*, "total_size")= num 4686 [18:22:42.198] | : Number of futures (= number of chunks): 1 [18:22:42.199] | : Launching 1 futures (chunks) ... [18:22:42.199] | : Chunk #1 of 1 ... [18:22:42.199] | : - Finding globals in 'X' for chunk #1 ... [18:22:42.199] | : + additional globals found: [n=0] [18:22:42.200] | : + additional namespaces needed: [n=0] [18:22:42.200] | : - Finding globals in 'X' for chunk #1 ... DONE [18:22:42.200] | : - seeds: [18:22:42.200] | : - All globals exported: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.202] | : Created future: [18:22:42.202] | : MultisessionFuture: [18:22:42.202] | : Label: 'future_lapply-1' [18:22:42.202] | : Expression: [18:22:42.202] | : { [18:22:42.202] | : "# future::getGlobalsAndPackages(): wrapping the original future" [18:22:42.202] | : "# expression in do.call(), because function called uses '...' " [18:22:42.202] | : "# as a global variable " [18:22:42.202] | : do.call(function(...) { [18:22:42.202] | : "# future::getGlobalsAndPackages(): FUN() uses '...' internally " [18:22:42.202] | : "# without having an '...' argument. This means '...' is treated" [18:22:42.202] | : "# as a global variable. This may happen when FUN() is an " [18:22:42.202] | : "# anonymous function. " [18:22:42.202] | : "# " [18:22:42.202] | : "# If an anonymous function, we will make sure to restore the " [18:22:42.202] | : "# function environment of FUN() to the calling environment. " [18:22:42.202] | : "# We assume FUN() an anonymous function if it lives in the " [18:22:42.202] | : "# global environment, which is where globals are written. " [18:22:42.202] | : penv <- env <- environment(...future.FUN) [18:22:42.202] | : repeat { [18:22:42.202] | : if (identical(env, globalenv()) || identical(env, [18:22:42.202] | : emptyenv())) [18:22:42.202] | : break [18:22:42.202] | : penv <- env [18:22:42.202] | : env <- parent.env(env) [18:22:42.202] | : } [18:22:42.202] | : if (identical(penv, globalenv())) { [18:22:42.202] | : environment(...future.FUN) <- environment() [18:22:42.202] | : } [18:22:42.202] | : else if (!identical(penv, emptyenv()) && !is.null(penv) && [18:22:42.202] | : !isNamespace(penv)) { [18:22:42.202] | : parent.env(penv) <- environment() [18:22:42.202] | : } [18:22:42.202] | : rm(list = c("env", "penv"), inherits = FALSE) [18:22:42.202] | : { [18:22:42.202] | : "# future.apply:::future_xapply(): preserve future option" [18:22:42.202] | : ...future.globals.maxSize.org <- getOption("future.globals.maxSize") [18:22:42.202] | : if (!identical(...future.globals.maxSize.org, ...future.globals.maxSize)) { [18:22:42.202] | : oopts <- options(future.globals.maxSize = ...future.globals.maxSize) [18:22:42.202] | : on.exit(options(oopts), add = TRUE) [18:22:42.202] | : } [18:22:42.202] | : { [18:22:42.202] | : "# future.apply::future_lapply(): process chunk of elements" [18:22:42.202] | : lapply(seq_along(...future.elements_ii), FUN = function(jj) { [18:22:42.202] | : ...future.X_jj <- ...future.elements_ii[[jj]] [18:22:42.202] | : { [18:22:42.202] | : ...future.FUN(...future.X_jj, ...) [18:22:42.202] | : } [18:22:42.202] | : }) [18:22:42.202] | : } [18:22:42.202] | : } [18:22:42.202] | : }, args = future.call.arguments) [18:22:42.202] | : } [18:22:42.202] | : Globals: 5 objects totaling 5.59 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) [18:22:42.202] | : Packages: [18:22:42.202] | : L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:22:42.202] | : Capture standard output: TRUE [18:22:42.202] | : Capture condition classes: 'condition' (excluding '') [18:22:42.202] | : Immediate condition classes: 'immediateCondition' [18:22:42.202] | : Lazy evaluation: FALSE [18:22:42.202] | : Local evaluation: TRUE [18:22:42.202] | : Early signaling: FALSE [18:22:42.202] | : Actions: [n=1] 'run' [18:22:42.202] | : State: 'running' ("Future is being evaluated") [18:22:42.202] | : Resolved: TRUE [18:22:42.202] | : Unique identifier: 0b6d9492f6abdc296cd2504bc9015795-52 [18:22:42.202] | : Owner process: 0b6d9492f6abdc296cd2504bc9015795 [18:22:42.202] | : Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [18:22:42.202] | : Value: [18:22:42.202] | : Conditions captured: [18:22:42.207] | : Chunk #1 of 1 ... DONE [18:22:42.207] | : Launching 1 futures (chunks) ... DONE [18:22:42.207] | : Resolving 1 futures (chunks) ... [18:22:42.208] | : - Number of value chunks collected: 1 [18:22:42.208] | : Resolving 1 futures (chunks) ... DONE [18:22:42.208] | : Reducing values from 1 chunks ... [18:22:42.208] | : - Number of values collected after concatenation: 10 [18:22:42.208] | : - Number of values expected: 10 [18:22:42.208] | : Reducing values from 1 chunks ... DONE [18:22:42.209] | future_lapply() -> future_xapply() ... done [18:22:42.209] 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 <- futurize(lapply(1, FUN = function(x) x), globals = 42) + }, error = identity) [18:22:42.214] future_lapply() ... [18:22:42.215] | Globals in FUN(): [n=0] [18:22:42.215] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:42.215] | future_lapply() -> future_xapply() ... [18:22:42.216] | : Number of chunks: 1 [18:22:42.216] | : getGlobalsAndPackagesXApply() ... [18:22:42.216] | : getGlobalsAndPackagesXApply() ... done [18:22:42.216] | future_lapply() -> future_xapply() ... done [18:22:42.216] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- tryCatch({ + y <- futurize(lapply(1, FUN = function(x) x), globals = list(1)) + }, error = identity) [18:22:42.217] future_lapply() ... [18:22:42.218] | Globals in FUN(): [n=0] [18:22:42.218] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:42.218] | future_lapply() -> future_xapply() ... [18:22:42.218] | : Number of chunks: 1 [18:22:42.219] | : getGlobalsAndPackagesXApply() ... [18:22:42.219] | : . future.globals: with names [18:22:42.219] | : getGlobalsAndPackagesXApply() ... done [18:22:42.219] | future_lapply() -> future_xapply() ... done [18:22:42.219] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- tryCatch({ + y <- futurize(lapply(1, FUN = function(x) x), globals = "...future.FUN") + }, error = identity) [18:22:42.220] future_lapply() ... [18:22:42.221] | Globals in FUN(): [n=0] [18:22:42.221] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:42.221] | future_lapply() -> future_xapply() ... [18:22:42.221] | : Number of chunks: 1 [18:22:42.221] | : getGlobalsAndPackagesXApply() ... [18:22:42.222] | : . future.globals: '...future.FUN' [18:22:42.222] | : . use_args: TRUE [18:22:42.222] | : getGlobalsAndPackagesXApply() ... done [18:22:42.222] | future_lapply() -> future_xapply() ... done [18:22:42.223] future_lapply() ... done > stopifnot(inherits(res, "error")) > res <- tryCatch({ + y <- futurize(lapply(1, FUN = function(x) x), globals = "...future.FUN") + }, error = identity) [18:22:42.223] future_lapply() ... [18:22:42.224] | Globals in FUN(): [n=0] [18:22:42.224] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:42.224] | future_lapply() -> future_xapply() ... [18:22:42.225] | : Number of chunks: 1 [18:22:42.225] | : getGlobalsAndPackagesXApply() ... [18:22:42.225] | : . future.globals: '...future.FUN' [18:22:42.225] | : . use_args: TRUE [18:22:42.226] | : getGlobalsAndPackagesXApply() ... done [18:22:42.226] | future_lapply() -> future_xapply() ... done [18:22:42.226] future_lapply() ... done > stopifnot(inherits(res, "error")) > ...future.elements_ii <- 42 > X <- list(function() 2 * ...future.elements_ii) > res <- tryCatch({ + y <- futurize(lapply(X, FUN = function(f) f())) + }, error = identity) [18:22:42.227] future_lapply() ... [18:22:42.227] | Globals in FUN(): [n=0] [18:22:42.227] | => Will pass '...' to FUN(): '{', ' ...future.FUN(...future.X_jj, ...)', '}' [18:22:42.228] | future_lapply() -> future_xapply() ... [18:22:42.228] | : Number of chunks: 1 [18:22:42.228] | : getGlobalsAndPackagesXApply() ... [18:22:42.228] | : . future.globals: TRUE [18:22:42.235] | : . globals found/used: [n=1] 'FUN' [18:22:42.235] | : . needed namespaces: [n=0] [18:22:42.235] | : . use_args: TRUE [18:22:42.235] | : . Getting '...' globals ... [18:22:42.236] | : . ' '...' content: [n=0] [18:22:42.236] | : . ' List of 1 [18:22:42.236] | : . ' $ ...: list() [18:22:42.236] | : . ' ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.236] | : . ' - attr(*, "where")=List of 1 [18:22:42.236] | : . ' ..$ ...: [18:22:42.236] | : . ' - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.236] | : . ' - attr(*, "resolved")= logi TRUE [18:22:42.236] | : . ' - attr(*, "total_size")= num NA [18:22:42.239] | : . Getting '...' globals ... done [18:22:42.239] | : . Globals to be used in all futures (chunks): [n=2] '...future.FUN', '...' [18:22:42.239] | : . List of 2 [18:22:42.239] | : . $ ...future.FUN:function (f) [18:22:42.239] | : . $ ... : list() [18:22:42.239] | : . ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.239] | : . - attr(*, "where")=List of 2 [18:22:42.239] | : . ..$ ...future.FUN: [18:22:42.239] | : . ..$ ... : [18:22:42.239] | : . - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.239] | : . - attr(*, "resolved")= logi FALSE [18:22:42.239] | : . - attr(*, "total_size")= num 3255 [18:22:42.243] | : . Packages to be attached in all futures: [n=0] [18:22:42.243] | : getGlobalsAndPackagesXApply() ... done [18:22:42.243] | : Globals pass to each chunk: [n=5] '...future.FUN', '...', '...future.elements_ii', '...future.seeds_ii', '...future.globals.maxSize' [18:22:42.243] | : List of 5 [18:22:42.243] | : $ ...future.FUN :function (f) [18:22:42.243] | : $ ... : list() [18:22:42.243] | : ..- attr(*, "class")= chr [1:2] "DotDotDotList" "list" [18:22:42.243] | : $ ...future.elements_ii : NULL [18:22:42.243] | : $ ...future.seeds_ii : NULL [18:22:42.243] | : $ ...future.globals.maxSize: NULL [18:22:42.243] | : - attr(*, "where")=List of 5 [18:22:42.243] | : ..$ ...future.FUN : [18:22:42.243] | : ..$ ... : [18:22:42.243] | : ..$ ...future.elements_ii : [18:22:42.243] | : ..$ ...future.seeds_ii : [18:22:42.243] | : ..$ ...future.globals.maxSize: [18:22:42.243] | : - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:22:42.243] | : - attr(*, "resolved")= logi FALSE [18:22:42.243] | : - attr(*, "total_size")= num 3255 [18:22:42.248] | : Number of futures (= number of chunks): 1 [18:22:42.249] | : Launching 1 futures (chunks) ... [18:22:42.249] | : Chunk #1 of 1 ... [18:22:42.249] | : - Finding globals in 'X' for chunk #1 ... [18:22:42.256] | : + additional globals found: [n=1] '...future.elements_ii' [18:22:42.256] | : + additional namespaces needed: [n=0] [18:22:42.256] | : onError() ... [18:22:42.257] | : . Received Warning: Caught simpleError. Canceling all iterations ... [18:22:42.257] | : . Signaling: [18:22:42.257] | : onError() ... done [18:22:42.258] | future_lapply() -> future_xapply() ... done [18:22:42.258] future_lapply() ... done > if (!"covr" %in% loadedNamespaces()) { + stopifnot(inherits(res, "error")) + } > message("*** future_lapply() - globals exceptions ... DONE") *** future_lapply() - globals exceptions ... DONE Failed to undo environment variables: - Expected environment variables: [n=217] '!ExitCode', 'ALLUSERSPROFILE', 'APPDATA', 'BIBINPUTS', 'BINDIR', 'BSTINPUTS', 'COMMONPROGRAMFILES', 'COMPUTERNAME', 'COMSPEC', 'CURL_CA_BUNDLE', 'CV_Instance001', 'CYGWIN', 'CommonProgramFiles(x86)', 'CommonProgramW6432', 'DriverData', 'HOME', 'HOMEDRIVE', 'HOMEPATH', 'JAGS_ROOT', 'JAVA_HOME', 'LANGUAGE', 'LC_COLLATE', 'LC_MONETARY', 'LC_TIME', 'LOCALAPPDATA', 'LOGONSERVER', 'LS_HOME', 'LS_LICENSE_PATH', 'MAKE', 'MAKEFLAGS', 'MAKELEVEL', 'MFLAGS', 'MSMPI_BENCHMARKS', 'MSMPI_BIN', 'MSYS2_ENV_CONV_EXCL', 'NUMBER_OF_PROCESSORS', 'OCL', 'OMP_THREAD_LIMIT', 'OS', 'PATH', 'PATHEXT', 'PROCESSOR_ARCHITECTURE', 'PROCESSOR_IDENTIFIER', 'PROCESSOR_LEVEL', 'PROCESSOR_REVISION', 'PROGRAMFILES', 'PROMPT', 'PSModulePath', 'PUBLIC', 'PWD', 'ProgramData', 'ProgramFiles(x86)', 'ProgramW6432', 'RTOOLS44_HOME', 'RTOOLS45_HOME', 'R_ARCH', 'R_BROWSER', 'R_BZIPCMD', 'R_CMD', 'R_COMPILED_BY', 'R_CRAN_WEB', 'R_CUSTOM_TOOLS_PATH', 'R_CUSTOM_TOOLS_SOFT', 'R_DOC_DIR', 'R_ENVIRON_USER', 'R_GSCMD', 'R_GZIPCMD', 'R_HOME', 'R_INCLUDE_DIR', 'R_INSTALL_TAR', 'R_LIBS', 'R_LIBS_SITE', 'R_LIBS_USER', 'R_MAX_NUM_DLLS', 'R_OSTYPE', 'R_PAPERSIZE', 'R_PAPERSIZE_USER', 'R_PARALLELLY_MAKENODEPSOCK_AUTOKILL', 'R_PARALLELLY_MAKENODEPSOCK_CONNECTTIMEOUT', 'R_PARALLELLY_MAKENODEPSOCK_RSCRIPT_LABEL', 'R_PARALLELLY_MAKENODEPSOCK_SESSIONINFO_PKGS', 'R_PARALLELLY_MAKENODEPSOCK_TIMEOUT', 'R_PARALLELLY_RANDOM_PORTS', 'R_PARALLEL_PORT', 'R_RD4PDF', 'R_RTOOLS45_PATH', 'R_SCRIPT_LEGACY', 'R_SHARE_DIR', 'R_TESTME_NAME', 'R_TESTME_PACKAGE', 'R_TESTME_PATH', 'R_TESTS', 'R_UNZIPCMD', 'R_USER', 'R_VERSION', 'R_ZIPCMD', 'SED', 'SHLVL', 'SYSTEMDRIVE', 'SYSTEMROOT', 'TAR', 'TAR_OPTIONS', 'TEMP', 'TERM', 'TETRAD_DIR', 'TEXINPUTS', 'TMP', 'TMPDIR', 'USERDOMAIN', 'USERDOMAIN_ROAMINGPROFILE', 'USERNAME', 'USERPROFILE', 'WINDIR', '_', '_R_CHECK_AUTOCONF_', '_R_CHECK_BOGUS_RETURN_', '_R_CHECK_BROWSER_NONINTERACTIVE_', '_R_CHECK_BUILD_VIGNETTES_SEPARATELY_', '_R_CHECK_CODETOOLS_PROFILE_', '_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_', '_R_CHECK_CODE_ATTACH_', '_R_CHECK_CODE_CLASS_IS_STRING_', '_R_CHECK_CODE_DATA_INTO_GLOBALENV_', '_R_CHECK_CODE_USAGE_VIA_NAMESPACES_', '_R_CHECK_CODE_USAGE_WITHOUT_LOADING_', '_R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_', '_R_CHECK_CODOC_VARIABLES_IN_USAGES_', '_R_CHECK_COMPACT_DATA2_', '_R_CHECK_COMPILATION_FLAGS_', '_R_CHECK_CONNECTIONS_LEFT_OPEN_', '_R_CHECK_CRAN_INCOMING_', '_R_CHECK_CRAN_INCOMING_ASPELL_RECHECK_MAYBE_', '_R_CHECK_CRAN_INCOMING_ASPELL_RECHECK_START_', '_R_CHECK_CRAN_INCOMING_CHECK_FILE_URIS_', '_R_CHECK_CRAN_INCOMING_CHECK_URLS_IN_PARALLEL_', '_R_CHECK_CRAN_INCOMING_NOTE_GNU_MAKE_', '_R_CHECK_CRAN_INCOMING_REMOTE_', '_R_CHECK_CRAN_INCOMING_USE_ASPELL_', '_R_CHECK_DATALIST_', '_R_CHECK_DEPRECATED_DEFUNCT_', '_R_CHECK_DOC_SIZES2_', '_R_CHECK_DOT_FIRSTLIB_', '_R_CHECK_DOT_INTERNAL_', '_R_CHECK_EXAMPLE_TIMING_THRESHOLD_', '_R_CHECK_EXECUTABLES_', '_R_CHECK_EXECUTABLES_EXCLUSIONS_', '_R_CHECK_FF_CALLS_', '_R_CHECK_FF_DUP_', '_R_CHECK_FORCE_SUGGESTS_', '_R_CHECK_FUTURE_FILE_TIMESTAMPS_', '_R_CHECK_FUTURE_FILE_TIMESTAMPS_LEEWAY_', '_R_CHECK_HAVE_MYSQL_', '_R_CHECK_HAVE_ODBC_', '_R_CHECK_HAVE_PERL_', '_R_CHECK_HAVE_POSTGRES_', '_R_CHECK_INSTALL_DEPENDS_', '_R_CHECK_INTERNALS2_', '_R_CHECK_LENGTH_1_CONDITION_', '_R_CHECK_LICENSE_', '_R_CHECK_LIMIT_CORES_', '_R_CHECK_LOG_USE_INFO_', '_R_CHECK_MATRIX_DATA_', '_R_CHECK_MBCS_CONVERSION_FAILURE_', '_R_CHECK_NATIVE_ROUTINE_REGISTRATION_', '_R_CHECK_NEWS_IN_PLAIN_TEXT_', '_R_CHECK_NO_RECOMMENDED_', '_R_CHECK_NO_STOP_ON_TEST_ERROR_', '_R_CHECK_ORPHANED_', '_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_', '_R_CHECK_PACKAGES_USED_IGNORE_UNUSED_IMPORTS_', '_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_', '_R_CHECK_PACKAGE_DATASETS_SUPPRESS_NOTES_', '_R_CHECK_PACKAGE_NAME_', '_R_CHECK_PKG_SIZES_', '_R_CHECK_PKG_SIZES_THRESHOLD_', '_R_CHECK_PRAGMAS_', '_R_CHECK_RD_BIBENTRIES_CITED_NOT_SHOWN_', '_R_CHECK_RD_EXAMPLES_T_AND_F_', '_R_CHECK_RD_LINE_WIDTHS_', '_R_CHECK_RD_MATH_RENDERING_', '_R_CHECK_RD_NOTE_LOST_BRACES_', '_R_CHECK_RD_VALIDATE_RD2HTML_', '_R_CHECK_REPLACING_IMPORTS_', '_R_CHECK_R_DEPENDS_', '_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_', '_R_CHECK_SCREEN_DEVICE_', '_R_CHECK_SERIALIZATION_', '_R_CHECK_SHLIB_OPENMP_FLAGS_', '_R_CHECK_SRC_MINUS_W_IMPLICIT_', '_R_CHECK_SUBDIRS_NOCASE_', '_R_CHECK_SUGGESTS_ONLY_', '_R_CHECK_SYSTEM_CLOCK_', '_R_CHECK_TESTS_NLINES_', '_R_CHECK_TEST_TIMING_', '_R_CHECK_TIMINGS_', '_R_CHECK_TOPLEVEL_FILES_', '_R_CHECK_UNDOC_USE_ALL_NAMES_', '_R_CHECK_UNSAFE_CALLS_', '_R_CHECK_URLS_RELATIVE_PATHS_', '_R_CHECK_URLS_SHOW_301_STATUS_', '_R_CHECK_VC_DIRS_', '_R_CHECK_VIGNETTES_NLINES_', '_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_', '_R_CHECK_VIGNETTE_TIMING_', '_R_CHECK_VIGNETTE_TITLES_', '_R_CHECK_WINDOWS_DEVICE_', '_R_CHECK_XREFS_NOTE_MISSING_PACKAGE_ANCHORS_', '_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_', '_R_CLASS_MATRIX_ARRAY_', '_R_DEPRECATED_IS_R_', '_R_S3_METHOD_LOOKUP_BASEENV_AFTER_GLOBALENV_', '_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_', '_R_USE_STRICT_R_HEADERS_', '__R_CHECK_DOC_FILES_NOTE_IF_ALL_INTERNAL__', 'maj.version', 'nextArg--timingsnextArg--install', 'tempdirname' - Environment variables still there: [n=0] - Environment variables missing: [n=1] 'MAKEFLAGS' Differences environment variable by environment variable: Skipping, because path appears not to be an 'R CMD check' folder: 'D:/temp/2026_01_18_18_20_17_191' Test time: user.self=2s, sys.self=0.1s, elapsed=4s, user.child=NAs, sys.child=NAs Test 'future.apply-future_lapply,globals' ... success > > proc.time() user system elapsed 2.62 0.15 4.09