-
Notifications
You must be signed in to change notification settings - Fork 3
/
bootstrap.edict
56 lines (38 loc) · 1.82 KB
/
bootstrap.edict
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
ROOT <
[
]@newline
[LTV_concat!]@concat
[compile_ltv(@code jit_edict code)]@compile
[[a b c] compile compile!!! stack!]@test.compile
[vm_try(cif_preview_module!)]@preview
[vm_try(cif_import_module())]@import
[[preview(lib) import(lib) lib](@lib)]@loadlib
[loadlib([../test/build/libtestlib.so]) @test test.y.1 stack!]@test.import1
[loadlib([../../htm/build/libhtmlib.so]) @htm htm.htm_main(int! '((char)*)*'!)]@test.import2
[loadlib([../../htm/build/libhtmlib.so]) <htm_main(int! '((char)*)*'!)>]@test.import3
[bench encaps! vm_while! | locals!]@fastbench
[bench [dup! ! loop!]@loop loop! | locals!]@midbench
[a b int_add! a@ limit int_nequal! slowloop!]@slowloop
[int! @limit limit@ int! 0@ @a int! 1@ @b slowloop! | locals!]@slowbench
[encaps! <RETURN>@]@return_tos
[ROOT<ARG0 decaps! stack! ! return_tos!>]@std.thunk
[square(3)]@square3
[minus(1)]@decrement
[vm_eval(ROOT std.thunk [square(3)]) stack!]@test.async1
[vm_eval(ROOT std.thunk [square3!]) stack!]@test.async2
[[]<@thunk @root @sig encaps(vm_continuation(encaps(sig) root thunk))>/]@continuation
[[]<@continuation @arg vm_async(continuation arg)@thread>]@async
[<vm_await(thread)>/]@await
[await(async([square(3)] continuation('(LTV)*(*)((LTV)*)' ROOT std.thunk))) stack!]@test.async6
[async(continuation('(LTV)*(*)((LTV)*)' ROOT std.thunk))]@std.thread
[ std.thread([square(2)]) @T1
std.thread([square(3)]) @T2
minus(await(T2) await(T1))
stack!
]@test.async7
[vm_eval(ROOT std.thunk [testimport3!]) stack!]@test.async8
continuation('int(*)(int,int)' ROOT [ROOT <string(ARG0) string(ARG1) minus(ARG0 ARG1) return_tos!])@callback
>
[[[repl(get_stdin!)|]! repeat!]@repeat repeat!]/ [persistent]/
repl(get_stdin!)
[goodbye!] return_tos!