Before this patch:
```
$ cargo run -- run panic_index_oob_all_backends.wasm
Error: ExportNotFound { name: "main" }
```
With this patch:
```sh
$ cargo run -- run panic_index_oob_all_backends.wasm
Error: Can't instantiate module: LinkError([Generic { message: "Trying to read the `0` global that isn\'t properly initialized." }])
```
Fix https://github.com/wasmerio/wasmer/issues/979.
When we try to get a global that doesn't exist, a panic is
generated. This patch just skip that path, and let a proper error be
generated later.
With this patch, we get:
```sh
$ cargo run -- run panic_index_oob_all_backends.wasm
Error: ExportNotFound { name: "main" }
```
which is kind of the expected behavior in such situation.
Host functions use `Context::External` with a `*mut vm::FuncCtx`
pointer, casted to `*mut vm::Ctx`. It creates a conflict with exports
that also use `Context::External`.
This patch introduces `Context::ExternalWithEnv` to create a specific
path in the code for an external context with `*mut vm::FuncEnv`.
This patch fixes all the `linking.wast` tests in the spectests.
* Add local_function field to context
* Add local call indirection to llvm
* local call indirection
* Fix vm test
* Fix cranelift local call indirection
* Fix unwinding on nightly
* Allow a module to have a different signature registry than the process-specific
* Add core ability to build compiled code caches
* Remove timing printouts
* Serialize/Deserialize memories to reduce copies
* Work more on api
* Relocate local functions relatively before external functions
* Fix incorrect definition in test
* merge errors caused by merge
* Fix emscripten compile
* Fix review comments