summaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
authorJosselin Poiret <dev@jpoiret.xyz>2023-01-07 17:07:46 +0100
committerLudovic Courtès <ludo@gnu.org>2023-01-13 16:05:30 +0100
commit551929e4fb77341fa5309c138b2ab92966987966 (patch)
treef64410a438cba928d9c2902c55641eea73d969d0 /NEWS
parentedfca3b7e5931b5b5a83112e2a9813b068be99c2 (diff)
downloadguile-551929e4fb77341fa5309c138b2ab92966987966.tar.gz
Add 'spawn'.
* libguile/posix.c: Include spawn.h from Gnulib. (do_spawn, scm_spawn_process): New functions. (kw_environment, hw_input, kw_output, kw_error, kw_search_path): New variables. * doc/ref/posix.texi (Processes): Document it. * test-suite/tests/posix.test ("spawn"): New test prefix. * NEWS: Update. Co-authored-by: Ludovic Courtès <ludo@gnu.org> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS15
1 files changed, 14 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 07011c3c6..b3d31cf89 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
Guile NEWS --- history of user-visible changes.
-Copyright (C) 1996-2022 Free Software Foundation, Inc.
+Copyright (C) 1996-2023 Free Software Foundation, Inc.
See the end for copying conditions.
Please send Guile bug reports to bug-guile@gnu.org.
@@ -11,6 +11,19 @@ Changes in 3.0.9 (since 3.0.8)
* New interfaces and functionality
+** New `spawn' procedure to spawn child processes
+
+The new `spawn' procedure creates a child processes executing the given
+program. It lets you control the environment variables of that process
+and redirect its standard input, standard output, and standard error
+streams.
+
+Being implemented in terms of `posix_spawn', it is more portable, more
+robust, and more efficient than the combination of `primitive-fork' and
+`execl'. See "Processes" in the manual for details, and see the 2019
+paper entitled "A fork() in the road" (Andrew Baumann et al.) for
+background information.
+
** `open-file' now supports an "e" flag for O_CLOEXEC
Until now, the high-level `open-file' facility did not provide a way to