Files
wasmtime/crates/environ
Alex Crichton 7474633cca Remove usage of CompilationStrategy from Config (#764)
* Remove usage of `CompilationStrategy` from `Config`

This commit removes the public API usage of the internal
`CompilationStrategy` enumeration from the `Config` type in the
`wasmtime` crate. To do this the `enum` was copied locally into the
crate and renamed `Strategy`. The high-level description of this change
is:

* The `Config::strategy` method now takes a locally-defined `Strategy`
  enumeration instead of an internal type.

* The contents of `Strategy` are always the same, not relying on Cargo
  features to indicate which variants are present. This avoids
  unnecessary downstream `#[cfg]`.

* A `lightbeam` feature was added to the `wasmtime` crate itself to
  lightbeam compilation support.

* The `Config::strategy` method is now fallible. It returns a runtime
  error if support for the selected strategy wasn't compiled in.

* The `Strategy` enum is listed as `#[non_exhaustive]` so we can safely
  add variants over time to it.

This reduces the public crate dependencies of the `wasmtime` crate
itself, removing the need to reach into internal crates even more!

cc #708

* Fix fuzz targets

* Update nightly used to build releases

* Run rustfmt
2020-01-06 18:08:13 -06:00
..
2019-11-08 06:35:40 -08:00
2019-11-08 06:35:40 -08:00
2019-11-08 06:35:40 -08:00
2019-11-08 06:35:40 -08:00
2019-11-08 06:35:40 -08:00

This is the wasmtime-environ crate, which contains the implementations of the ModuleEnvironment and FuncEnvironment traits from cranelift-wasm. They effectively implement an ABI for basic wasm compilation that defines how linear memories are allocated, how indirect calls work, and other details. They can be used for JITing, native object files, or other purposes.