Ravi is a dialect of Lua, with JIT and AOT compilers
github.com
github.com
> Lua is perfect as a small embeddable dynamic language so why a derivative? Ravi extends Lua with static typing for improved performance when JIT compilation is enabled.
> There are other attempts to add static typing to Lua - e.g. Typed Lua but these efforts are mostly about adding static type checks in the language while leaving the VM unmodified.
> Of course there is the fantastic LuaJIT implementation. Ravi has a different goal compared to LuaJIT. Ravi prioritizes ease of maintenance and support, language safety, and compatibility with Lua 5.3, over maximum performance.
Lua only has 5 "data" types: nil, bool, number, string, and table. There is also "userdata" (defined in C)
Would this improve performance for functions that take in the non-table types? Or does it provide some mechanism for structured data besides tables?
I have a hard time believing there are many performance gains to be had for the few functions that take in only native types. I suppose compiling those could have major performance improvements in a few tight-loop use-cases?
for typed lua, there is a newer typescript-alike effort https://github.com/teal-language/tl than the mentioned one at https://github.com/andremm/typedlua
https://create.roblox.com/docs/tutorials/scripting/basic-scr... - make a mini game in Roblox
https://github.com/openresty/lua-nginx-module?tab=readme-ov-... - configure and extend NGINX
https://wezfurlong.org/wezterm/config/lua/general.html - make your terminal more useful (my personal config changes the tab color based on the process name - https://github.com/bbkane/dotfiles/blob/master/wezterm/dot-c...
https://m.youtube.com/watch?v=MQBr9hwf0BY - configure your text editor
for exemple, GdScript in Godot game engine would fall into the "embedded dynamic language" ?
redis exposes a Lua scripting interface if one wants to avoid latency of executing commands back & forth over network: https://redis.io/docs/interact/programmability/eval-intro
Over the last couple weeks I've been integrating gopher-lua (a Lua implementation in Go, which then plays nice with Go types & its GC) into PeerDB for scripting data transformations. It's been easy expose stuff like decimal types to the script. It allows a program to make itself extensible
https://github.com/snabbco/snabb
https://blogs.igalia.com/dpino/2017/11/13/snabb-network-tool...