Roadmap

  •  Proposal
  •  Community Feedback
  •  Experimental Compiler (Lua 5.1 support only)
  •  Community Feedback
  •  Temperorary Builtin Attributes Implemented Without Macros
  •  Standard Library Implementation
  •  jit and ffi support
  •  LuaJIT support
  •  Luau support through vanilla Lua 5.1 syntax
  •  Finalize Language Specs
  •  Compiler Rewrite
  •  First Stable compiler release 0.1.0
  •  Debug module
  •  Lua 5.2 support
  •  Lua 5.3 support
  •  Lua 5.4 support
  •  Luau support with fully typed Luau syntax
  •  Macro System
  •  Async support
  •  Iterative releases until version 1.0.0
    •  Linter release
    •  Formatter release
    •  Testing suite release
    •  LSP release
    •  Package manager
    •  Compiler optimization and extended interoperability with older versions of Lua
  •  Beyond
    •  Start of rolling releases from version 1.0.0
    •  Start of LTS releases

Community Feedback

At the beginning of the project, we are going to be dependent on community feedback more than ever to create a more suitable language before putting the final specs in cement, As a result after the release of the Proposal and Experimental Compiler we are going to wait for a while before moving along with the project so we can gather enough feedback from the community and improve the initial design of the language.

Fuse Standard Library

The Fuse standard library is going to be shipped after the first compiler release itself, Because of this the initial compiler is limited to the use of Lua 5.1 features and third-party libraries. In the later releases, we are going to change this and introduce the @fuse namespace for the standard library; as a result even tho it is not included in the initial build, it is going to be reserved anyway. Right now we are not going to allow users to import any other module called @fuse but if we find enough demand for it we may add the ability to configure the Fuse to use a user-defined alias for it.

Support for jit

For jit support we are going to start abstract without leaning too heavily towards LuaJIT, This way we can implement jit support in a way that we can reuse later on to support other runtimes with jit support. But as it is right now there is no viable option for jitted lua other than LuaJIT so we are keeping a close eye on the feature set of LuaJIT and may even make compromises to make it work better in the LuaJIT context.