Skip to content

Commit 513b90d

Browse files
authored
Switch to rust 2024 edition (fvm v3) (#2166)
* chore: port v3 to 2024 edition * chore: cargo fmt for 2024 edition * fix: correctly deserialize test vectors
1 parent e83b253 commit 513b90d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+289
-204
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[workspace]
2-
resolver = "2"
2+
resolver = "3"
33
members = [
44
"fvm",
55
"sdk",
@@ -10,7 +10,7 @@ members = [
1010
[workspace.package]
1111
version = "3.13.1"
1212
license = "MIT OR Apache-2.0"
13-
edition = "2021"
13+
edition = "2024"
1414
repository = "https://github.com/filecoin-project/ref-fvm"
1515
authors = ["Protocol Labs", "Filecoin Core Devs"]
1616

fvm/src/blockstore/buffered.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use std::cell::RefCell;
66
use std::collections::HashMap;
77
use std::io::Read;
88

9-
use anyhow::{anyhow, Result};
9+
use anyhow::{Result, anyhow};
1010
use cid::Cid;
1111
use fvm_ipld_blockstore::{Blockstore, Buffered};
1212
use fvm_ipld_encoding::{CBOR, DAG_CBOR, IPLD_RAW};
@@ -168,7 +168,7 @@ fn take_reachable(cache: &mut HashMap<Cid, Vec<u8>>, root: &Cid) -> Result<Vec<(
168168
(hash, length) => {
169169
return Err(anyhow!(
170170
"cid {k} has unexpected multihash (code={hash}, len={length})"
171-
))
171+
));
172172
}
173173
}
174174
if k.hash().code() == IDENTITY {
@@ -240,7 +240,7 @@ where
240240
mod tests {
241241
use fvm_ipld_blockstore::{Blockstore, MemoryBlockstore};
242242
use fvm_ipld_encoding::CborStore;
243-
use fvm_shared::{commcid, IDENTITY_HASH};
243+
use fvm_shared::{IDENTITY_HASH, commcid};
244244
use multihash_codetable::{Code, Multihash};
245245
use serde::{Deserialize, Serialize};
246246

fvm/src/call_manager/default.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,32 @@
22
// SPDX-License-Identifier: Apache-2.0, MIT
33
use std::rc::Rc;
44

5-
use anyhow::{anyhow, Context};
5+
use anyhow::{Context, anyhow};
66
use cid::Cid;
77
use derive_more::{Deref, DerefMut};
88
use fvm_ipld_amt::Amt;
9-
use fvm_ipld_encoding::{to_vec, CBOR};
9+
use fvm_ipld_encoding::{CBOR, to_vec};
1010
use fvm_shared::address::{Address, Payload};
1111
use fvm_shared::econ::TokenAmount;
1212
use fvm_shared::error::{ErrorNumber, ExitCode};
1313
use fvm_shared::event::StampedEvent;
1414
use fvm_shared::sys::BlockId;
15-
use fvm_shared::{ActorID, MethodNum, METHOD_SEND};
15+
use fvm_shared::{ActorID, METHOD_SEND, MethodNum};
1616
use num_traits::Zero;
1717

1818
use super::state_access_tracker::{ActorAccessState, StateAccessTracker};
1919
use super::{Backtrace, CallManager, InvocationResult, NO_DATA_BLOCK_ID};
2020
use crate::blockstore::DiscardBlockstore;
21-
use crate::call_manager::backtrace::Frame;
2221
use crate::call_manager::FinishRet;
22+
use crate::call_manager::backtrace::Frame;
2323
use crate::eam_actor::EAM_ACTOR_ID;
2424
use crate::engine::Engine;
2525
use crate::gas::{Gas, GasTracker};
2626
use crate::kernel::{
2727
Block, BlockRegistry, ClassifyResult, ExecutionError, Kernel, Result, SyscallError,
2828
};
29-
use crate::machine::limiter::MemoryLimiter;
3029
use crate::machine::Machine;
30+
use crate::machine::limiter::MemoryLimiter;
3131
use crate::state_tree::ActorState;
3232
use crate::syscalls::error::Abort;
3333
use crate::syscalls::{charge_for_exec, update_gas_available};

fvm/src/call_manager/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ use fvm_shared::econ::TokenAmount;
66
use fvm_shared::error::ExitCode;
77
use fvm_shared::{ActorID, MethodNum};
88

9+
use crate::Kernel;
910
use crate::engine::Engine;
1011
use crate::gas::{Gas, GasCharge, GasTimer, GasTracker, PriceList};
1112
use crate::kernel::{self, Result};
1213
use crate::machine::{Machine, MachineContext};
1314
use crate::state_tree::ActorState;
14-
use crate::Kernel;
1515

1616
pub mod backtrace;
1717
mod state_access_tracker;

fvm/src/call_manager/state_access_tracker.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use std::cell::RefCell;
44
use std::iter;
55

66
use anyhow::Context;
7-
use fvm_shared::address::{Address, Protocol};
87
use fvm_shared::ActorID;
8+
use fvm_shared::address::{Address, Protocol};
99

1010
use crate::history_map::HistoryMap;
1111
use crate::kernel::{ClassifyResult, Result};

fvm/src/engine/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ mod concurrency;
55
mod instance_pool;
66

77
use std::any::{Any, TypeId};
8-
use std::collections::hash_map::Entry::{Occupied, Vacant};
98
use std::collections::HashMap;
9+
use std::collections::hash_map::Entry::{Occupied, Vacant};
1010
use std::ops::Deref;
1111
use std::sync::{Arc, Mutex};
1212

13-
use anyhow::{anyhow, Context};
13+
use anyhow::{Context, anyhow};
1414
use cid::Cid;
1515
use fvm_ipld_blockstore::Blockstore;
1616
use fvm_shared::error::ExitCode;
@@ -22,15 +22,15 @@ use wasmtime::{
2222
Val, ValType, WasmBacktraceDetails,
2323
};
2424

25+
use crate::Kernel;
2526
use crate::gas::{Gas, GasTimer, WasmGasPrices};
2627
use crate::machine::limiter::MemoryLimiter;
2728
use crate::machine::{Machine, NetworkConfig};
2829
use crate::syscalls::error::Abort;
2930
use crate::syscalls::{
30-
bind_syscalls, charge_for_exec, charge_for_init, record_init_time, update_gas_available,
31-
InvocationData,
31+
InvocationData, bind_syscalls, charge_for_exec, charge_for_init, record_init_time,
32+
update_gas_available,
3233
};
33-
use crate::Kernel;
3434

3535
use self::concurrency::EngineConcurrency;
3636
use self::instance_pool::InstancePool;
@@ -517,7 +517,7 @@ impl Engine {
517517
let module = match cache.get(k) {
518518
Some(m) => m.module.clone(),
519519
None => {
520-
let module = Module::deserialize(&self.inner.engine, compiled)?;
520+
let module = unsafe { Module::deserialize(&self.inner.engine, compiled)? };
521521
cache.insert(
522522
*k,
523523
ModuleRecord {

fvm/src/executor/default.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
use std::ops::{Deref, DerefMut};
44
use std::result::Result as StdResult;
55

6-
use anyhow::{anyhow, Result};
6+
use anyhow::{Result, anyhow};
77
use cid::Cid;
8-
use fvm_ipld_encoding::{RawBytes, CBOR};
8+
use fvm_ipld_encoding::{CBOR, RawBytes};
99
use fvm_shared::address::Payload;
1010
use fvm_shared::econ::TokenAmount;
1111
use fvm_shared::error::{ErrorNumber, ExitCode};
@@ -16,12 +16,12 @@ use fvm_shared::{ActorID, IPLD_RAW, METHOD_SEND};
1616
use num_traits::Zero;
1717

1818
use super::{ApplyFailure, ApplyKind, ApplyRet, Executor};
19-
use crate::call_manager::{backtrace, Backtrace, CallManager, InvocationResult};
19+
use crate::call_manager::{Backtrace, CallManager, InvocationResult, backtrace};
2020
use crate::eam_actor::EAM_ACTOR_ID;
2121
use crate::engine::EnginePool;
2222
use crate::gas::{Gas, GasCharge, GasOutputs};
2323
use crate::kernel::{Block, ClassifyResult, Context as _, ExecutionError, Kernel};
24-
use crate::machine::{Machine, BURNT_FUNDS_ACTOR_ID, REWARD_ACTOR_ID};
24+
use crate::machine::{BURNT_FUNDS_ACTOR_ID, Machine, REWARD_ACTOR_ID};
2525
use crate::trace::ExecutionTrace;
2626

2727
/// The default [`Executor`].

fvm/src/executor/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ use fvm_shared::receipt::Receipt;
1616
use num_traits::Zero;
1717
pub use threaded::ThreadedExecutor;
1818

19+
use crate::Kernel;
1920
use crate::call_manager::Backtrace;
2021
use crate::trace::ExecutionTrace;
21-
use crate::Kernel;
2222

2323
/// An executor executes messages on the underlying machine/kernel. It's responsible for:
2424
///

fvm/src/gas/charge.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
use std::borrow::Cow;
66

7-
use super::timer::GasDuration;
87
use super::Gas;
8+
use super::timer::GasDuration;
99

1010
/// Single gas charge in the VM. Contains information about what gas was for, as well
1111
/// as the amount of gas needed for computation and storage respectively.

fvm/src/gas/mod.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use num_traits::Zero;
1111

1212
pub use self::charge::GasCharge;
1313
pub(crate) use self::outputs::GasOutputs;
14-
pub use self::price_list::{price_list_by_network_version, PriceList, WasmGasPrices};
14+
pub use self::price_list::{PriceList, WasmGasPrices, price_list_by_network_version};
1515
pub use self::timer::{GasInstant, GasTimer};
1616
use crate::kernel::{ClassifyResult, ExecutionError, Result};
1717

@@ -302,9 +302,10 @@ mod tests {
302302
assert_eq!(t.gas_used(), Gas::new(15));
303303
t.apply_charge(GasCharge::new("", Gas::new(5), Gas::zero()))?;
304304
assert_eq!(t.gas_used(), Gas::new(20));
305-
assert!(t
306-
.apply_charge(GasCharge::new("", Gas::new(1), Gas::zero()))
307-
.is_err());
305+
assert!(
306+
t.apply_charge(GasCharge::new("", Gas::new(1), Gas::zero()))
307+
.is_err()
308+
);
308309
Ok(())
309310
}
310311

0 commit comments

Comments
 (0)