diff options
author | Andy Wingo <wingo@pobox.com> | 2020-04-12 21:26:47 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2020-04-12 21:36:30 +0200 |
commit | 24a34074ef8fd91c111ed9987375f25925f69e26 (patch) | |
tree | 98fde41becf8208ecbb5b7ad0237d9a060e7a182 /doc/ref/api-data.texi | |
parent | 2b4e45ca1b89a942200b7b9f46060dddc44d2876 (diff) | |
download | guile-24a34074ef8fd91c111ed9987375f25925f69e26.tar.gz |
Deprecate bitvector-ref on array slices
* NEWS: Update.
* doc/ref/api-data.texi (Bit Vectors): Update documentation on bit-set*!
and bit-count*.
* libguile/bitvectors.c: Add a to-do list.
(scm_c_bitvector_ref, scm_c_bitvector_set_x, scm_bitvector_fill_x)
(scm_bitvector_to_list, scm_bit_count, scm_bit_position):
Issue deprecation warnings when used on array slices.
(scm_list_to_bitvector): Simplify.
(scm_bit_set_star_x, scm_bit_count_star): Deprecate arrays as target
bitvectors, and also use of u32vector as selection vector.
* libguile/bitvectors.h:
* libguile/deprecated.h:
* libguile/deprecated.c (scm_istr2bve): Deprecate.
* test-suite/tests/bitvectors.test ("bit-count*"): Remove test of u32
selectors.
Diffstat (limited to 'doc/ref/api-data.texi')
-rw-r--r-- | doc/ref/api-data.texi | 44 |
1 files changed, 13 insertions, 31 deletions
diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi index a6b09c478..32d94e6ac 100644 --- a/doc/ref/api-data.texi +++ b/doc/ref/api-data.texi @@ -6641,17 +6641,15 @@ entry between @var{start} and the end of @var{bitvector}, then return Modify @var{bitvector} by replacing each element with its negation. @end deffn -@deffn {Scheme Procedure} bit-set*! bitvector uvec bool -@deffnx {C Function} scm_bit_set_star_x (bitvector, uvec, bool) -Set entries of @var{bitvector} to @var{bool}, with @var{uvec} -selecting the entries to change. The return value is unspecified. - -If @var{uvec} is a bit vector, then those entries where it has -@code{#t} are the ones in @var{bitvector} which are set to @var{bool}. -@var{uvec} and @var{bitvector} must be the same length. When -@var{bool} is @code{#t} it's like @var{uvec} is OR'ed into -@var{bitvector}. Or when @var{bool} is @code{#f} it can be seen as an -ANDNOT. +@deffn {Scheme Procedure} bit-set*! bitvector bits bool +@deffnx {C Function} scm_bit_set_star_x (bitvector, bits, bool) +Set entries of @var{bitvector} to @var{bool}, with @var{bits} selecting +the entries to change. The return value is unspecified. Those bits in +the bitvector @var{bits} which are set to one indicate the bits in +@var{bitvector} to set to @var{bool}. @var{bitvector} must be at least +as long as @var{bits}. When @var{bool} is @code{#t} it is as if +@var{bits} is OR'ed into @var{bitvector}, whereas when @var{bool} is +@code{#f} is like an ANDNOT. @example (define bv #*01000010) @@ -6659,34 +6657,18 @@ ANDNOT. bv @result{} #*11010011 @end example - -If @var{uvec} is a uniform vector of unsigned long integers, then -they're indexes into @var{bitvector} which are set to @var{bool}. - -@example -(define bv #*01000010) -(bit-set*! bv #u(5 2 7) #t) -bv -@result{} #*01100111 -@end example @end deffn -@deffn {Scheme Procedure} bit-count* bitvector uvec bool -@deffnx {C Function} scm_bit_count_star (bitvector, uvec, bool) +@deffn {Scheme Procedure} bit-count* bitvector bits bool +@deffnx {C Function} scm_bit_count_star (bitvector, bits, bool) Return a count of how many entries in @var{bitvector} are equal to -@var{bool}, with @var{uvec} selecting the entries to consider. - -@var{uvec} is interpreted in the same way as for @code{bit-set*!} -above. Namely, if @var{uvec} is a bit vector then entries which have -@code{#t} there are considered in @var{bitvector}. Or if @var{uvec} -is a uniform vector of unsigned long integers then it's the indexes in -@var{bitvector} to consider. +@var{bool}, with the bitvector @var{bits} selecting the entries to +consider. @var{bitvector} must be at least as long as @var{bits}. For example, @example (bit-count* #*01110111 #*11001101 #t) @result{} 3 -(bit-count* #*01110111 #u32(7 0 4) #f) @result{} 2 @end example @end deffn |