instructions that bind the macros on the scheme level back to
goops.c in order to make sure again that the bindings go into the
(oop goops) module and are not visible from the outside.
scm_m_atslot_set_x, scm_m_atdispatch): Move the declarations and
definitions of the special goops memoizers from goops.[ch] to
eval.[ch]. Hmm... it seems that scm_m_atdispatch is not used
throughout guile.
providing bad syntax. Otherwise, the memoizer will report an
error immediately after reading the form, without even the chance
to get the pass-if-exception mechanism started.
minor stylistic ones. Still, in order to prepare a patch between
my local copy and the CVS version, I decided to submit the changes
below. Then, the patch will hopefully only contain relevant
modifications :-)
* eval.c (iqq): Added const specifier.
* eval.c (scm_trampoline_0, scm_trampoline_1, scm_trampoline_2):
Use NULL instead of 0 to indicate that a pointer is returned.
Removed some misleading 'fall through' comments.
* eval.c (scm_i_call_closure_0, call_closure_1, call_closure_2):
Split up long expressions into smaller ones to be more debugging
friendly.
fail (one even with a segfault) with CVS guile before the recent
changes to libguile/sort.c.
* libguile/sort.c: Replaced hand-made trampline code by the new
official mechanism from eval.c. This fixes a segfault in the new
test file test-suite/tests/sort.test.
(quicksort, compare_function, scm_restricted_vector_sort_x,
scm_sorted_p, scm_merge, scm_merge_list_x, scm_merge_x,
scm_merge_list_step, scm_sort_x, scm_sort, scm_merge_vector_x,
scm_merge_vector_step, scm_stable_sort_x, scm_stable_sort,
scm_sort_list_x, scm_sort_list): Use trampoline mechanism from
eval.c.
(subr2less, lsubrless, closureless, applyless, scm_cmp_function,
cmp_fun_t): Removed.
(compare_function): Added.
* libguile/sort.c (quicksort, SWAP, stack_node): Replaced pointer
arithmetics with index arithmetics. Changed quicksort to work on
an array of SCM values instead of an array of characters. Avoid
bytewise copying of SCM elements. Avoid allocating memory on the
stack with alloca. Fixed some comments.
* 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.