Mercurial Hosting > luan
diff src/luan/lib/init.luan @ 163:3c95a2291d64
make all module fns non-global and make global fns call module fns
git-svn-id: https://luan-java.googlecode.com/svn/trunk@164 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 20 Jun 2014 09:32:36 +0000 |
parents | d310ebf4d6e7 |
children | 78ba371ea1e9 |
line wrap: on
line diff
--- a/src/luan/lib/init.luan Fri Jun 20 08:53:44 2014 +0000 +++ b/src/luan/lib/init.luan Fri Jun 20 09:32:36 2014 +0000 @@ -1,3 +1,13 @@ +function Package.global(module,fn_name) + local function fn(...) + return module[fn_name](...) + end + _G[fn_name] = fn + return fn +end + +local require = Package.global(Package,"require") + function Package.global_import(name) local mod = require(name) _G[name] = mod @@ -5,6 +15,30 @@ end local Basic = Package.global_import("Basic","luan.lib.BasicLib.LOADER") +Package.global(Basic,"assert") +Package.global(Basic,"assert_boolean") +Package.global(Basic,"assert_nil") +Package.global(Basic,"assert_number") +Package.global(Basic,"assert_string") +Package.global(Basic,"assert_table") +Package.global(Basic,"do_file") +Package.global(Basic,"error") +Package.global(Basic,"get_metatable") +Package.global(Basic,"ipairs") +local load = Package.global(Basic,"load") +Package.global(Basic,"load_file") +Package.global(Basic,"pairs") +Package.global(Basic,"range") +Package.global(Basic,"raw_equal") +Package.global(Basic,"raw_get") +Package.global(Basic,"raw_len") +Package.global(Basic,"raw_set") +Package.global(Basic,"repr") +Package.global(Basic,"set_metatable") +Package.global(Basic,"to_number") +local to_string = Package.global(Basic,"to_string") +Package.global(Basic,"type") + local String = Package.global_import("String","luan.lib.StringLib.LOADER") -- improved global_import @@ -27,7 +61,7 @@ function Io.print_to(out,...) local list = {} for _,v in Basic.values(...) do - list[#list+1] = _G.to_string(v) + list[#list+1] = to_string(v) list[#list+1] = '\t' end if #list == 0 then @@ -38,9 +72,10 @@ end end -function _G.print(...) +function Basic.print(...) Io.print_to(Io.stdout,...) end +local print = Package.global(Basic,"print") local Debug = {} Package.loaded.Debug = Debug @@ -48,7 +83,7 @@ function Debug.print_if_something(...) if Table.pack(...).n > 0 then - _G.print(...) + print(...) end end @@ -60,14 +95,14 @@ local env = {} for line in console do try - local fn = _G.load(line,"stdin",env,true) + local fn = load(line,"stdin",env,true) Debug.print_if_something( fn() ) catch e do - _G.print(e) + print(e) end end end -- import modules -_G.Reactionary = require "Reactionary" +Package.global_import("Reactionary")