- Redocumented the package with roxygen2 7.2.1 to fix invalid HTML5 issues (#242).
CRAN release: 2022-05-04
Standard output is now dropped from future results before they are returned to the main process (#216).
Condition objects are now dropped from future results before they are returned to the main process (#216).
Unskipped a test now that the upstream bug in future is fixed (#218, HenrikBengtsson/future.apply#10).
Removed ellipsis in favor of the equivalent functions in rlang (#219).
Removed a multisession test related to whether or not an attempt was made to load furrr on the workers (#217).
Updated snapshot tests related to how testthat prints condition details (#213).
furrr now requires R >=3.4.0, which is in line with the tidyverse.
lifecycle >=1.0.1, rlang >=1.0.2, purrr >=0.3.4, vctrs >=0.4.1, globals >=0.14.0, and future >=1.25.0 are now required (#214).
CRAN release: 2021-06-25
CRAN release: 2020-10-21
CRAN release: 2020-10-12
All furrr functions now enforce tidyverse recycling rules (for example, between
future_map2()). Previously this was mostly the case, except with size zero input. Recycling between input of size 0 and input of size >1 no longer recycles to size 0, and is instead an error. purrr will begin to do this as well in the next major release (#134).
future_options()has been deprecated in favor of
future_options()will still work, but will trigger a once per session warning and will eventually be removed. This change was made to free up this function name in case the future package ever wants to use it.
In a future version of furrr, the
.progressargument will be deprecated and removed in favor of the progressr package. The progress bar has not yet been removed in furrr 0.2.0, however I would encourage you to please start using progressr if possible. It uses a much more robust idea, and has been integrated with future in such a way that it can relay near real-time progress updates from sequential, multisession, and even cluster futures (meaning that remote connections can return live updates). Multicore support will come at some point as well. That said, be aware that it is a relatively new package and the API is still stabilizing. As more people use it, its place in the future ecosystem will become clearer, and tighter integration with furrr will likely be possible.
New pkgdown article discussing how furrr “chunks” input to send if off to workers.
New pkgdown article on common gotchas when using furrr.
New pkgdown article detailing how to use furrr with remote AWS EC2 connections.
furrr_options()now has a variety of new arguments for fine tuning furrr. These are based on advancements made in both future and future.apply. The most important is
chunk_size, which can be used as an alternative to
schedulingto determine how to break up
.xinto chunks to send off to the workers. See
?furrr_optionsfor full details.
future_modify_at()have been brought up to date with the changes in purrr 0.3.0 to their non-parallel equivalents. Specifically, they now wrap
[[<-and return the same type as the input when the input is an atomic vector (#119).
All furrr functions gained a new argument,
.env_globals, which determines the environment in which globals for
...are looked up. It defaults to the caller environment, which is different than what was previously used, but should be more correct in some edge cases. Most of the time, you should not have to touch this argument. Additionally, globals for
.fare now looked up in the function environment of
The future specific global option
future.globals.maxSizenow scales with the number of elements of
.xthat get exported to each worker. This helps prevent some false positives about exporting objects that are too large, and is the same approach taken in future.apply (#113).
.xis now searched for globals. Only globals found in the slice of
.xthat corresponds to worker X are exported to worker X. This is relevant if
.xis, say, a list of functions where each has their own set of globals (#16).
The progress bar furrr creates now outputs to stderr rather than stdout.
The progress bar is now only enabled for multisession, multicore, and multiprocess strategies. It has never worked for sequential futures or cluster futures using remote connections, but
.progressis now forced to false in those cases.
The internals of furrr have been overhauled to unify the implementations of
future_pmap()and all of their variants. This should make furrr much easier to maintain going forward (#44).
A MIT license is now used.
rlang >= 0.3.0 is now required to ensure that the rlang
~is serializable. The hacks in furrr that tried to work around this have been removed (#123).
globals >= 0.13.1 is now required because of substantial new speed boosts there related to searching for global variables, and to gain access to a few bug fixes.
CRAN release: 2018-05-16
future_pmap_*()functions have been added to mirror
future.*arguments to each function have been replaced with an overarching
future_options()to create a set of options suitable to be passed to
.options. This change streamlines the interface greatly, and simplifies documentation (#8, @hadley).
future_invoke_map_*()functions have been added to mirror
More documentation and examples have been added.
Added the ability to use a progress bar with
.progress = TRUEfor multicore, multiprocess, and multisession