AFAIK there's no official roadmap. Nelua's readme describes it as "in alpha state and still evolving". These are sourced mostly to Discord and Github remarks and should be taken lightly.
current state
Well the language development is somewhat halted, until I finish other projects (that will use it) and get more free time, while is halted fewer people gets interested, and atm I don't have time to support every question, specially the ones that require more elaborated answers and testing
Nevertheless I feel Nelua is almost complete for the vision I had of simple system programming language inspired by Lua with Lua metaprogramming , I just need to finish tables and do a proper release, built my automatic C binder into the compiler, document more, add more examples and fix some minor issues.
planned
- sumtype
- anytype
- (Lua) tables
- closures - "at least when the GC is enabled"
nelua-decl integration- nldecl is in!
ideas
- implicit allocator system (ideia from Odin)
usingkeyword for accessing sub records (idea from Odin/Jai)automatic C binder (Zig can do)c.f. nldecl- exceptions - still not decided, but technically in the 'errorhandling' module and used by nester
- for: https://nim-lang.org/araq/quirky_exceptions.html
- against: handmade: The Race to Replace C and C++ 2.0
- remark: "I am personally against exceptions, but Lua have them, so I will support anyway so we have pcall, but personally I will avoid using it on my own uses"
- remark: "and actually the pcall implementation is a compiler "mod", all the code to get it working is inside that file, it's also a hacky example on how to customize the compiler to do new semantics"
denied
- borrow checking - "I don't think the complexity that comes in the compiler, syntax and ease of use pays off"
- batteries-included stdlib - "the language goal is to be minimal and simple like Lua" / "Nim standard library is huge, I felt this was dragging down the language development/polishment, and bug fixes"
- C11's variable-length-arrays - asked for it in Nim issue #6524, "but years later being on the compiler designer side I am against it, but you can still use them mixing raw C code if really needed"
- Nim's ORC/ARC - "it was actually an original goal, and in the past Nelua had some kind of ARC, but I've removed, this made the language and compiler much complex to use, which was going against the goals, so I cut off that plan" / "I think there are better strategy of memory allocations using custom allocators,"
- stackless coroutines - "I believe stackful coroutines are more powerful, useful and easier to use"
- constructors - "they introduce many unwanted consequences and complexities in the language, you can workaround that by creating a explicit constructor, or use ZII more (zero is initialization)"
- But
new(T)will callT:__new(), so constructors do exist now, though only for dynamic allocations
- But
- classes - "never, use records with metamethods"
constraints
- "most of the standard library is designed for freestanding environment, to use in applications where there is no OS or libc"
- compiled executables should also have minimal very runtimes by default, lacking baggage like even isatty calls.
undocumented
- Rust-like
!syntax, to call Lua functions more directly from Nelua:## function cat(a, b) return a .. b end print(cat!('hello', 'world')) - neluacfg.lua