summaryrefslogtreecommitdiff
path: root/Build/source/libs/luajit/TLpatches
diff options
context:
space:
mode:
authorLuigi Scarso <luigi.scarso@gmail.com>2018-01-09 23:43:20 +0000
committerLuigi Scarso <luigi.scarso@gmail.com>2018-01-09 23:43:20 +0000
commitaa5d0e8bf3515c424ba0594a2d4e06ae31da7796 (patch)
treee56fd10d89732547ddb207c1998a1ded4360382e /Build/source/libs/luajit/TLpatches
parentd33684eeca435784c95c62c7981dd02f7818b263 (diff)
Imported Luatex 1.06.3 (Lua 5.2.4)
git-svn-id: svn://tug.org/texlive/trunk@46269 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/luajit/TLpatches')
-rw-r--r--Build/source/libs/luajit/TLpatches/ChangeLog5
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-0121
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-01-LuaJITTeX221
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-0211
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-0312
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-0444
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-0511
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-0653
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-06-ppc-darwin25
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-0712
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-07-x86_64-cygwin12
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-0812
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-0926
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-10 (renamed from Build/source/libs/luajit/TLpatches/patch-05-LuaJITTeX)33
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-1128
-rw-r--r--Build/source/libs/luajit/TLpatches/patch-1221
16 files changed, 259 insertions, 288 deletions
diff --git a/Build/source/libs/luajit/TLpatches/ChangeLog b/Build/source/libs/luajit/TLpatches/ChangeLog
index b74ee1d6be4..2e29cb46ab0 100644
--- a/Build/source/libs/luajit/TLpatches/ChangeLog
+++ b/Build/source/libs/luajit/TLpatches/ChangeLog
@@ -1,3 +1,8 @@
+2017-20-06 Luigi Scarso <luigi.scarso@gmail.com>
+ * Luajit-2.1.0-beta3
+ * Removed lj_bcdef.h, lj_ffdef.h, lj_folddef.h, lj_libdef.h
+ lj_recdef.h, they are generated at building time.
+
2016-03-07 Luigi Scarso <luigi.scarso@gmail.com>
Luajit-2.1.0-beta2
diff --git a/Build/source/libs/luajit/TLpatches/patch-01 b/Build/source/libs/luajit/TLpatches/patch-01
new file mode 100644
index 00000000000..7fcb2cadf0b
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-01
@@ -0,0 +1,21 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/Makefile LuaJIT-2.1.0-beta3/src/Makefile
+--- LuaJIT-2.1.0-beta3-orig/src/Makefile 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/Makefile 2017-06-16 17:14:56.792102569 +0200
+@@ -99,7 +99,7 @@
+ # enabled by default. Some other features that *might* break some existing
+ # code (e.g. __pairs or os.execute() return values) can be enabled here.
+ # Note: this does not provide full compatibility with Lua 5.2 at this time.
+-#XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT
++XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT
+ #
+ # Disable the JIT compiler, i.e. turn LuaJIT into a pure interpreter.
+ #XCFLAGS+= -DLUAJIT_DISABLE_JIT
+@@ -475,7 +475,7 @@
+ LJVM_BOUT= $(LJVM_S)
+ LJVM_MODE= elfasm
+
+-LJLIB_O= lib_base.o lib_math.o lib_bit.o lib_string.o lib_table.o \
++LJLIB_O= lib_base.o lib_math.o lbitlib.o lib_bit.o lib_string.o lib_table.o \
+ lib_io.o lib_os.o lib_package.o lib_debug.o lib_jit.o lib_ffi.o
+ LJLIB_C= $(LJLIB_O:.o=.c)
+
diff --git a/Build/source/libs/luajit/TLpatches/patch-01-LuaJITTeX b/Build/source/libs/luajit/TLpatches/patch-01-LuaJITTeX
deleted file mode 100644
index 2e8220e0c36..00000000000
--- a/Build/source/libs/luajit/TLpatches/patch-01-LuaJITTeX
+++ /dev/null
@@ -1,221 +0,0 @@
-diff -bur LuaJIT-src-orig/src/lauxlib.h LuaJIT-src/src/lauxlib.h
---- LuaJIT-src-orig/src/lauxlib.h 2016-03-07 09:43:42.708069718 +0100
-+++ LuaJIT-src/src/lauxlib.h 2016-03-04 16:52:23.000000000 +0100
-@@ -86,6 +86,32 @@
- int level);
-
-
-+
-+/*
-+** {======================================================
-+** File handles for IO library
-+** =======================================================
-+*/
-+
-+/*
-+** A file handle is a userdata with metatable 'LUA_FILEHANDLE' and
-+** initial structure 'luaL_Stream' (it may contain other fields
-+** after that initial structure).
-+*/
-+
-+#define LUA_FILEHANDLE "FILE*"
-+
-+
-+typedef struct luaL_Stream {
-+ FILE *f; /* stream (NULL for incompletely created streams) */
-+ lua_CFunction closef; /* to close stream (NULL for closed streams) */
-+} luaL_Stream;
-+
-+/* }====================================================== */
-+
-+
-+
-+
- /*
- ** ===============================================================
- ** some useful macros
-@@ -144,6 +170,8 @@
- LUALIB_API void (luaL_addvalue) (luaL_Buffer *B);
- LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
-
-+/* Luajittex needs this one because it overloads loadfile */
-+LUALIB_API int (RESERVED_load_aux_JIT) (lua_State *L, int status, int envarg);
-
- /* }====================================================== */
-
-diff -bur LuaJIT-src-orig/src/lib_init.c LuaJIT-src/src/lib_init.c
---- LuaJIT-src-orig/src/lib_init.c 2016-03-07 09:43:42.720069718 +0100
-+++ LuaJIT-src/src/lib_init.c 2016-03-07 11:47:15.847946480 +0100
-@@ -26,6 +26,7 @@
- { LUA_DBLIBNAME, luaopen_debug },
- { LUA_BITLIBNAME, luaopen_bit },
- { LUA_JITLIBNAME, luaopen_jit },
-+ { LUA_BITLIBNAME_32, luaopen_bit32 },
- { NULL, NULL }
- };
-
-diff -bur LuaJIT-src-orig/src/lib_package.c LuaJIT-src/src/lib_package.c
---- LuaJIT-src-orig/src/lib_package.c 2016-03-07 09:43:42.712069718 +0100
-+++ LuaJIT-src/src/lib_package.c 2016-03-07 11:49:15.655944489 +0100
-@@ -362,6 +362,29 @@
- return 1; /* library loaded successfully */
- }
-
-+#define LUA_POF "luaopen_"
-+#define LUA_OFSEP "_"
-+#define POF LUA_POF
-+
-+static const char *mkfuncname (lua_State *L, const char *modname) {
-+ const char *funcname;
-+ const char *mark = strchr(modname, *LUA_IGMARK);
-+ if (mark) modname = mark + 1;
-+ funcname = luaL_gsub(L, modname, ".", LUA_OFSEP);
-+ funcname = lua_pushfstring(L, POF"%s", funcname);
-+ lua_remove(L, -2); /* remove 'gsub' result */
-+ return funcname;
-+}
-+
-+
-+int loader_C_luatex (lua_State *L, const char *name, const char *filename) {
-+ const char *funcname;
-+ funcname = mkfuncname(L, name);
-+ if (ll_loadfunc(L, filename, funcname,0) != 0)
-+ loaderror(L, filename);
-+ return 1; /* library loaded successfully */
-+}
-+
- static int lj_cf_package_loader_croot(lua_State *L)
- {
- const char *filename;
-@@ -381,6 +404,21 @@
- return 1;
- }
-
-+int loader_Call_luatex (lua_State *L, const char *name, const char *filename) {
-+ const char *funcname;
-+ int stat;
-+ if (filename == NULL) return 1; /* root not found */
-+ funcname = mkfuncname(L, name);
-+ if ((stat = ll_loadfunc(L, filename, funcname,0)) != 0) {
-+ if (stat != PACKAGE_ERR_FUNC) loaderror(L, filename); /* real error */
-+ lua_pushfstring(L, "\n\tno module " LUA_QS " in file " LUA_QS,
-+ name, filename);
-+ return 1; /* function not found */
-+ }
-+ return 1; /* library loaded successfully */
-+}
-+
-+
- static int lj_cf_package_loader_preload(lua_State *L)
- {
- const char *name = luaL_checkstring(L, 1);
-
-diff -bur LuaJIT-src-orig/src/lj_load.c LuaJIT-src/src/lj_load.c
---- LuaJIT-src-orig/src/lj_load.c 2016-03-07 09:43:42.716069718 +0100
-+++ LuaJIT-src/src/lj_load.c 2016-03-07 12:09:10.771924621 +0100
-@@ -166,3 +166,19 @@
- return 1;
- }
-
-+/* -- Luajittex needs this one because it overloads loadfile -- */
-+LUALIB_API int RESERVED_load_aux_JIT(lua_State *L, int status, int envarg)
-+{
-+ if (status == 0) {
-+ if (tvistab(L->base+envarg-1)) {
-+ GCfunc *fn = funcV(L->top-1);
-+ GCtab *t = tabV(L->base+envarg-1);
-+ setgcref(fn->c.env, obj2gco(t));
-+ lj_gc_objbarrier(L, fn, t);
-+ }
-+ return 1;
-+ } else {
-+ setnilV(L->top-2);
-+ return 2;
-+ }
-+}
-
-diff -bur LuaJIT-src-orig/src/lua.h LuaJIT-src/src/lua.h
---- LuaJIT-src-orig/src/lua.h 2016-03-07 09:43:42.716069718 +0100
-+++ LuaJIT-src/src/lua.h 2016-03-07 11:56:24.855937353 +0100
-@@ -103,6 +103,9 @@
- typedef LUA_INTEGER lua_Integer;
-
-
-+/* communication with LuaJiTTeX */
-+LUA_API int luajittex_choose_hash_function;
-+
-
- /*
- ** state manipulation
-@@ -349,6 +352,16 @@
- const char *chunkname, const char *mode);
-
-
-+#define LUA_OPEQ 0
-+#define LUA_OPLT 1
-+#define LUA_OPLE 2
-+#define LUA_OK 0
-+
-+/* see http://comments.gmane.org/gmane.comp.programming.swig/18673 */
-+# define lua_rawlen lua_objlen
-+
-+
-+
- struct lua_Debug {
- int event;
- const char *name; /* (n) */
-
-diff -bur LuaJIT-src-orig/src/lualib.h LuaJIT-src/src/lualib.h
---- LuaJIT-src-orig/src/lualib.h 2016-03-07 09:43:42.724069718 +0100
-+++ LuaJIT-src/src/lualib.h 2016-03-07 11:58:19.151935453 +0100
-@@ -22,6 +22,8 @@
- #define LUA_JITLIBNAME "jit"
- #define LUA_FFILIBNAME "ffi"
-
-+#define LUA_BITLIBNAME_32 "bit32"
-+
- LUALIB_API int luaopen_base(lua_State *L);
- LUALIB_API int luaopen_math(lua_State *L);
- LUALIB_API int luaopen_string(lua_State *L);
-@@ -34,6 +36,8 @@
- LUALIB_API int luaopen_jit(lua_State *L);
- LUALIB_API int luaopen_ffi(lua_State *L);
-
-+LUALIB_API int luaopen_bit32(lua_State *L);
-+
- LUALIB_API void luaL_openlibs(lua_State *L);
-
- #ifndef lua_assert
-
-diff -bur LuaJIT-src-orig/src/Makefile LuaJIT-src/src/Makefile
---- LuaJIT-src-orig/src/Makefile 2016-03-07 09:43:42.716069718 +0100
-+++ LuaJIT-src/src/Makefile 2016-03-07 12:02:42.319931078 +0100
-@@ -99,7 +99,7 @@
- # enabled by default. Some other features that *might* break some existing
- # code (e.g. __pairs or os.execute() return values) can be enabled here.
- # Note: this does not provide full compatibility with Lua 5.2 at this time.
--#XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT
-+XCFLAGS+= -DLUAJIT_ENABLE_LUA52COMPAT
- #
- # Disable the JIT compiler, i.e. turn LuaJIT into a pure interpreter.
- #XCFLAGS+= -DLUAJIT_DISABLE_JIT
-@@ -471,7 +471,7 @@
- LJVM_BOUT= $(LJVM_S)
- LJVM_MODE= elfasm
-
--LJLIB_O= lib_base.o lib_math.o lib_bit.o lib_string.o lib_table.o \
-+LJLIB_O= lib_base.o lib_math.o lbitlib.o lib_bit.o lib_string.o lib_table.o \
- lib_io.o lib_os.o lib_package.o lib_debug.o lib_jit.o lib_ffi.o
- LJLIB_C= $(LJLIB_O:.o=.c)
-
-diff -bur LuaJIT-src-orig/src/Makefile.dep LuaJIT-src/src/Makefile.dep
---- LuaJIT-src-orig/src/Makefile.dep 2016-03-07 09:43:42.696069718 +0100
-+++ LuaJIT-src/src/Makefile.dep 2016-03-07 12:05:19.343928468 +0100
-@@ -6,6 +6,7 @@
- lj_tab.h lj_meta.h lj_state.h lj_ctype.h lj_cconv.h lj_bc.h lj_ff.h \
- lj_ffdef.h lj_dispatch.h lj_jit.h lj_ir.h lj_char.h lj_strscan.h \
- lj_strfmt.h lj_lib.h lj_libdef.h
-+lbitlib.o: lbitlib.c lua.h luaconf.h lauxlib.h lualib.h
- lib_bit.o: lib_bit.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \
- lj_arch.h lj_err.h lj_errmsg.h lj_buf.h lj_gc.h lj_str.h lj_strscan.h \
- lj_strfmt.h lj_ctype.h lj_cdata.h lj_cconv.h lj_carith.h lj_ff.h \
diff --git a/Build/source/libs/luajit/TLpatches/patch-02 b/Build/source/libs/luajit/TLpatches/patch-02
new file mode 100644
index 00000000000..2f75f8b84f5
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-02
@@ -0,0 +1,11 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/Makefile.dep LuaJIT-2.1.0-beta3/src/Makefile.dep
+--- LuaJIT-2.1.0-beta3-orig/src/Makefile.dep 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/Makefile.dep 2017-06-16 18:35:00.582631351 +0200
+@@ -6,6 +6,7 @@
+ lj_tab.h lj_meta.h lj_state.h lj_frame.h lj_bc.h lj_ctype.h lj_cconv.h \
+ lj_ff.h lj_ffdef.h lj_dispatch.h lj_jit.h lj_ir.h lj_char.h lj_strscan.h \
+ lj_strfmt.h lj_lib.h lj_libdef.h
++lbitlib.o: lbitlib.c lua.h luaconf.h lauxlib.h lualib.h
+ lib_bit.o: lib_bit.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \
+ lj_arch.h lj_err.h lj_errmsg.h lj_buf.h lj_gc.h lj_str.h lj_strscan.h \
+ lj_strfmt.h lj_ctype.h lj_cdata.h lj_cconv.h lj_carith.h lj_ff.h \
diff --git a/Build/source/libs/luajit/TLpatches/patch-03 b/Build/source/libs/luajit/TLpatches/patch-03
new file mode 100644
index 00000000000..0caddf8bfd4
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-03
@@ -0,0 +1,12 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/host/buildvm.c LuaJIT-2.1.0-beta3/src/host/buildvm.c
+--- LuaJIT-2.1.0-beta3-orig/src/host/buildvm.c 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/host/buildvm.c 2017-06-16 18:56:14.538560987 +0200
+@@ -113,7 +113,7 @@
+ name[0] = name[1] == 'R' ? '_' : '@'; /* Just for _RtlUnwind@16. */
+ else
+ *p = '\0';
+-#elif LJ_TARGET_PPC && !LJ_TARGET_CONSOLE
++#elif LJ_TARGET_PPC && !LJ_TARGET_OSX && !LJ_TARGET_CONSOLE
+ /* Keep @plt etc. */
+ #else
+ *p = '\0';
diff --git a/Build/source/libs/luajit/TLpatches/patch-04 b/Build/source/libs/luajit/TLpatches/patch-04
new file mode 100644
index 00000000000..83881026a1d
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-04
@@ -0,0 +1,44 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/lauxlib.h LuaJIT-2.1.0-beta3/src/lauxlib.h
+--- LuaJIT-2.1.0-beta3-orig/src/lauxlib.h 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/lauxlib.h 2017-06-16 19:12:18.325405265 +0200
+@@ -92,6 +92,31 @@
+ LUALIB_API void (luaL_setmetatable) (lua_State *L, const char *tname);
+
+
++
++/*
++** {======================================================
++** File handles for IO library
++** =======================================================
++*/
++
++/*
++** A file handle is a userdata with metatable 'LUA_FILEHANDLE' and
++** initial structure 'luaL_Stream' (it may contain other fields
++** after that initial structure).
++*/
++
++#define LUA_FILEHANDLE "FILE*"
++
++
++typedef struct luaL_Stream {
++ FILE *f; /* stream (NULL for incompletely created streams) */
++ lua_CFunction closef; /* to close stream (NULL for closed streams) */
++} luaL_Stream;
++
++/* }====================================================== */
++
++
++
+ /*
+ ** ===============================================================
+ ** some useful macros
+@@ -155,6 +180,8 @@
+ LUALIB_API void (luaL_addvalue) (luaL_Buffer *B);
+ LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
+
++/* Luajittex needs this one because it overloads loadfile */
++LUALIB_API int (RESERVED_load_aux_JIT) (lua_State *L, int status, int envarg);
+
+ /* }====================================================== */
+
diff --git a/Build/source/libs/luajit/TLpatches/patch-05 b/Build/source/libs/luajit/TLpatches/patch-05
new file mode 100644
index 00000000000..6014f5597c1
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-05
@@ -0,0 +1,11 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/lib_init.c LuaJIT-2.1.0-beta3/src/lib_init.c
+--- LuaJIT-2.1.0-beta3-orig/src/lib_init.c 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/lib_init.c 2017-06-16 19:19:00.352961298 +0200
+@@ -26,6 +26,7 @@
+ { LUA_DBLIBNAME, luaopen_debug },
+ { LUA_BITLIBNAME, luaopen_bit },
+ { LUA_JITLIBNAME, luaopen_jit },
++ { LUA_BITLIBNAME_32, luaopen_bit32 },
+ { NULL, NULL }
+ };
+
diff --git a/Build/source/libs/luajit/TLpatches/patch-06 b/Build/source/libs/luajit/TLpatches/patch-06
new file mode 100644
index 00000000000..8786dd4d621
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-06
@@ -0,0 +1,53 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/lib_package.c LuaJIT-2.1.0-beta3/src/lib_package.c
+--- LuaJIT-2.1.0-beta3-orig/src/lib_package.c 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/lib_package.c 2017-06-19 16:54:20.092831408 +0200
+@@ -361,6 +361,28 @@
+ return 1; /* library loaded successfully */
+ }
+
++#define LUA_POF "luaopen_"
++#define LUA_OFSEP "_"
++#define POF LUA_POF
++
++static const char *mkfuncname (lua_State *L, const char *modname) {
++ const char *funcname;
++ const char *mark = strchr(modname, *LUA_IGMARK);
++ if (mark) modname = mark + 1;
++ funcname = luaL_gsub(L, modname, ".", LUA_OFSEP);
++ funcname = lua_pushfstring(L, POF"%s", funcname);
++ lua_remove(L, -2); /* remove 'gsub' result */
++ return funcname;
++}
++
++int loader_C_luatex (lua_State *L, const char *name, const char *filename) {
++ const char *funcname;
++ funcname = mkfuncname(L, name);
++ if (ll_loadfunc(L, filename, funcname,0) != 0)
++ loaderror(L, filename);
++ return 1; /* library loaded successfully */
++}
++
+ static int lj_cf_package_loader_croot(lua_State *L)
+ {
+ const char *filename;
+@@ -380,6 +402,20 @@
+ return 1;
+ }
+
++int loader_Call_luatex (lua_State *L, const char *name, const char *filename) {
++ const char *funcname;
++ int stat;
++ if (filename == NULL) return 1; /* root not found */
++ funcname = mkfuncname(L, name);
++ if ((stat = ll_loadfunc(L, filename, funcname,0)) != 0) {
++ if (stat != PACKAGE_ERR_FUNC) loaderror(L, filename); /* real error */
++ lua_pushfstring(L, "\n\tno module " LUA_QS " in file " LUA_QS,
++ name, filename);
++ return 1; /* function not found */
++ }
++ return 1; /* library loaded successfully */
++}
++
+ static int lj_cf_package_loader_preload(lua_State *L)
+ {
+ const char *name = luaL_checkstring(L, 1);
diff --git a/Build/source/libs/luajit/TLpatches/patch-06-ppc-darwin b/Build/source/libs/luajit/TLpatches/patch-06-ppc-darwin
deleted file mode 100644
index cc4855ea8de..00000000000
--- a/Build/source/libs/luajit/TLpatches/patch-06-ppc-darwin
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -bur LuaJIT-src-orig/src/host/buildvm.c LuaJIT-src/src/host/buildvm.c
---- LuaJIT-src-orig/src/host/buildvm.c 2016-03-07 09:43:42.728069718 +0100
-+++ LuaJIT-src/src/host/buildvm.c 2016-03-07 12:29:03.891904786 +0100
-@@ -113,7 +113,7 @@
- name[0] = '@';
- else
- *p = '\0';
--#elif LJ_TARGET_PPC && !LJ_TARGET_CONSOLE
-+#elif LJ_TARGET_PPC && !LJ_TARGET_OSX && !LJ_TARGET_CONSOLE
- /* Keep @plt etc. */
- #else
- *p = '\0';
-
-diff -bur LuaJIT-src-orig/src/lj_arch.h LuaJIT-src/src/lj_arch.h
---- LuaJIT-src-orig/src/lj_arch.h 2016-03-07 09:43:42.712069718 +0100
-+++ LuaJIT-src/src/lj_arch.h 2016-03-07 12:31:33.351902301 +0100
-@@ -350,7 +350,7 @@
- #if __GNUC__ < 4
- #error "Need at least GCC 4.0 or newer"
- #endif
--#elif LJ_TARGET_ARM
-+#elif LJ_TARGET_ARM || LJ_TARGET_PPC
- #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 2)
- #error "Need at least GCC 4.2 or newer"
- #endif
diff --git a/Build/source/libs/luajit/TLpatches/patch-07 b/Build/source/libs/luajit/TLpatches/patch-07
new file mode 100644
index 00000000000..f37d1ded06d
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-07
@@ -0,0 +1,12 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/lj_arch.h LuaJIT-2.1.0-beta3/src/lj_arch.h
+--- LuaJIT-2.1.0-beta3-orig/src/lj_arch.h 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/lj_arch.h 2017-06-19 17:51:41.683624004 +0200
+@@ -376,7 +376,7 @@
+ #if __GNUC__ < 4
+ #error "Need at least GCC 4.0 or newer"
+ #endif
+-#elif LJ_TARGET_ARM
++#elif LJ_TARGET_ARM || LJ_TARGET_PPC
+ #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 2)
+ #error "Need at least GCC 4.2 or newer"
+ #endif
diff --git a/Build/source/libs/luajit/TLpatches/patch-07-x86_64-cygwin b/Build/source/libs/luajit/TLpatches/patch-07-x86_64-cygwin
deleted file mode 100644
index 4b278dd2c99..00000000000
--- a/Build/source/libs/luajit/TLpatches/patch-07-x86_64-cygwin
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -bur LuaJIT-src-orig/src/lj_arch.h LuaJIT-src/src/lj_arch.h
---- LuaJIT-src-orig/src/lj_arch.h 2016-03-07 09:43:42.712069718 +0100
-+++ LuaJIT-src/src/lj_arch.h 2016-03-07 12:31:33.351902301 +0100
-@@ -350,7 +350,7 @@
- #if __GNUC__ < 4
- #error "Need at least GCC 4.0 or newer"
- #endif
--#elif LJ_TARGET_ARM
-+#elif LJ_TARGET_ARM || LJ_TARGET_PPC
- #if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 2)
- #error "Need at least GCC 4.2 or newer"
- #endif
diff --git a/Build/source/libs/luajit/TLpatches/patch-08 b/Build/source/libs/luajit/TLpatches/patch-08
new file mode 100644
index 00000000000..80a214fb39d
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-08
@@ -0,0 +1,12 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/lj_def.h LuaJIT-2.1.0-beta3/src/lj_def.h
+--- LuaJIT-2.1.0-beta3-orig/src/lj_def.h 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/lj_def.h 2017-06-19 17:52:54.085933629 +0200
+@@ -66,7 +66,7 @@
+ #define LJ_MAX_BCINS (1<<26) /* Max. # of bytecode instructions. */
+ #define LJ_MAX_SLOTS 250 /* Max. # of slots in a Lua func. */
+ #define LJ_MAX_LOCVAR 200 /* Max. # of local variables. */
+-#define LJ_MAX_UPVAL 60 /* Max. # of upvalues. */
++#define LJ_MAX_UPVAL 249 /* Max. # of upvalues. */
+
+ #define LJ_MAX_IDXCHAIN 100 /* __index/__newindex chain limit. */
+ #define LJ_STACK_EXTRA (5+2*LJ_FR2) /* Extra stack space (metamethods). */
diff --git a/Build/source/libs/luajit/TLpatches/patch-09 b/Build/source/libs/luajit/TLpatches/patch-09
new file mode 100644
index 00000000000..312031f36f2
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-09
@@ -0,0 +1,26 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/lj_load.c LuaJIT-2.1.0-beta3/src/lj_load.c
+--- LuaJIT-2.1.0-beta3-orig/src/lj_load.c 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/lj_load.c 2017-06-19 18:05:35.864190001 +0200
+@@ -166,3 +166,22 @@
+ return 1;
+ }
+
++
++
++/* -- Luajittex needs this one because it overloads loadfile -- */
++LUALIB_API int RESERVED_load_aux_JIT(lua_State *L, int status, int envarg)
++{
++ if (status == 0) {
++ if (tvistab(L->base+envarg-1)) {
++ GCfunc *fn = funcV(L->top-1);
++ GCtab *t = tabV(L->base+envarg-1);
++ setgcref(fn->c.env, obj2gco(t));
++ lj_gc_objbarrier(L, fn, t);
++ }
++ return 1;
++ } else {
++ setnilV(L->top-2);
++ return 2;
++ }
++}
++
diff --git a/Build/source/libs/luajit/TLpatches/patch-05-LuaJITTeX b/Build/source/libs/luajit/TLpatches/patch-10
index 884d3392bf7..840f154b1dd 100644
--- a/Build/source/libs/luajit/TLpatches/patch-05-LuaJITTeX
+++ b/Build/source/libs/luajit/TLpatches/patch-10
@@ -1,19 +1,6 @@
-diff -bur LuaJIT-src-orig/src/lj_def.h LuaJIT-src/src/lj_def.h
---- LuaJIT-src-orig/src/lj_def.h 2016-03-07 09:43:42.728069718 +0100
-+++ LuaJIT-src/src/lj_def.h 2016-03-07 12:23:43.327910115 +0100
-@@ -66,7 +66,7 @@
- #define LJ_MAX_BCINS (1<<26) /* Max. # of bytecode instructions. */
- #define LJ_MAX_SLOTS 250 /* Max. # of slots in a Lua func. */
- #define LJ_MAX_LOCVAR 200 /* Max. # of local variables. */
--#define LJ_MAX_UPVAL 60 /* Max. # of upvalues. */
-+#define LJ_MAX_UPVAL 249 /* Max. # of upvalues. */
-
- #define LJ_MAX_IDXCHAIN 100 /* __index/__newindex chain limit. */
- #define LJ_STACK_EXTRA (5+2*LJ_FR2) /* Extra stack space (metamethods). */
-
-diff -bur LuaJIT-src-orig/src/lj_str.c LuaJIT-src/src/lj_str.c
---- LuaJIT-src-orig/src/lj_str.c 2016-03-07 09:43:42.696069718 +0100
-+++ LuaJIT-src/src/lj_str.c 2016-03-07 12:25:22.031908474 +0100
+diff -bur LuaJIT-2.1.0-beta3-orig/src/lj_str.c LuaJIT-2.1.0-beta3/src/lj_str.c
+--- LuaJIT-2.1.0-beta3-orig/src/lj_str.c 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/lj_str.c 2017-06-19 18:20:09.668443066 +0200
@@ -118,6 +118,16 @@
g->strhash = newhash;
}
@@ -70,17 +57,3 @@ diff -bur LuaJIT-src-orig/src/lj_str.c LuaJIT-src/src/lj_str.c
/* Check if the string has already been interned. */
o = gcref(g->strhash[h & g->strmask]);
if (LJ_LIKELY((((uintptr_t)str+len-1) & (LJ_PAGESIZE-1)) <= LJ_PAGESIZE-4)) {
-
-diff -bur LuaJIT-src-orig/src/lj_err.c LuaJIT-src/src/lj_err.c
---- LuaJIT-src-orig/src/lj_err.c 2016-03-15 12:06:56.844436191 +0100
-+++ LuaJIT-src/src/lj_err.c 2016-03-15 11:58:30.000000000 +0100
-@@ -310,7 +310,6 @@
- #define _US_FORCE_UNWIND 8
-
- typedef struct _Unwind_Control_Block _Unwind_Control_Block;
--typedef struct _Unwind_Context _Unwind_Context;
-
- struct _Unwind_Control_Block {
- uint64_t exclass;
-
-
diff --git a/Build/source/libs/luajit/TLpatches/patch-11 b/Build/source/libs/luajit/TLpatches/patch-11
new file mode 100644
index 00000000000..b4b187813fc
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-11
@@ -0,0 +1,28 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/lua.h LuaJIT-2.1.0-beta3/src/lua.h
+--- LuaJIT-2.1.0-beta3-orig/src/lua.h 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/lua.h 2017-06-19 18:26:51.143299683 +0200
+@@ -103,7 +103,8 @@
+ /* type for integer functions */
+ typedef LUA_INTEGER lua_Integer;
+
+-
++/* communication with LuaJiTTeX */
++LUA_API int luajittex_choose_hash_function;
+
+ /*
+ ** state manipulation
+@@ -353,6 +354,14 @@
+ LUA_API lua_Number lua_tonumberx (lua_State *L, int idx, int *isnum);
+ LUA_API lua_Integer lua_tointegerx (lua_State *L, int idx, int *isnum);
+
++
++#define LUA_OPEQ 0
++#define LUA_OPLT 1
++#define LUA_OPLE 2
++
++/* see http://comments.gmane.org/gmane.comp.programming.swig/18673 */
++# define lua_rawlen lua_objlen
++
+ /* From Lua 5.3. */
+ LUA_API int lua_isyieldable (lua_State *L);
+
diff --git a/Build/source/libs/luajit/TLpatches/patch-12 b/Build/source/libs/luajit/TLpatches/patch-12
new file mode 100644
index 00000000000..27be2c8cdaa
--- /dev/null
+++ b/Build/source/libs/luajit/TLpatches/patch-12
@@ -0,0 +1,21 @@
+diff -bur LuaJIT-2.1.0-beta3-orig/src/lualib.h LuaJIT-2.1.0-beta3/src/lualib.h
+--- LuaJIT-2.1.0-beta3-orig/src/lualib.h 2017-05-01 21:05:00.000000000 +0200
++++ LuaJIT-2.1.0-beta3/src/lualib.h 2017-06-19 18:27:55.065836605 +0200
+@@ -22,6 +22,8 @@
+ #define LUA_JITLIBNAME "jit"
+ #define LUA_FFILIBNAME "ffi"
+
++#define LUA_BITLIBNAME_32 "bit32"
++
+ LUALIB_API int luaopen_base(lua_State *L);
+ LUALIB_API int luaopen_math(lua_State *L);
+ LUALIB_API int luaopen_string(lua_State *L);
+@@ -34,6 +36,8 @@
+ LUALIB_API int luaopen_jit(lua_State *L);
+ LUALIB_API int luaopen_ffi(lua_State *L);
+
++LUALIB_API int luaopen_bit32(lua_State *L);
++
+ LUALIB_API void luaL_openlibs(lua_State *L);
+
+ #ifndef lua_assert