-
Notifications
You must be signed in to change notification settings - Fork 5k
[release/7.0-rc2] Updating inbox source generators to Roslyn 4.4 and removing polyfill approach #75875
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
[release/7.0-rc2] Updating inbox source generators to Roslyn 4.4 and removing polyfill approach #75875
Conversation
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label. |
@joperezr please fill out the template, add servicing-consider, and send the email to Tactics. |
Tagging subscribers to this area: @dotnet/area-meta Issue DetailsBackport of #75717 to release/7.0-rc2 /cc @CyrusNajmabadi @jkoritzinsky @stephentoub DescriptionThis PR is upgrading all of the 7.0 inbox source generators to use Roslyn version 4.4, which allows us to remove the polyfill approach from them and instead use the inbox Roslyn APIs for finding an attribute in a performant manner. We originally tried applying these changes in PR #74822 before the RC2 snap, but it caused issues when ingesting the change in the sdk repo since we didn't have a prerelease version of the SDK with the compilers that we required in order to do so. Now that RC1 has been released, this shouldn't be a problem any longer. Customer ImpactAfter this change goes in, the only way to consume dotnet/runtime (without warnings or disabled analyzers) will be by using a Roslyn4.4 compiler. These source generators are on by default when targeting dotnet 7.0, so all projects automatically pass them in to the compiler. Since these source generators will now depend on Roslyn 4.4, then the consuming app will need to use the Roslyn 4.4 compilers too, which can be done via using any of the following:
RiskLow/Medium: since we need this change to be ingested upstack and released into an SDK in order to fully test End-To-End. This is also in a sense reducing risk, as it is removing from the inbox source generators the dependency to Roslyn API that was not fully tested and only source-copied. After this, we will now instead depend on the Roslyn tested bits.
|
JIT failures are a known issue in wasm: #75391 |
* Fix querying L3 cache size on osx-x64 (#75870) Co-authored-by: Filip Navara <navara@emclient.com> * KeyChar should be preserved for Ctrl+Letter (#75861) Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com> * Try re-enabling System.Transactions.Local tests on Arm64 (#75703) Co-authored-by: Jan Kotas <jkotas@microsoft.com> * Updating inbox source generators to Roslyn 4.4 and removing polyfill approach (#75717) (#75875) * Removed internalProperties group from proxy and tests. (#75906) Co-authored-by: Ilona Tomkowicz <itomkowicz@microsoft.com> * [release/7.0-rc2] Fixing SpanHelpers.LastIndexOfAnyValueType to no longer create out of bounds GC refs (#75885) * Fixing SpanHelpers.LastIndexOfAnyValueType to no longer create out of bounds GC refs * Apply suggestions from code review Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com> * Adjusting the comment as per PR review feedback Co-authored-by: Tanner Gooding <tagoo@outlook.com> Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com> * Bump intellisense package for RC2 to include latest comments for Numerics (#75938) Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com> * [release/7.0-rc2] [Mono] Restore old code to solve the recent SpanHelpers regressions (#75996) * bring back the old code... * bring back more old code * Use an ifdef around clr code instead of a separate file * Delete SpanHelpers.Clr.cs * Remove a remaining INumber<T> helper from mono Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com> Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Filip Navara <navara@emclient.com> Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com> Co-authored-by: Jan Kotas <jkotas@microsoft.com> Co-authored-by: Jose Perez Rodriguez <joperezr@microsoft.com> Co-authored-by: Ilona Tomkowicz <itomkowicz@microsoft.com> Co-authored-by: Tanner Gooding <tagoo@outlook.com> Co-authored-by: Carlos Sanchez <1175054+carlossanlop@users.noreply.github.com> Co-authored-by: carlossanlop <carlossanlop@users.noreply.github.com> Co-authored-by: Jeff Handley <jeffhandley@users.noreply.github.com>
Backport of #75717 to release/7.0-rc2
/cc @CyrusNajmabadi @jkoritzinsky @stephentoub
Description
This PR is upgrading all of the 7.0 inbox source generators to use Roslyn version 4.4, which allows us to remove the polyfill approach from them and instead use the inbox Roslyn APIs for finding an attribute in a performant manner.
We originally tried applying these changes in PR #74822 before the RC2 snap, but it caused issues when ingesting the change in the sdk repo since we didn't have a prerelease version of the SDK with the compilers that we required in order to do so. Now that RC1 has been released, this shouldn't be a problem any longer.
Customer Impact
After this change goes in, the only way to consume dotnet/runtime (without warnings or disabled analyzers) will be by using a Roslyn4.4 compiler. These source generators are on by default when targeting dotnet 7.0, so all projects automatically pass them in to the compiler. Since these source generators will now depend on Roslyn 4.4, then the consuming app will need to use the Roslyn 4.4 compilers too, which can be done via using any of the following:
Risk
Low/Medium: since we need this change to be ingested upstack and released into an SDK in order to fully test End-To-End. This is also in a sense reducing risk, as it is removing from the inbox source generators the dependency to Roslyn API that was not fully tested and only source-copied. After this, we will now instead depend on the Roslyn tested bits.