From 302e3218b7d487539ec305bf23881a6ee7d5be99 Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 20 Feb 2017 00:05:29 -0800 Subject: Import Upstream version 5e1 --- scm.h | 970 +++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 482 insertions(+), 488 deletions(-) (limited to 'scm.h') diff --git a/scm.h b/scm.h index 504f849..4fb3afe 100644 --- a/scm.h +++ b/scm.h @@ -80,22 +80,15 @@ typedef struct {const char *name;} subr_info; #include "scmfig.h" #ifdef _WIN32 -# ifdef DLLSCM +# ifdef SCM_WIN_DLL # define SCM_DLL_EXPORT __declspec(dllexport) -# define SCM_DLL_IMPORT __declspec(dllimport) -# ifdef SCM_DLL -# define SCM_EXPORT SCM_DLL_EXPORT -# else -# define SCM_EXPORT SCM_DLL_IMPORT -# endif +# define SCM_EXPORT SCM_DLL_EXPORT # else # define SCM_DLL_EXPORT /**/ -# define SCM_DLL_IMPORT extern # define SCM_EXPORT extern -# endif +# endif #else # define SCM_DLL_EXPORT /**/ -# define SCM_DLL_IMPORT extern # define SCM_EXPORT extern #endif @@ -115,31 +108,31 @@ typedef struct { #endif #ifndef STDC_HEADERS - int isatty P((int)); + int isatty P((int)); #endif typedef struct { - SCM (*mark)P((SCM)); - sizet (*free)P((CELLPTR)); - int (*print)P((SCM exp, SCM port, int writing)); - SCM (*equalp)P((SCM, SCM)); + SCM (*mark)P((SCM)); + sizet (*free)P((CELLPTR)); + int (*print)P((SCM exp, SCM port, int writing)); + SCM (*equalp)P((SCM, SCM)); } smobfuns; typedef struct { - char *name; - SCM (*mark)P((SCM ptr)); - int (*free)P((FILE *p)); - int (*print)P((SCM exp, SCM port, int writing)); - SCM (*equalp)P((SCM, SCM)); - int (*fputc)P((int c, FILE *p)); -/* int (*fputs)P((char *s, FILE *p)); */ -/* sizet (*fwrite)P((char *s, sizet siz, sizet num, FILE *p)); */ - int (*fputs)P((const char *s, FILE *p)); + char *name; + SCM (*mark)P((SCM ptr)); + int (*free)P((FILE *p)); + int (*print)P((SCM exp, SCM port, int writing)); + SCM (*equalp)P((SCM, SCM)); + int (*fputc)P((int c, FILE *p)); +/* int (*fputs)P((char *s, FILE *p)); */ +/* sizet (*fwrite)P((char *s, sizet siz, sizet num, FILE *p)); */ + int (*fputs)P((const char *s, FILE *p)); sizet (*fwrite)P((const void *s, sizet siz, sizet num, FILE *p)); - int (*fflush)P((FILE *stream)); - int (*fgetc)P((FILE *p)); - int (*fclose)P((FILE *p)); - int (*ungetc)P((int c, SCM p)); + int (*fflush)P((FILE *stream)); + int (*fgetc)P((FILE *p)); + int (*fclose)P((FILE *p)); + int (*ungetc)P((int c, SCM p)); } ptobfuns; typedef struct { @@ -184,7 +177,7 @@ typedef struct {SCM type;double *real;} dbl; #define ICHR(x) ((unsigned char)((x)>>8)) #define MAKICHR(x) (((x)<<8)+0xf4L) -#define ILOC00 (0x000000fcL) +#define ILOC00 (0x000000fcL) #define ILOCP(n) ((0xff & (int)(n))==(int)ILOC00) #define MAKILOC(if, id) (ILOC00 + (((long)id)<<8) + (((long)if)<<16)) #define IDIST(n) (((int)(n)>>8) & 0x7f) @@ -484,45 +477,45 @@ SCM_EXPORT long tc16_array; #define SCM_SET_PTOBNUM(x, typ) (CAR(x)=(typ)|(CAR(x) & ~0x0ffffL)) #define DIGITS '0':case '1':case '2':case '3':case '4':\ - case '5':case '6':case '7':case '8':case '9' + case '5':case '6':case '7':case '8':case '9' /* Aggregated types for dispatch in switch statements. */ #define tcs_cons_inum 2: case 6:case 10:case 14:\ - case 18:case 22:case 26:case 30:\ - case 34:case 38:case 42:case 46:\ - case 50:case 54:case 58:case 62:\ - case 66:case 70:case 74:case 78:\ - case 82:case 86:case 90:case 94:\ - case 98:case 102:case 106:case 110:\ - case 114:case 118:case 122:case 126 + case 18:case 22:case 26:case 30:\ + case 34:case 38:case 42:case 46:\ + case 50:case 54:case 58:case 62:\ + case 66:case 70:case 74:case 78:\ + case 82:case 86:case 90:case 94:\ + case 98:case 102:case 106:case 110:\ + case 114:case 118:case 122:case 126 #define tcs_cons_iloc 124 #define tcs_cons_ispcsym 4:case 12:case 20:case 28:\ - case 36:case 44:case 52:case 60:\ - case 68:case 76:case 84:case 92:\ - case 100:case 108 -#define tcs_cons_chflag 116 /* char *or* flag */ + case 36:case 44:case 52:case 60:\ + case 68:case 76:case 84:case 92:\ + case 100:case 108 +#define tcs_cons_chflag 116 /* char *or* flag */ #define tcs_cons_imcar tcs_cons_inum:\ - case tcs_cons_iloc:\ - case tcs_cons_ispcsym:\ - case tcs_cons_chflag + case tcs_cons_iloc:\ + case tcs_cons_ispcsym:\ + case tcs_cons_chflag #define tcs_cons_nimcar 0:case 8:case 16:case 24:\ - case 32:case 40:case 48:case 56:\ - case 64:case 72:case 80:case 88:\ - case 96:case 104:case 112:case 120 + case 32:case 40:case 48:case 56:\ + case 64:case 72:case 80:case 88:\ + case 96:case 104:case 112:case 120 #define tcs_cons_gloc 1:case 9:case 17:case 25:\ - case 33:case 41:case 49:case 57:\ - case 65:case 73:case 81:case 89:\ - case 97:case 105:case 113:case 121 + case 33:case 41:case 49:case 57:\ + case 65:case 73:case 81:case 89:\ + case 97:case 105:case 113:case 121 #define tcs_closures 3:case 11:case 19:case 27:\ - case 35:case 43:case 51:case 59:\ - case 67:case 75:case 83:case 91:\ - case 99:case 107:case 115:case 123 + case 35:case 43:case 51:case 59:\ + case 67:case 75:case 83:case 91:\ + case 99:case 107:case 115:case 123 #define tcs_subrs tc7_asubr:case tc7_subr_0:case tc7_subr_1:case tc7_cxr:\ - case tc7_subr_3:case tc7_subr_2:case tc7_rpsubr:case tc7_subr_1o:\ - case tc7_subr_2o:case tc7_lsubr_2:case tc7_lsubr + case tc7_subr_3:case tc7_subr_2:case tc7_rpsubr:case tc7_subr_1o:\ + case tc7_subr_2o:case tc7_lsubr_2:case tc7_lsubr #define tcs_symbols tc7_ssymbol:case tc7_msymbol #define tcs_bignums tc16_bigpos:case tc16_bigneg #define tcs_uves tc7_string:case tc7_bvect:\ @@ -531,74 +524,74 @@ SCM_EXPORT long tc16_array; #define tc3_cons_nimcar 0 #define tc3_cons_imcar 2:case 4:case 6 -#define tc3_cons_gloc 1 -#define tc3_closure 3 -#define tc3_tc7_types 5:case 7 - -#define tc7_ssymbol 5 -#define tc7_msymbol 7 -#define tc7_string 13 -#define tc7_vector 15 -#define tc7_bvect 21 +#define tc3_cons_gloc 1 +#define tc3_closure 3 +#define tc3_tc7_types 5:case 7 + +#define tc7_ssymbol 5 +#define tc7_msymbol 7 +#define tc7_string 13 +#define tc7_vector 15 +#define tc7_bvect 21 /* spare 23 */ -#define tc7_ivect 29 -#define tc7_uvect 31 -#define tc7_svect 37 +#define tc7_ivect 29 +#define tc7_uvect 31 +#define tc7_svect 37 /* spare 39 */ -#define tc7_fvect 45 -#define tc7_dvect 47 -#define tc7_cvect 53 -#define tc7_port 55 -#define tc7_contin 61 -#define tc7_specfun 63 +#define tc7_fvect 45 +#define tc7_dvect 47 +#define tc7_cvect 53 +#define tc7_port 55 +#define tc7_contin 61 +#define tc7_specfun 63 /* spare 69 71 77 79 */ -#define tc7_subr_0 85 -#define tc7_subr_1 87 -#define tc7_cxr 93 -#define tc7_subr_3 95 -#define tc7_subr_2 101 -#define tc7_asubr 103 -#define tc7_subr_1o 109 -#define tc7_subr_2o 111 -#define tc7_lsubr_2 117 -#define tc7_lsubr 119 -#define tc7_rpsubr 125 - -#define tc7_smob 127 -#define tc_free_cell 127 +#define tc7_subr_0 85 +#define tc7_subr_1 87 +#define tc7_cxr 93 +#define tc7_subr_3 95 +#define tc7_subr_2 101 +#define tc7_asubr 103 +#define tc7_subr_1o 109 +#define tc7_subr_2o 111 +#define tc7_lsubr_2 117 +#define tc7_lsubr 119 +#define tc7_rpsubr 125 + +#define tc7_smob 127 +#define tc_free_cell 127 #define tc_broken_heart (tc_free_cell+0x10000) -#define tc16_apply (tc7_specfun | (0L<<8)) -#define tc16_call_cc (tc7_specfun | (1L<<8)) -#define tc16_cclo (tc7_specfun | (2L<<8)) -#define tc16_eval (tc7_specfun | (3L<<8)) -#define tc16_values (tc7_specfun | (4L<<8)) -#define tc16_call_wv (tc7_specfun | (5L<<8)) +#define tc16_apply (tc7_specfun | (0L<<8)) +#define tc16_call_cc (tc7_specfun | (1L<<8)) +#define tc16_cclo (tc7_specfun | (2L<<8)) +#define tc16_eval (tc7_specfun | (3L<<8)) +#define tc16_values (tc7_specfun | (4L<<8)) +#define tc16_call_wv (tc7_specfun | (5L<<8)) -#define tc16_flo 0x017f -#define tc_flo 0x017fL +#define tc16_flo 0x017f +#define tc_flo 0x017fL -#define REAL_PART (1L<<16) -#define IMAG_PART (2L<<16) -#define tc_dblr (tc16_flo|REAL_PART) -#define tc_dblc (tc16_flo|REAL_PART|IMAG_PART) +#define REAL_PART (1L<<16) +#define IMAG_PART (2L<<16) +#define tc_dblr (tc16_flo|REAL_PART) +#define tc_dblc (tc16_flo|REAL_PART|IMAG_PART) -#define tc16_bigpos 0x027f -#define tc16_bigneg 0x037f +#define tc16_bigpos 0x027f +#define tc16_bigneg 0x037f /* The first four flags fit in the car of a port cell, remaining flags only in the port table */ -#define OPN (1L<<16) -#define RDNG (2L<<16) -#define WRTNG (4L<<16) -#define CRDY (8L<<16) +#define OPN (1L<<16) +#define RDNG (2L<<16) +#define WRTNG (4L<<16) +#define CRDY (8L<<16) -#define TRACKED (16L<<16) -#define BINARY (32L<<16) -#define BUF0 (64L<<16) -#define EXCLUSIVE (128L<<16) - /* LSB is used for gc mark */ +#define TRACKED (16L<<16) +#define BINARY (32L<<16) +#define BUF0 (64L<<16) +#define EXCLUSIVE (128L<<16) + /* LSB is used for gc mark */ SCM_EXPORT scm_gra subrs_gra; #define subrs ((subr_info *)(subrs_gra.elts)) @@ -622,29 +615,30 @@ SCM_EXPORT long tc16_dir; SCM_EXPORT long tc16_clport; SCM_EXPORT SCM sys_protects[]; -#define cur_inp sys_protects[0] -#define cur_outp sys_protects[1] -#define cur_errp sys_protects[2] +#define cur_inp sys_protects[0] +#define cur_outp sys_protects[1] +#define cur_errp sys_protects[2] #define def_inp sys_protects[3] -#define def_outp sys_protects[4] -#define def_errp sys_protects[5] -#define sys_errp sys_protects[6] -#define sys_safep sys_protects[7] -#define listofnull sys_protects[8] -#define undefineds sys_protects[9] -#define nullvect sys_protects[10] -#define nullstr sys_protects[11] -#define progargs sys_protects[12] -#define loadports sys_protects[13] -#define rootcont sys_protects[14] -#define dynwinds sys_protects[15] +#define def_outp sys_protects[4] +#define def_errp sys_protects[5] +#define sys_errp sys_protects[6] +#define sys_safep sys_protects[7] +#define listofnull sys_protects[8] +#define undefineds sys_protects[9] +#define nullvect sys_protects[10] +#define nullstr sys_protects[11] +#define progargs sys_protects[12] +#define loadports sys_protects[13] +#define rootcont sys_protects[14] +#define dynwinds sys_protects[15] #define list_unspecified sys_protects[16] -#define f_evapply sys_protects[17] -#define eval_env sys_protects[18] +#define f_evapply sys_protects[17] +#define eval_env sys_protects[18] #define f_apply_closure sys_protects[19] -#define flo0 sys_protects[20] -#define scm_uprotects sys_protects[21] -#define NUM_PROTECTS 22 +#define flo0 sys_protects[20] +#define scm_uprotects sys_protects[21] +#define scm_narn sys_protects[22] +#define NUM_PROTECTS 23 /* now for connects between source files */ @@ -684,7 +678,7 @@ SCM_EXPORT const char dirsep[]; /* strings used in several source files */ -SCM_EXPORT char s_read[], s_write[], s_newline[], s_system[]; +SCM_EXPORT char s_write[], s_newline[], s_system[]; SCM_EXPORT char s_make_string[], s_make_vector[], s_list[], s_op_pipe[]; #define s_string (s_make_string+5) #define s_vector (s_make_vector+5) @@ -706,315 +700,315 @@ SCM_EXPORT void (*init_user_scm) P((void)); /* function prototypes */ SCM_EXPORT void (* deferred_proc) P((void)); -SCM_EXPORT void process_signals P((void)); -SCM_EXPORT int handle_it P((int i)); -SCM_EXPORT SCM must_malloc_cell P((long len, SCM c, char *what)); -SCM_EXPORT void must_realloc_cell P((SCM z, long olen, long len, char *what)); -SCM_EXPORT char *must_malloc P((long len, char *what)); -SCM_EXPORT char *must_realloc P((char *where, long olen, long len, char *what)); -SCM_EXPORT void must_free P((char *obj, sizet len)); -SCM_EXPORT void scm_protect_temp P((SCM *ptr)); -SCM_EXPORT long ilength P((SCM sx)); -SCM_EXPORT SCM hash P((SCM obj, SCM n)); -SCM_EXPORT SCM hashv P((SCM obj, SCM n)); -SCM_EXPORT SCM hashq P((SCM obj, SCM n)); -SCM_EXPORT SCM obhash P((SCM obj)); -SCM_EXPORT SCM obunhash P((SCM obj)); +SCM_EXPORT void process_signals P((void)); +SCM_EXPORT int handle_it P((int i)); +SCM_EXPORT SCM must_malloc_cell P((long len, SCM c, char *what)); +SCM_EXPORT void must_realloc_cell P((SCM z, long olen, long len, char *what)); +SCM_EXPORT char *must_malloc P((long len, char *what)); +SCM_EXPORT char *must_realloc P((char *where, long olen, long len, char *what)); +SCM_EXPORT void must_free P((char *obj, sizet len)); +SCM_EXPORT void scm_protect_temp P((SCM *ptr)); +SCM_EXPORT long ilength P((SCM sx)); +SCM_EXPORT SCM hash P((SCM obj, SCM n)); +SCM_EXPORT SCM hashv P((SCM obj, SCM n)); +SCM_EXPORT SCM hashq P((SCM obj, SCM n)); +SCM_EXPORT SCM obhash P((SCM obj)); +SCM_EXPORT SCM obunhash P((SCM obj)); SCM_EXPORT unsigned long strhash P((unsigned char *str, sizet len, unsigned long n)); SCM_EXPORT unsigned long hasher P((SCM obj, unsigned long n, sizet d)); -SCM_EXPORT SCM lroom P((SCM args)); -SCM_EXPORT SCM lflush P((SCM port)); -SCM_EXPORT void scm_init_gra P((scm_gra *gra, sizet eltsize, sizet len, - sizet maxlen, char *what)); -SCM_EXPORT int scm_grow_gra P((scm_gra *gra, char *elt)); -SCM_EXPORT void scm_trim_gra P((scm_gra *gra)); -SCM_EXPORT void scm_free_gra P((scm_gra *gra)); -SCM_EXPORT long newsmob P((smobfuns *smob)); -SCM_EXPORT long newptob P((ptobfuns *ptob)); -SCM_EXPORT SCM scm_port_entry P((FILE *stream, long ptype, long flags)); -SCM_EXPORT SCM scm_open_ports P((void)); -SCM_EXPORT void prinport P((SCM exp, SCM port, char *type)); -SCM_EXPORT SCM repl P((void)); -SCM_EXPORT void repl_report P((void)); -SCM_EXPORT void growth_mon P((char *obj, long size, char *units, int grewp)); -SCM_EXPORT void gc_start P((char *what)); -SCM_EXPORT void gc_end P((void)); -SCM_EXPORT void gc_mark P((SCM p)); -SCM_EXPORT void scm_gc_hook P((void)); +SCM_EXPORT SCM lroom P((SCM args)); +SCM_EXPORT SCM lflush P((SCM port)); +SCM_EXPORT void scm_init_gra P((scm_gra *gra, sizet eltsize, sizet len, + sizet maxlen, char *what)); +SCM_EXPORT int scm_grow_gra P((scm_gra *gra, char *elt)); +SCM_EXPORT void scm_trim_gra P((scm_gra *gra)); +SCM_EXPORT void scm_free_gra P((scm_gra *gra)); +SCM_EXPORT long newsmob P((smobfuns *smob)); +SCM_EXPORT long newptob P((ptobfuns *ptob)); +SCM_EXPORT SCM scm_port_entry P((FILE *stream, long ptype, long flags)); +SCM_EXPORT SCM scm_open_ports P((void)); +SCM_EXPORT void prinport P((SCM exp, SCM port, char *type)); +SCM_EXPORT SCM repl P((void)); +SCM_EXPORT void repl_report P((void)); +SCM_EXPORT void growth_mon P((char *obj, long size, char *units, int grewp)); +SCM_EXPORT void gc_start P((char *what)); +SCM_EXPORT void gc_end P((void)); +SCM_EXPORT void gc_mark P((SCM p)); +SCM_EXPORT void scm_gc_hook P((void)); SCM_EXPORT SCM scm_gc_protect P((SCM obj)); -SCM_EXPORT SCM scm_add_finalizer P((SCM value, SCM finalizer)); -SCM_EXPORT void scm_run_finalizers P((int exiting)); +SCM_EXPORT SCM scm_add_finalizer P((SCM value, SCM finalizer)); +SCM_EXPORT void scm_run_finalizers P((int exiting)); SCM_EXPORT void scm_egc_start P((void)); SCM_EXPORT void scm_egc_end P((void)); -SCM_EXPORT void heap_report P((void)); -SCM_EXPORT void gra_report P((void)); -SCM_EXPORT void exit_report P((void)); -SCM_EXPORT void stack_report P((void)); -SCM_EXPORT SCM scm_stack_trace P((SCM contin)); -SCM_EXPORT SCM scm_scope_trace P((SCM env)); -SCM_EXPORT SCM scm_frame_trace P((SCM contin, SCM nf)); -SCM_EXPORT SCM scm_frame2env P((SCM contin, SCM nf)); -SCM_EXPORT SCM scm_frame_eval P((SCM contin, SCM nf, SCM expr)); -SCM_EXPORT void iprin1 P((SCM exp, SCM port, int writing)); -SCM_EXPORT void intprint P((long n, int radix, SCM port)); -SCM_EXPORT void iprlist P((char *hdr, SCM exp, int tlr, SCM port, int writing)); -SCM_EXPORT SCM scm_env_lookup P((SCM var, SCM stenv)); -SCM_EXPORT SCM scm_env_rlookup P((SCM addr, SCM stenv, char *what)); -SCM_EXPORT SCM scm_env_getprop P((SCM prop, SCM env)); -SCM_EXPORT SCM scm_env_addprop P((SCM prop, SCM val, SCM env)); -SCM_EXPORT long num_frames P((SCM estk, int i)); -SCM_EXPORT SCM *estk_frame P((SCM estk, int i, int nf)); -SCM_EXPORT SCM *cont_frame P((SCM contin, int nf)); -SCM_EXPORT SCM stacktrace1 P((SCM estk, int i)); -SCM_EXPORT void scm_princode P((SCM code, SCM env, SCM port, int writing)); -SCM_EXPORT void scm_princlosure P((SCM proc, SCM port, int writing)); -SCM_EXPORT void lputc P((int c, SCM port)); -SCM_EXPORT void lputs P((char *s, SCM port)); -SCM_EXPORT sizet lfwrite P((char *ptr, sizet size, sizet nitems, SCM port)); -SCM_EXPORT int lgetc P((SCM port)); -SCM_EXPORT void lungetc P((int c, SCM port)); -SCM_EXPORT char *grow_tok_buf P((SCM tok_buf)); -SCM_EXPORT long mode_bits P((char *modes, char *cmodes)); -SCM_EXPORT long time_in_msec P((long x)); -SCM_EXPORT SCM my_time P((void)); -SCM_EXPORT SCM your_time P((void)); -SCM_EXPORT void init_iprocs P((iproc *subra, int type)); - -SCM_EXPORT void final_scm P((int)); -SCM_EXPORT void init_sbrk P((void)); -SCM_EXPORT int init_buf0 P((FILE *inport)); -SCM_EXPORT void scm_init_from_argv P((int argc, char **argv, char *script_arg, - int iverbose, int buf0stdin)); -SCM_EXPORT void init_signals P((void)); -SCM_EXPORT SCM scm_top_level P((char *initpath, SCM (*toplvl_fun)())); -SCM_EXPORT void restore_signals P((void)); -SCM_EXPORT void free_storage P((void)); -SCM_EXPORT char *dld_find_executable P((const char* command)); -SCM_EXPORT char *scm_find_execpath P((int argc, char **argv, char *script_arg)); -SCM_EXPORT void init_scm P((int iverbose, int buf0stdin, long init_heap_size)); +SCM_EXPORT void heap_report P((void)); +SCM_EXPORT void gra_report P((void)); +SCM_EXPORT void exit_report P((void)); +SCM_EXPORT void stack_report P((void)); +SCM_EXPORT SCM scm_stack_trace P((SCM contin)); +SCM_EXPORT SCM scm_scope_trace P((SCM env)); +SCM_EXPORT SCM scm_frame_trace P((SCM contin, SCM nf)); +SCM_EXPORT SCM scm_frame2env P((SCM contin, SCM nf)); +SCM_EXPORT SCM scm_frame_eval P((SCM contin, SCM nf, SCM expr)); +SCM_EXPORT void iprin1 P((SCM exp, SCM port, int writing)); +SCM_EXPORT void intprint P((long n, int radix, SCM port)); +SCM_EXPORT void iprlist P((char *hdr, SCM exp, int tlr, SCM port, int writing)); +SCM_EXPORT SCM scm_env_lookup P((SCM var, SCM stenv)); +SCM_EXPORT SCM scm_env_rlookup P((SCM addr, SCM stenv, char *what)); +SCM_EXPORT SCM scm_env_getprop P((SCM prop, SCM env)); +SCM_EXPORT SCM scm_env_addprop P((SCM prop, SCM val, SCM env)); +SCM_EXPORT long num_frames P((SCM estk, int i)); +SCM_EXPORT SCM *estk_frame P((SCM estk, int i, int nf)); +SCM_EXPORT SCM *cont_frame P((SCM contin, int nf)); +SCM_EXPORT SCM stacktrace1 P((SCM estk, int i)); +SCM_EXPORT void scm_princode P((SCM code, SCM env, SCM port, int writing)); +SCM_EXPORT void scm_princlosure P((SCM proc, SCM port, int writing)); +SCM_EXPORT void lputc P((int c, SCM port)); +SCM_EXPORT void lputs P((char *s, SCM port)); +SCM_EXPORT sizet lfwrite P((char *ptr, sizet size, sizet nitems, SCM port)); +SCM_EXPORT int lgetc P((SCM port)); +SCM_EXPORT void lungetc P((int c, SCM port)); +SCM_EXPORT char *grow_tok_buf P((SCM tok_buf)); +SCM_EXPORT long mode_bits P((char *modes, char *cmodes)); +SCM_EXPORT long time_in_msec P((long x)); +SCM_EXPORT SCM my_time P((void)); +SCM_EXPORT SCM your_time P((void)); +SCM_EXPORT void init_iprocs P((iproc *subra, int type)); + +SCM_EXPORT void final_scm P((int)); +SCM_EXPORT void init_sbrk P((void)); +SCM_EXPORT int init_buf0 P((FILE *inport)); +SCM_EXPORT void scm_init_from_argv P((int argc, char **argv, char *script_arg, + int iverbose, int buf0stdin)); +SCM_EXPORT void init_signals P((void)); +SCM_EXPORT SCM scm_top_level P((char *initpath, SCM (*toplvl_fun)())); +SCM_EXPORT void restore_signals P((void)); +SCM_EXPORT void free_storage P((void)); +SCM_EXPORT char *dld_find_executable P((const char* command)); +SCM_EXPORT char *scm_find_execpath P((int argc, char **argv, char *script_arg)); +SCM_EXPORT void init_scm P((int iverbose, int buf0stdin, long init_heap_size)); SCM_EXPORT void scm_init_INITS P((void)); -SCM_EXPORT SCM scm_init_extensions P((void)); -SCM_EXPORT void ignore_signals P((void)); -SCM_EXPORT void unignore_signals P((void)); +SCM_EXPORT SCM scm_init_extensions P((void)); +SCM_EXPORT void ignore_signals P((void)); +SCM_EXPORT void unignore_signals P((void)); -SCM_EXPORT void add_feature P((char *str)); -SCM_EXPORT int raprin1 P((SCM exp, SCM port, int writing)); -SCM_EXPORT SCM markcdr P((SCM ptr)); +SCM_EXPORT void add_feature P((char *str)); +SCM_EXPORT int raprin1 P((SCM exp, SCM port, int writing)); +SCM_EXPORT SCM markcdr P((SCM ptr)); #define mark0 (0) /*SCM mark0 P((SCM ptr)); */ -SCM_EXPORT SCM equal0 P((SCM ptr1, SCM ptr2)); -SCM_EXPORT sizet free0 P((CELLPTR ptr)); -SCM_EXPORT void scm_warn P((char *str1, char *str2, SCM obj)); -SCM_EXPORT void everr P((SCM exp, SCM env, SCM arg, char *pos, char *s_subr, int codep)); -SCM_EXPORT void wta P((SCM arg, char *pos, char *s_subr)); -SCM_EXPORT void scm_experr P((SCM arg, char *pos, char *s_subr)); -SCM_EXPORT SCM intern P((char *name, sizet len)); -SCM_EXPORT SCM sysintern P((const char *name, SCM val)); -SCM_EXPORT SCM sym2vcell P((SCM sym)); -SCM_EXPORT SCM makstr P((long len)); -SCM_EXPORT SCM scm_maksubr P((const char *name, int type, SCM (*fcn)())); -SCM_EXPORT SCM make_subr P((const char *name, int type, SCM (*fcn)())); -SCM_EXPORT SCM make_synt P((const char *name, long flags, SCM (*fcn)())); -SCM_EXPORT SCM make_gsubr P((const char *name, int req, int opt, int rst, - SCM (*fcn)())); -SCM_EXPORT SCM closure P((SCM code, int nargs)); -SCM_EXPORT SCM makprom P((SCM code)); -SCM_EXPORT SCM force P((SCM x)); -SCM_EXPORT SCM makarb P((SCM name)); -SCM_EXPORT SCM tryarb P((SCM arb)); -SCM_EXPORT SCM relarb P((SCM arb)); -SCM_EXPORT SCM ceval P((SCM x, SCM static_env, SCM env)); -SCM_EXPORT SCM scm_wrapcode P((SCM code, SCM env)); -SCM_EXPORT SCM scm_current_env P((void)); -SCM_EXPORT SCM prolixity P((SCM arg)); -SCM_EXPORT SCM gc_for_newcell P((void)); -SCM_EXPORT void gc_for_open_files P((void)); -SCM_EXPORT SCM gc P((SCM arg)); -SCM_EXPORT SCM tryload P((SCM filename, SCM reader)); -SCM_EXPORT SCM acons P((SCM w, SCM x, SCM y)); -SCM_EXPORT SCM cons2 P((SCM w, SCM x, SCM y)); -SCM_EXPORT SCM resizuve P((SCM vect, SCM len)); -SCM_EXPORT SCM lnot P((SCM x)); -SCM_EXPORT SCM booleanp P((SCM obj)); -SCM_EXPORT SCM eq P((SCM x, SCM y)); -SCM_EXPORT SCM equal P((SCM x, SCM y)); -SCM_EXPORT SCM consp P((SCM x)); -SCM_EXPORT SCM cons P((SCM x, SCM y)); -SCM_EXPORT SCM nullp P((SCM x)); -SCM_EXPORT SCM setcar P((SCM pair, SCM value)); -SCM_EXPORT SCM setcdr P((SCM pair, SCM value)); -SCM_EXPORT SCM listp P((SCM x)); -SCM_EXPORT SCM list P((SCM objs)); -SCM_EXPORT SCM length P((SCM x)); -SCM_EXPORT SCM append P((SCM args)); -SCM_EXPORT SCM reverse P((SCM lst)); -SCM_EXPORT SCM list_ref P((SCM lst, SCM k)); -SCM_EXPORT SCM memq P((SCM x, SCM lst)); -SCM_EXPORT SCM member P((SCM x, SCM lst)); -SCM_EXPORT SCM memv P((SCM x, SCM lst)); -SCM_EXPORT SCM assq P((SCM x, SCM alist)); -SCM_EXPORT SCM assoc P((SCM x, SCM alist)); -SCM_EXPORT SCM symbolp P((SCM x)); -SCM_EXPORT SCM symbol2string P((SCM s)); -SCM_EXPORT SCM string2symbol P((SCM s)); -SCM_EXPORT SCM numberp P((SCM x)); -SCM_EXPORT SCM exactp P((SCM x)); -SCM_EXPORT SCM inexactp P((SCM x)); -SCM_EXPORT SCM eqp P((SCM x, SCM y)); -SCM_EXPORT SCM lessp P((SCM x, SCM y)); -SCM_EXPORT SCM greaterp P((SCM x, SCM y)); -SCM_EXPORT SCM leqp P((SCM x, SCM y)); -SCM_EXPORT SCM greqp P((SCM x, SCM y)); -SCM_EXPORT SCM zerop P((SCM z)); -SCM_EXPORT SCM positivep P((SCM x)); -SCM_EXPORT SCM negativep P((SCM x)); -SCM_EXPORT SCM oddp P((SCM n)); -SCM_EXPORT SCM evenp P((SCM n)); -SCM_EXPORT SCM lmax P((SCM x, SCM y)); -SCM_EXPORT SCM lmin P((SCM x, SCM y)); -SCM_EXPORT SCM sum P((SCM x, SCM y)); -SCM_EXPORT SCM difference P((SCM x, SCM y)); -SCM_EXPORT SCM product P((SCM x, SCM y)); -SCM_EXPORT SCM divide P((SCM x, SCM y)); -SCM_EXPORT SCM lquotient P((SCM x, SCM y)); -SCM_EXPORT SCM absval P((SCM x)); -SCM_EXPORT SCM lremainder P((SCM x, SCM y)); -SCM_EXPORT SCM modulo P((SCM x, SCM y)); -SCM_EXPORT SCM lgcd P((SCM x, SCM y)); -SCM_EXPORT SCM llcm P((SCM n1, SCM n2)); -SCM_EXPORT SCM number2string P((SCM x, SCM radix)); -SCM_EXPORT SCM istring2number P((char *str, long len, long radix)); -SCM_EXPORT SCM string2number P((SCM str, SCM radix)); -SCM_EXPORT SCM istr2flo P((char *str, long len, long radix)); -SCM_EXPORT SCM mkbig P((sizet nlen, int sign)); -SCM_EXPORT SCM mkstrport P((SCM pos, SCM str, long modes, char *caller)); -SCM_EXPORT SCM mksafeport P((int maxlen, SCM port)); -SCM_EXPORT int reset_safeport P((SCM sfp, int maxlen, SCM port)); -SCM_EXPORT SCM long2big P((long n)); -SCM_EXPORT SCM ulong2big P((unsigned long n)); -SCM_EXPORT SCM big2inum P((SCM b, sizet l)); +SCM_EXPORT SCM equal0 P((SCM ptr1, SCM ptr2)); +SCM_EXPORT sizet free0 P((CELLPTR ptr)); +SCM_EXPORT void scm_warn P((char *str1, char *str2, SCM obj)); +SCM_EXPORT void everr P((SCM exp, SCM env, SCM arg, char *pos, char *s_subr, int codep)); +SCM_EXPORT void wta P((SCM arg, char *pos, char *s_subr)); +SCM_EXPORT void scm_experr P((SCM arg, char *pos, char *s_subr)); +SCM_EXPORT SCM intern P((char *name, sizet len)); +SCM_EXPORT SCM sysintern P((const char *name, SCM val)); +SCM_EXPORT SCM sym2vcell P((SCM sym)); +SCM_EXPORT SCM makstr P((long len)); +SCM_EXPORT SCM scm_maksubr P((const char *name, int type, SCM (*fcn)())); +SCM_EXPORT SCM make_subr P((const char *name, int type, SCM (*fcn)())); +SCM_EXPORT SCM make_synt P((const char *name, long flags, SCM (*fcn)())); +SCM_EXPORT SCM make_gsubr P((const char *name, int req, int opt, int rst, + SCM (*fcn)())); +SCM_EXPORT SCM closure P((SCM code, int nargs)); +SCM_EXPORT SCM makprom P((SCM code)); +SCM_EXPORT SCM force P((SCM x)); +SCM_EXPORT SCM makarb P((SCM name)); +SCM_EXPORT SCM tryarb P((SCM arb)); +SCM_EXPORT SCM relarb P((SCM arb)); +SCM_EXPORT SCM ceval P((SCM x, SCM static_env, SCM env)); +SCM_EXPORT SCM scm_wrapcode P((SCM code, SCM env)); +SCM_EXPORT SCM scm_current_env P((void)); +SCM_EXPORT SCM prolixity P((SCM arg)); +SCM_EXPORT SCM gc_for_newcell P((void)); +SCM_EXPORT void gc_for_open_files P((void)); +SCM_EXPORT SCM gc P((SCM arg)); +SCM_EXPORT SCM tryload P((SCM filename, SCM reader)); +SCM_EXPORT SCM acons P((SCM w, SCM x, SCM y)); +SCM_EXPORT SCM cons2 P((SCM w, SCM x, SCM y)); +SCM_EXPORT SCM resizuve P((SCM vect, SCM len)); +SCM_EXPORT SCM lnot P((SCM x)); +SCM_EXPORT SCM booleanp P((SCM obj)); +SCM_EXPORT SCM eq P((SCM x, SCM y)); +SCM_EXPORT SCM equal P((SCM x, SCM y)); +SCM_EXPORT SCM consp P((SCM x)); +SCM_EXPORT SCM cons P((SCM x, SCM y)); +SCM_EXPORT SCM nullp P((SCM x)); +SCM_EXPORT SCM setcar P((SCM pair, SCM value)); +SCM_EXPORT SCM setcdr P((SCM pair, SCM value)); +SCM_EXPORT SCM listp P((SCM x)); +SCM_EXPORT SCM list P((SCM objs)); +SCM_EXPORT SCM length P((SCM x)); +SCM_EXPORT SCM append P((SCM args)); +SCM_EXPORT SCM reverse P((SCM lst)); +SCM_EXPORT SCM list_ref P((SCM lst, SCM k)); +SCM_EXPORT SCM memq P((SCM x, SCM lst)); +SCM_EXPORT SCM member P((SCM x, SCM lst)); +SCM_EXPORT SCM memv P((SCM x, SCM lst)); +SCM_EXPORT SCM assq P((SCM x, SCM alist)); +SCM_EXPORT SCM assoc P((SCM x, SCM alist)); +SCM_EXPORT SCM symbolp P((SCM x)); +SCM_EXPORT SCM symbol2string P((SCM s)); +SCM_EXPORT SCM string2symbol P((SCM s)); +SCM_EXPORT SCM numberp P((SCM x)); +SCM_EXPORT SCM exactp P((SCM x)); +SCM_EXPORT SCM inexactp P((SCM x)); +SCM_EXPORT SCM eqp P((SCM x, SCM y)); +SCM_EXPORT SCM lessp P((SCM x, SCM y)); +SCM_EXPORT SCM greaterp P((SCM x, SCM y)); +SCM_EXPORT SCM leqp P((SCM x, SCM y)); +SCM_EXPORT SCM greqp P((SCM x, SCM y)); +SCM_EXPORT SCM zerop P((SCM z)); +SCM_EXPORT SCM positivep P((SCM x)); +SCM_EXPORT SCM negativep P((SCM x)); +SCM_EXPORT SCM oddp P((SCM n)); +SCM_EXPORT SCM evenp P((SCM n)); +SCM_EXPORT SCM lmax P((SCM x, SCM y)); +SCM_EXPORT SCM lmin P((SCM x, SCM y)); +SCM_EXPORT SCM sum P((SCM x, SCM y)); +SCM_EXPORT SCM difference P((SCM x, SCM y)); +SCM_EXPORT SCM product P((SCM x, SCM y)); +SCM_EXPORT SCM divide P((SCM x, SCM y)); +SCM_EXPORT SCM lquotient P((SCM x, SCM y)); +SCM_EXPORT SCM absval P((SCM x)); +SCM_EXPORT SCM lremainder P((SCM x, SCM y)); +SCM_EXPORT SCM modulo P((SCM x, SCM y)); +SCM_EXPORT SCM lgcd P((SCM x, SCM y)); +SCM_EXPORT SCM llcm P((SCM n1, SCM n2)); +SCM_EXPORT SCM number2string P((SCM x, SCM radix)); +SCM_EXPORT SCM istring2number P((char *str, long len, long radix)); +SCM_EXPORT SCM string2number P((SCM str, SCM radix)); +SCM_EXPORT SCM istr2flo P((char *str, long len, long radix)); +SCM_EXPORT SCM mkbig P((sizet nlen, int sign)); +SCM_EXPORT SCM mkstrport P((SCM pos, SCM str, long modes, char *caller)); +SCM_EXPORT SCM mksafeport P((int maxlen, SCM port)); +SCM_EXPORT int reset_safeport P((SCM sfp, int maxlen, SCM port)); +SCM_EXPORT SCM long2big P((long n)); +SCM_EXPORT SCM ulong2big P((unsigned long n)); +SCM_EXPORT SCM big2inum P((SCM b, sizet l)); SCM_EXPORT sizet iint2str P((long num, int rad, char *p)); -SCM_EXPORT SCM floequal P((SCM x, SCM y)); -SCM_EXPORT SCM uve_equal P((SCM u, SCM v)); +SCM_EXPORT SCM floequal P((SCM x, SCM y)); +SCM_EXPORT SCM uve_equal P((SCM u, SCM v)); SCM_EXPORT SCM uve_read P((SCM v, SCM port)); SCM_EXPORT SCM uve_write P((SCM v, SCM port)); -SCM_EXPORT SCM raequal P((SCM ra0, SCM ra1)); -SCM_EXPORT SCM array_equal P((SCM u, SCM v)); -SCM_EXPORT SCM array_rank P((SCM ra)); +SCM_EXPORT SCM raequal P((SCM ra0, SCM ra1)); +SCM_EXPORT SCM array_equal P((SCM u, SCM v)); +SCM_EXPORT SCM array_rank P((SCM ra)); SCM_EXPORT int rafill P((SCM ra, SCM fill, SCM ignore)); -SCM_EXPORT SCM uve_fill P((SCM uve, SCM fill)); -SCM_EXPORT SCM array_fill P((SCM ra, SCM fill)); -SCM_EXPORT SCM array_prot P((SCM ra)); +SCM_EXPORT SCM uve_fill P((SCM uve, SCM fill)); +SCM_EXPORT SCM array_fill P((SCM ra, SCM fill)); +SCM_EXPORT SCM array_prot P((SCM ra)); SCM_EXPORT SCM array_rank P((SCM ra)); SCM_EXPORT SCM array_contents P((SCM ra, SCM strict)); -SCM_EXPORT int bigprint P((SCM exp, SCM port, int writing)); -SCM_EXPORT int floprint P((SCM sexp, SCM port, int writing)); -SCM_EXPORT SCM istr2int P((char *str, long len, long radix)); -SCM_EXPORT SCM istr2bve P((char *str, long len)); -SCM_EXPORT void ipruk P((char *hdr, SCM ptr, SCM port)); -SCM_EXPORT SCM charp P((SCM x)); -SCM_EXPORT SCM char_lessp P((SCM x, SCM y)); -SCM_EXPORT SCM chci_eq P((SCM x, SCM y)); -SCM_EXPORT SCM chci_lessp P((SCM x, SCM y)); -SCM_EXPORT SCM char_alphap P((SCM chr)); -SCM_EXPORT SCM char_nump P((SCM chr)); -SCM_EXPORT SCM char_whitep P((SCM chr)); -SCM_EXPORT SCM char_upperp P((SCM chr)); -SCM_EXPORT SCM char_lowerp P((SCM chr)); -SCM_EXPORT SCM char2int P((SCM chr)); -SCM_EXPORT SCM int2char P((SCM n)); -SCM_EXPORT SCM char_upcase P((SCM chr)); -SCM_EXPORT SCM char_downcase P((SCM chr)); -SCM_EXPORT SCM stringp P((SCM x)); -SCM_EXPORT SCM string P((SCM chrs)); -SCM_EXPORT SCM make_string P((SCM k, SCM chr)); -SCM_EXPORT SCM string2list P((SCM str)); -SCM_EXPORT SCM st_length P((SCM str)); -SCM_EXPORT SCM st_ref P((SCM str, SCM k)); -SCM_EXPORT SCM st_set P((SCM str, SCM k, SCM chr)); -SCM_EXPORT SCM st_equal P((SCM s1, SCM s2)); -SCM_EXPORT SCM stci_equal P((SCM s1, SCM s2)); -SCM_EXPORT SCM st_lessp P((SCM s1, SCM s2)); -SCM_EXPORT SCM stci_lessp P((SCM s1, SCM s2)); -SCM_EXPORT SCM substring P((SCM str, SCM start, SCM end)); -SCM_EXPORT SCM st_append P((SCM args)); -SCM_EXPORT SCM vectorp P((SCM x)); -SCM_EXPORT SCM vector_length P((SCM v)); -SCM_EXPORT SCM vector P((SCM l)); -SCM_EXPORT SCM vector_ref P((SCM v, SCM k)); -SCM_EXPORT SCM vector_set P((SCM v, SCM k, SCM obj)); -SCM_EXPORT SCM make_vector P((SCM k, SCM fill)); -SCM_EXPORT SCM vector2list P((SCM v)); -SCM_EXPORT SCM for_each P((SCM proc, SCM arg1, SCM args)); -SCM_EXPORT SCM procedurep P((SCM obj)); -SCM_EXPORT SCM apply P((SCM proc, SCM arg1, SCM args)); -SCM_EXPORT SCM scm_cvapply P((SCM proc, long n, SCM *argv)); -SCM_EXPORT int scm_arity_check P((SCM proc, long argc, char *what)); -SCM_EXPORT SCM map P((SCM proc, SCM arg1, SCM args)); -SCM_EXPORT SCM scm_make_cont P((void)); -SCM_EXPORT SCM copytree P((SCM obj)); -SCM_EXPORT SCM eval P((SCM obj)); -SCM_EXPORT SCM scm_values P((SCM arg1, SCM arg2, SCM rest, char *what)); -SCM_EXPORT SCM scm_eval_values P((SCM x, SCM static_env, SCM env)); -SCM_EXPORT SCM identp P((SCM obj)); -SCM_EXPORT SCM ident2sym P((SCM id)); -SCM_EXPORT SCM ident_eqp P((SCM id1, SCM id2, SCM env)); -SCM_EXPORT int scm_nullenv_p P((SCM env)); -SCM_EXPORT SCM env2tree P((SCM env)); -SCM_EXPORT SCM renamed_ident P((SCM id, SCM env)); -SCM_EXPORT SCM scm_check_linum P((SCM x, SCM *linum)); -SCM_EXPORT SCM scm_add_linum P((SCM linum, SCM x)); -SCM_EXPORT SCM input_portp P((SCM x)); -SCM_EXPORT SCM output_portp P((SCM x)); -SCM_EXPORT SCM cur_input_port P((void)); -SCM_EXPORT SCM cur_output_port P((void)); -SCM_EXPORT SCM i_setbuf0 P((SCM port)); -SCM_EXPORT SCM try_open_file P((SCM filename, SCM modes)); -SCM_EXPORT SCM open_file P((SCM filename, SCM modes)); -SCM_EXPORT SCM open_pipe P((SCM pipestr, SCM modes)); -SCM_EXPORT SCM close_port P((SCM port)); -SCM_EXPORT SCM scm_read P((SCM port)); -SCM_EXPORT SCM scm_read_char P((SCM port)); -SCM_EXPORT SCM peek_char P((SCM port)); -SCM_EXPORT SCM eof_objectp P((SCM x)); -SCM_EXPORT int scm_io_error P((SCM port, char *what)); -SCM_EXPORT SCM lwrite P((SCM obj, SCM port)); -SCM_EXPORT SCM display P((SCM obj, SCM port)); -SCM_EXPORT SCM newline P((SCM port)); -SCM_EXPORT SCM write_char P((SCM chr, SCM port)); -SCM_EXPORT SCM scm_port_line P((SCM port)); -SCM_EXPORT SCM scm_port_col P((SCM port)); -SCM_EXPORT void scm_line_msg P((SCM file, SCM linum, SCM port)); -SCM_EXPORT void scm_err_line P((char *what, SCM file, SCM linum, SCM port)); -SCM_EXPORT SCM lgetenv P((SCM nam)); -SCM_EXPORT SCM prog_args P((void)); -SCM_EXPORT SCM makacro P((SCM code)); -SCM_EXPORT SCM makmacro P((SCM code)); -SCM_EXPORT SCM makmmacro P((SCM code)); -SCM_EXPORT SCM makidmacro P((SCM code)); -SCM_EXPORT void poll_routine P((void)); -SCM_EXPORT void tick_signal P((void)); -SCM_EXPORT void stack_check P((void)); -SCM_EXPORT SCM list2ura P((SCM ndim, SCM prot, SCM lst)); -SCM_EXPORT SCM make_ra P((int ndim)); -SCM_EXPORT SCM makflo P((float x)); -SCM_EXPORT SCM arrayp P((SCM v, SCM prot)); -SCM_EXPORT SCM aset P((SCM v, SCM obj, SCM args)); -SCM_EXPORT SCM aref P((SCM v, SCM args)); +SCM_EXPORT int bigprint P((SCM exp, SCM port, int writing)); +SCM_EXPORT int floprint P((SCM sexp, SCM port, int writing)); +SCM_EXPORT SCM istr2int P((char *str, long len, long radix)); +SCM_EXPORT SCM istr2bve P((char *str, long len)); +SCM_EXPORT void ipruk P((char *hdr, SCM ptr, SCM port)); +SCM_EXPORT SCM charp P((SCM x)); +SCM_EXPORT SCM char_lessp P((SCM x, SCM y)); +SCM_EXPORT SCM chci_eq P((SCM x, SCM y)); +SCM_EXPORT SCM chci_lessp P((SCM x, SCM y)); +SCM_EXPORT SCM char_alphap P((SCM chr)); +SCM_EXPORT SCM char_nump P((SCM chr)); +SCM_EXPORT SCM char_whitep P((SCM chr)); +SCM_EXPORT SCM char_upperp P((SCM chr)); +SCM_EXPORT SCM char_lowerp P((SCM chr)); +SCM_EXPORT SCM char2int P((SCM chr)); +SCM_EXPORT SCM int2char P((SCM n)); +SCM_EXPORT SCM char_upcase P((SCM chr)); +SCM_EXPORT SCM char_downcase P((SCM chr)); +SCM_EXPORT SCM stringp P((SCM x)); +SCM_EXPORT SCM string P((SCM chrs)); +SCM_EXPORT SCM make_string P((SCM k, SCM chr)); +SCM_EXPORT SCM string2list P((SCM str)); +SCM_EXPORT SCM st_length P((SCM str)); +SCM_EXPORT SCM st_ref P((SCM str, SCM k)); +SCM_EXPORT SCM st_set P((SCM str, SCM k, SCM chr)); +SCM_EXPORT SCM st_equal P((SCM s1, SCM s2)); +SCM_EXPORT SCM stci_equal P((SCM s1, SCM s2)); +SCM_EXPORT SCM st_lessp P((SCM s1, SCM s2)); +SCM_EXPORT SCM stci_lessp P((SCM s1, SCM s2)); +SCM_EXPORT SCM substring P((SCM str, SCM start, SCM end)); +SCM_EXPORT SCM st_append P((SCM args)); +SCM_EXPORT SCM vectorp P((SCM x)); +SCM_EXPORT SCM vector_length P((SCM v)); +SCM_EXPORT SCM vector P((SCM l)); +SCM_EXPORT SCM vector_ref P((SCM v, SCM k)); +SCM_EXPORT SCM vector_set P((SCM v, SCM k, SCM obj)); +SCM_EXPORT SCM make_vector P((SCM k, SCM fill)); +SCM_EXPORT SCM vector2list P((SCM v)); +SCM_EXPORT SCM for_each P((SCM proc, SCM arg1, SCM args)); +SCM_EXPORT SCM procedurep P((SCM obj)); +SCM_EXPORT SCM apply P((SCM proc, SCM arg1, SCM args)); +SCM_EXPORT SCM scm_cvapply P((SCM proc, long n, SCM *argv)); +SCM_EXPORT int scm_arity_check P((SCM proc, long argc, char *what)); +SCM_EXPORT SCM map P((SCM proc, SCM arg1, SCM args)); +SCM_EXPORT SCM scm_make_cont P((void)); +SCM_EXPORT SCM copytree P((SCM obj)); +SCM_EXPORT SCM eval P((SCM obj)); +SCM_EXPORT SCM scm_values P((SCM arg1, SCM arg2, SCM rest, char *what)); +SCM_EXPORT SCM scm_eval_values P((SCM x, SCM static_env, SCM env)); +SCM_EXPORT SCM identp P((SCM obj)); +SCM_EXPORT SCM ident2sym P((SCM id)); +SCM_EXPORT SCM ident_eqp P((SCM id1, SCM id2, SCM env)); +SCM_EXPORT int scm_nullenv_p P((SCM env)); +SCM_EXPORT SCM env2tree P((SCM env)); +SCM_EXPORT SCM renamed_ident P((SCM id, SCM env)); +SCM_EXPORT SCM scm_check_linum P((SCM x, SCM *linum)); +SCM_EXPORT SCM scm_add_linum P((SCM linum, SCM x)); +SCM_EXPORT SCM input_portp P((SCM x)); +SCM_EXPORT SCM output_portp P((SCM x)); +SCM_EXPORT SCM cur_input_port P((void)); +SCM_EXPORT SCM cur_output_port P((void)); +SCM_EXPORT SCM i_setbuf0 P((SCM port)); +SCM_EXPORT SCM try_open_file P((SCM filename, SCM modes)); +SCM_EXPORT SCM open_file P((SCM filename, SCM modes)); +SCM_EXPORT SCM open_pipe P((SCM pipestr, SCM modes)); +SCM_EXPORT SCM close_port P((SCM port)); +SCM_EXPORT SCM scm_read P((SCM port)); +SCM_EXPORT SCM scm_read_char P((SCM port)); +SCM_EXPORT SCM peek_char P((SCM port)); +SCM_EXPORT SCM eof_objectp P((SCM x)); +SCM_EXPORT int scm_io_error P((SCM port, char *what)); +SCM_EXPORT SCM lwrite P((SCM obj, SCM port)); +SCM_EXPORT SCM display P((SCM obj, SCM port)); +SCM_EXPORT SCM newline P((SCM port)); +SCM_EXPORT SCM write_char P((SCM chr, SCM port)); +SCM_EXPORT SCM scm_port_line P((SCM port)); +SCM_EXPORT SCM scm_port_col P((SCM port)); +SCM_EXPORT void scm_line_msg P((SCM file, SCM linum, SCM port)); +SCM_EXPORT void scm_err_line P((char *what, SCM file, SCM linum, SCM port)); +SCM_EXPORT SCM lgetenv P((SCM nam)); +SCM_EXPORT SCM prog_args P((void)); +SCM_EXPORT SCM makacro P((SCM code)); +SCM_EXPORT SCM makmacro P((SCM code)); +SCM_EXPORT SCM makmmacro P((SCM code)); +SCM_EXPORT SCM makidmacro P((SCM code)); +SCM_EXPORT void poll_routine P((void)); +SCM_EXPORT void tick_signal P((void)); +SCM_EXPORT void stack_check P((void)); +SCM_EXPORT SCM list2ura P((SCM ndim, SCM prot, SCM lst)); +SCM_EXPORT SCM make_ra P((int ndim)); +SCM_EXPORT SCM makflo P((float x)); +SCM_EXPORT SCM arrayp P((SCM v, SCM prot)); +SCM_EXPORT SCM aset P((SCM v, SCM obj, SCM args)); +SCM_EXPORT SCM aref P((SCM v, SCM args)); SCM_EXPORT SCM scm_array_ref P((SCM args)); -SCM_EXPORT SCM cvref P((SCM v, sizet pos, SCM last)); -SCM_EXPORT SCM quit P((SCM n)); +SCM_EXPORT SCM cvref P((SCM v, sizet pos, SCM last)); +SCM_EXPORT SCM quit P((SCM n)); #ifdef CAREFUL_INTS -SCM_EXPORT void ints_viol P((ints_infot *info, int sense)); +SCM_EXPORT void ints_viol P((ints_infot *info, int sense)); SCM_EXPORT void ints_warn P((char *s1, char* s2, char *fname, int linum)); #endif -SCM_EXPORT void add_final P((void (*final)(void))); -SCM_EXPORT SCM makcclo P((SCM proc, long len)); -SCM_EXPORT SCM make_uve P((long k, SCM prot)); -SCM_EXPORT long scm_prot2type P((SCM prot)); -SCM_EXPORT long aind P((SCM ra, SCM args, char *what)); -SCM_EXPORT SCM scm_eval_string P((SCM str)); -SCM_EXPORT SCM scm_load_string P((SCM str)); -SCM_EXPORT SCM scm_unexec P((const SCM pathname)); +SCM_EXPORT void add_final P((void (*final)(void))); +SCM_EXPORT SCM makcclo P((SCM proc, long len)); +SCM_EXPORT SCM make_uve P((long k, SCM prot)); +SCM_EXPORT long scm_prot2type P((SCM prot)); +SCM_EXPORT long aind P((SCM ra, SCM args, char *what)); +SCM_EXPORT SCM scm_eval_string P((SCM str)); +SCM_EXPORT SCM scm_load_string P((SCM str)); +SCM_EXPORT SCM scm_unexec P((const SCM pathname)); SCM_EXPORT SCM scm_logbitp P((SCM index, SCM j1)); SCM_EXPORT SCM scm_logtest P((SCM x, SCM y)); SCM_EXPORT SCM scm_logxor P((SCM x, SCM y)); @@ -1027,68 +1021,68 @@ SCM_EXPORT SCM scm_bitfield P((SCM n, SCM start, SCM end)); SCM_EXPORT SCM scm_logcount P((SCM n)); SCM_EXPORT SCM scm_intlength P((SCM n)); SCM_EXPORT SCM scm_copybit P((SCM index, SCM j1, SCM bit)); -SCM_EXPORT SCM scm_bitif P((SCM mask, SCM n0, SCM n1)); -SCM_EXPORT SCM scm_copybitfield P((SCM to, SCM start, SCM rest)); +SCM_EXPORT SCM scm_bitif P((SCM mask, SCM n0, SCM n1)); +SCM_EXPORT SCM scm_copybitfield P((SCM to, SCM start, SCM rest)); - /* Defined in "rope.c" */ -SCM_EXPORT SCM long2num P((long n)); -SCM_EXPORT SCM ulong2num P((unsigned long n)); + /* Defined in "rope.c" */ +SCM_EXPORT SCM long2num P((long n)); +SCM_EXPORT SCM ulong2num P((unsigned long n)); SCM_EXPORT unsigned char num2uchar P((SCM num, char *pos, char *s_caller)); SCM_EXPORT unsigned short num2ushort P((SCM num, char *pos, char *s_caller)); SCM_EXPORT unsigned long num2ulong P((SCM num, char *pos, char *s_caller)); -SCM_EXPORT long num2long P((SCM num, char *pos, char *s_caller)); -SCM_EXPORT short num2short P((SCM num, char *pos, char *s_caller)); +SCM_EXPORT long num2long P((SCM num, char *pos, char *s_caller)); +SCM_EXPORT short num2short P((SCM num, char *pos, char *s_caller)); SCM_EXPORT double num2dbl P((SCM num, char *pos, char *s_caller)); -SCM_EXPORT SCM makfromstr P((char *src, sizet len)); -SCM_EXPORT SCM makfromstrs P((int argc, char **argv)); -SCM_EXPORT SCM makfrom0str P((char *scr)); +SCM_EXPORT SCM makfromstr P((char *src, sizet len)); +SCM_EXPORT SCM makfromstrs P((int argc, char **argv)); +SCM_EXPORT SCM makfrom0str P((char *scr)); SCM_EXPORT char **makargvfrmstrs P((SCM args, char *s_v)); -SCM_EXPORT void must_free_argv P((char **argv)); -SCM_EXPORT SCM scm_evstr P((char *str)); -SCM_EXPORT void scm_ldstr P((char *str)); -SCM_EXPORT int scm_ldfile P((char *path)); -SCM_EXPORT int scm_ldprog P((char *path)); +SCM_EXPORT void must_free_argv P((char **argv)); +SCM_EXPORT SCM scm_evstr P((char *str)); +SCM_EXPORT void scm_ldstr P((char *str)); +SCM_EXPORT int scm_ldfile P((char *path)); +SCM_EXPORT int scm_ldprog P((char *path)); SCM_EXPORT unsigned long scm_addr P((SCM args, char *name)); SCM_EXPORT unsigned long scm_base_addr P((SCM v, char *name)); -SCM_EXPORT int scm_cell_p P((SCM x)); +SCM_EXPORT int scm_cell_p P((SCM x)); #ifdef FLOATS -SCM_EXPORT SCM makdbl P((double x, double y)); -SCM_EXPORT SCM dbl2big P((double d)); -SCM_EXPORT double big2dbl P((SCM b)); -SCM_EXPORT double lasinh P((double x)); -SCM_EXPORT double lacosh P((double x)); -SCM_EXPORT double latanh P((double x)); -SCM_EXPORT double ltrunc P((double x)); -SCM_EXPORT double scm_round P((double x)); -SCM_EXPORT double floident P((double x)); +SCM_EXPORT SCM makdbl P((double x, double y)); +SCM_EXPORT SCM dbl2big P((double d)); +SCM_EXPORT double big2dbl P((SCM b)); +SCM_EXPORT double lasinh P((double x)); +SCM_EXPORT double lacosh P((double x)); +SCM_EXPORT double latanh P((double x)); +SCM_EXPORT double ltrunc P((double x)); +SCM_EXPORT double scm_round P((double x)); +SCM_EXPORT double floident P((double x)); #endif #ifdef BIGDIG -SCM_EXPORT void longdigs P((long x, BIGDIG digs[DIGSPERLONG])); -SCM_EXPORT SCM adjbig P((SCM b, sizet nlen)); -SCM_EXPORT SCM normbig P((SCM b)); -SCM_EXPORT SCM copybig P((SCM b, int sign)); -SCM_EXPORT SCM addbig P((BIGDIG *x, sizet nx, int xsgn, SCM bigy, int sgny)); -SCM_EXPORT SCM mulbig P((BIGDIG *x, sizet nx, BIGDIG *y, sizet ny, int sgn)); +SCM_EXPORT void longdigs P((long x, BIGDIG digs[DIGSPERLONG])); +SCM_EXPORT SCM adjbig P((SCM b, sizet nlen)); +SCM_EXPORT SCM normbig P((SCM b)); +SCM_EXPORT SCM copybig P((SCM b, int sign)); +SCM_EXPORT SCM addbig P((BIGDIG *x, sizet nx, int xsgn, SCM bigy, int sgny)); +SCM_EXPORT SCM mulbig P((BIGDIG *x, sizet nx, BIGDIG *y, sizet ny, int sgn)); SCM_EXPORT unsigned int divbigdig P((BIGDIG *ds, sizet h, BIGDIG div)); -SCM_EXPORT SCM divbigint P((SCM x, long z, int sgn, int mode)); -SCM_EXPORT SCM divbigbig P((BIGDIG *x, sizet nx, BIGDIG *y, sizet ny, int sgn, - int modes)); -SCM_EXPORT long pseudolong P((long x)); +SCM_EXPORT SCM divbigint P((SCM x, long z, int sgn, int mode)); +SCM_EXPORT SCM divbigbig P((BIGDIG *x, sizet nx, BIGDIG *y, sizet ny, int sgn, + int modes)); +SCM_EXPORT long pseudolong P((long x)); #endif -SCM_EXPORT int bigcomp P((SCM x, SCM y)); -SCM_EXPORT SCM bigequal P((SCM x, SCM y)); -SCM_EXPORT int scm_bigdblcomp P((SCM b, double d)); +SCM_EXPORT int bigcomp P((SCM x, SCM y)); +SCM_EXPORT SCM bigequal P((SCM x, SCM y)); +SCM_EXPORT int scm_bigdblcomp P((SCM b, double d)); /* "script.c" functions */ -SCM_EXPORT char * scm_cat_path P((char *str1, const char *str2, long n)); -SCM_EXPORT char * scm_try_path P((char *path)); -SCM_EXPORT char * script_find_executable P((const char *command)); -SCM_EXPORT char ** script_process_argv P((int argc, char **argv)); -SCM_EXPORT int script_count_argv P((char **argv)); -SCM_EXPORT char * find_impl_file P((char *exec_path, const char *generic_name, - const char *initname, const char *sep)); +SCM_EXPORT char * scm_cat_path P((char *str1, const char *str2, long n)); +SCM_EXPORT char * scm_try_path P((char *path)); +SCM_EXPORT char * script_find_executable P((const char *command)); +SCM_EXPORT char ** script_process_argv P((int argc, char **argv)); +SCM_EXPORT int script_count_argv P((char **argv)); +SCM_EXPORT char * find_impl_file P((char *exec_path, const char *generic_name, + const char *initname, const char *sep)); /* environment cache functions */ SCM_EXPORT void scm_ecache_report P((void)); @@ -1121,36 +1115,36 @@ SCM_EXPORT SCM scm_trace, scm_trace_env; # define ASRTGO(_cond, _label) if(!(_cond)) goto _label; #endif -#define ARGn 1 -#define ARG1 2 -#define ARG2 3 -#define ARG3 4 -#define ARG4 5 -#define ARG5 6 +#define ARGn 1 +#define ARG1 2 +#define ARG2 3 +#define ARG3 4 +#define ARG4 5 +#define ARG5 6 /* following must match entry indexes in errmsgs[] */ -#define WNA 7 -#define OVFLOW 8 -#define OUTOFRANGE 9 -#define NALLOC 10 -#define THRASH 11 -#define EXIT 12 -#define HUP_SIGNAL 13 -#define INT_SIGNAL 14 -#define FPE_SIGNAL 15 -#define BUS_SIGNAL 16 -#define SEGV_SIGNAL 17 -#define ALRM_SIGNAL 18 +#define WNA 7 +#define OVFLOW 8 +#define OUTOFRANGE 9 +#define NALLOC 10 +#define THRASH 11 +#define EXIT 12 +#define HUP_SIGNAL 13 +#define INT_SIGNAL 14 +#define FPE_SIGNAL 15 +#define BUS_SIGNAL 16 +#define SEGV_SIGNAL 17 +#define ALRM_SIGNAL 18 #define VTALRM_SIGNAL 19 -#define PROF_SIGNAL 20 +#define PROF_SIGNAL 20 #define EVAL(x, env, venv) (IMP(x)?(x):ceval((x), (SCM)(env), (SCM)(venv))) #define SIDEVAL(x, env, venv) if NIMP(x) ceval((x), (SCM)(env), (SCM)(venv)) #define NEWCELL(_into) {if IMP(freelist) _into = gc_for_newcell();\ - else {_into = freelist;freelist = CDR(freelist);++cells_allocated;}} + else {_into = freelist;freelist = CDR(freelist);++cells_allocated;}} /* #define NEWCELL(_into) {DEFER_INTS;if IMP(freelist) _into = gc_for_newcell();\ - else {_into = freelist;freelist = CDR(freelist);++cells_allocated;}\ + else {_into = freelist;freelist = CDR(freelist);++cells_allocated;}\ ALLOW_INTS;} */ -- cgit v1.2.3