Skip to content

Releases: r-lib/processx

v3.5.1

05 Apr 07:11
Compare
Choose a tag to compare
  • Fix a potential failure when polling curl file descriptors on Windows.

v3.5.0

23 Mar 17:55
Compare
Choose a tag to compare
  • You can now append environment variables to the ones set in the current
    process if you include "current" in the value of env, in run()
    and for process$new(): env = c("current", NEW = "newvalue") (#232).

  • Sub-processes can now inherit the standard input, output and error from
    the main R process, by setting the corresponding argument to an empty
    string. E.g. run("ls", stdout = "") (#72).

  • run() is now much faster with large standard output or standard
    error (#286).

  • run() can now discard the standard output and error or redirect
    them to file(s), instead of collecting them.

  • processx now optionally uses the cli package to color error messages
    and stack traces, instead of crayon.

v3.4.5

30 Nov 11:43
Compare
Choose a tag to compare
  • New options in pty_options to set the initial size of the pseudo
    terminal.

  • Reading the standard output or error now does not crash occasionally
    when a \n character is at the beginning of the input buffer (#281).

v3.4.4

07 Sep 10:06
Compare
Choose a tag to compare
  • processx now works correctly for non-ASCII commands and arguments passed
    in the native encoding, on Windows (#261, #262, #263, #264).

  • Providing multiple environment variables now works on windows (#267).

v3.4.3

05 Jul 13:51
Compare
Choose a tag to compare
  • The supervisor (activated with supervise = TRUE) does not crash
    on the Windows Subsystem on Linux (WSL) now (#222).

  • Fix ABI compatibility for pre and post R 4.0.1 versions. Now CRAN
    builds (with R 4.0.2 and later 4.0.x) work well on R 4.0.0.

  • Now processx can run commands on UNC paths specified with
    forward slashes: //hostname/... UNC paths with the usual
    back-slashes were always fine (#249).

  • The $as_ps_handle() method works now better; previously it
    sometimes created an invalid ps::ps_handle object, if the system
    clock has changed (#258).

v3.4.2

09 Feb 22:53
Compare
Choose a tag to compare
  • run() now does a better job with displaying the spinner on terminals
    that buffer the output (#223).

  • Error messages are now fully printed after an error. In non-interactive
    sessions, the stack trace is printed as well.

  • Further improved error messages. Errors from C code now include the
    name of the C function, and errors that belong to a process include the
    system command (#197).

  • processx does not crash now if the process receives a SIGPIPE signal when
    trying to write to a pipe, of which the other end has already exited.

  • processx now works better with fork clusters from the parallel
    package. See 'Mixing processx and the parallel base R package' in the
    README file (#236).

  • processx now does not block SIGCHLD by default in the subprocess,
    blocking potentially causes zombie sub-subprocesses (#240).

  • The process$wait() method now does not leak file descriptors on
    Unix when interrupted (#141).

v3.4.1

22 Jul 14:24
Compare
Choose a tag to compare
  • Now run() does not create an ok variable in the global environment.

v3.4.0

03 Jul 09:41
Compare
Choose a tag to compare
  • Processx has now better error messages, in particular, all errors from C
    code contain the file name and line number, and the system error code
    and message (where applicable).

  • Processx now sets the .Last.error variable for every un-caught processx
    error to the error condition, and also sets .Last.error.trace to its
    stack trace.

  • run() now prints the last 10 lines of the standard error stream on
    error, if echo = FALSE, and it also prints the exit status of the
    process.

  • run() now includes the standard error in the condition signalled on
    interrupt.

  • process now supports creating pseudo terminals on Unix systems.

  • conn_create_pipepair() gets new argument to set the pipes as blocking
    or non-blocking.

  • process does not set the inherited extra connections as blocking,
    and it also does not close them after starting the subprocess.
    This is now the responsibility of the user. Note that this is a
    breaking change.

  • run() now passes extra ... arguments to process$new().

  • run() now does not error if the process is killed in a callback.

v3.3.1

08 May 20:04
Compare
Choose a tag to compare
  • Fix a crash on Windows, when a connection that has a pending read
    internally is finalized.

v3.3.0

15 Mar 11:19
Compare
Choose a tag to compare

processx 3.3.0

  • process can now redirect the standard error to the standard output, via
    specifying stderr = "2>&1". This works both with files and pipes.

  • run() can now redirect the standard error to the standard output, via
    the new stderr_to_stdout argument.

  • The $kill() and $kill_tree() methods get a close_connection = TRUE
    argument that closes all pipe connections of the process.

  • run() now always kills the process (and its process tree if
    cleanup_tree is TRUE) before exiting. This also closes all
    pipe connections (#149).