From 43e45b145279946f01876efe36e0e7acad4ce8c3 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 11 Jan 2019 15:27:11 -0800 Subject: Tweaked code to use both _ENV and _G for better compatibility of precompiled Lua between Lua 5.2+ and LuaJIT --- nomsu_environment.moon | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'nomsu_environment.moon') diff --git a/nomsu_environment.moon b/nomsu_environment.moon index 70f2848..f82bb4e 100644 --- a/nomsu_environment.moon +++ b/nomsu_environment.moon @@ -125,9 +125,7 @@ nomsu_environment = setmetatable({ else code = NomsuCode\from(Source(path, 1, #code), code) _currently_running_files\add path - assert(mod[jit and "_G" or "_ENV"] == mod) mod\run(code) - assert(mod[jit and "_G" or "_ENV"] == mod) _currently_running_files\pop! package.loaded[package_name] = mod package.loaded[path] = mod @@ -135,23 +133,19 @@ nomsu_environment = setmetatable({ use: (package_name)=> mod = @load_module(package_name) - assert(mod[jit and "_G" or "_ENV"] == mod) imports = assert _module_imports[@] for k,v in pairs(mod) imports[k] = v - assert(mod[jit and "_G" or "_ENV"] == mod) return mod export: (package_name)=> mod = @load_module(package_name) - assert(mod[jit and "_G" or "_ENV"] == mod) imports = assert _module_imports[@] for k,v in pairs(_module_imports[mod]) imports[k] = v for k,v in pairs(mod) if k != "_G" and k != "_ENV" @[k] = v - assert(mod[jit and "_G" or "_ENV"] == mod) return mod run: (to_run)=> @@ -218,13 +212,15 @@ nomsu_environment = setmetatable({ new_environment: -> env = {} _module_imports[env] = {k,v for k,v in pairs(nomsu_environment)} - env[jit and "_G" or "_ENV"] = env + env._ENV = env + env._G = env setmetatable(env, getmetatable(nomsu_environment)) return env }, { __index: (k)=> _module_imports[@][k] }) -nomsu_environment[jit and "_G" or "_ENV"] = nomsu_environment +nomsu_environment._ENV = nomsu_environment +nomsu_environment._G = nomsu_environment nomsu_environment.COMPILE_RULES = require('bootstrap') _module_imports[nomsu_environment] = {} -- cgit v1.2.3