immunio 0.15.4 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,40 +0,0 @@
1
- /*
2
- ** $Id: ltable.h,v 2.10.1.1 2007/12/27 13:02:25 roberto Exp $
3
- ** Lua tables (hash)
4
- ** See Copyright Notice in lua.h
5
- */
6
-
7
- #ifndef ltable_h
8
- #define ltable_h
9
-
10
- #include "lobject.h"
11
-
12
-
13
- #define gnode(t,i) (&(t)->node[i])
14
- #define gkey(n) (&(n)->i_key.nk)
15
- #define gval(n) (&(n)->i_val)
16
- #define gnext(n) ((n)->i_key.nk.next)
17
-
18
- #define key2tval(n) (&(n)->i_key.tvk)
19
-
20
-
21
- LUAI_FUNC const TValue *luaH_getnum (Table *t, int key);
22
- LUAI_FUNC TValue *luaH_setnum (lua_State *L, Table *t, int key);
23
- LUAI_FUNC const TValue *luaH_getstr (Table *t, TString *key);
24
- LUAI_FUNC TValue *luaH_setstr (lua_State *L, Table *t, TString *key);
25
- LUAI_FUNC const TValue *luaH_get (Table *t, const TValue *key);
26
- LUAI_FUNC TValue *luaH_set (lua_State *L, Table *t, const TValue *key);
27
- LUAI_FUNC Table *luaH_new (lua_State *L, int narray, int lnhash);
28
- LUAI_FUNC void luaH_resizearray (lua_State *L, Table *t, int nasize);
29
- LUAI_FUNC void luaH_free (lua_State *L, Table *t);
30
- LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key);
31
- LUAI_FUNC int luaH_getn (Table *t);
32
-
33
-
34
- #if defined(LUA_DEBUG)
35
- LUAI_FUNC Node *luaH_mainposition (const Table *t, const TValue *key);
36
- LUAI_FUNC int luaH_isdummy (Node *n);
37
- #endif
38
-
39
-
40
- #endif
@@ -1,287 +0,0 @@
1
- /*
2
- ** $Id: ltablib.c,v 1.38.1.3 2008/02/14 16:46:58 roberto Exp $
3
- ** Library for Table Manipulation
4
- ** See Copyright Notice in lua.h
5
- */
6
-
7
-
8
- #include <stddef.h>
9
-
10
- #define ltablib_c
11
- #define LUA_LIB
12
-
13
- #include "lua.h"
14
-
15
- #include "lauxlib.h"
16
- #include "lualib.h"
17
-
18
-
19
- #define aux_getn(L,n) (luaL_checktype(L, n, LUA_TTABLE), luaL_getn(L, n))
20
-
21
-
22
- static int foreachi (lua_State *L) {
23
- int i;
24
- int n = aux_getn(L, 1);
25
- luaL_checktype(L, 2, LUA_TFUNCTION);
26
- for (i=1; i <= n; i++) {
27
- lua_pushvalue(L, 2); /* function */
28
- lua_pushinteger(L, i); /* 1st argument */
29
- lua_rawgeti(L, 1, i); /* 2nd argument */
30
- lua_call(L, 2, 1);
31
- if (!lua_isnil(L, -1))
32
- return 1;
33
- lua_pop(L, 1); /* remove nil result */
34
- }
35
- return 0;
36
- }
37
-
38
-
39
- static int foreach (lua_State *L) {
40
- luaL_checktype(L, 1, LUA_TTABLE);
41
- luaL_checktype(L, 2, LUA_TFUNCTION);
42
- lua_pushnil(L); /* first key */
43
- while (lua_next(L, 1)) {
44
- lua_pushvalue(L, 2); /* function */
45
- lua_pushvalue(L, -3); /* key */
46
- lua_pushvalue(L, -3); /* value */
47
- lua_call(L, 2, 1);
48
- if (!lua_isnil(L, -1))
49
- return 1;
50
- lua_pop(L, 2); /* remove value and result */
51
- }
52
- return 0;
53
- }
54
-
55
-
56
- static int maxn (lua_State *L) {
57
- lua_Number max = 0;
58
- luaL_checktype(L, 1, LUA_TTABLE);
59
- lua_pushnil(L); /* first key */
60
- while (lua_next(L, 1)) {
61
- lua_pop(L, 1); /* remove value */
62
- if (lua_type(L, -1) == LUA_TNUMBER) {
63
- lua_Number v = lua_tonumber(L, -1);
64
- if (v > max) max = v;
65
- }
66
- }
67
- lua_pushnumber(L, max);
68
- return 1;
69
- }
70
-
71
-
72
- static int getn (lua_State *L) {
73
- lua_pushinteger(L, aux_getn(L, 1));
74
- return 1;
75
- }
76
-
77
-
78
- static int setn (lua_State *L) {
79
- luaL_checktype(L, 1, LUA_TTABLE);
80
- #ifndef luaL_setn
81
- luaL_setn(L, 1, luaL_checkint(L, 2));
82
- #else
83
- luaL_error(L, LUA_QL("setn") " is obsolete");
84
- #endif
85
- lua_pushvalue(L, 1);
86
- return 1;
87
- }
88
-
89
-
90
- static int tinsert (lua_State *L) {
91
- int e = aux_getn(L, 1) + 1; /* first empty element */
92
- int pos; /* where to insert new element */
93
- switch (lua_gettop(L)) {
94
- case 2: { /* called with only 2 arguments */
95
- pos = e; /* insert new element at the end */
96
- break;
97
- }
98
- case 3: {
99
- int i;
100
- pos = luaL_checkint(L, 2); /* 2nd argument is the position */
101
- if (pos > e) e = pos; /* `grow' array if necessary */
102
- for (i = e; i > pos; i--) { /* move up elements */
103
- lua_rawgeti(L, 1, i-1);
104
- lua_rawseti(L, 1, i); /* t[i] = t[i-1] */
105
- }
106
- break;
107
- }
108
- default: {
109
- return luaL_error(L, "wrong number of arguments to " LUA_QL("insert"));
110
- }
111
- }
112
- luaL_setn(L, 1, e); /* new size */
113
- lua_rawseti(L, 1, pos); /* t[pos] = v */
114
- return 0;
115
- }
116
-
117
-
118
- static int tremove (lua_State *L) {
119
- int e = aux_getn(L, 1);
120
- int pos = luaL_optint(L, 2, e);
121
- if (!(1 <= pos && pos <= e)) /* position is outside bounds? */
122
- return 0; /* nothing to remove */
123
- luaL_setn(L, 1, e - 1); /* t.n = n-1 */
124
- lua_rawgeti(L, 1, pos); /* result = t[pos] */
125
- for ( ;pos<e; pos++) {
126
- lua_rawgeti(L, 1, pos+1);
127
- lua_rawseti(L, 1, pos); /* t[pos] = t[pos+1] */
128
- }
129
- lua_pushnil(L);
130
- lua_rawseti(L, 1, e); /* t[e] = nil */
131
- return 1;
132
- }
133
-
134
-
135
- static void addfield (lua_State *L, luaL_Buffer *b, int i) {
136
- lua_rawgeti(L, 1, i);
137
- if (!lua_isstring(L, -1))
138
- luaL_error(L, "invalid value (%s) at index %d in table for "
139
- LUA_QL("concat"), luaL_typename(L, -1), i);
140
- luaL_addvalue(b);
141
- }
142
-
143
-
144
- static int tconcat (lua_State *L) {
145
- luaL_Buffer b;
146
- size_t lsep;
147
- int i, last;
148
- const char *sep = luaL_optlstring(L, 2, "", &lsep);
149
- luaL_checktype(L, 1, LUA_TTABLE);
150
- i = luaL_optint(L, 3, 1);
151
- last = luaL_opt(L, luaL_checkint, 4, luaL_getn(L, 1));
152
- luaL_buffinit(L, &b);
153
- for (; i < last; i++) {
154
- addfield(L, &b, i);
155
- luaL_addlstring(&b, sep, lsep);
156
- }
157
- if (i == last) /* add last value (if interval was not empty) */
158
- addfield(L, &b, i);
159
- luaL_pushresult(&b);
160
- return 1;
161
- }
162
-
163
-
164
-
165
- /*
166
- ** {======================================================
167
- ** Quicksort
168
- ** (based on `Algorithms in MODULA-3', Robert Sedgewick;
169
- ** Addison-Wesley, 1993.)
170
- */
171
-
172
-
173
- static void set2 (lua_State *L, int i, int j) {
174
- lua_rawseti(L, 1, i);
175
- lua_rawseti(L, 1, j);
176
- }
177
-
178
- static int sort_comp (lua_State *L, int a, int b) {
179
- if (!lua_isnil(L, 2)) { /* function? */
180
- int res;
181
- lua_pushvalue(L, 2);
182
- lua_pushvalue(L, a-1); /* -1 to compensate function */
183
- lua_pushvalue(L, b-2); /* -2 to compensate function and `a' */
184
- lua_call(L, 2, 1);
185
- res = lua_toboolean(L, -1);
186
- lua_pop(L, 1);
187
- return res;
188
- }
189
- else /* a < b? */
190
- return lua_lessthan(L, a, b);
191
- }
192
-
193
- static void auxsort (lua_State *L, int l, int u) {
194
- while (l < u) { /* for tail recursion */
195
- int i, j;
196
- /* sort elements a[l], a[(l+u)/2] and a[u] */
197
- lua_rawgeti(L, 1, l);
198
- lua_rawgeti(L, 1, u);
199
- if (sort_comp(L, -1, -2)) /* a[u] < a[l]? */
200
- set2(L, l, u); /* swap a[l] - a[u] */
201
- else
202
- lua_pop(L, 2);
203
- if (u-l == 1) break; /* only 2 elements */
204
- i = (l+u)/2;
205
- lua_rawgeti(L, 1, i);
206
- lua_rawgeti(L, 1, l);
207
- if (sort_comp(L, -2, -1)) /* a[i]<a[l]? */
208
- set2(L, i, l);
209
- else {
210
- lua_pop(L, 1); /* remove a[l] */
211
- lua_rawgeti(L, 1, u);
212
- if (sort_comp(L, -1, -2)) /* a[u]<a[i]? */
213
- set2(L, i, u);
214
- else
215
- lua_pop(L, 2);
216
- }
217
- if (u-l == 2) break; /* only 3 elements */
218
- lua_rawgeti(L, 1, i); /* Pivot */
219
- lua_pushvalue(L, -1);
220
- lua_rawgeti(L, 1, u-1);
221
- set2(L, i, u-1);
222
- /* a[l] <= P == a[u-1] <= a[u], only need to sort from l+1 to u-2 */
223
- i = l; j = u-1;
224
- for (;;) { /* invariant: a[l..i] <= P <= a[j..u] */
225
- /* repeat ++i until a[i] >= P */
226
- while (lua_rawgeti(L, 1, ++i), sort_comp(L, -1, -2)) {
227
- if (i>u) luaL_error(L, "invalid order function for sorting");
228
- lua_pop(L, 1); /* remove a[i] */
229
- }
230
- /* repeat --j until a[j] <= P */
231
- while (lua_rawgeti(L, 1, --j), sort_comp(L, -3, -1)) {
232
- if (j<l) luaL_error(L, "invalid order function for sorting");
233
- lua_pop(L, 1); /* remove a[j] */
234
- }
235
- if (j<i) {
236
- lua_pop(L, 3); /* pop pivot, a[i], a[j] */
237
- break;
238
- }
239
- set2(L, i, j);
240
- }
241
- lua_rawgeti(L, 1, u-1);
242
- lua_rawgeti(L, 1, i);
243
- set2(L, u-1, i); /* swap pivot (a[u-1]) with a[i] */
244
- /* a[l..i-1] <= a[i] == P <= a[i+1..u] */
245
- /* adjust so that smaller half is in [j..i] and larger one in [l..u] */
246
- if (i-l < u-i) {
247
- j=l; i=i-1; l=i+2;
248
- }
249
- else {
250
- j=i+1; i=u; u=j-2;
251
- }
252
- auxsort(L, j, i); /* call recursively the smaller one */
253
- } /* repeat the routine for the larger one */
254
- }
255
-
256
- static int sort (lua_State *L) {
257
- int n = aux_getn(L, 1);
258
- luaL_checkstack(L, 40, ""); /* assume array is smaller than 2^40 */
259
- if (!lua_isnoneornil(L, 2)) /* is there a 2nd argument? */
260
- luaL_checktype(L, 2, LUA_TFUNCTION);
261
- lua_settop(L, 2); /* make sure there is two arguments */
262
- auxsort(L, 1, n);
263
- return 0;
264
- }
265
-
266
- /* }====================================================== */
267
-
268
-
269
- static const luaL_Reg tab_funcs[] = {
270
- {"concat", tconcat},
271
- {"foreach", foreach},
272
- {"foreachi", foreachi},
273
- {"getn", getn},
274
- {"maxn", maxn},
275
- {"insert", tinsert},
276
- {"remove", tremove},
277
- {"setn", setn},
278
- {"sort", sort},
279
- {NULL, NULL}
280
- };
281
-
282
-
283
- LUALIB_API int luaopen_table (lua_State *L) {
284
- luaL_register(L, LUA_TABLIBNAME, tab_funcs);
285
- return 1;
286
- }
287
-
@@ -1,75 +0,0 @@
1
- /*
2
- ** $Id: ltm.c,v 2.8.1.1 2007/12/27 13:02:25 roberto Exp $
3
- ** Tag methods
4
- ** See Copyright Notice in lua.h
5
- */
6
-
7
-
8
- #include <string.h>
9
-
10
- #define ltm_c
11
- #define LUA_CORE
12
-
13
- #include "lua.h"
14
-
15
- #include "lobject.h"
16
- #include "lstate.h"
17
- #include "lstring.h"
18
- #include "ltable.h"
19
- #include "ltm.h"
20
-
21
-
22
-
23
- const char *const luaT_typenames[] = {
24
- "nil", "boolean", "userdata", "number",
25
- "string", "table", "function", "userdata", "thread",
26
- "proto", "upval"
27
- };
28
-
29
-
30
- void luaT_init (lua_State *L) {
31
- static const char *const luaT_eventname[] = { /* ORDER TM */
32
- "__index", "__newindex",
33
- "__gc", "__mode", "__eq",
34
- "__add", "__sub", "__mul", "__div", "__mod",
35
- "__pow", "__unm", "__len", "__lt", "__le",
36
- "__concat", "__call"
37
- };
38
- int i;
39
- for (i=0; i<TM_N; i++) {
40
- G(L)->tmname[i] = luaS_new(L, luaT_eventname[i]);
41
- luaS_fix(G(L)->tmname[i]); /* never collect these names */
42
- }
43
- }
44
-
45
-
46
- /*
47
- ** function to be used with macro "fasttm": optimized for absence of
48
- ** tag methods
49
- */
50
- const TValue *luaT_gettm (Table *events, TMS event, TString *ename) {
51
- const TValue *tm = luaH_getstr(events, ename);
52
- lua_assert(event <= TM_EQ);
53
- if (ttisnil(tm)) { /* no tag method? */
54
- events->flags |= cast_byte(1u<<event); /* cache this fact */
55
- return NULL;
56
- }
57
- else return tm;
58
- }
59
-
60
-
61
- const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, TMS event) {
62
- Table *mt;
63
- switch (ttype(o)) {
64
- case LUA_TTABLE:
65
- mt = hvalue(o)->metatable;
66
- break;
67
- case LUA_TUSERDATA:
68
- mt = uvalue(o)->metatable;
69
- break;
70
- default:
71
- mt = G(L)->mt[ttype(o)];
72
- }
73
- return (mt ? luaH_getstr(mt, G(L)->tmname[event]) : luaO_nilobject);
74
- }
75
-
@@ -1,54 +0,0 @@
1
- /*
2
- ** $Id: ltm.h,v 2.6.1.1 2007/12/27 13:02:25 roberto Exp $
3
- ** Tag methods
4
- ** See Copyright Notice in lua.h
5
- */
6
-
7
- #ifndef ltm_h
8
- #define ltm_h
9
-
10
-
11
- #include "lobject.h"
12
-
13
-
14
- /*
15
- * WARNING: if you change the order of this enumeration,
16
- * grep "ORDER TM"
17
- */
18
- typedef enum {
19
- TM_INDEX,
20
- TM_NEWINDEX,
21
- TM_GC,
22
- TM_MODE,
23
- TM_EQ, /* last tag method with `fast' access */
24
- TM_ADD,
25
- TM_SUB,
26
- TM_MUL,
27
- TM_DIV,
28
- TM_MOD,
29
- TM_POW,
30
- TM_UNM,
31
- TM_LEN,
32
- TM_LT,
33
- TM_LE,
34
- TM_CONCAT,
35
- TM_CALL,
36
- TM_N /* number of elements in the enum */
37
- } TMS;
38
-
39
-
40
-
41
- #define gfasttm(g,et,e) ((et) == NULL ? NULL : \
42
- ((et)->flags & (1u<<(e))) ? NULL : luaT_gettm(et, e, (g)->tmname[e]))
43
-
44
- #define fasttm(l,et,e) gfasttm(G(l), et, e)
45
-
46
- LUAI_DATA const char *const luaT_typenames[];
47
-
48
-
49
- LUAI_FUNC const TValue *luaT_gettm (Table *events, TMS event, TString *ename);
50
- LUAI_FUNC const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o,
51
- TMS event);
52
- LUAI_FUNC void luaT_init (lua_State *L);
53
-
54
- #endif