diff --git a/Cargo.lock b/Cargo.lock index 95b19ce35..246356a02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -606,6 +606,7 @@ dependencies = [ "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "macros 0.1.0", + "memory-cache 0.1.0", "memorydb 0.1.0", "migration 0.1.0", "native-contracts 0.1.0", @@ -759,6 +760,7 @@ dependencies = [ "itertools 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", "kvdb 0.1.0", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "memory-cache 0.1.0", "memorydb 0.1.0", "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "patricia_trie 0.1.0", @@ -901,7 +903,6 @@ dependencies = [ "kvdb 0.1.0", "libc 0.2.31 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "memorydb 0.1.0", "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "patricia_trie 0.1.0", @@ -1047,6 +1048,7 @@ dependencies = [ "heapsize 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "memory-cache 0.1.0", "parking_lot 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-hex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "vm 0.1.0", @@ -1645,6 +1647,14 @@ dependencies = [ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "memory-cache" +version = "0.1.0" +dependencies = [ + "heapsize 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lru-cache 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "memorydb" version = "0.1.0" diff --git a/ethcore/Cargo.toml b/ethcore/Cargo.toml index d9df99f9e..fed1362ad 100644 --- a/ethcore/Cargo.toml +++ b/ethcore/Cargo.toml @@ -32,6 +32,7 @@ ethcore-logger = { path = "../logger" } ethcore-stratum = { path = "../stratum" } ethcore-util = { path = "../util" } ethcore-bigint = { path = "../util/bigint" } +memory-cache = { path = "../util/memory_cache" } ethjson = { path = "../json" } ethkey = { path = "../ethkey" } ethstore = { path = "../ethstore" } diff --git a/ethcore/evm/Cargo.toml b/ethcore/evm/Cargo.toml index 17b866428..5cef517f4 100644 --- a/ethcore/evm/Cargo.toml +++ b/ethcore/evm/Cargo.toml @@ -14,6 +14,7 @@ log = "0.3" vm = { path = "../vm" } hash = { path = "../../util/hash" } parking_lot = "0.4" +memory-cache = { path = "../../util/memory_cache" } [dev-dependencies] rustc-hex = "1.0" diff --git a/ethcore/evm/src/interpreter/shared_cache.rs b/ethcore/evm/src/interpreter/shared_cache.rs index 7b3b33b70..d0386b194 100644 --- a/ethcore/evm/src/interpreter/shared_cache.rs +++ b/ethcore/evm/src/interpreter/shared_cache.rs @@ -19,7 +19,7 @@ use hash::KECCAK_EMPTY; use heapsize::HeapSizeOf; use bigint::hash::H256; use parking_lot::Mutex; -use util::cache::MemoryLruCache; +use memory_cache::MemoryLruCache; use bit_set::BitSet; use super::super::instructions; diff --git a/ethcore/evm/src/lib.rs b/ethcore/evm/src/lib.rs index efc88d60d..7ddbed19e 100644 --- a/ethcore/evm/src/lib.rs +++ b/ethcore/evm/src/lib.rs @@ -23,6 +23,7 @@ extern crate parking_lot; extern crate heapsize; extern crate vm; extern crate hash; +extern crate memory_cache; #[macro_use] extern crate lazy_static; diff --git a/ethcore/light/Cargo.toml b/ethcore/light/Cargo.toml index fb7030bcc..e5c39c82a 100644 --- a/ethcore/light/Cargo.toml +++ b/ethcore/light/Cargo.toml @@ -40,6 +40,7 @@ stats = { path = "../../util/stats" } hash = { path = "../../util/hash" } triehash = { path = "../../util/triehash" } kvdb = { path = "../../util/kvdb" } +memory-cache = { path = "../../util/memory_cache" } [features] default = [] diff --git a/ethcore/light/src/cache.rs b/ethcore/light/src/cache.rs index 65c3a4d0f..8ec6b53af 100644 --- a/ethcore/light/src/cache.rs +++ b/ethcore/light/src/cache.rs @@ -29,7 +29,7 @@ use time::{SteadyTime, Duration}; use heapsize::HeapSizeOf; use bigint::prelude::U256; use bigint::hash::H256; -use util::cache::MemoryLruCache; +use memory_cache::MemoryLruCache; /// Configuration for how much data to cache. #[derive(Debug, Clone, PartialEq, Eq)] diff --git a/ethcore/light/src/lib.rs b/ethcore/light/src/lib.rs index edf655e4d..a9f3e83e9 100644 --- a/ethcore/light/src/lib.rs +++ b/ethcore/light/src/lib.rs @@ -92,6 +92,7 @@ extern crate vm; extern crate hash; extern crate triehash; extern crate kvdb; +extern crate memory_cache; #[cfg(feature = "ipc")] extern crate ethcore_ipc as ipc; diff --git a/ethcore/src/engines/validator_set/safe_contract.rs b/ethcore/src/engines/validator_set/safe_contract.rs index 7489a26e0..d0ada79ec 100644 --- a/ethcore/src/engines/validator_set/safe_contract.rs +++ b/ethcore/src/engines/validator_set/safe_contract.rs @@ -27,7 +27,7 @@ use parking_lot::{Mutex, RwLock}; use util::*; use bytes::Bytes; -use util::cache::MemoryLruCache; +use memory_cache::MemoryLruCache; use unexpected::Mismatch; use rlp::{UntrustedRlp, RlpStream}; diff --git a/ethcore/src/lib.rs b/ethcore/src/lib.rs index a67eb879a..11220e69b 100644 --- a/ethcore/src/lib.rs +++ b/ethcore/src/lib.rs @@ -129,6 +129,7 @@ extern crate bloomable; extern crate vm; extern crate wasm; extern crate ethcore_util as util; +extern crate memory_cache; #[macro_use] extern crate macros; diff --git a/ethcore/src/state_db.rs b/ethcore/src/state_db.rs index a2e4dcac4..148c0d8c8 100644 --- a/ethcore/src/state_db.rs +++ b/ethcore/src/state_db.rs @@ -17,7 +17,7 @@ use std::collections::{VecDeque, HashSet}; use std::sync::Arc; use lru_cache::LruCache; -use util::cache::MemoryLruCache; +use memory_cache::MemoryLruCache; use util::journaldb::JournalDB; use kvdb::{KeyValueDB, DBTransaction}; use bigint::hash::H256; diff --git a/util/Cargo.toml b/util/Cargo.toml index 61d8b2335..d83d2787d 100644 --- a/util/Cargo.toml +++ b/util/Cargo.toml @@ -24,7 +24,6 @@ target_info = "0.1" ethcore-bigint = { path = "bigint", features = ["heapsizeof"] } parking_lot = "0.4" tiny-keccak= "1.0" -lru-cache = "0.1.0" ethcore-logger = { path = "../logger" } triehash = { path = "triehash" } error-chain = "0.11.0-rc.2" diff --git a/util/memory_cache/Cargo.toml b/util/memory_cache/Cargo.toml new file mode 100644 index 000000000..f2b612463 --- /dev/null +++ b/util/memory_cache/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "memory-cache" +version = "0.1.0" +authors = ["Parity Technologies "] +description = "An LRU-cache which operates on memory used" +license = "GPL3" + +[dependencies] +heapsize = "0.4" +lru-cache = "0.1" diff --git a/util/src/cache.rs b/util/memory_cache/src/lib.rs similarity index 98% rename from util/src/cache.rs rename to util/memory_cache/src/lib.rs index e6f204192..af70b0cff 100644 --- a/util/src/cache.rs +++ b/util/memory_cache/src/lib.rs @@ -18,6 +18,9 @@ //! crate. // TODO: push changes upstream in a clean way. +extern crate heapsize; +extern crate lru_cache; + use heapsize::HeapSizeOf; use lru_cache::LruCache; diff --git a/util/src/lib.rs b/util/src/lib.rs index 863f811c4..68ae382e8 100644 --- a/util/src/lib.rs +++ b/util/src/lib.rs @@ -100,7 +100,6 @@ extern crate ethcore_bytes as bytes; extern crate parking_lot; extern crate tiny_keccak; extern crate rlp; -extern crate lru_cache; extern crate heapsize; extern crate ethcore_logger; extern crate hash as keccak; @@ -116,7 +115,6 @@ extern crate log as rlog; pub mod misc; pub mod overlaydb; pub mod journaldb; -pub mod cache; pub use misc::*; pub use hashdb::*;