v2.0.0-beta193
·
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