Nothing
source("incl/start.R")
library(methods)
message("*** Globals - S4 methods ...")
setGeneric("my_fcn", function(x) standardGeneric("my_fcn"))
setMethod("my_fcn", signature(x = "numeric"), function(x) { -x })
org_my_fcn <- my_fcn
truth <- my_fcn(3)
for (strategy in supportedStrategies()) {
message("Type of future: ", strategy)
plan(strategy)
## Assert that S4 generic function 'my_fcn()' is exported
f <- future({ my_fcn }, lazy = TRUE)
rm(list = "my_fcn")
v <- value(f)
print(v)
stopifnot(
is.function(v),
inherits(v, class(org_my_fcn)[1])
)
my_fcn <- org_my_fcn
## FIXME:
## Just like S3 methods, S4 methods are not picked up
## https://github.com/HenrikBengtsson/future/issues/615
f <- future({ my_fcn(3) }, lazy = TRUE)
rm(list = "my_fcn")
v <- tryCatch(value(f), error = identity)
print(v)
if (isTRUE(as.logical(Sys.getenv("R_CHECK_IDEAL")))) {
if (getOption("future.globals.keepWhere", TRUE)) {
stopifnot(identical(v, truth))
} else {
stopifnot(inherits(v, "error"))
}
} else if (isTRUE(getOption("future.globals.keepWhere", FALSE))) {
stopifnot(identical(v, truth))
} else {
if (strategy %in% c("sequential", "multicore")) {
stopifnot(inherits(v, "error"))
} else {
stopifnot(identical(v, truth))
}
}
my_fcn <- org_my_fcn
}
message("*** Globals - S4 methods ... 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.