Recent Releases of processx
processx - processx 3.8.6
processx::processobjects are cloneable again, temporarily, to avoid warning-like messages from R6 2.6.0 and later.processx now does not change the state of the RNG (#390).
- R
Published by gaborcsardi over 1 year ago
processx - processx 3.8.3
*printf()format strings are now safer (#379).
- R
Published by gaborcsardi over 2 years ago
processx - processx 3.8.2
- The client library, used by callr, now ignores
SIGPIPEwhen writing to a file descriptor, on unix. This avoid possible freezes when acallr::r_sessionsubprocess is trying to report its result after the main process was terminated. In particular, this happened with parallel testthat: https://github.com/r-lib/testthat/issues/1819
- R
Published by gaborcsardi almost 3 years ago
processx - processx 3.8.1
- On Unixes, R processes created by callr now feature a
SIGTERMcleanup handler that cleans up the temporary directory before shutting down. To enable it, set thePROCESSX_R_SIGTERM_CLEANUPenvvar to a non-empty value.
- R
Published by gaborcsardi about 3 years ago
processx - processx 3.8.0
processx error stacks are better now. They have ANSI hyperlinks for function calls to their manual pages, and they also print operators better.
processx now does not mark standard streams as close-on-exec on Unix, as this causes problems when calling
system()from an R subprocess (https://github.com/r-lib/callr/issues/236).
- R
Published by gaborcsardi over 3 years ago
processx - v3.6.1
processx now closes file unneeded file descriptors when redirecting the standard output and error, in the client file.
processx errors now do not have
rlang_errorandrlang_traceclasses, because they are actually not compatible with rlang errors and traces.
- R
Published by gaborcsardi about 4 years ago
processx - v3.5.3
run()now setsstderrtoNULLin the result (instead of an empty string), if the standard error was redirected to the standard output. This also fixes an error when interrupting arun()with a redirected standard error.processx now does not fail if the current working directory contains a non-ASCII character on Windows, and
getwd()returns a short path for it (#313).
- R
Published by gaborcsardi over 4 years ago
processx - v3.5.2
run()now does not truncate stdout and stderr when the output contains multibyte characters (#298, @infotroph).processx now compiles with custom compilers that enable OpenMP (#297).
processx now avoids a race condition when the working directory is changed right after starting a process, potentially before the sub-process is initialized (#300).
processx now works with non-ASCII path names on non-UTF-8 Unix platforms (#293).
- R
Published by gaborcsardi about 5 years ago
processx - 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.
- R
Published by gaborcsardi over 5 years ago
processx - 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_handleobject, if the system clock has changed (#258).
- R
Published by gaborcsardi almost 6 years ago
processx - 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).
- R
Published by gaborcsardi over 6 years ago
processx - 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.errorvariable for every un-caught processx error to the error condition, and also sets.Last.error.traceto 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.processnow supports creating pseudo terminals on Unix systems.conn_create_pipepair()gets new argument to set the pipes as blocking or non-blocking.processdoes 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.
- R
Published by gaborcsardi almost 7 years ago
processx - v3.3.0
processx 3.3.0
processcan 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_stdoutargument.The
$kill()and$kill_tree()methods get aclose_connection = TRUEargument that closes all pipe connections of the process.run()now always kills the process (and its process tree ifcleanup_treeisTRUE) before exiting. This also closes all pipe connections (#149).
- R
Published by gaborcsardi over 7 years ago
processx - v3.2.0
New
process$kill_tree()method, and newcleanup_treearguments inrun()andprocess$new(), to clean up the process tree rooted at a processx process. (#139, #143).New
process$interupt()method to send an interrupt to a process, SIGINT on Unix, CTRL+C on Windows (#127).New
stdinargument inprocess$new()to support writing to the standard input of a process (#27, #114).New
connectionsargument inprocess$new()to support passing extra connections to the child process, in addition to the standard streams.New
poll_connectionargument toprocess$new(), an extra connection that can be used to poll the process, even ifstdoutandstderrare not pipes (#125).poll()now works with connections objects, and they can be mixed with process objects (#121).New
envargument inrun()andprocess$new(), to set the environment of the child process, optionally (#117, #118).Removed the
$restart()method, because it was less useful than expected, and hard to maintain (#116).New
conn_set_stdout()andconn_set_stderr()to set the standard output or error of the calling process.New
conn_disable_inheritance()to disable stdio inheritance. It is suggested that child processes call this immediately after starting, so the file handles are not inherited further.Fixed a signal handler bug on Unix that marked the process as finished, even if it has not (d221aa1f).
Fixed a bug that occasionally caused crashes in
wait(), on Unix (#138).When
run()is interrupted, no error message is printed, just like for interruption of R code in general. The thrown condition now also has theinterruptclass (#148).
- R
Published by gaborcsardi over 7 years ago