mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-18 17:50:29 +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
|
@ -1082,7 +1082,8 @@ allocation limit is exceeded, an exception will be thrown to the
|
|||
bitvector
|
||||
bitvector->list
|
||||
bitvector-length
|
||||
bitvector-ref
|
||||
bitvector-bit-set?
|
||||
bitvector-bit-clear?
|
||||
bitvector?
|
||||
list->bitvector
|
||||
make-bitvector)))
|
||||
|
|
|
@ -509,7 +509,7 @@ address of that offset."
|
|||
subr-call foreign-call continuation-call
|
||||
j))
|
||||
(let ((opcode (logand (bytevector-u32-native-ref code pos) #xff)))
|
||||
(not (bitvector-ref non-fallthrough-set opcode))))
|
||||
(bitvector-bit-clear? non-fallthrough-set opcode)))
|
||||
|
||||
(define-syntax define-jump-parser
|
||||
(lambda (x)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue