Improvements to Modules API (#307)
* 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
This commit is contained in:
@@ -2,10 +2,9 @@
|
||||
|
||||
use cretonne_codegen::binemit::{Addend, CodeOffset, Reloc, RelocSink, NullTrapSink};
|
||||
use cretonne_codegen::isa::TargetIsa;
|
||||
use cretonne_codegen::result::CtonError;
|
||||
use cretonne_codegen::{self, ir, settings};
|
||||
use cretonne_module::{Backend, DataContext, Linkage, ModuleNamespace, Writability,
|
||||
DataDescription, Init};
|
||||
DataDescription, Init, ModuleError};
|
||||
use cretonne_native;
|
||||
use std::ffi::CString;
|
||||
use std::ptr;
|
||||
@@ -116,7 +115,7 @@ impl<'simple_jit_backend> Backend for SimpleJITBackend {
|
||||
ctx: &cretonne_codegen::Context,
|
||||
_namespace: &ModuleNamespace<Self>,
|
||||
code_size: u32,
|
||||
) -> Result<Self::CompiledFunction, CtonError> {
|
||||
) -> Result<Self::CompiledFunction, ModuleError> {
|
||||
let size = code_size as usize;
|
||||
let ptr = self.code_memory.allocate(size).expect(
|
||||
"TODO: handle OOM etc.",
|
||||
@@ -139,7 +138,7 @@ impl<'simple_jit_backend> Backend for SimpleJITBackend {
|
||||
_name: &str,
|
||||
data: &DataContext,
|
||||
_namespace: &ModuleNamespace<Self>,
|
||||
) -> Result<Self::CompiledData, CtonError> {
|
||||
) -> Result<Self::CompiledData, ModuleError> {
|
||||
let &DataDescription {
|
||||
writable,
|
||||
ref init,
|
||||
|
||||
Reference in New Issue
Block a user