Skip to content

Commit f72b570

Browse files
committed
more hacks
1 parent c3d84f1 commit f72b570

File tree

2 files changed

+86
-37
lines changed

2 files changed

+86
-37
lines changed

src/Compiler/Service/IncrementalBuild.fs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1038,6 +1038,8 @@ module IncrementalBuilderStateHelpers =
10381038

10391039
let rec createFinalizeBoundModelGraphNode (initialState: IncrementalBuilderInitialState) (boundModels: ImmutableArray<GraphNode<BoundModel>>.Builder) =
10401040
GraphNode(node {
1041+
let act = Activity.activitySource.StartActivity("GetCheckResultsAndImplementationsForProject")
1042+
act.AddTag("projectName", initialState.outfile) |> ignore
10411043
// Compute last bound model then get all the evaluated models.
10421044
let! _ = boundModels[boundModels.Count - 1].GetOrComputeValue()
10431045
let boundModels =
@@ -1053,6 +1055,7 @@ module IncrementalBuilderStateHelpers =
10531055
initialState.outfile
10541056
boundModels
10551057
let result = (result, DateTime.UtcNow)
1058+
act.Dispose()
10561059
return result
10571060
})
10581061

@@ -1351,14 +1354,18 @@ type IncrementalBuilder(initialState: IncrementalBuilderInitialState, state: Inc
13511354

13521355
member builder.GetCheckResultsAndImplementationsForProject() =
13531356
node {
1357+
// let act = Activity.activitySource.StartActivity("GetCheckResultsAndImplementationsForProject")
1358+
// act.AddTag("projectName", initialState.outfile) |> ignore
13541359
let cache = TimeStampCache(defaultTimeStamp)
13551360
do! checkFileTimeStamps cache
13561361
let! result = currentState.finalizedBoundModel.GetOrComputeValue()
13571362
match result with
13581363
| (ilAssemRef, tcAssemblyDataOpt, tcAssemblyExprOpt, boundModel), timestamp ->
13591364
let cache = TimeStampCache defaultTimeStamp
13601365
let projectTimeStamp = builder.GetLogicalTimeStampForProject(cache)
1361-
return PartialCheckResults (boundModel, timestamp, projectTimeStamp), ilAssemRef, tcAssemblyDataOpt, tcAssemblyExprOpt
1366+
let res = PartialCheckResults (boundModel, timestamp, projectTimeStamp), ilAssemRef, tcAssemblyDataOpt, tcAssemblyExprOpt
1367+
act.Dispose()
1368+
return res
13621369
}
13631370

13641371
member builder.GetFullCheckResultsAndImplementationsForProject() =

src/Compiler/Service/service.fs

Lines changed: 78 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -343,10 +343,10 @@ type BackgroundCompiler
343343
member x.EvaluateRawContents() =
344344
node {
345345
Trace.TraceInformation("FCS: {0}.{1} ({2})", userOpName, "GetAssemblyData", nm)
346-
let act = Activity.activitySource.StartActivity("CheckReferencedProject")
347-
act.AddTag("Project", nm) |> ignore
346+
//let act = Activity.activitySource.StartActivity("CheckReferencedProject")
347+
//act.AddTag("Project", nm) |> ignore
348348
let! x = self.GetAssemblyData(opts, userOpName + ".CheckReferencedProject(" + nm + ")")
349-
act.Dispose()
349+
//act.Dispose()
350350
return x
351351
}
352352

@@ -587,6 +587,9 @@ type BackgroundCompiler
587587

588588
member _.ParseFile(fileName: string, sourceText: ISourceText, options: FSharpParsingOptions, cache: bool, userOpName: string) =
589589
async {
590+
use act = Activity.activitySource.StartActivity("CompileToDynamicAssembly1")
591+
act.AddTag("filename", fileName) |> ignore
592+
act.AddTag("UserOpName", userOpName) |> ignore
590593
if cache then
591594
let hash = sourceText.GetHashCode() |> int64
592595

@@ -1407,6 +1410,8 @@ type FSharpChecker
14071410
let _userOpName = defaultArg userOpName "Unknown"
14081411

14091412
async {
1413+
use act = Activity.activitySource.StartActivity("CompileToDynamicAssembly1")
1414+
act.AddTag("UserOpName", _userOpName) |> ignore
14101415
let ctok = CompilationThreadToken()
14111416
CompileHelpers.setOutputStreams execute
14121417

@@ -1449,6 +1454,9 @@ type FSharpChecker
14491454
let _userOpName = defaultArg userOpName "Unknown"
14501455

14511456
async {
1457+
use act = Activity.activitySource.StartActivity("CompileToDynamicAssembly2")
1458+
act.AddTag("Assembly", assemblyName) |> ignore
1459+
act.AddTag("UserOpName", _userOpName) |> ignore
14521460
let ctok = CompilationThreadToken()
14531461
CompileHelpers.setOutputStreams execute
14541462

@@ -1541,17 +1549,23 @@ type FSharpChecker
15411549
options: FSharpProjectOptions,
15421550
?userOpName: string
15431551
) =
1544-
let userOpName = defaultArg userOpName "Unknown"
1545-
1546-
backgroundCompiler.CheckFileInProjectAllowingStaleCachedResults(
1547-
parseResults,
1548-
fileName,
1549-
fileVersion,
1550-
SourceText.ofString source,
1551-
options,
1552-
userOpName
1553-
)
1554-
|> Async.AwaitNodeCode
1552+
async {
1553+
use act = Activity.activitySource.StartActivity("CheckFileInProjectAllowingStaleCachedResults")
1554+
act.AddTag("Project", options.ProjectFileName) |> ignore
1555+
act.AddTag("filename", fileName) |> ignore
1556+
act.AddTag("UserOpName", userOpName) |> ignore
1557+
let userOpName = defaultArg userOpName "Unknown"
1558+
return!
1559+
backgroundCompiler.CheckFileInProjectAllowingStaleCachedResults(
1560+
parseResults,
1561+
fileName,
1562+
fileVersion,
1563+
SourceText.ofString source,
1564+
options,
1565+
userOpName
1566+
)
1567+
|> Async.AwaitNodeCode
1568+
}
15551569

15561570
/// Typecheck a source code file, returning a handle to the results of the
15571571
/// parse including the reconstructed types in the file.
@@ -1564,10 +1578,16 @@ type FSharpChecker
15641578
options: FSharpProjectOptions,
15651579
?userOpName: string
15661580
) =
1567-
let userOpName = defaultArg userOpName "Unknown"
1568-
1569-
backgroundCompiler.CheckFileInProject(parseResults, fileName, fileVersion, sourceText, options, userOpName)
1570-
|> Async.AwaitNodeCode
1581+
async {
1582+
use act = Activity.activitySource.StartActivity("CheckFileInProject")
1583+
act.AddTag("Project", options.ProjectFileName) |> ignore
1584+
act.AddTag("filename", fileName) |> ignore
1585+
act.AddTag("UserOpName", userOpName) |> ignore
1586+
let userOpName = defaultArg userOpName "Unknown"
1587+
return!
1588+
backgroundCompiler.CheckFileInProject(parseResults, fileName, fileVersion, sourceText, options, userOpName)
1589+
|> Async.AwaitNodeCode
1590+
}
15711591

15721592
/// Typecheck a source code file, returning a handle to the results of the
15731593
/// parse including the reconstructed types in the file.
@@ -1578,17 +1598,30 @@ type FSharpChecker
15781598
sourceText: ISourceText,
15791599
options: FSharpProjectOptions,
15801600
?userOpName: string
1581-
) =
1582-
let userOpName = defaultArg userOpName "Unknown"
1583-
1584-
backgroundCompiler.ParseAndCheckFileInProject(fileName, fileVersion, sourceText, options, userOpName)
1585-
|> Async.AwaitNodeCode
1601+
) =
1602+
async {
1603+
let act = Activity.activitySource.StartActivity("ParseAndCheckFileInProject")
1604+
act.AddTag("Project", options.ProjectFileName) |> ignore
1605+
act.AddTag("filename", fileName) |> ignore
1606+
act.AddTag("UserOpName", userOpName) |> ignore
1607+
let userOpName = defaultArg userOpName "Unknown"
1608+
let! x =
1609+
backgroundCompiler.ParseAndCheckFileInProject(fileName, fileVersion, sourceText, options, userOpName)
1610+
|> Async.AwaitNodeCode
1611+
act.Dispose()
1612+
return x
1613+
}
15861614

15871615
member _.ParseAndCheckProject(options, ?userOpName: string) =
1588-
let userOpName = defaultArg userOpName "Unknown"
1589-
1590-
backgroundCompiler.ParseAndCheckProject(options, userOpName)
1591-
|> Async.AwaitNodeCode
1616+
async {
1617+
let userOpName = defaultArg userOpName "Unknown"
1618+
use act = Activity.activitySource.StartActivity("ParseAndCheckProject")
1619+
act.AddTag("Project", options.ProjectFileName) |> ignore
1620+
act.AddTag("UserOpName", userOpName) |> ignore
1621+
return!
1622+
backgroundCompiler.ParseAndCheckProject(options, userOpName)
1623+
|> Async.AwaitNodeCode
1624+
}
15921625

15931626
member _.FindBackgroundReferencesInFile
15941627
(
@@ -1598,17 +1631,26 @@ type FSharpChecker
15981631
?canInvalidateProject: bool,
15991632
?userOpName: string
16001633
) =
1601-
let canInvalidateProject = defaultArg canInvalidateProject true
1602-
let userOpName = defaultArg userOpName "Unknown"
1603-
1604-
backgroundCompiler.FindReferencesInFile(fileName, options, symbol, canInvalidateProject, userOpName)
1605-
|> Async.AwaitNodeCode
1634+
async {
1635+
let canInvalidateProject = defaultArg canInvalidateProject true
1636+
let userOpName = defaultArg userOpName "Unknown"
1637+
use act = Activity.activitySource.StartActivity("FindBackgroundReferencesInFile")
1638+
act.AddTag("Project", options.ProjectFileName) |> ignore
1639+
act.AddTag("UserOpName", userOpName) |> ignore
1640+
return!
1641+
backgroundCompiler.FindReferencesInFile(fileName, options, symbol, canInvalidateProject, userOpName)
1642+
|> Async.AwaitNodeCode
1643+
}
16061644

16071645
member _.GetBackgroundSemanticClassificationForFile(fileName: string, options: FSharpProjectOptions, ?userOpName) =
1608-
let userOpName = defaultArg userOpName "Unknown"
1609-
1610-
backgroundCompiler.GetSemanticClassificationForFile(fileName, options, userOpName)
1611-
|> Async.AwaitNodeCode
1646+
async {
1647+
let userOpName = defaultArg userOpName "Unknown"
1648+
use act = Activity.activitySource.StartActivity("FindBackgroundReferencesInFile")
1649+
act.AddTag("Project", options.ProjectFileName) |> ignore
1650+
return!
1651+
backgroundCompiler.GetSemanticClassificationForFile(fileName, options, userOpName)
1652+
|> Async.AwaitNodeCode
1653+
}
16121654

16131655
/// For a given script file, get the ProjectOptions implied by the #load closure
16141656
member _.GetProjectOptionsFromScript

0 commit comments

Comments
 (0)