mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-23 12:00:21 +02:00
bitvector-bit-set? / bitvector-bit-clear? replace bitvector-ref
This is an opportunity to make a new interface that can be more efficient in 3.0 (because no generic array support), easier to read (no need for 'not'), and more consistent with other bitvector interfaces. * NEWS: Add entry. * doc/ref/api-data.texi (Bit Vectors): Update. * libguile/array-handle.h (bitvector_ref, scm_array_get_handle): Adapt to bitvector changes. * libguile/bitvectors.h: * libguile/bitvectors.c (scm_c_bitvector_bit_is_set) (scm_c_bitvector_bit_is_clear): New functions. * libguile/deprecated.h: * libguile/deprecated.c (scm_bitvector_ref): Deprecate. * module/ice-9/sandbox.scm (bitvector-bindings): Replace bitvector-ref with bitvector-bit-set? / bitvector-bit-clear?. * module/system/vm/disassembler.scm (instruction-has-fallthrough): Use bitvector-bit-clear?. * test-suite/tests/bitvectors.test: Update.
This commit is contained in:
parent
ff9979b6bc
commit
d804177be4
10 changed files with 106 additions and 50 deletions
|
@ -6573,15 +6573,17 @@ Like @code{scm_bitvector_length}, but the length is returned as a
|
|||
@code{size_t}.
|
||||
@end deftypefn
|
||||
|
||||
@deffn {Scheme Procedure} bitvector-ref vec idx
|
||||
@deffnx {C Function} scm_bitvector_ref (vec, idx)
|
||||
Return the element at index @var{idx} of the bitvector
|
||||
@var{vec}.
|
||||
@deffn {Scheme Procedure} bitvector-bit-set? vec idx
|
||||
@deffnx {Scheme Procedure} bitvector-bit-clear? vec idx
|
||||
Return @code{#t} if the bit at index @var{idx} of the bitvector
|
||||
@var{vec} is set (for @code{bitvector-bit-set?}) or clear (for
|
||||
@code{bitvector-bit-clear?}).
|
||||
@end deffn
|
||||
|
||||
@deftypefn {C Function} SCM scm_c_bitvector_ref (SCM vec, size_t idx)
|
||||
Return the element at index @var{idx} of the bitvector
|
||||
@var{vec}.
|
||||
@deftypefn {C Function} int scm_bitvector_bit_is_set (SCM vec, size_t idx)
|
||||
@deftypefnx {C Function} int scm_bitvector_bit_is_clear (SCM vec, size_t idx)
|
||||
Return 1 if the bit at index @var{idx} of the bitvector @var{vec} is set
|
||||
or clear, respectively, or 0 otherwise.
|
||||
@end deftypefn
|
||||
|
||||
@deffn {Scheme Procedure} bitvector-set! vec idx val
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue