diff lisp/byte-optimize.el @ 5915:1af53d35dd53

Avoid allocation in #'integer-length; add #'logcount. lisp/ChangeLog addition: 2015-05-29 Aidan Kehoe <kehoea@parhasard.net> * byte-optimize.el (side-effect-free-fns): Add #'integer-length, #'logcount here. * cl-extra.el: * cl-extra.el (integer-length): Update this to avoid allocating memory. * cl-extra.el (logcount): New. Return the number of one bits in INTEGER, if non-negative. Function from Common Lisp. tests/ChangeLog addition: 2015-05-29 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: Test #'integer-length, #'logcount in this file.
author Aidan Kehoe <kehoea@parhasard.net>
date Fri, 29 May 2015 17:06:24 +0100
parents 236e4afc565d
children
line wrap: on
line diff
--- a/lisp/byte-optimize.el	Fri May 15 18:11:47 2015 +0100
+++ b/lisp/byte-optimize.el	Fri May 29 17:06:24 2015 +0100
@@ -1303,8 +1303,8 @@
 	 hash-table-test
 	 hash-table-type
 	 ;;
-	 int-to-string
-	 length log log10 logand logb logior lognot logxor lsh
+	 integer-length int-to-string
+	 length log log10 logand logb logcount logior lognot logxor lsh
 	 marker-buffer max member memq min mod
 	 next-window nth nthcdr number-to-string numerator
 	 parse-colon-path plist-get previous-window