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