allocate a tc7 to arrays
authorAndy Wingo <wingo@pobox.com>
Mon, 9 Jan 2012 16:24:57 +0000 (17:24 +0100)
committerAndy Wingo <wingo@pobox.com>
Mon, 9 Jan 2012 16:50:56 +0000 (17:50 +0100)
commitb2637c985ce93bc15e0378b8120d04a98ebdd212
treebde14a0e946c1a9e165284b75e91d17b6dca5aa1
parent017eb4a6be938c50df7fe6a27ca38486e75e02d5
allocate a tc7 to arrays

* libguile/tags.h (scm_tc7_array): Allocate a tag for arrays.
* libguile/arrays.h (SCM_I_ARRAYP): Change to use scm_tc7_array.  The
  previous definition was not externally usable because scm_i_tc16_array
  was internal.
  (scm_i_print_array): Declare, though internally.

* libguile/arrays.c (scm_i_make_array): Use scm_cell with the tc7
  instead of NEWSMOB.
  (scm_i_print_array): Make not static.
  (SCM_ARRAY_IMPLEMENTATION): Adapt.
  (scm_init_arrays): Remove array smob declaration.

* libguile/eq.c (scm_equal_p): Refactor to put the string, pointer, and
  bytevector cases in the switch.  Add a case for arrays.

* libguile/goops.c: Add <array> declarations.

* libguile/print.c (iprin1): Call scm_i_print_array as needed.

* libguile/evalext.c (scm_self_evaluating_p): Add a case for arrays.
libguile/array-map.c
libguile/arrays.c
libguile/arrays.h
libguile/eq.c
libguile/evalext.c
libguile/goops.c
libguile/print.c
libguile/tags.h