1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-17 17:20:29 +02:00

Prefixed each each exported symbol with SCM_API.

This commit is contained in:
Marius Vollmer 2001-11-02 00:19:12 +00:00
parent 1dcb9876f5
commit 33b001fd89
83 changed files with 1769 additions and 1744 deletions

View file

@ -57,37 +57,37 @@
extern char *const scm_charnames[]; SCM_API char *const scm_charnames[];
extern int scm_n_charnames; SCM_API int scm_n_charnames;
extern const char scm_charnums[]; SCM_API const char scm_charnums[];
extern SCM scm_char_p (SCM x); SCM_API SCM scm_char_p (SCM x);
extern SCM scm_char_eq_p (SCM x, SCM y); SCM_API SCM scm_char_eq_p (SCM x, SCM y);
extern SCM scm_char_less_p (SCM x, SCM y); SCM_API SCM scm_char_less_p (SCM x, SCM y);
extern SCM scm_char_leq_p (SCM x, SCM y); SCM_API SCM scm_char_leq_p (SCM x, SCM y);
extern SCM scm_char_gr_p (SCM x, SCM y); SCM_API SCM scm_char_gr_p (SCM x, SCM y);
extern SCM scm_char_geq_p (SCM x, SCM y); SCM_API SCM scm_char_geq_p (SCM x, SCM y);
extern SCM scm_char_ci_eq_p (SCM x, SCM y); SCM_API SCM scm_char_ci_eq_p (SCM x, SCM y);
extern SCM scm_char_ci_less_p (SCM x, SCM y); SCM_API SCM scm_char_ci_less_p (SCM x, SCM y);
extern SCM scm_char_ci_leq_p (SCM x, SCM y); SCM_API SCM scm_char_ci_leq_p (SCM x, SCM y);
extern SCM scm_char_ci_gr_p (SCM x, SCM y); SCM_API SCM scm_char_ci_gr_p (SCM x, SCM y);
extern SCM scm_char_ci_geq_p (SCM x, SCM y); SCM_API SCM scm_char_ci_geq_p (SCM x, SCM y);
extern SCM scm_char_alphabetic_p (SCM chr); SCM_API SCM scm_char_alphabetic_p (SCM chr);
extern SCM scm_char_numeric_p (SCM chr); SCM_API SCM scm_char_numeric_p (SCM chr);
extern SCM scm_char_whitespace_p (SCM chr); SCM_API SCM scm_char_whitespace_p (SCM chr);
extern SCM scm_char_upper_case_p (SCM chr); SCM_API SCM scm_char_upper_case_p (SCM chr);
extern SCM scm_char_lower_case_p (SCM chr); SCM_API SCM scm_char_lower_case_p (SCM chr);
extern SCM scm_char_is_both_p (SCM chr); SCM_API SCM scm_char_is_both_p (SCM chr);
extern SCM scm_char_to_integer (SCM chr); SCM_API SCM scm_char_to_integer (SCM chr);
extern SCM scm_integer_to_char (SCM n); SCM_API SCM scm_integer_to_char (SCM n);
extern SCM scm_char_upcase (SCM chr); SCM_API SCM scm_char_upcase (SCM chr);
extern SCM scm_char_downcase (SCM chr); SCM_API SCM scm_char_downcase (SCM chr);
extern void scm_tables_prehistory (void); SCM_API void scm_tables_prehistory (void);
extern int scm_upcase (unsigned int c); SCM_API int scm_upcase (unsigned int c);
extern int scm_downcase (unsigned int c); SCM_API int scm_downcase (unsigned int c);
extern void scm_init_chars (void); SCM_API void scm_init_chars (void);
#endif /* SCM_CHARS_H */ #endif /* SCM_CHARS_H */

View file

@ -143,12 +143,12 @@ typedef int coop_mattr;
typedef coop_m scm_t_mutex; typedef coop_m scm_t_mutex;
extern int coop_mutex_init (coop_m*); SCM_API int coop_mutex_init (coop_m*);
extern int coop_new_mutex_init (coop_m*, coop_mattr*); SCM_API int coop_new_mutex_init (coop_m*, coop_mattr*);
extern int coop_mutex_lock (coop_m*); SCM_API int coop_mutex_lock (coop_m*);
extern int coop_mutex_trylock (coop_m*); SCM_API int coop_mutex_trylock (coop_m*);
extern int coop_mutex_unlock (coop_m*); SCM_API int coop_mutex_unlock (coop_m*);
extern int coop_mutex_destroy (coop_m*); SCM_API int coop_mutex_destroy (coop_m*);
#define scm_mutex_init coop_mutex_init #define scm_mutex_init coop_mutex_init
#define scm_mutex_lock coop_mutex_lock #define scm_mutex_lock coop_mutex_lock
#define scm_mutex_trylock coop_mutex_lock #define scm_mutex_trylock coop_mutex_lock
@ -176,14 +176,14 @@ struct timespec
}; };
#endif #endif
extern int coop_condition_variable_init (coop_c*); SCM_API int coop_condition_variable_init (coop_c*);
extern int coop_new_condition_variable_init (coop_c*, coop_cattr*); SCM_API int coop_new_condition_variable_init (coop_c*, coop_cattr*);
extern int coop_condition_variable_wait_mutex (coop_c*, coop_m*); SCM_API int coop_condition_variable_wait_mutex (coop_c*, coop_m*);
extern int coop_condition_variable_timed_wait_mutex (coop_c*, SCM_API int coop_condition_variable_timed_wait_mutex (coop_c*,
coop_m*, coop_m*,
const struct timespec *abstime); const struct timespec *abstime);
extern int coop_condition_variable_signal (coop_c*); SCM_API int coop_condition_variable_signal (coop_c*);
extern int coop_condition_variable_destroy (coop_c*); SCM_API int coop_condition_variable_destroy (coop_c*);
#define scm_cond_init coop_new_condition_variable_init #define scm_cond_init coop_new_condition_variable_init
#define scm_cond_wait coop_condition_variable_wait_mutex #define scm_cond_wait coop_condition_variable_wait_mutex
#define scm_cond_timedwait coop_condition_variable_timed_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; typedef coop_k scm_t_key;
extern int coop_key_create (coop_k *keyp, void (*destruktor) (void *value)); SCM_API int coop_key_create (coop_k *keyp, void (*destruktor) (void *value));
extern int coop_setspecific (coop_k key, const void *value); SCM_API int coop_setspecific (coop_k key, const void *value);
extern void *coop_getspecific (coop_k key); SCM_API void *coop_getspecific (coop_k key);
extern int coop_key_delete (coop_k); SCM_API int coop_key_delete (coop_k);
#define scm_key_create coop_key_create #define scm_key_create coop_key_create
#define scm_setspecific coop_setspecific #define scm_setspecific coop_setspecific
#define scm_getspecific coop_getspecific #define scm_getspecific coop_getspecific
#define scm_key_delete coop_key_delete #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); SCM_API void coop_join (coop_t *t);
extern void coop_yield (void); SCM_API void coop_yield (void);
extern size_t scm_switch_counter; SCM_API size_t scm_switch_counter;
extern size_t scm_thread_count; SCM_API size_t scm_thread_count;
/* Some iselect functions. */ /* 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 (and failing) attempt at modularity here, and I don't have time to
rethink this at the moment. This code awaits a Hero. --JimB */ rethink this at the moment. This code awaits a Hero. --JimB */
#ifdef GUILE_ISELECT #ifdef GUILE_ISELECT
void coop_timeout_qinsert (coop_q_t *, coop_t *); SCM_API void coop_timeout_qinsert (coop_q_t *, coop_t *);
#endif #endif
extern coop_t *coop_next_runnable_thread (void); SCM_API coop_t *coop_next_runnable_thread (void);
extern coop_t *coop_wait_for_runnable_thread_now (struct timeval *); SCM_API coop_t *coop_wait_for_runnable_thread_now (struct timeval *);
extern coop_t *coop_wait_for_runnable_thread (void); SCM_API coop_t *coop_wait_for_runnable_thread (void);

View file

@ -81,46 +81,46 @@
typedef void (coop_userf_t)(void *p0); typedef void (coop_userf_t)(void *p0);
/* Call this before any other primitives. */ /* 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, /* When one or more threads are created by the main thread,
the system goes multithread when this is called. It is done the system goes multithread when this is called. It is done
(no more runable threads) when this returns. */ (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 /* Create a thread and make it runable. When the thread starts
running it will call `f' with arguments `p0' and `p1'. */ 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. /* The current thread stops running but stays runable.
It is an error to call `coop_yield' before `coop_start' It is an error to call `coop_yield' before `coop_start'
is called or after `coop_start' returns. */ 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 /* Like `coop_yield' but the thread is discarded. Any intermediate
state is lost. The thread can also terminate by simply state is lost. The thread can also terminate by simply
returning. */ returning. */
extern void coop_abort (void); SCM_API void coop_abort (void);
/* The following are needed in iselect.c */ /* The following are needed in iselect.c */
extern coop_t *coop_qget (coop_q_t *); SCM_API coop_t *coop_qget (coop_q_t *);
extern void coop_qput (coop_q_t *, coop_t *); SCM_API void coop_qput (coop_q_t *, coop_t *);
extern void *coop_sleephelp (qt_t *, void *, void *); SCM_API void *coop_sleephelp (qt_t *, void *, void *);
#ifdef GUILE_ISELECT #ifdef GUILE_ISELECT
extern coop_t *coop_wait_for_runnable_thread (); SCM_API coop_t *coop_wait_for_runnable_thread ();
#endif #endif
extern coop_q_t coop_global_runq; /* A queue of runable threads. */ SCM_API coop_q_t coop_global_runq; /* A queue of runable threads. */
extern coop_q_t coop_global_sleepq; SCM_API coop_q_t coop_global_sleepq;
extern coop_q_t coop_tmp_queue; SCM_API coop_q_t coop_tmp_queue;
extern coop_q_t coop_global_allq; /* A queue of all threads. */ SCM_API coop_q_t coop_global_allq; /* A queue of all threads. */
extern coop_t *coop_global_curr; /* Currently-executing thread. */ SCM_API coop_t *coop_global_curr; /* Currently-executing thread. */
#endif /* SCM_COOP_THREADS_H */ #endif /* SCM_COOP_THREADS_H */

View file

@ -50,14 +50,14 @@
extern void scm_malloc_register (void *obj, const char *what); SCM_API void scm_malloc_register (void *obj, const char *what);
extern void scm_malloc_unregister (void *obj); SCM_API void scm_malloc_unregister (void *obj);
extern void scm_malloc_reregister (void *obj, void *new, const char *what); 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); SCM_API void scm_debug_malloc_prehistory (void);
extern void scm_init_debug_malloc (void); SCM_API void scm_init_debug_malloc (void);
#endif /* SCM_DEBUG_MALLOC_H */ #endif /* SCM_DEBUG_MALLOC_H */

View file

@ -68,7 +68,7 @@
/* scm_debug_opts is defined in eval.c. /* 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_CHEAPTRAPS_P scm_debug_opts[0].val
#define SCM_BREAKPOINTS_P scm_debug_opts[1].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_SHOW_FILE_NAME scm_debug_opts[13].val
#define SCM_N_DEBUG_OPTIONS 14 #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; SCM_API int scm_debug_mode;
extern int scm_check_entry_p, scm_check_apply_p, scm_check_exit_p; 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_ENTRY scm_check_entry_p
#define CHECK_APPLY scm_check_apply_p #define CHECK_APPLY scm_check_apply_p
@ -117,7 +119,7 @@ typedef union scm_t_debug_info
SCM id; SCM id;
} scm_t_debug_info; } scm_t_debug_info;
extern long scm_debug_eframe_size; SCM_API long scm_debug_eframe_size;
typedef struct scm_t_debug_frame typedef struct scm_t_debug_frame
{ {
@ -128,7 +130,7 @@ typedef struct scm_t_debug_frame
} scm_t_debug_frame; } scm_t_debug_frame;
#ifndef USE_THREADS #ifndef USE_THREADS
extern scm_t_debug_frame *scm_last_debug_frame; SCM_API scm_t_debug_frame *scm_last_debug_frame;
#endif #endif
#define SCM_EVALFRAME (0L << 11) #define SCM_EVALFRAME (0L << 11)
@ -165,7 +167,7 @@ extern scm_t_debug_frame *scm_last_debug_frame;
/* {Debug Objects} /* {Debug Objects}
*/ */
extern scm_t_bits scm_tc16_debugobj; SCM_API scm_t_bits scm_tc16_debugobj;
#define SCM_DEBUGOBJP(x) \ #define SCM_DEBUGOBJP(x) \
SCM_TYP16_PREDICATE (scm_tc16_debugobj, x) SCM_TYP16_PREDICATE (scm_tc16_debugobj, x)
@ -176,7 +178,7 @@ extern scm_t_bits scm_tc16_debugobj;
/* {Memoized Source} /* {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_MEMOIZEDP(x) SCM_TYP16_PREDICATE (scm_tc16_memoized, x)
#define SCM_MEMOIZED_EXP(x) SCM_CAR (SCM_CELL_OBJECT_1 (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); SCM_API int scm_ready_p (void);
extern void debug_print (SCM obj); SCM_API void debug_print (SCM obj);
extern SCM scm_debug_object_p (SCM obj); SCM_API SCM scm_debug_object_p (SCM obj);
extern SCM scm_local_eval (SCM exp, SCM env); SCM_API SCM scm_local_eval (SCM exp, SCM env);
extern SCM scm_reverse_lookup (SCM env, SCM data); SCM_API SCM scm_reverse_lookup (SCM env, SCM data);
extern SCM scm_start_stack (SCM id, SCM exp, SCM env); SCM_API SCM scm_start_stack (SCM id, SCM exp, SCM env);
extern SCM scm_procedure_environment (SCM proc); SCM_API SCM scm_procedure_environment (SCM proc);
extern SCM scm_procedure_source (SCM proc); SCM_API SCM scm_procedure_source (SCM proc);
extern SCM scm_procedure_name (SCM proc); SCM_API SCM scm_procedure_name (SCM proc);
extern SCM scm_memoized_environment (SCM m); SCM_API SCM scm_memoized_environment (SCM m);
extern SCM scm_make_memoized (SCM exp, SCM env); SCM_API SCM scm_make_memoized (SCM exp, SCM env);
extern SCM scm_memoized_p (SCM obj); SCM_API SCM scm_memoized_p (SCM obj);
extern SCM scm_with_traps (SCM thunk); SCM_API SCM scm_with_traps (SCM thunk);
extern SCM scm_evaluator_traps (SCM setting); SCM_API SCM scm_evaluator_traps (SCM setting);
extern SCM scm_debug_options (SCM setting); SCM_API SCM scm_debug_options (SCM setting);
extern SCM scm_unmemoize (SCM memoized); SCM_API SCM scm_unmemoize (SCM memoized);
extern SCM scm_make_debugobj (scm_t_debug_frame *debug); SCM_API SCM scm_make_debugobj (scm_t_debug_frame *debug);
extern void scm_init_debug (void); SCM_API void scm_init_debug (void);
#ifdef GUILE_DEBUG #ifdef GUILE_DEBUG
extern SCM scm_make_iloc (SCM frame, SCM binding, SCM cdrp); SCM_API SCM scm_make_iloc (SCM frame, SCM binding, SCM cdrp);
extern SCM scm_iloc_p (SCM obj); SCM_API SCM scm_iloc_p (SCM obj);
extern SCM scm_memcons (SCM car, SCM cdr, SCM env); SCM_API SCM scm_memcons (SCM car, SCM cdr, SCM env);
extern SCM scm_mem_to_proc (SCM obj); SCM_API SCM scm_mem_to_proc (SCM obj);
extern SCM scm_proc_to_mem (SCM obj); SCM_API SCM scm_proc_to_mem (SCM obj);
extern SCM scm_debug_hang (SCM obj); SCM_API SCM scm_debug_hang (SCM obj);
#endif /*GUILE_DEBUG*/ #endif /*GUILE_DEBUG*/
#endif /* SCM_DEBUG_H */ #endif /* SCM_DEBUG_H */

View file

@ -52,13 +52,13 @@
#if (SCM_ENABLE_DEPRECATED == 1) #if (SCM_ENABLE_DEPRECATED == 1)
void scm_c_issue_deprecation_warning (const char *msg); SCM_API void scm_c_issue_deprecation_warning (const char *msg);
SCM scm_issue_deprecation_warning (SCM msgs); SCM_API SCM scm_issue_deprecation_warning (SCM msgs);
#endif #endif
SCM scm_include_deprecated_features (void); SCM_API SCM scm_include_deprecated_features (void);
void scm_init_deprecation (void); SCM_API void scm_init_deprecation (void);
#endif /* SCM_DEPRECATION_H */ #endif /* SCM_DEPRECATION_H */

View file

@ -50,14 +50,14 @@
SCM scm_dynamic_link (SCM fname); SCM_API SCM scm_dynamic_link (SCM fname);
SCM scm_dynamic_unlink (SCM dobj); SCM_API SCM scm_dynamic_unlink (SCM dobj);
SCM scm_dynamic_object_p (SCM obj); SCM_API SCM scm_dynamic_object_p (SCM obj);
SCM scm_dynamic_func (SCM symb, SCM dobj); SCM_API SCM scm_dynamic_func (SCM symb, SCM dobj);
SCM scm_dynamic_call (SCM symb, SCM dobj); SCM_API SCM scm_dynamic_call (SCM symb, SCM dobj);
SCM scm_dynamic_args_call (SCM symb, SCM dobj, SCM args); 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 */ #endif /* SCM_DYNL_H */

View file

@ -53,19 +53,19 @@
typedef void (*scm_t_guard) (void *); typedef void (*scm_t_guard) (void *);
typedef SCM (*scm_t_inner) (void *); typedef SCM (*scm_t_inner) (void *);
extern SCM scm_dynamic_wind (SCM thunk1, SCM thunk2, SCM thunk3); SCM_API SCM scm_dynamic_wind (SCM thunk1, SCM thunk2, SCM thunk3);
extern SCM scm_internal_dynamic_wind (scm_t_guard before, SCM_API SCM scm_internal_dynamic_wind (scm_t_guard before,
scm_t_inner inner, scm_t_inner inner,
scm_t_guard after, scm_t_guard after,
void *inner_data, void *inner_data,
void *guard_data); void *guard_data);
extern void scm_dowinds (SCM to, long delta); SCM_API void scm_dowinds (SCM to, long delta);
extern void scm_init_dynwind (void); 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 #ifdef GUILE_DEBUG
extern SCM scm_wind_chain (void); SCM_API SCM scm_wind_chain (void);
#endif /*GUILE_DEBUG*/ #endif /*GUILE_DEBUG*/
#endif /* SCM_DYNWIND_H */ #endif /* SCM_DYNWIND_H */

View file

@ -87,7 +87,7 @@ struct scm_environment_funcs {
#define SCM_ENVIRONMENT_LOCATION_IMMUTABLE SCM_MAKINUM (1) #define SCM_ENVIRONMENT_LOCATION_IMMUTABLE SCM_MAKINUM (1)
#define SCM_ENVIRONMENT_LOCATION_NO_CELL SCM_BOOL_F #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) \ #define SCM_ENVIRONMENT_P(x) \
(!SCM_IMP (x) && SCM_CELL_TYPE (x) == scm_tc16_environment) (!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) \ #define SCM_ENVIRONMENT_UNOBSERVE(env, token) \
((*(SCM_ENVIRONMENT_FUNCS (env)->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) \ #define SCM_OBSERVER_P(x) \
(!SCM_IMP (x) && (SCM_CELL_TYPE (x) == scm_tc16_observer)) (!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) \ #define SCM_OBSERVER_PROC(x) \
((scm_environment_observer) SCM_CELL_WORD_3 (x)) ((scm_environment_observer) SCM_CELL_WORD_3 (x))
extern SCM scm_system_environment; SCM_API SCM scm_system_environment;
extern void scm_error_environment_unbound (const char *, SCM, SCM) SCM_NORETURN; SCM_API void scm_error_environment_unbound (const char *, SCM, SCM) SCM_NORETURN;
extern void scm_error_environment_immutable_binding (const char *, SCM, SCM) SCM_NORETURN; SCM_API 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; SCM_API void scm_error_environment_immutable_location (const char *, SCM, SCM) SCM_NORETURN;
extern SCM scm_make_environment (void *type); SCM_API SCM scm_make_environment (void *type);
extern SCM scm_environment_p (SCM env); SCM_API SCM scm_environment_p (SCM env);
extern SCM scm_environment_bound_p (SCM env, SCM sym); SCM_API SCM scm_environment_bound_p (SCM env, SCM sym);
extern SCM scm_environment_ref (SCM env, SCM sym); SCM_API SCM scm_environment_ref (SCM env, SCM sym);
extern SCM scm_c_environment_ref (SCM env, SCM sym); SCM_API SCM scm_c_environment_ref (SCM env, SCM sym);
extern SCM scm_environment_fold (SCM env, SCM proc, SCM init); SCM_API 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); SCM_API 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); SCM_API SCM scm_environment_define (SCM env, SCM sym, SCM val);
extern SCM scm_environment_undefine (SCM env, SCM sym); SCM_API SCM scm_environment_undefine (SCM env, SCM sym);
extern SCM scm_environment_set_x (SCM env, SCM sym, SCM val); SCM_API SCM scm_environment_set_x (SCM env, SCM sym, SCM val);
extern SCM scm_environment_cell (SCM env, SCM sym, SCM for_write); SCM_API SCM scm_environment_cell (SCM env, SCM sym, SCM for_write);
extern SCM scm_c_environment_cell (SCM env, SCM sym, int for_write); SCM_API SCM scm_c_environment_cell (SCM env, SCM sym, int for_write);
extern SCM scm_environment_observe (SCM env, SCM proc); SCM_API SCM scm_environment_observe (SCM env, SCM proc);
extern SCM scm_environment_observe_weak (SCM env, SCM proc); SCM_API 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); SCM_API SCM scm_c_environment_observe (SCM env, scm_environment_observer proc, SCM data, int weak_p);
extern SCM scm_environment_unobserve (SCM token); SCM_API SCM scm_environment_unobserve (SCM token);
extern void scm_environments_prehistory (void); SCM_API void scm_environments_prehistory (void);
extern void scm_init_environments (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) \ #define SCM_LEAF_ENVIRONMENT_P(env) \
(SCM_ENVIRONMENT_P (env) \ (SCM_ENVIRONMENT_P (env) \
&& SCM_ENVIRONMENT_FUNCS (env) == scm_type_leaf_environment) && SCM_ENVIRONMENT_FUNCS (env) == scm_type_leaf_environment)
extern SCM scm_make_leaf_environment (void); SCM_API SCM scm_make_leaf_environment (void);
extern SCM scm_leaf_environment_p (SCM env); 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) \ #define SCM_EVAL_ENVIRONMENT_P(env) \
(SCM_ENVIRONMENT_P (env) \ (SCM_ENVIRONMENT_P (env) \
&& SCM_ENVIRONMENT_FUNCS (env) == scm_type_eval_environment) && SCM_ENVIRONMENT_FUNCS (env) == scm_type_eval_environment)
extern SCM scm_make_eval_environment (SCM local, SCM imported); SCM_API SCM scm_make_eval_environment (SCM local, SCM imported);
extern SCM scm_eval_environment_p (SCM env); SCM_API SCM scm_eval_environment_p (SCM env);
extern SCM scm_eval_environment_local (SCM env); SCM_API SCM scm_eval_environment_local (SCM env);
extern SCM scm_eval_environment_set_local_x (SCM env, SCM local); SCM_API SCM scm_eval_environment_set_local_x (SCM env, SCM local);
extern SCM scm_eval_environment_imported (SCM env); SCM_API SCM scm_eval_environment_imported (SCM env);
extern SCM scm_eval_environment_set_imported_x (SCM env, SCM imported); 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) \ #define SCM_IMPORT_ENVIRONMENT_P(env) \
(SCM_ENVIRONMENT_P (env) \ (SCM_ENVIRONMENT_P (env) \
&& SCM_ENVIRONMENT_FUNCS (env) == scm_type_import_environment) && SCM_ENVIRONMENT_FUNCS (env) == scm_type_import_environment)
extern SCM scm_make_import_environment (SCM imports, SCM conflict_proc); SCM_API SCM scm_make_import_environment (SCM imports, SCM conflict_proc);
extern SCM scm_import_environment_p (SCM env); SCM_API SCM scm_import_environment_p (SCM env);
extern SCM scm_import_environment_imports (SCM env); SCM_API SCM scm_import_environment_imports (SCM env);
extern SCM scm_import_environment_set_imports_x (SCM env, SCM imports); 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) \ #define SCM_EXPORT_ENVIRONMENT_P(env) \
(SCM_ENVIRONMENT_P (env) \ (SCM_ENVIRONMENT_P (env) \
&& SCM_ENVIRONMENT_FUNCS (env) == scm_type_export_environment) && SCM_ENVIRONMENT_FUNCS (env) == scm_type_export_environment)
extern SCM scm_make_export_environment (SCM private, SCM signature); SCM_API SCM scm_make_export_environment (SCM private, SCM signature);
extern SCM scm_export_environment_p (SCM env); SCM_API SCM scm_export_environment_p (SCM env);
extern SCM scm_export_environment_private (SCM env); SCM_API SCM scm_export_environment_private (SCM env);
extern SCM scm_export_environment_set_private_x (SCM env, SCM private); SCM_API SCM scm_export_environment_set_private_x (SCM env, SCM private);
extern SCM scm_export_environment_signature (SCM env); SCM_API SCM scm_export_environment_signature (SCM env);
extern SCM scm_export_environment_set_signature_x (SCM env, SCM signature); SCM_API SCM scm_export_environment_set_signature_x (SCM env, SCM signature);
#endif /* SCM_ENVIRONMENTS_H */ #endif /* SCM_ENVIRONMENTS_H */

View file

@ -50,10 +50,10 @@
extern SCM scm_eq_p (SCM x, SCM y); SCM_API SCM scm_eq_p (SCM x, SCM y);
extern SCM scm_eqv_p (SCM x, SCM y); SCM_API SCM scm_eqv_p (SCM x, SCM y);
extern SCM scm_equal_p (SCM x, SCM y); SCM_API SCM scm_equal_p (SCM x, SCM y);
extern void scm_init_eq (void); SCM_API void scm_init_eq (void);
#endif /* SCM_EQ_H */ #endif /* SCM_EQ_H */

View file

@ -49,41 +49,41 @@
#include "libguile/__scm.h" #include "libguile/__scm.h"
extern int scm_ints_disabled; SCM_API int scm_ints_disabled;
extern SCM scm_system_error_key; SCM_API SCM scm_system_error_key;
extern SCM scm_num_overflow_key; SCM_API SCM scm_num_overflow_key;
extern SCM scm_out_of_range_key; SCM_API SCM scm_out_of_range_key;
extern SCM scm_args_number_key; SCM_API SCM scm_args_number_key;
extern SCM scm_arg_type_key; SCM_API SCM scm_arg_type_key;
extern SCM scm_memory_alloc_key; SCM_API SCM scm_memory_alloc_key;
extern SCM scm_misc_error_key; SCM_API SCM scm_misc_error_key;
extern void scm_error (SCM key, const char *subr, const char *message, SCM_API void scm_error (SCM key, const char *subr, const char *message,
SCM args, SCM rest) SCM_NORETURN; SCM args, SCM rest) SCM_NORETURN;
extern SCM scm_error_scm (SCM key, SCM subr, SCM message, SCM_API SCM scm_error_scm (SCM key, SCM subr, SCM message,
SCM args, SCM rest) SCM_NORETURN; SCM args, SCM rest) SCM_NORETURN;
extern SCM scm_strerror (SCM err); SCM_API SCM scm_strerror (SCM err);
extern void scm_syserror (const char *subr) SCM_NORETURN; SCM_API void scm_syserror (const char *subr) SCM_NORETURN;
extern void scm_syserror_msg (const char *subr, const char *message, SCM_API void scm_syserror_msg (const char *subr, const char *message,
SCM args, int eno) SCM_NORETURN; SCM args, int eno) SCM_NORETURN;
extern void scm_num_overflow (const char *subr) SCM_NORETURN; SCM_API 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_out_of_range (const char *subr, SCM bad_value)
SCM_NORETURN; 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; SCM_NORETURN;
extern void scm_wrong_num_args (SCM proc) SCM_NORETURN; SCM_API void scm_wrong_num_args (SCM proc) SCM_NORETURN;
extern void scm_error_num_args_subr (const char* subr) SCM_NORETURN; SCM_API void scm_error_num_args_subr (const char* subr) SCM_NORETURN;
extern void scm_wrong_type_arg (const char *subr, int pos, SCM_API void scm_wrong_type_arg (const char *subr, int pos,
SCM bad_value) SCM_NORETURN; SCM bad_value) SCM_NORETURN;
extern void scm_wrong_type_arg_msg (const char *subr, int pos, SCM_API void scm_wrong_type_arg_msg (const char *subr, int pos,
SCM bad_value, const char *sz) SCM_NORETURN; SCM bad_value, const char *sz) SCM_NORETURN;
extern void scm_memory_error (const char *subr) SCM_NORETURN; SCM_API void scm_memory_error (const char *subr) SCM_NORETURN;
extern void scm_misc_error (const char *subr, const char *message, SCM_API void scm_misc_error (const char *subr, const char *message,
SCM args) SCM_NORETURN; SCM args) SCM_NORETURN;
extern void scm_init_error (void); SCM_API void scm_init_error (void);
#endif /* SCM_ERROR_H */ #endif /* SCM_ERROR_H */

View file

@ -55,16 +55,16 @@
/* {Options} /* {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_EVAL_STACK scm_eval_opts[0].val
#define SCM_N_EVAL_OPTIONS 1 #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_TRAPS_P scm_evaluator_trap_table[0].val
#define SCM_ENTER_FRAME_P scm_evaluator_trap_table[1].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()) #define SCM_TOP_LEVEL_LOOKUP_CLOSURE (scm_current_module_lookup_closure())
extern const char scm_s_expression[]; SCM_API const char scm_s_expression[];
extern const char scm_s_test[]; SCM_API const char scm_s_test[];
extern const char scm_s_body[]; SCM_API const char scm_s_body[];
extern const char scm_s_bindings[]; SCM_API const char scm_s_bindings[];
extern const char scm_s_variable[]; SCM_API const char scm_s_variable[];
extern const char scm_s_clauses[]; SCM_API const char scm_s_clauses[];
extern const char scm_s_formals[]; SCM_API const char scm_s_formals[];
extern const char scm_s_set_x[]; SCM_API const char scm_s_set_x[];
extern SCM scm_sym_and; SCM_API SCM scm_sym_and;
extern SCM scm_sym_begin; SCM_API SCM scm_sym_begin;
extern SCM scm_sym_case; SCM_API SCM scm_sym_case;
extern SCM scm_sym_cond; SCM_API SCM scm_sym_cond;
extern SCM scm_sym_define; SCM_API SCM scm_sym_define;
extern SCM scm_sym_do; SCM_API SCM scm_sym_do;
extern SCM scm_sym_if; SCM_API SCM scm_sym_if;
extern SCM scm_sym_lambda; SCM_API SCM scm_sym_lambda;
extern SCM scm_sym_let; SCM_API SCM scm_sym_let;
extern SCM scm_sym_letstar; SCM_API SCM scm_sym_letstar;
extern SCM scm_sym_letrec; SCM_API SCM scm_sym_letrec;
extern SCM scm_sym_quote; SCM_API SCM scm_sym_quote;
extern SCM scm_sym_quasiquote; SCM_API SCM scm_sym_quasiquote;
extern SCM scm_sym_unquote; SCM_API SCM scm_sym_unquote;
extern SCM scm_sym_uq_splicing; SCM_API SCM scm_sym_uq_splicing;
extern SCM scm_sym_dot; SCM_API SCM scm_sym_dot;
extern SCM scm_sym_atapply; SCM_API SCM scm_sym_atapply;
extern SCM scm_sym_atcall_cc; SCM_API SCM scm_sym_atcall_cc;
extern SCM scm_sym_at_call_with_values; SCM_API SCM scm_sym_at_call_with_values;
extern SCM scm_sym_delay; SCM_API SCM scm_sym_delay;
extern SCM scm_sym_arrow; SCM_API SCM scm_sym_arrow;
extern SCM scm_sym_else; SCM_API SCM scm_sym_else;
extern SCM scm_sym_apply; SCM_API SCM scm_sym_apply;
extern SCM scm_sym_set_x; SCM_API SCM scm_sym_set_x;
extern SCM scm_sym_args; 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); SCM_API SCM * scm_ilookup (SCM iloc, SCM env);
extern SCM * scm_lookupcar (SCM vloc, SCM genv, int check); SCM_API SCM * scm_lookupcar (SCM vloc, SCM genv, int check);
extern SCM scm_unmemocar (SCM form, SCM env); SCM_API SCM scm_unmemocar (SCM form, SCM env);
extern SCM scm_unmemocopy (SCM form, SCM env); SCM_API SCM scm_unmemocopy (SCM form, SCM env);
extern SCM scm_eval_car (SCM pair, SCM env); SCM_API SCM scm_eval_car (SCM pair, SCM env);
extern SCM scm_eval_body (SCM code, SCM env); SCM_API SCM scm_eval_body (SCM code, SCM env);
extern SCM scm_eval_args (SCM i, SCM env, SCM proc); SCM_API SCM scm_eval_args (SCM i, SCM env, SCM proc);
extern SCM scm_deval_args (SCM l, SCM env, SCM proc, SCM *lloc); SCM_API SCM scm_deval_args (SCM l, SCM env, SCM proc, SCM *lloc);
extern SCM scm_m_quote (SCM xorig, SCM env); SCM_API SCM scm_m_quote (SCM xorig, SCM env);
extern SCM scm_m_begin (SCM xorig, SCM env); SCM_API SCM scm_m_begin (SCM xorig, SCM env);
extern SCM scm_m_if (SCM xorig, SCM env); SCM_API SCM scm_m_if (SCM xorig, SCM env);
extern SCM scm_m_set_x (SCM xorig, SCM env); SCM_API SCM scm_m_set_x (SCM xorig, SCM env);
extern SCM scm_m_vref (SCM xorig, SCM env); SCM_API SCM scm_m_vref (SCM xorig, SCM env);
extern SCM scm_m_vset (SCM xorig, SCM env); SCM_API SCM scm_m_vset (SCM xorig, SCM env);
extern SCM scm_m_and (SCM xorig, SCM env); SCM_API SCM scm_m_and (SCM xorig, SCM env);
extern SCM scm_m_or (SCM xorig, SCM env); SCM_API SCM scm_m_or (SCM xorig, SCM env);
extern SCM scm_m_case (SCM xorig, SCM env); SCM_API SCM scm_m_case (SCM xorig, SCM env);
extern SCM scm_m_cond (SCM xorig, SCM env); SCM_API SCM scm_m_cond (SCM xorig, SCM env);
extern SCM scm_m_lambda (SCM xorig, SCM env); SCM_API SCM scm_m_lambda (SCM xorig, SCM env);
extern SCM scm_m_letstar (SCM xorig, SCM env); SCM_API SCM scm_m_letstar (SCM xorig, SCM env);
extern SCM scm_m_do (SCM xorig, SCM env); SCM_API SCM scm_m_do (SCM xorig, SCM env);
extern SCM scm_m_quasiquote (SCM xorig, SCM env); SCM_API SCM scm_m_quasiquote (SCM xorig, SCM env);
extern SCM scm_m_delay (SCM xorig, SCM env); SCM_API SCM scm_m_delay (SCM xorig, SCM env);
extern SCM scm_m_define (SCM x, SCM env); SCM_API SCM scm_m_define (SCM x, SCM env);
extern SCM scm_m_letrec (SCM xorig, SCM env); SCM_API SCM scm_m_letrec (SCM xorig, SCM env);
extern SCM scm_m_let (SCM xorig, SCM env); SCM_API SCM scm_m_let (SCM xorig, SCM env);
extern SCM scm_m_apply (SCM xorig, SCM env); SCM_API SCM scm_m_apply (SCM xorig, SCM env);
extern SCM scm_m_cont (SCM xorig, SCM env); SCM_API SCM scm_m_cont (SCM xorig, SCM env);
extern SCM scm_m_nil_cond (SCM xorig, SCM env); SCM_API SCM scm_m_nil_cond (SCM xorig, SCM env);
extern SCM scm_m_nil_ify (SCM xorig, SCM env); SCM_API SCM scm_m_nil_ify (SCM xorig, SCM env);
extern SCM scm_m_t_ify (SCM xorig, SCM env); SCM_API SCM scm_m_t_ify (SCM xorig, SCM env);
extern SCM scm_m_0_cond (SCM xorig, SCM env); SCM_API SCM scm_m_0_cond (SCM xorig, SCM env);
extern SCM scm_m_0_ify (SCM xorig, SCM env); SCM_API SCM scm_m_0_ify (SCM xorig, SCM env);
extern SCM scm_m_1_ify (SCM xorig, SCM env); SCM_API SCM scm_m_1_ify (SCM xorig, SCM env);
extern SCM scm_m_atfop (SCM xorig, SCM env); SCM_API SCM scm_m_atfop (SCM xorig, SCM env);
extern SCM scm_m_atbind (SCM xorig, SCM env); SCM_API SCM scm_m_atbind (SCM xorig, SCM env);
extern SCM scm_m_at_call_with_values (SCM xorig, SCM env); SCM_API SCM scm_m_at_call_with_values (SCM xorig, SCM env);
extern int scm_badargsp (SCM formals, SCM args); SCM_API int scm_badargsp (SCM formals, SCM args);
extern SCM scm_ceval (SCM x, SCM env); SCM_API SCM scm_ceval (SCM x, SCM env);
extern SCM scm_deval (SCM x, SCM env); SCM_API SCM scm_deval (SCM x, SCM env);
extern SCM scm_call_0 (SCM proc); SCM_API SCM scm_call_0 (SCM proc);
extern SCM scm_call_1 (SCM proc, SCM arg1); SCM_API SCM scm_call_1 (SCM proc, SCM arg1);
extern SCM scm_call_2 (SCM proc, SCM arg1, SCM arg2); SCM_API SCM scm_call_2 (SCM proc, SCM arg1, SCM arg2);
extern SCM scm_call_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3); SCM_API 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); SCM_API SCM scm_call_4 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM arg4);
extern SCM scm_apply_0 (SCM proc, SCM args); SCM_API SCM scm_apply_0 (SCM proc, SCM args);
extern SCM scm_apply_1 (SCM proc, SCM arg1, SCM args); SCM_API SCM scm_apply_1 (SCM proc, SCM arg1, SCM args);
extern SCM scm_apply_2 (SCM proc, SCM arg1, SCM arg2, SCM args); SCM_API 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); SCM_API SCM scm_apply_3 (SCM proc, SCM arg1, SCM arg2, SCM arg3, SCM args);
extern SCM scm_nconc2last (SCM lst); SCM_API SCM scm_nconc2last (SCM lst);
extern SCM scm_apply (SCM proc, SCM arg1, SCM args); SCM_API SCM scm_apply (SCM proc, SCM arg1, SCM args);
extern SCM scm_dapply (SCM proc, SCM arg1, SCM args); SCM_API SCM scm_dapply (SCM proc, SCM arg1, SCM args);
extern SCM scm_m_expand_body (SCM xorig, SCM env); SCM_API SCM scm_m_expand_body (SCM xorig, SCM env);
extern SCM scm_macroexp (SCM x, SCM env); SCM_API SCM scm_macroexp (SCM x, SCM env);
extern SCM scm_map (SCM proc, SCM arg1, SCM args); SCM_API SCM scm_map (SCM proc, SCM arg1, SCM args);
extern SCM scm_for_each (SCM proc, SCM arg1, SCM args); SCM_API SCM scm_for_each (SCM proc, SCM arg1, SCM args);
extern SCM scm_closure (SCM code, SCM env); SCM_API SCM scm_closure (SCM code, SCM env);
extern SCM scm_makprom (SCM code); SCM_API SCM scm_makprom (SCM code);
extern SCM scm_force (SCM x); SCM_API SCM scm_force (SCM x);
extern SCM scm_promise_p (SCM x); SCM_API SCM scm_promise_p (SCM x);
extern SCM scm_cons_source (SCM xorig, SCM x, SCM y); SCM_API SCM scm_cons_source (SCM xorig, SCM x, SCM y);
extern SCM scm_copy_tree (SCM obj); SCM_API SCM scm_copy_tree (SCM obj);
extern SCM scm_i_eval_x (SCM exp, SCM env); SCM_API SCM scm_i_eval_x (SCM exp, SCM env);
extern SCM scm_i_eval (SCM exp, SCM env); SCM_API SCM scm_i_eval (SCM exp, SCM env);
extern SCM scm_primitive_eval (SCM exp); SCM_API SCM scm_primitive_eval (SCM exp);
extern SCM scm_primitive_eval_x (SCM exp); SCM_API SCM scm_primitive_eval_x (SCM exp);
extern SCM scm_eval (SCM exp, SCM module); SCM_API SCM scm_eval (SCM exp, SCM module);
extern SCM scm_eval_x (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 */ #endif /* SCM_EVAL_H */

View file

@ -50,10 +50,10 @@
extern SCM scm_m_generalized_set_x (SCM xorig, SCM env); SCM_API SCM scm_m_generalized_set_x (SCM xorig, SCM env);
extern SCM scm_definedp (SCM sym, SCM env); SCM_API SCM scm_definedp (SCM sym, SCM env);
extern SCM scm_m_undefine (SCM x, SCM env); SCM_API SCM scm_m_undefine (SCM x, SCM env);
extern void scm_init_evalext (void); SCM_API void scm_init_evalext (void);
#endif /* SCM_EVALEXT_H */ #endif /* SCM_EVALEXT_H */

View file

@ -50,13 +50,13 @@
extern void scm_c_register_extension (const char *lib, const char *init, SCM_API void scm_c_register_extension (const char *lib, const char *init,
void (*func) (void *), void *data); void (*func) (void *), void *data);
extern void scm_c_load_extension (const char *lib, const char *init); SCM_API void scm_c_load_extension (const char *lib, const char *init);
extern SCM scm_load_extension (SCM lib, SCM 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 */ #endif /* SCM_EXTENSIONS_H */

View file

@ -48,10 +48,10 @@
#include "libguile/__scm.h" #include "libguile/__scm.h"
extern void scm_add_feature (const char* str); SCM_API void scm_add_feature (const char* str);
extern SCM scm_program_arguments (void); SCM_API SCM scm_program_arguments (void);
extern void scm_set_program_arguments (int argc, char **argv, char *first); SCM_API void scm_set_program_arguments (int argc, char **argv, char *first);
extern void scm_init_feature (void); SCM_API void scm_init_feature (void);
#endif /* SCM_FEATURE_H */ #endif /* SCM_FEATURE_H */

View file

@ -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) #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); SCM_API SCM scm_chown (SCM object, SCM owner, SCM group);
extern SCM scm_chmod (SCM object, SCM mode); SCM_API SCM scm_chmod (SCM object, SCM mode);
extern SCM scm_umask (SCM mode); SCM_API SCM scm_umask (SCM mode);
extern SCM scm_open_fdes (SCM path, SCM flags, SCM mode); SCM_API SCM scm_open_fdes (SCM path, SCM flags, SCM mode);
extern SCM scm_open (SCM path, SCM flags, SCM mode); SCM_API SCM scm_open (SCM path, SCM flags, SCM mode);
extern SCM scm_close (SCM fd_or_port); SCM_API SCM scm_close (SCM fd_or_port);
extern SCM scm_close_fdes (SCM fd); SCM_API SCM scm_close_fdes (SCM fd);
extern SCM scm_stat (SCM object); SCM_API SCM scm_stat (SCM object);
extern SCM scm_link (SCM oldpath, SCM newpath); SCM_API SCM scm_link (SCM oldpath, SCM newpath);
extern SCM scm_rename (SCM oldname, SCM newname); SCM_API SCM scm_rename (SCM oldname, SCM newname);
extern SCM scm_delete_file (SCM str); SCM_API SCM scm_delete_file (SCM str);
extern SCM scm_mkdir (SCM path, SCM mode); SCM_API SCM scm_mkdir (SCM path, SCM mode);
extern SCM scm_rmdir (SCM path); SCM_API SCM scm_rmdir (SCM path);
extern SCM scm_directory_stream_p (SCM obj); SCM_API SCM scm_directory_stream_p (SCM obj);
extern SCM scm_opendir (SCM dirname); SCM_API SCM scm_opendir (SCM dirname);
extern SCM scm_readdir (SCM port); SCM_API SCM scm_readdir (SCM port);
extern SCM scm_rewinddir (SCM port); SCM_API SCM scm_rewinddir (SCM port);
extern SCM scm_closedir (SCM port); SCM_API SCM scm_closedir (SCM port);
extern SCM scm_chdir (SCM str); SCM_API SCM scm_chdir (SCM str);
extern SCM scm_getcwd (void); SCM_API SCM scm_getcwd (void);
extern SCM scm_select (SCM reads, SCM writes, SCM excepts, SCM secs, SCM msecs); SCM_API SCM scm_select (SCM reads, SCM writes, SCM excepts, SCM secs, SCM msecs);
extern SCM scm_fcntl (SCM object, SCM cmd, SCM value); SCM_API SCM scm_fcntl (SCM object, SCM cmd, SCM value);
extern SCM scm_fsync (SCM object); SCM_API SCM scm_fsync (SCM object);
extern SCM scm_symlink (SCM oldpath, SCM newpath); SCM_API SCM scm_symlink (SCM oldpath, SCM newpath);
extern SCM scm_readlink (SCM path); SCM_API SCM scm_readlink (SCM path);
extern SCM scm_lstat (SCM str); SCM_API SCM scm_lstat (SCM str);
extern SCM scm_copy_file (SCM oldfile, SCM newfile); SCM_API SCM scm_copy_file (SCM oldfile, SCM newfile);
extern SCM scm_dirname (SCM filename); SCM_API SCM scm_dirname (SCM filename);
extern SCM scm_basename (SCM filename, SCM suffix); 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 */ #endif /* SCM_FILESYS_H */

View file

@ -72,7 +72,7 @@
implement a more lightweight version of fluids on top of this basic implement a more lightweight version of fluids on top of this basic
mechanism. */ 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_FLUIDP(x) (!SCM_IMP (x) && (SCM_CELL_TYPE (x) == scm_tc16_fluid))
#define SCM_FLUID_NUM(x) (SCM_CELL_WORD_1 (x)) #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_REF(n) (SCM_VELTS(scm_root->fluids)[n])
#define SCM_FAST_FLUID_SET_X(n, val) (SCM_VELTS(scm_root->fluids)[n] = val) #define SCM_FAST_FLUID_SET_X(n, val) (SCM_VELTS(scm_root->fluids)[n] = val)
SCM scm_make_fluid (void); SCM_API SCM scm_make_fluid (void);
SCM scm_fluid_p (SCM fl); SCM_API SCM scm_fluid_p (SCM fl);
SCM scm_fluid_ref (SCM fluid); SCM_API SCM scm_fluid_ref (SCM fluid);
SCM scm_fluid_set_x (SCM fluid, SCM value); SCM_API SCM scm_fluid_set_x (SCM fluid, SCM value);
SCM scm_c_with_fluids (SCM fluids, SCM vals, SCM_API SCM scm_c_with_fluids (SCM fluids, SCM vals,
SCM (*cproc)(void *), void *cdata); SCM (*cproc)(void *), void *cdata);
SCM scm_c_with_fluid (SCM fluid, SCM val, SCM_API SCM scm_c_with_fluid (SCM fluid, SCM val,
SCM (*cproc)(void *), void *cdata); SCM (*cproc)(void *), void *cdata);
SCM scm_with_fluids (SCM fluids, SCM vals, SCM thunk); SCM_API SCM scm_with_fluids (SCM fluids, SCM vals, SCM thunk);
SCM scm_make_initial_fluids (void); SCM_API SCM scm_make_initial_fluids (void);
void scm_copy_fluids (scm_root_state *); SCM_API void scm_copy_fluids (scm_root_state *);
void scm_swap_fluids (SCM fluids, SCM vals); SCM_API void scm_swap_fluids (SCM fluids, SCM vals);
void scm_swap_fluids_reverse (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 */ #endif /* SCM_FLUIDS_H */

View file

@ -57,7 +57,7 @@ typedef struct scm_t_fport {
int fdes; /* file descriptor. */ int fdes; /* file descriptor. */
} scm_t_fport; } 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_FSTREAM(x) ((scm_t_fport *) SCM_STREAM (x))
#define SCM_FPORT_FDES(x) (SCM_FSTREAM (x)->fdes) #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) #define SCM_FDES_RANDOM_P(fdes) ((lseek (fdes, 0, SEEK_CUR) == -1) ? 0 : 1)
extern SCM scm_setbuf0 (SCM port); SCM_API SCM scm_setbuf0 (SCM port);
extern SCM scm_setvbuf (SCM port, SCM mode, SCM size); SCM_API SCM scm_setvbuf (SCM port, SCM mode, SCM size);
extern void scm_evict_ports (int fd); SCM_API void scm_evict_ports (int fd);
extern SCM scm_open_file (SCM filename, SCM modes); SCM_API SCM scm_open_file (SCM filename, SCM modes);
extern SCM scm_fdes_to_port (int fdes, char *mode, SCM name); SCM_API SCM scm_fdes_to_port (int fdes, char *mode, SCM name);
extern SCM scm_file_port_p (SCM obj); SCM_API SCM scm_file_port_p (SCM obj);
extern void scm_init_fports (void); SCM_API void scm_init_fports (void);
#endif /* SCM_FPORTS_H */ #endif /* SCM_FPORTS_H */

View file

@ -295,100 +295,100 @@ typedef unsigned long scm_t_c_bvec_limb;
#define SCM_NMARKEDP(x) (!SCM_MARKEDP (x)) #define SCM_NMARKEDP(x) (!SCM_MARKEDP (x))
#if (SCM_DEBUG_CELL_ACCESSES == 1) #if (SCM_DEBUG_CELL_ACCESSES == 1)
extern scm_t_bits scm_tc16_allocated; SCM_API scm_t_bits scm_tc16_allocated;
extern unsigned int scm_debug_cell_accesses_p; SCM_API unsigned int scm_debug_cell_accesses_p;
#endif #endif
extern struct scm_t_heap_seg_data *scm_heap_table; SCM_API struct scm_t_heap_seg_data *scm_heap_table;
extern size_t scm_n_heap_segs; SCM_API size_t scm_n_heap_segs;
extern int scm_block_gc; SCM_API int scm_block_gc;
extern int scm_gc_heap_lock; SCM_API int scm_gc_heap_lock;
extern unsigned int scm_gc_running_p; SCM_API unsigned int scm_gc_running_p;
extern size_t scm_default_init_heap_size_1; SCM_API size_t scm_default_init_heap_size_1;
extern int scm_default_min_yield_1; SCM_API int scm_default_min_yield_1;
extern size_t scm_default_init_heap_size_2; SCM_API size_t scm_default_init_heap_size_2;
extern int scm_default_min_yield_2; SCM_API int scm_default_min_yield_2;
extern size_t scm_default_max_segment_size; SCM_API size_t scm_default_max_segment_size;
extern size_t scm_max_segment_size; SCM_API size_t scm_max_segment_size;
extern SCM_CELLPTR scm_heap_org; SCM_API SCM_CELLPTR scm_heap_org;
extern SCM scm_freelist; SCM_API SCM scm_freelist;
extern struct scm_t_freelist scm_master_freelist; SCM_API struct scm_t_freelist scm_master_freelist;
extern SCM scm_freelist2; SCM_API SCM scm_freelist2;
extern struct scm_t_freelist scm_master_freelist2; SCM_API struct scm_t_freelist scm_master_freelist2;
extern unsigned long scm_gc_cells_collected; SCM_API unsigned long scm_gc_cells_collected;
extern unsigned long scm_gc_yield; SCM_API unsigned long scm_gc_yield;
extern unsigned long scm_gc_malloc_collected; SCM_API unsigned long scm_gc_malloc_collected;
extern unsigned long scm_gc_ports_collected; SCM_API unsigned long scm_gc_ports_collected;
extern unsigned long scm_cells_allocated; SCM_API unsigned long scm_cells_allocated;
extern unsigned long scm_mallocated; SCM_API unsigned long scm_mallocated;
extern unsigned long scm_mtrigger; SCM_API unsigned long scm_mtrigger;
extern SCM scm_after_gc_hook; SCM_API SCM scm_after_gc_hook;
extern scm_t_c_hook scm_before_gc_c_hook; SCM_API scm_t_c_hook scm_before_gc_c_hook;
extern scm_t_c_hook scm_before_mark_c_hook; SCM_API scm_t_c_hook scm_before_mark_c_hook;
extern scm_t_c_hook scm_before_sweep_c_hook; SCM_API scm_t_c_hook scm_before_sweep_c_hook;
extern scm_t_c_hook scm_after_sweep_c_hook; SCM_API scm_t_c_hook scm_after_sweep_c_hook;
extern scm_t_c_hook scm_after_gc_c_hook; SCM_API scm_t_c_hook scm_after_gc_c_hook;
#if defined (GUILE_DEBUG) || defined (GUILE_DEBUG_FREELIST) #if defined (GUILE_DEBUG) || defined (GUILE_DEBUG_FREELIST)
extern SCM scm_map_free_list (void); SCM_API SCM scm_map_free_list (void);
extern SCM scm_free_list_length (void); SCM_API SCM scm_free_list_length (void);
#endif #endif
#ifdef GUILE_DEBUG_FREELIST #ifdef GUILE_DEBUG_FREELIST
extern SCM scm_debug_newcell (void); SCM_API SCM scm_debug_newcell (void);
extern SCM scm_debug_newcell2 (void); SCM_API SCM scm_debug_newcell2 (void);
extern SCM scm_gc_set_debug_check_freelist_x (SCM flag); SCM_API SCM scm_gc_set_debug_check_freelist_x (SCM flag);
#endif #endif
#if (SCM_DEBUG_CELL_ACCESSES == 1) #if (SCM_DEBUG_CELL_ACCESSES == 1)
extern void scm_assert_cell_valid (SCM); SCM_API void scm_assert_cell_valid (SCM);
extern SCM scm_set_debug_cell_accesses_x (SCM flag); SCM_API SCM scm_set_debug_cell_accesses_x (SCM flag);
#endif #endif
extern SCM scm_object_address (SCM obj); SCM_API SCM scm_object_address (SCM obj);
extern SCM scm_unhash_name (SCM name); SCM_API SCM scm_unhash_name (SCM name);
extern SCM scm_gc_stats (void); SCM_API SCM scm_gc_stats (void);
extern SCM scm_gc (void); SCM_API SCM scm_gc (void);
extern void scm_gc_for_alloc (struct scm_t_freelist *freelist); SCM_API 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_gc_for_newcell (struct scm_t_freelist *master, SCM *freelist);
#if 0 #if 0
extern void scm_alloc_cluster (struct scm_t_freelist *master); SCM_API void scm_alloc_cluster (struct scm_t_freelist *master);
#endif #endif
extern void scm_igc (const char *what); SCM_API void scm_igc (const char *what);
extern void scm_gc_mark (SCM p); SCM_API void scm_gc_mark (SCM p);
extern void scm_gc_mark_dependencies (SCM p); SCM_API void scm_gc_mark_dependencies (SCM p);
extern void scm_mark_locations (SCM_STACKITEM x[], unsigned long n); SCM_API void scm_mark_locations (SCM_STACKITEM x[], unsigned long n);
extern int scm_cellp (SCM value); SCM_API int scm_cellp (SCM value);
extern void scm_gc_sweep (void); SCM_API void scm_gc_sweep (void);
extern void * scm_must_malloc (size_t len, const char *what); SCM_API void * scm_must_malloc (size_t len, const char *what);
extern void * scm_must_realloc (void *where, SCM_API void * scm_must_realloc (void *where,
size_t olen, size_t len, size_t olen, size_t len,
const char *what); const char *what);
extern char *scm_must_strdup (const char *str); SCM_API char *scm_must_strdup (const char *str);
extern char *scm_must_strndup (const char *str, size_t n); SCM_API char *scm_must_strndup (const char *str, size_t n);
extern void scm_done_malloc (long size); SCM_API void scm_done_malloc (long size);
extern void scm_done_free (long size); SCM_API void scm_done_free (long size);
extern void scm_must_free (void *obj); SCM_API void scm_must_free (void *obj);
extern void scm_remember_upto_here_1 (SCM obj); SCM_API void scm_remember_upto_here_1 (SCM obj);
extern void scm_remember_upto_here_2 (SCM obj1, SCM obj2); SCM_API void scm_remember_upto_here_2 (SCM obj1, SCM obj2);
extern void scm_remember_upto_here (SCM obj1, ...); SCM_API void scm_remember_upto_here (SCM obj1, ...);
extern SCM scm_return_first (SCM elt, ...); SCM_API SCM scm_return_first (SCM elt, ...);
extern int scm_return_first_int (int x, ...); SCM_API int scm_return_first_int (int x, ...);
extern SCM scm_permanent_object (SCM obj); SCM_API SCM scm_permanent_object (SCM obj);
extern SCM scm_gc_protect_object (SCM obj); SCM_API SCM scm_gc_protect_object (SCM obj);
extern SCM scm_gc_unprotect_object (SCM obj); SCM_API SCM scm_gc_unprotect_object (SCM obj);
extern void scm_gc_register_root (SCM *p); SCM_API void scm_gc_register_root (SCM *p);
extern void scm_gc_unregister_root (SCM *p); SCM_API void scm_gc_unregister_root (SCM *p);
extern void scm_gc_register_roots (SCM *b, unsigned long n); SCM_API void scm_gc_register_roots (SCM *b, unsigned long n);
extern void scm_gc_unregister_roots (SCM *b, unsigned long n); SCM_API void scm_gc_unregister_roots (SCM *b, unsigned long n);
extern int scm_init_storage (void); SCM_API int scm_init_storage (void);
extern void *scm_get_stack_base (void); SCM_API void *scm_get_stack_base (void);
extern void scm_init_gc (void); SCM_API void scm_init_gc (void);
#endif /* SCM_GC_H */ #endif /* SCM_GC_H */

View file

@ -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 */ #endif /* SCM_GDBINT_H */

View file

@ -58,107 +58,109 @@ extern "C" {
#define EXTINL #define EXTINL
#endif /* __GNUC__ */ #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 () #define gh_init () scm_init_guile ()
void gh_repl(int argc, char *argv[]); SCM_API void gh_repl(int argc, char *argv[]);
SCM gh_catch(SCM tag, scm_t_catch_body body, void *body_data, SCM_API SCM gh_catch(SCM tag, scm_t_catch_body body, void *body_data,
scm_t_catch_handler handler, void *handler_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_API SCM gh_eval_str(const char *scheme_code);
SCM gh_eval_str_with_catch(const char *scheme_code, scm_t_catch_handler handler); SCM_API 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_API 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_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) #define gh_load(fname) gh_eval_file(fname)
SCM gh_eval_file_with_catch(const char *scheme_code, scm_t_catch_handler handler); SCM_API 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_standard_handler(const char *scheme_code);
#define gh_defer_ints() SCM_DEFER_INTS #define gh_defer_ints() SCM_DEFER_INTS
#define gh_allow_ints() SCM_ALLOW_INTS #define gh_allow_ints() SCM_ALLOW_INTS
SCM gh_new_procedure(const char *proc_name, SCM (*fn)(), SCM_API SCM gh_new_procedure(const char *proc_name, SCM (*fn)(),
int n_required_args, int n_optional_args, int varp); int n_required_args, int n_optional_args,
SCM gh_new_procedure0_0(const char *proc_name, SCM (*fn)(void)); int varp);
SCM gh_new_procedure0_1(const char *proc_name, SCM (*fn)(SCM)); SCM_API SCM gh_new_procedure0_0(const char *proc_name, SCM (*fn)(void));
SCM gh_new_procedure0_2(const char *proc_name, SCM (*fn)(SCM, SCM)); SCM_API SCM gh_new_procedure0_1(const char *proc_name, SCM (*fn)(SCM));
SCM gh_new_procedure1_0(const char *proc_name, SCM (*fn)(SCM)); SCM_API SCM gh_new_procedure0_2(const char *proc_name, SCM (*fn)(SCM, SCM));
SCM gh_new_procedure1_1(const char *proc_name, SCM (*fn)(SCM, SCM)); SCM_API SCM gh_new_procedure1_0(const char *proc_name, SCM (*fn)(SCM));
SCM gh_new_procedure1_2(const char *proc_name, SCM (*fn)(SCM, SCM, SCM)); SCM_API SCM gh_new_procedure1_1(const char *proc_name, SCM (*fn)(SCM, SCM));
SCM gh_new_procedure2_0(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 gh_new_procedure2_1(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 gh_new_procedure2_2(const char *proc_name, SCM (*fn)(SCM, SCM, SCM, SCM)); SCM_API SCM gh_new_procedure2_1(const char *proc_name, SCM (*fn)(SCM, SCM, SCM));
SCM gh_new_procedure3_0(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 gh_new_procedure4_0(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 gh_new_procedure5_0(const char *proc_name, SCM (*fn)(SCM, SCM, 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 */ /* C to Scheme conversion */
SCM gh_bool2scm(int x); SCM_API SCM gh_bool2scm(int x);
SCM gh_int2scm(int x); SCM_API SCM gh_int2scm(int x);
SCM gh_ulong2scm(unsigned long x); SCM_API SCM gh_ulong2scm(unsigned long x);
SCM gh_long2scm(long x); SCM_API SCM gh_long2scm(long x);
SCM gh_double2scm(double x); SCM_API SCM gh_double2scm(double x);
SCM gh_char2scm(char c); SCM_API SCM gh_char2scm(char c);
SCM gh_str2scm(const char *s, size_t len); SCM_API SCM gh_str2scm(const char *s, size_t len);
SCM gh_str02scm(const char *s); SCM_API SCM gh_str02scm(const char *s);
void gh_set_substr(char *src, SCM dst, long start, size_t len); SCM_API void gh_set_substr(char *src, SCM dst, long start, size_t len);
SCM gh_symbol2scm(const char *symbol_str); SCM_API SCM gh_symbol2scm(const char *symbol_str);
SCM gh_ints2scm(const int *d, long n); SCM_API SCM gh_ints2scm(const int *d, long n);
#ifdef HAVE_ARRAYS #ifdef HAVE_ARRAYS
SCM gh_chars2byvect(const char *d, long n); SCM_API SCM gh_chars2byvect(const char *d, long n);
SCM gh_shorts2svect(const short *d, long n); SCM_API SCM gh_shorts2svect(const short *d, long n);
SCM gh_longs2ivect(const long *d, long n); SCM_API SCM gh_longs2ivect(const long *d, long n);
SCM gh_ulongs2uvect(const unsigned long *d, long n); SCM_API SCM gh_ulongs2uvect(const unsigned long *d, long n);
SCM gh_floats2fvect(const float *d, long n); SCM_API SCM gh_floats2fvect(const float *d, long n);
SCM gh_doubles2dvect(const double *d, long n); SCM_API SCM gh_doubles2dvect(const double *d, long n);
#endif #endif
SCM gh_doubles2scm(const double *d, long n); SCM_API SCM gh_doubles2scm(const double *d, long n);
/* Scheme to C conversion */ /* Scheme to C conversion */
int gh_scm2bool(SCM obj); SCM_API int gh_scm2bool(SCM obj);
int gh_scm2int(SCM obj); SCM_API int gh_scm2int(SCM obj);
unsigned long gh_scm2ulong(SCM obj); SCM_API unsigned long gh_scm2ulong(SCM obj);
long gh_scm2long(SCM obj); SCM_API long gh_scm2long(SCM obj);
char gh_scm2char(SCM obj); SCM_API char gh_scm2char(SCM obj);
double gh_scm2double(SCM obj); SCM_API double gh_scm2double(SCM obj);
char *gh_scm2newstr(SCM str, size_t *lenp); SCM_API char *gh_scm2newstr(SCM str, size_t *lenp);
void gh_get_substr(SCM src, char *dst, long start, size_t len); SCM_API void gh_get_substr(SCM src, char *dst, long start, size_t len);
char *gh_symbol2newstr(SCM sym, size_t *lenp); SCM_API char *gh_symbol2newstr(SCM sym, size_t *lenp);
char *gh_scm2chars(SCM vector, char *result); SCM_API char *gh_scm2chars(SCM vector, char *result);
short *gh_scm2shorts(SCM vector, short *result); SCM_API short *gh_scm2shorts(SCM vector, short *result);
long *gh_scm2longs(SCM vector, long *result); SCM_API long *gh_scm2longs(SCM vector, long *result);
float *gh_scm2floats(SCM vector, float *result); SCM_API float *gh_scm2floats(SCM vector, float *result);
double *gh_scm2doubles(SCM vector, double *result); SCM_API double *gh_scm2doubles(SCM vector, double *result);
/* type predicates: tell you if an SCM object has a given type */ /* type predicates: tell you if an SCM object has a given type */
int gh_boolean_p(SCM val); SCM_API int gh_boolean_p(SCM val);
int gh_symbol_p(SCM val); SCM_API int gh_symbol_p(SCM val);
int gh_char_p(SCM val); SCM_API int gh_char_p(SCM val);
int gh_vector_p(SCM val); SCM_API int gh_vector_p(SCM val);
int gh_pair_p(SCM val); SCM_API int gh_pair_p(SCM val);
int gh_number_p(SCM val); SCM_API int gh_number_p(SCM val);
int gh_string_p(SCM val); SCM_API int gh_string_p(SCM val);
int gh_procedure_p(SCM val); SCM_API int gh_procedure_p(SCM val);
int gh_list_p(SCM val); SCM_API int gh_list_p(SCM val);
int gh_inexact_p(SCM val); SCM_API int gh_inexact_p(SCM val);
int gh_exact_p(SCM val); SCM_API int gh_exact_p(SCM val);
/* more predicates */ /* more predicates */
int gh_eq_p(SCM x, SCM y); SCM_API int gh_eq_p(SCM x, SCM y);
int gh_eqv_p(SCM x, SCM y); SCM_API int gh_eqv_p(SCM x, SCM y);
int gh_equal_p(SCM x, SCM y); SCM_API int gh_equal_p(SCM x, SCM y);
int gh_string_equal_p(SCM s1, SCM s2); SCM_API int gh_string_equal_p(SCM s1, SCM s2);
int gh_null_p(SCM l); SCM_API int gh_null_p(SCM l);
/* standard Scheme procedures available from C */ /* standard Scheme procedures available from C */
#define gh_not(x) scm_not(x) #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 */ /* string manipulation routines */
#define gh_make_string(k, chr) scm_make_string(k, chr) #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() data element by element, but rather as a list. thus, gh_vector()
ends up being identical to gh_list_to_vector() */ ends up being identical to gh_list_to_vector() */
#define gh_vector(ls) scm_vector(ls) #define gh_vector(ls) scm_vector(ls)
SCM gh_make_vector(SCM length, SCM val); SCM_API SCM gh_make_vector(SCM length, SCM val);
SCM gh_vector_set_x(SCM vec, SCM pos, SCM val); SCM_API SCM gh_vector_set_x(SCM vec, SCM pos, SCM val);
SCM gh_vector_ref(SCM vec, SCM pos); SCM_API SCM gh_vector_ref(SCM vec, SCM pos);
unsigned long gh_vector_length (SCM v); SCM_API unsigned long gh_vector_length (SCM v);
unsigned long gh_uniform_vector_length (SCM v); SCM_API unsigned long gh_uniform_vector_length (SCM v);
SCM gh_uniform_vector_ref (SCM v, SCM ilist); SCM_API SCM gh_uniform_vector_ref (SCM v, SCM ilist);
#define gh_list_to_vector(ls) scm_vector(ls) #define gh_list_to_vector(ls) scm_vector(ls)
#define gh_vector_to_list(v) scm_vector_to_list(v) #define gh_vector_to_list(v) scm_vector_to_list(v)
SCM gh_lookup (const char *sname); SCM_API SCM gh_lookup (const char *sname);
SCM gh_module_lookup (SCM module, 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 #define gh_list scm_list_n
unsigned long gh_length(SCM l); SCM_API unsigned long gh_length(SCM l);
SCM gh_append(SCM args); SCM_API SCM gh_append(SCM args);
SCM gh_append2(SCM l1, SCM l2); SCM_API SCM gh_append2(SCM l1, SCM l2);
SCM gh_append3(SCM l1, SCM l2, SCM l3); SCM_API SCM gh_append3(SCM l1, SCM l2, SCM l3);
SCM gh_append4(SCM l1, SCM l2, SCM l3, SCM l4); SCM_API SCM gh_append4(SCM l1, SCM l2, SCM l3, SCM l4);
#define gh_reverse(ls) scm_reverse(ls) #define gh_reverse(ls) scm_reverse(ls)
#define gh_list_tail(ls, k) scm_list_tail(ls, k) #define gh_list_tail(ls, k) scm_list_tail(ls, k)
#define gh_list_ref(ls, k) scm_list_ref(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_assv(x, alist) scm_assv(x, alist)
#define gh_assoc(x, alist) scm_assoc(x, alist) #define gh_assoc(x, alist) scm_assoc(x, alist)
SCM gh_car(SCM x); SCM_API SCM gh_car(SCM x);
SCM gh_cdr(SCM x); SCM_API SCM gh_cdr(SCM x);
SCM gh_caar(SCM x); SCM_API SCM gh_caar(SCM x);
SCM gh_cadr(SCM x); SCM_API SCM gh_cadr(SCM x);
SCM gh_cdar(SCM x); SCM_API SCM gh_cdar(SCM x);
SCM gh_cddr(SCM x); SCM_API SCM gh_cddr(SCM x);
SCM gh_caaar(SCM x); SCM_API SCM gh_caaar(SCM x);
SCM gh_caadr(SCM x); SCM_API SCM gh_caadr(SCM x);
SCM gh_cadar(SCM x); SCM_API SCM gh_cadar(SCM x);
SCM gh_caddr(SCM x); SCM_API SCM gh_caddr(SCM x);
SCM gh_cdaar(SCM x); SCM_API SCM gh_cdaar(SCM x);
SCM gh_cdadr(SCM x); SCM_API SCM gh_cdadr(SCM x);
SCM gh_cddar(SCM x); SCM_API SCM gh_cddar(SCM x);
SCM gh_cdddr(SCM x); SCM_API SCM gh_cdddr(SCM x);
SCM gh_set_car_x(SCM pair, SCM value); SCM_API SCM gh_set_car_x(SCM pair, SCM value);
SCM gh_set_cdr_x(SCM pair, SCM value); SCM_API SCM gh_set_cdr_x(SCM pair, SCM value);
/* Calling Scheme functions from C. */ /* Calling Scheme functions from C. */
SCM gh_apply (SCM proc, SCM ls); SCM_API SCM gh_apply (SCM proc, SCM ls);
SCM gh_call0 (SCM proc); SCM_API SCM gh_call0 (SCM proc);
SCM gh_call1 (SCM proc, SCM arg); SCM_API SCM gh_call1 (SCM proc, SCM arg);
SCM gh_call2 (SCM proc, SCM arg1, SCM arg2); SCM_API SCM gh_call2 (SCM proc, SCM arg1, SCM arg2);
SCM gh_call3 (SCM proc, SCM arg1, SCM arg2, SCM arg3); SCM_API SCM gh_call3 (SCM proc, SCM arg1, SCM arg2, SCM arg3);
/* reading and writing Scheme objects. */ /* reading and writing Scheme objects. */
void gh_display (SCM x); SCM_API void gh_display (SCM x);
void gh_write (SCM x); SCM_API void gh_write (SCM x);
void gh_newline (void); SCM_API void gh_newline (void);
/* void gh_gc_mark(SCM) : mark an SCM as in use. */ /* void gh_gc_mark(SCM) : mark an SCM as in use. */
/* void gh_defer_ints() : don't interrupt code section. */ /* void gh_defer_ints() : don't interrupt code section. */

View file

@ -178,111 +178,127 @@ typedef struct scm_t_method {
#define scm_si_code_table 3 /* offset of code. slot in a <method> */ #define scm_si_code_table 3 /* offset of code. slot in a <method> */
/* C interface */ /* C interface */
extern SCM scm_class_top, scm_class_object, scm_class_class; SCM_API SCM scm_class_top;
extern SCM scm_class_entity, scm_class_entity_with_setter; SCM_API SCM scm_class_object;
extern SCM scm_class_generic, scm_class_generic_with_setter, scm_class_method; SCM_API SCM scm_class_class;
extern SCM scm_class_simple_method, scm_class_accessor; SCM_API SCM scm_class_entity;
extern SCM scm_class_procedure_class; SCM_API SCM scm_class_entity_with_setter;
extern SCM scm_class_operator_class, scm_class_operator_with_setter_class; SCM_API SCM scm_class_generic;
extern SCM scm_class_entity_class; SCM_API SCM scm_class_generic_with_setter;
extern SCM scm_class_number, scm_class_list; SCM_API SCM scm_class_method;
extern SCM scm_class_keyword; SCM_API SCM scm_class_simple_method;
extern SCM scm_class_port, scm_class_input_output_port; SCM_API SCM scm_class_accessor;
extern SCM scm_class_input_port, scm_class_output_port; SCM_API SCM scm_class_procedure_class;
extern SCM scm_class_foreign_class, scm_class_foreign_object; SCM_API SCM scm_class_operator_class;
extern SCM scm_class_foreign_slot; SCM_API SCM scm_class_operator_with_setter_class;
extern SCM scm_class_self, scm_class_protected; SCM_API SCM scm_class_entity_class;
extern SCM scm_class_opaque, scm_class_read_only; SCM_API SCM scm_class_number;
extern SCM scm_class_protected_opaque, scm_class_protected_read_only; SCM_API SCM scm_class_list;
extern SCM scm_class_scm; SCM_API SCM scm_class_keyword;
extern SCM scm_class_int, scm_class_float, scm_class_double; SCM_API SCM scm_class_port;
extern const char *scm_s_slot_set_x; 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;
extern SCM scm_module_goops; SCM_API SCM scm_module_goops;
SCM scm_goops_version (void); SCM_API SCM scm_goops_version (void);
SCM scm_oldfmt (SCM); SCM_API SCM scm_oldfmt (SCM);
char *scm_c_oldfmt0 (char *); SCM_API char *scm_c_oldfmt0 (char *);
char *scm_c_oldfmt (char *, int n); SCM_API char *scm_c_oldfmt (char *, int n);
void scm_load_goops (void); SCM_API void scm_load_goops (void);
SCM scm_make_foreign_object (SCM cls, SCM initargs); SCM_API SCM scm_make_foreign_object (SCM cls, SCM initargs);
SCM scm_make_class (SCM meta, char *s_name, SCM supers, size_t size, SCM_API SCM scm_make_class (SCM meta, char *s_name, SCM supers, size_t size,
void * (*constructor) (SCM initargs), void * (*constructor) (SCM initargs),
size_t (*destructor) (void *)); size_t (*destructor) (void *));
void scm_add_slot (SCM c, char *slot, SCM slot_class, SCM_API void scm_add_slot (SCM c, char *slot, SCM slot_class,
SCM (*getter) (SCM obj), SCM (*getter) (SCM obj),
SCM (*setter) (SCM obj, SCM x), SCM (*setter) (SCM obj, SCM x),
char *accessor_name); char *accessor_name);
SCM scm_wrap_object (SCM c, void *); SCM_API SCM scm_wrap_object (SCM c, void *);
SCM scm_wrap_component (SCM c, SCM obj, void *); SCM_API SCM scm_wrap_component (SCM c, SCM obj, void *);
SCM scm_ensure_accessor (SCM name); SCM_API SCM scm_ensure_accessor (SCM name);
void scm_add_method (SCM gf, SCM m); SCM_API void scm_add_method (SCM gf, SCM m);
/* Low level functions exported */ /* Low level functions exported */
SCM scm_make_next_method (SCM methods, SCM args, SCM gf); SCM_API 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_API 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_basic_make_class (SCM c, SCM name, SCM dsupers, SCM dslots);
/* Primitives exported */ /* Primitives exported */
SCM scm_sys_allocate_instance (SCM c, SCM initargs); SCM_API SCM scm_sys_allocate_instance (SCM c, SCM initargs);
SCM scm_sys_set_object_setter_x (SCM obj, SCM setter); SCM_API SCM scm_sys_set_object_setter_x (SCM obj, SCM setter);
SCM scm_slot_ref (SCM obj, SCM slot_name); SCM_API SCM scm_slot_ref (SCM obj, SCM slot_name);
SCM scm_slot_set_x (SCM obj, SCM slot_name, SCM value); SCM_API 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_API 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_API SCM scm_sys_compute_applicable_methods (SCM gf, SCM args);
SCM scm_m_atslot_ref (SCM xorig, SCM env); SCM_API SCM scm_m_atslot_ref (SCM xorig, SCM env);
SCM scm_m_atslot_set_x (SCM xorig, SCM env); SCM_API SCM scm_m_atslot_set_x (SCM xorig, SCM env);
SCM scm_m_atdispatch (SCM xorig, SCM env); SCM_API SCM scm_m_atdispatch (SCM xorig, SCM env);
#ifdef GUILE_DEBUG #ifdef GUILE_DEBUG
SCM scm_pure_generic_p (SCM obj); SCM_API SCM scm_pure_generic_p (SCM obj);
#endif #endif
SCM scm_sys_compute_slots (SCM c); SCM_API 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_API 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_API SCM scm_get_keyword (SCM key, SCM l, SCM default_value);
SCM scm_sys_initialize_object (SCM obj, SCM initargs); SCM_API SCM scm_sys_initialize_object (SCM obj, SCM initargs);
SCM scm_sys_prep_layout_x (SCM c); SCM_API SCM scm_sys_prep_layout_x (SCM c);
SCM scm_sys_inherit_magic_x (SCM c, SCM dsupers); SCM_API SCM scm_sys_inherit_magic_x (SCM c, SCM dsupers);
SCM scm_instance_p (SCM obj); SCM_API SCM scm_instance_p (SCM obj);
SCM scm_class_name (SCM obj); SCM_API SCM scm_class_name (SCM obj);
SCM scm_class_direct_supers (SCM obj); SCM_API SCM scm_class_direct_supers (SCM obj);
SCM scm_class_direct_slots (SCM obj); SCM_API SCM scm_class_direct_slots (SCM obj);
SCM scm_class_direct_subclasses (SCM obj); SCM_API SCM scm_class_direct_subclasses (SCM obj);
SCM scm_class_direct_methods (SCM obj); SCM_API SCM scm_class_direct_methods (SCM obj);
SCM scm_class_precedence_list (SCM obj); SCM_API SCM scm_class_precedence_list (SCM obj);
SCM scm_class_slots (SCM obj); SCM_API SCM scm_class_slots (SCM obj);
SCM scm_class_environment (SCM obj); SCM_API SCM scm_class_environment (SCM obj);
SCM scm_generic_function_name (SCM obj); SCM_API SCM scm_generic_function_name (SCM obj);
SCM scm_generic_function_methods (SCM obj); SCM_API SCM scm_generic_function_methods (SCM obj);
SCM scm_method_generic_function (SCM obj); SCM_API SCM scm_method_generic_function (SCM obj);
SCM scm_method_specializers (SCM obj); SCM_API SCM scm_method_specializers (SCM obj);
SCM scm_method_procedure (SCM obj); SCM_API SCM scm_method_procedure (SCM obj);
SCM scm_accessor_method_slot_definition (SCM obj); SCM_API SCM scm_accessor_method_slot_definition (SCM obj);
SCM scm_sys_tag_body (SCM body); SCM_API SCM scm_sys_tag_body (SCM body);
SCM scm_sys_fast_slot_ref (SCM obj, SCM index); SCM_API SCM scm_sys_fast_slot_ref (SCM obj, SCM index);
SCM scm_sys_fast_slot_set_x (SCM obj, SCM index, SCM value); SCM_API 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_API 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_API 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_API 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_API 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_API SCM scm_slot_bound_p (SCM obj, SCM slot_name);
SCM scm_slots_exists_p (SCM obj, SCM slot_name); SCM_API SCM scm_slots_exists_p (SCM obj, SCM slot_name);
SCM scm_sys_modify_instance (SCM old, SCM newinst); SCM_API SCM scm_sys_modify_instance (SCM old, SCM newinst);
SCM scm_sys_modify_class (SCM old, SCM newcls); SCM_API SCM scm_sys_modify_class (SCM old, SCM newcls);
SCM scm_sys_invalidate_class (SCM cls); SCM_API SCM scm_sys_invalidate_class (SCM cls);
SCM scm_make_method_cache (SCM gf); SCM_API SCM scm_make_method_cache (SCM gf);
SCM scm_sys_invalidate_method_cache_x (SCM gf); SCM_API SCM scm_sys_invalidate_method_cache_x (SCM gf);
SCM scm_generic_capability_p (SCM proc); SCM_API SCM scm_generic_capability_p (SCM proc);
SCM scm_enable_primitive_generic_x (SCM subrs); SCM_API SCM scm_enable_primitive_generic_x (SCM subrs);
SCM scm_primitive_generic_generic (SCM subr); SCM_API SCM scm_primitive_generic_generic (SCM subr);
SCM stklos_version (void); SCM_API SCM stklos_version (void);
SCM scm_make (SCM args); SCM_API SCM scm_make (SCM args);
SCM scm_find_method (SCM args); SCM_API SCM scm_find_method (SCM args);
SCM scm_sys_method_more_specific_p (SCM m1, SCM m2, SCM targs); SCM_API SCM scm_sys_method_more_specific_p (SCM m1, SCM m2, SCM targs);
SCM scm_init_goops_builtins (void); SCM_API SCM scm_init_goops_builtins (void);
void scm_init_goops (void); SCM_API void scm_init_goops (void);
#if (SCM_DEBUG_DEPRECATED == 0) #if (SCM_DEBUG_DEPRECATED == 0)

View file

@ -61,21 +61,21 @@
#define SCM_GSUBR_PROC(cclo) (SCM_CCLO_REF ((cclo), 2)) #define SCM_GSUBR_PROC(cclo) (SCM_CCLO_REF ((cclo), 2))
#define SCM_SET_GSUBR_PROC(cclo, proc) (SCM_CCLO_SET ((cclo), 2, (proc))) #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, SCM_API SCM scm_c_make_gsubr (const char *name,
int req, int opt, int rst, SCM (*fcn) ()); int req, int opt, int rst, SCM (*fcn) ());
extern SCM scm_c_make_gsubr_with_generic (const char *name, SCM_API SCM scm_c_make_gsubr_with_generic (const char *name,
int req, int opt, int rst, int req, int opt, int rst,
SCM (*fcn) (), SCM *gf); SCM (*fcn) (), SCM *gf);
extern SCM scm_c_define_gsubr (const char *name, SCM_API SCM scm_c_define_gsubr (const char *name,
int req, int opt, int rst, SCM (*fcn) ()); int req, int opt, int rst, SCM (*fcn) ());
extern SCM scm_c_define_gsubr_with_generic (const char *name, SCM_API SCM scm_c_define_gsubr_with_generic (const char *name,
int req, int opt, int rst, int req, int opt, int rst,
SCM (*fcn) (), SCM *gf); SCM (*fcn) (), SCM *gf);
extern SCM scm_gsubr_apply (SCM args); SCM_API SCM scm_gsubr_apply (SCM args);
extern void scm_init_gsubr (void); SCM_API void scm_init_gsubr (void);
#endif /* SCM_GSUBR_H */ #endif /* SCM_GSUBR_H */

View file

@ -48,17 +48,17 @@
#include "libguile/__scm.h" #include "libguile/__scm.h"
SCM scm_make_guardian (SCM greedy_p); SCM_API SCM scm_make_guardian (SCM greedy_p);
SCM scm_destroy_guardian_x (SCM guardian); SCM_API SCM scm_destroy_guardian_x (SCM guardian);
SCM scm_guardian_greedy_p (SCM guardian); SCM_API SCM scm_guardian_greedy_p (SCM guardian);
SCM scm_guardian_destroyed_p (SCM guardian); SCM_API SCM scm_guardian_destroyed_p (SCM guardian);
/* these are to be called from C: */ /* these are to be called from C: */
SCM scm_guard (SCM guardian, SCM obj, int throw_p); SCM_API SCM scm_guard (SCM guardian, SCM obj, int throw_p);
SCM scm_get_one_zombie (SCM guardian); 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 */ #endif /* SCM_GUARDIANS_H */

View file

@ -50,15 +50,15 @@
extern unsigned long scm_string_hash (const unsigned char *str, size_t len); SCM_API 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); SCM_API unsigned long scm_hasher (SCM obj, unsigned long n, size_t d);
extern unsigned long scm_ihashq (SCM obj, unsigned long n); SCM_API unsigned long scm_ihashq (SCM obj, unsigned long n);
extern SCM scm_hashq (SCM obj, SCM n); SCM_API SCM scm_hashq (SCM obj, SCM n);
extern unsigned long scm_ihashv (SCM obj, unsigned long n); SCM_API unsigned long scm_ihashv (SCM obj, unsigned long n);
extern SCM scm_hashv (SCM obj, SCM n); SCM_API SCM scm_hashv (SCM obj, SCM n);
extern unsigned long scm_ihash (SCM obj, unsigned long n); SCM_API unsigned long scm_ihash (SCM obj, unsigned long n);
extern SCM scm_hash (SCM obj, SCM n); SCM_API SCM scm_hash (SCM obj, SCM n);
extern void scm_init_hash (void); SCM_API void scm_init_hash (void);
#endif /* SCM_HASH_H */ #endif /* SCM_HASH_H */

View file

@ -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); typedef SCM scm_t_delete_fn (SCM elt, SCM list);
#endif #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); SCM_API 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); SCM_API 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); SCM_API 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); SCM_API 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); SCM_API 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_internal_hash_fold (SCM (*fn) (), void *closure, SCM init, SCM table);
extern SCM scm_hashq_get_handle (SCM table, SCM obj); SCM_API SCM scm_hashq_get_handle (SCM table, SCM obj);
extern SCM scm_hashq_create_handle_x (SCM table, SCM obj, SCM init); SCM_API SCM scm_hashq_create_handle_x (SCM table, SCM obj, SCM init);
extern SCM scm_hashq_ref (SCM table, SCM obj, SCM dflt); SCM_API SCM scm_hashq_ref (SCM table, SCM obj, SCM dflt);
extern SCM scm_hashq_set_x (SCM table, SCM obj, SCM val); SCM_API SCM scm_hashq_set_x (SCM table, SCM obj, SCM val);
extern SCM scm_hashq_remove_x (SCM table, SCM obj); SCM_API SCM scm_hashq_remove_x (SCM table, SCM obj);
extern SCM scm_hashv_get_handle (SCM table, SCM obj); SCM_API SCM scm_hashv_get_handle (SCM table, SCM obj);
extern SCM scm_hashv_create_handle_x (SCM table, SCM obj, SCM init); SCM_API SCM scm_hashv_create_handle_x (SCM table, SCM obj, SCM init);
extern SCM scm_hashv_ref (SCM table, SCM obj, SCM dflt); SCM_API SCM scm_hashv_ref (SCM table, SCM obj, SCM dflt);
extern SCM scm_hashv_set_x (SCM table, SCM obj, SCM val); SCM_API SCM scm_hashv_set_x (SCM table, SCM obj, SCM val);
extern SCM scm_hashv_remove_x (SCM table, SCM obj); SCM_API SCM scm_hashv_remove_x (SCM table, SCM obj);
extern SCM scm_hash_get_handle (SCM table, SCM obj); SCM_API SCM scm_hash_get_handle (SCM table, SCM obj);
extern SCM scm_hash_create_handle_x (SCM table, SCM obj, SCM init); SCM_API SCM scm_hash_create_handle_x (SCM table, SCM obj, SCM init);
extern SCM scm_hash_ref (SCM table, SCM obj, SCM dflt); SCM_API SCM scm_hash_ref (SCM table, SCM obj, SCM dflt);
extern SCM scm_hash_set_x (SCM table, SCM obj, SCM val); SCM_API SCM scm_hash_set_x (SCM table, SCM obj, SCM val);
extern SCM scm_hash_remove_x (SCM table, SCM obj); SCM_API SCM scm_hash_remove_x (SCM table, SCM obj);
extern SCM scm_hashx_get_handle (SCM hash, SCM assoc, SCM table, SCM obj); SCM_API 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); SCM_API 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); SCM_API 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); SCM_API 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); SCM_API 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); SCM_API SCM scm_hash_fold (SCM proc, SCM init, SCM hash);
extern void scm_init_hashtab (void); SCM_API void scm_init_hashtab (void);
#endif /* SCM_HASHTAB_H */ #endif /* SCM_HASHTAB_H */

View file

@ -79,39 +79,39 @@ typedef struct scm_t_c_hook {
void *data; void *data;
} scm_t_c_hook; } scm_t_c_hook;
extern void scm_c_hook_init (scm_t_c_hook *hook, SCM_API void scm_c_hook_init (scm_t_c_hook *hook,
void *hook_data, void *hook_data,
scm_t_c_hookype_t type); scm_t_c_hookype_t type);
extern void scm_c_hook_add (scm_t_c_hook *hook, SCM_API void scm_c_hook_add (scm_t_c_hook *hook,
scm_t_c_hook_function func, scm_t_c_hook_function func,
void *func_data, void *func_data,
int appendp); int appendp);
extern void scm_c_hook_remove (scm_t_c_hook *hook, SCM_API void scm_c_hook_remove (scm_t_c_hook *hook,
scm_t_c_hook_function func, scm_t_c_hook_function func,
void *func_data); void *func_data);
extern void *scm_c_hook_run (scm_t_c_hook *hook, void *data); SCM_API void *scm_c_hook_run (scm_t_c_hook *hook, void *data);
/* /*
* Scheme level hooks * 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_HOOKP(x) SCM_TYP16_PREDICATE (scm_tc16_hook, x)
#define SCM_HOOK_ARITY(hook) (SCM_CELL_WORD_0 (hook) >> 16) #define SCM_HOOK_ARITY(hook) (SCM_CELL_WORD_0 (hook) >> 16)
#define SCM_HOOK_PROCEDURES(hook) SCM_CELL_OBJECT_1 (hook) #define SCM_HOOK_PROCEDURES(hook) SCM_CELL_OBJECT_1 (hook)
#define SCM_SET_HOOK_PROCEDURES(hook, procs) SCM_SET_CELL_OBJECT_1 ((hook), (procs)) #define SCM_SET_HOOK_PROCEDURES(hook, procs) SCM_SET_CELL_OBJECT_1 ((hook), (procs))
extern SCM scm_make_hook (SCM n_args); SCM_API SCM scm_make_hook (SCM n_args);
extern SCM scm_hook_p (SCM x); SCM_API SCM scm_hook_p (SCM x);
extern SCM scm_hook_empty_p (SCM hook); SCM_API SCM scm_hook_empty_p (SCM hook);
extern SCM scm_add_hook_x (SCM hook, SCM thunk, SCM appendp); SCM_API SCM scm_add_hook_x (SCM hook, SCM thunk, SCM appendp);
extern SCM scm_remove_hook_x (SCM hook, SCM thunk); SCM_API SCM scm_remove_hook_x (SCM hook, SCM thunk);
extern SCM scm_reset_hook_x (SCM hook); SCM_API SCM scm_reset_hook_x (SCM hook);
extern SCM scm_run_hook (SCM hook, SCM args); SCM_API SCM scm_run_hook (SCM hook, SCM args);
extern void scm_c_run_hook (SCM hook, SCM args); SCM_API void scm_c_run_hook (SCM hook, SCM args);
extern SCM scm_hook_to_list (SCM hook); SCM_API SCM scm_hook_to_list (SCM hook);
extern void scm_init_hooks (void); SCM_API void scm_init_hooks (void);
#endif /* SCM_HOOKS_H */ #endif /* SCM_HOOKS_H */

View file

@ -49,17 +49,17 @@
#include "libguile/__scm.h" #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, SCM_API void scm_boot_guile (int argc, char **argv,
void (*main_func) (void *closure, void (*main_func) (void *closure,
int argc, int argc,
char **argv), char **argv),
void *closure); void *closure);
extern void scm_load_startup_files (void); SCM_API void scm_load_startup_files (void);
#endif /* SCM_INIT_H */ #endif /* SCM_INIT_H */

View file

@ -50,16 +50,16 @@
extern SCM scm_ftell (SCM object); SCM_API SCM scm_ftell (SCM object);
extern SCM scm_redirect_port (SCM into_pt, SCM from_pt); SCM_API SCM scm_redirect_port (SCM into_pt, SCM from_pt);
extern SCM scm_dup_to_fdes (SCM fd_or_port, SCM newfd); SCM_API SCM scm_dup_to_fdes (SCM fd_or_port, SCM newfd);
extern SCM scm_dup2 (SCM oldfd, SCM newfd); SCM_API SCM scm_dup2 (SCM oldfd, SCM newfd);
extern SCM scm_fileno (SCM port); SCM_API SCM scm_fileno (SCM port);
extern SCM scm_isatty_p (SCM port); SCM_API SCM scm_isatty_p (SCM port);
extern SCM scm_fdopen (SCM fdes, SCM modes); SCM_API SCM scm_fdopen (SCM fdes, SCM modes);
extern SCM scm_primitive_move_to_fdes (SCM port, SCM fd); SCM_API SCM scm_primitive_move_to_fdes (SCM port, SCM fd);
extern SCM scm_fdes_to_ports (SCM fd); SCM_API SCM scm_fdes_to_ports (SCM fd);
extern void scm_init_ioext (void); SCM_API void scm_init_ioext (void);
#endif /* SCM_IOEXT_H */ #endif /* SCM_IOEXT_H */

View file

@ -89,7 +89,7 @@
#endif /* no FD_SET */ #endif /* no FD_SET */
extern int scm_internal_select (int fds, SCM_API int scm_internal_select (int fds,
SELECT_TYPE *rfds, SELECT_TYPE *rfds,
SELECT_TYPE *wfds, SELECT_TYPE *wfds,
SELECT_TYPE *efds, SELECT_TYPE *efds,
@ -97,10 +97,10 @@ extern int scm_internal_select (int fds,
#ifdef GUILE_ISELECT #ifdef GUILE_ISELECT
extern int scm_I_am_dead; SCM_API int scm_I_am_dead;
extern void scm_error_revive_threads (void); SCM_API void scm_error_revive_threads (void);
extern void scm_init_iselect (void); SCM_API void scm_init_iselect (void);
#endif /* GUILE_ISELECT */ #endif /* GUILE_ISELECT */

View file

@ -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_KEYWORDP(X) (!SCM_IMP (X) && (SCM_CELL_TYPE (X) == scm_tc16_keyword))
#define SCM_KEYWORDSYM(X) (SCM_CELL_OBJECT_1 (X)) #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); SCM_API SCM scm_make_keyword_from_dash_symbol (SCM symbol);
extern SCM scm_c_make_keyword (char *s); SCM_API SCM scm_c_make_keyword (char *s);
extern SCM scm_keyword_p (SCM obj); SCM_API SCM scm_keyword_p (SCM obj);
extern SCM scm_keyword_dash_symbol (SCM keyword); SCM_API SCM scm_keyword_dash_symbol (SCM keyword);
extern void scm_init_keywords (void); SCM_API void scm_init_keywords (void);
#endif /* SCM_KEYWORDS_H */ #endif /* SCM_KEYWORDS_H */

View file

@ -50,8 +50,8 @@
extern SCM scm_lisp_nil; SCM_API SCM scm_lisp_nil;
extern SCM scm_lisp_t; SCM_API SCM scm_lisp_t;
#define SCM_NILP(x) (SCM_EQ_P ((x), scm_lisp_nil)) #define SCM_NILP(x) (SCM_EQ_P ((x), scm_lisp_nil))
#define SCM_NILNULLP(x) (SCM_NILP (x) || SCM_NULLP (x)) #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); SCM_API SCM scm_nil_cons (SCM x, SCM y);
extern SCM scm_nil_car (SCM x); SCM_API SCM scm_nil_car (SCM x);
extern SCM scm_nil_cdr (SCM x); SCM_API SCM scm_nil_cdr (SCM x);
extern SCM scm_null (SCM x); SCM_API SCM scm_null (SCM x);
extern SCM scm_m_while (SCM exp, SCM env); SCM_API SCM scm_m_while (SCM exp, SCM env);
extern SCM scm_nil_eq (SCM x, SCM y); SCM_API SCM scm_nil_eq (SCM x, SCM y);
extern void scm_init_lang (void); SCM_API void scm_init_lang (void);
#endif /* SCM_LANG_H */ #endif /* SCM_LANG_H */

View file

@ -50,43 +50,43 @@
extern SCM scm_list_1 (SCM e1); SCM_API SCM scm_list_1 (SCM e1);
extern SCM scm_list_2 (SCM e1, SCM e2); SCM_API SCM scm_list_2 (SCM e1, SCM e2);
extern SCM scm_list_3 (SCM e1, SCM e2, SCM e3); SCM_API SCM scm_list_3 (SCM e1, SCM e2, SCM e3);
extern SCM scm_list_4 (SCM e1, SCM e2, SCM e3, SCM e4); SCM_API 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); SCM_API SCM scm_list_5 (SCM e1, SCM e2, SCM e3, SCM e4, SCM e5);
extern SCM scm_list_n (SCM elt, ...); SCM_API SCM scm_list_n (SCM elt, ...);
extern SCM scm_list_head (SCM lst, SCM k); SCM_API SCM scm_list_head (SCM lst, SCM k);
extern SCM scm_list (SCM objs); SCM_API SCM scm_list (SCM objs);
extern SCM scm_cons_star (SCM arg, SCM objs); SCM_API SCM scm_cons_star (SCM arg, SCM objs);
extern SCM scm_null_p (SCM x); SCM_API SCM scm_null_p (SCM x);
extern SCM scm_list_p (SCM x); SCM_API SCM scm_list_p (SCM x);
extern long scm_ilength (SCM sx); SCM_API long scm_ilength (SCM sx);
extern SCM scm_length (SCM x); SCM_API SCM scm_length (SCM x);
extern SCM scm_append (SCM args); SCM_API SCM scm_append (SCM args);
extern SCM scm_append_x (SCM args); SCM_API SCM scm_append_x (SCM args);
extern SCM scm_reverse (SCM lst); SCM_API SCM scm_reverse (SCM lst);
extern SCM scm_reverse_x (SCM lst, SCM newtail); SCM_API SCM scm_reverse_x (SCM lst, SCM newtail);
extern SCM scm_list_ref (SCM lst, SCM k); SCM_API SCM scm_list_ref (SCM lst, SCM k);
extern SCM scm_list_set_x (SCM lst, SCM k, SCM val); SCM_API SCM scm_list_set_x (SCM lst, SCM k, SCM val);
extern SCM scm_list_cdr_set_x (SCM lst, SCM k, SCM val); SCM_API SCM scm_list_cdr_set_x (SCM lst, SCM k, SCM val);
extern SCM scm_last_pair (SCM sx); SCM_API SCM scm_last_pair (SCM sx);
extern SCM scm_list_tail (SCM lst, SCM k); SCM_API SCM scm_list_tail (SCM lst, SCM k);
extern SCM scm_c_memq (SCM x, SCM lst); SCM_API SCM scm_c_memq (SCM x, SCM lst);
extern SCM scm_memq (SCM x, SCM lst); SCM_API SCM scm_memq (SCM x, SCM lst);
extern SCM scm_memv (SCM x, SCM lst); SCM_API SCM scm_memv (SCM x, SCM lst);
extern SCM scm_member (SCM x, SCM lst); SCM_API SCM scm_member (SCM x, SCM lst);
extern SCM scm_delq_x (SCM item, SCM lst); SCM_API SCM scm_delq_x (SCM item, SCM lst);
extern SCM scm_delv_x (SCM item, SCM lst); SCM_API SCM scm_delv_x (SCM item, SCM lst);
extern SCM scm_delete_x (SCM item, SCM lst); SCM_API SCM scm_delete_x (SCM item, SCM lst);
extern SCM scm_list_copy (SCM lst); SCM_API SCM scm_list_copy (SCM lst);
extern SCM scm_delq (SCM item, SCM lst); SCM_API SCM scm_delq (SCM item, SCM lst);
extern SCM scm_delv (SCM item, SCM lst); SCM_API SCM scm_delv (SCM item, SCM lst);
extern SCM scm_delete (SCM item, SCM lst); SCM_API SCM scm_delete (SCM item, SCM lst);
extern SCM scm_delq1_x (SCM item, SCM lst); SCM_API SCM scm_delq1_x (SCM item, SCM lst);
extern SCM scm_delv1_x (SCM item, SCM lst); SCM_API SCM scm_delv1_x (SCM item, SCM lst);
extern SCM scm_delete1_x (SCM item, SCM lst); SCM_API SCM scm_delete1_x (SCM item, SCM lst);
extern void scm_init_list (void); SCM_API void scm_init_list (void);
#endif /* SCM_LIST_H */ #endif /* SCM_LIST_H */

View file

@ -49,19 +49,19 @@
#include "libguile/__scm.h" #include "libguile/__scm.h"
extern SCM scm_internal_parse_path (char *path, SCM tail); SCM_API SCM scm_internal_parse_path (char *path, SCM tail);
extern SCM scm_parse_path (SCM path, SCM tail); SCM_API SCM scm_parse_path (SCM path, SCM tail);
extern void scm_init_load_path (void); SCM_API void scm_init_load_path (void);
extern SCM scm_primitive_load (SCM filename); SCM_API SCM scm_primitive_load (SCM filename);
extern SCM scm_c_primitive_load (const char *filename); SCM_API SCM scm_c_primitive_load (const char *filename);
extern SCM scm_sys_package_data_dir (void); SCM_API SCM scm_sys_package_data_dir (void);
extern SCM scm_sys_library_dir (void); SCM_API SCM scm_sys_library_dir (void);
extern SCM scm_sys_site_dir (void); SCM_API SCM scm_sys_site_dir (void);
extern SCM scm_search_path (SCM path, SCM filename, SCM exts); SCM_API SCM scm_search_path (SCM path, SCM filename, SCM exts);
extern SCM scm_sys_search_load_path (SCM filename); SCM_API SCM scm_sys_search_load_path (SCM filename);
extern SCM scm_primitive_load_path (SCM filename); SCM_API SCM scm_primitive_load_path (SCM filename);
extern SCM scm_c_primitive_load_path (const char *filename); SCM_API SCM scm_c_primitive_load_path (const char *filename);
extern void scm_init_load (void); SCM_API void scm_init_load (void);
#endif /* SCM_LOAD_H */ #endif /* SCM_LOAD_H */

View file

@ -57,19 +57,19 @@
#define SCM_MACRO_TYPE(m) (SCM_CELL_WORD_0 (m) >> 16) #define SCM_MACRO_TYPE(m) (SCM_CELL_WORD_0 (m) >> 16)
#define SCM_MACRO_CODE(m) SCM_CELL_OBJECT_1 (m) #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); SCM_API SCM scm_makacro (SCM code);
extern SCM scm_makmacro (SCM code); SCM_API SCM scm_makmacro (SCM code);
extern SCM scm_makmmacro (SCM code); SCM_API SCM scm_makmmacro (SCM code);
extern SCM scm_macro_p (SCM obj); SCM_API SCM scm_macro_p (SCM obj);
extern SCM scm_macro_type (SCM m); SCM_API SCM scm_macro_type (SCM m);
extern SCM scm_macro_name (SCM m); SCM_API SCM scm_macro_name (SCM m);
extern SCM scm_macro_transformer (SCM m); SCM_API SCM scm_macro_transformer (SCM m);
extern SCM scm_make_synt (const char *name, SCM_API SCM scm_make_synt (const char *name,
SCM (*macroizer) (SCM), SCM (*macroizer) (SCM),
SCM (*fcn) ()); SCM (*fcn) ());
extern void scm_init_macros (void); SCM_API void scm_init_macros (void);
#endif /* SCM_MACROS_H */ #endif /* SCM_MACROS_H */

View file

@ -49,7 +49,7 @@
#include "libguile/__scm.h" #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_MALLOCP(X) (SCM_TYP16 (X) == scm_tc16_malloc)
#define SCM_MALLOCDATA(obj) ((char *) SCM_CELL_WORD_1 (obj)) #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); SCM_API SCM scm_malloc_obj (size_t n);
extern void scm_init_mallocs (void); SCM_API void scm_init_mallocs (void);
#endif /* SCM_MALLOCS_H */ #endif /* SCM_MALLOCS_H */

View file

@ -52,8 +52,8 @@
extern int scm_module_system_booted_p; SCM_API int scm_module_system_booted_p;
extern scm_t_bits scm_module_tag; SCM_API scm_t_bits scm_module_tag;
#define SCM_MODULEP(OBJ) \ #define SCM_MODULEP(OBJ) \
(!SCM_IMP (OBJ) && SCM_CELL_TYPE (OBJ) == scm_module_tag) (!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) \ #define SCM_MODULE_TRANSFORMER(module) \
SCM_PACK (SCM_STRUCT_DATA (module)[scm_module_index_transformer]) 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) #define SCM_EVAL_CLOSURE_P(x) SCM_TYP16_PREDICATE (scm_tc16_eval_closure, x)
extern SCM scm_current_module (void); SCM_API SCM scm_current_module (void);
extern SCM scm_interaction_environment (void); SCM_API SCM scm_interaction_environment (void);
extern SCM scm_set_current_module (SCM module); SCM_API SCM scm_set_current_module (SCM module);
extern SCM scm_c_call_with_current_module (SCM module, SCM_API SCM scm_c_call_with_current_module (SCM module,
SCM (*func)(void *), void *data); SCM (*func)(void *), void *data);
extern SCM scm_c_lookup (const char *name); SCM_API SCM scm_c_lookup (const char *name);
extern SCM scm_c_define (const char *name, SCM val); SCM_API SCM scm_c_define (const char *name, SCM val);
extern SCM scm_lookup (SCM symbol); SCM_API SCM scm_lookup (SCM symbol);
extern SCM scm_define (SCM symbol, SCM val); SCM_API SCM scm_define (SCM symbol, SCM val);
extern SCM scm_c_module_lookup (SCM module, const char *name); SCM_API SCM scm_c_module_lookup (SCM module, const char *name);
extern SCM scm_c_module_define (SCM module, const char *name, SCM val); SCM_API SCM scm_c_module_define (SCM module, const char *name, SCM val);
extern SCM scm_module_lookup (SCM module, SCM symbol); SCM_API SCM scm_module_lookup (SCM module, SCM symbol);
extern SCM scm_module_define (SCM module, SCM symbol, SCM val); SCM_API SCM scm_module_define (SCM module, SCM symbol, SCM val);
extern SCM scm_module_reverse_lookup (SCM module, SCM variable); SCM_API SCM scm_module_reverse_lookup (SCM module, SCM variable);
extern SCM scm_c_resolve_module (const char *name); SCM_API SCM scm_c_resolve_module (const char *name);
extern SCM scm_resolve_module (SCM name); SCM_API SCM scm_resolve_module (SCM name);
extern SCM scm_c_define_module (const char *name, SCM_API SCM scm_c_define_module (const char *name,
void (*init)(void *), void *data); void (*init)(void *), void *data);
extern void scm_c_use_module (const char *name); SCM_API void scm_c_use_module (const char *name);
extern void scm_c_export (const char *name, ...); SCM_API void scm_c_export (const char *name, ...);
extern SCM scm_sym2var (SCM sym, SCM thunk, SCM definep); SCM_API SCM scm_sym2var (SCM sym, SCM thunk, SCM definep);
extern SCM scm_module_lookup_closure (SCM module); SCM_API SCM scm_module_lookup_closure (SCM module);
extern SCM scm_module_transformer (SCM module); SCM_API SCM scm_module_transformer (SCM module);
extern SCM scm_current_module_lookup_closure (void); SCM_API SCM scm_current_module_lookup_closure (void);
extern SCM scm_current_module_transformer (void); SCM_API SCM scm_current_module_transformer (void);
extern SCM scm_eval_closure_lookup (SCM eclo, SCM sym, SCM definep); SCM_API SCM scm_eval_closure_lookup (SCM eclo, SCM sym, SCM definep);
extern SCM scm_standard_eval_closure (SCM module); SCM_API SCM scm_standard_eval_closure (SCM module);
extern SCM scm_standard_interface_eval_closure (SCM module); SCM_API SCM scm_standard_interface_eval_closure (SCM module);
extern SCM scm_get_pre_modules_obarray (void); SCM_API SCM scm_get_pre_modules_obarray (void);
extern SCM scm_lookup_closure_module (SCM proc); SCM_API SCM scm_lookup_closure_module (SCM proc);
extern SCM scm_env_top_level (SCM env); SCM_API SCM scm_env_top_level (SCM env);
extern SCM scm_env_module (SCM env); SCM_API SCM scm_env_module (SCM env);
extern SCM scm_top_level_env (SCM thunk); SCM_API SCM scm_top_level_env (SCM thunk);
extern SCM scm_system_module_env_p (SCM env); SCM_API SCM scm_system_module_env_p (SCM env);
extern void scm_modules_prehistory (void); SCM_API void scm_modules_prehistory (void);
extern void scm_init_modules (void); SCM_API void scm_init_modules (void);
#endif /* SCM_MODULES_H */ #endif /* SCM_MODULES_H */

View file

@ -50,15 +50,15 @@
extern SCM scm_gethost (SCM host); SCM_API SCM scm_gethost (SCM host);
extern SCM scm_getnet (SCM name); SCM_API SCM scm_getnet (SCM name);
extern SCM scm_getproto (SCM name); SCM_API SCM scm_getproto (SCM name);
extern SCM scm_getserv (SCM name, SCM proto); SCM_API SCM scm_getserv (SCM name, SCM proto);
extern SCM scm_sethost (SCM arg); SCM_API SCM scm_sethost (SCM arg);
extern SCM scm_setnet (SCM arg); SCM_API SCM scm_setnet (SCM arg);
extern SCM scm_setproto (SCM arg); SCM_API SCM scm_setproto (SCM arg);
extern SCM scm_setserv (SCM arg); SCM_API SCM scm_setserv (SCM arg);
extern void scm_init_net_db (void); SCM_API void scm_init_net_db (void);
#endif /* SCM_NET_DB_H */ #endif /* SCM_NET_DB_H */

View file

@ -93,13 +93,13 @@ INTEGRAL2NUM (ITYPE n)
#define NEED_CHECK #define NEED_CHECK
#else #else
#ifdef UNSIGNED #ifdef UNSIGNED
#if MAX_VALUE > SCM_MOST_POSITIVE_FIXNUM /*#if MAX_VALUE > SCM_MOST_POSITIVE_FIXNUM*/
#define NEED_CHECK #define NEED_CHECK
#endif /*#endif*/
#else #else
#if MIN_VALUE<SCM_MOST_NEGATIVE_FIXNUM || MAX_VALUE>SCM_MOST_POSITIVE_FIXNUM /*#if MIN_VALUE<SCM_MOST_NEGATIVE_FIXNUM || MAX_VALUE>SCM_MOST_POSITIVE_FIXNUM*/
#define NEED_CHECK #define NEED_CHECK
#endif /*#endif*/
#endif #endif
#endif #endif

View file

@ -4415,9 +4415,7 @@ check_sanity ()
#ifdef HAVE_LONG_LONGS #ifdef HAVE_LONG_LONGS
CHECK (long_long, 0LL); CHECK (long_long, 0LL);
CHECK (ulong_long, 0ULL); CHECK (ulong_long, 0ULL);
CHECK (long_long, -1LL); CHECK (long_long, -1LL);
CHECK (long_long, LLONG_MAX); CHECK (long_long, LLONG_MAX);
CHECK (long_long, LLONG_MIN); CHECK (long_long, LLONG_MIN);
CHECK (ulong_long, ULLONG_MAX); CHECK (ulong_long, ULLONG_MAX);

View file

@ -198,142 +198,142 @@ typedef struct scm_t_complex
extern SCM scm_exact_p (SCM x); SCM_API SCM scm_exact_p (SCM x);
extern SCM scm_odd_p (SCM n); SCM_API SCM scm_odd_p (SCM n);
extern SCM scm_even_p (SCM n); SCM_API SCM scm_even_p (SCM n);
extern SCM scm_abs (SCM x); SCM_API SCM scm_abs (SCM x);
extern SCM scm_quotient (SCM x, SCM y); SCM_API SCM scm_quotient (SCM x, SCM y);
extern SCM scm_remainder (SCM x, SCM y); SCM_API SCM scm_remainder (SCM x, SCM y);
extern SCM scm_modulo (SCM x, SCM y); SCM_API SCM scm_modulo (SCM x, SCM y);
extern SCM scm_gcd (SCM x, SCM y); SCM_API SCM scm_gcd (SCM x, SCM y);
extern SCM scm_lcm (SCM n1, SCM n2); SCM_API SCM scm_lcm (SCM n1, SCM n2);
extern SCM scm_logand (SCM n1, SCM n2); SCM_API SCM scm_logand (SCM n1, SCM n2);
extern SCM scm_logior (SCM n1, SCM n2); SCM_API SCM scm_logior (SCM n1, SCM n2);
extern SCM scm_logxor (SCM n1, SCM n2); SCM_API SCM scm_logxor (SCM n1, SCM n2);
extern SCM scm_logtest (SCM n1, SCM n2); SCM_API SCM scm_logtest (SCM n1, SCM n2);
extern SCM scm_logbit_p (SCM n1, SCM n2); SCM_API SCM scm_logbit_p (SCM n1, SCM n2);
extern SCM scm_lognot (SCM n); SCM_API SCM scm_lognot (SCM n);
extern SCM scm_integer_expt (SCM z1, SCM z2); SCM_API SCM scm_integer_expt (SCM z1, SCM z2);
extern SCM scm_ash (SCM n, SCM cnt); SCM_API SCM scm_ash (SCM n, SCM cnt);
extern SCM scm_bit_extract (SCM n, SCM start, SCM end); SCM_API SCM scm_bit_extract (SCM n, SCM start, SCM end);
extern SCM scm_logcount (SCM n); SCM_API SCM scm_logcount (SCM n);
extern SCM scm_integer_length (SCM n); SCM_API SCM scm_integer_length (SCM n);
extern SCM scm_i_mkbig (size_t nlen, int sign); SCM_API SCM scm_i_mkbig (size_t nlen, int sign);
extern SCM scm_i_big2inum (SCM b, size_t l); SCM_API SCM scm_i_big2inum (SCM b, size_t l);
extern SCM scm_i_adjbig (SCM b, size_t nlen); SCM_API SCM scm_i_adjbig (SCM b, size_t nlen);
extern SCM scm_i_normbig (SCM b); SCM_API SCM scm_i_normbig (SCM b);
extern SCM scm_i_copybig (SCM b, int sign); SCM_API SCM scm_i_copybig (SCM b, int sign);
extern SCM scm_i_short2big (short n); SCM_API SCM scm_i_short2big (short n);
extern SCM scm_i_ushort2big (unsigned short n); SCM_API SCM scm_i_ushort2big (unsigned short n);
extern SCM scm_i_int2big (int n); SCM_API SCM scm_i_int2big (int n);
extern SCM scm_i_uint2big (unsigned int n); SCM_API SCM scm_i_uint2big (unsigned int n);
extern SCM scm_i_long2big (long n); SCM_API SCM scm_i_long2big (long n);
extern SCM scm_i_ulong2big (unsigned long n); SCM_API SCM scm_i_ulong2big (unsigned long n);
extern SCM scm_i_size2big (size_t n); SCM_API SCM scm_i_size2big (size_t n);
extern SCM scm_i_ptrdiff2big (ptrdiff_t n); SCM_API SCM scm_i_ptrdiff2big (ptrdiff_t n);
#ifdef HAVE_LONG_LONGS #ifdef HAVE_LONG_LONGS
extern SCM scm_i_long_long2big (long long n); SCM_API SCM scm_i_long_long2big (long long n);
extern SCM scm_i_ulong_long2big (unsigned long long n); SCM_API SCM scm_i_ulong_long2big (unsigned long long n);
#endif #endif
extern int scm_bigcomp (SCM x, SCM y); SCM_API int scm_bigcomp (SCM x, SCM y);
extern long scm_pseudolong (long x); SCM_API long scm_pseudolong (long x);
extern void scm_longdigs (long x, SCM_BIGDIG digs[]); SCM_API void scm_longdigs (long x, SCM_BIGDIG digs[]);
extern SCM scm_addbig (SCM_BIGDIG *x, size_t nx, int xsgn, SCM bigy, int sgny); SCM_API 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); SCM_API 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); SCM_API unsigned int scm_divbigdig (SCM_BIGDIG *ds, size_t h, SCM_BIGDIG div);
extern size_t scm_iint2str (long num, int rad, char *p); SCM_API size_t scm_iint2str (long num, int rad, char *p);
extern SCM scm_number_to_string (SCM x, SCM radix); SCM_API SCM scm_number_to_string (SCM x, SCM radix);
extern int scm_print_real (SCM sexp, SCM port, scm_print_state *pstate); SCM_API 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); SCM_API int scm_print_complex (SCM sexp, SCM port, scm_print_state *pstate);
extern int scm_bigprint (SCM exp, SCM port, scm_print_state *pstate); SCM_API 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); SCM_API SCM scm_i_mem2number (const char *mem, size_t len, unsigned int radix);
extern SCM scm_string_to_number (SCM str, SCM radix); SCM_API SCM scm_string_to_number (SCM str, SCM radix);
extern SCM scm_make_real (double x); SCM_API SCM scm_make_real (double x);
extern SCM scm_make_complex (double x, double y); SCM_API SCM scm_make_complex (double x, double y);
extern SCM scm_bigequal (SCM x, SCM y); SCM_API SCM scm_bigequal (SCM x, SCM y);
extern SCM scm_real_equalp (SCM x, SCM y); SCM_API SCM scm_real_equalp (SCM x, SCM y);
extern SCM scm_complex_equalp (SCM x, SCM y); SCM_API SCM scm_complex_equalp (SCM x, SCM y);
extern SCM scm_number_p (SCM x); SCM_API SCM scm_number_p (SCM x);
extern SCM scm_real_p (SCM x); SCM_API SCM scm_real_p (SCM x);
extern SCM scm_integer_p (SCM x); SCM_API SCM scm_integer_p (SCM x);
extern SCM scm_inexact_p (SCM x); SCM_API SCM scm_inexact_p (SCM x);
extern SCM scm_num_eq_p (SCM x, SCM y); SCM_API SCM scm_num_eq_p (SCM x, SCM y);
extern SCM scm_less_p (SCM x, SCM y); SCM_API SCM scm_less_p (SCM x, SCM y);
extern SCM scm_gr_p (SCM x, SCM y); SCM_API SCM scm_gr_p (SCM x, SCM y);
extern SCM scm_leq_p (SCM x, SCM y); SCM_API SCM scm_leq_p (SCM x, SCM y);
extern SCM scm_geq_p (SCM x, SCM y); SCM_API SCM scm_geq_p (SCM x, SCM y);
extern SCM scm_zero_p (SCM z); SCM_API SCM scm_zero_p (SCM z);
extern SCM scm_positive_p (SCM x); SCM_API SCM scm_positive_p (SCM x);
extern SCM scm_negative_p (SCM x); SCM_API SCM scm_negative_p (SCM x);
extern SCM scm_max (SCM x, SCM y); SCM_API SCM scm_max (SCM x, SCM y);
extern SCM scm_min (SCM x, SCM y); SCM_API SCM scm_min (SCM x, SCM y);
extern SCM scm_sum (SCM x, SCM y); SCM_API SCM scm_sum (SCM x, SCM y);
extern SCM scm_difference (SCM x, SCM y); SCM_API SCM scm_difference (SCM x, SCM y);
extern SCM scm_product (SCM x, SCM y); SCM_API SCM scm_product (SCM x, SCM y);
extern double scm_num2dbl (SCM a, const char * why); SCM_API double scm_num2dbl (SCM a, const char * why);
extern SCM scm_divide (SCM x, SCM y); SCM_API SCM scm_divide (SCM x, SCM y);
extern double scm_asinh (double x); SCM_API double scm_asinh (double x);
extern double scm_acosh (double x); SCM_API double scm_acosh (double x);
extern double scm_atanh (double x); SCM_API double scm_atanh (double x);
extern double scm_truncate (double x); SCM_API double scm_truncate (double x);
extern double scm_round (double x); SCM_API double scm_round (double x);
extern SCM scm_sys_expt (SCM z1, SCM z2); SCM_API SCM scm_sys_expt (SCM z1, SCM z2);
extern SCM scm_sys_atan2 (SCM z1, SCM z2); SCM_API SCM scm_sys_atan2 (SCM z1, SCM z2);
extern SCM scm_make_rectangular (SCM z1, SCM z2); SCM_API SCM scm_make_rectangular (SCM z1, SCM z2);
extern SCM scm_make_polar (SCM z1, SCM z2); SCM_API SCM scm_make_polar (SCM z1, SCM z2);
extern SCM scm_real_part (SCM z); SCM_API SCM scm_real_part (SCM z);
extern SCM scm_imag_part (SCM z); SCM_API SCM scm_imag_part (SCM z);
extern SCM scm_magnitude (SCM z); SCM_API SCM scm_magnitude (SCM z);
extern SCM scm_angle (SCM z); SCM_API SCM scm_angle (SCM z);
extern SCM scm_exact_to_inexact (SCM z); SCM_API SCM scm_exact_to_inexact (SCM z);
extern SCM scm_inexact_to_exact (SCM z); SCM_API SCM scm_inexact_to_exact (SCM z);
extern SCM scm_trunc (SCM x); SCM_API SCM scm_trunc (SCM x);
extern SCM scm_i_dbl2big (double d); SCM_API SCM scm_i_dbl2big (double d);
extern double scm_i_big2dbl (SCM b); SCM_API double scm_i_big2dbl (SCM b);
extern SCM scm_short2num (short n); SCM_API SCM scm_short2num (short n);
extern SCM scm_ushort2num (unsigned short n); SCM_API SCM scm_ushort2num (unsigned short n);
extern SCM scm_int2num (int n); SCM_API SCM scm_int2num (int n);
extern SCM scm_uint2num (unsigned int n); SCM_API SCM scm_uint2num (unsigned int n);
extern SCM scm_long2num (long n); SCM_API SCM scm_long2num (long n);
extern SCM scm_ulong2num (unsigned long n); SCM_API SCM scm_ulong2num (unsigned long n);
extern SCM scm_size2num (size_t n); SCM_API SCM scm_size2num (size_t n);
extern SCM scm_ptrdiff2num (ptrdiff_t n); SCM_API SCM scm_ptrdiff2num (ptrdiff_t n);
extern short scm_num2short (SCM num, unsigned long int pos, SCM_API short scm_num2short (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
extern unsigned short scm_num2ushort (SCM num, unsigned long int pos, SCM_API unsigned short scm_num2ushort (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
extern int scm_num2int (SCM num, unsigned long int pos, SCM_API int scm_num2int (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
extern unsigned int scm_num2uint (SCM num, unsigned long int pos, SCM_API unsigned int scm_num2uint (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
extern long scm_num2long (SCM num, unsigned long int pos, SCM_API long scm_num2long (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
extern unsigned long scm_num2ulong (SCM num, unsigned long int pos, SCM_API unsigned long scm_num2ulong (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
extern ptrdiff_t scm_num2ptrdiff (SCM num, unsigned long int pos, SCM_API ptrdiff_t scm_num2ptrdiff (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
extern size_t scm_num2size (SCM num, unsigned long int pos, SCM_API size_t scm_num2size (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
#ifdef HAVE_LONG_LONGS #ifdef HAVE_LONG_LONGS
extern SCM scm_long_long2num (long long sl); SCM_API SCM scm_long_long2num (long long sl);
extern SCM scm_ulong_long2num (unsigned long long sl); SCM_API SCM scm_ulong_long2num (unsigned long long sl);
extern long long scm_num2long_long (SCM num, unsigned long int pos, SCM_API long long scm_num2long_long (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
extern unsigned long long scm_num2ulong_long (SCM num, unsigned long int pos, SCM_API unsigned long long scm_num2ulong_long (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
#endif #endif
extern SCM scm_float2num (float n); SCM_API SCM scm_float2num (float n);
extern SCM scm_double2num (double n); SCM_API SCM scm_double2num (double n);
extern float scm_num2float (SCM num, unsigned long int pos, SCM_API float scm_num2float (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
extern double scm_num2double (SCM num, unsigned long int pos, SCM_API double scm_num2double (SCM num, unsigned long int pos,
const char *s_caller); const char *s_caller);
extern void scm_init_numbers (void); SCM_API void scm_init_numbers (void);
#endif /* SCM_NUMBERS_H */ #endif /* SCM_NUMBERS_H */

View file

@ -198,48 +198,55 @@ typedef struct scm_effective_slot_definition {
#define SCM_INOUT_PCLASS_INDEX 0x200 #define SCM_INOUT_PCLASS_INDEX 0x200
/* Plugin proxy classes for basic types. */ /* Plugin proxy classes for basic types. */
extern SCM scm_metaclass_standard; SCM_API SCM scm_metaclass_standard;
extern SCM scm_metaclass_operator; SCM_API SCM scm_metaclass_operator;
extern SCM scm_class_boolean, scm_class_char, scm_class_pair; SCM_API SCM scm_class_boolean;
extern SCM scm_class_procedure, scm_class_string, scm_class_symbol; SCM_API SCM scm_class_char;
extern SCM scm_class_procedure_with_setter, scm_class_primitive_generic; SCM_API SCM scm_class_pair;
extern SCM scm_class_vector, scm_class_null; SCM_API SCM scm_class_procedure;
extern SCM scm_class_real, scm_class_complex, scm_class_integer; SCM_API SCM scm_class_string;
extern SCM scm_class_unknown; SCM_API SCM scm_class_symbol;
extern SCM *scm_port_class; SCM_API SCM scm_class_procedure_with_setter;
extern SCM *scm_smob_class; 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;
extern SCM scm_no_applicable_method; SCM_API SCM scm_no_applicable_method;
/* Goops functions. */ /* Goops functions. */
extern SCM scm_make_extended_class (char *type_name); SCM_API SCM scm_make_extended_class (char *type_name);
extern void scm_make_port_classes (long ptobnum, char *type_name); SCM_API void scm_make_port_classes (long ptobnum, char *type_name);
extern void scm_change_object_class (SCM, SCM, SCM); SCM_API void scm_change_object_class (SCM, SCM, SCM);
extern SCM scm_memoize_method (SCM x, SCM args); SCM_API SCM scm_memoize_method (SCM x, SCM args);
extern SCM scm_class_of (SCM obj); SCM_API SCM scm_class_of (SCM obj);
extern SCM scm_mcache_lookup_cmethod (SCM cache, SCM args); SCM_API SCM scm_mcache_lookup_cmethod (SCM cache, SCM args);
extern SCM scm_mcache_compute_cmethod (SCM cache, SCM args); SCM_API SCM scm_mcache_compute_cmethod (SCM cache, SCM args);
/* The following are declared in __scm.h /* The following are declared in __scm.h
extern SCM scm_call_generic_0 (SCM gf); SCM_API SCM scm_call_generic_0 (SCM gf);
extern SCM scm_call_generic_1 (SCM gf, SCM a1); SCM_API SCM scm_call_generic_1 (SCM gf, SCM a1);
extern SCM scm_call_generic_2 (SCM gf, SCM a1, SCM a2); SCM_API SCM scm_call_generic_2 (SCM gf, SCM a1, SCM a2);
extern SCM scm_apply_generic (SCM gf, SCM args); SCM_API SCM scm_apply_generic (SCM gf, SCM args);
*/ */
extern SCM scm_call_generic_3 (SCM gf, SCM a1, SCM a2, SCM a3); SCM_API SCM scm_call_generic_3 (SCM gf, SCM a1, SCM a2, SCM a3);
extern SCM scm_entity_p (SCM obj); SCM_API SCM scm_entity_p (SCM obj);
extern SCM scm_operator_p (SCM obj); SCM_API SCM scm_operator_p (SCM obj);
extern SCM scm_valid_object_procedure_p (SCM proc); SCM_API SCM scm_valid_object_procedure_p (SCM proc);
extern SCM scm_set_object_procedure_x (SCM obj, SCM proc); SCM_API SCM scm_set_object_procedure_x (SCM obj, SCM proc);
#ifdef GUILE_DEBUG #ifdef GUILE_DEBUG
extern SCM scm_object_procedure (SCM obj); SCM_API SCM scm_object_procedure (SCM obj);
#endif #endif
extern SCM scm_make_class_object (SCM metaclass, SCM layout); SCM_API SCM scm_make_class_object (SCM metaclass, SCM layout);
extern SCM scm_make_subclass_object (SCM c, 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, SCM_API SCM scm_i_make_class_object (SCM metaclass, SCM layout_string,
unsigned long flags); unsigned long flags);
extern void scm_init_objects (void); SCM_API void scm_init_objects (void);
#endif /* SCM_OBJECTS_H */ #endif /* SCM_OBJECTS_H */

View file

@ -50,11 +50,11 @@
extern SCM scm_object_properties (SCM obj); SCM_API SCM scm_object_properties (SCM obj);
extern SCM scm_set_object_properties_x (SCM obj, SCM plist); SCM_API SCM scm_set_object_properties_x (SCM obj, SCM plist);
extern SCM scm_object_property (SCM obj, SCM key); SCM_API SCM scm_object_property (SCM obj, SCM key);
extern SCM scm_set_object_property_x (SCM obj, SCM key, SCM val); SCM_API SCM scm_set_object_property_x (SCM obj, SCM key, SCM val);
extern void scm_init_objprop (void); SCM_API void scm_init_objprop (void);
#endif /* SCM_OBJPROP_H */ #endif /* SCM_OBJPROP_H */

View file

@ -67,9 +67,9 @@ typedef struct scm_t_option
#define SCM_OPTION_SCM 2 #define SCM_OPTION_SCM 2
extern SCM scm_options (SCM, scm_t_option [], unsigned int, const char*); SCM_API SCM scm_options (SCM, scm_t_option [], unsigned int, const char*);
extern void scm_init_opts (SCM (*) (SCM), scm_t_option [], unsigned int n); SCM_API void scm_init_opts (SCM (*) (SCM), scm_t_option [], unsigned int n);
extern void scm_init_options (void); SCM_API void scm_init_options (void);
#endif /* SCM_OPTIONS_H */ #endif /* SCM_OPTIONS_H */

View file

@ -101,14 +101,14 @@
#if (SCM_DEBUG_PAIR_ACCESSES == 1) #if (SCM_DEBUG_PAIR_ACCESSES == 1)
extern void scm_error_pair_access (SCM); SCM_API void scm_error_pair_access (SCM);
#endif #endif
extern SCM scm_cons (SCM x, SCM y); SCM_API SCM scm_cons (SCM x, SCM y);
extern SCM scm_cons2 (SCM w, SCM x, SCM y); SCM_API SCM scm_cons2 (SCM w, SCM x, SCM y);
extern SCM scm_pair_p (SCM x); SCM_API SCM scm_pair_p (SCM x);
extern SCM scm_set_car_x (SCM pair, SCM value); SCM_API SCM scm_set_car_x (SCM pair, SCM value);
extern SCM scm_set_cdr_x (SCM pair, SCM value); SCM_API SCM scm_set_cdr_x (SCM pair, SCM value);
extern void scm_init_pairs (void); SCM_API void scm_init_pairs (void);
#endif /* SCM_PAIRS_H */ #endif /* SCM_PAIRS_H */

View file

@ -132,8 +132,8 @@ typedef struct
size_t putback_buf_size; /* allocated size of putback_buf. */ size_t putback_buf_size; /* allocated size of putback_buf. */
} scm_t_port; } scm_t_port;
extern scm_t_port **scm_port_table; SCM_API scm_t_port **scm_port_table;
extern long scm_port_table_size; /* Number of ports in 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) #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; SCM_API scm_t_ptob_descriptor *scm_ptobs;
extern long scm_numptob; SCM_API long scm_numptob;
extern long scm_port_table_room; SCM_API long scm_port_table_room;
extern SCM scm_markstream (SCM ptr); SCM_API SCM scm_markstream (SCM ptr);
extern scm_t_bits scm_make_port_type (char *name, SCM_API scm_t_bits scm_make_port_type (char *name,
int (*fill_input) (SCM port), int (*fill_input) (SCM port),
void (*write) (SCM port, void (*write) (SCM port,
const void *data, const void *data,
size_t size)); size_t size));
extern void scm_set_port_mark (long tc, SCM (*mark) (SCM)); SCM_API void scm_set_port_mark (long tc, SCM (*mark) (SCM));
extern void scm_set_port_free (long tc, size_t (*free) (SCM)); SCM_API void scm_set_port_free (long tc, size_t (*free) (SCM));
extern void scm_set_port_print (long tc, SCM_API void scm_set_port_print (long tc,
int (*print) (SCM exp, int (*print) (SCM exp,
SCM port, SCM port,
scm_print_state *pstate)); scm_print_state *pstate));
extern void scm_set_port_equalp (long tc, SCM (*equalp) (SCM, SCM)); SCM_API void scm_set_port_equalp (long tc, SCM (*equalp) (SCM, SCM));
extern void scm_set_port_close (long tc, int (*close) (SCM)); SCM_API void scm_set_port_close (long tc, int (*close) (SCM));
extern void scm_set_port_flush (long tc, SCM_API void scm_set_port_flush (long tc,
void (*flush) (SCM port)); void (*flush) (SCM port));
extern void scm_set_port_end_input (long tc, SCM_API void scm_set_port_end_input (long tc,
void (*end_input) (SCM port, void (*end_input) (SCM port,
int offset)); int offset));
extern void scm_set_port_seek (long tc, SCM_API void scm_set_port_seek (long tc,
off_t (*seek) (SCM port, off_t (*seek) (SCM port,
off_t OFFSET, off_t OFFSET,
int WHENCE)); int WHENCE));
extern void scm_set_port_truncate (long tc, SCM_API void scm_set_port_truncate (long tc,
void (*truncate) (SCM port, void (*truncate) (SCM port,
off_t length)); off_t length));
extern void scm_set_port_input_waiting (long tc, int (*input_waiting) (SCM)); SCM_API void scm_set_port_input_waiting (long tc, int (*input_waiting) (SCM));
extern SCM scm_char_ready_p (SCM port); SCM_API SCM scm_char_ready_p (SCM port);
size_t scm_take_from_input_buffers (SCM port, char *dest, size_t read_len); size_t scm_take_from_input_buffers (SCM port, char *dest, size_t read_len);
extern SCM scm_drain_input (SCM port); SCM_API SCM scm_drain_input (SCM port);
extern SCM scm_current_input_port (void); SCM_API SCM scm_current_input_port (void);
extern SCM scm_current_output_port (void); SCM_API SCM scm_current_output_port (void);
extern SCM scm_current_error_port (void); SCM_API SCM scm_current_error_port (void);
extern SCM scm_current_load_port (void); SCM_API SCM scm_current_load_port (void);
extern SCM scm_set_current_input_port (SCM port); SCM_API SCM scm_set_current_input_port (SCM port);
extern SCM scm_set_current_output_port (SCM port); SCM_API SCM scm_set_current_output_port (SCM port);
extern SCM scm_set_current_error_port (SCM port); SCM_API SCM scm_set_current_error_port (SCM port);
extern scm_t_port * scm_add_to_port_table (SCM port); SCM_API scm_t_port * scm_add_to_port_table (SCM port);
extern void scm_remove_from_port_table (SCM port); SCM_API void scm_remove_from_port_table (SCM port);
extern void scm_grow_port_cbuf (SCM port, size_t requested); SCM_API void scm_grow_port_cbuf (SCM port, size_t requested);
extern SCM scm_pt_size (void); SCM_API SCM scm_pt_size (void);
extern SCM scm_pt_member (SCM member); SCM_API SCM scm_pt_member (SCM member);
extern void scm_port_non_buffer (scm_t_port *pt); SCM_API void scm_port_non_buffer (scm_t_port *pt);
extern int scm_revealed_count (SCM port); SCM_API int scm_revealed_count (SCM port);
extern SCM scm_port_revealed (SCM port); SCM_API SCM scm_port_revealed (SCM port);
extern SCM scm_set_port_revealed_x (SCM port, SCM rcount); SCM_API SCM scm_set_port_revealed_x (SCM port, SCM rcount);
extern long scm_mode_bits (char *modes); SCM_API long scm_mode_bits (char *modes);
extern SCM scm_port_mode (SCM port); SCM_API SCM scm_port_mode (SCM port);
extern SCM scm_close_input_port (SCM port); SCM_API SCM scm_close_input_port (SCM port);
extern SCM scm_close_output_port (SCM port); SCM_API SCM scm_close_output_port (SCM port);
extern SCM scm_close_port (SCM port); SCM_API SCM scm_close_port (SCM port);
extern SCM scm_port_for_each (SCM proc); SCM_API SCM scm_port_for_each (SCM proc);
extern SCM scm_input_port_p (SCM x); SCM_API SCM scm_input_port_p (SCM x);
extern SCM scm_output_port_p (SCM x); SCM_API SCM scm_output_port_p (SCM x);
extern SCM scm_port_p (SCM x); SCM_API SCM scm_port_p (SCM x);
extern SCM scm_port_closed_p (SCM port); SCM_API SCM scm_port_closed_p (SCM port);
extern SCM scm_eof_object_p (SCM x); SCM_API SCM scm_eof_object_p (SCM x);
extern SCM scm_force_output (SCM port); SCM_API SCM scm_force_output (SCM port);
extern SCM scm_flush_all_ports (void); SCM_API SCM scm_flush_all_ports (void);
extern SCM scm_read_char (SCM port); SCM_API SCM scm_read_char (SCM port);
extern void scm_putc (char c, SCM port); SCM_API void scm_putc (char c, SCM port);
extern void scm_puts (const char *str_data, SCM port); SCM_API void scm_puts (const char *str_data, SCM port);
extern size_t scm_c_read (SCM port, void *buffer, size_t size); SCM_API 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); SCM_API void scm_c_write (SCM port, const void *buffer, size_t size);
extern void scm_lfwrite (const char *ptr, size_t size, SCM port); SCM_API void scm_lfwrite (const char *ptr, size_t size, SCM port);
extern void scm_flush (SCM port); SCM_API void scm_flush (SCM port);
extern void scm_end_input (SCM port); SCM_API void scm_end_input (SCM port);
extern int scm_fill_input (SCM port); SCM_API int scm_fill_input (SCM port);
extern int scm_getc (SCM port); SCM_API int scm_getc (SCM port);
extern void scm_ungetc (int c, SCM port); SCM_API void scm_ungetc (int c, SCM port);
extern void scm_ungets (const char *s, int n, SCM port); SCM_API void scm_ungets (const char *s, int n, SCM port);
extern SCM scm_peek_char (SCM port); SCM_API SCM scm_peek_char (SCM port);
extern SCM scm_unread_char (SCM cobj, SCM port); SCM_API SCM scm_unread_char (SCM cobj, SCM port);
extern SCM scm_unread_string (SCM str, SCM port); SCM_API SCM scm_unread_string (SCM str, SCM port);
extern SCM scm_seek (SCM object, SCM offset, SCM whence); SCM_API SCM scm_seek (SCM object, SCM offset, SCM whence);
extern SCM scm_truncate_file (SCM object, SCM length); SCM_API SCM scm_truncate_file (SCM object, SCM length);
extern SCM scm_port_line (SCM port); SCM_API SCM scm_port_line (SCM port);
extern SCM scm_set_port_line_x (SCM port, SCM line); SCM_API SCM scm_set_port_line_x (SCM port, SCM line);
extern SCM scm_port_column (SCM port); SCM_API SCM scm_port_column (SCM port);
extern SCM scm_set_port_column_x (SCM port, SCM line); SCM_API SCM scm_set_port_column_x (SCM port, SCM line);
extern SCM scm_port_filename (SCM port); SCM_API SCM scm_port_filename (SCM port);
extern SCM scm_set_port_filename_x (SCM port, SCM filename); SCM_API SCM scm_set_port_filename_x (SCM port, SCM filename);
extern int scm_port_print (SCM exp, SCM port, scm_print_state *); SCM_API int scm_port_print (SCM exp, SCM port, scm_print_state *);
extern void scm_print_port_mode (SCM exp, SCM port); SCM_API void scm_print_port_mode (SCM exp, SCM port);
extern void scm_ports_prehistory (void); SCM_API void scm_ports_prehistory (void);
extern SCM scm_void_port (char * mode_str); SCM_API SCM scm_void_port (char * mode_str);
extern SCM scm_sys_make_void_port (SCM mode); SCM_API SCM scm_sys_make_void_port (SCM mode);
extern void scm_init_ports (void); SCM_API void scm_init_ports (void);
#ifdef GUILE_DEBUG #ifdef GUILE_DEBUG
extern SCM scm_pt_size (void); SCM_API SCM scm_pt_size (void);
extern SCM scm_pt_member (SCM member); SCM_API SCM scm_pt_member (SCM member);
#endif /* GUILE_DEBUG */ #endif /* GUILE_DEBUG */
#endif /* SCM_PORTS_H */ #endif /* SCM_PORTS_H */

View file

@ -53,62 +53,62 @@
extern SCM scm_tcsetpgrp (SCM port, SCM pgid); SCM_API SCM scm_tcsetpgrp (SCM port, SCM pgid);
extern SCM scm_tcgetpgrp (SCM port); SCM_API SCM scm_tcgetpgrp (SCM port);
extern SCM scm_ctermid (void); SCM_API SCM scm_ctermid (void);
extern SCM scm_setsid (void); SCM_API SCM scm_setsid (void);
extern SCM scm_setpgid (SCM pid, SCM pgid); SCM_API SCM scm_setpgid (SCM pid, SCM pgid);
extern SCM scm_pipe (void); SCM_API SCM scm_pipe (void);
extern SCM scm_getgroups (void); SCM_API SCM scm_getgroups (void);
extern SCM scm_getpgrp (void); SCM_API SCM scm_getpgrp (void);
extern SCM scm_getpwuid (SCM user); SCM_API SCM scm_getpwuid (SCM user);
extern SCM scm_setpwent (SCM arg); SCM_API SCM scm_setpwent (SCM arg);
extern SCM scm_getgrgid (SCM name); SCM_API SCM scm_getgrgid (SCM name);
extern SCM scm_setgrent (SCM arg); SCM_API SCM scm_setgrent (SCM arg);
extern SCM scm_kill (SCM pid, SCM sig); SCM_API SCM scm_kill (SCM pid, SCM sig);
extern SCM scm_waitpid (SCM pid, SCM options); SCM_API SCM scm_waitpid (SCM pid, SCM options);
extern SCM scm_status_exit_val (SCM status); SCM_API SCM scm_status_exit_val (SCM status);
extern SCM scm_status_term_sig (SCM status); SCM_API SCM scm_status_term_sig (SCM status);
extern SCM scm_status_stop_sig (SCM status); SCM_API SCM scm_status_stop_sig (SCM status);
extern SCM scm_getppid (void); SCM_API SCM scm_getppid (void);
extern SCM scm_getuid (void); SCM_API SCM scm_getuid (void);
extern SCM scm_getgid (void); SCM_API SCM scm_getgid (void);
extern SCM scm_geteuid (void); SCM_API SCM scm_geteuid (void);
extern SCM scm_getegid (void); SCM_API SCM scm_getegid (void);
extern SCM scm_setuid (SCM id); SCM_API SCM scm_setuid (SCM id);
extern SCM scm_setgid (SCM id); SCM_API SCM scm_setgid (SCM id);
extern SCM scm_seteuid (SCM id); SCM_API SCM scm_seteuid (SCM id);
extern SCM scm_setegid (SCM id); SCM_API SCM scm_setegid (SCM id);
extern SCM scm_ttyname (SCM port); SCM_API SCM scm_ttyname (SCM port);
extern SCM scm_execl (SCM filename, SCM args); SCM_API SCM scm_execl (SCM filename, SCM args);
extern SCM scm_execlp (SCM filename, SCM args); SCM_API SCM scm_execlp (SCM filename, SCM args);
extern SCM scm_execle (SCM filename, SCM env, SCM args); SCM_API SCM scm_execle (SCM filename, SCM env, SCM args);
extern SCM scm_fork (void); SCM_API SCM scm_fork (void);
extern SCM scm_uname (void); SCM_API SCM scm_uname (void);
extern SCM scm_environ (SCM env); SCM_API SCM scm_environ (SCM env);
extern SCM scm_tmpnam (void); SCM_API SCM scm_tmpnam (void);
extern SCM scm_mkstemp (SCM tmpl); SCM_API SCM scm_mkstemp (SCM tmpl);
extern SCM scm_open_pipe (SCM pipestr, SCM modes); SCM_API SCM scm_open_pipe (SCM pipestr, SCM modes);
extern SCM scm_close_pipe (SCM port); SCM_API SCM scm_close_pipe (SCM port);
extern SCM scm_utime (SCM pathname, SCM actime, SCM modtime); SCM_API SCM scm_utime (SCM pathname, SCM actime, SCM modtime);
extern SCM scm_access (SCM path, SCM how); SCM_API SCM scm_access (SCM path, SCM how);
extern SCM scm_getpid (void); SCM_API SCM scm_getpid (void);
extern SCM scm_putenv (SCM str); SCM_API SCM scm_putenv (SCM str);
extern SCM scm_setlocale (SCM category, SCM locale); SCM_API SCM scm_setlocale (SCM category, SCM locale);
extern SCM scm_mknod (SCM path, SCM type, SCM perms, SCM dev); SCM_API SCM scm_mknod (SCM path, SCM type, SCM perms, SCM dev);
extern SCM scm_nice (SCM incr); SCM_API SCM scm_nice (SCM incr);
extern SCM scm_sync (void); SCM_API SCM scm_sync (void);
extern SCM scm_crypt (SCM key, SCM salt); SCM_API SCM scm_crypt (SCM key, SCM salt);
extern SCM scm_chroot (SCM path); SCM_API SCM scm_chroot (SCM path);
extern SCM scm_getlogin (void); SCM_API SCM scm_getlogin (void);
extern SCM scm_cuserid (void); SCM_API SCM scm_cuserid (void);
extern SCM scm_getpriority (SCM which, SCM who); SCM_API SCM scm_getpriority (SCM which, SCM who);
extern SCM scm_setpriority (SCM which, SCM who, SCM prio); SCM_API SCM scm_setpriority (SCM which, SCM who, SCM prio);
extern SCM scm_getpass (SCM prompt); SCM_API SCM scm_getpass (SCM prompt);
extern SCM scm_flock (SCM file, SCM operation); SCM_API SCM scm_flock (SCM file, SCM operation);
extern SCM scm_sethostname (SCM name); SCM_API SCM scm_sethostname (SCM name);
extern SCM scm_gethostname (void); SCM_API SCM scm_gethostname (void);
extern void scm_init_posix (void); SCM_API void scm_init_posix (void);
#endif /* SCM_POSIX_H */ #endif /* SCM_POSIX_H */

View file

@ -50,7 +50,7 @@
#include "libguile/options.h" #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_CLOSURE (SCM_PACK (scm_print_opts[0].val))
#define SCM_PRINT_SOURCE_P ((int) scm_print_opts[1].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 ref_vect;
} scm_print_state; } scm_print_state;
extern SCM scm_print_state_vtable; SCM_API SCM scm_print_state_vtable;
extern scm_t_bits scm_tc16_port_with_ps; SCM_API scm_t_bits scm_tc16_port_with_ps;
extern SCM scm_print_options (SCM setting); SCM_API SCM scm_print_options (SCM setting);
SCM scm_make_print_state (void); SCM_API SCM scm_make_print_state (void);
void scm_free_print_state (SCM print_state); SCM_API void scm_free_print_state (SCM print_state);
extern void scm_intprint (long n, int radix, SCM port); SCM_API void scm_intprint (long n, int radix, SCM port);
extern void scm_ipruk (char *hdr, SCM ptr, SCM port); SCM_API 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); SCM_API 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); SCM_API void scm_print_symbol_name (const char *str, size_t len, SCM port);
extern void scm_prin1 (SCM exp, SCM port, int writingp); SCM_API void scm_prin1 (SCM exp, SCM port, int writingp);
extern void scm_iprin1 (SCM exp, SCM port, scm_print_state *pstate); SCM_API void scm_iprin1 (SCM exp, SCM port, scm_print_state *pstate);
extern SCM scm_write (SCM obj, SCM port); SCM_API SCM scm_write (SCM obj, SCM port);
extern SCM scm_display (SCM obj, SCM port); SCM_API SCM scm_display (SCM obj, SCM port);
extern SCM scm_simple_format (SCM port, SCM message, SCM args); SCM_API SCM scm_simple_format (SCM port, SCM message, SCM args);
extern SCM scm_newline (SCM port); SCM_API SCM scm_newline (SCM port);
extern SCM scm_write_char (SCM chr, SCM port); SCM_API SCM scm_write_char (SCM chr, SCM port);
extern SCM scm_printer_apply (SCM proc, SCM exp, SCM port, scm_print_state *); SCM_API SCM scm_printer_apply (SCM proc, SCM exp, SCM port, scm_print_state *);
extern SCM scm_port_with_print_state (SCM port, SCM pstate); SCM_API SCM scm_port_with_print_state (SCM port, SCM pstate);
extern SCM scm_get_print_state (SCM port); SCM_API SCM scm_get_print_state (SCM port);
extern int scm_valid_oport_value_p (SCM val); SCM_API int scm_valid_oport_value_p (SCM val);
extern void scm_init_print (void); SCM_API void scm_init_print (void);
#ifdef GUILE_DEBUG #ifdef GUILE_DEBUG
extern SCM scm_current_pstate (void); SCM_API SCM scm_current_pstate (void);
#endif #endif
#endif /* SCM_PRINT_H */ #endif /* SCM_PRINT_H */

View file

@ -50,18 +50,18 @@
extern SCM scm_sym_name; SCM_API SCM scm_sym_name;
extern SCM scm_sym_arity; SCM_API SCM scm_sym_arity;
extern SCM scm_sym_system_procedure; SCM_API SCM scm_sym_system_procedure;
extern SCM scm_i_procedure_arity (SCM proc); SCM_API SCM scm_i_procedure_arity (SCM proc);
extern SCM scm_procedure_properties (SCM proc); SCM_API SCM scm_procedure_properties (SCM proc);
extern SCM scm_set_procedure_properties_x (SCM proc, SCM new_val); SCM_API SCM scm_set_procedure_properties_x (SCM proc, SCM new_val);
extern SCM scm_procedure_property (SCM p, SCM k); SCM_API SCM scm_procedure_property (SCM p, SCM k);
extern SCM scm_set_procedure_property_x (SCM p, SCM k, SCM v); SCM_API SCM scm_set_procedure_property_x (SCM p, SCM k, SCM v);
extern void scm_init_procprop (void); SCM_API void scm_init_procprop (void);
#endif /* SCM_PROCPROP_H */ #endif /* SCM_PROCPROP_H */

View file

@ -152,35 +152,35 @@ typedef struct
#define SCM_PROCEDURE(obj) SCM_CELL_OBJECT_1 (obj) #define SCM_PROCEDURE(obj) SCM_CELL_OBJECT_1 (obj)
#define SCM_SETTER(obj) SCM_CELL_OBJECT_2 (obj) #define SCM_SETTER(obj) SCM_CELL_OBJECT_2 (obj)
extern scm_t_subr_entry *scm_subr_table; SCM_API scm_t_subr_entry *scm_subr_table;
extern long scm_subr_table_size; SCM_API long scm_subr_table_size;
extern long scm_subr_table_room; SCM_API long scm_subr_table_room;
extern void scm_mark_subr_table (void); SCM_API void scm_mark_subr_table (void);
extern void scm_free_subr_entry (SCM subr); SCM_API void scm_free_subr_entry (SCM subr);
extern SCM scm_c_make_subr (const char *name, long type, SCM (*fcn)()); SCM_API 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_API SCM scm_c_make_subr_with_generic (const char *name, long type,
SCM (*fcn)(), SCM *gf); SCM (*fcn)(), SCM *gf);
extern SCM scm_c_define_subr (const char *name, long type, SCM (*fcn)()); SCM_API 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_API SCM scm_c_define_subr_with_generic (const char *name, long type,
SCM (*fcn)(), SCM *gf); SCM (*fcn)(), SCM *gf);
extern SCM scm_makcclo (SCM proc, size_t len); SCM_API SCM scm_makcclo (SCM proc, size_t len);
extern SCM scm_procedure_p (SCM obj); SCM_API SCM scm_procedure_p (SCM obj);
extern SCM scm_closure_p (SCM obj); SCM_API SCM scm_closure_p (SCM obj);
extern SCM scm_thunk_p (SCM obj); SCM_API SCM scm_thunk_p (SCM obj);
extern int scm_subr_p (SCM obj); SCM_API int scm_subr_p (SCM obj);
extern SCM scm_procedure_documentation (SCM proc); SCM_API SCM scm_procedure_documentation (SCM proc);
extern SCM scm_procedure_with_setter_p (SCM obj); SCM_API SCM scm_procedure_with_setter_p (SCM obj);
extern SCM scm_make_procedure_with_setter (SCM procedure, SCM setter); SCM_API SCM scm_make_procedure_with_setter (SCM procedure, SCM setter);
extern SCM scm_procedure (SCM proc); SCM_API SCM scm_procedure (SCM proc);
extern SCM scm_setter (SCM proc); SCM_API SCM scm_setter (SCM proc);
extern void scm_init_subr_table (void); SCM_API void scm_init_subr_table (void);
extern void scm_init_procs (void); SCM_API void scm_init_procs (void);
#ifdef GUILE_DEBUG #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 /*GUILE_DEBUG*/
#endif /* SCM_PROCS_H */ #endif /* SCM_PROCS_H */

View file

@ -48,12 +48,12 @@
#include "libguile/__scm.h" #include "libguile/__scm.h"
SCM scm_primitive_make_property (SCM not_found_proc); SCM_API SCM scm_primitive_make_property (SCM not_found_proc);
SCM scm_primitive_property_ref (SCM prop, SCM obj); SCM_API SCM scm_primitive_property_ref (SCM prop, SCM obj);
SCM scm_primitive_property_set_x (SCM prop, SCM obj, SCM val); SCM_API 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_property_del_x (SCM prop, SCM obj);
void scm_init_properties (void); SCM_API void scm_init_properties (void);
#endif /* SCM_PROPERTIES_H */ #endif /* SCM_PROPERTIES_H */

View file

@ -50,28 +50,28 @@
extern int scm_ra_matchp (SCM ra0, SCM ras); SCM_API int scm_ra_matchp (SCM ra0, SCM ras);
extern int scm_ramapc (int (*cproc) (), SCM data, SCM ra0, SCM lra, SCM_API int scm_ramapc (int (*cproc) (), SCM data, SCM ra0, SCM lra,
const char *what); const char *what);
extern int scm_array_fill_int (SCM ra, SCM fill, SCM ignore); SCM_API int scm_array_fill_int (SCM ra, SCM fill, SCM ignore);
extern SCM scm_array_fill_x (SCM ra, SCM fill); SCM_API SCM scm_array_fill_x (SCM ra, SCM fill);
extern SCM scm_array_copy_x (SCM src, SCM dst); SCM_API SCM scm_array_copy_x (SCM src, SCM dst);
extern int scm_ra_eqp (SCM ra0, SCM ras); SCM_API int scm_ra_eqp (SCM ra0, SCM ras);
extern int scm_ra_lessp (SCM ra0, SCM ras); SCM_API int scm_ra_lessp (SCM ra0, SCM ras);
extern int scm_ra_leqp (SCM ra0, SCM ras); SCM_API int scm_ra_leqp (SCM ra0, SCM ras);
extern int scm_ra_grp (SCM ra0, SCM ras); SCM_API int scm_ra_grp (SCM ra0, SCM ras);
extern int scm_ra_greqp (SCM ra0, SCM ras); SCM_API int scm_ra_greqp (SCM ra0, SCM ras);
extern int scm_ra_sum (SCM ra0, SCM ras); SCM_API int scm_ra_sum (SCM ra0, SCM ras);
extern int scm_ra_difference (SCM ra0, SCM ras); SCM_API int scm_ra_difference (SCM ra0, SCM ras);
extern int scm_ra_product (SCM ra0, SCM ras); SCM_API int scm_ra_product (SCM ra0, SCM ras);
extern int scm_ra_divide (SCM ra0, SCM ras); SCM_API int scm_ra_divide (SCM ra0, SCM ras);
extern int scm_array_identity (SCM src, SCM dst); SCM_API int scm_array_identity (SCM src, SCM dst);
extern SCM scm_array_map_x (SCM ra0, SCM proc, SCM lra); SCM_API SCM scm_array_map_x (SCM ra0, SCM proc, SCM lra);
extern SCM scm_array_for_each (SCM proc, SCM ra0, SCM lra); SCM_API SCM scm_array_for_each (SCM proc, SCM ra0, SCM lra);
extern SCM scm_array_index_map_x (SCM ra, SCM proc); SCM_API SCM scm_array_index_map_x (SCM ra, SCM proc);
extern SCM scm_raequal (SCM ra0, SCM ra1); SCM_API SCM scm_raequal (SCM ra0, SCM ra1);
extern SCM scm_array_equal_p (SCM ra0, SCM ra1); SCM_API SCM scm_array_equal_p (SCM ra0, SCM ra1);
extern void scm_init_ramap (void); SCM_API void scm_init_ramap (void);
#endif /* SCM_RAMAP_H */ #endif /* SCM_RAMAP_H */

View file

@ -74,7 +74,7 @@ typedef struct scm_t_rng {
scm_t_rstate *(*copy_rstate) (scm_t_rstate *state); scm_t_rstate *(*copy_rstate) (scm_t_rstate *state);
} scm_t_rng; } 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; unsigned long c;
} scm_t_i_rstate; } scm_t_i_rstate;
extern unsigned long scm_i_uniform32 (scm_t_i_rstate *); SCM_API unsigned long scm_i_uniform32 (scm_t_i_rstate *);
extern void scm_i_init_rstate (scm_t_i_rstate *, char *seed, int n); SCM_API 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 scm_t_i_rstate *scm_i_copy_rstate (scm_t_i_rstate *);
/* /*
* Random number library functions * Random number library functions
*/ */
extern scm_t_rstate *scm_c_make_rstate (char *, int); SCM_API 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_default_rstate (void);
#define scm_c_uniform32(RSTATE) scm_the_rng.random_bits (RSTATE) #define scm_c_uniform32(RSTATE) scm_the_rng.random_bits (RSTATE)
extern double scm_c_uniform01 (scm_t_rstate *); SCM_API double scm_c_uniform01 (scm_t_rstate *);
extern double scm_c_normal01 (scm_t_rstate *); SCM_API double scm_c_normal01 (scm_t_rstate *);
extern double scm_c_exp1 (scm_t_rstate *); SCM_API double scm_c_exp1 (scm_t_rstate *);
extern unsigned long scm_c_random (scm_t_rstate *, unsigned long m); SCM_API unsigned long scm_c_random (scm_t_rstate *, unsigned long m);
extern SCM scm_c_random_bignum (scm_t_rstate *, SCM m); SCM_API SCM scm_c_random_bignum (scm_t_rstate *, SCM m);
/* /*
* Scheme level interface * 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_RSTATEP(obj) SCM_TYP16_PREDICATE (scm_tc16_rstate, obj)
#define SCM_RSTATE(obj) ((scm_t_rstate *) SCM_CELL_WORD_1 (obj)) #define SCM_RSTATE(obj) ((scm_t_rstate *) SCM_CELL_WORD_1 (obj))
extern unsigned char scm_masktab[256]; SCM_API unsigned char scm_masktab[256];
extern SCM scm_var_random_state; SCM_API SCM scm_var_random_state;
extern SCM scm_random (SCM n, SCM state); SCM_API SCM scm_random (SCM n, SCM state);
extern SCM scm_copy_random_state (SCM state); SCM_API SCM scm_copy_random_state (SCM state);
extern SCM scm_seed_to_random_state (SCM seed); SCM_API SCM scm_seed_to_random_state (SCM seed);
extern SCM scm_random_uniform (SCM state); SCM_API SCM scm_random_uniform (SCM state);
extern SCM scm_random_solid_sphere_x (SCM v, SCM state); SCM_API SCM scm_random_solid_sphere_x (SCM v, SCM state);
extern SCM scm_random_hollow_sphere_x (SCM v, SCM state); SCM_API SCM scm_random_hollow_sphere_x (SCM v, SCM state);
extern SCM scm_random_normal (SCM state); SCM_API SCM scm_random_normal (SCM state);
extern SCM scm_random_normal_vector_x (SCM v, SCM state); SCM_API SCM scm_random_normal_vector_x (SCM v, SCM state);
extern SCM scm_random_exp (SCM state); SCM_API SCM scm_random_exp (SCM state);
extern void scm_init_random (void); SCM_API void scm_init_random (void);
#endif /* SCM_RANDOM_H */ #endif /* SCM_RANDOM_H */

View file

@ -48,13 +48,13 @@
#include "libguile/__scm.h" #include "libguile/__scm.h"
extern SCM scm_read_delimited_x (SCM delims, SCM buf, SCM gobble, SCM port, SCM_API SCM scm_read_delimited_x (SCM delims, SCM buf, SCM gobble, SCM port,
SCM offset, SCM length); SCM offset, SCM length);
extern SCM scm_read_line (SCM port); SCM_API SCM scm_read_line (SCM port);
extern SCM scm_write_line (SCM obj, SCM port); SCM_API SCM scm_write_line (SCM obj, SCM port);
extern SCM scm_init_rdelim_builtins (void); SCM_API SCM scm_init_rdelim_builtins (void);
void scm_init_rdelim (void); SCM_API void scm_init_rdelim (void);
#endif /* SCM_RDELIM_H */ #endif /* SCM_RDELIM_H */

View file

@ -69,7 +69,7 @@
#define SCM_WHITE_SPACES SCM_SINGLE_SPACES: case '\t' #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_COPY_SOURCE_P scm_read_opts[0].val
#define SCM_RECORD_POSITIONS_P scm_read_opts[1].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); SCM_API SCM scm_read_options (SCM setting);
extern SCM scm_read (SCM port); SCM_API SCM scm_read (SCM port);
extern char * scm_grow_tok_buf (SCM * tok_buf); SCM_API char * scm_grow_tok_buf (SCM * tok_buf);
extern int scm_flush_ws (SCM port, const char *eoferr); SCM_API int scm_flush_ws (SCM port, const char *eoferr);
extern int scm_casei_streq (char * s1, char * s2); SCM_API int scm_casei_streq (char * s1, char * s2);
extern SCM scm_lreadr (SCM * tok_buf, SCM port, SCM *copy); SCM_API 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); SCM_API 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); SCM_API 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); SCM_API SCM scm_lreadrecparen (SCM * tok_buf, SCM port, char *name, SCM *copy);
extern SCM scm_read_hash_extend (SCM chr, SCM proc); SCM_API SCM scm_read_hash_extend (SCM chr, SCM proc);
extern void scm_init_read (void); SCM_API void scm_init_read (void);
#endif /* SCM_READ_H */ #endif /* SCM_READ_H */

View file

@ -48,14 +48,14 @@
#include "libguile/__scm.h" #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_RGX(X) ((regex_t *) SCM_CELL_WORD_1 (X))
#define SCM_RGXP(X) (!SCM_IMP (X) && (SCM_CELL_TYPE (X) == scm_tc16_regex)) #define SCM_RGXP(X) (!SCM_IMP (X) && (SCM_CELL_TYPE (X) == scm_tc16_regex))
extern SCM scm_make_regexp (SCM pat, SCM flags); SCM_API SCM scm_make_regexp (SCM pat, SCM flags);
SCM scm_regexp_p (SCM x); SCM_API SCM scm_regexp_p (SCM x);
extern SCM scm_regexp_exec (SCM rx, SCM str, SCM start, SCM flags); SCM_API SCM scm_regexp_exec (SCM rx, SCM str, SCM start, SCM flags);
extern void scm_init_regex_posix (void); SCM_API void scm_init_regex_posix (void);
#endif /* SCM_REGEX_POSIX_H */ #endif /* SCM_REGEX_POSIX_H */

View file

@ -72,11 +72,11 @@
#define SCM_NUM_PROTECTS 13 #define SCM_NUM_PROTECTS 13
#endif #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_ROOTP(obj) SCM_TYP16_PREDICATE (scm_tc16_root, obj)
#define SCM_ROOT_STATE(root) ((scm_root_state *) SCM_CELL_WORD_1 (root)) #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_root ((scm_root_state *) SCM_THREAD_LOCAL_DATA)
#define scm_set_root(new_root) SCM_SET_THREAD_LOCAL_DATA (new_root) #define scm_set_root(new_root) SCM_SET_THREAD_LOCAL_DATA (new_root)
#else /* USE_THREADS */ #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)) #define scm_set_root(new_root) (scm_root = (new_root))
#endif /* USE_THREADS */ #endif /* USE_THREADS */
extern SCM scm_make_root (SCM parent); SCM_API SCM scm_make_root (SCM parent);
extern SCM scm_internal_cwdr (scm_t_catch_body body, SCM_API SCM scm_internal_cwdr (scm_t_catch_body body,
void *body_data, void *body_data,
scm_t_catch_handler handler, scm_t_catch_handler handler,
void *handler_data, void *handler_data,
SCM_STACKITEM *stack_start); SCM_STACKITEM *stack_start);
extern SCM scm_call_with_dynamic_root (SCM thunk, SCM handler); SCM_API SCM scm_call_with_dynamic_root (SCM thunk, SCM handler);
extern SCM scm_dynamic_root (void); SCM_API SCM scm_dynamic_root (void);
extern SCM scm_apply_with_dynamic_root (SCM proc, SCM a1, SCM args, SCM handler); SCM_API SCM scm_apply_with_dynamic_root (SCM proc, SCM a1, SCM args, SCM handler);
extern void scm_init_root (void); SCM_API void scm_init_root (void);
#endif /* SCM_ROOT_H */ #endif /* SCM_ROOT_H */

View file

@ -48,13 +48,13 @@
#include "libguile/__scm.h" #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 end);
extern SCM scm_write_string_partial (SCM str, SCM port_or_fdes, SCM start, SCM_API SCM scm_write_string_partial (SCM str, SCM port_or_fdes, SCM start,
SCM end); SCM end);
SCM scm_init_rw_builtins (void); SCM_API SCM scm_init_rw_builtins (void);
void scm_init_rw (void); SCM_API void scm_init_rw (void);
#endif /* SCM_RW_H */ #endif /* SCM_RW_H */

View file

@ -50,18 +50,18 @@
extern SCM scm_sigaction (SCM signum, SCM handler, SCM flags); SCM_API SCM scm_sigaction (SCM signum, SCM handler, SCM flags);
extern SCM scm_restore_signals (void); SCM_API SCM scm_restore_signals (void);
extern SCM scm_alarm (SCM i); SCM_API SCM scm_alarm (SCM i);
extern SCM scm_setitimer (SCM which_timer, SCM_API SCM scm_setitimer (SCM which_timer,
SCM interval_seconds, SCM interval_microseconds, SCM interval_seconds, SCM interval_microseconds,
SCM value_seconds, SCM value_microseconds); SCM value_seconds, SCM value_microseconds);
extern SCM scm_getitimer (SCM which_timer); SCM_API SCM scm_getitimer (SCM which_timer);
extern SCM scm_pause (void); SCM_API SCM scm_pause (void);
extern SCM scm_sleep (SCM i); SCM_API SCM scm_sleep (SCM i);
extern SCM scm_usleep (SCM i); SCM_API SCM scm_usleep (SCM i);
extern SCM scm_raise (SCM sig); SCM_API SCM scm_raise (SCM sig);
extern void scm_init_scmsigs (void); SCM_API void scm_init_scmsigs (void);
#endif /* SCM_SCMSIGS_H */ #endif /* SCM_SCMSIGS_H */

View file

@ -49,18 +49,18 @@
#include "libguile/__scm.h" #include "libguile/__scm.h"
extern char *scm_find_executable (const char *name); SCM_API char *scm_find_executable (const char *name);
extern char *scm_find_impl_file (char *exec_path, SCM_API char *scm_find_impl_file (char *exec_path,
const char *generic_name, const char *generic_name,
const char *initname, const char *initname,
const char *sep); const char *sep);
extern char **scm_get_meta_args (int argc, char **argv); SCM_API char **scm_get_meta_args (int argc, char **argv);
extern int scm_count_argv (char **argv); SCM_API int scm_count_argv (char **argv);
extern void scm_shell_usage (int fatal, char *message); SCM_API void scm_shell_usage (int fatal, char *message);
extern SCM scm_compile_shell_switches (int argc, char **argv); SCM_API SCM scm_compile_shell_switches (int argc, char **argv);
extern void scm_shell (int argc, char **argv); SCM_API void scm_shell (int argc, char **argv);
extern char *scm_usage_name; SCM_API char *scm_usage_name;
extern void scm_init_script (void); SCM_API void scm_init_script (void);
#endif /* SCM_SCRIPT_H */ #endif /* SCM_SCRIPT_H */

View file

@ -50,10 +50,10 @@
extern SCM scm_system (SCM cmd); SCM_API SCM scm_system (SCM cmd);
extern SCM scm_getenv (SCM nam); SCM_API SCM scm_getenv (SCM nam);
extern SCM scm_primitive_exit (SCM status); SCM_API SCM scm_primitive_exit (SCM status);
extern void scm_init_simpos (void); SCM_API void scm_init_simpos (void);
#endif /* SCM_SIMPOS_H */ #endif /* SCM_SIMPOS_H */

View file

@ -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_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))) #define SCM_SMOB_APPLY_3(x,a1,a2,rst) (SCM_SMOB_DESCRIPTOR (x).apply_3 (x, (a1), (a2), (rst)))
extern long scm_numsmob; SCM_API long scm_numsmob;
extern scm_smob_descriptor scm_smobs[]; SCM_API scm_smob_descriptor scm_smobs[];
extern SCM scm_mark0 (SCM ptr); SCM_API SCM scm_mark0 (SCM ptr);
extern SCM scm_markcdr (SCM ptr); SCM_API SCM scm_markcdr (SCM ptr);
extern size_t scm_free0 (SCM ptr); SCM_API size_t scm_free0 (SCM ptr);
extern size_t scm_smob_free (SCM obj); SCM_API size_t scm_smob_free (SCM obj);
extern int scm_smob_print (SCM exp, SCM port, scm_print_state *pstate); 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 /* The following set of functions is the standard way to create new
* SMOB types. * SMOB types.
@ -146,14 +146,14 @@ extern int scm_smob_print (SCM exp, SCM port, scm_print_state *pstate);
* values using `scm_set_smob_xxx'. * 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)); SCM_API 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)); SCM_API void scm_set_smob_free (scm_t_bits tc, size_t (*free) (SCM));
extern void scm_set_smob_print (scm_t_bits tc, SCM_API void scm_set_smob_print (scm_t_bits tc,
int (*print) (SCM, SCM, scm_print_state*)); int (*print) (SCM, SCM, scm_print_state*));
extern void scm_set_smob_equalp (scm_t_bits tc, SCM (*equalp) (SCM, SCM)); SCM_API void scm_set_smob_equalp (scm_t_bits tc, SCM (*equalp) (SCM, SCM));
extern void scm_set_smob_apply (scm_t_bits tc, SCM_API void scm_set_smob_apply (scm_t_bits tc,
SCM (*apply) (), SCM (*apply) (),
unsigned int req, unsigned int req,
unsigned int opt, unsigned int opt,
@ -161,8 +161,8 @@ extern void scm_set_smob_apply (scm_t_bits tc,
/* Function for creating smobs */ /* Function for creating smobs */
extern SCM scm_make_smob (scm_t_bits tc); SCM_API SCM scm_make_smob (scm_t_bits tc);
extern void scm_smob_prehistory (void); SCM_API void scm_smob_prehistory (void);
#endif /* SCM_SMOB_H */ #endif /* SCM_SMOB_H */

View file

@ -50,34 +50,34 @@
extern SCM scm_htons (SCM in); SCM_API SCM scm_htons (SCM in);
extern SCM scm_ntohs (SCM in); SCM_API SCM scm_ntohs (SCM in);
extern SCM scm_htonl (SCM in); SCM_API SCM scm_htonl (SCM in);
extern SCM scm_ntohl (SCM in); SCM_API SCM scm_ntohl (SCM in);
extern SCM scm_gethost (SCM name); SCM_API SCM scm_gethost (SCM name);
extern SCM scm_inet_aton (SCM address); SCM_API SCM scm_inet_aton (SCM address);
extern SCM scm_inet_ntoa (SCM inetid); SCM_API SCM scm_inet_ntoa (SCM inetid);
extern SCM scm_inet_netof (SCM address); SCM_API SCM scm_inet_netof (SCM address);
extern SCM scm_lnaof (SCM address); SCM_API SCM scm_lnaof (SCM address);
extern SCM scm_inet_makeaddr (SCM net, SCM lna); SCM_API SCM scm_inet_makeaddr (SCM net, SCM lna);
extern SCM scm_inet_pton (SCM family, SCM address); SCM_API SCM scm_inet_pton (SCM family, SCM address);
extern SCM scm_inet_ntop (SCM family, SCM address); SCM_API SCM scm_inet_ntop (SCM family, SCM address);
extern SCM scm_socket (SCM family, SCM style, SCM proto); SCM_API SCM scm_socket (SCM family, SCM style, SCM proto);
extern SCM scm_socketpair (SCM family, SCM style, SCM proto); SCM_API SCM scm_socketpair (SCM family, SCM style, SCM proto);
extern SCM scm_getsockopt (SCM sfd, SCM level, SCM optname); SCM_API SCM scm_getsockopt (SCM sfd, SCM level, SCM optname);
extern SCM scm_setsockopt (SCM sfd, SCM level, SCM optname, SCM value); SCM_API SCM scm_setsockopt (SCM sfd, SCM level, SCM optname, SCM value);
extern SCM scm_shutdown (SCM sfd, SCM how); SCM_API SCM scm_shutdown (SCM sfd, SCM how);
extern SCM scm_connect (SCM sockfd, SCM fam, SCM address, SCM args); SCM_API SCM scm_connect (SCM sockfd, SCM fam, SCM address, SCM args);
extern SCM scm_bind (SCM sockfd, SCM fam, SCM address, SCM args); SCM_API SCM scm_bind (SCM sockfd, SCM fam, SCM address, SCM args);
extern SCM scm_listen (SCM sfd, SCM backlog); SCM_API SCM scm_listen (SCM sfd, SCM backlog);
extern SCM scm_accept (SCM sockfd); SCM_API SCM scm_accept (SCM sockfd);
extern SCM scm_getsockname (SCM sockfd); SCM_API SCM scm_getsockname (SCM sockfd);
extern SCM scm_getpeername (SCM sockfd); SCM_API SCM scm_getpeername (SCM sockfd);
extern SCM scm_recv (SCM sockfd, SCM buff_or_size, SCM flags); SCM_API SCM scm_recv (SCM sockfd, SCM buff_or_size, SCM flags);
extern SCM scm_send (SCM sockfd, SCM message, SCM flags); SCM_API 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); SCM_API 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); SCM_API SCM scm_sendto (SCM sockfd, SCM message, SCM fam, SCM address, SCM args_and_flags);
extern void scm_init_socket (void); SCM_API void scm_init_socket (void);
#endif /* SCM_SOCKET_H */ #endif /* SCM_SOCKET_H */

View file

@ -50,20 +50,20 @@
extern SCM scm_restricted_vector_sort_x (SCM vec, SCM_API SCM scm_restricted_vector_sort_x (SCM vec,
SCM less, SCM less,
SCM startpos, SCM startpos,
SCM endpos); SCM endpos);
extern SCM scm_sorted_p (SCM ls, SCM less); SCM_API SCM scm_sorted_p (SCM ls, SCM less);
extern SCM scm_merge (SCM ls1, SCM ls2, SCM less); SCM_API SCM scm_merge (SCM ls1, SCM ls2, SCM less);
extern SCM scm_merge_x (SCM ls1, SCM ls2, SCM less); SCM_API SCM scm_merge_x (SCM ls1, SCM ls2, SCM less);
extern SCM scm_sort (SCM ls, SCM less); SCM_API SCM scm_sort (SCM ls, SCM less);
extern SCM scm_sort_x (SCM ls, SCM less); SCM_API SCM scm_sort_x (SCM ls, SCM less);
extern SCM scm_stable_sort (SCM ls, SCM less); SCM_API SCM scm_stable_sort (SCM ls, SCM less);
extern SCM scm_stable_sort_x (SCM ls, SCM less); SCM_API SCM scm_stable_sort_x (SCM ls, SCM less);
extern SCM scm_sort_list (SCM ls, SCM less); SCM_API SCM scm_sort_list (SCM ls, SCM less);
extern SCM scm_sort_list_x (SCM ls, SCM less); SCM_API SCM scm_sort_list_x (SCM ls, SCM less);
extern void scm_init_sort (void); SCM_API void scm_init_sort (void);
#endif /* SCM_SORT_H */ #endif /* SCM_SORT_H */

View file

@ -77,7 +77,7 @@ do { \
/* {Source properties} /* {Source properties}
*/ */
extern scm_t_bits scm_tc16_srcprops; SCM_API scm_t_bits scm_tc16_srcprops;
typedef struct scm_t_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))) #define PROCTRACEP(x) (!SCM_FALSEP (scm_procedure_property (x, scm_sym_trace)))
extern SCM scm_sym_filename; SCM_API SCM scm_sym_filename;
extern SCM scm_sym_copy; SCM_API SCM scm_sym_copy;
extern SCM scm_sym_line; SCM_API SCM scm_sym_line;
extern SCM scm_sym_column; SCM_API SCM scm_sym_column;
extern SCM scm_sym_breakpoint; SCM_API SCM scm_sym_breakpoint;
extern SCM scm_srcprops_to_plist (SCM obj); SCM_API SCM scm_srcprops_to_plist (SCM obj);
extern SCM scm_make_srcprops (long line, int col, SCM fname, SCM copy, SCM plist); SCM_API SCM scm_make_srcprops (long line, int col, SCM fname, SCM copy, SCM plist);
extern SCM scm_source_property (SCM obj, SCM key); SCM_API SCM scm_source_property (SCM obj, SCM key);
extern SCM scm_set_source_property_x (SCM obj, SCM key, SCM datum); SCM_API SCM scm_set_source_property_x (SCM obj, SCM key, SCM datum);
extern SCM scm_source_properties (SCM obj); SCM_API SCM scm_source_properties (SCM obj);
extern SCM scm_set_source_properties_x (SCM obj, SCM props); SCM_API SCM scm_set_source_properties_x (SCM obj, SCM props);
extern void scm_finish_srcprop (void); SCM_API void scm_finish_srcprop (void);
extern void scm_init_srcprop (void); SCM_API void scm_init_srcprop (void);
#endif /* SCM_SRCPROP_H */ #endif /* SCM_SRCPROP_H */

View file

@ -83,14 +83,14 @@
# define SCM_CHECK_STACK /**/ # define SCM_CHECK_STACK /**/
#endif /* STACK_CHECKING */ #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); SCM_API void scm_report_stack_overflow (void);
extern long scm_stack_size (SCM_STACKITEM *start); SCM_API long scm_stack_size (SCM_STACKITEM *start);
extern void scm_stack_report (void); SCM_API void scm_stack_report (void);
extern void scm_init_stackchk (void); SCM_API void scm_init_stackchk (void);
#endif /* SCM_STACKCHK_H */ #endif /* SCM_STACKCHK_H */

View file

@ -73,7 +73,7 @@ typedef struct scm_t_stack {
scm_t_info_frame tail[1]; scm_t_info_frame tail[1];
} scm_t_stack; } 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_STACKP(obj) (SCM_STRUCTP (obj) && SCM_EQ_P (SCM_STRUCT_VTABLE (obj), scm_t_stackype))
#define SCM_STACK_LENGTH(stack) (SCM_STACK (stack) -> length) #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_API SCM scm_stack_p (SCM obj);
SCM scm_make_stack (SCM obj, SCM args); SCM_API SCM scm_make_stack (SCM obj, SCM args);
SCM scm_stack_id (SCM stack); SCM_API SCM scm_stack_id (SCM stack);
SCM scm_stack_ref (SCM stack, SCM i); SCM_API SCM scm_stack_ref (SCM stack, SCM i);
SCM scm_stack_length (SCM stack); SCM_API SCM scm_stack_length (SCM stack);
SCM scm_frame_p (SCM obj); SCM_API SCM scm_frame_p (SCM obj);
SCM scm_last_stack_frame (SCM obj); SCM_API SCM scm_last_stack_frame (SCM obj);
SCM scm_frame_number (SCM frame); SCM_API SCM scm_frame_number (SCM frame);
SCM scm_frame_source (SCM frame); SCM_API SCM scm_frame_source (SCM frame);
SCM scm_frame_procedure (SCM frame); SCM_API SCM scm_frame_procedure (SCM frame);
SCM scm_frame_arguments (SCM frame); SCM_API SCM scm_frame_arguments (SCM frame);
SCM scm_frame_previous (SCM frame); SCM_API SCM scm_frame_previous (SCM frame);
SCM scm_frame_next (SCM frame); SCM_API SCM scm_frame_next (SCM frame);
SCM scm_frame_real_p (SCM frame); SCM_API SCM scm_frame_real_p (SCM frame);
SCM scm_frame_procedure_p (SCM frame); SCM_API SCM scm_frame_procedure_p (SCM frame);
SCM scm_frame_evaluating_args_p (SCM frame); SCM_API SCM scm_frame_evaluating_args_p (SCM frame);
SCM scm_frame_overflow_p (SCM frame); SCM_API SCM scm_frame_overflow_p (SCM frame);
void scm_init_stacks (void); SCM_API void scm_init_stacks (void);
#endif /* SCM_STACKS_H */ #endif /* SCM_STACKS_H */

View file

@ -49,19 +49,19 @@
#include "libguile/__scm.h" #include "libguile/__scm.h"
long scm_c_get_internal_run_time (void); SCM_API long scm_c_get_internal_run_time (void);
extern SCM scm_get_internal_real_time (void); SCM_API SCM scm_get_internal_real_time (void);
extern SCM scm_get_internal_run_time (void); SCM_API SCM scm_get_internal_run_time (void);
extern SCM scm_current_time (void); SCM_API SCM scm_current_time (void);
extern SCM scm_gettimeofday (void); SCM_API SCM scm_gettimeofday (void);
extern SCM scm_localtime (SCM time, SCM zone); SCM_API SCM scm_localtime (SCM time, SCM zone);
extern SCM scm_gmtime (SCM time); SCM_API SCM scm_gmtime (SCM time);
extern SCM scm_mktime (SCM sbd_time, SCM zone); SCM_API SCM scm_mktime (SCM sbd_time, SCM zone);
extern SCM scm_tzset (void); SCM_API SCM scm_tzset (void);
extern SCM scm_times (void); SCM_API SCM scm_times (void);
extern SCM scm_strftime (SCM format, SCM stime); SCM_API SCM scm_strftime (SCM format, SCM stime);
extern SCM scm_strptime (SCM format, SCM string); SCM_API SCM scm_strptime (SCM format, SCM string);
extern void scm_init_stime (void); SCM_API void scm_init_stime (void);
#endif /* SCM_STIME_H */ #endif /* SCM_STIME_H */

View file

@ -60,23 +60,23 @@
extern SCM scm_string_p (SCM x); SCM_API SCM scm_string_p (SCM x);
extern SCM scm_string (SCM chrs); SCM_API SCM scm_string (SCM chrs);
extern SCM scm_makfromstrs (int argc, char **argv); SCM_API SCM scm_makfromstrs (int argc, char **argv);
extern SCM scm_take_str (char *s, size_t len); SCM_API SCM scm_take_str (char *s, size_t len);
extern SCM scm_take0str (char *s); SCM_API SCM scm_take0str (char *s);
extern SCM scm_mem2string (const char *src, size_t len); SCM_API SCM scm_mem2string (const char *src, size_t len);
extern SCM scm_str2string (const char *src); SCM_API SCM scm_str2string (const char *src);
extern SCM scm_makfrom0str (const char *src); SCM_API SCM scm_makfrom0str (const char *src);
extern SCM scm_makfrom0str_opt (const char *src); SCM_API SCM scm_makfrom0str_opt (const char *src);
extern SCM scm_allocate_string (size_t len); SCM_API SCM scm_allocate_string (size_t len);
extern SCM scm_make_string (SCM k, SCM chr); SCM_API SCM scm_make_string (SCM k, SCM chr);
extern SCM scm_string_length (SCM str); SCM_API SCM scm_string_length (SCM str);
extern SCM scm_string_ref (SCM str, SCM k); SCM_API SCM scm_string_ref (SCM str, SCM k);
extern SCM scm_string_set_x (SCM str, SCM k, SCM chr); SCM_API SCM scm_string_set_x (SCM str, SCM k, SCM chr);
extern SCM scm_substring (SCM str, SCM start, SCM end); SCM_API SCM scm_substring (SCM str, SCM start, SCM end);
extern SCM scm_string_append (SCM args); SCM_API SCM scm_string_append (SCM args);
extern void scm_init_strings (void); SCM_API void scm_init_strings (void);

View file

@ -50,24 +50,24 @@
extern SCM scm_string_index (SCM str, SCM chr, SCM frm, SCM to); SCM_API 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); SCM_API 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_API SCM scm_substring_move_x (SCM str1, SCM start1, SCM end1,
SCM str2, SCM start2); SCM str2, SCM start2);
extern SCM scm_substring_fill_x (SCM str, SCM start, SCM end, SCM fill); SCM_API SCM scm_substring_fill_x (SCM str, SCM start, SCM end, SCM fill);
extern SCM scm_string_null_p (SCM str); SCM_API SCM scm_string_null_p (SCM str);
extern SCM scm_string_to_list (SCM str); SCM_API SCM scm_string_to_list (SCM str);
extern SCM scm_string_copy (SCM str); SCM_API SCM scm_string_copy (SCM str);
extern SCM scm_string_fill_x (SCM str, SCM chr); SCM_API SCM scm_string_fill_x (SCM str, SCM chr);
extern void scm_init_strop (void); SCM_API void scm_init_strop (void);
extern SCM scm_string_upcase_x (SCM v); SCM_API SCM scm_string_upcase_x (SCM v);
extern SCM scm_string_upcase (SCM v); SCM_API SCM scm_string_upcase (SCM v);
extern SCM scm_string_downcase_x (SCM v); SCM_API SCM scm_string_downcase_x (SCM v);
extern SCM scm_string_downcase (SCM v); SCM_API SCM scm_string_downcase (SCM v);
extern SCM scm_string_capitalize_x (SCM v); SCM_API SCM scm_string_capitalize_x (SCM v);
extern SCM scm_string_capitalize (SCM v); SCM_API SCM scm_string_capitalize (SCM v);
extern SCM scm_string_split (SCM str, SCM chr); SCM_API SCM scm_string_split (SCM str, SCM chr);
extern SCM scm_string_ci_to_symbol (SCM v); SCM_API SCM scm_string_ci_to_symbol (SCM v);
#define scm_substring_move_left_x scm_substring_move_x #define scm_substring_move_left_x scm_substring_move_x
#define scm_substring_move_right_x scm_substring_move_x #define scm_substring_move_right_x scm_substring_move_x

View file

@ -50,17 +50,17 @@
extern SCM scm_string_equal_p (SCM s1, SCM s2); SCM_API SCM scm_string_equal_p (SCM s1, SCM s2);
extern SCM scm_string_ci_equal_p (SCM s1, SCM s2); SCM_API SCM scm_string_ci_equal_p (SCM s1, SCM s2);
extern SCM scm_string_less_p (SCM s1, SCM s2); SCM_API SCM scm_string_less_p (SCM s1, SCM s2);
extern SCM scm_string_leq_p (SCM s1, SCM s2); SCM_API SCM scm_string_leq_p (SCM s1, SCM s2);
extern SCM scm_string_gr_p (SCM s1, SCM s2); SCM_API SCM scm_string_gr_p (SCM s1, SCM s2);
extern SCM scm_string_geq_p (SCM s1, SCM s2); SCM_API SCM scm_string_geq_p (SCM s1, SCM s2);
extern SCM scm_string_ci_less_p (SCM s1, SCM s2); SCM_API SCM scm_string_ci_less_p (SCM s1, SCM s2);
extern SCM scm_string_ci_leq_p (SCM s1, SCM s2); SCM_API SCM scm_string_ci_leq_p (SCM s1, SCM s2);
extern SCM scm_string_ci_gr_p (SCM s1, SCM s2); SCM_API SCM scm_string_ci_gr_p (SCM s1, SCM s2);
extern SCM scm_string_ci_geq_p (SCM s1, SCM s2); SCM_API SCM scm_string_ci_geq_p (SCM s1, SCM s2);
extern void scm_init_strorder (void); SCM_API void scm_init_strorder (void);
#endif /* SCM_STRORDER_H */ #endif /* SCM_STRORDER_H */

View file

@ -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); SCM_API SCM scm_mkstrport (SCM pos, SCM str, long modes, const char * caller);
extern SCM scm_strport_to_string (SCM port); SCM_API SCM scm_strport_to_string (SCM port);
extern SCM scm_object_to_string (SCM obj, SCM printer); SCM_API SCM scm_object_to_string (SCM obj, SCM printer);
extern SCM scm_call_with_output_string (SCM proc); SCM_API SCM scm_call_with_output_string (SCM proc);
extern SCM scm_call_with_input_string (SCM str, SCM proc); SCM_API SCM scm_call_with_input_string (SCM str, SCM proc);
extern SCM scm_open_input_string (SCM str); SCM_API SCM scm_open_input_string (SCM str);
extern SCM scm_open_output_string (void); SCM_API SCM scm_open_output_string (void);
extern SCM scm_get_output_string (SCM port); SCM_API SCM scm_get_output_string (SCM port);
extern SCM scm_c_read_string (const char *expr); SCM_API SCM scm_c_read_string (const char *expr);
extern SCM scm_c_eval_string (const char *expr); SCM_API SCM scm_c_eval_string (const char *expr);
extern SCM scm_eval_string (SCM string); SCM_API SCM scm_eval_string (SCM string);
extern void scm_init_strports (void); SCM_API void scm_init_strports (void);
#endif /* SCM_STRPORTS_H */ #endif /* SCM_STRPORTS_H */

View file

@ -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_SET_STRUCT_TABLE_NAME(X, NAME) SCM_SETCAR (X, NAME)
#define SCM_STRUCT_TABLE_CLASS(X) SCM_CDR (X) #define SCM_STRUCT_TABLE_CLASS(X) SCM_CDR (X)
#define SCM_SET_STRUCT_TABLE_CLASS(X, CLASS) SCM_SETCDR (X, CLASS) #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_STRUCT_GC_CHAIN(X) SCM_CELL_OBJECT_3 (X)
#define SCM_SET_STRUCT_GC_CHAIN(X, Y) SCM_SET_CELL_OBJECT_3 (X, Y) #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); SCM_API 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); SCM_API 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); SCM_API 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); SCM_API 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); SCM_API size_t scm_struct_free_entity (scm_t_bits * vtable, scm_t_bits * data);
extern SCM scm_make_struct_layout (SCM fields); SCM_API SCM scm_make_struct_layout (SCM fields);
extern SCM scm_struct_p (SCM x); SCM_API SCM scm_struct_p (SCM x);
extern SCM scm_struct_vtable_p (SCM x); SCM_API SCM scm_struct_vtable_p (SCM x);
extern SCM scm_make_struct (SCM vtable, SCM tail_array_size, SCM init); SCM_API 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); SCM_API SCM scm_make_vtable_vtable (SCM extra_fields, SCM tail_array_size, SCM init);
extern SCM scm_struct_ref (SCM handle, SCM pos); SCM_API SCM scm_struct_ref (SCM handle, SCM pos);
extern SCM scm_struct_set_x (SCM handle, SCM pos, SCM val); SCM_API SCM scm_struct_set_x (SCM handle, SCM pos, SCM val);
extern SCM scm_struct_vtable (SCM handle); SCM_API SCM scm_struct_vtable (SCM handle);
extern SCM scm_struct_vtable_tag (SCM handle); SCM_API SCM scm_struct_vtable_tag (SCM handle);
extern unsigned long scm_struct_ihashq (SCM obj, unsigned long n); SCM_API unsigned long scm_struct_ihashq (SCM obj, unsigned long n);
extern SCM scm_struct_create_handle (SCM obj); SCM_API SCM scm_struct_create_handle (SCM obj);
extern SCM scm_struct_vtable_name (SCM vtable); SCM_API SCM scm_struct_vtable_name (SCM vtable);
extern SCM scm_set_struct_vtable_name_x (SCM vtable, SCM name); SCM_API SCM scm_set_struct_vtable_name_x (SCM vtable, SCM name);
extern void scm_print_struct (SCM exp, SCM port, scm_print_state *); SCM_API void scm_print_struct (SCM exp, SCM port, scm_print_state *);
extern void scm_struct_prehistory (void); SCM_API void scm_struct_prehistory (void);
extern void scm_init_struct (void); SCM_API void scm_init_struct (void);
#endif /* SCM_STRUCT_H */ #endif /* SCM_STRUCT_H */

View file

@ -71,25 +71,25 @@
#ifdef GUILE_DEBUG #ifdef GUILE_DEBUG
extern SCM scm_sys_symbols (void); SCM_API SCM scm_sys_symbols (void);
#endif #endif
extern SCM scm_mem2symbol (const char*, size_t); SCM_API SCM scm_mem2symbol (const char*, size_t);
extern SCM scm_str2symbol (const char*); SCM_API SCM scm_str2symbol (const char*);
extern SCM scm_symbol_p (SCM x); SCM_API SCM scm_symbol_p (SCM x);
extern SCM scm_symbol_to_string (SCM s); SCM_API SCM scm_symbol_to_string (SCM s);
extern SCM scm_string_to_symbol (SCM s); SCM_API SCM scm_string_to_symbol (SCM s);
extern SCM scm_symbol_fref (SCM s); SCM_API SCM scm_symbol_fref (SCM s);
extern SCM scm_symbol_pref (SCM s); SCM_API SCM scm_symbol_pref (SCM s);
extern SCM scm_symbol_fset_x (SCM s, SCM val); SCM_API SCM scm_symbol_fset_x (SCM s, SCM val);
extern SCM scm_symbol_pset_x (SCM s, SCM val); SCM_API SCM scm_symbol_pset_x (SCM s, SCM val);
extern SCM scm_symbol_hash (SCM s); SCM_API SCM scm_symbol_hash (SCM s);
extern SCM scm_gensym (SCM prefix); SCM_API SCM scm_gensym (SCM prefix);
extern void scm_symbols_prehistory (void); SCM_API void scm_symbols_prehistory (void);
extern void scm_init_symbols (void); SCM_API void scm_init_symbols (void);
#endif /* SCM_SYMBOLS_H */ #endif /* SCM_SYMBOLS_H */

View file

@ -417,7 +417,7 @@ enum scm_tags
#define SCM_MAKISYM(n) SCM_PACK (((n) << 9) + 0x74L) #define SCM_MAKISYM(n) SCM_PACK (((n) << 9) + 0x74L)
#define SCM_MAKIFLAG(n) SCM_PACK (((n) << 9) + 0x174L) #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 /* This table must agree with the declarations
* in repl.c: {Names of immediate symbols}. * in repl.c: {Names of immediate symbols}.

View file

@ -53,9 +53,9 @@
/* smob tags for the thread datatypes */ /* smob tags for the thread datatypes */
extern scm_t_bits scm_tc16_thread; SCM_API scm_t_bits scm_tc16_thread;
extern scm_t_bits scm_tc16_mutex; SCM_API scm_t_bits scm_tc16_mutex;
extern scm_t_bits scm_tc16_condvar; SCM_API scm_t_bits scm_tc16_condvar;
#define SCM_THREADP(x) SCM_TYP16_PREDICATE (scm_tc16_thread, x) #define SCM_THREADP(x) SCM_TYP16_PREDICATE (scm_tc16_thread, x)
#define SCM_THREAD_DATA(x) ((void *) SCM_CELL_WORD_1 (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)) #define SCM_CONDVAR_DATA(x) ((void *) SCM_CELL_WORD_1 (x))
/* Initialize implementation specific details of the threads support */ /* Initialize implementation specific details of the threads support */
void scm_threads_init (SCM_STACKITEM *); SCM_API void scm_threads_init (SCM_STACKITEM *);
void scm_threads_mark_stacks (void); SCM_API void scm_threads_mark_stacks (void);
void scm_init_threads (SCM_STACKITEM *); SCM_API void scm_init_threads (SCM_STACKITEM *);
/* */ /* */
SCM scm_threads_make_mutex (void); SCM_API SCM scm_threads_make_mutex (void);
SCM scm_threads_lock_mutex (SCM); SCM_API SCM scm_threads_lock_mutex (SCM);
SCM scm_threads_unlock_mutex (SCM); SCM_API SCM scm_threads_unlock_mutex (SCM);
SCM scm_threads_monitor (void); SCM_API SCM scm_threads_monitor (void);
SCM scm_spawn_thread (scm_t_catch_body body, void *body_data, SCM_API SCM scm_spawn_thread (scm_t_catch_body body, void *body_data,
scm_t_catch_handler handler, void *handler_data); scm_t_catch_handler handler, void *handler_data);
/* These are versions of the ordinary sleep and usleep functions, /* These are versions of the ordinary sleep and usleep functions,
that play nicely with the thread system. */ that play nicely with the thread system. */
unsigned long scm_thread_sleep (unsigned long); SCM_API unsigned long scm_thread_sleep (unsigned long);
unsigned long scm_thread_usleep (unsigned long); SCM_API unsigned long scm_thread_usleep (unsigned long);
/* The C versions of the Scheme-visible thread functions. */ /* The C versions of the Scheme-visible thread functions. */
#ifdef USE_COOP_THREADS #ifdef USE_COOP_THREADS
extern SCM scm_single_thread_p (void); SCM_API SCM scm_single_thread_p (void);
#endif #endif
extern SCM scm_yield (void); SCM_API SCM scm_yield (void);
extern SCM scm_call_with_new_thread (SCM argl); SCM_API SCM scm_call_with_new_thread (SCM argl);
extern SCM scm_join_thread (SCM t); SCM_API SCM scm_join_thread (SCM t);
extern SCM scm_make_mutex (void); SCM_API SCM scm_make_mutex (void);
extern SCM scm_lock_mutex (SCM m); SCM_API SCM scm_lock_mutex (SCM m);
extern SCM scm_unlock_mutex (SCM m); SCM_API SCM scm_unlock_mutex (SCM m);
extern SCM scm_make_condition_variable (void); SCM_API SCM scm_make_condition_variable (void);
extern SCM scm_wait_condition_variable (SCM cond, SCM mutex); SCM_API SCM scm_wait_condition_variable (SCM cond, SCM mutex);
extern SCM scm_signal_condition_variable (SCM cond); SCM_API SCM scm_signal_condition_variable (SCM cond);
#ifdef USE_COOP_THREADS #ifdef USE_COOP_THREADS
#include "libguile/coop-defs.h" #include "libguile/coop-defs.h"

View file

@ -54,19 +54,19 @@ typedef SCM (*scm_t_catch_body) (void *data);
typedef SCM (*scm_t_catch_handler) (void *data, typedef SCM (*scm_t_catch_handler) (void *data,
SCM tag, SCM throw_args); SCM tag, SCM throw_args);
extern SCM scm_internal_catch (SCM tag, SCM_API SCM scm_internal_catch (SCM tag,
scm_t_catch_body body, scm_t_catch_body body,
void *body_data, void *body_data,
scm_t_catch_handler handler, scm_t_catch_handler handler,
void *handler_data); void *handler_data);
extern SCM scm_internal_lazy_catch (SCM tag, SCM_API SCM scm_internal_lazy_catch (SCM tag,
scm_t_catch_body body, scm_t_catch_body body,
void *body_data, void *body_data,
scm_t_catch_handler handler, scm_t_catch_handler handler,
void *handler_data); void *handler_data);
extern SCM scm_internal_stack_catch (SCM tag, SCM_API SCM scm_internal_stack_catch (SCM tag,
scm_t_catch_body body, scm_t_catch_body body,
void *body_data, void *body_data,
scm_t_catch_handler handler, scm_t_catch_handler handler,
@ -86,22 +86,22 @@ struct scm_body_thunk_data
SCM body_proc; 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); SCM_API SCM scm_handle_by_proc (void *, SCM, SCM);
extern SCM scm_handle_by_proc_catching_all (void *, SCM, SCM); SCM_API SCM scm_handle_by_proc_catching_all (void *, SCM, SCM);
extern SCM scm_handle_by_message (void *, SCM, SCM); SCM_API SCM scm_handle_by_message (void *, SCM, SCM);
extern SCM scm_handle_by_message_noexit (void *, SCM, SCM); SCM_API SCM scm_handle_by_message_noexit (void *, SCM, SCM);
extern SCM scm_handle_by_throw (void *, SCM, SCM); SCM_API SCM scm_handle_by_throw (void *, SCM, SCM);
extern int scm_exit_status (SCM args); SCM_API int scm_exit_status (SCM args);
extern SCM scm_catch (SCM tag, SCM thunk, SCM handler); SCM_API SCM scm_catch (SCM tag, SCM thunk, SCM handler);
extern SCM scm_lazy_catch (SCM tag, SCM thunk, SCM handler); SCM_API SCM scm_lazy_catch (SCM tag, SCM thunk, SCM handler);
extern SCM scm_ithrow (SCM key, SCM args, int noreturn); SCM_API SCM scm_ithrow (SCM key, SCM args, int noreturn);
extern SCM scm_throw (SCM key, SCM args); SCM_API SCM scm_throw (SCM key, SCM args);
extern void scm_init_throw (void); SCM_API void scm_init_throw (void);
#endif /* SCM_THROW_H */ #endif /* SCM_THROW_H */

View file

@ -73,7 +73,7 @@ typedef struct scm_t_array_dim
long inc; long inc;
} scm_t_array_dim; } 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) #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); SCM_API size_t scm_uniform_element_size (SCM obj);
extern SCM scm_make_uve (long k, SCM prot); SCM_API SCM scm_make_uve (long k, SCM prot);
extern SCM scm_uniform_vector_length (SCM v); SCM_API SCM scm_uniform_vector_length (SCM v);
extern SCM scm_array_p (SCM v, SCM prot); SCM_API SCM scm_array_p (SCM v, SCM prot);
extern SCM scm_array_rank (SCM ra); SCM_API SCM scm_array_rank (SCM ra);
extern SCM scm_array_dimensions (SCM ra); SCM_API SCM scm_array_dimensions (SCM ra);
extern SCM scm_shared_array_root (SCM ra); SCM_API SCM scm_shared_array_root (SCM ra);
extern SCM scm_shared_array_offset (SCM ra); SCM_API SCM scm_shared_array_offset (SCM ra);
extern SCM scm_shared_array_increments (SCM ra); SCM_API SCM scm_shared_array_increments (SCM ra);
extern long scm_aind (SCM ra, SCM args, const char *what); SCM_API long scm_aind (SCM ra, SCM args, const char *what);
extern SCM scm_make_ra (int ndim); SCM_API SCM scm_make_ra (int ndim);
extern SCM scm_shap2ra (SCM args, const char *what); SCM_API SCM scm_shap2ra (SCM args, const char *what);
extern SCM scm_dimensions_to_uniform_array (SCM dims, SCM prot, SCM fill); SCM_API SCM scm_dimensions_to_uniform_array (SCM dims, SCM prot, SCM fill);
extern void scm_ra_set_contp (SCM ra); SCM_API void scm_ra_set_contp (SCM ra);
extern SCM scm_make_shared_array (SCM oldra, SCM mapfunc, SCM dims); SCM_API SCM scm_make_shared_array (SCM oldra, SCM mapfunc, SCM dims);
extern SCM scm_transpose_array (SCM ra, SCM args); SCM_API SCM scm_transpose_array (SCM ra, SCM args);
extern SCM scm_enclose_array (SCM ra, SCM axes); SCM_API SCM scm_enclose_array (SCM ra, SCM axes);
extern SCM scm_array_in_bounds_p (SCM v, SCM args); SCM_API SCM scm_array_in_bounds_p (SCM v, SCM args);
extern SCM scm_uniform_vector_ref (SCM v, SCM args); SCM_API SCM scm_uniform_vector_ref (SCM v, SCM args);
extern SCM scm_cvref (SCM v, unsigned long pos, SCM last); SCM_API SCM scm_cvref (SCM v, unsigned long pos, SCM last);
extern SCM scm_array_set_x (SCM v, SCM obj, SCM args); SCM_API SCM scm_array_set_x (SCM v, SCM obj, SCM args);
extern SCM scm_array_contents (SCM ra, SCM strict); SCM_API SCM scm_array_contents (SCM ra, SCM strict);
extern SCM scm_ra2contig (SCM ra, int copy); SCM_API SCM scm_ra2contig (SCM ra, int copy);
extern SCM scm_uniform_array_read_x (SCM ra, SCM port_or_fd, SCM start, SCM end); SCM_API 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); SCM_API SCM scm_uniform_array_write (SCM v, SCM port_or_fd, SCM start, SCM end);
extern SCM scm_bit_count (SCM item, SCM seq); SCM_API SCM scm_bit_count (SCM item, SCM seq);
extern SCM scm_bit_position (SCM item, SCM v, SCM k); SCM_API SCM scm_bit_position (SCM item, SCM v, SCM k);
extern SCM scm_bit_set_star_x (SCM v, SCM kv, SCM obj); SCM_API SCM scm_bit_set_star_x (SCM v, SCM kv, SCM obj);
extern SCM scm_bit_count_star (SCM v, SCM kv, SCM obj); SCM_API SCM scm_bit_count_star (SCM v, SCM kv, SCM obj);
extern SCM scm_bit_invert_x (SCM v); SCM_API SCM scm_bit_invert_x (SCM v);
extern SCM scm_istr2bve (char *str, long len); SCM_API SCM scm_istr2bve (char *str, long len);
extern SCM scm_t_arrayo_list (SCM v); SCM_API SCM scm_t_arrayo_list (SCM v);
extern SCM scm_list_to_uniform_array (SCM ndim, SCM prot, SCM lst); SCM_API SCM scm_list_to_uniform_array (SCM ndim, SCM prot, SCM lst);
extern int scm_raprin1 (SCM exp, SCM port, scm_print_state *pstate); SCM_API int scm_raprin1 (SCM exp, SCM port, scm_print_state *pstate);
extern SCM scm_array_prototype (SCM ra); SCM_API SCM scm_array_prototype (SCM ra);
extern void scm_init_unif (void); SCM_API void scm_init_unif (void);
#endif /* SCM_UNIF_H */ #endif /* SCM_UNIF_H */

View file

@ -48,13 +48,13 @@
#include "libguile/__scm.h" #include "libguile/__scm.h"
extern SCM scm_values_vtable; SCM_API SCM scm_values_vtable;
#define SCM_VALUESP(x) (SCM_STRUCTP (x)\ #define SCM_VALUESP(x) (SCM_STRUCTP (x)\
&& SCM_EQ_P (scm_struct_vtable (x), scm_values_vtable)) && SCM_EQ_P (scm_struct_vtable (x), scm_values_vtable))
extern SCM scm_values (SCM args); SCM_API SCM scm_values (SCM args);
extern void scm_init_values (void); SCM_API void scm_init_values (void);
#endif /* SCM_VALUES_H */ #endif /* SCM_VALUES_H */

View file

@ -60,16 +60,16 @@
extern SCM scm_make_variable (SCM init); SCM_API SCM scm_make_variable (SCM init);
extern SCM scm_make_undefined_variable (void); SCM_API SCM scm_make_undefined_variable (void);
extern SCM scm_variable_p (SCM obj); SCM_API SCM scm_variable_p (SCM obj);
extern SCM scm_variable_ref (SCM var); SCM_API SCM scm_variable_ref (SCM var);
extern SCM scm_variable_set_x (SCM var, SCM val); SCM_API SCM scm_variable_set_x (SCM var, SCM val);
extern SCM scm_variable_bound_p (SCM var); 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 */ #endif /* SCM_VARIABLE_H */

View file

@ -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); SCM_API SCM scm_vector_p (SCM x);
extern SCM scm_vector_length (SCM v); SCM_API SCM scm_vector_length (SCM v);
extern SCM scm_vector (SCM l); SCM_API SCM scm_vector (SCM l);
extern SCM scm_vector_ref (SCM v, SCM k); SCM_API SCM scm_vector_ref (SCM v, SCM k);
extern SCM scm_vector_set_x (SCM v, SCM k, SCM obj); SCM_API SCM scm_vector_set_x (SCM v, SCM k, SCM obj);
extern SCM scm_make_vector (SCM k, SCM fill); SCM_API SCM scm_make_vector (SCM k, SCM fill);
extern SCM scm_vector_to_list (SCM v); SCM_API SCM scm_vector_to_list (SCM v);
extern SCM scm_vector_fill_x (SCM v, SCM fill_x); SCM_API SCM scm_vector_fill_x (SCM v, SCM fill_x);
extern SCM scm_vector_equal_p (SCM x, SCM y); SCM_API SCM scm_vector_equal_p (SCM x, SCM y);
extern SCM scm_vector_move_left_x (SCM vec1, SCM start1, SCM end1, SCM_API SCM scm_vector_move_left_x (SCM vec1, SCM start1, SCM end1,
SCM vec2, SCM start2); SCM vec2, SCM start2);
extern SCM scm_vector_move_right_x (SCM vec1, SCM start1, SCM end1, SCM_API SCM scm_vector_move_right_x (SCM vec1, SCM start1, SCM end1,
SCM vec2, SCM start2); SCM vec2, SCM start2);
extern void scm_init_vectors (void); SCM_API void scm_init_vectors (void);
#endif /* SCM_VECTORS_H */ #endif /* SCM_VECTORS_H */

View file

@ -50,8 +50,8 @@
extern SCM scm_make_soft_port (SCM pv, SCM modes); SCM_API SCM scm_make_soft_port (SCM pv, SCM modes);
extern void scm_init_vports (void); SCM_API void scm_init_vports (void);
#endif /* SCM_VPORTS_H */ #endif /* SCM_VPORTS_H */

View file

@ -60,21 +60,21 @@
#define SCM_WVECT_GC_CHAIN(X) (SCM_CELL_OBJECT_3 (X)) #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))) #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); SCM_API SCM scm_make_weak_vector (SCM k, SCM fill);
extern SCM scm_weak_vector (SCM l); SCM_API SCM scm_weak_vector (SCM l);
extern SCM scm_weak_vector_p (SCM x); SCM_API SCM scm_weak_vector_p (SCM x);
extern SCM scm_make_weak_key_hash_table (SCM k); SCM_API SCM scm_make_weak_key_hash_table (SCM k);
extern SCM scm_make_weak_value_hash_table (SCM k); SCM_API SCM scm_make_weak_value_hash_table (SCM k);
extern SCM scm_make_doubly_weak_hash_table (SCM k); SCM_API SCM scm_make_doubly_weak_hash_table (SCM k);
extern SCM scm_weak_key_hash_table_p (SCM x); SCM_API SCM scm_weak_key_hash_table_p (SCM x);
extern SCM scm_weak_value_hash_table_p (SCM x); SCM_API SCM scm_weak_value_hash_table_p (SCM x);
extern SCM scm_doubly_weak_hash_table_p (SCM x); SCM_API SCM scm_doubly_weak_hash_table_p (SCM x);
extern void scm_weaks_prehistory (void); SCM_API void scm_weaks_prehistory (void);
extern void scm_init_weaks (void); SCM_API void scm_init_weaks (void);
#endif /* SCM_WEAKS_H */ #endif /* SCM_WEAKS_H */