]> git.eshelyaron.com Git - emacs.git/commit
Prefer stdbit.h to count-one-bits.h etc
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 12 May 2024 21:22:58 +0000 (14:22 -0700)
committerEshel Yaron <me@eshelyaron.com>
Sat, 18 May 2024 19:12:38 +0000 (21:12 +0200)
commitb7cc046304009027c97d27cfe08e79631bac4979
tree05ae25bb3beefcff94580958a294facadecab636
parent097a465ad24ec44bfc29c5111580f4ee51cf15d8
Prefer stdbit.h to count-one-bits.h etc

C23's <stdbit.h> in the long run should be better supported than
Gnulib's count-one-bits.h and similar headers, so switch to the
C23 primitives, with a Gnulib fallback for platforms lacking C23.
* admin/merge-gnulib (GNULIB_MODULES): Remove count-leading-zeros,
count-one-bits, count-trailing-zeros.  Add stdc_bit_width,
stdc_count_ones, stdc_trailing_zeros.
* lib/count-leading-zeros.c, lib/count-leading-zeros.h:
* lib/count-one-bits.c, lib/count-one-bits.h:
* lib/count-trailing-zeros.c, lib/count-trailing-zeros.h: Remove.
* lib/stdbit.c, lib/stdbit.in.h, lib/stdc_bit_width.c:
* lib/stdc_count_ones.c, lib/stdc_leading_zeros.c:
* lib/stdc_trailing_zeros.c, m4/stdbit_h.m4:
New files, copied from Gnulib.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* src/data.c: Do not include count-one-bits.h, count-trailing-zeros.h.
Instead, rely on lisp.h including stdbit.h.
(Flogcount, Fbool_vector_count_population)
(Fbool_vector_count_consecutive): Use stdbit.h macros instead of
count-one-bits.h and count-trailing-zeros.h macros.
(shift_right_ull, count_one_bits_word, pre_value)
(count_trailing_zero_bits): Remove; no longer needed.
* src/lisp.h: Include stdbit.h instead of count-leading-zeros.h.
(elogb): Use stdbit.h macro instead of count-leading-zeros.h macro.

(cherry picked from commit 88b0bb4db9aaecff8b01e81726b911fa5d02b2fb)
19 files changed:
INSTALL.REPO
admin/merge-gnulib
lib/count-leading-zeros.c [deleted file]
lib/count-leading-zeros.h [deleted file]
lib/count-one-bits.c [deleted file]
lib/count-one-bits.h [deleted file]
lib/count-trailing-zeros.c [deleted file]
lib/count-trailing-zeros.h [deleted file]
lib/gnulib.mk.in
lib/stdbit.c [new file with mode: 0644]
lib/stdbit.in.h [new file with mode: 0644]
lib/stdc_bit_width.c [new file with mode: 0644]
lib/stdc_count_ones.c [new file with mode: 0644]
lib/stdc_leading_zeros.c [new file with mode: 0644]
lib/stdc_trailing_zeros.c [new file with mode: 0644]
m4/gnulib-comp.m4
m4/stdbit_h.m4 [new file with mode: 0644]
src/data.c
src/lisp.h