From 33b001fd89d070cc6e2d8a0d6d6c43fe90555972 Mon Sep 17 00:00:00 2001 From: Marius Vollmer Date: Fri, 2 Nov 2001 00:19:12 +0000 Subject: [PATCH] Prefixed each each exported symbol with SCM_API. --- libguile/chars.h | 56 ++++----- libguile/coop-defs.h | 54 ++++---- libguile/coop-threads.h | 28 ++--- libguile/debug-malloc.h | 12 +- libguile/debug.h | 66 +++++----- libguile/deprecation.h | 8 +- libguile/dynl.h | 14 +-- libguile/dynwind.h | 20 +-- libguile/environments.h | 98 +++++++-------- libguile/eq.h | 8 +- libguile/error.h | 58 ++++----- libguile/eval.h | 214 +++++++++++++++---------------- libguile/evalext.h | 8 +- libguile/extensions.h | 10 +- libguile/feature.h | 8 +- libguile/filesys.h | 62 ++++----- libguile/fluids.h | 30 ++--- libguile/fports.h | 16 +-- libguile/gc.h | 156 +++++++++++------------ libguile/gdbint.h | 4 +- libguile/gh.h | 228 ++++++++++++++++----------------- libguile/goops.h | 212 ++++++++++++++++--------------- libguile/gsubr.h | 26 ++-- libguile/guardians.h | 14 +-- libguile/hash.h | 18 +-- libguile/hashtab.h | 58 ++++----- libguile/hooks.h | 44 +++---- libguile/init.h | 16 +-- libguile/ioext.h | 20 +-- libguile/iselect.h | 16 +-- libguile/keywords.h | 12 +- libguile/lang.h | 18 +-- libguile/list.h | 74 +++++------ libguile/load.h | 26 ++-- libguile/macros.h | 24 ++-- libguile/mallocs.h | 6 +- libguile/modules.h | 94 +++++++------- libguile/net_db.h | 18 +-- libguile/num2integral.i.c | 8 +- libguile/numbers.c | 2 - libguile/numbers.h | 256 +++++++++++++++++++------------------- libguile/objects.h | 77 ++++++------ libguile/objprop.h | 10 +- libguile/options.h | 6 +- libguile/pairs.h | 14 +-- libguile/ports.h | 190 ++++++++++++++-------------- libguile/posix.h | 112 ++++++++--------- libguile/print.h | 50 ++++---- libguile/procprop.h | 18 +-- libguile/procs.h | 48 +++---- libguile/properties.h | 10 +- libguile/ramap.h | 44 +++---- libguile/random.h | 50 ++++---- libguile/rdelim.h | 12 +- libguile/read.h | 24 ++-- libguile/regex-posix.h | 10 +- libguile/root.h | 26 ++-- libguile/rw.h | 10 +- libguile/scmsigs.h | 24 ++-- libguile/script.h | 24 ++-- libguile/simpos.h | 8 +- libguile/smob.h | 40 +++--- libguile/socket.h | 56 ++++----- libguile/sort.h | 28 ++--- libguile/srcprop.h | 28 ++--- libguile/stackchk.h | 10 +- libguile/stacks.h | 42 +++---- libguile/stime.h | 26 ++-- libguile/strings.h | 34 ++--- libguile/strop.h | 36 +++--- libguile/strorder.h | 22 ++-- libguile/strports.h | 26 ++-- libguile/struct.h | 46 +++---- libguile/symbols.h | 28 ++--- libguile/tags.h | 2 +- libguile/threads.h | 48 +++---- libguile/throw.h | 58 ++++----- libguile/unif.h | 74 +++++------ libguile/values.h | 6 +- libguile/variable.h | 16 +-- libguile/vectors.h | 30 ++--- libguile/vports.h | 4 +- libguile/weaks.h | 24 ++-- 83 files changed, 1798 insertions(+), 1773 deletions(-) diff --git a/libguile/chars.h b/libguile/chars.h index 221a4039b..6fa459055 100644 --- a/libguile/chars.h +++ b/libguile/chars.h @@ -57,37 +57,37 @@ -extern char *const scm_charnames[]; -extern int scm_n_charnames; -extern const char scm_charnums[]; +SCM_API char *const scm_charnames[]; +SCM_API int scm_n_charnames; +SCM_API const char scm_charnums[]; -extern SCM scm_char_p (SCM x); -extern SCM scm_char_eq_p (SCM x, SCM y); -extern SCM scm_char_less_p (SCM x, SCM y); -extern SCM scm_char_leq_p (SCM x, SCM y); -extern SCM scm_char_gr_p (SCM x, SCM y); -extern SCM scm_char_geq_p (SCM x, SCM y); -extern SCM scm_char_ci_eq_p (SCM x, SCM y); -extern SCM scm_char_ci_less_p (SCM x, SCM y); -extern SCM scm_char_ci_leq_p (SCM x, SCM y); -extern SCM scm_char_ci_gr_p (SCM x, SCM y); -extern SCM scm_char_ci_geq_p (SCM x, SCM y); -extern SCM scm_char_alphabetic_p (SCM chr); -extern SCM scm_char_numeric_p (SCM chr); -extern SCM scm_char_whitespace_p (SCM chr); -extern SCM scm_char_upper_case_p (SCM chr); -extern SCM scm_char_lower_case_p (SCM chr); -extern SCM scm_char_is_both_p (SCM chr); -extern SCM scm_char_to_integer (SCM chr); -extern SCM scm_integer_to_char (SCM n); -extern SCM scm_char_upcase (SCM chr); -extern SCM scm_char_downcase (SCM chr); -extern void scm_tables_prehistory (void); -extern int scm_upcase (unsigned int c); -extern int scm_downcase (unsigned int c); -extern void scm_init_chars (void); +SCM_API SCM scm_char_p (SCM x); +SCM_API SCM scm_char_eq_p (SCM x, SCM y); +SCM_API SCM scm_char_less_p (SCM x, SCM y); +SCM_API SCM scm_char_leq_p (SCM x, SCM y); +SCM_API SCM scm_char_gr_p (SCM x, SCM y); +SCM_API SCM scm_char_geq_p (SCM x, SCM y); +SCM_API SCM scm_char_ci_eq_p (SCM x, SCM y); +SCM_API SCM scm_char_ci_less_p (SCM x, SCM y); +SCM_API SCM scm_char_ci_leq_p (SCM x, SCM y); +SCM_API SCM scm_char_ci_gr_p (SCM x, SCM y); +SCM_API SCM scm_char_ci_geq_p (SCM x, SCM y); +SCM_API SCM scm_char_alphabetic_p (SCM chr); +SCM_API SCM scm_char_numeric_p (SCM chr); +SCM_API SCM scm_char_whitespace_p (SCM chr); +SCM_API SCM scm_char_upper_case_p (SCM chr); +SCM_API SCM scm_char_lower_case_p (SCM chr); +SCM_API SCM scm_char_is_both_p (SCM chr); +SCM_API SCM scm_char_to_integer (SCM chr); +SCM_API SCM scm_integer_to_char (SCM n); +SCM_API SCM scm_char_upcase (SCM chr); +SCM_API SCM scm_char_downcase (SCM chr); +SCM_API void scm_tables_prehistory (void); +SCM_API int scm_upcase (unsigned int c); +SCM_API int scm_downcase (unsigned int c); +SCM_API void scm_init_chars (void); #endif /* SCM_CHARS_H */ diff --git a/libguile/coop-defs.h b/libguile/coop-defs.h index 302230ebe..b9c5b4f9c 100644 --- a/libguile/coop-defs.h +++ b/libguile/coop-defs.h @@ -143,12 +143,12 @@ typedef int coop_mattr; typedef coop_m scm_t_mutex; -extern int coop_mutex_init (coop_m*); -extern int coop_new_mutex_init (coop_m*, coop_mattr*); -extern int coop_mutex_lock (coop_m*); -extern int coop_mutex_trylock (coop_m*); -extern int coop_mutex_unlock (coop_m*); -extern int coop_mutex_destroy (coop_m*); +SCM_API int coop_mutex_init (coop_m*); +SCM_API int coop_new_mutex_init (coop_m*, coop_mattr*); +SCM_API int coop_mutex_lock (coop_m*); +SCM_API int coop_mutex_trylock (coop_m*); +SCM_API int coop_mutex_unlock (coop_m*); +SCM_API int coop_mutex_destroy (coop_m*); #define scm_mutex_init coop_mutex_init #define scm_mutex_lock coop_mutex_lock #define scm_mutex_trylock coop_mutex_lock @@ -176,14 +176,14 @@ struct timespec }; #endif -extern int coop_condition_variable_init (coop_c*); -extern int coop_new_condition_variable_init (coop_c*, coop_cattr*); -extern int coop_condition_variable_wait_mutex (coop_c*, coop_m*); -extern int coop_condition_variable_timed_wait_mutex (coop_c*, - coop_m*, - const struct timespec *abstime); -extern int coop_condition_variable_signal (coop_c*); -extern int coop_condition_variable_destroy (coop_c*); +SCM_API int coop_condition_variable_init (coop_c*); +SCM_API int coop_new_condition_variable_init (coop_c*, coop_cattr*); +SCM_API int coop_condition_variable_wait_mutex (coop_c*, coop_m*); +SCM_API int coop_condition_variable_timed_wait_mutex (coop_c*, + coop_m*, + const struct timespec *abstime); +SCM_API int coop_condition_variable_signal (coop_c*); +SCM_API int coop_condition_variable_destroy (coop_c*); #define scm_cond_init coop_new_condition_variable_init #define scm_cond_wait coop_condition_variable_wait_mutex #define scm_cond_timedwait coop_condition_variable_timed_wait_mutex @@ -195,22 +195,22 @@ typedef int coop_k; typedef coop_k scm_t_key; -extern int coop_key_create (coop_k *keyp, void (*destruktor) (void *value)); -extern int coop_setspecific (coop_k key, const void *value); -extern void *coop_getspecific (coop_k key); -extern int coop_key_delete (coop_k); +SCM_API int coop_key_create (coop_k *keyp, void (*destruktor) (void *value)); +SCM_API int coop_setspecific (coop_k key, const void *value); +SCM_API void *coop_getspecific (coop_k key); +SCM_API int coop_key_delete (coop_k); #define scm_key_create coop_key_create #define scm_setspecific coop_setspecific #define scm_getspecific coop_getspecific #define scm_key_delete coop_key_delete -extern coop_t *coop_global_curr; /* Currently-executing thread. */ +SCM_API coop_t *coop_global_curr; /* Currently-executing thread. */ -extern void coop_join (coop_t *t); -extern void coop_yield (void); +SCM_API void coop_join (coop_t *t); +SCM_API void coop_yield (void); -extern size_t scm_switch_counter; -extern size_t scm_thread_count; +SCM_API size_t scm_switch_counter; +SCM_API size_t scm_thread_count; /* Some iselect functions. */ @@ -222,11 +222,11 @@ extern size_t scm_thread_count; (and failing) attempt at modularity here, and I don't have time to rethink this at the moment. This code awaits a Hero. --JimB */ #ifdef GUILE_ISELECT -void coop_timeout_qinsert (coop_q_t *, coop_t *); +SCM_API void coop_timeout_qinsert (coop_q_t *, coop_t *); #endif -extern coop_t *coop_next_runnable_thread (void); -extern coop_t *coop_wait_for_runnable_thread_now (struct timeval *); -extern coop_t *coop_wait_for_runnable_thread (void); +SCM_API coop_t *coop_next_runnable_thread (void); +SCM_API coop_t *coop_wait_for_runnable_thread_now (struct timeval *); +SCM_API coop_t *coop_wait_for_runnable_thread (void); diff --git a/libguile/coop-threads.h b/libguile/coop-threads.h index ffc1ef120..98afebef9 100644 --- a/libguile/coop-threads.h +++ b/libguile/coop-threads.h @@ -81,46 +81,46 @@ typedef void (coop_userf_t)(void *p0); /* Call this before any other primitives. */ -extern void coop_init (void); +SCM_API void coop_init (void); /* When one or more threads are created by the main thread, the system goes multithread when this is called. It is done (no more runable threads) when this returns. */ -extern void coop_start (void); +SCM_API void coop_start (void); /* Create a thread and make it runable. When the thread starts running it will call `f' with arguments `p0' and `p1'. */ -extern coop_t *coop_create (coop_userf_t *f, void *p0); +SCM_API coop_t *coop_create (coop_userf_t *f, void *p0); /* The current thread stops running but stays runable. It is an error to call `coop_yield' before `coop_start' is called or after `coop_start' returns. */ -extern void coop_yield (void); +SCM_API void coop_yield (void); /* Like `coop_yield' but the thread is discarded. Any intermediate state is lost. The thread can also terminate by simply returning. */ -extern void coop_abort (void); +SCM_API void coop_abort (void); /* The following are needed in iselect.c */ -extern coop_t *coop_qget (coop_q_t *); -extern void coop_qput (coop_q_t *, coop_t *); -extern void *coop_sleephelp (qt_t *, void *, void *); +SCM_API coop_t *coop_qget (coop_q_t *); +SCM_API void coop_qput (coop_q_t *, coop_t *); +SCM_API void *coop_sleephelp (qt_t *, void *, void *); #ifdef GUILE_ISELECT -extern coop_t *coop_wait_for_runnable_thread (); +SCM_API coop_t *coop_wait_for_runnable_thread (); #endif -extern coop_q_t coop_global_runq; /* A queue of runable threads. */ -extern coop_q_t coop_global_sleepq; -extern coop_q_t coop_tmp_queue; -extern coop_q_t coop_global_allq; /* A queue of all threads. */ -extern coop_t *coop_global_curr; /* Currently-executing thread. */ +SCM_API coop_q_t coop_global_runq; /* A queue of runable threads. */ +SCM_API coop_q_t coop_global_sleepq; +SCM_API coop_q_t coop_tmp_queue; +SCM_API coop_q_t coop_global_allq; /* A queue of all threads. */ +SCM_API coop_t *coop_global_curr; /* Currently-executing thread. */ #endif /* SCM_COOP_THREADS_H */ diff --git a/libguile/debug-malloc.h b/libguile/debug-malloc.h index 1d646fcb9..f337b1193 100644 --- a/libguile/debug-malloc.h +++ b/libguile/debug-malloc.h @@ -50,14 +50,14 @@ -extern void scm_malloc_register (void *obj, const char *what); -extern void scm_malloc_unregister (void *obj); -extern void scm_malloc_reregister (void *obj, void *new, const char *what); +SCM_API void scm_malloc_register (void *obj, const char *what); +SCM_API void scm_malloc_unregister (void *obj); +SCM_API void scm_malloc_reregister (void *obj, void *new, const char *what); -extern SCM scm_malloc_stats (void); +SCM_API SCM scm_malloc_stats (void); -extern void scm_debug_malloc_prehistory (void); -extern void scm_init_debug_malloc (void); +SCM_API void scm_debug_malloc_prehistory (void); +SCM_API void scm_init_debug_malloc (void); #endif /* SCM_DEBUG_MALLOC_H */ diff --git a/libguile/debug.h b/libguile/debug.h index baa209fbd..f7059266f 100644 --- a/libguile/debug.h +++ b/libguile/debug.h @@ -68,7 +68,7 @@ /* scm_debug_opts is defined in eval.c. */ -extern scm_t_option scm_debug_opts[]; +SCM_API scm_t_option scm_debug_opts[]; #define SCM_CHEAPTRAPS_P scm_debug_opts[0].val #define SCM_BREAKPOINTS_P scm_debug_opts[1].val @@ -86,10 +86,12 @@ extern scm_t_option scm_debug_opts[]; #define SCM_SHOW_FILE_NAME scm_debug_opts[13].val #define SCM_N_DEBUG_OPTIONS 14 -extern SCM (*scm_ceval_ptr) (SCM exp, SCM env); +SCM_API SCM (*scm_ceval_ptr) (SCM exp, SCM env); -extern int scm_debug_mode; -extern int scm_check_entry_p, scm_check_apply_p, scm_check_exit_p; +SCM_API int scm_debug_mode; +SCM_API int scm_check_entry_p; +SCM_API int scm_check_apply_p; +SCM_API int scm_check_exit_p; #define CHECK_ENTRY scm_check_entry_p #define CHECK_APPLY scm_check_apply_p @@ -117,7 +119,7 @@ typedef union scm_t_debug_info SCM id; } scm_t_debug_info; -extern long scm_debug_eframe_size; +SCM_API long scm_debug_eframe_size; typedef struct scm_t_debug_frame { @@ -128,7 +130,7 @@ typedef struct scm_t_debug_frame } scm_t_debug_frame; #ifndef USE_THREADS -extern scm_t_debug_frame *scm_last_debug_frame; +SCM_API scm_t_debug_frame *scm_last_debug_frame; #endif #define SCM_EVALFRAME (0L << 11) @@ -165,7 +167,7 @@ extern scm_t_debug_frame *scm_last_debug_frame; /* {Debug Objects} */ -extern scm_t_bits scm_tc16_debugobj; +SCM_API scm_t_bits scm_tc16_debugobj; #define SCM_DEBUGOBJP(x) \ SCM_TYP16_PREDICATE (scm_tc16_debugobj, x) @@ -176,7 +178,7 @@ extern scm_t_bits scm_tc16_debugobj; /* {Memoized Source} */ -extern scm_t_bits scm_tc16_memoized; +SCM_API scm_t_bits scm_tc16_memoized; #define SCM_MEMOIZEDP(x) SCM_TYP16_PREDICATE (scm_tc16_memoized, x) #define SCM_MEMOIZED_EXP(x) SCM_CAR (SCM_CELL_OBJECT_1 (x)) @@ -184,32 +186,32 @@ extern scm_t_bits scm_tc16_memoized; -extern int scm_ready_p (void); -extern void debug_print (SCM obj); -extern SCM scm_debug_object_p (SCM obj); -extern SCM scm_local_eval (SCM exp, SCM env); -extern SCM scm_reverse_lookup (SCM env, SCM data); -extern SCM scm_start_stack (SCM id, SCM exp, SCM env); -extern SCM scm_procedure_environment (SCM proc); -extern SCM scm_procedure_source (SCM proc); -extern SCM scm_procedure_name (SCM proc); -extern SCM scm_memoized_environment (SCM m); -extern SCM scm_make_memoized (SCM exp, SCM env); -extern SCM scm_memoized_p (SCM obj); -extern SCM scm_with_traps (SCM thunk); -extern SCM scm_evaluator_traps (SCM setting); -extern SCM scm_debug_options (SCM setting); -extern SCM scm_unmemoize (SCM memoized); -extern SCM scm_make_debugobj (scm_t_debug_frame *debug); -extern void scm_init_debug (void); +SCM_API int scm_ready_p (void); +SCM_API void debug_print (SCM obj); +SCM_API SCM scm_debug_object_p (SCM obj); +SCM_API SCM scm_local_eval (SCM exp, SCM env); +SCM_API SCM scm_reverse_lookup (SCM env, SCM data); +SCM_API SCM scm_start_stack (SCM id, SCM exp, SCM env); +SCM_API SCM scm_procedure_environment (SCM proc); +SCM_API SCM scm_procedure_source (SCM proc); +SCM_API SCM scm_procedure_name (SCM proc); +SCM_API SCM scm_memoized_environment (SCM m); +SCM_API SCM scm_make_memoized (SCM exp, SCM env); +SCM_API SCM scm_memoized_p (SCM obj); +SCM_API SCM scm_with_traps (SCM thunk); +SCM_API SCM scm_evaluator_traps (SCM setting); +SCM_API SCM scm_debug_options (SCM setting); +SCM_API SCM scm_unmemoize (SCM memoized); +SCM_API SCM scm_make_debugobj (scm_t_debug_frame *debug); +SCM_API void scm_init_debug (void); #ifdef GUILE_DEBUG -extern SCM scm_make_iloc (SCM frame, SCM binding, SCM cdrp); -extern SCM scm_iloc_p (SCM obj); -extern SCM scm_memcons (SCM car, SCM cdr, SCM env); -extern SCM scm_mem_to_proc (SCM obj); -extern SCM scm_proc_to_mem (SCM obj); -extern SCM scm_debug_hang (SCM obj); +SCM_API SCM scm_make_iloc (SCM frame, SCM binding, SCM cdrp); +SCM_API SCM scm_iloc_p (SCM obj); +SCM_API SCM scm_memcons (SCM car, SCM cdr, SCM env); +SCM_API SCM scm_mem_to_proc (SCM obj); +SCM_API SCM scm_proc_to_mem (SCM obj); +SCM_API SCM scm_debug_hang (SCM obj); #endif /*GUILE_DEBUG*/ #endif /* SCM_DEBUG_H */ diff --git a/libguile/deprecation.h b/libguile/deprecation.h index 726c64a05..22f666da3 100644 --- a/libguile/deprecation.h +++ b/libguile/deprecation.h @@ -52,13 +52,13 @@ #if (SCM_ENABLE_DEPRECATED == 1) -void scm_c_issue_deprecation_warning (const char *msg); -SCM scm_issue_deprecation_warning (SCM msgs); +SCM_API void scm_c_issue_deprecation_warning (const char *msg); +SCM_API SCM scm_issue_deprecation_warning (SCM msgs); #endif -SCM scm_include_deprecated_features (void); -void scm_init_deprecation (void); +SCM_API SCM scm_include_deprecated_features (void); +SCM_API void scm_init_deprecation (void); #endif /* SCM_DEPRECATION_H */ diff --git a/libguile/dynl.h b/libguile/dynl.h index 9910499d5..aacf4ef1f 100644 --- a/libguile/dynl.h +++ b/libguile/dynl.h @@ -50,14 +50,14 @@ -SCM scm_dynamic_link (SCM fname); -SCM scm_dynamic_unlink (SCM dobj); -SCM scm_dynamic_object_p (SCM obj); -SCM scm_dynamic_func (SCM symb, SCM dobj); -SCM scm_dynamic_call (SCM symb, SCM dobj); -SCM scm_dynamic_args_call (SCM symb, SCM dobj, SCM args); +SCM_API SCM scm_dynamic_link (SCM fname); +SCM_API SCM scm_dynamic_unlink (SCM dobj); +SCM_API SCM scm_dynamic_object_p (SCM obj); +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); -void scm_init_dynamic_linking (void); +SCM_API void scm_init_dynamic_linking (void); #endif /* SCM_DYNL_H */ diff --git a/libguile/dynwind.h b/libguile/dynwind.h index d7ac926f3..eae2d84a0 100644 --- a/libguile/dynwind.h +++ b/libguile/dynwind.h @@ -53,19 +53,19 @@ typedef void (*scm_t_guard) (void *); typedef SCM (*scm_t_inner) (void *); -extern SCM scm_dynamic_wind (SCM thunk1, SCM thunk2, SCM thunk3); -extern SCM scm_internal_dynamic_wind (scm_t_guard before, - scm_t_inner inner, - scm_t_guard after, - void *inner_data, - void *guard_data); -extern void scm_dowinds (SCM to, long delta); -extern void scm_init_dynwind (void); +SCM_API SCM scm_dynamic_wind (SCM thunk1, SCM thunk2, SCM thunk3); +SCM_API SCM scm_internal_dynamic_wind (scm_t_guard before, + scm_t_inner inner, + scm_t_guard after, + void *inner_data, + void *guard_data); +SCM_API void scm_dowinds (SCM to, long delta); +SCM_API void scm_init_dynwind (void); -extern void scm_swap_bindings (SCM vars, SCM vals); +SCM_API void scm_swap_bindings (SCM vars, SCM vals); #ifdef GUILE_DEBUG -extern SCM scm_wind_chain (void); +SCM_API SCM scm_wind_chain (void); #endif /*GUILE_DEBUG*/ #endif /* SCM_DYNWIND_H */ diff --git a/libguile/environments.h b/libguile/environments.h index 77f866d2f..5488adba6 100644 --- a/libguile/environments.h +++ b/libguile/environments.h @@ -87,7 +87,7 @@ struct scm_environment_funcs { #define SCM_ENVIRONMENT_LOCATION_IMMUTABLE SCM_MAKINUM (1) #define SCM_ENVIRONMENT_LOCATION_NO_CELL SCM_BOOL_F -extern scm_t_bits scm_tc16_environment; +SCM_API scm_t_bits scm_tc16_environment; #define SCM_ENVIRONMENT_P(x) \ (!SCM_IMP (x) && SCM_CELL_TYPE (x) == scm_tc16_environment) @@ -112,7 +112,7 @@ extern scm_t_bits scm_tc16_environment; #define SCM_ENVIRONMENT_UNOBSERVE(env, token) \ ((*(SCM_ENVIRONMENT_FUNCS (env)->unobserve)) (env, token)) -extern scm_t_bits scm_tc16_observer; +SCM_API scm_t_bits scm_tc16_observer; #define SCM_OBSERVER_P(x) \ (!SCM_IMP (x) && (SCM_CELL_TYPE (x) == scm_tc16_observer)) @@ -123,85 +123,85 @@ extern scm_t_bits scm_tc16_observer; #define SCM_OBSERVER_PROC(x) \ ((scm_environment_observer) SCM_CELL_WORD_3 (x)) -extern SCM scm_system_environment; - -extern void scm_error_environment_unbound (const char *, SCM, SCM) SCM_NORETURN; -extern void scm_error_environment_immutable_binding (const char *, SCM, SCM) SCM_NORETURN; -extern void scm_error_environment_immutable_location (const char *, SCM, SCM) SCM_NORETURN; - -extern SCM scm_make_environment (void *type); -extern SCM scm_environment_p (SCM env); -extern SCM scm_environment_bound_p (SCM env, SCM sym); -extern SCM scm_environment_ref (SCM env, SCM sym); -extern SCM scm_c_environment_ref (SCM env, SCM sym); -extern SCM scm_environment_fold (SCM env, SCM proc, SCM init); -extern SCM scm_c_environment_fold (SCM env, scm_environment_folder proc, SCM data, SCM init); -extern SCM scm_environment_define (SCM env, SCM sym, SCM val); -extern SCM scm_environment_undefine (SCM env, SCM sym); -extern SCM scm_environment_set_x (SCM env, SCM sym, SCM val); -extern SCM scm_environment_cell (SCM env, SCM sym, SCM for_write); -extern SCM scm_c_environment_cell (SCM env, SCM sym, int for_write); -extern SCM scm_environment_observe (SCM env, SCM proc); -extern SCM scm_environment_observe_weak (SCM env, SCM proc); -extern SCM scm_c_environment_observe (SCM env, scm_environment_observer proc, SCM data, int weak_p); -extern SCM scm_environment_unobserve (SCM token); - -extern void scm_environments_prehistory (void); -extern void scm_init_environments (void); +SCM_API SCM scm_system_environment; + +SCM_API void scm_error_environment_unbound (const char *, SCM, SCM) SCM_NORETURN; +SCM_API void scm_error_environment_immutable_binding (const char *, SCM, SCM) SCM_NORETURN; +SCM_API void scm_error_environment_immutable_location (const char *, SCM, SCM) SCM_NORETURN; + +SCM_API SCM scm_make_environment (void *type); +SCM_API SCM scm_environment_p (SCM env); +SCM_API SCM scm_environment_bound_p (SCM env, SCM sym); +SCM_API SCM scm_environment_ref (SCM env, SCM sym); +SCM_API SCM scm_c_environment_ref (SCM env, SCM sym); +SCM_API SCM scm_environment_fold (SCM env, SCM proc, SCM init); +SCM_API SCM scm_c_environment_fold (SCM env, scm_environment_folder proc, SCM data, SCM init); +SCM_API SCM scm_environment_define (SCM env, SCM sym, SCM val); +SCM_API SCM scm_environment_undefine (SCM env, SCM sym); +SCM_API SCM scm_environment_set_x (SCM env, SCM sym, SCM val); +SCM_API SCM scm_environment_cell (SCM env, SCM sym, SCM for_write); +SCM_API SCM scm_c_environment_cell (SCM env, SCM sym, int for_write); +SCM_API SCM scm_environment_observe (SCM env, SCM proc); +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); -extern void *scm_type_leaf_environment; +SCM_API void *scm_type_leaf_environment; #define SCM_LEAF_ENVIRONMENT_P(env) \ (SCM_ENVIRONMENT_P (env) \ && SCM_ENVIRONMENT_FUNCS (env) == scm_type_leaf_environment) -extern SCM scm_make_leaf_environment (void); -extern SCM scm_leaf_environment_p (SCM env); +SCM_API SCM scm_make_leaf_environment (void); +SCM_API SCM scm_leaf_environment_p (SCM env); -extern void *scm_type_eval_environment; +SCM_API void *scm_type_eval_environment; #define SCM_EVAL_ENVIRONMENT_P(env) \ (SCM_ENVIRONMENT_P (env) \ && SCM_ENVIRONMENT_FUNCS (env) == scm_type_eval_environment) -extern SCM scm_make_eval_environment (SCM local, SCM imported); -extern SCM scm_eval_environment_p (SCM env); -extern SCM scm_eval_environment_local (SCM env); -extern SCM scm_eval_environment_set_local_x (SCM env, SCM local); -extern SCM scm_eval_environment_imported (SCM env); -extern SCM scm_eval_environment_set_imported_x (SCM env, SCM imported); +SCM_API SCM scm_make_eval_environment (SCM local, SCM imported); +SCM_API SCM scm_eval_environment_p (SCM env); +SCM_API SCM scm_eval_environment_local (SCM env); +SCM_API SCM scm_eval_environment_set_local_x (SCM env, SCM local); +SCM_API SCM scm_eval_environment_imported (SCM env); +SCM_API SCM scm_eval_environment_set_imported_x (SCM env, SCM imported); -extern void *scm_type_import_environment; +SCM_API void *scm_type_import_environment; #define SCM_IMPORT_ENVIRONMENT_P(env) \ (SCM_ENVIRONMENT_P (env) \ && SCM_ENVIRONMENT_FUNCS (env) == scm_type_import_environment) -extern SCM scm_make_import_environment (SCM imports, SCM conflict_proc); -extern SCM scm_import_environment_p (SCM env); -extern SCM scm_import_environment_imports (SCM env); -extern SCM scm_import_environment_set_imports_x (SCM env, SCM imports); +SCM_API SCM scm_make_import_environment (SCM imports, SCM conflict_proc); +SCM_API SCM scm_import_environment_p (SCM env); +SCM_API SCM scm_import_environment_imports (SCM env); +SCM_API SCM scm_import_environment_set_imports_x (SCM env, SCM imports); -extern void *scm_type_export_environment; +SCM_API void *scm_type_export_environment; #define SCM_EXPORT_ENVIRONMENT_P(env) \ (SCM_ENVIRONMENT_P (env) \ && SCM_ENVIRONMENT_FUNCS (env) == scm_type_export_environment) -extern SCM scm_make_export_environment (SCM private, SCM signature); -extern SCM scm_export_environment_p (SCM env); -extern SCM scm_export_environment_private (SCM env); -extern SCM scm_export_environment_set_private_x (SCM env, SCM private); -extern SCM scm_export_environment_signature (SCM env); -extern SCM scm_export_environment_set_signature_x (SCM env, SCM signature); +SCM_API SCM scm_make_export_environment (SCM private, SCM signature); +SCM_API SCM scm_export_environment_p (SCM env); +SCM_API SCM scm_export_environment_private (SCM env); +SCM_API SCM scm_export_environment_set_private_x (SCM env, SCM private); +SCM_API SCM scm_export_environment_signature (SCM env); +SCM_API SCM scm_export_environment_set_signature_x (SCM env, SCM signature); #endif /* SCM_ENVIRONMENTS_H */ diff --git a/libguile/eq.h b/libguile/eq.h index 6fbfe3e1b..5cb326dda 100644 --- a/libguile/eq.h +++ b/libguile/eq.h @@ -50,10 +50,10 @@ -extern SCM scm_eq_p (SCM x, SCM y); -extern SCM scm_eqv_p (SCM x, SCM y); -extern SCM scm_equal_p (SCM x, SCM y); -extern void scm_init_eq (void); +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); #endif /* SCM_EQ_H */ diff --git a/libguile/error.h b/libguile/error.h index 0bdb10895..1f1692024 100644 --- a/libguile/error.h +++ b/libguile/error.h @@ -49,41 +49,41 @@ #include "libguile/__scm.h" -extern int scm_ints_disabled; +SCM_API int scm_ints_disabled; -extern SCM scm_system_error_key; -extern SCM scm_num_overflow_key; -extern SCM scm_out_of_range_key; -extern SCM scm_args_number_key; -extern SCM scm_arg_type_key; -extern SCM scm_memory_alloc_key; -extern SCM scm_misc_error_key; +SCM_API SCM scm_system_error_key; +SCM_API SCM scm_num_overflow_key; +SCM_API SCM scm_out_of_range_key; +SCM_API SCM scm_args_number_key; +SCM_API SCM scm_arg_type_key; +SCM_API SCM scm_memory_alloc_key; +SCM_API SCM scm_misc_error_key; -extern void scm_error (SCM key, const char *subr, const char *message, - SCM args, SCM rest) SCM_NORETURN; -extern SCM scm_error_scm (SCM key, SCM subr, SCM message, - SCM args, SCM rest) SCM_NORETURN; -extern SCM scm_strerror (SCM err); -extern void scm_syserror (const char *subr) SCM_NORETURN; -extern void scm_syserror_msg (const char *subr, const char *message, - SCM args, int eno) SCM_NORETURN; -extern void scm_num_overflow (const char *subr) SCM_NORETURN; -extern void scm_out_of_range (const char *subr, SCM bad_value) +SCM_API void scm_error (SCM key, const char *subr, const char *message, + SCM args, SCM rest) SCM_NORETURN; +SCM_API SCM scm_error_scm (SCM key, SCM subr, SCM message, + SCM args, SCM rest) SCM_NORETURN; +SCM_API SCM scm_strerror (SCM err); +SCM_API void scm_syserror (const char *subr) SCM_NORETURN; +SCM_API void scm_syserror_msg (const char *subr, const char *message, + SCM args, int eno) SCM_NORETURN; +SCM_API void scm_num_overflow (const char *subr) SCM_NORETURN; +SCM_API void scm_out_of_range (const char *subr, SCM bad_value) SCM_NORETURN; -extern void scm_out_of_range_pos (const char *subr, SCM bad_value, SCM pos) +SCM_API void scm_out_of_range_pos (const char *subr, SCM bad_value, SCM pos) SCM_NORETURN; -extern void scm_wrong_num_args (SCM proc) SCM_NORETURN; -extern void scm_error_num_args_subr (const char* subr) SCM_NORETURN; -extern void scm_wrong_type_arg (const char *subr, int pos, - SCM bad_value) SCM_NORETURN; -extern void scm_wrong_type_arg_msg (const char *subr, int pos, - SCM bad_value, const char *sz) SCM_NORETURN; -extern void scm_memory_error (const char *subr) SCM_NORETURN; -extern void scm_misc_error (const char *subr, const char *message, - SCM args) SCM_NORETURN; -extern void scm_init_error (void); +SCM_API void scm_wrong_num_args (SCM proc) SCM_NORETURN; +SCM_API void scm_error_num_args_subr (const char* subr) SCM_NORETURN; +SCM_API void scm_wrong_type_arg (const char *subr, int pos, + SCM bad_value) SCM_NORETURN; +SCM_API void scm_wrong_type_arg_msg (const char *subr, int pos, + SCM bad_value, const char *sz) SCM_NORETURN; +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); #endif /* SCM_ERROR_H */ diff --git a/libguile/eval.h b/libguile/eval.h index 8895b9ccb..84705668d 100644 --- a/libguile/eval.h +++ b/libguile/eval.h @@ -55,16 +55,16 @@ /* {Options} */ -extern scm_t_option scm_eval_opts[]; +SCM_API scm_t_option scm_eval_opts[]; #define SCM_EVAL_STACK scm_eval_opts[0].val #define SCM_N_EVAL_OPTIONS 1 -extern long scm_eval_stack; +SCM_API long scm_eval_stack; -extern scm_t_option scm_evaluator_trap_table[]; +SCM_API scm_t_option scm_evaluator_trap_table[]; -extern SCM scm_eval_options_interface (SCM setting); +SCM_API SCM scm_eval_options_interface (SCM setting); #define SCM_TRAPS_P scm_evaluator_trap_table[0].val #define SCM_ENTER_FRAME_P scm_evaluator_trap_table[1].val @@ -137,116 +137,116 @@ extern SCM scm_eval_options_interface (SCM setting); #define SCM_TOP_LEVEL_LOOKUP_CLOSURE (scm_current_module_lookup_closure()) -extern const char scm_s_expression[]; -extern const char scm_s_test[]; -extern const char scm_s_body[]; -extern const char scm_s_bindings[]; -extern const char scm_s_variable[]; -extern const char scm_s_clauses[]; -extern const char scm_s_formals[]; -extern const char scm_s_set_x[]; +SCM_API const char scm_s_expression[]; +SCM_API const char scm_s_test[]; +SCM_API const char scm_s_body[]; +SCM_API const char scm_s_bindings[]; +SCM_API const char scm_s_variable[]; +SCM_API const char scm_s_clauses[]; +SCM_API const char scm_s_formals[]; +SCM_API const char scm_s_set_x[]; -extern SCM scm_sym_and; -extern SCM scm_sym_begin; -extern SCM scm_sym_case; -extern SCM scm_sym_cond; -extern SCM scm_sym_define; -extern SCM scm_sym_do; -extern SCM scm_sym_if; -extern SCM scm_sym_lambda; -extern SCM scm_sym_let; -extern SCM scm_sym_letstar; -extern SCM scm_sym_letrec; -extern SCM scm_sym_quote; -extern SCM scm_sym_quasiquote; -extern SCM scm_sym_unquote; -extern SCM scm_sym_uq_splicing; +SCM_API SCM scm_sym_and; +SCM_API SCM scm_sym_begin; +SCM_API SCM scm_sym_case; +SCM_API SCM scm_sym_cond; +SCM_API SCM scm_sym_define; +SCM_API SCM scm_sym_do; +SCM_API SCM scm_sym_if; +SCM_API SCM scm_sym_lambda; +SCM_API SCM scm_sym_let; +SCM_API SCM scm_sym_letstar; +SCM_API SCM scm_sym_letrec; +SCM_API SCM scm_sym_quote; +SCM_API SCM scm_sym_quasiquote; +SCM_API SCM scm_sym_unquote; +SCM_API SCM scm_sym_uq_splicing; -extern SCM scm_sym_dot; -extern SCM scm_sym_atapply; -extern SCM scm_sym_atcall_cc; -extern SCM scm_sym_at_call_with_values; -extern SCM scm_sym_delay; -extern SCM scm_sym_arrow; -extern SCM scm_sym_else; -extern SCM scm_sym_apply; -extern SCM scm_sym_set_x; -extern SCM scm_sym_args; +SCM_API SCM scm_sym_dot; +SCM_API SCM scm_sym_atapply; +SCM_API SCM scm_sym_atcall_cc; +SCM_API SCM scm_sym_at_call_with_values; +SCM_API SCM scm_sym_delay; +SCM_API SCM scm_sym_arrow; +SCM_API SCM scm_sym_else; +SCM_API SCM scm_sym_apply; +SCM_API SCM scm_sym_set_x; +SCM_API SCM scm_sym_args; -extern SCM scm_f_apply; +SCM_API SCM scm_f_apply; -extern SCM * scm_ilookup (SCM iloc, SCM env); -extern SCM * scm_lookupcar (SCM vloc, SCM genv, int check); -extern SCM scm_unmemocar (SCM form, SCM env); -extern SCM scm_unmemocopy (SCM form, SCM env); -extern SCM scm_eval_car (SCM pair, SCM env); -extern SCM scm_eval_body (SCM code, SCM env); -extern SCM scm_eval_args (SCM i, SCM env, SCM proc); -extern SCM scm_deval_args (SCM l, SCM env, SCM proc, SCM *lloc); -extern SCM scm_m_quote (SCM xorig, SCM env); -extern SCM scm_m_begin (SCM xorig, SCM env); -extern SCM scm_m_if (SCM xorig, SCM env); -extern SCM scm_m_set_x (SCM xorig, SCM env); -extern SCM scm_m_vref (SCM xorig, SCM env); -extern SCM scm_m_vset (SCM xorig, SCM env); -extern SCM scm_m_and (SCM xorig, SCM env); -extern SCM scm_m_or (SCM xorig, SCM env); -extern SCM scm_m_case (SCM xorig, SCM env); -extern SCM scm_m_cond (SCM xorig, SCM env); -extern SCM scm_m_lambda (SCM xorig, SCM env); -extern SCM scm_m_letstar (SCM xorig, SCM env); -extern SCM scm_m_do (SCM xorig, SCM env); -extern SCM scm_m_quasiquote (SCM xorig, SCM env); -extern SCM scm_m_delay (SCM xorig, SCM env); -extern SCM scm_m_define (SCM x, SCM env); -extern SCM scm_m_letrec (SCM xorig, SCM env); -extern SCM scm_m_let (SCM xorig, SCM env); -extern SCM scm_m_apply (SCM xorig, SCM env); -extern SCM scm_m_cont (SCM xorig, SCM env); -extern SCM scm_m_nil_cond (SCM xorig, SCM env); -extern SCM scm_m_nil_ify (SCM xorig, SCM env); -extern SCM scm_m_t_ify (SCM xorig, SCM env); -extern SCM scm_m_0_cond (SCM xorig, SCM env); -extern SCM scm_m_0_ify (SCM xorig, SCM env); -extern SCM scm_m_1_ify (SCM xorig, SCM env); -extern SCM scm_m_atfop (SCM xorig, SCM env); -extern SCM scm_m_atbind (SCM xorig, SCM env); -extern SCM scm_m_at_call_with_values (SCM xorig, SCM env); -extern int scm_badargsp (SCM formals, SCM args); -extern SCM scm_ceval (SCM x, SCM env); -extern SCM scm_deval (SCM x, SCM env); -extern SCM scm_call_0 (SCM proc); -extern SCM scm_call_1 (SCM proc, SCM arg1); -extern SCM scm_call_2 (SCM proc, SCM arg1, SCM arg2); -extern SCM scm_call_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3); -extern SCM scm_call_4 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4); -extern SCM scm_apply_0 (SCM proc, SCM args); -extern SCM scm_apply_1 (SCM proc, SCM arg1, SCM args); -extern SCM scm_apply_2 (SCM proc, SCM arg1, SCM arg2, SCM args); -extern SCM scm_apply_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM args); -extern SCM scm_nconc2last (SCM lst); -extern SCM scm_apply (SCM proc, SCM arg1, SCM args); -extern SCM scm_dapply (SCM proc, SCM arg1, SCM args); -extern SCM scm_m_expand_body (SCM xorig, SCM env); -extern SCM scm_macroexp (SCM x, SCM env); -extern SCM scm_map (SCM proc, SCM arg1, SCM args); -extern SCM scm_for_each (SCM proc, SCM arg1, SCM args); -extern SCM scm_closure (SCM code, SCM env); -extern SCM scm_makprom (SCM code); -extern SCM scm_force (SCM x); -extern SCM scm_promise_p (SCM x); -extern SCM scm_cons_source (SCM xorig, SCM x, SCM y); -extern SCM scm_copy_tree (SCM obj); -extern SCM scm_i_eval_x (SCM exp, SCM env); -extern SCM scm_i_eval (SCM exp, SCM env); -extern SCM scm_primitive_eval (SCM exp); -extern SCM scm_primitive_eval_x (SCM exp); -extern SCM scm_eval (SCM exp, SCM module); -extern SCM scm_eval_x (SCM exp, SCM module); +SCM_API SCM * scm_ilookup (SCM iloc, SCM env); +SCM_API SCM * scm_lookupcar (SCM vloc, SCM genv, int check); +SCM_API SCM scm_unmemocar (SCM form, SCM env); +SCM_API SCM scm_unmemocopy (SCM form, SCM env); +SCM_API SCM scm_eval_car (SCM pair, SCM env); +SCM_API SCM scm_eval_body (SCM code, SCM env); +SCM_API SCM scm_eval_args (SCM i, SCM env, SCM proc); +SCM_API SCM scm_deval_args (SCM l, SCM env, SCM proc, SCM *lloc); +SCM_API SCM scm_m_quote (SCM xorig, SCM env); +SCM_API SCM scm_m_begin (SCM xorig, SCM env); +SCM_API SCM scm_m_if (SCM xorig, SCM env); +SCM_API SCM scm_m_set_x (SCM xorig, SCM env); +SCM_API SCM scm_m_vref (SCM xorig, SCM env); +SCM_API SCM scm_m_vset (SCM xorig, SCM env); +SCM_API SCM scm_m_and (SCM xorig, SCM env); +SCM_API SCM scm_m_or (SCM xorig, SCM env); +SCM_API SCM scm_m_case (SCM xorig, SCM env); +SCM_API SCM scm_m_cond (SCM xorig, SCM env); +SCM_API SCM scm_m_lambda (SCM xorig, SCM env); +SCM_API SCM scm_m_letstar (SCM xorig, SCM env); +SCM_API SCM scm_m_do (SCM xorig, SCM env); +SCM_API SCM scm_m_quasiquote (SCM xorig, SCM env); +SCM_API SCM scm_m_delay (SCM xorig, SCM env); +SCM_API SCM scm_m_define (SCM x, SCM env); +SCM_API SCM scm_m_letrec (SCM xorig, SCM env); +SCM_API SCM scm_m_let (SCM xorig, SCM env); +SCM_API SCM scm_m_apply (SCM xorig, SCM env); +SCM_API SCM scm_m_cont (SCM xorig, SCM env); +SCM_API SCM scm_m_nil_cond (SCM xorig, SCM env); +SCM_API SCM scm_m_nil_ify (SCM xorig, SCM env); +SCM_API SCM scm_m_t_ify (SCM xorig, SCM env); +SCM_API SCM scm_m_0_cond (SCM xorig, SCM env); +SCM_API SCM scm_m_0_ify (SCM xorig, SCM env); +SCM_API SCM scm_m_1_ify (SCM xorig, SCM env); +SCM_API SCM scm_m_atfop (SCM xorig, SCM env); +SCM_API SCM scm_m_atbind (SCM xorig, SCM env); +SCM_API SCM scm_m_at_call_with_values (SCM xorig, SCM env); +SCM_API int scm_badargsp (SCM formals, SCM args); +SCM_API SCM scm_ceval (SCM x, SCM env); +SCM_API SCM scm_deval (SCM x, SCM env); +SCM_API SCM scm_call_0 (SCM proc); +SCM_API SCM scm_call_1 (SCM proc, SCM arg1); +SCM_API SCM scm_call_2 (SCM proc, SCM arg1, SCM arg2); +SCM_API SCM scm_call_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3); +SCM_API SCM scm_call_4 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4); +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_nconc2last (SCM lst); +SCM_API SCM scm_apply (SCM proc, SCM arg1, SCM args); +SCM_API SCM scm_dapply (SCM proc, SCM arg1, SCM args); +SCM_API SCM scm_m_expand_body (SCM xorig, SCM env); +SCM_API SCM scm_macroexp (SCM x, SCM env); +SCM_API SCM scm_map (SCM proc, SCM arg1, SCM args); +SCM_API SCM scm_for_each (SCM proc, SCM arg1, SCM args); +SCM_API SCM scm_closure (SCM code, SCM env); +SCM_API SCM scm_makprom (SCM code); +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_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); -extern void scm_init_eval (void); +SCM_API void scm_init_eval (void); #endif /* SCM_EVAL_H */ diff --git a/libguile/evalext.h b/libguile/evalext.h index bac8c0eaa..0f2a7dc65 100644 --- a/libguile/evalext.h +++ b/libguile/evalext.h @@ -50,10 +50,10 @@ -extern SCM scm_m_generalized_set_x (SCM xorig, SCM env); -extern SCM scm_definedp (SCM sym, SCM env); -extern SCM scm_m_undefine (SCM x, SCM env); -extern void scm_init_evalext (void); +SCM_API SCM scm_m_generalized_set_x (SCM xorig, SCM env); +SCM_API SCM scm_definedp (SCM sym, SCM env); +SCM_API SCM scm_m_undefine (SCM x, SCM env); +SCM_API void scm_init_evalext (void); #endif /* SCM_EVALEXT_H */ diff --git a/libguile/extensions.h b/libguile/extensions.h index 184ab0e23..cb259c984 100644 --- a/libguile/extensions.h +++ b/libguile/extensions.h @@ -50,13 +50,13 @@ -extern void scm_c_register_extension (const char *lib, const char *init, - void (*func) (void *), void *data); +SCM_API void scm_c_register_extension (const char *lib, const char *init, + void (*func) (void *), void *data); -extern void scm_c_load_extension (const char *lib, const char *init); -extern SCM scm_load_extension (SCM lib, SCM init); +SCM_API void scm_c_load_extension (const char *lib, const char *init); +SCM_API SCM scm_load_extension (SCM lib, SCM init); -void scm_init_extensions (void); +SCM_API void scm_init_extensions (void); #endif /* SCM_EXTENSIONS_H */ diff --git a/libguile/feature.h b/libguile/feature.h index bbda02c53..c4cceaaac 100644 --- a/libguile/feature.h +++ b/libguile/feature.h @@ -48,10 +48,10 @@ #include "libguile/__scm.h" -extern void scm_add_feature (const char* str); -extern SCM scm_program_arguments (void); -extern void scm_set_program_arguments (int argc, char **argv, char *first); -extern void scm_init_feature (void); +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 void scm_init_feature (void); #endif /* SCM_FEATURE_H */ diff --git a/libguile/filesys.h b/libguile/filesys.h index 6ad9179c7..134a0278d 100644 --- a/libguile/filesys.h +++ b/libguile/filesys.h @@ -50,7 +50,7 @@ -extern scm_t_bits scm_tc16_dir; +SCM_API scm_t_bits scm_tc16_dir; #define SCM_DIR_FLAG_OPEN (1L << 16) @@ -59,37 +59,37 @@ extern scm_t_bits scm_tc16_dir; -extern SCM scm_chown (SCM object, SCM owner, SCM group); -extern SCM scm_chmod (SCM object, SCM mode); -extern SCM scm_umask (SCM mode); -extern SCM scm_open_fdes (SCM path, SCM flags, SCM mode); -extern SCM scm_open (SCM path, SCM flags, SCM mode); -extern SCM scm_close (SCM fd_or_port); -extern SCM scm_close_fdes (SCM fd); -extern SCM scm_stat (SCM object); -extern SCM scm_link (SCM oldpath, SCM newpath); -extern SCM scm_rename (SCM oldname, SCM newname); -extern SCM scm_delete_file (SCM str); -extern SCM scm_mkdir (SCM path, SCM mode); -extern SCM scm_rmdir (SCM path); -extern SCM scm_directory_stream_p (SCM obj); -extern SCM scm_opendir (SCM dirname); -extern SCM scm_readdir (SCM port); -extern SCM scm_rewinddir (SCM port); -extern SCM scm_closedir (SCM port); -extern SCM scm_chdir (SCM str); -extern SCM scm_getcwd (void); -extern SCM scm_select (SCM reads, SCM writes, SCM excepts, SCM secs, SCM msecs); -extern SCM scm_fcntl (SCM object, SCM cmd, SCM value); -extern SCM scm_fsync (SCM object); -extern SCM scm_symlink (SCM oldpath, SCM newpath); -extern SCM scm_readlink (SCM path); -extern SCM scm_lstat (SCM str); -extern SCM scm_copy_file (SCM oldfile, SCM newfile); -extern SCM scm_dirname (SCM filename); -extern SCM scm_basename (SCM filename, SCM suffix); +SCM_API SCM scm_chown (SCM object, SCM owner, SCM group); +SCM_API SCM scm_chmod (SCM object, SCM mode); +SCM_API SCM scm_umask (SCM mode); +SCM_API SCM scm_open_fdes (SCM path, SCM flags, SCM mode); +SCM_API SCM scm_open (SCM path, SCM flags, SCM mode); +SCM_API SCM scm_close (SCM fd_or_port); +SCM_API SCM scm_close_fdes (SCM fd); +SCM_API SCM scm_stat (SCM object); +SCM_API SCM scm_link (SCM oldpath, SCM newpath); +SCM_API SCM scm_rename (SCM oldname, SCM newname); +SCM_API SCM scm_delete_file (SCM str); +SCM_API SCM scm_mkdir (SCM path, SCM mode); +SCM_API SCM scm_rmdir (SCM path); +SCM_API SCM scm_directory_stream_p (SCM obj); +SCM_API SCM scm_opendir (SCM dirname); +SCM_API SCM scm_readdir (SCM port); +SCM_API SCM scm_rewinddir (SCM port); +SCM_API SCM scm_closedir (SCM port); +SCM_API SCM scm_chdir (SCM str); +SCM_API SCM scm_getcwd (void); +SCM_API SCM scm_select (SCM reads, SCM writes, SCM excepts, SCM secs, SCM msecs); +SCM_API SCM scm_fcntl (SCM object, SCM cmd, SCM value); +SCM_API SCM scm_fsync (SCM object); +SCM_API SCM scm_symlink (SCM oldpath, SCM newpath); +SCM_API SCM scm_readlink (SCM path); +SCM_API SCM scm_lstat (SCM str); +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); -extern void scm_init_filesys (void); +SCM_API void scm_init_filesys (void); #endif /* SCM_FILESYS_H */ diff --git a/libguile/fluids.h b/libguile/fluids.h index 6e0aa8f24..ba6437bb7 100644 --- a/libguile/fluids.h +++ b/libguile/fluids.h @@ -72,7 +72,7 @@ implement a more lightweight version of fluids on top of this basic mechanism. */ -extern scm_t_bits scm_tc16_fluid; +SCM_API scm_t_bits scm_tc16_fluid; #define SCM_FLUIDP(x) (!SCM_IMP (x) && (SCM_CELL_TYPE (x) == scm_tc16_fluid)) #define SCM_FLUID_NUM(x) (SCM_CELL_WORD_1 (x)) @@ -89,23 +89,23 @@ SCM_FLUID_NUM, not the fluid itself. */ #define SCM_FAST_FLUID_REF(n) (SCM_VELTS(scm_root->fluids)[n]) #define SCM_FAST_FLUID_SET_X(n, val) (SCM_VELTS(scm_root->fluids)[n] = val) -SCM scm_make_fluid (void); -SCM scm_fluid_p (SCM fl); -SCM scm_fluid_ref (SCM fluid); -SCM scm_fluid_set_x (SCM fluid, SCM value); +SCM_API SCM scm_make_fluid (void); +SCM_API SCM scm_fluid_p (SCM fl); +SCM_API SCM scm_fluid_ref (SCM fluid); +SCM_API SCM scm_fluid_set_x (SCM fluid, SCM value); -SCM scm_c_with_fluids (SCM fluids, SCM vals, - SCM (*cproc)(void *), void *cdata); -SCM scm_c_with_fluid (SCM fluid, SCM val, - SCM (*cproc)(void *), void *cdata); -SCM scm_with_fluids (SCM fluids, SCM vals, SCM thunk); +SCM_API SCM scm_c_with_fluids (SCM fluids, SCM vals, + SCM (*cproc)(void *), void *cdata); +SCM_API SCM scm_c_with_fluid (SCM fluid, SCM val, + SCM (*cproc)(void *), void *cdata); +SCM_API SCM scm_with_fluids (SCM fluids, SCM vals, SCM thunk); -SCM scm_make_initial_fluids (void); -void scm_copy_fluids (scm_root_state *); -void scm_swap_fluids (SCM fluids, SCM vals); -void scm_swap_fluids_reverse (SCM fluids, SCM vals); +SCM_API SCM scm_make_initial_fluids (void); +SCM_API void scm_copy_fluids (scm_root_state *); +SCM_API void scm_swap_fluids (SCM fluids, SCM vals); +SCM_API void scm_swap_fluids_reverse (SCM fluids, SCM vals); -void scm_init_fluids (void); +SCM_API void scm_init_fluids (void); #endif /* SCM_FLUIDS_H */ diff --git a/libguile/fports.h b/libguile/fports.h index db968128d..2f1049ba7 100644 --- a/libguile/fports.h +++ b/libguile/fports.h @@ -57,7 +57,7 @@ typedef struct scm_t_fport { int fdes; /* file descriptor. */ } scm_t_fport; -extern scm_t_bits scm_tc16_fport; +SCM_API scm_t_bits scm_tc16_fport; #define SCM_FSTREAM(x) ((scm_t_fport *) SCM_STREAM (x)) #define SCM_FPORT_FDES(x) (SCM_FSTREAM (x)->fdes) @@ -71,13 +71,13 @@ extern scm_t_bits scm_tc16_fport; #define SCM_FDES_RANDOM_P(fdes) ((lseek (fdes, 0, SEEK_CUR) == -1) ? 0 : 1) -extern SCM scm_setbuf0 (SCM port); -extern SCM scm_setvbuf (SCM port, SCM mode, SCM size); -extern void scm_evict_ports (int fd); -extern SCM scm_open_file (SCM filename, SCM modes); -extern SCM scm_fdes_to_port (int fdes, char *mode, SCM name); -extern SCM scm_file_port_p (SCM obj); -extern void scm_init_fports (void); +SCM_API SCM scm_setbuf0 (SCM port); +SCM_API SCM scm_setvbuf (SCM port, SCM mode, SCM size); +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); #endif /* SCM_FPORTS_H */ diff --git a/libguile/gc.h b/libguile/gc.h index ac0d5c923..c392b5d07 100644 --- a/libguile/gc.h +++ b/libguile/gc.h @@ -295,100 +295,100 @@ typedef unsigned long scm_t_c_bvec_limb; #define SCM_NMARKEDP(x) (!SCM_MARKEDP (x)) #if (SCM_DEBUG_CELL_ACCESSES == 1) -extern scm_t_bits scm_tc16_allocated; -extern unsigned int scm_debug_cell_accesses_p; +SCM_API scm_t_bits scm_tc16_allocated; +SCM_API unsigned int scm_debug_cell_accesses_p; #endif -extern struct scm_t_heap_seg_data *scm_heap_table; -extern size_t scm_n_heap_segs; -extern int scm_block_gc; -extern int scm_gc_heap_lock; -extern unsigned int scm_gc_running_p; +SCM_API struct scm_t_heap_seg_data *scm_heap_table; +SCM_API size_t scm_n_heap_segs; +SCM_API int scm_block_gc; +SCM_API int scm_gc_heap_lock; +SCM_API unsigned int scm_gc_running_p; -extern size_t scm_default_init_heap_size_1; -extern int scm_default_min_yield_1; -extern size_t scm_default_init_heap_size_2; -extern int scm_default_min_yield_2; -extern size_t scm_default_max_segment_size; - -extern size_t scm_max_segment_size; -extern SCM_CELLPTR scm_heap_org; -extern SCM scm_freelist; -extern struct scm_t_freelist scm_master_freelist; -extern SCM scm_freelist2; -extern struct scm_t_freelist scm_master_freelist2; -extern unsigned long scm_gc_cells_collected; -extern unsigned long scm_gc_yield; -extern unsigned long scm_gc_malloc_collected; -extern unsigned long scm_gc_ports_collected; -extern unsigned long scm_cells_allocated; -extern unsigned long scm_mallocated; -extern unsigned long scm_mtrigger; - -extern SCM scm_after_gc_hook; - -extern scm_t_c_hook scm_before_gc_c_hook; -extern scm_t_c_hook scm_before_mark_c_hook; -extern scm_t_c_hook scm_before_sweep_c_hook; -extern scm_t_c_hook scm_after_sweep_c_hook; -extern scm_t_c_hook scm_after_gc_c_hook; +SCM_API size_t scm_default_init_heap_size_1; +SCM_API int scm_default_min_yield_1; +SCM_API size_t scm_default_init_heap_size_2; +SCM_API int scm_default_min_yield_2; +SCM_API size_t scm_default_max_segment_size; + +SCM_API size_t scm_max_segment_size; +SCM_API SCM_CELLPTR scm_heap_org; +SCM_API SCM scm_freelist; +SCM_API struct scm_t_freelist scm_master_freelist; +SCM_API SCM scm_freelist2; +SCM_API struct scm_t_freelist scm_master_freelist2; +SCM_API unsigned long scm_gc_cells_collected; +SCM_API unsigned long scm_gc_yield; +SCM_API unsigned long scm_gc_malloc_collected; +SCM_API unsigned long scm_gc_ports_collected; +SCM_API unsigned long scm_cells_allocated; +SCM_API unsigned long scm_mallocated; +SCM_API unsigned long scm_mtrigger; + +SCM_API SCM scm_after_gc_hook; + +SCM_API scm_t_c_hook scm_before_gc_c_hook; +SCM_API scm_t_c_hook scm_before_mark_c_hook; +SCM_API scm_t_c_hook scm_before_sweep_c_hook; +SCM_API scm_t_c_hook scm_after_sweep_c_hook; +SCM_API scm_t_c_hook scm_after_gc_c_hook; #if defined (GUILE_DEBUG) || defined (GUILE_DEBUG_FREELIST) -extern SCM scm_map_free_list (void); -extern SCM scm_free_list_length (void); +SCM_API SCM scm_map_free_list (void); +SCM_API SCM scm_free_list_length (void); #endif #ifdef GUILE_DEBUG_FREELIST -extern SCM scm_debug_newcell (void); -extern SCM scm_debug_newcell2 (void); -extern SCM scm_gc_set_debug_check_freelist_x (SCM flag); +SCM_API SCM scm_debug_newcell (void); +SCM_API SCM scm_debug_newcell2 (void); +SCM_API SCM scm_gc_set_debug_check_freelist_x (SCM flag); #endif #if (SCM_DEBUG_CELL_ACCESSES == 1) -extern void scm_assert_cell_valid (SCM); -extern SCM scm_set_debug_cell_accesses_x (SCM flag); +SCM_API void scm_assert_cell_valid (SCM); +SCM_API SCM scm_set_debug_cell_accesses_x (SCM flag); #endif -extern SCM scm_object_address (SCM obj); -extern SCM scm_unhash_name (SCM name); -extern SCM scm_gc_stats (void); -extern SCM scm_gc (void); -extern void scm_gc_for_alloc (struct scm_t_freelist *freelist); -extern SCM scm_gc_for_newcell (struct scm_t_freelist *master, SCM *freelist); +SCM_API SCM scm_object_address (SCM obj); +SCM_API SCM scm_unhash_name (SCM name); +SCM_API SCM scm_gc_stats (void); +SCM_API SCM scm_gc (void); +SCM_API void scm_gc_for_alloc (struct scm_t_freelist *freelist); +SCM_API SCM scm_gc_for_newcell (struct scm_t_freelist *master, SCM *freelist); #if 0 -extern void scm_alloc_cluster (struct scm_t_freelist *master); +SCM_API void scm_alloc_cluster (struct scm_t_freelist *master); #endif -extern void scm_igc (const char *what); -extern void scm_gc_mark (SCM p); -extern void scm_gc_mark_dependencies (SCM p); -extern void scm_mark_locations (SCM_STACKITEM x[], unsigned long n); -extern int scm_cellp (SCM value); -extern void scm_gc_sweep (void); -extern void * scm_must_malloc (size_t len, const char *what); -extern void * scm_must_realloc (void *where, - size_t olen, size_t len, - const char *what); -extern char *scm_must_strdup (const char *str); -extern char *scm_must_strndup (const char *str, size_t n); -extern void scm_done_malloc (long size); -extern void scm_done_free (long size); -extern void scm_must_free (void *obj); -extern void scm_remember_upto_here_1 (SCM obj); -extern void scm_remember_upto_here_2 (SCM obj1, SCM obj2); -extern void scm_remember_upto_here (SCM obj1, ...); -extern SCM scm_return_first (SCM elt, ...); -extern int scm_return_first_int (int x, ...); -extern SCM scm_permanent_object (SCM obj); -extern SCM scm_gc_protect_object (SCM obj); -extern SCM scm_gc_unprotect_object (SCM obj); -extern void scm_gc_register_root (SCM *p); -extern void scm_gc_unregister_root (SCM *p); -extern void scm_gc_register_roots (SCM *b, unsigned long n); -extern void scm_gc_unregister_roots (SCM *b, unsigned long n); -extern int scm_init_storage (void); -extern void *scm_get_stack_base (void); -extern void scm_init_gc (void); +SCM_API void scm_igc (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 int scm_cellp (SCM value); +SCM_API void scm_gc_sweep (void); +SCM_API void * scm_must_malloc (size_t len, const char *what); +SCM_API void * scm_must_realloc (void *where, + size_t olen, size_t len, + const char *what); +SCM_API char *scm_must_strdup (const char *str); +SCM_API char *scm_must_strndup (const char *str, size_t n); +SCM_API void scm_done_malloc (long size); +SCM_API void scm_done_free (long size); +SCM_API void scm_must_free (void *obj); +SCM_API void scm_remember_upto_here_1 (SCM obj); +SCM_API void scm_remember_upto_here_2 (SCM obj1, SCM obj2); +SCM_API void scm_remember_upto_here (SCM obj1, ...); +SCM_API SCM scm_return_first (SCM elt, ...); +SCM_API int scm_return_first_int (int x, ...); +SCM_API SCM scm_permanent_object (SCM obj); +SCM_API SCM scm_gc_protect_object (SCM obj); +SCM_API SCM scm_gc_unprotect_object (SCM obj); +SCM_API void scm_gc_register_root (SCM *p); +SCM_API void scm_gc_unregister_root (SCM *p); +SCM_API void scm_gc_register_roots (SCM *b, unsigned long n); +SCM_API void scm_gc_unregister_roots (SCM *b, unsigned long n); +SCM_API int scm_init_storage (void); +SCM_API void *scm_get_stack_base (void); +SCM_API void scm_init_gc (void); #endif /* SCM_GC_H */ diff --git a/libguile/gdbint.h b/libguile/gdbint.h index 70bf8b484..726f5584f 100644 --- a/libguile/gdbint.h +++ b/libguile/gdbint.h @@ -53,9 +53,9 @@ -extern int scm_print_carefully_p; +SCM_API int scm_print_carefully_p; -extern void scm_init_gdbint (void); +SCM_API void scm_init_gdbint (void); #endif /* SCM_GDBINT_H */ diff --git a/libguile/gh.h b/libguile/gh.h index dab80b07f..90b229dd9 100644 --- a/libguile/gh.h +++ b/libguile/gh.h @@ -58,107 +58,109 @@ extern "C" { #define EXTINL #endif /* __GNUC__ */ -void gh_enter(int argc, char *argv[], void (*c_main_prog)(int, char **)); +SCM_API void gh_enter(int argc, char *argv[], + void (*c_main_prog)(int, char **)); #define gh_init () scm_init_guile () -void gh_repl(int argc, char *argv[]); -SCM gh_catch(SCM tag, scm_t_catch_body body, void *body_data, - scm_t_catch_handler handler, void *handler_data); +SCM_API void gh_repl(int argc, char *argv[]); +SCM_API SCM gh_catch(SCM tag, scm_t_catch_body body, void *body_data, + scm_t_catch_handler handler, void *handler_data); -SCM gh_standard_handler(void *data, SCM tag, SCM throw_args); +SCM_API SCM gh_standard_handler(void *data, SCM tag, SCM throw_args); -SCM gh_eval_str(const char *scheme_code); -SCM gh_eval_str_with_catch(const char *scheme_code, scm_t_catch_handler handler); -SCM gh_eval_str_with_standard_handler(const char *scheme_code); -SCM gh_eval_str_with_stack_saving_handler(const char *scheme_code); +SCM_API SCM gh_eval_str(const char *scheme_code); +SCM_API SCM gh_eval_str_with_catch(const char *scheme_code, scm_t_catch_handler handler); +SCM_API SCM gh_eval_str_with_standard_handler(const char *scheme_code); +SCM_API SCM gh_eval_str_with_stack_saving_handler(const char *scheme_code); -SCM gh_eval_file(const char *fname); +SCM_API SCM gh_eval_file(const char *fname); #define gh_load(fname) gh_eval_file(fname) -SCM gh_eval_file_with_catch(const char *scheme_code, scm_t_catch_handler handler); -SCM gh_eval_file_with_standard_handler(const char *scheme_code); +SCM_API SCM gh_eval_file_with_catch(const char *scheme_code, scm_t_catch_handler handler); +SCM_API SCM gh_eval_file_with_standard_handler(const char *scheme_code); #define gh_defer_ints() SCM_DEFER_INTS #define gh_allow_ints() SCM_ALLOW_INTS -SCM gh_new_procedure(const char *proc_name, SCM (*fn)(), - int n_required_args, int n_optional_args, int varp); -SCM gh_new_procedure0_0(const char *proc_name, SCM (*fn)(void)); -SCM gh_new_procedure0_1(const char *proc_name, SCM (*fn)(SCM)); -SCM gh_new_procedure0_2(const char *proc_name, SCM (*fn)(SCM, SCM)); -SCM gh_new_procedure1_0(const char *proc_name, SCM (*fn)(SCM)); -SCM gh_new_procedure1_1(const char *proc_name, SCM (*fn)(SCM, SCM)); -SCM gh_new_procedure1_2(const char *proc_name, SCM (*fn)(SCM, SCM, SCM)); -SCM gh_new_procedure2_0(const char *proc_name, SCM (*fn)(SCM, SCM)); -SCM gh_new_procedure2_1(const char *proc_name, SCM (*fn)(SCM, SCM, SCM)); -SCM gh_new_procedure2_2(const char *proc_name, SCM (*fn)(SCM, SCM, SCM, SCM)); -SCM gh_new_procedure3_0(const char *proc_name, SCM (*fn)(SCM, SCM, SCM)); -SCM gh_new_procedure4_0(const char *proc_name, SCM (*fn)(SCM, SCM, SCM, SCM)); -SCM gh_new_procedure5_0(const char *proc_name, SCM (*fn)(SCM, SCM, SCM, SCM, SCM)); +SCM_API SCM gh_new_procedure(const char *proc_name, SCM (*fn)(), + int n_required_args, int n_optional_args, + int varp); +SCM_API SCM gh_new_procedure0_0(const char *proc_name, SCM (*fn)(void)); +SCM_API SCM gh_new_procedure0_1(const char *proc_name, SCM (*fn)(SCM)); +SCM_API SCM gh_new_procedure0_2(const char *proc_name, SCM (*fn)(SCM, SCM)); +SCM_API SCM gh_new_procedure1_0(const char *proc_name, SCM (*fn)(SCM)); +SCM_API SCM gh_new_procedure1_1(const char *proc_name, SCM (*fn)(SCM, SCM)); +SCM_API SCM gh_new_procedure1_2(const char *proc_name, SCM (*fn)(SCM, SCM, SCM)); +SCM_API SCM gh_new_procedure2_0(const char *proc_name, SCM (*fn)(SCM, SCM)); +SCM_API SCM gh_new_procedure2_1(const char *proc_name, SCM (*fn)(SCM, SCM, SCM)); +SCM_API SCM gh_new_procedure2_2(const char *proc_name, SCM (*fn)(SCM, SCM, SCM, SCM)); +SCM_API SCM gh_new_procedure3_0(const char *proc_name, SCM (*fn)(SCM, SCM, SCM)); +SCM_API SCM gh_new_procedure4_0(const char *proc_name, SCM (*fn)(SCM, SCM, SCM, SCM)); +SCM_API SCM gh_new_procedure5_0(const char *proc_name, SCM (*fn)(SCM, SCM, SCM, SCM, SCM)); /* C to Scheme conversion */ -SCM gh_bool2scm(int x); -SCM gh_int2scm(int x); -SCM gh_ulong2scm(unsigned long x); -SCM gh_long2scm(long x); -SCM gh_double2scm(double x); -SCM gh_char2scm(char c); -SCM gh_str2scm(const char *s, size_t len); -SCM gh_str02scm(const char *s); -void gh_set_substr(char *src, SCM dst, long start, size_t len); -SCM gh_symbol2scm(const char *symbol_str); -SCM gh_ints2scm(const int *d, long n); +SCM_API SCM gh_bool2scm(int x); +SCM_API SCM gh_int2scm(int x); +SCM_API SCM gh_ulong2scm(unsigned long x); +SCM_API SCM gh_long2scm(long x); +SCM_API SCM gh_double2scm(double x); +SCM_API SCM gh_char2scm(char c); +SCM_API SCM gh_str2scm(const char *s, size_t len); +SCM_API SCM gh_str02scm(const char *s); +SCM_API void gh_set_substr(char *src, SCM dst, long start, size_t len); +SCM_API SCM gh_symbol2scm(const char *symbol_str); +SCM_API SCM gh_ints2scm(const int *d, long n); #ifdef HAVE_ARRAYS -SCM gh_chars2byvect(const char *d, long n); -SCM gh_shorts2svect(const short *d, long n); -SCM gh_longs2ivect(const long *d, long n); -SCM gh_ulongs2uvect(const unsigned long *d, long n); -SCM gh_floats2fvect(const float *d, long n); -SCM gh_doubles2dvect(const double *d, long n); +SCM_API SCM gh_chars2byvect(const char *d, long n); +SCM_API SCM gh_shorts2svect(const short *d, long n); +SCM_API SCM gh_longs2ivect(const long *d, long n); +SCM_API SCM gh_ulongs2uvect(const unsigned long *d, long n); +SCM_API SCM gh_floats2fvect(const float *d, long n); +SCM_API SCM gh_doubles2dvect(const double *d, long n); #endif -SCM gh_doubles2scm(const double *d, long n); +SCM_API SCM gh_doubles2scm(const double *d, long n); /* Scheme to C conversion */ -int gh_scm2bool(SCM obj); -int gh_scm2int(SCM obj); -unsigned long gh_scm2ulong(SCM obj); -long gh_scm2long(SCM obj); -char gh_scm2char(SCM obj); -double gh_scm2double(SCM obj); -char *gh_scm2newstr(SCM str, size_t *lenp); -void gh_get_substr(SCM src, char *dst, long start, size_t len); -char *gh_symbol2newstr(SCM sym, size_t *lenp); -char *gh_scm2chars(SCM vector, char *result); -short *gh_scm2shorts(SCM vector, short *result); -long *gh_scm2longs(SCM vector, long *result); -float *gh_scm2floats(SCM vector, float *result); -double *gh_scm2doubles(SCM vector, double *result); +SCM_API int gh_scm2bool(SCM obj); +SCM_API int gh_scm2int(SCM obj); +SCM_API unsigned long gh_scm2ulong(SCM obj); +SCM_API long gh_scm2long(SCM obj); +SCM_API char gh_scm2char(SCM obj); +SCM_API double gh_scm2double(SCM obj); +SCM_API char *gh_scm2newstr(SCM str, size_t *lenp); +SCM_API void gh_get_substr(SCM src, char *dst, long start, size_t len); +SCM_API char *gh_symbol2newstr(SCM sym, size_t *lenp); +SCM_API char *gh_scm2chars(SCM vector, char *result); +SCM_API short *gh_scm2shorts(SCM vector, short *result); +SCM_API long *gh_scm2longs(SCM vector, long *result); +SCM_API float *gh_scm2floats(SCM vector, float *result); +SCM_API double *gh_scm2doubles(SCM vector, double *result); /* type predicates: tell you if an SCM object has a given type */ -int gh_boolean_p(SCM val); -int gh_symbol_p(SCM val); -int gh_char_p(SCM val); -int gh_vector_p(SCM val); -int gh_pair_p(SCM val); -int gh_number_p(SCM val); -int gh_string_p(SCM val); -int gh_procedure_p(SCM val); -int gh_list_p(SCM val); -int gh_inexact_p(SCM val); -int gh_exact_p(SCM val); +SCM_API int gh_boolean_p(SCM val); +SCM_API int gh_symbol_p(SCM val); +SCM_API int gh_char_p(SCM val); +SCM_API int gh_vector_p(SCM val); +SCM_API int gh_pair_p(SCM val); +SCM_API int gh_number_p(SCM val); +SCM_API int gh_string_p(SCM val); +SCM_API int gh_procedure_p(SCM val); +SCM_API int gh_list_p(SCM val); +SCM_API int gh_inexact_p(SCM val); +SCM_API int gh_exact_p(SCM val); /* more predicates */ -int gh_eq_p(SCM x, SCM y); -int gh_eqv_p(SCM x, SCM y); -int gh_equal_p(SCM x, SCM y); -int gh_string_equal_p(SCM s1, SCM s2); -int gh_null_p(SCM l); +SCM_API int gh_eq_p(SCM x, SCM y); +SCM_API int gh_eqv_p(SCM x, SCM y); +SCM_API int gh_equal_p(SCM x, SCM y); +SCM_API int gh_string_equal_p(SCM s1, SCM s2); +SCM_API int gh_null_p(SCM l); /* standard Scheme procedures available from C */ #define gh_not(x) scm_not(x) -SCM gh_define(const char *name, SCM val); +SCM_API SCM gh_define(const char *name, SCM val); /* string manipulation routines */ #define gh_make_string(k, chr) scm_make_string(k, chr) @@ -175,25 +177,25 @@ SCM gh_define(const char *name, SCM val); data element by element, but rather as a list. thus, gh_vector() ends up being identical to gh_list_to_vector() */ #define gh_vector(ls) scm_vector(ls) -SCM gh_make_vector(SCM length, SCM val); -SCM gh_vector_set_x(SCM vec, SCM pos, SCM val); -SCM gh_vector_ref(SCM vec, SCM pos); -unsigned long gh_vector_length (SCM v); -unsigned long gh_uniform_vector_length (SCM v); -SCM gh_uniform_vector_ref (SCM v, SCM ilist); +SCM_API SCM gh_make_vector(SCM length, SCM val); +SCM_API SCM gh_vector_set_x(SCM vec, SCM pos, SCM val); +SCM_API SCM gh_vector_ref(SCM vec, SCM pos); +SCM_API unsigned long gh_vector_length (SCM v); +SCM_API unsigned long gh_uniform_vector_length (SCM v); +SCM_API SCM gh_uniform_vector_ref (SCM v, SCM ilist); #define gh_list_to_vector(ls) scm_vector(ls) #define gh_vector_to_list(v) scm_vector_to_list(v) -SCM gh_lookup (const char *sname); -SCM gh_module_lookup (SCM module, const char *sname); +SCM_API SCM gh_lookup (const char *sname); +SCM_API SCM gh_module_lookup (SCM module, const char *sname); -SCM gh_cons(SCM x, SCM y); +SCM_API SCM gh_cons(SCM x, SCM y); #define gh_list scm_list_n -unsigned long gh_length(SCM l); -SCM gh_append(SCM args); -SCM gh_append2(SCM l1, SCM l2); -SCM gh_append3(SCM l1, SCM l2, SCM l3); -SCM gh_append4(SCM l1, SCM l2, SCM l3, SCM l4); +SCM_API unsigned long gh_length(SCM l); +SCM_API SCM gh_append(SCM args); +SCM_API SCM gh_append2(SCM l1, SCM l2); +SCM_API SCM gh_append3(SCM l1, SCM l2, SCM l3); +SCM_API SCM gh_append4(SCM l1, SCM l2, SCM l3, SCM l4); #define gh_reverse(ls) scm_reverse(ls) #define gh_list_tail(ls, k) scm_list_tail(ls, k) #define gh_list_ref(ls, k) scm_list_ref(ls, k) @@ -204,38 +206,38 @@ SCM gh_append4(SCM l1, SCM l2, SCM l3, SCM l4); #define gh_assv(x, alist) scm_assv(x, alist) #define gh_assoc(x, alist) scm_assoc(x, alist) -SCM gh_car(SCM x); -SCM gh_cdr(SCM x); +SCM_API SCM gh_car(SCM x); +SCM_API SCM gh_cdr(SCM x); -SCM gh_caar(SCM x); -SCM gh_cadr(SCM x); -SCM gh_cdar(SCM x); -SCM gh_cddr(SCM x); +SCM_API SCM gh_caar(SCM x); +SCM_API SCM gh_cadr(SCM x); +SCM_API SCM gh_cdar(SCM x); +SCM_API SCM gh_cddr(SCM x); -SCM gh_caaar(SCM x); -SCM gh_caadr(SCM x); -SCM gh_cadar(SCM x); -SCM gh_caddr(SCM x); -SCM gh_cdaar(SCM x); -SCM gh_cdadr(SCM x); -SCM gh_cddar(SCM x); -SCM gh_cdddr(SCM x); +SCM_API SCM gh_caaar(SCM x); +SCM_API SCM gh_caadr(SCM x); +SCM_API SCM gh_cadar(SCM x); +SCM_API SCM gh_caddr(SCM x); +SCM_API SCM gh_cdaar(SCM x); +SCM_API SCM gh_cdadr(SCM x); +SCM_API SCM gh_cddar(SCM x); +SCM_API SCM gh_cdddr(SCM x); -SCM gh_set_car_x(SCM pair, SCM value); -SCM gh_set_cdr_x(SCM pair, SCM value); +SCM_API SCM gh_set_car_x(SCM pair, SCM value); +SCM_API SCM gh_set_cdr_x(SCM pair, SCM value); /* Calling Scheme functions from C. */ -SCM gh_apply (SCM proc, SCM ls); -SCM gh_call0 (SCM proc); -SCM gh_call1 (SCM proc, SCM arg); -SCM gh_call2 (SCM proc, SCM arg1, SCM arg2); -SCM gh_call3 (SCM proc, SCM arg1, SCM arg2, SCM arg3); +SCM_API SCM gh_apply (SCM proc, SCM ls); +SCM_API SCM gh_call0 (SCM proc); +SCM_API SCM gh_call1 (SCM proc, SCM arg); +SCM_API SCM gh_call2 (SCM proc, SCM arg1, SCM arg2); +SCM_API SCM gh_call3 (SCM proc, SCM arg1, SCM arg2, SCM arg3); /* reading and writing Scheme objects. */ -void gh_display (SCM x); -void gh_write (SCM x); -void gh_newline (void); +SCM_API void gh_display (SCM x); +SCM_API void gh_write (SCM x); +SCM_API void gh_newline (void); /* void gh_gc_mark(SCM) : mark an SCM as in use. */ /* void gh_defer_ints() : don't interrupt code section. */ diff --git a/libguile/goops.h b/libguile/goops.h index d0b85c684..5ebae6d03 100644 --- a/libguile/goops.h +++ b/libguile/goops.h @@ -178,111 +178,127 @@ typedef struct scm_t_method { #define scm_si_code_table 3 /* offset of code. slot in a */ /* C interface */ -extern SCM scm_class_top, scm_class_object, scm_class_class; -extern SCM scm_class_entity, scm_class_entity_with_setter; -extern SCM scm_class_generic, scm_class_generic_with_setter, scm_class_method; -extern SCM scm_class_simple_method, scm_class_accessor; -extern SCM scm_class_procedure_class; -extern SCM scm_class_operator_class, scm_class_operator_with_setter_class; -extern SCM scm_class_entity_class; -extern SCM scm_class_number, scm_class_list; -extern SCM scm_class_keyword; -extern SCM scm_class_port, scm_class_input_output_port; -extern SCM scm_class_input_port, scm_class_output_port; -extern SCM scm_class_foreign_class, scm_class_foreign_object; -extern SCM scm_class_foreign_slot; -extern SCM scm_class_self, scm_class_protected; -extern SCM scm_class_opaque, scm_class_read_only; -extern SCM scm_class_protected_opaque, scm_class_protected_read_only; -extern SCM scm_class_scm; -extern SCM scm_class_int, scm_class_float, scm_class_double; -extern const char *scm_s_slot_set_x; - -extern SCM scm_module_goops; - -SCM scm_goops_version (void); -SCM scm_oldfmt (SCM); -char *scm_c_oldfmt0 (char *); -char *scm_c_oldfmt (char *, int n); -void scm_load_goops (void); -SCM scm_make_foreign_object (SCM cls, SCM initargs); -SCM scm_make_class (SCM meta, char *s_name, SCM supers, size_t size, - void * (*constructor) (SCM initargs), - size_t (*destructor) (void *)); -void scm_add_slot (SCM c, char *slot, SCM slot_class, - SCM (*getter) (SCM obj), - SCM (*setter) (SCM obj, SCM x), - char *accessor_name); -SCM scm_wrap_object (SCM c, void *); -SCM scm_wrap_component (SCM c, SCM obj, void *); -SCM scm_ensure_accessor (SCM name); -void scm_add_method (SCM gf, SCM m); +SCM_API SCM scm_class_top; +SCM_API SCM scm_class_object; +SCM_API SCM scm_class_class; +SCM_API SCM scm_class_entity; +SCM_API SCM scm_class_entity_with_setter; +SCM_API SCM scm_class_generic; +SCM_API SCM scm_class_generic_with_setter; +SCM_API SCM scm_class_method; +SCM_API SCM scm_class_simple_method; +SCM_API SCM scm_class_accessor; +SCM_API SCM scm_class_procedure_class; +SCM_API SCM scm_class_operator_class; +SCM_API SCM scm_class_operator_with_setter_class; +SCM_API SCM scm_class_entity_class; +SCM_API SCM scm_class_number; +SCM_API SCM scm_class_list; +SCM_API SCM scm_class_keyword; +SCM_API SCM scm_class_port; +SCM_API SCM scm_class_input_output_port; +SCM_API SCM scm_class_input_port; +SCM_API SCM scm_class_output_port; +SCM_API SCM scm_class_foreign_class; +SCM_API SCM scm_class_foreign_object; +SCM_API SCM scm_class_foreign_slot; +SCM_API SCM scm_class_self; +SCM_API SCM scm_class_protected; +SCM_API SCM scm_class_opaque; +SCM_API SCM scm_class_read_only; +SCM_API SCM scm_class_protected_opaque; +SCM_API SCM scm_class_protected_read_only; +SCM_API SCM scm_class_scm; +SCM_API SCM scm_class_int; +SCM_API SCM scm_class_float; +SCM_API SCM scm_class_double; +SCM_API const char *scm_s_slot_set_x; + +SCM_API SCM scm_module_goops; + +SCM_API SCM scm_goops_version (void); +SCM_API SCM scm_oldfmt (SCM); +SCM_API char *scm_c_oldfmt0 (char *); +SCM_API char *scm_c_oldfmt (char *, int n); +SCM_API void scm_load_goops (void); +SCM_API SCM scm_make_foreign_object (SCM cls, SCM initargs); +SCM_API SCM scm_make_class (SCM meta, char *s_name, SCM supers, size_t size, + void * (*constructor) (SCM initargs), + size_t (*destructor) (void *)); +SCM_API void scm_add_slot (SCM c, char *slot, SCM slot_class, + SCM (*getter) (SCM obj), + SCM (*setter) (SCM obj, SCM x), + char *accessor_name); +SCM_API SCM scm_wrap_object (SCM c, void *); +SCM_API SCM scm_wrap_component (SCM c, SCM obj, void *); +SCM_API SCM scm_ensure_accessor (SCM name); +SCM_API void scm_add_method (SCM gf, SCM m); /* Low level functions exported */ -SCM scm_make_next_method (SCM methods, SCM args, SCM gf); -SCM scm_basic_basic_make_class (SCM c, SCM name, SCM dsupers, SCM dslots); -SCM scm_basic_make_class (SCM c, SCM name, SCM dsupers, SCM dslots); +SCM_API SCM scm_make_next_method (SCM methods, SCM args, SCM gf); +SCM_API SCM scm_basic_basic_make_class (SCM c, SCM name, SCM dsupers, SCM dslots); +SCM_API SCM scm_basic_make_class (SCM c, SCM name, SCM dsupers, SCM dslots); /* Primitives exported */ -SCM scm_sys_allocate_instance (SCM c, SCM initargs); -SCM scm_sys_set_object_setter_x (SCM obj, SCM setter); -SCM scm_slot_ref (SCM obj, SCM slot_name); -SCM scm_slot_set_x (SCM obj, SCM slot_name, SCM value); - -SCM scm_compute_applicable_methods (SCM gf, SCM args, long len, int scm_find_method); -SCM scm_sys_compute_applicable_methods (SCM gf, SCM args); -SCM scm_m_atslot_ref (SCM xorig, SCM env); -SCM scm_m_atslot_set_x (SCM xorig, SCM env); -SCM scm_m_atdispatch (SCM xorig, SCM env); +SCM_API SCM scm_sys_allocate_instance (SCM c, SCM initargs); +SCM_API SCM scm_sys_set_object_setter_x (SCM obj, SCM setter); +SCM_API SCM scm_slot_ref (SCM obj, SCM slot_name); +SCM_API SCM scm_slot_set_x (SCM obj, SCM slot_name, SCM value); + +SCM_API SCM scm_compute_applicable_methods (SCM gf, SCM args, long len, int scm_find_method); +SCM_API SCM scm_sys_compute_applicable_methods (SCM gf, SCM args); +SCM_API SCM scm_m_atslot_ref (SCM xorig, SCM env); +SCM_API SCM scm_m_atslot_set_x (SCM xorig, SCM env); +SCM_API SCM scm_m_atdispatch (SCM xorig, SCM env); #ifdef GUILE_DEBUG -SCM scm_pure_generic_p (SCM obj); +SCM_API SCM scm_pure_generic_p (SCM obj); #endif -SCM scm_sys_compute_slots (SCM c); -SCM scm_i_get_keyword (SCM key, SCM l, long len, SCM default_value, const char *subr); -SCM scm_get_keyword (SCM key, SCM l, SCM default_value); -SCM scm_sys_initialize_object (SCM obj, SCM initargs); -SCM scm_sys_prep_layout_x (SCM c); -SCM scm_sys_inherit_magic_x (SCM c, SCM dsupers); -SCM scm_instance_p (SCM obj); -SCM scm_class_name (SCM obj); -SCM scm_class_direct_supers (SCM obj); -SCM scm_class_direct_slots (SCM obj); -SCM scm_class_direct_subclasses (SCM obj); -SCM scm_class_direct_methods (SCM obj); -SCM scm_class_precedence_list (SCM obj); -SCM scm_class_slots (SCM obj); -SCM scm_class_environment (SCM obj); -SCM scm_generic_function_name (SCM obj); -SCM scm_generic_function_methods (SCM obj); -SCM scm_method_generic_function (SCM obj); -SCM scm_method_specializers (SCM obj); -SCM scm_method_procedure (SCM obj); -SCM scm_accessor_method_slot_definition (SCM obj); -SCM scm_sys_tag_body (SCM body); -SCM scm_sys_fast_slot_ref (SCM obj, SCM index); -SCM scm_sys_fast_slot_set_x (SCM obj, SCM index, SCM value); -SCM scm_slot_ref_using_class (SCM cls, SCM obj, SCM slot_name); -SCM scm_slot_set_using_class_x (SCM cls, SCM obj, SCM slot_name, SCM value); -SCM scm_slot_bound_using_class_p (SCM cls, SCM obj, SCM slot_name); -SCM scm_slot_exists_using_class_p (SCM cls, SCM obj, SCM slot_name); -SCM scm_slot_bound_p (SCM obj, SCM slot_name); -SCM scm_slots_exists_p (SCM obj, SCM slot_name); -SCM scm_sys_modify_instance (SCM old, SCM newinst); -SCM scm_sys_modify_class (SCM old, SCM newcls); -SCM scm_sys_invalidate_class (SCM cls); -SCM scm_make_method_cache (SCM gf); -SCM scm_sys_invalidate_method_cache_x (SCM gf); -SCM scm_generic_capability_p (SCM proc); -SCM scm_enable_primitive_generic_x (SCM subrs); -SCM scm_primitive_generic_generic (SCM subr); -SCM stklos_version (void); -SCM scm_make (SCM args); -SCM scm_find_method (SCM args); -SCM scm_sys_method_more_specific_p (SCM m1, SCM m2, SCM targs); - -SCM scm_init_goops_builtins (void); -void scm_init_goops (void); +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_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_sys_inherit_magic_x (SCM c, SCM dsupers); +SCM_API SCM scm_instance_p (SCM obj); +SCM_API SCM scm_class_name (SCM obj); +SCM_API SCM scm_class_direct_supers (SCM obj); +SCM_API SCM scm_class_direct_slots (SCM obj); +SCM_API SCM scm_class_direct_subclasses (SCM obj); +SCM_API SCM scm_class_direct_methods (SCM obj); +SCM_API SCM scm_class_precedence_list (SCM obj); +SCM_API SCM scm_class_slots (SCM obj); +SCM_API SCM scm_class_environment (SCM obj); +SCM_API SCM scm_generic_function_name (SCM obj); +SCM_API SCM scm_generic_function_methods (SCM obj); +SCM_API SCM scm_method_generic_function (SCM obj); +SCM_API SCM scm_method_specializers (SCM obj); +SCM_API SCM scm_method_procedure (SCM obj); +SCM_API SCM scm_accessor_method_slot_definition (SCM obj); +SCM_API SCM scm_sys_tag_body (SCM body); +SCM_API SCM scm_sys_fast_slot_ref (SCM obj, SCM index); +SCM_API SCM scm_sys_fast_slot_set_x (SCM obj, SCM index, SCM value); +SCM_API SCM scm_slot_ref_using_class (SCM cls, SCM obj, SCM slot_name); +SCM_API SCM scm_slot_set_using_class_x (SCM cls, SCM obj, SCM slot_name, SCM value); +SCM_API SCM scm_slot_bound_using_class_p (SCM cls, SCM obj, SCM slot_name); +SCM_API SCM scm_slot_exists_using_class_p (SCM cls, SCM obj, SCM slot_name); +SCM_API SCM scm_slot_bound_p (SCM obj, SCM slot_name); +SCM_API SCM scm_slots_exists_p (SCM obj, SCM slot_name); +SCM_API SCM scm_sys_modify_instance (SCM old, SCM newinst); +SCM_API SCM scm_sys_modify_class (SCM old, SCM newcls); +SCM_API SCM scm_sys_invalidate_class (SCM cls); +SCM_API SCM scm_make_method_cache (SCM gf); +SCM_API SCM scm_sys_invalidate_method_cache_x (SCM gf); +SCM_API SCM scm_generic_capability_p (SCM proc); +SCM_API SCM scm_enable_primitive_generic_x (SCM subrs); +SCM_API SCM scm_primitive_generic_generic (SCM subr); +SCM_API SCM stklos_version (void); +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); #if (SCM_DEBUG_DEPRECATED == 0) diff --git a/libguile/gsubr.h b/libguile/gsubr.h index de3489805..a1e068ba3 100644 --- a/libguile/gsubr.h +++ b/libguile/gsubr.h @@ -61,21 +61,21 @@ #define SCM_GSUBR_PROC(cclo) (SCM_CCLO_REF ((cclo), 2)) #define SCM_SET_GSUBR_PROC(cclo, proc) (SCM_CCLO_SET ((cclo), 2, (proc))) -extern SCM scm_f_gsubr_apply; +SCM_API SCM scm_f_gsubr_apply; -extern SCM scm_c_make_gsubr (const char *name, - int req, int opt, int rst, SCM (*fcn) ()); -extern SCM scm_c_make_gsubr_with_generic (const char *name, - int req, int opt, int rst, - SCM (*fcn) (), SCM *gf); -extern SCM scm_c_define_gsubr (const char *name, - int req, int opt, int rst, SCM (*fcn) ()); -extern SCM scm_c_define_gsubr_with_generic (const char *name, - int req, int opt, int rst, - SCM (*fcn) (), SCM *gf); +SCM_API SCM scm_c_make_gsubr (const char *name, + int req, int opt, int rst, SCM (*fcn) ()); +SCM_API SCM scm_c_make_gsubr_with_generic (const char *name, + int req, int opt, int rst, + SCM (*fcn) (), SCM *gf); +SCM_API SCM scm_c_define_gsubr (const char *name, + int req, int opt, int rst, SCM (*fcn) ()); +SCM_API SCM scm_c_define_gsubr_with_generic (const char *name, + int req, int opt, int rst, + SCM (*fcn) (), SCM *gf); -extern SCM scm_gsubr_apply (SCM args); -extern void scm_init_gsubr (void); +SCM_API SCM scm_gsubr_apply (SCM args); +SCM_API void scm_init_gsubr (void); #endif /* SCM_GSUBR_H */ diff --git a/libguile/guardians.h b/libguile/guardians.h index 344fac7af..fbb291094 100644 --- a/libguile/guardians.h +++ b/libguile/guardians.h @@ -48,17 +48,17 @@ #include "libguile/__scm.h" -SCM scm_make_guardian (SCM greedy_p); -SCM scm_destroy_guardian_x (SCM guardian); +SCM_API SCM scm_make_guardian (SCM greedy_p); +SCM_API SCM scm_destroy_guardian_x (SCM guardian); -SCM scm_guardian_greedy_p (SCM guardian); -SCM scm_guardian_destroyed_p (SCM guardian); +SCM_API SCM scm_guardian_greedy_p (SCM guardian); +SCM_API SCM scm_guardian_destroyed_p (SCM guardian); /* these are to be called from C: */ -SCM scm_guard (SCM guardian, SCM obj, int throw_p); -SCM scm_get_one_zombie (SCM guardian); +SCM_API SCM scm_guard (SCM guardian, SCM obj, int throw_p); +SCM_API SCM scm_get_one_zombie (SCM guardian); -void scm_init_guardians (void); +SCM_API void scm_init_guardians (void); #endif /* SCM_GUARDIANS_H */ diff --git a/libguile/hash.h b/libguile/hash.h index fc3b00b61..09464e045 100644 --- a/libguile/hash.h +++ b/libguile/hash.h @@ -50,15 +50,15 @@ -extern unsigned long scm_string_hash (const unsigned char *str, size_t len); -extern unsigned long scm_hasher (SCM obj, unsigned long n, size_t d); -extern unsigned long scm_ihashq (SCM obj, unsigned long n); -extern SCM scm_hashq (SCM obj, SCM n); -extern unsigned long scm_ihashv (SCM obj, unsigned long n); -extern SCM scm_hashv (SCM obj, SCM n); -extern unsigned long scm_ihash (SCM obj, unsigned long n); -extern SCM scm_hash (SCM obj, SCM n); -extern void scm_init_hash (void); +SCM_API unsigned long scm_string_hash (const unsigned char *str, size_t len); +SCM_API unsigned long scm_hasher (SCM obj, unsigned long n, size_t d); +SCM_API unsigned long scm_ihashq (SCM obj, unsigned long n); +SCM_API SCM scm_hashq (SCM obj, SCM n); +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); #endif /* SCM_HASH_H */ diff --git a/libguile/hashtab.h b/libguile/hashtab.h index 6e969570b..ae1582af8 100644 --- a/libguile/hashtab.h +++ b/libguile/hashtab.h @@ -56,37 +56,37 @@ typedef SCM scm_t_assoc_fn (SCM key, SCM alist, void *closure); typedef SCM scm_t_delete_fn (SCM elt, SCM list); #endif -extern SCM scm_c_make_hash_table (unsigned long k); +SCM_API SCM scm_c_make_hash_table (unsigned long k); -extern SCM scm_hash_fn_get_handle (SCM table, SCM obj, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); -extern SCM scm_hash_fn_create_handle_x (SCM table, SCM obj, SCM init, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); -extern SCM scm_hash_fn_ref (SCM table, SCM obj, SCM dflt, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); -extern SCM scm_hash_fn_set_x (SCM table, SCM obj, SCM val, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); -extern SCM scm_hash_fn_remove_x (SCM table, SCM obj, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), SCM (*delete_fn) (), void * closure); -extern SCM scm_internal_hash_fold (SCM (*fn) (), void *closure, SCM init, SCM table); +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_fn_ref (SCM table, SCM obj, SCM dflt, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); +SCM_API SCM scm_hash_fn_set_x (SCM table, SCM obj, SCM val, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), void * closure); +SCM_API SCM scm_hash_fn_remove_x (SCM table, SCM obj, unsigned long (*hash_fn) (), SCM (*assoc_fn) (), SCM (*delete_fn) (), void * closure); +SCM_API SCM scm_internal_hash_fold (SCM (*fn) (), void *closure, SCM init, SCM table); -extern SCM scm_hashq_get_handle (SCM table, SCM obj); -extern SCM scm_hashq_create_handle_x (SCM table, SCM obj, SCM init); -extern SCM scm_hashq_ref (SCM table, SCM obj, SCM dflt); -extern SCM scm_hashq_set_x (SCM table, SCM obj, SCM val); -extern SCM scm_hashq_remove_x (SCM table, SCM obj); -extern SCM scm_hashv_get_handle (SCM table, SCM obj); -extern SCM scm_hashv_create_handle_x (SCM table, SCM obj, SCM init); -extern SCM scm_hashv_ref (SCM table, SCM obj, SCM dflt); -extern SCM scm_hashv_set_x (SCM table, SCM obj, SCM val); -extern SCM scm_hashv_remove_x (SCM table, SCM obj); -extern SCM scm_hash_get_handle (SCM table, SCM obj); -extern SCM scm_hash_create_handle_x (SCM table, SCM obj, SCM init); -extern SCM scm_hash_ref (SCM table, SCM obj, SCM dflt); -extern SCM scm_hash_set_x (SCM table, SCM obj, SCM val); -extern SCM scm_hash_remove_x (SCM table, SCM obj); -extern SCM scm_hashx_get_handle (SCM hash, SCM assoc, SCM table, SCM obj); -extern SCM scm_hashx_create_handle_x (SCM hash, SCM assoc, SCM table, SCM obj, SCM init); -extern SCM scm_hashx_ref (SCM hash, SCM assoc, SCM table, SCM obj, SCM dflt); -extern SCM scm_hashx_set_x (SCM hash, SCM assoc, SCM table, SCM obj, SCM val); -extern SCM scm_hashx_remove_x (SCM hash, SCM assoc, SCM del, SCM table, SCM obj); -extern SCM scm_hash_fold (SCM proc, SCM init, SCM hash); -extern void scm_init_hashtab (void); +SCM_API SCM scm_hashq_get_handle (SCM table, SCM obj); +SCM_API SCM scm_hashq_create_handle_x (SCM table, SCM obj, SCM init); +SCM_API SCM scm_hashq_ref (SCM table, SCM obj, SCM dflt); +SCM_API SCM scm_hashq_set_x (SCM table, SCM obj, SCM val); +SCM_API SCM scm_hashq_remove_x (SCM table, SCM obj); +SCM_API SCM scm_hashv_get_handle (SCM table, SCM obj); +SCM_API SCM scm_hashv_create_handle_x (SCM table, SCM obj, SCM init); +SCM_API SCM scm_hashv_ref (SCM table, SCM obj, SCM dflt); +SCM_API SCM scm_hashv_set_x (SCM table, SCM obj, SCM val); +SCM_API SCM scm_hashv_remove_x (SCM table, SCM obj); +SCM_API SCM scm_hash_get_handle (SCM table, SCM obj); +SCM_API SCM scm_hash_create_handle_x (SCM table, SCM obj, SCM init); +SCM_API SCM scm_hash_ref (SCM table, SCM obj, SCM dflt); +SCM_API SCM scm_hash_set_x (SCM table, SCM obj, SCM val); +SCM_API SCM scm_hash_remove_x (SCM table, SCM obj); +SCM_API SCM scm_hashx_get_handle (SCM hash, SCM assoc, SCM table, SCM obj); +SCM_API SCM scm_hashx_create_handle_x (SCM hash, SCM assoc, SCM table, SCM obj, SCM init); +SCM_API SCM scm_hashx_ref (SCM hash, SCM assoc, SCM table, SCM obj, SCM dflt); +SCM_API SCM scm_hashx_set_x (SCM hash, SCM assoc, SCM table, SCM obj, SCM val); +SCM_API SCM scm_hashx_remove_x (SCM hash, SCM assoc, SCM del, SCM table, SCM obj); +SCM_API SCM scm_hash_fold (SCM proc, SCM init, SCM hash); +SCM_API void scm_init_hashtab (void); #endif /* SCM_HASHTAB_H */ diff --git a/libguile/hooks.h b/libguile/hooks.h index 8f9dc63c5..48e4f8b16 100644 --- a/libguile/hooks.h +++ b/libguile/hooks.h @@ -79,39 +79,39 @@ typedef struct scm_t_c_hook { void *data; } scm_t_c_hook; -extern void scm_c_hook_init (scm_t_c_hook *hook, - void *hook_data, - scm_t_c_hookype_t type); -extern void scm_c_hook_add (scm_t_c_hook *hook, - scm_t_c_hook_function func, - void *func_data, - int appendp); -extern void scm_c_hook_remove (scm_t_c_hook *hook, - scm_t_c_hook_function func, - void *func_data); -extern void *scm_c_hook_run (scm_t_c_hook *hook, void *data); +SCM_API void scm_c_hook_init (scm_t_c_hook *hook, + void *hook_data, + scm_t_c_hookype_t type); +SCM_API void scm_c_hook_add (scm_t_c_hook *hook, + scm_t_c_hook_function func, + void *func_data, + int appendp); +SCM_API void scm_c_hook_remove (scm_t_c_hook *hook, + scm_t_c_hook_function func, + void *func_data); +SCM_API void *scm_c_hook_run (scm_t_c_hook *hook, void *data); /* * Scheme level hooks */ -extern scm_t_bits scm_tc16_hook; +SCM_API scm_t_bits scm_tc16_hook; #define SCM_HOOKP(x) SCM_TYP16_PREDICATE (scm_tc16_hook, x) #define SCM_HOOK_ARITY(hook) (SCM_CELL_WORD_0 (hook) >> 16) #define SCM_HOOK_PROCEDURES(hook) SCM_CELL_OBJECT_1 (hook) #define SCM_SET_HOOK_PROCEDURES(hook, procs) SCM_SET_CELL_OBJECT_1 ((hook), (procs)) -extern SCM scm_make_hook (SCM n_args); -extern SCM scm_hook_p (SCM x); -extern SCM scm_hook_empty_p (SCM hook); -extern SCM scm_add_hook_x (SCM hook, SCM thunk, SCM appendp); -extern SCM scm_remove_hook_x (SCM hook, SCM thunk); -extern SCM scm_reset_hook_x (SCM hook); -extern SCM scm_run_hook (SCM hook, SCM args); -extern void scm_c_run_hook (SCM hook, SCM args); -extern SCM scm_hook_to_list (SCM hook); -extern void scm_init_hooks (void); +SCM_API SCM scm_make_hook (SCM n_args); +SCM_API SCM scm_hook_p (SCM x); +SCM_API SCM scm_hook_empty_p (SCM hook); +SCM_API SCM scm_add_hook_x (SCM hook, SCM thunk, SCM appendp); +SCM_API SCM scm_remove_hook_x (SCM hook, SCM thunk); +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); #endif /* SCM_HOOKS_H */ diff --git a/libguile/init.h b/libguile/init.h index 4e95fb557..5347c7731 100644 --- a/libguile/init.h +++ b/libguile/init.h @@ -49,17 +49,17 @@ #include "libguile/__scm.h" -extern int scm_initialized_p; +SCM_API int scm_initialized_p; -extern void scm_init_guile (void); +SCM_API void scm_init_guile (void); -extern void scm_boot_guile (int argc, char **argv, - void (*main_func) (void *closure, - int argc, - char **argv), - void *closure); +SCM_API void scm_boot_guile (int argc, char **argv, + void (*main_func) (void *closure, + int argc, + char **argv), + void *closure); -extern void scm_load_startup_files (void); +SCM_API void scm_load_startup_files (void); #endif /* SCM_INIT_H */ diff --git a/libguile/ioext.h b/libguile/ioext.h index 5cb5e2394..0b8cdf897 100644 --- a/libguile/ioext.h +++ b/libguile/ioext.h @@ -50,16 +50,16 @@ -extern SCM scm_ftell (SCM object); -extern SCM scm_redirect_port (SCM into_pt, SCM from_pt); -extern SCM scm_dup_to_fdes (SCM fd_or_port, SCM newfd); -extern SCM scm_dup2 (SCM oldfd, SCM newfd); -extern SCM scm_fileno (SCM port); -extern SCM scm_isatty_p (SCM port); -extern SCM scm_fdopen (SCM fdes, SCM modes); -extern SCM scm_primitive_move_to_fdes (SCM port, SCM fd); -extern SCM scm_fdes_to_ports (SCM fd); -extern void scm_init_ioext (void); +SCM_API SCM scm_ftell (SCM object); +SCM_API SCM scm_redirect_port (SCM into_pt, SCM from_pt); +SCM_API SCM scm_dup_to_fdes (SCM fd_or_port, SCM newfd); +SCM_API SCM scm_dup2 (SCM oldfd, SCM newfd); +SCM_API SCM scm_fileno (SCM port); +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); #endif /* SCM_IOEXT_H */ diff --git a/libguile/iselect.h b/libguile/iselect.h index bbacf3036..a7b59594e 100644 --- a/libguile/iselect.h +++ b/libguile/iselect.h @@ -89,18 +89,18 @@ #endif /* no FD_SET */ -extern int scm_internal_select (int fds, - SELECT_TYPE *rfds, - SELECT_TYPE *wfds, - SELECT_TYPE *efds, - struct timeval *timeout); +SCM_API int scm_internal_select (int fds, + SELECT_TYPE *rfds, + SELECT_TYPE *wfds, + SELECT_TYPE *efds, + struct timeval *timeout); #ifdef GUILE_ISELECT -extern int scm_I_am_dead; +SCM_API int scm_I_am_dead; -extern void scm_error_revive_threads (void); -extern void scm_init_iselect (void); +SCM_API void scm_error_revive_threads (void); +SCM_API void scm_init_iselect (void); #endif /* GUILE_ISELECT */ diff --git a/libguile/keywords.h b/libguile/keywords.h index 3ff94907d..d9fee388a 100644 --- a/libguile/keywords.h +++ b/libguile/keywords.h @@ -50,7 +50,7 @@ -extern scm_t_bits scm_tc16_keyword; +SCM_API scm_t_bits scm_tc16_keyword; #define SCM_KEYWORDP(X) (!SCM_IMP (X) && (SCM_CELL_TYPE (X) == scm_tc16_keyword)) #define SCM_KEYWORDSYM(X) (SCM_CELL_OBJECT_1 (X)) @@ -58,11 +58,11 @@ extern scm_t_bits scm_tc16_keyword; -extern SCM scm_make_keyword_from_dash_symbol (SCM symbol); -extern SCM scm_c_make_keyword (char *s); -extern SCM scm_keyword_p (SCM obj); -extern SCM scm_keyword_dash_symbol (SCM keyword); -extern void scm_init_keywords (void); +SCM_API SCM scm_make_keyword_from_dash_symbol (SCM symbol); +SCM_API SCM scm_c_make_keyword (char *s); +SCM_API SCM scm_keyword_p (SCM obj); +SCM_API SCM scm_keyword_dash_symbol (SCM keyword); +SCM_API void scm_init_keywords (void); #endif /* SCM_KEYWORDS_H */ diff --git a/libguile/lang.h b/libguile/lang.h index 0619e5221..ae10869b5 100644 --- a/libguile/lang.h +++ b/libguile/lang.h @@ -50,8 +50,8 @@ -extern SCM scm_lisp_nil; -extern SCM scm_lisp_t; +SCM_API SCM scm_lisp_nil; +SCM_API SCM scm_lisp_t; #define SCM_NILP(x) (SCM_EQ_P ((x), scm_lisp_nil)) #define SCM_NILNULLP(x) (SCM_NILP (x) || SCM_NULLP (x)) @@ -62,13 +62,13 @@ extern SCM scm_lisp_t; -extern SCM scm_nil_cons (SCM x, SCM y); -extern SCM scm_nil_car (SCM x); -extern SCM scm_nil_cdr (SCM x); -extern SCM scm_null (SCM x); -extern SCM scm_m_while (SCM exp, SCM env); -extern SCM scm_nil_eq (SCM x, SCM y); -extern void scm_init_lang (void); +SCM_API SCM scm_nil_cons (SCM x, SCM y); +SCM_API SCM scm_nil_car (SCM x); +SCM_API SCM scm_nil_cdr (SCM x); +SCM_API SCM scm_null (SCM x); +SCM_API SCM scm_m_while (SCM exp, SCM env); +SCM_API SCM scm_nil_eq (SCM x, SCM y); +SCM_API void scm_init_lang (void); #endif /* SCM_LANG_H */ diff --git a/libguile/list.h b/libguile/list.h index 78af07c95..8fc71992c 100644 --- a/libguile/list.h +++ b/libguile/list.h @@ -50,43 +50,43 @@ -extern SCM scm_list_1 (SCM e1); -extern SCM scm_list_2 (SCM e1, SCM e2); -extern SCM scm_list_3 (SCM e1, SCM e2, SCM e3); -extern SCM scm_list_4 (SCM e1, SCM e2, SCM e3, SCM e4); -extern SCM scm_list_5 (SCM e1, SCM e2, SCM e3, SCM e4, SCM e5); -extern SCM scm_list_n (SCM elt, ...); -extern SCM scm_list_head (SCM lst, SCM k); -extern SCM scm_list (SCM objs); -extern SCM scm_cons_star (SCM arg, SCM objs); -extern SCM scm_null_p (SCM x); -extern SCM scm_list_p (SCM x); -extern long scm_ilength (SCM sx); -extern SCM scm_length (SCM x); -extern SCM scm_append (SCM args); -extern SCM scm_append_x (SCM args); -extern SCM scm_reverse (SCM lst); -extern SCM scm_reverse_x (SCM lst, SCM newtail); -extern SCM scm_list_ref (SCM lst, SCM k); -extern SCM scm_list_set_x (SCM lst, SCM k, SCM val); -extern SCM scm_list_cdr_set_x (SCM lst, SCM k, SCM val); -extern SCM scm_last_pair (SCM sx); -extern SCM scm_list_tail (SCM lst, SCM k); -extern SCM scm_c_memq (SCM x, SCM lst); -extern SCM scm_memq (SCM x, SCM lst); -extern SCM scm_memv (SCM x, SCM lst); -extern SCM scm_member (SCM x, SCM lst); -extern SCM scm_delq_x (SCM item, SCM lst); -extern SCM scm_delv_x (SCM item, SCM lst); -extern SCM scm_delete_x (SCM item, SCM lst); -extern SCM scm_list_copy (SCM lst); -extern SCM scm_delq (SCM item, SCM lst); -extern SCM scm_delv (SCM item, SCM lst); -extern SCM scm_delete (SCM item, SCM lst); -extern SCM scm_delq1_x (SCM item, SCM lst); -extern SCM scm_delv1_x (SCM item, SCM lst); -extern SCM scm_delete1_x (SCM item, SCM lst); -extern void scm_init_list (void); +SCM_API SCM scm_list_1 (SCM e1); +SCM_API SCM scm_list_2 (SCM e1, SCM e2); +SCM_API SCM scm_list_3 (SCM e1, SCM e2, SCM e3); +SCM_API SCM scm_list_4 (SCM e1, SCM e2, SCM e3, SCM e4); +SCM_API SCM scm_list_5 (SCM e1, SCM e2, SCM e3, SCM e4, SCM e5); +SCM_API SCM scm_list_n (SCM elt, ...); +SCM_API SCM scm_list_head (SCM lst, SCM k); +SCM_API SCM scm_list (SCM objs); +SCM_API SCM scm_cons_star (SCM arg, SCM objs); +SCM_API SCM scm_null_p (SCM x); +SCM_API SCM scm_list_p (SCM x); +SCM_API long scm_ilength (SCM sx); +SCM_API SCM scm_length (SCM x); +SCM_API SCM scm_append (SCM args); +SCM_API SCM scm_append_x (SCM args); +SCM_API SCM scm_reverse (SCM lst); +SCM_API SCM scm_reverse_x (SCM lst, SCM newtail); +SCM_API SCM scm_list_ref (SCM lst, SCM k); +SCM_API SCM scm_list_set_x (SCM lst, SCM k, SCM val); +SCM_API SCM scm_list_cdr_set_x (SCM lst, SCM k, SCM val); +SCM_API SCM scm_last_pair (SCM sx); +SCM_API SCM scm_list_tail (SCM lst, SCM k); +SCM_API SCM scm_c_memq (SCM x, SCM lst); +SCM_API SCM scm_memq (SCM x, SCM lst); +SCM_API SCM scm_memv (SCM x, SCM lst); +SCM_API SCM scm_member (SCM x, SCM lst); +SCM_API SCM scm_delq_x (SCM item, SCM lst); +SCM_API SCM scm_delv_x (SCM item, SCM lst); +SCM_API SCM scm_delete_x (SCM item, SCM lst); +SCM_API SCM scm_list_copy (SCM lst); +SCM_API SCM scm_delq (SCM item, SCM lst); +SCM_API SCM scm_delv (SCM item, SCM lst); +SCM_API SCM scm_delete (SCM item, SCM lst); +SCM_API SCM scm_delq1_x (SCM item, SCM lst); +SCM_API SCM scm_delv1_x (SCM item, SCM lst); +SCM_API SCM scm_delete1_x (SCM item, SCM lst); +SCM_API void scm_init_list (void); #endif /* SCM_LIST_H */ diff --git a/libguile/load.h b/libguile/load.h index a4d17b1ce..5864309f6 100644 --- a/libguile/load.h +++ b/libguile/load.h @@ -49,19 +49,19 @@ #include "libguile/__scm.h" -extern SCM scm_internal_parse_path (char *path, SCM tail); -extern SCM scm_parse_path (SCM path, SCM tail); -extern void scm_init_load_path (void); -extern SCM scm_primitive_load (SCM filename); -extern SCM scm_c_primitive_load (const char *filename); -extern SCM scm_sys_package_data_dir (void); -extern SCM scm_sys_library_dir (void); -extern SCM scm_sys_site_dir (void); -extern SCM scm_search_path (SCM path, SCM filename, SCM exts); -extern SCM scm_sys_search_load_path (SCM filename); -extern SCM scm_primitive_load_path (SCM filename); -extern SCM scm_c_primitive_load_path (const char *filename); -extern void scm_init_load (void); +SCM_API SCM scm_internal_parse_path (char *path, SCM tail); +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_library_dir (void); +SCM_API SCM scm_sys_site_dir (void); +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); #endif /* SCM_LOAD_H */ diff --git a/libguile/macros.h b/libguile/macros.h index 1a2203ab1..05f86ca9a 100644 --- a/libguile/macros.h +++ b/libguile/macros.h @@ -57,19 +57,19 @@ #define SCM_MACRO_TYPE(m) (SCM_CELL_WORD_0 (m) >> 16) #define SCM_MACRO_CODE(m) SCM_CELL_OBJECT_1 (m) -extern scm_t_bits scm_tc16_macro; +SCM_API scm_t_bits scm_tc16_macro; -extern SCM scm_makacro (SCM code); -extern SCM scm_makmacro (SCM code); -extern SCM scm_makmmacro (SCM code); -extern SCM scm_macro_p (SCM obj); -extern SCM scm_macro_type (SCM m); -extern SCM scm_macro_name (SCM m); -extern SCM scm_macro_transformer (SCM m); -extern SCM scm_make_synt (const char *name, - SCM (*macroizer) (SCM), - SCM (*fcn) ()); -extern void scm_init_macros (void); +SCM_API SCM scm_makacro (SCM code); +SCM_API SCM scm_makmacro (SCM code); +SCM_API SCM scm_makmmacro (SCM code); +SCM_API SCM scm_macro_p (SCM obj); +SCM_API SCM scm_macro_type (SCM m); +SCM_API SCM scm_macro_name (SCM m); +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); #endif /* SCM_MACROS_H */ diff --git a/libguile/mallocs.h b/libguile/mallocs.h index cb96af7f5..765c93351 100644 --- a/libguile/mallocs.h +++ b/libguile/mallocs.h @@ -49,7 +49,7 @@ #include "libguile/__scm.h" -extern scm_t_bits scm_tc16_malloc; +SCM_API scm_t_bits scm_tc16_malloc; #define SCM_MALLOCP(X) (SCM_TYP16 (X) == scm_tc16_malloc) #define SCM_MALLOCDATA(obj) ((char *) SCM_CELL_WORD_1 (obj)) @@ -57,8 +57,8 @@ extern scm_t_bits scm_tc16_malloc; -extern SCM scm_malloc_obj (size_t n); -extern void scm_init_mallocs (void); +SCM_API SCM scm_malloc_obj (size_t n); +SCM_API void scm_init_mallocs (void); #endif /* SCM_MALLOCS_H */ diff --git a/libguile/modules.h b/libguile/modules.h index ece08bb7b..f5e8e4f55 100644 --- a/libguile/modules.h +++ b/libguile/modules.h @@ -52,8 +52,8 @@ -extern int scm_module_system_booted_p; -extern scm_t_bits scm_module_tag; +SCM_API int scm_module_system_booted_p; +SCM_API scm_t_bits scm_module_tag; #define SCM_MODULEP(OBJ) \ (!SCM_IMP (OBJ) && SCM_CELL_TYPE (OBJ) == scm_module_tag) @@ -81,56 +81,56 @@ extern scm_t_bits scm_module_tag; #define SCM_MODULE_TRANSFORMER(module) \ SCM_PACK (SCM_STRUCT_DATA (module)[scm_module_index_transformer]) -extern scm_t_bits scm_tc16_eval_closure; +SCM_API scm_t_bits scm_tc16_eval_closure; #define SCM_EVAL_CLOSURE_P(x) SCM_TYP16_PREDICATE (scm_tc16_eval_closure, x) -extern SCM scm_current_module (void); -extern SCM scm_interaction_environment (void); -extern SCM scm_set_current_module (SCM module); - -extern SCM scm_c_call_with_current_module (SCM module, - SCM (*func)(void *), void *data); - -extern SCM scm_c_lookup (const char *name); -extern SCM scm_c_define (const char *name, SCM val); -extern SCM scm_lookup (SCM symbol); -extern SCM scm_define (SCM symbol, SCM val); - -extern SCM scm_c_module_lookup (SCM module, const char *name); -extern SCM scm_c_module_define (SCM module, const char *name, SCM val); -extern SCM scm_module_lookup (SCM module, SCM symbol); -extern SCM scm_module_define (SCM module, SCM symbol, SCM val); -extern SCM scm_module_reverse_lookup (SCM module, SCM variable); - -extern SCM scm_c_resolve_module (const char *name); -extern SCM scm_resolve_module (SCM name); -extern SCM scm_c_define_module (const char *name, - void (*init)(void *), void *data); -extern void scm_c_use_module (const char *name); -extern void scm_c_export (const char *name, ...); - -extern SCM scm_sym2var (SCM sym, SCM thunk, SCM definep); - -extern SCM scm_module_lookup_closure (SCM module); -extern SCM scm_module_transformer (SCM module); -extern SCM scm_current_module_lookup_closure (void); -extern SCM scm_current_module_transformer (void); -extern SCM scm_eval_closure_lookup (SCM eclo, SCM sym, SCM definep); -extern SCM scm_standard_eval_closure (SCM module); -extern SCM scm_standard_interface_eval_closure (SCM module); -extern SCM scm_get_pre_modules_obarray (void); -extern SCM scm_lookup_closure_module (SCM proc); - -extern SCM scm_env_top_level (SCM env); -extern SCM scm_env_module (SCM env); -extern SCM scm_top_level_env (SCM thunk); -extern SCM scm_system_module_env_p (SCM env); - -extern void scm_modules_prehistory (void); -extern void scm_init_modules (void); +SCM_API SCM scm_current_module (void); +SCM_API SCM scm_interaction_environment (void); +SCM_API SCM scm_set_current_module (SCM module); + +SCM_API SCM scm_c_call_with_current_module (SCM module, + SCM (*func)(void *), void *data); + +SCM_API SCM scm_c_lookup (const char *name); +SCM_API SCM scm_c_define (const char *name, SCM val); +SCM_API SCM scm_lookup (SCM symbol); +SCM_API SCM scm_define (SCM symbol, SCM val); + +SCM_API SCM scm_c_module_lookup (SCM module, const char *name); +SCM_API SCM scm_c_module_define (SCM module, const char *name, SCM val); +SCM_API SCM scm_module_lookup (SCM module, SCM symbol); +SCM_API SCM scm_module_define (SCM module, SCM symbol, SCM val); +SCM_API SCM scm_module_reverse_lookup (SCM module, SCM variable); + +SCM_API SCM scm_c_resolve_module (const char *name); +SCM_API SCM scm_resolve_module (SCM name); +SCM_API SCM scm_c_define_module (const char *name, + void (*init)(void *), void *data); +SCM_API void scm_c_use_module (const char *name); +SCM_API void scm_c_export (const char *name, ...); + +SCM_API SCM scm_sym2var (SCM sym, SCM thunk, SCM definep); + +SCM_API SCM scm_module_lookup_closure (SCM module); +SCM_API SCM scm_module_transformer (SCM module); +SCM_API SCM scm_current_module_lookup_closure (void); +SCM_API SCM scm_current_module_transformer (void); +SCM_API SCM scm_eval_closure_lookup (SCM eclo, SCM sym, SCM definep); +SCM_API SCM scm_standard_eval_closure (SCM module); +SCM_API SCM scm_standard_interface_eval_closure (SCM module); +SCM_API SCM scm_get_pre_modules_obarray (void); +SCM_API SCM scm_lookup_closure_module (SCM proc); + +SCM_API SCM scm_env_top_level (SCM env); +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); #endif /* SCM_MODULES_H */ diff --git a/libguile/net_db.h b/libguile/net_db.h index db8f22005..b0ceda9c8 100644 --- a/libguile/net_db.h +++ b/libguile/net_db.h @@ -50,15 +50,15 @@ -extern SCM scm_gethost (SCM host); -extern SCM scm_getnet (SCM name); -extern SCM scm_getproto (SCM name); -extern SCM scm_getserv (SCM name, SCM proto); -extern SCM scm_sethost (SCM arg); -extern SCM scm_setnet (SCM arg); -extern SCM scm_setproto (SCM arg); -extern SCM scm_setserv (SCM arg); -extern void scm_init_net_db (void); +SCM_API SCM scm_gethost (SCM host); +SCM_API SCM scm_getnet (SCM name); +SCM_API SCM scm_getproto (SCM name); +SCM_API SCM scm_getserv (SCM name, SCM proto); +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); #endif /* SCM_NET_DB_H */ diff --git a/libguile/num2integral.i.c b/libguile/num2integral.i.c index e81204433..09a6e03fa 100644 --- a/libguile/num2integral.i.c +++ b/libguile/num2integral.i.c @@ -93,13 +93,13 @@ INTEGRAL2NUM (ITYPE n) #define NEED_CHECK #else #ifdef UNSIGNED -#if MAX_VALUE > SCM_MOST_POSITIVE_FIXNUM + /*#if MAX_VALUE > SCM_MOST_POSITIVE_FIXNUM*/ #define NEED_CHECK -#endif + /*#endif*/ #else -#if MIN_VALUESCM_MOST_POSITIVE_FIXNUM + /*#if MIN_VALUESCM_MOST_POSITIVE_FIXNUM*/ #define NEED_CHECK -#endif + /*#endif*/ #endif #endif diff --git a/libguile/numbers.c b/libguile/numbers.c index 91e0359e5..0786697b6 100644 --- a/libguile/numbers.c +++ b/libguile/numbers.c @@ -4415,9 +4415,7 @@ check_sanity () #ifdef HAVE_LONG_LONGS CHECK (long_long, 0LL); CHECK (ulong_long, 0ULL); - CHECK (long_long, -1LL); - CHECK (long_long, LLONG_MAX); CHECK (long_long, LLONG_MIN); CHECK (ulong_long, ULLONG_MAX); diff --git a/libguile/numbers.h b/libguile/numbers.h index e1dc39adc..023288ead 100644 --- a/libguile/numbers.h +++ b/libguile/numbers.h @@ -198,142 +198,142 @@ typedef struct scm_t_complex -extern SCM scm_exact_p (SCM x); -extern SCM scm_odd_p (SCM n); -extern SCM scm_even_p (SCM n); -extern SCM scm_abs (SCM x); -extern SCM scm_quotient (SCM x, SCM y); -extern SCM scm_remainder (SCM x, SCM y); -extern SCM scm_modulo (SCM x, SCM y); -extern SCM scm_gcd (SCM x, SCM y); -extern SCM scm_lcm (SCM n1, SCM n2); -extern SCM scm_logand (SCM n1, SCM n2); -extern SCM scm_logior (SCM n1, SCM n2); -extern SCM scm_logxor (SCM n1, SCM n2); -extern SCM scm_logtest (SCM n1, SCM n2); -extern SCM scm_logbit_p (SCM n1, SCM n2); -extern SCM scm_lognot (SCM n); -extern SCM scm_integer_expt (SCM z1, SCM z2); -extern SCM scm_ash (SCM n, SCM cnt); -extern SCM scm_bit_extract (SCM n, SCM start, SCM end); -extern SCM scm_logcount (SCM n); -extern SCM scm_integer_length (SCM n); -extern SCM scm_i_mkbig (size_t nlen, int sign); -extern SCM scm_i_big2inum (SCM b, size_t l); -extern SCM scm_i_adjbig (SCM b, size_t nlen); -extern SCM scm_i_normbig (SCM b); -extern SCM scm_i_copybig (SCM b, int sign); -extern SCM scm_i_short2big (short n); -extern SCM scm_i_ushort2big (unsigned short n); -extern SCM scm_i_int2big (int n); -extern SCM scm_i_uint2big (unsigned int n); -extern SCM scm_i_long2big (long n); -extern SCM scm_i_ulong2big (unsigned long n); -extern SCM scm_i_size2big (size_t n); -extern SCM scm_i_ptrdiff2big (ptrdiff_t n); +SCM_API SCM scm_exact_p (SCM x); +SCM_API SCM scm_odd_p (SCM n); +SCM_API SCM scm_even_p (SCM n); +SCM_API SCM scm_abs (SCM x); +SCM_API SCM scm_quotient (SCM x, SCM y); +SCM_API SCM scm_remainder (SCM x, SCM y); +SCM_API SCM scm_modulo (SCM x, SCM y); +SCM_API SCM scm_gcd (SCM x, SCM y); +SCM_API SCM scm_lcm (SCM n1, SCM n2); +SCM_API SCM scm_logand (SCM n1, SCM n2); +SCM_API SCM scm_logior (SCM n1, SCM n2); +SCM_API SCM scm_logxor (SCM n1, SCM n2); +SCM_API SCM scm_logtest (SCM n1, SCM n2); +SCM_API SCM scm_logbit_p (SCM n1, SCM n2); +SCM_API SCM scm_lognot (SCM n); +SCM_API SCM scm_integer_expt (SCM z1, SCM z2); +SCM_API SCM scm_ash (SCM n, SCM cnt); +SCM_API SCM scm_bit_extract (SCM n, SCM start, SCM end); +SCM_API SCM scm_logcount (SCM n); +SCM_API SCM scm_integer_length (SCM n); +SCM_API SCM scm_i_mkbig (size_t nlen, int sign); +SCM_API SCM scm_i_big2inum (SCM b, size_t l); +SCM_API SCM scm_i_adjbig (SCM b, size_t nlen); +SCM_API SCM scm_i_normbig (SCM b); +SCM_API SCM scm_i_copybig (SCM b, int sign); +SCM_API SCM scm_i_short2big (short n); +SCM_API SCM scm_i_ushort2big (unsigned short n); +SCM_API SCM scm_i_int2big (int n); +SCM_API SCM scm_i_uint2big (unsigned int n); +SCM_API SCM scm_i_long2big (long n); +SCM_API SCM scm_i_ulong2big (unsigned long n); +SCM_API SCM scm_i_size2big (size_t n); +SCM_API SCM scm_i_ptrdiff2big (ptrdiff_t n); #ifdef HAVE_LONG_LONGS -extern SCM scm_i_long_long2big (long long n); -extern SCM scm_i_ulong_long2big (unsigned long long n); +SCM_API SCM scm_i_long_long2big (long long n); +SCM_API SCM scm_i_ulong_long2big (unsigned long long n); #endif -extern int scm_bigcomp (SCM x, SCM y); -extern long scm_pseudolong (long x); -extern void scm_longdigs (long x, SCM_BIGDIG digs[]); -extern SCM scm_addbig (SCM_BIGDIG *x, size_t nx, int xsgn, SCM bigy, int sgny); -extern SCM scm_mulbig (SCM_BIGDIG *x, size_t nx, SCM_BIGDIG *y, size_t ny, int sgn); -extern unsigned int scm_divbigdig (SCM_BIGDIG *ds, size_t h, SCM_BIGDIG div); -extern size_t scm_iint2str (long num, int rad, char *p); -extern SCM scm_number_to_string (SCM x, SCM radix); -extern int scm_print_real (SCM sexp, SCM port, scm_print_state *pstate); -extern int scm_print_complex (SCM sexp, SCM port, scm_print_state *pstate); -extern int scm_bigprint (SCM exp, SCM port, scm_print_state *pstate); -extern SCM scm_i_mem2number (const char *mem, size_t len, unsigned int radix); -extern SCM scm_string_to_number (SCM str, SCM radix); -extern SCM scm_make_real (double x); -extern SCM scm_make_complex (double x, double y); -extern SCM scm_bigequal (SCM x, SCM y); -extern SCM scm_real_equalp (SCM x, SCM y); -extern SCM scm_complex_equalp (SCM x, SCM y); -extern SCM scm_number_p (SCM x); -extern SCM scm_real_p (SCM x); -extern SCM scm_integer_p (SCM x); -extern SCM scm_inexact_p (SCM x); -extern SCM scm_num_eq_p (SCM x, SCM y); -extern SCM scm_less_p (SCM x, SCM y); -extern SCM scm_gr_p (SCM x, SCM y); -extern SCM scm_leq_p (SCM x, SCM y); -extern SCM scm_geq_p (SCM x, SCM y); -extern SCM scm_zero_p (SCM z); -extern SCM scm_positive_p (SCM x); -extern SCM scm_negative_p (SCM x); -extern SCM scm_max (SCM x, SCM y); -extern SCM scm_min (SCM x, SCM y); -extern SCM scm_sum (SCM x, SCM y); -extern SCM scm_difference (SCM x, SCM y); -extern SCM scm_product (SCM x, SCM y); -extern double scm_num2dbl (SCM a, const char * why); -extern SCM scm_divide (SCM x, SCM y); -extern double scm_asinh (double x); -extern double scm_acosh (double x); -extern double scm_atanh (double x); -extern double scm_truncate (double x); -extern double scm_round (double x); -extern SCM scm_sys_expt (SCM z1, SCM z2); -extern SCM scm_sys_atan2 (SCM z1, SCM z2); -extern SCM scm_make_rectangular (SCM z1, SCM z2); -extern SCM scm_make_polar (SCM z1, SCM z2); -extern SCM scm_real_part (SCM z); -extern SCM scm_imag_part (SCM z); -extern SCM scm_magnitude (SCM z); -extern SCM scm_angle (SCM z); -extern SCM scm_exact_to_inexact (SCM z); -extern SCM scm_inexact_to_exact (SCM z); -extern SCM scm_trunc (SCM x); -extern SCM scm_i_dbl2big (double d); -extern double scm_i_big2dbl (SCM b); - -extern SCM scm_short2num (short n); -extern SCM scm_ushort2num (unsigned short n); -extern SCM scm_int2num (int n); -extern SCM scm_uint2num (unsigned int n); -extern SCM scm_long2num (long n); -extern SCM scm_ulong2num (unsigned long n); -extern SCM scm_size2num (size_t n); -extern SCM scm_ptrdiff2num (ptrdiff_t n); -extern short scm_num2short (SCM num, unsigned long int pos, - const char *s_caller); -extern unsigned short scm_num2ushort (SCM num, unsigned long int pos, - const char *s_caller); -extern int scm_num2int (SCM num, unsigned long int pos, - const char *s_caller); -extern unsigned int scm_num2uint (SCM num, unsigned long int pos, - const char *s_caller); -extern long scm_num2long (SCM num, unsigned long int pos, - const char *s_caller); -extern unsigned long scm_num2ulong (SCM num, unsigned long int pos, - const char *s_caller); -extern ptrdiff_t scm_num2ptrdiff (SCM num, unsigned long int pos, - const char *s_caller); -extern size_t scm_num2size (SCM num, unsigned long int pos, - const char *s_caller); +SCM_API int scm_bigcomp (SCM x, SCM y); +SCM_API long scm_pseudolong (long x); +SCM_API void scm_longdigs (long x, SCM_BIGDIG digs[]); +SCM_API SCM scm_addbig (SCM_BIGDIG *x, size_t nx, int xsgn, SCM bigy, int sgny); +SCM_API SCM scm_mulbig (SCM_BIGDIG *x, size_t nx, SCM_BIGDIG *y, size_t ny, int sgn); +SCM_API unsigned int scm_divbigdig (SCM_BIGDIG *ds, size_t h, SCM_BIGDIG div); +SCM_API size_t scm_iint2str (long num, int rad, char *p); +SCM_API SCM scm_number_to_string (SCM x, SCM radix); +SCM_API int scm_print_real (SCM sexp, SCM port, scm_print_state *pstate); +SCM_API int scm_print_complex (SCM sexp, SCM port, scm_print_state *pstate); +SCM_API int scm_bigprint (SCM exp, SCM port, scm_print_state *pstate); +SCM_API SCM scm_i_mem2number (const char *mem, size_t len, unsigned int radix); +SCM_API SCM scm_string_to_number (SCM str, SCM radix); +SCM_API SCM scm_make_real (double x); +SCM_API SCM scm_make_complex (double x, double y); +SCM_API SCM scm_bigequal (SCM x, SCM y); +SCM_API SCM scm_real_equalp (SCM x, SCM y); +SCM_API SCM scm_complex_equalp (SCM x, SCM y); +SCM_API SCM scm_number_p (SCM x); +SCM_API SCM scm_real_p (SCM x); +SCM_API SCM scm_integer_p (SCM x); +SCM_API SCM scm_inexact_p (SCM x); +SCM_API SCM scm_num_eq_p (SCM x, SCM y); +SCM_API SCM scm_less_p (SCM x, SCM y); +SCM_API SCM scm_gr_p (SCM x, SCM y); +SCM_API SCM scm_leq_p (SCM x, SCM y); +SCM_API SCM scm_geq_p (SCM x, SCM y); +SCM_API SCM scm_zero_p (SCM z); +SCM_API SCM scm_positive_p (SCM x); +SCM_API SCM scm_negative_p (SCM x); +SCM_API SCM scm_max (SCM x, SCM y); +SCM_API SCM scm_min (SCM x, SCM y); +SCM_API SCM scm_sum (SCM x, SCM y); +SCM_API SCM scm_difference (SCM x, SCM y); +SCM_API SCM scm_product (SCM x, SCM y); +SCM_API double scm_num2dbl (SCM a, const char * why); +SCM_API SCM scm_divide (SCM x, SCM y); +SCM_API double scm_asinh (double x); +SCM_API double scm_acosh (double x); +SCM_API double scm_atanh (double x); +SCM_API double scm_truncate (double x); +SCM_API double scm_round (double x); +SCM_API SCM scm_sys_expt (SCM z1, SCM z2); +SCM_API SCM scm_sys_atan2 (SCM z1, SCM z2); +SCM_API SCM scm_make_rectangular (SCM z1, SCM z2); +SCM_API SCM scm_make_polar (SCM z1, SCM z2); +SCM_API SCM scm_real_part (SCM z); +SCM_API SCM scm_imag_part (SCM z); +SCM_API SCM scm_magnitude (SCM z); +SCM_API SCM scm_angle (SCM z); +SCM_API SCM scm_exact_to_inexact (SCM z); +SCM_API SCM scm_inexact_to_exact (SCM z); +SCM_API SCM scm_trunc (SCM x); +SCM_API SCM scm_i_dbl2big (double d); +SCM_API double scm_i_big2dbl (SCM b); + +SCM_API SCM scm_short2num (short n); +SCM_API SCM scm_ushort2num (unsigned short n); +SCM_API SCM scm_int2num (int n); +SCM_API SCM scm_uint2num (unsigned int n); +SCM_API SCM scm_long2num (long n); +SCM_API SCM scm_ulong2num (unsigned long n); +SCM_API SCM scm_size2num (size_t n); +SCM_API SCM scm_ptrdiff2num (ptrdiff_t n); +SCM_API short scm_num2short (SCM num, unsigned long int pos, + const char *s_caller); +SCM_API unsigned short scm_num2ushort (SCM num, unsigned long int pos, + const char *s_caller); +SCM_API int scm_num2int (SCM num, unsigned long int pos, + const char *s_caller); +SCM_API unsigned int scm_num2uint (SCM num, unsigned long int pos, + const char *s_caller); +SCM_API long scm_num2long (SCM num, unsigned long int pos, + const char *s_caller); +SCM_API unsigned long scm_num2ulong (SCM num, unsigned long int pos, + const char *s_caller); +SCM_API ptrdiff_t scm_num2ptrdiff (SCM num, unsigned long int pos, + const char *s_caller); +SCM_API size_t scm_num2size (SCM num, unsigned long int pos, + const char *s_caller); #ifdef HAVE_LONG_LONGS -extern SCM scm_long_long2num (long long sl); -extern SCM scm_ulong_long2num (unsigned long long sl); -extern long long scm_num2long_long (SCM num, unsigned long int pos, - const char *s_caller); -extern unsigned long long scm_num2ulong_long (SCM num, unsigned long int pos, - const char *s_caller); +SCM_API SCM scm_long_long2num (long long sl); +SCM_API SCM scm_ulong_long2num (unsigned long long sl); +SCM_API long long scm_num2long_long (SCM num, unsigned long int pos, + const char *s_caller); +SCM_API unsigned long long scm_num2ulong_long (SCM num, unsigned long int pos, + const char *s_caller); #endif -extern SCM scm_float2num (float n); -extern SCM scm_double2num (double n); -extern float scm_num2float (SCM num, unsigned long int pos, - const char *s_caller); -extern double scm_num2double (SCM num, unsigned long int pos, - const char *s_caller); +SCM_API SCM scm_float2num (float n); +SCM_API SCM scm_double2num (double n); +SCM_API float scm_num2float (SCM num, unsigned long int pos, + const char *s_caller); +SCM_API double scm_num2double (SCM num, unsigned long int pos, + const char *s_caller); -extern void scm_init_numbers (void); +SCM_API void scm_init_numbers (void); #endif /* SCM_NUMBERS_H */ diff --git a/libguile/objects.h b/libguile/objects.h index 26d39af61..a2d77a23d 100644 --- a/libguile/objects.h +++ b/libguile/objects.h @@ -198,48 +198,55 @@ typedef struct scm_effective_slot_definition { #define SCM_INOUT_PCLASS_INDEX 0x200 /* Plugin proxy classes for basic types. */ -extern SCM scm_metaclass_standard; -extern SCM scm_metaclass_operator; -extern SCM scm_class_boolean, scm_class_char, scm_class_pair; -extern SCM scm_class_procedure, scm_class_string, scm_class_symbol; -extern SCM scm_class_procedure_with_setter, scm_class_primitive_generic; -extern SCM scm_class_vector, scm_class_null; -extern SCM scm_class_real, scm_class_complex, scm_class_integer; -extern SCM scm_class_unknown; -extern SCM *scm_port_class; -extern SCM *scm_smob_class; - -extern SCM scm_no_applicable_method; +SCM_API SCM scm_metaclass_standard; +SCM_API SCM scm_metaclass_operator; +SCM_API SCM scm_class_boolean; +SCM_API SCM scm_class_char; +SCM_API SCM scm_class_pair; +SCM_API SCM scm_class_procedure; +SCM_API SCM scm_class_string; +SCM_API SCM scm_class_symbol; +SCM_API SCM scm_class_procedure_with_setter; +SCM_API SCM scm_class_primitive_generic; +SCM_API SCM scm_class_vector, scm_class_null; +SCM_API SCM scm_class_real; +SCM_API SCM scm_class_complex; +SCM_API SCM scm_class_integer; +SCM_API SCM scm_class_unknown; +SCM_API SCM *scm_port_class; +SCM_API SCM *scm_smob_class; + +SCM_API SCM scm_no_applicable_method; /* Goops functions. */ -extern SCM scm_make_extended_class (char *type_name); -extern void scm_make_port_classes (long ptobnum, char *type_name); -extern void scm_change_object_class (SCM, SCM, SCM); -extern SCM scm_memoize_method (SCM x, SCM args); - -extern SCM scm_class_of (SCM obj); -extern SCM scm_mcache_lookup_cmethod (SCM cache, SCM args); -extern SCM scm_mcache_compute_cmethod (SCM cache, SCM args); +SCM_API SCM scm_make_extended_class (char *type_name); +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_class_of (SCM obj); +SCM_API SCM scm_mcache_lookup_cmethod (SCM cache, SCM args); +SCM_API SCM scm_mcache_compute_cmethod (SCM cache, SCM args); /* The following are declared in __scm.h -extern SCM scm_call_generic_0 (SCM gf); -extern SCM scm_call_generic_1 (SCM gf, SCM a1); -extern SCM scm_call_generic_2 (SCM gf, SCM a1, SCM a2); -extern SCM scm_apply_generic (SCM gf, SCM args); +SCM_API SCM scm_call_generic_0 (SCM gf); +SCM_API SCM scm_call_generic_1 (SCM gf, SCM a1); +SCM_API SCM scm_call_generic_2 (SCM gf, SCM a1, SCM a2); +SCM_API SCM scm_apply_generic (SCM gf, SCM args); */ -extern SCM scm_call_generic_3 (SCM gf, SCM a1, SCM a2, SCM a3); -extern SCM scm_entity_p (SCM obj); -extern SCM scm_operator_p (SCM obj); -extern SCM scm_valid_object_procedure_p (SCM proc); -extern SCM scm_set_object_procedure_x (SCM obj, SCM proc); +SCM_API SCM scm_call_generic_3 (SCM gf, SCM a1, SCM a2, SCM a3); +SCM_API SCM scm_entity_p (SCM obj); +SCM_API SCM scm_operator_p (SCM obj); +SCM_API SCM scm_valid_object_procedure_p (SCM proc); +SCM_API SCM scm_set_object_procedure_x (SCM obj, SCM proc); #ifdef GUILE_DEBUG -extern SCM scm_object_procedure (SCM obj); +SCM_API SCM scm_object_procedure (SCM obj); #endif -extern SCM scm_make_class_object (SCM metaclass, SCM layout); -extern SCM scm_make_subclass_object (SCM c, SCM layout); +SCM_API SCM scm_make_class_object (SCM metaclass, SCM layout); +SCM_API SCM scm_make_subclass_object (SCM c, SCM layout); -extern SCM scm_i_make_class_object (SCM metaclass, SCM layout_string, - unsigned long flags); -extern void scm_init_objects (void); +SCM_API SCM scm_i_make_class_object (SCM metaclass, SCM layout_string, + unsigned long flags); +SCM_API void scm_init_objects (void); #endif /* SCM_OBJECTS_H */ diff --git a/libguile/objprop.h b/libguile/objprop.h index 82afc2534..b3adc7a18 100644 --- a/libguile/objprop.h +++ b/libguile/objprop.h @@ -50,11 +50,11 @@ -extern SCM scm_object_properties (SCM obj); -extern SCM scm_set_object_properties_x (SCM obj, SCM plist); -extern SCM scm_object_property (SCM obj, SCM key); -extern SCM scm_set_object_property_x (SCM obj, SCM key, SCM val); -extern void scm_init_objprop (void); +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); #endif /* SCM_OBJPROP_H */ diff --git a/libguile/options.h b/libguile/options.h index 3ab28cb69..79b7883cc 100644 --- a/libguile/options.h +++ b/libguile/options.h @@ -67,9 +67,9 @@ typedef struct scm_t_option #define SCM_OPTION_SCM 2 -extern SCM scm_options (SCM, scm_t_option [], unsigned int, const char*); -extern void scm_init_opts (SCM (*) (SCM), scm_t_option [], unsigned int n); -extern void scm_init_options (void); +SCM_API SCM scm_options (SCM, scm_t_option [], unsigned int, const char*); +SCM_API void scm_init_opts (SCM (*) (SCM), scm_t_option [], unsigned int n); +SCM_API void scm_init_options (void); #endif /* SCM_OPTIONS_H */ diff --git a/libguile/pairs.h b/libguile/pairs.h index 2149b3918..98b0854d6 100644 --- a/libguile/pairs.h +++ b/libguile/pairs.h @@ -101,14 +101,14 @@ #if (SCM_DEBUG_PAIR_ACCESSES == 1) -extern void scm_error_pair_access (SCM); +SCM_API void scm_error_pair_access (SCM); #endif -extern SCM scm_cons (SCM x, SCM y); -extern SCM scm_cons2 (SCM w, SCM x, SCM y); -extern SCM scm_pair_p (SCM x); -extern SCM scm_set_car_x (SCM pair, SCM value); -extern SCM scm_set_cdr_x (SCM pair, SCM value); -extern void scm_init_pairs (void); +SCM_API SCM scm_cons (SCM x, SCM y); +SCM_API SCM scm_cons2 (SCM w, SCM x, SCM y); +SCM_API SCM scm_pair_p (SCM x); +SCM_API SCM scm_set_car_x (SCM pair, SCM value); +SCM_API SCM scm_set_cdr_x (SCM pair, SCM value); +SCM_API void scm_init_pairs (void); #endif /* SCM_PAIRS_H */ diff --git a/libguile/ports.h b/libguile/ports.h index b0d97fd1e..e9a1af950 100644 --- a/libguile/ports.h +++ b/libguile/ports.h @@ -132,8 +132,8 @@ typedef struct size_t putback_buf_size; /* allocated size of putback_buf. */ } scm_t_port; -extern scm_t_port **scm_port_table; -extern long scm_port_table_size; /* Number of ports in scm_port_table. */ +SCM_API scm_t_port **scm_port_table; +SCM_API long scm_port_table_size; /* Number of ports in scm_port_table. */ #define SCM_READ_BUFFER_EMPTY_P(c_port) (c_port->read_pos >= c_port->read_end) @@ -213,105 +213,105 @@ typedef struct scm_t_ptob_descriptor -extern scm_t_ptob_descriptor *scm_ptobs; -extern long scm_numptob; -extern long scm_port_table_room; +SCM_API scm_t_ptob_descriptor *scm_ptobs; +SCM_API long scm_numptob; +SCM_API long scm_port_table_room; -extern SCM scm_markstream (SCM ptr); -extern scm_t_bits scm_make_port_type (char *name, - int (*fill_input) (SCM port), - void (*write) (SCM port, - const void *data, - size_t size)); -extern void scm_set_port_mark (long tc, SCM (*mark) (SCM)); -extern void scm_set_port_free (long tc, size_t (*free) (SCM)); -extern void scm_set_port_print (long tc, - int (*print) (SCM exp, - SCM port, - scm_print_state *pstate)); -extern void scm_set_port_equalp (long tc, SCM (*equalp) (SCM, SCM)); -extern void scm_set_port_close (long tc, int (*close) (SCM)); - -extern void scm_set_port_flush (long tc, - void (*flush) (SCM port)); -extern void scm_set_port_end_input (long tc, - void (*end_input) (SCM port, - int offset)); -extern void scm_set_port_seek (long tc, - off_t (*seek) (SCM port, - off_t OFFSET, - int WHENCE)); -extern void scm_set_port_truncate (long tc, - void (*truncate) (SCM port, - off_t length)); -extern void scm_set_port_input_waiting (long tc, int (*input_waiting) (SCM)); -extern SCM scm_char_ready_p (SCM port); +SCM_API SCM scm_markstream (SCM ptr); +SCM_API scm_t_bits scm_make_port_type (char *name, + int (*fill_input) (SCM port), + void (*write) (SCM port, + const void *data, + size_t size)); +SCM_API void scm_set_port_mark (long tc, SCM (*mark) (SCM)); +SCM_API void scm_set_port_free (long tc, size_t (*free) (SCM)); +SCM_API void scm_set_port_print (long tc, + int (*print) (SCM exp, + SCM port, + scm_print_state *pstate)); +SCM_API void scm_set_port_equalp (long tc, SCM (*equalp) (SCM, SCM)); +SCM_API void scm_set_port_close (long tc, int (*close) (SCM)); + +SCM_API void scm_set_port_flush (long tc, + void (*flush) (SCM port)); +SCM_API void scm_set_port_end_input (long tc, + void (*end_input) (SCM port, + int offset)); +SCM_API void scm_set_port_seek (long tc, + off_t (*seek) (SCM port, + off_t OFFSET, + int WHENCE)); +SCM_API void scm_set_port_truncate (long tc, + void (*truncate) (SCM port, + off_t length)); +SCM_API void scm_set_port_input_waiting (long tc, int (*input_waiting) (SCM)); +SCM_API SCM scm_char_ready_p (SCM port); size_t scm_take_from_input_buffers (SCM port, char *dest, size_t read_len); -extern SCM scm_drain_input (SCM port); -extern SCM scm_current_input_port (void); -extern SCM scm_current_output_port (void); -extern SCM scm_current_error_port (void); -extern SCM scm_current_load_port (void); -extern SCM scm_set_current_input_port (SCM port); -extern SCM scm_set_current_output_port (SCM port); -extern SCM scm_set_current_error_port (SCM port); -extern scm_t_port * scm_add_to_port_table (SCM port); -extern void scm_remove_from_port_table (SCM port); -extern void scm_grow_port_cbuf (SCM port, size_t requested); -extern SCM scm_pt_size (void); -extern SCM scm_pt_member (SCM member); -extern void scm_port_non_buffer (scm_t_port *pt); -extern int scm_revealed_count (SCM port); -extern SCM scm_port_revealed (SCM port); -extern SCM scm_set_port_revealed_x (SCM port, SCM rcount); -extern long scm_mode_bits (char *modes); -extern SCM scm_port_mode (SCM port); -extern SCM scm_close_input_port (SCM port); -extern SCM scm_close_output_port (SCM port); -extern SCM scm_close_port (SCM port); -extern SCM scm_port_for_each (SCM proc); -extern SCM scm_input_port_p (SCM x); -extern SCM scm_output_port_p (SCM x); -extern SCM scm_port_p (SCM x); -extern SCM scm_port_closed_p (SCM port); -extern SCM scm_eof_object_p (SCM x); -extern SCM scm_force_output (SCM port); -extern SCM scm_flush_all_ports (void); -extern SCM scm_read_char (SCM port); -extern void scm_putc (char c, SCM port); -extern void scm_puts (const char *str_data, SCM port); -extern size_t scm_c_read (SCM port, void *buffer, size_t size); -extern void scm_c_write (SCM port, const void *buffer, size_t size); -extern void scm_lfwrite (const char *ptr, size_t size, SCM port); -extern void scm_flush (SCM port); -extern void scm_end_input (SCM port); -extern int scm_fill_input (SCM port); -extern int scm_getc (SCM port); -extern void scm_ungetc (int c, SCM port); -extern void scm_ungets (const char *s, int n, SCM port); -extern SCM scm_peek_char (SCM port); -extern SCM scm_unread_char (SCM cobj, SCM port); -extern SCM scm_unread_string (SCM str, SCM port); -extern SCM scm_seek (SCM object, SCM offset, SCM whence); -extern SCM scm_truncate_file (SCM object, SCM length); -extern SCM scm_port_line (SCM port); -extern SCM scm_set_port_line_x (SCM port, SCM line); -extern SCM scm_port_column (SCM port); -extern SCM scm_set_port_column_x (SCM port, SCM line); -extern SCM scm_port_filename (SCM port); -extern SCM scm_set_port_filename_x (SCM port, SCM filename); -extern int scm_port_print (SCM exp, SCM port, scm_print_state *); -extern void scm_print_port_mode (SCM exp, SCM port); -extern void scm_ports_prehistory (void); -extern SCM scm_void_port (char * mode_str); -extern SCM scm_sys_make_void_port (SCM mode); -extern void scm_init_ports (void); +SCM_API SCM scm_drain_input (SCM port); +SCM_API SCM scm_current_input_port (void); +SCM_API SCM scm_current_output_port (void); +SCM_API SCM scm_current_error_port (void); +SCM_API SCM scm_current_load_port (void); +SCM_API SCM scm_set_current_input_port (SCM port); +SCM_API SCM scm_set_current_output_port (SCM port); +SCM_API SCM scm_set_current_error_port (SCM port); +SCM_API scm_t_port * scm_add_to_port_table (SCM port); +SCM_API void scm_remove_from_port_table (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_port_non_buffer (scm_t_port *pt); +SCM_API int scm_revealed_count (SCM port); +SCM_API SCM scm_port_revealed (SCM port); +SCM_API SCM scm_set_port_revealed_x (SCM port, SCM rcount); +SCM_API long scm_mode_bits (char *modes); +SCM_API SCM scm_port_mode (SCM port); +SCM_API SCM scm_close_input_port (SCM port); +SCM_API SCM scm_close_output_port (SCM port); +SCM_API SCM scm_close_port (SCM port); +SCM_API SCM scm_port_for_each (SCM proc); +SCM_API SCM scm_input_port_p (SCM x); +SCM_API SCM scm_output_port_p (SCM x); +SCM_API SCM scm_port_p (SCM x); +SCM_API SCM scm_port_closed_p (SCM port); +SCM_API SCM scm_eof_object_p (SCM x); +SCM_API SCM scm_force_output (SCM port); +SCM_API SCM scm_flush_all_ports (void); +SCM_API SCM scm_read_char (SCM port); +SCM_API void scm_putc (char c, SCM port); +SCM_API void scm_puts (const char *str_data, SCM port); +SCM_API size_t scm_c_read (SCM port, void *buffer, size_t size); +SCM_API void scm_c_write (SCM port, const void *buffer, size_t size); +SCM_API void scm_lfwrite (const char *ptr, size_t size, SCM port); +SCM_API void scm_flush (SCM port); +SCM_API void scm_end_input (SCM port); +SCM_API int scm_fill_input (SCM port); +SCM_API int scm_getc (SCM port); +SCM_API void scm_ungetc (int c, SCM port); +SCM_API void scm_ungets (const char *s, int n, SCM port); +SCM_API SCM scm_peek_char (SCM port); +SCM_API SCM scm_unread_char (SCM cobj, SCM port); +SCM_API SCM scm_unread_string (SCM str, SCM port); +SCM_API SCM scm_seek (SCM object, SCM offset, SCM whence); +SCM_API SCM scm_truncate_file (SCM object, SCM length); +SCM_API SCM scm_port_line (SCM port); +SCM_API SCM scm_set_port_line_x (SCM port, SCM line); +SCM_API SCM scm_port_column (SCM port); +SCM_API SCM scm_set_port_column_x (SCM port, SCM line); +SCM_API SCM scm_port_filename (SCM port); +SCM_API SCM scm_set_port_filename_x (SCM port, SCM filename); +SCM_API int scm_port_print (SCM exp, SCM port, scm_print_state *); +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); #ifdef GUILE_DEBUG -extern SCM scm_pt_size (void); -extern SCM scm_pt_member (SCM member); +SCM_API SCM scm_pt_size (void); +SCM_API SCM scm_pt_member (SCM member); #endif /* GUILE_DEBUG */ #endif /* SCM_PORTS_H */ diff --git a/libguile/posix.h b/libguile/posix.h index 9f67baa25..c6b1f09fb 100644 --- a/libguile/posix.h +++ b/libguile/posix.h @@ -53,62 +53,62 @@ -extern SCM scm_tcsetpgrp (SCM port, SCM pgid); -extern SCM scm_tcgetpgrp (SCM port); -extern SCM scm_ctermid (void); -extern SCM scm_setsid (void); -extern SCM scm_setpgid (SCM pid, SCM pgid); -extern SCM scm_pipe (void); -extern SCM scm_getgroups (void); -extern SCM scm_getpgrp (void); -extern SCM scm_getpwuid (SCM user); -extern SCM scm_setpwent (SCM arg); -extern SCM scm_getgrgid (SCM name); -extern SCM scm_setgrent (SCM arg); -extern SCM scm_kill (SCM pid, SCM sig); -extern SCM scm_waitpid (SCM pid, SCM options); -extern SCM scm_status_exit_val (SCM status); -extern SCM scm_status_term_sig (SCM status); -extern SCM scm_status_stop_sig (SCM status); -extern SCM scm_getppid (void); -extern SCM scm_getuid (void); -extern SCM scm_getgid (void); -extern SCM scm_geteuid (void); -extern SCM scm_getegid (void); -extern SCM scm_setuid (SCM id); -extern SCM scm_setgid (SCM id); -extern SCM scm_seteuid (SCM id); -extern SCM scm_setegid (SCM id); -extern SCM scm_ttyname (SCM port); -extern SCM scm_execl (SCM filename, SCM args); -extern SCM scm_execlp (SCM filename, SCM args); -extern SCM scm_execle (SCM filename, SCM env, SCM args); -extern SCM scm_fork (void); -extern SCM scm_uname (void); -extern SCM scm_environ (SCM env); -extern SCM scm_tmpnam (void); -extern SCM scm_mkstemp (SCM tmpl); -extern SCM scm_open_pipe (SCM pipestr, SCM modes); -extern SCM scm_close_pipe (SCM port); -extern SCM scm_utime (SCM pathname, SCM actime, SCM modtime); -extern SCM scm_access (SCM path, SCM how); -extern SCM scm_getpid (void); -extern SCM scm_putenv (SCM str); -extern SCM scm_setlocale (SCM category, SCM locale); -extern SCM scm_mknod (SCM path, SCM type, SCM perms, SCM dev); -extern SCM scm_nice (SCM incr); -extern SCM scm_sync (void); -extern SCM scm_crypt (SCM key, SCM salt); -extern SCM scm_chroot (SCM path); -extern SCM scm_getlogin (void); -extern SCM scm_cuserid (void); -extern SCM scm_getpriority (SCM which, SCM who); -extern SCM scm_setpriority (SCM which, SCM who, SCM prio); -extern SCM scm_getpass (SCM prompt); -extern SCM scm_flock (SCM file, SCM operation); -extern SCM scm_sethostname (SCM name); -extern SCM scm_gethostname (void); -extern void scm_init_posix (void); +SCM_API SCM scm_tcsetpgrp (SCM port, SCM pgid); +SCM_API SCM scm_tcgetpgrp (SCM port); +SCM_API SCM scm_ctermid (void); +SCM_API SCM scm_setsid (void); +SCM_API SCM scm_setpgid (SCM pid, SCM pgid); +SCM_API SCM scm_pipe (void); +SCM_API SCM scm_getgroups (void); +SCM_API SCM scm_getpgrp (void); +SCM_API SCM scm_getpwuid (SCM user); +SCM_API SCM scm_setpwent (SCM arg); +SCM_API SCM scm_getgrgid (SCM name); +SCM_API SCM scm_setgrent (SCM arg); +SCM_API SCM scm_kill (SCM pid, SCM sig); +SCM_API SCM scm_waitpid (SCM pid, SCM options); +SCM_API SCM scm_status_exit_val (SCM status); +SCM_API SCM scm_status_term_sig (SCM status); +SCM_API SCM scm_status_stop_sig (SCM status); +SCM_API SCM scm_getppid (void); +SCM_API SCM scm_getuid (void); +SCM_API SCM scm_getgid (void); +SCM_API SCM scm_geteuid (void); +SCM_API SCM scm_getegid (void); +SCM_API SCM scm_setuid (SCM id); +SCM_API SCM scm_setgid (SCM id); +SCM_API SCM scm_seteuid (SCM id); +SCM_API SCM scm_setegid (SCM id); +SCM_API SCM scm_ttyname (SCM port); +SCM_API SCM scm_execl (SCM filename, SCM args); +SCM_API SCM scm_execlp (SCM filename, SCM args); +SCM_API SCM scm_execle (SCM filename, SCM env, SCM args); +SCM_API SCM scm_fork (void); +SCM_API SCM scm_uname (void); +SCM_API SCM scm_environ (SCM env); +SCM_API SCM scm_tmpnam (void); +SCM_API SCM scm_mkstemp (SCM tmpl); +SCM_API SCM scm_open_pipe (SCM pipestr, SCM modes); +SCM_API SCM scm_close_pipe (SCM port); +SCM_API SCM scm_utime (SCM pathname, SCM actime, SCM modtime); +SCM_API SCM scm_access (SCM path, SCM how); +SCM_API SCM scm_getpid (void); +SCM_API SCM scm_putenv (SCM str); +SCM_API SCM scm_setlocale (SCM category, SCM locale); +SCM_API SCM scm_mknod (SCM path, SCM type, SCM perms, SCM dev); +SCM_API SCM scm_nice (SCM incr); +SCM_API SCM scm_sync (void); +SCM_API SCM scm_crypt (SCM key, SCM salt); +SCM_API SCM scm_chroot (SCM path); +SCM_API SCM scm_getlogin (void); +SCM_API SCM scm_cuserid (void); +SCM_API SCM scm_getpriority (SCM which, SCM who); +SCM_API SCM scm_setpriority (SCM which, SCM who, SCM prio); +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); #endif /* SCM_POSIX_H */ diff --git a/libguile/print.h b/libguile/print.h index 754f307b1..9ac0916bb 100644 --- a/libguile/print.h +++ b/libguile/print.h @@ -50,7 +50,7 @@ #include "libguile/options.h" -extern scm_t_option scm_print_opts[]; +SCM_API scm_t_option scm_print_opts[]; #define SCM_PRINT_CLOSURE (SCM_PACK (scm_print_opts[0].val)) #define SCM_PRINT_SOURCE_P ((int) scm_print_opts[1].val) @@ -96,32 +96,32 @@ typedef struct scm_print_state { SCM ref_vect; } scm_print_state; -extern SCM scm_print_state_vtable; - -extern scm_t_bits scm_tc16_port_with_ps; - -extern SCM scm_print_options (SCM setting); -SCM scm_make_print_state (void); -void scm_free_print_state (SCM print_state); -extern void scm_intprint (long n, int radix, SCM port); -extern void scm_ipruk (char *hdr, SCM ptr, SCM port); -extern void scm_iprlist (char *hdr, SCM exp, int tlr, SCM port, scm_print_state *pstate); -extern void scm_print_symbol_name (const char *str, size_t len, SCM port); -extern void scm_prin1 (SCM exp, SCM port, int writingp); -extern void scm_iprin1 (SCM exp, SCM port, scm_print_state *pstate); -extern SCM scm_write (SCM obj, SCM port); -extern SCM scm_display (SCM obj, SCM port); -extern SCM scm_simple_format (SCM port, SCM message, SCM args); -extern SCM scm_newline (SCM port); -extern SCM scm_write_char (SCM chr, SCM port); -extern SCM scm_printer_apply (SCM proc, SCM exp, SCM port, scm_print_state *); -extern SCM scm_port_with_print_state (SCM port, SCM pstate); -extern SCM scm_get_print_state (SCM port); -extern int scm_valid_oport_value_p (SCM val); -extern void scm_init_print (void); +SCM_API SCM scm_print_state_vtable; + +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_API void scm_intprint (long n, int radix, SCM port); +SCM_API void scm_ipruk (char *hdr, SCM ptr, SCM port); +SCM_API void scm_iprlist (char *hdr, SCM exp, int tlr, SCM port, scm_print_state *pstate); +SCM_API void scm_print_symbol_name (const char *str, size_t len, SCM port); +SCM_API void scm_prin1 (SCM exp, SCM port, int writingp); +SCM_API void scm_iprin1 (SCM exp, SCM port, scm_print_state *pstate); +SCM_API SCM scm_write (SCM obj, SCM port); +SCM_API SCM scm_display (SCM obj, SCM port); +SCM_API SCM scm_simple_format (SCM port, SCM message, SCM args); +SCM_API SCM scm_newline (SCM port); +SCM_API SCM scm_write_char (SCM chr, SCM port); +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); #ifdef GUILE_DEBUG -extern SCM scm_current_pstate (void); +SCM_API SCM scm_current_pstate (void); #endif #endif /* SCM_PRINT_H */ diff --git a/libguile/procprop.h b/libguile/procprop.h index f5db1d4bf..e72bd4473 100644 --- a/libguile/procprop.h +++ b/libguile/procprop.h @@ -50,18 +50,18 @@ -extern SCM scm_sym_name; -extern SCM scm_sym_arity; -extern SCM scm_sym_system_procedure; +SCM_API SCM scm_sym_name; +SCM_API SCM scm_sym_arity; +SCM_API SCM scm_sym_system_procedure; -extern SCM scm_i_procedure_arity (SCM proc); -extern SCM scm_procedure_properties (SCM proc); -extern SCM scm_set_procedure_properties_x (SCM proc, SCM new_val); -extern SCM scm_procedure_property (SCM p, SCM k); -extern SCM scm_set_procedure_property_x (SCM p, SCM k, SCM v); -extern void scm_init_procprop (void); +SCM_API 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); #endif /* SCM_PROCPROP_H */ diff --git a/libguile/procs.h b/libguile/procs.h index 0cb2586dc..90ecb5c72 100644 --- a/libguile/procs.h +++ b/libguile/procs.h @@ -152,35 +152,35 @@ typedef struct #define SCM_PROCEDURE(obj) SCM_CELL_OBJECT_1 (obj) #define SCM_SETTER(obj) SCM_CELL_OBJECT_2 (obj) -extern scm_t_subr_entry *scm_subr_table; -extern long scm_subr_table_size; -extern long scm_subr_table_room; +SCM_API scm_t_subr_entry *scm_subr_table; +SCM_API long scm_subr_table_size; +SCM_API long scm_subr_table_room; -extern void scm_mark_subr_table (void); -extern void scm_free_subr_entry (SCM subr); -extern SCM scm_c_make_subr (const char *name, long type, SCM (*fcn)()); -extern SCM scm_c_make_subr_with_generic (const char *name, long type, - SCM (*fcn)(), SCM *gf); -extern SCM scm_c_define_subr (const char *name, long type, SCM (*fcn)()); -extern SCM scm_c_define_subr_with_generic (const char *name, long type, - SCM (*fcn)(), SCM *gf); -extern SCM scm_makcclo (SCM proc, size_t len); -extern SCM scm_procedure_p (SCM obj); -extern SCM scm_closure_p (SCM obj); -extern SCM scm_thunk_p (SCM obj); -extern int scm_subr_p (SCM obj); -extern SCM scm_procedure_documentation (SCM proc); -extern SCM scm_procedure_with_setter_p (SCM obj); -extern SCM scm_make_procedure_with_setter (SCM procedure, SCM setter); -extern SCM scm_procedure (SCM proc); -extern SCM scm_setter (SCM proc); -extern void scm_init_subr_table (void); -extern void scm_init_procs (void); +SCM_API void scm_mark_subr_table (void); +SCM_API void scm_free_subr_entry (SCM subr); +SCM_API SCM scm_c_make_subr (const char *name, long type, SCM (*fcn)()); +SCM_API SCM scm_c_make_subr_with_generic (const char *name, long type, + SCM (*fcn)(), SCM *gf); +SCM_API SCM scm_c_define_subr (const char *name, long type, SCM (*fcn)()); +SCM_API SCM scm_c_define_subr_with_generic (const char *name, long type, + SCM (*fcn)(), SCM *gf); +SCM_API SCM scm_makcclo (SCM proc, size_t len); +SCM_API SCM scm_procedure_p (SCM obj); +SCM_API SCM scm_closure_p (SCM obj); +SCM_API SCM scm_thunk_p (SCM obj); +SCM_API int scm_subr_p (SCM obj); +SCM_API SCM scm_procedure_documentation (SCM proc); +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); #ifdef GUILE_DEBUG -extern SCM scm_make_cclo (SCM proc, SCM len); +SCM_API SCM scm_make_cclo (SCM proc, SCM len); #endif /*GUILE_DEBUG*/ #endif /* SCM_PROCS_H */ diff --git a/libguile/properties.h b/libguile/properties.h index 2c59c03d0..456cf4551 100644 --- a/libguile/properties.h +++ b/libguile/properties.h @@ -48,12 +48,12 @@ #include "libguile/__scm.h" -SCM scm_primitive_make_property (SCM not_found_proc); -SCM scm_primitive_property_ref (SCM prop, SCM obj); -SCM scm_primitive_property_set_x (SCM prop, SCM obj, SCM val); -SCM scm_primitive_property_del_x (SCM prop, SCM obj); +SCM_API SCM scm_primitive_make_property (SCM not_found_proc); +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); -void scm_init_properties (void); +SCM_API void scm_init_properties (void); #endif /* SCM_PROPERTIES_H */ diff --git a/libguile/ramap.h b/libguile/ramap.h index c9c4e17c0..d52133c40 100644 --- a/libguile/ramap.h +++ b/libguile/ramap.h @@ -50,28 +50,28 @@ -extern int scm_ra_matchp (SCM ra0, SCM ras); -extern int scm_ramapc (int (*cproc) (), SCM data, SCM ra0, SCM lra, - const char *what); -extern int scm_array_fill_int (SCM ra, SCM fill, SCM ignore); -extern SCM scm_array_fill_x (SCM ra, SCM fill); -extern SCM scm_array_copy_x (SCM src, SCM dst); -extern int scm_ra_eqp (SCM ra0, SCM ras); -extern int scm_ra_lessp (SCM ra0, SCM ras); -extern int scm_ra_leqp (SCM ra0, SCM ras); -extern int scm_ra_grp (SCM ra0, SCM ras); -extern int scm_ra_greqp (SCM ra0, SCM ras); -extern int scm_ra_sum (SCM ra0, SCM ras); -extern int scm_ra_difference (SCM ra0, SCM ras); -extern int scm_ra_product (SCM ra0, SCM ras); -extern int scm_ra_divide (SCM ra0, SCM ras); -extern int scm_array_identity (SCM src, SCM dst); -extern SCM scm_array_map_x (SCM ra0, SCM proc, SCM lra); -extern SCM scm_array_for_each (SCM proc, SCM ra0, SCM lra); -extern SCM scm_array_index_map_x (SCM ra, SCM proc); -extern SCM scm_raequal (SCM ra0, SCM ra1); -extern SCM scm_array_equal_p (SCM ra0, SCM ra1); -extern void scm_init_ramap (void); +SCM_API int scm_ra_matchp (SCM ra0, SCM ras); +SCM_API int scm_ramapc (int (*cproc) (), SCM data, SCM ra0, SCM lra, + const char *what); +SCM_API int scm_array_fill_int (SCM ra, SCM fill, SCM ignore); +SCM_API SCM scm_array_fill_x (SCM ra, SCM fill); +SCM_API SCM scm_array_copy_x (SCM src, SCM dst); +SCM_API int scm_ra_eqp (SCM ra0, SCM ras); +SCM_API int scm_ra_lessp (SCM ra0, SCM ras); +SCM_API int scm_ra_leqp (SCM ra0, SCM ras); +SCM_API int scm_ra_grp (SCM ra0, SCM ras); +SCM_API int scm_ra_greqp (SCM ra0, SCM ras); +SCM_API int scm_ra_sum (SCM ra0, SCM ras); +SCM_API int scm_ra_difference (SCM ra0, SCM ras); +SCM_API int scm_ra_product (SCM ra0, SCM ras); +SCM_API int scm_ra_divide (SCM ra0, SCM ras); +SCM_API int scm_array_identity (SCM src, SCM dst); +SCM_API SCM scm_array_map_x (SCM ra0, SCM proc, SCM lra); +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); #endif /* SCM_RAMAP_H */ diff --git a/libguile/random.h b/libguile/random.h index 1de0380ed..410ad1a19 100644 --- a/libguile/random.h +++ b/libguile/random.h @@ -74,7 +74,7 @@ typedef struct scm_t_rng { scm_t_rstate *(*copy_rstate) (scm_t_rstate *state); } scm_t_rng; -extern scm_t_rng scm_the_rng; +SCM_API scm_t_rng scm_the_rng; /* @@ -86,44 +86,44 @@ typedef struct scm_t_i_rstate { unsigned long c; } scm_t_i_rstate; -extern unsigned long scm_i_uniform32 (scm_t_i_rstate *); -extern void scm_i_init_rstate (scm_t_i_rstate *, char *seed, int n); -extern scm_t_i_rstate *scm_i_copy_rstate (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 *, char *seed, int n); +SCM_API scm_t_i_rstate *scm_i_copy_rstate (scm_t_i_rstate *); /* * Random number library functions */ -extern scm_t_rstate *scm_c_make_rstate (char *, int); -extern scm_t_rstate *scm_c_default_rstate (void); +SCM_API scm_t_rstate *scm_c_make_rstate (char *, int); +SCM_API scm_t_rstate *scm_c_default_rstate (void); #define scm_c_uniform32(RSTATE) scm_the_rng.random_bits (RSTATE) -extern double scm_c_uniform01 (scm_t_rstate *); -extern double scm_c_normal01 (scm_t_rstate *); -extern double scm_c_exp1 (scm_t_rstate *); -extern unsigned long scm_c_random (scm_t_rstate *, unsigned long m); -extern SCM scm_c_random_bignum (scm_t_rstate *, SCM m); +SCM_API double scm_c_uniform01 (scm_t_rstate *); +SCM_API double scm_c_normal01 (scm_t_rstate *); +SCM_API double scm_c_exp1 (scm_t_rstate *); +SCM_API unsigned long scm_c_random (scm_t_rstate *, unsigned long m); +SCM_API SCM scm_c_random_bignum (scm_t_rstate *, SCM m); /* * Scheme level interface */ -extern scm_t_bits scm_tc16_rstate; +SCM_API scm_t_bits scm_tc16_rstate; #define SCM_RSTATEP(obj) SCM_TYP16_PREDICATE (scm_tc16_rstate, obj) #define SCM_RSTATE(obj) ((scm_t_rstate *) SCM_CELL_WORD_1 (obj)) -extern unsigned char scm_masktab[256]; - -extern SCM scm_var_random_state; -extern SCM scm_random (SCM n, SCM state); -extern SCM scm_copy_random_state (SCM state); -extern SCM scm_seed_to_random_state (SCM seed); -extern SCM scm_random_uniform (SCM state); -extern SCM scm_random_solid_sphere_x (SCM v, SCM state); -extern SCM scm_random_hollow_sphere_x (SCM v, SCM state); -extern SCM scm_random_normal (SCM state); -extern SCM scm_random_normal_vector_x (SCM v, SCM state); -extern SCM scm_random_exp (SCM state); -extern void scm_init_random (void); +SCM_API unsigned char scm_masktab[256]; + +SCM_API SCM scm_var_random_state; +SCM_API SCM scm_random (SCM n, SCM state); +SCM_API SCM scm_copy_random_state (SCM state); +SCM_API SCM scm_seed_to_random_state (SCM seed); +SCM_API SCM scm_random_uniform (SCM state); +SCM_API SCM scm_random_solid_sphere_x (SCM v, SCM state); +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); #endif /* SCM_RANDOM_H */ diff --git a/libguile/rdelim.h b/libguile/rdelim.h index 6a987cc7d..c336e38ae 100644 --- a/libguile/rdelim.h +++ b/libguile/rdelim.h @@ -48,13 +48,13 @@ #include "libguile/__scm.h" -extern SCM scm_read_delimited_x (SCM delims, SCM buf, SCM gobble, SCM port, - SCM offset, SCM length); -extern SCM scm_read_line (SCM port); -extern SCM scm_write_line (SCM obj, SCM port); -extern SCM scm_init_rdelim_builtins (void); +SCM_API SCM scm_read_delimited_x (SCM delims, SCM buf, SCM gobble, SCM port, + SCM offset, SCM length); +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); -void scm_init_rdelim (void); +SCM_API void scm_init_rdelim (void); #endif /* SCM_RDELIM_H */ diff --git a/libguile/read.h b/libguile/read.h index ccdc4a2c3..f1e0bf51f 100644 --- a/libguile/read.h +++ b/libguile/read.h @@ -69,7 +69,7 @@ #define SCM_WHITE_SPACES SCM_SINGLE_SPACES: case '\t' -extern scm_t_option scm_read_opts[]; +SCM_API scm_t_option scm_read_opts[]; #define SCM_COPY_SOURCE_P scm_read_opts[0].val #define SCM_RECORD_POSITIONS_P scm_read_opts[1].val @@ -79,17 +79,17 @@ extern scm_t_option scm_read_opts[]; -extern SCM scm_read_options (SCM setting); -extern SCM scm_read (SCM port); -extern char * scm_grow_tok_buf (SCM * tok_buf); -extern int scm_flush_ws (SCM port, const char *eoferr); -extern int scm_casei_streq (char * s1, char * s2); -extern SCM scm_lreadr (SCM * tok_buf, SCM port, SCM *copy); -extern size_t scm_read_token (int ic, SCM * tok_buf, SCM port, int weird); -extern SCM scm_lreadparen (SCM * tok_buf, SCM port, char *name, SCM *copy); -extern SCM scm_lreadrecparen (SCM * tok_buf, SCM port, char *name, SCM *copy); -extern SCM scm_read_hash_extend (SCM chr, SCM proc); -extern void scm_init_read (void); +SCM_API SCM scm_read_options (SCM setting); +SCM_API SCM scm_read (SCM port); +SCM_API char * scm_grow_tok_buf (SCM * tok_buf); +SCM_API int scm_flush_ws (SCM port, const char *eoferr); +SCM_API int scm_casei_streq (char * s1, char * s2); +SCM_API SCM scm_lreadr (SCM * tok_buf, SCM port, SCM *copy); +SCM_API size_t scm_read_token (int ic, SCM * tok_buf, SCM port, int weird); +SCM_API SCM scm_lreadparen (SCM * tok_buf, SCM port, char *name, SCM *copy); +SCM_API SCM scm_lreadrecparen (SCM * tok_buf, SCM port, char *name, SCM *copy); +SCM_API SCM scm_read_hash_extend (SCM chr, SCM proc); +SCM_API void scm_init_read (void); #endif /* SCM_READ_H */ diff --git a/libguile/regex-posix.h b/libguile/regex-posix.h index 02b6e02a8..68c7aeb52 100644 --- a/libguile/regex-posix.h +++ b/libguile/regex-posix.h @@ -48,14 +48,14 @@ #include "libguile/__scm.h" -extern scm_t_bits scm_tc16_regex; +SCM_API scm_t_bits scm_tc16_regex; #define SCM_RGX(X) ((regex_t *) SCM_CELL_WORD_1 (X)) #define SCM_RGXP(X) (!SCM_IMP (X) && (SCM_CELL_TYPE (X) == scm_tc16_regex)) -extern SCM scm_make_regexp (SCM pat, SCM flags); -SCM scm_regexp_p (SCM x); -extern SCM scm_regexp_exec (SCM rx, SCM str, SCM start, SCM flags); -extern void scm_init_regex_posix (void); +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); #endif /* SCM_REGEX_POSIX_H */ diff --git a/libguile/root.h b/libguile/root.h index 995ff14d3..ca4a7ef62 100644 --- a/libguile/root.h +++ b/libguile/root.h @@ -72,11 +72,11 @@ #define SCM_NUM_PROTECTS 13 #endif -extern SCM scm_sys_protects[]; +SCM_API SCM scm_sys_protects[]; -extern scm_t_bits scm_tc16_root; +SCM_API scm_t_bits scm_tc16_root; #define SCM_ROOTP(obj) SCM_TYP16_PREDICATE (scm_tc16_root, obj) #define SCM_ROOT_STATE(root) ((scm_root_state *) SCM_CELL_WORD_1 (root)) @@ -134,22 +134,22 @@ typedef struct scm_root_state #define scm_root ((scm_root_state *) SCM_THREAD_LOCAL_DATA) #define scm_set_root(new_root) SCM_SET_THREAD_LOCAL_DATA (new_root) #else /* USE_THREADS */ -extern struct scm_root_state *scm_root; +SCM_API struct scm_root_state *scm_root; #define scm_set_root(new_root) (scm_root = (new_root)) #endif /* USE_THREADS */ -extern SCM scm_make_root (SCM parent); -extern SCM scm_internal_cwdr (scm_t_catch_body body, - void *body_data, - scm_t_catch_handler handler, - void *handler_data, - SCM_STACKITEM *stack_start); -extern SCM scm_call_with_dynamic_root (SCM thunk, SCM handler); -extern SCM scm_dynamic_root (void); -extern SCM scm_apply_with_dynamic_root (SCM proc, SCM a1, SCM args, SCM handler); -extern void scm_init_root (void); +SCM_API SCM scm_make_root (SCM parent); +SCM_API SCM scm_internal_cwdr (scm_t_catch_body body, + void *body_data, + scm_t_catch_handler handler, + void *handler_data, + SCM_STACKITEM *stack_start); +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); #endif /* SCM_ROOT_H */ diff --git a/libguile/rw.h b/libguile/rw.h index d9ad59026..4868ecf75 100644 --- a/libguile/rw.h +++ b/libguile/rw.h @@ -48,13 +48,13 @@ #include "libguile/__scm.h" -extern SCM scm_read_string_x_partial (SCM str, SCM port_or_fdes, SCM start, +SCM_API SCM scm_read_string_x_partial (SCM str, SCM port_or_fdes, SCM start, + SCM end); +SCM_API SCM scm_write_string_partial (SCM str, SCM port_or_fdes, SCM start, SCM end); -extern SCM scm_write_string_partial (SCM str, SCM port_or_fdes, SCM start, - SCM end); -SCM scm_init_rw_builtins (void); -void scm_init_rw (void); +SCM_API SCM scm_init_rw_builtins (void); +SCM_API void scm_init_rw (void); #endif /* SCM_RW_H */ diff --git a/libguile/scmsigs.h b/libguile/scmsigs.h index 5c9893e30..a9391b515 100644 --- a/libguile/scmsigs.h +++ b/libguile/scmsigs.h @@ -50,18 +50,18 @@ -extern SCM scm_sigaction (SCM signum, SCM handler, SCM flags); -extern SCM scm_restore_signals (void); -extern SCM scm_alarm (SCM i); -extern SCM scm_setitimer (SCM which_timer, - SCM interval_seconds, SCM interval_microseconds, - SCM value_seconds, SCM value_microseconds); -extern SCM scm_getitimer (SCM which_timer); -extern SCM scm_pause (void); -extern SCM scm_sleep (SCM i); -extern SCM scm_usleep (SCM i); -extern SCM scm_raise (SCM sig); -extern void scm_init_scmsigs (void); +SCM_API SCM scm_sigaction (SCM signum, SCM handler, SCM flags); +SCM_API SCM scm_restore_signals (void); +SCM_API SCM scm_alarm (SCM i); +SCM_API SCM scm_setitimer (SCM which_timer, + SCM interval_seconds, SCM interval_microseconds, + SCM value_seconds, SCM value_microseconds); +SCM_API SCM scm_getitimer (SCM which_timer); +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); #endif /* SCM_SCMSIGS_H */ diff --git a/libguile/script.h b/libguile/script.h index d71ddca92..7ec1910fc 100644 --- a/libguile/script.h +++ b/libguile/script.h @@ -49,18 +49,18 @@ #include "libguile/__scm.h" -extern char *scm_find_executable (const char *name); -extern char *scm_find_impl_file (char *exec_path, - const char *generic_name, - const char *initname, - const char *sep); -extern char **scm_get_meta_args (int argc, char **argv); -extern int scm_count_argv (char **argv); -extern void scm_shell_usage (int fatal, char *message); -extern SCM scm_compile_shell_switches (int argc, char **argv); -extern void scm_shell (int argc, char **argv); -extern char *scm_usage_name; -extern void scm_init_script (void); +SCM_API char *scm_find_executable (const char *name); +SCM_API char *scm_find_impl_file (char *exec_path, + const char *generic_name, + const char *initname, + const char *sep); +SCM_API char **scm_get_meta_args (int argc, char **argv); +SCM_API int scm_count_argv (char **argv); +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); #endif /* SCM_SCRIPT_H */ diff --git a/libguile/simpos.h b/libguile/simpos.h index 4bae4e520..a5e2e47d6 100644 --- a/libguile/simpos.h +++ b/libguile/simpos.h @@ -50,10 +50,10 @@ -extern SCM scm_system (SCM cmd); -extern SCM scm_getenv (SCM nam); -extern SCM scm_primitive_exit (SCM status); -extern void scm_init_simpos (void); +SCM_API SCM scm_system (SCM cmd); +SCM_API SCM scm_getenv (SCM nam); +SCM_API SCM scm_primitive_exit (SCM status); +SCM_API void scm_init_simpos (void); #endif /* SCM_SIMPOS_H */ diff --git a/libguile/smob.h b/libguile/smob.h index 679966c2f..e804a60dc 100644 --- a/libguile/smob.h +++ b/libguile/smob.h @@ -127,16 +127,16 @@ do { \ #define SCM_SMOB_APPLY_2(x,a1,a2) (SCM_SMOB_DESCRIPTOR (x).apply_2 (x, (a1), (a2))) #define SCM_SMOB_APPLY_3(x,a1,a2,rst) (SCM_SMOB_DESCRIPTOR (x).apply_3 (x, (a1), (a2), (rst))) -extern long scm_numsmob; -extern scm_smob_descriptor scm_smobs[]; +SCM_API long scm_numsmob; +SCM_API scm_smob_descriptor scm_smobs[]; -extern SCM scm_mark0 (SCM ptr); -extern SCM scm_markcdr (SCM ptr); -extern size_t scm_free0 (SCM ptr); -extern size_t scm_smob_free (SCM obj); -extern int scm_smob_print (SCM exp, SCM port, scm_print_state *pstate); +SCM_API SCM scm_mark0 (SCM ptr); +SCM_API SCM scm_markcdr (SCM ptr); +SCM_API size_t scm_free0 (SCM ptr); +SCM_API size_t scm_smob_free (SCM obj); +SCM_API int scm_smob_print (SCM exp, SCM port, scm_print_state *pstate); /* The following set of functions is the standard way to create new * SMOB types. @@ -146,23 +146,23 @@ extern int scm_smob_print (SCM exp, SCM port, scm_print_state *pstate); * values using `scm_set_smob_xxx'. */ -extern scm_t_bits scm_make_smob_type (char *name, size_t size); +SCM_API scm_t_bits scm_make_smob_type (char *name, size_t size); -extern void scm_set_smob_mark (scm_t_bits tc, SCM (*mark) (SCM)); -extern void scm_set_smob_free (scm_t_bits tc, size_t (*free) (SCM)); -extern void scm_set_smob_print (scm_t_bits tc, - int (*print) (SCM, SCM, scm_print_state*)); -extern void scm_set_smob_equalp (scm_t_bits tc, SCM (*equalp) (SCM, SCM)); -extern void scm_set_smob_apply (scm_t_bits tc, - SCM (*apply) (), - unsigned int req, - unsigned int opt, - unsigned int rst); +SCM_API void scm_set_smob_mark (scm_t_bits tc, SCM (*mark) (SCM)); +SCM_API void scm_set_smob_free (scm_t_bits tc, size_t (*free) (SCM)); +SCM_API void scm_set_smob_print (scm_t_bits tc, + int (*print) (SCM, SCM, scm_print_state*)); +SCM_API void scm_set_smob_equalp (scm_t_bits tc, SCM (*equalp) (SCM, SCM)); +SCM_API void scm_set_smob_apply (scm_t_bits tc, + SCM (*apply) (), + unsigned int req, + unsigned int opt, + unsigned int rst); /* Function for creating smobs */ -extern SCM scm_make_smob (scm_t_bits tc); -extern void scm_smob_prehistory (void); +SCM_API SCM scm_make_smob (scm_t_bits tc); +SCM_API void scm_smob_prehistory (void); #endif /* SCM_SMOB_H */ diff --git a/libguile/socket.h b/libguile/socket.h index 3d355796d..c40b925bf 100644 --- a/libguile/socket.h +++ b/libguile/socket.h @@ -50,34 +50,34 @@ -extern SCM scm_htons (SCM in); -extern SCM scm_ntohs (SCM in); -extern SCM scm_htonl (SCM in); -extern SCM scm_ntohl (SCM in); -extern SCM scm_gethost (SCM name); -extern SCM scm_inet_aton (SCM address); -extern SCM scm_inet_ntoa (SCM inetid); -extern SCM scm_inet_netof (SCM address); -extern SCM scm_lnaof (SCM address); -extern SCM scm_inet_makeaddr (SCM net, SCM lna); -extern SCM scm_inet_pton (SCM family, SCM address); -extern SCM scm_inet_ntop (SCM family, SCM address); -extern SCM scm_socket (SCM family, SCM style, SCM proto); -extern SCM scm_socketpair (SCM family, SCM style, SCM proto); -extern SCM scm_getsockopt (SCM sfd, SCM level, SCM optname); -extern SCM scm_setsockopt (SCM sfd, SCM level, SCM optname, SCM value); -extern SCM scm_shutdown (SCM sfd, SCM how); -extern SCM scm_connect (SCM sockfd, SCM fam, SCM address, SCM args); -extern SCM scm_bind (SCM sockfd, SCM fam, SCM address, SCM args); -extern SCM scm_listen (SCM sfd, SCM backlog); -extern SCM scm_accept (SCM sockfd); -extern SCM scm_getsockname (SCM sockfd); -extern SCM scm_getpeername (SCM sockfd); -extern SCM scm_recv (SCM sockfd, SCM buff_or_size, SCM flags); -extern SCM scm_send (SCM sockfd, SCM message, SCM flags); -extern SCM scm_recvfrom (SCM sockfd, SCM buff_or_size, SCM flags, SCM offset, SCM length); -extern SCM scm_sendto (SCM sockfd, SCM message, SCM fam, SCM address, SCM args_and_flags); -extern void scm_init_socket (void); +SCM_API SCM scm_htons (SCM in); +SCM_API SCM scm_ntohs (SCM in); +SCM_API SCM scm_htonl (SCM in); +SCM_API SCM scm_ntohl (SCM in); +SCM_API SCM scm_gethost (SCM name); +SCM_API SCM scm_inet_aton (SCM address); +SCM_API SCM scm_inet_ntoa (SCM inetid); +SCM_API SCM scm_inet_netof (SCM address); +SCM_API SCM scm_lnaof (SCM address); +SCM_API SCM scm_inet_makeaddr (SCM net, SCM lna); +SCM_API SCM scm_inet_pton (SCM family, SCM address); +SCM_API SCM scm_inet_ntop (SCM family, SCM address); +SCM_API SCM scm_socket (SCM family, SCM style, SCM proto); +SCM_API SCM scm_socketpair (SCM family, SCM style, SCM proto); +SCM_API SCM scm_getsockopt (SCM sfd, SCM level, SCM optname); +SCM_API SCM scm_setsockopt (SCM sfd, SCM level, SCM optname, SCM value); +SCM_API SCM scm_shutdown (SCM sfd, SCM how); +SCM_API SCM scm_connect (SCM sockfd, SCM fam, SCM address, SCM args); +SCM_API SCM scm_bind (SCM sockfd, SCM fam, SCM address, SCM args); +SCM_API SCM scm_listen (SCM sfd, SCM backlog); +SCM_API SCM scm_accept (SCM sockfd); +SCM_API SCM scm_getsockname (SCM sockfd); +SCM_API SCM scm_getpeername (SCM sockfd); +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); #endif /* SCM_SOCKET_H */ diff --git a/libguile/sort.h b/libguile/sort.h index ed98a3212..9f16f59bb 100644 --- a/libguile/sort.h +++ b/libguile/sort.h @@ -50,20 +50,20 @@ -extern SCM scm_restricted_vector_sort_x (SCM vec, - SCM less, - SCM startpos, - SCM endpos); -extern SCM scm_sorted_p (SCM ls, SCM less); -extern SCM scm_merge (SCM ls1, SCM ls2, SCM less); -extern SCM scm_merge_x (SCM ls1, SCM ls2, SCM less); -extern SCM scm_sort (SCM ls, SCM less); -extern SCM scm_sort_x (SCM ls, SCM less); -extern SCM scm_stable_sort (SCM ls, SCM less); -extern SCM scm_stable_sort_x (SCM ls, SCM less); -extern SCM scm_sort_list (SCM ls, SCM less); -extern SCM scm_sort_list_x (SCM ls, SCM less); -extern void scm_init_sort (void); +SCM_API SCM scm_restricted_vector_sort_x (SCM vec, + SCM less, + SCM startpos, + SCM endpos); +SCM_API SCM scm_sorted_p (SCM ls, SCM less); +SCM_API SCM scm_merge (SCM ls1, SCM ls2, SCM less); +SCM_API SCM scm_merge_x (SCM ls1, SCM ls2, SCM less); +SCM_API SCM scm_sort (SCM ls, SCM less); +SCM_API SCM scm_sort_x (SCM ls, SCM less); +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); #endif /* SCM_SORT_H */ diff --git a/libguile/srcprop.h b/libguile/srcprop.h index ed0ea217b..795aaf435 100644 --- a/libguile/srcprop.h +++ b/libguile/srcprop.h @@ -77,7 +77,7 @@ do { \ /* {Source properties} */ -extern scm_t_bits scm_tc16_srcprops; +SCM_API scm_t_bits scm_tc16_srcprops; typedef struct scm_t_srcprops { @@ -122,23 +122,23 @@ typedef struct scm_t_srcprops_chunk #define PROCTRACEP(x) (!SCM_FALSEP (scm_procedure_property (x, scm_sym_trace))) -extern SCM scm_sym_filename; -extern SCM scm_sym_copy; -extern SCM scm_sym_line; -extern SCM scm_sym_column; -extern SCM scm_sym_breakpoint; +SCM_API SCM scm_sym_filename; +SCM_API SCM scm_sym_copy; +SCM_API SCM scm_sym_line; +SCM_API SCM scm_sym_column; +SCM_API SCM scm_sym_breakpoint; -extern SCM scm_srcprops_to_plist (SCM obj); -extern SCM scm_make_srcprops (long line, int col, SCM fname, SCM copy, SCM plist); -extern SCM scm_source_property (SCM obj, SCM key); -extern SCM scm_set_source_property_x (SCM obj, SCM key, SCM datum); -extern SCM scm_source_properties (SCM obj); -extern SCM scm_set_source_properties_x (SCM obj, SCM props); -extern void scm_finish_srcprop (void); -extern void scm_init_srcprop (void); +SCM_API SCM scm_srcprops_to_plist (SCM obj); +SCM_API SCM scm_make_srcprops (long line, int col, SCM fname, SCM copy, SCM plist); +SCM_API SCM scm_source_property (SCM obj, SCM key); +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); #endif /* SCM_SRCPROP_H */ diff --git a/libguile/stackchk.h b/libguile/stackchk.h index 8617e1ca2..eb03b106f 100644 --- a/libguile/stackchk.h +++ b/libguile/stackchk.h @@ -83,14 +83,14 @@ # define SCM_CHECK_STACK /**/ #endif /* STACK_CHECKING */ -extern int scm_stack_checking_enabled_p; +SCM_API int scm_stack_checking_enabled_p; -extern void scm_report_stack_overflow (void); -extern long scm_stack_size (SCM_STACKITEM *start); -extern void scm_stack_report (void); -extern void scm_init_stackchk (void); +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); #endif /* SCM_STACKCHK_H */ diff --git a/libguile/stacks.h b/libguile/stacks.h index 747a3daec..f49e34b82 100644 --- a/libguile/stacks.h +++ b/libguile/stacks.h @@ -73,7 +73,7 @@ typedef struct scm_t_stack { scm_t_info_frame tail[1]; } scm_t_stack; -extern SCM scm_t_stackype; +SCM_API SCM scm_t_stackype; #define SCM_STACKP(obj) (SCM_STRUCTP (obj) && SCM_EQ_P (SCM_STRUCT_VTABLE (obj), scm_t_stackype)) #define SCM_STACK_LENGTH(stack) (SCM_STACK (stack) -> length) @@ -115,26 +115,26 @@ extern SCM scm_t_stackype; -SCM scm_stack_p (SCM obj); -SCM scm_make_stack (SCM obj, SCM args); -SCM scm_stack_id (SCM stack); -SCM scm_stack_ref (SCM stack, SCM i); -SCM scm_stack_length (SCM stack); - -SCM scm_frame_p (SCM obj); -SCM scm_last_stack_frame (SCM obj); -SCM scm_frame_number (SCM frame); -SCM scm_frame_source (SCM frame); -SCM scm_frame_procedure (SCM frame); -SCM scm_frame_arguments (SCM frame); -SCM scm_frame_previous (SCM frame); -SCM scm_frame_next (SCM frame); -SCM scm_frame_real_p (SCM frame); -SCM scm_frame_procedure_p (SCM frame); -SCM scm_frame_evaluating_args_p (SCM frame); -SCM scm_frame_overflow_p (SCM frame); - -void scm_init_stacks (void); +SCM_API SCM scm_stack_p (SCM obj); +SCM_API SCM scm_make_stack (SCM obj, SCM args); +SCM_API SCM scm_stack_id (SCM stack); +SCM_API SCM scm_stack_ref (SCM stack, SCM i); +SCM_API SCM scm_stack_length (SCM stack); + +SCM_API SCM scm_frame_p (SCM obj); +SCM_API SCM scm_last_stack_frame (SCM obj); +SCM_API SCM scm_frame_number (SCM frame); +SCM_API SCM scm_frame_source (SCM frame); +SCM_API SCM scm_frame_procedure (SCM frame); +SCM_API SCM scm_frame_arguments (SCM frame); +SCM_API SCM scm_frame_previous (SCM frame); +SCM_API SCM scm_frame_next (SCM frame); +SCM_API SCM scm_frame_real_p (SCM frame); +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); #endif /* SCM_STACKS_H */ diff --git a/libguile/stime.h b/libguile/stime.h index 788e85422..db40e74c6 100644 --- a/libguile/stime.h +++ b/libguile/stime.h @@ -49,19 +49,19 @@ #include "libguile/__scm.h" -long scm_c_get_internal_run_time (void); -extern SCM scm_get_internal_real_time (void); -extern SCM scm_get_internal_run_time (void); -extern SCM scm_current_time (void); -extern SCM scm_gettimeofday (void); -extern SCM scm_localtime (SCM time, SCM zone); -extern SCM scm_gmtime (SCM time); -extern SCM scm_mktime (SCM sbd_time, SCM zone); -extern SCM scm_tzset (void); -extern SCM scm_times (void); -extern SCM scm_strftime (SCM format, SCM stime); -extern SCM scm_strptime (SCM format, SCM string); -extern void scm_init_stime (void); +SCM_API long scm_c_get_internal_run_time (void); +SCM_API SCM scm_get_internal_real_time (void); +SCM_API SCM scm_get_internal_run_time (void); +SCM_API SCM scm_current_time (void); +SCM_API SCM scm_gettimeofday (void); +SCM_API SCM scm_localtime (SCM time, SCM zone); +SCM_API SCM scm_gmtime (SCM time); +SCM_API SCM scm_mktime (SCM sbd_time, SCM zone); +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); #endif /* SCM_STIME_H */ diff --git a/libguile/strings.h b/libguile/strings.h index 2c943d17c..9104a42e4 100644 --- a/libguile/strings.h +++ b/libguile/strings.h @@ -60,23 +60,23 @@ -extern SCM scm_string_p (SCM x); -extern SCM scm_string (SCM chrs); -extern SCM scm_makfromstrs (int argc, char **argv); -extern SCM scm_take_str (char *s, size_t len); -extern SCM scm_take0str (char *s); -extern SCM scm_mem2string (const char *src, size_t len); -extern SCM scm_str2string (const char *src); -extern SCM scm_makfrom0str (const char *src); -extern SCM scm_makfrom0str_opt (const char *src); -extern SCM scm_allocate_string (size_t len); -extern SCM scm_make_string (SCM k, SCM chr); -extern SCM scm_string_length (SCM str); -extern SCM scm_string_ref (SCM str, SCM k); -extern SCM scm_string_set_x (SCM str, SCM k, SCM chr); -extern SCM scm_substring (SCM str, SCM start, SCM end); -extern SCM scm_string_append (SCM args); -extern void scm_init_strings (void); +SCM_API SCM scm_string_p (SCM x); +SCM_API SCM scm_string (SCM chrs); +SCM_API SCM scm_makfromstrs (int argc, char **argv); +SCM_API SCM scm_take_str (char *s, size_t len); +SCM_API SCM scm_take0str (char *s); +SCM_API SCM scm_mem2string (const char *src, size_t len); +SCM_API SCM scm_str2string (const char *src); +SCM_API SCM scm_makfrom0str (const char *src); +SCM_API SCM scm_makfrom0str_opt (const char *src); +SCM_API SCM scm_allocate_string (size_t len); +SCM_API SCM scm_make_string (SCM k, SCM chr); +SCM_API SCM scm_string_length (SCM str); +SCM_API SCM scm_string_ref (SCM str, SCM k); +SCM_API SCM scm_string_set_x (SCM str, SCM k, SCM chr); +SCM_API SCM scm_substring (SCM str, SCM start, SCM end); +SCM_API SCM scm_string_append (SCM args); +SCM_API void scm_init_strings (void); diff --git a/libguile/strop.h b/libguile/strop.h index 0f1ceb1a8..863428db6 100644 --- a/libguile/strop.h +++ b/libguile/strop.h @@ -50,24 +50,24 @@ -extern SCM scm_string_index (SCM str, SCM chr, SCM frm, SCM to); -extern SCM scm_string_rindex (SCM str, SCM chr, SCM frm, SCM to); -extern SCM scm_substring_move_x (SCM str1, SCM start1, SCM end1, - SCM str2, SCM start2); -extern SCM scm_substring_fill_x (SCM str, SCM start, SCM end, SCM fill); -extern SCM scm_string_null_p (SCM str); -extern SCM scm_string_to_list (SCM str); -extern SCM scm_string_copy (SCM str); -extern SCM scm_string_fill_x (SCM str, SCM chr); -extern void scm_init_strop (void); -extern SCM scm_string_upcase_x (SCM v); -extern SCM scm_string_upcase (SCM v); -extern SCM scm_string_downcase_x (SCM v); -extern SCM scm_string_downcase (SCM v); -extern SCM scm_string_capitalize_x (SCM v); -extern SCM scm_string_capitalize (SCM v); -extern SCM scm_string_split (SCM str, SCM chr); -extern SCM scm_string_ci_to_symbol (SCM v); +SCM_API SCM scm_string_index (SCM str, SCM chr, SCM frm, SCM to); +SCM_API SCM scm_string_rindex (SCM str, SCM chr, SCM frm, SCM to); +SCM_API SCM scm_substring_move_x (SCM str1, SCM start1, SCM end1, + SCM str2, SCM start2); +SCM_API SCM scm_substring_fill_x (SCM str, SCM start, SCM end, SCM fill); +SCM_API SCM scm_string_null_p (SCM str); +SCM_API SCM scm_string_to_list (SCM str); +SCM_API SCM scm_string_copy (SCM str); +SCM_API SCM scm_string_fill_x (SCM str, SCM chr); +SCM_API void scm_init_strop (void); +SCM_API SCM scm_string_upcase_x (SCM v); +SCM_API SCM scm_string_upcase (SCM v); +SCM_API SCM scm_string_downcase_x (SCM v); +SCM_API SCM scm_string_downcase (SCM v); +SCM_API SCM scm_string_capitalize_x (SCM v); +SCM_API SCM scm_string_capitalize (SCM v); +SCM_API SCM scm_string_split (SCM str, SCM chr); +SCM_API SCM scm_string_ci_to_symbol (SCM v); #define scm_substring_move_left_x scm_substring_move_x #define scm_substring_move_right_x scm_substring_move_x diff --git a/libguile/strorder.h b/libguile/strorder.h index 3660c61a3..2583e81d0 100644 --- a/libguile/strorder.h +++ b/libguile/strorder.h @@ -50,17 +50,17 @@ -extern SCM scm_string_equal_p (SCM s1, SCM s2); -extern SCM scm_string_ci_equal_p (SCM s1, SCM s2); -extern SCM scm_string_less_p (SCM s1, SCM s2); -extern SCM scm_string_leq_p (SCM s1, SCM s2); -extern SCM scm_string_gr_p (SCM s1, SCM s2); -extern SCM scm_string_geq_p (SCM s1, SCM s2); -extern SCM scm_string_ci_less_p (SCM s1, SCM s2); -extern SCM scm_string_ci_leq_p (SCM s1, SCM s2); -extern SCM scm_string_ci_gr_p (SCM s1, SCM s2); -extern SCM scm_string_ci_geq_p (SCM s1, SCM s2); -extern void scm_init_strorder (void); +SCM_API SCM scm_string_equal_p (SCM s1, SCM s2); +SCM_API SCM scm_string_ci_equal_p (SCM s1, SCM s2); +SCM_API SCM scm_string_less_p (SCM s1, SCM s2); +SCM_API SCM scm_string_leq_p (SCM s1, SCM s2); +SCM_API SCM scm_string_gr_p (SCM s1, SCM s2); +SCM_API SCM scm_string_geq_p (SCM s1, SCM s2); +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); #endif /* SCM_STRORDER_H */ diff --git a/libguile/strports.h b/libguile/strports.h index 777281118..22e9168a2 100644 --- a/libguile/strports.h +++ b/libguile/strports.h @@ -62,22 +62,22 @@ -extern scm_t_bits scm_tc16_strport; +SCM_API scm_t_bits scm_tc16_strport; -extern SCM scm_mkstrport (SCM pos, SCM str, long modes, const char * caller); -extern SCM scm_strport_to_string (SCM port); -extern SCM scm_object_to_string (SCM obj, SCM printer); -extern SCM scm_call_with_output_string (SCM proc); -extern SCM scm_call_with_input_string (SCM str, SCM proc); -extern SCM scm_open_input_string (SCM str); -extern SCM scm_open_output_string (void); -extern SCM scm_get_output_string (SCM port); -extern SCM scm_c_read_string (const char *expr); -extern SCM scm_c_eval_string (const char *expr); -extern SCM scm_eval_string (SCM string); -extern void scm_init_strports (void); +SCM_API SCM scm_mkstrport (SCM pos, SCM str, long modes, const char * caller); +SCM_API SCM scm_strport_to_string (SCM port); +SCM_API SCM scm_object_to_string (SCM obj, SCM printer); +SCM_API SCM scm_call_with_output_string (SCM proc); +SCM_API SCM scm_call_with_input_string (SCM str, SCM proc); +SCM_API SCM scm_open_input_string (SCM str); +SCM_API SCM scm_open_output_string (void); +SCM_API SCM scm_get_output_string (SCM port); +SCM_API SCM scm_c_read_string (const char *expr); +SCM_API SCM scm_c_eval_string (const char *expr); +SCM_API SCM scm_eval_string (SCM string); +SCM_API void scm_init_strports (void); #endif /* SCM_STRPORTS_H */ diff --git a/libguile/struct.h b/libguile/struct.h index a36adf0a4..20687e38a 100644 --- a/libguile/struct.h +++ b/libguile/struct.h @@ -99,35 +99,35 @@ typedef size_t (*scm_t_struct_free) (scm_t_bits * vtable, scm_t_bits * data); #define SCM_SET_STRUCT_TABLE_NAME(X, NAME) SCM_SETCAR (X, NAME) #define SCM_STRUCT_TABLE_CLASS(X) SCM_CDR (X) #define SCM_SET_STRUCT_TABLE_CLASS(X, CLASS) SCM_SETCDR (X, CLASS) -extern SCM scm_struct_table; +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) -extern SCM scm_structs_to_free; +SCM_API SCM scm_structs_to_free; -extern scm_t_bits * scm_alloc_struct (int n_words, int n_extra, char * who); -extern size_t scm_struct_free_0 (scm_t_bits * vtable, scm_t_bits * data); -extern size_t scm_struct_free_light (scm_t_bits * vtable, scm_t_bits * data); -extern size_t scm_struct_free_standard (scm_t_bits * vtable, scm_t_bits * data); -extern size_t scm_struct_free_entity (scm_t_bits * vtable, scm_t_bits * data); -extern SCM scm_make_struct_layout (SCM fields); -extern SCM scm_struct_p (SCM x); -extern SCM scm_struct_vtable_p (SCM x); -extern SCM scm_make_struct (SCM vtable, SCM tail_array_size, SCM init); -extern SCM scm_make_vtable_vtable (SCM extra_fields, SCM tail_array_size, SCM init); -extern SCM scm_struct_ref (SCM handle, SCM pos); -extern SCM scm_struct_set_x (SCM handle, SCM pos, SCM val); -extern SCM scm_struct_vtable (SCM handle); -extern SCM scm_struct_vtable_tag (SCM handle); -extern unsigned long scm_struct_ihashq (SCM obj, unsigned long n); -extern SCM scm_struct_create_handle (SCM obj); -extern SCM scm_struct_vtable_name (SCM vtable); -extern SCM scm_set_struct_vtable_name_x (SCM vtable, SCM name); -extern void scm_print_struct (SCM exp, SCM port, scm_print_state *); -extern void scm_struct_prehistory (void); -extern void scm_init_struct (void); +SCM_API scm_t_bits * scm_alloc_struct (int n_words, int n_extra, char * who); +SCM_API size_t scm_struct_free_0 (scm_t_bits * vtable, scm_t_bits * data); +SCM_API size_t scm_struct_free_light (scm_t_bits * vtable, scm_t_bits * data); +SCM_API size_t scm_struct_free_standard (scm_t_bits * vtable, scm_t_bits * data); +SCM_API size_t scm_struct_free_entity (scm_t_bits * vtable, scm_t_bits * data); +SCM_API SCM scm_make_struct_layout (SCM fields); +SCM_API SCM scm_struct_p (SCM x); +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_vtable (SCM extra_fields, SCM tail_array_size, SCM init); +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_struct_vtable_tag (SCM handle); +SCM_API unsigned long scm_struct_ihashq (SCM obj, unsigned long n); +SCM_API SCM scm_struct_create_handle (SCM obj); +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); #endif /* SCM_STRUCT_H */ diff --git a/libguile/symbols.h b/libguile/symbols.h index e68ee1f9f..3a0269ff2 100644 --- a/libguile/symbols.h +++ b/libguile/symbols.h @@ -71,25 +71,25 @@ #ifdef GUILE_DEBUG -extern SCM scm_sys_symbols (void); +SCM_API SCM scm_sys_symbols (void); #endif -extern SCM scm_mem2symbol (const char*, size_t); -extern SCM scm_str2symbol (const char*); +SCM_API SCM scm_mem2symbol (const char*, size_t); +SCM_API SCM scm_str2symbol (const char*); -extern SCM scm_symbol_p (SCM x); -extern SCM scm_symbol_to_string (SCM s); -extern SCM scm_string_to_symbol (SCM s); +SCM_API SCM scm_symbol_p (SCM x); +SCM_API SCM scm_symbol_to_string (SCM s); +SCM_API SCM scm_string_to_symbol (SCM s); -extern SCM scm_symbol_fref (SCM s); -extern SCM scm_symbol_pref (SCM s); -extern SCM scm_symbol_fset_x (SCM s, SCM val); -extern SCM scm_symbol_pset_x (SCM s, SCM val); +SCM_API SCM scm_symbol_fref (SCM s); +SCM_API SCM scm_symbol_pref (SCM s); +SCM_API SCM scm_symbol_fset_x (SCM s, SCM val); +SCM_API SCM scm_symbol_pset_x (SCM s, SCM val); -extern SCM scm_symbol_hash (SCM s); -extern SCM scm_gensym (SCM prefix); +SCM_API SCM scm_symbol_hash (SCM s); +SCM_API SCM scm_gensym (SCM prefix); -extern void scm_symbols_prehistory (void); -extern void scm_init_symbols (void); +SCM_API void scm_symbols_prehistory (void); +SCM_API void scm_init_symbols (void); #endif /* SCM_SYMBOLS_H */ diff --git a/libguile/tags.h b/libguile/tags.h index e8e160dad..160987bf1 100644 --- a/libguile/tags.h +++ b/libguile/tags.h @@ -417,7 +417,7 @@ enum scm_tags #define SCM_MAKISYM(n) SCM_PACK (((n) << 9) + 0x74L) #define SCM_MAKIFLAG(n) SCM_PACK (((n) << 9) + 0x174L) -extern char *scm_isymnames[]; /* defined in print.c */ +SCM_API char *scm_isymnames[]; /* defined in print.c */ /* This table must agree with the declarations * in repl.c: {Names of immediate symbols}. diff --git a/libguile/threads.h b/libguile/threads.h index 223732a44..cbd60f075 100644 --- a/libguile/threads.h +++ b/libguile/threads.h @@ -53,9 +53,9 @@ /* smob tags for the thread datatypes */ -extern scm_t_bits scm_tc16_thread; -extern scm_t_bits scm_tc16_mutex; -extern scm_t_bits scm_tc16_condvar; +SCM_API scm_t_bits scm_tc16_thread; +SCM_API scm_t_bits scm_tc16_mutex; +SCM_API scm_t_bits scm_tc16_condvar; #define SCM_THREADP(x) SCM_TYP16_PREDICATE (scm_tc16_thread, x) #define SCM_THREAD_DATA(x) ((void *) SCM_CELL_WORD_1 (x)) @@ -67,38 +67,38 @@ extern scm_t_bits scm_tc16_condvar; #define SCM_CONDVAR_DATA(x) ((void *) SCM_CELL_WORD_1 (x)) /* Initialize implementation specific details of the threads support */ -void scm_threads_init (SCM_STACKITEM *); -void scm_threads_mark_stacks (void); -void scm_init_threads (SCM_STACKITEM *); +SCM_API void scm_threads_init (SCM_STACKITEM *); +SCM_API void scm_threads_mark_stacks (void); +SCM_API void scm_init_threads (SCM_STACKITEM *); /* */ -SCM scm_threads_make_mutex (void); -SCM scm_threads_lock_mutex (SCM); -SCM scm_threads_unlock_mutex (SCM); -SCM scm_threads_monitor (void); +SCM_API SCM scm_threads_make_mutex (void); +SCM_API SCM scm_threads_lock_mutex (SCM); +SCM_API SCM scm_threads_unlock_mutex (SCM); +SCM_API SCM scm_threads_monitor (void); -SCM scm_spawn_thread (scm_t_catch_body body, void *body_data, - scm_t_catch_handler handler, void *handler_data); +SCM_API SCM scm_spawn_thread (scm_t_catch_body body, void *body_data, + scm_t_catch_handler handler, void *handler_data); /* These are versions of the ordinary sleep and usleep functions, that play nicely with the thread system. */ -unsigned long scm_thread_sleep (unsigned long); -unsigned long scm_thread_usleep (unsigned long); +SCM_API unsigned long scm_thread_sleep (unsigned long); +SCM_API unsigned long scm_thread_usleep (unsigned long); /* The C versions of the Scheme-visible thread functions. */ #ifdef USE_COOP_THREADS -extern SCM scm_single_thread_p (void); +SCM_API SCM scm_single_thread_p (void); #endif -extern SCM scm_yield (void); -extern SCM scm_call_with_new_thread (SCM argl); -extern SCM scm_join_thread (SCM t); -extern SCM scm_make_mutex (void); -extern SCM scm_lock_mutex (SCM m); -extern SCM scm_unlock_mutex (SCM m); -extern SCM scm_make_condition_variable (void); -extern SCM scm_wait_condition_variable (SCM cond, SCM mutex); -extern SCM scm_signal_condition_variable (SCM cond); +SCM_API SCM scm_yield (void); +SCM_API SCM scm_call_with_new_thread (SCM argl); +SCM_API SCM scm_join_thread (SCM t); +SCM_API SCM scm_make_mutex (void); +SCM_API SCM scm_lock_mutex (SCM m); +SCM_API SCM scm_unlock_mutex (SCM m); +SCM_API SCM scm_make_condition_variable (void); +SCM_API SCM scm_wait_condition_variable (SCM cond, SCM mutex); +SCM_API SCM scm_signal_condition_variable (SCM cond); #ifdef USE_COOP_THREADS #include "libguile/coop-defs.h" diff --git a/libguile/throw.h b/libguile/throw.h index 6b6b3d79c..f85dc92b1 100644 --- a/libguile/throw.h +++ b/libguile/throw.h @@ -54,23 +54,23 @@ typedef SCM (*scm_t_catch_body) (void *data); typedef SCM (*scm_t_catch_handler) (void *data, SCM tag, SCM throw_args); -extern SCM scm_internal_catch (SCM tag, - scm_t_catch_body body, - void *body_data, - scm_t_catch_handler handler, - void *handler_data); - -extern SCM scm_internal_lazy_catch (SCM tag, - scm_t_catch_body body, - void *body_data, - scm_t_catch_handler handler, - void *handler_data); - -extern SCM scm_internal_stack_catch (SCM tag, - scm_t_catch_body body, - void *body_data, - scm_t_catch_handler handler, - void *handler_data); +SCM_API SCM scm_internal_catch (SCM tag, + scm_t_catch_body body, + void *body_data, + scm_t_catch_handler handler, + void *handler_data); + +SCM_API SCM scm_internal_lazy_catch (SCM tag, + scm_t_catch_body body, + void *body_data, + scm_t_catch_handler handler, + void *handler_data); + +SCM_API SCM scm_internal_stack_catch (SCM tag, + scm_t_catch_body body, + void *body_data, + scm_t_catch_handler handler, + void *handler_data); /* The first argument to scm_body_thunk should be a pointer to one of these. See the implementation of catch in throw.c. */ @@ -86,22 +86,22 @@ struct scm_body_thunk_data SCM body_proc; }; -extern SCM scm_body_thunk (void *); +SCM_API SCM scm_body_thunk (void *); -extern SCM scm_handle_by_proc (void *, SCM, SCM); -extern SCM scm_handle_by_proc_catching_all (void *, SCM, SCM); -extern SCM scm_handle_by_message (void *, SCM, SCM); -extern SCM scm_handle_by_message_noexit (void *, SCM, SCM); -extern SCM scm_handle_by_throw (void *, SCM, SCM); -extern int scm_exit_status (SCM args); +SCM_API SCM scm_handle_by_proc (void *, SCM, SCM); +SCM_API SCM scm_handle_by_proc_catching_all (void *, SCM, SCM); +SCM_API SCM scm_handle_by_message (void *, SCM, SCM); +SCM_API SCM scm_handle_by_message_noexit (void *, SCM, SCM); +SCM_API SCM scm_handle_by_throw (void *, SCM, SCM); +SCM_API int scm_exit_status (SCM args); -extern SCM scm_catch (SCM tag, SCM thunk, SCM handler); -extern SCM scm_lazy_catch (SCM tag, SCM thunk, SCM handler); -extern SCM scm_ithrow (SCM key, SCM args, int noreturn); +SCM_API SCM scm_catch (SCM tag, SCM thunk, SCM handler); +SCM_API SCM scm_lazy_catch (SCM tag, SCM thunk, SCM handler); +SCM_API SCM scm_ithrow (SCM key, SCM args, int noreturn); -extern SCM scm_throw (SCM key, SCM args); -extern void scm_init_throw (void); +SCM_API SCM scm_throw (SCM key, SCM args); +SCM_API void scm_init_throw (void); #endif /* SCM_THROW_H */ diff --git a/libguile/unif.h b/libguile/unif.h index 24da36e72..b5d393a12 100644 --- a/libguile/unif.h +++ b/libguile/unif.h @@ -73,7 +73,7 @@ typedef struct scm_t_array_dim long inc; } scm_t_array_dim; -extern scm_t_bits scm_tc16_array; +SCM_API scm_t_bits scm_tc16_array; #define SCM_ARRAY_FLAG_CONTIGUOUS (1 << 16) @@ -107,42 +107,42 @@ extern scm_t_bits scm_tc16_array; -extern size_t scm_uniform_element_size (SCM obj); -extern SCM scm_make_uve (long k, SCM prot); -extern SCM scm_uniform_vector_length (SCM v); -extern SCM scm_array_p (SCM v, SCM prot); -extern SCM scm_array_rank (SCM ra); -extern SCM scm_array_dimensions (SCM ra); -extern SCM scm_shared_array_root (SCM ra); -extern SCM scm_shared_array_offset (SCM ra); -extern SCM scm_shared_array_increments (SCM ra); -extern long scm_aind (SCM ra, SCM args, const char *what); -extern SCM scm_make_ra (int ndim); -extern SCM scm_shap2ra (SCM args, const char *what); -extern SCM scm_dimensions_to_uniform_array (SCM dims, SCM prot, SCM fill); -extern void scm_ra_set_contp (SCM ra); -extern SCM scm_make_shared_array (SCM oldra, SCM mapfunc, SCM dims); -extern SCM scm_transpose_array (SCM ra, SCM args); -extern SCM scm_enclose_array (SCM ra, SCM axes); -extern SCM scm_array_in_bounds_p (SCM v, SCM args); -extern SCM scm_uniform_vector_ref (SCM v, SCM args); -extern SCM scm_cvref (SCM v, unsigned long pos, SCM last); -extern SCM scm_array_set_x (SCM v, SCM obj, SCM args); -extern SCM scm_array_contents (SCM ra, SCM strict); -extern SCM scm_ra2contig (SCM ra, int copy); -extern SCM scm_uniform_array_read_x (SCM ra, SCM port_or_fd, SCM start, SCM end); -extern SCM scm_uniform_array_write (SCM v, SCM port_or_fd, SCM start, SCM end); -extern SCM scm_bit_count (SCM item, SCM seq); -extern SCM scm_bit_position (SCM item, SCM v, SCM k); -extern SCM scm_bit_set_star_x (SCM v, SCM kv, SCM obj); -extern SCM scm_bit_count_star (SCM v, SCM kv, SCM obj); -extern SCM scm_bit_invert_x (SCM v); -extern SCM scm_istr2bve (char *str, long len); -extern SCM scm_t_arrayo_list (SCM v); -extern SCM scm_list_to_uniform_array (SCM ndim, SCM prot, SCM lst); -extern int scm_raprin1 (SCM exp, SCM port, scm_print_state *pstate); -extern SCM scm_array_prototype (SCM ra); -extern void scm_init_unif (void); +SCM_API size_t scm_uniform_element_size (SCM obj); +SCM_API SCM scm_make_uve (long k, SCM prot); +SCM_API SCM scm_uniform_vector_length (SCM v); +SCM_API SCM scm_array_p (SCM v, SCM prot); +SCM_API SCM scm_array_rank (SCM ra); +SCM_API SCM scm_array_dimensions (SCM ra); +SCM_API SCM scm_shared_array_root (SCM ra); +SCM_API SCM scm_shared_array_offset (SCM ra); +SCM_API SCM scm_shared_array_increments (SCM ra); +SCM_API long scm_aind (SCM ra, SCM args, const char *what); +SCM_API SCM scm_make_ra (int ndim); +SCM_API SCM scm_shap2ra (SCM args, const char *what); +SCM_API SCM scm_dimensions_to_uniform_array (SCM dims, SCM prot, SCM fill); +SCM_API void scm_ra_set_contp (SCM ra); +SCM_API SCM scm_make_shared_array (SCM oldra, SCM mapfunc, SCM dims); +SCM_API SCM scm_transpose_array (SCM ra, SCM args); +SCM_API SCM scm_enclose_array (SCM ra, SCM axes); +SCM_API SCM scm_array_in_bounds_p (SCM v, SCM args); +SCM_API SCM scm_uniform_vector_ref (SCM v, SCM args); +SCM_API SCM scm_cvref (SCM v, unsigned long pos, SCM last); +SCM_API SCM scm_array_set_x (SCM v, SCM obj, SCM args); +SCM_API SCM scm_array_contents (SCM ra, SCM strict); +SCM_API SCM scm_ra2contig (SCM ra, int copy); +SCM_API SCM scm_uniform_array_read_x (SCM ra, SCM port_or_fd, SCM start, SCM end); +SCM_API SCM scm_uniform_array_write (SCM v, SCM port_or_fd, SCM start, SCM end); +SCM_API SCM scm_bit_count (SCM item, SCM seq); +SCM_API SCM scm_bit_position (SCM item, SCM v, SCM k); +SCM_API SCM scm_bit_set_star_x (SCM v, SCM kv, SCM obj); +SCM_API SCM scm_bit_count_star (SCM v, SCM kv, SCM obj); +SCM_API SCM scm_bit_invert_x (SCM v); +SCM_API SCM scm_istr2bve (char *str, long len); +SCM_API SCM scm_t_arrayo_list (SCM v); +SCM_API SCM scm_list_to_uniform_array (SCM ndim, SCM prot, SCM lst); +SCM_API int scm_raprin1 (SCM exp, SCM port, scm_print_state *pstate); +SCM_API SCM scm_array_prototype (SCM ra); +SCM_API void scm_init_unif (void); #endif /* SCM_UNIF_H */ diff --git a/libguile/values.h b/libguile/values.h index 2c2fce0ef..acc7e90a3 100644 --- a/libguile/values.h +++ b/libguile/values.h @@ -48,13 +48,13 @@ #include "libguile/__scm.h" -extern SCM scm_values_vtable; +SCM_API SCM scm_values_vtable; #define SCM_VALUESP(x) (SCM_STRUCTP (x)\ && SCM_EQ_P (scm_struct_vtable (x), scm_values_vtable)) -extern SCM scm_values (SCM args); -extern void scm_init_values (void); +SCM_API SCM scm_values (SCM args); +SCM_API void scm_init_values (void); #endif /* SCM_VALUES_H */ diff --git a/libguile/variable.h b/libguile/variable.h index 6a6a8a04d..5be7d067d 100644 --- a/libguile/variable.h +++ b/libguile/variable.h @@ -60,16 +60,16 @@ -extern SCM scm_make_variable (SCM init); -extern SCM scm_make_undefined_variable (void); -extern SCM scm_variable_p (SCM obj); -extern SCM scm_variable_ref (SCM var); -extern SCM scm_variable_set_x (SCM var, SCM val); -extern SCM scm_variable_bound_p (SCM var); +SCM_API SCM scm_make_variable (SCM init); +SCM_API SCM scm_make_undefined_variable (void); +SCM_API SCM scm_variable_p (SCM obj); +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); -extern void scm_i_variable_print (SCM var, SCM port, scm_print_state *pstate); +SCM_API void scm_i_variable_print (SCM var, SCM port, scm_print_state *pstate); -extern void scm_init_variable (void); +SCM_API void scm_init_variable (void); #endif /* SCM_VARIABLE_H */ diff --git a/libguile/vectors.h b/libguile/vectors.h index 0d98f9c5c..746a7686a 100644 --- a/libguile/vectors.h +++ b/libguile/vectors.h @@ -73,22 +73,22 @@ -extern SCM scm_c_make_vector (unsigned long int k, SCM fill); +SCM_API SCM scm_c_make_vector (unsigned long int k, SCM fill); -extern SCM scm_vector_p (SCM x); -extern SCM scm_vector_length (SCM v); -extern SCM scm_vector (SCM l); -extern SCM scm_vector_ref (SCM v, SCM k); -extern SCM scm_vector_set_x (SCM v, SCM k, SCM obj); -extern SCM scm_make_vector (SCM k, SCM fill); -extern SCM scm_vector_to_list (SCM v); -extern SCM scm_vector_fill_x (SCM v, SCM fill_x); -extern SCM scm_vector_equal_p (SCM x, SCM y); -extern SCM scm_vector_move_left_x (SCM vec1, SCM start1, SCM end1, - SCM vec2, SCM start2); -extern SCM scm_vector_move_right_x (SCM vec1, SCM start1, SCM end1, - SCM vec2, SCM start2); -extern void scm_init_vectors (void); +SCM_API SCM scm_vector_p (SCM x); +SCM_API SCM scm_vector_length (SCM v); +SCM_API SCM scm_vector (SCM l); +SCM_API SCM scm_vector_ref (SCM v, SCM k); +SCM_API SCM scm_vector_set_x (SCM v, SCM k, SCM obj); +SCM_API SCM scm_make_vector (SCM k, SCM fill); +SCM_API SCM scm_vector_to_list (SCM v); +SCM_API SCM scm_vector_fill_x (SCM v, SCM fill_x); +SCM_API SCM scm_vector_equal_p (SCM x, SCM y); +SCM_API SCM scm_vector_move_left_x (SCM vec1, SCM start1, SCM end1, + SCM vec2, SCM start2); +SCM_API SCM scm_vector_move_right_x (SCM vec1, SCM start1, SCM end1, + SCM vec2, SCM start2); +SCM_API void scm_init_vectors (void); #endif /* SCM_VECTORS_H */ diff --git a/libguile/vports.h b/libguile/vports.h index 90c628fb5..8dd2b67c6 100644 --- a/libguile/vports.h +++ b/libguile/vports.h @@ -50,8 +50,8 @@ -extern SCM scm_make_soft_port (SCM pv, SCM modes); -extern void scm_init_vports (void); +SCM_API SCM scm_make_soft_port (SCM pv, SCM modes); +SCM_API void scm_init_vports (void); #endif /* SCM_VPORTS_H */ diff --git a/libguile/weaks.h b/libguile/weaks.h index bfafba674..690ba6c41 100644 --- a/libguile/weaks.h +++ b/libguile/weaks.h @@ -60,21 +60,21 @@ #define SCM_WVECT_GC_CHAIN(X) (SCM_CELL_OBJECT_3 (X)) #define SCM_SET_WVECT_GC_CHAIN(X, o) (SCM_SET_CELL_OBJECT_3 ((X), (o))) -extern SCM scm_weak_vectors; +SCM_API SCM scm_weak_vectors; -extern SCM scm_make_weak_vector (SCM k, SCM fill); -extern SCM scm_weak_vector (SCM l); -extern SCM scm_weak_vector_p (SCM x); -extern SCM scm_make_weak_key_hash_table (SCM k); -extern SCM scm_make_weak_value_hash_table (SCM k); -extern SCM scm_make_doubly_weak_hash_table (SCM k); -extern SCM scm_weak_key_hash_table_p (SCM x); -extern SCM scm_weak_value_hash_table_p (SCM x); -extern SCM scm_doubly_weak_hash_table_p (SCM x); -extern void scm_weaks_prehistory (void); -extern void scm_init_weaks (void); +SCM_API SCM scm_make_weak_vector (SCM k, SCM fill); +SCM_API SCM scm_weak_vector (SCM l); +SCM_API SCM scm_weak_vector_p (SCM x); +SCM_API SCM scm_make_weak_key_hash_table (SCM k); +SCM_API SCM scm_make_weak_value_hash_table (SCM k); +SCM_API SCM scm_make_doubly_weak_hash_table (SCM k); +SCM_API SCM scm_weak_key_hash_table_p (SCM x); +SCM_API SCM scm_weak_value_hash_table_p (SCM x); +SCM_API SCM scm_doubly_weak_hash_table_p (SCM x); +SCM_API void scm_weaks_prehistory (void); +SCM_API void scm_init_weaks (void); #endif /* SCM_WEAKS_H */ -- 2.20.1