Skip to content

2026.07.10

Latest

Choose a tag to compare

@pmbanugo pmbanugo released this 10 Jul 17:15
· 8 commits to main since this release
6812731

What's new

  1. Zero copy socket I/O send/write 42b85ae
  2. Removed TinaContext as a type and reworked various functions that depended on it. 49855fe
  3. Isolate's timeout wakeup no longer depend on mailbox capacity 49855fe
  4. Boot validation for supervision group table capacity 1b2724e
  5. Make shard liveness broadcasts reliable e2bf14d
  6. Added compiler sanitizer (TSan, ASan, MSan) to the CI via compilation flags. Further added AddressSanitizer custom poison/unpoison hooks to that we catch logical lifetime issues. See this blog post for more info
  7. set Odin target to dev-2026-06
  8. http: improve capacity representation and carve computation

If you're interested in the fixes and refactors, see the commit changelog.

Commit Changelog: 2026.05.29...2026.07.10

Brief story about TinaContext, for my future self

TinaContext was something I spent time on paper on its design, it's supposed to prevent passing around internal framework data that shouldn't be modified by user code. It went from being passed as an opaque value or rawptr as parameter to Isolate handler function so that handler functions can use it to call procedures that depended on the data in it. I did two or three refactor around how it's represented in the previous releases, the one I hoped will be the last resulted in making it a u64 type with certain data encoded in it. That I hoped will be the last time touched it, at least for a while. I was wrong! I spent a week looking over it in June and decided I can change the shape and placement of various data, which meant that I can remove this concept from public API. What's left is renaming the functions who name are prefixed with ctx_*, because they were added to make me aware that those are functions that depend on TinaContext.

This fight with TinaContext and data hiding might be my OOP background fighting with a data-oriented programming style. It was a learning experience and I hope the current solution last a long time until the framework evolves to a point that this might need to be redesigned.