citEntry()in CITATION used argument
future.envir to all
future_nnn() functions, which is passed as argument
future.apply.debug for debugging features specific to this package. It defaults to option
getGlobalsAndPackagesXApply()now avoids calculating the object size of
...arguments if option
simplify, which is added to R-devel (to become R 4.1.0).
future_apply(X, FUN, ...)would pass all
FUNfunction instead of processing them locally. This would often result in the
FUNproducing an error on “unused argument”. It also affected
future.seednot being applied, which means for some
FUNfunctions that did not produce this error, non-reproducible results could have been produced.
future_mapply()would chunk up
future.seed = TRUE.
future_nnn()functions set a label on each future that reflects the name of the
future_nnn()function and the index of the chunk, e.g.
"future_lapply-3". The format can be controlled by argument
future_mapply(FUN, X) would drop
names argument of the returned empty list when
length(X) == 0.
Package could set
.Random.seed to NULL, instead of removing it, which in turn would produce a warning on “‘.Random.seed’ is not an integer vector but of type ‘NULL’, so ignored” when the next random number generated.
future.conditions defaults to the same as argument
future::future(). If the latter changes, this package will follow.
Debug messages are now prepended with a timestamp.
future.conditionsfor controlling whether standard output and conditions (e.g. messages and warnings) produced during the evaluation of futures should be captured and relayed or not. Standard output is guaranteed to be relayed in the same order as it would when using sequential processing. Analogously for conditions. However, standard output is always relayed before conditions. Errors are always relayed. Relaying of non-error conditions requires future (>= 1.11.0).
Elements can be processed in random order by setting attribute
"random" of argument
future.chunk.size = structure(TRUE, ordering = "random"). This can help improve load balancing in cases where there is a correlation between processing time and ordering of the elements. Note that the order of the returned values is not affected when randomizing the processing order.
Swapped order of arguments
future.seed to be consistent with ditto arguments of
For list objects
X != as.list(X), future_lapply(X) did not give the same result as
lapply(X). Analogously for
future.chunk.size as an alternative to argument
future.scheduling for controlling the average number of elements processed per future (“chunk”). In R 3.5.0, the parallel package introduced argument
The maximum total size of globals allowed (option
future.globals.maxSize) per future (“chunk”) is now scaled up by the number of elements processed by the future (“chunk”) making the protection approximately invariant to the amount of chunking (arguments
future_lapply(x, ...)is now much faster and more memory efficient for large
xvectors because it uses internal
fold()function that is more efficient (memory and speed) version of
base::Reduce(f, x), especially when