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.)
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.)
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.
optimization related) bugs on powerpc by altering some
"while (!SCM_NULLP (t.arg1 = SCM_CDR (t.arg1)))"
style constructs so that the assignment doesn't happen inside the guard.