Alexander Theißen
2293760964
Use linear time algorithm to inject stack height metering ( #170 )
2021-09-07 17:42:03 +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
Sergey Shulepov
19760b5835
Fix counting of the local variables
...
The code assumed that the number of `Local` and number of locals is the
same thing. In reality though it is not. `Local` actually represents a
group of locals with the same type. The group can declare more than one
variable and the number of them is returned by `Local::count`.
In this PR we acknowledge this fact. Along the way we add a checked
arithmetic for locals_count and max_stack_height summation.
2021-06-09 19:22:40 +02:00
Alexander Theißen
1b0ed1b383
Transition to Rust 2018 style imports
2021-05-26 14:59:04 +02:00
Alexander Theißen
aebfc0fbd7
Fixes necessary for having no_std imports work with edition2018
2020-10-22 12:26:24 +02:00
Alexander Theißen
c09a924a81
Address all clippy lints
...
These changes do not change the behaviour of the
code and should be non-controversial.
2020-10-13 15:42:01 +02:00
NikVolf
026b0502bb
fix warnings
2019-07-17 17:01:15 +03:00
Jim Posen
89e13ee901
Cleanup stack height Context.
...
Removes unnecessary Options and fixes typos.
2019-06-26 12:48:51 +02:00
NikVolf
0d40703c6e
fix identation
2019-04-09 19:02:07 +03:00
Sergey Pepyakin
3db0d60e70
Teach stack limiter to handle start fn
2018-12-24 19:20:33 +01:00
Wei Tang
d6f82000ee
Update parity-wasm dependency to 0.31
2018-06-29 19:01:06 +08:00
Hernando Castano
e6e340fa0a
Update matches with single arm to be if-let statements
2018-05-29 22:46:11 -04:00
Wei Tang
a30afec0cd
Port core util lib to support no_std
2018-05-15 08:22:29 +08:00
Sergey Pepyakin
9527b969a4
Impl stack height limiter ( #64 )
...
* Initial implementation
* Add wasm-stack-height binary
* Fixes and tracing.
* Doc fixes.
* Fix type resolving for thunks.
* Fix thunk numbering.
* Don't generate thunks for fns with stack_cost = 0
* Diff tests.
* Add table tests.
* Add global test.
* Make tests deterministic.
* Refactoring.
* Clean and refactor.
* Rename Context → Stack in stach_height.
* Don't generate call wrappers if stack_cost = 0
* Errors instead of panics.
* Add with_stack_limit function.
* Fix thunk generation.
* Pass the stack height limit as separate value.
* Use .unwrap_or_default() in diff.rs.
* Remove redundant &.
* Remove simple_test.
* Remove variants of the Error.
* `resolve_func_type` returns an Error.
* Don't unwrap for .last()
* Remove stack_limit from rules::Set
* Rename max_height::compute.
2018-02-27 16:52:37 +03:00