HOME


sh-3ll 1.0
DIR:/usr/share/emacs/26.1/lisp/emacs-lisp/
Upload File :
Current File : //usr/share/emacs/26.1/lisp/emacs-lisp/byte-opt.elc
;ELC
;;; Compiled
;;; in Emacs version 26.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\306!\310\311O!\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\300\242\310\311O!\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 5 nil 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 (#$ . 1361)]))
(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 (#$ . 1612)])
#@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 (#$ . 2054)])
#@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 (#$ . 3141)])
#@24 

(fn FORM FOR-EFFECT)
(defalias 'byte-optimize-form-code-walker #[514 "\242\306:\204!\205\2069?\206\307=?\205\202\310=\203DAA\2035\311\312\313!\"\210A@\205?\205\202\242\314=\203a\315!\211=\203X\202\\\316\"\262\202\242\317=\203l\202\320>\203\207\321\322A@\"\323AA\"BB\202\324=\203\244\321\325\326\327\330\331	!\332\"\333\334%A\"B\202\335=\203\303AA\203\272\336\323A\"!\202\337A@\"\202\340=\203\353AA\203\342\340\337A@\"\323AA\307\"BB\202\337A@\"\202\341=\203\341\337A@\307\"\337\3428\"\323AAA\307\"BBB\202\343>\203\323A\"B\202\344=\2038\337A@\306\"\323AA\"BB\202\345=\203fG\346W\203I\311\347!\210\337A@\306\"\337\3428\"\323\346\233\"BBB\202\350>\203\311\203\276\351A!\211\203\212\211\337@\"\240\204\212\211A\262\202tA\203\256\211\204\256	\203\256\n\352>\203\256\307\353\211\354\355\356\313!\"!\210+\211\205\271\321\337\"\237B\262\202\321\337A\"B\202\357=\203\333\311\360\313!\"\210\306\202\361=\203\345\202\362=\203@\203\364\202\362A@\337\3428\"\321\325\326\363\330\331!\364\"\333\334%\346	\233\"BBB\202\365=\203.\337A@\"AABB\202\366=\203R\337A@\306\"@\203FAA\202M\323A\"BB\202\367=\203e\340\306\321\337A\"BB\202\370=\203o\202\371!\203\200\321\337A\"B\2029\204\220\311\372\313!\"\210\202\203\334\373N\211\262\203\334\204\262\211\374=\204\262\311\375\313!\"\210\202\334	\203\314\n\352>\203\314\307\353\211\354\355\376\313!\"!\210+\337\335\377A\201A\"B\307\"\202\321\337A\"\201BN\203\201C!\203\310\201D\321\201E\"\"D\202B\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 (let let*) 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 cond 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)" progn macroexp-progn byte-optimize-form prog1 prog2 2 (save-excursion save-restriction save-current-buffer) with-output-to-temp-buffer if 3 "too few arguments for `if'" (and or) reverse (t source) 4 byte-compile-log-1 format-message "  all subforms of %s called for effect; deleted" interactive "misplaced interactive spec: `%s'" function condition-case "\211@\301A\300\"B\207" [byte-optimize-body] unwind-protect catch ignore internal-make-closure 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" append byte-compile--use-old-handlers (nil) pure byte-optimize-all-constp apply eval] 14 (#$ . 4312)])
#@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 (#$ . 7452)])
#@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 (#$ . 7679)])
#@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 (#$ . 8234)])
#@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 (#$ . 8454)])
(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 (#$ . 8810)])
(put 'byte-compile-nilconstp 'byte-optimizer 'byte-compile-inline-expand)
#@13 

(fn FORM)
(defalias 'byte-optimize-associative-math #[257 "\300\211A\211\203$\211@\247\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 (#$ . 9145)])
#@13 

(fn FORM)
(defalias 'byte-optimize-nonassociative-math #[257 "\211A@\247\203\211AA@\247\204\207\211A@AA\211@\247\203+@@\"\262\211A\262\202\211\2038@BB\2029\207" [] 6 (#$ . 9400)])
#@12 

(fn X Y)
(defalias 'byte-optimize-approx-equal #[514 "\300Z!\301_\300\\!X\207" [abs 100] 6 (#$ . 9607)])
#@23 

(fn FORM START FUN)
(defalias 'byte-optimize-delay-constants-math #[771 "S\233\300>A\211\262A\203q@\250\203\301\302!\262S\233\262A\211\262\203@@\250\203%@B\262\301\240\210\202%\203^\303\304\305\306\"\"\306\304\"!\"\204^\262\202m\307\301\"\304\237\"C\244\262\210\202\207" [(+ *) nil copy-sequence byte-optimize-approx-equal apply mapcar float delq] 13 (#$ . 9724)])
#@13 

(fn FORM)
(defalias 'byte-compile-butlast #[257 "\300!A\237\207" [reverse] 3 (#$ . 10145)])
(put 'byte-compile-butlast 'byte-optimizer 'byte-compile-inline-expand)
#@13 

(fn FORM)
(defalias 'byte-optimize-plus #[257 "\300>\203\301\300\302!\"\262\303\304\305A\">\203_\211G\306U\203_\211A@\307>\204/\3108\311>\203_\303\211A@\312>\203FA@\262\3108\262\202P\3108\262A@\262\313=\203Z\314\202[\315D\266\203\316!\207" [0 delq copy-sequence nil mapcar numberp 3 (1 -1) 2 (1 -1) (1 -1) 1 1+ 1- byte-optimize-predicate] 5 (#$ . 10318)])
#@13 

(fn FORM)
(defalias 'byte-optimize-minus #[257 "\300\233\203+\301AA>\203+\211@A@D\302\301\303AA!\"\244\262\211AA\204+\211\301C\244\262\304\305\306A\">\203o\211AA\307\232\203G\310A@D\262\202o\211AA\311\232\203Y\312A@D\262\202o\211A@\301=\203o\211G\300U\203o\313\3148D\262\315!\207" [3 0 delq copy-sequence nil mapcar numberp (1) 1- (-1) 1+ - 2 byte-optimize-predicate] 6 (#$ . 10709)])
#@13 

(fn FORM)
(defalias 'byte-optimize-multiply #[257 "\300\301\302#\262\303\304\305A\">\203B\306A!@\211\307\267\202A\306!A\237\262\262\202A\310\311\233\203;\306!A\237\262\202>A@D\262\210\312!\207" [byte-optimize-delay-constants-math 1 * nil mapcar numberp reverse #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (1 28 -1 41)) - 3 byte-optimize-predicate] 6 (#$ . 11126)])
#@13 

(fn FORM)
(defalias 'byte-optimize-divide #[257 "\300\301\302#\262\303AA!@\211\203f\211\304=\204f\305\306AA\"\204f\211\247\203f\307\310\311A\">\203f\211\312=\203H\313\233\203H\303!A\237\262\262\202f\211\314=\203f\315\313\233\203`\303!A\237\262\202cA@D\262\210\316!\207" [byte-optimize-delay-constants-math 2 * reverse 0 memql 0.0 nil mapcar numberp 1 3 -1 - byte-optimize-predicate] 6 (#$ . 11560)])
#@13 

(fn FORM)
(defalias 'byte-optimize-logmumble #[257 "\300\301@#\262\302\303>\203)@\304=\203\305AB\202#\306\303\307!\"\211\262\202>\242\310=\203=\311>\203=\305AB\202>!\207" [byte-optimize-delay-constants-math 1 byte-optimize-predicate 0 logand progn delq copy-sequence logior -1] 6 (#$ . 11996)])
#@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 (#$ . 12319)])
#@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 (#$ . 12548)])
#@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 (#$ . 12766)])
(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\320#\210\300\321\302\320#\210\300\322\302\320#\210\300\323\302\320#\210\300\324\302\320#\210\300\325\302\326#\210\300\327\302\326#\210\300\330\302\326#\210\300\331\302\326#\210\300\332\302\326#\210\300\333\302\326#\210\300\334\302\326#\210\300\335\302\326#\210\300\336\302\326#\210\300\337\302\326#\210\300\340\302\326#\210\300\341\302\326#\210\300\342\302\326#\210\300\343\302\326#\210\300\344\302\326#\210\300\345\302\346#\210\300\347\302\346#\210\300\350\302\346#\210\300\351\302\326#\210\300\352\302\326#\210\300\353\302\326#\210\300\354\302\326#\210\300\355\302\326#\210\300\356\302\357#\207" [put identity byte-optimizer byte-optimize-identity + byte-optimize-plus * byte-optimize-multiply - byte-optimize-minus / byte-optimize-divide max byte-optimize-associative-math min = byte-optimize-binary-predicate eq equal string= string-equal < byte-optimize-predicate > <= >= 1+ 1- not null memq consp listp symbolp stringp string< string-lessp logand byte-optimize-logmumble logior logxor lognot car cdr car-safe cdr-safe 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 (#$ . 14228)])
#@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 (#$ . 14537)])
#@13 

(fn FORM)
(defalias 'byte-optimize-or #[257 "\300>\203\301\300\302!\"\262\211\211A\211\262A\203d\211@\211\242\303=\203+\304A!@\262\202\211:\203@\211@\211\305=\205;A@\266\202\202Q\2119?\206O\211\306=\206O\307!\262\203\302!\262\211@>\300\241\262\202AA\203p\310!\202sA@\207" [nil delq copy-sequence progn last quote t keywordp byte-optimize-predicate] 6 (#$ . 14802)])
#@13 

(fn FORM)
(defalias 'byte-optimize-cond #[257 "\300\300A\236\211\262\203\301\302!\"\262\202\300A>\203%\301\300\302!\"\262\262\211A\211\262\203\336\211@\242\211\242\303=\203D\304A!@\262\2023\211:\203Y\211@\211\305=\205TA@\266\202\202j\2119?\206h\211\306=\206h\307!\262\203\224\211A=\203}\303@B\262\202\216\211A\203\216\302!\262\211@>\300\241\210\300\262\202(\211@:\203(\211@@\211\242\303=\203\256\304A!@\262\202\235\211:\203\304\211@\211\305=\205\277A@?\266\202\202\323\2119\204\317\300\262\202\323\211?\262\203(\211@\300\241\210\202(\210\211\242\310=\203\211A\211@:\203\211@A\204\311@@\312@AAB!E\202\207\207" [nil delq copy-sequence progn last quote t keywordp cond or byte-optimize-cond] 7 (#$ . 15209)])
#@13 

(fn FORM)
(defalias 'byte-optimize-if #[257 "\211A@\211\242\300=\2039\301!A\2049\211AA\204%\302\303A@AABB!\202\304!\302\303\301!@AABB!C\244\202\211\211\242\300=\203K\301A!@\262\202:\211:\203`\211@\211\305=\205[A@\266\202\202q\2119?\206o\211\306=\206o\307!\262\203}\300\3108E\202\211\211\242\300=\203\217\301A!@\262\202~\211:\203\245\211@\211\305=\205\240A@?\266\202\202\264\2119\204\260\311\262\202\264\211?\262\203\301\300\312\233BB\202\3108\203\334\312\233\313\232\203\330\303\3108E\202\202\3128\204\350\314\233\203\303:\203@\315>\203G\310U\203A@\202\316D\314\233\203\300\312\233B\202\3128E\202\300\311E\207" [progn last byte-optimize-if if butlast quote t keywordp 2 nil 3 (nil) 4 (not null) not] 7 (#$ . 15991)])
#@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 (#$ . 16802)])
(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 (#$ . 17345)])
#@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 (#$ . 17480)])
(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 (#$ . 18063)])
(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 (#$ . 18407)])
(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 (#$ . 18684)])
(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 (#$ . 18974)])
(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 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 local-variable-if-set-p local-variable-p log log10 logand logb logior lognot logxor lsh langinfo 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-int 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 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 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 current-time-string current-time-zone eobp eolp eq equal eventp 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 line-beginning-position line-end-position list listp make-marker mark mark-marker markerp max-char memory-limit minibuffer-window 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 symbol-name regexp-opt regexp-quote string-to-syntax) 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\207Y\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)) lsh 8 (179 50 49) byte-listN byte-discardN] 6 (#$ . 23599)])
#@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 (#$ . 24175)])
#@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\335GY\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 "\302\303 \262\300B\300\242B\240\210\304\301\242#\207" vconcat vector [nil byte-compile-make-tag puthash] 7 "\n\n(fn VALUE TAG)" 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 (#$ . 24446)])
(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) (#$ . 26692))
(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\241\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\232\n\310U\203\254\311>\203\240\312\322\242\"\210\321\n\242
\"\262\f\202\232\n\323U\203\316\311>\203\277\312\324\242\"\210	\242\315\240\210	\242\310\241\210\202\232\n\325\326!\210\202\232\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\232\n@\341=\203O\242AA=\203O\242@\342>\203OA@E>\211\262\203\222	\242@\343=\203\232\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\232\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\232\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\232\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\232\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\232\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\232\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\232\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@\201R2\201S\201T\201U\201V\201W\201X#\201Y\"\201Z\201[%\"0\210A\266\202\202\352\210\202\232\n	\242@\201N=\203\336\201Q\n\242
\"\204\336I\306\316\306:\203\227@\262
\242\306C\201S\201T\201U\201\\\201W\201X!\201]\"\201^\201_%\"\210\211\242\237\262\262\235\203\214\306\262\306\211\262\202\215\316\203\227A\262\202E\203\237\316\202\240\211\266\204\203\336\201`>\203\317A\203\317\333>\203\317\316\334\211BCD\335\336\201a\f\242A@\"!\210+\321\n\242
\"\262\f\316\262\202\232\n	\242@\201b>\203\257\242@\201c>\204\257I\204\257\262\310\201d>\306\211A\211\262	\2031@@\201N=\2041\203@B\262\201eP\262T\262\202\203\242@@\201N=\203O\201f\201g	@A@\"\202V@\206V\375\201ZW\203|\201h\312\201i\201jQ\242\237\242E\244$\210\202\241\311>\203\241\312\201k\242\211\317U\203\225\375\202\230\201l\242&\210\210\241\266\316\262\202\232\n\242@\201m=\203\357	\242@J>\203\357\311>\203\334\312\201n\242\242\f\242\242%\210	\242\240\210A\n\242\240\210\316\262\202\232\n\242@\201m=\203\221	\242@\201o>\203\221\310	\242AW\203\221\242	\242AS\241\310U\203$\321	\242\"\210	\242@\201p=\2038\315\310B\240\210\202A\321\n\242
\"\262\f\311>\203\213\312\201n\242\242@\f\242ATB
\242@\201p=\203i@\202mA@
\242A\310U\204\210\242@\201p=\203\210	A@\202\211\375%\210\316\262\202\232\n	\242@
>\203\367	\242A\f>A@\211\262@\201q>\203\367\n\242=\204\232\n	\242@\327=\204\306@\327=\203\232\n\311>\203\331\312\201r\242@\211$\210@\201s=\203\352	\242\201s\240\210	\242A\241\210\316\262\202\232\n	\242@\201t>\203\230	\242A\f>A\211\262@@\201u>\203\230	\242@=\204\230@\262	\242@\201v\236\262@>\203Y	\242@\240\210	\242A\241\210\311>\203\222\312\201w\242@
\242$\210\202\222A@@\201N=\204n\201x AB\241\210\311>\203\202\312\201y\242@A@$\210	\242A@\240\210	\242A@\241\210\316\262\202\232\n	\242@\343=\203c	\242@\327=\203c	\242A\f>A\211\262@@\201z>\203c	\242@=\204c	@\262	\242A:\203	@\n\242A@\204\343\201{\202\346\201|>\203	\311>\203\377\312\201}\242
\242%\210\242@\240\210\242A\241\210\306B\262\316\262\202\232\n	\242A:\204'	@\315=\203\232\n\311>\2037	\312\201~\242#\210A@@\201N=\204L	\201x AB\241\210\242A@\241\210\321\n\242
\"\262\f\316\262\202\232\n\242@\201=\203\365	@\327=\203\365	A>\204\365	A\f>A\211\262@@\341=\203\365	@A	\242A=\203\365	\242A@E>\204\365	\201x \311>\203\326	\312\201\200\nAA@@
\242
\211AA@@A@\353\242\327\fB&\210\353\310BAB\241\210	\241AB\241\266\317\262\316\262\202\232\n	\242@\327=\203\232\n\242@\201N=\203\232\n\242\n\242A
>A\211\262@A=\203\232\n@@\201\201>\203\232\n\201x \311>\203Y\n\312\201\202\f\242\f\242A@\242AA@	@\n@@\201\203\236ABA@&\210\242\241AB\241\210@@\201\204=\203\210\n\343\306G\236\206\201\n\306CGB\211G@BAB\241\210\n\242@@\201\205>A@\240\266\316\262A\262\2021\306\211GK\262\311>\203\267\n\312\201\206!\210\203\256
	@\240\210A@\240\210	\242@L>\203	\242@\201\207>\203\363\n	\242AG>\204	\242AGBG\202	\242AK>\204	\242AKBK	\242@\343=\203g\3148@\343=\203g	\242A\3148A=\203g\242@\201\210>\203g\311>\203L\312\201\211\242\242
\242\242\242&\210AA	\242@\n\242AB\240\210A\353\310B\240\210\317\262\202\247
	\242@\201\212>\203\302\262\306\262A\211\262@@\353=\204x	\242A@A=\203\246	\242@@@=\203\246\353\310B\240\210\316\262\202x\203\247
\311>\203\247
\312\201\213\242\f\242
\242$\210\202\247
	\242@\201m=\203\f\242@\201m=\203\f\311>\203\365\312\370\242\242\201m\242A\242A\\B$\210\321\n\242
\"\262\f\242	\242A\242A\\\241\210\202\247
	\242@\356=\203\231\f\242@\201\214>\203\231\fA\262	\242AS\262\310\262@@\201\215>\203U\f@@\315=\203H\f\317\202K\f@A\\\262A\262\2021\fY\203\231\f\321\n\242
\"\262\f\242U\203s\f\201\216\202v\f\201\217\240\210\242T\241\210A\241\210\311>\203\247
\312\201\220\242\242#\210\202\247
	\242@\201\221>\203 
\242@\201\222>\203 
\321\n\242
\"\262\f\311>\203\355\f\312\201\223\242\242
\242@\315=\203\325\f\317\202\331\f
\242A
\242@\315=\203\346\f\317\202\352\f
\242A\\$\210\242\n\242@\315=\203\375\f\317\202
\n\242A\n\242@\315=\203
\317\202
\n\242A\\\241\210\242\201\217\240\210\202\247
	\242@\201\216=\203c
\242@\201\216=\203c
\321\n\242
\"\262\f\242\n\242A\n\242A\\\241\210\311>\203\247
\312\370\242\242@$\210\202\247
\242@\201s=\203\247
	\242@\201\224>\204\213
	\242@\356=\203\247
	\242A\317U\203\247
\321\n\242
\"\262\f\311>\203\247
\312\370\242\242\f\242$\210A\262\202\267\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	-->	<deleted>" delq "  %s discard	-->	<deleted> discard" -1 "  %s discard	-->	discard discard" error "Optimizer error: too much on the stack" byte-goto "<deleted>" "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	-->	<deleted>" "  %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 break maphash make-byte-code 514 "\211\300\242\232\205\303\301\242\302#\210\304\305\306\"\207" vconcat vector [puthash throw break nil] 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 <deleted> %s" "  %s <%d unreachable op%s> %s	-->	%s <deleted> %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 <skip>" (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]	-->	<deleted> goto <skip>" 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 (#$ . 27874)])
(provide 'byte-opt)