From df4a6342fa439de49451f6c48c7bfe639e8a3d6e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Thu, 13 Apr 2023 14:08:28 +0200 Subject: [PATCH] ; reorder function effect-declaration lists * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns) (side-effect-and-error-free-fns, pure-fns): Group by file. --- lisp/emacs-lisp/byte-opt.el | 464 +++++++++++++++++++----------------- 1 file changed, 242 insertions(+), 222 deletions(-) diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index f8ebbaabd95..2bdd3375728 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -1636,200 +1636,231 @@ See Info node `(elisp) Integer Basics'." ;; I wonder if I missed any :-\) (let ((side-effect-free-fns - '(% * + - / /= 1+ 1- < <= = > >= abs acos - active-minibuffer-window all-threads - append aref ash asin atan - assoc-string assq - bare-symbol - base64-decode-string base64-encode-string base64url-encode-string - bool-vector-count-consecutive bool-vector-count-population - bool-vector-subsetp - boundp + '( + ;; alloc.c + make-bool-vector make-byte-code make-list make-record make-string + make-symbol make-vector + ;; buffer.c buffer-base-buffer buffer-chars-modified-tick buffer-file-name buffer-local-value buffer-local-variables buffer-modified-p - buffer-modified-tick buffer-name buffer-substring - buffer-substring-no-properties - buffer-text-pixel-size - byte-to-string byte-to-position - capitalize car-less-than-car car category-docstring - category-set-mnemonics cdr ceiling - char-after char-before char-category-set char-equal - char-syntax char-to-string char-width - compare-buffer-substrings compare-strings - concat condition-mutex condition-name - controlling-tty-p coordinates-in-window-p - copy-category-table copy-alist copy-hash-table copy-keymap - copy-marker copy-sequence copy-syntax-table - copysign cos - current-bidi-paragraph-direction - current-time-string current-time-zone - decode-char - decode-time default-boundp default-value - directory-name-p - documentation downcase - elt encode-char exp expt encode-time error-message-string - fboundp fceiling featurep ffloor - file-directory-p file-exists-p file-locked-p file-name-absolute-p - file-name-concat - file-newer-than-file-p file-readable-p file-symlink-p file-writable-p - float float-time floor - format format-message format-network-address format-time-string - frame-ancestor-p frame-bottom-divider-width - frame-char-height frame-char-width - frame-child-frame-border-width frame-internal-border-width - frame-native-height frame-native-width frame-first-window frame-focus - frame-fringe-width - frame-parameters frame-parameter frame-parent - frame-pointer-visible-p frame-position - frame-right-divider-width - frame-root-window frame-scale-factor - frame-scroll-bar-height frame-scroll-bar-width - frame-selected-window frame-terminal frame-text-cols frame-text-lines - frame-text-height frame-text-width - frame-total-cols frame-total-lines - frame-visible-p frame-window-state-change - fringe-bitmaps-at-pos - fround ftruncate - get gethash get-buffer get-buffer-process get-buffer-window - get-char-property get-char-property-and-overlay - get-display-property get-process - get-text-property get-unused-category get-variable-watchers - group-name - hash-table-count hash-table-rehash-size hash-table-rehash-threshold - hash-table-size hash-table-test hash-table-weakness - indirect-variable innermost-minibuffer-p intern-soft invisible-p isnan - keymap-parent keymap-prompt - ldexp - length length< length> length= - line-beginning-position line-end-position - line-number-at-pos line-pixel-height - local-variable-if-set-p local-variable-p locale-info - log logand logb logcount logior lognot logxor - lookup-image-map - make-bool-vector make-byte-code make-category-set make-char-table - make-hash-table make-keymap make-list make-record make-sparse-keymap - make-string make-symbol make-vector - marker-buffer marker-insertion-type marker-position max - match-beginning match-end - matching-paren - member memq memql min minibuffer-innermost-command-loop-p - minibuffer-selected-window minibuffer-window minibufferp - mod multibyte-char-to-unibyte mutex-name - next-char-property-change next-frame next-overlay-change - next-property-change next-single-char-property-change - next-single-property-change - next-window ngettext nth nthcdr number-to-string - object-intervals + buffer-modified-tick buffer-name get-buffer next-overlay-change overlay-buffer overlay-end overlay-get overlay-properties - overlay-start overlays-at overlays-in - posn-at-point posn-at-x-y position-symbol - pos-bol pos-eol - prefix-numeric-value - previous-char-property-change previous-frame previous-overlay-change - previous-property-change - previous-single-char-property-change previous-single-property-change - previous-window - prin1-to-string + overlay-start overlays-at overlays-in previous-overlay-change + ;; callint.c + prefix-numeric-value + ;; casefiddle.c + capitalize downcase upcase upcase-initials + ;; category.c + category-docstring category-set-mnemonics char-category-set + copy-category-table get-unused-category make-category-set + ;; character.c + char-width multibyte-char-to-unibyte string unibyte-char-to-multibyte + ;; charset.c + decode-char encode-char + ;; chartab.c + make-char-table + ;; data.c + % * + - / /= 1+ 1- < <= = > >= + aref ash bare-symbol + bool-vector-count-consecutive bool-vector-count-population + bool-vector-subsetp + boundp car cdr default-boundp default-value fboundp + get-variable-watchers indirect-variable + local-variable-if-set-p local-variable-p + logand logcount logior lognot logxor max min mod + number-to-string position-symbol string-to-number + subr-arity subr-name subr-native-lambda-list subr-type + symbol-function symbol-name symbol-plist symbol-value + symbol-with-pos-pos variable-binding-locus + ;; doc.c + documentation + ;; editfns.c + buffer-substring buffer-substring-no-properties + byte-to-position byte-to-string + char-after char-before char-equal char-to-string + compare-buffer-substrings + format format-message + group-name + line-beginning-position line-end-position ngettext pos-bol pos-eol + propertize region-beginning region-end string-to-char + user-full-name user-login-name + ;; fileio.c + car-less-than-car directory-name-p file-directory-p file-exists-p + file-name-absolute-p file-name-concat file-newer-than-file-p + file-readable-p file-symlink-p file-writable-p + ;; filelock.c + file-locked-p + ;; floatfns.c + abs acos asin atan ceiling copysign cos exp expt fceiling ffloor + float floor fround ftruncate isnan ldexp log logb round sin sqrt tan + truncate + ;; fns.c + append assq + base64-decode-string base64-encode-string base64url-encode-string + compare-strings concat copy-alist copy-hash-table copy-sequence elt + featurep get + gethash hash-table-count hash-table-rehash-size + hash-table-rehash-threshold hash-table-size hash-table-test + hash-table-weakness + length length< length= length> + line-number-at-pos locale-info make-hash-table + member memq memql nth nthcdr + object-intervals rassoc rassq reverse + string-as-multibyte string-as-unibyte string-bytes string-distance + string-equal string-lessp string-make-multibyte string-make-unibyte + string-search string-to-multibyte substring substring-no-properties + sxhash-eq sxhash-eql sxhash-equal sxhash-equal-including-properties + take vconcat + ;; frame.c + frame-ancestor-p frame-bottom-divider-width frame-char-height + frame-char-width frame-child-frame-border-width frame-focus + frame-fringe-width frame-internal-border-width frame-native-height + frame-native-width frame-parameter frame-parameters frame-parent + frame-pointer-visible-p frame-position frame-right-divider-width + frame-scale-factor frame-scroll-bar-height frame-scroll-bar-width + frame-text-cols frame-text-height frame-text-lines frame-text-width + frame-total-cols frame-total-lines frame-visible-p + frame-window-state-change next-frame previous-frame + tool-bar-pixel-width window-system + ;; fringe.c + fringe-bitmaps-at-pos + ;; keyboard.c + posn-at-point posn-at-x-y + ;; keymap.c + copy-keymap keymap-parent keymap-prompt make-keymap make-sparse-keymap + ;; lread.c + intern-soft read-from-string + ;; marker.c + copy-marker marker-buffer marker-insertion-type marker-position + ;; minibuf.c + active-minibuffer-window assoc-string innermost-minibuffer-p + minibuffer-innermost-command-loop-p minibufferp + ;; print.c + error-message-string prin1-to-string + ;; process.c + format-network-address get-buffer-process get-process process-buffer process-coding-system process-command process-filter - process-id process-inherit-coding-system-flag - process-mark process-name process-plist - process-query-on-exit-flag process-running-child-p process-sentinel - process-thread process-tty-name process-type - propertize - rassq rassoc read-from-string - regexp-quote region-beginning region-end reverse round - sin + process-id process-inherit-coding-system-flag process-mark + process-name process-plist process-query-on-exit-flag + process-running-child-p process-sentinel process-thread + process-tty-name process-type + ;; search.c + match-beginning match-end regexp-quote + ;; sqlite.c sqlite-columns sqlite-more-p sqlite-version - sqrt string string-bytes string-distance string-equal string-lessp - string-search string-to-char - string-to-number string-to-syntax subr-arity subr-name - substring substring-no-properties - sxhash-equal sxhash-eq sxhash-eql sxhash-equal-including-properties - symbol-function symbol-name symbol-plist symbol-value - symbol-with-pos-pos + ;; syntax.c + char-syntax copy-syntax-table matching-paren string-to-syntax syntax-class-to-char - string-make-unibyte - string-make-multibyte string-as-multibyte string-as-unibyte - string-to-multibyte - subr-native-lambda-list subr-type - tab-bar-height - take tan - terminal-list terminal-live-p terminal-name + ;; term.c + controlling-tty-p tty-display-color-cells tty-display-color-p + tty-top-frame tty-type + ;; terminal.c + frame-terminal terminal-list terminal-live-p terminal-name terminal-parameter terminal-parameters + ;; textprop.c + get-char-property get-char-property-and-overlay get-text-property + next-char-property-change next-property-change + next-single-char-property-change next-single-property-change + previous-char-property-change previous-property-change + previous-single-char-property-change previous-single-property-change text-properties-at text-property-any text-property-not-all - thread-live-p thread-name - time-add time-convert time-equal-p time-less-p time-subtract - tool-bar-height tool-bar-pixel-width truncate - tty-display-color-cells tty-display-color-p tty-top-frame tty-type - unibyte-char-to-multibyte upcase upcase-initials user-full-name - user-login-name - variable-binding-locus vconcat - window-at window-body-height - window-body-width window-buffer window-dedicated-p window-display-table - window-combination-limit window-configuration-equal-p window-frame - window-fringes window-hscroll - window-left-child window-left-column window-margins window-minibuffer-p - window-next-buffers window-next-sibling window-new-normal - window-new-total window-normal-size window-parameter window-parameters - window-parent window-point window-prev-buffers - window-prev-sibling window-scroll-bars - window-start window-system window-text-height - window-text-pixel-size - window-top-child window-top-line - window-total-height window-total-width window-use-time window-vscroll - )) + ;; thread.c + all-threads condition-mutex condition-name mutex-name thread-live-p + thread-name + ;; timefns.c + current-time-string current-time-zone decode-time encode-time + float-time format-time-string time-add time-convert time-equal-p + time-less-p time-subtract + ;; window.c + coordinates-in-window-p frame-first-window frame-root-window + frame-selected-window get-buffer-window minibuffer-selected-window + minibuffer-window next-window previous-window window-at + window-body-height window-body-width window-buffer + window-combination-limit window-configuration-equal-p + window-dedicated-p window-display-table window-frame window-fringes + window-hscroll window-left-child window-left-column window-margins + window-minibuffer-p window-new-normal window-new-total + window-next-buffers window-next-sibling window-normal-size + window-parameter window-parameters window-parent window-point + window-prev-buffers window-prev-sibling window-scroll-bars + window-start window-text-height window-top-child window-top-line + window-total-height window-total-width window-use-time window-vscroll + ;; xdisp.c + buffer-text-pixel-size current-bidi-paragraph-direction + get-display-property invisible-p line-pixel-height lookup-image-map + tab-bar-height tool-bar-height window-text-pixel-size + )) (side-effect-and-error-free-fns - '(arrayp atom - bare-symbol-p bobp bolp bool-vector bool-vector-p - buffer-list buffer-live-p buffer-size buffer-string bufferp - byte-code-function-p byteorder - car-safe case-table-p category-table category-table-p cdr-safe - char-or-string-p char-table-p characterp - charsetp commandp condition-variable-p cons consp - current-buffer current-case-table current-column current-global-map - current-idle-time current-indentation current-input-mode - current-local-map current-message current-minor-mode-maps - current-thread current-time + '( + ;; alloc.c + bool-vector cons list make-marker purecopy record vector + ;; buffer.c + buffer-list buffer-live-p current-buffer overlay-lists overlayp + ;; casetab.c + case-table-p current-case-table standard-case-table + ;; category.c + category-table category-table-p make-category-table + standard-category-table + ;; character.c + characterp max-char + ;; charset.c + charsetp + ;; data.c + arrayp atom bare-symbol-p bool-vector-p bufferp byte-code-function-p + byteorder car-safe cdr-safe char-or-string-p char-table-p + condition-variable-p consp eq floatp indirect-function + integer-or-marker-p integerp keywordp listp markerp + module-function-p multibyte-string-p mutexp natnump nlistp null + number-or-marker-p numberp recordp remove-pos-from-symbol + sequencep stringp subr-native-elisp-p subrp symbol-with-pos-p symbolp + threadp type-of user-ptrp vector-or-char-table-p vectorp wholenump + ;; editfns.c + bobp bolp buffer-size buffer-string current-message emacs-pid + eobp eolp following-char gap-position gap-size group-gid + group-real-gid mark-marker point point-marker point-max point-min + position-bytes preceding-char system-name + user-real-login-name user-real-uid user-uid + ;; emacs.c + invocation-directory invocation-name + ;; eval.c + commandp functionp + ;; fileio.c default-file-modes - emacs-pid eobp eolp eq equal eql - floatp following-char - frame-list frame-live-p framep functionp - gap-position gap-size - group-gid group-real-gid - hash-table-p - identity imagep indirect-function integerp integer-or-marker-p - invocation-directory invocation-name - keymapp keywordp - last-nonminibuffer-frame list listp - long-line-optimizations-p - make-category-table make-marker mark-marker markerp max-char - minibuffer-contents minibuffer-contents-no-properties - minibuffer-depth minibuffer-prompt minibuffer-prompt-end - module-function-p multibyte-string-p mutexp - natnump nlistp null number-or-marker-p numberp - old-selected-frame overlay-lists overlayp - point point-marker point-min point-max position-bytes - preceding-char - processp process-list - proper-list-p purecopy - recent-keys record recordp recursion-depth - remove-pos-from-symbol - safe-length secure-hash-algorithms - selected-frame selected-window sequencep signal-names + ;; fns.c + eql equal hash-table-p identity proper-list-p safe-length + secure-hash-algorithms + ;; frame.c + frame-list frame-live-p framep last-nonminibuffer-frame + old-selected-frame selected-frame visible-frame-list + ;; image.c + imagep + ;; indent.c + current-column current-indentation + ;; keyboard.c + current-idle-time current-input-mode recent-keys recursion-depth + this-command-keys this-command-keys-vector this-single-command-keys + this-single-command-raw-keys + ;; keymap.c + current-global-map current-local-map current-minor-mode-maps keymapp + ;; minibuf.c + minibuffer-contents minibuffer-contents-no-properties minibuffer-depth + minibuffer-prompt minibuffer-prompt-end + ;; process.c + process-list processp signal-names waiting-for-user-input-p + ;; sqlite.c sqlite-available-p sqlitep - standard-case-table standard-category-table standard-syntax-table - stringp - subr-native-elisp-p subrp - symbol-with-pos-p symbolp - syntax-table syntax-table-p system-name - this-command-keys this-command-keys-vector this-single-command-keys - this-single-command-raw-keys threadp type-of - user-ptrp - user-real-login-name user-real-uid user-uid - vector vector-or-char-table-p vectorp visible-frame-list - waiting-for-user-input-p - wholenump window-configuration-p window-live-p - window-valid-p windowp))) + ;; syntax.c + standard-syntax-table syntax-table syntax-table-p + ;; thread.c + current-thread + ;; timefns.c + current-time + ;; window.c + selected-window window-configuration-p window-live-p window-valid-p + windowp + ;; xdisp.c + long-line-optimizations-p + ))) (while side-effect-free-fns (put (car side-effect-free-fns) 'side-effect-free t) (setq side-effect-free-fns (cdr side-effect-free-fns))) @@ -1854,45 +1885,34 @@ See Info node `(elisp) Integer Basics'." ;; values if a marker is moved. (let ((pure-fns - '(concat regexp-quote - string-to-char string-to-syntax symbol-name - eq eql - = /= < <= >= > min max - + - * / % mod abs ash 1+ 1- sqrt - logand logior lognot logxor logcount - copysign isnan ldexp float logb - floor ceiling round truncate - ffloor fceiling fround ftruncate - string-equal string-lessp - string-search - consp atom listp nlistp proper-list-p - sequencep arrayp vectorp stringp bool-vector-p hash-table-p recordp - multibyte-string-p char-table-p vector-or-char-table-p - threadp mutexp condition-variable-p - null - numberp integerp floatp natnump characterp - integer-or-marker-p number-or-marker-p char-or-string-p - symbolp keywordp bufferp markerp - bare-symbol remove-pos-from-symbol - type-of - identity - - ;; The following functions are pure up to mutation of their - ;; arguments. This is pure enough for the purposes of - ;; constant folding, but not necessarily for all kinds of - ;; code motion. - car cdr car-safe cdr-safe nth nthcdr take - equal - length safe-length - memq memql member - ;; `assoc' and `assoc-default' are excluded since they are - ;; impure if the test function is (consider `string-match'). - assq rassq rassoc - aref elt - length< length> length= string-bytes string-distance - base64-decode-string base64-encode-string base64url-encode-string - bool-vector-subsetp - bool-vector-count-population bool-vector-count-consecutive + '( + ;; character.c + characterp + ;; data.c + % * + - / /= 1+ 1- < <= = > >= aref arrayp ash atom bare-symbol + bool-vector-count-consecutive bool-vector-count-population + bool-vector-p bool-vector-subsetp + bufferp car car-safe cdr cdr-safe char-or-string-p char-table-p + condition-variable-p consp eq floatp integer-or-marker-p integerp + keywordp listp logand logcount logior lognot logxor markerp max min + mod multibyte-string-p mutexp natnump nlistp null number-or-marker-p + numberp recordp remove-pos-from-symbol sequencep stringp symbol-name + symbolp threadp type-of vector-or-char-table-p vectorp + ;; editfns.c + string-to-char + ;; floatfns.c + abs ceiling copysign fceiling ffloor float floor fround ftruncate + isnan ldexp logb round sqrt truncate + ;; fns.c + assq base64-decode-string base64-encode-string base64url-encode-string + concat elt eql equal hash-table-p identity length length< length= + length> member memq memql nth nthcdr proper-list-p rassoc rassq + safe-length string-bytes string-distance string-equal string-lessp + string-search take + ;; search.c + regexp-quote + ;; syntax.c + string-to-syntax ))) (while pure-fns (put (car pure-fns) 'pure t) -- 2.39.2