-
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
Add DNMD into src/native #107961
base: main
Are you sure you want to change the base?
Add DNMD into src/native #107961
Commits on Oct 24, 2022
-
Static lib for reading ECMA-335 metadata Confirmed works against all .NET 6.0 BCL assemblies.
Configuration menu - View commit details
-
Copy full SHA for 4f1bc36 - Browse repository at this point
Copy the full SHA 4f1bc36View commit details -
Configuration menu - View commit details
-
Copy full SHA for fdb4920 - Browse repository at this point
Copy the full SHA fdb4920View commit details -
Configuration menu - View commit details
-
Copy full SHA for aaa8aac - Browse repository at this point
Copy the full SHA aaa8aacView commit details
Commits on Oct 26, 2022
-
Create table/column index enum
Add a debugging process for validating using the correct enumeration when using an enumeration column index.
Configuration menu - View commit details
-
Copy full SHA for 428b569 - Browse repository at this point
Copy the full SHA 428b569View commit details -
Portable PDB support can be enabled by building with the DNMD_PORTABLE_PDB define.
Configuration menu - View commit details
-
Copy full SHA for 157318e - Browse repository at this point
Copy the full SHA 157318eView commit details
Commits on Oct 27, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 39670eb - Browse repository at this point
Copy the full SHA 39670ebView commit details
Commits on Oct 28, 2022
-
Still fails to compile on non-WIndows due to missing PE image data structures.
Configuration menu - View commit details
-
Copy full SHA for fe7a626 - Browse repository at this point
Copy the full SHA fe7a626View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7c2f48a - Browse repository at this point
Copy the full SHA 7c2f48aView commit details -
Udate public API and remove CorTokenType
Configuration menu - View commit details
-
Copy full SHA for 87cfbbe - Browse repository at this point
Copy the full SHA 87cfbbeView commit details
Commits on Oct 29, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 23382a8 - Browse repository at this point
Copy the full SHA 23382a8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 097796f - Browse repository at this point
Copy the full SHA 097796fView commit details
Commits on Oct 30, 2022
-
Configuration menu - View commit details
-
Copy full SHA for eeb50cb - Browse repository at this point
Copy the full SHA eeb50cbView commit details -
Start implementation for interfaces
Builds with no obvious regressions in the mddump scenario.
Configuration menu - View commit details
-
Copy full SHA for f5b058a - Browse repository at this point
Copy the full SHA f5b058aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8a1a4d2 - Browse repository at this point
Copy the full SHA 8a1a4d2View commit details
Commits on Oct 31, 2022
-
Configuration menu - View commit details
-
Copy full SHA for d1abd88 - Browse repository at this point
Copy the full SHA d1abd88View commit details -
Configuration menu - View commit details
-
Copy full SHA for 302aaf1 - Browse repository at this point
Copy the full SHA 302aaf1View commit details -
Create CoTaskMemAlloc and malloc smart pointers
Implemented minimal IMetaDataDispenser
Configuration menu - View commit details
-
Copy full SHA for c11b1fd - Browse repository at this point
Copy the full SHA c11b1fdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 10fe9f2 - Browse repository at this point
Copy the full SHA 10fe9f2View commit details
Commits on Nov 1, 2022
-
Add find logic for sorted tables in dnmd
Testing for several methods on IMetaDataImport
Configuration menu - View commit details
-
Copy full SHA for 6647a1f - Browse repository at this point
Copy the full SHA 6647a1fView commit details
Commits on Nov 2, 2022
-
Add impl and test for EnumMembers
Add test for ResetEnum Update HCORENUM implementation to be a singly linked list to reduce allocations. Remove md_row_distance()
Configuration menu - View commit details
-
Copy full SHA for ec235b3 - Browse repository at this point
Copy the full SHA ec235b3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 44f7f5a - Browse repository at this point
Copy the full SHA 44f7f5aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8e6ad50 - Browse repository at this point
Copy the full SHA 8e6ad50View commit details
Commits on Nov 3, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 5f1848e - Browse repository at this point
Copy the full SHA 5f1848eView commit details
Commits on Nov 5, 2022
-
Change low level UserStrings API Add walk UserStrings heap API
Configuration menu - View commit details
-
Copy full SHA for 018cf61 - Browse repository at this point
Copy the full SHA 018cf61View commit details
Commits on Nov 7, 2022
-
Configuration menu - View commit details
-
Copy full SHA for a5ee998 - Browse repository at this point
Copy the full SHA a5ee998View commit details -
Configuration menu - View commit details
-
Copy full SHA for 78b76ea - Browse repository at this point
Copy the full SHA 78b76eaView commit details -
Configuration menu - View commit details
-
Copy full SHA for f3f5167 - Browse repository at this point
Copy the full SHA f3f5167View commit details -
Configuration menu - View commit details
-
Copy full SHA for bad5bf6 - Browse repository at this point
Copy the full SHA bad5bf6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8f7c0de - Browse repository at this point
Copy the full SHA 8f7c0deView commit details
Commits on Nov 10, 2022
-
Use "userstring" instead of "wchar" for APIs. New API for reverse mapping from range to root in mapping table.
Configuration menu - View commit details
-
Copy full SHA for aa1db66 - Browse repository at this point
Copy the full SHA aa1db66View commit details
Commits on Nov 11, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 87a7d06 - Browse repository at this point
Copy the full SHA 87a7d06View commit details
Commits on Nov 12, 2022
-
Configuration menu - View commit details
-
Copy full SHA for d30ea61 - Browse repository at this point
Copy the full SHA d30ea61View commit details -
Configuration menu - View commit details
-
Copy full SHA for adf15ae - Browse repository at this point
Copy the full SHA adf15aeView commit details -
Add project to compare perf and profile
Always generate symbols
Configuration menu - View commit details
-
Copy full SHA for 42b0503 - Browse repository at this point
Copy the full SHA 42b0503View commit details -
Configuration menu - View commit details
-
Copy full SHA for f8de5cb - Browse repository at this point
Copy the full SHA f8de5cbView commit details
Commits on Nov 13, 2022
-
Extract HCORENUM into its down unit Add dynamic array enumerator.
Configuration menu - View commit details
-
Copy full SHA for 9409fa0 - Browse repository at this point
Copy the full SHA 9409fa0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5f4ae38 - Browse repository at this point
Copy the full SHA 5f4ae38View commit details -
Configuration menu - View commit details
-
Copy full SHA for 52a6df0 - Browse repository at this point
Copy the full SHA 52a6df0View commit details
Commits on Nov 14, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 3ba53ee - Browse repository at this point
Copy the full SHA 3ba53eeView commit details
Commits on Nov 19, 2022
-
Create simple PAL for Utf16ToUtf8 transcoding. - Only supported on Windows presently. Add build notes in readme.md
Configuration menu - View commit details
-
Copy full SHA for 6d9ac81 - Browse repository at this point
Copy the full SHA 6d9ac81View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7452733 - Browse repository at this point
Copy the full SHA 7452733View commit details -
Configuration menu - View commit details
-
Copy full SHA for a16f8f7 - Browse repository at this point
Copy the full SHA a16f8f7View commit details
Commits on Nov 20, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 31682c8 - Browse repository at this point
Copy the full SHA 31682c8View commit details -
EnumMethodSemantics Bug create_query_context to compute end row properly. Reset the data to read in query context.
Configuration menu - View commit details
-
Copy full SHA for e7873a9 - Browse repository at this point
Copy the full SHA e7873a9View commit details -
Configuration menu - View commit details
-
Copy full SHA for f1aa57b - Browse repository at this point
Copy the full SHA f1aa57bView commit details -
GetMemberRefProps Add a test that only runs on the corlibs. This is helpful for APIs that expensive to call.
Configuration menu - View commit details
-
Copy full SHA for 4724df7 - Browse repository at this point
Copy the full SHA 4724df7View commit details
Commits on Nov 21, 2022
-
Reduced static allocation substantially for MD load.
Configuration menu - View commit details
-
Copy full SHA for 781a76d - Browse repository at this point
Copy the full SHA 781a76dView commit details -
Improve performance test for expansion
Remove unnecessary checks in dnmd APIs Add GetScopeProps perf scenario Attempt to transcode immediately instead of querying for expected length first.
Configuration menu - View commit details
-
Copy full SHA for 0d7f55b - Browse repository at this point
Copy the full SHA 0d7f55bView commit details
Commits on Nov 22, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 529eba3 - Browse repository at this point
Copy the full SHA 529eba3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 50a3d5a - Browse repository at this point
Copy the full SHA 50a3d5aView commit details -
Configuration menu - View commit details
-
Copy full SHA for f33b003 - Browse repository at this point
Copy the full SHA f33b003View commit details
Commits on Nov 23, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 5a5e25a - Browse repository at this point
Copy the full SHA 5a5e25aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3feefdb - Browse repository at this point
Copy the full SHA 3feefdbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 97b4216 - Browse repository at this point
Copy the full SHA 97b4216View commit details -
Configuration menu - View commit details
-
Copy full SHA for 88a5c5b - Browse repository at this point
Copy the full SHA 88a5c5bView commit details
Commits on Nov 24, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 151e41c - Browse repository at this point
Copy the full SHA 151e41cView commit details -
Configuration menu - View commit details
-
Copy full SHA for dac337a - Browse repository at this point
Copy the full SHA dac337aView commit details
Commits on Nov 25, 2022
-
Change HCORENUM impl to avoid looping to find the place to add new entry. Add EnumUserStrings perf scenario
Configuration menu - View commit details
-
Copy full SHA for 6018085 - Browse repository at this point
Copy the full SHA 6018085View commit details -
Configuration menu - View commit details
-
Copy full SHA for d376c51 - Browse repository at this point
Copy the full SHA d376c51View commit details
Commits on Nov 29, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 90687aa - Browse repository at this point
Copy the full SHA 90687aaView commit details
Commits on Nov 30, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 1a59d14 - Browse repository at this point
Copy the full SHA 1a59d14View commit details
Commits on Dec 1, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 75da83d - Browse repository at this point
Copy the full SHA 75da83dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2bd11ed - Browse repository at this point
Copy the full SHA 2bd11edView commit details
Commits on Dec 3, 2022
-
GetCustomAttributeByName benchmark
Performance of baseline was initially better. Remove branches and simplified functions that didn't need to construct new complex data structures so early.
Configuration menu - View commit details
-
Copy full SHA for 062e09e - Browse repository at this point
Copy the full SHA 062e09eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2a50e58 - Browse repository at this point
Copy the full SHA 2a50e58View commit details -
Configuration menu - View commit details
-
Copy full SHA for 77dd2c1 - Browse repository at this point
Copy the full SHA 77dd2c1View commit details
Commits on Dec 6, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 493c97b - Browse repository at this point
Copy the full SHA 493c97bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 57f409a - Browse repository at this point
Copy the full SHA 57f409aView commit details
Commits on Dec 11, 2022
-
Add IL project for testing Add global.json for IL SDK
Configuration menu - View commit details
-
Copy full SHA for c439fd4 - Browse repository at this point
Copy the full SHA c439fd4View commit details
Commits on Jan 10, 2023
-
Update test projects to reference native output bin Fix /W4 build for MSVC
Configuration menu - View commit details
-
Copy full SHA for 88fc3b6 - Browse repository at this point
Copy the full SHA 88fc3b6View commit details
Commits on Jan 11, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4b34fcb - Browse repository at this point
Copy the full SHA 4b34fcbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8bf3db2 - Browse repository at this point
Copy the full SHA 8bf3db2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 986c037 - Browse repository at this point
Copy the full SHA 986c037View commit details -
Configuration menu - View commit details
-
Copy full SHA for 26d2a56 - Browse repository at this point
Copy the full SHA 26d2a56View commit details -
Configuration menu - View commit details
-
Copy full SHA for e601dfe - Browse repository at this point
Copy the full SHA e601dfeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9ef3e53 - Browse repository at this point
Copy the full SHA 9ef3e53View commit details
Commits on Jan 13, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f99db3e - Browse repository at this point
Copy the full SHA f99db3eView commit details
Commits on Jan 14, 2023
-
Configuration menu - View commit details
-
Copy full SHA for e72083f - Browse repository at this point
Copy the full SHA e72083fView commit details
Commits on Jan 17, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 23b1439 - Browse repository at this point
Copy the full SHA 23b1439View commit details -
Configuration menu - View commit details
-
Copy full SHA for 58de7bd - Browse repository at this point
Copy the full SHA 58de7bdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a51885 - Browse repository at this point
Copy the full SHA 1a51885View commit details -
Update managed tests to only use IMetaDataImport2 as there's no tests…
… where we just need IMetaDataImport
Configuration menu - View commit details
-
Copy full SHA for cc6f85d - Browse repository at this point
Copy the full SHA cc6f85dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0f6b30b - Browse repository at this point
Copy the full SHA 0f6b30bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 403fdbb - Browse repository at this point
Copy the full SHA 403fdbbView commit details
Commits on Jan 19, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 5d02e18 - Browse repository at this point
Copy the full SHA 5d02e18View commit details
Commits on Jan 20, 2023
-
Fix some incorrect API usage with assuming 0 means invalid.
Configuration menu - View commit details
-
Copy full SHA for 31238a3 - Browse repository at this point
Copy the full SHA 31238a3View commit details
Commits on Jan 21, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 708d722 - Browse repository at this point
Copy the full SHA 708d722View commit details
Commits on Jan 23, 2023
-
Add predicate to query functions to avoid
loop if out_loop is 1. Mark coded_index_map as static
Configuration menu - View commit details
-
Copy full SHA for 2b59b3a - Browse repository at this point
Copy the full SHA 2b59b3aView commit details
Commits on Jan 27, 2023
-
Move regperf to a regnative location for shared
native test assets.
Configuration menu - View commit details
-
Copy full SHA for e55983d - Browse repository at this point
Copy the full SHA e55983dView commit details
Commits on Jan 29, 2023
-
Add DNCP submodule Remove built-in COM interop .NET APIs.
Configuration menu - View commit details
-
Copy full SHA for d45df75 - Browse repository at this point
Copy the full SHA d45df75View commit details
Commits on Jan 30, 2023
-
Configuration menu - View commit details
-
Copy full SHA for b1ce758 - Browse repository at this point
Copy the full SHA b1ce758View commit details -
Configuration menu - View commit details
-
Copy full SHA for 291738f - Browse repository at this point
Copy the full SHA 291738fView commit details
Commits on Feb 1, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 23f0afe - Browse repository at this point
Copy the full SHA 23f0afeView commit details -
Linux builds if utf16 <=> utf8 conversion
functions are implemented.
Configuration menu - View commit details
-
Copy full SHA for 1d85e15 - Browse repository at this point
Copy the full SHA 1d85e15View commit details -
Configuration menu - View commit details
-
Copy full SHA for 875b951 - Browse repository at this point
Copy the full SHA 875b951View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9bc8775 - Browse repository at this point
Copy the full SHA 9bc8775View commit details -
Add main CI job that builds, tests, and reports test failures as anot…
…her check entry.
Configuration menu - View commit details
-
Copy full SHA for c168abc - Browse repository at this point
Copy the full SHA c168abcView commit details
Commits on Feb 2, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 3fe4779 - Browse repository at this point
Copy the full SHA 3fe4779View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9e62fd3 - Browse repository at this point
Copy the full SHA 9e62fd3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5452f9f - Browse repository at this point
Copy the full SHA 5452f9fView commit details
Commits on Feb 3, 2023
-
Set some loader and build settings to make the macos build work better.
Jeremy authored and Jeremy committedFeb 3, 2023 Configuration menu - View commit details
-
Copy full SHA for cfc7aed - Browse repository at this point
Copy the full SHA cfc7aedView commit details
Commits on Feb 11, 2023
-
Don't to IPO on debug builds. Clang's ThinLTO in dynamic libraries cr…
…eates a temp object file that breaks debug symbols
Jeremy authored and Jeremy committedFeb 11, 2023 Configuration menu - View commit details
-
Copy full SHA for 58ba75f - Browse repository at this point
Copy the full SHA 58ba75fView commit details -
Null terminate buffers passed to the encoding conversion functions
Jeremy authored and Jeremy committedFeb 11, 2023 Configuration menu - View commit details
-
Copy full SHA for ddd13a2 - Browse repository at this point
Copy the full SHA ddd13a2View commit details -
Set the right upload path for test results.
Jeremy authored and Jeremy committedFeb 11, 2023 Configuration menu - View commit details
-
Copy full SHA for 6d50918 - Browse repository at this point
Copy the full SHA 6d50918View commit details -
Jeremy authored and Jeremy committed
Feb 11, 2023 Configuration menu - View commit details
-
Copy full SHA for 9368501 - Browse repository at this point
Copy the full SHA 9368501View commit details -
Configuration menu - View commit details
-
Copy full SHA for fdd4279 - Browse repository at this point
Copy the full SHA fdd4279View commit details -
Merge pull request dotnet#15 from jkoritzinsky/fix-mac-build
Set some loader and build settings to make the macos build work better.
Configuration menu - View commit details
-
Copy full SHA for 7f23e99 - Browse repository at this point
Copy the full SHA 7f23e99View commit details -
Compare baseline results to current results by value instead of by po…
…inter for byte blobs (dotnet#14) * Compare baseline results to current results by value instead of by pointer for byte blobs. This will allow us to still use this same baseline/current testing methodology for our emit tests, where the baseline implementations move the data around on creation if they're in edit mode. * Use static array instead of vector when appropriate Co-authored-by: Aaron Robinson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for f56d6b3 - Browse repository at this point
Copy the full SHA f56d6b3View commit details
Commits on Feb 12, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 0f6cd39 - Browse repository at this point
Copy the full SHA 0f6cd39View commit details
Commits on Feb 23, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 1e874d8 - Browse repository at this point
Copy the full SHA 1e874d8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 669b5ed - Browse repository at this point
Copy the full SHA 669b5edView commit details
Commits on Feb 27, 2023
-
* Create LICENSE.md * Update readme * Ignore all changes to markdown files
Configuration menu - View commit details
-
Copy full SHA for 5e86175 - Browse repository at this point
Copy the full SHA 5e86175View commit details
Commits on Feb 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 4bb22b4 - Browse repository at this point
Copy the full SHA 4bb22b4View commit details
Commits on Mar 29, 2023
-
Add support for the uncompressed stream, indirection tables, and mini…
…mal delta images (dotnet#22) * Add support for reading in the not-in-the-spec uncompressed table stream and recognize a minimal delta image to enable reading it in correctly. * Support recognizing which fields may refer to indirect table indicies. * Define indirect pointer column names * Implement handling of indirect tables at the IMetadataImport layer, with one small helper function in DNMD to handle determining if a column in a table is indirect and which column to use to resolve the actual target. * Produce an EnC diff with Roslyn APIs directly so we can test the delta tables and still have a good in-VS test running experience. * Make the delta image builder instantiated lazily to fix macos build. * Move composite image creation to native and fix some bugs that our tests caught. * Add IIDs for IMetaDataEmit and IMetaDataEmit2 * Add options guid. * Explicitly use portable pdbs so the EnC emit doesn't fail on non-Windows platforms * Trim excess null terminators from the strings heap. This is done by both Mono and CoreCLR and is required for EnC minimal diffs to apply correctly when the padding is present.
Configuration menu - View commit details
-
Copy full SHA for 5506a36 - Browse repository at this point
Copy the full SHA 5506a36View commit details
Commits on Mar 31, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 901a319 - Browse repository at this point
Copy the full SHA 901a319View commit details -
Fixes based on fuzzing with afl++ (dotnet#25)
* Check metadata offset in PE Check supported image types * Add missing PE defines * Handle PE section headers
Configuration menu - View commit details
-
Copy full SHA for f805a5d - Browse repository at this point
Copy the full SHA f805a5dView commit details
Commits on Jun 22, 2023
-
Update build infrastructure to install as a modern CMake package (dot…
…net#26) This PR updates the build of DNMD in a few ways: - Export the dnmd targets as package components. - Ensure that dncp is consumed through its exported interface in all targets - Consume icu through CMake modules instead of direct linking - Update dnmd.h to be buildable without including any other headers (useful for prototyping using dnmd in Mono) - Add a dependency on dncp from dnmd itself to complete the above.
Configuration menu - View commit details
-
Copy full SHA for 068261a - Browse repository at this point
Copy the full SHA 068261aView commit details
Commits on Jul 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 58f314e - Browse repository at this point
Copy the full SHA 58f314eView commit details -
Explicitly validate that the user is asking for a sorted column when …
…searching on a sorted table (dotnet#28)
Configuration menu - View commit details
-
Copy full SHA for 3a2da4d - Browse repository at this point
Copy the full SHA 3a2da4dView commit details
Commits on Jul 30, 2023
-
Change the interfaces library to use a tear-off model to make adding …
…additional interfaces based on the parameters passed to the dispenser easier (dotnet#29)
Configuration menu - View commit details
-
Copy full SHA for b2f9b79 - Browse repository at this point
Copy the full SHA b2f9b79View commit details
Commits on Aug 11, 2023
-
Use macros to templatize search functions (dotnet#31)
* Use macros to templatize search functions * Update macro definition * Review feedback
Configuration menu - View commit details
-
Copy full SHA for 7a060b7 - Browse repository at this point
Copy the full SHA 7a060b7View commit details
Commits on Aug 14, 2023
-
Add a writing API and implement the md_apply_delta API in terms of it (…
…dotnet#30) * Create basic entrypoint API for creating a read-write handle on an existing metadata image. * Split up headers and make sure dnmd.h can build if it is included as the first #include. * Add in support for tear-offs and centralize refcounting in a base "controlling IUnknown" type to avoid having to have both ref-counting rules (composed and otherwise) in the same object. * Provide tear-off for emit * Move IUnknown implementation to be provided by a template base type instead of by a macro. * Fix build with new headers * Fix some simple refcounting errors and typos found with some basic smoke testing. * Make dnmd.h not have any dependencies on any other headers being implicitly included before it is included. * Ensure we fully clean-up all allocations by the editor when destroying the handle. * Implement proof-of-concept API for creating an indirection table to validate basic flow of the editor API design. * Implement some basic writing logic and fix query context creation to allocate memory if a writable query is created over a currently-readonly table in an editable context. * Update based on rebase. * Finish implementing table resizing. * Add include lost in rebase * Don't include dncp in dnmd.hpp. DNMD should not depend on dncp at all. * Add set APIs for heap columns * Use create_cursor directly for less overhead. * Add row insertion and creation of indirection tables. * Add support for creating new tables in the append method if a table does not exist initially. * Add internal API for copying heaps over from another image. Logic ported from the mddump_delta_support branch in the main repo. * Remove fixed TODO and add an assert (this was fixed in the caller) * Fix calculating the writable data address. * Add table sorting validation checks Validate that calls to md_find_range_from_cursor only try to find a range for the primary key column. Calling md_find_range_from_cursor with a non-primary-key on a sorted table causes inconsistent behavior. Validate that a sorted table is still sorted when key columns are written to. This design imposes a requirement on the user to write the columns for a new row in order of the sorting keys, but it also enables the user to not have to consider if the table is sorted (and more importantly, we don't need to expose that concept to the user). * Remove completed TODOs * Fix build breaks * Refactor check for sorted blob columns * Handle edge cases for heaps (no heap and too large a heap) * Start putting real method bodies into the IMetaDataEmit API. * Add string splitting and add more emit apis * Make mdhandle_t images always editable, lazily mark as edited. Refactor editor and delta APIs to have a better split. * Fix build failures in emit * Implement a few more emit APIs. * Fix comparison * More APIs and fix build * Hide some struct definitions in source files instead of headers. Make the editor object lazily initialized and make "editor != NULL" the mark for "is this image edited". * Style cleanup. * First pass implementing delta application API. * Various fixes to get minimal test passing * Various fixes * Fix Linux build and fix one place where I missed a malloc call. * Make sure we always initialize list columns, even in the "add a child element" case. Re-create the query context when we're validating sort order. * Fix setting up the indirection table (and pointing the parent table to it) Add some comments about future required work around handling already-created indirection tables. * Fix bugs relating to maintaining the indirection tables and shifting row references. We now correctly apply deltas that require us to introduce and update indirection tables. As a result, our delta application is fully-featured (to my knowledge). * Add comment about adding to the composite enc log * Modify table allocation and heap resizing to ensure that flags and table layouts in memory are consistent with how they'd be represented on disk (simplifies saving). * Add validation of Enc edit chains. * Fix creating the indirection table now that we size it correctly based on the actual target table size. Also, move insert_row_into_table to use a 1-based row index. It was the only place using a 0-based index, which was really confusing. * Remove some unnecessary casts and add some casts to ensure that we widen before doing a possibly-overflowing operation. * Remove changes in dnmd_interfaces. We'll make those changes in a follow-up PR * Add some comments and move one API to be internal * Clean up handling the high bit. * Move the query context out to its own file and rename to "access" context as it now also has write support. Move the writing functions out of query.c and in to write.c * Fix appending for guid heap * Refactor APIs that were used to implement delta application to be more self-contained in the API surface now that we can reach into cursors more easily. * Disable binary search lookups when a row-add operation is in progress. Reimplement sorting validation with cursors instead of query access contexts. It's significantly cleaner and easier to understand. * Move list column initialization into the public row-add API. Now all columns will be initialized to traversable/readable values after all row-add calls. * Don't validate sorting on column write when we're adding a row. Instead only validate at the end of the row-add operation. * Rewrite how we add rows to tables so that we have a few simple operations that only do basic work like allocating, shifting, initializing, updating references (append, add before, add after) and one complex operation (add element to list) that handles the crazy logic with indirection tables. With this design, it is not possible to insert rows into a table in such a way to break layout of the table and tables that need special handling only work with the special handling functions (and ones that don't are blocked from the special handling functions). * Fix adding an item to a list in the following cases: - The list is not the first empty list in a set of lists - The list is not the only empty list at the end of the table. * Ensure that the lists in the Param table are always sorted by their Sequence column. * PR feedback. * Fix Windows Release build failures. * Clang/GCC warn (which we turn into error) for unused functions. static functions are included in this warning, but "inline" functions are not. * Explicitly ignore composed value in release builds. * Add missing const * Change back to static and just suppress the warning * Apply suggestions from code review Co-authored-by: Aaron Robinson <[email protected]> * More error checks. * Add a qsort_s implementation adapted from CoreCLR's utilcode and use it to sort the parameter list. We'll conditionally use our implementation when an implementation does not exist on the platform. * Change signature of compare callback. * MSVC's qsort_s is just ever so slightly incompatible with the standard definition, so just hard-code the sort that we need instead of fighting it and adding a ton of CMake goo. * Revert changes to configure.cmake * Change the quicksort out for a simple insertion-sort-like algorithm as we're likely do already be in order for most items. * Build * Apply suggestions from code review Co-authored-by: Aaron Robinson <[email protected]> --------- Co-authored-by: Aaron Robinson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for de389c3 - Browse repository at this point
Copy the full SHA de389c3View commit details
Commits on Aug 15, 2023
-
Configuration menu - View commit details
-
Copy full SHA for c813324 - Browse repository at this point
Copy the full SHA c813324View commit details
Commits on Aug 16, 2023
-
Create API for accessing raw column data. (dotnet#34)
* Create API for accessing raw column data. The API is not written in a performant manner. Co-authored-by: Jeremy Koritzinsky <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c8ba731 - Browse repository at this point
Copy the full SHA c8ba731View commit details
Commits on Aug 24, 2023
-
Implement save APIs and provide an mdmerge tool that composes an imag…
…e from deltas and writes it to disk instead of dumping to console. (dotnet#35) Co-authored-by: Aaron Robinson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c09468c - Browse repository at this point
Copy the full SHA c09468cView commit details
Commits on Aug 30, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 5b7bd51 - Browse repository at this point
Copy the full SHA 5b7bd51View commit details
Commits on Sep 2, 2023
-
Introduce a marker interface and move ownership to it (dotnet#39)
Co-authored-by: Aaron Robinson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3f2ad67 - Browse repository at this point
Copy the full SHA 3f2ad67View commit details
Commits on Sep 11, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 9538281 - Browse repository at this point
Copy the full SHA 9538281View commit details
Commits on Sep 13, 2023
-
Configuration menu - View commit details
-
Copy full SHA for ca08231 - Browse repository at this point
Copy the full SHA ca08231View commit details
Commits on Nov 28, 2023
-
Remove tool source duplication (dotnet#42)
* Remove tool source duplication * Various nits across codebase * Fix decompressing of signed u32 * Fix bug in md_parse_local_constant_sig().
Configuration menu - View commit details
-
Copy full SHA for 9982141 - Browse repository at this point
Copy the full SHA 9982141View commit details
Commits on Nov 29, 2023
-
Change the "data to write" parameters in
md_set_column_value_as_*
m……ethods to be const. (dotnet#43)
Configuration menu - View commit details
-
Copy full SHA for 334d8cb - Browse repository at this point
Copy the full SHA 334d8cbView commit details
Commits on Nov 30, 2023
-
Add a new md_add_new_row_to_sorted_list function to insert a row into…
… a list column's target table in the correctly sorted position so we do not need to re-sort later. (dotnet#44)
Configuration menu - View commit details
-
Copy full SHA for 31e70b8 - Browse repository at this point
Copy the full SHA 31e70b8View commit details
Commits on Dec 5, 2023
-
Move the "get MethodDefSig from a MethodRefSig" functionality into dn…
…md::interfaces (dotnet#45) Co-authored-by: Aaron Robinson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 454300f - Browse repository at this point
Copy the full SHA 454300fView commit details
Commits on Dec 6, 2023
-
Initial infrastructure for SymReader support (dotnet#46)
* Comment out non-standard pragmas. * Remove from anonymous namespace.
Configuration menu - View commit details
-
Copy full SHA for e457e73 - Browse repository at this point
Copy the full SHA e457e73View commit details -
* Update to .NET 8 * Disable test workflow
Configuration menu - View commit details
-
Copy full SHA for 63745b3 - Browse repository at this point
Copy the full SHA 63745b3View commit details
Commits on Jan 4, 2024
-
Fix the version length field when saving (dotnet#51)
We need to write the length of the aligned buffer, not the length of the version string. Discovered in icsharpcode/ILSpy#3068
Configuration menu - View commit details
-
Copy full SHA for 71939f2 - Browse repository at this point
Copy the full SHA 71939f2View commit details
Commits on Jan 10, 2024
-
Implement signature importing (dotnet#48)
* Bring over the partial implementation of TypeDef importing from the imetadataemit branch and make it a free function that operates on DNMD handles. * Add SHA1 pal implementation * Generate public key token from public key * Finish implementation of TypeDef importing * Sketch out ImportReferenceToTypeRef * Port over strong name token improvements from my CoreCLR branch. * Fix name shadowing * Implement more of TypeRef importing, with todos and comments for the remaining parts. * Finish TypeRef importing. * Implement the remainder of signature importing (TypeSpec and higher level signatures) * Fix qualified base member access * Fix PAL errors * Fix headers and use E_FAIL instead of E_UNEXPECTED (which isn't available in DNCP) * Fix typo caught by static analysis * Initialize variable to avoid a maybe-uninitialized warning that isn't accurate * Apply suggestions from code review Co-authored-by: Aaron Robinson <[email protected]> * Comment about initialization * Implement importing TypeRef to self as TypeDef * Correctly handle implicit ExportedType rows for types in the source Assembly referenced by a nil ResolutionScope in the source module. * Refactor adding AssemblyRef rows to always add to both the module and assembly (as the CoreCLR does) * Use non-deprecated oneshot SHA API on OpenSSL and use API with the same shape from CommonCrypto * Implement PR feedback * make md_added_row_t constructor explicit and add back removed comment --------- Co-authored-by: Aaron Robinson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 66ce795 - Browse repository at this point
Copy the full SHA 66ce795View commit details
Commits on Jan 18, 2024
-
Add DNMD API to create a new metadata handle and implement IMetaDataD…
…ispenser::DefineScope (dotnet#49) Co-authored-by: Aaron Robinson <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for e2e6276 - Browse repository at this point
Copy the full SHA e2e6276View commit details
Commits on Jan 26, 2024
-
Configuration menu - View commit details
-
Copy full SHA for af70b97 - Browse repository at this point
Copy the full SHA af70b97View commit details
Commits on Apr 10, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 9b986e1 - Browse repository at this point
Copy the full SHA 9b986e1View commit details
Commits on Jun 18, 2024
-
Provide single-threaded (no-locking) implementation of IMetadataEmit …
…family of APIs. (dotnet#52)
Configuration menu - View commit details
-
Copy full SHA for e592785 - Browse repository at this point
Copy the full SHA e592785View commit details
Commits on Jul 23, 2024
-
Configuration menu - View commit details
-
Copy full SHA for bccf406 - Browse repository at this point
Copy the full SHA bccf406View commit details
Commits on Oct 31, 2024
-
Configuration menu - View commit details
-
Copy full SHA for b4d7ca7 - Browse repository at this point
Copy the full SHA b4d7ca7View commit details -
Change the DNMD APIs to act on single rows and bring other
perf improvements from the CoreCLR + DNMD experiment to DNMD. (dotnet#55)
Configuration menu - View commit details
-
Copy full SHA for 9a97253 - Browse repository at this point
Copy the full SHA 9a97253View commit details -
Configuration menu - View commit details
-
Copy full SHA for 99a7991 - Browse repository at this point
Copy the full SHA 99a7991View commit details
Commits on Nov 1, 2024
-
Configuration menu - View commit details
-
Copy full SHA for a6d049e - Browse repository at this point
Copy the full SHA a6d049eView commit details
Commits on Nov 6, 2024
-
Integrate DNMD into the runtime repos build.
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.
Configuration menu - View commit details
-
Copy full SHA for 4167a4c - Browse repository at this point
Copy the full SHA 4167a4cView commit details -
Remove the implicit conversion from span<T> to T* and instead introdu…
…ce a .data() member, matching the C++20 design for span<T>
Configuration menu - View commit details
-
Copy full SHA for 6d99e39 - Browse repository at this point
Copy the full SHA 6d99e39View commit details