unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
From: Josselin Poiret via "Bug reports for GUILE, GNU's Ubiquitous Extension Language" <bug-guile@gnu.org>
To: 52835@debbugs.gnu.org
Cc: Timothy Sample <samplet@ngyro.com>, Josselin Poiret <dev@jpoiret.xyz>
Subject: bug#52835: [PATCH v5 0/3] Move spawning procedures to posix_spawn.
Date: Mon,  5 Sep 2022 08:48:12 +0200	[thread overview]
Message-ID: <cover.1662358976.git.dev@jpoiret.xyz> (raw)
In-Reply-To: <20220528124634.17353-1-dev@jpoiret.xyz>

Hi everyone,

As was discussed on IRC, if we're going to rewrite a non-negligible part of
posix.c, let's at least do it right and use posix_spawn to handle the process
spawning side of things.  This is quite complex to get right in general
(highlighted by this very bug) and so people have already done the hard work for
us.  Additionally, we use Gnulib's posix_spawn, so that it is available on all
supported systems.  I then adjusted all the procedures to use posix_spawn
instead of scm_piped_process and removed the latter, and the tests in
popen.test, posix.test.

There are two inderminates here:

* I don't have anything other than a Linux system to test.  This would need some
feedback for at least Mach and win32.

* This changes the interfaces (for the better, in my opinion): whenever
possible, posix_spawn reports child starting failures as a parent errno, meaning
that for eg. non- existing binaries, system* now throws an exception instead of
returning a pid that will have an exit status code of 127.  This means that
existing code that relies on that behavior will need to be changed, the first
example being the test suite which I adapted to actually check for exceptions
instead.  Some tests were removed because they no longer make sense: in
posix.test, https://bugs.gnu.org/13166, exit code for nonexistent file and
https://bugs.gnu.org/55596 are superseded by "exception for nonexistent file".

Also, I have no experience in using Gnulib so I'm not 100% sure I committed
exactly the right files, I'd love it if someone could check this is ok.

What do you all think about this approach?

Josselin Poiret (3):
  Update gnulib to 0.1.5414-8204d and add posix_spawn, posix_spawnp.
  Add spawn*.
  Move popen and posix procedures to spawn*.

 GNUmakefile                                |    2 +-
 build-aux/announce-gen                     |   69 +-
 build-aux/gendocs.sh                       |   50 +-
 build-aux/git-version-gen                  |   13 +-
 build-aux/gitlog-to-changelog              |    4 +-
 build-aux/gnu-web-doc-update               |    4 +-
 build-aux/gnupload                         |    4 +-
 build-aux/useless-if-before-free           |    6 +-
 build-aux/vc-list-files                    |    2 +-
 doc/gendocs_template                       |    4 +-
 doc/gendocs_template_min                   |    2 +-
 gnulib-local/m4/clock_time.m4.diff         |   12 +-
 lib/Makefile.am                            | 1252 +++++++++-------
 lib/_Noreturn.h                            |    2 +-
 lib/accept.c                               |    2 +-
 lib/accept4.c                              |    4 +-
 lib/access.c                               |   31 +
 lib/alignof.h                              |    2 +-
 lib/alloca.c                               |   35 -
 lib/alloca.in.h                            |    2 +-
 lib/arg-nonnull.h                          |    2 +-
 lib/arpa_inet.in.h                         |    2 +-
 lib/asnprintf.c                            |    2 +-
 lib/assure.h                               |    2 +-
 lib/attribute.h                            |   10 +-
 lib/basename-lgpl.c                        |    2 +-
 lib/basename-lgpl.h                        |    2 +-
 lib/binary-io.c                            |    2 +-
 lib/binary-io.h                            |    4 +-
 lib/bind.c                                 |    2 +-
 lib/btowc.c                                |    2 +-
 lib/byteswap.in.h                          |    2 +-
 lib/c++defs.h                              |    2 +-
 lib/c-ctype.c                              |    2 +-
 lib/c-ctype.h                              |    2 +-
 lib/c-strcase.h                            |    2 +-
 lib/c-strcasecmp.c                         |    2 +-
 lib/c-strcaseeq.h                          |    2 +-
 lib/c-strncasecmp.c                        |    2 +-
 lib/canonicalize-lgpl.c                    |    2 +-
 lib/cdefs.h                                |   76 +-
 lib/ceil.c                                 |    4 +-
 lib/cloexec.c                              |    2 +-
 lib/cloexec.h                              |    2 +-
 lib/close.c                                |    2 +-
 lib/concat-filename.c                      |   73 +
 lib/concat-filename.h                      |   46 +
 lib/connect.c                              |    2 +-
 lib/copysign.c                             |    4 +-
 lib/dirent.in.h                            |   24 +-
 lib/dirfd.c                                |    2 +-
 lib/dirname-lgpl.c                         |    2 +-
 lib/dirname.h                              |    2 +-
 lib/dup2.c                                 |    2 +-
 lib/duplocale.c                            |    4 +-
 lib/dynarray.h                             |    2 +-
 lib/eloop-threshold.h                      |    2 +-
 lib/errno.in.h                             |    2 +-
 lib/fcntl.c                                |    2 +-
 lib/fcntl.in.h                             |    6 +-
 lib/fd-hook.c                              |    2 +-
 lib/fd-hook.h                              |    2 +-
 lib/filename.h                             |    2 +-
 lib/findprog-in.c                          |  399 ++++++
 lib/findprog.h                             |   77 +
 lib/flexmember.h                           |    2 +-
 lib/float+.h                               |    2 +-
 lib/float.c                                |    2 +-
 lib/float.in.h                             |    2 +-
 lib/flock.c                                |    2 +-
 lib/floor.c                                |    4 +-
 lib/free.c                                 |    2 +-
 lib/frexp.c                                |    2 +-
 lib/fstat.c                                |    2 +-
 lib/fsync.c                                |    2 +-
 lib/full-read.c                            |    2 +-
 lib/full-read.h                            |    2 +-
 lib/full-write.c                           |    2 +-
 lib/full-write.h                           |    2 +-
 lib/gai_strerror.c                         |    2 +-
 lib/getaddrinfo.c                          |    2 +-
 lib/getdtablesize.c                        |    2 +-
 lib/getlogin.c                             |    2 +-
 lib/getpeername.c                          |    2 +-
 lib/getrandom.c                            |    2 +-
 lib/getsockname.c                          |    2 +-
 lib/getsockopt.c                           |    2 +-
 lib/gettext.h                              |   15 +-
 lib/hard-locale.c                          |    2 +-
 lib/hard-locale.h                          |    2 +-
 lib/iconv.c                                |    2 +-
 lib/iconv.in.h                             |    2 +-
 lib/iconv_close.c                          |    2 +-
 lib/iconv_open-aix.gperf                   |    2 +-
 lib/iconv_open-hpux.gperf                  |    2 +-
 lib/iconv_open-irix.gperf                  |    2 +-
 lib/iconv_open-osf.gperf                   |    2 +-
 lib/iconv_open-solaris.gperf               |    2 +-
 lib/iconv_open-zos.gperf                   |    2 +-
 lib/iconv_open-zos.h                       |  329 +++++
 lib/iconv_open.c                           |    2 +-
 lib/iconveh.h                              |    7 +-
 lib/idx.h                                  |   22 +-
 lib/inet_ntop.c                            |    2 +-
 lib/inet_pton.c                            |    2 +-
 lib/intprops-internal.h                    |  392 +++++
 lib/intprops.h                             |  359 +----
 lib/inttypes.h                             | 1509 ++++++++++++++++++++
 lib/inttypes.in.h                          |    2 +-
 lib/isfinite.c                             |    4 +-
 lib/isinf.c                                |    4 +-
 lib/isnan.c                                |    2 +-
 lib/isnand-nolibm.h                        |    2 +-
 lib/isnand.c                               |    2 +-
 lib/isnanf-nolibm.h                        |    2 +-
 lib/isnanf.c                               |    2 +-
 lib/isnanl-nolibm.h                        |    2 +-
 lib/isnanl.c                               |    2 +-
 lib/itold.c                                |    2 +-
 lib/langinfo.in.h                          |    2 +-
 lib/lc-charset-dispatch.c                  |    2 +-
 lib/lc-charset-dispatch.h                  |    2 +-
 lib/libc-config.h                          |   13 +-
 lib/libunistring.valgrind                  |    4 +-
 lib/limits.in.h                            |    2 +-
 lib/link.c                                 |    2 +-
 lib/listen.c                               |    2 +-
 lib/localcharset.c                         |    2 +-
 lib/localcharset.h                         |    2 +-
 lib/locale.in.h                            |    2 +-
 lib/localeconv.c                           |    2 +-
 lib/log.c                                  |    4 +-
 lib/log1p.c                                |    4 +-
 lib/lstat.c                                |    2 +-
 lib/malloc.c                               |    2 +-
 lib/malloc/.dirstamp                       |    0
 lib/malloc/dynarray-skeleton.c             |    2 +-
 lib/malloc/dynarray-skeleton.gl.h          |  529 +++++++
 lib/malloc/dynarray.gl.h                   |  174 +++
 lib/malloc/dynarray.h                      |    2 +-
 lib/malloc/dynarray_at_failure.c           |    2 +-
 lib/malloc/dynarray_emplace_enlarge.c      |    2 +-
 lib/malloc/dynarray_finalize.c             |    2 +-
 lib/malloc/dynarray_resize.c               |    2 +-
 lib/malloc/dynarray_resize_clear.c         |    2 +-
 lib/malloc/scratch_buffer.h                |    2 +-
 lib/malloc/scratch_buffer_dupfree.c        |    2 +-
 lib/malloc/scratch_buffer_grow.c           |    2 +-
 lib/malloc/scratch_buffer_grow_preserve.c  |    2 +-
 lib/malloc/scratch_buffer_set_array_size.c |    2 +-
 lib/malloca.c                              |   12 +-
 lib/malloca.h                              |    2 +-
 lib/math.c                                 |    2 +-
 lib/math.in.h                              |   16 +-
 lib/mbrtowc-impl-utf8.h                    |    2 +-
 lib/mbrtowc-impl.h                         |    2 +-
 lib/mbrtowc.c                              |    2 +-
 lib/mbsinit.c                              |    2 +-
 lib/mbtowc-impl.h                          |    2 +-
 lib/mbtowc-lock.c                          |    2 +-
 lib/mbtowc-lock.h                          |    2 +-
 lib/mbtowc.c                               |    2 +-
 lib/memchr.c                               |    2 +-
 lib/memchr.valgrind                        |    2 +-
 lib/mempcpy.c                              |    2 +-
 lib/minmax.h                               |    2 +-
 lib/mkdir.c                                |    4 +-
 lib/mkostemp.c                             |    2 +-
 lib/mktime-internal.h                      |    2 +-
 lib/mktime.c                               |   30 +-
 lib/msvc-inval.c                           |    2 +-
 lib/msvc-inval.h                           |    2 +-
 lib/msvc-nothrow.c                         |    2 +-
 lib/msvc-nothrow.h                         |    2 +-
 lib/netdb.in.h                             |    2 +-
 lib/netinet_in.in.h                        |    2 +-
 lib/nl_langinfo-lock.c                     |    2 +-
 lib/nl_langinfo.c                          |    2 +-
 lib/nproc.c                                |   24 +-
 lib/nproc.h                                |    2 +-
 lib/nstrftime.c                            |   28 +-
 lib/open.c                                 |    2 +-
 lib/pathmax.h                              |    2 +-
 lib/pipe.c                                 |    2 +-
 lib/pipe2.c                                |    2 +-
 lib/poll.c                                 |    2 +-
 lib/poll.in.h                              |    2 +-
 lib/printf-args.c                          |    2 +-
 lib/printf-args.h                          |    2 +-
 lib/printf-parse.c                         |    2 +-
 lib/printf-parse.h                         |    2 +-
 lib/putenv.c                               |    4 +-
 lib/raise.c                                |    2 +-
 lib/rawmemchr.c                            |   78 +-
 lib/rawmemchr.valgrind                     |    2 +-
 lib/read.c                                 |    2 +-
 lib/readlink.c                             |    6 +-
 lib/realloc.c                              |    2 +-
 lib/recv.c                                 |    2 +-
 lib/recvfrom.c                             |    2 +-
 lib/regcomp.c                              |  831 +++++------
 lib/regex.c                                |    3 +-
 lib/regex.h                                |   52 +-
 lib/regex_internal.c                       |   64 +-
 lib/regex_internal.h                       |   51 +-
 lib/regexec.c                              |   95 +-
 lib/rename.c                               |    4 +-
 lib/rmdir.c                                |    2 +-
 lib/round.c                                |    4 +-
 lib/safe-read.c                            |    2 +-
 lib/safe-read.h                            |    2 +-
 lib/safe-write.c                           |    2 +-
 lib/safe-write.h                           |    2 +-
 lib/same-inode.h                           |    2 +-
 lib/sched.h                                |  580 ++++++++
 lib/sched.in.h                             |   99 ++
 lib/scratch_buffer.h                       |    2 +-
 lib/select.c                               |    2 +-
 lib/send.c                                 |    2 +-
 lib/sendto.c                               |    2 +-
 lib/setenv.c                               |    2 +-
 lib/setlocale-lock.c                       |    2 +-
 lib/setlocale_null.c                       |    2 +-
 lib/setlocale_null.h                       |    2 +-
 lib/setsockopt.c                           |    2 +-
 lib/shutdown.c                             |    2 +-
 lib/signal.in.h                            |    2 +-
 lib/signbitd.c                             |    2 +-
 lib/signbitf.c                             |    2 +-
 lib/signbitl.c                             |    2 +-
 lib/size_max.h                             |    2 +-
 lib/snprintf.c                             |    2 +-
 lib/socket.c                               |    2 +-
 lib/sockets.c                              |    4 +-
 lib/sockets.h                              |    2 +-
 lib/spawn.c                                |   34 +
 lib/spawn.h                                | 1499 +++++++++++++++++++
 lib/spawn.in.h                             |  992 +++++++++++++
 lib/spawn_int.h                            |   72 +
 lib/spawni.c                               |  965 +++++++++++++
 lib/spawnp.c                               |   34 +
 lib/stat-time.c                            |    2 +-
 lib/stat-time.h                            |    8 +-
 lib/stat-w32.c                             |    2 +-
 lib/stat-w32.h                             |    2 +-
 lib/stat.c                                 |    2 +-
 lib/stdalign.in.h                          |    2 +-
 lib/stdbool.h                              |  116 ++
 lib/stdbool.in.h                           |   27 +-
 lib/stdckdint.h                            |   38 +
 lib/stdckdint.in.h                         |   37 +
 lib/stddef.in.h                            |    2 +-
 lib/stdint.in.h                            |    2 +-
 lib/stdio-read.c                           |  168 +++
 lib/stdio-write.c                          |  206 +++
 lib/stdio.in.h                             |   86 +-
 lib/stdlib.in.h                            |   66 +-
 lib/stpcpy.c                               |   49 +
 lib/strchrnul.c                            |  142 ++
 lib/strchrnul.valgrind                     |   28 +
 lib/strdup.c                               |    2 +-
 lib/streq.h                                |    2 +-
 lib/strftime.h                             |    4 +-
 lib/striconveh.c                           |  106 +-
 lib/striconveh.h                           |    2 +-
 lib/string.in.h                            |  175 ++-
 lib/stripslash.c                           |    2 +-
 lib/sys-limits.h                           |    2 +-
 lib/sys_file.in.h                          |    2 +-
 lib/sys_random.in.h                        |    8 +-
 lib/sys_select.in.h                        |   15 +-
 lib/sys_socket.c                           |    2 +-
 lib/sys_socket.in.h                        |    2 +-
 lib/sys_stat.in.h                          |   30 +-
 lib/sys_time.in.h                          |    2 +-
 lib/sys_times.in.h                         |    2 +-
 lib/sys_types.in.h                         |    2 +-
 lib/sys_uio.in.h                           |    2 +-
 lib/tempname.c                             |  176 +--
 lib/tempname.h                             |    4 +-
 lib/time-internal.h                        |    4 +-
 lib/time.in.h                              |   13 +-
 lib/time_r.c                               |    2 +-
 lib/time_rz.c                              |    4 +-
 lib/timegm.c                               |    2 +-
 lib/times.c                                |    2 +-
 lib/trunc.c                                |    4 +-
 lib/tzset.c                                |    4 +-
 lib/unistd.c                               |    2 +-
 lib/unistd.in.h                            |   21 +-
 lib/unsetenv.c                             |    2 +-
 lib/vasnprintf.c                           |  241 +---
 lib/vasnprintf.h                           |    2 +-
 lib/verify.h                               |   14 +-
 lib/vsnprintf.c                            |    2 +-
 lib/w32sock.h                              |    2 +-
 lib/warn-on-use.h                          |    8 +-
 lib/wchar.in.h                             |   73 +-
 lib/wcrtomb.c                              |    2 +-
 lib/wctype-h.c                             |    2 +-
 lib/wctype.in.h                            |    2 +-
 lib/windows-initguard.h                    |    2 +-
 lib/windows-spawn.c                        |  727 ++++++++++
 lib/windows-spawn.h                        |  157 ++
 lib/write.c                                |    2 +-
 lib/xalloc-oversized.h                     |    2 +-
 lib/xsize.c                                |    2 +-
 lib/xsize.h                                |    2 +-
 libguile/posix.c                           |  221 +--
 m4/00gnulib.m4                             |    2 +-
 m4/__inline.m4                             |    2 +-
 m4/absolute-header.m4                      |    2 +-
 m4/accept4.m4                              |    2 +-
 m4/access.m4                               |   16 +
 m4/alloca.m4                               |   12 +-
 m4/arpa_inet_h.m4                          |    2 +-
 m4/autobuild.m4                            |    2 +-
 m4/btowc.m4                                |    2 +-
 m4/builtin-expect.m4                       |    2 +-
 m4/byteswap.m4                             |   10 +-
 m4/canonicalize.m4                         |    2 +-
 m4/ceil.m4                                 |    2 +-
 m4/check-math-lib.m4                       |    2 +-
 m4/clock_time.m4                           |   20 +-
 m4/close.m4                                |    2 +-
 m4/codeset.m4                              |    2 +-
 m4/copysign.m4                             |    2 +-
 m4/dirent_h.m4                             |    2 +-
 m4/dirfd.m4                                |    2 +-
 m4/double-slash-root.m4                    |    2 +-
 m4/dup2.m4                                 |    2 +-
 m4/duplocale.m4                            |    2 +-
 m4/eaccess.m4                              |   12 +
 m4/eealloc.m4                              |    2 +-
 m4/environ.m4                              |    2 +-
 m4/errno_h.m4                              |   12 +-
 m4/exponentd.m4                            |    2 +-
 m4/exponentf.m4                            |    2 +-
 m4/exponentl.m4                            |    2 +-
 m4/extensions.m4                           |    2 +-
 m4/extern-inline.m4                        |   28 +-
 m4/fcntl-o.m4                              |    2 +-
 m4/fcntl.m4                                |    2 +-
 m4/fcntl_h.m4                              |    2 +-
 m4/findprog-in.m4                          |   11 +
 m4/flexmember.m4                           |    2 +-
 m4/float_h.m4                              |   22 +-
 m4/flock.m4                                |    2 +-
 m4/floor.m4                                |    2 +-
 m4/fpieee.m4                               |    2 +-
 m4/free.m4                                 |    2 +-
 m4/frexp.m4                                |    2 +-
 m4/fstat.m4                                |    2 +-
 m4/fsync.m4                                |    2 +-
 m4/func.m4                                 |    2 +-
 m4/getaddrinfo.m4                          |    2 +-
 m4/getdtablesize.m4                        |    2 +-
 m4/getlogin.m4                             |    2 +-
 m4/getrandom.m4                            |    2 +-
 m4/gettext.m4                              |  383 +++++
 m4/glibc2.m4                               |   30 +
 m4/glibc21.m4                              |   30 +
 m4/gnulib-cache.m4                         |    8 +-
 m4/gnulib-common.m4                        |  277 +++-
 m4/gnulib-comp.m4                          |  743 ++++++----
 m4/gnulib-tool.m4                          |   10 +-
 m4/host-cpu-c-abi.m4                       |    7 +-
 m4/hostent.m4                              |    2 +-
 m4/iconv.m4                                |   26 +-
 m4/iconv_h.m4                              |   18 +-
 m4/iconv_open-utf.m4                       |    2 +-
 m4/iconv_open.m4                           |    2 +-
 m4/include_next.m4                         |    8 +-
 m4/inet_ntop.m4                            |    2 +-
 m4/inet_pton.m4                            |    2 +-
 m4/intdiv0.m4                              |   84 ++
 m4/intl.m4                                 |  294 ++++
 m4/intldir.m4                              |   19 +
 m4/intlmacosx.m4                           |   51 +
 m4/intmax.m4                               |   33 +
 m4/intmax_t.m4                             |    2 +-
 m4/inttypes-pri.m4                         |   36 +
 m4/inttypes.m4                             |    6 +-
 m4/inttypes_h.m4                           |    2 +-
 m4/isfinite.m4                             |    2 +-
 m4/isinf.m4                                |    2 +-
 m4/isnan.m4                                |    2 +-
 m4/isnand.m4                               |    2 +-
 m4/isnanf.m4                               |    2 +-
 m4/isnanl.m4                               |    2 +-
 m4/langinfo_h.m4                           |    2 +-
 m4/largefile.m4                            |    9 +-
 m4/lcmessage.m4                            |   31 +
 m4/ld-version-script.m4                    |    2 +-
 m4/ldexp.m4                                |    2 +-
 m4/lib-ld.m4                               |    2 +-
 m4/lib-link.m4                             |    8 +-
 m4/lib-prefix.m4                           |    6 +-
 m4/libunistring.m4                         |    2 +-
 m4/limits-h.m4                             |   11 +-
 m4/link.m4                                 |    2 +-
 m4/localcharset.m4                         |    2 +-
 m4/locale-fr.m4                            |    2 +-
 m4/locale-ja.m4                            |    2 +-
 m4/locale-zh.m4                            |    2 +-
 m4/locale_h.m4                             |    2 +-
 m4/localeconv.m4                           |    2 +-
 m4/lock.m4                                 |   37 +
 m4/log.m4                                  |    2 +-
 m4/log1p.m4                                |    2 +-
 m4/longlong.m4                             |  106 ++
 m4/lstat.m4                                |    2 +-
 m4/malloc.m4                               |   13 +-
 m4/malloca.m4                              |    2 +-
 m4/math_h.m4                               |    2 +-
 m4/mathfunc.m4                             |    2 +-
 m4/mbrtowc.m4                              |    2 +-
 m4/mbsinit.m4                              |    2 +-
 m4/mbstate_t.m4                            |    2 +-
 m4/mbtowc.m4                               |    2 +-
 m4/memchr.m4                               |    2 +-
 m4/mempcpy.m4                              |    2 +-
 m4/minmax.m4                               |    2 +-
 m4/mkdir.m4                                |    2 +-
 m4/mkostemp.m4                             |    2 +-
 m4/mktime.m4                               |   31 +-
 m4/mmap-anon.m4                            |    2 +-
 m4/mode_t.m4                               |    2 +-
 m4/msvc-inval.m4                           |    2 +-
 m4/msvc-nothrow.m4                         |    2 +-
 m4/multiarch.m4                            |    2 +-
 m4/netdb_h.m4                              |    2 +-
 m4/netinet_in_h.m4                         |   10 +-
 m4/nl_langinfo.m4                          |    2 +-
 m4/nls.m4                                  |   32 +
 m4/nocrash.m4                              |    2 +-
 m4/nproc.m4                                |    2 +-
 m4/nstrftime.m4                            |    2 +-
 m4/off_t.m4                                |    2 +-
 m4/open-cloexec.m4                         |    2 +-
 m4/open-slash.m4                           |    2 +-
 m4/open.m4                                 |    2 +-
 m4/pathmax.m4                              |    2 +-
 m4/pid_t.m4                                |    2 +-
 m4/pipe.m4                                 |    2 +-
 m4/pipe2.m4                                |    2 +-
 m4/po.m4                                   |  449 ++++++
 m4/poll.m4                                 |    2 +-
 m4/poll_h.m4                               |    2 +-
 m4/posix_spawn.m4                          |  691 +++++++++
 m4/printf-posix.m4                         |   45 +
 m4/printf.m4                               |    2 +-
 m4/progtest.m4                             |   92 ++
 m4/putenv.m4                               |    2 +-
 m4/raise.m4                                |    2 +-
 m4/rawmemchr.m4                            |    2 +-
 m4/read.m4                                 |    2 +-
 m4/readlink.m4                             |    2 +-
 m4/realloc.m4                              |   12 +-
 m4/regex.m4                                |    2 +-
 m4/rename.m4                               |    2 +-
 m4/rmdir.m4                                |    2 +-
 m4/round.m4                                |    2 +-
 m4/safe-read.m4                            |    2 +-
 m4/safe-write.m4                           |    2 +-
 m4/sched_h.m4                              |  106 ++
 m4/select.m4                               |    2 +-
 m4/servent.m4                              |    2 +-
 m4/setenv.m4                               |    2 +-
 m4/setlocale_null.m4                       |    2 +-
 m4/sh-filename.m4                          |   24 +
 m4/signal_h.m4                             |    2 +-
 m4/signbit.m4                              |    2 +-
 m4/size_max.m4                             |    2 +-
 m4/snprintf.m4                             |    2 +-
 m4/socketlib.m4                            |    2 +-
 m4/sockets.m4                              |    2 +-
 m4/socklen.m4                              |    2 +-
 m4/sockpfaf.m4                             |    2 +-
 m4/spawn_h.m4                              |  151 ++
 m4/ssize_t.m4                              |    2 +-
 m4/stat-time.m4                            |    2 +-
 m4/stat.m4                                 |    2 +-
 m4/std-gnu11.m4                            |    2 +-
 m4/stdalign.m4                             |    9 +-
 m4/stdbool.m4                              |  124 +-
 m4/stddef_h.m4                             |   16 +-
 m4/stdint.m4                               |   10 +-
 m4/stdint_h.m4                             |    2 +-
 m4/stdio_h.m4                              |   33 +-
 m4/stdlib_h.m4                             |   16 +-
 m4/stpcpy.m4                               |   25 +
 m4/strchrnul.m4                            |   50 +
 m4/strdup.m4                               |    2 +-
 m4/string_h.m4                             |    6 +-
 m4/sys_file_h.m4                           |    2 +-
 m4/sys_random_h.m4                         |    2 +-
 m4/sys_select_h.m4                         |    2 +-
 m4/sys_socket_h.m4                         |    9 +-
 m4/sys_stat_h.m4                           |    8 +-
 m4/sys_time_h.m4                           |    2 +-
 m4/sys_times_h.m4                          |    2 +-
 m4/sys_types_h.m4                          |    2 +-
 m4/sys_uio_h.m4                            |    2 +-
 m4/tempname.m4                             |    2 +-
 m4/threadlib.m4                            |   64 +-
 m4/time_h.m4                               |    6 +-
 m4/time_r.m4                               |    2 +-
 m4/time_rz.m4                              |    2 +-
 m4/timegm.m4                               |    2 +-
 m4/times.m4                                |    2 +-
 m4/tm_gmtoff.m4                            |    2 +-
 m4/trunc.m4                                |    2 +-
 m4/tzset.m4                                |    2 +-
 m4/uintmax_t.m4                            |   30 +
 m4/unistd_h.m4                             |  191 +--
 m4/vararrays.m4                            |   72 +
 m4/vasnprintf.m4                           |    2 +-
 m4/visibility.m4                           |    2 +-
 m4/vsnprintf.m4                            |    2 +-
 m4/warn-on-use.m4                          |    2 +-
 m4/warnings.m4                             |    2 +-
 m4/wchar_h.m4                              |    6 +-
 m4/wchar_t.m4                              |    2 +-
 m4/wcrtomb.m4                              |    2 +-
 m4/wctype_h.m4                             |    2 +-
 m4/wint_t.m4                               |    2 +-
 m4/write.m4                                |    2 +-
 m4/xsize.m4                                |    2 +-
 m4/year2038.m4                             |   12 +-
 m4/zzgnulib.m4                             |    2 +-
 maint.mk                                   |   68 +-
 module/ice-9/popen.scm                     |   83 +-
 test-suite/tests/popen.test                |   14 +-
 test-suite/tests/posix.test                |   36 +-
 535 files changed, 16353 insertions(+), 3490 deletions(-)
 create mode 100644 lib/access.c
 create mode 100644 lib/concat-filename.c
 create mode 100644 lib/concat-filename.h
 create mode 100644 lib/findprog-in.c
 create mode 100644 lib/findprog.h
 create mode 100644 lib/iconv_open-zos.h
 create mode 100644 lib/intprops-internal.h
 create mode 100644 lib/inttypes.h
 create mode 100644 lib/malloc/.dirstamp
 create mode 100644 lib/malloc/dynarray-skeleton.gl.h
 create mode 100644 lib/malloc/dynarray.gl.h
 create mode 100644 lib/sched.h
 create mode 100644 lib/sched.in.h
 create mode 100644 lib/spawn.c
 create mode 100644 lib/spawn.h
 create mode 100644 lib/spawn.in.h
 create mode 100644 lib/spawn_int.h
 create mode 100644 lib/spawni.c
 create mode 100644 lib/spawnp.c
 create mode 100644 lib/stdbool.h
 create mode 100644 lib/stdckdint.h
 create mode 100644 lib/stdckdint.in.h
 create mode 100644 lib/stdio-read.c
 create mode 100644 lib/stdio-write.c
 create mode 100644 lib/stpcpy.c
 create mode 100644 lib/strchrnul.c
 create mode 100644 lib/strchrnul.valgrind
 create mode 100644 lib/windows-spawn.c
 create mode 100644 lib/windows-spawn.h
 create mode 100644 m4/access.m4
 create mode 100644 m4/eaccess.m4
 create mode 100644 m4/findprog-in.m4
 create mode 100644 m4/gettext.m4
 create mode 100644 m4/glibc2.m4
 create mode 100644 m4/glibc21.m4
 create mode 100644 m4/intdiv0.m4
 create mode 100644 m4/intl.m4
 create mode 100644 m4/intldir.m4
 create mode 100644 m4/intlmacosx.m4
 create mode 100644 m4/intmax.m4
 create mode 100644 m4/inttypes-pri.m4
 create mode 100644 m4/lcmessage.m4
 create mode 100644 m4/lock.m4
 create mode 100644 m4/longlong.m4
 create mode 100644 m4/nls.m4
 create mode 100644 m4/po.m4
 create mode 100644 m4/posix_spawn.m4
 create mode 100644 m4/printf-posix.m4
 create mode 100644 m4/progtest.m4
 create mode 100644 m4/sched_h.m4
 create mode 100644 m4/sh-filename.m4
 create mode 100644 m4/spawn_h.m4
 create mode 100644 m4/stpcpy.m4
 create mode 100644 m4/strchrnul.m4
 create mode 100644 m4/uintmax_t.m4
 create mode 100644 m4/vararrays.m4


base-commit: 61d8dab8eafd498306ce618582aab37497df77b4
-- 
2.37.2






  parent reply	other threads:[~2022-09-05  6:48 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-27 21:25 bug#52835: [PATCH 0/2] Fix spawning a child not setting standard fds properly Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2021-12-27 21:35 ` bug#52835: [PATCH 1/2] Fix child spawning closing standard fds prematurely Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2021-12-27 21:35 ` bug#52835: [PATCH 2/2] Remove unused renumber_file_descriptor Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2021-12-27 21:49   ` bug#52835: [PATCH v2 " Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2021-12-28 15:40 ` bug#52835: [PATCH 0/2] Fix spawning a child not setting standard fds properly Timothy Sample
2021-12-28 17:25   ` Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-02-07 16:55     ` bug#52835: [PATCH v3] Fix child spawning closing standard fds prematurely Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-05-28 12:46       ` bug#52835: [PATCH v4 0/4] Improve safety of start_child and piped-process Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-05-28 12:46         ` bug#52835: [PATCH v4 1/4] Fix child spawning closing standard fds prematurely Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-05-28 12:46         ` bug#52835: [PATCH v4 2/4] Avoid double closes in piped-process Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-05-28 12:46         ` bug#52835: [PATCH v4 3/4] Remove useless closing code in start_child Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-05-28 12:46         ` bug#52835: [PATCH v4 4/4] Make start_child propagate the child errno to the parent Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-09-05  6:48         ` Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language [this message]
2022-09-05  6:48           ` bug#52835: [PATCH v5 1/3] Update gnulib to 0.1.5414-8204d and add posix_spawn, posix_spawnp Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-09-05  6:48           ` bug#52835: [PATCH v5 2/3] Add spawn* Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-09-05  6:48           ` bug#52835: [PATCH v5 3/3] Move popen and posix procedures to spawn* Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-11-29 15:05             ` bug#52835: [PATCH 0/2] Fix spawning a child not setting standard fds properly Ludovic Courtès
2022-12-11 20:16               ` Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-12-12 23:49                 ` Ludovic Courtès
2022-12-22 12:49                   ` bug#52835: [PATCH v6 0/3] Move spawning procedures to posix_spawn Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-12-22 12:49                     ` bug#52835: [PATCH v6 1/3] Add spawn* Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-12-22 12:49                     ` bug#52835: [PATCH v6 2/3] Make system* and piped-process internally use spawn Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-12-22 12:49                     ` bug#52835: [PATCH v6 3/3] Move popen and posix procedures to spawn* Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-12-23 10:53                     ` bug#52835: [PATCH 0/2] Fix spawning a child not setting standard fds properly Ludovic Courtès
2022-12-23 17:15                       ` Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-12-23 17:17                         ` bug#52835: [PATCH v7 1/2] Add spawn* and spawn Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-12-23 17:17                           ` bug#52835: [PATCH v7 2/2] Make system* and piped-process internally use spawn Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2022-12-25 17:04                             ` bug#52835: [PATCH 0/2] Fix spawning a child not setting standard fds properly Ludovic Courtès
2022-12-25 17:03                           ` Ludovic Courtès
2022-12-25 16:58                         ` Ludovic Courtès
2023-01-07 16:07                           ` Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2023-01-07 16:07                             ` bug#52835: [PATCH v8 1/2] Add spawn Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2023-01-07 16:07                               ` bug#52835: [PATCH v8 2/2] Make system* and piped-process internally use spawn Josselin Poiret via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2023-01-12 22:02                             ` bug#52835: [PATCH 0/2] Fix spawning a child not setting standard fds properly Ludovic Courtès
2023-01-13  1:11 ` Andrew Whatson via Bug reports for GUILE, GNU's Ubiquitous Extension Language
2023-01-13 15:20   ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1662358976.git.dev@jpoiret.xyz \
    --to=bug-guile@gnu.org \
    --cc=52835@debbugs.gnu.org \
    --cc=dev@jpoiret.xyz \
    --cc=samplet@ngyro.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).