Commit Graph

15 Commits

Author SHA1 Message Date
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