mirror of
https://github.com/pezkuwichain/wasm-instrument.git
synced 2026-06-19 11:01:02 +00:00
a4dde28607
* fix misprints in doc comments * added global gas tracker variable and local gas fn * all exported functions of the module to accept a new param and to set the gas_left global to its value at their very start * make module support both gas metering methods * tests fixed for the old metering method * better naming * MutableGlobal metering method implemented, tests for the old method pass * gas_metering::tests updated and pass * all tests udpdated and pass * emacs backup files to .gitignore * docs updated * clippy fix * iff = if and only if * more clippy * docs misprints fixes * refactored to have Backend trait and two implementations in separate sub-modules * docs updated * fixed old benches (updating them is coming next) * added bench for an instrumented wasm-coremark * updated benches: added them for both gas_metering instrumentations * benches contest first ver * added debug prints to the bench * refactored to better fit frontend-backend pattern * docs update * updated benches * design updated on feedback * re-structured sub-modules re-structured sub-modules & updated docs * docs improved * addressed latest feedback comments * re-writed the local gas function * coremark benches show ~20% performance improvement * fix ci: test + clippy * save before re-factoring prepare_in_wasm() * bare_call_16 shows 16% worse perf * + fibonacci recursive bench * refactored benchmarks * + factorial recursive bench * benches on wasmi fixtures show no perf improvement, coremark runs ~20% faster being instrumented with mutable_global gas metering * charge gas for local gas func isntructions execution * replaced benchmark which requires multi_value feature * save: optimized gas func a bit (benches work, fixture tests fail) * 1033% overhead on many_blocks.wasm when mut_global gas_metering together with stack_height * size overhead test for both gas metering methods + stack limiter * added more benches * improved print_size_overhead test * test for comparing size overheads of two gas_metering injectors * before optimization: benches + size overhead * optimization try-1: inline part of gas func instructions: +benches +size overheads * optimization try-2: inline hot path of gas fn: +benches +size overheads * opt try-3: count for gas fn cost on the caller side: +benches +size overhead * revert to initial version but with static gas fn cost on the caller side: +benches +sizes * tests fixed * use newest wasmi 0.20: +benches +docs updated * use if-else block instead of Return: +benches * fix tests * clippy fix * addressed review comments * Update changelog Co-authored-by: Alexander Theißen <alex.theissen@me.com>
52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
The semantic versioning guarantees cover the interface to the substrate runtime which
|
|
includes this pallet as a dependency. This module will also add storage migrations whenever
|
|
changes require it. Stability with regard to offchain tooling is explicitly excluded from
|
|
this guarantee: For example adding a new field to an in-storage data structure will require
|
|
changes to frontends to properly display it. However, those changes will still be regarded
|
|
as a minor version bump.
|
|
|
|
The interface provided to smart contracts will adhere to semver with one exception: Even
|
|
major version bumps will be backwards compatible with regard to already deployed contracts.
|
|
In other words: Upgrading this pallet will not break pre-existing contracts.
|
|
|
|
## [Unreleased]
|
|
|
|
### New
|
|
|
|
- Add new gas metering method: mutable global + local gas function
|
|
[#34](https://github.com/paritytech/wasm-instrument/pull/34)
|
|
|
|
## [v0.3.0]
|
|
|
|
### Changed
|
|
|
|
- Use 64bit arithmetic for per-block gas counter
|
|
[#30](https://github.com/paritytech/wasm-instrument/pull/30)
|
|
|
|
## [v0.2.0] 2022-06-06
|
|
|
|
### Changed
|
|
|
|
- Adjust debug information (if already parsed) when injecting gas metering
|
|
[#16](https://github.com/paritytech/wasm-instrument/pull/16)
|
|
|
|
## [v0.1.1] 2022-01-18
|
|
|
|
### Fixed
|
|
|
|
- Stack metering disregarded the activiation frame.
|
|
[#2](https://github.com/paritytech/wasm-instrument/pull/2)
|
|
|
|
## [v0.1.0] 2022-01-11
|
|
|
|
### Changed
|
|
|
|
- Created from [pwasm-utils](https://github.com/paritytech/wasm-utils) by removing unused code and cleaning up docs.
|