StackOverflowExcept1on
fdce5c64f1
chore: modernize WASM tests ( #79 )
...
I tried locally merge `fix-tests` and `fix-clippy` branches and CI
should work after my PRs
2023-11-07 09:14:09 +01:00
dependabot[bot]
54213f77f6
Update wasmi requirement from 0.20 to 0.21 ( #42 )
...
Updates the requirements on [wasmi](https://github.com/paritytech/wasmi )
to permit the latest version.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/paritytech/wasmi/releases ">wasmi's
releases</a>.</em></p>
<blockquote>
<h2>v0.21.0 - 2023-01-04</h2>
<h3>Added</h3>
<ul>
<li>Add support for resumable function calls. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/598 ">paritytech/wasmi#598</a>)
<ul>
<li>This feature allows to resume a function call upon encountering a
host trap.</li>
</ul>
</li>
<li>Add support for concurrently running function executions using a
single <code>wasmi</code> engine.
<ul>
<li>This feature also allows to call Wasm functions from host functions.
(<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/590 ">paritytech/wasmi#590</a>)</li>
</ul>
</li>
<li>Add initial naive WASI support for <code>wasmi</code> using the new
<code>wasmi_wasi</code> crate. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/557 ">paritytech/wasmi#557</a>)
<ul>
<li>Special thanks to <a href="https://github.com/OLUWAMUYIWA ">Onigbinde
Oluwamuyiwa Elijah</a> for carrying the WASI support efforts!</li>
<li>Also thanks to <a href="https://github.com/Berrysoft ">Yuyi Wang</a>
for testing and improving initial WASI support. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/592 ">paritytech/wasmi#592</a>,
<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/571 ">paritytech/wasmi#571</a>,
<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/568 ">paritytech/wasmi#568</a>)</li>
<li><strong>Note:</strong> There is ongoing work to integrate WASI
support in <code>wasmi_cli</code> so that the <code>wasmi</code> CLI
will then
be able to execute arbitrary <code>wasm-wasi</code> files out of the box
in the future.</li>
</ul>
</li>
<li>Add <code>Module::imports</code> that allows to query Wasm module
imports. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/573 ">paritytech/wasmi#573</a>,
<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/583 ">paritytech/wasmi#583</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix a bug that imported linear memories and tables were initialized
twice upon instantiation. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/593 ">paritytech/wasmi#593</a>)</li>
<li>The <code>wasmi</code> CLI now properly hints for file path
arguments. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/596 ">paritytech/wasmi#596</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>The <code>wasmi::Trap</code> type is now more similar to Wasmtime's
<code>Trap</code> type. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/559 ">paritytech/wasmi#559</a>)</li>
<li>The <code>wasmi::Store</code> type is now <code>Send</code> and
<code>Sync</code> as intended. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/566 ">paritytech/wasmi#566</a>)</li>
<li>The <code>wasmi</code> CLI now prints exported functions names if
the function name CLI argument is missing. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/579 ">paritytech/wasmi#579</a>)</li>
<li>Improve feedback when running a Wasm module without exported
function using <code>wasmi</code> CLI. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/584 ">paritytech/wasmi#584</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/paritytech/wasmi/blob/master/CHANGELOG.md ">wasmi's
changelog</a>.</em></p>
<blockquote>
<h2>[0.21.0] - 2023-01-04</h2>
<h3>Added</h3>
<ul>
<li>Add support for resumable function calls. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/598 ">paritytech/wasmi#598</a>)
<ul>
<li>This feature allows to resume a function call upon encountering a
host trap.</li>
</ul>
</li>
<li>Add support for concurrently running function executions using a
single <code>wasmi</code> engine.
<ul>
<li>This feature also allows to call Wasm functions from host functions.
(<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/590 ">paritytech/wasmi#590</a>)</li>
</ul>
</li>
<li>Add initial naive WASI support for <code>wasmi</code> using the new
<code>wasmi_wasi</code> crate. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/557 ">paritytech/wasmi#557</a>)
<ul>
<li>Special thanks to <a href="https://github.com/OLUWAMUYIWA ">Onigbinde
Oluwamuyiwa Elijah</a> for carrying the WASI support efforts!</li>
<li>Also thanks to <a href="https://github.com/Berrysoft ">Yuyi Wang</a>
for testing and improving initial WASI support. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/592 ">paritytech/wasmi#592</a>,
<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/571 ">paritytech/wasmi#571</a>,
<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/568 ">paritytech/wasmi#568</a>)</li>
<li><strong>Note:</strong> There is ongoing work to integrate WASI
support in <code>wasmi_cli</code> so that the <code>wasmi</code> CLI
will then
be able to execute arbitrary <code>wasm-wasi</code> files out of the box
in the future.</li>
</ul>
</li>
<li>Add <code>Module::imports</code> that allows to query Wasm module
imports. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/573 ">paritytech/wasmi#573</a>,
<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/583 ">paritytech/wasmi#583</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix a bug that imported linear memories and tables were initialized
twice upon instantiation. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/593 ">paritytech/wasmi#593</a>)</li>
<li>The <code>wasmi</code> CLI now properly hints for file path
arguments. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/596 ">paritytech/wasmi#596</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>The <code>wasmi::Trap</code> type is now more similar to Wasmtime's
<code>Trap</code> type. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/559 ">paritytech/wasmi#559</a>)</li>
<li>The <code>wasmi::Store</code> type is now <code>Send</code> and
<code>Sync</code> as intended. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/566 ">paritytech/wasmi#566</a>)</li>
<li>The <code>wasmi</code> CLI now prints exported functions names if
the function name CLI argument is missing. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/579 ">paritytech/wasmi#579</a>)</li>
<li>Improve feedback when running a Wasm module without exported
function using <code>wasmi</code> CLI. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/584 ">paritytech/wasmi#584</a>)</li>
</ul>
<h2>[0.20.0] - 2022-11-04</h2>
<h3>Added</h3>
<ul>
<li>Contribution documentation about fuzz testing. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/529 ">paritytech/wasmi#529</a>)</li>
</ul>
<h3>Removed</h3>
<ul>
<li>Removed some deprecated functions in the <code>wasmi_core</code>
crate. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/545 ">paritytech/wasmi#545</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fixed a critical performance regression introduced in Rust 1.65. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/518 ">paritytech/wasmi#518</a>)
<ul>
<li>While the PR's main job was to clean up some code it was found out
that it
also fixes a critical performance regression introduced in Rust
1.65.</li>
<li>You can read more about this performance regression <a
href="https://github-redirect.dependabot.com/rust-lang/rust/issues/102952 ">in
this thread</a>.</li>
</ul>
</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Fixed handling of edge cases with respect to Wasm linear memory. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/449 ">paritytech/wasmi#449</a>)
<ul>
<li>This allows for <code>wasmi</code> to properly setup and use linear
memory instances of up to 4GB.</li>
</ul>
</li>
<li>Optimize and improve Wasm instantiation. (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/531 ">paritytech/wasmi#531</a>)</li>
<li>Optimize <code>global.get</code> of immutable non-imported globals.
(<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/pull/533 ">paritytech/wasmi#533</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/paritytech/wasmi/commit/9e228e8a253074bf25cfcfeff11b07ff2033170e "><code>9e228e8</code></a>
Bump <code>wasmi</code> version to <code>0.21.0</code> (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/issues/604 ">#604</a>)</li>
<li><a
href="https://github.com/paritytech/wasmi/commit/8fb3a58de76a10b0072d0c71fd1677a96f33009f "><code>8fb3a58</code></a>
Prepare for <code>wasmi</code> version <code>0.21.0</code> release (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/issues/603 ">#603</a>)</li>
<li><a
href="https://github.com/paritytech/wasmi/commit/829ae5b115e8d8f484c93798309ac9e1eb7351eb "><code>829ae5b</code></a>
Resumable Function Calls (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/issues/598 ">#598</a>)</li>
<li><a
href="https://github.com/paritytech/wasmi/commit/3c62031d096a73c59edb05ea5cc508e5bc65b0f6 "><code>3c62031</code></a>
Add <code>res: EngineResources</code> field to
<code>EngineExecutor</code> (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/issues/602 ">#602</a>)</li>
<li><a
href="https://github.com/paritytech/wasmi/commit/bbcfc21deea430f82aac6c268ffea61587173060 "><code>bbcfc21</code></a>
Refactor <code>Engine</code> internals (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/issues/601 ">#601</a>)</li>
<li><a
href="https://github.com/paritytech/wasmi/commit/3186c023210a537d0fd70517942a1ebd0c5ad3f7 "><code>3186c02</code></a>
Return <code>()</code> from <code>CallResults</code> for slices (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/issues/600 ">#600</a>)</li>
<li><a
href="https://github.com/paritytech/wasmi/commit/8965c9af96beb189919c0a2aa306a8ae111141ad "><code>8965c9a</code></a>
Refactor FuncType verification (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/issues/599 ">#599</a>)</li>
<li><a
href="https://github.com/paritytech/wasmi/commit/2b5a48618fa9acb1d36e91ba9325623d6858e0e6 "><code>2b5a486</code></a>
CLI: Improve CLI parsing (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/issues/596 ">#596</a>)</li>
<li><a
href="https://github.com/paritytech/wasmi/commit/da8e4a694054ea218b316c31f28aae5494a42119 "><code>da8e4a6</code></a>
Allow host functions to call Wasm functions (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/issues/590 ">#590</a>)</li>
<li><a
href="https://github.com/paritytech/wasmi/commit/f82ed77000b520046918b4e75cd733a2a7650d5b "><code>f82ed77</code></a>
Fix duplicated imported linear memories and tables (<a
href="https://github-redirect.dependabot.com/paritytech/wasmi/issues/593 ">#593</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/paritytech/wasmi/compare/v0.20.0...v0.21.0 ">compare
view</a></li>
</ul>
</details>
<br />
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
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 >
2023-01-10 15:04:05 -03:00
Sasha Gryaznov
6a79d1d4b8
Charge gas for local variables on the callee side ( #38 )
...
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
2022-11-26 16:37:31 +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
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
Filipe Azevedo
4a51f16874
handle debug info ( #16 )
2022-06-06 15:42:52 +01: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
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
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
e882111f92
Remove everything not needed by substrate
...
Also rename to wasm-instrument
2022-01-11 17:50:24 +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
Sergei Shulepov
0cead7ba6d
Merge pull request #151 from paritytech/ser-bless
...
Add BLESS env option
2021-06-10 11:13:04 +02:00
Sergei Shulepov
9e98400de0
Update tests/diff.rs
...
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
2021-06-10 10:49:16 +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
Sergey Shulepov
717aa8f0cb
Add BLESS env option
...
Right now if there is a diff between the actual and expected results,
the expected file will be overwritten. This may be annoying. To make it
controlled we introduce BLESS option.
This means that the expected files won't be regenerated unless this
environment variable is set.
Therefore to regenerate the tests use:
BLESS=1 cargo test
2021-06-09 19:17:54 +02:00
Alexander Theißen
1b0ed1b383
Transition to Rust 2018 style imports
2021-05-26 14:59:04 +02:00
Alexander Theißen
1f8e6dd5b2
Don't generate duplicate thunks
...
Previously, functions that appear in multiple places
(exported, start function, table) would generate a thunk
for each place they appear in. Those additional thunks are
identical and only only one of them would be referenced.
Main offender are tables with redundant entries.
This commit eliminates those duplicate thunks without adding
any additional overhead.
2020-10-13 11:43:59 +02:00
Alexander Theißen
409ced002a
Allow specifying the module of the imported 'gas' function ( #140 )
...
* No need for mem::replace when doing a simple assignment
* Allow specifying the module of the imported 'gas' function
This allows users to place the imported function inside a custom
module instead of the generic 'env' module.
2020-08-04 13:53:53 +03:00
NikVolf
3f2935df9c
update wabt
2020-08-03 14:00:07 +03:00
Jim Posen
b3f8f62105
Update gas expectations.
2019-07-04 17:57:40 +02:00
Jim Posen
863744b1fc
Add gas test confirming that br instructions do not end blocks.
2019-07-01 17:02:21 +02:00
NikVolf
0d40703c6e
fix identation
2019-04-09 19:02:07 +03:00
Sergey Pepyakin
1b7a5d26ea
A couple of small tests.
2019-04-03 14:24:01 +02:00
NikVolf
06277915da
some graph structure definition
2019-01-21 17:04:31 +03:00
Sergey Pepyakin
8db40174ae
Add gas tests.
2018-12-24 20:43:23 +01:00
Sergey Pepyakin
3db0d60e70
Teach stack limiter to handle start fn
2018-12-24 19:20:33 +01:00
Alexey
3e7946ab1c
fix call_indirect test ( #98 )
...
Merged
2018-08-01 13:48:38 +03:00
NikVolf
b0f43bb575
rename crate
2018-03-13 16:02:34 +03: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