~ chicken-core (chicken-5) d2d9d689d4419aeb2f4a603b8d9cf8e6db0b0e58
commit d2d9d689d4419aeb2f4a603b8d9cf8e6db0b0e58 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Sun Aug 1 16:50:26 2010 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Sun Aug 1 16:50:26 2010 +0200 OM diff --git a/manual/Unit extras b/manual/Unit extras index 72081c1f..f7f28cca 100644 --- a/manual/Unit extras +++ b/manual/Unit extras @@ -180,7 +180,7 @@ If {{NUM}} is {{#f}} or not given, then all data up to the end-of-file is read, or, in the case of {{write-string}} the whole string is written. If no more input is available, {{read-string}} returns the empty string. {{read-string!}} reads destructively into the given {{STRING}} argument, -but never more characters that would fit into {{STRING}}. If {{START}} is given, then +but never more characters than would fit into {{STRING}}. If {{START}} is given, then the read characters are stored starting at that position. {{read-string!}} returns the actual number of characters read. diff --git a/runtime.c b/runtime.c index 565a66a6..93492107 100644 --- a/runtime.c +++ b/runtime.c @@ -415,6 +415,7 @@ static C_TLS int gc_report_flag = 0, gc_mode, gc_count_1, + gc_count_1_total, gc_count_2, interrupt_reason, stack_size_changed, @@ -691,7 +692,7 @@ int CHICKEN_initialize(int heap, int stack, int symbols, void *toplevel) dlopen_flags = 0; #endif - mutation_count = gc_count_1 = gc_count_2 = 0; + mutation_count = gc_count_1 = gc_count_1_total = gc_count_2 = 0; lf_list = NULL; C_register_lf2(NULL, 0, create_initial_ptable()); C_restart_address = toplevel; @@ -2736,6 +2737,7 @@ C_regparm void C_fcall C_reclaim(void *trampoline, void *proc) if(gc_mode == GC_MINOR) { count = (C_uword)C_fromspace_top - (C_uword)start; ++gc_count_1; + ++gc_count_1_total; update_locative_table(GC_MINOR); } else { @@ -3885,7 +3887,7 @@ C_regparm C_word C_fcall C_set_gc_report(C_word flag) C_regparm C_word C_fcall C_start_timer(void) { mutation_count = 0; - gc_count_1 = 0; + gc_count_1_total = 0; gc_count_2 = 0; timer_start_ms = cpu_milliseconds(); gc_ms = 0; @@ -3903,7 +3905,7 @@ void C_ccall C_stop_timer(C_word c, C_word closure, C_word k) gc_time = C_flonum(&a, (double)gc_ms / 1000.0), info; - info = C_vector(&a, 6, elapsed, gc_time, C_fix(mutation_count), C_fix(gc_count_1), C_fix(gc_count_2)); + info = C_vector(&a, 6, elapsed, gc_time, C_fix(mutation_count), C_fix(gc_count_1_total), C_fix(gc_count_2)); C_kontinue(k, info); }Trap