;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\207" [require bytecomp macroexp] 2) #@26 (fn FORMAT &rest ARGS) (defalias 'byte-compile-log-lap-1 #[385 "\300\301\302\303C\303C\304\305\306\307\310\311\"\312\"\313\314%\"\266\202#!\207" [byte-compile-log-1 apply format-message nil mapcar make-byte-code 257 "\211:\204\2119\203\304\305\306!\"\203\307\310\306!\311\"!\207\207\300@\240\250\203+\312\313\300\242\"\210\300\242\314=\2039\300\240\210\202r\301\300\242\n>\203HAA@\202W\300\242 >\203UA@\202WA\240\210\300\306\300\242!\240\210\304\315\300\242\"\203r\300\307\310\300\242\311\"!\240\210\300\242\316=\203}\300\317\240\210\211A\320=\203\216\300\242\321>\204\216\300\242\207\322\323\300\242\301\242#\207" vconcat vector [byte-goto-ops byte-constref-ops string-match "^byte-" symbol-name intern substring 5 error "non-symbolic byte-op %s" TAG "^byte-." constant const 0 (unbind call const) format "(%s %s)"] 6 "\n\n(fn ARG)"] 16 (#$ . 479)]) #@33 (fn FORMAT-STRING &rest ARGS) (defalias 'byte-compile-log-lap '(macro . #[385 "\300\301\302BBE\207" [and (memq byte-optimize-log '(t byte)) byte-compile-log-lap-1] 7 (#$ . 1369)])) (put 'inline 'byte-optimizer 'byte-optimize-inline-handler) #@65 byte-optimize-handler for the `inline' special-form. (fn FORM) (defalias 'byte-optimize-inline-handler #[257 "\300\301\302A\"B\207" [progn mapcar #[257 "\211\242\2119\2037\211\236A\2041\302!\2037\211 \236A\2047\211K\211\262:\203+\211@\303=\2047\304!\2047\305!\2028\207" [byte-compile-function-environment byte-compile-macro-environment fboundp macro subrp byte-compile-inline-expand] 4 "\n\n(fn SEXP)"]] 5 (#$ . 1620)]) #@13 (fn FORM) (defalias 'byte-compile-inline-expand #[257 "\211@\211\236A\211\206\fKC\211\242\211\242\301=\262\203)\302\242!\210\211K\206'\236A\240\210\303\242\2048\304\305\"\210\202\236\242:\203r\242@\211\301=\203S\306\307\242A@#\202m\211\310=\204_\211\311=\203l$\202m\262\202\236\2429\203\216\242\312=\204\212\313\242AB!\202\236\202\236\314\242!\203\235\242AB\202\236\262\207" [byte-compile-function-environment autoload autoload-do-load #[1028 "\211\242=\204!\211\242@\203\301\202\302=\204!\303!\210KAB\207\211\242=\203/\304\242D\2025\305\306\242!!\211\242\304=\203H\307A@AB!\202N\310\311\"\210\207" [lexical-binding closure lambda byte-compile function byte-compile-preprocess byte-compile--reify-function byte-compile-unfold-lambda byte-compile-warn "Inlining closure %S failed"] 8 "\n\n(fn FORM NAME LOCALFN FN)"] byte-compile-warn "attempt to inline `%s' before it was defined" error "File `%s' didn't define `%s'" lambda closure t byte-compile-inline-expand byte-code-function-p] 11 (#$ . 2062)]) #@28 (fn FORM &optional NAME) (defalias 'byte-compile-unfold-lambda #[513 "\211\204\305\262@AA@AA\306\211\211@;\203#A\203#A\262@:\2035@@\307=\2035A\262\203\305@\310=\203[\203J\311\312 \"\210A\204U\311\313 \"\210\314\262\202\276@\315=\203A\204m\311\316 \"\210AA\203y\311\317 \"\210\314\262\202\276\203\231@\205\216\320BDB\262\306\262\202\276\204\260\204\260\321\322 \"\210\306\262\323\262\202\276@@DB\262A\262A\262\2025\203\332\323=\204\325\321\324 \"\210\202 \211\203\347\325\237BB\202\352\326B\203 \327>\203\314\330\211\331\332\333\334 !\334!#!\210+\211\262\207" [byte-optimize byte-optimize-log print-length print-level print-escape-newlines "anonymous lambda" nil interactive &optional error "&optional found after &rest in %s" "nothing after &optional in %s" t &rest "nothing after &rest in %s" "multiple vars after &rest in %s" list byte-compile-warn "attempt to open-code `%s' with too few arguments" too-few "attempt to open-code `%s' with too many arguments" let progn (t source) 4 byte-compile-log-1 format-message " %s ==> %s" prin1-to-string] 16 (#$ . 3149)]) #@24 (fn FORM FOR-EFFECT) (defalias 'byte-optimize-form-code-walker #[514 "\242\306:\204!\205\2069?\206\307=?\205\205\202\205\310=\203DAA\2035\311\312\313!\"\210A@\205\205?\205\205\202\205\242\314=\203a\315!\211=\203X\202\\\316\"\262\202\205\242\317=\203l\202\205\320\267\202\370\321\322A@\"\323AA\"BB\202\205\321\324\325\326\327\330 !\331\"\332\333%A\"B\202\205AA\203\256\334\323A\"!\202\205\335A@\"\202\205AA\203\320\336\335A@\"\323AA\307\"BB\202\205\335A@\"\202\205\323A\"B\202\205\335A@\306\"\323AA\"BB\202\205G\337W\203\311\340!\210\335A@\306\"\335\3418\"\323\337\233\"BBB\202\205\203q\342A!\211\203=\211\335@\"\240\204=\211A\262\202'A\203a\211\204a \203a\n\343>\203a\307\344\211\345\346\347\313!\"!\210+\211\205l\321\335\"\237B\262\202\205\321\335A\"B\202\205\311\350\313!\"\210\306\202\205\202\2059\203\225\202\205\351A@\335\3418\"\321\324\325\352\327\330 !\353\"\332\333%\337 \233\"BBB\202\205\335A@\"AABB\202\205\335A@\306\"9\203\333AA\202\342\323A\"BB\202\205\336\306\321\335A\"BB\202\205\202\205\354!\203 \321\335A\"B\202\2059\204\311\355\313!\"\210\202\205\203c\356N\211\262\203c\204;\211\357=\204;\311\360\313!\"\210\202c \203U\n\343>\203U\307\344\211\345\346\361\313!\"!\210+\335\362\363A\364\"B\307\"\202\205\321\335A\"\365N\203\200\366!\203\200\310\367\321\370\"\"D\202\203B\262\207" [byte-compile-delete-errors byte-optimize byte-optimize-log print-length print-level print-escape-newlines nil t quote byte-compile-warn "malformed quote form: `%s'" prin1-to-string lambda byte-compile-unfold-lambda byte-optimize-form-code-walker closure #s(hash-table size 19 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (let 114 let* 114 cond 135 progn 158 prog1 183 save-excursion 217 save-restriction 217 save-current-buffer 217 with-output-to-temp-buffer 227 if 247 and 287 or 287 interactive 380 function 392 condition-case 396 unwind-protect 442 catch 457 ignore 487 internal-make-closure 500)) mapcar #[257 "\2119\203\207\211AA\203\300\301\302!\"\210\211@\303A@\304\"D\207" [byte-compile-warn "malformed let binding: `%s'" prin1-to-string byte-optimize-form nil] 5 "\n\n(fn BINDING)"] byte-optimize-body make-byte-code 257 "\211:\203\301@\302\"\303A\300\"B\207\304\305\306!\"\210\207" vconcat vector [byte-optimize-form nil byte-optimize-body byte-compile-warn "malformed cond form: `%s'" prin1-to-string] 5 "\n\n(fn CLAUSE)" macroexp-progn byte-optimize-form prog1 3 "too few arguments for `if'" 2 reverse (t source) 4 byte-compile-log-1 format-message " all subforms of %s called for effect; deleted" "misplaced interactive spec: `%s'" condition-case "\211@\301A\300\"B\207" [byte-optimize-body] byte-code-function-p "`%s' is a malformed function" side-effect-free error-free "value returned from %s is unused" " %s called for effect; deleted" progn append (nil) pure byte-optimize-all-constp apply eval byte-compile--use-old-handlers] 14 (#$ . 4320)]) #@72 Non-nil if all elements of LIST satisfy `macroexp-const-p'. (fn LIST) (defalias 'byte-optimize-all-constp #[257 "\300\203\211\203\301@!\204\302\262A\262\202\211\207" [t macroexp-const-p nil] 4 (#$ . 7430)]) #@73 The source-level pass of the optimizer. (fn FORM &optional FOR-EFFECT) (defalias 'byte-optimize-form #[513 "\305\"\262\306\211:\203Q@9\203Q\307@\310\"\211\262\203Q!\211\262=\204Q\203G \311>\203G\312\313\211\314\315\316\317!\317!#!\210+\320\"\262\211\202R\207" [byte-optimize byte-optimize-log print-length print-level print-escape-newlines byte-optimize-form-code-walker nil function-get byte-optimizer (t source) t 4 byte-compile-log-1 format-message " %s ==> %s" prin1-to-string byte-optimize-form] 10 (#$ . 7657)]) #@29 (fn FORMS ALL-FOR-EFFECT) (defalias 'byte-optimize-body #[514 "\300\211\211\2030\206A\262@\205\301@\"\262\211\204$\204)\211B\262A\262\202\237\207" [nil byte-optimize-form] 9 (#$ . 8212)]) #@72 Return non-nil if FORM always evaluates to a non-nil value. (fn FORM) (defalias 'byte-compile-trueconstp #[257 "\211\242\300=\203\301A!@\262\202\211:\203\"\211@\211\302=\205!A@\207\2119?\2061\211\303=\2061\304!\207" [progn last quote t keywordp] 4 (#$ . 8432)]) (put 'byte-compile-trueconstp 'byte-optimizer 'byte-compile-inline-expand) #@68 Return non-nil if FORM always evaluates to a nil value. (fn FORM) (defalias 'byte-compile-nilconstp #[257 "\211\242\300=\203\301A!@\262\202\211:\203#\211@\211\302=\205\"A@?\207\2119\204*\303\207\211?\207" [progn last quote nil] 4 (#$ . 8788)]) (put 'byte-compile-nilconstp 'byte-optimizer 'byte-compile-inline-expand) #@13 (fn FORM) (defalias 'byte-optimize-associative-math #[257 "\300\211A\211\203$\211@\250\203\211@B\262\202\211@B\262\211A\262\202A\203O\203G@\301@\"A\203A@\237B\202C@E\202P\301@\"\202P\207" [nil apply] 8 (#$ . 9123)]) (defconst byte-opt--portable-max 536870911) (defconst byte-opt--portable-min (byte-code "\301Z\207" [byte-opt--portable-max -1] 2)) #@10 (fn N) (defalias 'byte-opt--portable-numberp #[257 "\211\247\2055X\2055\211 X\2055\211\302!U\2055\303!\2054\211\304U\2054\30512\306!\304W0\2024\210\307?\207" [byte-opt--portable-min byte-opt--portable-max floor floatp 0 (error) / nil] 4 (#$ . 9511)]) #@22 (fn OP ACCUM ARGS) (defalias 'byte-opt--arith-reduce #[771 "\300!\203<\301\300@!\203;\300\3021@\"0\202\210\301\211\262!\203;\211\303!@\"U\203;\211\262A\262\202\210B\207" [byte-opt--portable-numberp nil (error) float] 8 (#$ . 9783)]) #@13 (fn FORM) (defalias 'byte-optimize-plus #[257 "\300\301\302\303\301A#\"\211\204\301\202m\211A\204!\211@\247\203!\211@\202m\211AA\204_\304>\2043\305>\203_\211@A@\306>\211\203C\202D\203L\202M\304=\203W\307\202X\310D\266\205\202m\211A\232\203j\202m\303B\207" [remq 0 byte-opt--arith-reduce + 1 -1 (1 -1) 1+ 1-] 9 (#$ . 10048)]) #@13 (fn FORM) (defalias 'byte-optimize-minus #[257 "\211A\211A\203 \300\301@A#\211\262A\204 \211@\247\203 \211@\202z\302A>\2036\211@\303\302A\"\2063\302CB\262\211A\304\232\203D\305@D\202z\211A\306\232\203R\307@D\202z\211A\204l\310@!\203l\310@[!\203l\211@[\202z\211A\232\203w\202z\301B\207" [byte-opt--arith-reduce - 0 remq (1) 1- (-1) 1+ byte-opt--portable-numberp] 6 (#$ . 10414)]) #@13 (fn FORM) (defalias 'byte-optimize-1+ #[257 "\211A\211A\204\211@\300!\203\300T!\203\211T\262\210\210\207" [byte-opt--portable-numberp] 5 (#$ . 10830)]) #@13 (fn FORM) (defalias 'byte-optimize-1- #[257 "\211A\211A\204\211@\300!\203\300S!\203\211S\262\210\210\207" [byte-opt--portable-numberp] 5 (#$ . 10999)]) #@13 (fn FORM) (defalias 'byte-optimize-multiply #[257 "\300\301\302\303\301A#\"\211\204\301\202/\211A\204!\211@\247\203!\211@\202/\211A\232\203,\202/\303B\207" [remq 1 byte-opt--arith-reduce *] 7 (#$ . 11168)]) #@13 (fn FORM) (defalias 'byte-optimize-divide #[257 "\211A\211A\203 \300\301@A#\211\262A\204 \211@\247\203 \211@\202D\302A>\2036\211@\303\302A\"\2063\302CB\262\211A\232\203A\202D\301B\207" [byte-opt--arith-reduce / 1 remq] 6 (#$ . 11395)]) #@13 (fn FORM) (defalias 'byte-optimize-binary-predicate #[257 "\300A@!\203\301\233\203\207\300\3028!\203$\3031\"\304\305!D0\207\210\207\211@\3028A@E\207" [macroexp-const-p 3 2 (error) quote eval] 4 (#$ . 11656)]) #@13 (fn FORM) (defalias 'byte-optimize-predicate #[257 "\300A\211\203\203\301@!\262\211A\262\202\203.\3021)\303\304!D0\202/\210\202/\207" [t macroexp-const-p (error) quote eval] 6 (#$ . 11885)]) #@13 (fn FORM) (defalias 'byte-optimize-identity #[257 "\211A\203\211AA\204\211A@\207\300\301AGAG\302U\203 \303\202!\304#\210\207" [byte-compile-warn "identity called with %d arg%s, but requires 1" 1 "" "s"] 6 (#$ . 12103)]) #@47 Whether EXPR is a constant symbol. (fn EXPR) (defalias 'byte-optimize--constant-symbol-p #[257 "\300!\205\n\301!9\207" [macroexp-const-p eval] 3 (#$ . 12339)]) #@13 (fn FORM) (defalias 'byte-optimize-equal #[257 "\300AG\301U\203$\302A@!\204\302\3018!\203 \303AB\202%\202%!\207" [byte-optimize-binary-predicate 2 byte-optimize--constant-symbol-p eq] 5 (#$ . 12509)]) #@13 (fn FORM) (defalias 'byte-optimize-member #[257 "\211AG\300U\2035\301A@!\204/\3008\302!\205*\303!\211<\205(\304\305\306\">?\262\262\2034\307AB\207\207\207" [2 byte-optimize--constant-symbol-p macroexp-const-p eval nil mapcar symbolp memq] 7 (#$ . 12730)]) #@13 (fn FORM) (defalias 'byte-optimize-memq #[257 "\211AG\300U\204\301\302AGAG\303U\203\304\202\305#\207\3008\211\242\306=\203L\211A@\211\262<\203L\211G\303U\203L\307\310\311\312A@\306@DE!\306DE!\262\210\311!\207" [2 byte-compile-warn "memq called with %d arg%s, but requires 2" 1 "" "s" quote byte-optimize-and and byte-optimize-predicate eq] 9 (#$ . 13007)]) #@59 Merge adjacent constant arguments to `concat'. (fn FORM) (defalias 'byte-optimize-concat #[257 "\211A\300\203h\300\211\203?\301@!\203?\302@!\262\211;\2043\211<\204*\303!\203?\300\304\305\">\204?\211B\262A\262\202 \203U\306\307\237\"\211G\310U\204T\211B\262\210\266\203@B\262A\262\202\211GAGU\203u\202y\307\237B\207" [nil macroexp-const-p eval vectorp mapcar characterp apply concat 0] 9 (#$ . 13391)]) (byte-code "\300\301\302\303#\210\300\304\302\305#\210\300\306\302\307#\210\300\310\302\307#\210\300\311\302\312#\210\300\313\302\314#\210\300\315\302\316#\210\300\317\302\320#\210\300\321\302\322#\210\300\323\302\322#\210\300\324\302\325#\210\300\326\302\325#\210\300\327\302\330#\210\300\331\302\330#\210\300\332\302\325#\210\300\333\302\325#\210\300\334\302\335#\210\300\336\302\335#\210\300\337\302\335#\210\300\340\302\335#\210\300\341\302\342#\210\300\343\302\344#\210\300\345\302\335#\210\300\346\302\335#\210\300\347\302\335#\210\300\350\302\335#\210\300\351\302\335#\210\300\352\302\335#\210\300\353\302\335#\210\300\354\302\335#\210\300\355\302\335#\210\300\356\302\335#\210\300\357\302\335#\210\300\360\302\335#\210\300\361\302\335#\210\300\362\302\335#\210\300\363\302\335#\210\300\364\302\335#\210\300\365\302\335#\210\300\366\302\367#\210\300\370\302\371#\207" [put identity byte-optimizer byte-optimize-identity memq byte-optimize-memq memql byte-optimize-member member + byte-optimize-plus * byte-optimize-multiply - byte-optimize-minus / byte-optimize-divide max byte-optimize-associative-math min = byte-optimize-binary-predicate eq eql byte-optimize-equal equal string= string-equal < byte-optimize-predicate > <= >= 1+ byte-optimize-1+ 1- byte-optimize-1- not null consp listp symbolp stringp string< string-lessp proper-list-p logand logior logxor lognot car cdr car-safe cdr-safe concat byte-optimize-concat quote byte-optimize-quote] 4) #@13 (fn FORM) (defalias 'byte-optimize-quote #[257 "\211A@:\204A\211A@9\203B\211\301\302>\206<\303!\206<\211\205<>\206<\304!\205<\3051:\211JL\210\3010\202<\210\306\266\202\204B\207\211A@\207" [byte-compile-const-variables nil (nil t) keywordp boundp (setting-constant) t] 5 (#$ . 15301)]) #@13 (fn FORM) (defalias 'byte-optimize-and #[257 "\211A?\2066\300>\203)\301\302\303!\211\262A@\203!A\262\202\300\241\210!\300E\207\211AA\2043\211A@\207\304!\207" [nil progn byte-optimize-and copy-sequence byte-optimize-predicate] 6 (#$ . 15610)]) #@13 (fn FORM) (defalias 'byte-optimize-or #[257 "\300\301\"\262\211\211A\211\262A\203\\\211@\211\242\302=\203#\303A!@\262\202\211:\2038\211@\211\304=\2053A@\266\202\202I\2119?\206G\211\305=\206G\306!\262\203\307!\262\211@>\301\241\262\202AA\203h\310!\202kA@\207" [remq nil progn last quote t keywordp copy-sequence byte-optimize-predicate] 6 (#$ . 15875)]) #@13 (fn FORM) (defalias 'byte-optimize-cond #[257 "\300\300A\236\211\262\203\301\"\262\202\301\300\"\262\262\211A\211\262\203\323\211@\242\211\242\302=\2039\303A!@\262\202(\211:\203N\211@\211\304=\205IA@\266\202\202_\2119?\206]\211\305=\206]\306!\262\203\211\211A=\203r\302@B\262\202\203\211A\203\203\307!\262\211@>\300\241\210\300\262\202\211@:\203\211@@\211\242\302=\203\243\303A!@\262\202\222\211:\203\271\211@\211\304=\205\264A@?\266\202\202\310\2119\204\304\300\262\202\310\211?\262\203\211@\300\241\210\202\210\211\242\310=\203\373\211A\211@:\203\371\211@A\204\371\311@@\312@AAB!E\202\372\207\207" [nil remq progn last quote t keywordp copy-sequence cond or byte-optimize-cond] 7 (#$ . 16266)]) #@13 (fn FORM) (defalias 'byte-optimize-if #[257 "\211A@\211\242\300=\2038\301!\2038\211AA\204$\302\303A@AABB!\202\304!\302\303\305!@AABB!C\244\202\211\211\242\300=\203J\305A!@\262\2029\211:\203_\211@\211\306=\205ZA@\266\202\202p\2119?\206n\211\307=\206n\310!\262\203|\300\3118E\202\211\211\242\300=\203\216\305A!@\262\202}\211:\203\244\211@\211\306=\205\237A@?\266\202\202\263\2119\204\257\312\262\202\263\211?\262\203\300\300\313\233BB\202\3118\203\333\313\233\314\232\203\327\303\3118E\202\202\3138\204\347\315\233\203\303:\203@\316>\203G\311U\203A@\202\317D\315\233\203\300\313\233B\202\3138E\202\300\312E\207" [progn proper-list-p byte-optimize-if if butlast last quote t keywordp 2 nil 3 (nil) 4 (not null) not] 7 (#$ . 17037)]) #@13 (fn FORM) (defalias 'byte-optimize-while #[257 "\211G\300W\203 \301\302!\210\211A@\205\211\207" [2 byte-compile-warn "too few arguments for `while'"] 3 (#$ . 17861)]) (byte-code "\300\301\302\303#\210\300\304\302\305#\210\300\306\302\307#\210\300\310\302\311#\210\300\312\302\313#\210\300\314\302\315#\210\300\316\302\315#\210\300\317\302\315#\207" [put and byte-optimizer byte-optimize-and or byte-optimize-or cond byte-optimize-cond if byte-optimize-if while byte-optimize-while /= byte-compile-negation-optimizer atom nlistp] 4) #@13 (fn FORM) (defalias 'byte-optimize-funcall #[257 "\211A@\211\242\300>\203\211A@AAB\202\207" ['function] 4 (#$ . 18404)]) #@13 (fn FORM) (defalias 'byte-optimize-apply #[257 "\211A@GS8\211\203\211\242\300=\203=\211A@<\2032\301AA!A\237\302D\244\303\304A@\"\244\262\202:\305\306\307!\"\210\310\206>\207" [quote reverse funcall mapcar #[257 "\300D\207" [quote] 3 "\n\n(fn X)"] byte-compile-warn "last arg to apply can't be a literal atom: `%s'" prin1-to-string nil] 8 (#$ . 18539)]) (byte-code "\300\301\302\303#\210\300\304\302\305#\210\300\306\302\307#\210\300\310\302\307#\207" [put funcall byte-optimizer byte-optimize-funcall apply byte-optimize-apply let byte-optimize-letX let*] 4) #@13 (fn FORM) (defalias 'byte-optimize-letX #[257 "\211A@\204\f\300AAB\207\3018\204\302\233\203\207\211@\303=\203/\304\305\306\307\306\310A@\"\"\311#\207\312A@!\313\312A!@A@\314F\207" [progn 2 3 let append (progn) mapcar car-safe cdr-safe (nil) reverse let* nil] 8 (#$ . 19122)]) (put 'nth 'byte-optimizer 'byte-optimize-nth) #@13 (fn FORM) (defalias 'byte-optimize-nth #[257 "\300!\301U\203*\211A@\302>\203&\303A@\304U\203\3058\202$\306\3058DD\207\307!\207\207" [safe-length 3 (0 1) car 0 2 cdr byte-optimize-predicate] 5 (#$ . 19466)]) (put 'nthcdr 'byte-optimizer 'byte-optimize-nthcdr) #@13 (fn FORM) (defalias 'byte-optimize-nthcdr #[257 "\300!\301U\2030\211A@\302>\203,\211A@\3038\262\211S\211\262\304Y\203*\305D\262\202\207\306!\207\207" [safe-length 3 (0 1 2) 2 0 cdr byte-optimize-predicate] 4 (#$ . 19743)]) (put 'set 'byte-optimizer 'byte-optimize-set) #@13 (fn FORM) (defalias 'byte-optimize-set #[257 "\211\243\242\211\242\300=\203\211A:\203\301A@AABB\202G\211\242\302=\203F\211A\242\211\262\242\300=\203F\211A:\203F\303A@\301A@AABBE\202G\207" [quote setq make-local-variable progn] 7 (#$ . 20033)]) (byte-code "\300\301\203\302@\303\304#\210A\262\202\211\203&\302@\303\305#\210\211A\262\202\266\306\211\203;\302@\307\304#\210\211A\262\202)\207" [(% * + - / /= 1+ 1- < <= = > >= abs acos append aref ash asin atan assoc assq boundp buffer-file-name buffer-local-variables buffer-modified-p buffer-substring byte-code-function-p capitalize car-less-than-car car cdr ceiling char-after char-before char-equal char-to-string char-width compare-strings compare-window-configurations concat coordinates-in-window-p copy-alist copy-sequence copy-marker cos count-lines current-time-string current-time-zone decode-char decode-time default-boundp default-value 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-newer-than-file-p file-readable-p file-symlink-p file-writable-p float float-time floor format format-time-string frame-first-window frame-root-window frame-selected-window frame-visible-p fround ftruncate get gethash get-buffer get-buffer-window getenv get-file-buffer hash-table-count int-to-string intern-soft keymap-parent length line-beginning-position line-end-position local-variable-if-set-p local-variable-p locale-info log log10 logand logb logcount logior lognot logxor lsh 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 degrees-to-radians radians-to-degrees rassq rassoc read-from-string regexp-quote region-beginning region-end reverse round sin sqrt string string< string= string-equal string-lessp string-to-char string-to-number substring sxhash sxhash-equal sxhash-eq sxhash-eql symbol-function symbol-name symbol-plist symbol-value string-make-unibyte string-make-multibyte string-as-multibyte string-as-unibyte string-to-multibyte tan time-convert truncate unibyte-char-to-multibyte upcase user-full-name user-login-name user-original-login-name custom-variable-p vconcat window-absolute-pixel-edges window-at window-body-height window-body-width window-buffer window-dedicated-p window-display-table window-combination-limit window-edges window-frame window-fringes window-height window-hscroll window-inside-edges window-inside-absolute-pixel-edges window-inside-pixel-edges 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-pixel-edges window-point window-prev-buffers window-prev-sibling window-redisplay-end-trigger 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 window-width zerop) (arrayp atom bignump bobp bolp bool-vector-p buffer-end buffer-list buffer-size buffer-string bufferp car-safe case-table-p cdr-safe char-or-string-p characterp charsetp commandp cons consp current-buffer current-global-map current-indentation current-local-map current-minor-mode-maps current-time eobp eolp eq equal eventp fixnump floatp following-char framep get-largest-window get-lru-window hash-table-p identity ignore integerp integer-or-marker-p interactive-p invocation-directory invocation-name keymapp keywordp list listp make-marker mark mark-marker markerp max-char memory-limit mouse-movement-p natnump nlistp not null number-or-marker-p numberp one-window-p overlayp point point-marker point-min point-max preceding-char primary-charset processp recent-keys recursion-depth safe-length selected-frame selected-window sequencep standard-case-table standard-syntax-table stringp subrp symbolp syntax-table syntax-table-p this-command-keys this-command-keys-vector this-single-command-keys this-single-command-raw-keys user-real-login-name user-real-uid user-uid vector vectorp visible-frame-list wholenump window-configuration-p window-live-p window-valid-p windowp) put side-effect-free t error-free (% concat logand logcount logior lognot logxor regexp-opt regexp-quote string-to-char string-to-syntax symbol-name) pure] 6) (defconst byte-constref-ops '(byte-constant byte-constant2 byte-varref byte-varset byte-varbind)) #@30 Don't call this! (fn BYTES) (defalias 'disassemble-offset #[257 " W\2033\306\307\"\306\310\"\211\311\267\2021\nT\nH\2022\nT\nH\nT\312\nH\313\"\\\2022\211\207 Y\203? Z \207\fY\203K X\204Q\314>\203b\nT\211\nH\nT\312\nH\313\"\\\207 Y\205vX\205v\nT\211\nH\207" [bytedecomp-op byte-pophandler bytedecomp-ptr byte-constant byte-constant2 byte-goto-if-not-nil-else-pop logand 7 248 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (6 21 7 30)) ash 8 (179 50 49) byte-listN byte-discardN] 6 (#$ . 24721)]) #@73 Turn BYTECODE into lapcode, referring to CONSTVEC. (fn BYTES CONSTVEC) (defalias 'byte-decompile-bytecode #[514 "\303\211\304\305\"+\207" [byte-compile-tag-number byte-compile-variables byte-compile-constants nil 0 byte-decompile-bytecode-1] 5 (#$ . 25297)]) #@49 (fn BYTES CONSTVEC &optional MAKE-SPLICEABLE) (defalias 'byte-decompile-bytecode-1 #[770 "G\306\307\211C\307\211\211\211\211C\211 U\204\264 \204\" B\262 H \262\310\f!\262\nH\211\204;\311\312!\210\211 >\203`\242\236\206Z\313 B\242B\240\210\211\262A\262\202\237\314=\203k\315\202q\f>\203\335 GY\203\316D\202\203\nH\262\315=\203\302;\203\262\307 \211\203\253\211@\317@\"\203\244\211\262A\266\202\202\222\210\211\262\202\265 \236\206\324C B\211@\202\324+\236\206\324C\211+B+\211\262\262\211\240\210\202\237\320=\203\350\321\202\237\322=\203\376\323Y\203\376\324\323Z\262\202\237\325=\203\237\326\242!\204\311\327\330\307\211$\210\211\242 \331\307\332\307T\211\262GW\203GH\262\242=\203C\333!\240\210\307\262\307\211\262\202D\332\204\266\334\335\336\337\340\341\f\"\342\"\343\344%\242\"\210\332\307:\203\235@<\203\222@A@\315=\203\222\345@8=\203\222@AA\211\242\240\266\307\262\307\211\262\202\223\332\203\235A\262\202`\266\206\247\306BBB\262 T\211\202\211\203\353\211@\247\204\344\211@@\242\236\211\262\203\344\211\307ABAB\241\210\346 \242\"\240\210\211A\262\211A\262\202\265\210\242\203\370\347\350\242\"\210\351\352\237\"*\207" [bytedecomp-op bytedecomp-ptr byte-code-vector byte-goto-ops byte-constref-ops byte-compile-constants 0 nil disassemble-offset cl--assertion-failed opcode byte-compile-make-tag byte-constant2 byte-constant out-of-range equal-including-properties byte-stack-set2 byte-stack-set byte-discardN 128 byte-discardN-preserve-tos byte-switch hash-table-p (hash-table-p last-constant) "byte-switch used without preceding hash table" -1 t copy-hash-table maphash make-byte-code 514 "\211\300\242\236\302\203A\202\303 \300B\300\242B\240\210\211\262\301\242#\207" vconcat vector [puthash byte-compile-make-tag] 9 "\n\n(fn VALUE OFFSET)" 2 delq error "optimizer error: missed tags %s" mapcar #[257 "\211\247\203\207\211A\207" [] 2 "\n\n(fn ELT)"] byte-compile-variables] 22 (#$ . 25568)]) (defconst byte-tagref-ops (cons 'TAG byte-goto-ops)) (defconst byte-conditional-ops '(byte-goto-if-nil byte-goto-if-not-nil byte-goto-if-nil-else-pop byte-goto-if-not-nil-else-pop)) #@46 Byte-codes that can be moved past an unbind. (defconst byte-after-unbind-ops '(byte-constant byte-dup byte-symbolp byte-consp byte-stringp byte-listp byte-numberp byte-integerp byte-eq byte-not byte-cons byte-list1 byte-list2 byte-interactive-p) (#$ . 27843)) (defconst byte-compile-side-effect-and-error-free-ops '(byte-constant byte-dup byte-symbolp byte-consp byte-stringp byte-listp byte-integerp byte-numberp byte-eq byte-equal byte-not byte-car-safe byte-cdr-safe byte-cons byte-list1 byte-list2 byte-point byte-point-max byte-point-min byte-following-char byte-preceding-char byte-current-column byte-eolp byte-eobp byte-bolp byte-bobp byte-current-buffer byte-stack-ref)) (defconst byte-compile-side-effect-free-ops (nconc '(byte-varref byte-nth byte-memq byte-car byte-cdr byte-length byte-aref byte-symbol-value byte-get byte-concat2 byte-concat3 byte-sub1 byte-add1 byte-eqlsign byte-gtr byte-lss byte-leq byte-geq byte-diff byte-negate byte-plus byte-max byte-min byte-mult byte-char-after byte-char-syntax byte-buffer-substring byte-string= byte-string< byte-nthcdr byte-elt byte-member byte-assq byte-quo byte-rem) byte-compile-side-effect-and-error-free-ops)) #@173 Simple peephole optimizer. LAP is both modified and returned. If FOR-EFFECT is non-nil, the return value is assumed to be of no importance. (fn LAP &optional FOR-EFFECT) (defalias 'byte-optimize-lapcode #[513 "\306C\306C\306\307\310\306\211\211\211\203 \202\n\203\232\n\307=\204* \311>\203*\312\313!\210 \262\306\262\203 @\240\210A@\240\210\3148\262\242@\315=\203\325 \242@>\203\325\316\262\f\n\242@JH\262A\262\317U\203\215 \311>\203|\312\320 \242\"\210\321\n\242\321 \242\"\"\262\f\202\223\n\310U\203\254 \311>\203\240\312\322 \242\"\210\321\n\242 \"\262\f\202\223\n\323U\203\316 \311>\203\277\312\324 \242\"\210 \242\315\240\210 \242\310\241\210\202\223\n\325\326!\210\202\223\n \242@ >\203` \242A \242=\203` \242@\327=\203\321\n\242 \"\262\f\330\262\202& \242@@>\203 \242\315\211\262\240\210 \242\310\241\210\202&\325\331\314\f\2428\"\210 \332>\203ZA\203Z \333>\203Z\316\334\211BCD\335\336\337 \242A@\f\242A@\340 !\242A@%!\210+\316\262\202\223\n@\341=\203O\242AA=\203O\242@\342>\203OA@E>\211\262\203\222 \242@\343=\203\223\n\316\262 \242@\344>\203#\203\332 \242A@\306\345>\206\325\346!\206\325\211\205\325F>\206\325\347!\205\325\3501\323\211JL\210\3060\202\325\210\316\266\202\203\341 \242A\202\361\316G\236\206\361\316CGB\211G@\262 \311>\203\312\351 \242 \242 \242\242\242@ B&\210\n\242@\240\210\241\210\202\223\n \311>\2035\312\352\n\242\n\f\242$\210 \242@\240\210\242\353\240\210\242\310\241\210\317\262\202\223\n \242@\353=\203\243@\315=\203\243\242@\354>\203\243 \311>\203y\312\355\n\242 \242#\210\316\262A\262\242@\356=\203\223\242\211AS\241\266\321\n\242\321\n\"\"\262\f\202\223\n \242@\357=\203\367\242@\360>\203\367 \311>\203\325\312\361\n\242 \242@\362=\203\315\363\202\316\362\f\242AB#\210\242 \242@\362=\203\345\363\202\346\362\240\210\321\n\242 \"\262\f\316\262\202\223\n \242@\364>\203R\242@\327=\203R \242A=\203R \242@\362=\203 \363\202!\362 \311>\203<\312\365\f\242\f\242\f\242AB&\210\321 \242\"\262  \242\240\210\316\262\210\202\223\n \242@\343=\203\341\242@H>\203\341 \242A:\203\341\242@\366>\203~ \242A@\202\204 \242A@?\203\254 \311>\203\227\312\367 \242 \242#\210A\262\321\n\242\321 \242\"\"\262\f\202\333 \311>\203\302\312\370 \242 \242\327 \242AB$\210\242@@>\203\325\321\n\242 \"\262\f\242\327\240\210\316\262\202\223\n \242@\371>\203vA\262\310\262@@\353=\203T\262A\262\202\361 \242@\372=\203\373\317\f\242A#\202 \242A@A=\203v \242@@@=\203v \374>\203c\375A\262=\204KA\262\211\376P\262\2029 \311>\203b\312\377\f\242\242\242&\210\210\316\262@\353\240\210@\310\241\210\262\202\223\n \242@\201N=\203\"\242@\201N=\203\" \201O>\203\273A\203\273 \333>\203\273\316\334\211BCD\335\336\201P \242A@ \242A@#!\210+ \262\201Q\n\242\"\211\262\203\334 \242\241\210>A\262\202\277\321\n\242 \"\262\f\316\262I\211\203\211@\201R\201S\201T\201U\201V\201W#\201X\"\201Y\201Z%\"\210A\266\202\202\352\210\202\223\n \242@\201N=\203\327\201Q\n\242 \"\204\327I\306\316\306:\203\220@\262 \242\306C\201R\201S\201T\201[\201V\201W!\201\\\"\201]\201^%\"\210\211\242\237\262\262\235\203\205\306\262\306\211\262\202\206\316\203\220A\262\202>\203\230\316\202\231\211\266\204\203\327 \201_>\203\310A\203\310 \333>\203\310\316\334\211BCD\335\336\201`\f\242A@\"!\210+\321\n\242 \"\262\f\316\262\202\223\n \242@\201a>\203\250\242@\201b>\204\250I\204\250\262\310 \201c>\306\211A\211\262 \203*@@\201N=\204*\203\375@B\262\201dP\262T\262\202\375\203\233@@\201N=\203H\201e\201f @A@\"\202O@\206O\375\201YW\203u\201g\312\201h\201iQ\242\237\242E\244$\210\202\232 \311>\203\232\312\201j\242\211\317U\203\216\375\202\221\201k\242&\210\210\241\266\316\262\202\223\n\242@\201l=\203\350 \242@J>\203\350 \311>\203\325\312\201m \242 \242\f\242\242%\210 \242\240\210A\n\242\240\210\316\262\202\223\n\242@\201l=\203\212 \242@\201n>\203\212\310 \242AW\203\212\242 \242AS\241\310U\203\321 \242\"\210 \242@\201o=\2031\315\310B\240\210\202:\321\n\242 \"\262\f \311>\203\204\312\201m \242 \242@\f\242ATB \242@\201o=\203b@\202fA@ \242A\310U\204\201\242@\201o=\203\201 A@\202\202\375%\210\316\262\202\223\n \242@ >\203\360 \242A\f>A@\211\262@\201p>\203\360\n\242=\204\223\n \242@\327=\204\277@\327=\203\223\n \311>\203\322\312\201q \242@\211$\210@\201r=\203\343 \242\201r\240\210 \242A\241\210\316\262\202\223\n \242@\201s>\203\221 \242A\f>A\211\262@@\201t>\203\221 \242@=\204\221@\262 \242@\201u\236\262@>\203R \242@\240\210 \242A\241\210 \311>\203\213\312\201v \242@ \242$\210\202\213A@@\201N=\204g\201w AB\241\210 \311>\203{\312\201x \242@A@$\210 \242A@\240\210 \242A@\241\210\316\262\202\223\n \242@\343=\203\\ \242@\327=\203\\ \242A\f>A\211\262@@\201y>\203\\ \242@=\204\\ @\262 \242A:\203 @\n\242A@\204\334\201z\202\337\201{>\203 \311>\203\370\312\201| \242 \242%\210\242@\240\210\242A\241\210\306B\262\316\262\202\223\n \242A:\204 @\315=\203\223\n \311>\2030 \312\201} \242#\210A@@\201N=\204E \201w AB\241\210\242A@\241\210\321\n\242 \"\262\f\316\262\202\223\n\242@\201~=\203\356 @\327=\203\356 A>\204\356 A\f>A\211\262@@\341=\203\356 @A \242A=\203\356 \242A@E>\204\356 \201w \311>\203\317 \312\201\nAA@@ \242 \211AA@ @A@\353\242\327\fB& \210\353\310BAB\241\210 \241AB\241\266\317\262\316\262\202\223\n \242@\327=\203\223\n\242@\201N=\203\223\n\242\n\242A >A\211\262@A=\203\223\n@@\201\200>\203\223\n\201w \311>\203R\n\312\201\201\f\242\f\242A@\242AA@ @\n@@\201\202\236ABA@&\210 \242\241AB\241\210@@\201\203=\203\201\n\343\306G\236\206z\n\306CGB\211G@BAB\241\210\n\242@@\201\204>A@\240\266\316\262A\262\2021\306\211GK \262 \311>\203\260\n\312\201\205!\210\203\247  @\240\210A@\240\210 \242@L>\203\377\n \242@\201\206>\203\354\n \242AG>\204\377\n \242AGBG\202\377\n \242AK>\204\377\n \242AKBK \242@\343=\203` \3148@\343=\203`  \242A\3148A=\203` \242@\201\207>\203` \311>\203E \312\201\210 \242 \242 \242\242\242&\210AA \242@\n\242AB\240\210A\353\310B\240\210\317\262\202\240  \242@\201\211>\203\273 \262\306\262A\211\262@@\353=\204q  \242A@A=\203\237  \242@@@=\203\237 \353\310B\240\210\316\262\202q \203\240 \311>\203\240 \312\201\212 \242\f\242 \242$\210\202\240  \242@\201l=\203\f\242@\201l=\203\f \311>\203\356 \312\370 \242 \242\201l\242A\242A\\B$\210\321\n\242 \"\262\f\242 \242A \242A\\\241\210\202\240  \242@\356=\203\222\f\242@\201\213>\203\222\fA\262 \242AS\262\310\262@@\201\214>\203N\f@@\315=\203A\f\317\202D\f@A\\\262A\262\202*\fY\203\222\f\321\n\242 \"\262\f\242U\203l\f\201\215\202o\f\201\216\240\210\242T\241\210A\241\210 \311>\203\240 \312\201\217 \242 \242#\210\202\240  \242@\201\220>\203 \242@\201\221>\203 \321\n\242 \"\262\f \311>\203\346\f\312\201\222 \242 \242 \242@\315=\203\316\f\317\202\322\f \242A \242@\315=\203\337\f\317\202\343\f \242A\\$\210\242\n\242@\315=\203\366\f\317\202\372\f\n\242A\n\242@\315=\203 \317\202 \n\242A\\\241\210\242\201\216\240\210\202\240  \242@\201\215=\203\\ \242@\201\215=\203\\ \321\n\242 \"\262\f\242\n\242A\n\242A\\\241\210 \311>\203\240 \312\370 \242 \242@$\210\202\240 \242@\201r=\203\240  \242@\201\223>\204\204  \242@\356=\203\240  \242A\317U\203\240 \321\n\242 \"\262\f \311>\203\240 \312\370 \242 \242\f\242$\210A\262\202\260\nM\\M\266\n\207" [byte-compile-delete-errors byte-compile-side-effect-free-ops byte-compile-side-effect-and-error-free-ops byte-optimize-log byte-stack+-info byte-goto-ops nil first-time 0 (t byte) byte-compile-log-lap-1 " ---- next pass" 2 byte-discard t 1 " %s discard --> " delq " %s discard --> discard" -1 " %s discard --> discard discard" error "Optimizer error: too much on the stack" byte-goto "" "Depth conflict at tag %d" (t byte) (t source) 4 byte-compile-log-1 format-message " (goto %s) %s: --> %s %s:" prin1-to-string byte-varref (byte-varset byte-varbind) byte-constant (byte-constant byte-dup) (nil t) keywordp boundp (setting-constant) " %s %s %s --> %s %s %s" " %s %s --> dup %s" byte-dup (byte-varset byte-varbind byte-stack-set) " dup %s discard --> %s" byte-stack-set byte-not (byte-goto-if-nil byte-goto-if-not-nil) " not %s --> %s" byte-goto-if-nil byte-goto-if-not-nil (byte-goto-if-nil byte-goto-if-not-nil) " %s %s %s: --> %s %s:" (byte-goto-if-nil byte-goto-if-nil-else-pop) " %s %s --> " " %s %s --> %s" (byte-varref byte-stack-ref) byte-stack-ref + (t byte) "" " dup" " %s%s %s --> %s%s dup" byte-goto-always-pop-ops byte-optimize print-length print-level print-escape-newlines byte-boolean-vars byte-compile-const-variables byte-compile-constants byte-conditional-ops byte-compile-jump-tables byte-after-unbind-ops byte-compile-variables byte-constref-ops byte-compile-maxdepth TAG (t byte) " adjacent tags %d and %d merged" rassq maphash make-byte-code 514 "\211\300\242\232\205 \303\301\242\302#\207" vconcat vector [puthash] 6 "\n\n(fn VALUE TAG)" "\300\300\242B\240\207" [] 5 "\n\n(fn --CL-VAR-- V)" (t byte) " unused tag %d removed" (byte-goto byte-return) (TAG nil) (t lap) " %s" format "%d:" apply " %s" " %s --> %s %s" " %s <%d unreachable op%s> %s --> %s %s" "s" byte-unbind " %s %s --> %s %s" (byte-varbind byte-save-excursion byte-save-restriction) byte-varbind (byte-goto byte-return) " %s [%s] --> %s" byte-return (byte-goto-if-nil-else-pop byte-goto-if-not-nil-else-pop) (byte-discard . #1=(byte-goto-if-nil byte-goto-if-not-nil byte-goto-if-nil-else-pop byte-goto-if-not-nil-else-pop)) ((byte-goto-if-nil-else-pop byte-goto-if-nil) (byte-goto-if-not-nil-else-pop byte-goto-if-not-nil)) " %s-else-pop [%s] --> %s" byte-compile-make-tag " %s [%s] --> %s " (byte-discard . #1#) (byte-goto-if-nil byte-goto-if-nil-else-pop) (byte-goto-if-not-nil byte-goto-if-not-nil-else-pop) " %s goto [%s] --> %s %s" " %s goto [%s] --> goto " byte-varset " %s: %s ... %s %s --> %s: %s %s: ... %s %s %s" (byte-goto byte-goto-if-nil byte-goto-if-not-nil byte-goto-if-nil-else-pop) "%s %s: ... %s: %s --> %s ... %s:" ((byte-goto-if-nil . byte-goto-if-not-nil) (byte-goto-if-not-nil . byte-goto-if-nil) (byte-goto-if-nil-else-pop . byte-goto-if-not-nil-else-pop) (byte-goto-if-not-nil-else-pop . byte-goto-if-nil-else-pop)) byte-goto-if-nil-else-pop (byte-goto-if-nil-else-pop byte-goto-if-not-nil byte-goto-if-nil byte-goto-if-not-nil byte-goto byte-goto) " ---- final pass" (byte-constant byte-constant2) (byte-varbind byte-varset) " %s %s %s --> %s dup %s" (byte-constant byte-varref) " %s [dup/%s]... --> %s dup..." (byte-discard byte-discardN) (byte-discard byte-discardN) byte-discardN-preserve-tos byte-discardN " %s [discard/discardN]... --> %s" (byte-discard byte-discardN byte-discardN-preserve-tos) (byte-discard byte-discardN) " %s %s --> (discardN %s)" (byte-discardN-preserve-tos byte-dup)] 27 (#$ . 29025)]) (provide 'byte-opt)