Skip to content

Commit 1a1d83f

Browse files
committed
Load math, string, table, and utf8 in frontend
Fixes #8 Fixes #74
1 parent 6d5473b commit 1a1d83f

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

internal/frontend/eval.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,28 @@ func NewEval(storeDir zbstore.Directory, store *jsonrpc.Client, cacheDB string)
124124
eval.l.Pop(1)
125125

126126
// Load other standard libraries.
127+
if err := lua.Require(ctx, &eval.l, lua.MathLibraryName, true, lua.NewOpenMath(nil)); err != nil {
128+
return nil, err
129+
}
130+
eval.l.PushNil()
131+
eval.l.RawSetField(-2, "random")
132+
eval.l.PushNil()
133+
eval.l.RawSetField(-2, "randomseed")
134+
eval.l.Pop(1)
135+
if err := lua.Require(ctx, &eval.l, lua.StringLibraryName, true, lua.OpenString); err != nil {
136+
return nil, err
137+
}
138+
eval.l.PushNil()
139+
eval.l.RawSetField(-2, "dump")
140+
eval.l.Pop(1)
127141
if err := lua.Require(ctx, &eval.l, lua.TableLibraryName, true, lua.OpenTable); err != nil {
128142
return nil, err
129143
}
144+
eval.l.Pop(1)
145+
if err := lua.Require(ctx, &eval.l, lua.UTF8LibraryName, true, lua.OpenUTF8); err != nil {
146+
return nil, err
147+
}
148+
eval.l.Pop(1)
130149

131150
// Run prelude.
132151
if err := eval.l.Load(strings.NewReader(preludeSource), lua.AbstractSource("(prelude)"), "t"); err != nil {

zb.code-workspace

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121
"coroutine": "disable",
2222
"debug": "disable",
2323
"io": "disable",
24-
"math": "disable",
24+
"math": "enable",
2525
"os": "disable",
2626
"package": "disable",
27-
"string": "disable",
27+
"string": "enable",
2828
"table": "enable",
29-
"utf8": "disable",
29+
"utf8": "enable",
3030
},
3131
"Lua.workspace.ignoreDir": [
3232
".vscode",

0 commit comments

Comments
 (0)