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/622 #1232

Merged
merged 80 commits into from
Apr 19, 2024
Merged

Sync to upstream/release/622 #1232

merged 80 commits into from
Apr 19, 2024

Conversation

aatxe
Copy link
Collaborator

@aatxe aatxe commented Apr 19, 2024

What's changed?

  • Improved the actual message for the type errors for cannot call non-function when attempting to call a union of functions/callable tables. The error now correctly explains the issue is an inability to determine the return type of the call in this situation.
  • Resolve an issue where tables and metatables were not correctly being cloned during instantiation (fixes heap-use-after-free when running luau-analyze #1176).
  • Refactor luaM_getnextgcopage to luaM_getnextpage (generally removing gco prefix where appropriate).
  • Optimize table.move between tables for large ranges of elements.
  • Reformat a bunch of code automatically using clang-format.

New Type Solver

  • Clean up minimally-used or unused constraints in the constraint solver (InstantiationConstraint, SetOpConstraint, SingletonOrTopTypeConstraint).
  • Add a builtin singleton type family to replace SingletonOrTopTypeConstraint when inferring refinements.
  • Fixed a crash involving type path reasoning by recording when type family reduction has taken place in the path.
  • Improved constraint ordering by blocking on unreduced types families that are not yet proven uninhabitable.
  • Improved the handling of SetIndexerConstraints for both better inference quality and to resolve crashes.
  • Fix a crash when normalizing cyclic unions of intersections.
  • Fix a crash when normalizing an intersection with the negation of unknown.
  • Fix a number of crashes caused by missing follow calls on TypeIds.
  • Changed type family reduction to correctly use a semantic notion of uninhabited types, rather than checking for never types specifically.
  • Refactor the union and intersect type families to be variadic.

Native Code Generation

  • Improve translation for userdata key get/set and userdata/vector namecall.
  • Provide [top level] and [anonymous] as function names to FunctionStats as appropriate when no function name is available.
  • Disable unwind support on Android platforms since it is unsupported.

Internal Contributors

Co-authored-by: Aaron Weiss aaronweiss@roblox.com
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: Vighnesh Vijay vvijay@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>
@aatxe aatxe merged commit 68bd1b2 into master Apr 19, 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
Development

Successfully merging this pull request may close these issues.

heap-use-after-free when running luau-analyze
6 participants