From mboxrd@z Thu Jan 1 00:00:00 1970 From: mdj@sourceware.cygnus.com To: guile-cvs@sourceware.cygnus.com Subject: guile/guile-core/libguile gc.c Date: Mon, 13 Mar 2000 22:40:00 -0000 Message-id: <20000314064010.26525.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q1/msg00360.html List-Id: CVSROOT: /cvs/guile Module name: guile Changes by: mdj@sourceware.cygnus.com 00/03/13 22:40:10 Modified files: guile-core/libguile: gc.c Log message: * __scm.h eq.c, eval.c, gc.c, hc.h, gh_data, hash.c, numbers.c, numbers.h, objects.c, ramap.c, random.c, unif.c, unif.h: Extensive rewrite of handling of real and complex numbers. (SCM_FLOATS, SCM_SINGLES): These #ifdef conditionals have been removed along with the support for floats. (Float vectors are still supported.) * gc.c (scm_freelist2): multi-cell freelists. (inner_map_free_list): map_free_list, parameterized on ncells. "nn cells in segment mm" was misleading for ncells > 1; changed to "objects". still print cells too, though. (scm_map_free_list): rewritten using inner_map_free_list. (scm_check_freelist): get freelist as parameter, since now we have more than one. (scm_debug_newcell2): multi-cell variants of scm_debug_newcell. (scm_gc_for_newcell): take ncells and freelist pointer as parameters. (scm_gc_mark): add case for tc7_pws (procedures with setters are now double cells). (scm_gc_sweep): don't free the float data, since it's not malloced anymore. (init_heap_seg): didn't understand what n_new_objects stood for, so changed to n_new_cells. (make_initial_segment): new function, makes an initial segment according to given ncells. (scm_init_storage): call make_initial_segment, for ncells={1,2,3}.