Skip to content

Commit 91889fd

Browse files
chore(blockifier): sierra_compilation_config compile only w feture
cairo_native (#3775)
1 parent a2a6253 commit 91889fd

File tree

5 files changed

+19
-2
lines changed

5 files changed

+19
-2
lines changed

crates/blockifier/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ sha2.workspace = true
5353
starknet-types-core.workspace = true
5454
starknet_api.workspace = true
5555
starknet_infra_utils.workspace = true
56-
starknet_sierra_multicompile.workspace = true
56+
starknet_sierra_multicompile = { workspace = true, optional = true }
5757
strum.workspace = true
5858
strum_macros.workspace = true
5959
tempfile.workspace = true

crates/blockifier/src/blockifier/config.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::collections::BTreeMap;
33
use papyrus_config::dumping::{append_sub_config_name, ser_param, SerializeConfig};
44
use papyrus_config::{ParamPath, ParamPrivacyInput, SerializedParam};
55
use serde::{Deserialize, Serialize};
6+
#[cfg(feature = "cairo_native")]
67
use starknet_sierra_multicompile::config::SierraCompilationConfig;
78

89
#[cfg(any(test, feature = "testing", feature = "native_blockifier"))]
@@ -83,6 +84,7 @@ impl SerializeConfig for ConcurrencyConfig {
8384
pub struct ContractClassManagerConfig {
8485
pub cairo_native_run_config: CairoNativeRunConfig,
8586
pub contract_cache_size: usize,
87+
#[cfg(feature = "cairo_native")]
8688
pub native_compiler_config: SierraCompilationConfig,
8789
}
8890

@@ -91,6 +93,7 @@ impl Default for ContractClassManagerConfig {
9193
Self {
9294
cairo_native_run_config: CairoNativeRunConfig::default(),
9395
contract_cache_size: GLOBAL_CONTRACT_CACHE_SIZE_FOR_TEST,
96+
#[cfg(feature = "cairo_native")]
9497
native_compiler_config: SierraCompilationConfig::default(),
9598
}
9699
}
@@ -120,6 +123,7 @@ impl SerializeConfig for ContractClassManagerConfig {
120123
self.cairo_native_run_config.dump(),
121124
"cairo_native_run_config",
122125
));
126+
#[cfg(feature = "cairo_native")]
123127
dump.append(&mut append_sub_config_name(
124128
self.native_compiler_config.dump(),
125129
"native_compiler_config",

crates/native_blockifier/src/py_objects.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ impl From<PyContractClassManagerConfig> for ContractClassManagerConfig {
244244
cairo_native_run_config: py_contract_class_manager_config
245245
.cairo_native_run_config
246246
.into(),
247+
#[cfg(feature = "cairo_native")]
247248
native_compiler_config: py_contract_class_manager_config.native_compiler_config.into(),
248249
}
249250
}

crates/starknet_sequencer_node/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ repository.workspace = true
66
license.workspace = true
77

88
[features]
9+
cairo_native = []
910
testing = ["papyrus_proc_macros"]
1011

1112
[lints]

crates/starknet_sequencer_node/src/config/config_test.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,23 @@ fn test_valid_component_execution_config(
6868
assert_eq!(component_exe_config.validate(), Ok(()));
6969
}
7070

71+
#[cfg(not(feature = "cairo_native"))]
72+
fn remove_native_config(json: &mut serde_json::Value) {
73+
if let Some(obj) = json.as_object_mut() {
74+
// Remove fields related to Sierra compilation, used only when "cairo_native" feature is
75+
// enabled.
76+
obj.retain(|key, _| !key.contains("native_compiler_config."));
77+
}
78+
}
79+
7180
/// Test the validation of the struct SequencerNodeConfig and that the default config file is up to
7281
/// date. To update the default config file, run:
7382
/// cargo run --bin sequencer_dump_config -q
7483
#[test]
7584
fn test_default_config_file_is_up_to_date() {
7685
env::set_current_dir(resolve_project_relative_path("").unwrap())
7786
.expect("Couldn't set working dir.");
78-
let from_default_config_file: serde_json::Value =
87+
let mut from_default_config_file: serde_json::Value =
7988
serde_json::from_reader(File::open(DEFAULT_CONFIG_PATH).unwrap()).unwrap();
8089

8190
let default_config = SequencerNodeConfig::default();
@@ -95,6 +104,8 @@ fn test_default_config_file_is_up_to_date() {
95104
// Read the dumped config from the file.
96105
let from_code: serde_json::Value =
97106
serde_json::from_reader(File::open(tmp_file_path).unwrap()).unwrap();
107+
#[cfg(not(feature = "cairo_native"))]
108+
remove_native_config(&mut from_default_config_file);
98109

99110
println!(
100111
"{}",

0 commit comments

Comments
 (0)