>From 430fcb473608a4501826a982a29efa8c31ed6c5c Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Tue, 9 Apr 2019 16:51:55 +0100 Subject: [PATCH 1/2] Optimize byte-compilation of proper-list-p * lisp/emacs-lisp/byte-opt.el: Optimize proper-list-p as a predicate. * src/fns.c (syms_of_fns): Mark proper-list-p as pure and side-effect-free. --- lisp/emacs-lisp/byte-opt.el | 3 ++- src/fns.c | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index 33d4964763..44cca6136c 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -879,7 +879,8 @@ byte-optimize-memq (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) diff --git a/src/fns.c b/src/fns.c index c3202495da..c840019456 100644 --- a/src/fns.c +++ b/src/fns.c @@ -5326,6 +5326,12 @@ syms_of_fns (void) DEFSYM (Qcursor_in_echo_area, "cursor-in-echo-area"); DEFSYM (Qwidget_type, "widget-type"); + DEFSYM (Qpure, "pure"); + DEFSYM (Qside_effect_free, "side-effect-free"); + DEFSYM (Qproper_list_p, "proper-list-p"); + Fput (Qproper_list_p, Qpure, Qt); + Fput (Qproper_list_p, Qside_effect_free, Qt); + DEFVAR_LISP ("overriding-plist-environment", Voverriding_plist_environment, doc: /* An alist that overrides the plists of the symbols which it lists. Used by the byte-compiler to apply `define-symbol-prop' during -- 2.20.1