(tag_table_to_type_alist): ignore unknown types.
* gc.c (s_scm_gc_live_object_stats): new GUILE callable: return
statistics on the number of live objects of each type.
* gc-card.c (scm_i_tag_name): new function.
(scm_i_card_statistics): new function.
* gc-segment.c (scm_i_all_segments_statistics): new function.
(scm_i_heap_segment_statistics): new function
* gc.c (s_scm_gc_live_object_stats): new GUILE callable: return
statistics on the number of live objects of each type.
* gc-card.c (scm_i_tag_name): new function.
(scm_i_card_statistics): new function.
scm_gc_mallocated, for now.
(scm_init_storage): Initialize it.
* gc-malloc.c (descrease_mtrigger, increase_mtrigger): Use it.
* gc-mark.c (scm_gc_mark_dependencies): Call scm_i_string_mark,
scm_i_stringbuf_mark and scm_i_symbol_mark, as appropriate.
* gc-card.c (scm_i_sweep_card): Call scm_i_string_free,
scm_i_stringbuf_free and scm_i_symbol_free, as appropriate.
(SCM_VALIDATE_STRING_COPY): Deprecated. Replaced all uses with
SCM_VALIDATE_STRING plus SCM_I_STRING_CHARS or
scm_to_locale_string, etc.
(SCM_VALIDATE_SUBSTRING_SPEC_COPY): Deprecated. Replaced as
above, plus scm_i_get_substring_spec.
* regex-posix.c, read.c, random.c, ramap.c, print.c, numbers.c,
hash.c, gc.c, gc-card.c, convert.i.c, backtrace.c, strop.c,
strorder.c, strports.c, struct.c, symbols.c, unif.c, ports.c: Use
SCM_I_STRING_CHARS, SCM_I_STRING_UCHARS, and SCM_I_STRING_LENGTH
instead of SCM_STRING_CHARS, SCM_STRING_UCHARS, and
SCM_STRING_LENGTH, respectively. Also, replaced scm_return_first
with more explicit scm_remember_upto_here_1, etc, or introduced
them in the first place.
SCM_DEBUG_DEBUGGING_SUPPORT): Renamed macro
SCM_DEBUG_DEBUGGER_SUPPORT to SCM_DEBUG_DEBUGGING_SUPPORT and
generalized it to apply not only to C level functions but also to
scheme level functions.
* debug.c, debug.h, eval.c (make-iloc, scm_make_iloc, iloc?,
scm_iloc_p, dbg-make-iloc, scm_dbg_make_iloc, dbg-iloc?,
scm_dbg_iloc_p): Moved functions scm_make_iloc, scm_iloc_p to
eval.c, made them available under SCM_DEBUG_DEBUGGING_SUPPORT == 1
only and renamed them to scm_dbg_make_iloc, scm_dbg_iloc_p,
respectively.
* deprecated.h, eval.c, eval.h (SCM_ILOC00, SCM_IDINC,
SCM_IDSTMSK): Deprecated. The macro definitions are moved from
eval.h into eval.c and a copy is placed into deprecated.h.
* eval.c, eval.h (SCM_MAKE_ILOC): Removed from eval.h and placed
into eval.c. This definition was not part of the API in any
officially released version of guile and thus does not need to go
through a phase of deprecation.
* gc.card.c (scm_gc_marked_p): Fixed compiler warning when
compiling with SCM_DEBUG==1 by moving definition behind prototype.
* gc.card.c (scm_dbg_t_list_cell, scm_dbg_t_double_cell,
scm_dbg_gc_marked_p, scm_dbg_gc_get_card, scm_dbg_gc_get_bvec,
scm_t_list_cell_struct, scm_t_list_cell, scm_t_double_cell,
scm_gc_marked_p, scm_gc_get_card, scm_gc_get_bvec): Fixed
functions such that they check if the object is a non-immediate.
Further, renamed identifiers to use the scm_dbg_ prefix and made
their inclusion into the lib dependent of the
SCM_DEBUG_DEBUGGER_SUPPORT compile time option.
SCM_EOL.
(scm_struct_prehistory): Move scm_free_structs to
scm_before_mark_c_hook.
* gc-card.c (sweep_card): Check that we haven't swept structs on
this card before. That can happen if scm_i_sweep_all_segments has
been called from some other place than scm_igc.
* gc-malloc.c (scm_gc_register_collectable_memory): use floats;
these won't ever wrap around with high memory usage.
* gc-malloc.c: add DEBUGINFO for mtrigger GCs.
* gc-malloc.c (scm_calloc): try to use calloc() before calling
scm_realloc().
* gc-segment.c (scm_i_initialize_heap_segment_data): remove card
init loop; handle this from scm_init_card_freelist()
* gc-card.c (scm_init_card_freelist): init bit vector here.
* gc-card.c ("sweep_card"): set scm_gc_running while sweeping.
* gc.c (scm_i_expensive_validation_check): separate expensive
validation checks from cheap ones.