aboutsummaryrefslogtreecommitdiff
path: root/nomsu_environment.moon
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2019-01-11 15:27:11 -0800
committerBruce Hill <bruce@bruce-hill.com>2019-01-11 15:27:41 -0800
commit43e45b145279946f01876efe36e0e7acad4ce8c3 (patch)
tree29ea5f774bc7299a7b4eba65cdadf190f6c12a20 /nomsu_environment.moon
parent0f0fb2256a46a8808794d7d4746d112278da3730 (diff)
Tweaked code to use both _ENV and _G for better compatibility of
precompiled Lua between Lua 5.2+ and LuaJIT
Diffstat (limited to 'nomsu_environment.moon')
-rw-r--r--nomsu_environment.moon12
1 files changed, 4 insertions, 8 deletions
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] = {}