Remove hashset slots from GOOPS classes

* libguile/goops.h (SCM_CLASS_CLASS_LAYOUT, SCM_INSTANCE_HASH)
  (SCM_SET_HASHSET):
* libguile/goops.c (prep_hashsets, scm_sys_make_root_class,
  scm_sys_init_layout_x):
* module/oop/goops.scm (build-<class>-slots): Remove hashsets from
  classes.  We haven't implemented hashed dispatch since Guile 1.8, and
  it's not clear that the particular formulation of dispatch is a good
  idea.
This commit is contained in:
Andy Wingo 2015-01-06 14:24:27 -05:00
commit e03e310126
3 changed files with 9 additions and 51 deletions

View file

@ -448,8 +448,6 @@ SCM_DEFINE (scm_sys_init_layout_x, "%init-layout!", 2, 0, 0,
}
#undef FUNC_NAME
static void prep_hashsets (SCM);
SCM_DEFINE (scm_sys_inherit_magic_x, "%inherit-magic!", 2, 0, 0,
(SCM class, SCM dsupers),
"")
@ -459,21 +457,10 @@ SCM_DEFINE (scm_sys_inherit_magic_x, "%inherit-magic!", 2, 0, 0,
scm_i_struct_inherit_vtable_magic (SCM_CLASS_OF (class), class);
SCM_SET_CLASS_FLAGS (class, SCM_CLASSF_GOOPS_OR_VALID);
prep_hashsets (class);
return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
static void
prep_hashsets (SCM class)
{
unsigned int i;
for (i = 0; i < 8; ++i)
SCM_SET_HASHSET (class, i, scm_c_uniform32 (goops_rstate));
}
/******************************************************************************/
SCM
@ -508,8 +495,6 @@ SCM_DEFINE (scm_sys_make_root_class, "%make-root-class", 3, 0, 0,
SCM_SET_SLOT (z, scm_si_getters_n_setters, getters_n_setters); /* will be changed */
SCM_SET_SLOT (z, scm_si_redefined, SCM_BOOL_F);
prep_hashsets (z);
return z;
}
#undef FUNC_NAME