diff --git a/src/mzscheme/src/read.c b/src/mzscheme/src/read.c index a45c4cf522..83706552f4 100644 --- a/src/mzscheme/src/read.c +++ b/src/mzscheme/src/read.c @@ -51,6 +51,8 @@ int scheme_square_brackets_are_parens = 1; int scheme_curly_braces_are_parens = 1; +int scheme_num_read_syntax_objects; + /* local function prototypes */ static Scheme_Object *read_case_sensitive(int, Scheme_Object *[]); @@ -4011,6 +4013,7 @@ static Scheme_Object *read_compact(CPort *port, int use_stack) v = read_compact(port, 1); v = scheme_datum_to_syntax(v, scheme_false, (Scheme_Object *)local_rename_memory, ch == CPT_GSTX, 0); + scheme_num_read_syntax_objects++; if (!v) scheme_ill_formed_code(port); } diff --git a/src/mzscheme/src/thread.c b/src/mzscheme/src/thread.c index b73d7be0a8..13189c9702 100644 --- a/src/mzscheme/src/thread.c +++ b/src/mzscheme/src/thread.c @@ -129,6 +129,8 @@ extern void scheme_gmp_tls_unload(long *s); extern void scheme_gmp_tls_snapshot(long *s, long *save); extern void scheme_gmp_tls_restore_snapshot(long *s, long *save, int do_free); +extern int scheme_num_read_syntax_objects; + /*========================================================================*/ /* local variables and prototypes */ /*========================================================================*/ @@ -6693,6 +6695,8 @@ static Scheme_Object *current_stats(int argc, Scheme_Object *argv[]) switch (SCHEME_VEC_SIZE(v)) { default: + case 8: + SCHEME_VEC_ELS(v)[7] = scheme_make_integer(scheme_num_read_syntax_objects); case 7: SCHEME_VEC_ELS(v)[6] = scheme_make_integer(num_running_threads); case 6: