Skip to content

Conversation

333fred
Copy link
Member

@333fred 333fred commented May 8, 2025

Merge main to the feature branch

CyrusNajmabadi and others added 30 commits April 25, 2025 10:27
* Update dependencies from https://github.com/dotnet/dotnet

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Viktor Hofer <[email protected]>
This otherwise overrides everything and creates only a symbol package.
This pull request updates the following dependencies

[marker]: <> (Begin:111cfc79-5f9f-4acd-d8a2-08dc0c5899fd)
## From https://github.com/dotnet/arcade
- **Subscription**:
[111cfc79-5f9f-4acd-d8a2-08dc0c5899fd](https://maestro.dot.net/subscriptions?search=111cfc79-5f9f-4acd-d8a2-08dc0c5899fd)
- **Build**:
[20250408.6](https://dev.azure.com/dnceng/internal/_build/results?buildId=2682667)
- **Date Produced**: April 9, 2025 2:17:37 AM UTC
- **Commit**:
[aa61e8c20a869bcc994f8b29eb07d927d2bec6f4](dotnet/arcade@aa61e8c)
- **Branch**: refs/heads/release/9.0

[DependencyUpdate]: <> (Begin)

- **Updates**:
- **Microsoft.SourceBuild.Intermediate.arcade**: [from
9.0.0-beta.25204.5 to 9.0.0-beta.25208.6][1]
- **Microsoft.DotNet.Arcade.Sdk**: [from 9.0.0-beta.25204.5 to
9.0.0-beta.25208.6][1]
- **Microsoft.DotNet.Helix.Sdk**: [from 9.0.0-beta.25204.5 to
9.0.0-beta.25208.6][1]
- **Microsoft.DotNet.XliffTasks**: [from 9.0.0-beta.25204.5 to
9.0.0-beta.25208.6][1]

[1]: dotnet/arcade@97cbc73...aa61e8c

[DependencyUpdate]: <> (End)

- **Updates to .NET SDKs:**
  - Updates sdk.version to 9.0.105
  - Updates tools.dotnet to 9.0.105

[marker]: <> (End:111cfc79-5f9f-4acd-d8a2-08dc0c5899fd)
…8325)

This otherwise overrides everything and creates only a symbol package.
…8134)

This addresses a major portion of dotnet#78091

There are still some WorkspaceChanged events that haven't been switched over. This is big enough without doing all those and I'd like to get a ci run on this to see how broken tests are.
…425.6

Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk , Microsoft.DotNet.XliffTasks
 From Version 9.0.0-beta.25208.6 -> To Version 9.0.0-beta.25225.6
…rsing the next token to see if it's also a DotToken. (dotnet#78338)

I see LanguageParser.IsAtDotToken accounting for about 1 second of CPU time (0.5%) in the C# editing speedometer test. Local testing indicates about 85% of calls into this method will be filtered by this check.

Test insertion: https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/631973

See PR for details on the perf characteristics with and without the change.
jjonescz and others added 8 commits May 8, 2025 12:15
* Fix PPKeyword text that appears in failed tests

* Add basic syntax highlighting

* Split classification if possible

* Allow any white space

* Simplify

* Simplify further
CommandLineParser shows up as surprisingly expensive in the speedometer traces I've been looking at for solution load. This PR attempts a couple small, targeted fixes for a slight improvement.

IsOptionName was doing either 1 or 2 passes in the standard ascii case. Instead, do a length check upfront so that we commonly do 0 passes, and if the lengths match, do 1 pass in the ascii case. In the non-ascii case, fall back to using the ReadOnlySpan's Equals as the code did before. This is a small CPU win reflected by the first two images below.

TryParseOption's calls to IndexOf are showing up in the trace. We can limit the span we search significantly as colon typically is found towards the beginning of arg and arg can be quite long. Small CPU win again, reflected by the 3rd and 4th images below.

ParseSeparatedStrings is a very commonly tread codepath. Small micro-optimizations in the loop to not do the IndexOf call when c is a quote and to check the common condition first.

See PR for performance details from speedometer runs.
Defer expensive member initialization in the CodeFixService constructor.

The Roslyn speedometer test shows this ctor as taking ~28ms during first C# file open while on the main thread. Instead, we can make a couple members lazy and have them initialized when needed (which happens much later, if at all, and on a bg thread)

See PR for detailed speedometer results.
These workflows replace the issue-labeler implementation that runs as a
GitHub app, allowing training and prediction for the repository's labels
without the need for an external service.

References:
* [Home · dotnet/issue-labeler
Wiki](https://github.com/dotnet/issue-labeler/wiki)
* [Onboarding · dotnet/issue-labeler
Wiki](https://github.com/dotnet/issue-labeler/wiki/Onboarding)
* [FAQ · dotnet/issue-labeler
Wiki](https://github.com/dotnet/issue-labeler/wiki/FAQ)

Once this is merged, we'll need to run the 'Labeler: Training' workflow
to train new prediction models, then 'Labeler: Promotion' workflow to
promote the models into active use, and then I can decommission the
integration of the legacy issue-labeler app for this repo.

The legacy issue-labeler was also applying the
https://github.com/dotnet/roslyn/labels/untriaged label to new issues
and pull requests, but there's also a `resourceManagement` policy in
this repo for managing the untriaged label. With this migration to the
GitHub Action based issue-labeler, the issue-labeler will no longer
apply that label, so only the resource management policy will apply for
that.
* upstream/main: (415 commits)
  Use lazy initialization for members in CodeFixService (dotnet#78484)
  Targeted perf changes to CommandLineParser (dotnet#78446)
  Exclude VS.ExternalAPIs.Roslyn.Package from source-build
  Add syntax highlighting of ignored directives (dotnet#78458)
  Fix unexpected conditional state in nullable analysis of conditional access (dotnet#78439)
  Update RoslynAnalyzers to use Roslyns version
  Fix source-build by renaming Assets folder to assets
  Unlist M.CA.AnalyzerUtilities as an expected DevDivInsertion dependency
  Use a project reference for M.CA.AnalyzerUtilities
  Rectify status of dictionary expressions (dotnet#78497)
  Remove unused field
  Remove unused field
  Remove using
  Fix check
  Update eng/config/PublishData.json
  Make internal
  Remove now unused methods from IWorkspaceProjectContext (dotnet#78479)
  Reduce allocations during SourceGeneration (dotnet#78403)
  Update Roslyn.sln
  Merge EditorFeatures.Wpf entirely into EditorFeatures
  ...
@333fred 333fred requested review from a team as code owners May 8, 2025 21:48
@ghost ghost added Area-Infrastructure untriaged Issues and PRs which have not yet been triaged by a lead labels May 8, 2025
@dotnet-policy-service dotnet-policy-service bot added VSCode Needs API Review Needs to be reviewed by the API review council labels May 8, 2025
Copy link
Contributor

This PR modifies public API files. Please follow the instructions at https://github.com/dotnet/roslyn/blob/main/docs/contributing/API%20Review%20Process.md for ensuring all public APIs are reviewed before merging.

@@ -251,31 +251,6 @@ private bool TryGetHoistedField(Symbol variable, [NotNullWhen(true)] out FieldSy
return false;
}

public override BoundNode VisitAwaitableInfo(BoundAwaitableInfo node)
Copy link
Member Author

@333fred 333fred May 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This API was pulled up to the base type in #78231.

@@ -501,7 +501,7 @@ .locals init (int V_0,
IL_001a: pop
IL_001b: ldsfld "Test.<>c Test.<>c.<>9"
IL_0020: ldftn "void Test.<>c.<F>b__1_0()"
IL_0026: newobj "System.Action..ctor(object, nint)"
IL_0026: newobj "System.Action..ctor(object, System.IntPtr)"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#78246 updated our baselines to not use nint.

@333fred 333fred enabled auto-merge May 8, 2025 21:52
Copy link
Member

@jcouv jcouv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (iteration 569)

@333fred 333fred merged commit 91f097c into dotnet:features/runtime-async May 8, 2025
24 of 28 checks passed
@333fred 333fred deleted the merge-main branch May 8, 2025 23:17
JoeRobich added a commit to dotnet/roslyn-tools that referenced this pull request Aug 29, 2025
46 PRs before and 36 after
```diff
+    * [Cache diagnostic analyzer computation](dotnet/roslyn#80045)
+    * [Remove parameter always passed the same value](dotnet/roslyn#80042)
     * [Update doc for IMethodSymbol.IsExtensionMethod](dotnet/roslyn#80016)
     * [Don't cache known-broken compositions](dotnet/roslyn#80021)
     * [Cleanup methods in DiagAnalyzerService](dotnet/roslyn#80013)
     * [Simplify processing of errors reported by the build](dotnet/roslyn#79964)
     * [Additional cleanup of the DiagnosticAnalyzerServier](dotnet/roslyn#80005)
     * [Fix Code Lens around source generated files](dotnet/roslyn#79992)
     * [Remove superflous DiagService api that can be achieved with existing apis](dotnet/roslyn#80007)
     * [Generate `init` accessor for required properties inside `readonly struct`s](dotnet/roslyn#80004)
     * [Remove existing low level diag oop code now that it's all handled at higher levels.](dotnet/roslyn#79994)
     * [Allow large InlineHint ArrayBuilder pooling](dotnet/roslyn#79857)
     * [Reduce allocations obtaining classified spans in ClassifierHelper](dotnet/roslyn#79856)
     * [Compute span diagnostics in oop](dotnet/roslyn#79991)
     * [Allow Razor cohosting to work with non-Razor SDK projects](dotnet/roslyn#79953)
     * [Move computation of deprioritized analyzers to oop](dotnet/roslyn#79989)
     * [EnC: Fix symbol mapping of delegates with indexed name](dotnet/roslyn#79837)
     * [Emit telemetry 'durations' with known radix point '.'](dotnet/roslyn#79988)
     * [Move logic up into DiagService](dotnet/roslyn#79985)
     * [Move the StateManager type up to the DiagnosticService from the DiagnosticIncrementalANalyzer](dotnet/roslyn#79984)
     * [Immediately remote diagnostics call to OOP](dotnet/roslyn#79983)
     * [Build Microsoft.CodeAnalysis.SemanticSearch.Extension ref assembly for use in semantic search queries](dotnet/roslyn#79972)
     * [Only cache compilation if we have the same set of analyzers](dotnet/roslyn#79978)
     * [Delete unused property](dotnet/roslyn#79963)
     * [Update 'use expr body' to be a purely syntactic analyzer](dotnet/roslyn#79979)
     * [Mark 'Use expr body' as a syntax-only fixer](dotnet/roslyn#79971)
     * [♻️ MSBuildWorkspaceDirectory - Fallback to AppContext.BaseDirectory when Assembly Location is empty](dotnet/roslyn#79934)
     * [Merge runtime async support into main](dotnet/roslyn#79833)
     * [Implement "Simplify property accessor" feature](dotnet/roslyn#79754)
-    * Merge main to runtime async branch (PR: [#79961](dotnet/roslyn#79961))
     * [Redo how and when we report source generator telemetry](dotnet/roslyn#79951)
     * [Allow MEF components to supply assembly path resolvers](dotnet/roslyn#79218)
     * [Allow Razor to hook up the source generator in misc files](dotnet/roslyn#79891)
     * [Block ENC for extension blocks](dotnet/roslyn#79883)
     * [Upgrade servicehub.client to fix test source discovery](dotnet/roslyn#79899)
     * [Update package restore error message.](dotnet/roslyn#79876)
-    * Merge main (PR: [#79834](dotnet/roslyn#79834))
-    * Merge main (PR: [#79830](dotnet/roslyn#79830))
     * [Baseline struct lifting tests](dotnet/roslyn#79505)
-    * Merge main to runtime async branch (PR: [#79582](dotnet/roslyn#79582))
-    * Merge main (PR: [#79424](dotnet/roslyn#79424))
-    * Merge main (PR: [#78994](dotnet/roslyn#78994))
-    * Merge main to runtime async branch (PR: [#78740](dotnet/roslyn#78740))
-    * Merge main to runtime async branch (PR: [#78517](dotnet/roslyn#78517))
-    * Merge main to runtime async branch (PR: [#78114](dotnet/roslyn#78114))
-    * Merge main to runtime async branch (PR: [#77700](dotnet/roslyn#77700))
-    * Merge main to runtime async branch (PR: [#77533](dotnet/roslyn#77533))
-    * Merge main to runtime async branch (PR: [#77265](dotnet/roslyn#77265))
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Infrastructure Needs API Review Needs to be reviewed by the API review council untriaged Issues and PRs which have not yet been triaged by a lead VSCode
Projects
None yet
Development

Successfully merging this pull request may close these issues.