Add DNMD into src/native#107961
Open
jkoritzinsky wants to merge 148 commits intodotnet:mainfrom
Open
Conversation
Static lib for reading ECMA-335 metadata Confirmed works against all .NET 6.0 BCL assemblies.
Update dnmd.h for compiling in C++
Add a debugging process for validating using the correct enumeration when using an enumeration column index.
Portable PDB support can be enabled by building with the DNMD_PORTABLE_PDB define.
Still fails to compile on non-WIndows due to missing PE image data structures.
Udate public API and remove CorTokenType
operations.
Builds with no obvious regressions in the mddump scenario.
library for dnmd_interfaces
Implemented minimal IMetaDataDispenser
Testing for several methods on IMetaDataImport
Add test for ResetEnum Update HCORENUM implementation to be a singly linked list to reduce allocations. Remove md_row_distance()
Change low level UserStrings API Add walk UserStrings heap API
as override
Member
Author
|
Coming back to this: With some changes to DNMD, I was able to match (and seemingly beat) the performance of the current reader in CoreCLR in my local testing for read-only scenarios. |
am11
reviewed
Oct 12, 2024
perf improvements from the CoreCLR + DNMD experiment to DNMD. (dotnet#55)
4e3cd07 to
8aea82f
Compare
Member
Author
|
I re-written the history and cleaned up this PR to not add as many commits to the history and utilize already-merged work from various PRs (including the perf improvements added to DNMD from experimenting with CoreCLR). |
c03b575 to
32bf1b2
Compare
This was referenced Nov 1, 2024
15f5936 to
b698b77
Compare
b698b77 to
0c0f33b
Compare
Member
Author
|
/azp run runtime |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Convert testing harness to C++11. Convert DNMD PALs to use the minipal and the COM minipal. Integrate DNMD testing into the CLR_Tools_Tests job.
…ce a .data() member, matching the C++20 design for span<T>
0c0f33b to
6d99e39
Compare
This was referenced Nov 6, 2024
Member
|
What's the status of this? Additional works like refactoring ildasm can benefit from this. Is there any unresolved blocker? Or is it just low priority? |
Member
Author
|
I have too much other higher priority work to make time to get this in. Hopefully we'll get this in for early .NET 11. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add dnmd into the dotnet/runtime repo for usage by cDAC (and in the future, usage as the native ECMA-335 metadata library for the repo as a whole).
Depends on #107889, #108999