Skip to content

0.589

Compare
Choose a tag to compare
@github-actions github-actions released this 04 Aug 19:46
0b2755f

Analysis Changes

  • Progress toward a diffing algorithm for types. We hope that this will be useful for writing clearer error messages.
  • Add a missing recursion limiter in Unifier::tryUnifyTables. This was causing a crash in certain situations.

Runtime Changes

  • Luau heap graph enumeration improvements:
    • Weak references are not reported
    • Added tag as a fallback name of non-string table links
    • Included top Luau function information in thread name to understand where thread might be suspended
  • Constant folding for math.pi and math.huge at -O2
  • Optimize string.format and %*
    • This change makes string interpolation 1.5x-2x faster depending on the number and type of formatted components, assuming a few are using primitive types, and reduces associated GC pressure.

Other changes

New type checker

  • Initial work toward tracking the upper and lower bounds of types accurately.

Native code generation (JIT)

  • Add IrCmd::CHECK_TRUTHY for improved assert fast-calls
  • Do not compute type map for modules without types
  • Capture metatable+readonly state for NEW_TABLE IR instructions
  • Replace JUMP_CMP_ANY with CMP_ANY and existing JUMP_EQ_INT
  • Add support for exits to VM with reentry lock in VmExit

New Contributors

Full Changelog: 0.588...0.589