+2008-05-31 Ludovic Courtès <ludo@gnu.org>
+
+ * __scm.h (SCM_INTERNAL): New macro.
+ * *.h: Use it to mark as internal `scm_i_' and `scm_init_'
+ functions that are not used by public macros or inline
+ functions.
+
2008-05-14 Julian Graham <joolean@gmail.com>
* threads.c (fat_mutex)[recursive]: New field.
#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
+
\f
/* {Supported Options}
#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
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 */
#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
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 */
#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
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);
scm_async_click (); \
} while (0)
-SCM_API void scm_init_async (void);
+SCM_INTERNAL void scm_init_async (void);
#if (SCM_ENABLE_DEPRECATED == 1)
#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
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);
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 */
#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
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 */
#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
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 */
#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
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 */
#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
#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 */
#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
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 */
#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
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);
#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
#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 */
#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
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 */
#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
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);
#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
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);
\f
#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
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 */
#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
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 */
#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
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);
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)
#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
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)
#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
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 */
#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
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 */
#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
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 */
#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
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 */
#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
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 */
#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
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);
#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
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);
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);
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
#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
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 */
#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
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 */
#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
#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);
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)
#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
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 */
#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
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 */
#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
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 */
#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
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);
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 */
#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
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 */
#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
#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
#include "libguile/threads.h"
\f
-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);
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);
#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
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 */
#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
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 */
#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
#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 */
#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
/* 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 */
#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
\f
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);
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 */
#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
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);
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);
#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
\f
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 */
#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
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 */
#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
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 */
#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
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);
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 */
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 */
#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
/* 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);
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 */
#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
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 */
#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
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 */
#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 */
} 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)
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;
\f
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);
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
/* 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 */
#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
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 */
#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
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);
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);
/*
* 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
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);
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;
#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
\f
-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 */
#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
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);
#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
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 */
#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
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 */
#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
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 *);
\f
/*
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 */
#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
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 */
#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
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 */
#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
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 */
#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
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 */
#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
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 */
#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
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 */
#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
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 */
#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
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 */
#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
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;
#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
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 */
#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
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))
/* 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
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 */
/* 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
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 */
#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
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
#endif
-SCM_API void scm_init_srfi_4 (void);
+SCM_INTERNAL void scm_init_srfi_4 (void);
#endif /* SCM_SRFI_4_H */
#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
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 */
#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
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 */
#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
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 */
#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
/* 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 */
#endif
-SCM_API void scm_init_strings (void);
+SCM_INTERNAL void scm_init_strings (void);
#endif /* SCM_STRINGS_H */
#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
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 */
#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
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 */
#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
#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;
\f
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);
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 */
#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
/* 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 */
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 \
#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.
#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
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 */
#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
#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. */
#endif
-SCM_API void scm_init_unif (void);
+SCM_INTERNAL void scm_init_unif (void);
#endif /* SCM_UNIF_H */
#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
&& 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 */
#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
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 */
#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
#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.
#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 */
#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
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 */
#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
\f
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 */
#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
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 */
+2008-05-31 Ludovic Courtès <ludo@gnu.org>
+
+ * standalone/test-gh.c (string_equal): Use `scm_c_string_length ()'
+ instead of `scm_i_string_length ()'.
+
2008-05-15 Julian Graham <joolean@gmail.com>
* tests/srfi-18.test: New file.
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;