Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync to upstream/release/644 #1432

Merged
merged 158 commits into from
Sep 20, 2024
Merged

Sync to upstream/release/644 #1432

merged 158 commits into from
Sep 20, 2024

Conversation

vegorov-rbx
Copy link
Collaborator

@vegorov-rbx vegorov-rbx commented Sep 20, 2024

In this update we improve overall stability of the new type solver and address some type inference issues with it.

If you use the new solver and want to use all new fixes included in this release, you have to reference an additional Luau flag:

LUAU_DYNAMIC_FASTINT(LuauTypeSolverRelease)

And set its value to 644:

DFInt::LuauTypeSolverRelease.value = 644; // Or a higher value for future updates

New Solver

  • Fixed a debug assertion failure in autocomplete (Fixes assert triggered in new type solver for Intersection Types #1391)
  • Fixed type function distribution issue which transformed len<> and unm<> into not<> (Fixes # operator applied to array table is typed as boolean sometimes #1416)
  • Placed a limit on the possible normalized table intersection size as a temporary measure to avoid hangs and out-of-memory issues for complex type refinements
  • Internal recursion limits are now respected in the subtyping operations and in autocomplete, to avoid stack overflow crashes
  • Fixed false positive errors on assignments to tables whose indexers are unions of strings
  • Fixed memory corruption crashes in subtyping of generic types containing other generic types in their bounds

Internal Contributors:

Co-authored-by: Aaron Weiss aaronweiss@roblox.com
Co-authored-by: Andy Friesen afriesen@roblox.com
Co-authored-by: Vyacheslav Egorov vegorov@roblox.com

aatxe and others added 30 commits November 3, 2023 12:47
- Add SUBRK and DIVRK bytecode instructions
    - Enables future performance optimizations

Miscellaneous
- Small performance improvements to new non-strict mode
- Introduce more scripts for fuzzing
- Improcements to dataflow analysis
Co-authored-by: Alexander McCord <amccord@roblox.com>
Co-authored-by: Andy Friesen <afriesen@roblox.com>
Co-authored-by: Aviral Goel <agoel@roblox.com>
Co-authored-by: David Cope <dcope@roblox.com>
Co-authored-by: Lily Brown <lbrown@roblox.com>
Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com>
@vegorov-rbx vegorov-rbx merged commit f5dabc2 into master Sep 20, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
7 participants