Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
fsharp
提交
2b391ff2
F
fsharp
项目概览
dotNET Platform
/
fsharp
大约 1 年 前同步成功
通知
0
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fsharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
2b391ff2
编写于
9月 09, 2022
作者:
V
Vlad Zarytovskii
提交者:
GitHub
9月 09, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add name and depth fo the stackguard threads (#13859)
Co-authored-by:
N
Don Syme
<
dsyme@users.noreply.github.com
>
上级
9b9c0fdc
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
25 addition
and
25 deletion
+25
-25
src/Compiler/AbstractIL/ilwritepdb.fs
src/Compiler/AbstractIL/ilwritepdb.fs
+1
-1
src/Compiler/Checking/CheckBasics.fs
src/Compiler/Checking/CheckBasics.fs
+1
-1
src/Compiler/Checking/CheckIncrementalClasses.fs
src/Compiler/Checking/CheckIncrementalClasses.fs
+1
-1
src/Compiler/Checking/FindUnsolved.fs
src/Compiler/Checking/FindUnsolved.fs
+1
-1
src/Compiler/Checking/PostInferenceChecks.fs
src/Compiler/Checking/PostInferenceChecks.fs
+1
-1
src/Compiler/CodeGen/IlxGen.fs
src/Compiler/CodeGen/IlxGen.fs
+1
-1
src/Compiler/Facilities/DiagnosticsLogger.fs
src/Compiler/Facilities/DiagnosticsLogger.fs
+2
-2
src/Compiler/Facilities/DiagnosticsLogger.fsi
src/Compiler/Facilities/DiagnosticsLogger.fsi
+1
-1
src/Compiler/Optimize/DetupleArgs.fs
src/Compiler/Optimize/DetupleArgs.fs
+1
-1
src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs
src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs
+1
-1
src/Compiler/Optimize/LowerCalls.fs
src/Compiler/Optimize/LowerCalls.fs
+1
-1
src/Compiler/Optimize/LowerLocalMutables.fs
src/Compiler/Optimize/LowerLocalMutables.fs
+1
-1
src/Compiler/Optimize/LowerStateMachines.fs
src/Compiler/Optimize/LowerStateMachines.fs
+1
-1
src/Compiler/Optimize/Optimizer.fs
src/Compiler/Optimize/Optimizer.fs
+1
-1
src/Compiler/TypedTree/TypedTreeOps.fs
src/Compiler/TypedTree/TypedTreeOps.fs
+10
-10
未找到文件。
src/Compiler/AbstractIL/ilwritepdb.fs
浏览文件 @
2b391ff2
...
...
@@ -1037,6 +1037,6 @@ let rec pushShadowedLocals (stackGuard: StackGuard) (localsToPush: PdbLocalVar[]
// adding the text " (shadowed)" to the names of those with name conflicts.
let
unshadowScopes
rootScope
=
// Avoid stack overflow when writing linearly nested scopes
let
stackGuard
=
StackGuard
(
100
)
let
stackGuard
=
StackGuard
(
100
,
"ILPdbWriter.unshadowScopes"
)
let
result
,
_
=
pushShadowedLocals
stackGuard
[||]
rootScope
result
src/Compiler/Checking/CheckBasics.fs
浏览文件 @
2b391ff2
...
...
@@ -341,7 +341,7 @@ type TcFileState =
{
g
=
g
amap
=
amap
recUses
=
ValMultiMap
<_>.
Empty
stackGuard
=
StackGuard
(
TcStackGuardDepth
)
stackGuard
=
StackGuard
(
TcStackGuardDepth
,
"TcFileState"
)
createsGeneratedProvidedTypes
=
false
thisCcu
=
thisCcu
isScript
=
isScript
...
...
src/Compiler/Checking/CheckIncrementalClasses.fs
浏览文件 @
2b391ff2
...
...
@@ -527,7 +527,7 @@ type IncrClassReprInfo =
PostTransform
=
(
fun
_
->
None
)
PreInterceptBinding
=
None
RewriteQuotations
=
true
StackGuard
=
StackGuard
(
TcClassRewriteStackGuardDepth
)
}
expr
StackGuard
=
StackGuard
(
TcClassRewriteStackGuardDepth
,
"FixupIncrClassExprPhase2C"
)
}
expr
type
IncrClassConstructionBindingsPhase2C
=
|
Phase2CBindings
of
IncrClassBindingGroup
list
...
...
src/Compiler/Checking/FindUnsolved.fs
浏览文件 @
2b391ff2
...
...
@@ -285,7 +285,7 @@ let UnsolvedTyparsOfModuleDef g amap denv mdef extraAttribs =
amap
=
amap
denv
=
denv
unsolved
=
[]
stackGuard
=
StackGuard
(
FindUnsolvedStackGuardDepth
)
}
stackGuard
=
StackGuard
(
FindUnsolvedStackGuardDepth
,
"UnsolvedTyparsOfModuleDef"
)
}
accModuleOrNamespaceDef
cenv
NoEnv
mdef
accAttribs
cenv
NoEnv
extraAttribs
List
.
rev
cenv
.
unsolved
...
...
src/Compiler/Checking/PostInferenceChecks.fs
浏览文件 @
2b391ff2
...
...
@@ -2615,7 +2615,7 @@ let CheckImplFile (g, amap, reportErrors, infoReader, internalsVisibleToPaths, v
reportErrors
=
reportErrors
boundVals
=
Dictionary
<_,
_>(
100
,
HashIdentity
.
Structural
)
limitVals
=
Dictionary
<_,
_>(
100
,
HashIdentity
.
Structural
)
stackGuard
=
StackGuard
(
PostInferenceChecksStackGuardDepth
)
stackGuard
=
StackGuard
(
PostInferenceChecksStackGuardDepth
,
"CheckImplFile"
)
potentialUnboundUsesOfVals
=
Map
.
empty
anonRecdTypes
=
StampMap
.
Empty
usesQuotations
=
false
...
...
src/Compiler/CodeGen/IlxGen.fs
浏览文件 @
2b391ff2
...
...
@@ -11863,7 +11863,7 @@ type IlxAssemblyGenerator(amap: ImportMap, tcGlobals: TcGlobals, tcVal: Constrai
intraAssemblyInfo
=
intraAssemblyInfo
optionsOpt
=
None
optimizeDuringCodeGen
=
(
fun
_
flag
expr
->
expr
)
stackGuard
=
StackGuard
(
IlxGenStackGuardDepth
)
stackGuard
=
StackGuard
(
IlxGenStackGuardDepth
,
"IlxAssemblyGenerator"
)
}
/// Register a set of referenced assemblies with the ILX code generator
...
...
src/Compiler/Facilities/DiagnosticsLogger.fs
浏览文件 @
2b391ff2
...
...
@@ -813,7 +813,7 @@ let internal languageFeatureNotSupportedInLibraryError (langFeature: LanguageFea
error
(
Error
(
FSComp
.
SR
.
chkFeatureNotSupportedInLibrary
(
featureStr
,
suggestedVersionStr
),
m
))
/// Guard against depth of expression nesting, by moving to new stack when a maximum depth is reached
type
StackGuard
(
maxDepth
:
int
)
=
type
StackGuard
(
maxDepth
:
int
,
name
:
string
)
=
let
mutable
depth
=
1
...
...
@@ -828,7 +828,7 @@ type StackGuard(maxDepth: int) =
async
{
do
!
Async
.
SwitchToNewThread
()
Thread
.
CurrentThread
.
Name
<-
"F# Extra Compilation Thread
"
Thread
.
CurrentThread
.
Name
<-
$
"F# Extra Compilation Thread for {name} (depth {depth})
"
use
_
scope
=
new
CompilationGlobalsScope
(
diagnosticsLogger
,
buildPhase
)
return
f
()
}
...
...
src/Compiler/Facilities/DiagnosticsLogger.fsi
浏览文件 @
2b391ff2
...
...
@@ -389,7 +389,7 @@ val tryLanguageFeatureErrorOption:
val
languageFeatureNotSupportedInLibraryError
:
langFeature
:
LanguageFeature
->
m
:
range
->
'
T
type
StackGuard
=
new
:
maxDepth
:
int
->
StackGuard
new
:
maxDepth
:
int
*
name
:
string
->
StackGuard
/// Execute the new function, on a new thread if necessary
member
Guard
:
f
:
(
unit
->
'
T
)
->
'
T
...
...
src/Compiler/Optimize/DetupleArgs.fs
浏览文件 @
2b391ff2
...
...
@@ -864,7 +864,7 @@ let passImplFile penv assembly =
PreInterceptBinding
=
None
PostTransform
=
postTransformExpr
penv
RewriteQuotations
=
false
StackGuard
=
StackGuard
(
DetupleRewriteStackGuardDepth
)
}
StackGuard
=
StackGuard
(
DetupleRewriteStackGuardDepth
,
"RewriteImplFile"
)
}
assembly
|>
RewriteImplFile
rwenv
//-------------------------------------------------------------------------
...
...
src/Compiler/Optimize/InnerLambdasToTopLevelFuncs.fs
浏览文件 @
2b391ff2
...
...
@@ -1366,7 +1366,7 @@ let MakeTopLevelRepresentationDecisions ccu g expr =
recShortCallS
=
recShortCallS
envPackM
=
envPackM
fHatM
=
fHatM
stackGuard
=
StackGuard
(
InnerLambdasToTopLevelFunctionsStackGuardDepth
)
}
stackGuard
=
StackGuard
(
InnerLambdasToTopLevelFunctionsStackGuardDepth
,
"InnerLambdasToTopLevelFunctionsStackGuardDepth"
)
}
let
z
=
Pass4_RewriteAssembly
.
rewriteState0
Pass4_RewriteAssembly
.
TransImplFile
penv
z
expr
...
...
src/Compiler/Optimize/LowerCalls.fs
浏览文件 @
2b391ff2
...
...
@@ -49,5 +49,5 @@ let LowerImplFile g assembly =
PreInterceptBinding
=
None
PostTransform
=
(
fun
_
->
None
)
RewriteQuotations
=
false
StackGuard
=
StackGuard
(
LowerCallsRewriteStackGuardDepth
)
}
StackGuard
=
StackGuard
(
LowerCallsRewriteStackGuardDepth
,
"LowerCallsRewriteStackGuardDepth"
)
}
assembly
|>
RewriteImplFile
rwenv
src/Compiler/Optimize/LowerLocalMutables.fs
浏览文件 @
2b391ff2
...
...
@@ -196,6 +196,6 @@ let TransformImplFile g amap implFile =
PreInterceptBinding
=
Some
(
TransformBinding
g
heapValMap
)
PostTransform
=
(
fun
_
->
None
)
RewriteQuotations
=
true
StackGuard
=
StackGuard
(
AutoboxRewriteStackGuardDepth
)
}
StackGuard
=
StackGuard
(
AutoboxRewriteStackGuardDepth
,
"AutoboxRewriteStackGuardDepth"
)
}
src/Compiler/Optimize/LowerStateMachines.fs
浏览文件 @
2b391ff2
...
...
@@ -358,7 +358,7 @@ type LowerStateMachine(g: TcGlobals) =
PostTransform
=
(
fun
_
->
None
)
PreInterceptBinding
=
None
RewriteQuotations
=
true
StackGuard
=
StackGuard
(
LowerStateMachineStackGuardDepth
)
}
StackGuard
=
StackGuard
(
LowerStateMachineStackGuardDepth
,
"LowerStateMachineStackGuardDepth"
)
}
let
ConvertStateMachineLeafExpression
(
env
:
env
)
expr
=
if
sm_verbose
then
printfn
"ConvertStateMachineLeafExpression for %A..."
expr
...
...
src/Compiler/Optimize/Optimizer.fs
浏览文件 @
2b391ff2
...
...
@@ -4325,7 +4325,7 @@ let OptimizeImplFile (settings, ccu, tcGlobals, tcVal, importMap, optEnv, isIncr
localInternalVals
=
Dictionary
<
Stamp
,
ValInfo
>(
10000
)
emitTailcalls
=
emitTailcalls
casApplied
=
Dictionary
<
Stamp
,
bool
>()
stackGuard
=
StackGuard
(
OptimizerStackGuardDepth
)
stackGuard
=
StackGuard
(
OptimizerStackGuardDepth
,
"OptimizerStackGuardDepth"
)
}
let
env
,
_,
_,
_
as
results
=
OptimizeImplFileInternal
cenv
optEnv
isIncrementalFragment
fsiMultiAssemblyEmit
hidden
mimpls
...
...
src/Compiler/TypedTree/TypedTreeOps.fs
浏览文件 @
2b391ff2
...
...
@@ -2209,7 +2209,7 @@ let CollectTypars = CollectTyparsAndLocals
let
CollectLocals
=
CollectTyparsAndLocals
let
CollectTyparsAndLocalsWithStackGuard
()
=
let
stackGuard
=
StackGuard
(
AccFreeVarsStackGuardDepth
)
let
stackGuard
=
StackGuard
(
AccFreeVarsStackGuardDepth
,
"AccFreeVarsStackGuardDepth"
)
CollectTyparsAndLocalsImpl
(
Some
stackGuard
)
let
CollectLocalsWithStackGuard
()
=
CollectTyparsAndLocalsWithStackGuard
()
...
...
@@ -6248,31 +6248,31 @@ and remapImplFile ctxt compgen tmenv implFile =
// Entry points
let
remapAttrib
g
tmenv
attrib
=
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
)
}
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
,
"RemapExprStackGuardDepth"
)
}
remapAttribImpl
ctxt
tmenv
attrib
let
remapExpr
g
(
compgen
:
ValCopyFlag
)
(
tmenv
:
Remap
)
expr
=
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
)
}
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
,
"RemapExprStackGuardDepth"
)
}
remapExprImpl
ctxt
compgen
tmenv
expr
let
remapPossibleForallTy
g
tmenv
ty
=
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
)
}
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
,
"RemapExprStackGuardDepth"
)
}
remapPossibleForallTyImpl
ctxt
tmenv
ty
let
copyModuleOrNamespaceType
g
compgen
mtyp
=
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
)
}
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
,
"RemapExprStackGuardDepth"
)
}
copyAndRemapAndBindModTy
ctxt
compgen
Remap
.
Empty
mtyp
|>
fst
let
copyExpr
g
compgen
e
=
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
)
}
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
,
"RemapExprStackGuardDepth"
)
}
remapExprImpl
ctxt
compgen
Remap
.
Empty
e
let
copyImplFile
g
compgen
e
=
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
)
}
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
,
"RemapExprStackGuardDepth"
)
}
remapImplFile
ctxt
compgen
Remap
.
Empty
e
|>
fst
let
instExpr
g
tpinst
e
=
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
)
}
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
,
"RemapExprStackGuardDepth"
)
}
remapExprImpl
ctxt
CloneAll
(
mkInstRemap
tpinst
)
e
//--------------------------------------------------------------------------
...
...
@@ -7162,7 +7162,7 @@ let ExprFolder0 =
type
ExprFolders
<
'
State
>
(
folders
:
ExprFolder
<
'
State
>)
=
let
mutable
exprFClosure
=
Unchecked
.
defaultof
<
'
State
->
Expr
->
'
State
>
// prevent reallocation of closure
let
mutable
exprNoInterceptFClosure
=
Unchecked
.
defaultof
<
'
State
->
Expr
->
'
State
>
// prevent reallocation of closure
let
stackGuard
=
StackGuard
(
FoldExprStackGuardDepth
)
let
stackGuard
=
StackGuard
(
FoldExprStackGuardDepth
,
"FoldExprStackGuardDepth"
)
let
rec
exprsF
z
xs
=
List
.
fold
exprFClosure
z
xs
...
...
@@ -9493,7 +9493,7 @@ and remapValToNonLocal ctxt tmenv inp =
inp
|>
Construct
.
NewModifiedVal
(
remapValData
ctxt
tmenv
)
let
ApplyExportRemappingToEntity
g
tmenv
x
=
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
)
}
let
ctxt
=
{
g
=
g
;
stackGuard
=
StackGuard
(
RemapExprStackGuardDepth
,
"RemapExprStackGuardDepth"
)
}
remapTyconToNonLocal
ctxt
tmenv
x
(* Which constraints actually get compiled to .NET constraints? *)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录