← Back to all sparks
S

slider

ANALYTICS
Velocity0.0

Sliding Window Functions. Contribute to r-lib/slider development by creating an account on GitHub.

Feature-complete since 2021, and every release since has been paying CRAN's C API bill

sliding-windowstidyversec-api-compliancevctrsmaintenance
Current state
slider provides sliding-window and index-aware window functions for R, with a C implementation underneath and a specialised fast path for common aggregations. The user-facing surface has been stable since 0.3.0 in late 2022. Everything after that is compliance and platform work: STRING_PTR removed in 0.3.2, OBJECT() removed in 0.3.3, a vctrs callable's C signature corrected, and the minimum R version raised twice.
Where it's heading
Two forces set the release schedule, and neither is feature demand. The first is CRAN closing off non-API C entry points, which packages reaching into R internals for speed have to unwind one accessor at a time — slider is on its second such release with no visible loss of function. The second is vctrs, whose breaking changes slider absorbs ahead of time; 0.2.2 exists solely to prepare for one. The last release that added anything callers can see was 0.3.0's slider_plus() and slider_minus() extension hooks.
Prediction
Expect the pattern to continue: another non-API accessor removal or a vctrs compatibility release, rather than new window functions. The C-level surface is the only part of this package still moving.

Recent moves

  1. 9mo ago

    Non-API OBJECT() removed and a vctrs C signature fixed

    Corrects a C-level function signature for a vctrs callable and removes the last use of the non-API OBJECT() macro. Both are internal; nothing about how slider behaves changes, but the OBJECT() removal is the second instalment of the same CRAN compliance work that drove 0.3.2.

    View source ↗
  2. 1y ago

    Non-API STRING_PTR removed; R 4.0.0 now required

    Drops the non-API STRING_PTR accessor and raises the minimum R version to 4.0.0 in line with tidyverse policy. The version floor is the user-visible part — anyone on older R stops receiving updates here — while the accessor removal is invisible groundwork against CRAN's tightening C API rules.

    View source ↗
  3. 2y ago

    Valgrind test fixes and dependency version bumps

    Fixes tests that failed under valgrind on NA versus NaN handling and bumps required versions of vctrs, cli, rlang and R. Toolchain maintenance with no behavioural change.

    View source ↗
  4. 3y ago

    Extension hooks let clock and almanac types serve as an index

    The last release with a genuine addition: slider_plus() and slider_minus() let package authors register double-dispatch methods that override how index bounds are computed, which is what allows clock and almanac types to be used as an index natively rather than being coerced first. Error messages move from glue to cli, and the index families switch to vctrs::vec_rank() for a faster dense rank.

    View source ↗
  5. 5y ago

    Internal vec_order usage updated ahead of a vctrs break

    Updates internal vec_order() usage ahead of a breaking change in vctrs. Defensive maintenance released before the upstream break landed — a recurring shape in this feed.

    View source ↗
  6. 5y ago

    long double alignment issue fixed for CRAN sanitisers

    Fixes a C alignment issue with long double allocation flagged by CRAN's sanitiser machine, plus a test that assumed a fixed size for that type. Platform-portability repair in the C layer.

    View source ↗