immunio 1.1.2 → 1.1.5

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 (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)