Repository navigation
1.0.0
·
520 commits
to master
since this release
Immutable
release. Only release title and notes can be modified.
[1.0.0] - 2026-07-30
The first release of Loom, a domain-specific language for Roblox that transpiles to Luau.
Pattern matching
- Full Luau generation for every pattern kind: array, object, tuple, range, typed, or, and, rest, and
wildcard patterns, including guard clauses (when). - Match exhaustiveness checking, including discriminated unions narrowed by a common property.
- Structural checking via patterns, and patterns matching Roblox instance types (e.g. matching on a
specificInstancesubclass). - Object pattern fields respect
luau_namerenaming.
Type system
- Bidirectional/contextual typing threaded through the whole checker for better inference with fewer
annotations. - Detailed, actionable type error messages with hints (e.g. suggesting the operator you probably meant).
- Flow-sensitive narrowing, including after assignment (
n ??= 69narrowsnoff its declared optional
type for the rest of that flow).
Standard library
math- typings for Luau's built-in math library (trig, rounding,clamp,random, etc.).string- methods and properties (.length,.split(),.trim(),.replace(),.starts_with(),
and more), mapped directly to Luau'sstringlibrary where possible.Array-.join(),.push()/.pop(),.insert()/.remove(),.index_of(),.has().Range-.length,.clamp().- Result pattern for error handling (
Result.ok/Result.err) in place ofpcall. - Instance query macros -
get_children,get_descendants,is_a,find_first_child_of_class, and
related queries, generic over the Roblox class name.