immunio 0.15.4 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +0 -27
  3. data/ext/immunio/Rakefile +9 -0
  4. data/lib/immunio/plugins/active_record.rb +1 -1
  5. data/lib/immunio/plugins/active_record_relation.rb +1 -1
  6. data/lib/immunio/plugins/environment_reporter.rb +20 -0
  7. data/lib/immunio/rufus_lua_ext/ref.rb +1 -3
  8. data/lib/immunio/version.rb +1 -1
  9. data/lib/immunio/vm.rb +1 -2
  10. data/lua-hooks/Makefile +97 -0
  11. data/lua-hooks/ext/all.c +41 -52
  12. data/lua-hooks/ext/all.o +0 -0
  13. data/lua-hooks/ext/libinjection/libinjection_html5.o +0 -0
  14. data/lua-hooks/ext/libinjection/libinjection_sqli.o +0 -0
  15. data/lua-hooks/ext/libinjection/libinjection_xss.o +0 -0
  16. data/lua-hooks/ext/libinjection/lualib.c +2 -2
  17. data/lua-hooks/ext/lpeg/lpcap.c +2 -2
  18. data/lua-hooks/ext/lpeg/lpcap.o +0 -0
  19. data/lua-hooks/ext/lpeg/lpcode.c +2 -2
  20. data/lua-hooks/ext/lpeg/lpcode.h +1 -1
  21. data/lua-hooks/ext/lpeg/lpcode.o +0 -0
  22. data/lua-hooks/ext/lpeg/lpprint.o +0 -0
  23. data/lua-hooks/ext/lpeg/lptree.c +2 -2
  24. data/lua-hooks/ext/lpeg/lptypes.h +1 -1
  25. data/lua-hooks/ext/lpeg/lpvm.c +2 -2
  26. data/lua-hooks/ext/lpeg/lpvm.o +0 -0
  27. data/lua-hooks/ext/lua-cmsgpack/lua_cmsgpack.c +16 -3
  28. data/lua-hooks/ext/lua-snapshot/snapshot.c +14 -7
  29. data/lua-hooks/ext/luajit/COPYRIGHT +56 -0
  30. data/lua-hooks/ext/luajit/Makefile +159 -0
  31. data/lua-hooks/ext/luajit/README +16 -0
  32. data/lua-hooks/ext/luajit/doc/bluequad-print.css +166 -0
  33. data/lua-hooks/ext/luajit/doc/bluequad.css +325 -0
  34. data/lua-hooks/ext/luajit/doc/changes.html +804 -0
  35. data/lua-hooks/ext/luajit/doc/contact.html +104 -0
  36. data/lua-hooks/ext/luajit/doc/ext_c_api.html +189 -0
  37. data/lua-hooks/ext/luajit/doc/ext_ffi.html +332 -0
  38. data/lua-hooks/ext/luajit/doc/ext_ffi_api.html +570 -0
  39. data/lua-hooks/ext/luajit/doc/ext_ffi_semantics.html +1261 -0
  40. data/lua-hooks/ext/luajit/doc/ext_ffi_tutorial.html +603 -0
  41. data/lua-hooks/ext/luajit/doc/ext_jit.html +201 -0
  42. data/lua-hooks/ext/luajit/doc/ext_profiler.html +365 -0
  43. data/lua-hooks/ext/luajit/doc/extensions.html +448 -0
  44. data/lua-hooks/ext/luajit/doc/faq.html +186 -0
  45. data/lua-hooks/ext/luajit/doc/img/contact.png +0 -0
  46. data/lua-hooks/ext/luajit/doc/install.html +659 -0
  47. data/lua-hooks/ext/luajit/doc/luajit.html +236 -0
  48. data/lua-hooks/ext/luajit/doc/running.html +309 -0
  49. data/lua-hooks/ext/luajit/doc/status.html +118 -0
  50. data/lua-hooks/ext/luajit/dynasm/dasm_arm.h +456 -0
  51. data/lua-hooks/ext/luajit/dynasm/dasm_arm.lua +1125 -0
  52. data/lua-hooks/ext/luajit/dynasm/dasm_arm64.h +518 -0
  53. data/lua-hooks/ext/luajit/dynasm/dasm_arm64.lua +1166 -0
  54. data/lua-hooks/ext/luajit/dynasm/dasm_mips.h +416 -0
  55. data/lua-hooks/ext/luajit/dynasm/dasm_mips.lua +953 -0
  56. data/lua-hooks/ext/luajit/dynasm/dasm_ppc.h +419 -0
  57. data/lua-hooks/ext/luajit/dynasm/dasm_ppc.lua +1919 -0
  58. data/lua-hooks/ext/luajit/dynasm/dasm_proto.h +83 -0
  59. data/lua-hooks/ext/luajit/dynasm/dasm_x64.lua +12 -0
  60. data/lua-hooks/ext/luajit/dynasm/dasm_x86.h +471 -0
  61. data/lua-hooks/ext/luajit/dynasm/dasm_x86.lua +1945 -0
  62. data/lua-hooks/ext/luajit/dynasm/dynasm.lua +1094 -0
  63. data/lua-hooks/ext/luajit/etc/luajit.1 +88 -0
  64. data/lua-hooks/ext/luajit/etc/luajit.pc +25 -0
  65. data/lua-hooks/ext/luajit/src/Makefile +697 -0
  66. data/lua-hooks/ext/luajit/src/Makefile.dep +244 -0
  67. data/lua-hooks/ext/luajit/src/host/README +4 -0
  68. data/lua-hooks/ext/luajit/src/host/buildvm +0 -0
  69. data/lua-hooks/ext/luajit/src/host/buildvm.c +518 -0
  70. data/lua-hooks/ext/luajit/src/host/buildvm.h +105 -0
  71. data/lua-hooks/ext/luajit/src/host/buildvm.o +0 -0
  72. data/lua-hooks/ext/luajit/src/host/buildvm_arch.h +7449 -0
  73. data/lua-hooks/ext/luajit/src/host/buildvm_asm.c +345 -0
  74. data/lua-hooks/ext/luajit/src/host/buildvm_asm.o +0 -0
  75. data/lua-hooks/ext/luajit/src/host/buildvm_fold.c +229 -0
  76. data/lua-hooks/ext/luajit/src/host/buildvm_fold.o +0 -0
  77. data/lua-hooks/ext/luajit/src/host/buildvm_lib.c +457 -0
  78. data/lua-hooks/ext/luajit/src/host/buildvm_lib.o +0 -0
  79. data/lua-hooks/ext/luajit/src/host/buildvm_libbc.h +45 -0
  80. data/lua-hooks/ext/luajit/src/host/buildvm_peobj.c +368 -0
  81. data/lua-hooks/ext/luajit/src/host/buildvm_peobj.o +0 -0
  82. data/lua-hooks/ext/luajit/src/host/genlibbc.lua +197 -0
  83. data/lua-hooks/ext/luajit/src/host/genminilua.lua +428 -0
  84. data/lua-hooks/ext/luajit/src/host/minilua +0 -0
  85. data/lua-hooks/ext/luajit/src/host/minilua.c +7770 -0
  86. data/lua-hooks/ext/luajit/src/host/minilua.o +0 -0
  87. data/lua-hooks/ext/luajit/src/jit/bc.lua +190 -0
  88. data/lua-hooks/ext/luajit/src/jit/bcsave.lua +661 -0
  89. data/lua-hooks/ext/luajit/src/jit/dis_arm.lua +689 -0
  90. data/lua-hooks/ext/luajit/src/jit/dis_mips.lua +428 -0
  91. data/lua-hooks/ext/luajit/src/jit/dis_mipsel.lua +17 -0
  92. data/lua-hooks/ext/luajit/src/jit/dis_ppc.lua +591 -0
  93. data/lua-hooks/ext/luajit/src/jit/dis_x64.lua +17 -0
  94. data/lua-hooks/ext/luajit/src/jit/dis_x86.lua +838 -0
  95. data/lua-hooks/ext/luajit/src/jit/dump.lua +706 -0
  96. data/lua-hooks/ext/luajit/src/jit/p.lua +310 -0
  97. data/lua-hooks/ext/luajit/src/jit/v.lua +170 -0
  98. data/lua-hooks/ext/luajit/src/jit/vmdef.lua +362 -0
  99. data/lua-hooks/ext/luajit/src/jit/zone.lua +45 -0
  100. data/lua-hooks/ext/{lua → luajit/src}/lauxlib.h +10 -17
  101. data/lua-hooks/ext/luajit/src/lib_aux.c +356 -0
  102. data/lua-hooks/ext/luajit/src/lib_aux.o +0 -0
  103. data/lua-hooks/ext/luajit/src/lib_aux_dyn.o +0 -0
  104. data/lua-hooks/ext/luajit/src/lib_base.c +664 -0
  105. data/lua-hooks/ext/luajit/src/lib_base.o +0 -0
  106. data/lua-hooks/ext/luajit/src/lib_base_dyn.o +0 -0
  107. data/lua-hooks/ext/luajit/src/lib_bit.c +180 -0
  108. data/lua-hooks/ext/luajit/src/lib_bit.o +0 -0
  109. data/lua-hooks/ext/luajit/src/lib_bit_dyn.o +0 -0
  110. data/lua-hooks/ext/luajit/src/lib_debug.c +405 -0
  111. data/lua-hooks/ext/luajit/src/lib_debug.o +0 -0
  112. data/lua-hooks/ext/luajit/src/lib_debug_dyn.o +0 -0
  113. data/lua-hooks/ext/luajit/src/lib_ffi.c +872 -0
  114. data/lua-hooks/ext/luajit/src/lib_ffi.o +0 -0
  115. data/lua-hooks/ext/luajit/src/lib_ffi_dyn.o +0 -0
  116. data/lua-hooks/ext/luajit/src/lib_init.c +55 -0
  117. data/lua-hooks/ext/luajit/src/lib_init.o +0 -0
  118. data/lua-hooks/ext/luajit/src/lib_init_dyn.o +0 -0
  119. data/lua-hooks/ext/luajit/src/lib_io.c +541 -0
  120. data/lua-hooks/ext/luajit/src/lib_io.o +0 -0
  121. data/lua-hooks/ext/luajit/src/lib_io_dyn.o +0 -0
  122. data/lua-hooks/ext/luajit/src/lib_jit.c +767 -0
  123. data/lua-hooks/ext/luajit/src/lib_jit.o +0 -0
  124. data/lua-hooks/ext/luajit/src/lib_jit_dyn.o +0 -0
  125. data/lua-hooks/ext/luajit/src/lib_math.c +230 -0
  126. data/lua-hooks/ext/luajit/src/lib_math.o +0 -0
  127. data/lua-hooks/ext/luajit/src/lib_math_dyn.o +0 -0
  128. data/lua-hooks/ext/luajit/src/lib_os.c +292 -0
  129. data/lua-hooks/ext/luajit/src/lib_os.o +0 -0
  130. data/lua-hooks/ext/luajit/src/lib_os_dyn.o +0 -0
  131. data/lua-hooks/ext/luajit/src/lib_package.c +610 -0
  132. data/lua-hooks/ext/luajit/src/lib_package.o +0 -0
  133. data/lua-hooks/ext/luajit/src/lib_package_dyn.o +0 -0
  134. data/lua-hooks/ext/luajit/src/lib_string.c +752 -0
  135. data/lua-hooks/ext/luajit/src/lib_string.o +0 -0
  136. data/lua-hooks/ext/luajit/src/lib_string_dyn.o +0 -0
  137. data/lua-hooks/ext/luajit/src/lib_table.c +307 -0
  138. data/lua-hooks/ext/luajit/src/lib_table.o +0 -0
  139. data/lua-hooks/ext/luajit/src/lib_table_dyn.o +0 -0
  140. data/lua-hooks/ext/luajit/src/libluajit.a +0 -0
  141. data/lua-hooks/ext/luajit/src/libluajit.so +0 -0
  142. data/lua-hooks/ext/luajit/src/lj.supp +26 -0
  143. data/lua-hooks/ext/luajit/src/lj_alloc.c +1398 -0
  144. data/lua-hooks/ext/luajit/src/lj_alloc.h +17 -0
  145. data/lua-hooks/ext/luajit/src/lj_alloc.o +0 -0
  146. data/lua-hooks/ext/luajit/src/lj_alloc_dyn.o +0 -0
  147. data/lua-hooks/ext/luajit/src/lj_api.c +1210 -0
  148. data/lua-hooks/ext/luajit/src/lj_api.o +0 -0
  149. data/lua-hooks/ext/luajit/src/lj_api_dyn.o +0 -0
  150. data/lua-hooks/ext/luajit/src/lj_arch.h +509 -0
  151. data/lua-hooks/ext/luajit/src/lj_asm.c +2278 -0
  152. data/lua-hooks/ext/luajit/src/lj_asm.h +17 -0
  153. data/lua-hooks/ext/luajit/src/lj_asm.o +0 -0
  154. data/lua-hooks/ext/luajit/src/lj_asm_arm.h +2217 -0
  155. data/lua-hooks/ext/luajit/src/lj_asm_dyn.o +0 -0
  156. data/lua-hooks/ext/luajit/src/lj_asm_mips.h +1833 -0
  157. data/lua-hooks/ext/luajit/src/lj_asm_ppc.h +2015 -0
  158. data/lua-hooks/ext/luajit/src/lj_asm_x86.h +2634 -0
  159. data/lua-hooks/ext/luajit/src/lj_bc.c +14 -0
  160. data/lua-hooks/ext/luajit/src/lj_bc.h +265 -0
  161. data/lua-hooks/ext/luajit/src/lj_bc.o +0 -0
  162. data/lua-hooks/ext/luajit/src/lj_bc_dyn.o +0 -0
  163. data/lua-hooks/ext/luajit/src/lj_bcdef.h +220 -0
  164. data/lua-hooks/ext/luajit/src/lj_bcdump.h +68 -0
  165. data/lua-hooks/ext/luajit/src/lj_bcread.c +457 -0
  166. data/lua-hooks/ext/luajit/src/lj_bcread.o +0 -0
  167. data/lua-hooks/ext/luajit/src/lj_bcread_dyn.o +0 -0
  168. data/lua-hooks/ext/luajit/src/lj_bcwrite.c +361 -0
  169. data/lua-hooks/ext/luajit/src/lj_bcwrite.o +0 -0
  170. data/lua-hooks/ext/luajit/src/lj_bcwrite_dyn.o +0 -0
  171. data/lua-hooks/ext/luajit/src/lj_buf.c +234 -0
  172. data/lua-hooks/ext/luajit/src/lj_buf.h +105 -0
  173. data/lua-hooks/ext/luajit/src/lj_buf.o +0 -0
  174. data/lua-hooks/ext/luajit/src/lj_buf_dyn.o +0 -0
  175. data/lua-hooks/ext/luajit/src/lj_carith.c +429 -0
  176. data/lua-hooks/ext/luajit/src/lj_carith.h +37 -0
  177. data/lua-hooks/ext/luajit/src/lj_carith.o +0 -0
  178. data/lua-hooks/ext/luajit/src/lj_carith_dyn.o +0 -0
  179. data/lua-hooks/ext/luajit/src/lj_ccall.c +984 -0
  180. data/lua-hooks/ext/luajit/src/lj_ccall.h +178 -0
  181. data/lua-hooks/ext/luajit/src/lj_ccall.o +0 -0
  182. data/lua-hooks/ext/luajit/src/lj_ccall_dyn.o +0 -0
  183. data/lua-hooks/ext/luajit/src/lj_ccallback.c +712 -0
  184. data/lua-hooks/ext/luajit/src/lj_ccallback.h +25 -0
  185. data/lua-hooks/ext/luajit/src/lj_ccallback.o +0 -0
  186. data/lua-hooks/ext/luajit/src/lj_ccallback_dyn.o +0 -0
  187. data/lua-hooks/ext/luajit/src/lj_cconv.c +752 -0
  188. data/lua-hooks/ext/luajit/src/lj_cconv.h +70 -0
  189. data/lua-hooks/ext/luajit/src/lj_cconv.o +0 -0
  190. data/lua-hooks/ext/luajit/src/lj_cconv_dyn.o +0 -0
  191. data/lua-hooks/ext/luajit/src/lj_cdata.c +288 -0
  192. data/lua-hooks/ext/luajit/src/lj_cdata.h +76 -0
  193. data/lua-hooks/ext/luajit/src/lj_cdata.o +0 -0
  194. data/lua-hooks/ext/luajit/src/lj_cdata_dyn.o +0 -0
  195. data/lua-hooks/ext/luajit/src/lj_char.c +43 -0
  196. data/lua-hooks/ext/luajit/src/lj_char.h +42 -0
  197. data/lua-hooks/ext/luajit/src/lj_char.o +0 -0
  198. data/lua-hooks/ext/luajit/src/lj_char_dyn.o +0 -0
  199. data/lua-hooks/ext/luajit/src/lj_clib.c +418 -0
  200. data/lua-hooks/ext/luajit/src/lj_clib.h +29 -0
  201. data/lua-hooks/ext/luajit/src/lj_clib.o +0 -0
  202. data/lua-hooks/ext/luajit/src/lj_clib_dyn.o +0 -0
  203. data/lua-hooks/ext/luajit/src/lj_cparse.c +1862 -0
  204. data/lua-hooks/ext/luajit/src/lj_cparse.h +65 -0
  205. data/lua-hooks/ext/luajit/src/lj_cparse.o +0 -0
  206. data/lua-hooks/ext/luajit/src/lj_cparse_dyn.o +0 -0
  207. data/lua-hooks/ext/luajit/src/lj_crecord.c +1834 -0
  208. data/lua-hooks/ext/luajit/src/lj_crecord.h +38 -0
  209. data/lua-hooks/ext/luajit/src/lj_crecord.o +0 -0
  210. data/lua-hooks/ext/luajit/src/lj_crecord_dyn.o +0 -0
  211. data/lua-hooks/ext/luajit/src/lj_ctype.c +635 -0
  212. data/lua-hooks/ext/luajit/src/lj_ctype.h +461 -0
  213. data/lua-hooks/ext/luajit/src/lj_ctype.o +0 -0
  214. data/lua-hooks/ext/luajit/src/lj_ctype_dyn.o +0 -0
  215. data/lua-hooks/ext/luajit/src/lj_debug.c +699 -0
  216. data/lua-hooks/ext/luajit/src/lj_debug.h +65 -0
  217. data/lua-hooks/ext/luajit/src/lj_debug.o +0 -0
  218. data/lua-hooks/ext/luajit/src/lj_debug_dyn.o +0 -0
  219. data/lua-hooks/ext/luajit/src/lj_def.h +365 -0
  220. data/lua-hooks/ext/luajit/src/lj_dispatch.c +557 -0
  221. data/lua-hooks/ext/luajit/src/lj_dispatch.h +138 -0
  222. data/lua-hooks/ext/luajit/src/lj_dispatch.o +0 -0
  223. data/lua-hooks/ext/luajit/src/lj_dispatch_dyn.o +0 -0
  224. data/lua-hooks/ext/luajit/src/lj_emit_arm.h +356 -0
  225. data/lua-hooks/ext/luajit/src/lj_emit_mips.h +211 -0
  226. data/lua-hooks/ext/luajit/src/lj_emit_ppc.h +238 -0
  227. data/lua-hooks/ext/luajit/src/lj_emit_x86.h +462 -0
  228. data/lua-hooks/ext/luajit/src/lj_err.c +794 -0
  229. data/lua-hooks/ext/luajit/src/lj_err.h +41 -0
  230. data/lua-hooks/ext/luajit/src/lj_err.o +0 -0
  231. data/lua-hooks/ext/luajit/src/lj_err_dyn.o +0 -0
  232. data/lua-hooks/ext/luajit/src/lj_errmsg.h +190 -0
  233. data/lua-hooks/ext/luajit/src/lj_ff.h +18 -0
  234. data/lua-hooks/ext/luajit/src/lj_ffdef.h +209 -0
  235. data/lua-hooks/ext/luajit/src/lj_ffrecord.c +1247 -0
  236. data/lua-hooks/ext/luajit/src/lj_ffrecord.h +24 -0
  237. data/lua-hooks/ext/luajit/src/lj_ffrecord.o +0 -0
  238. data/lua-hooks/ext/luajit/src/lj_ffrecord_dyn.o +0 -0
  239. data/lua-hooks/ext/luajit/src/lj_folddef.h +1138 -0
  240. data/lua-hooks/ext/luajit/src/lj_frame.h +259 -0
  241. data/lua-hooks/ext/luajit/src/lj_func.c +185 -0
  242. data/lua-hooks/ext/luajit/src/lj_func.h +24 -0
  243. data/lua-hooks/ext/luajit/src/lj_func.o +0 -0
  244. data/lua-hooks/ext/luajit/src/lj_func_dyn.o +0 -0
  245. data/lua-hooks/ext/luajit/src/lj_gc.c +845 -0
  246. data/lua-hooks/ext/luajit/src/lj_gc.h +134 -0
  247. data/lua-hooks/ext/luajit/src/lj_gc.o +0 -0
  248. data/lua-hooks/ext/luajit/src/lj_gc_dyn.o +0 -0
  249. data/lua-hooks/ext/luajit/src/lj_gdbjit.c +787 -0
  250. data/lua-hooks/ext/luajit/src/lj_gdbjit.h +22 -0
  251. data/lua-hooks/ext/luajit/src/lj_gdbjit.o +0 -0
  252. data/lua-hooks/ext/luajit/src/lj_gdbjit_dyn.o +0 -0
  253. data/lua-hooks/ext/luajit/src/lj_ir.c +505 -0
  254. data/lua-hooks/ext/luajit/src/lj_ir.h +577 -0
  255. data/lua-hooks/ext/luajit/src/lj_ir.o +0 -0
  256. data/lua-hooks/ext/luajit/src/lj_ir_dyn.o +0 -0
  257. data/lua-hooks/ext/luajit/src/lj_ircall.h +321 -0
  258. data/lua-hooks/ext/luajit/src/lj_iropt.h +161 -0
  259. data/lua-hooks/ext/luajit/src/lj_jit.h +440 -0
  260. data/lua-hooks/ext/luajit/src/lj_lex.c +482 -0
  261. data/lua-hooks/ext/luajit/src/lj_lex.h +86 -0
  262. data/lua-hooks/ext/luajit/src/lj_lex.o +0 -0
  263. data/lua-hooks/ext/luajit/src/lj_lex_dyn.o +0 -0
  264. data/lua-hooks/ext/luajit/src/lj_lib.c +303 -0
  265. data/lua-hooks/ext/luajit/src/lj_lib.h +115 -0
  266. data/lua-hooks/ext/luajit/src/lj_lib.o +0 -0
  267. data/lua-hooks/ext/luajit/src/lj_lib_dyn.o +0 -0
  268. data/lua-hooks/ext/luajit/src/lj_libdef.h +414 -0
  269. data/lua-hooks/ext/luajit/src/lj_load.c +168 -0
  270. data/lua-hooks/ext/luajit/src/lj_load.o +0 -0
  271. data/lua-hooks/ext/luajit/src/lj_load_dyn.o +0 -0
  272. data/lua-hooks/ext/luajit/src/lj_mcode.c +386 -0
  273. data/lua-hooks/ext/luajit/src/lj_mcode.h +30 -0
  274. data/lua-hooks/ext/luajit/src/lj_mcode.o +0 -0
  275. data/lua-hooks/ext/luajit/src/lj_mcode_dyn.o +0 -0
  276. data/lua-hooks/ext/luajit/src/lj_meta.c +477 -0
  277. data/lua-hooks/ext/luajit/src/lj_meta.h +38 -0
  278. data/lua-hooks/ext/luajit/src/lj_meta.o +0 -0
  279. data/lua-hooks/ext/luajit/src/lj_meta_dyn.o +0 -0
  280. data/lua-hooks/ext/luajit/src/lj_obj.c +50 -0
  281. data/lua-hooks/ext/luajit/src/lj_obj.h +976 -0
  282. data/lua-hooks/ext/luajit/src/lj_obj.o +0 -0
  283. data/lua-hooks/ext/luajit/src/lj_obj_dyn.o +0 -0
  284. data/lua-hooks/ext/luajit/src/lj_opt_dce.c +78 -0
  285. data/lua-hooks/ext/luajit/src/lj_opt_dce.o +0 -0
  286. data/lua-hooks/ext/luajit/src/lj_opt_dce_dyn.o +0 -0
  287. data/lua-hooks/ext/luajit/src/lj_opt_fold.c +2488 -0
  288. data/lua-hooks/ext/luajit/src/lj_opt_fold.o +0 -0
  289. data/lua-hooks/ext/luajit/src/lj_opt_fold_dyn.o +0 -0
  290. data/lua-hooks/ext/luajit/src/lj_opt_loop.c +449 -0
  291. data/lua-hooks/ext/luajit/src/lj_opt_loop.o +0 -0
  292. data/lua-hooks/ext/luajit/src/lj_opt_loop_dyn.o +0 -0
  293. data/lua-hooks/ext/luajit/src/lj_opt_mem.c +935 -0
  294. data/lua-hooks/ext/luajit/src/lj_opt_mem.o +0 -0
  295. data/lua-hooks/ext/luajit/src/lj_opt_mem_dyn.o +0 -0
  296. data/lua-hooks/ext/luajit/src/lj_opt_narrow.c +652 -0
  297. data/lua-hooks/ext/luajit/src/lj_opt_narrow.o +0 -0
  298. data/lua-hooks/ext/luajit/src/lj_opt_narrow_dyn.o +0 -0
  299. data/lua-hooks/ext/luajit/src/lj_opt_sink.c +245 -0
  300. data/lua-hooks/ext/luajit/src/lj_opt_sink.o +0 -0
  301. data/lua-hooks/ext/luajit/src/lj_opt_sink_dyn.o +0 -0
  302. data/lua-hooks/ext/luajit/src/lj_opt_split.c +856 -0
  303. data/lua-hooks/ext/luajit/src/lj_opt_split.o +0 -0
  304. data/lua-hooks/ext/luajit/src/lj_opt_split_dyn.o +0 -0
  305. data/lua-hooks/ext/luajit/src/lj_parse.c +2725 -0
  306. data/lua-hooks/ext/luajit/src/lj_parse.h +18 -0
  307. data/lua-hooks/ext/luajit/src/lj_parse.o +0 -0
  308. data/lua-hooks/ext/luajit/src/lj_parse_dyn.o +0 -0
  309. data/lua-hooks/ext/luajit/src/lj_profile.c +368 -0
  310. data/lua-hooks/ext/luajit/src/lj_profile.h +21 -0
  311. data/lua-hooks/ext/luajit/src/lj_profile.o +0 -0
  312. data/lua-hooks/ext/luajit/src/lj_profile_dyn.o +0 -0
  313. data/lua-hooks/ext/luajit/src/lj_recdef.h +270 -0
  314. data/lua-hooks/ext/luajit/src/lj_record.c +2554 -0
  315. data/lua-hooks/ext/luajit/src/lj_record.h +45 -0
  316. data/lua-hooks/ext/luajit/src/lj_record.o +0 -0
  317. data/lua-hooks/ext/luajit/src/lj_record_dyn.o +0 -0
  318. data/lua-hooks/ext/luajit/src/lj_snap.c +870 -0
  319. data/lua-hooks/ext/luajit/src/lj_snap.h +34 -0
  320. data/lua-hooks/ext/luajit/src/lj_snap.o +0 -0
  321. data/lua-hooks/ext/luajit/src/lj_snap_dyn.o +0 -0
  322. data/lua-hooks/ext/luajit/src/lj_state.c +300 -0
  323. data/lua-hooks/ext/luajit/src/lj_state.h +35 -0
  324. data/lua-hooks/ext/luajit/src/lj_state.o +0 -0
  325. data/lua-hooks/ext/luajit/src/lj_state_dyn.o +0 -0
  326. data/lua-hooks/ext/luajit/src/lj_str.c +197 -0
  327. data/lua-hooks/ext/luajit/src/lj_str.h +27 -0
  328. data/lua-hooks/ext/luajit/src/lj_str.o +0 -0
  329. data/lua-hooks/ext/luajit/src/lj_str_dyn.o +0 -0
  330. data/lua-hooks/ext/luajit/src/lj_strfmt.c +554 -0
  331. data/lua-hooks/ext/luajit/src/lj_strfmt.h +125 -0
  332. data/lua-hooks/ext/luajit/src/lj_strfmt.o +0 -0
  333. data/lua-hooks/ext/luajit/src/lj_strfmt_dyn.o +0 -0
  334. data/lua-hooks/ext/luajit/src/lj_strscan.c +547 -0
  335. data/lua-hooks/ext/luajit/src/lj_strscan.h +39 -0
  336. data/lua-hooks/ext/luajit/src/lj_strscan.o +0 -0
  337. data/lua-hooks/ext/luajit/src/lj_strscan_dyn.o +0 -0
  338. data/lua-hooks/ext/luajit/src/lj_tab.c +666 -0
  339. data/lua-hooks/ext/luajit/src/lj_tab.h +73 -0
  340. data/lua-hooks/ext/luajit/src/lj_tab.o +0 -0
  341. data/lua-hooks/ext/luajit/src/lj_tab_dyn.o +0 -0
  342. data/lua-hooks/ext/luajit/src/lj_target.h +164 -0
  343. data/lua-hooks/ext/luajit/src/lj_target_arm.h +270 -0
  344. data/lua-hooks/ext/luajit/src/lj_target_arm64.h +97 -0
  345. data/lua-hooks/ext/luajit/src/lj_target_mips.h +260 -0
  346. data/lua-hooks/ext/luajit/src/lj_target_ppc.h +280 -0
  347. data/lua-hooks/ext/luajit/src/lj_target_x86.h +345 -0
  348. data/lua-hooks/ext/luajit/src/lj_trace.c +859 -0
  349. data/lua-hooks/ext/luajit/src/lj_trace.h +54 -0
  350. data/lua-hooks/ext/luajit/src/lj_trace.o +0 -0
  351. data/lua-hooks/ext/luajit/src/lj_trace_dyn.o +0 -0
  352. data/lua-hooks/ext/luajit/src/lj_traceerr.h +63 -0
  353. data/lua-hooks/ext/luajit/src/lj_udata.c +34 -0
  354. data/lua-hooks/ext/luajit/src/lj_udata.h +14 -0
  355. data/lua-hooks/ext/luajit/src/lj_udata.o +0 -0
  356. data/lua-hooks/ext/luajit/src/lj_udata_dyn.o +0 -0
  357. data/lua-hooks/ext/luajit/src/lj_vm.S +2730 -0
  358. data/lua-hooks/ext/luajit/src/lj_vm.h +114 -0
  359. data/lua-hooks/ext/luajit/src/lj_vm.o +0 -0
  360. data/lua-hooks/ext/luajit/src/lj_vm_dyn.o +0 -0
  361. data/lua-hooks/ext/luajit/src/lj_vmevent.c +58 -0
  362. data/lua-hooks/ext/luajit/src/lj_vmevent.h +59 -0
  363. data/lua-hooks/ext/luajit/src/lj_vmevent.o +0 -0
  364. data/lua-hooks/ext/luajit/src/lj_vmevent_dyn.o +0 -0
  365. data/lua-hooks/ext/luajit/src/lj_vmmath.c +152 -0
  366. data/lua-hooks/ext/luajit/src/lj_vmmath.o +0 -0
  367. data/lua-hooks/ext/luajit/src/lj_vmmath_dyn.o +0 -0
  368. data/lua-hooks/ext/luajit/src/ljamalg.c +96 -0
  369. data/lua-hooks/ext/{lua → luajit/src}/lua.h +12 -7
  370. data/lua-hooks/ext/luajit/src/lua.hpp +9 -0
  371. data/lua-hooks/ext/luajit/src/luaconf.h +156 -0
  372. data/lua-hooks/ext/luajit/src/luajit +0 -0
  373. data/lua-hooks/ext/luajit/src/luajit.c +570 -0
  374. data/lua-hooks/ext/luajit/src/luajit.h +79 -0
  375. data/lua-hooks/ext/luajit/src/luajit.o +0 -0
  376. data/lua-hooks/ext/luajit/src/lualib.h +43 -0
  377. data/lua-hooks/ext/luajit/src/msvcbuild.bat +114 -0
  378. data/lua-hooks/ext/luajit/src/ps4build.bat +103 -0
  379. data/lua-hooks/ext/luajit/src/psvitabuild.bat +93 -0
  380. data/lua-hooks/ext/luajit/src/vm_arm.dasc +4585 -0
  381. data/lua-hooks/ext/luajit/src/vm_arm64.dasc +3764 -0
  382. data/lua-hooks/ext/luajit/src/vm_mips.dasc +4355 -0
  383. data/lua-hooks/ext/luajit/src/vm_ppc.dasc +5252 -0
  384. data/lua-hooks/ext/luajit/src/vm_x64.dasc +4902 -0
  385. data/lua-hooks/ext/luajit/src/vm_x86.dasc +5710 -0
  386. data/lua-hooks/ext/luajit/src/xb1build.bat +101 -0
  387. data/lua-hooks/ext/luajit/src/xedkbuild.bat +92 -0
  388. data/lua-hooks/ext/luautf8/lutf8lib.c +3 -3
  389. data/lua-hooks/lib/boot.lua +37 -2
  390. metadata +372 -69
  391. data/lua-hooks/ext/bitop/README +0 -22
  392. data/lua-hooks/ext/bitop/bit.c +0 -189
  393. data/lua-hooks/ext/extconf.rb +0 -38
  394. data/lua-hooks/ext/lua/COPYRIGHT +0 -34
  395. data/lua-hooks/ext/lua/lapi.c +0 -1087
  396. data/lua-hooks/ext/lua/lapi.h +0 -16
  397. data/lua-hooks/ext/lua/lauxlib.c +0 -652
  398. data/lua-hooks/ext/lua/lbaselib.c +0 -659
  399. data/lua-hooks/ext/lua/lcode.c +0 -831
  400. data/lua-hooks/ext/lua/lcode.h +0 -76
  401. data/lua-hooks/ext/lua/ldblib.c +0 -398
  402. data/lua-hooks/ext/lua/ldebug.c +0 -638
  403. data/lua-hooks/ext/lua/ldebug.h +0 -33
  404. data/lua-hooks/ext/lua/ldo.c +0 -519
  405. data/lua-hooks/ext/lua/ldo.h +0 -57
  406. data/lua-hooks/ext/lua/ldump.c +0 -164
  407. data/lua-hooks/ext/lua/lfunc.c +0 -174
  408. data/lua-hooks/ext/lua/lfunc.h +0 -34
  409. data/lua-hooks/ext/lua/lgc.c +0 -710
  410. data/lua-hooks/ext/lua/lgc.h +0 -110
  411. data/lua-hooks/ext/lua/linit.c +0 -38
  412. data/lua-hooks/ext/lua/liolib.c +0 -556
  413. data/lua-hooks/ext/lua/llex.c +0 -463
  414. data/lua-hooks/ext/lua/llex.h +0 -81
  415. data/lua-hooks/ext/lua/llimits.h +0 -128
  416. data/lua-hooks/ext/lua/lmathlib.c +0 -263
  417. data/lua-hooks/ext/lua/lmem.c +0 -86
  418. data/lua-hooks/ext/lua/lmem.h +0 -49
  419. data/lua-hooks/ext/lua/loadlib.c +0 -705
  420. data/lua-hooks/ext/lua/loadlib_rel.c +0 -760
  421. data/lua-hooks/ext/lua/lobject.c +0 -214
  422. data/lua-hooks/ext/lua/lobject.h +0 -381
  423. data/lua-hooks/ext/lua/lopcodes.c +0 -102
  424. data/lua-hooks/ext/lua/lopcodes.h +0 -268
  425. data/lua-hooks/ext/lua/loslib.c +0 -243
  426. data/lua-hooks/ext/lua/lparser.c +0 -1339
  427. data/lua-hooks/ext/lua/lparser.h +0 -82
  428. data/lua-hooks/ext/lua/lstate.c +0 -214
  429. data/lua-hooks/ext/lua/lstate.h +0 -169
  430. data/lua-hooks/ext/lua/lstring.c +0 -111
  431. data/lua-hooks/ext/lua/lstring.h +0 -31
  432. data/lua-hooks/ext/lua/lstrlib.c +0 -871
  433. data/lua-hooks/ext/lua/ltable.c +0 -588
  434. data/lua-hooks/ext/lua/ltable.h +0 -40
  435. data/lua-hooks/ext/lua/ltablib.c +0 -287
  436. data/lua-hooks/ext/lua/ltm.c +0 -75
  437. data/lua-hooks/ext/lua/ltm.h +0 -54
  438. data/lua-hooks/ext/lua/lua.c +0 -392
  439. data/lua-hooks/ext/lua/lua.def +0 -131
  440. data/lua-hooks/ext/lua/lua.rc +0 -28
  441. data/lua-hooks/ext/lua/lua_dll.rc +0 -26
  442. data/lua-hooks/ext/lua/luac.c +0 -200
  443. data/lua-hooks/ext/lua/luac.rc +0 -1
  444. data/lua-hooks/ext/lua/luaconf.h +0 -763
  445. data/lua-hooks/ext/lua/luaconf.h.in +0 -724
  446. data/lua-hooks/ext/lua/luaconf.h.orig +0 -763
  447. data/lua-hooks/ext/lua/lualib.h +0 -53
  448. data/lua-hooks/ext/lua/lundump.c +0 -227
  449. data/lua-hooks/ext/lua/lundump.h +0 -36
  450. data/lua-hooks/ext/lua/lvm.c +0 -767
  451. data/lua-hooks/ext/lua/lvm.h +0 -36
  452. data/lua-hooks/ext/lua/lzio.c +0 -82
  453. data/lua-hooks/ext/lua/lzio.h +0 -67
  454. data/lua-hooks/ext/lua/print.c +0 -227
@@ -0,0 +1,236 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html>
3
+ <head>
4
+ <title>LuaJIT</title>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <meta name="Author" content="Mike Pall">
7
+ <meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
8
+ <meta name="Language" content="en">
9
+ <link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
10
+ <link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
11
+ <meta name="description" content="LuaJIT is a Just-In-Time (JIT) compiler for the Lua language.">
12
+ <style type="text/css">
13
+ table.feature {
14
+ width: inherit;
15
+ line-height: 1.2;
16
+ margin: 0;
17
+ }
18
+ table.feature td {
19
+ width: 80px;
20
+ height: 40px;
21
+ vertical-align: middle;
22
+ text-align: center;
23
+ font-weight: bold;
24
+ border: 4px solid #e6ecff;
25
+ border-radius: 12px;
26
+ }
27
+ table.os td {
28
+ background: #7080d0;
29
+ background-image: linear-gradient(#4060c0 10%, #b0b0ff 95%);
30
+ background-image: -moz-linear-gradient(#4060c0 10%, #b0b0ff 95%);
31
+ background-image: -webkit-linear-gradient(#4060c0 10%, #b0b0ff 95%);
32
+ background-image: -o-linear-gradient(#4060c0 10%, #b0b0ff 95%);
33
+ background-image: -ms-linear-gradient(#4060c0 10%, #b0b0ff 95%);
34
+ }
35
+ table.os1 td {
36
+ color: #ffff80;
37
+ }
38
+ table.os2 td {
39
+ color: #ffa040;
40
+ }
41
+ table.os3 td {
42
+ color: #40ffff;
43
+ }
44
+ table.compiler td {
45
+ color: #2080ff;
46
+ background: #62bf41;
47
+ background-image: linear-gradient(#62bf41 10%, #b0ffb0 95%);
48
+ background-image: -moz-linear-gradient(#62bf41 10%, #b0ffb0 95%);
49
+ background-image: -webkit-linear-gradient(#62bf41 10%, #b0ffb0 95%);
50
+ background-image: -o-linear-gradient(#62bf41 10%, #b0ffb0 95%);
51
+ background-image: -ms-linear-gradient(#62bf41 10%, #b0ffb0 95%);
52
+ }
53
+ table.cpu td {
54
+ color: #ffff00;
55
+ background: #cf7251;
56
+ background-image: linear-gradient(#bf6241 10%, #ffb0b0 95%);
57
+ background-image: -moz-linear-gradient(#bf6241 10%, #ffb0b0 95%);
58
+ background-image: -webkit-linear-gradient(#bf6241 10%, #ffb0b0 95%);
59
+ background-image: -o-linear-gradient(#bf6241 10%, #ffb0b0 95%);
60
+ background-image: -ms-linear-gradient(#bf6241 10%, #ffb0b0 95%);
61
+ }
62
+ table.fcompat td {
63
+ color: #2060e0;
64
+ background: #61cfcf;
65
+ background-image: linear-gradient(#41bfbf 10%, #b0ffff 95%);
66
+ background-image: -moz-linear-gradient(#41bfbf 10%, #b0ffff 95%);
67
+ background-image: -webkit-linear-gradient(#41bfbf 10%, #b0ffff 95%);
68
+ background-image: -o-linear-gradient(#41bfbf 10%, #b0ffff 95%);
69
+ background-image: -ms-linear-gradient(#41bfbf 10%, #b0ffff 95%);
70
+ }
71
+ table.stats td {
72
+ color: #ffffff;
73
+ background: #a0a0a0;
74
+ background-image: linear-gradient(#808080 10%, #d0d0d0 95%);
75
+ background-image: -moz-linear-gradient(#808080 10%, #d0d0d0 95%);
76
+ background-image: -webkit-linear-gradient(#808080 10%, #d0d0d0 95%);
77
+ background-image: -o-linear-gradient(#808080 10%, #d0d0d0 95%);
78
+ background-image: -ms-linear-gradient(#808080 10%, #d0d0d0 95%);
79
+ }
80
+ table.stats td.speed {
81
+ color: #ff4020;
82
+ }
83
+ table.stats td.kb {
84
+ color: #ffff80;
85
+ background: #808080;
86
+ background-image: linear-gradient(#606060 10%, #c0c0c0 95%);
87
+ background-image: -moz-linear-gradient(#606060 10%, #c0c0c0 95%);
88
+ background-image: -webkit-linear-gradient(#606060 10%, #c0c0c0 95%);
89
+ background-image: -o-linear-gradient(#606060 10%, #c0c0c0 95%);
90
+ background-image: -ms-linear-gradient(#606060 10%, #c0c0c0 95%);
91
+ }
92
+ table.feature small {
93
+ font-size: 50%;
94
+ }
95
+ </style>
96
+ </head>
97
+ <body>
98
+ <div id="site">
99
+ <a href="http://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
100
+ </div>
101
+ <div id="head">
102
+ <h1>LuaJIT</h1>
103
+ </div>
104
+ <div id="nav">
105
+ <ul><li>
106
+ <a class="current" href="luajit.html">LuaJIT</a>
107
+ <ul><li>
108
+ <a href="http://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
109
+ </li><li>
110
+ <a href="install.html">Installation</a>
111
+ </li><li>
112
+ <a href="running.html">Running</a>
113
+ </li></ul>
114
+ </li><li>
115
+ <a href="extensions.html">Extensions</a>
116
+ <ul><li>
117
+ <a href="ext_ffi.html">FFI Library</a>
118
+ <ul><li>
119
+ <a href="ext_ffi_tutorial.html">FFI Tutorial</a>
120
+ </li><li>
121
+ <a href="ext_ffi_api.html">ffi.* API</a>
122
+ </li><li>
123
+ <a href="ext_ffi_semantics.html">FFI Semantics</a>
124
+ </li></ul>
125
+ </li><li>
126
+ <a href="ext_jit.html">jit.* Library</a>
127
+ </li><li>
128
+ <a href="ext_c_api.html">Lua/C API</a>
129
+ </li><li>
130
+ <a href="ext_profiler.html">Profiler</a>
131
+ </li></ul>
132
+ </li><li>
133
+ <a href="status.html">Status</a>
134
+ <ul><li>
135
+ <a href="changes.html">Changes</a>
136
+ </li></ul>
137
+ </li><li>
138
+ <a href="faq.html">FAQ</a>
139
+ </li><li>
140
+ <a href="http://luajit.org/performance.html">Performance <span class="ext">&raquo;</span></a>
141
+ </li><li>
142
+ <a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
143
+ </li><li>
144
+ <a href="http://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
145
+ </li></ul>
146
+ </div>
147
+ <div id="main">
148
+ <p>
149
+ LuaJIT is a <b>Just-In-Time Compiler</b> (JIT) for the
150
+ <a href="http://www.lua.org/"><span class="ext">&raquo;</span>&nbsp;Lua</a> programming language.
151
+ Lua is a powerful, dynamic and light-weight programming language.
152
+ It may be embedded or used as a general-purpose, stand-alone language.
153
+ </p>
154
+ <p>
155
+ LuaJIT is Copyright &copy; 2005-2015 Mike Pall, released under the
156
+ <a href="http://www.opensource.org/licenses/mit-license.php"><span class="ext">&raquo;</span>&nbsp;MIT open source license</a>.
157
+ </p>
158
+ <p>
159
+ </p>
160
+
161
+ <h2>Compatibility</h2>
162
+ <table class="feature os os1">
163
+ <tr><td>Windows</td><td>Linux</td><td>BSD</td><td>OSX</td><td>POSIX</td></tr>
164
+ </table>
165
+ <table class="feature os os2">
166
+ <tr><td><span style="font-size:90%;">Embedded</span></td><td>Android</td><td>iOS</td></tr>
167
+ </table>
168
+ <table class="feature os os3">
169
+ <tr><td>PS3</td><td>PS4</td><td>PS Vita</td><td>Xbox 360</td><td>Xbox One</td></tr>
170
+ </table>
171
+ <table class="feature compiler">
172
+ <tr><td>GCC</td><td>CLANG<br>LLVM</td><td>MSVC</td></tr>
173
+ </table>
174
+ <table class="feature cpu">
175
+ <tr><td>x86</td><td>x64</td><td>ARM</td><td>ARM64</td><td>PPC</td><td>MIPS</td></tr>
176
+ </table>
177
+ <table class="feature fcompat">
178
+ <tr><td>Lua&nbsp;5.1<br>API+ABI</td><td>+&nbsp;JIT</td><td>+&nbsp;BitOp</td><td>+&nbsp;FFI</td><td>Drop-in<br>DLL/.so</td></tr>
179
+ </table>
180
+
181
+ <h2>Overview</h2>
182
+ <table class="feature stats">
183
+ <tr>
184
+ <td class="speed">3x<br>-&nbsp;&nbsp;100x</td>
185
+ <td class="kb">115&nbsp;<small>KB</small><br>VM</td>
186
+ <td class="kb">90&nbsp;<small>KB</small><br>JIT</td>
187
+ <td class="kloc">63&nbsp;<small>KLOC</small><br>C</td>
188
+ <td class="kloc">24&nbsp;<small>KLOC</small><br>ASM</td>
189
+ <td class="kloc">11&nbsp;<small>KLOC</small><br>Lua</td>
190
+ </tr>
191
+ </table>
192
+ <p style="margin-top: 1em;">
193
+ LuaJIT has been successfully used as a <b>scripting middleware</b> in
194
+ games, appliances, network and graphics apps, numerical simulations,
195
+ trading platforms and many other specialty applications. It scales from
196
+ embedded devices, smartphones, desktops up to server farms. It combines
197
+ high flexibility with <a href="http://luajit.org/performance.html"><span class="ext">&raquo;</span>&nbsp;high performance</a>
198
+ and an unmatched <b>low memory footprint</b>.
199
+ </p>
200
+ <p>
201
+ LuaJIT has been in continuous development since 2005. It's widely
202
+ considered to be <b>one of the fastest dynamic language
203
+ implementations</b>. It has outperformed other dynamic languages on many
204
+ cross-language benchmarks since its first release &mdash; often by a
205
+ substantial margin.
206
+ </p>
207
+ <p>
208
+ For <b>LuaJIT 2.0</b>, the whole VM has been rewritten from the ground up
209
+ and relentlessly optimized for performance. It combines a <b>high-speed
210
+ interpreter</b>, written in assembler, with a <b>state-of-the-art JIT
211
+ compiler</b>.
212
+ </p>
213
+ <p>
214
+ An innovative <b>trace compiler</b> is integrated with advanced,
215
+ SSA-based optimizations and highly tuned code generation backends.
216
+ A substantial reduction of the overhead associated with dynamic languages
217
+ allows it to break into the performance range traditionally reserved for
218
+ offline, static language compilers.
219
+ </p>
220
+
221
+ <h2>More ...</h2>
222
+ <p>
223
+ Please select a sub-topic in the navigation bar to learn more about LuaJIT.
224
+ </p>
225
+ <br class="flush">
226
+ </div>
227
+ <div id="foot">
228
+ <hr class="hide">
229
+ Copyright &copy; 2005-2015 Mike Pall
230
+ <span class="noprint">
231
+ &middot;
232
+ <a href="contact.html">Contact</a>
233
+ </span>
234
+ </div>
235
+ </body>
236
+ </html>
@@ -0,0 +1,309 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html>
3
+ <head>
4
+ <title>Running LuaJIT</title>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <meta name="Author" content="Mike Pall">
7
+ <meta name="Copyright" content="Copyright (C) 2005-2015, Mike Pall">
8
+ <meta name="Language" content="en">
9
+ <link rel="stylesheet" type="text/css" href="bluequad.css" media="screen">
10
+ <link rel="stylesheet" type="text/css" href="bluequad-print.css" media="print">
11
+ <style type="text/css">
12
+ table.opt {
13
+ line-height: 1.2;
14
+ }
15
+ tr.opthead td {
16
+ font-weight: bold;
17
+ }
18
+ td.flag_name {
19
+ width: 4em;
20
+ }
21
+ td.flag_level {
22
+ width: 2em;
23
+ text-align: center;
24
+ }
25
+ td.param_name {
26
+ width: 6em;
27
+ }
28
+ td.param_default {
29
+ width: 4em;
30
+ text-align: right;
31
+ }
32
+ </style>
33
+ </head>
34
+ <body>
35
+ <div id="site">
36
+ <a href="http://luajit.org"><span>Lua<span id="logo">JIT</span></span></a>
37
+ </div>
38
+ <div id="head">
39
+ <h1>Running LuaJIT</h1>
40
+ </div>
41
+ <div id="nav">
42
+ <ul><li>
43
+ <a href="luajit.html">LuaJIT</a>
44
+ <ul><li>
45
+ <a href="http://luajit.org/download.html">Download <span class="ext">&raquo;</span></a>
46
+ </li><li>
47
+ <a href="install.html">Installation</a>
48
+ </li><li>
49
+ <a class="current" href="running.html">Running</a>
50
+ </li></ul>
51
+ </li><li>
52
+ <a href="extensions.html">Extensions</a>
53
+ <ul><li>
54
+ <a href="ext_ffi.html">FFI Library</a>
55
+ <ul><li>
56
+ <a href="ext_ffi_tutorial.html">FFI Tutorial</a>
57
+ </li><li>
58
+ <a href="ext_ffi_api.html">ffi.* API</a>
59
+ </li><li>
60
+ <a href="ext_ffi_semantics.html">FFI Semantics</a>
61
+ </li></ul>
62
+ </li><li>
63
+ <a href="ext_jit.html">jit.* Library</a>
64
+ </li><li>
65
+ <a href="ext_c_api.html">Lua/C API</a>
66
+ </li><li>
67
+ <a href="ext_profiler.html">Profiler</a>
68
+ </li></ul>
69
+ </li><li>
70
+ <a href="status.html">Status</a>
71
+ <ul><li>
72
+ <a href="changes.html">Changes</a>
73
+ </li></ul>
74
+ </li><li>
75
+ <a href="faq.html">FAQ</a>
76
+ </li><li>
77
+ <a href="http://luajit.org/performance.html">Performance <span class="ext">&raquo;</span></a>
78
+ </li><li>
79
+ <a href="http://wiki.luajit.org/">Wiki <span class="ext">&raquo;</span></a>
80
+ </li><li>
81
+ <a href="http://luajit.org/list.html">Mailing List <span class="ext">&raquo;</span></a>
82
+ </li></ul>
83
+ </div>
84
+ <div id="main">
85
+ <p>
86
+ LuaJIT has only a single stand-alone executable, called <tt>luajit</tt> on
87
+ POSIX systems or <tt>luajit.exe</tt> on Windows. It can be used to run simple
88
+ Lua statements or whole Lua applications from the command line. It has an
89
+ interactive mode, too.
90
+ </p>
91
+
92
+ <h2 id="options">Command Line Options</h2>
93
+ <p>
94
+ The <tt>luajit</tt> stand-alone executable is just a slightly modified
95
+ version of the regular <tt>lua</tt> stand-alone executable.
96
+ It supports the same basic options, too. <tt>luajit&nbsp;-h</tt>
97
+ prints a short list of the available options. Please have a look at the
98
+ <a href="http://www.lua.org/manual/5.1/manual.html#6"><span class="ext">&raquo;</span>&nbsp;Lua manual</a>
99
+ for details.
100
+ </p>
101
+ <p>
102
+ LuaJIT has some additional options:
103
+ </p>
104
+
105
+ <h3 id="opt_b"><tt>-b[options] input output</tt></h3>
106
+ <p>
107
+ This option saves or lists bytecode. The following additional options
108
+ are accepted:
109
+ </p>
110
+ <ul>
111
+ <li><tt>-l</tt> &mdash; Only list bytecode.</li>
112
+ <li><tt>-s</tt> &mdash; Strip debug info (this is the default).</li>
113
+ <li><tt>-g</tt> &mdash; Keep debug info.</li>
114
+ <li><tt>-n name</tt> &mdash; Set module name (default: auto-detect from input name)</li>
115
+ <li><tt>-t type</tt> &mdash; Set output file type (default: auto-detect from output name).</li>
116
+ <li><tt>-a arch</tt> &mdash; Override architecture for object files (default: native).</li>
117
+ <li><tt>-o os</tt> &mdash; Override OS for object files (default: native).</li>
118
+ <li><tt>-e chunk</tt> &mdash; Use chunk string as input.</li>
119
+ <li><tt>-</tt> (a single minus sign) &mdash; Use stdin as input and/or stdout as output.</li>
120
+ </ul>
121
+ <p>
122
+ The output file type is auto-detected from the extension of the output
123
+ file name:
124
+ </p>
125
+ <ul>
126
+ <li><tt>c</tt> &mdash; C source file, exported bytecode data.</li>
127
+ <li><tt>h</tt> &mdash; C header file, static bytecode data.</li>
128
+ <li><tt>obj</tt> or <tt>o</tt> &mdash; Object file, exported bytecode data
129
+ (OS- and architecture-specific).</li>
130
+ <li><tt>raw</tt> or any other extension &mdash; Raw bytecode file (portable).
131
+ </ul>
132
+ <p>
133
+ Notes:
134
+ </p>
135
+ <ul>
136
+ <li>See also <a href="extensions.html#string_dump">string.dump()</a>
137
+ for information on bytecode portability and compatibility.</li>
138
+ <li>A file in raw bytecode format is auto-detected and can be loaded like
139
+ any Lua source file. E.g. directly from the command line or with
140
+ <tt>loadfile()</tt>, <tt>dofile()</tt> etc.</li>
141
+ <li>To statically embed the bytecode of a module in your application,
142
+ generate an object file and just link it with your application.</li>
143
+ <li>On most ELF-based systems (e.g. Linux) you need to explicitly export the
144
+ global symbols when linking your application, e.g. with: <tt>-Wl,-E</tt></li>
145
+ <li><tt>require()</tt> tries to load embedded bytecode data from exported
146
+ symbols (in <tt>*.exe</tt> or <tt>lua51.dll</tt> on Windows) and from
147
+ shared libraries in <tt>package.cpath</tt>.</li>
148
+ </ul>
149
+ <p>
150
+ Typical usage examples:
151
+ </p>
152
+ <pre class="code">
153
+ luajit -b test.lua test.out # Save bytecode to test.out
154
+ luajit -bg test.lua test.out # Keep debug info
155
+ luajit -be "print('hello world')" test.out # Save cmdline script
156
+
157
+ luajit -bl test.lua # List to stdout
158
+ luajit -bl test.lua test.txt # List to test.txt
159
+ luajit -ble "print('hello world')" # List cmdline script
160
+
161
+ luajit -b test.lua test.obj # Generate object file
162
+ # Link test.obj with your application and load it with require("test")
163
+ </pre>
164
+
165
+ <h3 id="opt_j"><tt>-j cmd[=arg[,arg...]]</tt></h3>
166
+ <p>
167
+ This option performs a LuaJIT control command or activates one of the
168
+ loadable extension modules. The command is first looked up in the
169
+ <tt>jit.*</tt> library. If no matching function is found, a module
170
+ named <tt>jit.&lt;cmd&gt;</tt> is loaded and the <tt>start()</tt>
171
+ function of the module is called with the specified arguments (if
172
+ any). The space between <tt>-j</tt> and <tt>cmd</tt> is optional.
173
+ </p>
174
+ <p>
175
+ Here are the available LuaJIT control commands:
176
+ </p>
177
+ <ul>
178
+ <li id="j_on"><tt>-jon</tt> &mdash; Turns the JIT compiler on (default).</li>
179
+ <li id="j_off"><tt>-joff</tt> &mdash; Turns the JIT compiler off (only use the interpreter).</li>
180
+ <li id="j_flush"><tt>-jflush</tt> &mdash; Flushes the whole cache of compiled code.</li>
181
+ <li id="j_v"><tt>-jv</tt> &mdash; Shows verbose information about the progress of the JIT compiler.</li>
182
+ <li id="j_dump"><tt>-jdump</tt> &mdash; Dumps the code and structures used in various compiler stages.</li>
183
+ <li id="j_p"><tt>-jp</tt> &mdash; Start the <a href="ext_profiler.html">integrated profiler</a>.</li>
184
+ </ul>
185
+ <p>
186
+ The <tt>-jv</tt> and <tt>-jdump</tt> commands are extension modules
187
+ written in Lua. They are mainly used for debugging the JIT compiler
188
+ itself. For a description of their options and output format, please
189
+ read the comment block at the start of their source.
190
+ They can be found in the <tt>lib</tt> directory of the source
191
+ distribution or installed under the <tt>jit</tt> directory. By default
192
+ this is <tt>/usr/local/share/luajit-2.0.4/jit</tt> on POSIX
193
+ systems.
194
+ </p>
195
+
196
+ <h3 id="opt_O"><tt>-O[level]</tt><br>
197
+ <tt>-O[+]flag</tt>&nbsp;&nbsp;&nbsp;<tt>-O-flag</tt><br>
198
+ <tt>-Oparam=value</tt></h3>
199
+ <p>
200
+ This options allows fine-tuned control of the optimizations used by
201
+ the JIT compiler. This is mainly intended for debugging LuaJIT itself.
202
+ Please note that the JIT compiler is extremely fast (we are talking
203
+ about the microsecond to millisecond range). Disabling optimizations
204
+ doesn't have any visible impact on its overhead, but usually generates
205
+ code that runs slower.
206
+ </p>
207
+ <p>
208
+ The first form sets an optimization level &mdash; this enables a
209
+ specific mix of optimization flags. <tt>-O0</tt> turns off all
210
+ optimizations and higher numbers enable more optimizations. Omitting
211
+ the level (i.e. just <tt>-O</tt>) sets the default optimization level,
212
+ which is <tt>-O3</tt> in the current version.
213
+ </p>
214
+ <p>
215
+ The second form adds or removes individual optimization flags.
216
+ The third form sets a parameter for the VM or the JIT compiler
217
+ to a specific value.
218
+ </p>
219
+ <p>
220
+ You can either use this option multiple times (like <tt>-Ocse
221
+ -O-dce -Ohotloop=10</tt>) or separate several settings with a comma
222
+ (like <tt>-O+cse,-dce,hotloop=10</tt>). The settings are applied from
223
+ left to right and later settings override earlier ones. You can freely
224
+ mix the three forms, but note that setting an optimization level
225
+ overrides all earlier flags.
226
+ </p>
227
+ <p>
228
+ Here are the available flags and at what optimization levels they
229
+ are enabled:
230
+ </p>
231
+ <table class="opt">
232
+ <tr class="opthead">
233
+ <td class="flag_name">Flag</td>
234
+ <td class="flag_level">-O1</td>
235
+ <td class="flag_level">-O2</td>
236
+ <td class="flag_level">-O3</td>
237
+ <td class="flag_desc">&nbsp;</td>
238
+ </tr>
239
+ <tr class="odd separate">
240
+ <td class="flag_name">fold</td><td class="flag_level">&bull;</td><td class="flag_level">&bull;</td><td class="flag_level">&bull;</td><td class="flag_desc">Constant Folding, Simplifications and Reassociation</td></tr>
241
+ <tr class="even">
242
+ <td class="flag_name">cse</td><td class="flag_level">&bull;</td><td class="flag_level">&bull;</td><td class="flag_level">&bull;</td><td class="flag_desc">Common-Subexpression Elimination</td></tr>
243
+ <tr class="odd">
244
+ <td class="flag_name">dce</td><td class="flag_level">&bull;</td><td class="flag_level">&bull;</td><td class="flag_level">&bull;</td><td class="flag_desc">Dead-Code Elimination</td></tr>
245
+ <tr class="even">
246
+ <td class="flag_name">narrow</td><td class="flag_level">&nbsp;</td><td class="flag_level">&bull;</td><td class="flag_level">&bull;</td><td class="flag_desc">Narrowing of numbers to integers</td></tr>
247
+ <tr class="odd">
248
+ <td class="flag_name">loop</td><td class="flag_level">&nbsp;</td><td class="flag_level">&bull;</td><td class="flag_level">&bull;</td><td class="flag_desc">Loop Optimizations (code hoisting)</td></tr>
249
+ <tr class="even">
250
+ <td class="flag_name">fwd</td><td class="flag_level">&nbsp;</td><td class="flag_level">&nbsp;</td><td class="flag_level">&bull;</td><td class="flag_desc">Load Forwarding (L2L) and Store Forwarding (S2L)</td></tr>
251
+ <tr class="odd">
252
+ <td class="flag_name">dse</td><td class="flag_level">&nbsp;</td><td class="flag_level">&nbsp;</td><td class="flag_level">&bull;</td><td class="flag_desc">Dead-Store Elimination</td></tr>
253
+ <tr class="even">
254
+ <td class="flag_name">abc</td><td class="flag_level">&nbsp;</td><td class="flag_level">&nbsp;</td><td class="flag_level">&bull;</td><td class="flag_desc">Array Bounds Check Elimination</td></tr>
255
+ <tr class="odd">
256
+ <td class="flag_name">sink</td><td class="flag_level">&nbsp;</td><td class="flag_level">&nbsp;</td><td class="flag_level">&bull;</td><td class="flag_desc">Allocation/Store Sinking</td></tr>
257
+ <tr class="even">
258
+ <td class="flag_name">fuse</td><td class="flag_level">&nbsp;</td><td class="flag_level">&nbsp;</td><td class="flag_level">&bull;</td><td class="flag_desc">Fusion of operands into instructions</td></tr>
259
+ </table>
260
+ <p>
261
+ Here are the parameters and their default settings:
262
+ </p>
263
+ <table class="opt">
264
+ <tr class="opthead">
265
+ <td class="param_name">Parameter</td>
266
+ <td class="param_default">Default</td>
267
+ <td class="param_desc">&nbsp;</td>
268
+ </tr>
269
+ <tr class="odd separate">
270
+ <td class="param_name">maxtrace</td><td class="param_default">1000</td><td class="param_desc">Max. number of traces in the cache</td></tr>
271
+ <tr class="even">
272
+ <td class="param_name">maxrecord</td><td class="param_default">4000</td><td class="param_desc">Max. number of recorded IR instructions</td></tr>
273
+ <tr class="odd">
274
+ <td class="param_name">maxirconst</td><td class="param_default">500</td><td class="param_desc">Max. number of IR constants of a trace</td></tr>
275
+ <tr class="even">
276
+ <td class="param_name">maxside</td><td class="param_default">100</td><td class="param_desc">Max. number of side traces of a root trace</td></tr>
277
+ <tr class="odd">
278
+ <td class="param_name">maxsnap</td><td class="param_default">500</td><td class="param_desc">Max. number of snapshots for a trace</td></tr>
279
+ <tr class="even separate">
280
+ <td class="param_name">hotloop</td><td class="param_default">56</td><td class="param_desc">Number of iterations to detect a hot loop or hot call</td></tr>
281
+ <tr class="odd">
282
+ <td class="param_name">hotexit</td><td class="param_default">10</td><td class="param_desc">Number of taken exits to start a side trace</td></tr>
283
+ <tr class="even">
284
+ <td class="param_name">tryside</td><td class="param_default">4</td><td class="param_desc">Number of attempts to compile a side trace</td></tr>
285
+ <tr class="odd separate">
286
+ <td class="param_name">instunroll</td><td class="param_default">4</td><td class="param_desc">Max. unroll factor for instable loops</td></tr>
287
+ <tr class="even">
288
+ <td class="param_name">loopunroll</td><td class="param_default">15</td><td class="param_desc">Max. unroll factor for loop ops in side traces</td></tr>
289
+ <tr class="odd">
290
+ <td class="param_name">callunroll</td><td class="param_default">3</td><td class="param_desc">Max. unroll factor for pseudo-recursive calls</td></tr>
291
+ <tr class="even">
292
+ <td class="param_name">recunroll</td><td class="param_default">2</td><td class="param_desc">Min. unroll factor for true recursion</td></tr>
293
+ <tr class="odd separate">
294
+ <td class="param_name">sizemcode</td><td class="param_default">32</td><td class="param_desc">Size of each machine code area in KBytes (Windows: 64K)</td></tr>
295
+ <tr class="even">
296
+ <td class="param_name">maxmcode</td><td class="param_default">512</td><td class="param_desc">Max. total size of all machine code areas in KBytes</td></tr>
297
+ </table>
298
+ <br class="flush">
299
+ </div>
300
+ <div id="foot">
301
+ <hr class="hide">
302
+ Copyright &copy; 2005-2015 Mike Pall
303
+ <span class="noprint">
304
+ &middot;
305
+ <a href="contact.html">Contact</a>
306
+ </span>
307
+ </div>
308
+ </body>
309
+ </html>