-
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
Delete DebugSymbols=true setting for the repo build #102392
Conversation
Tagging subscribers to this area: @dotnet/area-infrastructure-libraries |
/azp run runtime-nativeaot-outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
https://learn.microsoft.com/en-us/visualstudio/msbuild/common-msbuild-project-properties?view=vs-2022 documents
Does it mean documentation is incorrect or it's in fact an accidental bug? |
I have opened dotnet/sdk#41364 My conclusion after reading through mentions of |
This property does not do what its name says. The symbols are generated regardless of whether this property is true or false. What this property actually does is that it disables C# peephole IL optimizations. This change results in ~0.5% IL binary size improvement thanks to the Roslyn IL peephole optimizations that it enables.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
For others reviewing this, the Microsoft.NET.Sdk makes this property still default to true when doing a Debug configuration build: https://github.com/dotnet/sdk/blob/ace21a69999eede779921900fca9420d37395aee/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.props#L49 |
* Delete DebugSymbols This property does not do what its name says. The symbols are generated regardless of whether this property is true or false. What this property actually does is that it disables C# peephole IL optimizations. This change results in ~0.5% IL binary size improvement thanks to the Roslyn IL peephole optimizations that it enables. * Update eng/illink.targets Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com> --------- Co-authored-by: Michal Strehovský <MichalStrehovsky@users.noreply.github.com>
Based on #102392 (comment), should |
Possibly. It depends on whether and how the behavior of |
This property does not do what its name says. The symbols are generated regardless of whether this property is true or false. What this property actually does is that it disables C# peephole IL optimizations.
This change results in ~0.5% IL binary size improvement thanks to the Roslyn IL peephole optimizations that it enables. Also, this gets us closer to default build configuration used by our users.