6.0.0-beta.5
Pre-release
Pre-release
·
143 commits
to master
since this release
Version 6.0.0-beta.5 is mostly a performance upgrade that also comes with a few improvements to make AsmResolver .NET 10-ready, as well as a couple of bug fixes.
Full changelog below:
New Features
- Add
FastCilReassemblerfor allocationless patching of CIL method bodies (#672) - Add
TypeAttributes::ExtendedLayoutandTypeDefinition::IsExtendedLayoutto reflect .NET 10 runtime changes to struct layout (dcc9162) - Add
MethodImplAttributes.AsyncandMethodDefinition::IsRuntimeAsyncto reflect .NET 10 runtime changes on async methods (#687, thanks @Windows10CE) - Add automatic importing of external type/field/method definitions (#689, thanks @Windows10CE)
- Add .NET 10 build targets (8e11fef)
Improvements
- Improve the internal mechanisms for lazy-initialization using source generated lazy properties, significantly reducing the number of allocations across the entire library (#683)
- Add lazy initialized
SerializedCilMethodBodythat avoids unnecessarily fully decoding a method body where possible (#672) - Add allocation-less
HasXproperties, reducing memory footprint of roundtripping assemblies (#680) - Add
BlobStreamBuffer::GetBlobIndexfor .NET 9+ targets (#680). - Mark name parameter for
FieldDefinitionconstructor nullable (#673, thanks @ds5678) - Replace constructors of
ExportedTypeto take inUtf8Stringinstead ofstring(#675, thanks @Sergio0694) - Remove redundant
ModuleDefinitionconstructors taking instring(#674, thanks @ds5678) - Add missing
EventAttributes.None(#676, thanks @Sergio0694) - Let
GetOrCreateParameterDefinitioninsert newly generated parameter definitions at the index implied by its sequence (#677, thanks @ds5678) - Add legacy runtime infos .NETCore and .NETPortable (#682, #684, thanks @ds5678)
Bug Fixes
- Fix an issue where type signatures were not always resolved correctly (f8ee34b)
- Fix a regression where
ExpandMacrosandOptimizeMacroswould fail on some macro expanded instructions includingldc.i4andldarg(#678, #679, thanks @Windows10CE) - Fix an issue where some type references with an assembly self-reference scope would re-resolve the assembly definition and thus not return the same type definition instance (8172ad5)