immunio 1.1.2 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (228) hide show
  1. checksums.yaml +4 -4
  2. data/lib/immunio/version.rb +1 -1
  3. data/lua-hooks/Makefile +56 -109
  4. data/lua-hooks/ext/all.c +3 -14
  5. data/lua-hooks/ext/libinjection/module.mk +5 -0
  6. data/lua-hooks/ext/lpeg/module.mk +6 -0
  7. data/lua-hooks/ext/lua-cmsgpack/module.mk +2 -0
  8. data/lua-hooks/ext/lua-snapshot/module.mk +2 -0
  9. data/lua-hooks/ext/luajit/COPYRIGHT +1 -1
  10. data/lua-hooks/ext/luajit/Makefile +2 -2
  11. data/lua-hooks/ext/luajit/README +2 -2
  12. data/lua-hooks/ext/luajit/doc/bluequad-print.css +1 -1
  13. data/lua-hooks/ext/luajit/doc/bluequad.css +1 -1
  14. data/lua-hooks/ext/luajit/doc/changes.html +15 -2
  15. data/lua-hooks/ext/luajit/doc/contact.html +3 -3
  16. data/lua-hooks/ext/luajit/doc/ext_c_api.html +2 -2
  17. data/lua-hooks/ext/luajit/doc/ext_ffi.html +2 -2
  18. data/lua-hooks/ext/luajit/doc/ext_ffi_api.html +2 -2
  19. data/lua-hooks/ext/luajit/doc/ext_ffi_semantics.html +4 -2
  20. data/lua-hooks/ext/luajit/doc/ext_ffi_tutorial.html +2 -2
  21. data/lua-hooks/ext/luajit/doc/ext_jit.html +2 -2
  22. data/lua-hooks/ext/luajit/doc/ext_profiler.html +2 -2
  23. data/lua-hooks/ext/luajit/doc/extensions.html +9 -2
  24. data/lua-hooks/ext/luajit/doc/faq.html +2 -2
  25. data/lua-hooks/ext/luajit/doc/install.html +22 -18
  26. data/lua-hooks/ext/luajit/doc/luajit.html +3 -3
  27. data/lua-hooks/ext/luajit/doc/running.html +2 -2
  28. data/lua-hooks/ext/luajit/doc/status.html +2 -2
  29. data/lua-hooks/ext/luajit/dynasm/dasm_arm.h +1 -1
  30. data/lua-hooks/ext/luajit/dynasm/dasm_arm.lua +4 -4
  31. data/lua-hooks/ext/luajit/dynasm/dasm_arm64.h +1 -1
  32. data/lua-hooks/ext/luajit/dynasm/dasm_arm64.lua +4 -4
  33. data/lua-hooks/ext/luajit/dynasm/dasm_mips.h +1 -1
  34. data/lua-hooks/ext/luajit/dynasm/dasm_mips.lua +4 -4
  35. data/lua-hooks/ext/luajit/dynasm/dasm_ppc.h +1 -1
  36. data/lua-hooks/ext/luajit/dynasm/dasm_ppc.lua +4 -4
  37. data/lua-hooks/ext/luajit/dynasm/dasm_proto.h +3 -3
  38. data/lua-hooks/ext/luajit/dynasm/dasm_x64.lua +1 -1
  39. data/lua-hooks/ext/luajit/dynasm/dasm_x86.h +34 -7
  40. data/lua-hooks/ext/luajit/dynasm/dasm_x86.lua +427 -102
  41. data/lua-hooks/ext/luajit/dynasm/dynasm.lua +5 -5
  42. data/lua-hooks/ext/luajit/etc/luajit.1 +1 -1
  43. data/lua-hooks/ext/luajit/etc/luajit.pc +1 -1
  44. data/lua-hooks/ext/luajit/src/Makefile +36 -21
  45. data/lua-hooks/ext/luajit/src/Makefile.dep +3 -1
  46. data/lua-hooks/ext/luajit/src/host/buildvm.c +1 -1
  47. data/lua-hooks/ext/luajit/src/host/buildvm.h +1 -1
  48. data/lua-hooks/ext/luajit/src/host/buildvm_asm.c +10 -1
  49. data/lua-hooks/ext/luajit/src/host/buildvm_fold.c +1 -1
  50. data/lua-hooks/ext/luajit/src/host/buildvm_lib.c +1 -1
  51. data/lua-hooks/ext/luajit/src/host/buildvm_peobj.c +1 -1
  52. data/lua-hooks/ext/luajit/src/host/genlibbc.lua +1 -1
  53. data/lua-hooks/ext/luajit/src/host/genminilua.lua +1 -1
  54. data/lua-hooks/ext/luajit/src/jit/bc.lua +1 -1
  55. data/lua-hooks/ext/luajit/src/jit/bcsave.lua +2 -2
  56. data/lua-hooks/ext/luajit/src/jit/dis_arm.lua +1 -1
  57. data/lua-hooks/ext/luajit/src/jit/dis_mips.lua +1 -1
  58. data/lua-hooks/ext/luajit/src/jit/dis_mipsel.lua +1 -1
  59. data/lua-hooks/ext/luajit/src/jit/dis_ppc.lua +1 -1
  60. data/lua-hooks/ext/luajit/src/jit/dis_x64.lua +1 -1
  61. data/lua-hooks/ext/luajit/src/jit/dis_x86.lua +163 -73
  62. data/lua-hooks/ext/luajit/src/jit/dump.lua +2 -1
  63. data/lua-hooks/ext/luajit/src/jit/p.lua +1 -1
  64. data/lua-hooks/ext/luajit/src/jit/v.lua +1 -1
  65. data/lua-hooks/ext/luajit/src/jit/zone.lua +1 -1
  66. data/lua-hooks/ext/luajit/src/lib_aux.c +1 -1
  67. data/lua-hooks/ext/luajit/src/lib_base.c +4 -5
  68. data/lua-hooks/ext/luajit/src/lib_bit.c +1 -1
  69. data/lua-hooks/ext/luajit/src/lib_debug.c +1 -1
  70. data/lua-hooks/ext/luajit/src/lib_ffi.c +2 -5
  71. data/lua-hooks/ext/luajit/src/lib_init.c +1 -1
  72. data/lua-hooks/ext/luajit/src/lib_io.c +2 -3
  73. data/lua-hooks/ext/luajit/src/lib_jit.c +1 -1
  74. data/lua-hooks/ext/luajit/src/lib_math.c +1 -1
  75. data/lua-hooks/ext/luajit/src/lib_os.c +2 -2
  76. data/lua-hooks/ext/luajit/src/lib_package.c +1 -1
  77. data/lua-hooks/ext/luajit/src/lib_string.c +1 -1
  78. data/lua-hooks/ext/luajit/src/lib_table.c +1 -1
  79. data/lua-hooks/ext/luajit/src/lj.supp +15 -0
  80. data/lua-hooks/ext/luajit/src/lj_alloc.c +1 -1
  81. data/lua-hooks/ext/luajit/src/lj_api.c +4 -1
  82. data/lua-hooks/ext/luajit/src/lj_arch.h +33 -7
  83. data/lua-hooks/ext/luajit/src/lj_asm.c +12 -5
  84. data/lua-hooks/ext/luajit/src/lj_asm.h +1 -1
  85. data/lua-hooks/ext/luajit/src/lj_asm_arm.h +3 -13
  86. data/lua-hooks/ext/luajit/src/lj_asm_mips.h +337 -71
  87. data/lua-hooks/ext/luajit/src/lj_asm_ppc.h +2 -2
  88. data/lua-hooks/ext/luajit/src/lj_asm_x86.h +2 -2
  89. data/lua-hooks/ext/luajit/src/lj_bc.c +1 -1
  90. data/lua-hooks/ext/luajit/src/lj_bc.h +1 -1
  91. data/lua-hooks/ext/luajit/src/lj_bcdump.h +1 -1
  92. data/lua-hooks/ext/luajit/src/lj_bcread.c +1 -1
  93. data/lua-hooks/ext/luajit/src/lj_bcwrite.c +1 -1
  94. data/lua-hooks/ext/luajit/src/lj_buf.c +2 -4
  95. data/lua-hooks/ext/luajit/src/lj_buf.h +1 -3
  96. data/lua-hooks/ext/luajit/src/lj_carith.c +1 -1
  97. data/lua-hooks/ext/luajit/src/lj_carith.h +1 -1
  98. data/lua-hooks/ext/luajit/src/lj_ccall.c +37 -14
  99. data/lua-hooks/ext/luajit/src/lj_ccall.h +3 -3
  100. data/lua-hooks/ext/luajit/src/lj_ccallback.c +16 -7
  101. data/lua-hooks/ext/luajit/src/lj_ccallback.h +1 -1
  102. data/lua-hooks/ext/luajit/src/lj_cconv.c +1 -1
  103. data/lua-hooks/ext/luajit/src/lj_cconv.h +1 -1
  104. data/lua-hooks/ext/luajit/src/lj_cdata.c +10 -1
  105. data/lua-hooks/ext/luajit/src/lj_cdata.h +3 -1
  106. data/lua-hooks/ext/luajit/src/lj_clib.c +1 -1
  107. data/lua-hooks/ext/luajit/src/lj_clib.h +1 -1
  108. data/lua-hooks/ext/luajit/src/lj_cparse.c +27 -6
  109. data/lua-hooks/ext/luajit/src/lj_cparse.h +1 -1
  110. data/lua-hooks/ext/luajit/src/lj_crecord.c +1 -1
  111. data/lua-hooks/ext/luajit/src/lj_crecord.h +1 -1
  112. data/lua-hooks/ext/luajit/src/lj_ctype.c +10 -8
  113. data/lua-hooks/ext/luajit/src/lj_ctype.h +1 -1
  114. data/lua-hooks/ext/luajit/src/lj_debug.c +1 -1
  115. data/lua-hooks/ext/luajit/src/lj_debug.h +1 -1
  116. data/lua-hooks/ext/luajit/src/lj_def.h +1 -1
  117. data/lua-hooks/ext/luajit/src/lj_dispatch.c +1 -1
  118. data/lua-hooks/ext/luajit/src/lj_dispatch.h +21 -4
  119. data/lua-hooks/ext/luajit/src/lj_emit_arm.h +1 -1
  120. data/lua-hooks/ext/luajit/src/lj_emit_mips.h +7 -5
  121. data/lua-hooks/ext/luajit/src/lj_emit_ppc.h +1 -1
  122. data/lua-hooks/ext/luajit/src/lj_emit_x86.h +1 -1
  123. data/lua-hooks/ext/luajit/src/lj_err.c +69 -31
  124. data/lua-hooks/ext/luajit/src/lj_err.h +1 -1
  125. data/lua-hooks/ext/luajit/src/lj_errmsg.h +1 -1
  126. data/lua-hooks/ext/luajit/src/lj_ff.h +1 -1
  127. data/lua-hooks/ext/luajit/src/lj_ffrecord.c +10 -40
  128. data/lua-hooks/ext/luajit/src/lj_ffrecord.h +1 -1
  129. data/lua-hooks/ext/luajit/src/lj_frame.h +12 -1
  130. data/lua-hooks/ext/luajit/src/lj_func.c +1 -1
  131. data/lua-hooks/ext/luajit/src/lj_func.h +1 -1
  132. data/lua-hooks/ext/luajit/src/lj_gc.c +2 -2
  133. data/lua-hooks/ext/luajit/src/lj_gc.h +1 -1
  134. data/lua-hooks/ext/luajit/src/lj_gdbjit.c +1 -1
  135. data/lua-hooks/ext/luajit/src/lj_gdbjit.h +1 -1
  136. data/lua-hooks/ext/luajit/src/lj_ir.c +31 -15
  137. data/lua-hooks/ext/luajit/src/lj_ir.h +1 -1
  138. data/lua-hooks/ext/luajit/src/lj_ircall.h +29 -1
  139. data/lua-hooks/ext/luajit/src/lj_iropt.h +2 -1
  140. data/lua-hooks/ext/luajit/src/lj_jit.h +2 -1
  141. data/lua-hooks/ext/luajit/src/lj_lex.c +28 -1
  142. data/lua-hooks/ext/luajit/src/lj_lex.h +1 -1
  143. data/lua-hooks/ext/luajit/src/lj_lib.c +1 -1
  144. data/lua-hooks/ext/luajit/src/lj_lib.h +1 -1
  145. data/lua-hooks/ext/luajit/src/lj_load.c +1 -1
  146. data/lua-hooks/ext/luajit/src/lj_mcode.c +1 -1
  147. data/lua-hooks/ext/luajit/src/lj_mcode.h +1 -1
  148. data/lua-hooks/ext/luajit/src/lj_meta.c +8 -8
  149. data/lua-hooks/ext/luajit/src/lj_meta.h +1 -1
  150. data/lua-hooks/ext/luajit/src/lj_obj.c +1 -1
  151. data/lua-hooks/ext/luajit/src/lj_obj.h +1 -1
  152. data/lua-hooks/ext/luajit/src/lj_opt_dce.c +1 -1
  153. data/lua-hooks/ext/luajit/src/lj_opt_fold.c +1 -1
  154. data/lua-hooks/ext/luajit/src/lj_opt_loop.c +1 -1
  155. data/lua-hooks/ext/luajit/src/lj_opt_mem.c +1 -1
  156. data/lua-hooks/ext/luajit/src/lj_opt_narrow.c +1 -1
  157. data/lua-hooks/ext/luajit/src/lj_opt_sink.c +1 -1
  158. data/lua-hooks/ext/luajit/src/lj_opt_split.c +10 -5
  159. data/lua-hooks/ext/luajit/src/lj_parse.c +1 -1
  160. data/lua-hooks/ext/luajit/src/lj_parse.h +1 -1
  161. data/lua-hooks/ext/luajit/src/lj_profile.c +1 -1
  162. data/lua-hooks/ext/luajit/src/lj_profile.h +1 -1
  163. data/lua-hooks/ext/luajit/src/lj_record.c +13 -5
  164. data/lua-hooks/ext/luajit/src/lj_record.h +1 -1
  165. data/lua-hooks/ext/luajit/src/lj_snap.c +20 -23
  166. data/lua-hooks/ext/luajit/src/lj_snap.h +1 -1
  167. data/lua-hooks/ext/luajit/src/lj_state.c +1 -1
  168. data/lua-hooks/ext/luajit/src/lj_state.h +1 -1
  169. data/lua-hooks/ext/luajit/src/lj_str.c +1 -1
  170. data/lua-hooks/ext/luajit/src/lj_str.h +1 -1
  171. data/lua-hooks/ext/luajit/src/lj_strfmt.c +12 -98
  172. data/lua-hooks/ext/luajit/src/lj_strfmt.h +4 -4
  173. data/lua-hooks/ext/luajit/src/lj_strfmt_num.c +591 -0
  174. data/lua-hooks/ext/luajit/src/lj_strscan.c +1 -1
  175. data/lua-hooks/ext/luajit/src/lj_strscan.h +1 -1
  176. data/lua-hooks/ext/luajit/src/lj_tab.c +1 -1
  177. data/lua-hooks/ext/luajit/src/lj_tab.h +1 -1
  178. data/lua-hooks/ext/luajit/src/lj_target.h +1 -1
  179. data/lua-hooks/ext/luajit/src/lj_target_arm.h +1 -1
  180. data/lua-hooks/ext/luajit/src/lj_target_arm64.h +1 -1
  181. data/lua-hooks/ext/luajit/src/lj_target_mips.h +30 -2
  182. data/lua-hooks/ext/luajit/src/lj_target_ppc.h +1 -1
  183. data/lua-hooks/ext/luajit/src/lj_target_x86.h +1 -1
  184. data/lua-hooks/ext/luajit/src/lj_trace.c +7 -2
  185. data/lua-hooks/ext/luajit/src/lj_trace.h +1 -1
  186. data/lua-hooks/ext/luajit/src/lj_traceerr.h +1 -3
  187. data/lua-hooks/ext/luajit/src/lj_udata.c +1 -1
  188. data/lua-hooks/ext/luajit/src/lj_udata.h +1 -1
  189. data/lua-hooks/ext/luajit/src/lj_vm.h +5 -3
  190. data/lua-hooks/ext/luajit/src/lj_vmevent.c +1 -1
  191. data/lua-hooks/ext/luajit/src/lj_vmevent.h +1 -1
  192. data/lua-hooks/ext/luajit/src/lj_vmmath.c +15 -15
  193. data/lua-hooks/ext/luajit/src/ljamalg.c +2 -1
  194. data/lua-hooks/ext/luajit/src/lua.h +1 -0
  195. data/lua-hooks/ext/luajit/src/luaconf.h +2 -2
  196. data/lua-hooks/ext/luajit/src/luajit.c +1 -1
  197. data/lua-hooks/ext/luajit/src/luajit.h +4 -4
  198. data/lua-hooks/ext/luajit/src/lualib.h +1 -1
  199. data/lua-hooks/ext/luajit/src/msvcbuild.bat +1 -1
  200. data/lua-hooks/ext/luajit/src/ps4build.bat +26 -6
  201. data/lua-hooks/ext/luajit/src/vm_arm.dasc +17 -9
  202. data/lua-hooks/ext/luajit/src/vm_arm64.dasc +1 -1
  203. data/lua-hooks/ext/luajit/src/vm_mips.dasc +1562 -656
  204. data/lua-hooks/ext/luajit/src/vm_ppc.dasc +3 -7
  205. data/lua-hooks/ext/luajit/src/vm_x64.dasc +10 -2
  206. data/lua-hooks/ext/luajit/src/vm_x86.dasc +5 -8
  207. data/lua-hooks/ext/luautf8/module.mk +2 -0
  208. data/lua-hooks/ext/module.mk +15 -0
  209. data/lua-hooks/ext/modules.h +17 -0
  210. data/lua-hooks/ext/perf/luacpu.c +1 -1
  211. data/lua-hooks/ext/perf/lualoadavg.c +1 -1
  212. data/lua-hooks/ext/perf/luameminfo.c +1 -1
  213. data/lua-hooks/ext/perf/luaoslib.c +124 -2
  214. data/lua-hooks/ext/perf/module.mk +5 -0
  215. data/lua-hooks/ext/sha1/luasha1.c +4 -2
  216. data/lua-hooks/ext/sha1/module.mk +5 -0
  217. data/lua-hooks/ext/sha2/luasha256.c +4 -2
  218. data/lua-hooks/ext/sha2/module.mk +5 -0
  219. data/lua-hooks/ext/sysutils/lua_utils.c +56 -0
  220. data/lua-hooks/ext/sysutils/module.mk +2 -0
  221. data/lua-hooks/lib/boot.lua +2 -1
  222. data/lua-hooks/lib/hooks/module.mk +31 -0
  223. data/lua-hooks/lib/hooks/xss/module.mk +4 -0
  224. data/lua-hooks/lib/lexers/module.mk +10 -0
  225. data/lua-hooks/lib/module.mk +38 -0
  226. data/lua-hooks/lib/schema/module.mk +3 -0
  227. data/lua-hooks/options.mk +59 -0
  228. metadata +21 -2
@@ -1,7 +1,7 @@
1
1
  ----------------------------------------------------------------------------
2
2
  -- LuaJIT compiler dump module.
3
3
  --
4
- -- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
4
+ -- Copyright (C) 2005-2016 Mike Pall. All rights reserved.
5
5
  -- Released under the MIT license. See Copyright Notice in luajit.h
6
6
  ----------------------------------------------------------------------------
7
7
  --
@@ -571,6 +571,7 @@ local function dump_trace(what, tr, func, pc, otr, oex)
571
571
  end
572
572
  if dumpmode.H then out:write("</pre>\n\n") else out:write("\n") end
573
573
  else
574
+ if what == "flush" then symtab, nexitsym = {}, 0 end
574
575
  out:write("---- TRACE ", what, "\n\n")
575
576
  end
576
577
  out:flush()
@@ -1,7 +1,7 @@
1
1
  ----------------------------------------------------------------------------
2
2
  -- LuaJIT profiler.
3
3
  --
4
- -- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
4
+ -- Copyright (C) 2005-2016 Mike Pall. All rights reserved.
5
5
  -- Released under the MIT license. See Copyright Notice in luajit.h
6
6
  ----------------------------------------------------------------------------
7
7
  --
@@ -1,7 +1,7 @@
1
1
  ----------------------------------------------------------------------------
2
2
  -- Verbose mode of the LuaJIT compiler.
3
3
  --
4
- -- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
4
+ -- Copyright (C) 2005-2016 Mike Pall. All rights reserved.
5
5
  -- Released under the MIT license. See Copyright Notice in luajit.h
6
6
  ----------------------------------------------------------------------------
7
7
  --
@@ -1,7 +1,7 @@
1
1
  ----------------------------------------------------------------------------
2
2
  -- LuaJIT profiler zones.
3
3
  --
4
- -- Copyright (C) 2005-2015 Mike Pall. All rights reserved.
4
+ -- Copyright (C) 2005-2016 Mike Pall. All rights reserved.
5
5
  -- Released under the MIT license. See Copyright Notice in luajit.h
6
6
  ----------------------------------------------------------------------------
7
7
  --
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** Auxiliary library for the Lua/C API.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  **
5
5
  ** Major parts taken verbatim or adapted from the Lua interpreter.
6
6
  ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** Base and coroutine library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  **
5
5
  ** Major portions taken verbatim or adapted from the Lua interpreter.
6
6
  ** Copyright (C) 1994-2011 Lua.org, PUC-Rio. See Copyright Notice in lua.h
@@ -435,13 +435,13 @@ LJLIB_CF(gcinfo)
435
435
  LJLIB_CF(collectgarbage)
436
436
  {
437
437
  int opt = lj_lib_checkopt(L, 1, LUA_GCCOLLECT, /* ORDER LUA_GC* */
438
- "\4stop\7restart\7collect\5count\1\377\4step\10setpause\12setstepmul");
438
+ "\4stop\7restart\7collect\5count\1\377\4step\10setpause\12setstepmul\1\377\11isrunning");
439
439
  int32_t data = lj_lib_optint(L, 2, 0);
440
440
  if (opt == LUA_GCCOUNT) {
441
441
  setnumV(L->top, (lua_Number)G(L)->gc.total/1024.0);
442
442
  } else {
443
443
  int res = lua_gc(L, opt, data);
444
- if (opt == LUA_GCSTEP)
444
+ if (opt == LUA_GCSTEP || opt == LUA_GCISRUNNING)
445
445
  setboolV(L->top, res);
446
446
  else
447
447
  setintV(L->top, res);
@@ -495,11 +495,10 @@ LJLIB_CF(print)
495
495
  shortcut = (tvisfunc(tv) && funcV(tv)->c.ffid == FF_tostring);
496
496
  for (i = 0; i < nargs; i++) {
497
497
  cTValue *o = &L->base[i];
498
- char buf[STRFMT_MAXBUF_NUM];
499
498
  const char *str;
500
499
  size_t size;
501
500
  MSize len;
502
- if (shortcut && (str = lj_strfmt_wstrnum(buf, o, &len)) != NULL) {
501
+ if (shortcut && (str = lj_strfmt_wstrnum(L, o, &len)) != NULL) {
503
502
  size = len;
504
503
  } else {
505
504
  copyTV(L, L->top+1, o);
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** Bit manipulation library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  */
5
5
 
6
6
  #define lib_bit_c
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** Debug library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  **
5
5
  ** Major portions taken verbatim or adapted from the Lua interpreter.
6
6
  ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** FFI library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  */
5
5
 
6
6
  #define lib_ffi_c
@@ -505,10 +505,7 @@ LJLIB_CF(ffi_new) LJLIB_REC(.)
505
505
  }
506
506
  if (sz == CTSIZE_INVALID)
507
507
  lj_err_arg(L, 1, LJ_ERR_FFI_INVSIZE);
508
- if (!(info & CTF_VLA) && ctype_align(info) <= CT_MEMALIGN)
509
- cd = lj_cdata_new(cts, id, sz);
510
- else
511
- cd = lj_cdata_newv(L, id, sz, ctype_align(info));
508
+ cd = lj_cdata_newx(cts, id, sz, info);
512
509
  setcdataV(L, o-1, cd); /* Anchor the uninitialized cdata. */
513
510
  lj_cconv_ct_init(cts, ct, sz, cdataptr(cd),
514
511
  o, (MSize)(L->top - o)); /* Initialize cdata. */
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** Library initialization.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  **
5
5
  ** Major parts taken verbatim from the Lua interpreter.
6
6
  ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** I/O library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  **
5
5
  ** Major portions taken verbatim or adapted from the Lua interpreter.
6
6
  ** Copyright (C) 1994-2011 Lua.org, PUC-Rio. See Copyright Notice in lua.h
@@ -232,9 +232,8 @@ static int io_file_write(lua_State *L, FILE *fp, int start)
232
232
  cTValue *tv;
233
233
  int status = 1;
234
234
  for (tv = L->base+start; tv < L->top; tv++) {
235
- char buf[STRFMT_MAXBUF_NUM];
236
235
  MSize len;
237
- const char *p = lj_strfmt_wstrnum(buf, tv, &len);
236
+ const char *p = lj_strfmt_wstrnum(L, tv, &len);
238
237
  if (!p)
239
238
  lj_err_argt(L, (int)(tv - L->base) + 1, LUA_TSTRING);
240
239
  status = status && (fwrite(p, 1, len, fp) == len);
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** JIT library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  */
5
5
 
6
6
  #define lib_jit_c
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** Math library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  */
5
5
 
6
6
  #include <math.h>
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** OS library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  **
5
5
  ** Major portions taken verbatim or adapted from the Lua interpreter.
6
6
  ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
@@ -39,7 +39,7 @@
39
39
 
40
40
  LJLIB_CF(os_execute)
41
41
  {
42
- #if LJ_TARGET_CONSOLE
42
+ #if LJ_NO_SYSTEM
43
43
  #if LJ_52
44
44
  errno = ENOSYS;
45
45
  return luaL_fileresult(L, 0, NULL);
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** Package library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  **
5
5
  ** Major portions taken verbatim or adapted from the Lua interpreter.
6
6
  ** Copyright (C) 1994-2012 Lua.org, PUC-Rio. See Copyright Notice in lua.h
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** String library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  **
5
5
  ** Major portions taken verbatim or adapted from the Lua interpreter.
6
6
  ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** Table library.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  **
5
5
  ** Major portions taken verbatim or adapted from the Lua interpreter.
6
6
  ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
@@ -24,3 +24,18 @@
24
24
  Memcheck:Cond
25
25
  fun:lj_str_new
26
26
  }
27
+ {
28
+ Optimized string compare
29
+ Memcheck:Addr4
30
+ fun:lj_str_fastcmp
31
+ }
32
+ {
33
+ Optimized string compare
34
+ Memcheck:Addr1
35
+ fun:lj_str_fastcmp
36
+ }
37
+ {
38
+ Optimized string compare
39
+ Memcheck:Cond
40
+ fun:lj_str_fastcmp
41
+ }
@@ -196,7 +196,7 @@ static LJ_AINLINE void *CALL_MMAP(size_t size)
196
196
  return ptr;
197
197
  }
198
198
 
199
- #elif LJ_TARGET_OSX || LJ_TARGET_PS4 || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__sun__)
199
+ #elif LJ_TARGET_OSX || LJ_TARGET_PS4 || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__sun__) || defined(__CYGWIN__)
200
200
 
201
201
  /* OSX and FreeBSD mmap() use a naive first-fit linear search.
202
202
  ** That's perfect for us. Except that -pagezero_size must be set for OSX,
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** Public Lua/C API.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  **
5
5
  ** Major portions taken verbatim or adapted from the Lua interpreter.
6
6
  ** Copyright (C) 1994-2008 Lua.org, PUC-Rio. See Copyright Notice in lua.h
@@ -1188,6 +1188,9 @@ LUA_API int lua_gc(lua_State *L, int what, int data)
1188
1188
  res = (int)(g->gc.stepmul);
1189
1189
  g->gc.stepmul = (MSize)data;
1190
1190
  break;
1191
+ case LUA_GCISRUNNING:
1192
+ res = (g->gc.threshold != LJ_MAX_MEM);
1193
+ break;
1191
1194
  default:
1192
1195
  res = -1; /* Invalid option. */
1193
1196
  }
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** Target architecture selection.
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  */
5
5
 
6
6
  #ifndef _LJ_ARCH_H
@@ -155,7 +155,11 @@
155
155
  #define LJ_ARCH_NAME "x64"
156
156
  #define LJ_ARCH_BITS 64
157
157
  #define LJ_ARCH_ENDIAN LUAJIT_LE
158
- #define LJ_ABI_WIN LJ_TARGET_WINDOWS
158
+ #if LJ_TARGET_WINDOWS || __CYGWIN__
159
+ #define LJ_ABI_WIN 1
160
+ #else
161
+ #define LJ_ABI_WIN 0
162
+ #endif
159
163
  #define LJ_TARGET_X64 1
160
164
  #define LJ_TARGET_X86ORX64 1
161
165
  #define LJ_TARGET_EHRETREG 0
@@ -291,6 +295,28 @@
291
295
  #define LJ_ARCH_NAME "mips"
292
296
  #define LJ_ARCH_ENDIAN LUAJIT_BE
293
297
  #endif
298
+
299
+ #if !defined(LJ_ARCH_HASFPU)
300
+ #ifdef __mips_soft_float
301
+ #define LJ_ARCH_HASFPU 0
302
+ #else
303
+ #define LJ_ARCH_HASFPU 1
304
+ #endif
305
+ #endif
306
+
307
+ /* Temporarily disable features until the code has been merged. */
308
+ #if !defined(LUAJIT_NO_UNWIND) && __GNU_COMPACT_EH__
309
+ #define LUAJIT_NO_UNWIND 1
310
+ #endif
311
+
312
+ #if !defined(LJ_ABI_SOFTFP)
313
+ #ifdef __mips_soft_float
314
+ #define LJ_ABI_SOFTFP 1
315
+ #else
316
+ #define LJ_ABI_SOFTFP 0
317
+ #endif
318
+ #endif
319
+
294
320
  #define LJ_ARCH_BITS 32
295
321
  #define LJ_TARGET_MIPS 1
296
322
  #define LJ_TARGET_EHRETREG 4
@@ -298,7 +324,7 @@
298
324
  #define LJ_TARGET_MASKSHIFT 1
299
325
  #define LJ_TARGET_MASKROT 1
300
326
  #define LJ_TARGET_UNIFYROT 2 /* Want only IR_BROR. */
301
- #define LJ_ARCH_NUMMODE LJ_NUMMODE_SINGLE
327
+ #define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL
302
328
 
303
329
  #if _MIPS_ARCH_MIPS32R2
304
330
  #define LJ_ARCH_VERSION 20
@@ -382,9 +408,6 @@
382
408
  #error "No support for PPC/e500 anymore (use LuaJIT 2.0)"
383
409
  #endif
384
410
  #elif LJ_TARGET_MIPS
385
- #if defined(__mips_soft_float)
386
- #error "No support for MIPS CPUs without FPU"
387
- #endif
388
411
  #if defined(_LP64)
389
412
  #error "No support for MIPS64"
390
413
  #endif
@@ -488,12 +511,15 @@
488
511
  #endif
489
512
 
490
513
  /* Various workarounds for embedded operating systems or weak C runtimes. */
491
- #if (defined(__ANDROID__) && !defined(LJ_TARGET_X86ORX64)) || defined(__symbian__) || LJ_TARGET_XBOX360 || LJ_TARGET_WINDOWS
514
+ #if defined(__ANDROID__) || defined(__symbian__) || LJ_TARGET_XBOX360 || LJ_TARGET_WINDOWS
492
515
  #define LUAJIT_NO_LOG2
493
516
  #endif
494
517
  #if defined(__symbian__) || LJ_TARGET_WINDOWS
495
518
  #define LUAJIT_NO_EXP2
496
519
  #endif
520
+ #if LJ_TARGET_CONSOLE || (LJ_TARGET_IOS && __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0)
521
+ #define LJ_NO_SYSTEM 1
522
+ #endif
497
523
 
498
524
  #if defined(LUAJIT_NO_UNWIND) || defined(__symbian__) || LJ_TARGET_IOS || LJ_TARGET_PS3 || LJ_TARGET_PS4
499
525
  #define LJ_NO_UNWIND 1
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** IR assembler (SSA IR -> machine code).
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  */
5
5
 
6
6
  #define lj_asm_c
@@ -1609,16 +1609,24 @@ static void asm_ir(ASMState *as, IRIns *ir)
1609
1609
  case IR_ADD: asm_add(as, ir); break;
1610
1610
  case IR_SUB: asm_sub(as, ir); break;
1611
1611
  case IR_MUL: asm_mul(as, ir); break;
1612
- case IR_DIV: asm_div(as, ir); break;
1613
1612
  case IR_MOD: asm_mod(as, ir); break;
1614
- case IR_POW: asm_pow(as, ir); break;
1615
1613
  case IR_NEG: asm_neg(as, ir); break;
1614
+ #if LJ_SOFTFP
1615
+ case IR_DIV: case IR_POW: case IR_ABS:
1616
+ case IR_ATAN2: case IR_LDEXP: case IR_FPMATH: case IR_TOBIT:
1617
+ lua_assert(0); /* Unused for LJ_SOFTFP. */
1618
+ break;
1619
+ #else
1620
+ case IR_DIV: asm_div(as, ir); break;
1621
+ case IR_POW: asm_pow(as, ir); break;
1616
1622
  case IR_ABS: asm_abs(as, ir); break;
1617
1623
  case IR_ATAN2: asm_atan2(as, ir); break;
1618
1624
  case IR_LDEXP: asm_ldexp(as, ir); break;
1625
+ case IR_FPMATH: asm_fpmath(as, ir); break;
1626
+ case IR_TOBIT: asm_tobit(as, ir); break;
1627
+ #endif
1619
1628
  case IR_MIN: asm_min(as, ir); break;
1620
1629
  case IR_MAX: asm_max(as, ir); break;
1621
- case IR_FPMATH: asm_fpmath(as, ir); break;
1622
1630
 
1623
1631
  /* Overflow-checking arithmetic ops. */
1624
1632
  case IR_ADDOV: asm_addov(as, ir); break;
@@ -1663,7 +1671,6 @@ static void asm_ir(ASMState *as, IRIns *ir)
1663
1671
  case IR_OBAR: asm_obar(as, ir); break;
1664
1672
 
1665
1673
  /* Type conversions. */
1666
- case IR_TOBIT: asm_tobit(as, ir); break;
1667
1674
  case IR_CONV: asm_conv(as, ir); break;
1668
1675
  case IR_TOSTR: asm_tostr(as, ir); break;
1669
1676
  case IR_STRTO: asm_strto(as, ir); break;
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** IR assembler (SSA IR -> machine code).
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  */
5
5
 
6
6
  #ifndef _LJ_ASM_H
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  ** ARM IR assembler (SSA IR -> machine code).
3
- ** Copyright (C) 2005-2015 Mike Pall. See Copyright Notice in luajit.h
3
+ ** Copyright (C) 2005-2016 Mike Pall. See Copyright Notice in luajit.h
4
4
  */
5
5
 
6
6
  /* -- Register allocator extensions --------------------------------------- */
@@ -426,7 +426,7 @@ static void asm_gencall(ASMState *as, const CCallInfo *ci, IRRef *args)
426
426
  static void asm_setupresult(ASMState *as, IRIns *ir, const CCallInfo *ci)
427
427
  {
428
428
  RegSet drop = RSET_SCRATCH;
429
- int hiop = ((ir+1)->o == IR_HIOP);
429
+ int hiop = ((ir+1)->o == IR_HIOP && !irt_isnil((ir+1)->t));
430
430
  if (ra_hasreg(ir->r))
431
431
  rset_clear(drop, ir->r); /* Dest reg handled below. */
432
432
  if (hiop && ra_hasreg((ir+1)->r))
@@ -520,8 +520,6 @@ static void asm_tobit(ASMState *as, IRIns *ir)
520
520
  emit_dn(as, ARMI_VMOV_R_S, dest, (tmp & 15));
521
521
  emit_dnm(as, ARMI_VADD_D, (tmp & 15), (left & 15), (right & 15));
522
522
  }
523
- #else
524
- #define asm_tobit(as, ir) lua_assert(0)
525
523
  #endif
526
524
 
527
525
  static void asm_conv(ASMState *as, IRIns *ir)
@@ -1372,8 +1370,6 @@ static void asm_fpmath(ASMState *as, IRIns *ir)
1372
1370
  else
1373
1371
  asm_callid(as, ir, IRCALL_lj_vm_floor + ir->op2);
1374
1372
  }
1375
- #else
1376
- #define asm_fpmath(as, ir) lua_assert(0)
1377
1373
  #endif
1378
1374
 
1379
1375
  static int asm_swapops(ASMState *as, IRRef lref, IRRef rref)
@@ -1492,13 +1488,7 @@ static void asm_mul(ASMState *as, IRIns *ir)
1492
1488
  #define asm_subov(as, ir) asm_sub(as, ir)
1493
1489
  #define asm_mulov(as, ir) asm_mul(as, ir)
1494
1490
 
1495
- #if LJ_SOFTFP
1496
- #define asm_div(as, ir) lua_assert(0)
1497
- #define asm_pow(as, ir) lua_assert(0)
1498
- #define asm_abs(as, ir) lua_assert(0)
1499
- #define asm_atan2(as, ir) lua_assert(0)
1500
- #define asm_ldexp(as, ir) lua_assert(0)
1501
- #else
1491
+ #if !LJ_SOFTFP
1502
1492
  #define asm_div(as, ir) asm_fparith(as, ir, ARMI_VDIV_D)
1503
1493
  #define asm_pow(as, ir) asm_callid(as, ir, IRCALL_lj_vm_powi)
1504
1494
  #define asm_abs(as, ir) asm_fpunary(as, ir, ARMI_VABS_D)