Skip to content

v2.0.0-beta193

Choose a tag to compare

@pachanga pachanga released this 29 Nov 16:20
· 685 commits to master since this release

Warning: this release breaks BC with previous beta releases

Improvements

  • Adding initial support for blobs: now it's possible to copy an unmanaged C# struct into a byte array stored in Val using new Val.SetBlob< T >(..)/GetBlob< T > (..) API. This makes it possible to get rid of extra boxing when storing C# structs in Val.
  • Removing allocating VM.Start(..) methods
  • Adding FiberOptions enum support for extra tweaking of the started fiber
  • Adding aggressive inlining hints for C# methods
  • Using faster C# unsafe decoding of the bytecode
  • Introducing optional bool argument: Fiber.Stop(.., bool with_children = false)
  • Getting rid of 'frame0' in Fiber
  • Optimizing frame exit routines
  • Cleaning up unclaimed Fiber's results upon its restart
  • Adding RefcList< T > convenience wrapper around List< T > with refcounting support which allows to pool lists
  • Pre-allocating defer blocks for Frame and SeqBlock
  • Getting rid of all code duplication related to execution of module's init code
  • Cleaning FixedStack< T >, starting to use C# return ref semantics
  • Improving compiler error handling and reporting

BC breaks

  • ProxyType now uses NamePath for path instead of just a string. NamePath contains a list of path items.

Bugfixes

  • Fixing Fiber double stop bug
  • Fixing stale frame reference bug when starting a fiber via FuncPtr