home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / zip / language / elisp.zoo / lisp / bytecomp.elc < prev    next >
Text File  |  1988-08-31  |  29KB  |  673 lines

  1.  
  2. (provide (quote byte-compile))
  3.  
  4. (defvar byte-compile-constnum -1 "\
  5. Transfer vector index of last constant allocated.")
  6.  
  7. (defvar byte-compile-constants nil "\
  8. Alist describing contents to put in transfer vector.
  9. Each element is (CONTENTS . INDEX)")
  10.  
  11. (defvar byte-compile-macro-environment nil "\
  12. Alist of (MACRONAME . DEFINITION) macros defined in the file
  13. which is being compiled.")
  14.  
  15. (defvar byte-compile-pc 0 "\
  16. Index in byte string to store next opcode at.")
  17.  
  18. (defvar byte-compile-output nil "\
  19. Alist describing contents to put in byte code string.
  20. Each element is (INDEX . VALUE)")
  21.  
  22. (defvar byte-compile-depth 0 "\
  23. Current depth of execution stack.")
  24.  
  25. (defvar byte-compile-maxdepth 0 "\
  26. Maximum depth of execution stack.")
  27.  
  28. (defconst byte-varref 8 "\
  29. Byte code opcode for variable reference.")
  30.  
  31. (defconst byte-varset 16 "\
  32. Byte code opcode for setting a variable.")
  33.  
  34. (defconst byte-varbind 24 "\
  35. Byte code opcode for binding a variable.")
  36.  
  37. (defconst byte-call 32 "\
  38. Byte code opcode for calling a function.")
  39.  
  40. (defconst byte-unbind 40 "\
  41. Byte code opcode for unbinding special bindings.")
  42.  
  43. (defconst byte-constant 192 "\
  44. Byte code opcode for reference to a constant.")
  45.  
  46. (defconst byte-constant-limit 64 "\
  47. Maximum index usable in  byte-constant  opcode.")
  48.  
  49. (defconst byte-constant2 129 "\
  50. Byte code opcode for reference to a constant with vector index >= 0100.")
  51.  
  52. (defconst byte-goto 130 "\
  53. Byte code opcode for unconditional jump")
  54.  
  55. (defconst byte-goto-if-nil 131 "\
  56. Byte code opcode for pop value and jump if it's nil.")
  57.  
  58. (defconst byte-goto-if-not-nil 132 "\
  59. Byte code opcode for pop value and jump if it's not nil.")
  60.  
  61. (defconst byte-goto-if-nil-else-pop 133 "\
  62. Byte code opcode for examine top-of-stack, jump and don't pop it if it's nil,
  63. otherwise pop it.")
  64.  
  65. (defconst byte-goto-if-not-nil-else-pop 134 "\
  66. Byte code opcode for examine top-of-stack, jump and don't pop it if it's not nil,
  67. otherwise pop it.")
  68.  
  69. (defconst byte-return 135 "\
  70. Byte code opcode for pop value and return it from byte code interpreter.")
  71.  
  72. (defconst byte-discard 136 "\
  73. Byte code opcode to discard one value from stack.")
  74.  
  75. (defconst byte-dup 137 "\
  76. Byte code opcode to duplicate the top of the stack.")
  77.  
  78. (defconst byte-save-excursion 138 "\
  79. Byte code opcode to make a binding to record the buffer, point and mark.")
  80.  
  81. (defconst byte-save-window-excursion 139 "\
  82. Byte code opcode to make a binding to record entire window configuration.")
  83.  
  84. (defconst byte-save-restriction 140 "\
  85. Byte code opcode to make a binding to record the current buffer clipping restrictions.")
  86.  
  87. (defconst byte-catch 141 "\
  88. Byte code opcode for catch.  Takes, on stack, the tag and an expression for the body.")
  89.  
  90. (defconst byte-unwind-protect 142 "\
  91. Byte code opcode for unwind-protect.  Takes, on stack, an expression for the body
  92. and an expression for the unwind-action.")
  93.  
  94. (defconst byte-condition-case 143 "\
  95. Byte code opcode for condition-case.  Takes, on stack, the variable to bind,
  96. an expression for the body, and a list of clauses.")
  97.  
  98. (defconst byte-temp-output-buffer-setup 144 "\
  99. Byte code opcode for entry to with-output-to-temp-buffer.
  100. Takes, on stack, the buffer name.
  101. Binds standard-output and does some other things.
  102. Returns with temp buffer on the stack in place of buffer name.")
  103.  
  104. (defconst byte-temp-output-buffer-show 145 "\
  105. Byte code opcode for exit from with-output-to-temp-buffer.
  106. Expects the temp buffer on the stack underneath value to return.
  107. Pops them both, then pushes the value back on.
  108. Unbinds standard-output and makes the temp buffer visible.")
  109.  
  110. (defconst byte-nth 56)
  111.  
  112. (defconst byte-symbolp 57)
  113.  
  114. (defconst byte-consp 58)
  115.  
  116. (defconst byte-stringp 59)
  117.  
  118. (defconst byte-listp 60)
  119.  
  120. (defconst byte-eq 61)
  121.  
  122. (defconst byte-memq 62)
  123.  
  124. (defconst byte-not 63)
  125.  
  126. (defconst byte-car 64)
  127.  
  128. (defconst byte-cdr 65)
  129.  
  130. (defconst byte-cons 66)
  131.  
  132. (defconst byte-list1 67)
  133.  
  134. (defconst byte-list2 68)
  135.  
  136. (defconst byte-list3 69)
  137.  
  138. (defconst byte-list4 70)
  139.  
  140. (defconst byte-length 71)
  141.  
  142. (defconst byte-aref 72)
  143.  
  144. (defconst byte-aset 73)
  145.  
  146. (defconst byte-symbol-value 74)
  147.  
  148. (defconst byte-symbol-function 75)
  149.  
  150. (defconst byte-set 76)
  151.  
  152. (defconst byte-fset 77)
  153.  
  154. (defconst byte-get 78)
  155.  
  156. (defconst byte-substring 79)
  157.  
  158. (defconst byte-concat2 80)
  159.  
  160. (defconst byte-concat3 81)
  161.  
  162. (defconst byte-concat4 82)
  163.  
  164. (defconst byte-sub1 83)
  165.  
  166. (defconst byte-add1 84)
  167.  
  168. (defconst byte-eqlsign 85)
  169.  
  170. (defconst byte-gtr 86)
  171.  
  172. (defconst byte-lss 87)
  173.  
  174. (defconst byte-leq 88)
  175.  
  176. (defconst byte-geq 89)
  177.  
  178. (defconst byte-diff 90)
  179.  
  180. (defconst byte-negate 91)
  181.  
  182. (defconst byte-plus 92)
  183.  
  184. (defconst byte-max 93)
  185.  
  186. (defconst byte-min 94)
  187.  
  188. (defconst byte-point 96)
  189.  
  190. (defconst byte-goto-char 98)
  191.  
  192. (defconst byte-insert 99)
  193.  
  194. (defconst byte-point-max 100)
  195.  
  196. (defconst byte-point-min 101)
  197.  
  198. (defconst byte-char-after 102)
  199.  
  200. (defconst byte-following-char 103)
  201.  
  202. (defconst byte-preceding-char 104)
  203.  
  204. (defconst byte-current-column 105)
  205.  
  206. (defconst byte-indent-to 106)
  207.  
  208. (defconst byte-eolp 108)
  209.  
  210. (defconst byte-eobp 109)
  211.  
  212. (defconst byte-bolp 110)
  213.  
  214. (defconst byte-bobp 111)
  215.  
  216. (defconst byte-current-buffer 112)
  217.  
  218. (defconst byte-set-buffer 113)
  219.  
  220. (defconst byte-read-char 114)
  221.  
  222. (defconst byte-interactive-p 116)
  223.  
  224. (defun byte-recompile-directory (directory &optional arg) "\
  225. Recompile every .el file in DIRECTORY that needs recompilation.
  226. This is if a .elc file exists but is older than the .el file.
  227. If the .elc file does not exist, offer to compile the .el file
  228. only if a prefix argument has been specified." (interactive "DByte recompile directory: 
  229. P") (byte-code "אêו êז✓!ë⓪êח✓אט#יאא⑨    àcכ    @!?àOז    @✓\"ë④àOל !מPë⑤àOנ!âDס \"éO╱àOעפ צQ!àZק !ê♪Të③ê    Aë①êé⑦êרש♪♪תUâqןérך#,ç" [directory files nil count source dest arg save-some-buffers expand-file-name directory-files "\\.el\\'" 0 auto-save-file-name-p file-name-sans-versions "c" file-exists-p file-newer-than-file-p y-or-n-p "Compile " "? " byte-compile-file message "Done (Total of %d file%s compiled)" 1 "" "s"] 15))
  230.  
  231. (defun byte-compile-file (filename) "\
  232. Compile a file of Lisp code named FILENAME into a file of byte code.
  233. The output file's name is made by appending \"c\" to the end of FILENAME." (interactive "fByte compile file: ") (byte-code "גêט✓!ë⓪êיכ✓\"êלמ!לנ!גגג╱ə⑨è    qêס êע✓!êפbê
  234. qêצ êס êè    qêקר!êשת!àHןפ!êé7êm?)àaך    !ë⑥╱êםף╱!
  235. \"êé3ê
  236. qêפbêץ§גו#àÄש∧!àè∞α!êקβ!êשΓ!àèπפ!êΣcêéhêפbêץ§גו#àכשσ!àז`S✓גµτÅàוקβ!ê✓èΦ ê`)=àושΓ!àוπפ!êΣc)êéÆêו    ΘפdΩ✓!δP#)ê∮p!ê∮    !)-êוç" [filename inbuffer outbuffer byte-compile-macro-environment nil case-fold-search sexp t this-line vms-stmlf-recfm expand-file-name message "Compiling %s..." get-buffer-create " *Compiler Input*" " *Compiler Output*" erase-buffer insert-file-contents 1 emacs-lisp-mode skip-chars-forward "     
  237. " looking-at ";" forward-line read print byte-compile-file-form search-forward "
  238. (" "defun \\|autoload " forward-sexp 3 " " "\"" forward-char "\\
  239. " "defvar \\|defconst " (byte-code "IJא!êijç" [t forward-sexp 3] 2) ((error (byte-code "ijç" [nil] 1))) beginning-of-line write-region file-name-sans-versions "c" kill-buffer] 32))
  240.  
  241. (defun byte-compile-file-form (form) (byte-code "✓<?â
  242. ✓éö✓@ז>âä✓A@⑨ח    ♪\"ə✓@ט=â_יכ ל✓8#ê
  243. â4מ
  244. ד\"éJנ    !à@ס    K!ע=àJ    דB♪Bë③êטפ✓A!B╱?à[יצ \"êéÇ
  245. ânמ
  246. ק✓AAB\"éy    ק✓AABB♪Bë③êרפ✓A!B*éö✓@ש=âôת✓!ê✓éö✓ç" [form name tem byte-compile-macro-environment filename nil noninteractive t (defun defmacro) assq defun message "Compiling %s (%s)..." 1 setcdr fboundp car-safe macro byte-compile-lambda "Compiling %s..." lambda defmacro require eval] 11))
  247.  
  248. (defun byte-compile (funname) "\
  249. Byte-compile the definition of function FUNNAME (a symbol)." (byte-code "IJ✓!à א✓K!ב=à⑤✓ג✓K!Mç" [funname fboundp car-safe lambda byte-compile-lambda] 5))
  250.  
  251. (defun byte-compile-lambda (fun) (byte-code "    A⑧גד✓A\"əה✓A@;à⑥✓Aë⓪êוז✓AB!Cë③ê
  252. àB
  253. A@;å0
  254. A@?â7
  255. é>דו
  256. A@!D♪Bë③ê✓    A=?àRח    8♪Bë③ê    @    A@♪BB+ç" [bodyptr fun int newbody assq interactive nil byte-compile-top-level progn 2] 6))
  257.  
  258. (defun byte-compile-top-level (form) (byte-code "IJIJלללIJIJIJ✓◆╱ə⑧IJIJמ♪
  259.     נ !ë⑥
  260. ê
  261. @ë⑥ êס
  262. A!ë⑥    ê    àU♪Të⑥♪ê    @♪B✓Bë⓪ê    Aë⑥    êé4ê♪ë②+êע !êפצל\"êק
  263. TIJ\"ë⑥✓ê✓àà✓✓@A✓@@Iê✓Aë⓪êéoêר♪ל\"ë⑥◆ê╱à⌐◆╱@@╱@AIê╱Aë⑥╱êéÄêש◆✓F.✓ç" [byte-compile-constants nil byte-compile-constnum byte-compile-pc byte-compile-depth byte-compile-maxdepth byte-compile-output byte-compile-string byte-compile-vector vars temp i form 0 -1 byte-compile-find-vars nreverse byte-compile-form byte-compile-out byte-return make-vector make-string byte-code] 10))
  264.  
  265. (defun byte-compile-find-vars (form) (byte-code "IJ⑧ב
  266. !✓B)ç" [all-vars nil form byte-compile-find-vars-1] 3))
  267.  
  268. (defun byte-compile-find-vars-1 (form) (byte-code "✓9â⑥✓    >?à①✓    Bë①ê✓é♪⇧✓:?å ✓@ז=â'✓é♪⇧✓@ח>âÉט✓A@!ə✓AA
  269.  àé @9âU @    >?àR @    Bë①éy @:ày @@    >?àk @@    Bë①êי @@כ @A@!D\"ê Aë④êé:ê✓@
  270. לכ♪\"BB+é♪⇧✓@מ=å¢✓@נ=âó✓é♪⇧✓@ס=âÕסכע✓8!פצ✓\"BBé♪⇧✓@ק=âπט✓A! àףי לכ @\"\"ê Aë④êéהêקB*é♪⇧✓ר✓╱\"ë⓪=?â÷כ✓!é♪⇧✓@9â◆⇧✓@לכ✓A\"Bé♪⇧לכ✓\"ç" [form all-vars binds body tail clauses byte-compile-macro-environment t quote (let let*) copy-sequence setcar byte-compile-find-vars-1 mapcar function condition-case catch 1 nthcdr 2 cond macroexpand] 15))
  271.  
  272. (defun byte-compile-form (form) (byte-code "ה✓    \"ë⓪ê✓ו=â③ז✓!éK✓א=âז✓!éK✓9â+חט✓\"éK✓:?â7ז✓!éK✓@יN♪âGכ♪✓\"éJל✓!)ê Të⑤]ë④ç" [form byte-compile-macro-environment t handler byte-compile-maxdepth byte-compile-depth macroexpand nil byte-compile-constant byte-compile-variable-ref byte-varref byte-compile funcall byte-compile-normal-call] 10))
  273.  
  274. (defun byte-compile-normal-call (form) (byte-code "ב✓@!ê✓A⑨    à⑨ג    @!ê    Aë①êé✓)êדה✓AG\"ê
  275. ✓AGZë②ç" [form copy byte-compile-depth byte-compile-push-constant byte-compile-form byte-compile-out byte-call] 5))
  276.  
  277. (defun byte-compile-variable-ref (base-op var) (byte-code "ג    
  278. \"⑧✓â①ד♪✓A\"é⑨הוזח    !\"!)ç" [data var byte-compile-constants base-op assq byte-compile-out error format "Variable %s seen on pass 2 of byte compiler but not pass 1" prin1-to-string] 7))
  279.  
  280. (defun byte-compile-constant (const) (byte-code "    ;â ג    
  281. \"é⓪ד    
  282. \"⑧✓âה✓A!é*    ♪Të③B
  283. Bë②êה♪!)ç" [data const byte-compile-constants byte-compile-constnum assoc assq byte-compile-out-const] 6))
  284.  
  285. (defun byte-compile-push-constant (const) (byte-code "ב✓!ê    
  286. Të②]ë①ç" [const byte-compile-maxdepth byte-compile-depth byte-compile-constant] 4))
  287.  
  288. (put (quote point) (quote byte-compile) (quote byte-compile-no-args))
  289.  
  290. (put (quote point) (quote byte-opcode) (quote byte-point))
  291.  
  292. (put (quote dot) (quote byte-compile) (quote byte-compile-no-args))
  293.  
  294. (put (quote dot) (quote byte-opcode) (quote byte-point))
  295.  
  296. (put (quote point-max) (quote byte-compile) (quote byte-compile-no-args))
  297.  
  298. (put (quote point-max) (quote byte-opcode) (quote byte-point-max))
  299.  
  300. (put (quote point-min) (quote byte-compile) (quote byte-compile-no-args))
  301.  
  302. (put (quote point-min) (quote byte-opcode) (quote byte-point-min))
  303.  
  304. (put (quote dot-max) (quote byte-compile) (quote byte-compile-no-args))
  305.  
  306. (put (quote dot-max) (quote byte-opcode) (quote byte-point-max))
  307.  
  308. (put (quote dot-min) (quote byte-compile) (quote byte-compile-no-args))
  309.  
  310. (put (quote dot-min) (quote byte-opcode) (quote byte-point-min))
  311.  
  312. (put (quote following-char) (quote byte-compile) (quote byte-compile-no-args))
  313.  
  314. (put (quote following-char) (quote byte-opcode) (quote byte-following-char))
  315.  
  316. (put (quote preceding-char) (quote byte-compile) (quote byte-compile-no-args))
  317.  
  318. (put (quote preceding-char) (quote byte-opcode) (quote byte-preceding-char))
  319.  
  320. (put (quote current-column) (quote byte-compile) (quote byte-compile-no-args))
  321.  
  322. (put (quote current-column) (quote byte-opcode) (quote byte-current-column))
  323.  
  324. (put (quote eolp) (quote byte-compile) (quote byte-compile-no-args))
  325.  
  326. (put (quote eolp) (quote byte-opcode) (quote byte-eolp))
  327.  
  328. (put (quote eobp) (quote byte-compile) (quote byte-compile-no-args))
  329.  
  330. (put (quote eobp) (quote byte-opcode) (quote byte-eobp))
  331.  
  332. (put (quote bolp) (quote byte-compile) (quote byte-compile-no-args))
  333.  
  334. (put (quote bolp) (quote byte-opcode) (quote byte-bolp))
  335.  
  336. (put (quote bobp) (quote byte-compile) (quote byte-compile-no-args))
  337.  
  338. (put (quote bobp) (quote byte-opcode) (quote byte-bobp))
  339.  
  340. (put (quote current-buffer) (quote byte-compile) (quote byte-compile-no-args))
  341.  
  342. (put (quote current-buffer) (quote byte-opcode) (quote byte-current-buffer))
  343.  
  344. (put (quote read-char) (quote byte-compile) (quote byte-compile-no-args))
  345.  
  346. (put (quote read-char) (quote byte-opcode) (quote byte-read-char))
  347.  
  348. (put (quote symbolp) (quote byte-compile) (quote byte-compile-one-arg))
  349.  
  350. (put (quote symbolp) (quote byte-opcode) (quote byte-symbolp))
  351.  
  352. (put (quote consp) (quote byte-compile) (quote byte-compile-one-arg))
  353.  
  354. (put (quote consp) (quote byte-opcode) (quote byte-consp))
  355.  
  356. (put (quote stringp) (quote byte-compile) (quote byte-compile-one-arg))
  357.  
  358. (put (quote stringp) (quote byte-opcode) (quote byte-stringp))
  359.  
  360. (put (quote listp) (quote byte-compile) (quote byte-compile-one-arg))
  361.  
  362. (put (quote listp) (quote byte-opcode) (quote byte-listp))
  363.  
  364. (put (quote not) (quote byte-compile) (quote byte-compile-one-arg))
  365.  
  366. (put (quote not) (quote byte-opcode) (quote byte-not))
  367.  
  368. (put (quote null) (quote byte-compile) (quote byte-compile-one-arg))
  369.  
  370. (put (quote null) (quote byte-opcode) (quote byte-not))
  371.  
  372. (put (quote car) (quote byte-compile) (quote byte-compile-one-arg))
  373.  
  374. (put (quote car) (quote byte-opcode) (quote byte-car))
  375.  
  376. (put (quote cdr) (quote byte-compile) (quote byte-compile-one-arg))
  377.  
  378. (put (quote cdr) (quote byte-opcode) (quote byte-cdr))
  379.  
  380. (put (quote length) (quote byte-compile) (quote byte-compile-one-arg))
  381.  
  382. (put (quote length) (quote byte-opcode) (quote byte-length))
  383.  
  384. (put (quote symbol-value) (quote byte-compile) (quote byte-compile-one-arg))
  385.  
  386. (put (quote symbol-value) (quote byte-opcode) (quote byte-symbol-value))
  387.  
  388. (put (quote symbol-function) (quote byte-compile) (quote byte-compile-one-arg))
  389.  
  390. (put (quote symbol-function) (quote byte-opcode) (quote byte-symbol-function))
  391.  
  392. (put (quote 1+) (quote byte-compile) (quote byte-compile-one-arg))
  393.  
  394. (put (quote 1+) (quote byte-opcode) (quote byte-add1))
  395.  
  396. (put (quote 1-) (quote byte-compile) (quote byte-compile-one-arg))
  397.  
  398. (put (quote 1-) (quote byte-opcode) (quote byte-sub1))
  399.  
  400. (put (quote goto-char) (quote byte-compile) (quote byte-compile-one-arg))
  401.  
  402. (put (quote goto-char) (quote byte-opcode) (quote byte-goto-char))
  403.  
  404. (put (quote char-after) (quote byte-compile) (quote byte-compile-one-arg))
  405.  
  406. (put (quote char-after) (quote byte-opcode) (quote byte-char-after))
  407.  
  408. (put (quote set-buffer) (quote byte-compile) (quote byte-compile-one-arg))
  409.  
  410. (put (quote set-buffer) (quote byte-opcode) (quote byte-set-buffer))
  411.  
  412. (put (quote eq) (quote byte-compile) (quote byte-compile-two-args))
  413.  
  414. (put (quote eq) (quote byte-opcode) (quote byte-eq))
  415.  
  416. (put (quote eql) (quote byte-compile) (quote byte-compile-two-args))
  417.  
  418. (put (quote eql) (quote byte-opcode) (quote byte-eq))
  419.  
  420. (put (quote memq) (quote byte-compile) (quote byte-compile-two-args))
  421.  
  422. (put (quote memq) (quote byte-opcode) (quote byte-memq))
  423.  
  424. (put (quote cons) (quote byte-compile) (quote byte-compile-two-args))
  425.  
  426. (put (quote cons) (quote byte-opcode) (quote byte-cons))
  427.  
  428. (put (quote aref) (quote byte-compile) (quote byte-compile-two-args))
  429.  
  430. (put (quote aref) (quote byte-opcode) (quote byte-aref))
  431.  
  432. (put (quote set) (quote byte-compile) (quote byte-compile-two-args))
  433.  
  434. (put (quote set) (quote byte-opcode) (quote byte-set))
  435.  
  436. (put (quote fset) (quote byte-compile) (quote byte-compile-two-args))
  437.  
  438. (put (quote fset) (quote byte-opcode) (quote byte-fset))
  439.  
  440. (put (quote =) (quote byte-compile) (quote byte-compile-two-args))
  441.  
  442. (put (quote =) (quote byte-opcode) (quote byte-eqlsign))
  443.  
  444. (put (quote <) (quote byte-compile) (quote byte-compile-two-args))
  445.  
  446. (put (quote <) (quote byte-opcode) (quote byte-lss))
  447.  
  448. (put (quote >) (quote byte-compile) (quote byte-compile-two-args))
  449.  
  450. (put (quote >) (quote byte-opcode) (quote byte-gtr))
  451.  
  452. (put (quote <=) (quote byte-compile) (quote byte-compile-two-args))
  453.  
  454. (put (quote <=) (quote byte-opcode) (quote byte-leq))
  455.  
  456. (put (quote >=) (quote byte-compile) (quote byte-compile-two-args))
  457.  
  458. (put (quote >=) (quote byte-opcode) (quote byte-geq))
  459.  
  460. (put (quote get) (quote byte-compile) (quote byte-compile-two-args))
  461.  
  462. (put (quote get) (quote byte-opcode) (quote byte-get))
  463.  
  464. (put (quote nth) (quote byte-compile) (quote byte-compile-two-args))
  465.  
  466. (put (quote nth) (quote byte-opcode) (quote byte-nth))
  467.  
  468. (put (quote aset) (quote byte-compile) (quote byte-compile-three-args))
  469.  
  470. (put (quote aset) (quote byte-opcode) (quote byte-aset))
  471.  
  472. (defun byte-compile-no-args (form) (byte-code "IJ✓Gא\"âב✓!é⑥ג✓@דNJה\"ç" [form /= 1 byte-compile-normal-call byte-compile-out byte-opcode 0] 5))
  473.  
  474. (defun byte-compile-one-arg (form) (byte-code "א✓Gב\"âג✓!é!ד✓A@!ê    Së①êה✓@וNJז\"ç" [form byte-compile-depth /= 2 byte-compile-normal-call byte-compile-form byte-compile-out byte-opcode 0] 6))
  475.  
  476. (defun byte-compile-two-args (form) (byte-code "א✓Gב\"âג✓!é(ד✓A@!êדה✓8!ê    הZë①êו✓@זNJח\"ç" [form byte-compile-depth /= 3 byte-compile-normal-call byte-compile-form 2 byte-compile-out byte-opcode 0] 7))
  477.  
  478. (defun byte-compile-three-args (form) (byte-code "א✓Gב\"âג✓!é.ד✓A@!êדה✓8!êדו✓8!ê    וZë①êז✓@חNJט\"ç" [form byte-compile-depth /= 4 byte-compile-normal-call byte-compile-form 2 3 byte-compile-out byte-opcode 0] 8))
  479.  
  480. (put (quote substring) (quote byte-compile) (quote byte-compile-substring))
  481.  
  482. (defun byte-compile-substring (form) (byte-code "✓GבVå♪✓GגWâ④ד✓!é8הו✓8!êהג✓8å\"ז!êהח✓8å,ט!ê    חZë①êי
  483. כ\"ç" [form byte-compile-depth byte-substring 4 2 byte-compile-normal-call byte-compile-form 1 (quote nil) 3 (quote nil) byte-compile-out 0] 7))
  484.  
  485. (put (quote interactive-p) (quote byte-compile) (quote byte-compile-interactive-p))
  486.  
  487. (defun byte-compile-interactive-p (form) (byte-code "IJ✓א\"ç" [byte-interactive-p byte-compile-out 0] 3))
  488.  
  489. (put (quote list) (quote byte-compile) (quote byte-compile-list))
  490.  
  491. (defun byte-compile-list (form) (byte-code "    G⑧✓דUâהא!éA✓וWâ>    A♪à)ז♪@!ê♪Aë③êé⑧ê ✓SZë④êח✓טZי8Jכ\")éAל    !)ç" [len form nil args byte-compile-depth 1 byte-compile-constant 6 byte-compile-form byte-compile-out 2 (byte-list1 byte-list2 byte-list3 byte-list4) 0 byte-compile-normal-call] 5))
  492.  
  493. (put (quote concat) (quote byte-compile) (quote byte-compile-concat))
  494.  
  495. (defun byte-compile-concat (form) (byte-code "    G⑧✓דUâהו!éM✓זUâח    !éM✓טWâJ    Aə
  496. à5ה
  497. @!ê
  498. Aë②êé$ê♪✓SZë③êי✓כZל8Jמ\")éMח    !)ç" [len form args byte-compile-depth t 1 byte-compile-form "" 2 byte-compile-normal-call 6 byte-compile-out 3 (byte-concat2 byte-concat3 byte-concat4) 0] 6))
  499.  
  500. (put (quote -) (quote byte-compile) (quote byte-compile-minus))
  501.  
  502. (defun byte-compile-minus (form) (byte-code "    G⑧✓הUâו    A@!ê
  503. זZë②êח♪ט\"é>✓יUâ;ו    A@!êוה    8!ê
  504. הZë②êח ט\"é>כ    !)ç" [len form byte-compile-depth byte-negate byte-diff t 2 byte-compile-form 1 byte-compile-out 0 3 byte-compile-normal-call] 7))
  505.  
  506. (put (quote +) (quote byte-compile) (quote byte-compile-maybe-two-args))
  507.  
  508. (put (quote +) (quote byte-opcode) (quote byte-plus))
  509.  
  510. (put (quote max) (quote byte-compile) (quote byte-compile-maybe-two-args))
  511.  
  512. (put (quote max) (quote byte-opcode) (quote byte-max))
  513.  
  514. (put (quote min) (quote byte-compile) (quote byte-compile-maybe-two-args))
  515.  
  516. (put (quote min) (quote byte-opcode) (quote byte-min))
  517.  
  518. (defun byte-compile-maybe-two-args (form) (byte-code "    G⑧✓בUâ&ג    A@!êגד    8!ê
  519. דZë②êה    @וNJז\"é)ח    !)ç" [len form byte-compile-depth 3 byte-compile-form 2 byte-compile-out byte-opcode 0 byte-compile-normal-call] 5))
  520.  
  521. (put (quote function) (quote byte-compile) (quote byte-compile-function-form))
  522.  
  523. (defun byte-compile-function-form (form) (byte-code "✓A@9â③אבגד✓8DD!éəהו✓A@!!ç" [form t byte-compile-form symbol-function quote 1 byte-compile-constant byte-compile-lambda] 5))
  524.  
  525. (put (quote indent-to) (quote byte-compile) (quote byte-compile-indent-to))
  526.  
  527. (defun byte-compile-indent-to (form) (byte-code "    G⑧✓גUâד    A@!ê
  528. הZë②êו♪ז\"éח    !)ç" [len form byte-compile-depth byte-indent-to 2 byte-compile-form 1 byte-compile-out 0 byte-compile-normal-call] 4))
  529.  
  530. (put (quote insert) (quote byte-compile) (quote byte-compile-insert))
  531.  
  532. (defun byte-compile-insert (form) (byte-code "    G⑧✓דWâ,    Aə
  533. à(ה
  534. @!ê♪וZë③êז ח\"ê
  535. Aë②êé )é/ט    !)ç" [len form args byte-compile-depth byte-insert 3 byte-compile-form 1 byte-compile-out 0 byte-compile-normal-call] 5))
  536.  
  537. (put (quote setq-default) (quote byte-compile) (quote byte-compile-setq-default))
  538.  
  539. (defun byte-compile-setq-default (form) (byte-code "IJאבג✓8Dדה✓\"BB!ç" [form byte-compile-form set-default quote 1 nthcdr 2] 6))
  540.  
  541. (put (quote quote) (quote byte-compile) (quote byte-compile-quote))
  542.  
  543. (defun byte-compile-quote (form) (byte-code "IJ✓A@!ç" [form byte-compile-constant] 2))
  544.  
  545. (put (quote setq) (quote byte-compile) (quote byte-compile-setq))
  546.  
  547. (defun byte-compile-setq (form) (byte-code "    A⑧✓â;✓à8ד✓A@!ê✓AA?à#הוז\"ê
  548. ♪T]ë②ê♪Së③êחט✓@\"ê✓AAë⓪êé◆é>יג!)ç" [args form byte-compile-maxdepth byte-compile-depth nil byte-compile-form byte-compile-out byte-dup 0 byte-compile-variable-ref byte-varset byte-compile-constant] 6))
  549.  
  550. (put (quote let) (quote byte-compile) (quote byte-compile-let))
  551.  
  552. (defun byte-compile-let (form) (byte-code "    A@⑧✓à#✓@9â④גא!éəד✓@A@!ê✓Aë⓪êé⇦)êה    A@!⑧♪✓GZë③ê✓àS✓@9âDוז✓@\"éJוז✓@@\"ê✓Aë⓪êé2)êח    AA!êטי    A@G\"ç" [varlist form nil byte-compile-depth byte-compile-push-constant byte-compile-form reverse byte-compile-variable-ref byte-varbind byte-compile-body byte-compile-out byte-unbind] 9))
  553.  
  554. (put (quote let*) (quote byte-compile) (quote byte-compile-let*))
  555.  
  556. (defun byte-compile-let* (form) (byte-code "    A@⑧✓à=✓@9â④גא!éəד✓@A@!ê♪Së③ê✓@9â.הו✓@\"é4הו✓@@\"ê✓Aë⓪êé⇦)êז    AA!êחט    A@G\"ç" [varlist form nil byte-compile-depth byte-compile-push-constant byte-compile-form byte-compile-variable-ref byte-varbind byte-compile-body byte-compile-out byte-unbind] 8))
  557.  
  558. (put (quote save-excursion) (quote byte-compile) (quote byte-compile-save-excursion))
  559.  
  560. (defun byte-compile-save-excursion (form) (byte-code "IJאב\"êג✓A!êIJדה\"ç" [form byte-compile-out byte-save-excursion 0 byte-compile-body byte-unbind 1] 5))
  561.  
  562. (put (quote save-restriction) (quote byte-compile) (quote byte-compile-save-restriction))
  563.  
  564. (defun byte-compile-save-restriction (form) (byte-code "IJאב\"êג✓A!êIJדה\"ç" [form byte-compile-out byte-save-restriction 0 byte-compile-body byte-unbind 1] 5))
  565.  
  566. (put (quote with-output-to-temp-buffer) (quote byte-compile) (quote byte-compile-with-output-to-temp-buffer))
  567.  
  568. (defun byte-compile-with-output-to-temp-buffer (form) (byte-code "א✓A@!êבגד\"êה✓AA!êבוד\"ê    Së①ç" [form byte-compile-depth byte-compile-form byte-compile-out byte-temp-output-buffer-setup 0 byte-compile-body byte-temp-output-buffer-show] 6))
  569.  
  570. (put (quote progn) (quote byte-compile) (quote byte-compile-progn))
  571.  
  572. (defun byte-compile-progn (form) (byte-code "IJ✓A!ç" [form byte-compile-body] 2))
  573.  
  574. (put (quote interactive) (quote byte-compile) (quote byte-compile-noop))
  575.  
  576. (defun byte-compile-noop (form) (byte-code "IJij!ç" [nil byte-compile-constant] 2))
  577.  
  578. (defun byte-compile-body (body) (byte-code "✓?â♪בIJ!é+✓à+ג✓@!ê✓Aâד é\"
  579. Së②ê✓Aë⓪êé♪ç" [body nil byte-compile-depth byte-compile-constant byte-compile-form byte-compile-discard] 6))
  580.  
  581. (put (quote prog1) (quote byte-compile) (quote byte-compile-prog1))
  582.  
  583. (defun byte-compile-prog1 (form) (byte-code "IJ✓A@!ê✓AAà④א✓AA!êב ç" [form byte-compile-form byte-compile-body byte-compile-discard] 4))
  584.  
  585. (put (quote prog2) (quote byte-compile) (quote byte-compile-prog2))
  586.  
  587. (defun byte-compile-prog2 (form) (byte-code "IJ✓A@!êא êIJב✓8!ê✓AAAàג✓AAA!êא ç" [form byte-compile-form byte-compile-discard 2 byte-compile-body] 6))
  588.  
  589. (defun byte-compile-discard nil (byte-code "IJאב\"ê✓Së⓪ç" [byte-compile-depth byte-compile-out byte-discard 0] 3))
  590.  
  591. (put (quote if) (quote byte-compile) (quote byte-compile-if))
  592.  
  593. (defun byte-compile-if (form) (byte-code "גד✓\"?â-ה ⑨ו✓A@!êזח    \"ê
  594. Së②êוט✓8!ê
  595. Së②êי    !)ébה ה ⑨ו✓A@!êזכ♪\"ê
  596. Së②êוט✓8!ê
  597. Së②êזל    \"êי♪!êמ✓AAA!êי    !*ç" [form donetag byte-compile-depth elsetag nthcdr 3 byte-compile-make-tag byte-compile-form byte-compile-goto byte-goto-if-nil-else-pop 2 byte-compile-out-tag byte-goto-if-nil byte-goto byte-compile-body] 16))
  598.  
  599. (put (quote cond) (quote byte-compile) (quote byte-compile-cond))
  600.  
  601. (defun byte-compile-cond (form) (byte-code "✓Aâ א✓A!éבIJ!ç" [form nil byte-compile-cond-1 byte-compile-constant] 3))
  602.  
  603. (defun byte-compile-cond-1 (clauses) (byte-code "✓@@IJ=åד✓@@!ה=âəו✓@A!éç✓A?âFז əח✓@@!ê✓@AàBטי
  604. \"ê♪Së③êו✓@A!êכ
  605. !)éçז ז əח✓@@!ê✓@A?âeטל
  606. \"ê♪Së③é}טמ \"ê♪Së③êו✓@A!êטנ
  607. \"êכ !êס✓A!êכ
  608. !*ç" [clauses t donetag byte-compile-depth elsetag car-safe quote byte-compile-body byte-compile-make-tag byte-compile-form byte-compile-goto byte-goto-if-nil-else-pop byte-compile-out-tag byte-goto-if-not-nil-else-pop byte-goto-if-nil byte-goto byte-compile-cond-1] 18))
  609.  
  610. (put (quote and) (quote byte-compile) (quote byte-compile-and))
  611.  
  612. (defun byte-compile-and (form) (byte-code "ד 
  613. A⑨⑧    ?â⑥הב!ê Së④é=    à=ה    @!ê Së④ê    A?â0ו✓!é4זח✓\"ê    Aë①êé⑥*ç" [failtag args form t byte-compile-depth byte-compile-make-tag byte-compile-form byte-compile-out-tag byte-compile-goto byte-goto-if-nil-else-pop] 8))
  614.  
  615. (put (quote or) (quote byte-compile) (quote byte-compile-or))
  616.  
  617. (defun byte-compile-or (form) (byte-code "ד 
  618. A⑨⑧    ?â①הב!é8    à8ו    @!ê Së④ê    A?â+ז✓!é/חט✓\"ê    Aë①êé①*ç" [wintag args form nil byte-compile-depth byte-compile-make-tag byte-compile-constant byte-compile-form byte-compile-out-tag byte-compile-goto byte-goto-if-not-nil-else-pop] 8))
  619.  
  620. (put (quote while) (quote byte-compile) (quote byte-compile-while))
  621.  
  622. (defun byte-compile-while (form) (byte-code "ג ג ♪AAə⑨⑧ד    !êה♪A@!êוז✓\"êח♪AA!êט êוי    \"êד✓!+ç" [endtag looptag args form byte-compile-make-tag byte-compile-out-tag byte-compile-form byte-compile-goto byte-goto-if-nil-else-pop byte-compile-body byte-compile-discard byte-goto] 10))
  623.  
  624. (put (quote catch) (quote byte-compile) (quote byte-compile-catch))
  625.  
  626. (defun byte-compile-catch (form) (byte-code "א✓A@!êבגד✓AAB!!ê    הZë①êוזח\"ç" [form byte-compile-depth byte-compile-form byte-compile-push-constant byte-compile-top-level progn 2 byte-compile-out byte-catch 0] 6))
  627.  
  628. (put (quote save-window-excursion) (quote byte-compile) (quote byte-compile-save-window-excursion))
  629.  
  630. (defun byte-compile-save-window-excursion (form) (byte-code "אבג✓AB!C!ê    Së①êדהו\"ç" [form byte-compile-depth byte-compile-push-constant byte-compile-top-level progn byte-compile-out byte-save-window-excursion 0] 5))
  631.  
  632. (put (quote unwind-protect) (quote byte-compile) (quote byte-compile-unwind-protect))
  633.  
  634. (defun byte-compile-unwind-protect (form) (byte-code "אבג✓AAB!C!ê    Së①êדהו\"êז✓A@!ê    Së①êדחט\"ç" [form byte-compile-depth byte-compile-push-constant byte-compile-top-level progn byte-compile-out byte-unwind-protect 0 byte-compile-form byte-unbind 1] 7))
  635.  
  636. (put (quote condition-case) (quote byte-compile) (quote byte-compile-condition-case))
  637.  
  638. (defun byte-compile-condition-case (form) (byte-code "ד✓A@!êדהו✓8!!ê✓AAAזə⑨    à3    @♪@הח♪AB!D
  639. Bë②)ê    Aë①êé⑤êדט
  640. !!*ê יZë④êכלמ\"ç" [form clauses compiled-clauses clause byte-compile-depth byte-compile-push-constant byte-compile-top-level 2 nil progn nreverse 3 byte-compile-out byte-condition-case 0] 9))
  641.  
  642. (defun byte-compile-make-tag nil (byte-code "ijijBç" [nil] 2))
  643.  
  644. (defun byte-compile-out-tag (tag) (byte-code "    @⑧ב    
  645. \"ê✓àəג✓@
  646. \"ê✓Aë⓪êé✓)ç" [uses tag byte-compile-pc setcar byte-compile-store-goto] 5))
  647.  
  648. (defun byte-compile-goto (opcode tag) (byte-code "ב✓ג\"êד    @!â④ה
  649.     @\"éו    
  650.     @B\"ê
  651. ז\\ë②ç" [opcode tag byte-compile-pc byte-compile-out 0 integerp byte-compile-store-goto setcar 2] 7))
  652.  
  653. (defun byte-compile-store-goto (at-pc to-pc) (byte-code "    ב
  654. ג\"B✓Bë⓪ê    Tד
  655. ה\"B✓Bë⓪ç" [byte-compile-output at-pc to-pc logand 255 lsh -8] 5))
  656.  
  657. (defun byte-compile-out (opcode offset) (byte-code "א✓!ë⓪ê    בWâ④ג✓    \\!é9    דWâ&ג✓ב\\!êג    !é9ג✓ה\\!êגו    ז\"!êגח    ט\"!ç" [opcode offset eval 6 byte-compile-out-1 256 7 logand 255 lsh -8] 11))
  658.  
  659. (defun byte-compile-out-const (offset) (byte-code "✓    Wâג
  660. ✓\\!éג♪!êגד✓ה\"!êגו✓ז\"!ç" [offset byte-constant-limit byte-constant byte-constant2 byte-compile-out-1 logand 255 lsh -8] 8))
  661.  
  662. (defun byte-compile-out-1 (code) (byte-code "    
  663. B✓Bë⓪ê    Të①ç" [byte-compile-output byte-compile-pc code] 2))
  664.  
  665. (defun batch-byte-compile nil "\
  666. Runs byte-compile-file on the files remaining on the command line.
  667. Must be used only with -batch, and kills emacs on completion.
  668. Each file will be processed even if an error occurred previously.
  669. For example, invoke \"emacs -batch -f batch-byte-compile $emacs/ ~/*.el\"" (byte-code "✓?à✓IJז!êא⑨♪àåחט♪@!!ârי♪@!אא╱ ànכל @\"àXמ @!?àXט @♪@\"ë⑤àXנ!סPë⑥╱àXע╱!àXפ╱\"àeצ!?àeוë①ê Aë④êé\"+é}צ♪@!?à}וë①ê♪Aë③êé♪êקר!êש    âöתéòן!)ç" [noninteractive error nil command-line-args-left files source dest t "batch-byte-compile is to be used only with -batch" file-directory-p expand-file-name directory-files string-match ".el$" auto-save-file-name-p file-name-sans-versions "c" file-exists-p file-newer-than-file-p batch-byte-compile-file message "Done" kill-emacs 1 0] 15))
  670.  
  671. (defun batch-byte-compile-file (file) (byte-code "ijIJאÅç" [err (byte-code "א✓!êIJç" [file t byte-compile-file] 2) ((error (byte-code "ב✓Aâ
  672. גé♪ד    ✓@הNו✓A!$êאç" [err file nil message ">>Error occurred processing %s: %s (%s)" ">>Error occurred processing %s: %s" error-message prin1-to-string] 6)))] 3))
  673.