Nothing
source("incl/start.R")
oopts <- c(oopts, options(
future.globals.resolve = TRUE,
future.globals.onMissing = "error"
))
message("*** Globals - subassignments ...")
message("*** Globals - subassignments w/ x$a <- value ...")
## Truth:
x <- x0 <- list()
y0 <- list(a = 1)
str(list(x = x, y0 = y0))
y <- local({
x$a <- 1
x
})
stopifnot(identical(y, y0))
y <- local({
x[["a"]] <- 1
x
})
stopifnot(identical(y, y0))
y <- local({
x["a"] <- list(1)
x
})
stopifnot(identical(y, y0))
stopifnot(identical(x, list()))
for (cores in 1:availCores) {
## Speed up CRAN checks: Skip on CRAN Windows 32-bit
if (!fullTest && isWin32) next
message(sprintf("Testing with %d cores ...", cores))
options(mc.cores = cores)
message("availableCores(): ", availableCores())
for (strategy in supportedStrategies(cores)) {
message(sprintf("- plan('%s') ...", strategy))
plan(strategy)
## Explicit future
x <- list()
f <- future({
x$a <- 1
x
})
rm(list = "x")
y <- value(f)
print(y)
stopifnot(identical(y, y0))
## Explicit future (lazy)
x <- list()
f <- future({
x$a <- 1
x
}, lazy = TRUE)
rm(list = "x")
y <- value(f)
print(y)
stopifnot(identical(y, y0))
## Future assignment
x <- list()
y %<-% {
x$a <- 1
x
}
rm(list = "x")
print(y)
stopifnot(identical(y, y0))
## Same with forced lazy evaluation
x <- list()
y %<-% {
x$a <- 1
x
} %lazy% TRUE
rm(list = "x")
print(y)
stopifnot(identical(y, y0))
## 'x' is _not_ a global variable here
x <- list()
y %<-% {
x <- list(b = 2)
x$a <- 1
x
}
rm(list = "x")
print(y)
stopifnot(identical(y, list(b = 2, a = 1)))
## Explicit future
x <- list()
f <- future({
x[["a"]] <- 1
x
})
rm(list = "x")
y <- value(f)
print(y)
stopifnot(identical(y, y0))
## Explicit future (lazy)
x <- list()
f <- future({
x[["a"]] <- 1
x
}, lazy = TRUE)
rm(list = "x")
y <- value(f)
print(y)
stopifnot(identical(y, y0))
## Future assignment
x <- list()
y %<-% {
x[["a"]] <- 1
x
}
rm(list = "x")
print(y)
stopifnot(identical(y, y0))
## Explicit future
x <- list()
f <- future({
x["a"] <- list(1)
x
})
rm(list = "x")
y <- value(f)
print(y)
stopifnot(identical(y, y0))
## Explicit future (lazy)
x <- list()
f <- future({
x["a"] <- list(1)
x
}, lazy = TRUE)
rm(list = "x")
y <- value(f)
print(y)
stopifnot(identical(y, y0))
## Future assignment
x <- list()
y %<-% {
x["a"] <- list(1)
x
}
rm(list = "x")
print(y)
stopifnot(identical(y, y0))
## Future assignment
x <- list()
name <- "a"
y %<-% {
x[name] <- list(1)
x
}
rm(list = c("x", "name"))
print(y)
stopifnot(identical(y, y0))
} ## for (strategy ...)
message(sprintf("Testing with %d cores ... DONE", cores))
} ## for (cores ...)
message("*** Globals - subassignments w/ x$a <- value ... DONE")
message("*** Globals - subassignments ... DONE")
source("incl/end.R")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.