← Back to all sparks
L

later

DEVOPS
Velocity0.0

Schedule R function calls to execute later on an event loop

later spends its releases keeping R's event loop compiling against moving toolchains.

revent-loopasyncrcppbuild-compatibility
Current state
later provides the event loop that lets R schedule callbacks, underpinning shiny, httpuv and most async work in the language. Recent releases are overwhelmingly build and compatibility work: Rcpp error-handling changes, a C23 namespace collision with glibc, and header ordering to satisfy Rcpp auto-includes.
Where it's heading
The API is settled enough that the release calendar is set by the surrounding ecosystem rather than by any feature plan. 1.4.5 cleaned house by dropping pre-unwind-protect fallbacks, and 1.4.6 carries the only recent change a user would notice at all — lower CPU use when idle at the console.
Prediction
Expect further releases pinned to compiler and Rcpp changes, with the observable surface staying essentially where it is.

Recent moves

  1. 5mo ago

    later 1.4.8 tracks Rcpp Rf_error handling changes

    An internal update for compatibility with Rcpp's Rf_error handling. No behavioural change, and squarely in the compatibility-maintenance pattern this package now runs on.

    View source ↗
  2. 5mo ago

    later 1.4.7 fixes a C23 once_flag collision breaking builds

    Fixes a build failure on glibc 2.43 and GCC 15, where C23 moved the once_flag type into stdlib.h and collided with later's vendored tinycthread symbols. Invisible to users but a hard blocker for anyone on a current toolchain.

    View source ↗
  3. 6mo ago

    later 1.4.6 improves idle responsiveness at the R console

    The rare recent release with a user-noticeable effect: better responsiveness when idle at the R console on POSIX systems. The accompanying header move exists to keep R headers from preceding Rcpp headers in generated exports.

    View source ↗
  4. 7mo ago

    later 1.4.5 drops legacy fallbacks, requires R 3.5 and Rcpp 1.0.10

    Raises the floor to R 3.5.0 and Rcpp 1.0.10 so the legacy non-unwind-protect code paths can be deleted outright. A deliberate simplification that trades support for old R versions for one less branch to maintain.

    View source ↗
  5. 11mo ago

    later 1.4.4 fixes test timings only

    A test timing fix, explicitly labelled as having no user-facing changes.

    View source ↗
  6. 11mo ago

    later 1.4.3 stops touching .Random.seed, drops autorun argument

    Removes the long-deprecated autorun argument from create_loop() and stops the package from perturbing .Random.seed at load time. The seed fix matters for anyone chasing irreproducible results in an async pipeline.

    View source ↗