Skip to content

Commit

Permalink
chore(blockifier): sierra_compilation_config compile only w feture
Browse files Browse the repository at this point in the history
cairo_native (#3775)
  • Loading branch information
avivg-starkware authored Jan 30, 2025
1 parent a2a6253 commit 91889fd
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 2 deletions.
2 changes: 1 addition & 1 deletion crates/blockifier/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ sha2.workspace = true
starknet-types-core.workspace = true
starknet_api.workspace = true
starknet_infra_utils.workspace = true
starknet_sierra_multicompile.workspace = true
starknet_sierra_multicompile = { workspace = true, optional = true }
strum.workspace = true
strum_macros.workspace = true
tempfile.workspace = true
Expand Down
4 changes: 4 additions & 0 deletions crates/blockifier/src/blockifier/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use std::collections::BTreeMap;
use papyrus_config::dumping::{append_sub_config_name, ser_param, SerializeConfig};
use papyrus_config::{ParamPath, ParamPrivacyInput, SerializedParam};
use serde::{Deserialize, Serialize};
#[cfg(feature = "cairo_native")]
use starknet_sierra_multicompile::config::SierraCompilationConfig;

#[cfg(any(test, feature = "testing", feature = "native_blockifier"))]
Expand Down Expand Up @@ -83,6 +84,7 @@ impl SerializeConfig for ConcurrencyConfig {
pub struct ContractClassManagerConfig {
pub cairo_native_run_config: CairoNativeRunConfig,
pub contract_cache_size: usize,
#[cfg(feature = "cairo_native")]
pub native_compiler_config: SierraCompilationConfig,
}

Expand All @@ -91,6 +93,7 @@ impl Default for ContractClassManagerConfig {
Self {
cairo_native_run_config: CairoNativeRunConfig::default(),
contract_cache_size: GLOBAL_CONTRACT_CACHE_SIZE_FOR_TEST,
#[cfg(feature = "cairo_native")]
native_compiler_config: SierraCompilationConfig::default(),
}
}
Expand Down Expand Up @@ -120,6 +123,7 @@ impl SerializeConfig for ContractClassManagerConfig {
self.cairo_native_run_config.dump(),
"cairo_native_run_config",
));
#[cfg(feature = "cairo_native")]
dump.append(&mut append_sub_config_name(
self.native_compiler_config.dump(),
"native_compiler_config",
Expand Down
1 change: 1 addition & 0 deletions crates/native_blockifier/src/py_objects.rs
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ impl From<PyContractClassManagerConfig> for ContractClassManagerConfig {
cairo_native_run_config: py_contract_class_manager_config
.cairo_native_run_config
.into(),
#[cfg(feature = "cairo_native")]
native_compiler_config: py_contract_class_manager_config.native_compiler_config.into(),
}
}
Expand Down
1 change: 1 addition & 0 deletions crates/starknet_sequencer_node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ repository.workspace = true
license.workspace = true

[features]
cairo_native = []
testing = ["papyrus_proc_macros"]

[lints]
Expand Down
13 changes: 12 additions & 1 deletion crates/starknet_sequencer_node/src/config/config_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,23 @@ fn test_valid_component_execution_config(
assert_eq!(component_exe_config.validate(), Ok(()));
}

#[cfg(not(feature = "cairo_native"))]
fn remove_native_config(json: &mut serde_json::Value) {
if let Some(obj) = json.as_object_mut() {
// Remove fields related to Sierra compilation, used only when "cairo_native" feature is
// enabled.
obj.retain(|key, _| !key.contains("native_compiler_config."));
}
}

/// Test the validation of the struct SequencerNodeConfig and that the default config file is up to
/// date. To update the default config file, run:
/// cargo run --bin sequencer_dump_config -q
#[test]
fn test_default_config_file_is_up_to_date() {
env::set_current_dir(resolve_project_relative_path("").unwrap())
.expect("Couldn't set working dir.");
let from_default_config_file: serde_json::Value =
let mut from_default_config_file: serde_json::Value =
serde_json::from_reader(File::open(DEFAULT_CONFIG_PATH).unwrap()).unwrap();

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

println!(
"{}",
Expand Down

0 comments on commit 91889fd

Please sign in to comment.