0.591
What's Changed
- LinterConfig.h: add missing stdint.h include by @xgqt in #1010
- Fix a use-after-free bug in the new type cloning algorithm
- Tighten up the type of
coroutine.wrap
. It is now<A..., R...>(f: (A...) -> R...) -> ((A...) -> R...)
- Break
.luaurc
out into a separate library targetLuau.Config
. This makes it easier for applications to reason about config files without also depending on the type inference engine. - Move typechecking limits into
FrontendOptions
. This allows embedders more finely-grained control over autocomplete's internal time limits. - Fix a stability issue with debugger
debugprotectederror
callback allowing break in non-yieldable contexts
New Type Solver
- Initial work toward Local Type Inference
- Introduce a new subtyping test. This will be much nicer than the old test because it is completely separate both from actual type inference and from error reporting.
Native Code Generation
- Added function to compute iterated dominance frontier
- Optimize barriers in SET_UPVALUE when tag is known
- Cache lua_State::global in a register on A64
- Optimize constant stores in A64 lowering
- Track table array size state to optimize array size checks
- Add split tag/value store into a VM register
- Check that spills can outlive the block only in specific conditions
New Contributors
Full Changelog: 0.590...0.591