(scm_i_minyield_malloc, check_mtrigger): New.
(scm_must_malloc, scm_must_realloc, scm_done_malloc): Use it
instead of explicit code. Thanks to Han-Wen Nienhuys!
(compute-getters-n-setters): Check for bad init-thunks.
* eq.c (scm_eqv_p, scm_equal_p): Turned into a primitive generics.
* goops.texi (Object Comparisons): Removed object-eqv? and
object-equal? and added eqv?, equal? and =.
* goops.scm (equal?): Provide default method for `equal?'.
(compute-getters-n-setters): Check for bad init-thunks.
* eq.c (scm_equal_p): Turned into a primitive generic.
* snarf.h (SCM_PRIMITIVE_GENERIC, SCM_PRIMITIVE_GENERIC_1): New
macros.
Thanks to Boyd Gerber.
Added check for __arm__ in addition to arm for LINUX and copied
__s390__ defines from upstream libgc. Thanks to James Treacy for
reporting the problems.
boundness even if there is an init-thunk. (The getter can return
#<unbound> even if the slot has been set before.)
* 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.)
check of format of value returned by compute-get-n-set.
(compute-getters-n-setters): Extended format of slot
getters-n-setters to indicate position and size of slot memory
allocated in instances.
* goops.c (scm_sys_prep_layout_x): Instance allocation is now
indicated through extra fields in getters-n-setters.
(scm_add_slot): Adapted to new format of getters_n_setters slot.
(Thanks to Andy Wingo.)
optimization related) bugs on powerpc by altering some
"while (!SCM_NULLP (t.arg1 = SCM_CDR (t.arg1)))"
or
"if (...foo = bar...)"
style constructs to move the assignments outside the guards.
(scm_m_case): move some assignments outside guards as above.
(scm_m_letrec1): move some assignments outside guards as above.
(unmemocopy): move some assignments outside guards as above.
(scm_eval_body): move some assignments outside guards as above.
(SCM_APPLY): move some assignments outside guards as above.
(s_scm_copy_tree): move some assignments outside guards as above.