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/603 #1097

Merged
merged 5 commits into from
Nov 10, 2023
Merged

Sync to upstream/release/603 #1097

merged 5 commits into from
Nov 10, 2023

Conversation

alexmccord
Copy link
Contributor

@alexmccord alexmccord commented Nov 10, 2023

What's changed?

  • Record the location of properties for table types (closes Track the location of FunctionType declarations #802)
  • Implement stricter UTF-8 validations as per the RFC (Stricter utf8 library validation rfcs#1)
  • Implement buffer as a new type in both the old and new solvers.
  • Changed errors produced by some buffer builtins to be a bit more generic to avoid platform-dependent error messages.
  • Fixed a bug where Unifier would copy some persistent types, tripping some internal assertions.
  • Type checking rules on relational operators is now a little bit more lax.
  • Improve dead code elimination for some if statements with complex always-false conditions

New type solver

  • Dataflow analysis now generates phi nodes on exit of branches.
  • Dataflow analysis avoids producing a new definition for locals or properties that are not owned by that loop.
  • If a function parameter has been constrained to never, report errors at all uses of that parameter within that function.
  • Switch to using the new Luau::Set to replace std::unordered_set to alleviate some poor allocation characteristics which was negatively affecting overall performance.
  • Subtyping can now report many failing reasons instead of just the first one that we happened to find during the test.
  • Subtyping now also report reasons for type pack mismatches.
  • When visiting if statements or expressions, the resulting context are the common terms in both branches.

Native codegen

  • Implement support for buffer builtins to its IR for x64 and A64.
  • Optimized table.insert by not inserting a table barrier if it is fastcalled with a constant.

Internal Contributors

Co-authored-by: Aaron Weiss [email protected]
Co-authored-by: Alexander McCord [email protected]
Co-authored-by: Andy Friesen [email protected]
Co-authored-by: Arseny Kapoulkine [email protected]
Co-authored-by: Aviral Goel [email protected]
Co-authored-by: Lily Brown [email protected]
Co-authored-by: Vyacheslav Egorov [email protected]

@alexmccord alexmccord merged commit c2ba105 into master Nov 10, 2023
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Track the location of FunctionType declarations
3 participants