guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 47/86: Move subr snarfing macros to gsubr.h.


From: Andy Wingo
Subject: [Guile-commits] 47/86: Move subr snarfing macros to gsubr.h.
Date: Wed, 20 Jun 2018 14:09:37 -0400 (EDT)

wingo pushed a commit to branch master
in repository guile.

commit bf15afa6bfa143119168bdc7a5bc7ff8b619457b
Author: Andy Wingo <address@hidden>
Date:   Wed Jun 20 09:04:55 2018 +0200

    Move subr snarfing macros to gsubr.h.
    
    * libguile/snarf.h: Remove gsubr include and subr snarfers.
    * libguile/gsubr.h (SCM_DEFINE_GSUBR, SCM_DEFINE, SCM_PRIMITIVE_GENERIC):
      (SCM_DEFINE_PUBLIC, SCM_PROC, SCM_REGISTER_PROC, SCM_GPROC): Move
      here.
    * libguile/alist.c:
    * libguile/array-map.c:
    * libguile/arrays.c:
    * libguile/async.c:
    * libguile/atomic.c:
    * libguile/backtrace.c:
    * libguile/bitvectors.c:
    * libguile/boolean.c:
    * libguile/bytevectors.c:
    * libguile/chars.c:
    * libguile/continuations.c:
    * libguile/control.c:
    * libguile/debug-malloc.c:
    * libguile/debug.c:
    * libguile/deprecation.c:
    * libguile/dynl.c:
    * libguile/eq.c:
    * libguile/error.c:
    * libguile/error.h:
    * libguile/eval.c:
    * libguile/evalext.c:
    * libguile/expand.c:
    * libguile/extensions.c:
    * libguile/fdes-finalizers.c:
    * libguile/feature.c:
    * libguile/filesys.c:
    * libguile/finalizers.c:
    * libguile/fluids.c:
    * libguile/foreign-object.c:
    * libguile/foreign.c:
    * libguile/fports.c:
    * libguile/frames.c:
    * libguile/gc.c:
    * libguile/generalized-arrays.c:
    * libguile/generalized-vectors.c:
    * libguile/gettext.c:
    * libguile/guardians.c:
    * libguile/hash.c:
    * libguile/hashtab.c:
    * libguile/hooks.c:
    * libguile/i18n.c:
    * libguile/instructions.c:
    * libguile/intrinsics.c:
    * libguile/ioext.c:
    * libguile/keywords.c:
    * libguile/list.c:
    * libguile/load.c:
    * libguile/loader.c:
    * libguile/macros.c:
    * libguile/memoize.c:
    * libguile/modules.c:
    * libguile/net_db.c:
    * libguile/numbers.c:
    * libguile/objprop.c:
    * libguile/pairs.c:
    * libguile/poll.c:
    * libguile/ports.c:
    * libguile/posix.c:
    * libguile/print.c:
    * libguile/procs.c:
    * libguile/programs.c:
    * libguile/promises.c:
    * libguile/r6rs-ports.c:
    * libguile/random.c:
    * libguile/rdelim.c:
    * libguile/read.c:
    * libguile/regex-posix.c:
    * libguile/rw.c:
    * libguile/scmsigs.c:
    * libguile/simpos.c:
    * libguile/smob.c:
    * libguile/socket.c:
    * libguile/sort.c:
    * libguile/srcprop.c:
    * libguile/srfi-1.c:
    * libguile/srfi-13.c:
    * libguile/srfi-14.c:
    * libguile/srfi-4.c:
    * libguile/srfi-60.c:
    * libguile/stackchk.c:
    * libguile/stacks.c:
    * libguile/stime.c:
    * libguile/strings.c:
    * libguile/strorder.c:
    * libguile/strports.c:
    * libguile/struct.c:
    * libguile/symbols.c:
    * libguile/syntax.c:
    * libguile/threads.c:
    * libguile/throw.c:
    * libguile/trees.c:
    * libguile/unicode.c:
    * libguile/values.c:
    * libguile/variable.c:
    * libguile/vectors.c:
    * libguile/version.c:
    * libguile/vm.c:
    * libguile/vports.c:
    * libguile/weak-table.c:
    * libguile/weak-vector.c: Add gsubr includes.
---
 libguile/alist.c               |  1 +
 libguile/array-map.c           |  1 +
 libguile/arrays.c              |  1 +
 libguile/async.c               |  1 +
 libguile/atomic.c              |  1 +
 libguile/backtrace.c           |  1 +
 libguile/bitvectors.c          |  1 +
 libguile/boolean.c             |  1 +
 libguile/bytevectors.c         |  1 +
 libguile/chars.c               |  1 +
 libguile/continuations.c       |  1 +
 libguile/control.c             |  1 +
 libguile/debug-malloc.c        |  1 +
 libguile/debug.c               |  1 +
 libguile/deprecation.c         |  1 +
 libguile/dynl.c                |  1 +
 libguile/eq.c                  |  1 +
 libguile/error.c               |  1 +
 libguile/error.h               |  3 ++
 libguile/eval.c                |  1 +
 libguile/evalext.c             |  1 +
 libguile/expand.c              |  1 +
 libguile/extensions.c          |  4 ++-
 libguile/fdes-finalizers.c     |  1 +
 libguile/feature.c             |  1 +
 libguile/filesys.c             |  1 +
 libguile/finalizers.c          |  1 +
 libguile/fluids.c              |  1 +
 libguile/foreign-object.c      |  1 +
 libguile/foreign.c             |  1 +
 libguile/fports.c              |  1 +
 libguile/frames.c              |  1 +
 libguile/gc.c                  |  1 +
 libguile/generalized-arrays.c  |  1 +
 libguile/generalized-vectors.c |  5 +--
 libguile/gettext.c             |  1 +
 libguile/gsubr.h               | 76 ++++++++++++++++++++++++++++++++++++++++--
 libguile/guardians.c           |  1 +
 libguile/hash.c                |  1 +
 libguile/hashtab.c             |  1 +
 libguile/hooks.c               |  1 +
 libguile/i18n.c                |  1 +
 libguile/instructions.c        |  1 +
 libguile/intrinsics.c          |  1 +
 libguile/ioext.c               |  1 +
 libguile/keywords.c            |  1 +
 libguile/list.c                |  1 +
 libguile/load.c                |  1 +
 libguile/loader.c              |  1 +
 libguile/macros.c              |  1 +
 libguile/memoize.c             |  1 +
 libguile/modules.c             |  1 +
 libguile/net_db.c              |  1 +
 libguile/numbers.c             |  1 +
 libguile/objprop.c             |  1 +
 libguile/pairs.c               |  2 +-
 libguile/poll.c                |  1 +
 libguile/ports.c               |  1 +
 libguile/posix.c               |  1 +
 libguile/print.c               |  1 +
 libguile/procs.c               |  1 +
 libguile/programs.c            |  1 +
 libguile/promises.c            |  1 +
 libguile/r6rs-ports.c          |  1 +
 libguile/random.c              |  4 +--
 libguile/rdelim.c              |  1 +
 libguile/read.c                |  1 +
 libguile/regex-posix.c         |  1 +
 libguile/rw.c                  |  1 +
 libguile/scmsigs.c             |  1 +
 libguile/simpos.c              |  1 +
 libguile/smob.c                |  1 +
 libguile/snarf.h               | 69 +-------------------------------------
 libguile/socket.c              |  1 +
 libguile/sort.c                |  1 +
 libguile/srcprop.c             |  1 +
 libguile/srfi-1.c              |  1 +
 libguile/srfi-13.c             |  1 +
 libguile/srfi-14.c             |  1 +
 libguile/srfi-4.c              |  1 +
 libguile/srfi-60.c             |  1 +
 libguile/stackchk.c            |  1 +
 libguile/stacks.c              |  1 +
 libguile/stime.c               |  1 +
 libguile/strings.c             |  1 +
 libguile/strorder.c            |  1 +
 libguile/strports.c            |  1 +
 libguile/struct.c              |  1 +
 libguile/symbols.c             |  1 +
 libguile/syntax.c              |  1 +
 libguile/threads.c             |  1 +
 libguile/throw.c               |  1 +
 libguile/trees.c               |  1 +
 libguile/unicode.c             |  1 +
 libguile/values.c              |  1 +
 libguile/variable.c            |  1 +
 libguile/vectors.c             |  1 +
 libguile/version.c             |  1 +
 libguile/vm.c                  |  1 +
 libguile/vports.c              |  1 +
 libguile/weak-table.c          |  1 +
 libguile/weak-vector.c         |  1 +
 102 files changed, 182 insertions(+), 76 deletions(-)

diff --git a/libguile/alist.c b/libguile/alist.c
index a4e279d..3f1d014 100644
--- a/libguile/alist.c
+++ b/libguile/alist.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/eq.h"
 #include "libguile/list.h"
diff --git a/libguile/array-map.c b/libguile/array-map.c
index 923dedd..addd048 100644
--- a/libguile/array-map.c
+++ b/libguile/array-map.c
@@ -29,6 +29,7 @@
 #include <string.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/strings.h"
diff --git a/libguile/arrays.c b/libguile/arrays.c
index 685231c..2ab5df0 100644
--- a/libguile/arrays.c
+++ b/libguile/arrays.c
@@ -31,6 +31,7 @@
 #include "verify.h"
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/__scm.h"
diff --git a/libguile/async.c b/libguile/async.c
index 4879048..abe4c32 100644
--- a/libguile/async.c
+++ b/libguile/async.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/atomics-internal.h"
 #include "libguile/eval.h"
diff --git a/libguile/atomic.c b/libguile/atomic.c
index e5d3ee9..a82cd82 100644
--- a/libguile/atomic.c
+++ b/libguile/atomic.c
@@ -23,6 +23,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/extensions.h"
 #include "libguile/ports.h"
 #include "libguile/atomics-internal.h"
diff --git a/libguile/backtrace.c b/libguile/backtrace.c
index 9b4a630..18ac33c 100644
--- a/libguile/backtrace.c
+++ b/libguile/backtrace.c
@@ -26,6 +26,7 @@
 #include <ctype.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 
 #include <unistd.h>
diff --git a/libguile/bitvectors.c b/libguile/bitvectors.c
index a7be06e..e3af335 100644
--- a/libguile/bitvectors.c
+++ b/libguile/bitvectors.c
@@ -26,6 +26,7 @@
 #include <string.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/__scm.h"
diff --git a/libguile/boolean.c b/libguile/boolean.c
index b23aa32..749703d 100644
--- a/libguile/boolean.c
+++ b/libguile/boolean.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 
 #include "libguile/boolean.h"
 #include "libguile/tags.h"
diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c
index 75d9bca..7669077 100644
--- a/libguile/bytevectors.c
+++ b/libguile/bytevectors.c
@@ -37,6 +37,7 @@
 #include <gmp.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/dynwind.h"
 #include "libguile/extensions.h"
 #include "libguile/bytevectors.h"
diff --git a/libguile/chars.c b/libguile/chars.c
index 2376536..cab87cd 100644
--- a/libguile/chars.c
+++ b/libguile/chars.c
@@ -30,6 +30,7 @@
 #include <unictype.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/chars.h"
 #include "libguile/numbers.h"
diff --git a/libguile/continuations.c b/libguile/continuations.c
index 508ba88..779810d 100644
--- a/libguile/continuations.c
+++ b/libguile/continuations.c
@@ -31,6 +31,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/async.h"
diff --git a/libguile/control.c b/libguile/control.c
index 6a0a19c..fb8f49a 100644
--- a/libguile/control.c
+++ b/libguile/control.c
@@ -23,6 +23,7 @@
 #include <alloca.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/control.h"
 #include "libguile/extensions.h"
diff --git a/libguile/debug-malloc.c b/libguile/debug-malloc.c
index f6dabe7..1ab1aea 100644
--- a/libguile/debug-malloc.c
+++ b/libguile/debug-malloc.c
@@ -24,6 +24,7 @@
 #include <stdio.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/alist.h"
 #include "libguile/numbers.h"
 #include "libguile/strings.h"
diff --git a/libguile/debug.c b/libguile/debug.c
index b0b110a..57fd808 100644
--- a/libguile/debug.c
+++ b/libguile/debug.c
@@ -36,6 +36,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/async.h"
 #include "libguile/eval.h"
 #include "libguile/list.h"
diff --git a/libguile/deprecation.c b/libguile/deprecation.c
index 187fef9..6fba31f 100644
--- a/libguile/deprecation.c
+++ b/libguile/deprecation.c
@@ -28,6 +28,7 @@
 #include <stdarg.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 
 #include "libguile/deprecation.h"
diff --git a/libguile/dynl.c b/libguile/dynl.c
index 59fbd7c..413f2e3 100644
--- a/libguile/dynl.c
+++ b/libguile/dynl.c
@@ -51,6 +51,7 @@ maybe_drag_in_eprintf ()
 #include <string.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/libpath.h"
 #include "libguile/dynl.h"
 #include "libguile/smob.h"
diff --git a/libguile/eq.c b/libguile/eq.c
index e7cbb2f..51f6564 100644
--- a/libguile/eq.c
+++ b/libguile/eq.c
@@ -28,6 +28,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/array-map.h"
 #include "libguile/async.h"
diff --git a/libguile/error.c b/libguile/error.c
index 1301907..907abb6 100644
--- a/libguile/error.c
+++ b/libguile/error.c
@@ -29,6 +29,7 @@
 #include <errno.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/async.h"
 #include "libguile/dynwind.h"
 #include "libguile/list.h"
diff --git a/libguile/error.h b/libguile/error.h
index 81b7a58..883c2db 100644
--- a/libguile/error.h
+++ b/libguile/error.h
@@ -36,9 +36,12 @@ SCM_API SCM scm_misc_error_key;
 
 
 
+/* Snarfing for docs may override SCM_ASSERT; see snarf.h.  */
+#ifndef SCM_ASSERT
 #define SCM_ASSERT(_cond, _arg, _pos, _subr)                   \
   do { if (SCM_UNLIKELY (!(_cond)))                             \
       scm_wrong_type_arg (_subr, _pos, _arg); } while (0)
+#endif
 #define SCM_ASSERT_TYPE(_cond, _arg, _pos, _subr, _msg)                        
\
   do { if (SCM_UNLIKELY (!(_cond)))                                     \
       scm_wrong_type_arg_msg(_subr, _pos, _arg, _msg);  } while (0)
diff --git a/libguile/eval.c b/libguile/eval.c
index 70b682a..d02d938 100644
--- a/libguile/eval.c
+++ b/libguile/eval.c
@@ -27,6 +27,7 @@
 #include <stdarg.h>
 
 #include "libguile/__scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/_scm.h"
diff --git a/libguile/evalext.c b/libguile/evalext.c
index 84b3dde..6f492c7 100644
--- a/libguile/evalext.c
+++ b/libguile/evalext.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/eval.h"
 #include "libguile/list.h"
 #include "libguile/fluids.h"
diff --git a/libguile/expand.c b/libguile/expand.c
index c28ca4e..cc99484 100644
--- a/libguile/expand.c
+++ b/libguile/expand.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/__scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/_scm.h"
diff --git a/libguile/extensions.c b/libguile/extensions.c
index 5bca008..be73c8c 100644
--- a/libguile/extensions.c
+++ b/libguile/extensions.c
@@ -1,6 +1,7 @@
 /* extensions.c - registering and loading extensions.
  *
- * Copyright (C) 2001, 2006, 2009, 2010, 2011 Free Software Foundation, Inc.
+ * Copyright (C) 2001,2006,2009-2011,2018
+ *   Free Software Foundation, Inc.
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -25,6 +26,7 @@
 #include <string.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/dynl.h"
 #include "libguile/dynwind.h"
 #include "libguile/extensions.h"
diff --git a/libguile/fdes-finalizers.c b/libguile/fdes-finalizers.c
index 3195600..3143299 100644
--- a/libguile/fdes-finalizers.c
+++ b/libguile/fdes-finalizers.c
@@ -22,6 +22,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/extensions.h"
diff --git a/libguile/feature.c b/libguile/feature.c
index 5364c1d..ca491f0 100644
--- a/libguile/feature.c
+++ b/libguile/feature.c
@@ -28,6 +28,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/strings.h"
 #include "libguile/fluids.h"
diff --git a/libguile/filesys.c b/libguile/filesys.c
index 0be0b8f..30bd044 100644
--- a/libguile/filesys.c
+++ b/libguile/filesys.c
@@ -80,6 +80,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/async.h"
diff --git a/libguile/finalizers.c b/libguile/finalizers.c
index ead7e8f..eb16f9d 100644
--- a/libguile/finalizers.c
+++ b/libguile/finalizers.c
@@ -35,6 +35,7 @@
 #include "libguile/bdw-gc.h"
 #include "libguile/finalizers.h"
 #include "libguile/gc.h"
+#include "libguile/gsubr.h"
 #include "libguile/init.h"
 #include "libguile/threads.h"
 
diff --git a/libguile/fluids.c b/libguile/fluids.c
index 0a9df1a..773c318 100644
--- a/libguile/fluids.c
+++ b/libguile/fluids.c
@@ -25,6 +25,7 @@
 #include <string.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/alist.h"
 #include "libguile/atomics-internal.h"
diff --git a/libguile/foreign-object.c b/libguile/foreign-object.c
index 9442cf6..7a6a5eb 100644
--- a/libguile/foreign-object.c
+++ b/libguile/foreign-object.c
@@ -28,6 +28,7 @@
 #include "libguile/finalizers.h"
 #include "libguile/foreign-object.h"
 #include "libguile/goops.h"
+#include "libguile/gsubr.h"
 #include "libguile/list.h"
 #include "libguile/numbers.h"
 #include "libguile/procs.h"
diff --git a/libguile/foreign.c b/libguile/foreign.c
index ba7bc21..41be3e5 100644
--- a/libguile/foreign.c
+++ b/libguile/foreign.c
@@ -29,6 +29,7 @@
 #include <errno.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/bytevectors.h"
 #include "libguile/dynwind.h"
diff --git a/libguile/fports.c b/libguile/fports.c
index 6121a0b..24c2ed0 100644
--- a/libguile/fports.c
+++ b/libguile/fports.c
@@ -47,6 +47,7 @@
 #include <full-write.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/async.h"
diff --git a/libguile/frames.c b/libguile/frames.c
index 11eb54e..c19f511 100644
--- a/libguile/frames.c
+++ b/libguile/frames.c
@@ -23,6 +23,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include "_scm.h"
+#include "libguile/gsubr.h"
 #include "boolean.h"
 #include "eval.h"
 #include "extensions.h"
diff --git a/libguile/gc.c b/libguile/gc.c
index f52302a..9c7470d 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -33,6 +33,7 @@
 #include <math.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/eval.h"
 #include "libguile/stime.h"
 #include "libguile/stackchk.h"
diff --git a/libguile/generalized-arrays.c b/libguile/generalized-arrays.c
index d45d206..b521a48 100644
--- a/libguile/generalized-arrays.c
+++ b/libguile/generalized-arrays.c
@@ -28,6 +28,7 @@
 #include <string.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/__scm.h"
 #include "libguile/array-handle.h"
diff --git a/libguile/generalized-vectors.c b/libguile/generalized-vectors.c
index 68c1042..32077bb 100644
--- a/libguile/generalized-vectors.c
+++ b/libguile/generalized-vectors.c
@@ -1,5 +1,5 @@
-/* Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004,
- *   2005, 2006, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, 
Inc.
+/* Copyright (C) 1995-1998,2000-2006,2009-2014,2018
+ *   Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -25,6 +25,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/__scm.h"
 
 #include "libguile/generalized-vectors.h"
diff --git a/libguile/gettext.c b/libguile/gettext.c
index 3de3f5e..a505c2e 100644
--- a/libguile/gettext.c
+++ b/libguile/gettext.c
@@ -22,6 +22,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/feature.h"
 #include "libguile/strings.h"
 #include "libguile/numbers.h"
diff --git a/libguile/gsubr.h b/libguile/gsubr.h
index 83eebc3..5199914 100644
--- a/libguile/gsubr.h
+++ b/libguile/gsubr.h
@@ -3,8 +3,8 @@
 #ifndef SCM_GSUBR_H
 #define SCM_GSUBR_H
 
-/* Copyright (C) 1995, 1996, 1998, 2000, 2001, 2006, 2008, 2009,
- *   2010, 2011, 2013, 2015 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1996,1998,2000-2001,2006,2008,2009-2011,2013,2015,2018
+ *   Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public License
@@ -25,6 +25,7 @@
 
 
 #include "libguile/__scm.h"
+#include "libguile/snarf.h"
 
 
 
@@ -72,6 +73,77 @@ SCM_API SCM scm_c_define_gsubr_with_generic (const char 
*name,
                                             int req, int opt, int rst,
                                             scm_t_subr fcn, SCM *gf);
 
+
+
+/* Casting to a function that can take any number of arguments.  */
+#define SCM_FUNC_CAST_ARBITRARY_ARGS  scm_t_subr
+
+#define SCM_DEFINE_GSUBR(FNAME, PRIMNAME, REQ, OPT, VAR, ARGLIST, DOCSTRING) \
+SCM_SNARF_HERE(\
+SCM_UNUSED static const char s_ ## FNAME [] = PRIMNAME; \
+SCM FNAME ARGLIST\
+)\
+SCM_SNARF_INIT(\
+scm_c_define_gsubr (s_ ## FNAME, REQ, OPT, VAR, \
+                    (SCM_FUNC_CAST_ARBITRARY_ARGS) FNAME); \
+)\
+SCM_SNARF_DOCS(primitive, FNAME, PRIMNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING)
+
+/* Always use the generic subr case.  */
+#define SCM_DEFINE SCM_DEFINE_GSUBR
+
+
+#define SCM_PRIMITIVE_GENERIC(FNAME, PRIMNAME, REQ, OPT, VAR, ARGLIST, 
DOCSTRING) \
+SCM_SNARF_HERE(\
+SCM_UNUSED static const char s_ ## FNAME [] = PRIMNAME; \
+static SCM g_ ## FNAME; \
+SCM FNAME ARGLIST\
+)\
+SCM_SNARF_INIT(\
+g_ ## FNAME = SCM_PACK (0); \
+scm_c_define_gsubr_with_generic (s_ ## FNAME, REQ, OPT, VAR, \
+                                (SCM_FUNC_CAST_ARBITRARY_ARGS) FNAME, \
+                                &g_ ## FNAME); \
+)\
+SCM_SNARF_DOCS(primitive, FNAME, PRIMNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING)
+
+#define SCM_DEFINE_PUBLIC(FNAME, PRIMNAME, REQ, OPT, VAR, ARGLIST, DOCSTRING) \
+SCM_SNARF_HERE(\
+SCM_UNUSED static const char s_ ## FNAME [] = PRIMNAME; \
+SCM FNAME ARGLIST\
+)\
+SCM_SNARF_INIT(\
+scm_c_define_gsubr (s_ ## FNAME, REQ, OPT, VAR, \
+                    (SCM_FUNC_CAST_ARBITRARY_ARGS) FNAME); \
+scm_c_export (s_ ## FNAME, NULL); \
+)\
+SCM_SNARF_DOCS(primitive, FNAME, PRIMNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING)
+
+#define SCM_PROC(RANAME, STR, REQ, OPT, VAR, CFN)  \
+SCM_SNARF_HERE(SCM_UNUSED static const char RANAME[]=STR) \
+SCM_SNARF_INIT(scm_c_define_gsubr (RANAME, REQ, OPT, VAR, \
+                                   (SCM_FUNC_CAST_ARBITRARY_ARGS) CFN))
+
+#define SCM_REGISTER_PROC(RANAME, STR, REQ, OPT, VAR, CFN)  \
+SCM_SNARF_HERE(SCM_UNUSED static const char RANAME[]=STR) \
+SCM_SNARF_INIT(scm_c_define_gsubr (RANAME, REQ, OPT, VAR, \
+                                   (SCM_FUNC_CAST_ARBITRARY_ARGS) CFN);) \
+SCM_SNARF_DOCS(register, CFN, STR, (), REQ, OPT, VAR, \
+               "implemented by the C function \"" #CFN "\"")
+
+#define SCM_GPROC(RANAME, STR, REQ, OPT, VAR, CFN, GF)  \
+SCM_SNARF_HERE(\
+SCM_UNUSED static const char RANAME[]=STR;\
+static SCM GF \
+)SCM_SNARF_INIT(\
+GF = SCM_PACK (0);  /* Dirk:FIXME:: Can we safely use #f instead of 0? */ \
+scm_c_define_gsubr_with_generic (RANAME, REQ, OPT, VAR, \
+                                 (SCM_FUNC_CAST_ARBITRARY_ARGS) CFN, &GF) \
+)
+
+
+
+
 SCM_INTERNAL void scm_init_gsubr (void);
 
 #endif  /* SCM_GSUBR_H */
diff --git a/libguile/guardians.c b/libguile/guardians.c
index 52025b3..7edb396 100644
--- a/libguile/guardians.c
+++ b/libguile/guardians.c
@@ -50,6 +50,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 
diff --git a/libguile/hash.c b/libguile/hash.c
index 21dee0d..18a878d 100644
--- a/libguile/hash.c
+++ b/libguile/hash.c
@@ -32,6 +32,7 @@
 #include <unistr.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/chars.h"
 #include "libguile/pairs.h"
 #include "libguile/ports.h"
diff --git a/libguile/hashtab.c b/libguile/hashtab.c
index 03f71ff..f25543f 100644
--- a/libguile/hashtab.c
+++ b/libguile/hashtab.c
@@ -28,6 +28,7 @@
 #include <assert.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/alist.h"
 #include "libguile/boolean.h"
diff --git a/libguile/hooks.c b/libguile/hooks.c
index dd3766a..338988c 100644
--- a/libguile/hooks.c
+++ b/libguile/hooks.c
@@ -25,6 +25,7 @@
 
 #include <stdio.h>
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 
diff --git a/libguile/i18n.c b/libguile/i18n.c
index d7c4447..9704e07 100644
--- a/libguile/i18n.c
+++ b/libguile/i18n.c
@@ -23,6 +23,7 @@
 #include <alloca.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/extensions.h"
diff --git a/libguile/instructions.c b/libguile/instructions.c
index 19d9dec..9d4826c 100644
--- a/libguile/instructions.c
+++ b/libguile/instructions.c
@@ -23,6 +23,7 @@
 #include <string.h>
 
 #include "_scm.h"
+#include "libguile/gsubr.h"
 #include "threads.h"
 #include "libguile/list.h"
 #include "libguile/numbers.h"
diff --git a/libguile/intrinsics.c b/libguile/intrinsics.c
index 9d2f17f..840747f 100644
--- a/libguile/intrinsics.c
+++ b/libguile/intrinsics.c
@@ -21,6 +21,7 @@
 #endif
 
 #include "_scm.h"
+#include "libguile/gsubr.h"
 #include "boolean.h"
 #include "alist.h"
 #include "cache-internal.h"
diff --git a/libguile/ioext.c b/libguile/ioext.c
index 100d708..a089e46 100644
--- a/libguile/ioext.c
+++ b/libguile/ioext.c
@@ -28,6 +28,7 @@
 #include <errno.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/async.h"
 #include "libguile/dynwind.h"
diff --git a/libguile/keywords.c b/libguile/keywords.c
index f987a52..83e3b87 100644
--- a/libguile/keywords.c
+++ b/libguile/keywords.c
@@ -27,6 +27,7 @@
 #include <stdarg.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/async.h"
 #include "libguile/list.h"
 #include "libguile/pairs.h"
diff --git a/libguile/list.c b/libguile/list.c
index 7c1627a..08b8b51 100644
--- a/libguile/list.c
+++ b/libguile/list.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/numbers.h"
diff --git a/libguile/load.c b/libguile/load.c
index 97a7159..eaaa4ed 100644
--- a/libguile/load.c
+++ b/libguile/load.c
@@ -28,6 +28,7 @@
 #include <stdio.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/alist.h"
 #include "libguile/chars.h"
diff --git a/libguile/loader.c b/libguile/loader.c
index b7c8c94..e7c4f98 100644
--- a/libguile/loader.c
+++ b/libguile/loader.c
@@ -40,6 +40,7 @@
 #include <full-read.h>
 
 #include "_scm.h"
+#include "libguile/gsubr.h"
 #include "bytevectors.h"
 #include "boolean.h"
 #include "elf.h"
diff --git a/libguile/macros.c b/libguile/macros.c
index d7d2007..1ea8aaf 100644
--- a/libguile/macros.c
+++ b/libguile/macros.c
@@ -23,6 +23,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/ports.h"
 #include "libguile/print.h"
diff --git a/libguile/memoize.c b/libguile/memoize.c
index 1a149c5..1c4f05e 100644
--- a/libguile/memoize.c
+++ b/libguile/memoize.c
@@ -28,6 +28,7 @@
 #include <stdio.h>
 
 #include "libguile/__scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/_scm.h"
diff --git a/libguile/modules.c b/libguile/modules.c
index 9ff1ec7..56e34c0 100644
--- a/libguile/modules.c
+++ b/libguile/modules.c
@@ -25,6 +25,7 @@
 #include <stdarg.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 
diff --git a/libguile/net_db.c b/libguile/net_db.c
index b500eb8..75d530d 100644
--- a/libguile/net_db.c
+++ b/libguile/net_db.c
@@ -46,6 +46,7 @@
 #include <arpa/inet.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/feature.h"
diff --git a/libguile/numbers.c b/libguile/numbers.c
index 16b5a66..d722c41 100644
--- a/libguile/numbers.c
+++ b/libguile/numbers.c
@@ -60,6 +60,7 @@
 #include <stdarg.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/feature.h"
 #include "libguile/pairs.h"
diff --git a/libguile/objprop.c b/libguile/objprop.c
index 8f8b7fb..a0fc3b7 100644
--- a/libguile/objprop.c
+++ b/libguile/objprop.c
@@ -23,6 +23,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/alist.h"
 #include "libguile/async.h"
 #include "libguile/hashtab.h"
diff --git a/libguile/pairs.c b/libguile/pairs.c
index 44b627f..6b51135 100644
--- a/libguile/pairs.c
+++ b/libguile/pairs.c
@@ -24,7 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
-
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 
 #include "verify.h"
diff --git a/libguile/poll.c b/libguile/poll.c
index d35a9b5..ab48020 100644
--- a/libguile/poll.c
+++ b/libguile/poll.c
@@ -33,6 +33,7 @@
 #include "libguile/bytevectors.h"
 #include "libguile/error.h"
 #include "libguile/extensions.h"
+#include "libguile/gsubr.h"
 #include "libguile/numbers.h"
 #include "libguile/ports-internal.h"
 #include "libguile/syscalls.h"
diff --git a/libguile/ports.c b/libguile/ports.c
index 5a51360..fd68329 100644
--- a/libguile/ports.c
+++ b/libguile/ports.c
@@ -39,6 +39,7 @@
 #include <striconveh.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/async.h"
diff --git a/libguile/posix.c b/libguile/posix.c
index edf03b0..718a9d9 100644
--- a/libguile/posix.c
+++ b/libguile/posix.c
@@ -63,6 +63,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/async.h"
 #include "libguile/dynwind.h"
diff --git a/libguile/print.c b/libguile/print.c
index b801884..dbca06b 100644
--- a/libguile/print.c
+++ b/libguile/print.c
@@ -31,6 +31,7 @@
 #include <unictype.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/chars.h"
diff --git a/libguile/procs.c b/libguile/procs.c
index 7092748..c168fe4 100644
--- a/libguile/procs.c
+++ b/libguile/procs.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 
 #include "libguile/goops.h"
 #include "libguile/strings.h"
diff --git a/libguile/programs.c b/libguile/programs.c
index 6973384..e502ece 100644
--- a/libguile/programs.c
+++ b/libguile/programs.c
@@ -22,6 +22,7 @@
 
 #include <string.h>
 #include "_scm.h"
+#include "libguile/gsubr.h"
 #include "boolean.h"
 #include "instructions.h"
 #include "alist.h"
diff --git a/libguile/promises.c b/libguile/promises.c
index 20274b2..378028d 100644
--- a/libguile/promises.c
+++ b/libguile/promises.c
@@ -26,6 +26,7 @@
 #include <alloca.h>
 
 #include "libguile/__scm.h"
+#include "libguile/gsubr.h"
 
 #include "libguile/_scm.h"
 #include "libguile/alist.h"
diff --git a/libguile/r6rs-ports.c b/libguile/r6rs-ports.c
index 3db8bd5..cfad4e0 100644
--- a/libguile/r6rs-ports.c
+++ b/libguile/r6rs-ports.c
@@ -27,6 +27,7 @@
 #include <assert.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/bytevectors.h"
 #include "libguile/chars.h"
diff --git a/libguile/random.c b/libguile/random.c
index 66626f7..60279e8 100644
--- a/libguile/random.c
+++ b/libguile/random.c
@@ -25,8 +25,6 @@
 #  include <config.h>
 #endif
 
-#include "libguile/_scm.h"
-
 #include <gmp.h>
 #include <stdio.h>
 #include <math.h>
@@ -34,6 +32,8 @@
 #include <sys/types.h>
 #include <unistd.h>
 
+#include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/smob.h"
 #include "libguile/generalized-arrays.h"
 #include "libguile/list.h"
diff --git a/libguile/rdelim.c b/libguile/rdelim.c
index 40d0073..53990f4 100644
--- a/libguile/rdelim.c
+++ b/libguile/rdelim.c
@@ -21,6 +21,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 
 #include <stdio.h>
diff --git a/libguile/read.c b/libguile/read.c
index 7b98541..d1eba62 100644
--- a/libguile/read.c
+++ b/libguile/read.c
@@ -34,6 +34,7 @@
 #include <alloca.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/bytevectors.h"
diff --git a/libguile/regex-posix.c b/libguile/regex-posix.c
index 8f47912..3b797b1 100644
--- a/libguile/regex-posix.c
+++ b/libguile/regex-posix.c
@@ -36,6 +36,7 @@
 #include <sys/types.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 
 #include <regex.h>
diff --git a/libguile/rw.c b/libguile/rw.c
index b13da1c..fb8a36f 100644
--- a/libguile/rw.c
+++ b/libguile/rw.c
@@ -28,6 +28,7 @@
 #include <string.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/async.h"
 #include "libguile/fports.h"
 #include "libguile/numbers.h"
diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c
index a279734..b502c87 100644
--- a/libguile/scmsigs.c
+++ b/libguile/scmsigs.c
@@ -42,6 +42,7 @@
 #include <full-write.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 
diff --git a/libguile/simpos.c b/libguile/simpos.c
index 3701f79..6163cc5 100644
--- a/libguile/simpos.c
+++ b/libguile/simpos.c
@@ -28,6 +28,7 @@
 #include <unistd.h>  /* for _exit */
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 
 #include "libguile/numbers.h"
 #include "libguile/strings.h"
diff --git a/libguile/smob.c b/libguile/smob.c
index e2ebef8..f710cd6 100644
--- a/libguile/smob.c
+++ b/libguile/smob.c
@@ -31,6 +31,7 @@
 
 #include "libguile/async.h"
 #include "libguile/goops.h"
+#include "libguile/gsubr.h"
 #include "libguile/finalizers.h"
 #include "libguile/instructions.h"
 #include "libguile/numbers.h"
diff --git a/libguile/snarf.h b/libguile/snarf.h
index a81f712..836067b 100644
--- a/libguile/snarf.h
+++ b/libguile/snarf.h
@@ -26,13 +26,9 @@
 
 
 #include <libguile/gc.h>
-#include <libguile/gsubr.h>
 
-/* Macros for snarfing initialization actions from C source. */
-
-/* Casting to a function that can take any number of arguments.  */
-#define SCM_FUNC_CAST_ARBITRARY_ARGS  scm_t_subr
 
+/* Macros for snarfing initialization actions from C source. */
 
 #ifdef SCM_ALIGNED
 /* We support static allocation of some `SCM' objects.  */
@@ -89,69 +85,6 @@ DOCSTRING ^^ }
 # endif
 #endif
 
-#define SCM_DEFINE_GSUBR(FNAME, PRIMNAME, REQ, OPT, VAR, ARGLIST, DOCSTRING) \
-SCM_SNARF_HERE(\
-SCM_UNUSED static const char s_ ## FNAME [] = PRIMNAME; \
-SCM FNAME ARGLIST\
-)\
-SCM_SNARF_INIT(\
-scm_c_define_gsubr (s_ ## FNAME, REQ, OPT, VAR, \
-                    (SCM_FUNC_CAST_ARBITRARY_ARGS) FNAME); \
-)\
-SCM_SNARF_DOCS(primitive, FNAME, PRIMNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING)
-
-/* Always use the generic subr case.  */
-#define SCM_DEFINE SCM_DEFINE_GSUBR
-
-
-#define SCM_PRIMITIVE_GENERIC(FNAME, PRIMNAME, REQ, OPT, VAR, ARGLIST, 
DOCSTRING) \
-SCM_SNARF_HERE(\
-SCM_UNUSED static const char s_ ## FNAME [] = PRIMNAME; \
-static SCM g_ ## FNAME; \
-SCM FNAME ARGLIST\
-)\
-SCM_SNARF_INIT(\
-g_ ## FNAME = SCM_PACK (0); \
-scm_c_define_gsubr_with_generic (s_ ## FNAME, REQ, OPT, VAR, \
-                                (SCM_FUNC_CAST_ARBITRARY_ARGS) FNAME, \
-                                &g_ ## FNAME); \
-)\
-SCM_SNARF_DOCS(primitive, FNAME, PRIMNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING)
-
-#define SCM_DEFINE_PUBLIC(FNAME, PRIMNAME, REQ, OPT, VAR, ARGLIST, DOCSTRING) \
-SCM_SNARF_HERE(\
-SCM_UNUSED static const char s_ ## FNAME [] = PRIMNAME; \
-SCM FNAME ARGLIST\
-)\
-SCM_SNARF_INIT(\
-scm_c_define_gsubr (s_ ## FNAME, REQ, OPT, VAR, \
-                    (SCM_FUNC_CAST_ARBITRARY_ARGS) FNAME); \
-scm_c_export (s_ ## FNAME, NULL); \
-)\
-SCM_SNARF_DOCS(primitive, FNAME, PRIMNAME, ARGLIST, REQ, OPT, VAR, DOCSTRING)
-
-#define SCM_PROC(RANAME, STR, REQ, OPT, VAR, CFN)  \
-SCM_SNARF_HERE(SCM_UNUSED static const char RANAME[]=STR) \
-SCM_SNARF_INIT(scm_c_define_gsubr (RANAME, REQ, OPT, VAR, \
-                                   (SCM_FUNC_CAST_ARBITRARY_ARGS) CFN))
-
-#define SCM_REGISTER_PROC(RANAME, STR, REQ, OPT, VAR, CFN)  \
-SCM_SNARF_HERE(SCM_UNUSED static const char RANAME[]=STR) \
-SCM_SNARF_INIT(scm_c_define_gsubr (RANAME, REQ, OPT, VAR, \
-                                   (SCM_FUNC_CAST_ARBITRARY_ARGS) CFN);) \
-SCM_SNARF_DOCS(register, CFN, STR, (), REQ, OPT, VAR, \
-               "implemented by the C function \"" #CFN "\"")
-
-#define SCM_GPROC(RANAME, STR, REQ, OPT, VAR, CFN, GF)  \
-SCM_SNARF_HERE(\
-SCM_UNUSED static const char RANAME[]=STR;\
-static SCM GF \
-)SCM_SNARF_INIT(\
-GF = SCM_PACK (0);  /* Dirk:FIXME:: Can we safely use #f instead of 0? */ \
-scm_c_define_gsubr_with_generic (RANAME, REQ, OPT, VAR, \
-                                 (SCM_FUNC_CAST_ARBITRARY_ARGS) CFN, &GF) \
-)
-
 #define SCM_KEYWORD(c_name, scheme_name) \
 SCM_SNARF_HERE(static SCM c_name) \
 SCM_SNARF_INIT(c_name = scm_from_locale_keyword (scheme_name))
diff --git a/libguile/socket.c b/libguile/socket.c
index 1ab8158..e23c6af 100644
--- a/libguile/socket.c
+++ b/libguile/socket.c
@@ -47,6 +47,7 @@
 #include <gmp.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/async.h"
 #include "libguile/arrays.h"
diff --git a/libguile/sort.c b/libguile/sort.c
index 17edc7b..6bbd334 100644
--- a/libguile/sort.c
+++ b/libguile/sort.c
@@ -40,6 +40,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/eval.h"
diff --git a/libguile/srcprop.c b/libguile/srcprop.c
index d33731b..ca90e4f 100644
--- a/libguile/srcprop.c
+++ b/libguile/srcprop.c
@@ -25,6 +25,7 @@
 #include <errno.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/async.h"
 #include "libguile/smob.h"
diff --git a/libguile/srfi-1.c b/libguile/srfi-1.c
index d53c7a4..2f1dc4b 100644
--- a/libguile/srfi-1.c
+++ b/libguile/srfi-1.c
@@ -25,6 +25,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/eq.h"
diff --git a/libguile/srfi-13.c b/libguile/srfi-13.c
index d961c50..0d400e0 100644
--- a/libguile/srfi-13.c
+++ b/libguile/srfi-13.c
@@ -29,6 +29,7 @@
 #include <unictype.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include <libguile/deprecation.h>
 #include "libguile/eval.h"
diff --git a/libguile/srfi-14.c b/libguile/srfi-14.c
index 059923b..243da3e 100644
--- a/libguile/srfi-14.c
+++ b/libguile/srfi-14.c
@@ -29,6 +29,7 @@
 #include <unictype.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/chars.h"
diff --git a/libguile/srfi-4.c b/libguile/srfi-4.c
index 9d78a55..b0700e0 100644
--- a/libguile/srfi-4.c
+++ b/libguile/srfi-4.c
@@ -25,6 +25,7 @@
 #include <string.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/__scm.h"
 #include "libguile/bdw-gc.h"
diff --git a/libguile/srfi-60.c b/libguile/srfi-60.c
index c155b8e..74c819f 100644
--- a/libguile/srfi-60.c
+++ b/libguile/srfi-60.c
@@ -25,6 +25,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/eq.h"
 
diff --git a/libguile/stackchk.c b/libguile/stackchk.c
index 28760c4..12df6e9 100644
--- a/libguile/stackchk.c
+++ b/libguile/stackchk.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/numbers.h"
 #include "libguile/ports.h"
 #include "libguile/threads.h"
diff --git a/libguile/stacks.c b/libguile/stacks.c
index e384233..23a2c26 100644
--- a/libguile/stacks.c
+++ b/libguile/stacks.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/control.h"
 #include "libguile/eval.h"
diff --git a/libguile/stime.c b/libguile/stime.c
index aaa1595..8cf92ba 100644
--- a/libguile/stime.c
+++ b/libguile/stime.c
@@ -50,6 +50,7 @@
 #include <unistr.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/async.h"
diff --git a/libguile/strings.c b/libguile/strings.c
index f1a2630..3159ae3 100644
--- a/libguile/strings.c
+++ b/libguile/strings.c
@@ -36,6 +36,7 @@
 #include "striconveh.h"
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/chars.h"
 #include "libguile/strings.h"
diff --git a/libguile/strorder.c b/libguile/strorder.c
index f884657..bfb4d3f 100644
--- a/libguile/strorder.c
+++ b/libguile/strorder.c
@@ -23,6 +23,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/chars.h"
 #include "libguile/pairs.h"
diff --git a/libguile/strports.c b/libguile/strports.c
index 06f7654..d610fd0 100644
--- a/libguile/strports.c
+++ b/libguile/strports.c
@@ -25,6 +25,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 
 #include <stdio.h>
 #include <unistd.h>
diff --git a/libguile/struct.c b/libguile/struct.c
index a7f6699..59de787 100644
--- a/libguile/struct.c
+++ b/libguile/struct.c
@@ -29,6 +29,7 @@
 #define SCM_BUILDING_DEPRECATED_CODE
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/async.h"
 #include "libguile/chars.h"
diff --git a/libguile/symbols.c b/libguile/symbols.c
index 603502f..a4b17bf 100644
--- a/libguile/symbols.c
+++ b/libguile/symbols.c
@@ -26,6 +26,7 @@
 #include <unistr.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/boolean.h"
 #include "libguile/chars.h"
diff --git a/libguile/syntax.c b/libguile/syntax.c
index 2231036..fc84d2f 100644
--- a/libguile/syntax.c
+++ b/libguile/syntax.c
@@ -23,6 +23,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/keywords.h"
 #include "libguile/eval.h"
 #include "libguile/ports.h"
diff --git a/libguile/threads.c b/libguile/threads.c
index 8e3887a..c0b955b 100644
--- a/libguile/threads.c
+++ b/libguile/threads.c
@@ -43,6 +43,7 @@
 #include <gc/gc_mark.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/deprecation.h"
 #include "libguile/extensions.h"
diff --git a/libguile/throw.c b/libguile/throw.c
index 18c0e0d..ff6fb36 100644
--- a/libguile/throw.c
+++ b/libguile/throw.c
@@ -32,6 +32,7 @@
 #include "libguile/smob.h"
 #include "libguile/eval.h"
 #include "libguile/eq.h"
+#include "libguile/gsubr.h"
 #include "libguile/control.h"
 #include "libguile/deprecation.h"
 #include "libguile/backtrace.h"
diff --git a/libguile/trees.c b/libguile/trees.c
index 21bb223..b9da433 100644
--- a/libguile/trees.c
+++ b/libguile/trees.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/eq.h"
 
diff --git a/libguile/unicode.c b/libguile/unicode.c
index 37eb57c..2494f88 100644
--- a/libguile/unicode.c
+++ b/libguile/unicode.c
@@ -28,6 +28,7 @@
 #include <uniname.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/extensions.h"
 
 #include "libguile/unicode.h"
diff --git a/libguile/values.c b/libguile/values.c
index 28cb93d..63531ee 100644
--- a/libguile/values.c
+++ b/libguile/values.c
@@ -22,6 +22,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/eval.h"
 #include "libguile/feature.h"
diff --git a/libguile/variable.c b/libguile/variable.c
index f5c8ef8..8d3bdc7 100644
--- a/libguile/variable.c
+++ b/libguile/variable.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/eq.h"
 #include "libguile/list.h"
 #include "libguile/ports.h"
diff --git a/libguile/vectors.c b/libguile/vectors.c
index 13024ed..d23706a 100644
--- a/libguile/vectors.c
+++ b/libguile/vectors.c
@@ -24,6 +24,7 @@
 #endif
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/pairs.h"
 #include "libguile/eq.h"
 #include "libguile/list.h"
diff --git a/libguile/version.c b/libguile/version.c
index b72cd40..1448891 100644
--- a/libguile/version.c
+++ b/libguile/version.c
@@ -24,6 +24,7 @@
 
 #include <stdio.h>
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/strings.h"
 #include "libguile/numbers.h"
 
diff --git a/libguile/vm.c b/libguile/vm.c
index 404a98b..7dc412f 100644
--- a/libguile/vm.c
+++ b/libguile/vm.c
@@ -39,6 +39,7 @@
 #include <gc/gc_mark.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/atomic.h"
 #include "libguile/atomics-internal.h"
 #include "libguile/cache-internal.h"
diff --git a/libguile/vports.c b/libguile/vports.c
index 7c07f9c..23ec0a5 100644
--- a/libguile/vports.c
+++ b/libguile/vports.c
@@ -28,6 +28,7 @@
 #include <errno.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/boolean.h"
 #include "libguile/eval.h"
 #include "libguile/chars.h"
diff --git a/libguile/weak-table.c b/libguile/weak-table.c
index f564901..cf3727a 100644
--- a/libguile/weak-table.c
+++ b/libguile/weak-table.c
@@ -29,6 +29,7 @@
 #include <gc/gc_typed.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/alist.h"
 #include "libguile/finalizers.h"
 #include "libguile/hash.h"
diff --git a/libguile/weak-vector.c b/libguile/weak-vector.c
index f7305c0..3032dae 100644
--- a/libguile/weak-vector.c
+++ b/libguile/weak-vector.c
@@ -27,6 +27,7 @@
 #include <string.h>
 
 #include "libguile/_scm.h"
+#include "libguile/gsubr.h"
 #include "libguile/extensions.h"
 #include "libguile/list.h"
 #include "libguile/pairs.h"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]