← Back to all sparks
L

lazyeval

ANALYTICS
Velocity0.0

Lazy (Non-Standard) Evaluation

A package retired in 2017 just got rewritten against R's public C API.

non-standard-evaluationr-c-apidormancy-revivaltidyversemaintenance
Current state
lazyeval was the tidyverse's pre-rlang non-standard evaluation layer, formally set aside in 2017 when tidy evaluation replaced it. After eight and a half years without a release, 0.2.3 arrives as a compliance rewrite: the implementation now uses R's public C API, and the release note states it may differ from the historical one in subtle ways. Nothing about the package's role has changed.
Where it's heading
This is a dormancy revival driven entirely from outside, R core tightening what counts as the public C API forces packages using older internals to be rewritten or be archived. lazyeval is still a dependency deep in older package trees, so keeping it installable matters more than developing it. The caveat about subtle behavioural differences is the notable part: a package nobody is developing has changed behaviour in ways its release note declines to enumerate.
Prediction
Expect no further development, only additional compliance releases if R core tightens the C API again.

Recent moves

  1. 4mo ago

    Reimplemented against R's public C API after eight years dormant

    A compliance rewrite ending an eight-and-a-half year gap, carrying an explicit warning that behaviour may differ subtly from the historical implementation. For a package still buried in old dependency trees, that caveat matters more than the release itself.

    View source ↗
  2. 8y ago

    Development ends as the tidyverse moves to tidy evaluation

    The release that formally retires the package, alongside a registration system update and a C macro change made in anticipation of an R core API change. The same class of pressure that produced 0.2.3 eight years later.

    View source ↗
  3. 10y ago

    Formula-based lazy evaluation system introduced

    The formula-based evaluation system with f_eval() and the .data and .env pronouns, intended at the time to underpin ggplot2, tidyr and dplyr. That role went to rlang instead, which is why the package was set aside a year later.

    View source ↗
  4. 11y ago

    lazyeval 0.1.10

    A NULL method for as.lazy_dots() and a symbol truncation fix. Routine work from the package's active period.

    View source ↗
  5. 11y ago

    lazyeval 0.1.9

    The initial release, establishing the lazy-evaluation toolkit that dplyr and its neighbours used before rlang existed.

    View source ↗