Skip to content

6.0.0-beta.5

Pre-release
Pre-release

Choose a tag to compare

@Washi1337 Washi1337 released this 24 Nov 16:34
· 143 commits to master since this release
124e161

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 FastCilReassembler for allocationless patching of CIL method bodies (#672)
  • Add TypeAttributes::ExtendedLayout and TypeDefinition::IsExtendedLayout to reflect .NET 10 runtime changes to struct layout (dcc9162)
  • Add MethodImplAttributes.Async and MethodDefinition::IsRuntimeAsync to 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 SerializedCilMethodBody that avoids unnecessarily fully decoding a method body where possible (#672)
  • Add allocation-less HasX properties, reducing memory footprint of roundtripping assemblies (#680)
  • Add BlobStreamBuffer::GetBlobIndex for .NET 9+ targets (#680).
  • Mark name parameter for FieldDefinition constructor nullable (#673, thanks @ds5678)
  • Replace constructors of ExportedType to take in Utf8String instead of string (#675, thanks @Sergio0694)
  • Remove redundant ModuleDefinition constructors taking in string (#674, thanks @ds5678)
  • Add missing EventAttributes.None (#676, thanks @Sergio0694)
  • Let GetOrCreateParameterDefinition insert 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 ExpandMacros and OptimizeMacros would fail on some macro expanded instructions including ldc.i4 and ldarg (#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)