Apply suggestions from previous review

This commit is contained in:
Sebastian Miasojed
2024-11-14 11:20:33 +01:00
parent 14991f40ac
commit ce8bf3d9ef
25 changed files with 75 additions and 76 deletions
+1
View File
@@ -8,6 +8,7 @@
/*.s
/llvm-project
/llvm18.0
/llvm18.0-emscripten
node_modules
artifacts
tmp
+2 -2
View File
@@ -8,8 +8,8 @@ use std::path::Path;
use serde::Deserialize;
use serde::Serialize;
use crate::compiler::combined_json::contract::Contract as CombinedJsonContract;
use crate::compiler::standard_json::output::contract::Contract as StandardJsonOutputContract;
use crate::solc::combined_json::contract::Contract as CombinedJsonContract;
use crate::solc::standard_json::output::contract::Contract as StandardJsonOutputContract;
/// The Solidity contract build.
#[derive(Debug, Serialize, Deserialize)]
+3 -3
View File
@@ -5,9 +5,9 @@ pub mod contract;
use std::collections::BTreeMap;
use std::path::Path;
use crate::compiler::combined_json::CombinedJson;
use crate::compiler::standard_json::output::Output as StandardJsonOutput;
use crate::compiler::version::Version as SolcVersion;
use crate::solc::combined_json::CombinedJson;
use crate::solc::standard_json::output::Output as StandardJsonOutput;
use crate::solc::version::Version as SolcVersion;
use crate::ResolcVersion;
use self::contract::Contract;
+1 -1
View File
@@ -9,7 +9,7 @@ use std::collections::HashSet;
use serde::Deserialize;
use serde::Serialize;
use crate::compiler::standard_json::output::contract::evm::extra_metadata::ExtraMetadata;
use crate::solc::standard_json::output::contract::evm::extra_metadata::ExtraMetadata;
use crate::evmla::ethereal_ir::entry_link::EntryLink;
use crate::evmla::ethereal_ir::EtherealIR;
@@ -20,8 +20,8 @@ use num::One;
use num::ToPrimitive;
use num::Zero;
use crate::compiler::standard_json::output::contract::evm::extra_metadata::recursive_function::RecursiveFunction;
use crate::compiler::standard_json::output::contract::evm::extra_metadata::ExtraMetadata;
use crate::solc::standard_json::output::contract::evm::extra_metadata::recursive_function::RecursiveFunction;
use crate::solc::standard_json::output::contract::evm::extra_metadata::ExtraMetadata;
use crate::evmla::assembly::instruction::name::Name as InstructionName;
use crate::evmla::assembly::instruction::Instruction;
use crate::evmla::ethereal_ir::function::block::element::stack::element::Element;
+1 -1
View File
@@ -7,7 +7,7 @@ use std::collections::BTreeMap;
use std::collections::BTreeSet;
use std::collections::HashMap;
use crate::compiler::standard_json::output::contract::evm::extra_metadata::ExtraMetadata;
use crate::solc::standard_json::output::contract::evm::extra_metadata::ExtraMetadata;
use crate::evmla::assembly::instruction::Instruction;
use self::function::block::Block;
+23 -24
View File
@@ -1,8 +1,7 @@
//! Solidity to PolkaVM compiler library.
pub(crate) mod build;
#[path = "solc/compiler.rs"]
pub(crate) mod compiler;
pub(crate) mod solc;
pub(crate) mod r#const;
pub(crate) mod evmla;
pub(crate) mod missing_libraries;
@@ -14,28 +13,28 @@ pub(crate) mod yul;
pub use self::build::contract::Contract as ContractBuild;
pub use self::build::Build;
pub use self::compiler::combined_json::contract::Contract as SolcCombinedJsonContract;
pub use self::compiler::combined_json::CombinedJson as SolcCombinedJson;
pub use self::compiler::pipeline::Pipeline as SolcPipeline;
pub use self::solc::combined_json::contract::Contract as SolcCombinedJsonContract;
pub use self::solc::combined_json::CombinedJson as SolcCombinedJson;
pub use self::solc::pipeline::Pipeline as SolcPipeline;
#[cfg(not(target_os = "emscripten"))]
pub use self::compiler::solc::SolcCompiler;
pub use self::solc::solc::SolcCompiler;
#[cfg(target_os = "emscripten")]
pub use self::compiler::soljson::SoljsonCompiler;
pub use self::compiler::standard_json::input::language::Language as SolcStandardJsonInputLanguage;
pub use self::compiler::standard_json::input::settings::metadata::Metadata as SolcStandardJsonInputSettingsMetadata;
pub use self::compiler::standard_json::input::settings::optimizer::Optimizer as SolcStandardJsonInputSettingsOptimizer;
pub use self::compiler::standard_json::input::settings::selection::file::flag::Flag as SolcStandardJsonInputSettingsSelectionFileFlag;
pub use self::compiler::standard_json::input::settings::selection::file::File as SolcStandardJsonInputSettingsSelectionFile;
pub use self::compiler::standard_json::input::settings::selection::Selection as SolcStandardJsonInputSettingsSelection;
pub use self::compiler::standard_json::input::settings::Settings as SolcStandardJsonInputSettings;
pub use self::compiler::standard_json::input::source::Source as SolcStandardJsonInputSource;
pub use self::compiler::standard_json::input::Input as SolcStandardJsonInput;
pub use self::compiler::standard_json::output::contract::evm::bytecode::Bytecode as SolcStandardJsonOutputContractEVMBytecode;
pub use self::compiler::standard_json::output::contract::evm::EVM as SolcStandardJsonOutputContractEVM;
pub use self::compiler::standard_json::output::contract::Contract as SolcStandardJsonOutputContract;
pub use self::compiler::standard_json::output::Output as SolcStandardJsonOutput;
pub use self::compiler::version::Version as SolcVersion;
pub use self::compiler::Compiler;
pub use self::solc::soljson::SoljsonCompiler;
pub use self::solc::standard_json::input::language::Language as SolcStandardJsonInputLanguage;
pub use self::solc::standard_json::input::settings::metadata::Metadata as SolcStandardJsonInputSettingsMetadata;
pub use self::solc::standard_json::input::settings::optimizer::Optimizer as SolcStandardJsonInputSettingsOptimizer;
pub use self::solc::standard_json::input::settings::selection::file::flag::Flag as SolcStandardJsonInputSettingsSelectionFileFlag;
pub use self::solc::standard_json::input::settings::selection::file::File as SolcStandardJsonInputSettingsSelectionFile;
pub use self::solc::standard_json::input::settings::selection::Selection as SolcStandardJsonInputSettingsSelection;
pub use self::solc::standard_json::input::settings::Settings as SolcStandardJsonInputSettings;
pub use self::solc::standard_json::input::source::Source as SolcStandardJsonInputSource;
pub use self::solc::standard_json::input::Input as SolcStandardJsonInput;
pub use self::solc::standard_json::output::contract::evm::bytecode::Bytecode as SolcStandardJsonOutputContractEVMBytecode;
pub use self::solc::standard_json::output::contract::evm::EVM as SolcStandardJsonOutputContractEVM;
pub use self::solc::standard_json::output::contract::Contract as SolcStandardJsonOutputContract;
pub use self::solc::standard_json::output::Output as SolcStandardJsonOutput;
pub use self::solc::version::Version as SolcVersion;
pub use self::solc::Compiler;
pub use self::missing_libraries::MissingLibraries;
pub use self::process::input::Input as ProcessInput;
#[cfg(not(target_os = "emscripten"))]
@@ -75,10 +74,10 @@ pub fn yul<T: Compiler>(
),
};
if solc.version()?.default != compiler::LAST_SUPPORTED_VERSION {
if solc.version()?.default != solc::LAST_SUPPORTED_VERSION {
anyhow::bail!(
"The Yul mode is only supported with the most recent version of the Solidity compiler: {}",
compiler::LAST_SUPPORTED_VERSION,
solc::LAST_SUPPORTED_VERSION,
);
}
+2 -2
View File
@@ -3,8 +3,8 @@
use std::collections::BTreeMap;
use std::collections::HashSet;
use crate::compiler::standard_json::output::Output as StandardJsonOutput;
use crate::compiler::version::Version as SolcVersion;
use crate::solc::standard_json::output::Output as StandardJsonOutput;
use crate::solc::version::Version as SolcVersion;
use crate::ResolcVersion;
/// The missing Solidity libraries.
@@ -5,7 +5,7 @@ use std::collections::HashSet;
use serde::Deserialize;
use serde::Serialize;
use crate::compiler::standard_json::output::contract::evm::extra_metadata::ExtraMetadata;
use crate::solc::standard_json::output::contract::evm::extra_metadata::ExtraMetadata;
use crate::evmla::assembly::Assembly;
/// The contract EVM legacy assembly source code.
@@ -9,7 +9,7 @@ use std::collections::HashSet;
use serde::Deserialize;
use serde::Serialize;
use crate::compiler::standard_json::output::contract::evm::extra_metadata::ExtraMetadata;
use crate::solc::standard_json::output::contract::evm::extra_metadata::ExtraMetadata;
use crate::evmla::assembly::Assembly;
use crate::yul::parser::statement::object::Object;
+1 -1
View File
@@ -12,7 +12,7 @@ use sha3::Digest;
use revive_llvm_context::PolkaVMWriteLLVM;
use crate::build::contract::Contract as ContractBuild;
use crate::compiler::version::Version as SolcVersion;
use crate::solc::version::Version as SolcVersion;
use crate::project::Project;
use self::ir::IR;
+3 -4
View File
@@ -15,9 +15,8 @@ use sha3::Digest;
use crate::build::contract::Contract as ContractBuild;
use crate::build::Build;
use crate::compiler;
use crate::compiler::version::Version as SolcVersion;
use crate::compiler::Compiler;
use crate::solc::version::Version as SolcVersion;
use crate::solc::Compiler;
use crate::missing_libraries::MissingLibraries;
use crate::process::input::Input as ProcessInput;
use crate::process::Process;
@@ -189,7 +188,7 @@ impl Project {
solc.validate_yul(path)?;
}
let source_version = SolcVersion::new_simple(compiler::LAST_SUPPORTED_VERSION);
let source_version = SolcVersion::new_simple(crate::solc::LAST_SUPPORTED_VERSION);
let path = path.to_string_lossy().to_string();
let source_hash = sha3::Keccak256::digest(source_code.as_bytes()).into();
+2 -2
View File
@@ -2,7 +2,7 @@
use serde::{Deserialize, Serialize};
use crate::compiler::version::Version as SolcVersion;
use crate::solc::version::Version as SolcVersion;
/// The Solidity compiler pipeline type.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
@@ -18,7 +18,7 @@ pub enum Pipeline {
impl Pipeline {
/// We always use EVMLA for Solidity <=0.7, or if the user does not want to compile via Yul.
pub fn new(solc_version: &SolcVersion, force_evmla: bool) -> Self {
if solc_version.default < crate::compiler::FIRST_YUL_VERSION || force_evmla {
if solc_version.default < crate::solc::FIRST_YUL_VERSION || force_evmla {
Self::EVMLA
} else {
Self::Yul
+5 -5
View File
@@ -4,11 +4,11 @@ use std::io::Write;
use std::path::Path;
use std::path::PathBuf;
use crate::compiler::combined_json::CombinedJson;
use crate::compiler::pipeline::Pipeline;
use crate::compiler::standard_json::input::Input as StandardJsonInput;
use crate::compiler::standard_json::output::Output as StandardJsonOutput;
use crate::compiler::version::Version;
use crate::solc::combined_json::CombinedJson;
use crate::solc::pipeline::Pipeline;
use crate::solc::standard_json::input::Input as StandardJsonInput;
use crate::solc::standard_json::output::Output as StandardJsonOutput;
use crate::solc::version::Version;
use super::Compiler;
+5 -5
View File
@@ -3,11 +3,11 @@
use std::path::Path;
use std::path::PathBuf;
use crate::compiler::combined_json::CombinedJson;
use crate::compiler::pipeline::Pipeline;
use crate::compiler::standard_json::input::Input as StandardJsonInput;
use crate::compiler::standard_json::output::Output as StandardJsonOutput;
use crate::compiler::version::Version;
use crate::solc::combined_json::CombinedJson;
use crate::solc::pipeline::Pipeline;
use crate::solc::standard_json::input::Input as StandardJsonInput;
use crate::solc::standard_json::output::Output as StandardJsonOutput;
use crate::solc::version::Version;
use anyhow::Context;
use std::ffi::{c_char, c_void, CStr, CString};
@@ -13,10 +13,10 @@ use rayon::iter::{IntoParallelIterator, ParallelIterator};
use serde::Deserialize;
use serde::Serialize;
use crate::compiler::pipeline::Pipeline as SolcPipeline;
use crate::compiler::standard_json::input::settings::metadata::Metadata as SolcStandardJsonInputSettingsMetadata;
use crate::compiler::standard_json::input::settings::optimizer::Optimizer as SolcStandardJsonInputSettingsOptimizer;
use crate::compiler::standard_json::input::settings::selection::Selection as SolcStandardJsonInputSettingsSelection;
use crate::solc::pipeline::Pipeline as SolcPipeline;
use crate::solc::standard_json::input::settings::metadata::Metadata as SolcStandardJsonInputSettingsMetadata;
use crate::solc::standard_json::input::settings::optimizer::Optimizer as SolcStandardJsonInputSettingsOptimizer;
use crate::solc::standard_json::input::settings::selection::Selection as SolcStandardJsonInputSettingsSelection;
use crate::warning::Warning;
use self::language::Language;
@@ -3,7 +3,7 @@
use serde::Deserialize;
use serde::Serialize;
use crate::compiler::pipeline::Pipeline as SolcPipeline;
use crate::solc::pipeline::Pipeline as SolcPipeline;
/// The `solc --standard-json` expected output selection flag.
#[derive(Debug, Serialize, Deserialize, Clone, Copy, PartialEq, Eq, Hash)]
@@ -7,7 +7,7 @@ use std::collections::HashSet;
use serde::Deserialize;
use serde::Serialize;
use crate::compiler::pipeline::Pipeline as SolcPipeline;
use crate::solc::pipeline::Pipeline as SolcPipeline;
use self::flag::Flag as SelectionFlag;
@@ -5,7 +5,7 @@ pub mod file;
use serde::Deserialize;
use serde::Serialize;
use crate::compiler::pipeline::Pipeline as SolcPipeline;
use crate::solc::pipeline::Pipeline as SolcPipeline;
use self::file::File as FileSelection;
@@ -10,8 +10,8 @@ use serde::Deserialize;
use serde::Serialize;
use sha3::Digest;
use crate::compiler::pipeline::Pipeline as SolcPipeline;
use crate::compiler::version::Version as SolcVersion;
use crate::solc::pipeline::Pipeline as SolcPipeline;
use crate::solc::version::Version as SolcVersion;
use crate::evmla::assembly::instruction::Instruction;
use crate::evmla::assembly::Assembly;
use crate::project::contract::ir::IR as ProjectContractIR;
@@ -3,9 +3,9 @@
use serde::Deserialize;
use serde::Serialize;
use crate::compiler::pipeline::Pipeline as SolcPipeline;
use crate::compiler::standard_json::output::error::Error as SolcStandardJsonOutputError;
use crate::compiler::version::Version as SolcVersion;
use crate::solc::pipeline::Pipeline as SolcPipeline;
use crate::solc::standard_json::output::error::Error as SolcStandardJsonOutputError;
use crate::solc::version::Version as SolcVersion;
use crate::warning::Warning;
/// The `solc --standard-json` output source.
+9 -9
View File
@@ -7,15 +7,15 @@ use std::sync::Mutex;
use once_cell::sync::Lazy;
use crate::compiler::pipeline::Pipeline as SolcPipeline;
use crate::compiler::solc::SolcCompiler;
use crate::compiler::standard_json::input::settings::optimizer::Optimizer as SolcStandardJsonInputSettingsOptimizer;
use crate::compiler::standard_json::input::settings::selection::Selection as SolcStandardJsonInputSettingsSelection;
use crate::compiler::standard_json::input::Input as SolcStandardJsonInput;
use crate::compiler::standard_json::output::contract::evm::bytecode::Bytecode;
use crate::compiler::standard_json::output::contract::evm::bytecode::DeployedBytecode;
use crate::compiler::standard_json::output::Output as SolcStandardJsonOutput;
use crate::compiler::Compiler;
use crate::solc::pipeline::Pipeline as SolcPipeline;
use crate::solc::solc::SolcCompiler;
use crate::solc::standard_json::input::settings::optimizer::Optimizer as SolcStandardJsonInputSettingsOptimizer;
use crate::solc::standard_json::input::settings::selection::Selection as SolcStandardJsonInputSettingsSelection;
use crate::solc::standard_json::input::Input as SolcStandardJsonInput;
use crate::solc::standard_json::output::contract::evm::bytecode::Bytecode;
use crate::solc::standard_json::output::contract::evm::bytecode::DeployedBytecode;
use crate::solc::standard_json::output::Output as SolcStandardJsonOutput;
use crate::solc::Compiler;
use crate::project::Project;
use crate::warning::Warning;
+1 -1
View File
File diff suppressed because one or more lines are too long
BIN
View File
Binary file not shown.