SCM_I_IS_VECTOR only true for tc7_vector, not weak vectors
authorAndy Wingo <wingo@pobox.com>
Sat, 8 Feb 2014 16:14:47 +0000 (17:14 +0100)
committerAndy Wingo <wingo@pobox.com>
Sat, 8 Feb 2014 16:19:52 +0000 (17:19 +0100)
commita32488ba13e81e51c1fef9fb057bdd805e8b3d72
tree7f664cbefdaad9898f0bb16c6ee84b0e55243493
parent787f7b644fa480b4815974c9850d5707881cf9f7
SCM_I_IS_VECTOR only true for tc7_vector, not weak vectors

* libguile/tags.h (SCM_TYP7S, SCM_HAS_TYP7S): Remove these, as we no
  longer do the differs-by-one-bit thing for vectors and weak vectors.
* libguile/vectors.h (SCM_I_IS_VECTOR): Use SCM_HAS_TYP7.
  (SCM_I_IS_NONWEAK_VECTOR): Remove.
* libguile/vm-engine.c (vector-length, vector-ref, vector-set!)
  (vector-ref/immediate, vector-set!/immediate): We can inline these
  instructions completely now.

* libguile/vm.c (vm_error_not_a_vector, vm_error_out_of_range): New
  error conditions.
libguile/tags.h
libguile/vectors.c
libguile/vectors.h
libguile/vm-engine.c
libguile/vm.c