;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Sat Aug 6 17:24:36 1994 ;;; from file /home/fsf/rms/e19/lisp/byte-opt.el ;;; emacs version 19.25.92.3. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "`/home/fsf/rms/e19/lisp/byte-opt.el' was compiled for Emacs 19")) (byte-code "\"\"#" [defalias byte-compile-log-lap-1 #[(format &rest args) "H\n!lj \f\"*#!" [byte-code-vector 0 error "The old version of the disassembler is loaded. Reload new-bytecomp as well." byte-compile-log-1 apply format nil a c mapcar #[(arg) ":9!\"!O!@-\"=:r >IAA@Y\f>WA@YA !\"rO!=|A=> #" [arg string-match "^byte-" symbol-name intern 5 nil c error "non-symbolic byte-op %s" TAG byte-goto-ops byte-constref-ops a "^byte-." constant const 0 (unbind call const) format "(%s %s)"] 4] args] 7] byte-compile-log-lap (macro . #[(format-string &rest args) " \fBBE" [and (memq byte-optimize-log (quote (t byte))) byte-compile-log-lap-1 format-string args] 5]) put inline byte-optimizer byte-optimize-inline-handler] 4) (defalias 'byte-optimize-inline-handler #[(form) " A\"B" [progn mapcar #[(sexp) "97 \nA1 !7 \fA7 K:+ @=7 !7!8)" [sexp fn byte-compile-function-environment fboundp byte-compile-macro-environment macro subrp byte-compile-inline-expand] 3] form] 4 "\ byte-optimize-handler for the `inline' special-form."]) (byte-code "\"\"\"\"" [defalias byte-inline-lapcode #[(lap) " " [lap byte-compile-output] 2] byte-compile-inline-expand #[(form) "@\nA ! K \"\f:2\f@=2\fA@!\f:F\f@=F\fA@ #\f9T\fAB!\f!p\fH\fH\fH\fHFEAB\f@=| \"\fAB*" [form name byte-compile-function-environment fboundp fn byte-compile-warn "attempt to inline %s before it was defined" autoload load error "file \"%s\" didn't define \"%s\"" byte-compile-inline-expand byte-code-function-p lambda 0 byte-code 1 2 3 "%s is not a lambda"] 8] byte-compile-unfold-lambda #[(form &optional name) "\n@\nA\f!#\fH\fH\fH\fHFE\fA@\fAAˉ\f @;HAHA@:]@@=]A@= t\"A\"@=A\"AA\"  @ BD\fB\f \"@ @D\fB\f AAb  =\"\n@\f\fBBB!\"=#>=&'(\n!!!#!+!)." [name "anonymous lambda" form values lambda byte-code-function-p 0 byte-code 1 2 3 nil bindings restp optionalp body arglist 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 newform byte-optimize byte-optimize-log (t source) 4 print-length print-level print-escape-newlines byte-compile-log-1 format " %s ==> %s" prin1-to-string] 8] byte-optimize-form-code-walker #[(form for-effect) ":#\f 9?=?ee =EAA6!\"A@e\f?ee !R =X!e >p A@\"AA\f\"BBe = A\"Be =AAA\f\"A\nBe\n@eA@\f\"e =AAA@\f\"AA\"BBeA@\f\"e =A@\"8\f\"AAA\"BBBe > A\f\"Be = A@\"AA\f\"BBe =9 A@\"8\f\"\f\"BBBe >\fA!b@\f\"bAMA !>$%&!\"!+ B)e A\"Be =!\"e >e = A@\f\"AABBe = A@\"AABBe0\"=\f\"e 9 = !\"e\f^ N^ 2\n=2!\"^ Q!>Q$%& !\"!+A\"B\"e A\"B*" [form nil tmp fn for-effect byte-compile-delete-errors t quote byte-compile-warn "malformed quote form: %s" prin1-to-string byte-code-function-p lambda byte-compile-unfold-lambda (let let*) mapcar #[(binding) "9AA!\"@A@\"D" [binding byte-compile-warn "malformed let binding: %s" prin1-to-string byte-optimize-form nil] 4] byte-optimize-body cond #[(clause) ":@\"A\f\"B!\"" [clause byte-optimize-form nil byte-optimize-body for-effect byte-compile-warn "malformed cond form: %s" prin1-to-string] 4] progn byte-optimize-form prog1 prog2 2 (save-excursion save-restriction) with-output-to-temp-buffer if 3 (and or) reverse backwards byte-optimize byte-optimize-log (t source) 4 print-length print-level print-escape-newlines byte-compile-log-1 format " all subforms of %s called for effect; deleted" interactive "misplaced interactive spec: %s" (defun defmacro function condition-case save-window-excursion) unwind-protect catch macroexpand byte-compile-macro-environment mocklisp "%s is a malformed function" side-effect-free error-free "%s called for effect" " %s called for effect; deleted" append (nil)] 7]] 3) (defalias 'byte-optimize-form #[(form &optional for-effect) " \n\"É :_ @9_\n! @N* @N_ !=_V >V̉  !\f!#!+\f\n\"` *" [byte-optimize-form-code-walker form for-effect nil new opt byte-for-effect-optimizer byte-optimizer byte-optimize byte-optimize-log (t source) t 4 print-length print-level print-escape-newlines byte-compile-log-1 format " %s ==> %s" prin1-to-string byte-optimize-form] 7 "\ The source-level pass of the optimizer."]) (byte-code "\"\"\"\"\"\"\"\"\"#\"\"\"\"\"################################Ӂ@#ӁA#ӁB#ӁC#ӁDԁE#EF\"GH\"ӁIԁG#JK\"LM\"NO\"PQ\"RS\"ӁTԁJ#ӁUԁL#ӁVԁN#ӁWԁP#ӁXԁR#ӁYԁZ#Ӂ[ԁZ#Ӂ\\ԁZ#]^\"_`\"Ӂaԁ]#Ӂbԁ_#Ӂcԁd#Ӂeԁd#df\"Ӂgԁh#hi\"Ӂjԁk#kl\"mnop[p@qr#pApFouo@qs#oAo`*tu\"Ӂvwt#xy" [defalias byte-optimize-body #[(forms all-for-effect) "2 A @ @ \"' +\n\fB A\f\f," [forms nil new fe result rest all-for-effect byte-optimize-form] 5] byte-compile-trueconstp (macro . #[(form) "\nD\nDBBD\nDDC\nBBCF" [cond consp form eq car ((quote quote)) not symbolp (t)] 6]) byte-optimize-associative-math #[(form) " A\n%\n@\n@ B\n@\fB\nA AP\fH @ @ \"\fAB @\fBD\f@EQ @ \"Q +" [nil form rest constants args apply] 5] byte-optimize-nonassociative-math #[(form) "A@AA@A@AA @-@\n @\" A :@\n BB;\n*" [form rest constant] 4] byte-optimize-delay-constants-math #[(form start fun) "S \nAAH\n@ !S \nA7\n@\n@\fB\nà \"\f\"C) )" [start form rest nil constants copy-sequence delq apply fun] 4] byte-optimize-plus #[(form) " # > !\" Aɏ " [byte-optimize-delay-constants-math form 1 + 0 delq copy-sequence nil (eval form) ((error form))] 4] byte-optimize-minus #[(form) " # !@=& !AA \"I A@II A@Z 8E !\") AAAc A@=c @ AABd !" [byte-optimize-delay-constants-math form 2 + reverse 3 last 0 copy-sequence delq - byte-optimize-predicate] 7] byte-optimize-multiply #[(form) " #A ‡ !@= ADm =. !\"m =? !\"Dm =l A\">l !\" A@9W @ @Em )" [byte-optimize-delay-constants-math form 1 * reverse last 0 progn delq copy-sequence -1 - 2 t mapcar symbolp +] 6] byte-compile-butlast #[(form) " !A" [reverse form] 2] put byte-optimizer byte-compile-inline-expand byte-optimize-divide #[(form) " # AA!@H GUH U+  !A)H A@H @ A@ AA !A)BB A@=Z AA#z =y r  !A)u A@Dz )" [byte-optimize-delay-constants-math form 2 * reverse last 3 1 nil 0 append (progn) (0) -1 -] 5] byte-optimize-logmumble #[(form) " @# >' @= AB\" !\"> == >= !\"> !" [byte-optimize-delay-constants-math form 1 byte-optimize-predicate 0 logand progn delq copy-sequence logior -1] 5] byte-optimize-binary-predicate #[(form) "A@:A@@=A@9A@>M8:/8@=;89>8>CƏ@8A@E" [form quote (nil t) 2 nil (byte-code "\n!D" [quote eval form] 3) ((error form))] 3] byte-optimize-predicate #[(form) " A\n. .\n@:\n@@=&\n@9?&\n@>\nA 9ȏ: *" [t form rest ok quote (nil t) nil (byte-code "\n!D" [quote eval form] 3) ((error form))] 4] byte-optimize-identity #[(form) "AAAA@AGAGU Ă!#" [form byte-compile-warn "identity called with %d arg%s, but requires 1" 1 "" "s"] 5] identity + * - / max min = eq eql equal string= string-equal < > <= >= 1+ 1- not null memq consp listp symbolp stringp string< string-lessp logand logior logxor lognot car cdr car-safe cdr-safe quote byte-optimize-quote #[(form) "A@:A@9A@>A@" [form (nil t)] 2] byte-optimize-zerop #[(form) "A@ !\nA@E" [form eval byte-compile-delete-errors = 0] 3] zerop byte-optimize-and #[(form) "A?5>(!A@ A!EAA2A@!" [form nil progn byte-optimize-and copy-sequence byte-optimize-predicate] 6] byte-optimize-or #[(form) " > !\" \fAAA\f@:%\f@@=/\f@92\f@= !\f@ > AAM !P A@)" [nil form delq copy-sequence rest quote t byte-optimize-predicate] 5] byte-optimize-cond #[(form) "\nA \n!\"\nA>#\n!\"\n A @:< @@=H @9K @=% \nA=u @An @AAg @ABq @A@q @@ A\n! @\n>&)\n=\nA @: @A @@\n@\nAAB!E\n)\n" [nil rest form delq copy-sequence quote t progn cond clauses or byte-optimize-cond] 6] byte-optimize-if #[(form) "A@: @= 9 =!8} 93B}8}8TȚP 8E}}8`y DrBu8E} E)" [form clause quote t 2 4 progn 3 (nil) if not nil] 6] byte-optimize-while #[(form) "A@" [form] 1] and or cond if while /= byte-compile-negation-optimizer atom nlistp byte-optimize-funcall #[(form) "A@> A@AAB)" [form fn (quote function)] 3] byte-optimize-apply #[(form) "A@GS8  =? A@<4AA!A\nD A@\")< !\"̆@*" [form last fn quote reverse butlast funcall mapcar #[(x) " D" [quote x] 2] byte-compile-warn "last arg to apply can't be a literal atom: %s" prin1-to-string nil] 4] funcall apply let byte-optimize-letX let* #[(form) "A@\fAAB8@=/A@\"\"#A@!\f\fA!\f@A@F)" [form progn 2 3 let append (progn) mapcar car cdr (nil) reverse binds let* nil] 7] nth byte-optimize-nth #[(form) "A@>A@U88DD!" [form (0 1) car 0 2 cdr byte-optimize-predicate] 4] nthcdr byte-optimize-nthcdr #[(form) "A@>!%8 S!$D)" [form count (0 1 2) byte-optimize-predicate 2 natnump cdr] 4] (% * + - / /= 1+ 1- < <= = > >= abs acos append aref ash asin atan assoc assq boundp buffer-file-name buffer-local-variables buffer-modified-p buffer-substring capitalize car-less-than-car car cdr ceiling concat coordinates-in-window-p copy-marker cos count-lines default-boundp default-value documentation downcase elt exp expt fboundp featurep 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 floor format get get-buffer get-buffer-window getenv get-file-buffer int-to-string length log log10 logand logb logior lognot logxor lsh marker-buffer max member memq min mod next-window nth nthcdr number-to-string parse-colon-path previous-window radians-to-degrees rassq regexp-quote reverse round sin sqrt string< string= string-equal string-lessp string-to-char string-to-int string-to-number substring symbol-plist tan upcase user-variable-p vconcat window-buffer window-dedicated-p window-edges window-height window-hscroll window-minibuffer-p window-width zerop) (arrayp atom bobp bolp buffer-end buffer-list buffer-size buffer-string bufferp car-safe case-table-p cdr-safe char-or-string-p commandp cons consp current-buffer dot dot-marker eobp eolp eq eql equal eventp floatp framep get-largest-window get-lru-window identity ignore integerp integer-or-marker-p interactive-p invocation-directory invocation-name keymapp list listp make-marker mark mark-marker markerp 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 processp selected-window sequencep stringp subrp symbolp syntax-table-p user-full-name user-login-name user-original-login-name user-real-login-name user-real-uid user-uid vector vectorp window-configuration-p window-live-p windowp) side-effect-and-error-free-fns side-effect-free-fns side-effect-free t error-free byte-compile-splice-in-already-compiled-code #[(form) ">\n ! A@ 8#! 8\\\n]\nT" [byte-optimize (t lap) byte-compile-normal-call form byte-inline-lapcode byte-decompile-bytecode-1 2 t byte-compile-depth 3 byte-compile-maxdepth] 5] byte-code byte-compile (byte-constant byte-constant2 byte-varref byte-varset byte-varbind) byte-constref-ops] 5) (defalias 'disassemble-offset #[nil " WG\"\"\f=#THE\f=DTHTH\"\\E\f) YV Z \fY} X}THTH\"\\YXTH" [op byte-nth logand 7 tem 248 6 ptr bytes lsh 8 byte-constant byte-constant2 byte-goto-if-not-nil-else-pop byte-listN byte-insertN] 4 "\ Don't call this!"]) (defalias 'byte-decompile-bytecode #[(bytes constvec) "\"+" [nil 0 byte-compile-tag-number byte-compile-variables byte-compile-constants byte-decompile-bytecode-1 bytes constvec] 3 "\ Turns BYTECODE into lapcode, referring to CONSTVEC."]) (byte-code "\"\fB" [defalias byte-decompile-bytecode-1 #[(bytes constvec &optional make-spliceable) "G‰ \n \f \f U3\fB\fH\f H>i c B B @A=v~>H= ; \"  CB@  CB@=\f SU\f  BBB\fT\f!>@5@@ 5 ABAB  \" AA\n) J \"@A@WA\fc\fBB\". " [bytes 0 nil retcount endtag tmp lap offset op tags tag optr ptr length make-spliceable disassemble-offset byte-code-vector byte-goto-ops byte-compile-make-tag byte-constant2 byte-constant byte-constref-ops constvec assoc byte-compile-constants byte-compile-variables byte-return byte-goto rest delq error "optimizer error: missed tags %s" mapcar #[(elt) "A" [elt] 1]] 12] TAG byte-goto-ops byte-tagref-ops (byte-goto-if-nil byte-goto-if-not-nil byte-goto-if-nil-else-pop byte-goto-if-not-nil-else-pop) byte-conditional-ops] 3) (defconst byte-after-unbind-ops (quote (byte-constant byte-dup byte-symbolp byte-consp byte-stringp byte-listp byte-numberp byte-integerp byte-eq byte-equal byte-not byte-cons byte-list1 byte-list2 byte-interactive-p)) "\ Byte-codes that can be moved past an unbind.") (byte-code " ć" [(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-interactive-p) byte-compile-side-effect-and-error-free-ops (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-free-ops nil] 2) (defconst byte-boolean-vars (quote (abbrev-all-caps abbrevs-changed byte-metering-on check-protected-fields completion-auto-help completion-ignore-case cursor-in-echo-area debug-on-next-call debug-on-quit defining-kbd-macro delete-exited-processes enable-recursive-minibuffers highlight-nonselected-windows indent-tabs-mode insert-default-directory inverse-video load-in-progress menu-prompting mode-line-inverse-video no-redraw-on-reenter noninteractive parse-sexp-ignore-comments pop-up-frames pop-up-windows print-escape-newlines print-escape-newlines truncate-partial-width-windows visible-bell vms-stmlf-recfm words-include-escapes x-save-under)) "\ DEFVAR_BOOL variables. Giving these any non-nil value sets them to t. If this does not enumerate all DEFVAR_BOOL variables, the byte-optimizer may generate incorrect code.") (defalias 'byte-optimize-lapcode #[(lap &optional for-effect) " \f  \n \f \f \f=F>F!\n\f\n/\n@\nA@\n8@=@>\f@JH \nA\n U>\"\"\"  U>\"\"  U>\"٠¡ ! @$>qA=q@=\" 8@'>0ى ¡88\">k*k>k-./A@A@ !A@%!+\f @=%AA=%@>%A@6> @= \f@> A@>A:C:B:@ >@ B&@ >$@¡ @=b@=b@>b>K#\f\nA\n\"\" @@=@A=@B=>ՁC@A=BAAB#@A=BA\"\f @A=@B=4@=4A=4@A=BAD>ՁEDAB&\"D\f) @=@F>@A=Y@G=`A@eA@?>yՁH#\nA\n\"\"@'>>ՁIAB$\">ՁIAB$堈\f @=c\nA @@= A A @A=c @@=cJ>MKL\nA =5ALMPL>LՁNLL&)\f @ @¡ \n @O=@O=P>*>-./QA@A@#!+R\">A\"\f @O=%R\"%S>*>-./TA@\"!+\"\f @U>@V>\n W>XLYZ A  @@O=YN @XBXL[PLZTZNY @@O=\\ @A\" @K]Z^W_Ձ`LaQX]]E$>ՁbZUKc]]&)\n ,\f @d==@e>=>*Ձf%\n\nA\f @d=@g>AWASUk\n\"@h=\nB\">Ձf@ATB@h=\n@\nA@AU@h=\nA@K%\f @$>9A>A@ @i>9 = @= @= >Ձj@ $ @k=,k A\f @l>A>A @@m> @= @@n@>@A>Ձo@$O 8@= p  AB>Ձq@A@$A@ A@\f @=@=A>A @@r> @= @@A@s\"t>R>;Ձu%@A\nB\n>cՁv#O 8@={ p  AB A@\"\f @w=& @=& A\n>& A>A @@=&  @AA=& A@6>& p x> ՁyAA@ @AA@ @xA@xB& \nB\nAB x AB) \f @= @O= A>A @A=  @@z> p x> Ձ{A@AA@ @ @@|AxBxA@& x AB @@G= \n: C:B:@B\nAB @@}>A@)\f\nA\nO:~\n% \n@\nA@@>#\nA=\nA~>#\nA~B~#\nA:>#\nA:B:@=}\n\n8@=}\nA\n8@=}\n@>}\n>b\nՁ&\nAA@AB\nAB  @>\n\n  A @@=\nA @A=\n@ @@=\n B\n > Ձ$ @d= @d= > ՁIdAA\\B$\f\"AA\\\nA\n  \\. " [nil first-time 0 byte-compile-delete-errors byte-compile-side-effect-free-ops byte-compile-side-effect-and-error-free-ops side-effect-free tmp3 tmp2 tmp rest add-depth keep-going off2 lap2 off1 lap1 off0 lap0 byte-optimize-log (t byte) byte-compile-log-lap-1 " ---- next pass" lap 2 byte-discard t byte-stack+-info 1 " %s discard --> " delq " %s discard --> discard" -1 " %s discard --> discard discard" error "Optimizer error: too much on the stack" byte-goto-ops byte-goto "" byte-goto-always-pop-ops "Depth conflict at tag %d" (t byte) byte-optimize (t source) 4 print-length print-level print-escape-newlines byte-compile-log-1 format " (goto %s) %s: --> %s %s:" prin1-to-string byte-varref (byte-varset byte-varbind) byte-boolean-vars byte-constant (byte-constant byte-dup) (nil t) byte-compile-constants " %s %s %s --> %s %s %s" " %s %s --> dup %s" byte-dup (byte-varset byte-varbind) " dup %s discard --> %s" byte-not byte-goto-if-nil byte-goto-if-not-nil " not %s --> %s" inverse " %s %s %s: --> %s %s:" byte-conditional-ops byte-goto-if-nil-else-pop " %s %s --> " " %s %s --> %s" (t byte) "" str " dup" " %s%s %s --> %s%s dup" TAG (t byte) " adjacent tags %d and %d merged" rassq (t byte) " unused tag %d removed" (byte-goto byte-return) (TAG nil) (t lap) deleted opt-p i " %s" "%d:" tagstr 6 apply " %s" " %s --> %s %s" " %s <%d unreachable op%s> %s --> %s %s" "s" byte-unbind byte-after-unbind-ops " %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 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 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 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 newtag " %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-not-nil byte-goto-if-nil byte-goto-if-not-nil byte-goto byte-goto) byte-compile-variables byte-constref-ops (byte-varbind byte-varset) " %s %s %s --> %s dup %s" (byte-constant byte-varref) " %s [dup/%s]... %s --> %s dup..." byte-compile-maxdepth] 14 "\ Simple peephole optimizer. LAP is both modified and returned."]) (provide (quote byte-optimize))