I'm not sure how I would embed this in a non-Zig project, though.
I'm not sure how I would embed this in a non-Zig project, though.
Edit: Oh yes it's still like that 'When loading and running the Teal module from Lua, there is no type checking! Type checking will only happen when you run tl check or load a program with tl run.' from https://github.com/teal-language/tl/blob/master/docs/tutoria...
- https://luau-lang.org (interpreted / sandboxed)
- https://terralang.org (JIT interpreted)
- https://nelua.io (Lua -> C)
- https://typescripttolua.github.io/ (TS -> Lua)
- https://github.com/teal-language/tl (Teal -> Lua)
- https://github.com/sumneko/lua-language-server (IDE only typing)
With minimum effort you can get a lot of benefit from using Sumneko's Lua language server.
There's another one you missed in Pallene[2]. But again, it's goal was to optimize the stack sharing involved in using the C API. It also adds types though and maintains Lua idioms as much as possible.
See also this list for comparison https://github.com/fubark/cyber/issues/6, if you dont want lua by a meta-compiler.
If you want non-allocating scripting for optimal performance (and io limited to what you provide as buffer), go for https://dascript.org/. I dont think there are currently other projects with that performance (+ also inspired by Zig). Though, not sure how clunky it is to use.
Much of the functionally has been wrapped or customized to disallow any system access that doesn't go through an access control layer, including for require, and disallowing catching certain errors with pcall and through coroutines. Anything that could feasibly break the sandbox is also removed, like the debug package, and the ability to load bytecode (text sources only). The actual Lua sources are 100% vanilla, though we complete it with C++ to be compatible with the rest of the codebase.