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/588 #992

Merged
merged 151 commits into from
Jul 28, 2023
Merged

Sync to upstream/release/588 #992

merged 151 commits into from
Jul 28, 2023

Conversation

vegorov-rbx
Copy link
Collaborator

@vegorov-rbx vegorov-rbx commented Jul 28, 2023

Type checker/autocomplete:

  • Luau::autocomplete no longer performs typechecking internally, make sure to run Frontend::check before performing autocomplete requests
  • Autocomplete string suggestions without "" are now only suggested inside the ""
  • Autocomplete suggestions now include function (anonymous autofilled) key with a full suggestion for the function expression (with arguments included) stored in AutocompleteEntry::insertText
  • AutocompleteEntry::indexedWithSelf is provided for function call suggestions made with :
  • Cyclic modules now see each other type exports as any to prevent memory use-after-free (similar to module return type)

Runtime:

  • Updated inline/loop unroll cost model to better handle assignments (fixes Loop unrolling can generate absurd amounts of instructions #978)
  • math.noise speed was improved by ~30%
  • table.concat speed was improved by ~5-7%
  • tonumber and tostring now have fastcall paths that execute ~1.5x and ~2.5x faster respectively (fixes concat number with string to convert it doesn't typecheck by default, but it's faster than tostring() #777)
  • Fixed crash in luaL_typename when index refers to a non-existing value
  • Fixed potential out of memory scenario when using string.sub or string.char in a loop
  • Fixed behavior of some fastcall builtins when called without arguments under -O2 to match original functions
  • Support for native code execution in VM is now enabled by default (note: native code still has to be generated explicitly)
  • CodeGen::compile now accepts CodeGen_OnlyNativeModules flag. When set, only modules that have a --!native hot-comment at the top will be compiled to native code

In our new typechecker:

  • Generic type packs are no longer considered to be variadic during unification
  • Timeout and cancellation now works in new solver
  • Fixed false positive errors around 'table' and 'function' type refinements
  • Table literals now use covariant unification rules. This is sound since literal has no type specified and has no aliases
  • Fixed issues with blocked types escaping the constraint solver
  • Fixed more places where error messages that should've been suppressed were still reported
  • Fixed errors when iterating over a top table type

In our native code generation (jit):

  • 'DebugLuauAbortingChecks' flag is now supported on A64
  • LOP_NEWCLOSURE has been translated to IR

@vegorov-rbx vegorov-rbx merged commit 76f67e0 into master Jul 28, 2023
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
3 participants