With Rust 2018 Edition, the `mod std` trick to alias `core` names to
`std` no longer works, so switch to just having the code use `core`
explicitly.
So instead, switch to just using `core::*` for things that in core.
This is more consistent with other Rust no_std code. And it allows
us to enable `no_std` mode unconditionally in the crates that support
it, which makes testing a little easier.
There actually three cases:
- For things in std and also in core, like `cmp`: Just use them via
`core::*`.
- For things in std and also in alloc, like `Vec`: Import alloc as std, as
use them from std. This allows them to work on both stable (which
doesn't provide alloc, but we don't support no_std mode anyway) and
nightly.
- For HashMap and similar which are not in core or alloc, import them in
the top-level lib.rs files from either std or the third-party hashmap_core
crate, and then have the code use super::hashmap_core.
Also, no_std support continues to be "best effort" at this time and not
something most people need to be testing.
* test-no_std: use cargo +nightly
assume folks have rustup set to use stable by default
* cretonne-module, -faerie, -simplejit: use new ModuleError enum
CtonError is not really appropriate for use in the module system.
Instead, create a new enum ModuleError, which implements failure::Fail
(works with no_std). Translate existing panics and unimplemented
error cases to return ModuleErrors.
* cretonne-faerie: export FaerieProduct
* cretonne-module: expose FuncOrDataId, and Module::get_name to lookup
This is helpful for looking up a name that has already been declared.
Also, implement FuncOrDataId -> ExternalName conversion.
* cretonne-faerie: depend on faerie 0.3.0
which has bugfix for data relocations
* cretonne-module: change InvalidDefinition to InvalidImportDefinition
per dan's code review. plus another typo fix
* cretonne-faerie: add optional manifest of all traps from codegen
* cretonne-module: provide more context in panics
* cretonne-faerie: updates to docs
* cretonne-faerie: return an Err instead of debug_assert when isa not pic