~ chicken-core (chicken-5) fcc46092bd00c595f939d405605d204b5b5904c8
commit fcc46092bd00c595f939d405605d204b5b5904c8
Merge: 07d0bedb 2033ec7f
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Tue Aug 10 03:35:51 2010 -0400
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Tue Aug 10 03:35:51 2010 -0400
merged flonum-milliseconds branch
diff --cc runtime.c
index 2e13f5a3,31484444..b47a262b
--- a/runtime.c
+++ b/runtime.c
@@@ -479,10 -478,8 +479,8 @@@ static int C_fcall hash_string(int len
static C_word C_fcall lookup(C_word key, int len, C_char *str, C_SYMBOL_TABLE *stable) C_regparm;
static double compute_symbol_table_load(double *avg_bucket_len, int *total);
static C_word C_fcall convert_string_to_number(C_char *str, int radix, C_word *fix, double *flo) C_regparm;
- static long C_fcall milliseconds(void);
- static long C_fcall cpu_milliseconds(void);
static void C_fcall remark_system_globals(void) C_regparm;
-static void C_fcall remark(C_word *x) C_regparm;
+static void C_fcall really_remark(C_word *x) C_regparm;
static C_word C_fcall intern0(C_char *name) C_regparm;
static void C_fcall update_locative_table(int mode) C_regparm;
static LF_LIST *find_module_handle(C_char *name);
@@@ -2655,12 -2638,9 +2652,12 @@@ C_regparm void C_fcall C_reclaim(void *
/* Entry point for second-level GC (on explicit request or because of full fromspace): */
if(C_setjmp(gc_restart) || (start = C_fromspace_top) >= C_fromspace_limit) {
- if(gc_bell) C_putchar(7);
+ if(gc_bell) {
+ C_putchar(7);
+ C_fflush(stdout);
+ }
- tgc = cpu_milliseconds();
+ tgc = C_cpu_milliseconds();
if(gc_mode == GC_REALLOC) {
C_rereclaim2(percentage(heap_size, C_heap_growth), 0);
@@@ -3893,9 -3869,9 +3890,9 @@@ C_regparm C_word C_fcall C_set_gc_repor
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();
+ timer_start_ms = C_cpu_milliseconds();
gc_ms = 0;
return C_SCHEME_UNDEFINED;
}
@@@ -3907,11 -3883,12 +3904,12 @@@ void C_ccall C_stop_timer(C_word c, C_w
C_word
ab[ WORDS_PER_FLONUM * 2 + 7 ], /* 2 flonums, 1 vector of 6 elements */
*a = ab,
- elapsed = C_flonum(&a, (double)t0 / 1000.0),
- gc_time = C_flonum(&a, (double)gc_ms / 1000.0),
+ elapsed = C_flonum(&a, t0 / 1000.0),
+ gc_time = C_flonum(&a, gc_ms / 1000.0),
info;
- info = C_vector(&a, 6, elapsed, gc_time, C_fix(mutation_count), C_fix(gc_count_1_total), C_fix(gc_count_2));
- info = C_vector(&a, 6, elapsed, gc_time, C_fix(mutation_count), C_fix(gc_count_1),
++ 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