Suggested by Vincent Legoll <vincent.legoll@gmail.com>.
* doc/ref/api-evaluation.texi (Expression Syntax): Add an unquote and an
unquote-splicing example.
* libguile/posix-w32.c: Include gc.h and threads.h.
(proc_record): New structure tag.
<procs, proc_size>: New static variables.
(find_proc, proc_handle, record_proc, delete_proc): New utility
functions.
(start_child): Return value is now pid_t, as it is on Posix
platforms. Record the new process and returns its PID, instead of
returning a handle. Fix the recursive call.
(waitpid, kill, getpriority, setpriority, sched_getaffinity)
(sched_setaffinity): Look up the PID in the recorded subprocesses
before trying to open a process that is not our subprocess. Make
sure any open handle is closed before returning, unless it's our
subprocess.
* m4/mkstemp.m4: Remove.
* lib/mkstemp.c: Remove.
* lib/mkostemp.c: New file.
* m4/mkostemp.m4: New file.
* lib/Makefile.am:
* m4/gnulib-cache.m4:
* m4/gnulib-comp.m4: Remove mkstemp module, replace with mkostemp.
* libguile/fports.h:
* libguile/fports.c (scm_i_mode_to_open_flags): Factor out helper to
parse mode string to open flags.
(scm_open_file_with_encoding): Use the new helper.
* libguile/filesys.c:
(scm_i_mkstemp): Adapt to take optional second argument, being a mode
string. Use mkostemp.
(scm_mkstemp): Backwards compatible shim that calls scm_i_mkstemp.
* doc/ref/posix.texi:
* NEWS: Update.
* module/system/base/compile.scm (call-with-output-file/atomic): Pass
"wb" as mode, to cause O_BINARY to be added on MinGW.
* libguile/net_db.c (SCM_DEFINE_CONSTANT): New helper. Use it to
define constants and avoid the unneeded static variables that were
used before, named "sym_" but actually holding variables. Thanks to
Eli Zaretskii for the report.
* doc/ref/api-options.texi (Common Feature Symbols): Document the popen
feature.
* doc/ref/posix.texi (Pipes): Depend on the popen feature, not fork.
* libguile/posix.c (scm_init_posix): Add popen feature if we can.
* libguile/posix-w32.h:
* libguile/posix-w32.c (kill, waitpid, getpriority, setpriority)
(sched_getaffinity, sched_setaffinity): Add MinGW implementations.
Also, provides macros that on Posix hosts are in sys/wait.h, like
WIFEXITED and WTERMSIG.
(start_child): Add implementation.
* libguile/posix.c (scm_getaffinity, scm_setaffinity): Clean up
docstrings. Obviously if you have the function, you don't need to be
told that you have it in the docstring.
* libguile/posix.c (scm_kill): Only provide if the host has `kill'. An
incompatible change on MinGW, where this function would work only if
the PID was the current PID, but that will be fixed by the next
process.
* configure.ac: Check for getuid, getgid, setuid, and setgid.
* libguile/posix.c (scm_getuid, scm_getgid, scm_setuid, scm_setgid):
Only provide Scheme functions if the OS provides these facilities.
(scm_geteuid, scm_getegid, scm_seteuid, scm_setegid): Provide if the
host has getuid, getgid, etc, instead of being in a MinGW guard.
* meta/uninstalled-env.in (top_builddir): Fix bug whereby
meta/uninstalled-env run within meta-uninstalled-env, as happens
sometimes, would move the prebuilt dir to the front.
* meta/guile.m4: Fixing GUILE_PROGS versioning checks were wrong and
incomplete, leading to false errors like: "... checking for Guile
version >= 2.0.11... configure: error: Guile 2.0.11 required, but
2.1.3 found".
thanks to Colomban Wendling, aka b4n, who also suggested this fix
during a chat on #autotools while helping me wrt another autotool
related problem I was nvestigating.
* doc/ref/api-control.texi (Prompt Primitives): Remove mention of
one-shot continuations, as it's possible to invoke them multiple times
if the continuation is re-entered through other means.
Based on a patch by Andy Stormont <astormont@racktopsystems.com>.
* configure.ac: Check for strtod_l.
* libguile/i18n.c (scm_locale_string_to_integer): Fix style.
(scm_locale_string_to_inexact): Check for strtod_l.
On Darwin, setrlimit is ignored, and these tests do not terminate. There
doesn't seem to be another way to limit the memory allocated by a
process.
* test-suite/standalone/test-stack-overflow: Skip this test on Darwin.
* test-suite/standalone/test-out-of-memory: Skip this test on Darwin.
* module/texinfo/html.scm (itemize, acronym, tag-replacements, rules):
Fix HTML serialization of @itemize and @acronym. Fixes#21772.
* test-suite/tests/texinfo.html.test: New file.
* test-suite/Makefile.am: Add new file.
* libguile/programs.c (try_parse_arity): New helper, to parse bytecode
to determine the minimum arity of a function in a cheaper way than
grovelling through the debug info. Should speed up all thunk? checks
and similar.
(scm_i_program_arity): Simplify.
* libguile/gsubr.h:
* libguile/gsubr.c (scm_i_primitive_arity):
* libguile/foreign.h:
* libguile/foreign.c (scm_i_foreign_arity):
* module/ice-9/psyntax.scm (include-from-path): Canonicalize result of
%search-load-path. Otherwise a relative path passed to `include'
would be treated as relative to the directory of the file that
contains the `include-from-path'. Fixes#21347.
* module/ice-9/psyntax-pp.scm: Regenerate.