mirror of
https://github.com/luau-lang/luau.git
synced 2025-04-19 19:23:49 +01:00
Disable LuauNonReentrantGeneralization
for some tests (#1775)
For now, this flag causes a stack overflow for some tests on Windows: we end up minting a massive recursive intersection during generalization. Let's flip it off until a fix arrives.
This commit is contained in:
parent
b6457801c7
commit
d110c812bb
3 changed files with 11 additions and 3 deletions
|
@ -10,6 +10,7 @@
|
||||||
LUAU_FASTFLAG(LuauSolverV2);
|
LUAU_FASTFLAG(LuauSolverV2);
|
||||||
LUAU_FASTFLAG(LintRedundantNativeAttribute);
|
LUAU_FASTFLAG(LintRedundantNativeAttribute);
|
||||||
LUAU_FASTFLAG(LuauDeprecatedAttribute);
|
LUAU_FASTFLAG(LuauDeprecatedAttribute);
|
||||||
|
LUAU_FASTFLAG(LuauNonReentrantGeneralization);
|
||||||
|
|
||||||
using namespace Luau;
|
using namespace Luau;
|
||||||
|
|
||||||
|
@ -1923,6 +1924,9 @@ print(foo:bar(2.0))
|
||||||
|
|
||||||
TEST_CASE_FIXTURE(BuiltinsFixture, "TableOperations")
|
TEST_CASE_FIXTURE(BuiltinsFixture, "TableOperations")
|
||||||
{
|
{
|
||||||
|
// FIXME: For now this flag causes a stack overflow on Windows.
|
||||||
|
ScopedFastFlag _{FFlag::LuauNonReentrantGeneralization, false};
|
||||||
|
|
||||||
LintResult result = lint(R"(
|
LintResult result = lint(R"(
|
||||||
local t = {}
|
local t = {}
|
||||||
local tt = {}
|
local tt = {}
|
||||||
|
|
|
@ -21,6 +21,7 @@ LUAU_FASTFLAG(LuauSubtypingStopAtNormFail)
|
||||||
LUAU_FASTFLAG(LuauNormalizationCatchMetatableCycles)
|
LUAU_FASTFLAG(LuauNormalizationCatchMetatableCycles)
|
||||||
LUAU_FASTFLAG(LuauSubtypingEnableReasoningLimit)
|
LUAU_FASTFLAG(LuauSubtypingEnableReasoningLimit)
|
||||||
LUAU_FASTFLAG(LuauTypePackDetectCycles)
|
LUAU_FASTFLAG(LuauTypePackDetectCycles)
|
||||||
|
LUAU_FASTFLAG(LuauNonReentrantGeneralization)
|
||||||
|
|
||||||
using namespace Luau;
|
using namespace Luau;
|
||||||
|
|
||||||
|
@ -1219,6 +1220,7 @@ TEST_CASE_FIXTURE(BuiltinsFixture, "fuzz_propagate_normalization_failures")
|
||||||
ScopedFastFlag luauNormalizeLimitFunctionSet{FFlag::LuauNormalizeLimitFunctionSet, true};
|
ScopedFastFlag luauNormalizeLimitFunctionSet{FFlag::LuauNormalizeLimitFunctionSet, true};
|
||||||
ScopedFastFlag luauSubtypingStopAtNormFail{FFlag::LuauSubtypingStopAtNormFail, true};
|
ScopedFastFlag luauSubtypingStopAtNormFail{FFlag::LuauSubtypingStopAtNormFail, true};
|
||||||
ScopedFastFlag luauSubtypingEnableReasoningLimit{FFlag::LuauSubtypingEnableReasoningLimit, true};
|
ScopedFastFlag luauSubtypingEnableReasoningLimit{FFlag::LuauSubtypingEnableReasoningLimit, true};
|
||||||
|
ScopedFastFlag luauTurnOffNonreentrantGeneralization{FFlag::LuauNonReentrantGeneralization, false};
|
||||||
|
|
||||||
CheckResult result = check(R"(
|
CheckResult result = check(R"(
|
||||||
function _(_,"").readu32(l0)
|
function _(_,"").readu32(l0)
|
||||||
|
|
|
@ -34,6 +34,7 @@ LUAU_FASTFLAG(LuauTypeCheckerAcceptNumberConcats)
|
||||||
LUAU_FASTFLAG(LuauPreprocessTypestatedArgument)
|
LUAU_FASTFLAG(LuauPreprocessTypestatedArgument)
|
||||||
LUAU_FASTFLAG(LuauCacheInferencePerAstExpr)
|
LUAU_FASTFLAG(LuauCacheInferencePerAstExpr)
|
||||||
LUAU_FASTFLAG(LuauMagicFreezeCheckBlocked)
|
LUAU_FASTFLAG(LuauMagicFreezeCheckBlocked)
|
||||||
|
LUAU_FASTFLAG(LuauNonReentrantGeneralization)
|
||||||
|
|
||||||
using namespace Luau;
|
using namespace Luau;
|
||||||
|
|
||||||
|
@ -433,14 +434,15 @@ TEST_CASE_FIXTURE(Fixture, "check_block_recursion_limit")
|
||||||
TEST_CASE_FIXTURE(Fixture, "check_expr_recursion_limit")
|
TEST_CASE_FIXTURE(Fixture, "check_expr_recursion_limit")
|
||||||
{
|
{
|
||||||
#if defined(LUAU_ENABLE_ASAN)
|
#if defined(LUAU_ENABLE_ASAN)
|
||||||
int limit = 250;
|
int limit = 200;
|
||||||
#elif defined(_DEBUG) || defined(_NOOPT)
|
#elif defined(_DEBUG) || defined(_NOOPT)
|
||||||
int limit = 300;
|
int limit = 250;
|
||||||
#else
|
#else
|
||||||
int limit = 600;
|
int limit = 500;
|
||||||
#endif
|
#endif
|
||||||
ScopedFastInt luauRecursionLimit{FInt::LuauRecursionLimit, limit + 100};
|
ScopedFastInt luauRecursionLimit{FInt::LuauRecursionLimit, limit + 100};
|
||||||
ScopedFastInt luauCheckRecursionLimit{FInt::LuauCheckRecursionLimit, limit - 100};
|
ScopedFastInt luauCheckRecursionLimit{FInt::LuauCheckRecursionLimit, limit - 100};
|
||||||
|
ScopedFastFlag _{FFlag::LuauNonReentrantGeneralization, false};
|
||||||
|
|
||||||
CheckResult result = check(R"(("foo"))" + rep(":lower()", limit));
|
CheckResult result = check(R"(("foo"))" + rep(":lower()", limit));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue