lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


That's great! Sadly I'm living in a third-world country and can't pay for this course and it is such a shame since I'm currently working on a typed language with modern Lua-like syntax that transpiles into Lua (jit compatible). The syntax is inspired by Luau, Typescript, and Rust. 
I'm writing it in Rust and because of multipass compilation/execution, I'm doing some optimizations that a lightweight language like Lua can't do by itself.
I would like to call this language "luar" as in moonlight but sadly there is already an active project on Git Hub with this name. But until I find a meaningful name as a replacement I'm calling it Luar.
Definitely getting to know the ideologies of one of the creators of Lua could really help in implementing Luar features(for example some that are missing in Lua 5.1 syntax or completely new ones like pattern matching), The idea itself isn't anything new but I think writing it in the Rust instead of Lua can help with performance, especially in cases that the developers want to embed this compiler along with lua itself for direct execution of Luar code instead of compiling it to Lua ahead of time.
I think using a language that can transpile into pure Lua can be a much better solution for enterprises instead of using a completely new interpreter(like what Luau offers) and it can offer complete lua-jit support with something like preprocessor if-else, so the developers can implement a pure lua compatible version of some of their functionalities in case they want jit performance in some environments and lua portability in others.
I hope I can catch this course next time(hopefully in a year or so) when I've migrated to a more sane country.

Kind Regards,
Ali Rezvani

On Wednesday, November 29th, 2023 at 7:40 PM, Roberto Ierusalimschy <> wrote:

> A new cohort for the course "Building a Programming Language", with
> Roberto Ierusalimschy, is starting in the beginning of December.
> See [1] for details.
> [1]
> -- Roberto