mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-19 02:00:26 +02:00
Replace bit-set*! with bitvector-set-bits! / bitvector-clear-bits!
The old name was wonky and hard to read: you almost always pass a literal as the value to set, so better to make separate functions. * NEWS: Add entry. * doc/ref/api-data.texi (Bit Vectors): Update. * libguile/bitvectors.h: * libguile/bitvectors.c (scm_bitvector_set_bits_x) (scm_bitvector_clear_bits_x): New functions. * libguile/deprecated.h: * libguile/deprecated.c (scm_bit_set_star_x): Deprecate. * module/ice-9/sandbox.scm (mutable-bitvector-bindings): Replace bit-set*! with bitvector-set-bits! / bitvector-clear-bits!. * module/system/vm/frame.scm (available-bindings, compute-killv): Use bitvector-set-bits! and bitvector-clear-bits!. * test-suite/tests/bitvectors.test: Update.
This commit is contained in:
parent
06709d77b9
commit
ff9979b6bc
9 changed files with 204 additions and 132 deletions
|
@ -180,7 +180,8 @@
|
|||
(compute-frame-sizes code parsed initial-frame-size))
|
||||
((killv) (make-vector (vector-length parsed) #f)))
|
||||
(define (kill-slot! n slot)
|
||||
(bit-set*! (vector-ref killv n) (vector-ref defs-by-slot slot) #t))
|
||||
(bitvector-set-bits! (vector-ref killv n)
|
||||
(vector-ref defs-by-slot slot)))
|
||||
(let lp ((n 0))
|
||||
(when (< n (vector-length killv))
|
||||
(vector-set! killv n (make-bitvector (vector-length defs) #f))
|
||||
|
@ -224,11 +225,11 @@
|
|||
(tmp (make-bitvector (vector-length defs) #f)))
|
||||
(define (bitvector-copy! dst src)
|
||||
(bitvector-fill! dst #f)
|
||||
(bit-set*! dst src #t))
|
||||
(bitvector-set-bits! dst src))
|
||||
(define (bitvector-meet! accum src)
|
||||
(bitvector-copy! tmp src)
|
||||
(bit-invert! tmp)
|
||||
(bit-set*! accum tmp #f))
|
||||
(bitvector-clear-bits! accum tmp))
|
||||
|
||||
(let lp ((n 0))
|
||||
(when (< n len)
|
||||
|
@ -253,7 +254,7 @@
|
|||
(bitvector-meet! in (vector-ref outv pred)))
|
||||
(lp preds))))
|
||||
(bitvector-copy! out in)
|
||||
(bit-set*! out kill #f)
|
||||
(bitvector-clear-bits! out kill)
|
||||
(for-each (lambda (def)
|
||||
(bitvector-set! out def #t))
|
||||
gen)
|
||||
|
@ -280,7 +281,7 @@
|
|||
;; values defined by the call.
|
||||
(begin
|
||||
(bitvector-copy! tmp (vector-ref inv (1- n)))
|
||||
(bit-set*! tmp (vector-ref killv (1- n)) #f)
|
||||
(bitvector-clear-bits! tmp (vector-ref killv (1- n)))
|
||||
tmp))))
|
||||
(let lp ((n 0))
|
||||
(let ((n (bitvector-position live #t n)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue