hash tables have a tc7
authorAndy Wingo <wingo@pobox.com>
Sat, 5 Dec 2009 09:07:07 +0000 (10:07 +0100)
committerAndy Wingo <wingo@pobox.com>
Sat, 5 Dec 2009 09:07:07 +0000 (10:07 +0100)
commitc99de5aa275b15af207c0dba9717d6b865684fc4
treed1c78809bf4971a152fd3cd46bf77cf29a2f5621
parent314b87163eac1358923cb84e7f2c87d06aa03756
hash tables have a tc7

* libguile/tags.h (scm_tc7_hashtable): Allocate a tc7 for hashtables.

* libguile/hashtab.h: Adjust macros accordingly.
  (scm_i_hashtable_print, scm_i_hashtable_equal_p): New internal
  functions.
  (scm_hashtab_prehistory): Remove, no more need for this.

* libguile/hashtab.c (scm_hash_fn_remove_x): Fix a longstanding bug.
  (make_hash_table): Adapt to the new hash table representation.

* libguile/eq.c (scm_equal_p)
* libguile/evalext.c (scm_self_evaluating_p)
* libguile/print.c (iprin1)
* libguile/gc.c (scm_i_tag_name): Add some tc7_hashtab cases.

* libguile/init.c: Remove unused environments init functions. Remove
  call to hashtab_prehistory.

* libguile/goops.h (scm_class_hashtable)
* libguile/goops.c (scm_class_of, create_standard_classes): Have to
  make a class for hash tables manually, because they aren't smobs any
  more.
libguile/eq.c
libguile/evalext.c
libguile/gc.c
libguile/goops.c
libguile/goops.h
libguile/hashtab.c
libguile/hashtab.h
libguile/init.c
libguile/print.c
libguile/tags.h