Mercurial Hosting > luan
annotate core/src/luan/init.luan @ 290:9a0cc6d9b27b
add Time.period();
add assert_long();
git-svn-id: https://luan-java.googlecode.com/svn/trunk@291 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Tue, 09 Dec 2014 04:39:18 +0000 |
parents | 9e0d4452e649 |
children |
rev | line source |
---|---|
264
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
258
diff
changeset
|
1 import "luan:Package" |
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
258
diff
changeset
|
2 import "luan:Basic" |
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
258
diff
changeset
|
3 import "luan:Table" |
9e0d4452e649
implement URL style module names
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
258
diff
changeset
|
4 import "luan:Io" |
186
cf939124461a
don't import modules by default
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
179
diff
changeset
|
5 |
163
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
6 function Package.global(module,fn_name) |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
7 local function fn(...) |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
8 return module[fn_name](...) |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
9 end |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
10 _G[fn_name] = fn |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
11 return fn |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
12 end |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
13 |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
14 local require = Package.global(Package,"require") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
15 Package.global(Basic,"assert") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
16 Package.global(Basic,"assert_boolean") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
17 Package.global(Basic,"assert_nil") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
18 Package.global(Basic,"assert_number") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
19 Package.global(Basic,"assert_string") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
20 Package.global(Basic,"assert_table") |
233
ef39bc4d3f70
basic lucene works
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
229
diff
changeset
|
21 Package.global(Basic,"assert_integer") |
290
9a0cc6d9b27b
add Time.period();
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
264
diff
changeset
|
22 Package.global(Basic,"assert_long") |
172
4edbf3204ca6
add build.sh and dist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
171
diff
changeset
|
23 local do_file = Package.global(Basic,"do_file") |
163
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
24 Package.global(Basic,"error") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
25 Package.global(Basic,"get_metatable") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
26 Package.global(Basic,"ipairs") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
27 local load = Package.global(Basic,"load") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
28 Package.global(Basic,"load_file") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
29 Package.global(Basic,"pairs") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
30 Package.global(Basic,"range") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
31 Package.global(Basic,"raw_equal") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
32 Package.global(Basic,"raw_get") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
33 Package.global(Basic,"raw_len") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
34 Package.global(Basic,"raw_set") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
35 Package.global(Basic,"repr") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
36 Package.global(Basic,"set_metatable") |
236
1fada5587469
add Basic.to_boolean and change "not" operator to require a boolean
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
233
diff
changeset
|
37 Package.global(Basic,"to_boolean") |
163
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
38 Package.global(Basic,"to_number") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
39 local to_string = Package.global(Basic,"to_string") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
40 Package.global(Basic,"type") |
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
41 |
258
4dfa86dbca45
rename "java:" to "classpath:"
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
236
diff
changeset
|
42 do_file "classpath:luan/version.luan" |
172
4edbf3204ca6
add build.sh and dist
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
171
diff
changeset
|
43 |
141
c2ee8a717b73
move loading of standard modules to luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
139
diff
changeset
|
44 |
139
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
45 function Io.print_to(out,...) |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
46 local list = {} |
128
f0a4abe58593
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
121
diff
changeset
|
47 for _,v in Basic.values(...) do |
163
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
48 list[#list+1] = to_string(v) |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
49 list[#list+1] = '\t' |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
50 end |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
51 if #list == 0 then |
139
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
52 out.write( '\n' ) |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
53 else |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
54 list[#list] = '\n' |
139
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
55 out.write( Table.unpack(list) ) |
116
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
56 end |
1ff1c32417eb
more IoLib work and added init.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff
changeset
|
57 end |
118
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
58 |
163
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
59 function Basic.print(...) |
139
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
60 Io.print_to(Io.stdout,...) |
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
61 end |
163
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
62 local print = Package.global(Basic,"print") |
118
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
63 |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
64 local Debug = {} |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
65 Package.loaded.Debug = Debug |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
66 _G.Debug = Debug |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
67 |
139
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
68 function Debug.print_if_something(...) |
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
69 if Table.pack(...).n > 0 then |
163
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
70 print(...) |
139
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
71 end |
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
72 end |
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
73 |
118
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
74 function Debug.debug(prompt) |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
75 prompt = prompt or "luan_debug> " |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
76 local function console() |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
77 return Io.read_console_line(prompt) |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
78 end |
150
f35c50027985
make load() more consistent
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
149
diff
changeset
|
79 local env = {} |
118
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
80 for line in console do |
128
f0a4abe58593
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
121
diff
changeset
|
81 try |
163
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
82 local fn = load(line,"stdin",env,true) |
139
3b384dc5ca91
replace WebShell.java with web_shell.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
133
diff
changeset
|
83 Debug.print_if_something( fn() ) |
128
f0a4abe58593
minor
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
121
diff
changeset
|
84 catch e do |
163
3c95a2291d64
make all module fns non-global and make global fns call module fns
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
161
diff
changeset
|
85 print(e) |
118
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
86 end |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
87 end |
735708619119
add Debug.debug()
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
116
diff
changeset
|
88 end |
144
2e92f0a6fcac
add Reactionary.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
141
diff
changeset
|
89 |