From 1c03608f62f6e185b60805526e5c5f56fa8193e2 Mon Sep 17 00:00:00 2001 From: Carl Camilleri Date: Mon, 20 Jun 2022 16:14:49 +0200 Subject: [PATCH] Update to latest version of LuaJIT --- deps/luajit/.gitignore | 11 + deps/luajit/COPYRIGHT | 8 +- deps/luajit/Makefile | 59 +- deps/luajit/README | 8 +- deps/luajit/doc/bluequad-print.css | 2 +- deps/luajit/doc/bluequad.css | 2 +- deps/luajit/doc/changes.html | 928 ---- deps/luajit/doc/contact.html | 35 +- deps/luajit/doc/ext_buffer.html | 697 +++ deps/luajit/doc/ext_c_api.html | 28 +- deps/luajit/doc/ext_ffi.html | 24 +- deps/luajit/doc/ext_ffi_api.html | 34 +- deps/luajit/doc/ext_ffi_semantics.html | 55 +- deps/luajit/doc/ext_ffi_tutorial.html | 30 +- deps/luajit/doc/ext_jit.html | 26 +- deps/luajit/doc/ext_profiler.html | 361 ++ deps/luajit/doc/extensions.html | 150 +- deps/luajit/doc/faq.html | 141 +- deps/luajit/doc/install.html | 603 ++- deps/luajit/doc/luajit.html | 46 +- deps/luajit/doc/running.html | 31 +- deps/luajit/doc/status.html | 62 +- deps/luajit/dynasm/dasm_arm.h | 11 +- deps/luajit/dynasm/dasm_arm.lua | 15 +- deps/luajit/dynasm/dasm_arm64.h | 563 +++ deps/luajit/dynasm/dasm_arm64.lua | 1219 ++++++ deps/luajit/dynasm/dasm_mips.h | 40 +- deps/luajit/dynasm/dasm_mips.lua | 690 ++- deps/luajit/dynasm/dasm_mips64.lua | 12 + deps/luajit/dynasm/dasm_ppc.h | 23 +- deps/luajit/dynasm/dasm_ppc.lua | 710 ++- deps/luajit/dynasm/dasm_proto.h | 6 +- deps/luajit/dynasm/dasm_x64.lua | 2 +- deps/luajit/dynasm/dasm_x86.h | 93 +- deps/luajit/dynasm/dasm_x86.lua | 667 ++- deps/luajit/dynasm/dynasm.lua | 15 +- deps/luajit/etc/luajit.1 | 8 +- deps/luajit/etc/luajit.pc | 8 +- deps/luajit/src/.gitignore | 7 + deps/luajit/src/Makefile | 184 +- deps/luajit/src/Makefile.dep | 255 +- deps/luajit/src/host/.gitignore | 3 + deps/luajit/src/host/buildvm.c | 38 +- deps/luajit/src/host/buildvm.h | 3 +- deps/luajit/src/host/buildvm_asm.c | 63 +- deps/luajit/src/host/buildvm_fold.c | 11 +- deps/luajit/src/host/buildvm_lib.c | 65 +- deps/luajit/src/host/buildvm_libbc.h | 81 + deps/luajit/src/host/buildvm_peobj.c | 45 +- deps/luajit/src/host/genlibbc.lua | 225 + deps/luajit/src/host/genminilua.lua | 18 +- deps/luajit/src/host/minilua.c | 9 +- deps/luajit/src/jit/.gitignore | 1 + deps/luajit/src/jit/bc.lua | 21 +- deps/luajit/src/jit/bcsave.lua | 127 +- deps/luajit/src/jit/dis_arm.lua | 22 +- deps/luajit/src/jit/dis_arm64.lua | 1216 ++++++ deps/luajit/src/jit/dis_arm64be.lua | 12 + deps/luajit/src/jit/dis_mips.lua | 378 +- deps/luajit/src/jit/dis_mips64.lua | 17 + deps/luajit/src/jit/dis_mips64el.lua | 17 + deps/luajit/src/jit/dis_mips64r6.lua | 17 + deps/luajit/src/jit/dis_mips64r6el.lua | 17 + deps/luajit/src/jit/dis_mipsel.lua | 17 +- deps/luajit/src/jit/dis_ppc.lua | 22 +- deps/luajit/src/jit/dis_x64.lua | 17 +- deps/luajit/src/jit/dis_x86.lua | 299 +- deps/luajit/src/jit/dump.lua | 95 +- deps/luajit/src/jit/p.lua | 312 ++ deps/luajit/src/jit/v.lua | 19 +- deps/luajit/src/jit/zone.lua | 45 + deps/luajit/src/lauxlib.h | 34 +- deps/luajit/src/lib_aux.c | 84 +- deps/luajit/src/lib_base.c | 165 +- deps/luajit/src/lib_bit.c | 136 +- deps/luajit/src/lib_buffer.c | 358 ++ deps/luajit/src/lib_debug.c | 19 +- deps/luajit/src/lib_ffi.c | 88 +- deps/luajit/src/lib_init.c | 2 +- deps/luajit/src/lib_io.c | 106 +- deps/luajit/src/lib_jit.c | 236 +- deps/luajit/src/lib_math.c | 94 +- deps/luajit/src/lib_os.c | 52 +- deps/luajit/src/lib_package.c | 82 +- deps/luajit/src/lib_string.c | 428 +- deps/luajit/src/lib_table.c | 189 +- deps/luajit/src/lj.supp | 26 - deps/luajit/src/lj_alloc.c | 279 +- deps/luajit/src/lj_alloc.h | 3 +- deps/luajit/src/lj_api.c | 403 +- deps/luajit/src/lj_arch.h | 434 +- deps/luajit/src/lj_asm.c | 1049 ++++- deps/luajit/src/lj_asm.h | 2 +- deps/luajit/src/lj_asm_arm.h | 697 ++- deps/luajit/src/lj_asm_arm64.h | 2070 +++++++++ deps/luajit/src/lj_asm_mips.h | 1833 +++++--- deps/luajit/src/lj_asm_ppc.h | 940 ++-- deps/luajit/src/lj_asm_x86.h | 1486 ++++--- deps/luajit/src/lj_assert.c | 28 + deps/luajit/src/lj_bc.c | 2 +- deps/luajit/src/lj_bc.h | 6 +- deps/luajit/src/lj_bcdump.h | 8 +- deps/luajit/src/lj_bcread.c | 159 +- deps/luajit/src/lj_bcwrite.c | 250 +- deps/luajit/src/lj_buf.c | 305 ++ deps/luajit/src/lj_buf.h | 198 + deps/luajit/src/lj_carith.c | 95 +- deps/luajit/src/lj_carith.h | 12 +- deps/luajit/src/lj_ccall.c | 399 +- deps/luajit/src/lj_ccall.h | 51 +- deps/luajit/src/lj_ccallback.c | 282 +- deps/luajit/src/lj_ccallback.h | 2 +- deps/luajit/src/lj_cconv.c | 71 +- deps/luajit/src/lj_cconv.h | 7 +- deps/luajit/src/lj_cdata.c | 87 +- deps/luajit/src/lj_cdata.h | 16 +- deps/luajit/src/lj_clib.c | 61 +- deps/luajit/src/lj_clib.h | 2 +- deps/luajit/src/lj_cparse.c | 209 +- deps/luajit/src/lj_cparse.h | 4 +- deps/luajit/src/lj_crecord.c | 483 ++- deps/luajit/src/lj_crecord.h | 14 +- deps/luajit/src/lj_ctype.c | 32 +- deps/luajit/src/lj_ctype.h | 43 +- deps/luajit/src/lj_debug.c | 216 +- deps/luajit/src/lj_debug.h | 13 +- deps/luajit/src/lj_def.h | 76 +- deps/luajit/src/lj_dispatch.c | 115 +- deps/luajit/src/lj_dispatch.h | 55 +- deps/luajit/src/lj_emit_arm.h | 75 +- deps/luajit/src/lj_emit_arm64.h | 424 ++ deps/luajit/src/lj_emit_mips.h | 163 +- deps/luajit/src/lj_emit_ppc.h | 36 +- deps/luajit/src/lj_emit_x86.h | 208 +- deps/luajit/src/lj_err.c | 724 +++- deps/luajit/src/lj_err.h | 21 +- deps/luajit/src/lj_errmsg.h | 25 +- deps/luajit/src/lj_ff.h | 2 +- deps/luajit/src/lj_ffrecord.c | 1026 ++++- deps/luajit/src/lj_ffrecord.h | 2 +- deps/luajit/src/lj_frame.h | 166 +- deps/luajit/src/lj_func.c | 24 +- deps/luajit/src/lj_func.h | 2 +- deps/luajit/src/lj_gc.c | 203 +- deps/luajit/src/lj_gc.h | 18 +- deps/luajit/src/lj_gdbjit.c | 59 +- deps/luajit/src/lj_gdbjit.h | 2 +- deps/luajit/src/lj_ir.c | 177 +- deps/luajit/src/lj_ir.h | 131 +- deps/luajit/src/lj_ircall.h | 240 +- deps/luajit/src/lj_iropt.h | 21 +- deps/luajit/src/lj_jit.h | 256 +- deps/luajit/src/lj_lex.c | 395 +- deps/luajit/src/lj_lex.h | 26 +- deps/luajit/src/lj_lib.c | 133 +- deps/luajit/src/lj_lib.h | 42 +- deps/luajit/src/lj_load.c | 8 +- deps/luajit/src/lj_mcode.c | 115 +- deps/luajit/src/lj_mcode.h | 2 +- deps/luajit/src/lj_meta.c | 136 +- deps/luajit/src/lj_meta.h | 3 +- deps/luajit/src/lj_obj.c | 20 +- deps/luajit/src/lj_obj.h | 325 +- deps/luajit/src/lj_opt_dce.c | 8 +- deps/luajit/src/lj_opt_fold.c | 697 ++- deps/luajit/src/lj_opt_loop.c | 55 +- deps/luajit/src/lj_opt_mem.c | 246 +- deps/luajit/src/lj_opt_narrow.c | 126 +- deps/luajit/src/lj_opt_sink.c | 39 +- deps/luajit/src/lj_opt_split.c | 203 +- deps/luajit/src/lj_parse.c | 335 +- deps/luajit/src/lj_parse.h | 2 +- deps/luajit/src/lj_prng.c | 259 ++ deps/luajit/src/lj_prng.h | 24 + deps/luajit/src/lj_profile.c | 367 ++ deps/luajit/src/lj_profile.h | 21 + deps/luajit/src/lj_record.c | 1001 ++++- deps/luajit/src/lj_record.h | 5 +- deps/luajit/src/lj_serialize.c | 539 +++ deps/luajit/src/lj_serialize.h | 28 + deps/luajit/src/lj_snap.c | 361 +- deps/luajit/src/lj_snap.h | 5 +- deps/luajit/src/lj_state.c | 114 +- deps/luajit/src/lj_state.h | 6 +- deps/luajit/src/lj_str.c | 521 +-- deps/luajit/src/lj_str.h | 41 +- deps/luajit/src/lj_strfmt.c | 606 +++ deps/luajit/src/lj_strfmt.h | 131 + deps/luajit/src/lj_strfmt_num.c | 592 +++ deps/luajit/src/lj_strscan.c | 109 +- deps/luajit/src/lj_strscan.h | 5 +- deps/luajit/src/lj_tab.c | 250 +- deps/luajit/src/lj_tab.h | 36 +- deps/luajit/src/lj_target.h | 11 +- deps/luajit/src/lj_target_arm.h | 7 +- deps/luajit/src/lj_target_arm64.h | 336 ++ deps/luajit/src/lj_target_mips.h | 204 +- deps/luajit/src/lj_target_ppc.h | 4 +- deps/luajit/src/lj_target_x86.h | 43 +- deps/luajit/src/lj_trace.c | 282 +- deps/luajit/src/lj_trace.h | 7 +- deps/luajit/src/lj_traceerr.h | 6 +- deps/luajit/src/lj_udata.c | 30 +- deps/luajit/src/lj_udata.h | 5 +- deps/luajit/src/lj_vm.h | 38 +- deps/luajit/src/lj_vmevent.c | 3 +- deps/luajit/src/lj_vmevent.h | 2 +- deps/luajit/src/lj_vmmath.c | 99 +- deps/luajit/src/ljamalg.c | 20 +- deps/luajit/src/lua.h | 13 +- deps/luajit/src/luaconf.h | 12 +- deps/luajit/src/luajit.c | 169 +- deps/luajit/src/luajit.h | 25 +- deps/luajit/src/lualib.h | 3 +- deps/luajit/src/msvcbuild.bat | 44 +- deps/luajit/src/nxbuild.bat | 159 + deps/luajit/src/ps4build.bat | 36 +- deps/luajit/src/ps5build.bat | 123 + deps/luajit/src/psvitabuild.bat | 93 + deps/luajit/src/vm_arm.dasc | 482 ++- deps/luajit/src/vm_arm64.dasc | 4156 ++++++++++++++++++ deps/luajit/src/vm_mips.dasc | 2713 ++++++++---- deps/luajit/src/vm_mips64.dasc | 5538 ++++++++++++++++++++++++ deps/luajit/src/vm_ppc.dasc | 1730 ++++++-- deps/luajit/src/vm_ppcspe.dasc | 3691 ---------------- deps/luajit/src/vm_x64.dasc | 4936 +++++++++++++++++++++ deps/luajit/src/vm_x86.dasc | 1940 +++------ deps/luajit/src/xb1build.bat | 101 + deps/luajit/src/xedkbuild.bat | 2 +- src/script.c | 6 +- 230 files changed, 48914 insertions(+), 15794 deletions(-) create mode 100644 deps/luajit/.gitignore delete mode 100644 deps/luajit/doc/changes.html create mode 100644 deps/luajit/doc/ext_buffer.html create mode 100644 deps/luajit/doc/ext_profiler.html create mode 100644 deps/luajit/dynasm/dasm_arm64.h create mode 100644 deps/luajit/dynasm/dasm_arm64.lua create mode 100644 deps/luajit/dynasm/dasm_mips64.lua create mode 100644 deps/luajit/src/.gitignore create mode 100644 deps/luajit/src/host/.gitignore create mode 100644 deps/luajit/src/host/buildvm_libbc.h create mode 100644 deps/luajit/src/host/genlibbc.lua create mode 100644 deps/luajit/src/jit/.gitignore create mode 100644 deps/luajit/src/jit/dis_arm64.lua create mode 100644 deps/luajit/src/jit/dis_arm64be.lua create mode 100644 deps/luajit/src/jit/dis_mips64.lua create mode 100644 deps/luajit/src/jit/dis_mips64el.lua create mode 100644 deps/luajit/src/jit/dis_mips64r6.lua create mode 100644 deps/luajit/src/jit/dis_mips64r6el.lua create mode 100644 deps/luajit/src/jit/p.lua create mode 100644 deps/luajit/src/jit/zone.lua create mode 100644 deps/luajit/src/lib_buffer.c delete mode 100644 deps/luajit/src/lj.supp create mode 100644 deps/luajit/src/lj_asm_arm64.h create mode 100644 deps/luajit/src/lj_assert.c create mode 100644 deps/luajit/src/lj_buf.c create mode 100644 deps/luajit/src/lj_buf.h create mode 100644 deps/luajit/src/lj_emit_arm64.h create mode 100644 deps/luajit/src/lj_prng.c create mode 100644 deps/luajit/src/lj_prng.h create mode 100644 deps/luajit/src/lj_profile.c create mode 100644 deps/luajit/src/lj_profile.h create mode 100644 deps/luajit/src/lj_serialize.c create mode 100644 deps/luajit/src/lj_serialize.h create mode 100644 deps/luajit/src/lj_strfmt.c create mode 100644 deps/luajit/src/lj_strfmt.h create mode 100644 deps/luajit/src/lj_strfmt_num.c create mode 100644 deps/luajit/src/lj_target_arm64.h create mode 100644 deps/luajit/src/nxbuild.bat create mode 100644 deps/luajit/src/ps5build.bat create mode 100644 deps/luajit/src/psvitabuild.bat create mode 100644 deps/luajit/src/vm_arm64.dasc create mode 100644 deps/luajit/src/vm_mips64.dasc delete mode 100644 deps/luajit/src/vm_ppcspe.dasc create mode 100644 deps/luajit/src/vm_x64.dasc create mode 100644 deps/luajit/src/xb1build.bat diff --git a/deps/luajit/.gitignore b/deps/luajit/.gitignore new file mode 100644 index 0000000..1a07bf7 --- /dev/null +++ b/deps/luajit/.gitignore @@ -0,0 +1,11 @@ +*.[oa] +*.so +*.obj +*.lib +*.exp +*.dll +*.exe +*.manifest +*.dmp +*.swp +.tags diff --git a/deps/luajit/COPYRIGHT b/deps/luajit/COPYRIGHT index 08936df..c74216c 100644 --- a/deps/luajit/COPYRIGHT +++ b/deps/luajit/COPYRIGHT @@ -1,7 +1,7 @@ =============================================================================== -LuaJIT -- a Just-In-Time Compiler for Lua. http://luajit.org/ +LuaJIT -- a Just-In-Time Compiler for Lua. https://luajit.org/ -Copyright (C) 2005-2014 Mike Pall. All rights reserved. +Copyright (C) 2005-2022 Mike Pall. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -21,7 +21,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -[ MIT license: http://www.opensource.org/licenses/mit-license.php ] +[ MIT license: https://www.opensource.org/licenses/mit-license.php ] =============================================================================== [ LuaJIT includes code from Lua 5.1/5.2, which has this license statement: ] @@ -51,6 +51,6 @@ THE SOFTWARE. This is a version (aka dlmalloc) of malloc/free/realloc written by Doug Lea and released to the public domain, as explained at -http://creativecommons.org/licenses/publicdomain +https://creativecommons.org/licenses/publicdomain =============================================================================== diff --git a/deps/luajit/Makefile b/deps/luajit/Makefile index b23b648..10c83c7 100644 --- a/deps/luajit/Makefile +++ b/deps/luajit/Makefile @@ -10,13 +10,14 @@ # For MSVC, please follow the instructions given in src/msvcbuild.bat. # For MinGW and Cygwin, cd to src and run make with the Makefile there. # -# Copyright (C) 2005-2014 Mike Pall. See Copyright Notice in luajit.h +# Copyright (C) 2005-2022 Mike Pall. See Copyright Notice in luajit.h ############################################################################## MAJVER= 2 -MINVER= 0 -RELVER= 3 -VERSION= $(MAJVER).$(MINVER).$(RELVER) +MINVER= 1 +RELVER= 0 +PREREL= -beta3 +VERSION= $(MAJVER).$(MINVER).$(RELVER)$(PREREL) ABIVER= 5.1 ############################################################################## @@ -46,17 +47,18 @@ INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig INSTALL_TNAME= luajit-$(VERSION) INSTALL_TSYMNAME= luajit INSTALL_ANAME= libluajit-$(ABIVER).a -INSTALL_SONAME= libluajit-$(ABIVER).so.$(MAJVER).$(MINVER).$(RELVER) -INSTALL_SOSHORT= libluajit-$(ABIVER).so -INSTALL_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib +INSTALL_SOSHORT1= libluajit-$(ABIVER).so +INSTALL_SOSHORT2= libluajit-$(ABIVER).so.$(MAJVER) +INSTALL_SONAME= $(INSTALL_SOSHORT2).$(MINVER).$(RELVER) INSTALL_DYLIBSHORT1= libluajit-$(ABIVER).dylib INSTALL_DYLIBSHORT2= libluajit-$(ABIVER).$(MAJVER).dylib +INSTALL_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib INSTALL_PCNAME= luajit.pc INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME) INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME) -INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT) -INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT) +INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT1) +INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT2) INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME) INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME) INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME) @@ -73,7 +75,7 @@ SYMLINK= ln -sf INSTALL_X= install -m 0755 INSTALL_F= install -m 0644 UNINSTALL= $(RM) -LDCONFIG= ldconfig -n +LDCONFIG= ldconfig -n 2>/dev/null SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" \ -e "s|^multilib=.*|multilib=$(MULTILIB)|" @@ -83,16 +85,23 @@ FILE_SO= libluajit.so FILE_MAN= luajit.1 FILE_PC= luajit.pc FILES_INC= lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h -FILES_JITLIB= bc.lua v.lua dump.lua dis_x86.lua dis_x64.lua dis_arm.lua \ - dis_ppc.lua dis_mips.lua dis_mipsel.lua bcsave.lua vmdef.lua +FILES_JITLIB= bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua \ + dis_x86.lua dis_x64.lua dis_arm.lua dis_arm64.lua \ + dis_arm64be.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua \ + dis_mips64.lua dis_mips64el.lua vmdef.lua ifeq (,$(findstring Windows,$(OS))) - ifeq (Darwin,$(shell uname -s)) - INSTALL_SONAME= $(INSTALL_DYLIBNAME) - INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_DYLIBSHORT1) - INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_DYLIBSHORT2) - LDCONFIG= : - endif + HOST_SYS:= $(shell uname -s) +else + HOST_SYS= Windows +endif +TARGET_SYS?= $(HOST_SYS) + +ifeq (Darwin,$(TARGET_SYS)) + INSTALL_SONAME= $(INSTALL_DYLIBNAME) + INSTALL_SOSHORT1= $(INSTALL_DYLIBSHORT1) + INSTALL_SOSHORT2= $(INSTALL_DYLIBSHORT2) + LDCONFIG= : endif ############################################################################## @@ -109,10 +118,10 @@ install: $(INSTALL_DEP) $(MKDIR) $(INSTALL_DIRS) cd src && $(INSTALL_X) $(FILE_T) $(INSTALL_T) cd src && test -f $(FILE_A) && $(INSTALL_F) $(FILE_A) $(INSTALL_STATIC) || : - $(RM) $(INSTALL_TSYM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) + $(RM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) cd src && test -f $(FILE_SO) && \ $(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \ - $(LDCONFIG) $(INSTALL_LIB) && \ + ( $(LDCONFIG) $(INSTALL_LIB) || : ) && \ $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \ $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || : cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN) @@ -121,12 +130,18 @@ install: $(INSTALL_DEP) $(RM) $(FILE_PC).tmp cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC) cd src/jit && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB) - $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM) @echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ====" + @echo "" + @echo "Note: the development releases deliberately do NOT install a symlink for luajit" + @echo "You can do this now by running this command (with sudo):" + @echo "" + @echo " $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)" + @echo "" + uninstall: @echo "==== Uninstalling LuaJIT $(VERSION) from $(PREFIX) ====" - $(UNINSTALL) $(INSTALL_TSYM) $(INSTALL_T) $(INSTALL_STATIC) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) $(INSTALL_MAN)/$(FILE_MAN) $(INSTALL_PC) + $(UNINSTALL) $(INSTALL_T) $(INSTALL_STATIC) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) $(INSTALL_MAN)/$(FILE_MAN) $(INSTALL_PC) for file in $(FILES_JITLIB); do \ $(UNINSTALL) $(INSTALL_JITLIB)/$$file; \ done diff --git a/deps/luajit/README b/deps/luajit/README index 902a6d2..1faef25 100644 --- a/deps/luajit/README +++ b/deps/luajit/README @@ -1,11 +1,11 @@ -README for LuaJIT 2.0.3 ------------------------ +README for LuaJIT 2.1.0-beta3 +----------------------------- LuaJIT is a Just-In-Time (JIT) compiler for the Lua programming language. -Project Homepage: http://luajit.org/ +Project Homepage: https://luajit.org/ -LuaJIT is Copyright (C) 2005-2014 Mike Pall. +LuaJIT is Copyright (C) 2005-2022 Mike Pall. LuaJIT is free software, released under the MIT license. See full Copyright Notice in the COPYRIGHT file or in luajit.h. diff --git a/deps/luajit/doc/bluequad-print.css b/deps/luajit/doc/bluequad-print.css index 21da868..a49d309 100644 --- a/deps/luajit/doc/bluequad-print.css +++ b/deps/luajit/doc/bluequad-print.css @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2014 Mike Pall. +/* Copyright (C) 2004-2022 Mike Pall. * * You are welcome to use the general ideas of this design for your own sites. * But please do not steal the stylesheet, the layout or the color scheme. diff --git a/deps/luajit/doc/bluequad.css b/deps/luajit/doc/bluequad.css index 05b092e..4c1a908 100644 --- a/deps/luajit/doc/bluequad.css +++ b/deps/luajit/doc/bluequad.css @@ -1,4 +1,4 @@ -/* Copyright (C) 2004-2014 Mike Pall. +/* Copyright (C) 2004-2022 Mike Pall. * * You are welcome to use the general ideas of this design for your own sites. * But please do not steal the stylesheet, the layout or the color scheme. diff --git a/deps/luajit/doc/changes.html b/deps/luajit/doc/changes.html deleted file mode 100644 index 9841229..0000000 --- a/deps/luajit/doc/changes.html +++ /dev/null @@ -1,928 +0,0 @@ - - - -LuaJIT Change History - - - - - - - - - -
-Lua -
- - -
-

-This is a list of changes between the released versions of LuaJIT.
-The current stable version is LuaJIT 2.0.3.
-

-

-Please check the -» Online Change History -to see whether newer versions are available. -

- -
-

LuaJIT 2.0.3 — 2014-03-12

-
    -
  • Add PS4 port.
  • -
  • Add support for multilib distro builds.
  • -
  • Fix OSX build.
  • -
  • Fix MinGW build.
  • -
  • Fix Xbox 360 build.
  • -
  • Improve ULOAD forwarding for open upvalues.
  • -
  • Fix GC steps threshold handling when called by JIT-compiled code.
  • -
  • Fix argument checks for math.deg() and math.rad().
  • -
  • Fix jit.flush(func|true).
  • -
  • Respect jit.off(func) when returning to a function, too.
  • -
  • Fix compilation of string.byte(s, nil, n).
  • -
  • Fix line number for relocated bytecode after closure fixup
  • -
  • Fix frame traversal for backtraces.
  • -
  • Fix ABC elimination.
  • -
  • Fix handling of redundant PHIs.
  • -
  • Fix snapshot restore for exit to function header.
  • -
  • Fix type punning alias analysis for constified pointers
  • -
  • Fix call unroll checks in the presence of metamethod frames.
  • -
  • Fix initial maxslot for down-recursive traces.
  • -
  • Prevent BASE register coalescing if parent uses IR_RETF.
  • -
  • Don't purge modified function from stack slots in BC_RET.
  • -
  • Fix recording of BC_VARG.
  • -
  • Don't access dangling reference to reallocated IR.
  • -
  • Fix frame depth display for bytecode dump in -jdump.
  • -
  • ARM: Fix register allocation when rematerializing FPRs.
  • -
  • x64: Fix store to upvalue for lightuserdata values.
  • -
  • FFI: Add missing GC steps for callback argument conversions.
  • -
  • FFI: Properly unload loaded DLLs.
  • -
  • FFI: Fix argument checks for ffi.string().
  • -
  • FFI/x64: Fix passing of vector arguments to calls.
  • -
  • FFI: Rehash finalizer table after GC cycle, if needed.
  • -
  • FFI: Fix cts->L for cdata unsinking in snapshot restore.
  • -
- -

LuaJIT 2.0.2 — 2013-06-03

-
    -
  • Fix memory access check for fast string interning.
  • -
  • Fix MSVC intrinsics for older versions.
  • -
  • Add missing GC steps for io.* functions.
  • -
  • Fix spurious red zone overflows in machine code generation.
  • -
  • Fix jump-range constrained mcode allocation.
  • -
  • Inhibit DSE for implicit loads via calls.
  • -
  • Fix builtin string to number conversion for overflow digits.
  • -
  • Fix optional argument handling while recording builtins.
  • -
  • Fix optional argument handling in table.concat().
  • -
  • Add partial support for building with MingW64 GCC 4.8-SEH.
  • -
  • Add missing PHI barrier to string.sub(str, a, b) == kstr FOLD rule.
  • -
  • Fix compatibility issues with Illumos.
  • -
  • ARM: Fix cache flush/sync for exit stubs of JIT-compiled code.
  • -
  • MIPS: Fix cache flush/sync for JIT-compiled code jump area.
  • -
  • PPC: Add plt suffix for external calls from assembler code.
  • -
  • FFI: Fix snapshot substitution in SPLIT pass.
  • -
  • FFI/x86: Fix register allocation for 64 bit comparisons.
  • -
  • FFI: Fix tailcall in lowest frame to C function with bool result.
  • -
  • FFI: Ignore long type specifier in ffi.istype().
  • -
  • FFI: Fix calling conventions for 32 bit OSX and iOS simulator (struct returns).
  • -
  • FFI: Fix calling conventions for ARM hard-float EABI (nested structs).
  • -
  • FFI: Improve error messages for arithmetic and comparison operators.
  • -
  • FFI: Insert no-op type conversion for pointer to integer cast.
  • -
  • FFI: Fix unroll limit for ffi.fill().
  • -
  • FFI: Must sink XBAR together with XSTOREs.
  • -
  • FFI: Preserve intermediate string for const char * conversion.
  • -
- -

LuaJIT 2.0.1 — 2013-02-19

-
    -
  • Don't clear frame for out-of-memory error.
  • -
  • Leave hook when resume catches error thrown from hook.
  • -
  • Add missing GC steps for template table creation.
  • -
  • Fix discharge order of comparisons in Lua parser.
  • -
  • Improve buffer handling for io.read().
  • -
  • OSX: Add support for Mach-O object files to -b option.
  • -
  • Fix PS3 port.
  • -
  • Fix/enable Xbox 360 port.
  • -
  • x86/x64: Always mark ref for shift count as non-weak.
  • -
  • x64: Don't fuse implicitly 32-to-64 extended operands.
  • -
  • ARM: Fix armhf call argument handling.
  • -
  • ARM: Fix code generation for integer math.min/math.max.
  • -
  • PPC/e500: Fix lj_vm_floor() for Inf/NaN.
  • -
  • FFI: Change priority of table initializer variants for structs.
  • -
  • FFI: Fix code generation for bool call result check on x86/x64.
  • -
  • FFI: Load FFI library on-demand for bytecode with cdata literals.
  • -
  • FFI: Fix handling of qualified transparent structs/unions.
  • -
- -

LuaJIT 2.0.0 — 2012-11-08

-
    -
  • Correctness and completeness: -
      -
    • Fix Android/x86 build.
    • -
    • Fix recording of equality comparisons with __eq metamethods.
    • -
    • Fix detection of immutable upvalues.
    • -
    • Replace error with PANIC for callbacks from JIT-compiled code.
    • -
    • Fix builtin string to number conversion for INT_MIN.
    • -
    • Don't create unneeded array part for template tables.
    • -
    • Fix CONV.num.int sinking.
    • -
    • Don't propagate implicitly widened number to index metamethods.
    • -
    • ARM: Fix ordered comparisons of number vs. non-number.
    • -
    • FFI: Fix code generation for replay of sunk float fields.
    • -
    • FFI: Fix signedness of bool.
    • -
    • FFI: Fix recording of bool call result check on x86/x64.
    • -
    • FFI: Fix stack-adjustment for __thiscall callbacks.
    • -
  • -
- -

LuaJIT 2.0.0-beta11 — 2012-10-16

-
    -
  • New features: -
      -
    • Use ARM VFP instructions, if available (build-time detection).
    • -
    • Add support for ARM hard-float EABI (armhf).
    • -
    • Add PS3 port.
    • -
    • Add many features from Lua 5.2, e.g. goto/labels. - Refer to this list.
    • -
    • FFI: Add parameterized C types.
    • -
    • FFI: Add support for copy constructors.
    • -
    • FFI: Equality comparisons never raise an error (treat as unequal instead).
    • -
    • FFI: Box all accessed or returned enums.
    • -
    • FFI: Check for __new metamethod when calling a constructor.
    • -
    • FFI: Handle __pairs/__ipairs metamethods for cdata objects.
    • -
    • FFI: Convert io.* file handle to FILE * pointer (but as a void *).
    • -
    • FFI: Detect and support type punning through unions.
    • -
    • FFI: Improve various error messages.
    • -
  • -
  • Build-system reorganization: -
      -
    • Reorganize directory layout:
      - lib/*src/jit/*
      - src/buildvm_*.dascsrc/vm_*.dasc
      - src/buildvm_*.h → removed
      - src/buildvm*src/host/*
    • -
    • Add minified Lua interpreter plus Lua BitOp (minilua) to run DynASM.
    • -
    • Change DynASM bit operations to use Lua BitOp
    • -
    • Translate only vm_*.dasc for detected target architecture.
    • -
    • Improve target detection for msvcbuild.bat.
    • -
    • Fix build issues on Cygwin and MinGW with optional MSys.
    • -
    • Handle cross-compiles with FPU/no-FPU or hard-fp/soft-fp ABI mismatch.
    • -
    • Remove some library functions for no-JIT/no-FFI builds.
    • -
    • Add uninstall target to top-level Makefile.
    • -
  • -
  • Correctness and completeness: -
      -
    • Preserve snapshot #0 PC for all traces.
    • -
    • Fix argument checks for coroutine.create().
    • -
    • Command line prints version and JIT status to stdout, not stderr.
    • -
    • Fix userdata __gc separations at Lua state close.
    • -
    • Fix TDUP to HLOAD forwarding for LJ_DUALNUM builds.
    • -
    • Fix buffer check in bytecode writer.
    • -
    • Make os.date() thread-safe.
    • -
    • Add missing declarations for MSVC intrinsics.
    • -
    • Fix dispatch table modifications for return hooks.
    • -
    • Workaround for MSVC conversion bug (doubleuint32_tint32_t).
    • -
    • Fix FOLD rule (i-j)-i => 0-j.
    • -
    • Never use DWARF unwinder on Windows.
    • -
    • Fix shrinking of direct mapped blocks in builtin allocator.
    • -
    • Limit recursion depth in string.match() et al.
    • -
    • Fix late despecialization of ITERN after loop has been entered.
    • -
    • Fix 'f' and 'L' options for debug.getinfo() and lua_getinfo().
    • -
    • Fix package.searchpath().
    • -
    • OSX: Change dylib names to be consistent with other platforms.
    • -
    • Android: Workaround for broken sprintf("%g", -0.0).
    • -
    • x86: Remove support for ancient CPUs without CMOV (before Pentium Pro).
    • -
    • x86: Fix register allocation for calls returning register pair.
    • -
    • x86/x64: Fix fusion of unsigned byte comparisons with swapped operands.
    • -
    • ARM: Fix tonumber() argument check.
    • -
    • ARM: Fix modulo operator and math.floor()/math.ceil() for inf/nan.
    • -
    • ARM: Invoke SPLIT pass for leftover IR_TOBIT.
    • -
    • ARM: Fix BASE register coalescing.
    • -
    • PPC: Fix interpreter state setup in callbacks.
    • -
    • PPC: Fix string.sub() range check.
    • -
    • MIPS: Support generation of MIPS/MIPSEL bytecode object files.
    • -
    • MIPS: Fix calls to floor()/ceil()/trunc().
    • -
    • ARM/PPC: Detect more target architecture variants.
    • -
    • ARM/PPC/e500/MIPS: Fix tailcalls from fast functions, esp. tostring().
    • -
    • ARM/PPC/MIPS: Fix rematerialization of FP constants.
    • -
    • FFI: Don't call FreeLibrary() on our own EXE/DLL.
    • -
    • FFI: Resolve metamethods for constructors, too.
    • -
    • FFI: Properly disable callbacks on iOS (would require executable memory).
    • -
    • FFI: Fix cdecl string parsing during recording.
    • -
    • FFI: Show address pointed to for tostring(ref), too.
    • -
    • FFI: Fix alignment of C call argument/return structure.
    • -
    • FFI: Initialize all fields of standard types.
    • -
    • FFI: Fix callback handling when new C types are declared in callback.
    • -
    • FFI: Fix recording of constructors for pointers.
    • -
    • FFI: Always resolve metamethods for pointers to structs.
    • -
    • FFI: Correctly propagate alignment when interning nested types.
    • -
  • -
  • Structural and performance enhancements: -
      -
    • Add allocation sinking and store sinking optimization.
    • -
    • Constify immutable upvalues.
    • -
    • Add builtin string to integer or FP number conversion. Improves cross-platform consistency and correctness.
    • -
    • Create string hash slots in template tables for non-const values, too. Avoids later table resizes.
    • -
    • Eliminate HREFK guard for template table references.
    • -
    • Add various new FOLD rules.
    • -
    • Don't use stack unwinding for lua_yield() (slow on x64).
    • -
    • ARM, PPC, MIPS: Improve XLOAD operand fusion and register hinting.
    • -
    • PPC, MIPS: Compile math.sqrt() to sqrt instruction, if available.
    • -
    • FFI: Fold KPTR + constant offset in SPLIT pass.
    • -
    • FFI: Optimize/inline ffi.copy() and ffi.fill().
    • -
    • FFI: Compile and optimize array/struct copies.
    • -
    • FFI: Compile ffi.typeof(cdata|ctype), ffi.sizeof(), ffi.alignof(), ffi.offsetof() and ffi.gc().
    • -
  • -
- -

LuaJIT 2.0.0-beta10 — 2012-05-09

-
    -
  • New features: -
      -
    • The MIPS of LuaJIT is complete. It requires a CPU conforming to the -MIPS32 R1 architecture with hardware FPU. O32 hard-fp ABI, -little-endian or big-endian.
    • -
    • Auto-detect target arch via cross-compiler. No need for -TARGET=arch anymore.
    • -
    • Make DynASM compatible with Lua 5.2.
    • -
    • From Lua 5.2: Try __tostring metamethod on non-string error -messages..
    • -
  • -
  • Correctness and completeness: -
      -
    • Fix parsing of hex literals with exponents.
    • -
    • Fix bytecode dump for certain number constants.
    • -
    • Fix argument type in error message for relative arguments.
    • -
    • Fix argument error handling on Lua stacks without a frame.
    • -
    • Add missing mcode limit check in assembler backend.
    • -
    • Fix compilation on OpenBSD.
    • -
    • Avoid recursive GC steps after GC-triggered trace exit.
    • -
    • Replace <unwind.h> definitions with our own.
    • -
    • Fix OSX build issues. Bump minimum required OSX version to 10.4.
    • -
    • Fix discharge order of comparisons in Lua parser.
    • -
    • Ensure running __gc of userdata created in __gc -at state close.
    • -
    • Limit number of userdata __gc separations at state close.
    • -
    • Fix bytecode JMP slot range when optimizing -and/or with constant LHS.
    • -
    • Fix DSE of USTORE.
    • -
    • Make lua_concat() work from C hook with partial frame.
    • -
    • Add required PHIs for implicit conversions, e.g. via XREF -forwarding.
    • -
    • Add more comparison variants to Valgrind suppressions file.
    • -
    • Disable loading bytecode with an extra header (BOM or #!).
    • -
    • Fix PHI stack slot syncing.
    • -
    • ARM: Reorder type/value tests to silence Valgrind.
    • -
    • ARM: Fix register allocation for ldrd-optimized -HREFK.
    • -
    • ARM: Fix conditional branch fixup for OBAR.
    • -
    • ARM: Invoke SPLIT pass for double args in FFI call.
    • -
    • ARM: Handle all CALL* ops with double results in -SPLIT pass.
    • -
    • ARM: Fix rejoin of POW in SPLIT pass.
    • -
    • ARM: Fix compilation of math.sinh, math.cosh, -math.tanh.
    • -
    • ARM, PPC: Avoid pointless arg clearing in BC_IFUNCF.
    • -
    • PPC: Fix resume after yield from hook.
    • -
    • PPC: Fix argument checking for rawget().
    • -
    • PPC: Fix fusion of floating-point XLOAD/XSTORE.
    • -
    • PPC: Fix HREFK code generation for huge tables.
    • -
    • PPC: Use builtin D-Cache/I-Cache sync code.
    • -
  • -
  • FFI library: -
      -
    • Ignore empty statements in ffi.cdef().
    • -
    • Ignore number parsing errors while skipping definitions.
    • -
    • Don't touch frame in callbacks with tailcalls to fast functions.
    • -
    • Fix library unloading on POSIX systems.
    • -
    • Finalize cdata before userdata when closing the state.
    • -
    • Change ffi.load() library name resolution for Cygwin.
    • -
    • Fix resolving of function name redirects on Windows/x86.
    • -
    • Fix symbol resolving error messages on Windows.
    • -
    • Fix blacklisting of C functions calling callbacks.
    • -
    • Fix result type of pointer difference.
    • -
    • Use correct PC in FFI metamethod error message.
    • -
    • Allow 'typedef _Bool int BOOL;' for the Windows API.
    • -
    • Don't record test for bool result of call, if ignored.
    • -
  • -
- -

LuaJIT 2.0.0-beta9 — 2011-12-14

-
    -
  • New features: -
      -
    • PPC port of LuaJIT is complete. Default is the dual-number port -(usually faster). Single-number port selectable via src/Makefile -at build time.
    • -
    • Add FFI callback support.
    • -
    • Extend -b to generate .c, .h or .obj/.o -files with embedded bytecode.
    • -
    • Allow loading embedded bytecode with require().
    • -
    • From Lua 5.2: Change to '\z' escape. Reject undefined escape -sequences.
    • -
  • -
  • Correctness and completeness: -
      -
    • Fix OSX 10.7 build. Fix install_name and versioning on OSX.
    • -
    • Fix iOS build.
    • -
    • Install dis_arm.lua, too.
    • -
    • Mark installed shared library as executable.
    • -
    • Add debug option to msvcbuild.bat and improve error handling.
    • -
    • Fix data-flow analysis for iterators.
    • -
    • Fix forced unwinding triggered by external unwinder.
    • -
    • Record missing for loop slot loads (return to lower frame).
    • -
    • Always use ANSI variants of Windows system functions.
    • -
    • Fix GC barrier for multi-result table constructor (TSETM).
    • -
    • Fix/add various FOLD rules.
    • -
    • Add potential PHI for number conversions due to type instability.
    • -
    • Do not eliminate PHIs only referenced from other PHIs.
    • -
    • Correctly anchor implicit number to string conversions in Lua/C API.
    • -
    • Fix various stack limit checks.
    • -
    • x64: Use thread-safe exceptions for external unwinding (GCC platforms).
    • -
    • x64: Fix result type of cdata index conversions.
    • -
    • x64: Fix math.random() and bit.bswap() code generation.
    • -
    • x64: Fix lightuserdata comparisons.
    • -
    • x64: Always extend stack-passed arguments to pointer size.
    • -
    • ARM: Many fixes to code generation backend.
    • -
    • PPC/e500: Fix dispatch for binop metamethods.
    • -
    • PPC/e500: Save/restore condition registers when entering/leaving the VM.
    • -
    • PPC/e500: Fix write barrier in stores of strings to upvalues.
    • -
  • -
  • FFI library: -
      -
    • Fix C comment parsing.
    • -
    • Fix snapshot optimization for cdata comparisons.
    • -
    • Fix recording of const/enum lookups in namespaces.
    • -
    • Fix call argument and return handling for I8/U8/I16/U16 types.
    • -
    • Fix unfused loads of float fields.
    • -
    • Fix ffi.string() recording.
    • -
    • Save GetLastError() around ffi.load() and symbol -resolving, too.
    • -
    • Improve ld script detection in ffi.load().
    • -
    • Record loads/stores to external variables in namespaces.
    • -
    • Compile calls to stdcall, fastcall and vararg functions.
    • -
    • Treat function ctypes like pointers in comparisons.
    • -
    • Resolve __call metamethod for pointers, too.
    • -
    • Record C function calls with bool return values.
    • -
    • Record ffi.errno().
    • -
    • x86: Fix number to uint32_t conversion rounding.
    • -
    • x86: Fix 64 bit arithmetic in assembler backend.
    • -
    • x64: Fix struct-by-value calling conventions.
    • -
    • ARM: Ensure invocation of SPLIT pass for float conversions.
    • -
  • -
  • Structural and performance enhancements: -
      -
    • Display trace types with -jv and -jdump.
    • -
    • Record isolated calls. But prefer recording loops over calls.
    • -
    • Specialize to prototype for non-monomorphic functions. Solves the -trace-explosion problem for closure-heavy programming styles.
    • -
    • Always generate a portable vmdef.lua. Easier for distros.
    • -
  • -
- -

LuaJIT 2.0.0-beta8 — 2011-06-23

-
    -
  • New features: -
      -
    • Soft-float ARM port of LuaJIT is complete.
    • -
    • Add support for bytecode loading/saving and -b command line -option.
    • -
    • From Lua 5.2: __len metamethod for tables -(disabled by default).
    • -
  • -
  • Correctness and completeness: -
      -
    • ARM: Misc. fixes for interpreter.
    • -
    • x86/x64: Fix bit.* argument checking in interpreter.
    • -
    • Catch early out-of-memory in memory allocator initialization.
    • -
    • Fix data-flow analysis for paths leading to an upvalue close.
    • -
    • Fix check for missing arguments in string.format().
    • -
    • Fix Solaris/x86 build (note: not a supported target).
    • -
    • Fix recording of loops with instable directions in side traces.
    • -
    • x86/x64: Fix fusion of comparisons with u8/u16 -XLOAD.
    • -
    • x86/x64: Fix register allocation for variable shifts.
    • -
  • -
  • FFI library: -
      -
    • Add ffi.errno(). Save errno/GetLastError() -around allocations etc.
    • -
    • Fix __gc for VLA/VLS cdata objects.
    • -
    • Fix recording of casts from 32 bit cdata pointers to integers.
    • -
    • tonumber(cdata) returns nil for non-numbers.
    • -
    • Show address pointed to for tostring(pointer).
    • -
    • Print NULL pointers as "cdata<... *>: NULL".
    • -
    • Support __tostring metamethod for pointers to structs, too.
    • -
  • -
  • Structural and performance enhancements: -
      -
    • More tuning for loop unrolling heuristics.
    • -
    • Flatten and compress in-memory debug info (saves ~70%).
    • -
  • -
- -

LuaJIT 2.0.0-beta7 — 2011-05-05

-
    -
  • New features: -
      -
    • ARM port of the LuaJIT interpreter is complete.
    • -
    • FFI library: Add ffi.gc(), ffi.metatype(), -ffi.istype().
    • -
    • FFI library: Resolve ld script redirection in ffi.load().
    • -
    • From Lua 5.2: package.searchpath(), fp:read("*L"), -load(string).
    • -
    • From Lua 5.2, disabled by default: empty statement, -table.unpack(), modified coroutine.running().
    • -
  • -
  • Correctness and completeness: -
      -
    • FFI library: numerous fixes.
    • -
    • Fix type mismatches in store-to-load forwarding.
    • -
    • Fix error handling within metamethods.
    • -
    • Fix table.maxn().
    • -
    • Improve accuracy of x^-k on x64.
    • -
    • Fix code generation for Intel Atom in x64 mode.
    • -
    • Fix narrowing of POW.
    • -
    • Fix recording of retried fast functions.
    • -
    • Fix code generation for bit.bnot() and multiplies.
    • -
    • Fix error location within cpcall frames.
    • -
    • Add workaround for old libgcc unwind bug.
    • -
    • Fix lua_yield() and getmetatable(lightuserdata) on x64.
    • -
    • Misc. fixes for PPC/e500 interpreter.
    • -
    • Fix stack slot updates for down-recursion.
    • -
  • -
  • Structural and performance enhancements: -
      -
    • Add dual-number mode (int/double) for the VM. Enabled for ARM.
    • -
    • Improve narrowing of arithmetic operators and for loops.
    • -
    • Tune loop unrolling heuristics and increase trace recorder limits.
    • -
    • Eliminate dead slots in snapshots using bytecode data-flow analysis.
    • -
    • Avoid phantom stores to proxy tables.
    • -
    • Optimize lookups in empty proxy tables.
    • -
    • Improve bytecode optimization of and/or operators.
    • -
  • -
- -

LuaJIT 2.0.0-beta6 — 2011-02-11

-
    -
  • New features: -
      -
    • PowerPC/e500v2 port of the LuaJIT interpreter is complete.
    • -
    • Various minor features from Lua 5.2: Hex escapes in literals, -'\*' escape, reversible string.format("%q",s), -"%g" pattern, table.sort checks callbacks, -os.exit(status|true|false[,close]).
    • -
    • Lua 5.2 __pairs and __ipairs metamethods -(disabled by default).
    • -
    • Initial release of the FFI library.
    • -
  • -
  • Correctness and completeness: -
      -
    • Fix string.format() for non-finite numbers.
    • -
    • Fix memory leak when compiled to use the built-in allocator.
    • -
    • x86/x64: Fix unnecessary resize in TSETM bytecode.
    • -
    • Fix various GC issues with traces and jit.flush().
    • -
    • x64: Fix fusion of indexes for array references.
    • -
    • x86/x64: Fix stack overflow handling for coroutine results.
    • -
    • Enable low-2GB memory allocation on FreeBSD/x64.
    • -
    • Fix collectgarbage("count") result if more than 2GB is in use.
    • -
    • Fix parsing of hex floats.
    • -
    • x86/x64: Fix loop branch inversion with trailing -HREF+NE/EQ.
    • -
    • Add jit.os string.
    • -
    • coroutine.create() permits running C functions, too.
    • -
    • Fix OSX build to work with newer ld64 versions.
    • -
    • Fix bytecode optimization of and/or operators.
    • -
  • -
  • Structural and performance enhancements: -
      -
    • Emit specialized bytecode for pairs()/next().
    • -
    • Improve bytecode coalescing of nil constants.
    • -
    • Compile calls to vararg functions.
    • -
    • Compile select().
    • -
    • Improve alias analysis, esp. for loads from allocations.
    • -
    • Tuning of various compiler heuristics.
    • -
    • Refactor and extend IR conversion instructions.
    • -
    • x86/x64: Various backend enhancements related to the FFI.
    • -
    • Add SPLIT pass to split 64 bit IR instructions for 32 bit CPUs.
    • -
  • -
- -

LuaJIT 2.0.0-beta5 — 2010-08-24

-
    -
  • Correctness and completeness: -
      -
    • Fix trace exit dispatch to function headers.
    • -
    • Fix Windows and OSX builds with LUAJIT_DISABLE_JIT.
    • -
    • Reorganize and fix placement of generated machine code on x64.
    • -
    • Fix TNEW in x64 interpreter.
    • -
    • Do not eliminate PHIs for values only referenced from side exits.
    • -
    • OS-independent canonicalization of strings for non-finite numbers.
    • -
    • Fix string.char() range check on x64.
    • -
    • Fix tostring() resolving within print().
    • -
    • Fix error handling for next().
    • -
    • Fix passing of constant arguments to external calls on x64.
    • -
    • Fix interpreter argument check for two-argument SSE math functions.
    • -
    • Fix C frame chain corruption caused by lua_cpcall().
    • -
    • Fix return from pcall() within active hook.
    • -
  • -
  • Structural and performance enhancements: -
      -
    • Replace on-trace GC frame syncing with interpreter exit.
    • -
    • Improve hash lookup specialization by not removing dead keys during GC.
    • -
    • Turn traces into true GC objects.
    • -
    • Avoid starting a GC cycle immediately after library init.
    • -
    • Add weak guards to improve dead-code elimination.
    • -
    • Speed up string interning.
    • -
  • -
- -

LuaJIT 2.0.0-beta4 — 2010-03-28

-
    -
  • Correctness and completeness: -
      -
    • Fix precondition for on-trace creation of table keys.
    • -
    • Fix {f()} on x64 when table is resized.
    • -
    • Fix folding of ordered comparisons with same references.
    • -
    • Fix snapshot restores for multi-result bytecodes.
    • -
    • Fix potential hang when recording bytecode with nested closures.
    • -
    • Fix recording of getmetatable(), tonumber() and bad argument types.
    • -
    • Fix SLOAD fusion across returns to lower frames.
    • -
  • -
  • Structural and performance enhancements: -
      -
    • Add array bounds check elimination. -Oabc is enabled by default.
    • -
    • More tuning for x64, e.g. smaller table objects.
    • -
  • -
- -

LuaJIT 2.0.0-beta3 — 2010-03-07

-
    -
  • LuaJIT x64 port: -
      -
    • Port integrated memory allocator to Linux/x64, Windows/x64 and OSX/x64.
    • -
    • Port interpreter and JIT compiler to x64.
    • -
    • Port DynASM to x64.
    • -
    • Many 32/64 bit cleanups in the VM.
    • -
    • Allow building the interpreter with either x87 or SSE2 arithmetics.
    • -
    • Add external unwinding and C++ exception interop (default on x64).
    • -
  • -
  • Correctness and completeness: -
      -
    • Fix constructor bytecode generation for certain conditional values.
    • -
    • Fix some cases of ordered string comparisons.
    • -
    • Fix lua_tocfunction().
    • -
    • Fix cutoff register in JMP bytecode for some conditional expressions.
    • -
    • Fix PHI marking algorithm for references from variant slots.
    • -
    • Fix package.cpath for non-default PREFIX.
    • -
    • Fix DWARF2 frame unwind information for interpreter on OSX.
    • -
    • Drive the GC forward on string allocations in the parser.
    • -
    • Implement call/return hooks (zero-cost if disabled).
    • -
    • Implement yield from C hooks.
    • -
    • Disable JIT compiler on older non-SSE2 CPUs instead of aborting.
    • -
  • -
  • Structural and performance enhancements: -
      -
    • Compile recursive code (tail-, up- and down-recursion).
    • -
    • Improve heuristics for bytecode penalties and blacklisting.
    • -
    • Split CALL/FUNC recording and clean up fast function call semantics.
    • -
    • Major redesign of internal function call handling.
    • -
    • Improve FOR loop const specialization and integerness checks.
    • -
    • Switch to pre-initialized stacks. Avoid frame-clearing.
    • -
    • Colocation of prototypes and related data: bytecode, constants, debug info.
    • -
    • Cleanup parser and streamline bytecode generation.
    • -
    • Add support for weak IR references to register allocator.
    • -
    • Switch to compressed, extensible snapshots.
    • -
    • Compile returns to frames below the start frame.
    • -
    • Improve alias analysis of upvalues using a disambiguation hash value.
    • -
    • Compile floor/ceil/trunc to SSE2 helper calls or SSE4.1 instructions.
    • -
    • Add generic C call handling to IR and backend.
    • -
    • Improve KNUM fuse vs. load heuristics.
    • -
    • Compile various io.*() functions.
    • -
    • Compile math.sinh(), math.cosh(), math.tanh() -and math.random().
    • -
  • -
- -

LuaJIT 2.0.0-beta2 — 2009-11-09

-
    -
  • Reorganize build system. Build static+shared library on POSIX.
  • -
  • Allow C++ exception conversion on all platforms -using a wrapper function.
  • -
  • Automatically catch C++ exceptions and rethrow Lua error -(DWARF2 only).
  • -
  • Check for the correct x87 FPU precision at strategic points.
  • -
  • Always use wrappers for libm functions.
  • -
  • Resurrect metamethod name strings before copying them.
  • -
  • Mark current trace, even if compiler is idle.
  • -
  • Ensure FILE metatable is created only once.
  • -
  • Fix type comparisons when different integer types are involved.
  • -
  • Fix getmetatable() recording.
  • -
  • Fix TDUP with dead keys in template table.
  • -
  • jit.flush(tr) returns status. -Prevent manual flush of a trace that's still linked.
  • -
  • Improve register allocation heuristics for invariant references.
  • -
  • Compile the push/pop variants of table.insert() and -table.remove().
  • -
  • Compatibility with MSVC link /debug.
  • -
  • Fix lua_iscfunction().
  • -
  • Fix math.random() when compiled with -fpic (OSX).
  • -
  • Fix table.maxn().
  • -
  • Bump MACOSX_DEPLOYMENT_TARGET to 10.4
  • -
  • luaL_check*() and luaL_opt*() now support -negative arguments, too.
    -This matches the behavior of Lua 5.1, but not the specification.
  • -
- -

LuaJIT 2.0.0-beta1 — 2009-10-31

-
    -
  • This is the first public release of LuaJIT 2.0.
  • -
  • The whole VM has been rewritten from the ground up, so there's -no point in listing differences over earlier versions.
  • -
-
- -
-

LuaJIT 1.1.8 — 2012-04-16

- - -

LuaJIT 1.1.7 — 2011-05-05

- - -

LuaJIT 1.1.6 — 2010-03-28

-
    -
  • Added fixes for the -» currently known bugs in Lua 5.1.4.
  • -
  • Removed wrong GC check in jit_createstate(). -Thanks to Tim Mensch.
  • -
  • Fixed bad assertions while compiling table.insert() and -table.remove().
  • -
- -

LuaJIT 1.1.5 — 2008-10-25

- - -

LuaJIT 1.1.4 — 2008-02-05

-
    -
  • Merged with Lua 5.1.3. Fixes all -» known bugs in Lua 5.1.2.
  • -
  • Fixed possible (but unlikely) stack corruption while compiling -k^x expressions.
  • -
  • Fixed DynASM template for cmpss instruction.
  • -
- -

LuaJIT 1.1.3 — 2007-05-24

-
    -
  • Merged with Lua 5.1.2. Fixes all -» known bugs in Lua 5.1.1.
  • -
  • Merged pending Lua 5.1.x fixes: "return -nil" bug, spurious count hook call.
  • -
  • Remove a (sometimes) wrong assertion in luaJIT_findpc().
  • -
  • DynASM now allows labels for displacements and .aword.
  • -
  • Fix some compiler warnings for DynASM glue (internal API change).
  • -
  • Correct naming for SSSE3 (temporarily known as SSE4) in DynASM and x86 disassembler.
  • -
  • The loadable debug modules now handle redirection to stdout -(e.g. -j trace=-).
  • -
- -

LuaJIT 1.1.2 — 2006-06-24

-
    -
  • Fix MSVC inline assembly: use only local variables with -lua_number2int().
  • -
  • Fix "attempt to call a thread value" bug on Mac OS X: -make values of consts used as lightuserdata keys unique -to avoid joining by the compiler/linker.
  • -
- -

LuaJIT 1.1.1 — 2006-06-20

-
    -
  • Merged with Lua 5.1.1. Fixes all -» known bugs in Lua 5.1.
  • -
  • Enforce (dynamic) linker error for EXE/DLL version mismatches.
  • -
  • Minor changes to DynASM: faster pre-processing, smaller encoding -for some immediates.
  • -
-

-This release is in sync with Coco 1.1.1 (see the -» Coco Change History). -

- -

LuaJIT 1.1.0 — 2006-03-13

-
    -
  • Merged with Lua 5.1 (final).
  • - -
  • New JIT call frame setup: -
      -
    • The C stack is kept 16 byte aligned (faster). -Mandatory for Mac OS X on Intel, too.
    • -
    • Faster calling conventions for internal C helper functions.
    • -
    • Better instruction scheduling for function prologue, OP_CALL and -OP_RETURN.
    • -
  • - -
  • Miscellaneous optimizations: -
      -
    • Faster loads of FP constants. Remove narrow-to-wide store-to-load -forwarding stalls.
    • -
    • Use (scalar) SSE2 ops (if the CPU supports it) to speed up slot moves -and FP to integer conversions.
    • -
    • Optimized the two-argument form of OP_CONCAT (a..b).
    • -
    • Inlined OP_MOD (a%b). -With better accuracy than the C variant, too.
    • -
    • Inlined OP_POW (a^b). Unroll x^k or -use k^x = 2^(log2(k)*x) or call pow().
    • -
  • - -
  • Changes in the optimizer: -
      -
    • Improved hinting for table keys derived from table values -(t1[t2[x]]).
    • -
    • Lookup hinting now works with arbitrary object types and -supports index chains, too.
    • -
    • Generate type hints for arithmetic and comparison operators, -OP_LEN, OP_CONCAT and OP_FORPREP.
    • -
    • Remove several hint definitions in favour of a generic COMBINE hint.
    • -
    • Complete rewrite of jit.opt_inline module -(ex jit.opt_lib).
    • -
  • - -
  • Use adaptive deoptimization: -
      -
    • If runtime verification of a contract fails, the affected -instruction is recompiled and patched on-the-fly. -Regular programs will trigger deoptimization only occasionally.
    • -
    • This avoids generating code for uncommon fallback cases -most of the time. Generated code is up to 30% smaller compared to -LuaJIT 1.0.3.
    • -
    • Deoptimization is used for many opcodes and contracts: -
        -
      • OP_CALL, OP_TAILCALL: type mismatch for callable.
      • -
      • Inlined calls: closure mismatch, parameter number and type mismatches.
      • -
      • OP_GETTABLE, OP_SETTABLE: table or key type and range mismatches.
      • -
      • All arithmetic and comparison operators, OP_LEN, OP_CONCAT, -OP_FORPREP: operand type and range mismatches.
      • -
    • -
    • Complete redesign of the debug and traceback info -(bytecode ↔ mcode) to support deoptimization. -Much more flexible and needs only 50% of the space.
    • -
    • The modules jit.trace, jit.dumphints and -jit.dump handle deoptimization.
    • -
  • - -
  • Inlined many popular library functions -(for commonly used arguments only): -
      -
    • Most math.* functions (the 18 most used ones) -[2x-10x faster].
    • -
    • string.len, string.sub and string.char -[2x-10x faster].
    • -
    • table.insert, table.remove and table.getn -[3x-5x faster].
    • -
    • coroutine.yield and coroutine.resume -[3x-5x faster].
    • -
    • pairs, ipairs and the corresponding iterators -[8x-15x faster].
    • -
  • - -
  • Changes in the core and loadable modules and the stand-alone executable: -
      -
    • Added jit.version, jit.version_num -and jit.arch.
    • -
    • Reorganized some internal API functions (jit.util.*mcode*).
    • -
    • The -j dump output now shows JSUB names, too.
    • -
    • New x86 disassembler module written in pure Lua. No dependency -on ndisasm anymore. Flexible API, very compact (500 lines) -and complete (x87, MMX, SSE, SSE2, SSE3, SSSE3, privileged instructions).
    • -
    • luajit -v prints the LuaJIT version and copyright -on a separate line.
    • -
  • - -
  • Added SSE, SSE2, SSE3 and SSSE3 support to DynASM.
  • -
  • Miscellaneous doc changes. Added a section about -embedding LuaJIT.
  • -
-

-This release is in sync with Coco 1.1.0 (see the -» Coco Change History). -

-
- -
-

LuaJIT 1.0.3 — 2005-09-08

-
    -
  • Even more docs.
  • -
  • Unified closure checks in jit.*.
  • -
  • Fixed some range checks in jit.util.*.
  • -
  • Fixed __newindex call originating from jit_settable_str().
  • -
  • Merged with Lua 5.1 alpha (including early bug fixes).
  • -
-

-This is the first public release of LuaJIT. -

- -

LuaJIT 1.0.2 — 2005-09-02

-
    -
  • Add support for flushing the Valgrind translation cache
    -(MYCFLAGS= -DUSE_VALGRIND).
  • -
  • Add support for freeing executable mcode memory to the mmap()-based -variant for POSIX systems.
  • -
  • Reorganized the C function signature handling in -jit.opt_lib.
  • -
  • Changed to index-based hints for inlining C functions. -Still no support in the backend for inlining.
  • -
  • Hardcode HEAP_CREATE_ENABLE_EXECUTE value if undefined.
  • -
  • Misc. changes to the jit.* modules.
  • -
  • Misc. changes to the Makefiles.
  • -
  • Lots of new docs.
  • -
  • Complete doc reorg.
  • -
-

-Not released because Lua 5.1 alpha came out today. -

- -

LuaJIT 1.0.1 — 2005-08-31

-
    -
  • Missing GC step in OP_CONCAT.
  • -
  • Fix result handling for C –> JIT calls.
  • -
  • Detect CPU feature bits.
  • -
  • Encode conditional moves (fucomip) only when supported.
  • -
  • Add fallback instructions for FP compares.
  • -
  • Add support for LUA_COMPAT_VARARG. Still disabled by default.
  • -
  • MSVC needs a specific place for the CALLBACK attribute -(David Burgess).
  • -
  • Misc. doc updates.
  • -
-

-Interim non-public release. -Special thanks to Adam D. Moss for reporting most of the bugs. -

- -

LuaJIT 1.0.0 — 2005-08-29

-

-This is the initial non-public release of LuaJIT. -

-
-
-
- - - diff --git a/deps/luajit/doc/contact.html b/deps/luajit/doc/contact.html index 0483a82..89c1af9 100644 --- a/deps/luajit/doc/contact.html +++ b/deps/luajit/doc/contact.html @@ -1,17 +1,16 @@ - + Contact - - - + +
-Lua +Lua

+If you want to report bugs, propose fixes or suggest enhancements, +please use the +» GitHub issue tracker. +

+

Please send general questions to the -» LuaJIT mailing list. +» LuaJIT mailing list. +

+

You can also send any questions you have directly to me:

@@ -84,7 +89,7 @@

Contact

Copyright

All documentation is -Copyright © 2005-2014 Mike Pall. +Copyright © 2005-2022 Mike Pall.

@@ -92,7 +97,7 @@

Copyright