Partial hashing of module for faster caching (#221)
* Simple module compilation cache * Fix base64 encoding bug * Use warn! everywhere in cache system * Remove unused import * Temporary workaround for long path on Windows * Remove unused import for non-windows builds * Add command line argument to enable cache system + apply minor review feedback * Initial implementation of partial module hashing * Proper module hashing for the cache * Use newer version of cranelift
This commit is contained in:
@@ -10,12 +10,12 @@ use cranelift_wasm::{
|
||||
self, translate_module, DefinedFuncIndex, FuncIndex, Global, GlobalIndex, Memory, MemoryIndex,
|
||||
SignatureIndex, Table, TableIndex, WasmResult,
|
||||
};
|
||||
use sha2::{Digest, Sha256};
|
||||
use std::boxed::Box;
|
||||
use std::string::String;
|
||||
use std::vec::Vec;
|
||||
|
||||
/// Contains function data: byte code and its offset in the module.
|
||||
#[derive(Hash)]
|
||||
pub struct FunctionBodyData<'a> {
|
||||
/// Body byte code.
|
||||
pub data: &'a [u8],
|
||||
@@ -80,11 +80,6 @@ impl<'data> ModuleEnvironment<'data> {
|
||||
pub fn translate(mut self, data: &'data [u8]) -> WasmResult<ModuleTranslation<'data>> {
|
||||
translate_module(data, &mut self)?;
|
||||
|
||||
// TODO: this is temporary workaround and will be replaced with derive macro.
|
||||
let mut hasher = Sha256::new();
|
||||
hasher.input(data);
|
||||
self.result.module.hash = Some(hasher.result().into());
|
||||
|
||||
Ok(self.result)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user