diff options
author | Andy Wingo <wingo@pobox.com> | 2020-04-14 22:08:45 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2020-04-14 22:18:02 +0200 |
commit | d804177be4525feb517feb63ca09502d187fc016 (patch) | |
tree | fe99bbf9aa760874d717c8e9d7ee693f2c0d7e8d /libguile/bitvectors.h | |
parent | ff9979b6bc6a72e03085d7ce21fd3f8f1bd39b64 (diff) | |
download | guile-d804177be4525feb517feb63ca09502d187fc016.tar.gz |
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.
Diffstat (limited to 'libguile/bitvectors.h')
-rw-r--r-- | libguile/bitvectors.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/bitvectors.h b/libguile/bitvectors.h index 82c8b3236..136f22953 100644 --- a/libguile/bitvectors.h +++ b/libguile/bitvectors.h @@ -36,7 +36,6 @@ SCM_API SCM scm_bitvector_p (SCM vec); SCM_API SCM scm_bitvector (SCM bits); SCM_API SCM scm_make_bitvector (SCM len, SCM fill); SCM_API SCM scm_bitvector_length (SCM vec); -SCM_API SCM scm_bitvector_ref (SCM vec, SCM idx); SCM_API SCM scm_bitvector_set_x (SCM vec, SCM idx, SCM val); SCM_API SCM scm_list_to_bitvector (SCM list); SCM_API SCM scm_bitvector_to_list (SCM vec); @@ -53,7 +52,8 @@ SCM_API SCM scm_bit_invert_x (SCM v); SCM_API int scm_is_bitvector (SCM obj); SCM_API SCM scm_c_make_bitvector (size_t len, SCM fill); SCM_API size_t scm_c_bitvector_length (SCM vec); -SCM_API SCM scm_c_bitvector_ref (SCM vec, size_t idx); +SCM_API int scm_c_bitvector_bit_is_set (SCM vec, size_t idx); +SCM_API int scm_c_bitvector_bit_is_clear (SCM vec, size_t idx); SCM_API void scm_c_bitvector_set_x (SCM vec, size_t idx, SCM val); SCM_API const uint32_t *scm_array_handle_bit_elements (scm_t_array_handle *h); SCM_API uint32_t *scm_array_handle_bit_writable_elements (scm_t_array_handle *h); |