Removed ref_stack field.
(PSTATE_STACK_REF, PSTATE_STACK_SET): New, for accessing the stack
of a print state. Use them everywhere instead of ref_stack.
(scm_vector_elements, scm_vector_writable_elements,
scm_generalized_vector_get_handle): Moved to vectors.[hc] from
unif.[hc].
(SCM_SIMPLE_VECTOR_LOC): Removed.
(SCM_VECTOR_MAX_LENGTH, SCM_VECTOR_LENGTH, SCM_VELTS,
SCM_WRITABLE_VELTS, SCM_VECTOR_REF, SCM_VECTOR_SET,
scm_vector_equal_p): Moved from vectors.[hc] to deprecated.[hc].
(scm_vector_equal_p, scm_i_vector_equal_p): Renamed former to
latter. Changed use in eq.c.
SCM_SMOB_PREDICATE in this file.
(is_uvec): Also recognize one-dimensional uniform numeric arrays
of the right type.
(scm_is_uniform_vector): Likewise.
(uvec_fast_ref): Made BASE param const.
(uvec_writable_elements, uvec_elements): New.
(uvec_to_list, uvec_ref, uvec_set_x, uvec_length,
scm_c_uniform_vector_length, scm_c_uniform_vector_ref,
scm_c_uniform_set_x): Use them to also deal with one-dimensional
arrays.
(scm_uniform_vector_ref, scm_uniform_vector_set_x): Deprecate old
argument convention.
(scm_uniform_vector_to_list): Let uvec_to_list do all the
checking.
(scm_uniform_vector_length): Use uvec_length.
type of POS parameter to be signed, positions can be negative.
(scm_array_handle_release): New, changed all uses of
scm_t_array_handle to properly call it.
(scm_vector_get_handle, scm_generalized_vector_get_handle):
Renamed former to latter.
scm_bitvector_writable_elements): Use a scm_t_array_handle and
deliver offset, length and increment to caller. Changed all uses.
(scm_bitvector_release_elements,
scm_frame_bitvector_release_elements,
scm_bitvector_release_writable_elements,
scm_frame_bitvector_release_writable_elements): Removed.
(scm_array_handle_bit_elements,
scm_array_handle_bit_writable_elements,
scm_array_handle_bit_elements_offset): New.
(scm_make_typed_array): The special value for non-initialized
arrays is now SCM_UNSPECIFIED. The old special value SCM_BOOL_F
was a valid value to fill bitvectors with, so it can't really be
specialed out.
vectors.
(quicksort1): New, for contigous vectors. Both functions are
generated from the same code by including "quicksort.i.c".
(scm_restricted_vector_sort_x): Call one of quicksort and
quicksort1, depending on increment of vector.
(scm_sort): Simply call scm_sort_x on a copy of the list or
vector.
(scm_merge_vector_x, scm_merge_vector_step): Changed indices to
size_t, added inc parameter.
(scm_stable_sort_x): Allocate temporary storage as Scheme vector
so that it doesn't leak.
(scm_stable_sort): Simply call scm_stable_sort_x on a copy of the
list or vector.
* tags.h, weaks.c, vports.c, hashtab.c, convert.c, sort.c: Use new
vector elements API or simple vector API, as appropriate. Removed
SCM_HAVE_ARRAYS ifdefery. Replaced all uses of
SCM_HASHTABLE_BUCKETS with SCM_HASHTABLE_BUCKET.
EXTRA_libguile_la_SOURCES): Changed ramap.c and unif.c from being
'extra' to being regular sources.
(noinst_HEADERS): Added quicksort.i.c.
* quicksort.i.c: New file.
EXTRA_libguile_la_SOURCES): Changed ramap.c and unif.c from being
'extra' to being regular sources.
(noinst_HEADERS): Added quicksort.i.c.
* quicksort.i.c: New file.
(scm_bitvector_writable_elements): New.
(scm_bitvector_release, scm_bitvector_release_elements):
Renamed former to latter. Added explicit call to
scm_remember_upto_here_1.
(scm_frame_bitvector_release,
scm_frame_bitvector_release_elements): Renamed former to latter.
(scm_bitvector_release_writable_elements,
scm_bitvector_release_writable_elements): New.
Changed all uses as required by the changes above.
scm_remember_upto_here_1.
(scm_uniform_vector_elements,
scm_u8vector_elements, etc): Made return value "const".
(scm_uniform_vector_writable_elements,
scm_u8vector_writable_elements, etc): New.
(scm_uniform_vector_release, scm_uniform_vector_release_elements):
Renamed former to latter. Added explicit call to
scm_remember_upto_here_1.
(scm_frame_uniform_vector_release,
scm_frame_uniform_vector_release_elements): Renamed former to latter.
(scm_uniform_vector_release_writable_elements,
scm_frame_uniform_vector_release_writable_elements): New. Takes
crown of longest identifier yet.
Changed all uses as required by the changes above.
scm_u8vector_elements, etc): Made return value "const".
(scm_uniform_vector_writable_elements,
scm_u8vector_writable_elements, etc): New.
(scm_uniform_vector_release, scm_uniform_vector_release_elements):
Renamed former to latter. Added explicit call to
scm_remember_upto_here_1.
(scm_frame_uniform_vector_release,
scm_frame_uniform_vector_release_elements): Renamed former to latter.
(scm_uniform_vector_release_writable_elements,
scm_frame_uniform_vector_release_writable_elements): New. Takes
crown of longest identifier yet.
Changed all uses as required by the changes above.
scm_c_generalized_vector_length instead of
scm_uniform_vector_length.
(scm_ramap, rafe): Use scm_c_vector_ref instead of SCM_VELTS. use
scm_c_generalized_vector_ref instead of scm_uniform_vector_ref.
to fit scm_from_ulong_long, since that uses mpz_import anyway. Don't
bother trying to fit scm_from_ulong, not really worth the trouble if
addresses are more than 4 bytes usually.