[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Predicate for true lists
From: |
Stefan Monnier |
Subject: |
Re: Predicate for true lists |
Date: |
Tue, 09 Apr 2019 11:33:59 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
> IWBNI this was also done for proper-list-p:
>
> (byte-compile '(proper-list-p '(0)))
> ;; => (byte-code "\300\301!\207" [proper-list-p (0)] 2)
>
> Is the following kosher?
> @@ -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)
I think this is currently right.
> @@ -1160,8 +1161,8 @@ byte-optimize-set
> make-list make-string make-symbol marker-buffer max member memq min
> minibuffer-selected-window minibuffer-window
> mod multibyte-char-to-unibyte next-window nth nthcdr number-to-string
> - parse-colon-path plist-get plist-member
> - prefix-numeric-value previous-window prin1-to-string propertize
> + parse-colon-path plist-get plist-member prefix-numeric-value
> + previous-window prin1-to-string proper-list-p propertize
> degrees-to-radians
> radians-to-degrees rassq rassoc read-from-string regexp-quote
> region-beginning region-end reverse round
I think it'd be better to add a `side-effect-free` property rather than
add to this list. We should be moving away from having this list in
byte-opt.el since that info can also be used when byte-opt is not loaded.
> diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
> index 8bbe6292d9..0e953dc96b 100644
> --- a/lisp/emacs-lisp/bytecomp.el
> +++ b/lisp/emacs-lisp/bytecomp.el
> @@ -3566,6 +3566,7 @@ byte-defop-compiler-1
>
> ;;####(byte-defop-compiler move-to-column 1)
> (byte-defop-compiler-1 interactive byte-compile-noop)
> +(byte-defop-compiler-1 proper-list-p 1)
I don't think this is needed.
Stefan
Re: Predicate for true lists, Basil L. Contovounesios, 2019/04/09