← Back to all sparks
P

purrr

DEVOPS
Velocity0.0

Functional programming toolkit for R

purrr finished a decade of deprecations and picked up a parallel backend.

tidyversefunctional-programmingdeprecationsparallelismr-language
Current state
purrr is at 1.2.2, and the last two releases are CRAN check fixes and vctrs compatibility. The substance sits in 1.2.0, which removed everything deprecated back in 0.3.0 and fully deprecated the invoke, lift, cross and splice families soft-deprecated in 1.0.0, while making map_chr() stop silently coercing logicals and numbers to strings. 1.1.0 before it raised the floor to R 4.1 and added in_parallel() on the mirai backend.
Where it's heading
The direction is a smaller, stricter surface. Functions that predated the 1.0.0 redesign are being cleared out in stages, and the ones that remain are tightening their type contracts — map_chr() no longer coerces, every() and some() now demand a logical scalar. The parallel work is the one addition, and it arrives as a backend rather than a new way to write maps.
Prediction
With the 1.0.0 soft deprecations now fully deprecated and marked for removal, the next release most likely deletes them rather than adding capability.

Recent moves

  1. 4mo ago

    CRAN check fixes

    A single-line release fixing CRAN checks. No user-facing change.

    View source ↗
  2. 7mo ago

    Compatibility with upcoming vctrs 0.7.0

    Compatibility tweaks for the upcoming vctrs 0.7.0. Keeps the package installable against a moving dependency and nothing else.

    View source ↗
  3. 9mo ago

    Old deprecations removed; map_chr() stops coercing

    The clean-out release: functions deprecated in 0.3.0 are removed outright, the invoke, lift, cross and splice families move to full deprecation, and map_chr() stops coercing logicals, integers and doubles into strings. Code that relied on any of that breaks here.

    View source ↗
  4. 1y ago

    in_parallel() adds parallel and distributed maps via mirai

    Adds in_parallel() for parallel and distributed maps on the mirai backend, and raises the floor to R 4.1 so the base pipe and lambda syntax can be assumed. A new execution backend rather than a new iteration API.

    View source ↗
  5. 3y ago

    Valgrind fix and lower map_chr() deprecation overhead

    Fixes a valgrind issue, trims deprecation overhead in map_chr() and raises the R floor to 3.5.0. Maintenance.

    View source ↗
  6. 3y ago

    Indexed map() errors gain a catchable class and fields

    Gives the wrapper error introduced in 1.0.0 a real identity: a purrr_error_indexed class with location and name fields, and named inputs now report which element failed. It makes map() failures programmatically catchable rather than just readable.

    View source ↗