source("incl/start.R") library("listenv") message("*** Globals - too large ...") ooptsT <- options(future.globals.maxSize = object.size(1:1000) - 1L) limit <- getOption("future.globals.maxSize") cat(sprintf("Max total size of globals: %g bytes\n", limit)) plan(multisession) exprs <- list( A = substitute({ a }, env = list()), B = substitute({ a * b }, env = list()), C = substitute({ a * b * c }, env = list()), D = substitute({ a * b * c * d }, env = list()), E = substitute({ a * b * c * d * e }, env = list()) ) a <- 1:1000 b <- 1:900 c <- 1:800 d <- 1:700 e <- 1 for (name in names(exprs)) { message(sprintf("Expression %s:", name)) expr <- exprs[[name]] print(expr) res <- tryCatch({ f <- future(expr, substitute = FALSE) }, error = function(ex) ex) print(res) stopifnot(inherits(res, "error")) msg <- conditionMessage(res) stopifnot(grepl("exceeds the maximum allowed size", msg)) } message("*** Globals - too large ... DONE") source("incl/end.R")