Releases: r-lib/processx
v3.5.1
- Fix a potential failure when polling curl file descriptors on Windows.
v3.5.0
-
You can now append environment variables to the ones set in the current
process if you include"current"
in the value ofenv
, inrun()
and forprocess$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
v3.4.4
v3.4.3
-
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 invalidps::ps_handle
object, if the system
clock has changed (#258).
v3.4.2
-
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
- Now
run()
does not create anok
variable in the global environment.
v3.4.0
-
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, ifecho = 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 toprocess$new()
. -
run()
now does not error if the process is killed in a callback.
v3.3.1
- Fix a crash on Windows, when a connection that has a pending read
internally is finalized.
v3.3.0
processx 3.3.0
-
process
can now redirect the standard error to the standard output, via
specifyingstderr = "2>&1"
. This works both with files and pipes. -
run()
can now redirect the standard error to the standard output, via
the newstderr_to_stdout
argument. -
The
$kill()
and$kill_tree()
methods get aclose_connection = TRUE
argument that closes all pipe connections of the process. -
run()
now always kills the process (and its process tree if
cleanup_tree
isTRUE
) before exiting. This also closes all
pipe connections (#149).