Skip to content

Commit 2345e72

Browse files
evalFuture(): Single argument 'core' replaces arguments 'expr', 'globals', 'packages', and 'seed'
1 parent a9e358a commit 2345e72

File tree

3 files changed

+19
-7
lines changed

3 files changed

+19
-7
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: future
2-
Version: 1.34.0-9099
2+
Version: 1.34.0-9100
33
Title: Unified Parallel and Distributed Processing in R for Everyone
44
Imports:
55
digest,

R/Future-class.R

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -657,16 +657,15 @@ getExpression <- function(future, ...) UseMethod("getExpression")
657657

658658
#' @export
659659
getExpression.Future <- local({
660-
661660
tmpl_expr_evaluate2 <- bquote_compile({
662661
## Evaluate future
663-
future:::evalFuture(expr = quote(.(expr)), local = .(local), stdout = .(stdout), conditionClasses = .(conditionClasses), split = .(split), seed = .(seed), immediateConditions = .(immediateConditions), immediateConditionClasses = .(immediateConditionClasses), globals = .(globals), packages = .(pkgs), strategiesR = .(strategiesR), forwardOptions = .(forwardOptions), threads = .(threads), cleanup = .(cleanup))
662+
future:::evalFuture(core = .(core), local = .(local), stdout = .(stdout), conditionClasses = .(conditionClasses), split = .(split), immediateConditions = .(immediateConditions), immediateConditionClasses = .(immediateConditionClasses), strategiesR = .(strategiesR), forwardOptions = .(forwardOptions), threads = .(threads), cleanup = .(cleanup))
664663
})
665664

666-
function(future, expr = future$expr, local = future$local, stdout = future$stdout, conditionClasses = future$conditions, split = future$split, seed = future$seed, immediateConditions = FALSE, mc.cores = NULL, threads = NA_integer_, cleanup = TRUE, ...) {
665+
function(future, expr = future$expr, seed = future$seed, local = future$local, stdout = future$stdout, conditionClasses = future$conditions, split = future$split, immediateConditions = FALSE, mc.cores = NULL, threads = NA_integer_, cleanup = TRUE, ...) {
667666
debug <- getOption("future.debug", FALSE)
668667
## mdebug("getExpression() ...")
669-
668+
670669
if (is.null(split)) split <- FALSE
671670
stop_if_not(is.logical(split), length(split) == 1L, !is.na(split))
672671

@@ -709,7 +708,15 @@ getExpression.Future <- local({
709708
if (debug) mdebugf("Packages needed by future strategies (n = %d): %s", length(pkgsS), paste(sQuote(pkgsS), collapse = ", "))
710709
pkgs <- unique(c(pkgs, pkgsS))
711710
}
712-
711+
712+
## Create a future core
713+
core <- list(
714+
expr = expr,
715+
globals = globals,
716+
packages = pkgs,
717+
seed = seed
718+
)
719+
713720
conditionClassesExclude <- attr(conditionClasses, "exclude", exact = TRUE)
714721
muffleInclude <- attr(conditionClasses, "muffleInclude", exact = TRUE)
715722
if (is.null(muffleInclude)) muffleInclude <- "^muffle"

R/expressions.R

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ FutureEvalError <- function(...) {
44
ex
55
}
66

7-
evalFuture <- function(expr, local = FALSE, stdout = TRUE, conditionClasses = character(0L), split = FALSE, immediateConditions = NULL, immediateConditionClasses = character(0L), globals = NULL, packages = NULL, seed = NULL, forwardOptions = NULL, strategiesR = NULL, threads = NA_integer_, envir = parent.frame(), cleanup = TRUE) {
7+
evalFuture <- function(core, local = FALSE, stdout = TRUE, conditionClasses = character(0L), split = FALSE, immediateConditions = NULL, immediateConditionClasses = character(0L), forwardOptions = NULL, strategiesR = NULL, threads = NA_integer_, envir = parent.frame(), cleanup = TRUE) {
8+
expr <- core$expr
9+
globals <- core$globals
10+
packages <- core$packages
11+
seed <- core$seed
12+
813
stop_if_not(
914
length(local) == 1L && is.logical(local) && !is.na(local),
1015
length(stdout) == 1L && is.logical(stdout),

0 commit comments

Comments
 (0)