Skip to content

1.0.0

Choose a tag to compare

@R-unic R-unic released this 30 Jul 07:27
· 520 commits to master since this release
Immutable release. Only release title and notes can be modified.
79ad559

[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
    specific Instance subclass).
  • Object pattern fields respect luau_name renaming.

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 ??= 69 narrows n off 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's string library 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 of pcall.
  • Instance query macros - get_children, get_descendants, is_a, find_first_child_of_class, and
    related queries, generic over the Roblox class name.