make-uniform-vector, make-uniform-array, list->uniform-vector):
Moved from arrays.scm to deprecated.scm.
* arrays.scm, boot-9.scm (array-dimensions): Moved from arrays.scm
to boo-9.scm.
* Makefile.am (ice9_sources): Removed arrays.scm.
upper bound as well. This is needed for empty arrays.
(l2ra): Give needed number of elements in error message.
(scm_i_print_array): Print length information for arrays that need
it.
(scm_i_read_array): Parse it.
scm_shared_array_offset, scm_shared_array_increments,
scm_array_ref, scm_array_set_x): Use scm_t_array_handle operations
to simplify code and make it more general.
(scm_shared_array_root): Work with all kinds of arrays, including
naked vectors.
(indices_to_pos): New.
(SRFI-19 Introduction): Note MJD basis is 2400000.5.
(SRFI-19 Date): In date-second, clarify leap second usage. In
date-year, note negatives for B.C. and no zero. In current-date,
don't let it read like it's just UTC which is returned.
scm_i_uniform_vector_set_proc): New.
(u8ref, u8set, s8ref, s8set, etc): New.
(uvec_reffers, uvec_setters): New.
(uvec_to_list): Use generic scm_array_handle_ref instead of
uvec_fast_ref since scm_array_handle_ref should be faster now.
More changes like this are upcoming.
New.
(scm_t_array_handle): Added ref, set, elements and
writable_elements for fast inline operation of
scm_array_handle_ref and scm_array_handle_set.
(scm_array_handle_ref, scm_array_handle_set): Moved to inline.h
and replaced with inline code that simply calls the ref/set
members of the handle.
(enclosed_ref, vector_ref, string_ref, bitvector_ref, memoize_ref,
enclosed_set, vector_set, string_set, bitvector_set, memoize_set):
New.
(scm_array_handle_get): Initialize ref/set fields to memoize_ref
and memoize_set.
(scm_bitvector_fill_x, scm_bitvector_to_list, scm_bit_count,
scm_bit_position, scm_bit_set_star_x, scm_bit_count_star,
scm_bit_invert_x): Correctly multiply index with increment in the
general case.
* unif.c (scm_array_handle_set): Correctly execute only one
alternative. D'Oh!
(scm_list_to_typed_array, l2ra): Use scm_t_array_handle to fill
the array; this covers all cases with much simpler code.
(scm_i_print_array): Print zero rank arrays specially.
(tag_to_type): Return #t for an empty tag, not the empty symbol.
(scm_i_read_array): Allow zero rank arrays.