processx
Run and control external system processes from R with full I/O handling
processx adds kernel-level process pipelines after years of defensive fixes.
◆Recent moves
- 3mo ago
processx 3.9.0 adds shell-style pipelines between child processes
⚡ SPARKThe first capability jump in this window: a pipeline R6 class that chains child processes through kernel-level pipes, plus linux_pdeathsig for tying child lifetime to the parent R process. After a run of purely defensive releases, processx is extending what it can do rather than what it can survive.
View source ↗ - 1y ago
processx 3.8.6 restores cloneable process objects for R6 2.6
Compatibility housekeeping: process objects are temporarily cloneable again to suppress messages from R6 2.6.0, and processx no longer perturbs the RNG state. Both are the defensive maintenance the 3.8.x line consisted of.
View source ↗ - 2y ago
processx 3.8.3 hardens internal printf format strings
A single internal hardening change making printf-style format strings safer. No user-visible effect.
View source ↗ - 3y ago
processx 3.8.2 ignores SIGPIPE to avoid callr session freezes
The client library now ignores SIGPIPE when writing to a file descriptor on Unix, avoiding freezes when a callr session reports results after its parent died. Invisible unless you were hitting the parallel testthat hang it fixes.
View source ↗ - 3y ago
processx 3.8.1 adds opt-in SIGTERM temp-directory cleanup
Adds an opt-in SIGTERM cleanup handler so callr-created R processes remove their temporary directory before shutting down. Gated behind an environment variable, it is an early move toward the lifecycle control that 3.9.0 later formalises.
View source ↗ - 3y ago
processx 3.8.0 adds hyperlinked error stacks, fixes system() calls
Error stacks gain ANSI hyperlinks to manual pages and print operators more legibly, and standard streams are no longer close-on-exec on Unix so system() works from an R subprocess. Debugging-quality work rather than new capability.
View source ↗