Mercurial Hosting > luan
comparison src/luan/modules/Io.luan @ 1578:c922446f53aa
immutable threading
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 08 Feb 2021 14:16:19 -0700 |
parents | a23b02693d3b |
children | b82767112d8e |
comparison
equal
deleted
inserted
replaced
1577:60e5c324adf9 | 1578:c922446f53aa |
---|---|
1 require "java" | 1 require "java" |
2 local IoLuan = require "java:luan.modules.IoLuan" | 2 local IoLuan = require "java:luan.modules.IoLuan" |
3 local System = require "java:java.lang.System" | 3 local System = require "java:java.lang.System" |
4 local Boot = require "luan:Boot.luan" | 4 local Boot = require "luan:Boot.luan" |
5 local LuanException = require "java:luan.LuanException" | 5 local LuanException = require "java:luan.LuanException" |
6 local Luan = require "luan:Luan.luan" | |
7 local error = Luan.error | |
8 local get_local_cloned = Luan.get_local_cloned | |
9 local set_local_cloned = Luan.set_local_cloned | |
10 local raw_set = Luan.raw_set | |
11 local set_metatable = Luan.set_metatable | |
6 | 12 |
7 | 13 |
8 local Io = {} | 14 local Io = {} |
15 local mt = {} | |
16 function mt.__index(tbl,key) | |
17 if key=="stdin" or key=="stdout" or key=="stderr" then | |
18 return get_local_cloned(tbl,key) | |
19 else | |
20 return nil | |
21 end | |
22 end | |
23 function mt.__new_index(tbl,key,value) | |
24 if key=="stdin" or key=="stdout" or key=="stderr" then | |
25 set_local_cloned(tbl,key,value) | |
26 else | |
27 raw_set(tbl,key,value) | |
28 end | |
29 end | |
30 set_metatable(Io,mt) | |
9 | 31 |
10 Io.dns_lookup = IoLuan.dns_lookup | 32 Io.dns_lookup = IoLuan.dns_lookup |
11 Io.ip = IoLuan.ip | 33 Io.ip = IoLuan.ip |
12 Io.my_ips = IoLuan.my_ips | 34 Io.my_ips = IoLuan.my_ips |
13 Io.read_console_line = IoLuan.read_console_line | 35 Io.read_console_line = IoLuan.read_console_line |
18 Io.stderr = Boot.text_writer(System.err) | 40 Io.stderr = Boot.text_writer(System.err) |
19 | 41 |
20 -- used by http and rpc | 42 -- used by http and rpc |
21 Io.password = "password" | 43 Io.password = "password" |
22 | 44 |
23 local Luan = require "luan:Luan.luan" | |
24 local error = Luan.error | |
25 local to_string = Luan.to_string or error() | 45 local to_string = Luan.to_string or error() |
26 local type = Luan.type or error() | 46 local type = Luan.type or error() |
27 local ipairs = Luan.ipairs or error() | 47 local ipairs = Luan.ipairs or error() |
28 local pairs = Luan.pairs or error() | 48 local pairs = Luan.pairs or error() |
29 local values = Luan.values or error() | 49 local values = Luan.values or error() |