guile-devel
[Top][All Lists]
Advanced

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

Internal visibility


From: Ludovic Courtès
Subject: Internal visibility
Date: Wed, 14 May 2008 05:45:44 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)

Hi,

Neil Jerram <address@hidden> writes:

> I believe that means we're agreed on all points now, so I'll commit
> shortly.

Yes, great.

> That sounds like an excellent idea.  IIUC, that would have an effect
> equivalent to the Windows expansion of SCM_API (__declspec(dllextn) or
> whatever), and it would solve the problem (or rather inelegance) where
> you have an "internal" function but which is used by more than one of
> libguile's source files, and so can't be static.

Yes, exactly:

  http://gcc.gnu.org/wiki/Visibility
  http://people.redhat.com/drepper/dsohowto.pdf

Your enthusiasm gave me an incentive to go ahead and try it out (see
attached patch against `master').  This brings the number of exported
`scm_i_' symbols (as seen with "objdump -T") down from 195 to 68 here,
which should slightly reduce load time since it gives less work to the
loader.  The patch also marks the `scm_init' functions as internal.  It
uses "internal" visibility, not just "hidden" (see "Function Attributes"
node of the GCC manual).

A few functions had to be left public: those used in public macros or
inlines, some functions of `numbers.c' that are used in `srfi-60', and
`scm_i_string_{writable_,}chars ()' functions which have been used
outside (e.g., in G-Wrap, IIRC) as they're too convenient...

I know Guile-VM uses a few internal functions/macros, so Andy will have
to check whether this breaks anything (and propose a new public API if
it does :-)).  It would be great to double-check with other code that
uses Guile.  Then if that looks acceptable, we can commit it, including
to the 1.8 branch.

Thanks,
Ludovic.

>From 62161c44a624171973c319436c547b55de0e92bf Mon Sep 17 00:00:00 2001
From: =?utf-8?q?Ludovic=20Court=C3=A8s?= <address@hidden>
Date: Wed, 14 May 2008 05:20:47 +0200
Subject: [PATCH] Add `SCM_INTERNAL' macro, use it.

---
 libguile/__scm.h                |    9 ++++
 libguile/alist.h                |    4 +-
 libguile/arbiters.h             |    4 +-
 libguile/async.h                |   13 +++---
 libguile/backtrace.h            |    7 ++-
 libguile/boolean.h              |    4 +-
 libguile/chars.h                |    4 +-
 libguile/continuations.h        |   17 ++++----
 libguile/coop-pthreads.h        |    4 +-
 libguile/debug-malloc.h         |    6 +-
 libguile/debug.h                |    6 +-
 libguile/deprecation.h          |    4 +-
 libguile/dynl.h                 |    4 +-
 libguile/dynwind.h              |    8 ++--
 libguile/environments.h         |    6 +-
 libguile/eq.h                   |    4 +-
 libguile/error.h                |    4 +-
 libguile/eval.h                 |   18 ++++----
 libguile/evalext.h              |    4 +-
 libguile/extensions.h           |    4 +-
 libguile/feature.h              |    4 +-
 libguile/filesys.h              |    4 +-
 libguile/fluids.h               |    8 ++--
 libguile/fports.h               |   10 ++--
 libguile/futures.h              |    4 +-
 libguile/gc.h                   |   10 ++--
 libguile/gdbint.h               |    4 +-
 libguile/gettext.h              |    6 +-
 libguile/goops.h                |    9 ++--
 libguile/gsubr.h                |    4 +-
 libguile/guardians.h            |   10 ++--
 libguile/hash.h                 |    4 +-
 libguile/hashtab.h              |   11 +++--
 libguile/hooks.h                |    4 +-
 libguile/i18n.h                 |    2 +-
 libguile/init.h                 |    6 +-
 libguile/ioext.h                |    4 +-
 libguile/keywords.h             |    4 +-
 libguile/lang.h                 |    4 +-
 libguile/list.h                 |    6 +-
 libguile/load.h                 |    6 +-
 libguile/macros.h               |    6 +-
 libguile/mallocs.h              |    4 +-
 libguile/modules.h              |    6 +-
 libguile/net_db.h               |    4 +-
 libguile/numbers.h              |   32 ++++++++--------
 libguile/objects.h              |   10 ++--
 libguile/objprop.h              |    4 +-
 libguile/options.h              |    4 +-
 libguile/pairs.h                |    2 +-
 libguile/ports.h                |   14 +++---
 libguile/posix.h                |    6 +-
 libguile/print.h                |    6 +-
 libguile/private-gc.h           |   78 ++++++++++++++++++++++-----------------
 libguile/procprop.h             |    6 +-
 libguile/procs.h                |    6 +-
 libguile/properties.h           |    4 +-
 libguile/ramap.h                |    4 +-
 libguile/random.h               |   10 ++--
 libguile/rdelim.h               |    4 +-
 libguile/read.h                 |    8 ++--
 libguile/regex-posix.h          |    4 +-
 libguile/root.h                 |    4 +-
 libguile/rw.h                   |    6 +-
 libguile/scmsigs.h              |   10 ++--
 libguile/script.h               |    4 +-
 libguile/simpos.h               |    4 +-
 libguile/socket.h               |    4 +-
 libguile/sort.h                 |    4 +-
 libguile/srcprop.h              |    4 +-
 libguile/srfi-13.h              |    6 +-
 libguile/srfi-14.h              |    6 +-
 libguile/srfi-4.h               |   12 +++---
 libguile/stackchk.h             |    4 +-
 libguile/stacks.h               |    4 +-
 libguile/stime.h                |    4 +-
 libguile/strings.h              |   60 +++++++++++++++---------------
 libguile/strorder.h             |    4 +-
 libguile/strports.h             |    4 +-
 libguile/struct.h               |    8 ++--
 libguile/symbols.h              |    8 ++--
 libguile/threads.h              |   24 ++++++------
 libguile/throw.h                |    4 +-
 libguile/unif.h                 |   10 ++--
 libguile/values.h               |    4 +-
 libguile/variable.h             |    6 +-
 libguile/vectors.h              |   10 ++--
 libguile/version.h.in           |    4 +-
 libguile/vports.h               |    4 +-
 libguile/weaks.h                |   14 +++---
 test-suite/standalone/test-gh.c |    2 +-
 91 files changed, 373 insertions(+), 349 deletions(-)

diff --git a/libguile/__scm.h b/libguile/__scm.h
index b198f9d..76b4448 100644
--- a/libguile/__scm.h
+++ b/libguile/__scm.h
@@ -97,6 +97,15 @@
 #define SCM_LIKELY(_expr)    SCM_EXPECT ((_expr), 1)
 #define SCM_UNLIKELY(_expr)  SCM_EXPECT ((_expr), 0)
 
+/* The SCM_INTERNAL macro makes it possible to explicitly declare a function
+ * as having "internal" linkage.  */
+#if (defined __GNUC__) && \
+  ((__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ == 3))
+# define SCM_INTERNAL  __attribute__ ((__visibility__ ("internal")))
+#else
+# define SCM_INTERNAL
+#endif
+
 
 
 /* {Supported Options}
diff --git a/libguile/alist.h b/libguile/alist.h
index 3d1784c..76cccba 100644
--- a/libguile/alist.h
+++ b/libguile/alist.h
@@ -3,7 +3,7 @@
 #ifndef SCM_ALIST_H
 #define SCM_ALIST_H
 
-/* Copyright (C) 1995,1996,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000, 2006, 2008 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
@@ -42,7 +42,7 @@ SCM_API SCM scm_assoc_set_x (SCM alist, SCM key, SCM val);
 SCM_API SCM scm_assq_remove_x (SCM alist, SCM key);
 SCM_API SCM scm_assv_remove_x (SCM alist, SCM key);
 SCM_API SCM scm_assoc_remove_x (SCM alist, SCM key);
-SCM_API void scm_init_alist (void);
+SCM_INTERNAL void scm_init_alist (void);
 
 #endif  /* SCM_ALIST_H */
 
diff --git a/libguile/arbiters.h b/libguile/arbiters.h
index d042449..7a7dfd3 100644
--- a/libguile/arbiters.h
+++ b/libguile/arbiters.h
@@ -3,7 +3,7 @@
 #ifndef SCM_ARBITERS_H
 #define SCM_ARBITERS_H
 
-/* Copyright (C) 1995,1996,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000, 2006, 2008 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
@@ -29,7 +29,7 @@
 SCM_API SCM scm_make_arbiter (SCM name);
 SCM_API SCM scm_try_arbiter (SCM arb);
 SCM_API SCM scm_release_arbiter (SCM arb);
-SCM_API void scm_init_arbiters (void);
+SCM_INTERNAL void scm_init_arbiters (void);
 
 #endif  /* SCM_ARBITERS_H */
 
diff --git a/libguile/async.h b/libguile/async.h
index a81a98d..c01bde0 100644
--- a/libguile/async.h
+++ b/libguile/async.h
@@ -3,7 +3,7 @@
 #ifndef SCM_ASYNC_H
 #define SCM_ASYNC_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2002, 2004, 2005, 2006 Free 
Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2002, 2004, 2005, 2006, 2008 
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
@@ -38,10 +38,11 @@ SCM_API SCM scm_async (SCM thunk);
 SCM_API SCM scm_async_mark (SCM a);
 SCM_API SCM scm_system_async_mark (SCM a);
 SCM_API SCM scm_system_async_mark_for_thread (SCM a, SCM thread);
-SCM_API void scm_i_queue_async_cell (SCM cell, scm_i_thread *);
-SCM_API int scm_i_setup_sleep (scm_i_thread *,
-                              SCM obj, scm_i_pthread_mutex_t *m, int fd);
-SCM_API void scm_i_reset_sleep (scm_i_thread *);
+SCM_INTERNAL void scm_i_queue_async_cell (SCM cell, scm_i_thread *);
+SCM_INTERNAL int scm_i_setup_sleep (scm_i_thread *,
+                                   SCM obj, scm_i_pthread_mutex_t *m,
+                                   int fd);
+SCM_INTERNAL void scm_i_reset_sleep (scm_i_thread *);
 SCM_API SCM scm_run_asyncs (SCM list_of_a);
 SCM_API SCM scm_noop (SCM args);
 SCM_API SCM scm_call_with_blocked_asyncs (SCM proc);
@@ -77,7 +78,7 @@ extern int scm_i_critical_section_level;
     scm_async_click ();        \
   } while (0)
 
-SCM_API void scm_init_async (void);
+SCM_INTERNAL void scm_init_async (void);
 
 #if (SCM_ENABLE_DEPRECATED == 1)
 
diff --git a/libguile/backtrace.h b/libguile/backtrace.h
index b4033de..e11cb85 100644
--- a/libguile/backtrace.h
+++ b/libguile/backtrace.h
@@ -3,7 +3,7 @@
 #ifndef SCM_BACKTRACE_H
 #define SCM_BACKTRACE_H
 
-/* Copyright (C) 1996,1998,1999,2000,2001, 2004, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1996,1998,1999,2000,2001, 2004, 2006, 2008 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
@@ -27,7 +27,8 @@
 SCM_API SCM scm_the_last_stack_fluid_var;
 
 SCM_API void scm_display_error_message (SCM message, SCM args, SCM port);
-SCM_API void scm_i_display_error (SCM stack, SCM port, SCM subr, SCM message, 
SCM args, SCM rest);
+SCM_INTERNAL void scm_i_display_error (SCM stack, SCM port, SCM subr,
+                                      SCM message, SCM args, SCM rest);
 SCM_API SCM scm_display_error (SCM stack, SCM port, SCM subr, SCM message, SCM 
args, SCM rest);
 SCM_API SCM scm_display_application (SCM frame, SCM port, SCM indent);
 SCM_API SCM scm_display_backtrace (SCM stack, SCM port, SCM first, SCM depth);
@@ -38,7 +39,7 @@ SCM_API SCM scm_backtrace_with_highlights (SCM highlights);
 SCM_API SCM scm_set_print_params_x (SCM params);
 #endif
 
-SCM_API void scm_init_backtrace (void);
+SCM_INTERNAL void scm_init_backtrace (void);
 
 #endif  /* SCM_BACKTRACE_H */
 
diff --git a/libguile/boolean.h b/libguile/boolean.h
index 3dc82e1..1388c2f 100644
--- a/libguile/boolean.h
+++ b/libguile/boolean.h
@@ -3,7 +3,7 @@
 #ifndef SCM_BOOLEAN_H
 #define SCM_BOOLEAN_H
 
-/* Copyright (C) 1995,1996,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000, 2006, 2008 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
@@ -43,7 +43,7 @@ SCM_API int scm_to_bool (SCM x);
 SCM_API SCM scm_not (SCM x);
 SCM_API SCM scm_boolean_p (SCM obj);
 
-SCM_API void scm_init_boolean (void);
+SCM_INTERNAL void scm_init_boolean (void);
 
 #endif  /* SCM_BOOLEAN_H */
 
diff --git a/libguile/chars.h b/libguile/chars.h
index 1a139e9..97c611a 100644
--- a/libguile/chars.h
+++ b/libguile/chars.h
@@ -3,7 +3,7 @@
 #ifndef SCM_CHARS_H
 #define SCM_CHARS_H
 
-/* Copyright (C) 1995,1996,2000,2001,2004, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000,2001,2004, 2006, 2008 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
@@ -62,7 +62,7 @@ SCM_API SCM scm_char_upcase (SCM chr);
 SCM_API SCM scm_char_downcase (SCM chr);
 SCM_API int scm_c_upcase (unsigned int c);
 SCM_API int scm_c_downcase (unsigned int c);
-SCM_API void scm_init_chars (void);
+SCM_INTERNAL void scm_init_chars (void);
 
 #endif  /* SCM_CHARS_H */
 
diff --git a/libguile/continuations.h b/libguile/continuations.h
index f6fb96a..1a648dd 100644
--- a/libguile/continuations.h
+++ b/libguile/continuations.h
@@ -3,7 +3,7 @@
 #ifndef SCM_CONTINUATIONS_H
 #define SCM_CONTINUATIONS_H
 
-/* Copyright (C) 1995,1996,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000,2001, 2006, 2008 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
@@ -90,14 +90,15 @@ SCM_API SCM scm_make_continuation (int *first);
 SCM_API void *scm_c_with_continuation_barrier (void *(*func)(void*), void *);
 SCM_API SCM scm_with_continuation_barrier (SCM proc);
 
-SCM_API SCM scm_i_with_continuation_barrier (scm_t_catch_body body,
-                                            void *body_data,
-                                            scm_t_catch_handler handler,
-                                            void *handler_data,
-                                            scm_t_catch_handler 
pre_unwind_handler,
-                                            void *pre_unwind_handler_data);
+SCM_INTERNAL SCM
+scm_i_with_continuation_barrier (scm_t_catch_body body,
+                                void *body_data,
+                                scm_t_catch_handler handler,
+                                void *handler_data,
+                                scm_t_catch_handler pre_unwind_handler,
+                                void *pre_unwind_handler_data);
 
-SCM_API void scm_init_continuations (void);
+SCM_INTERNAL void scm_init_continuations (void);
 
 #endif  /* SCM_CONTINUATIONS_H */
 
diff --git a/libguile/coop-pthreads.h b/libguile/coop-pthreads.h
index 9134874..cc1f75a 100644
--- a/libguile/coop-pthreads.h
+++ b/libguile/coop-pthreads.h
@@ -3,7 +3,7 @@
 #ifndef SCM_COOP_PTHREADS_H
 #define SCM_COOP_PTHREADS_H
 
-/* Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2006, 2008 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
@@ -70,7 +70,7 @@ SCM_API int scm_i_switch_counter;
 #define SCM_SET_THREAD_LOCAL_DATA(ptr) (scm_i_copt_set_thread_data (ptr))
 
 SCM_API void *scm_i_copt_thread_data;
-SCM_API void scm_i_copt_set_thread_data (void *data);
+SCM_INTERNAL void scm_i_copt_set_thread_data (void *data);
 
 #endif  /* SCM_COOP_PTHREAD_H */
 
diff --git a/libguile/debug-malloc.h b/libguile/debug-malloc.h
index 444f06d..1aa5221 100644
--- a/libguile/debug-malloc.h
+++ b/libguile/debug-malloc.h
@@ -3,7 +3,7 @@
 #ifndef SCM_DEBUG_MALLOC_H
 #define SCM_DEBUG_MALLOC_H
 
-/* Copyright (C) 2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2000,2001, 2006, 2008 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
@@ -32,8 +32,8 @@ SCM_API void scm_malloc_reregister (void *obj, void *new, 
const char *what);
 
 SCM_API SCM scm_malloc_stats (void);
 
-SCM_API void scm_debug_malloc_prehistory (void);
-SCM_API void scm_init_debug_malloc (void);
+SCM_INTERNAL void scm_debug_malloc_prehistory (void);
+SCM_INTERNAL void scm_init_debug_malloc (void);
 
 #endif  /* SCM_DEBUG_MALLOC_H */
 
diff --git a/libguile/debug.h b/libguile/debug.h
index 79afa4d..6077162 100644
--- a/libguile/debug.h
+++ b/libguile/debug.h
@@ -3,7 +3,7 @@
 #ifndef SCM_DEBUG_H
 #define SCM_DEBUG_H
 
-/* Copyright (C) 1995,1996,1998,1999,2000,2001,2002,2004
+/* Copyright (C) 1995,1996,1998,1999,2000,2001,2002,2004,2008
  * Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
@@ -150,8 +150,8 @@ SCM_API SCM scm_evaluator_traps (SCM setting);
 SCM_API SCM scm_debug_options (SCM setting);
 SCM_API SCM scm_make_debugobj (scm_t_debug_frame *debug);
 
-SCM_API SCM scm_i_unmemoize_expr (SCM memoized);
-SCM_API void scm_init_debug (void);
+SCM_INTERNAL SCM scm_i_unmemoize_expr (SCM memoized);
+SCM_INTERNAL void scm_init_debug (void);
 
 #ifdef GUILE_DEBUG
 SCM_API SCM scm_memcons (SCM car, SCM cdr, SCM env);
diff --git a/libguile/deprecation.h b/libguile/deprecation.h
index 53500ee..7885327 100644
--- a/libguile/deprecation.h
+++ b/libguile/deprecation.h
@@ -3,7 +3,7 @@
 #ifndef SCM_DEPRECATION_H
 #define SCM_DEPRECATION_H
 
-/* Copyright (C) 2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2008 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
@@ -41,7 +41,7 @@ SCM_API SCM scm_issue_deprecation_warning (SCM msgs);
 #endif
 
 SCM_API SCM scm_include_deprecated_features (void);
-SCM_API void scm_init_deprecation (void);
+SCM_INTERNAL void scm_init_deprecation (void);
 
 #endif  /* SCM_DEPRECATION_H */
 
diff --git a/libguile/dynl.h b/libguile/dynl.h
index 6936afd..72dc92e 100644
--- a/libguile/dynl.h
+++ b/libguile/dynl.h
@@ -3,7 +3,7 @@
 #ifndef SCM_DYNL_H
 #define SCM_DYNL_H
 
-/* Copyright (C) 1996,1998,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1998,2000,2001, 2006, 2008 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
@@ -33,7 +33,7 @@ SCM_API SCM scm_dynamic_func (SCM symb, SCM dobj);
 SCM_API SCM scm_dynamic_call (SCM symb, SCM dobj);
 SCM_API SCM scm_dynamic_args_call (SCM symb, SCM dobj, SCM args);
 
-SCM_API void scm_init_dynamic_linking (void);
+SCM_INTERNAL void scm_init_dynamic_linking (void);
 
 #endif  /* SCM_DYNL_H */
 
diff --git a/libguile/dynwind.h b/libguile/dynwind.h
index 9e5390b..dd39dae 100644
--- a/libguile/dynwind.h
+++ b/libguile/dynwind.h
@@ -3,7 +3,7 @@
 #ifndef SCM_DYNWIND_H
 #define SCM_DYNWIND_H
 
-/* Copyright (C) 1995,1996,1998,1999,2000,2003,2004, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,1999,2000,2003,2004, 2006, 2008 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
@@ -36,9 +36,9 @@ SCM_API SCM scm_internal_dynamic_wind (scm_t_guard before,
                                       void *inner_data,
                                       void *guard_data);
 SCM_API void scm_dowinds (SCM to, long delta);
-SCM_API void scm_i_dowinds (SCM to, long delta,
-                           void (*turn_func) (void *), void *data);
-SCM_API void scm_init_dynwind (void);
+SCM_INTERNAL void scm_i_dowinds (SCM to, long delta,
+                                void (*turn_func) (void *), void *data);
+SCM_INTERNAL void scm_init_dynwind (void);
 
 SCM_API void scm_swap_bindings (SCM vars, SCM vals);
 
diff --git a/libguile/environments.h b/libguile/environments.h
index dd698b7..10d42a7 100644
--- a/libguile/environments.h
+++ b/libguile/environments.h
@@ -3,7 +3,7 @@
 #ifndef SCM_ENVIRONMENTS_H
 #define SCM_ENVIRONMENTS_H
 
-/* Copyright (C) 1999,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1999,2000, 2006, 2008 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
@@ -122,8 +122,8 @@ SCM_API SCM scm_environment_observe_weak (SCM env, SCM 
proc);
 SCM_API SCM scm_c_environment_observe (SCM env, scm_environment_observer proc, 
SCM data, int weak_p);
 SCM_API SCM scm_environment_unobserve (SCM token);
 
-SCM_API void scm_environments_prehistory (void);
-SCM_API void scm_init_environments (void);
+SCM_INTERNAL void scm_environments_prehistory (void);
+SCM_INTERNAL void scm_init_environments (void);
 
 
 
diff --git a/libguile/eq.h b/libguile/eq.h
index da5a71c..af6959f 100644
--- a/libguile/eq.h
+++ b/libguile/eq.h
@@ -3,7 +3,7 @@
 #ifndef SCM_EQ_H
 #define SCM_EQ_H
 
-/* Copyright (C) 1995,1996,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000, 2006, 2008 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
@@ -29,7 +29,7 @@
 SCM_API SCM scm_eq_p (SCM x, SCM y);
 SCM_API SCM scm_eqv_p (SCM x, SCM y);
 SCM_API SCM scm_equal_p (SCM x, SCM y);
-SCM_API void scm_init_eq (void);
+SCM_INTERNAL void scm_init_eq (void);
 
 #endif  /* SCM_EQ_H */
 
diff --git a/libguile/error.h b/libguile/error.h
index 7ba0c4b..042fb4d 100644
--- a/libguile/error.h
+++ b/libguile/error.h
@@ -3,7 +3,7 @@
 #ifndef SCM_ERROR_H
 #define SCM_ERROR_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2002, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2002, 2006, 2008 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
@@ -57,7 +57,7 @@ SCM_API void scm_wrong_type_arg_msg (const char *subr, int 
pos,
 SCM_API void scm_memory_error (const char *subr) SCM_NORETURN;
 SCM_API void scm_misc_error (const char *subr, const char *message,
                             SCM args) SCM_NORETURN;
-SCM_API void scm_init_error (void);
+SCM_INTERNAL void scm_init_error (void);
 
 #endif  /* SCM_ERROR_H */
 
diff --git a/libguile/eval.h b/libguile/eval.h
index 247cf16..bf6279b 100644
--- a/libguile/eval.h
+++ b/libguile/eval.h
@@ -3,7 +3,7 @@
 #ifndef SCM_EVAL_H
 #define SCM_EVAL_H
 
-/* Copyright (C) 1995,1996,1998,1999,2000,2001,2002,2003,2004
+/* Copyright (C) 1995,1996,1998,1999,2000,2001,2002,2003,2004,2008
  * Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
@@ -152,7 +152,7 @@ SCM_API SCM scm_apply_0 (SCM proc, SCM args);
 SCM_API SCM scm_apply_1 (SCM proc, SCM arg1, SCM args);
 SCM_API SCM scm_apply_2 (SCM proc, SCM arg1, SCM arg2, SCM args);
 SCM_API SCM scm_apply_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM args);
-SCM_API SCM scm_i_call_closure_0 (SCM proc);
+SCM_INTERNAL SCM scm_i_call_closure_0 (SCM proc);
 SCM_API scm_t_trampoline_0 scm_trampoline_0 (SCM proc);
 SCM_API scm_t_trampoline_1 scm_trampoline_1 (SCM proc);
 SCM_API scm_t_trampoline_2 scm_trampoline_2 (SCM proc);
@@ -167,18 +167,18 @@ SCM_API SCM scm_force (SCM x);
 SCM_API SCM scm_promise_p (SCM x);
 SCM_API SCM scm_cons_source (SCM xorig, SCM x, SCM y);
 SCM_API SCM scm_copy_tree (SCM obj);
-SCM_API SCM scm_i_eval_x (SCM exp, SCM env);
-SCM_API SCM scm_i_eval (SCM exp, SCM env);
+SCM_API SCM scm_i_eval_x (SCM exp, SCM env) /* not internal */;
+SCM_INTERNAL SCM scm_i_eval (SCM exp, SCM env);
 SCM_API SCM scm_primitive_eval (SCM exp);
 SCM_API SCM scm_primitive_eval_x (SCM exp);
 SCM_API SCM scm_eval (SCM exp, SCM module);
 SCM_API SCM scm_eval_x (SCM exp, SCM module);
 
-SCM_API void scm_i_print_iloc (SCM /*iloc*/, SCM /*port*/);
-SCM_API void scm_i_print_isym (SCM /*isym*/, SCM /*port*/);
-SCM_API SCM scm_i_unmemocopy_expr (SCM expr, SCM env);
-SCM_API SCM scm_i_unmemocopy_body (SCM forms, SCM env);
-SCM_API void scm_init_eval (void);
+SCM_INTERNAL void scm_i_print_iloc (SCM /*iloc*/, SCM /*port*/);
+SCM_INTERNAL void scm_i_print_isym (SCM /*isym*/, SCM /*port*/);
+SCM_INTERNAL SCM scm_i_unmemocopy_expr (SCM expr, SCM env);
+SCM_INTERNAL SCM scm_i_unmemocopy_body (SCM forms, SCM env);
+SCM_INTERNAL void scm_init_eval (void);
 
 
 #if (SCM_ENABLE_DEPRECATED == 1)
diff --git a/libguile/evalext.h b/libguile/evalext.h
index e9b442e..a6a4a9f 100644
--- a/libguile/evalext.h
+++ b/libguile/evalext.h
@@ -3,7 +3,7 @@
 #ifndef SCM_EVALEXT_H
 #define SCM_EVALEXT_H
 
-/* Copyright (C) 1998,1999,2000, 2003, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1998,1999,2000, 2003, 2006, 2008 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
@@ -28,7 +28,7 @@
 
 SCM_API SCM scm_defined_p (SCM sym, SCM env);
 SCM_API SCM scm_self_evaluating_p (SCM obj);
-SCM_API void scm_init_evalext (void);
+SCM_INTERNAL void scm_init_evalext (void);
 
 #if (SCM_ENABLE_DEPRECATED == 1)
 
diff --git a/libguile/extensions.h b/libguile/extensions.h
index 294dcad..596b43a 100644
--- a/libguile/extensions.h
+++ b/libguile/extensions.h
@@ -3,7 +3,7 @@
 #ifndef SCM_EXTENSIONS_H
 #define SCM_EXTENSIONS_H
 
-/* Copyright (C) 2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2008 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
@@ -32,7 +32,7 @@ SCM_API void scm_c_register_extension (const char *lib, const 
char *init,
 SCM_API void scm_c_load_extension (const char *lib, const char *init);
 SCM_API SCM scm_load_extension (SCM lib, SCM init);
 
-SCM_API void scm_init_extensions (void);
+SCM_INTERNAL void scm_init_extensions (void);
 
 #endif  /* SCM_EXTENSIONS_H */
 
diff --git a/libguile/feature.h b/libguile/feature.h
index 9c61f8c..8c6371e 100644
--- a/libguile/feature.h
+++ b/libguile/feature.h
@@ -3,7 +3,7 @@
 #ifndef SCM_FEATURE_H
 #define SCM_FEATURE_H
 
-/* Copyright (C) 1995,1996,1999,2000,2001, 2006, 2007 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1999,2000,2001, 2006, 2007, 2008 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
@@ -28,7 +28,7 @@ SCM_API void scm_add_feature (const char* str);
 SCM_API SCM scm_program_arguments (void);
 SCM_API void scm_set_program_arguments (int argc, char **argv, char *first);
 SCM_API SCM scm_set_program_arguments_scm (SCM lst);
-SCM_API void scm_init_feature (void);
+SCM_INTERNAL void scm_init_feature (void);
 
 #endif  /* SCM_FEATURE_H */
 
diff --git a/libguile/filesys.h b/libguile/filesys.h
index 6534da9..a38a5b5 100644
--- a/libguile/filesys.h
+++ b/libguile/filesys.h
@@ -3,7 +3,7 @@
 #ifndef SCM_FILESYS_H
 #define SCM_FILESYS_H
 
-/* Copyright (C) 1995,1997,1998,1999,2000,2001, 2006 Free Software Foundation, 
Inc.
+/* Copyright (C) 1995,1997,1998,1999,2000,2001, 2006, 2008 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
@@ -65,7 +65,7 @@ SCM_API SCM scm_copy_file (SCM oldfile, SCM newfile);
 SCM_API SCM scm_dirname (SCM filename);
 SCM_API SCM scm_basename (SCM filename, SCM suffix);
 
-SCM_API void scm_init_filesys (void);
+SCM_INTERNAL void scm_init_filesys (void);
 
 #endif  /* SCM_FILESYS_H */
 
diff --git a/libguile/fluids.h b/libguile/fluids.h
index cabce46..c48a8c3 100644
--- a/libguile/fluids.h
+++ b/libguile/fluids.h
@@ -3,7 +3,7 @@
 #ifndef SCM_FLUIDS_H
 #define SCM_FLUIDS_H
 
-/* Copyright (C) 1996,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996,2000,2001, 2006, 2008 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
@@ -82,10 +82,10 @@ SCM_API void *scm_c_with_dynamic_state (SCM state,
                                        void *(*func)(void *), void *data);
 SCM_API SCM scm_with_dynamic_state (SCM state, SCM proc);
 
-SCM_API SCM scm_i_make_initial_dynamic_state (void);
+SCM_INTERNAL SCM scm_i_make_initial_dynamic_state (void);
 
-SCM_API void scm_fluids_prehistory (void);
-SCM_API void scm_init_fluids (void);
+SCM_INTERNAL void scm_fluids_prehistory (void);
+SCM_INTERNAL void scm_init_fluids (void);
 
 #endif  /* SCM_FLUIDS_H */
 
diff --git a/libguile/fports.h b/libguile/fports.h
index 6341067..c737b1e 100644
--- a/libguile/fports.h
+++ b/libguile/fports.h
@@ -3,7 +3,7 @@
 #ifndef SCM_FPORTS_H
 #define SCM_FPORTS_H
 
-/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001, 2006, 2008 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
@@ -53,13 +53,13 @@ SCM_API void scm_evict_ports (int fd);
 SCM_API SCM scm_open_file (SCM filename, SCM modes);
 SCM_API SCM scm_fdes_to_port (int fdes, char *mode, SCM name);
 SCM_API SCM scm_file_port_p (SCM obj);
-SCM_API void scm_init_fports (void);
+SCM_INTERNAL void scm_init_fports (void);
 
 /* internal functions */
 
-SCM_API SCM scm_i_fdes_to_port (int fdes, long mode_bits, SCM name);
-SCM_API int scm_i_fport_truncate (SCM, SCM);
-SCM_API SCM scm_i_fport_seek (SCM, SCM, int);
+SCM_INTERNAL SCM scm_i_fdes_to_port (int fdes, long mode_bits, SCM name);
+SCM_INTERNAL int scm_i_fport_truncate (SCM, SCM);
+SCM_INTERNAL SCM scm_i_fport_seek (SCM, SCM, int);
 
 
 #endif  /* SCM_FPORTS_H */
diff --git a/libguile/futures.h b/libguile/futures.h
index dffb38d..95916f3 100644
--- a/libguile/futures.h
+++ b/libguile/futures.h
@@ -3,7 +3,7 @@
 #ifndef SCM_FUTURES_H
 #define SCM_FUTURES_H
 
-/* Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2002, 2003, 2006, 2008 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
@@ -73,7 +73,7 @@ SCM_API scm_t_bits scm_tc16_future;
 
 extern SCM *scm_loc_sys_thread_handler;
 
-SCM_API SCM scm_i_make_future (SCM thunk);
+SCM_INTERNAL SCM scm_i_make_future (SCM thunk);
 SCM_API SCM scm_make_future (SCM thunk);
 SCM_API SCM scm_future_ref (SCM future);
 
diff --git a/libguile/gc.h b/libguile/gc.h
index d3c9959..05412bc 100644
--- a/libguile/gc.h
+++ b/libguile/gc.h
@@ -3,7 +3,7 @@
 #ifndef SCM_GC_H
 #define SCM_GC_H
 
-/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2002, 2003, 2004, 2006 Free 
Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2002, 2003, 2004, 2006, 2008 
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
@@ -241,10 +241,10 @@ SCM_API int scm_debug_cells_gc_interval ;
 void scm_i_expensive_validation_check (SCM cell);
 #endif
 
-SCM_API scm_i_pthread_mutex_t scm_i_gc_admin_mutex;
+SCM_INTERNAL scm_i_pthread_mutex_t scm_i_gc_admin_mutex;
 
 #define scm_gc_running_p (SCM_I_CURRENT_THREAD->gc_running_p)
-SCM_API scm_i_pthread_mutex_t scm_i_sweep_mutex;
+SCM_INTERNAL scm_i_pthread_mutex_t scm_i_sweep_mutex;
 
 #ifdef __ia64__
 void *scm_ia64_register_backing_store_base (void);
@@ -320,7 +320,7 @@ SCM_API SCM scm_gc_live_object_stats (void);
 SCM_API SCM scm_gc (void);
 SCM_API void scm_gc_for_alloc (struct scm_t_cell_type_statistics *freelist);
 SCM_API SCM scm_gc_for_newcell (struct scm_t_cell_type_statistics *master, SCM 
*freelist);
-SCM_API void scm_i_gc (const char *what);
+SCM_INTERNAL void scm_i_gc (const char *what);
 SCM_API void scm_gc_mark (SCM p);
 SCM_API void scm_gc_mark_dependencies (SCM p);
 SCM_API void scm_mark_locations (SCM_STACKITEM x[], unsigned long n);
@@ -384,7 +384,7 @@ SCM_API void scm_gc_unregister_roots (SCM *b, unsigned long 
n);
 SCM_API void scm_storage_prehistory (void);
 SCM_API int scm_init_storage (void);
 SCM_API void *scm_get_stack_base (void);
-SCM_API void scm_init_gc (void);
+SCM_INTERNAL void scm_init_gc (void);
 
 #if SCM_ENABLE_DEPRECATED == 1
 
diff --git a/libguile/gdbint.h b/libguile/gdbint.h
index d6511f7..64b9559 100644
--- a/libguile/gdbint.h
+++ b/libguile/gdbint.h
@@ -3,7 +3,7 @@
 #ifndef SCM_GDBINT_H
 #define SCM_GDBINT_H
 
-/* Copyright (C) 1996,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996,2000, 2006, 2008 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
@@ -28,7 +28,7 @@
 
 SCM_API int scm_print_carefully_p;
 
-SCM_API void scm_init_gdbint (void);
+SCM_INTERNAL void scm_init_gdbint (void);
 
 #endif  /* SCM_GDBINT_H */
 
diff --git a/libguile/gettext.h b/libguile/gettext.h
index 4d91358..8a13307 100644
--- a/libguile/gettext.h
+++ b/libguile/gettext.h
@@ -3,7 +3,7 @@
 #ifndef SCM_GETTEXT_H
 #define SCM_GETTEXT_H
 
-/* Copyright (C) 2004, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2004, 2006, 2008 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
@@ -28,9 +28,9 @@ SCM_API SCM scm_textdomain (SCM domainname);
 SCM_API SCM scm_bindtextdomain (SCM domainname, SCM directory);
 SCM_API SCM scm_bind_textdomain_codeset (SCM domainname, SCM encoding);
 
-SCM_API int scm_i_to_lc_category (SCM category, int allow_lc_all);
+SCM_INTERNAL int scm_i_to_lc_category (SCM category, int allow_lc_all);
 
-SCM_API void scm_init_gettext (void);
+SCM_INTERNAL void scm_init_gettext (void);
 
 #endif  /* SCM_GETTEXT_H */
 
diff --git a/libguile/goops.h b/libguile/goops.h
index 3fc8788..80ba985 100644
--- a/libguile/goops.h
+++ b/libguile/goops.h
@@ -3,7 +3,7 @@
 #ifndef SCM_GOOPS_H
 #define SCM_GOOPS_H
 
-/* Copyright (C) 1998,1999,2000,2001,2002,2003, 2006 Free Software Foundation, 
Inc.
+/* Copyright (C) 1998,1999,2000,2001,2002,2003, 2006, 2008 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
@@ -254,7 +254,8 @@ SCM_API SCM scm_pure_generic_p (SCM obj);
 #endif
 
 SCM_API SCM scm_sys_compute_slots (SCM c);
-SCM_API SCM scm_i_get_keyword (SCM key, SCM l, long len, SCM default_value, 
const char *subr);
+SCM_INTERNAL SCM scm_i_get_keyword (SCM key, SCM l, long len,
+                                   SCM default_value, const char *subr);
 SCM_API SCM scm_get_keyword (SCM key, SCM l, SCM default_value);
 SCM_API SCM scm_sys_initialize_object (SCM obj, SCM initargs);
 SCM_API SCM scm_sys_prep_layout_x (SCM c);
@@ -297,8 +298,8 @@ SCM_API SCM scm_make (SCM args);
 SCM_API SCM scm_find_method (SCM args);
 SCM_API SCM scm_sys_method_more_specific_p (SCM m1, SCM m2, SCM targs);
 
-SCM_API SCM scm_init_goops_builtins (void);
-SCM_API void scm_init_goops (void);
+SCM_INTERNAL SCM scm_init_goops_builtins (void);
+SCM_INTERNAL void scm_init_goops (void);
 
 #if (SCM_ENABLE_DEPRECATED == 1)
 
diff --git a/libguile/gsubr.h b/libguile/gsubr.h
index e748805..4185649 100644
--- a/libguile/gsubr.h
+++ b/libguile/gsubr.h
@@ -3,7 +3,7 @@
 #ifndef SCM_GSUBR_H
 #define SCM_GSUBR_H
 
-/* Copyright (C) 1995,1996,1998,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000,2001, 2006, 2008 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
@@ -51,7 +51,7 @@ SCM_API SCM scm_c_define_gsubr_with_generic (const char *name,
                                             SCM (*fcn) (), SCM *gf);
 
 SCM_API SCM scm_gsubr_apply (SCM args);
-SCM_API void scm_init_gsubr (void);
+SCM_INTERNAL void scm_init_gsubr (void);
 
 #endif  /* SCM_GSUBR_H */
 
diff --git a/libguile/guardians.h b/libguile/guardians.h
index 735f960..295092e 100644
--- a/libguile/guardians.h
+++ b/libguile/guardians.h
@@ -3,7 +3,7 @@
 #ifndef SCM_GUARDIANS_H
 #define SCM_GUARDIANS_H
 
-/* Copyright (C) 1998,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1998,2000,2001, 2006, 2008 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
@@ -26,11 +26,11 @@
 
 SCM_API SCM scm_make_guardian (void);
 
-SCM_API void scm_i_init_guardians_for_gc (void);
-SCM_API void scm_i_identify_inaccessible_guardeds (void);
-SCM_API int scm_i_mark_inaccessible_guardeds (void);
+SCM_INTERNAL void scm_i_init_guardians_for_gc (void);
+SCM_INTERNAL void scm_i_identify_inaccessible_guardeds (void);
+SCM_INTERNAL int scm_i_mark_inaccessible_guardeds (void);
 
-SCM_API void scm_init_guardians (void);
+SCM_INTERNAL void scm_init_guardians (void);
 
 #endif  /* SCM_GUARDIANS_H */
 
diff --git a/libguile/hash.h b/libguile/hash.h
index a2d00c2..bbf9b25 100644
--- a/libguile/hash.h
+++ b/libguile/hash.h
@@ -3,7 +3,7 @@
 #ifndef SCM_HASH_H
 #define SCM_HASH_H
 
-/* Copyright (C) 1995,1996,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000, 2006, 2008 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
@@ -34,7 +34,7 @@ SCM_API unsigned long scm_ihashv (SCM obj, unsigned long n);
 SCM_API SCM scm_hashv (SCM obj, SCM n);
 SCM_API unsigned long scm_ihash (SCM obj, unsigned long n);
 SCM_API SCM scm_hash (SCM obj, SCM n);
-SCM_API void scm_init_hash (void);
+SCM_INTERNAL void scm_init_hash (void);
 
 #endif  /* SCM_HASH_H */
 
diff --git a/libguile/hashtab.h b/libguile/hashtab.h
index 1017354..4220b86 100644
--- a/libguile/hashtab.h
+++ b/libguile/hashtab.h
@@ -3,7 +3,7 @@
 #ifndef SCM_HASHTAB_H
 #define SCM_HASHTAB_H
 
-/* Copyright (C) 1995,1996,1999,2000,2001, 2003, 2004, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1999,2000,2001, 2003, 2004, 2006, 2008 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
@@ -96,8 +96,9 @@ SCM_API SCM scm_weak_key_hash_table_p (SCM h);
 SCM_API SCM scm_weak_value_hash_table_p (SCM h);
 SCM_API SCM scm_doubly_weak_hash_table_p (SCM h);
 
-SCM_API void scm_i_rehash (SCM table, unsigned long (*hash_fn)(), void 
*closure, const char*func_name);
-SCM_API void scm_i_scan_weak_hashtables (void);
+SCM_INTERNAL void scm_i_rehash (SCM table, unsigned long (*hash_fn)(),
+                               void *closure, const char *func_name);
+SCM_INTERNAL void scm_i_scan_weak_hashtables (void);
 
 SCM_API SCM scm_hash_fn_get_handle (SCM table, SCM obj, unsigned long 
(*hash_fn) (), SCM (*assoc_fn) (), void * closure);
 SCM_API SCM scm_hash_fn_create_handle_x (SCM table, SCM obj, SCM init, 
unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure);
@@ -132,8 +133,8 @@ SCM_API SCM scm_hash_fold (SCM proc, SCM init, SCM hash);
 SCM_API SCM scm_hash_for_each (SCM proc, SCM hash);
 SCM_API SCM scm_hash_for_each_handle (SCM proc, SCM hash);
 SCM_API SCM scm_hash_map_to_list (SCM proc, SCM hash);
-SCM_API void scm_hashtab_prehistory (void);
-SCM_API void scm_init_hashtab (void);
+SCM_INTERNAL void scm_hashtab_prehistory (void);
+SCM_INTERNAL void scm_init_hashtab (void);
 
 #endif  /* SCM_HASHTAB_H */
 
diff --git a/libguile/hooks.h b/libguile/hooks.h
index 69972c3..49ea553 100644
--- a/libguile/hooks.h
+++ b/libguile/hooks.h
@@ -3,7 +3,7 @@
 #ifndef SCM_HOOKS_H
 #define SCM_HOOKS_H
 
-/* Copyright (C) 1995,1996,1999,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1999,2000,2001, 2006, 2008 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
@@ -87,7 +87,7 @@ SCM_API SCM scm_reset_hook_x (SCM hook);
 SCM_API SCM scm_run_hook (SCM hook, SCM args);
 SCM_API void scm_c_run_hook (SCM hook, SCM args);
 SCM_API SCM scm_hook_to_list (SCM hook);
-SCM_API void scm_init_hooks (void);
+SCM_INTERNAL void scm_init_hooks (void);
 
 #endif  /* SCM_HOOKS_H */
 
diff --git a/libguile/i18n.h b/libguile/i18n.h
index 17dc240..57f1654 100644
--- a/libguile/i18n.h
+++ b/libguile/i18n.h
@@ -3,7 +3,7 @@
 #ifndef SCM_I18N_H
 #define SCM_I18N_H
 
-/* Copyright (C) 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2006, 2008 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
diff --git a/libguile/init.h b/libguile/init.h
index ec083da..3ae27d8 100644
--- a/libguile/init.h
+++ b/libguile/init.h
@@ -3,7 +3,7 @@
 #ifndef SCM_INIT_H
 #define SCM_INIT_H
 
-/* Copyright (C) 1995,1996,1997,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,2000, 2006, 2008 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
@@ -26,7 +26,7 @@
 #include "libguile/threads.h"
 
 
-SCM_API scm_i_pthread_mutex_t scm_i_init_mutex;
+SCM_INTERNAL scm_i_pthread_mutex_t scm_i_init_mutex;
 SCM_API int scm_initialized_p;
 
 SCM_API void scm_init_guile (void);
@@ -37,7 +37,7 @@ SCM_API void scm_boot_guile (int argc, char **argv,
                                                char **argv),
                             void *closure);
 
-SCM_API void scm_i_init_guile (SCM_STACKITEM *base);
+SCM_INTERNAL void scm_i_init_guile (SCM_STACKITEM *base);
 
 SCM_API void scm_load_startup_files (void);
 
diff --git a/libguile/ioext.h b/libguile/ioext.h
index 7ced2af..18289ea 100644
--- a/libguile/ioext.h
+++ b/libguile/ioext.h
@@ -3,7 +3,7 @@
 #ifndef SCM_IOEXT_H
 #define SCM_IOEXT_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2006 Free Software Foundation, 
Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2006, 2008 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
@@ -35,7 +35,7 @@ SCM_API SCM scm_isatty_p (SCM port);
 SCM_API SCM scm_fdopen (SCM fdes, SCM modes);
 SCM_API SCM scm_primitive_move_to_fdes (SCM port, SCM fd);
 SCM_API SCM scm_fdes_to_ports (SCM fd);
-SCM_API void scm_init_ioext (void);
+SCM_INTERNAL void scm_init_ioext (void);
 
 #endif  /* SCM_IOEXT_H */
 
diff --git a/libguile/keywords.h b/libguile/keywords.h
index d11c0e3..a80e31b 100644
--- a/libguile/keywords.h
+++ b/libguile/keywords.h
@@ -3,7 +3,7 @@
 #ifndef SCM_KEYWORDS_H
 #define SCM_KEYWORDS_H
 
-/* Copyright (C) 1995,1996,1999,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1999,2000,2001, 2006, 2008 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
@@ -38,7 +38,7 @@ SCM_API int scm_is_keyword (SCM val);
 SCM_API SCM scm_from_locale_keyword (const char *str);
 SCM_API SCM scm_from_locale_keywordn (const char *str, size_t len);
 
-SCM_API void scm_init_keywords (void);
+SCM_INTERNAL void scm_init_keywords (void);
 
 #endif  /* SCM_KEYWORDS_H */
 
diff --git a/libguile/lang.h b/libguile/lang.h
index 886bb34..991e9ca 100644
--- a/libguile/lang.h
+++ b/libguile/lang.h
@@ -3,7 +3,7 @@
 #ifndef SCM_LANG_H
 #define SCM_LANG_H
 
-/* Copyright (C) 1998, 2004, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2004, 2006, 2008 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
@@ -30,7 +30,7 @@
 
 #define SCM_NILP(x) (scm_is_eq ((x), SCM_ELISP_NIL))
 
-SCM_API void scm_init_lang (void);
+SCM_INTERNAL void scm_init_lang (void);
 
 #else  /* ! SCM_ENABLE_ELISP */
 
diff --git a/libguile/list.h b/libguile/list.h
index 749e65d..733432d 100644
--- a/libguile/list.h
+++ b/libguile/list.h
@@ -3,7 +3,7 @@
 #ifndef SCM_LIST_H
 #define SCM_LIST_H
 
-/* Copyright (C) 1995,1996,1997,2000,2001,2003,2004,2005,2006
+/* Copyright (C) 1995,1996,1997,2000,2001,2003,2004,2005,2006,2008
  * Free Software Foundation, Inc.
  *
  * This library is free software; you can redistribute it and/or
@@ -71,8 +71,8 @@ SCM_API SCM scm_filter_x (SCM pred, SCM list);
 
 /* Guile internal functions */
 
-SCM_API SCM scm_i_finite_list_copy (SCM /* a list known to be finite */);
-SCM_API void scm_init_list (void);
+SCM_INTERNAL SCM scm_i_finite_list_copy (SCM /* a list known to be finite */);
+SCM_INTERNAL void scm_init_list (void);
 
 #endif  /* SCM_LIST_H */
 
diff --git a/libguile/load.h b/libguile/load.h
index 9b45d40..57cc7e8 100644
--- a/libguile/load.h
+++ b/libguile/load.h
@@ -3,7 +3,7 @@
 #ifndef SCM_LOAD_H
 #define SCM_LOAD_H
 
-/* Copyright (C) 1995,1996,1998,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000,2001, 2006, 2008 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
@@ -26,7 +26,6 @@
 
 
 SCM_API SCM scm_parse_path (SCM path, SCM tail);
-SCM_API void scm_init_load_path (void);
 SCM_API SCM scm_primitive_load (SCM filename);
 SCM_API SCM scm_c_primitive_load (const char *filename);
 SCM_API SCM scm_sys_package_data_dir (void);
@@ -36,7 +35,8 @@ SCM_API SCM scm_search_path (SCM path, SCM filename, SCM 
exts);
 SCM_API SCM scm_sys_search_load_path (SCM filename);
 SCM_API SCM scm_primitive_load_path (SCM filename);
 SCM_API SCM scm_c_primitive_load_path (const char *filename);
-SCM_API void scm_init_load (void);
+SCM_INTERNAL void scm_init_load_path (void);
+SCM_INTERNAL void scm_init_load (void);
 
 #endif  /* SCM_LOAD_H */
 
diff --git a/libguile/macros.h b/libguile/macros.h
index 0ad8757..e1de77f 100644
--- a/libguile/macros.h
+++ b/libguile/macros.h
@@ -3,7 +3,7 @@
 #ifndef SCM_MACROS_H
 #define SCM_MACROS_H
 
-/* Copyright (C) 1998,2000,2001,2002,2003, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1998,2000,2001,2002,2003, 2006, 2008 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
@@ -36,7 +36,7 @@
 
 SCM_API scm_t_bits scm_tc16_macro;
 
-SCM_API SCM scm_i_makbimacro (SCM code);
+SCM_INTERNAL SCM scm_i_makbimacro (SCM code);
 SCM_API SCM scm_makmmacro (SCM code);
 SCM_API SCM scm_makacro (SCM code);
 SCM_API SCM scm_macro_p (SCM obj);
@@ -46,7 +46,7 @@ SCM_API SCM scm_macro_transformer (SCM m);
 SCM_API SCM scm_make_synt (const char *name,
                           SCM (*macroizer) (SCM),
                           SCM (*fcn) ());
-SCM_API void scm_init_macros (void);
+SCM_INTERNAL void scm_init_macros (void);
 
 #if SCM_ENABLE_DEPRECATED == 1
 SCM_API SCM scm_makmacro (SCM code);
diff --git a/libguile/mallocs.h b/libguile/mallocs.h
index cae4d1f..f711ddb 100644
--- a/libguile/mallocs.h
+++ b/libguile/mallocs.h
@@ -3,7 +3,7 @@
 #ifndef SCM_MALLOCS_H
 #define SCM_MALLOCS_H
 
-/* Copyright (C) 1995,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,2000, 2006, 2008 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
@@ -34,7 +34,7 @@ SCM_API scm_t_bits scm_tc16_malloc;
 
 
 SCM_API SCM scm_malloc_obj (size_t n);
-SCM_API void scm_init_mallocs (void);
+SCM_INTERNAL void scm_init_mallocs (void);
 
 #endif  /* SCM_MALLOCS_H */
 
diff --git a/libguile/modules.h b/libguile/modules.h
index 6e4f4d9..afac9f4 100644
--- a/libguile/modules.h
+++ b/libguile/modules.h
@@ -3,7 +3,7 @@
 #ifndef SCM_MODULES_H
 #define SCM_MODULES_H
 
-/* Copyright (C) 1998, 2000, 2001, 2002, 2003, 2006, 2007 Free Software 
Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2001, 2002, 2003, 2006, 2007, 2008 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
@@ -116,8 +116,8 @@ SCM_API SCM scm_env_module (SCM env);
 SCM_API SCM scm_top_level_env (SCM thunk);
 SCM_API SCM scm_system_module_env_p (SCM env);
 
-SCM_API void scm_modules_prehistory (void);
-SCM_API void scm_init_modules (void);
+SCM_INTERNAL void scm_modules_prehistory (void);
+SCM_INTERNAL void scm_init_modules (void);
 
 #endif  /* SCM_MODULES_H */
 
diff --git a/libguile/net_db.h b/libguile/net_db.h
index ae8e8aa..df1f030 100644
--- a/libguile/net_db.h
+++ b/libguile/net_db.h
@@ -3,7 +3,7 @@
 #ifndef SCM_NET_DB_H
 #define SCM_NET_DB_H
 
-/* Copyright (C) 1995,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,2000,2001, 2006, 2008 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
@@ -34,7 +34,7 @@ SCM_API SCM scm_sethost (SCM arg);
 SCM_API SCM scm_setnet (SCM arg);
 SCM_API SCM scm_setproto (SCM arg);
 SCM_API SCM scm_setserv (SCM arg);
-SCM_API void scm_init_net_db (void);
+SCM_INTERNAL void scm_init_net_db (void);
 
 #endif  /* SCM_NET_DB_H */
 
diff --git a/libguile/numbers.h b/libguile/numbers.h
index 2c2fdcf..e139dac 100644
--- a/libguile/numbers.h
+++ b/libguile/numbers.h
@@ -3,7 +3,7 @@
 #ifndef SCM_NUMBERS_H
 #define SCM_NUMBERS_H
 
-/* Copyright (C) 1995,1996,1998,2000,2001,2002,2003,2004,2005, 2006 Free 
Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000,2001,2002,2003,2004,2005, 2006, 2008 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
@@ -261,15 +261,15 @@ SCM_API SCM scm_exp (SCM z);
 SCM_API SCM scm_sqrt (SCM z);
 
 /* bignum internal functions */
-SCM_API SCM scm_i_mkbig (void);
-SCM_API SCM scm_i_normbig (SCM x);
-SCM_API int scm_i_bigcmp (SCM a, SCM b);
-SCM_API SCM scm_i_dbl2big (double d);
-SCM_API SCM scm_i_dbl2num (double d);
-SCM_API double scm_i_big2dbl (SCM b);
-SCM_API SCM scm_i_long2big (long n);
-SCM_API SCM scm_i_ulong2big (unsigned long n);
-SCM_API SCM scm_i_clonebig (SCM src_big, int same_sign_p);
+SCM_INTERNAL SCM scm_i_mkbig (void);
+SCM_API /* FIXME: not internal */ SCM scm_i_normbig (SCM x);
+SCM_INTERNAL int scm_i_bigcmp (SCM a, SCM b);
+SCM_INTERNAL SCM scm_i_dbl2big (double d);
+SCM_INTERNAL SCM scm_i_dbl2num (double d);
+SCM_API /* FIXME: not internal */ double scm_i_big2dbl (SCM b);
+SCM_API /* FIXME: not internal */ SCM scm_i_long2big (long n);
+SCM_API /* FIXME: not internal */ SCM scm_i_ulong2big (unsigned long n);
+SCM_API /* FIXME: not internal */ SCM scm_i_clonebig (SCM src_big, int 
same_sign_p);
 
 /* ratio functions */
 SCM_API SCM scm_rationalize (SCM x, SCM err);
@@ -277,13 +277,13 @@ SCM_API SCM scm_numerator (SCM z);
 SCM_API SCM scm_denominator (SCM z);
 
 /* fraction internal functions */
-SCM_API double scm_i_fraction2double (SCM z);
-SCM_API SCM scm_i_fraction_equalp (SCM x, SCM y);
-SCM_API int scm_i_print_fraction (SCM sexp, SCM port, scm_print_state *pstate);
+SCM_INTERNAL double scm_i_fraction2double (SCM z);
+SCM_INTERNAL SCM scm_i_fraction_equalp (SCM x, SCM y);
+SCM_INTERNAL int scm_i_print_fraction (SCM sexp, SCM port, scm_print_state 
*pstate);
 
 /* general internal functions */
-SCM_API void scm_i_print_double (double val, SCM port);
-SCM_API void scm_i_print_complex (double real, double imag, SCM port);
+SCM_INTERNAL void scm_i_print_double (double val, SCM port);
+SCM_INTERNAL void scm_i_print_complex (double real, double imag, SCM port);
 
 /* conversion functions for integers */
 
@@ -480,7 +480,7 @@ SCM_API double scm_c_angle (SCM z);
 
 SCM_API int scm_is_number (SCM val);
 
-SCM_API void scm_init_numbers (void);
+SCM_INTERNAL void scm_init_numbers (void);
 
 #endif  /* SCM_NUMBERS_H */
 
diff --git a/libguile/objects.h b/libguile/objects.h
index fdd8e28..68996d2 100644
--- a/libguile/objects.h
+++ b/libguile/objects.h
@@ -3,7 +3,7 @@
 #ifndef SCM_OBJECTS_H
 #define SCM_OBJECTS_H
 
-/* Copyright (C) 1996,1999,2000,2001, 2003, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1999,2000,2001, 2003, 2006, 2008 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
@@ -181,7 +181,7 @@ SCM_API SCM scm_metaclass_operator;
 
 /* Goops functions. */
 SCM_API SCM scm_make_extended_class (char const *type_name, int applicablep);
-SCM_API void scm_i_inherit_applicable (SCM c);
+SCM_INTERNAL void scm_i_inherit_applicable (SCM c);
 SCM_API void scm_make_port_classes (long ptobnum, char *type_name);
 SCM_API void scm_change_object_class (SCM, SCM, SCM);
 SCM_API SCM scm_memoize_method (SCM x, SCM args);
@@ -205,9 +205,9 @@ SCM_API SCM scm_object_procedure (SCM obj);
 SCM_API SCM scm_make_class_object (SCM metaclass, SCM layout);
 SCM_API SCM scm_make_subclass_object (SCM c, SCM layout);
 
-SCM_API SCM scm_i_make_class_object (SCM metaclass, SCM layout_string,
-                                    unsigned long flags);
-SCM_API void scm_init_objects (void);
+SCM_INTERNAL SCM scm_i_make_class_object (SCM metaclass, SCM layout_string,
+                                         unsigned long flags);
+SCM_INTERNAL void scm_init_objects (void);
 
 #endif  /* SCM_OBJECTS_H */
 
diff --git a/libguile/objprop.h b/libguile/objprop.h
index edf2d95..7e5365a 100644
--- a/libguile/objprop.h
+++ b/libguile/objprop.h
@@ -3,7 +3,7 @@
 #ifndef SCM_OBJPROP_H
 #define SCM_OBJPROP_H
 
-/* Copyright (C) 1995,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,2000,2001, 2006, 2008 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
@@ -30,7 +30,7 @@ SCM_API SCM scm_object_properties (SCM obj);
 SCM_API SCM scm_set_object_properties_x (SCM obj, SCM plist);
 SCM_API SCM scm_object_property (SCM obj, SCM key);
 SCM_API SCM scm_set_object_property_x (SCM obj, SCM key, SCM val);
-SCM_API void scm_init_objprop (void);
+SCM_INTERNAL void scm_init_objprop (void);
 
 #endif  /* SCM_OBJPROP_H */
 
diff --git a/libguile/options.h b/libguile/options.h
index 5b96649..4facdce 100644
--- a/libguile/options.h
+++ b/libguile/options.h
@@ -3,7 +3,7 @@
 #ifndef SCM_OPTIONS_H
 #define SCM_OPTIONS_H
 
-/* Copyright (C) 1995,1996,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000,2001, 2006, 2008 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
@@ -43,7 +43,7 @@ typedef struct scm_t_option
 SCM_API SCM scm_options_try (SCM args, scm_t_option options[], const char *s, 
int dry_run);
 SCM_API SCM scm_options (SCM, scm_t_option [], const char*);
 SCM_API void scm_init_opts (SCM (*) (SCM), scm_t_option []);
-SCM_API void scm_init_options (void);
+SCM_INTERNAL void scm_init_options (void);
 
 #endif  /* SCM_OPTIONS_H */
 
diff --git a/libguile/pairs.h b/libguile/pairs.h
index dd22ff3..61af24e 100644
--- a/libguile/pairs.h
+++ b/libguile/pairs.h
@@ -148,7 +148,7 @@ SCM_API SCM scm_i_chase_pairs (SCM x, scm_t_uint32 pattern);
 #define scm_caaadr(x) scm_i_chase_pairs ((x), SCM_I_AAAD_PAT)
 #define scm_caaaar(x) scm_i_chase_pairs ((x), SCM_I_AAAA_PAT)
 
-SCM_API void scm_init_pairs (void);
+SCM_INTERNAL void scm_init_pairs (void);
 
 #endif  /* SCM_PAIRS_H */
 
diff --git a/libguile/ports.h b/libguile/ports.h
index fb0ef4e..084a555 100644
--- a/libguile/ports.h
+++ b/libguile/ports.h
@@ -109,8 +109,8 @@ typedef struct
 } scm_t_port;
 
 
-SCM_API scm_i_pthread_mutex_t scm_i_port_table_mutex;
-SCM_API SCM scm_i_port_weak_hash;
+SCM_INTERNAL scm_i_pthread_mutex_t scm_i_port_table_mutex;
+SCM_INTERNAL SCM scm_i_port_weak_hash;
 
 
 #define SCM_READ_BUFFER_EMPTY_P(c_port) (c_port->read_pos >= c_port->read_end)
@@ -195,7 +195,7 @@ typedef struct scm_t_ptob_descriptor
 
 SCM_API scm_t_ptob_descriptor *scm_ptobs;
 SCM_API long scm_numptob;
-SCM_API long scm_i_port_table_room;
+SCM_INTERNAL long scm_i_port_table_room;
 
 
 
@@ -241,7 +241,7 @@ SCM_API void scm_dynwind_current_input_port (SCM port);
 SCM_API void scm_dynwind_current_output_port (SCM port);
 SCM_API void scm_dynwind_current_error_port (SCM port);
 SCM_API SCM scm_new_port_table_entry (scm_t_bits tag);
-SCM_API void scm_i_remove_port (SCM port);
+SCM_INTERNAL void scm_i_remove_port (SCM port);
 SCM_API void scm_grow_port_cbuf (SCM port, size_t requested);
 SCM_API SCM scm_pt_size (void);
 SCM_API SCM scm_pt_member (SCM member);
@@ -288,7 +288,7 @@ SCM_API void scm_print_port_mode (SCM exp, SCM port);
 SCM_API void scm_ports_prehistory (void);
 SCM_API SCM scm_void_port (char * mode_str);
 SCM_API SCM scm_sys_make_void_port (SCM mode);
-SCM_API void scm_init_ports (void);
+SCM_INTERNAL void scm_init_ports (void);
 
 
 #if SCM_ENABLE_DEPRECATED==1
@@ -302,8 +302,8 @@ SCM_API SCM scm_pt_member (SCM member);
 
 /* internal */
 
-SCM_API long scm_i_mode_bits (SCM modes);
-SCM_API void scm_i_dynwind_current_load_port (SCM port);
+SCM_INTERNAL long scm_i_mode_bits (SCM modes);
+SCM_INTERNAL void scm_i_dynwind_current_load_port (SCM port);
 
 
 #endif  /* SCM_PORTS_H */
diff --git a/libguile/posix.h b/libguile/posix.h
index 871bba8..d51da94 100644
--- a/libguile/posix.h
+++ b/libguile/posix.h
@@ -3,7 +3,7 @@
 #ifndef SCM_POSIX_H
 #define SCM_POSIX_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2003, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2003, 2006, 2008 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
@@ -84,9 +84,9 @@ SCM_API SCM scm_getpass (SCM prompt);
 SCM_API SCM scm_flock (SCM file, SCM operation);
 SCM_API SCM scm_sethostname (SCM name);
 SCM_API SCM scm_gethostname (void);
-SCM_API void scm_init_posix (void);
+SCM_INTERNAL void scm_init_posix (void);
 
-SCM_API scm_i_pthread_mutex_t scm_i_locale_mutex;
+SCM_INTERNAL scm_i_pthread_mutex_t scm_i_locale_mutex;
 
 #endif  /* SCM_POSIX_H */
 
diff --git a/libguile/print.h b/libguile/print.h
index 740aa28..8974a75 100644
--- a/libguile/print.h
+++ b/libguile/print.h
@@ -3,7 +3,7 @@
 #ifndef SCM_PRINT_H
 #define SCM_PRINT_H
 
-/* Copyright (C) 1995,1996,1998,2000,2001, 2003, 2004, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000,2001, 2003, 2004, 2006, 2008 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
@@ -75,7 +75,7 @@ SCM_API scm_t_bits scm_tc16_port_with_ps;
 SCM_API SCM scm_print_options (SCM setting);
 SCM_API SCM scm_make_print_state (void);
 SCM_API void scm_free_print_state (SCM print_state);
-SCM scm_i_port_with_print_state (SCM port, SCM print_state);
+SCM_INTERNAL SCM scm_i_port_with_print_state (SCM port, SCM print_state);
 SCM_API void scm_intprint (scm_t_intmax n, int radix, SCM port);
 SCM_API void scm_uintprint (scm_t_uintmax n, int radix, SCM port);
 SCM_API void scm_ipruk (char *hdr, SCM ptr, SCM port);
@@ -92,7 +92,7 @@ SCM_API SCM scm_printer_apply (SCM proc, SCM exp, SCM port, 
scm_print_state *);
 SCM_API SCM scm_port_with_print_state (SCM port, SCM pstate);
 SCM_API SCM scm_get_print_state (SCM port);
 SCM_API int scm_valid_oport_value_p (SCM val);
-SCM_API void scm_init_print (void);
+SCM_INTERNAL void scm_init_print (void);
 
 #ifdef GUILE_DEBUG
 SCM_API SCM scm_current_pstate (void);
diff --git a/libguile/private-gc.h b/libguile/private-gc.h
index 34d789b..ce60cbb 100644
--- a/libguile/private-gc.h
+++ b/libguile/private-gc.h
@@ -1,7 +1,7 @@
 /*
  * private-gc.h - private declarations for garbage collection.
  * 
- * Copyright (C) 2002, 03, 04, 05, 06, 07 Free Software Foundation, Inc.
+ * Copyright (C) 2002, 03, 04, 05, 06, 07, 08 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
@@ -163,10 +163,13 @@ typedef struct scm_sweep_statistics
 extern scm_t_cell_type_statistics scm_i_master_freelist;
 extern scm_t_cell_type_statistics scm_i_master_freelist2;
 
+SCM_INTERNAL
 void scm_i_adjust_min_yield (scm_t_cell_type_statistics *freelist,
                             scm_t_sweep_statistics sweep_stats,
                             scm_t_sweep_statistics sweep_stats_1);
+SCM_INTERNAL
 void scm_i_gc_sweep_freelist_reset (scm_t_cell_type_statistics *freelist);
+SCM_INTERNAL
 int scm_i_gc_grow_heap_p (scm_t_cell_type_statistics * freelist);
 
 
@@ -263,39 +266,46 @@ extern scm_t_heap_segment ** scm_i_heap_segment_table;
 extern size_t scm_i_heap_segment_table_size;
 
 
-int scm_i_init_card_freelist (scm_t_cell * card, SCM 
*free_list,scm_t_heap_segment*);
-int scm_i_sweep_card (scm_t_cell * card, SCM *free_list, scm_t_heap_segment*);
-void scm_i_card_statistics (scm_t_cell *p, SCM hashtab, scm_t_heap_segment 
*seg);
-char const *scm_i_tag_name (scm_t_bits tag); /* MOVEME */
-
-int scm_i_initialize_heap_segment_data (scm_t_heap_segment * segment, size_t 
requested);
-int scm_i_segment_card_count (scm_t_heap_segment * seg);
-int scm_i_segment_cell_count (scm_t_heap_segment * seg);
-
-void scm_i_clear_segment_mark_space (scm_t_heap_segment *seg);
-scm_t_heap_segment * scm_i_make_empty_heap_segment 
(scm_t_cell_type_statistics*);
-SCM scm_i_sweep_some_cards (scm_t_heap_segment *seg,
-                           scm_t_sweep_statistics *sweep_stats);
-void scm_i_sweep_segment (scm_t_heap_segment *seg,
-                         scm_t_sweep_statistics *sweep_stats);
-
-void scm_i_heap_segment_statistics (scm_t_heap_segment *seg, SCM tab);
-
-     
-int scm_i_insert_segment (scm_t_heap_segment * seg);
-long int scm_i_find_heap_segment_containing_object (SCM obj);
-int scm_i_get_new_heap_segment (scm_t_cell_type_statistics *,
-                               scm_t_sweep_statistics,
-                               policy_on_error);
-void scm_i_clear_mark_space (void);
-void scm_i_sweep_segments (void);
-SCM scm_i_sweep_some_segments (scm_t_cell_type_statistics *fl,
-                              scm_t_sweep_statistics *sweep_stats);
-void scm_i_reset_segments (void);
-void scm_i_sweep_all_segments (char const *reason,
-                              scm_t_sweep_statistics *sweep_stats);
-SCM scm_i_all_segments_statistics (SCM hashtab);
-void scm_i_make_initial_segment (int init_heap_size, 
scm_t_cell_type_statistics *freelist);
+SCM_INTERNAL int scm_i_init_card_freelist (scm_t_cell * card, SCM *free_list,
+                                          scm_t_heap_segment*);
+SCM_INTERNAL int scm_i_sweep_card (scm_t_cell *card, SCM *free_list,
+                                  scm_t_heap_segment *);
+SCM_INTERNAL void scm_i_card_statistics (scm_t_cell *p, SCM hashtab,
+                                        scm_t_heap_segment *seg);
+SCM_INTERNAL char const *scm_i_tag_name (scm_t_bits tag); /* MOVEME */
+
+SCM_INTERNAL int scm_i_initialize_heap_segment_data (scm_t_heap_segment *seg,
+                                                    size_t requested);
+SCM_INTERNAL int scm_i_segment_card_count (scm_t_heap_segment *seg);
+SCM_INTERNAL int scm_i_segment_cell_count (scm_t_heap_segment *seg);
+
+SCM_INTERNAL void scm_i_clear_segment_mark_space (scm_t_heap_segment *seg);
+SCM_INTERNAL scm_t_heap_segment *
+scm_i_make_empty_heap_segment (scm_t_cell_type_statistics*);
+SCM_INTERNAL SCM scm_i_sweep_some_cards (scm_t_heap_segment *seg,
+                                        scm_t_sweep_statistics *sweep_stats);
+SCM_INTERNAL void scm_i_sweep_segment (scm_t_heap_segment *seg,
+                                      scm_t_sweep_statistics *sweep_stats);
+
+SCM_INTERNAL void scm_i_heap_segment_statistics (scm_t_heap_segment *seg,
+                                                SCM tab);
+
+
+SCM_INTERNAL int scm_i_insert_segment (scm_t_heap_segment *seg);
+SCM_INTERNAL long int scm_i_find_heap_segment_containing_object (SCM obj);
+SCM_INTERNAL int scm_i_get_new_heap_segment (scm_t_cell_type_statistics *,
+                                            scm_t_sweep_statistics,
+                                            policy_on_error);
+SCM_INTERNAL void scm_i_clear_mark_space (void);
+SCM_INTERNAL void scm_i_sweep_segments (void);
+SCM_INTERNAL SCM scm_i_sweep_some_segments (scm_t_cell_type_statistics *fl,
+                                           scm_t_sweep_statistics 
*sweep_stats);
+SCM_INTERNAL void scm_i_reset_segments (void);
+SCM_INTERNAL void scm_i_sweep_all_segments (char const *reason,
+                                           scm_t_sweep_statistics 
*sweep_stats);
+SCM_INTERNAL SCM scm_i_all_segments_statistics (SCM hashtab);
+SCM_INTERNAL void scm_i_make_initial_segment (int init_heap_size,
+                                             scm_t_cell_type_statistics *fl);
 
 extern long int scm_i_deprecated_memory_return;
 
diff --git a/libguile/procprop.h b/libguile/procprop.h
index dffdfd7..bf27dba 100644
--- a/libguile/procprop.h
+++ b/libguile/procprop.h
@@ -3,7 +3,7 @@
 #ifndef SCM_PROCPROP_H
 #define SCM_PROCPROP_H
 
-/* Copyright (C) 1995,1996,1998,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000, 2006, 2008 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
@@ -32,12 +32,12 @@ SCM_API SCM scm_sym_system_procedure;
 
 
 
-SCM_API SCM scm_i_procedure_arity (SCM proc);
+SCM_INTERNAL SCM scm_i_procedure_arity (SCM proc);
 SCM_API SCM scm_procedure_properties (SCM proc);
 SCM_API SCM scm_set_procedure_properties_x (SCM proc, SCM new_val);
 SCM_API SCM scm_procedure_property (SCM p, SCM k);
 SCM_API SCM scm_set_procedure_property_x (SCM p, SCM k, SCM v);
-SCM_API void scm_init_procprop (void);
+SCM_INTERNAL void scm_init_procprop (void);
 
 #endif  /* SCM_PROCPROP_H */
 
diff --git a/libguile/procs.h b/libguile/procs.h
index 060c8ee..cf9cdf1 100644
--- a/libguile/procs.h
+++ b/libguile/procs.h
@@ -3,7 +3,7 @@
 #ifndef SCM_PROCS_H
 #define SCM_PROCS_H
 
-/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2006 Free Software Foundation, 
Inc.
+/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2006, 2008 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
@@ -154,8 +154,8 @@ SCM_API SCM scm_procedure_with_setter_p (SCM obj);
 SCM_API SCM scm_make_procedure_with_setter (SCM procedure, SCM setter);
 SCM_API SCM scm_procedure (SCM proc);
 SCM_API SCM scm_setter (SCM proc);
-SCM_API void scm_init_subr_table (void);
-SCM_API void scm_init_procs (void);
+SCM_INTERNAL void scm_init_subr_table (void);
+SCM_INTERNAL void scm_init_procs (void);
 
 #ifdef GUILE_DEBUG
 SCM_API SCM scm_make_cclo (SCM proc, SCM len);
diff --git a/libguile/properties.h b/libguile/properties.h
index 3f8cb6d..54feb01 100644
--- a/libguile/properties.h
+++ b/libguile/properties.h
@@ -3,7 +3,7 @@
 #ifndef SCM_PROPERTIES_H
 #define SCM_PROPERTIES_H
 
-/* Copyright (C) 1995,1996,1998,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000, 2006, 2008 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
@@ -29,7 +29,7 @@ SCM_API SCM scm_primitive_property_ref (SCM prop, SCM obj);
 SCM_API SCM scm_primitive_property_set_x (SCM prop, SCM obj, SCM val);
 SCM_API SCM scm_primitive_property_del_x (SCM prop, SCM obj);
 
-SCM_API void scm_init_properties (void);
+SCM_INTERNAL void scm_init_properties (void);
 
 #endif  /* SCM_PROPERTIES_H */
 
diff --git a/libguile/ramap.h b/libguile/ramap.h
index 8383649..9d87038 100644
--- a/libguile/ramap.h
+++ b/libguile/ramap.h
@@ -3,7 +3,7 @@
 #ifndef SCM_RAMAP_H
 #define SCM_RAMAP_H
 
-/* Copyright (C) 1995,1996,1997,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,2000, 2006, 2008 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
@@ -47,7 +47,7 @@ SCM_API SCM scm_array_for_each (SCM proc, SCM ra0, SCM lra);
 SCM_API SCM scm_array_index_map_x (SCM ra, SCM proc);
 SCM_API SCM scm_raequal (SCM ra0, SCM ra1);
 SCM_API SCM scm_array_equal_p (SCM ra0, SCM ra1);
-SCM_API void scm_init_ramap (void);
+SCM_INTERNAL void scm_init_ramap (void);
 
 #endif  /* SCM_RAMAP_H */
 
diff --git a/libguile/random.h b/libguile/random.h
index 6ec43ff..ae44092 100644
--- a/libguile/random.h
+++ b/libguile/random.h
@@ -3,7 +3,7 @@
 #ifndef SCM_RANDOM_H
 #define SCM_RANDOM_H
 
-/* Copyright (C) 1999,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1999,2000,2001, 2006, 2008 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
@@ -62,9 +62,9 @@ typedef struct scm_t_i_rstate {
   unsigned long c;
 } scm_t_i_rstate;
 
-SCM_API unsigned long scm_i_uniform32 (scm_t_i_rstate *);
-SCM_API void scm_i_init_rstate (scm_t_i_rstate *, const char *seed, int n);
-SCM_API scm_t_i_rstate *scm_i_copy_rstate (scm_t_i_rstate *);
+SCM_INTERNAL unsigned long scm_i_uniform32 (scm_t_i_rstate *);
+SCM_INTERNAL void scm_i_init_rstate (scm_t_i_rstate *, const char *seed, int 
n);
+SCM_INTERNAL scm_t_i_rstate *scm_i_copy_rstate (scm_t_i_rstate *);
 
 
 /*
@@ -99,7 +99,7 @@ SCM_API SCM scm_random_hollow_sphere_x (SCM v, SCM state);
 SCM_API SCM scm_random_normal (SCM state);
 SCM_API SCM scm_random_normal_vector_x (SCM v, SCM state);
 SCM_API SCM scm_random_exp (SCM state);
-SCM_API void scm_init_random (void);
+SCM_INTERNAL void scm_init_random (void);
 
 #endif  /* SCM_RANDOM_H */
 
diff --git a/libguile/rdelim.h b/libguile/rdelim.h
index b211bb2..17efb4f 100644
--- a/libguile/rdelim.h
+++ b/libguile/rdelim.h
@@ -3,7 +3,7 @@
 #ifndef SCM_RDELIM_H
 #define SCM_RDELIM_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2006 Free Software Foundation, 
Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2006, 2008 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
@@ -30,7 +30,7 @@ SCM_API SCM scm_read_line (SCM port);
 SCM_API SCM scm_write_line (SCM obj, SCM port);
 SCM_API SCM scm_init_rdelim_builtins (void);
 
-SCM_API void scm_init_rdelim (void);
+SCM_INTERNAL void scm_init_rdelim (void);
 
 #endif  /* SCM_RDELIM_H */
 
diff --git a/libguile/read.h b/libguile/read.h
index 128ba3d..4253622 100644
--- a/libguile/read.h
+++ b/libguile/read.h
@@ -3,7 +3,7 @@
 #ifndef SCM_READ_H
 #define SCM_READ_H
 
-/* Copyright (C) 1995,1996,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000, 2006, 2008 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
@@ -56,11 +56,11 @@ SCM_API SCM scm_read (SCM port);
 SCM_API size_t scm_read_token (int ic, SCM * tok_buf, SCM port, int weird);
 SCM_API SCM scm_read_hash_extend (SCM chr, SCM proc);
 
-SCM_API void scm_i_input_error (const char *func, SCM port,
-                               const char *message, SCM arg)
+SCM_INTERNAL void scm_i_input_error (const char *func, SCM port,
+                                    const char *message, SCM arg)
   SCM_NORETURN;
 
-SCM_API void scm_init_read (void);
+SCM_INTERNAL void scm_init_read (void);
 
 #endif  /* SCM_READ_H */
 
diff --git a/libguile/regex-posix.h b/libguile/regex-posix.h
index c382136..2863b05 100644
--- a/libguile/regex-posix.h
+++ b/libguile/regex-posix.h
@@ -3,7 +3,7 @@
 #ifndef SCM_REGEX_POSIX_H
 #define SCM_REGEX_POSIX_H
 
-/* Copyright (C) 1997,1998,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2000,2001, 2006, 2008 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
@@ -31,7 +31,7 @@ SCM_API scm_t_bits scm_tc16_regex;
 SCM_API SCM scm_make_regexp (SCM pat, SCM flags);
 SCM_API SCM scm_regexp_p (SCM x);
 SCM_API SCM scm_regexp_exec (SCM rx, SCM str, SCM start, SCM flags);
-SCM_API void scm_init_regex_posix (void);
+SCM_INTERNAL void scm_init_regex_posix (void);
 
 #endif  /* SCM_REGEX_POSIX_H */
 
diff --git a/libguile/root.h b/libguile/root.h
index 6c7800f..11f6b4f 100644
--- a/libguile/root.h
+++ b/libguile/root.h
@@ -3,7 +3,7 @@
 #ifndef SCM_ROOT_H
 #define SCM_ROOT_H
 
-/* Copyright (C) 1996,1998,2000,2001, 2002, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1998,2000,2001, 2002, 2006, 2008 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
@@ -55,7 +55,7 @@ SCM_API SCM scm_internal_cwdr (scm_t_catch_body body,
 SCM_API SCM scm_call_with_dynamic_root (SCM thunk, SCM handler);
 SCM_API SCM scm_dynamic_root (void);
 SCM_API SCM scm_apply_with_dynamic_root (SCM proc, SCM a1, SCM args, SCM 
handler);
-SCM_API void scm_init_root (void);
+SCM_INTERNAL void scm_init_root (void);
 
 #endif  /* SCM_ROOT_H */
 
diff --git a/libguile/rw.h b/libguile/rw.h
index 108104c..b526051 100644
--- a/libguile/rw.h
+++ b/libguile/rw.h
@@ -3,7 +3,7 @@
 #ifndef SCM_RW_H
 #define SCM_RW_H
 
-/* Copyright (C) 2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2008 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
@@ -29,8 +29,8 @@ SCM_API SCM scm_read_string_x_partial (SCM str, SCM 
port_or_fdes, SCM start,
 SCM_API SCM scm_write_string_partial (SCM str, SCM port_or_fdes, SCM start,
                                      SCM end);
 
-SCM_API SCM scm_init_rw_builtins (void);
-SCM_API void scm_init_rw (void);
+SCM_INTERNAL SCM scm_init_rw_builtins (void);
+SCM_INTERNAL void scm_init_rw (void);
 
 #endif  /* SCM_RW_H */
 
diff --git a/libguile/scmsigs.h b/libguile/scmsigs.h
index 2aced3a..bcbf825 100644
--- a/libguile/scmsigs.h
+++ b/libguile/scmsigs.h
@@ -3,7 +3,7 @@
 #ifndef SCM_SCMSIGS_H
 #define SCM_SCMSIGS_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000, 2002, 2006, 2007 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000, 2002, 2006, 2007, 2008 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
@@ -40,12 +40,12 @@ SCM_API SCM scm_pause (void);
 SCM_API SCM scm_sleep (SCM i);
 SCM_API SCM scm_usleep (SCM i);
 SCM_API SCM scm_raise (SCM sig);
-SCM_API void scm_init_scmsigs (void);
+SCM_INTERNAL void scm_init_scmsigs (void);
 
-SCM_API void scm_i_close_signal_pipe (void);
-SCM_API void scm_i_ensure_signal_delivery_thread (void);
+SCM_INTERNAL void scm_i_close_signal_pipe (void);
+SCM_INTERNAL void scm_i_ensure_signal_delivery_thread (void);
 
-SCM_API scm_i_thread *scm_i_signal_delivery_thread;
+SCM_INTERNAL scm_i_thread *scm_i_signal_delivery_thread;
 
 #endif  /* SCM_SCMSIGS_H */
 
diff --git a/libguile/script.h b/libguile/script.h
index 37ebdde..6c02f8d 100644
--- a/libguile/script.h
+++ b/libguile/script.h
@@ -3,7 +3,7 @@
 #ifndef SCM_SCRIPT_H
 #define SCM_SCRIPT_H
 
-/* Copyright (C) 1997,1998,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1997,1998,2000, 2006, 2008 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
@@ -36,7 +36,7 @@ SCM_API void scm_shell_usage (int fatal, char *message);
 SCM_API SCM scm_compile_shell_switches (int argc, char **argv);
 SCM_API void scm_shell (int argc, char **argv);
 SCM_API char *scm_usage_name;
-SCM_API void scm_init_script (void);
+SCM_INTERNAL void scm_init_script (void);
 
 #endif  /* SCM_SCRIPT_H */
 
diff --git a/libguile/simpos.h b/libguile/simpos.h
index 1ce207b..6df8bb1 100644
--- a/libguile/simpos.h
+++ b/libguile/simpos.h
@@ -3,7 +3,7 @@
 #ifndef SCM_SIMPOS_H
 #define SCM_SIMPOS_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000, 2006, 2008 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
@@ -31,7 +31,7 @@ SCM_API SCM scm_system_star (SCM cmds);
 SCM_API SCM scm_getenv (SCM nam);
 SCM_API SCM scm_primitive_exit (SCM status);
 SCM_API SCM scm_primitive__exit (SCM status);
-SCM_API void scm_init_simpos (void);
+SCM_INTERNAL void scm_init_simpos (void);
 
 #endif  /* SCM_SIMPOS_H */
 
diff --git a/libguile/socket.h b/libguile/socket.h
index 146d283..133dbf7 100644
--- a/libguile/socket.h
+++ b/libguile/socket.h
@@ -3,7 +3,7 @@
 #ifndef SCM_SOCKET_H
 #define SCM_SOCKET_H
 
-/* Copyright (C) 1995,1996,1997,2000,2001, 2004, 2005, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,2000,2001, 2004, 2005, 2006, 2008 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
@@ -52,7 +52,7 @@ SCM_API SCM scm_recv (SCM sockfd, SCM buff_or_size, SCM 
flags);
 SCM_API SCM scm_send (SCM sockfd, SCM message, SCM flags);
 SCM_API SCM scm_recvfrom (SCM sockfd, SCM buff_or_size, SCM flags, SCM offset, 
SCM length);
 SCM_API SCM scm_sendto (SCM sockfd, SCM message, SCM fam, SCM address, SCM 
args_and_flags);
-SCM_API void scm_init_socket (void);
+SCM_INTERNAL void scm_init_socket (void);
 
 /* Wrapping/unwrapping address objects.  */
 struct sockaddr;
diff --git a/libguile/sort.h b/libguile/sort.h
index b8bf4ce..51f292a 100644
--- a/libguile/sort.h
+++ b/libguile/sort.h
@@ -3,7 +3,7 @@
 #ifndef SCM_SORT_H
 #define SCM_SORT_H
 
-/* Copyright (C) 1999,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1999,2000, 2006, 2008 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
@@ -39,7 +39,7 @@ SCM_API SCM scm_stable_sort (SCM ls, SCM less);
 SCM_API SCM scm_stable_sort_x (SCM ls, SCM less);
 SCM_API SCM scm_sort_list (SCM ls, SCM less);
 SCM_API SCM scm_sort_list_x (SCM ls, SCM less);
-SCM_API void scm_init_sort (void);
+SCM_INTERNAL void scm_init_sort (void);
 
 #endif  /* SCM_SORT_H */
 
diff --git a/libguile/srcprop.h b/libguile/srcprop.h
index 87e5fde..a467aa3 100644
--- a/libguile/srcprop.h
+++ b/libguile/srcprop.h
@@ -3,7 +3,7 @@
 #ifndef SCM_SRCPROP_H
 #define SCM_SRCPROP_H
 
-/* Copyright (C) 1995,1996,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000,2001, 2006, 2008 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
@@ -70,7 +70,7 @@ SCM_API SCM scm_set_source_property_x (SCM obj, SCM key, SCM 
datum);
 SCM_API SCM scm_source_properties (SCM obj);
 SCM_API SCM scm_set_source_properties_x (SCM obj, SCM props);
 SCM_API void scm_finish_srcprop (void);
-SCM_API void scm_init_srcprop (void);
+SCM_INTERNAL void scm_init_srcprop (void);
 
 #if SCM_ENABLE_DEPRECATED == 1
 #define SRCBRKP(x) (scm_source_property_breakpoint_p (x))
diff --git a/libguile/srfi-13.h b/libguile/srfi-13.h
index 833586a..f8221dd 100644
--- a/libguile/srfi-13.h
+++ b/libguile/srfi-13.h
@@ -3,7 +3,7 @@
 
 /* srfi-13.c --- SRFI-13 procedures for Guile
  *
- *     Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
+ *     Copyright (C) 2001, 2004, 2006, 2008 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
@@ -113,7 +113,7 @@ SCM_API SCM scm_string_split (SCM s, SCM chr);
 SCM_API SCM scm_string_filter (SCM s, SCM char_pred, SCM start, SCM end);
 SCM_API SCM scm_string_delete (SCM s, SCM char_pred, SCM start, SCM end);
 
-SCM_API void scm_init_srfi_13 (void);
-SCM_API void scm_init_srfi_13_14 (void);
+SCM_INTERNAL void scm_init_srfi_13 (void);
+SCM_INTERNAL void scm_init_srfi_13_14 (void);
 
 #endif /* SCM_SRFI_13_H */
diff --git a/libguile/srfi-14.h b/libguile/srfi-14.h
index 516c510..ea8027a 100644
--- a/libguile/srfi-14.h
+++ b/libguile/srfi-14.h
@@ -3,7 +3,7 @@
 
 /* srfi-14.c --- SRFI-14 procedures for Guile
  *
- *     Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
+ *     Copyright (C) 2001, 2004, 2006, 2008 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
@@ -106,7 +106,7 @@ SCM_API SCM scm_char_set_ascii;
 SCM_API SCM scm_char_set_empty;
 SCM_API SCM scm_char_set_full;
 
-SCM_API void scm_srfi_14_compute_char_sets (void);
-SCM_API void scm_init_srfi_14 (void);
+SCM_INTERNAL void scm_srfi_14_compute_char_sets (void);
+SCM_INTERNAL void scm_init_srfi_14 (void);
 
 #endif /* SCM_SRFI_14_H */
diff --git a/libguile/srfi-4.h b/libguile/srfi-4.h
index 7abbac8..3c340d9 100644
--- a/libguile/srfi-4.h
+++ b/libguile/srfi-4.h
@@ -2,7 +2,7 @@
 #define SCM_SRFI_4_H
 /* srfi-4.c --- Homogeneous numeric vector datatypes.
  *
- *     Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
+ *     Copyright (C) 2001, 2004, 2006, 2008 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
@@ -303,10 +303,10 @@ SCM_API double *scm_c64vector_writable_elements (SCM uvec,
                                                 size_t *lenp,
                                                 ssize_t *incp);
 
-SCM_API SCM scm_i_generalized_vector_type (SCM vec);
-SCM_API const char *scm_i_uniform_vector_tag (SCM uvec);
-SCM_API scm_i_t_array_ref scm_i_uniform_vector_ref_proc (SCM uvec);
-SCM_API scm_i_t_array_set scm_i_uniform_vector_set_proc (SCM uvec);
+SCM_INTERNAL SCM scm_i_generalized_vector_type (SCM vec);
+SCM_INTERNAL const char *scm_i_uniform_vector_tag (SCM uvec);
+SCM_INTERNAL scm_i_t_array_ref scm_i_uniform_vector_ref_proc (SCM uvec);
+SCM_INTERNAL scm_i_t_array_set scm_i_uniform_vector_set_proc (SCM uvec);
 
 #if SCM_ENABLE_DEPRECATED
 
@@ -318,6 +318,6 @@ SCM_API size_t scm_uniform_element_size (SCM obj);
 
 #endif
 
-SCM_API void scm_init_srfi_4 (void);
+SCM_INTERNAL void scm_init_srfi_4 (void);
 
 #endif /* SCM_SRFI_4_H */
diff --git a/libguile/stackchk.h b/libguile/stackchk.h
index 9a5c59f..66582e9 100644
--- a/libguile/stackchk.h
+++ b/libguile/stackchk.h
@@ -3,7 +3,7 @@
 #ifndef SCM_STACKCHK_H
 #define SCM_STACKCHK_H
 
-/* Copyright (C) 1995,1996,1998,2000, 2003, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000, 2003, 2006, 2008 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
@@ -60,7 +60,7 @@ SCM_API int scm_stack_checking_enabled_p;
 SCM_API void scm_report_stack_overflow (void);
 SCM_API long scm_stack_size (SCM_STACKITEM *start);
 SCM_API void scm_stack_report (void);
-SCM_API void scm_init_stackchk (void);
+SCM_INTERNAL void scm_init_stackchk (void);
 
 #endif  /* SCM_STACKCHK_H */
 
diff --git a/libguile/stacks.h b/libguile/stacks.h
index e44bb1c..53633bc 100644
--- a/libguile/stacks.h
+++ b/libguile/stacks.h
@@ -3,7 +3,7 @@
 #ifndef SCM_STACKS_H
 #define SCM_STACKS_H
 
-/* Copyright (C) 1995,1996,2000,2001, 2004, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000,2001, 2004, 2006, 2008 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
@@ -106,7 +106,7 @@ SCM_API SCM scm_frame_procedure_p (SCM frame);
 SCM_API SCM scm_frame_evaluating_args_p (SCM frame);
 SCM_API SCM scm_frame_overflow_p (SCM frame);
 
-SCM_API void scm_init_stacks (void);
+SCM_INTERNAL void scm_init_stacks (void);
 
 #endif  /* SCM_STACKS_H */
 
diff --git a/libguile/stime.h b/libguile/stime.h
index 52acc2f..c64c60e 100644
--- a/libguile/stime.h
+++ b/libguile/stime.h
@@ -3,7 +3,7 @@
 #ifndef SCM_STIME_H
 #define SCM_STIME_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000, 2003, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000, 2003, 2006, 2008 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
@@ -64,7 +64,7 @@ SCM_API SCM scm_tzset (void);
 SCM_API SCM scm_times (void);
 SCM_API SCM scm_strftime (SCM format, SCM stime);
 SCM_API SCM scm_strptime (SCM format, SCM string);
-SCM_API void scm_init_stime (void);
+SCM_INTERNAL void scm_init_stime (void);
 
 #endif  /* SCM_STIME_H */
 
diff --git a/libguile/strings.h b/libguile/strings.h
index f96457e..04ae552 100644
--- a/libguile/strings.h
+++ b/libguile/strings.h
@@ -3,7 +3,7 @@
 #ifndef SCM_STRINGS_H
 #define SCM_STRINGS_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2004, 2005, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2004, 2005, 2006, 2008 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
@@ -110,47 +110,47 @@ SCM_API SCM scm_makfromstrs (int argc, char **argv);
 
 /* internal accessor functions.  Arguments must be valid. */
 
-SCM_API SCM scm_i_make_string (size_t len, char **datap);
-SCM_API SCM scm_i_substring (SCM str, size_t start, size_t end);
-SCM_API SCM scm_i_substring_read_only (SCM str, size_t start, size_t end);
-SCM_API SCM scm_i_substring_shared (SCM str, size_t start, size_t end);
-SCM_API SCM scm_i_substring_copy (SCM str, size_t start, size_t end);
-SCM_API size_t scm_i_string_length (SCM str);
-SCM_API const char *scm_i_string_chars (SCM str);
-SCM_API char *scm_i_string_writable_chars (SCM str);
-SCM_API void scm_i_string_stop_writing (void);
+SCM_INTERNAL SCM scm_i_make_string (size_t len, char **datap);
+SCM_INTERNAL SCM scm_i_substring (SCM str, size_t start, size_t end);
+SCM_INTERNAL SCM scm_i_substring_read_only (SCM str, size_t start, size_t end);
+SCM_INTERNAL SCM scm_i_substring_shared (SCM str, size_t start, size_t end);
+SCM_INTERNAL SCM scm_i_substring_copy (SCM str, size_t start, size_t end);
+SCM_INTERNAL size_t scm_i_string_length (SCM str);
+SCM_API /* FIXME: not internal */ const char *scm_i_string_chars (SCM str);
+SCM_API /* FIXME: not internal */ char *scm_i_string_writable_chars (SCM str);
+SCM_INTERNAL void scm_i_string_stop_writing (void);
 
 /* internal functions related to symbols. */
 
-SCM_API SCM scm_i_make_symbol (SCM name, scm_t_bits flags, 
-                              unsigned long hash, SCM props);
-SCM_API SCM
+SCM_INTERNAL SCM scm_i_make_symbol (SCM name, scm_t_bits flags,
+                                   unsigned long hash, SCM props);
+SCM_INTERNAL SCM
 scm_i_c_make_symbol (const char *name, size_t len,
                     scm_t_bits flags, unsigned long hash, SCM props);
-SCM_API SCM
+SCM_INTERNAL SCM
 scm_i_c_take_symbol (char *name, size_t len,
                     scm_t_bits flags, unsigned long hash, SCM props);
-SCM_API const char *scm_i_symbol_chars (SCM sym);
-SCM_API size_t scm_i_symbol_length (SCM sym);
-SCM_API SCM scm_i_symbol_substring (SCM sym, size_t start, size_t end);
+SCM_INTERNAL const char *scm_i_symbol_chars (SCM sym);
+SCM_INTERNAL size_t scm_i_symbol_length (SCM sym);
+SCM_INTERNAL SCM scm_i_symbol_substring (SCM sym, size_t start, size_t end);
 
 /* internal GC functions. */
 
-SCM_API SCM scm_i_string_mark (SCM str);
-SCM_API SCM scm_i_stringbuf_mark (SCM buf);
-SCM_API SCM scm_i_symbol_mark (SCM buf);
-SCM_API void scm_i_string_free (SCM str);
-SCM_API void scm_i_stringbuf_free (SCM buf);
-SCM_API void scm_i_symbol_free (SCM sym);
+SCM_INTERNAL SCM scm_i_string_mark (SCM str);
+SCM_INTERNAL SCM scm_i_stringbuf_mark (SCM buf);
+SCM_INTERNAL SCM scm_i_symbol_mark (SCM buf);
+SCM_INTERNAL void scm_i_string_free (SCM str);
+SCM_INTERNAL void scm_i_stringbuf_free (SCM buf);
+SCM_INTERNAL void scm_i_symbol_free (SCM sym);
 
 /* internal utility functions. */
 
-SCM_API char **scm_i_allocate_string_pointers (SCM list);
-SCM_API void scm_i_free_string_pointers (char **pointers);
-SCM_API void scm_i_get_substring_spec (size_t len,
-                                      SCM start, size_t *cstart,
-                                      SCM end, size_t *cend);
-SCM_API SCM scm_i_take_stringbufn (char *str, size_t len);
+SCM_INTERNAL char **scm_i_allocate_string_pointers (SCM list);
+SCM_INTERNAL void scm_i_free_string_pointers (char **pointers);
+SCM_INTERNAL void scm_i_get_substring_spec (size_t len,
+                                           SCM start, size_t *cstart,
+                                           SCM end, size_t *cend);
+SCM_INTERNAL SCM scm_i_take_stringbufn (char *str, size_t len);
 
 /* deprecated stuff */
 
@@ -167,7 +167,7 @@ SCM_API size_t scm_i_deprecated_string_length (SCM str);
 
 #endif
 
-SCM_API void scm_init_strings (void);
+SCM_INTERNAL void scm_init_strings (void);
 
 #endif  /* SCM_STRINGS_H */
 
diff --git a/libguile/strorder.h b/libguile/strorder.h
index 51168e0..1711863 100644
--- a/libguile/strorder.h
+++ b/libguile/strorder.h
@@ -3,7 +3,7 @@
 #ifndef SCM_STRORDER_H
 #define SCM_STRORDER_H
 
-/* Copyright (C) 1995,1996,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000, 2006, 2008 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
@@ -36,7 +36,7 @@ SCM_API SCM scm_string_ci_less_p (SCM s1, SCM s2);
 SCM_API SCM scm_string_ci_leq_p (SCM s1, SCM s2);
 SCM_API SCM scm_string_ci_gr_p (SCM s1, SCM s2);
 SCM_API SCM scm_string_ci_geq_p (SCM s1, SCM s2);
-SCM_API void scm_init_strorder (void);
+SCM_INTERNAL void scm_init_strorder (void);
 
 #endif  /* SCM_STRORDER_H */
 
diff --git a/libguile/strports.h b/libguile/strports.h
index 2ca5fb5..58ca71f 100644
--- a/libguile/strports.h
+++ b/libguile/strports.h
@@ -3,7 +3,7 @@
 #ifndef SCM_STRPORTS_H
 #define SCM_STRPORTS_H
 
-/* Copyright (C) 1995,1996,2000,2001,2002, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000,2001,2002, 2006, 2008 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
@@ -55,7 +55,7 @@ SCM_API SCM scm_c_eval_string (const char *expr);
 SCM_API SCM scm_c_eval_string_in_module (const char *expr, SCM module);
 SCM_API SCM scm_eval_string (SCM string);
 SCM_API SCM scm_eval_string_in_module (SCM string, SCM module);
-SCM_API void scm_init_strports (void);
+SCM_INTERNAL void scm_init_strports (void);
 
 #endif  /* SCM_STRPORTS_H */
 
diff --git a/libguile/struct.h b/libguile/struct.h
index 4b263d2..f00a8d8 100644
--- a/libguile/struct.h
+++ b/libguile/struct.h
@@ -3,7 +3,7 @@
 #ifndef SCM_STRUCT_H
 #define SCM_STRUCT_H
 
-/* Copyright (C) 1995,1997,1999,2000,2001, 2006, 2007 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1997,1999,2000,2001, 2006, 2007, 2008 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
@@ -79,7 +79,7 @@ SCM_API SCM scm_struct_table;
 
 #define SCM_STRUCT_GC_CHAIN(X) SCM_CELL_OBJECT_3 (X)
 #define SCM_SET_STRUCT_GC_CHAIN(X, Y) SCM_SET_CELL_OBJECT_3 (X, Y)
-SCM_API SCM scm_i_structs_to_free;
+SCM_INTERNAL SCM scm_i_structs_to_free;
 
 
 
@@ -95,7 +95,7 @@ SCM_API SCM scm_struct_vtable_p (SCM x);
 SCM_API SCM scm_make_struct (SCM vtable, SCM tail_array_size, SCM init);
 SCM_API SCM scm_make_vtable (SCM fields, SCM printer);
 SCM_API SCM scm_make_vtable_vtable (SCM extra_fields, SCM tail_array_size, SCM 
init);
-SCM_API SCM scm_i_struct_equalp (SCM s1, SCM s2);
+SCM_INTERNAL SCM scm_i_struct_equalp (SCM s1, SCM s2);
 SCM_API SCM scm_struct_ref (SCM handle, SCM pos);
 SCM_API SCM scm_struct_set_x (SCM handle, SCM pos, SCM val);
 SCM_API SCM scm_struct_vtable (SCM handle);
@@ -106,7 +106,7 @@ SCM_API SCM scm_struct_vtable_name (SCM vtable);
 SCM_API SCM scm_set_struct_vtable_name_x (SCM vtable, SCM name);
 SCM_API void scm_print_struct (SCM exp, SCM port, scm_print_state *);
 SCM_API void scm_struct_prehistory (void);
-SCM_API void scm_init_struct (void);
+SCM_INTERNAL void scm_init_struct (void);
 
 #endif  /* SCM_STRUCT_H */
 
diff --git a/libguile/symbols.h b/libguile/symbols.h
index f70d655..c2dc183 100644
--- a/libguile/symbols.h
+++ b/libguile/symbols.h
@@ -3,7 +3,7 @@
 #ifndef SCM_SYMBOLS_H
 #define SCM_SYMBOLS_H
 
-/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2003, 2004, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1998,2000,2001, 2003, 2004, 2006, 2008 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
@@ -61,11 +61,11 @@ SCM_API SCM scm_take_locale_symboln (char *sym, size_t len);
 
 /* internal functions. */
 
-SCM_API unsigned long scm_i_hash_symbol (SCM obj, unsigned long n,
+SCM_INTERNAL unsigned long scm_i_hash_symbol (SCM obj, unsigned long n,
                                         void *closure);
 
-SCM_API void scm_symbols_prehistory (void);
-SCM_API void scm_init_symbols (void);
+SCM_INTERNAL void scm_symbols_prehistory (void);
+SCM_INTERNAL void scm_init_symbols (void);
 
 #endif  /* SCM_SYMBOLS_H */
 
diff --git a/libguile/threads.h b/libguile/threads.h
index 49d1f2e..c9992b4 100644
--- a/libguile/threads.h
+++ b/libguile/threads.h
@@ -137,23 +137,23 @@ SCM_API SCM scm_spawn_thread (scm_t_catch_body body, void 
*body_data,
 SCM_API void *scm_without_guile (void *(*func)(void *), void *data);
 SCM_API void *scm_with_guile (void *(*func)(void *), void *data);
 
-SCM_API void *scm_i_with_guile_and_parent (void *(*func)(void *), void *data,
-                                          SCM parent);
+SCM_INTERNAL void *scm_i_with_guile_and_parent (void *(*func)(void *),
+                                               void *data, SCM parent);
 
 
 extern int scm_i_thread_go_to_sleep;
 
-void scm_i_thread_put_to_sleep (void);
-void scm_i_thread_wake_up (void);
-void scm_i_thread_invalidate_freelists (void);
+SCM_INTERNAL void scm_i_thread_put_to_sleep (void);
+SCM_INTERNAL void scm_i_thread_wake_up (void);
+SCM_INTERNAL void scm_i_thread_invalidate_freelists (void);
 void scm_i_thread_sleep_for_gc (void);
 
-void scm_threads_prehistory (SCM_STACKITEM *);
-void scm_threads_init_first_thread (void);
-SCM_API void scm_threads_mark_stacks (void);
-SCM_API void scm_init_threads (void);
-SCM_API void scm_init_thread_procs (void);
-SCM_API void scm_init_threads_default_dynamic_state (void);
+SCM_INTERNAL void scm_threads_prehistory (SCM_STACKITEM *);
+SCM_INTERNAL void scm_threads_init_first_thread (void);
+SCM_INTERNAL void scm_threads_mark_stacks (void);
+SCM_INTERNAL void scm_init_threads (void);
+SCM_INTERNAL void scm_init_thread_procs (void);
+SCM_INTERNAL void scm_init_threads_default_dynamic_state (void);
 
 
 #define SCM_THREAD_SWITCHING_CODE \
@@ -208,7 +208,7 @@ SCM_API scm_i_pthread_key_t scm_i_thread_key;
 #define scm_i_set_last_debug_frame(f) \
                                  (SCM_I_CURRENT_THREAD->last_debug_frame = (f))
 
-SCM_API scm_i_pthread_mutex_t scm_i_misc_mutex;
+SCM_INTERNAL scm_i_pthread_mutex_t scm_i_misc_mutex;
 
 /* Convenience functions for working with the pthread API in guile
    mode.
diff --git a/libguile/throw.h b/libguile/throw.h
index 84b0aa9..3cd5572 100644
--- a/libguile/throw.h
+++ b/libguile/throw.h
@@ -3,7 +3,7 @@
 #ifndef SCM_THROW_H
 #define SCM_THROW_H
 
-/* Copyright (C) 1995,1996,1998,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000, 2006, 2008 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
@@ -94,7 +94,7 @@ SCM_API SCM scm_lazy_catch (SCM tag, SCM thunk, SCM handler);
 SCM_API SCM scm_ithrow (SCM key, SCM args, int noreturn);
 
 SCM_API SCM scm_throw (SCM key, SCM args);
-SCM_API void scm_init_throw (void);
+SCM_INTERNAL void scm_init_throw (void);
 
 #endif  /* SCM_THROW_H */
 
diff --git a/libguile/unif.h b/libguile/unif.h
index 1ce3a8f..a09bfc9 100644
--- a/libguile/unif.h
+++ b/libguile/unif.h
@@ -3,7 +3,7 @@
 #ifndef SCM_UNIF_H
 #define SCM_UNIF_H
 
-/* Copyright (C) 1995,1996,1997,1999,2000,2001, 2004, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1999,2000,2001, 2004, 2006, 2008 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
@@ -162,9 +162,9 @@ SCM_API scm_t_bits scm_i_tc16_enclosed_array;
 #define SCM_I_ARRAY_DIMS(a) \
   ((scm_t_array_dim *)((char *) SCM_I_ARRAY_MEM (a) + sizeof (scm_i_t_array)))
 
-SCM_API SCM scm_i_make_ra (int ndim, int enclosed);
-SCM_API SCM scm_i_cvref (SCM v, size_t p, int enclosed);
-SCM_API SCM scm_i_read_array (SCM port, int c);
+SCM_INTERNAL SCM scm_i_make_ra (int ndim, int enclosed);
+SCM_INTERNAL SCM scm_i_cvref (SCM v, size_t p, int enclosed);
+SCM_INTERNAL SCM scm_i_read_array (SCM port, int c);
 
 /* deprecated. */
 
@@ -183,7 +183,7 @@ SCM_API int scm_raprin1 (SCM exp, SCM port, scm_print_state 
*pstate);
 
 #endif
 
-SCM_API void scm_init_unif (void);
+SCM_INTERNAL void scm_init_unif (void);
 
 #endif  /* SCM_UNIF_H */
 
diff --git a/libguile/values.h b/libguile/values.h
index bc603c1..f05ce9f 100644
--- a/libguile/values.h
+++ b/libguile/values.h
@@ -3,7 +3,7 @@
 #ifndef SCM_VALUES_H
 #define SCM_VALUES_H
 
-/* Copyright (C) 2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2000,2001, 2006, 2008 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
@@ -30,7 +30,7 @@ SCM_API SCM scm_values_vtable;
                         && scm_is_eq (scm_struct_vtable (x), 
scm_values_vtable))
 
 SCM_API SCM scm_values (SCM args);
-SCM_API void scm_init_values (void);
+SCM_INTERNAL void scm_init_values (void);
 
 #endif  /* SCM_VALUES_H */
 
diff --git a/libguile/variable.h b/libguile/variable.h
index 2f2e1a5..3f6398b 100644
--- a/libguile/variable.h
+++ b/libguile/variable.h
@@ -3,7 +3,7 @@
 #ifndef SCM_VARIABLE_H
 #define SCM_VARIABLE_H
 
-/* Copyright (C) 1995,1996,2000,2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000,2001, 2006, 2008 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
@@ -43,9 +43,9 @@ SCM_API SCM scm_variable_ref (SCM var);
 SCM_API SCM scm_variable_set_x (SCM var, SCM val);
 SCM_API SCM scm_variable_bound_p (SCM var);
 
-SCM_API void scm_i_variable_print (SCM var, SCM port, scm_print_state *pstate);
+SCM_INTERNAL void scm_i_variable_print (SCM var, SCM port, scm_print_state 
*pstate);
 
-SCM_API void scm_init_variable (void);
+SCM_INTERNAL void scm_init_variable (void);
 
 #endif  /* SCM_VARIABLE_H */
 
diff --git a/libguile/vectors.h b/libguile/vectors.h
index b1def06..28a576c 100644
--- a/libguile/vectors.h
+++ b/libguile/vectors.h
@@ -3,7 +3,7 @@
 #ifndef SCM_VECTORS_H
 #define SCM_VECTORS_H
 
-/* Copyright (C) 1995,1996,1998,2000,2001,2002,2004,2005, 2006 Free Software 
Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000,2001,2002,2004,2005, 2006, 2008 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
@@ -82,8 +82,8 @@ SCM_API void scm_generalized_vector_get_handle (SCM vec,
 #define SCM_I_VECTOR_WELTS(x)  ((SCM *) SCM_CELL_WORD_1 (x))
 #define SCM_I_VECTOR_LENGTH(x) (((size_t) SCM_CELL_WORD_0 (x)) >> 8)
 
-SCM_API void scm_i_vector_free (SCM vec);
-SCM_API SCM  scm_i_vector_equal_p (SCM x, SCM y);
+SCM_INTERNAL void scm_i_vector_free (SCM vec);
+SCM_INTERNAL SCM  scm_i_vector_equal_p (SCM x, SCM y);
 
 /* Weak vectors share implementation details with ordinary vectors,
    but no one else should.
@@ -99,9 +99,9 @@ SCM_API SCM  scm_i_vector_equal_p (SCM x, SCM y);
 #define SCM_I_WVECT_GC_CHAIN(x)         (SCM_CELL_OBJECT_3 (x))
 #define SCM_I_SET_WVECT_GC_CHAIN(x, o)  (SCM_SET_CELL_OBJECT_3 ((x), (o)))
 
-SCM_API SCM scm_i_allocate_weak_vector (scm_t_bits type, SCM size, SCM fill);
+SCM_INTERNAL SCM scm_i_allocate_weak_vector (scm_t_bits type, SCM size, SCM 
fill);
 
-SCM_API void scm_init_vectors (void);
+SCM_INTERNAL void scm_init_vectors (void);
 
 #endif  /* SCM_VECTORS_H */
 
diff --git a/libguile/version.h.in b/libguile/version.h.in
index 1d8f277..b565efd 100644
--- a/libguile/version.h.in
+++ b/libguile/version.h.in
@@ -3,7 +3,7 @@
 #ifndef SCM_VERSION_H
 #define SCM_VERSION_H
 
-/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2006 Free Software Foundation, 
Inc.
+/* Copyright (C) 1995,1996,1998,1999,2000,2001, 2006, 2008 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
@@ -35,7 +35,7 @@ SCM_API SCM scm_minor_version (void);
 SCM_API SCM scm_micro_version (void);
 SCM_API SCM scm_effective_version (void);
 SCM_API SCM scm_version (void);
-SCM_API void scm_init_version (void);
+SCM_INTERNAL void scm_init_version (void);
 
 #endif  /* SCM_VERSION_H */
 
diff --git a/libguile/vports.h b/libguile/vports.h
index c25f90f..365303b 100644
--- a/libguile/vports.h
+++ b/libguile/vports.h
@@ -3,7 +3,7 @@
 #ifndef SCM_VPORTS_H
 #define SCM_VPORTS_H
 
-/* Copyright (C) 1995,1996,2000, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000, 2006, 2008 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
@@ -27,7 +27,7 @@
 
 
 SCM_API SCM scm_make_soft_port (SCM pv, SCM modes);
-SCM_API void scm_init_vports (void);
+SCM_INTERNAL void scm_init_vports (void);
 
 #endif  /* SCM_VPORTS_H */
 
diff --git a/libguile/weaks.h b/libguile/weaks.h
index bf854d5..34c44a9 100644
--- a/libguile/weaks.h
+++ b/libguile/weaks.h
@@ -3,7 +3,7 @@
 #ifndef SCM_WEAKS_H
 #define SCM_WEAKS_H
 
-/* Copyright (C) 1995,1996,2000,2001, 2003, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,2000,2001, 2003, 2006, 2008 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
@@ -62,13 +62,13 @@ SCM_API SCM scm_make_doubly_weak_alist_vector (SCM k);
 SCM_API SCM scm_weak_key_alist_vector_p (SCM x);
 SCM_API SCM scm_weak_value_alist_vector_p (SCM x);
 SCM_API SCM scm_doubly_weak_alist_vector_p (SCM x);
-SCM_API SCM scm_init_weaks_builtins (void);
-SCM_API void scm_init_weaks (void);
+SCM_INTERNAL SCM scm_init_weaks_builtins (void);
+SCM_INTERNAL void scm_init_weaks (void);
 
-SCM_API void scm_i_init_weak_vectors_for_gc (void);
-SCM_API void scm_i_mark_weak_vector (SCM w);
-SCM_API int scm_i_mark_weak_vectors_non_weaks (void);
-SCM_API void scm_i_remove_weaks_from_weak_vectors (void);
+SCM_INTERNAL void scm_i_init_weak_vectors_for_gc (void);
+SCM_INTERNAL void scm_i_mark_weak_vector (SCM w);
+SCM_INTERNAL int scm_i_mark_weak_vectors_non_weaks (void);
+SCM_INTERNAL void scm_i_remove_weaks_from_weak_vectors (void);
 
 
 #endif  /* SCM_WEAKS_H */
diff --git a/test-suite/standalone/test-gh.c b/test-suite/standalone/test-gh.c
index 4d91cce..b273b44 100644
--- a/test-suite/standalone/test-gh.c
+++ b/test-suite/standalone/test-gh.c
@@ -31,7 +31,7 @@ string_equal (SCM str, char *lit)
   int len = strlen (lit);
   int result;
  
-  result = ((scm_i_string_length (str) == len)
+  result = ((scm_c_string_length (str) == len)
             && (!memcmp (scm_i_string_chars (str), lit, len)));
   scm_remember_upto_here_1 (str);
   return result;
-- 
1.5.5


reply via email to

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