]> git.eshelyaron.com Git - emacs.git/commitdiff
Optimize byte-compilation of proper-list-p
authorBasil L. Contovounesios <contovob@tcd.ie>
Tue, 9 Apr 2019 15:51:55 +0000 (16:51 +0100)
committerBasil L. Contovounesios <contovob@tcd.ie>
Fri, 12 Apr 2019 13:25:36 +0000 (14:25 +0100)
For discussion, see thread starting at:
https://lists.gnu.org/archive/html/emacs-devel/2019-04/msg00316.html
* lisp/emacs-lisp/byte-opt.el: Optimize proper-list-p as a
predicate.
* lisp/subr.el: Mark proper-list-p as pure, and side-effect and
error free.

lisp/emacs-lisp/byte-opt.el
lisp/subr.el

index 33d49647638dece50dd62db26df10729810ce96d..44cca6136c0f32c503b18b914615d63494c0d6b1 100644 (file)
 (put 'symbolp 'byte-optimizer 'byte-optimize-predicate)
 (put 'stringp 'byte-optimizer 'byte-optimize-predicate)
 (put 'string< 'byte-optimizer 'byte-optimize-predicate)
-(put 'string-lessp 'byte-optimizer 'byte-optimize-predicate)
+(put 'string-lessp  'byte-optimizer 'byte-optimize-predicate)
+(put 'proper-list-p 'byte-optimizer 'byte-optimize-predicate)
 
 (put 'logand 'byte-optimizer 'byte-optimize-predicate)
 (put 'logior 'byte-optimizer 'byte-optimize-predicate)
index bdf98979c49e79586f0bf22c2cdd96b93dcf6fbd..bf3716bbd37575e302a8d0235dd76fafd6169705 100644 (file)
@@ -604,6 +604,11 @@ If N is omitted or nil, remove the last element."
           (if (> n 0) (setcdr (nthcdr (- (1- m) n) list) nil))
           list))))
 
+;; The function's definition was moved to fns.c,
+;; but it's easier to set properties here.
+(put 'proper-list-p 'pure t)
+(put 'proper-list-p 'side-effect-free 'error-free)
+
 (defun delete-dups (list)
   "Destructively remove `equal' duplicates from LIST.
 Store the result in LIST and return it.  LIST must be a proper list.