-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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-preview7] Polyfill the incremental generator ForAttributeWithMetadataName from roslyn (for LibraryImportGenerator). #72142
[release/7.0-preview7] Polyfill the incremental generator ForAttributeWithMetadataName from roslyn (for LibraryImportGenerator). #72142
Conversation
…roslyn (for LibraryImportGenerator). (dotnet#71652) Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
Tagging subscribers to this area: @dotnet/interop-contrib Issue DetailsBackport of #71652 into release/7.0-preview7 DescriptionHaving the LibraryImportGenerator use the new Polyfill Roslyn API for fast Attribute-based source generators performance. Customer ImpactThis will help with editor experience for all developers, regardless if they use the LibraryImportGenerator or not. This generator is on by default, and runs on projects even when the consuming project doesn't consume the generator. These changes help boost the performance for all scenarios: when the source generator is consumed, when it is not used, and also makes the incremental editing experience better and faster as this generator spends much fewer CPU cycles. TestingRegular unit tests plus manual validation. RiskLow-Medium: This generator is on by default, so it runs for all applications which is why the change is deemed to be low-medium risk. The changes have been manually validated in main, and it is a perf-only change so it shouldn't alter behavior. cc: @CyrusNajmabadi @jkoritzinsky @stephentoub
|
cc: @ericstj @danmoseley |
Approved by Tactics via email. |
@stephentoub signed off on the original, so it would make sense on this PR as well IMO :) |
yup, I added both @stephentoub and @jkoritzinsky who both signed off on the original |
Work Item baseservices.threading failed - timed out after 1 hr with no real log. @dotnet/dnceng can you tell whether this was Helix? If the test ran but hung I'd expect to see more than 1 line here. clearly unrelated to this change. |
Sure, we'll take a look. |
The work item exited with STATUS_DLL_INIT_FAILED, a classic problem with these ARM64 machines . I've offline-d the machine and will create an FR issue to reimage it. We've (relatively recently) reimaged all these machines and it made the problem much better, but it never really goes away. Some historical examples: My theory here is that basically, if you let ARM64 windows grind long enough on certain hardware, some system files get corrupted. Updating to a newer OS seems to have made it less prevalent but not gone. |
Is there a line that could go into the console log in that or a similar case ? |
@danmoseley I was able to investigate the machine in trouble and it it does seem that skipping this week's rollout may literally be why this started; the machine had > 7 days of uptime, and as soon as I rebooted it the problem went away. I filed dotnet/arcade#10013 to improve logging and cause this reboot in the cases where it happens. |
Backport of #71652 into release/7.0-preview7
Description
Having the LibraryImportGenerator use the new Polyfill Roslyn API for fast Attribute-based source generators performance.
Customer Impact
This will help with editor experience for all developers, regardless if they use the LibraryImportGenerator or not. This generator is on by default, and runs on projects even when the consuming project doesn't consume the generator. These changes help boost the performance for all scenarios: when the source generator is consumed, when it is not used, and also makes the incremental editing experience better and faster as this generator spends much fewer CPU cycles.
Testing
Regular unit tests plus manual validation.
Risk
Low-Medium: This generator is on by default, so it runs for all applications which is why the change is deemed to be low-medium risk. The changes have been manually validated in main, and it is a perf-only change so it shouldn't alter behavior.
cc: @CyrusNajmabadi @jkoritzinsky @stephentoub