add registry of vector constructors, make-generalized-vector
authorAndy Wingo <wingo@pobox.com>
Sat, 18 Jul 2009 10:43:54 +0000 (12:43 +0200)
committerAndy Wingo <wingo@pobox.com>
Sun, 19 Jul 2009 13:15:44 +0000 (15:15 +0200)
commitf45eccffa73c043466a4cc0f5037132ee5795eee
tree16e441eddc02d5274cd61592814ea29bbe55b73d
parent476b894c71b436f3befb8af46b899aaf244763e2
add registry of vector constructors, make-generalized-vector

* libguile/generalized-vectors.h:
* libguile/generalized-vectors.c: Add a registry of vector constructors.
  (scm_make_generalized_vector): New public function, constructs a
  vector of a given type.

* libguile/bitvectors.c:
* libguile/bytevectors.c:
* libguile/srfi-4.c:
* libguile/strings.c:
* libguile/vectors.c: Register vector constructors.

* libguile/extensions.c (scm_init_extensions): No need to NULL the list
  of registered extensions here, the static init does it for us. Allows
  scm_c_register_extension to be called before scm_init_extensions.

* libguile/init.c (scm_i_init_guile): Move array initialization earlier,
  so e.g. scm_init_strings has access to a valid list of array element
  types when registering its vector constructor.
libguile/bitvectors.c
libguile/bytevectors.c
libguile/extensions.c
libguile/generalized-vectors.c
libguile/generalized-vectors.h
libguile/init.c
libguile/srfi-4.c
libguile/strings.c
libguile/vectors.c