mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-17 17:20:29 +02:00
* srfi-4.h, srfi-4.i.c (scm_u8vector_elements, etc): New.
* srfi-4.h, srfi-4.c (scm_uniform_vector_p, scm_uniform_vector_ref, scm_uniform_vector_set_x, scm_uniform_vector_to_list, scm_is_uniform_vector, scm_c_uniform_vector_lengths, scm_c_uniform_vector_size, scm_uniform_vector_elements, scm_uniform_vector_element_size, scm_uniform_vector_release): New. (scm_i_uniform_vector_prototype, scm_i_uniform_vector_tag): New. (scm_uniform_element_size, scm_uniform_vector_length): Moved here from unif.h, unif.c and extended to handle both the old and new uniform vectors. * unif.h, unif.c (scm_uniform_vector_ref, scm_array_ref): Renamed the former to the latter. (scm_uniform_vector_length, scm_uniform_element_size): Moved to srfi-4.h, srfi-4.c. (scm_make_uve): Call scm_make_s8vector for #\nul prototype. (scm_array_p, scm_array_rank, scm_array_dimensions, scm_transpose_array, scm_enclose_array, scm_array_ref, scm_cvref, scm_array_set_x, scm_array_contents, scm_uniform_array_read_x, scm_array_to_list, scm_array_prototype): Handle srfi-4 uniform vectors. Removed code for scm_tc7_byvect. (scm_dimensions_to_uniform_array): Fill array with 0 when prototype is #\nul. (scm_i_print_array_dimension, scm_i_legacy_tag, scm_i_print_array): New. (scm_raprin1): Call scm_i_print_array for arrays. Removed code for scm_tc7_byvect.
This commit is contained in:
parent
7b1574ed4f
commit
e0e496707b
5 changed files with 673 additions and 293 deletions
|
@ -15,6 +15,10 @@
|
|||
The tag name of the vector, for example u8. The tag is used to
|
||||
form the function names and is included in the docstrings, for
|
||||
example.
|
||||
|
||||
- CTYPE
|
||||
|
||||
The C type of the elements, for example scm_t_uint8.
|
||||
*/
|
||||
|
||||
/* The first level does not expand macros in the arguments. */
|
||||
|
@ -113,6 +117,13 @@ SCM_DEFINE (F(scm_list_to_,TAG,vector), "list->"S(TAG)"vector", 1, 0, 0,
|
|||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
CTYPE *
|
||||
F(scm_,TAG,vector_elements) (SCM obj)
|
||||
{
|
||||
uvec_assert (TYPE, obj);
|
||||
return (CTYPE *)SCM_UVEC_BASE (obj);
|
||||
}
|
||||
|
||||
#undef paste
|
||||
#undef s_paste
|
||||
#undef stringify
|
||||
|
@ -122,3 +133,4 @@ SCM_DEFINE (F(scm_list_to_,TAG,vector), "list->"S(TAG)"vector", 1, 0, 0,
|
|||
|
||||
#undef TYPE
|
||||
#undef TAG
|
||||
#undef CTYPE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue