Sasha Gryaznov
6a79d1d4b8
Charge gas for local variables on the callee side ( #38 )
...
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
v0.4.0
2022-11-26 16:37:31 +01:00
dependabot[bot]
b51701088e
Update wasmparser requirement from 0.94 to 0.95 ( #37 )
...
Updates the requirements on [wasmparser](https://github.com/bytecodealliance/wasm-tools ) to permit the latest version.
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/compare/wasmparser-0.94.0...wasmparser-0.95.0 )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-23 00:35:05 +01:00
Sasha Gryaznov
a4dde28607
Add new gas metering method: mutable global + local gas function ( #34 )
...
* 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 >
2022-11-20 15:00:10 +01:00
dependabot[bot]
90cb67d5d7
Update wasmparser requirement from 0.92 to 0.94 ( #36 )
...
* Update wasmparser requirement from 0.92 to 0.94
Updates the requirements on [wasmparser](https://github.com/bytecodealliance/wasm-tools ) to permit the latest version.
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/compare/wasmparser-0.92.0...wasmparser-0.94.0 )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
* Fix whitespace differences in tests
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
2022-11-10 09:35:58 +01:00
dependabot[bot]
4c1d47a618
Update wasmparser requirement from 0.90 to 0.92 ( #33 )
...
Updates the requirements on [wasmparser](https://github.com/bytecodealliance/wasm-tools ) to permit the latest version.
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/compare/wasmparser-0.90.0...wasmparser-0.92.0 )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 11:22:57 +02:00
dependabot[bot]
840af19d4b
Update criterion requirement from 0.3 to 0.4 ( #31 )
...
Updates the requirements on [criterion](https://github.com/bheisler/criterion.rs ) to permit the latest version.
- [Release notes](https://github.com/bheisler/criterion.rs/releases )
- [Changelog](https://github.com/bheisler/criterion.rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/bheisler/criterion.rs/compare/0.3.0...0.4.0 )
---
updated-dependencies:
- dependency-name: criterion
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-14 12:00:09 +02:00
Alexander Theißen
0229f865b6
Use u64 for gas counter ( #30 )
...
* Use `u64` for gas counter
* Update doc
2022-09-11 14:36:06 +02:00
dependabot[bot]
c2db4b8365
Update wasmparser requirement from 0.89 to 0.90 ( #28 )
...
Updates the requirements on [wasmparser](https://github.com/bytecodealliance/wasm-tools ) to permit the latest version.
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/compare/wasmparser-0.89.0...wasmparser-0.90.0 )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-24 08:59:46 +02:00
dependabot[bot]
1ade161da4
Update wasmparser requirement from 0.88 to 0.89 ( #27 )
...
Updates the requirements on [wasmparser](https://github.com/bytecodealliance/wasm-tools ) to permit the latest version.
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/compare/wasmparser-0.88.0...wasmparser-0.89.0 )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-17 14:08:30 +02:00
dependabot[bot]
25ff883bbd
Update wasmparser requirement from 0.87 to 0.88 ( #26 )
...
Updates the requirements on [wasmparser](https://github.com/bytecodealliance/wasm-tools ) to permit the latest version.
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/compare/wasmparser-0.87.0...wasmparser-0.88.0 )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-30 17:39:07 +02:00
dependabot[bot]
3b932b11ad
Update wasmparser requirement from 0.86 to 0.87 ( #24 )
...
Updates the requirements on [wasmparser](https://github.com/bytecodealliance/wasm-tools ) to permit the latest version.
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/compare/wasmparser-0.86.0...wasmparser-0.87.0 )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-06 11:21:44 +02:00
Alexander Theißen
d10bbdf554
Fix CODEOWNERS
2022-06-21 14:21:59 +02:00
dependabot[bot]
28ef7f550c
Update wasmparser requirement from 0.84 to 0.86 ( #23 )
...
Updates the requirements on [wasmparser](https://github.com/bytecodealliance/wasm-tools ) to permit the latest version.
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/compare/wasmparser-0.84.0...wasmparser-0.86.0 )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-12 20:24:01 +01:00
Filipe Azevedo
4a394c5f88
bump version ( #22 )
2022-06-08 10:29:51 +02:00
Alexander Theißen
d1648be274
Fix publish
2022-06-06 16:16:30 +01:00
Filipe Azevedo
4a51f16874
handle debug info ( #16 )
v0.1.2
2022-06-06 15:42:52 +01:00
dependabot[bot]
8380823e62
Bump actions/checkout from 2 to 3 ( #19 )
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v2...v3 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-06 11:53:30 +03:00
Sergejs Kostjucenko
88d652e69a
add gha to dependabot ( #18 )
2022-06-02 19:23:10 +03:00
dependabot[bot]
4713aa760f
Update wasmparser requirement from 0.82 to 0.84 ( #10 )
...
* Update wasmparser requirement from 0.82 to 0.84
Updates the requirements on [wasmparser](https://github.com/bytecodealliance/wasm-tools ) to permit the latest version.
- [Release notes](https://github.com/bytecodealliance/wasm-tools/releases )
- [Commits](https://github.com/bytecodealliance/wasm-tools/compare/wasmparser-0.82.0...wasmparser-0.84.0 )
---
updated-dependencies:
- dependency-name: wasmparser
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
* Adapt tests to new wasmparser
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
2022-04-07 15:50:15 +02:00
Alexander Theißen
4548a86329
Add test to measure size overhead ( #8 )
...
* Don't use parity-wasm directly
* Add test that output size over head of metering
2022-01-31 14:50:32 +01:00
Alexander Theißen
ff68bee449
We should use bench_with_input so that a blackbox is used
2022-01-31 13:14:12 +01:00
Alexander Theißen
7c843842a7
Run CI on windows, too ( #7 )
...
* Run CI on windows, too
* Build path without `concat!` macro
* Fix ci on windows
2022-01-31 11:03:18 +01:00
Alexander Theißen
374afe5700
Replace wabt with rust tools ( #5 )
2022-01-30 13:05:07 +01:00
Alexander Theißen
8291876394
Add benchmarks and add tiny performance improvements ( #6 )
...
* Add some benchmarks
* Replace extend -> extend_from_slice (1-2% performance improvement)
* Add many_blocks benchmarks
2022-01-24 21:20:47 +01:00
Alexander Theißen
184b3f8b3a
Prepare for releasing v0.1.1
2022-01-18 18:28:07 +01:00
Alexander Theißen
57da96fb50
Consider activation frame for stack height metering ( #2 )
...
* Charge a base cost for calling a function
* Added regression test for empty functions
* Satisfy clippy
2022-01-18 18:04:17 +01:00
Alexander Theißen
4e3e6b598a
Added documentation link
2022-01-11 21:46:18 +02:00
Alexander Theißen
c5eaffd229
Fix README typo
2022-01-11 21:37:12 +02:00
Alexander Theißen
e882111f92
Remove everything not needed by substrate
...
Also rename to wasm-instrument
2022-01-11 17:50:24 +02:00
Leonardo Yvens
b22696aaa5
sign_ext feature flag ( #174 )
...
* sign_ext feature flag
* Derive default to fix clippy warning
2021-12-21 15:23:16 +01:00
Dan Shields
5259f1c922
Merge pull request #173 from paritytech/NukeManDan-patch-1
...
version 0.19.0
rust 2021
MSRV 1.56.1
2021-11-21 16:01:06 -07:00
Dan Shields
da2f0a0f23
version 0.19.0
...
edition = "2021"
rust-version = "1.56.1"
2021-11-20 23:46:06 -07:00
Keith Yeung
1d62dc1270
cargo fmt
2021-11-13 19:05:45 -08:00
Dan Shields
abd5d4f6df
move to rust 2021
2021-11-13 19:59:13 -07:00
Sergei Shulepov
c9b837c80a
Merge pull request #171 from paritytech/at-bump-version
...
Bump version and only include essential files in crate
2021-09-08 14:17:45 +02:00
Alexander Theißen
2bf8068571
Bump version and only include essential files in crate
2021-09-07 17:55:50 +02:00
Alexander Theißen
2293760964
Use linear time algorithm to inject stack height metering ( #170 )
2021-09-07 17:42:03 +02:00
Alexander Theißen
2f88f49ef6
Add test for empty loops ( #169 )
2021-09-06 16:25:50 +02:00
Alexander Theißen
6ff274f0b8
Add CODEOWNERS ( #167 )
2021-08-02 12:54:10 +03:00
Chevdor
3d3e3010b3
Add justfile ( #166 )
2021-07-28 16:29:33 +02:00
Chevdor
ef4e09fff9
Typo and minor fixes ( #165 )
2021-07-28 16:28:25 +02:00
Chevdor
b8b18be419
Fix linting related issues ( #164 )
2021-07-27 16:14:14 +02:00
Alexander Theißen
72626a566a
Add a clippy job to the CI ( #163 )
...
* Add clippy CI check
* Fix remaining clippy lints
* Cargo fmt
2021-07-27 15:50:50 +02:00
dependabot[bot]
b8e6b9e319
Update env_logger requirement from 0.8 to 0.9 ( #159 )
...
Updates the requirements on [env_logger](https://github.com/env-logger-rs/env_logger ) to permit the latest version.
- [Release notes](https://github.com/env-logger-rs/env_logger/releases )
- [Changelog](https://github.com/env-logger-rs/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/env-logger-rs/env_logger/compare/v0.8.0...v0.9.0 )
---
updated-dependencies:
- dependency-name: env_logger
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-27 15:38:59 +02:00
Chevdor
cb023973e8
Cleanup ( #162 )
...
* Remove unnecessary references
* Shorten expressions
* Remove unnecessary reference
* Simplify expression
* Fix formatting
2021-07-27 15:14:55 +02:00
Alexander Theißen
a0b548b37d
Add rustfmt.toml from substrate repo ( #161 )
...
* Add rustfmt.toml from substrate repo
* Apply rustfmt to code base
* Fix formatting
* Move rustfmt job to the top
2021-07-27 14:46:28 +02:00
Alexander Theißen
77ad07e347
Add github actions ( #160 )
...
* Add github actions
* s/toolchains/toolchain
* s/test/build
* Remove no longer need travis
2021-07-27 13:59:16 +02:00
Alexander Theißen
c5043a47ac
Add dependabot ( #158 )
2021-07-27 12:06:17 +02:00
NikVolf
9f15b8cd21
bump to 0.18.1
2021-06-10 14:31:47 +03:00
Nikolay Volf
1ef05d71ed
Strip custom sections in wasm-prune ( #150 )
...
* strip custom sections
* line width
2021-06-10 14:29:59 +03:00