From 83eabf083b695a296556b35b30be052afd76ee0c Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Thu, 15 Dec 2011 11:16:50 -0500 Subject: Add support for compiling with LuaJIT. --- core/compat.lua | 19 +++++++++++++++++++ core/init.lua | 1 + 2 files changed, 20 insertions(+) create mode 100644 core/compat.lua (limited to 'core') diff --git a/core/compat.lua b/core/compat.lua new file mode 100644 index 00000000..245233b3 --- /dev/null +++ b/core/compat.lua @@ -0,0 +1,19 @@ +-- Copyright 2007-2011 Mitchell mitchellcaladbolg.net. See LICENSE. + +-- When using LuaJIT try to retain backwards compatibility (Lua 5.1). +-- LuaJIT is compiled with LUAJIT_ENABLE_LUA52COMPAT for some Lua 5.2 features. + +-- In Lua 5.1, `xpcall` did not accept function arguments. +local xpcall51 = xpcall +function xpcall(f, error, ...) + local args = {...} + return xpcall51(function() f(unpack(args)) end, error) +end + +-- In Lua 5.1, `load` did not take mode and environment parameters. +local load51 = load +function load(ld, source, mode, env) + local f, err = load51(ld, source) + if f and env then return setfenv(f, env) end + return f, err +end diff --git a/core/init.lua b/core/init.lua index 18077169..cd1c9546 100644 --- a/core/init.lua +++ b/core/init.lua @@ -5,6 +5,7 @@ _RELEASE = "Textadept 4.3" package.path = _HOME..'/core/?.lua;'..package.path os.setlocale('C', 'collate') +if jit then require 'compat' end _SCINTILLA = require 'iface' args = require 'args' locale = require 'locale' -- cgit v1.2.3