Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove usage of sp-std from Substrate #7043

Merged
merged 17 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 0 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 51 additions & 0 deletions prdoc/pr_7043.prdoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
title: Remove usage of `sp-std` from Substrate
doc:
- audience: Runtime Dev
description: |-
# Description

This PR removes usage of deprecated `sp-std` from Substrate. (following PR of #5010)

## Integration

This PR doesn't remove re-exported `sp_std` from any crates yet, so downstream projects using re-exported `sp_std` will not be affected.

## Review Notes

The existing code using `sp-std` is refactored to use `alloc` and `core` directly. The key-value maps are instantiated from an array of tuples directly instead of using `sp_std::map!` macro.

This PR replaces `sp_std::Writer`, a helper type for using `Vec<u8>` with `core::fmt::Write` trait, with `alloc::string::String`.

crates:
- name: pallet-contracts
bump: patch
- name: pallet-revive
bump: patch
- name: sp-runtime
bump: patch
- name: frame-support-procedural
bump: patch
- name: frame-system
bump: patch
- name: pallet-contracts-proc-macro
bump: patch
- name: pallet-revive-proc-macro
bump: patch
- name: frame-support
bump: patch
- name: sc-sysinfo
bump: patch
- name: pallet-bags-list-remote-tests
bump: patch
- name: pallet-election-provider-e2e-test
bump: patch
- name: pallet-nft-fractionalization
bump: patch
- name: pallet-nomination-pools-test-delegate-stake
bump: patch
- name: pallet-nomination-pools-test-transfer-stake
bump: patch
- name: pallet-root-offences
bump: patch
- name: pallet-uniques
bump: patch
1 change: 0 additions & 1 deletion substrate/client/sysinfo/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ serde_json = { workspace = true, default-features = true }
sp-core = { workspace = true, default-features = true }
sp-crypto-hashing = { workspace = true, default-features = true }
sp-io = { workspace = true, default-features = true }
sp-std = { workspace = true, default-features = true }

[dev-dependencies]
sp-runtime = { workspace = true, default-features = true }
1 change: 0 additions & 1 deletion substrate/frame/bags-list/remote-tests/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ pallet-staking = { workspace = true, default-features = true }
# core
sp-core = { workspace = true, default-features = true }
sp-runtime = { workspace = true, default-features = true }
sp-std = { workspace = true, default-features = true }
sp-storage = { workspace = true, default-features = true }
sp-tracing = { workspace = true, default-features = true }

Expand Down
2 changes: 0 additions & 2 deletions substrate/frame/contracts/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ sp-api = { workspace = true }
sp-core = { workspace = true }
sp-io = { workspace = true }
sp-runtime = { workspace = true }
sp-std = { workspace = true }

xcm = { workspace = true }
xcm-builder = { workspace = true }
Expand Down Expand Up @@ -98,7 +97,6 @@ std = [
"sp-io/std",
"sp-keystore/std",
"sp-runtime/std",
"sp-std/std",
"wasm-instrument?/std",
"wasmi/std",
"xcm-builder/std",
Expand Down
7 changes: 3 additions & 4 deletions substrate/frame/contracts/proc-macro/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -650,10 +650,9 @@ fn expand_functions(def: &EnvDef, expand_mode: ExpandMode) -> TokenStream2 {
let result = #body;
if ::log::log_enabled!(target: "runtime::contracts::strace", ::log::Level::Trace) {
use core::fmt::Write;
let mut w = sp_std::Writer::default();
let _ = core::write!(&mut w, #trace_fmt_str, #( #trace_fmt_args, )* result);
let msg = core::str::from_utf8(&w.inner()).unwrap_or_default();
ctx.ext().append_debug_buffer(msg);
let mut msg = alloc::string::String::default();
let _ = core::write!(&mut msg, #trace_fmt_str, #( #trace_fmt_args, )* result);
ctx.ext().append_debug_buffer(&msg);
}
result
}
Expand Down
4 changes: 2 additions & 2 deletions substrate/frame/contracts/src/transient_storage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ use crate::{
storage::WriteOutcome,
Config, Error,
};
use alloc::{collections::BTreeMap, vec::Vec};
use codec::Encode;
use core::marker::PhantomData;
use core::{marker::PhantomData, mem};
use frame_support::DefaultNoBound;
use sp_runtime::{DispatchError, DispatchResult, Saturating};
use sp_std::{collections::btree_map::BTreeMap, mem, vec::Vec};

/// Meter entry tracks transaction allocations.
#[derive(Default, Debug)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ sp-io = { workspace = true, default-features = true }
sp-npos-elections = { workspace = true }
sp-runtime = { workspace = true, default-features = true }
sp-staking = { workspace = true, default-features = true }
sp-std = { workspace = true, default-features = true }
sp-tracing = { workspace = true, default-features = true }

frame-election-provider-support = { workspace = true, default-features = true }
Expand Down
1 change: 0 additions & 1 deletion substrate/frame/nft-fractionalization/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ sp-runtime = { workspace = true }
pallet-balances = { workspace = true, default-features = true }
sp-core = { workspace = true, default-features = true }
sp-io = { workspace = true, default-features = true }
sp-std = { workspace = true, default-features = true }

[features]
default = ["std"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ sp-core = { workspace = true, default-features = true }
sp-io = { workspace = true, default-features = true }
sp-runtime = { workspace = true, default-features = true }
sp-staking = { workspace = true, default-features = true }
sp-std = { workspace = true, default-features = true }

frame-election-provider-support = { workspace = true, default-features = true }
frame-support = { features = ["experimental"], workspace = true, default-features = true }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ sp-core = { workspace = true, default-features = true }
sp-io = { workspace = true, default-features = true }
sp-runtime = { workspace = true, default-features = true }
sp-staking = { workspace = true, default-features = true }
sp-std = { workspace = true, default-features = true }

frame-election-provider-support = { workspace = true, default-features = true }
frame-support = { workspace = true, default-features = true }
Expand Down
2 changes: 0 additions & 2 deletions substrate/frame/revive/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ sp-arithmetic = { workspace = true }
sp-core = { workspace = true }
sp-io = { workspace = true }
sp-runtime = { workspace = true }
sp-std = { workspace = true }
subxt-signer = { workspace = true, optional = true, features = [
"unstable-eth",
] }
Expand Down Expand Up @@ -99,7 +98,6 @@ std = [
"sp-io/std",
"sp-keystore/std",
"sp-runtime/std",
"sp-std/std",
"subxt-signer",
"xcm-builder/std",
"xcm/std",
Expand Down
7 changes: 3 additions & 4 deletions substrate/frame/revive/proc-macro/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -512,10 +512,9 @@ fn expand_functions(def: &EnvDef) -> TokenStream2 {
let result = (|| #body)();
if ::log::log_enabled!(target: "runtime::revive::strace", ::log::Level::Trace) {
use core::fmt::Write;
let mut w = sp_std::Writer::default();
let _ = core::write!(&mut w, #trace_fmt_str, #( #trace_fmt_args, )* result);
let msg = core::str::from_utf8(&w.inner()).unwrap_or_default();
self.ext().append_debug_buffer(msg);
let mut msg = alloc::string::String::default();
let _ = core::write!(&mut msg, #trace_fmt_str, #( #trace_fmt_args, )* result);
self.ext().append_debug_buffer(&msg);
}
result
}
Expand Down
4 changes: 2 additions & 2 deletions substrate/frame/revive/src/transient_storage.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ use crate::{
storage::WriteOutcome,
Config, Error,
};
use alloc::{collections::BTreeMap, vec::Vec};
use codec::Encode;
use core::marker::PhantomData;
use core::{marker::PhantomData, mem};
use frame_support::DefaultNoBound;
use sp_runtime::{DispatchError, DispatchResult, Saturating};
use sp_std::{collections::btree_map::BTreeMap, mem, vec::Vec};

/// Meter entry tracks transaction allocations.
#[derive(Default, Debug)]
Expand Down
1 change: 0 additions & 1 deletion substrate/frame/root-offences/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ pallet-timestamp = { workspace = true, default-features = true }

sp-core = { workspace = true, default-features = true }
sp-io = { workspace = true }
sp-std = { workspace = true, default-features = true }

frame-election-provider-support = { workspace = true, default-features = true }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ pub fn expand_config_metadata(def: &Def) -> proc_macro2::TokenStream {
ty: #frame_support::__private::scale_info::meta_type::<
<T as Config #trait_use_gen>::#ident
>(),
docs: #frame_support::__private::sp_std::vec![ #( #doc ),* ],
docs: #frame_support::__private::vec![ #( #doc ),* ],
}
})
});
Expand All @@ -136,9 +136,9 @@ pub fn expand_config_metadata(def: &Def) -> proc_macro2::TokenStream {

#[doc(hidden)]
pub fn pallet_associated_types_metadata()
-> #frame_support::__private::sp_std::vec::Vec<#frame_support::__private::metadata_ir::PalletAssociatedTypeMetadataIR>
-> #frame_support::__private::vec::Vec<#frame_support::__private::metadata_ir::PalletAssociatedTypeMetadataIR>
{
#frame_support::__private::sp_std::vec![ #( #types ),* ]
#frame_support::__private::vec![ #( #types ),* ]
}
}
)
Expand Down
7 changes: 4 additions & 3 deletions substrate/frame/support/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ pub mod __private {
pub use alloc::{
boxed::Box,
rc::Rc,
string::String,
vec,
vec::{IntoIter, Vec},
};
Expand Down Expand Up @@ -502,9 +503,9 @@ macro_rules! runtime_print {
($($arg:tt)+) => {
{
use core::fmt::Write;
let mut w = $crate::__private::sp_std::Writer::default();
let _ = core::write!(&mut w, $($arg)+);
$crate::__private::sp_io::misc::print_utf8(&w.inner())
let mut msg = $crate::__private::String::default();
let _ = core::write!(&mut msg, $($arg)+);
$crate::__private::sp_io::misc::print_utf8(msg.as_bytes())
}
}
}
Expand Down
2 changes: 0 additions & 2 deletions substrate/frame/system/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ serde = { features = ["alloc", "derive"], workspace = true }
sp-core = { features = ["serde"], workspace = true }
sp-io = { workspace = true }
sp-runtime = { features = ["serde"], workspace = true }
sp-std = { workspace = true }
sp-version = { features = ["serde"], workspace = true }
sp-weights = { features = ["serde"], workspace = true }

Expand All @@ -47,7 +46,6 @@ std = [
"sp-externalities/std",
"sp-io/std",
"sp-runtime/std",
"sp-std/std",
"sp-version/std",
"sp-weights/std",
]
Expand Down
16 changes: 8 additions & 8 deletions substrate/frame/system/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,6 @@ use sp_runtime::{
},
DispatchError, RuntimeDebug,
};
#[cfg(any(feature = "std", test))]
use sp_std::map;
use sp_version::RuntimeVersion;

use codec::{Decode, Encode, EncodeLike, FullCodec, MaxEncodedLen};
Expand Down Expand Up @@ -1920,12 +1918,14 @@ impl<T: Config> Pallet<T> {
#[cfg(any(feature = "std", test))]
pub fn externalities() -> TestExternalities {
TestExternalities::new(sp_core::storage::Storage {
top: map![
<BlockHash<T>>::hashed_key_for(BlockNumberFor::<T>::zero()) => [69u8; 32].encode(),
<Number<T>>::hashed_key().to_vec() => BlockNumberFor::<T>::one().encode(),
<ParentHash<T>>::hashed_key().to_vec() => [69u8; 32].encode()
],
children_default: map![],
top: [
(<BlockHash<T>>::hashed_key_for(BlockNumberFor::<T>::zero()), [69u8; 32].encode()),
(<Number<T>>::hashed_key().to_vec(), BlockNumberFor::<T>::one().encode()),
(<ParentHash<T>>::hashed_key().to_vec(), [69u8; 32].encode()),
]
.into_iter()
.collect(),
children_default: Default::default(),
})
}

Expand Down
1 change: 0 additions & 1 deletion substrate/frame/uniques/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ sp-runtime = { workspace = true }
pallet-balances = { workspace = true, default-features = true }
sp-core = { workspace = true, default-features = true }
sp-io = { workspace = true, default-features = true }
sp-std = { workspace = true, default-features = true }

[features]
default = ["std"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -683,7 +683,7 @@ mod legacy {
Extra: Encode,
{
fn encode(&self) -> Vec<u8> {
let mut tmp = Vec::with_capacity(sp_std::mem::size_of::<Self>());
let mut tmp = Vec::with_capacity(core::mem::size_of::<Self>());

// 1 byte version id.
match self.signature.as_ref() {
Expand Down
Loading
Loading