Skip to content
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

New C++ toolset with fixes for https://github.com/dotnet/wpf/issues/634 #1375

Merged
merged 3 commits into from
Jul 25, 2019

Conversation

vatsan-madhavan
Copy link
Member

Partially addresses #634
The new toolset contains several fixes to the backend and the frontend.

After this fix, this is what we see:

grep -i -E "(\[System\.Runtime\]System\.Runtime\.CompilerServices\.SuppressMergeCheckAttribute)|(\[System\.Runtime\]System\.Runtime\.CompilerServices\.DecoratedNameAttribute)|(\[mscorlib\]System\.Runtime\.CompilerServices\.AssemblyAttributesGoHere)|(\[System\.Runtime\]System\.Runtime\.InteropServices\.Marshal)|(\[System\.Runtime\]System\.Runtime\.CompilerServices\.DecoratedNameAttribute)" DirectWriteForwarder.il   

  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
  .custom instance void [System.Runtime]System.Runtime.CompilerServices.SuppressMergeCheckAttribute::.ctor() = ( 01 00 00 00 ) 
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHereM) instance void [System.Runtime]System.Reflection.AssemblyMetadataAttribute::.ctor(string,
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHereM) instance void [System.Runtime]System.Reflection.AssemblyMetadataAttribute::.ctor(string,
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHereM) instance void [System.Runtime]System.Reflection.AssemblyMetadataAttribute::.ctor(string,
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHereM) instance void [System.Runtime]System.Runtime.CompilerServices.InternalsVisibleToAttribute::.ctor(string) = ( 01 00 81 5C 50 72 65 73 65 6E 74 61 74 69 6F 6E   // ...\Presentation
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHereM) instance void [System.Runtime]System.Reflection.AssemblyMetadataAttribute::.ctor(string,
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHereM) instance void [System.Runtime]System.Reflection.AssemblyMetadataAttribute::.ctor(string,
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHereM) instance void [System.Runtime]System.Runtime.CompilerServices.TypeForwardedToAttribute::.ctor(class [System.Runtime]System.Type) = ( 01 00 77 53 79 73 74 65 6D 2E 57 69 6E 64 6F 77   // ..wSystem.Window
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHereM) instance void [System.Runtime]System.Runtime.CompilerServices.DependencyAttribute::.ctor(string,
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHereM) instance void [System.Runtime]System.Runtime.CompilerServices.DependencyAttribute::.ctor(string,
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) = ( 01 00 18 2E 4E 45 54 43 6F 72 65 41 70 70 2C 56   // ....NETCoreApp,V
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( 01 00 14 44 69 72 65 63 74 57 72 69 74 65 46 6F   // ...DirectWriteFo
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Reflection.AssemblyVersionAttribute::.ctor(string) = ( 01 00 07 34 2E 30 2E 30 2E 30 00 00 )             // ...4.0.0.0..
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( 01 00 14 44 69 72 65 63 74 57 72 69 74 65 46 6F   // ...DirectWriteFo
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Reflection.AssemblyInformationalVersionAttribute::.ctor(string) = ( 01 00 09 34 2E 38 2E 30 2D 64 65 76 00 00 )       // ...4.8.0-dev..
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Security.SecurityRulesAttribute::.ctor(valuetype [System.Runtime]System.Security.SecurityRuleSet) = ( 01 00 01 00 00 ) 
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.CLSCompliantAttribute::.ctor(bool) = ( 01 00 01 00 00 ) 
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = ( 01 00 15 4D 69 63 72 6F 73 6F 66 74 20 43 6F 72   // ...Microsoft Cor
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Reflection.AssemblyProductAttribute::.ctor(string) = ( 01 00 14 44 69 72 65 63 74 57 72 69 74 65 46 6F   // ...DirectWriteFo
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( 01 00 0E 34 32 2E 34 32 2E 34 32 2E 34 32 34 32   // ...42.42.42.4242
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Reflection.AssemblyDefaultAliasAttribute::.ctor(string) = ( 01 00 14 44 69 72 65 63 74 57 72 69 74 65 46 6F   // ...DirectWriteFo
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime]System.Reflection.AssemblyCopyrightAttribute::.ctor(string) = ( 01 00 30 C3 82 C2 A9 20 4D 69 63 72 6F 73 6F 66   // ..0.... Microsof
.custom ([mscorlib]System.Runtime.CompilerServices.AssemblyAttributesGoHere) instance void [System.Runtime.InteropServices]System.Runtime.InteropServices.DefaultDllImportSearchPathsAttribute::.ctor(valuetype [System.Runtime.InteropServices]System.Runtime.InteropServices.DllImportSearchPath) = ( 01 00 02 08 00 00 00 00 )

Planned to be merged after Preview 8 builds have been snapped.

@vatsan-madhavan vatsan-madhavan added the * NO MERGE * metadata: The PR is not ready for merge yet (see discussion for detailed reasons) label Jul 24, 2019
@vatsan-madhavan vatsan-madhavan added this to the 3.0 milestone Jul 24, 2019
@vatsan-madhavan vatsan-madhavan self-assigned this Jul 24, 2019
@ghost ghost requested review from rladuca, ryalanms and stevenbrix July 24, 2019 23:51
@ghost ghost added the PR metadata: Label to tag PRs, to facilitate with triage label Jul 24, 2019
@ghost ghost requested a review from SamBent July 24, 2019 23:51
@vatsan-madhavan
Copy link
Member Author

Based on the discussion at dotnet/core#3075 (comment), we've learned that Preview 8 builds have crashes related to PublishReadyToRun images - which are caused by type-ref errors in DirectWriteForwarder.

The updated tools significantly improve upon type-ref bugs in the assembly. We'll take this change in Preview8 now to improve the overall experience, and give us a chance to fix any additional linker bugs early. This change has gone through DRT's successfully.

@vatsan-madhavan vatsan-madhavan removed the * NO MERGE * metadata: The PR is not ready for merge yet (see discussion for detailed reasons) label Jul 25, 2019
@vatsan-madhavan vatsan-madhavan merged commit 9f9c042 into master Jul 25, 2019
@vatsan-madhavan vatsan-madhavan deleted the dev/vatsan/msvcurt-c1xx-v6 branch July 25, 2019 04:34
@ghost ghost locked as resolved and limited conversation to collaborators Apr 15, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
PR metadata: Label to tag PRs, to facilitate with triage
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants