Use case: https://github.com/dotnet/corert/pull/7905#issuecomment-563173356
As mentioned in https://github.com/dotnet/corert/issues/7923, there's a use case for ILVerify in ILSupport and demand.
ILSupport is an extension for VisualStudio providing... IL support. As far as I know, it's the only IL syntax classifier, and also provides project templates. The use case here is obvious, as verification should be done as part of the build process.
I happen to do language R&D, and there's an obvious use case there as well, in making sure I've got valid IL coming out of a compiler.
Another use-case - https://github.com/dotnet/roslyn/pull/41166#discussion_r374846217 - is to unit test compiler's output in roslyn repo against netcoreapp: https://github.com/dotnet/roslyn/blob/2ed60699f9961a451f60d560da8bd4788c0182fc/src/Test/Utilities/Portable/Platform/CoreClr/CoreCLRRuntimeEnvironment.cs#L104-L114.
Another use case is verifying custom generated DLLs as a debugging aid. Invalid IL can be hard to detect and diagnose from just execution alone.
Would it make more sense to move the sources into the Arcade repository which allows easier packaging and serves as a central place for other repositories to consume assets?
ilverify is in the same category as ilasm or ildasm. It is a generally applicable tool, not tied to .NET product engineering infrastructure. .NET Framework SDK includes equivalent tool called peverify. ilverify is the replacement for peverify.
Also, 90% of the ilverify code is shared with other components in CoreCLR. If we were to build it somewhere else, we would need to setup a source mirroring for this.
Also, 90% of the ilverify code is shared with other components in CoreCLR
I see, then it makes sense to live in dotnet/runtime. Thanks for clarifying.
@agocke @jkotas After https://github.com/dotnet/runtime/pull/35038, is this complete (can be closed)?
Yes, this can be closed. I have verified that the package is produced by the official build.
Most helpful comment
Another use case is verifying custom generated DLLs as a debugging aid. Invalid IL can be hard to detect and diagnose from just execution alone.