doc: Consider `stream-null' as a variable.

* doc/ref/srfi-modules.texi (SRFI-41): Use @var{stream-null}, not
  @code{stream-null}.  Use @defvr to introduce `stream-null'.
Fix erroneous `FUNC_NAME' for `scm_array_length'.

* libguile/generalized-arrays.c (scm_array_length): Fix `FUNC_NAME'.
Allow compilation with GMP < 5.0.0.

* libguile/numbers.c (VARARG_MPZ_ITERATOR)[!HAVE_DECL_MPZ_INITS]: New
  macro.
  (mpz_inits, mpz_clears)[!HAVE_DECL_MPZ_INITS]: New functions.
* configure.ac: Check for the declaration of `mpz_inits'.
Add Gnulib commit ID in `NEWS'.
tests: Fix file name canonicalization tests for when $srcdir contains symlinks.

* test-suite/tests/ports.test ("%file-port-name-canonicalization"): Use
  `pass-if-equal' instead of `pass-if'.
  ["relative canonicalization from ice-9"]: Throw to `unresolved' when
  %LOAD-PATH is not canonical.
  ["absolute canonicalization from ice-9"]: Canonicalize the result.
build: Require GMP >= 4.2.

* NEWS, README: Update.
tests: Skip `test-pthread-create-secondary' except on Linux-based systems.

* test-suite/standalone/test-pthread-create-secondary.c: Skip on
  non-Linux-based systems.
Revert "doc: Consider `stream-null' as a variable."

This reverts commit 4a0821a8d5cfff50fef8c119a0d76355b6126009.
doc: Use '@defvr' to introduce 'stream-null'.

* doc/ref/srfi-modules.texi (SRFI-41): Use @defvr to introduce
  'stream-null'.
build: Remove redundant check for `struct timespec'.

* m4/gnulib-cache.m4: Add `time'.
* lib/Makefile.am: Update, still from v0.0-7865-ga828bb2.
* configure.ac: Remove check for `struct timespec', which was redundant
  with Gnulib, and conflicted with pthread-win32's <pthread.h>:
  <http://lists.gnu.org/archive/html/bug-gnulib/2013-03/msg00096.html>.
build: Build and check (ice-9 popen) only when --enable-posix and HAVE_FORK.

Fixes <http://bugs.gnu.org/13848>.
Reported by Jan Schukat <shookie@email.de>.

* configure.ac: Rename `HAVE_FORK' conditional to `BUILD_ICE_9_POPEN'.
  Set it when both $enable_posix and $ac_cv_func_fork are true.
* libguile/posix.c (scm_init_posix): Add the `fork' feature.
* doc/ref/api-options.texi (Common Feature Symbols): Add `fork'.
* doc/ref/posix.texi (Pipes): Add footnote mentioning the `fork'
  feature.
* module/Makefile.am (SCRIPTS_SOURCES): Make `scripts/autofrisk.scm' and
  `scripts/scan-api.scm' conditional on `BUILD_ICE_9_POPEN'.
* test-suite/tests/popen.test (if-supported): New macro.
  Wrap body in `if-supported'.
Augment `.gitignore'.
Add -C command-line option to adjust %load-compiled-path.

* module/ice-9/command-line.scm (compile-shell-switches):
  Implement -C option.
  (*usage*): Add -C option.

* doc/ref/guile-invoke.texi (Command-line Options): Add docs.
Avoid unnecessary peeks for EOF in r6rs-ports.

* libguile/r6rs-ports.c (scm_get_bytevector_n, scm_get_bytevector_n_x,
  scm_get_bytevector_some, scm_get_bytevector_all): Avoid peeking for
  EOF when we already know.
Fix typos in 'string-join' docs: 'string-infix' -> 'strict-infix'.

* doc/ref/api-data.texi (String Constructors): In definition of
  'string-join', change 'string-infix' -> 'strict-infix'.

* libguile/srfi-13.c (scm_string_join): In docstring, change
  'string-infix' -> 'strict-infix'.
Make 'string-append' more efficient and robust.

* libguile/strings.c (scm_string_append): Check for numerical overflow
  while computing the length of the result.  Double-check that we don't
  overflow the result string, and that it is the correct length in the
  end (in case another thread changed the list).  When copying a narrow
  string to a wide result, avoid calling 'scm_i_string_length' and
  'scm_i_string_chars' on each character.
Optimize 'string-join'.

* libguile/srfi-13.c (string-join): Rewrite to call 'scm_string_append'
  only once.