Integrate Lightbeam with latest Wasmtime master (#1232)

* Implement trap info in Lightbeam

* Start using wasm-reader instead of wasmparser for parsing operators

* Update to use wasm-reader, some reductions in allocation, support source location tracking for traps, start to support multi-value

The only thing that still needs to be supported for multi-value is stack returns, but we need to make it compatible with Cranelift.

* Error when running out of registers (although we'd hope it should be impossible) instead of panicking

* WIP: Update Lightbeam to work with latest Wasmtime

* WIP: Update Lightbeam to use current wasmtime

* WIP: Migrate to new system for builtin functions

* WIP: Update Lightbeam to work with latest Wasmtime

* Remove multi_mut

* Format

* Fix some bugs around arguments, add debuginfo offset tracking

* Complete integration with new Wasmtime

* Remove commented code

* Fix formatting

* Fix warnings, remove unused dependencies

* Fix `iter` if there are too many elements, fix compilation for latest wasmtime

* Fix float arguments on stack

* Remove wasm-reader and trap info work

* Allocate stack space _before_ passing arguments, fail if we can't zero a xmm reg

* Fix stack argument offset calculation

* Fix stack arguments in Lightbeam

* Re-add WASI because it somehow got removed during rebase

* Workaround for apparent `type_alias_impl_trait`-related bug in rustdoc

* Fix breakages caused by rebase, remove module offset info as it is unrelated to wasmtime integration PR and was broken by rebase

* Add TODO comment explaining `lightbeam::ModuleContext` trait
This commit is contained in:
Jef
2020-04-30 01:26:40 +02:00
committed by GitHub
parent aa78811fb2
commit 957677c6f5
13 changed files with 2435 additions and 2112 deletions

View File

@@ -11,19 +11,20 @@ keywords = ["webassembly", "wasm", "compile", "compiler", "jit"]
edition = "2018"
[dependencies]
smallvec = "1.0.0"
capstone = "0.6.0"
cranelift-codegen = { path = "../../cranelift/codegen", version = "0.62.0" }
derive_more = "0.99"
dynasm = "0.5.2"
dynasmrt = "0.5.2"
wasmparser = "0.51.2"
memoffset = "0.5.3"
iter-enum = "0.2"
itertools = "0.8.2"
capstone = "0.6.0"
thiserror = "1.0.9"
cranelift-codegen = { path = "../../cranelift/codegen", version = "0.62.0" }
multi_mut = "0.1"
either = "1.5"
typemap = "0.3"
memoffset = "0.5.3"
more-asserts = "0.2.1"
smallvec = "1.0.0"
staticvec = "0.8"
thiserror = "1.0.9"
typemap = "0.3"
wasmparser = "0.51.2"
[dev-dependencies]
lazy_static = "1.2"