monad: v0.12.8
AI Summary
Monad v0.12.8 release includes protocol preparations for MONAD_NINE with MIP-3 linear memory pool implementation and reserve balance precompile scaffolding, alongside multiple robustness fixes and performance improvements to the execution layer.
# monad (execution) v0.12.8 Changelog
Tag: [v0.12.8](https://github.com/category-labs/monad/releases/tag/v0.12.8)
## Protocol Changes
## Prep for MONAD_NINE
### MIP-3: Linear Memory Pool
- Combine EVM memory regions into one transaction-wide memory region
- VM memory pool implementation
- Ref: `cc6f45669`, `c54fc3a73`, `5562f4f1c`
### Reserve Balance Precompile Scaffolding
- Reserve balance precompile scaffolding for MIP-4
- Ref: `aebac934b`
### Osaka Fork Preparation
- Activate Osaka in MONAD_NEXT
- Ref: `8f8564b8b`
## Robustness Fixes
- Fix expmod padding crash - `cbbd825b4`
- Avoid potential UB on empty precompile input - `48f6d8276`
- Don't recover high-s authorities - `c54fc3a73`
- statesync client: only copy state and code to current to avoid stale data - `5130f0e84`
- Move version erasure logic to write_new_root_node() - `0f6ed8e5f`
## Performance Improvements
- Undefer cold charge in storage - `3515ad320`
- Track stack offset to prevent store forwarding stalls - `5562f4f1c`
- Change `State::set_code` to reuse `Intercode` objects - `b1a2d06a3`
- Improve BYTE instruction performance - `e5005b1f7`, `40500e8d4`, `d9fe40661`
- Facility to lazily construct `SharedIntercode` - `9630d662d`
- Replace mult with shift in BYTE interpretation - `d9fe40661`
## Tracers
- Add test for prestate/statediff tracers on system transactions - `2431631c5`
- Add missing state tracer for system txns - `4bae41cda`
## Events / SDK
- Add snapshot support to eventwatch.c - `9dc87e58d`
- Add zstd snapshot utility functions - `a0d078b40`
- Refactor exclusive writer detection - `99e674c56`
- Add unit tests for event snapshot files - `6c73be142`
- Prepare libmonad_event for out-of-project builds - `b2165f135`
## Internal / Refactoring
- Refactor MonadChainContext & remove revert closure - `db66c77a4`
- Use [[gnu::cleanup]] instead of goto in events - `a0e39e136`
- Pull out state overrides - `03fb45873`
- Fix LLVM build following EVM memory changes - `f035992f2`
- Remove code and code_size from evmc_message - `27603cab3`
- MPT interface refactoring - `438fc2d14`, `3159f36cb`, `4e4539986`, `56ea0272a`
- Bump spec tests - `3e5a6c636`
- Remove thread_safe_lru - `2c506b32a`
## Build / Tooling
- monad_core will also link to zstd - `1149f0dbe`
- Skip tests in debug - `021d7d78f`
- .gitignore JetBrains IDE files in nested directories - `d22abd656`
- Support table formatting of microbenchmark results - `7b5b405b7`
- ethereum_test improvements - `8c5e039a9`
- Add store forwarding stall microbenchmark - `f7c60ac9d`
#Monad#Protocol Update#Performance#Development