home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / util / jade-3.0.lha / Jade / lisp / compiler.jlc < prev    next >
Encoding:
Text File  |  1994-04-20  |  20.6 KB  |  549 lines

  1.  
  2. (provide (quote compiler))
  3.  
  4. (defvar comp-eval-constants-p t 60339)
  5.  
  6. (defvar comp-write-docs-p nil 60487)
  7.  
  8. (defconst op-call 8)
  9.  
  10. (defconst op-push 16)
  11.  
  12. (defconst op-vrefc 24)
  13.  
  14. (defconst op-vsetc 32)
  15.  
  16. (defconst op-list 40)
  17.  
  18. (defconst op-bind 48)
  19.  
  20. (defconst op-last-with-args 55)
  21.  
  22. (defconst op-vref 64)
  23.  
  24. (defconst op-vset 65)
  25.  
  26. (defconst op-fref 66)
  27.  
  28. (defconst op-fset 67)
  29.  
  30. (defconst op-init-bind 68)
  31.  
  32. (defconst op-unbind 69)
  33.  
  34. (defconst op-dup 70)
  35.  
  36. (defconst op-swap 71)
  37.  
  38. (defconst op-pop 72)
  39.  
  40. (defconst op-nil 73)
  41.  
  42. (defconst op-t 74)
  43.  
  44. (defconst op-cons 75)
  45.  
  46. (defconst op-car 76)
  47.  
  48. (defconst op-cdr 77)
  49.  
  50. (defconst op-rplaca 78)
  51.  
  52. (defconst op-rplacd 79)
  53.  
  54. (defconst op-nth 80)
  55.  
  56. (defconst op-nthcdr 81)
  57.  
  58. (defconst op-aset 82)
  59.  
  60. (defconst op-aref 83)
  61.  
  62. (defconst op-length 84)
  63.  
  64. (defconst op-eval 85)
  65.  
  66. (defconst op-plus-2 86)
  67.  
  68. (defconst op-negate 87)
  69.  
  70. (defconst op-minus-2 88)
  71.  
  72. (defconst op-product-2 89)
  73.  
  74. (defconst op-divide-2 90)
  75.  
  76. (defconst op-mod-2 91)
  77.  
  78. (defconst op-bit-not 92)
  79.  
  80. (defconst op-not 93)
  81.  
  82. (defconst op-bit-or-2 94)
  83.  
  84. (defconst op-bit-and-2 95)
  85.  
  86. (defconst op-equal 96)
  87.  
  88. (defconst op-eq 97)
  89.  
  90. (defconst op-num-eq 98)
  91.  
  92. (defconst op-num-noteq 99)
  93.  
  94. (defconst op-gtthan 100)
  95.  
  96. (defconst op-gethan 101)
  97.  
  98. (defconst op-ltthan 102)
  99.  
  100. (defconst op-lethan 103)
  101.  
  102. (defconst op-inc 104)
  103.  
  104. (defconst op-dec 105)
  105.  
  106. (defconst op-lsh 106)
  107.  
  108. (defconst op-zerop 107)
  109.  
  110. (defconst op-null 108)
  111.  
  112. (defconst op-atom 109)
  113.  
  114. (defconst op-consp 110)
  115.  
  116. (defconst op-listp 111)
  117.  
  118. (defconst op-numberp 112)
  119.  
  120. (defconst op-stringp 113)
  121.  
  122. (defconst op-vectorp 114)
  123.  
  124. (defconst op-catch-kludge 115)
  125.  
  126. (defconst op-throw 116)
  127.  
  128. (defconst op-unwind-pro 117)
  129.  
  130. (defconst op-un-unwind-pro 118)
  131.  
  132. (defconst op-fboundp 119)
  133.  
  134. (defconst op-boundp 120)
  135.  
  136. (defconst op-symbolp 121)
  137.  
  138. (defconst op-get 122)
  139.  
  140. (defconst op-put 123)
  141.  
  142. (defconst op-error-pro 124)
  143.  
  144. (defconst op-signal 125)
  145.  
  146. (defconst op-set-current-buffer 176)
  147.  
  148. (defconst op-swap-buffer 177)
  149.  
  150. (defconst op-current-buffer 178)
  151.  
  152. (defconst op-bufferp 179)
  153.  
  154. (defconst op-mark-p 180)
  155.  
  156. (defconst op-windowp 181)
  157.  
  158. (defconst op-swap-window 182)
  159.  
  160. (defconst op-last-before-jmps 250)
  161.  
  162. (defconst op-jmp 251)
  163.  
  164. (defconst op-jmp-nil 252)
  165.  
  166. (defconst op-jmp-t 253)
  167.  
  168. (defconst op-jmp-nil-else-pop 254)
  169.  
  170. (defconst op-jmp-t-else-pop 255)
  171.  
  172. (defconst comp-max-1-byte-arg 5)
  173.  
  174. (defconst comp-max-2-byte-arg 127)
  175.  
  176. (defconst comp-max-3-byte-arg 16383)
  177.  
  178. (defvar comp-constant-alist nil)
  179.  
  180. (defvar comp-constant-index 0)
  181.  
  182. (defvar comp-current-stack 0)
  183.  
  184. (defvar comp-max-stack 0)
  185.  
  186. (defvar comp-output nil)
  187.  
  188. (defvar comp-output-pc 0)
  189.  
  190. (defvar comp-macro-env nil)
  191.  
  192. (defun compile-file (file-name) 60586 (lisp-code "DI0I1I2I3†\nF þ€Ÿ‡ˆ\n‰\nF!þ€«Š‹Œ|HJE" [src-file dst-file form comp-macro-env open file-name "r" concat 99 "w" (lisp-code "u \tH†‡\t]þ€´ˆ‰‡\t\tF&Šþ€°‹ŠŒ\nHŒŽ\nHû€Šv" [(lisp-code "\tH\t" [close dst-file src-file] 2) title-now concat "Compiling file " file-name "..." file-eof-p src-file comp-compile-file-form read form print dst-file write 10] 5) (error (lisp-code "D\n3\tþ€\tEH†‡ˆLˆM " [concat file-name 99 fname file-exists-p delete-file funcall signal error-info] 4)) 2] 4))
  193.  
  194. (defun compile-directory (dir-name &optional force-p) 60733 (lisp-code "D\t2nþ€¼L\nþ€³DL\n6†‡†ˆ\n6‰Š†‰\nþ€²‹†\tEHMF\"Hû€…HJE" [directory-files dir-name dir regexp-match "\\.jl$" file-concat file concat 99 cfile file-newer-than-file-p compile-file] 3))
  195.  
  196. (defun compile-lisp-lib (&optional force-p) 60967 (lisp-code "DJ0\nE" [comp-write-docs-p compile-directory lisp-lib-dir force-p] 3))
  197.  
  198. (put (quote compile-error) (quote error-message) "Compilation mishap")
  199.  
  200. (defun comp-error (&rest data) (lisp-code "}" [compile-error data] 2))
  201.  
  202. (defun comp-compile-file-form (form) (lisp-code "n]ü€ŠûËDL1aü€ÁDP\n6††þ€«†INH†IOEHP‡ˆ‰QK\tMKKûÊŠaüƒD‡ˆ‰QK\tP\n6†6‹†ü€ê†‹Oû€ôP‹KKF%HŠP‹MKKEûÊŒaÿŽaü³DŽP6þ qþ­ŽQ‘\tNEHûÊ’aüÁUHûÊJüÉûÊIE" [form fun defun assq 1 comp-macro-env tmp comp-compile-lambda lambda 2 defmacro code defconst defvar 3 doc comp-write-docs-p add-doc-string require] 6))
  203.  
  204. (defun compile-top-level-form (form) (lisp-code "DI0234I56†‡ˆ\tHþ€¢‰Š‹,E" [comp-constant-alist 0 comp-constant-index comp-current-stack comp-max-stack comp-output comp-output-pc comp-compile-form form lisp-code comp-make-code-string comp-make-const-vec] 4))
  205.  
  206. (defun comp-make-code-string nil (lisp-code "D\nnþ€žLMLLRHMF$Hû€ˆHE" [make-string comp-output-pc 42 comp-output data code-string] 3))
  207.  
  208. (defun comp-make-const-vec nil (lisp-code "D\t34nþ€LMLLRHMF#Hû€‡HE" [make-vector comp-constant-index comp-constant-alist consts vec] 3))
  209.  
  210. (defun comp-inc-stack nil (lisp-code "hF dþ€ŒF!" [comp-current-stack comp-max-stack] 2))
  211.  
  212. (defmacro comp-dec-stack (&optional n) (lisp-code "ü€+û€*+" [setq comp-current-stack n - 1-] 5))
  213.  
  214. (defun comp-compile-form (form) (lisp-code "Iaü€\tHû‚‘Jaü€ž\tHû‚‘yü€Êþ€«†\tü€¼‡ˆ‰\t\t\nû€ÄŠˆ\t\nHû‚‘nü‚…DI6‹Lyþ€áLŒzF&‹ü€í‹\nû‚Ž\nF HLyþ„LŒzF&‹ü‹\nû‚LF&‹H‹yü¤‹\tûÍ‹nþ°‹L‘aü¾’‹\t\tûÍJüÌ“”‹\nûÍIHMF HD•6–nþð—L\tH–h&–MF HûØH˜–\nH™–XF&™EEû‚‘Jü‚\tû‚‘I" [form comp-write-op 73 comp-inc-stack 74 comp-eval-constants-p const-variable-p 16 comp-add-constant symbol-value 24 fun compile-fun funcall macroexpand comp-macro-env comp-compile-constant lambda comp-compile-lambda comp-error "Bad function name" 0 i comp-compile-form 8 comp-current-stack] 5))
  215.  
  216. (defun comp-compile-constant (form) (lisp-code "\t\nH" [comp-write-op 16 comp-add-constant form comp-inc-stack] 4))
  217.  
  218. (defun comp-add-constant (const) (lisp-code "\nMÿ€•KK\"hF#Hi" [assoc const comp-constant-alist comp-constant-index] 3))
  219.  
  220. (defun comp-compile-body (body) (lisp-code "lü€Ž\tHû€°nþ€°L\tHMþ€§\tH†iF&†HMF Hû€Ž" [body comp-write-op 73 comp-inc-stack comp-compile-form 72 comp-current-stack] 2))
  221.  
  222. (defun comp-compile-lambda (list) (lisp-code "DQI23Lqü€«M#P†ü€¢‡P\tû€¥P+F\"û€ºJü€¹P*F\"û€ºIHˆ‰ŠK\tIK\nE" [2 list new-head body lambda 1 comp-write-docs-p add-doc-string nconc compile-top-level-form progn] 5))
  223.  
  224. (defmacro comp-make-label nil (lisp-code "" [(cons nil nil)] 1))
  225.  
  226. (defun comp-compile-jmp (opcode label) (lisp-code "\tHLpü€žLj^\tHL_^\tû€¶Jü€µ†MKOH†‡VF&†û€¶I" [comp-byte-out opcode label 128 -7 127 comp-output-pc 2] 4))
  227.  
  228. (defun comp-set-label (label) (lisp-code "dþ€‰\tHNHMF$Hnþ€»†j^LK‡_^LhKˆKKF&ˆHMF$Hû€“" [comp-output-pc 16383 comp-error "Jump destination overflow!" label 128 -7 127 comp-output] 4))
  229.  
  230. (defun comp-write-op (opcode &optional arg) (lisp-code "lü€‹\tû€Þgü€™V\tû€Þgü€®V\tH†^\tû€Þ‡gü€ÑˆV\tH†‰j^\tH†_^\tû€ÞJü€ÝŠ‹\tû€ÞI" [arg comp-byte-out opcode 5 127 6 128 16383 7 -7 comp-error "Opcode overflow!"] 4))
  231.  
  232. (defun comp-byte-out (byte) (lisp-code "KK\"hF!" [byte comp-output-pc comp-output] 2))
  233.  
  234. (put (quote if) (quote compile-fun) (quote comp-compile-if))
  235.  
  236. (defun comp-compile-if (form) (lisp-code "P\tHTbü€®DIIK4†\nH‡iF&‡HˆP\tH‰\tEû€ìDIIK4IIK6Š‹Š\nH‡iF&‡HˆP\tHŒ\nH‰Š\tH‡iF&‡HQ\tH‰\tE" [comp-compile-form 1 form 3 end-label comp-compile-jmp 254 comp-current-stack 2 comp-set-label else-label 252 251 comp-compile-body] 3))
  237.  
  238. (put (quote when) (quote compile-fun) (quote comp-compile-when))
  239.  
  240. (defun comp-compile-when (form) (lisp-code "P\tHDIIK3\nH†iF&†H‡ˆQ\tH‰\tE" [comp-compile-form 1 form end-label comp-compile-jmp 254 comp-current-stack comp-compile-body 2 comp-set-label] 3))
  241.  
  242. (put (quote unless) (quote compile-fun) (quote comp-compile-unless))
  243.  
  244. (defun comp-compile-unless (form) (lisp-code "P\tHDIIK3\nH†iF&†H‡ˆQ\tH‰\tE" [comp-compile-form 1 form end-label comp-compile-jmp 255 comp-current-stack comp-compile-body 2 comp-set-label] 3))
  245.  
  246. (put (quote quote) (quote compile-fun) (quote comp-compile-quote))
  247.  
  248. (defun comp-compile-quote (form) (lisp-code "ML\t" [comp-compile-constant form] 2))
  249.  
  250. (put (quote function) (quote compile-fun) (quote comp-compile-function))
  251.  
  252. (defun comp-compile-function (form) (lisp-code "MLF Hyü€‘\tû€–\t\t" [form comp-compile-constant comp-compile-lambda] 3))
  253.  
  254. (put (quote while) (quote compile-fun) (quote comp-compile-while))
  255.  
  256. (defun comp-compile-while (form) (lisp-code "DIIK0IIK1\tHP\tH†‡\nHˆiF&ˆH‰ŠQ\tH‹Œ\tHˆiF&ˆH†\nH\tHŽE" [tst-label end-label comp-set-label comp-compile-form 1 form comp-compile-jmp 254 comp-current-stack comp-compile-body 2 comp-write-op 72 251 comp-inc-stack] 3))
  257.  
  258. (put (quote progn) (quote compile-fun) (quote comp-compile-progn))
  259.  
  260. (defun comp-compile-progn (form) (lisp-code "M\t" [comp-compile-body form] 2))
  261.  
  262. (put (quote prog1) (quote compile-fun) (quote comp-compile-prog1))
  263.  
  264. (defun comp-compile-prog1 (form) (lisp-code "P\tHQ\tH†\tH‡iF&‡" [comp-compile-form 1 form comp-compile-body 2 comp-write-op 72 comp-current-stack] 3))
  265.  
  266. (put (quote prog2) (quote compile-fun) (quote comp-compile-prog2))
  267.  
  268. (defun comp-compile-prog2 (form) (lisp-code "P\tH\tHiF%H†P\tH‡ˆQ\tH\tHiF%" [comp-compile-form 1 form comp-write-op 72 comp-current-stack 2 comp-compile-body 3] 3))
  269.  
  270. (put (quote setq) (quote compile-fun) (quote comp-compile-setq))
  271.  
  272. (defun comp-compile-setq (form) (lisp-code "MF Hnþ€Mnþ€¾ML\tHQnÿ€£\tHH†‡L\t\nHˆiF&ˆHQF Hû€…" [form comp-compile-form 2 comp-write-op 70 comp-inc-stack 32 comp-add-constant comp-current-stack] 4))
  273.  
  274. (put (quote set) (quote compile-fun) (quote comp-compile-set))
  275.  
  276. (defun comp-compile-set (form) (lisp-code "P\tH\tHH†P\tH‡\tHˆXF&ˆ" [comp-compile-form 2 form comp-write-op 70 comp-inc-stack 1 65 comp-current-stack] 3))
  277.  
  278. (put (quote fset) (quote compile-fun) (quote comp-compile-fset))
  279.  
  280. (defun comp-compile-fset (form) (lisp-code "P\tH\tHH†P\tH‡\tHˆXF&ˆ" [comp-compile-form 2 form comp-write-op 70 comp-inc-stack 1 67 comp-current-stack] 3))
  281.  
  282. (put (quote let*) (quote compile-fun) (quote comp-compile-let*))
  283.  
  284. (defun comp-compile-let* (form) (lisp-code "DML1\tHnþ€ÔLnü€ªDL4M\tH†‡L\t\nEû€ÄJü€Ãˆ\tH‰H†‡L\t\nû€ÄIHŠiF&ŠHMF!Hû€‰H‹Q\tHŒ\tE" [form list comp-write-op 68 tmp comp-compile-body 48 comp-add-constant 73 comp-inc-stack comp-current-stack 2 69] 4))
  285.  
  286. (put (quote let) (quote compile-fun) (quote comp-compile-let))
  287.  
  288. (defun comp-compile-let (form) (lisp-code "DMLI12\tHnþ€ÆLnü€¦LLKF!HLM\tû€½Jü€¼LKF!H†\tH‡û€½IHMF\"Hû€‹Hnþ€åˆ‰L\t\nHŠiF&ŠHMF!Hû€ÇH‹Q\tHŒ\tE" [form sym-stk list comp-write-op 68 comp-compile-body 73 comp-inc-stack 48 comp-add-constant comp-current-stack 2 69] 4))
  289.  
  290. (put (quote defun) (quote compile-fun) (quote comp-compile-defun))
  291.  
  292. (defun comp-compile-defun (form) (lisp-code "P\tH\tHH†‡ˆQK\t\tH‰\tHŠ\tH‹ˆXF&‹" [comp-compile-constant 1 form comp-write-op 70 comp-inc-stack comp-compile-lambda lambda 2 71 67 comp-current-stack] 5))
  293.  
  294. (put (quote defmacro) (quote compile-fun) (quote comp-compile-defmacro))
  295.  
  296. (defun comp-compile-defmacro (form) (lisp-code "P\tH\tHH†‡ˆ‰QK\tK\tHŠ\tH‹\tHŒ‰XF&Œ" [comp-compile-constant 1 form comp-write-op 70 comp-inc-stack macro comp-compile-lambda lambda 2 71 67 comp-current-stack] 6))
  297.  
  298. (put (quote cond) (quote compile-fun) (quote comp-compile-cond))
  299.  
  300. (defun comp-compile-cond (form) (lisp-code "DIIK0MF!Hnþ€ßDLIIK23L\tHiF%HMnü€Ç†‡\nHˆM\tHiF%H†‰\nHŠ\tû€ÕJü€Ô†‹\nû€ÕIHMF!EHû€ŠHŒ\tHŽHŠ\tE" [end-label form next-label subl comp-compile-form comp-current-stack comp-compile-jmp 252 comp-compile-body 251 comp-set-label 255 comp-write-op 73 comp-inc-stack] 3))
  301.  
  302. (put (quote or) (quote compile-fun) (quote comp-compile-or))
  303.  
  304. (defun comp-compile-or (form) (lisp-code "DIIK0MF!Hnþ€«L\tHiF#HMþ€¢\nHMF!Hû€ŠH†H‡\tE" [end-label form comp-compile-form comp-current-stack comp-compile-jmp 255 comp-inc-stack comp-set-label] 3))
  305.  
  306. (put (quote and) (quote compile-fun) (quote comp-compile-and))
  307.  
  308. (defun comp-compile-and (form) (lisp-code "DIIK0MF!Hnþ€«L\tHiF#HMþ€¢\nHMF!Hû€ŠH†H‡\tE" [end-label form comp-compile-form comp-current-stack comp-compile-jmp 254 comp-inc-stack comp-set-label] 3))
  309.  
  310. (put (quote catch) (quote compile-fun) (quote comp-compile-catch))
  311.  
  312. (defun comp-compile-catch (form) (lisp-code "QK\t\tHP\tH†‡\tHˆiF&ˆ" [comp-compile-constant compile-top-level-form progn 2 form 1 comp-write-op 115 comp-current-stack] 5))
  313.  
  314. (put (quote unwind-protect) (quote compile-fun) (quote comp-compile-unwind-pro))
  315.  
  316. (defun comp-compile-unwind-pro (form) (lisp-code "QK\t\tH†\tH‡iF&‡Hˆ‰P\tHŠ\t" [comp-compile-constant compile-top-level-form progn 2 form comp-write-op 117 comp-current-stack comp-compile-form 1 118] 5))
  317.  
  318. (put (quote error-protect) (quote compile-fun) (quote comp-compile-error-protect))
  319.  
  320. (defun comp-compile-error-protect (form) (lisp-code "D1MF\"Hnÿ€‘\nH†L\t\tHMF\"Hnþ€ÑDL6‡‡nÿ€´ˆ\nH‡L†‰‡MK\t*\tHM\"hF!EHû€ŸHh\tHŠ‹\tHŒXF&ŒE" [0 i form comp-error "No FORM to `error-protect'" comp-compile-constant compile-top-level-form handler "Badly formed handler to `error-protect'" progn comp-write-op 124 comp-current-stack] 5))
  321.  
  322. (put (quote list) (quote compile-fun) (quote comp-compile-list))
  323.  
  324. (defun comp-compile-list (form) (lisp-code "D1MF\"Hnþ€L\tHh!MF\"Hû€ˆH\nH†iXF&†E" [0 count form comp-compile-form comp-write-op 40 comp-current-stack] 3))
  325.  
  326. (put (quote with-buffer) (quote compile-fun) (quote comp-compile-with-buffer))
  327.  
  328. (defun comp-compile-with-buffer (form) (lisp-code "P\tH\tH†Q\tH‡\tH\tHˆ\tH‰iF&‰" [comp-compile-form 1 form comp-write-op 177 comp-compile-body 2 71 72 comp-current-stack] 3))
  329.  
  330. (put (quote with-window) (quote compile-fun) (quote comp-compile-with-window))
  331.  
  332. (defun comp-compile-with-window (form) (lisp-code "P\tH\tH†Q\tH‡\tH\tHˆ\tH‰iF&‰" [comp-compile-form 1 form comp-write-op 182 comp-compile-body 2 71 72 comp-current-stack] 3))
  333.  
  334. (put (quote -) (quote compile-fun) (quote comp-compile-minus))
  335.  
  336. (put (quote -) (quote compile-opcode) op-minus-2)
  337.  
  338. (defun comp-compile-minus (form) (lisp-code "Tcü€\tû€–ML\tH\t" [form 2 comp-compile-binary-op comp-compile-form comp-write-op 87] 2))
  339.  
  340. (defun comp-compile-0-args (form) (lisp-code "Lz\nH" [comp-write-op form compile-opcode 0 comp-inc-stack] 3))
  341.  
  342. (defun comp-compile-1-args (form) (lisp-code "P\tHLz\n" [comp-compile-form 1 form comp-write-op compile-opcode 0] 3))
  343.  
  344. (defun comp-compile-2-args (form) (lisp-code "P\tHP\tHLz†\nH‡iF&‡" [comp-compile-form 1 form 2 comp-write-op compile-opcode 0 comp-current-stack] 3))
  345.  
  346. (defun comp-compile-3-args (form) (lisp-code "P\tHP\tHP\tHL†z‡\nHˆXF&ˆ" [comp-compile-form 1 form 2 3 comp-write-op compile-opcode 0 comp-current-stack] 3))
  347.  
  348. (defun comp-compile-binary-op (form) (lisp-code "DLz2MF HTeÿ€–\nH†L\tHMF Hnþ€Á†L\tH‡\tHˆiF&ˆHMF Hû€¢E" [form compile-opcode opcode 2 comp-error "Too few args to binary operator" comp-compile-form comp-write-op comp-current-stack] 3))
  349.  
  350. (put (quote cons) (quote compile-fun) (quote comp-compile-2-args))
  351.  
  352. (put (quote cons) (quote compile-opcode) op-cons)
  353.  
  354. (put (quote car) (quote compile-fun) (quote comp-compile-1-args))
  355.  
  356. (put (quote car) (quote compile-opcode) op-car)
  357.  
  358. (put (quote cdr) (quote compile-fun) (quote comp-compile-1-args))
  359.  
  360. (put (quote cdr) (quote compile-opcode) op-cdr)
  361.  
  362. (put (quote rplaca) (quote compile-fun) (quote comp-compile-2-args))
  363.  
  364. (put (quote rplaca) (quote compile-opcode) op-rplaca)
  365.  
  366. (put (quote rplacd) (quote compile-fun) (quote comp-compile-2-args))
  367.  
  368. (put (quote rplacd) (quote compile-opcode) op-rplacd)
  369.  
  370. (put (quote nth) (quote compile-fun) (quote comp-compile-2-args))
  371.  
  372. (put (quote nth) (quote compile-opcode) op-nth)
  373.  
  374. (put (quote nthcdr) (quote compile-fun) (quote comp-compile-2-args))
  375.  
  376. (put (quote nthcdr) (quote compile-opcode) op-nthcdr)
  377.  
  378. (put (quote aset) (quote compile-fun) (quote comp-compile-3-args))
  379.  
  380. (put (quote aset) (quote compile-opcode) op-aset)
  381.  
  382. (put (quote aref) (quote compile-fun) (quote comp-compile-2-args))
  383.  
  384. (put (quote aref) (quote compile-opcode) op-aref)
  385.  
  386. (put (quote length) (quote compile-fun) (quote comp-compile-1-args))
  387.  
  388. (put (quote length) (quote compile-opcode) op-length)
  389.  
  390. (put (quote eval) (quote compile-fun) (quote comp-compile-1-args))
  391.  
  392. (put (quote eval) (quote compile-opcode) op-eval)
  393.  
  394. (put (quote +) (quote compile-fun) (quote comp-compile-binary-op))
  395.  
  396. (put (quote +) (quote compile-opcode) op-plus-2)
  397.  
  398. (put (quote *) (quote compile-fun) (quote comp-compile-binary-op))
  399.  
  400. (put (quote *) (quote compile-opcode) op-product-2)
  401.  
  402. (put (quote /) (quote compile-fun) (quote comp-compile-binary-op))
  403.  
  404. (put (quote /) (quote compile-opcode) op-divide-2)
  405.  
  406. (put (quote mod) (quote compile-fun) (quote comp-compile-binary-op))
  407.  
  408. (put (quote mod) (quote compile-opcode) op-mod-2)
  409.  
  410. (put (quote bit-not) (quote compile-fun) (quote comp-compile-1-args))
  411.  
  412. (put (quote bit-not) (quote compile-opcode) op-bit-not)
  413.  
  414. (put (quote not) (quote compile-fun) (quote comp-compile-1-args))
  415.  
  416. (put (quote not) (quote compile-opcode) op-not)
  417.  
  418. (put (quote bit-or) (quote compile-fun) (quote comp-compile-binary-op))
  419.  
  420. (put (quote bit-or) (quote compile-opcode) op-bit-or-2)
  421.  
  422. (put (quote bit-and) (quote compile-fun) (quote comp-compile-binary-op))
  423.  
  424. (put (quote bit-and) (quote compile-opcode) op-bit-and-2)
  425.  
  426. (put (quote equal) (quote compile-fun) (quote comp-compile-2-args))
  427.  
  428. (put (quote equal) (quote compile-opcode) op-equal)
  429.  
  430. (put (quote eq) (quote compile-fun) (quote comp-compile-2-args))
  431.  
  432. (put (quote eq) (quote compile-opcode) op-eq)
  433.  
  434. (put (quote =) (quote compile-fun) (quote comp-compile-2-args))
  435.  
  436. (put (quote =) (quote compile-opcode) op-num-eq)
  437.  
  438. (put (quote /=) (quote compile-fun) (quote comp-compile-2-args))
  439.  
  440. (put (quote /=) (quote compile-opcode) op-num-noteq)
  441.  
  442. (put (quote >) (quote compile-fun) (quote comp-compile-2-args))
  443.  
  444. (put (quote >) (quote compile-opcode) op-gtthan)
  445.  
  446. (put (quote <) (quote compile-fun) (quote comp-compile-2-args))
  447.  
  448. (put (quote <) (quote compile-opcode) op-ltthan)
  449.  
  450. (put (quote >=) (quote compile-fun) (quote comp-compile-2-args))
  451.  
  452. (put (quote >=) (quote compile-opcode) op-gethan)
  453.  
  454. (put (quote <=) (quote compile-fun) (quote comp-compile-2-args))
  455.  
  456. (put (quote <=) (quote compile-opcode) op-lethan)
  457.  
  458. (put (quote 1+) (quote compile-fun) (quote comp-compile-1-args))
  459.  
  460. (put (quote 1+) (quote compile-opcode) op-inc)
  461.  
  462. (put (quote 1-) (quote compile-fun) (quote comp-compile-1-args))
  463.  
  464. (put (quote 1-) (quote compile-opcode) op-dec)
  465.  
  466. (put (quote lsh) (quote compile-fun) (quote comp-compile-2-args))
  467.  
  468. (put (quote lsh) (quote compile-opcode) op-lsh)
  469.  
  470. (put (quote zerop) (quote compile-fun) (quote comp-compile-1-args))
  471.  
  472. (put (quote zerop) (quote compile-opcode) op-zerop)
  473.  
  474. (put (quote null) (quote compile-fun) (quote comp-compile-1-args))
  475.  
  476. (put (quote null) (quote compile-opcode) op-null)
  477.  
  478. (put (quote atom) (quote compile-fun) (quote comp-compile-1-args))
  479.  
  480. (put (quote atom) (quote compile-opcode) op-atom)
  481.  
  482. (put (quote consp) (quote compile-fun) (quote comp-compile-1-args))
  483.  
  484. (put (quote consp) (quote compile-opcode) op-consp)
  485.  
  486. (put (quote listp) (quote compile-fun) (quote comp-compile-1-args))
  487.  
  488. (put (quote listp) (quote compile-opcode) op-listp)
  489.  
  490. (put (quote numberp) (quote compile-fun) (quote comp-compile-1-args))
  491.  
  492. (put (quote numberp) (quote compile-opcode) op-numberp)
  493.  
  494. (put (quote stringp) (quote compile-fun) (quote comp-compile-1-args))
  495.  
  496. (put (quote stringp) (quote compile-opcode) op-stringp)
  497.  
  498. (put (quote vectorp) (quote compile-fun) (quote comp-compile-1-args))
  499.  
  500. (put (quote vectorp) (quote compile-opcode) op-vectorp)
  501.  
  502. (put (quote throw) (quote compile-fun) (quote comp-compile-2-args))
  503.  
  504. (put (quote throw) (quote compile-opcode) op-throw)
  505.  
  506. (put (quote fboundp) (quote compile-fun) (quote comp-compile-1-args))
  507.  
  508. (put (quote fboundp) (quote compile-opcode) op-fboundp)
  509.  
  510. (put (quote boundp) (quote compile-fun) (quote comp-compile-1-args))
  511.  
  512. (put (quote boundp) (quote compile-opcode) op-boundp)
  513.  
  514. (put (quote symbolp) (quote compile-fun) (quote comp-compile-1-args))
  515.  
  516. (put (quote symbolp) (quote compile-opcode) op-symbolp)
  517.  
  518. (put (quote get) (quote compile-fun) (quote comp-compile-2-args))
  519.  
  520. (put (quote get) (quote compile-opcode) op-get)
  521.  
  522. (put (quote put) (quote compile-fun) (quote comp-compile-3-args))
  523.  
  524. (put (quote put) (quote compile-opcode) op-put)
  525.  
  526. (put (quote signal) (quote compile-fun) (quote comp-compile-2-args))
  527.  
  528. (put (quote signal) (quote compile-opcode) op-signal)
  529.  
  530. (put (quote set-current-buffer) (quote compile-fun) (quote comp-compile-2-args))
  531.  
  532. (put (quote set-current-buffer) (quote compile-opcode) op-set-current-buffer)
  533.  
  534. (put (quote current-buffer) (quote compile-fun) (quote comp-compile-1-args))
  535.  
  536. (put (quote current-buffer) (quote compile-opcode) op-current-buffer)
  537.  
  538. (put (quote bufferp) (quote compile-fun) (quote comp-compile-1-args))
  539.  
  540. (put (quote bufferp) (quote compile-opcode) op-bufferp)
  541.  
  542. (put (quote mark-p) (quote compile-fun) (quote comp-compile-1-args))
  543.  
  544. (put (quote mark-p) (quote compile-opcode) op-mark-p)
  545.  
  546. (put (quote windowp) (quote compile-fun) (quote comp-compile-1-args))
  547.  
  548. (put (quote windowp) (quote compile-opcode) op-windowp)
  549.