diff options
Diffstat (limited to 'repl.c')
-rw-r--r-- | repl.c | 24 |
1 files changed, 17 insertions, 7 deletions
@@ -44,7 +44,7 @@ #include "scm.h" #include "setjump.h" -void igc P((const char *what, STACKITEM *stackbase)); +void igc P((const char *what, SCM rootcont)); void unexec P((char *new_name, char *a_name, unsigned data_start, unsigned bss_start, unsigned entry_address)); void scm_fill_freelist P((void)); @@ -346,9 +346,9 @@ taloop: } lputc(')', port); break; - case tc7_bvect: - case tc7_ivect: case tc7_uvect: case tc7_svect: - case tc7_fvect: case tc7_dvect: case tc7_cvect: + case tc7_Vbool: case tc7_VfixN8: case tc7_VfixZ8: + case tc7_VfixN16: case tc7_VfixZ16: case tc7_VfixN32: case tc7_VfixZ32: + case tc7_VfloR32: case tc7_VfloC32: case tc7_VfloR64: case tc7_VfloC64: raprin1(exp, port, writing); break; case tcs_subrs: @@ -863,10 +863,13 @@ static int flush_ws(port) } /* Top-level readers */ -static SCM p_read_numbered, p_read_for_load, p_read; +static SCM p_read_for_load, p_read; static char s_read[] = "read"; static char s_read_for_load[] = "read-for-load"; +#ifndef MEMOIZE_LOCALS +static SCM p_read_numbered; static char s_read_numbered[] = "read-numbered"; +#endif SCM scm_read(port) SCM port; { @@ -879,11 +882,13 @@ SCM scm_read_for_load(port) return lread1(port, 4, s_read_for_load); } +#ifndef MEMOIZE_LOCALS SCM scm_read_numbered(port) SCM port; { return lread1(port, 6, s_read_numbered); } +#endif static SCM lread1(port, flgs, what) SCM port; @@ -995,7 +1000,10 @@ static SCM lreadpr(tok_buf, port, flgs) goto tryagain; default: callshrp: { - SCM reader = (3&flgs) ? p_read_numbered : + SCM reader = +#ifndef MEMOIZE_LOCALS + (3&flgs) ? p_read_numbered : +#endif ((4&flgs) ? p_read_for_load : p_read); SCM args = cons2(MAKICHR(c), port, cons(reader, EOL)); if ((4&flgs) && loc_loadsharp && NIMP(*loc_loadsharp)) { @@ -1440,7 +1448,7 @@ SCM scm_top_level(initpath, toplvl_fun) DEFER_INTS; scm_estk_reset(0); scm_egc(); - igc(s_unexec, (STACKITEM *)0); + igc(s_unexec, BOOL_F); ALLOW_INTS; dumped = 1; # ifdef linux @@ -2256,8 +2264,10 @@ void init_repl( iverbose ) add_feature(s_char_readyp); make_subr(s_swapcar, tc7_subr_2, swapcar); make_subr(s_wfi, tc7_lsubr, wait_for_input); +#ifndef MEMOIZE_LOCALS p_read_numbered = make_subr(s_read_numbered, tc7_subr_1, scm_read_numbered); +#endif p_read_for_load = make_subr(s_read_for_load, tc7_subr_1, scm_read_for_load); p_read = |