aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog
diff options
context:
space:
mode:
authorPaul Eggert2013-11-13 18:39:28 -0800
committerPaul Eggert2013-11-13 18:39:28 -0800
commit2cf00efc1b0db0ddc26fa14239026dd2d12c7d59 (patch)
tree1bd3fcc233230eb7e2ffdee78da9433b3915623e /src/ChangeLog
parentd672ac3c611453c624948ed8cc2ced65cadc3400 (diff)
downloademacs-2cf00efc1b0db0ddc26fa14239026dd2d12c7d59.tar.gz
emacs-2cf00efc1b0db0ddc26fa14239026dd2d12c7d59.zip
Simplify, port and tune bool vector implementation.
* configure.ac (BITSIZEOF_SIZE_T, SIZEOF_SIZE_T): Remove. * src/alloc.c (bool_vector_exact_payload_bytes) (bool_vector_payload_bytes): Remove. (bool_vector_fill): Return its argument. * src/alloc.c (bool_vector_fill): * src/lread.c (read1): * src/print.c (print_object): Simplify by using bool_vector_bytes. * src/alloc.c (make_uninit_bool_vector): New function, broken out from Fmake_bool_vector. (Fmake_bool_vector): Use it. Use tail call. (make_uninit_bool_vector, vector_nbytes): Simplify size calculations. * src/data.c (BITS_PER_ULL): New constant. (ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts if long long versions don't exist. (shift_right_ull): New function. (count_one_bits_word): New function, replacing popcount_bits_word macro. Don't assume that bits_word is no wider than long long. (count_one_bits_word, count_trailing_zero_bits): Don't assume that bits_word is no wider than long long. * src/data.c (bool_vector_binop_driver, bool_vector_not): * src/fns.c (Fcopy_sequence): * src/lread.c (read1): Create an uninitialized destination, to avoid needless work. (internal_equal): Simplify. (Ffillarray): Prefer tail call. * src/data.c (bool_vector_binop_driver): Don't assume bit vectors always contain at least one word. (bits_word_to_host_endian): Prefer if to #if. Don't assume chars are narrower than ints. * src/data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at): * src/fns.c (Fcopy_sequence): Simplify and tune. * src/lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD): Don't try to port to hosts where bits_word values have holes; the code wouldn't work there anyway. Verify this assumption, though. (bool_vector_bytes): New function. (make_uninit_bool_vector): New decl. (bool_vector_fill): Now returns Lisp_Object.
Diffstat (limited to 'src/ChangeLog')
-rw-r--r--src/ChangeLog40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 3861449cf5a..290b83a7ecf 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,45 @@
12013-11-14 Paul Eggert <eggert@cs.ucla.edu> 12013-11-14 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Simplify, port and tune bool vector implementation.
4 * alloc.c (bool_vector_exact_payload_bytes)
5 (bool_vector_payload_bytes): Remove.
6 (bool_vector_fill): Return its argument.
7 * alloc.c (bool_vector_fill):
8 * lread.c (read1):
9 * print.c (print_object):
10 Simplify by using bool_vector_bytes.
11 * alloc.c (make_uninit_bool_vector):
12 New function, broken out from Fmake_bool_vector.
13 (Fmake_bool_vector): Use it. Use tail call.
14 (make_uninit_bool_vector, vector_nbytes): Simplify size calculations.
15 * data.c (BITS_PER_ULL): New constant.
16 (ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts
17 if long long versions don't exist.
18 (shift_right_ull): New function.
19 (count_one_bits_word): New function, replacing popcount_bits_word
20 macro. Don't assume that bits_word is no wider than long long.
21 (count_one_bits_word, count_trailing_zero_bits):
22 Don't assume that bits_word is no wider than long long.
23 * data.c (bool_vector_binop_driver, bool_vector_not):
24 * fns.c (Fcopy_sequence):
25 * lread.c (read1):
26 Create an uninitialized destination, to avoid needless work.
27 (internal_equal): Simplify.
28 (Ffillarray): Prefer tail call.
29 * data.c (bool_vector_binop_driver): Don't assume bit vectors always
30 contain at least one word.
31 (bits_word_to_host_endian): Prefer if to #if. Don't assume
32 chars are narrower than ints.
33 * data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at):
34 * fns.c (Fcopy_sequence):
35 Simplify and tune.
36 * lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD):
37 Don't try to port to hosts where bits_word values have holes; the
38 code wouldn't work there anyway. Verify this assumption, though.
39 (bool_vector_bytes): New function.
40 (make_uninit_bool_vector): New decl.
41 (bool_vector_fill): Now returns Lisp_Object.
42
3 * xfns.c (xic_create_fontsetname): 43 * xfns.c (xic_create_fontsetname):
4 * xrdb.c (gethomedir): Prefer tail calls. 44 * xrdb.c (gethomedir): Prefer tail calls.
5 45