character. This test will only pass if the other changes that are
submitted together with this patch are also applied.
* libguile/tags.h: Fixed comment about the immediate type code
layout.
* libguile/eval.c: Fixed handling of non-special instructions.
Without this patch, guile will segfault on (#\0) and similar
instructions.
* doc/ref/scheme-compound.texi: Clarified that vectors need to
be quoted.
* doc/tutorial/guile-tut.texi: Fix example, where a vector
constant is used without quoting.
* ice-9/boot-9.scm (make-autoload-interface): Added missing
quote around vector constant.
* test-suite/tests/elisp.test: Added missing quote around vector
constants.
for a proper function object and the correct number of arguments are
now performed in the application part of SCM_CEVAL.
(scm_badformalsp): Removed.
* test-suite/tests/r5rs_pitfall.test: Test 2.1 now passes.
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.
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.
precedence list in all basic classes and tests for eqv? and
equal?.
* goops.scm (compute-getters-n-setters): Check for bad init-thunk.
(eqv?): Added default method.
(equal?): New default method which uses eqv?.
* eq.c (scm_eqv_p): Turned into a primitive generic.
update and active slots.
* goops.scm (compute-getter-method): For custom getter: Check
boundness even if there is an init-thunk. (The getter can return
#<unbound> even if the slot has been set before.)
(remove-class-accessors!): Also remove accessor-method from its
accessor.
* goops.c (scm_sys_fast_slot_ref): Use SCM_SLOT instead of
scm_at_assert_bound_ref. (We don't want the unbound check. See
oop/goops/active-slot.scm.)
define-generic and define-accessor will continue to work when
mmacros are expanded before execution.
* test-suite/tests/goops.test: Added tests for define-generic and
define-accessor.