Skip to content

Commit

Permalink
refactor(miden): use stdlib as assembler provider
Browse files Browse the repository at this point in the history
  • Loading branch information
vlopes11 committed Oct 27, 2022
1 parent 854861c commit 025b62f
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 13 deletions.
1 change: 1 addition & 0 deletions miden/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ prover = { package = "miden-prover", path = "../prover", version = "0.3", defaul
serde = {version = "1.0.117", optional = true }
serde_derive = {version = "1.0.117", optional = true }
serde_json = {version = "1.0.59", optional = true }
stdlib = { package = "miden-stdlib", path = "../stdlib", version = "0.2", default-features = false }
structopt = { version = "0.3", default-features = false, optional = true }
verifier = { package = "miden-verifier", path = "../verifier", version = "0.3", default-features = false }
winter-utils = { package = "winter-utils", version = "0.4", optional = true }
Expand Down
5 changes: 3 additions & 2 deletions miden/src/cli/data.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
use assembly::Assembler;
use miden::Assembler;
use prover::StarkProof;
use serde_derive::{Deserialize, Serialize};
use std::path::{Path, PathBuf};
use std::{fs, io::Write, time::Instant};
use stdlib::StdLibrary;
use vm_core::ProgramOutputs;
use vm_core::{chiplets::hasher::Digest, Program, ProgramInputs};
use winter_utils::{Deserializable, SliceReader};
Expand Down Expand Up @@ -179,7 +180,7 @@ impl ProgramFile {
let now = Instant::now();

// compile program
let program = Assembler::default()
let program = Assembler::with_module_provider(StdLibrary::default(), false)
.compile(&program_file)
.map_err(|err| format!("Failed to compile program - {}", err))?;

Expand Down
6 changes: 4 additions & 2 deletions miden/src/examples/fibonacci.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use super::Example;
use miden::{Assembler, Program, ProgramInputs};
use stdlib::StdLibrary;
use vm_core::{Felt, FieldElement, StarkField};

// EXAMPLE BUILDER
Expand Down Expand Up @@ -40,8 +41,9 @@ fn generate_fibonacci_program(n: usize) -> Program {
n - 1
);

let assembler = Assembler::default();
assembler.compile(&program).unwrap()
Assembler::with_module_provider(StdLibrary::default(), false)
.compile(&program)
.unwrap()
}

/// Computes the `n`-th term of Fibonacci sequence
Expand Down
7 changes: 4 additions & 3 deletions miden/src/tools/mod.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
use super::cli::InputFile;
use assembly::{Assembler, AssemblyError};
use assembly::AssemblyError;
use core::fmt;
use miden::Assembler;
use processor::{AsmOpInfo, ExecutionError};
use std::path::PathBuf;
use stdlib::StdLibrary;
use structopt::StructOpt;
use vm_core::{utils::collections::Vec, Operation, ProgramInputs};

Expand Down Expand Up @@ -139,8 +141,7 @@ impl fmt::Display for ProgramInfo {

/// Returns program analysis of a given program.
pub fn analyze(program: &str, inputs: ProgramInputs) -> Result<ProgramInfo, ProgramError> {
let assembler = Assembler::new(true);
let program = assembler
let program = Assembler::with_module_provider(StdLibrary::default(), true)
.compile(program)
.map_err(ProgramError::AssemblyError)?;
let vm_state_iterator = processor::execute_iter(&program, &inputs);
Expand Down
18 changes: 12 additions & 6 deletions miden/tests/integration/helpers/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
pub use miden::{ProofOptions, StarkProof};
use processor::{ExecutionError, ExecutionTrace, Process, VmStateIterator};
use proptest::prelude::*;
use stdlib::StdLibrary;
pub use vm_core::{
stack::STACK_TOP_SIZE, Felt, FieldElement, Program, ProgramInputs, ProgramOutputs,
};
Expand Down Expand Up @@ -137,12 +138,17 @@ impl Test {

/// Compiles a test's source and returns the resulting Program.
pub fn compile(&self) -> Program {
let assembler = match self.kernel {
Some(ref kernel) => assembly::Assembler::with_kernel(kernel, self.in_debug_mode)
.expect("kernel compilation failed"),
None => assembly::Assembler::new(self.in_debug_mode),
};
assembler
self.kernel
.as_ref()
.map(|kernel| {
let mut assembler = assembly::Assembler::with_kernel(kernel, self.in_debug_mode)
.expect("kernel compilation failed");
assembler.add_module_provider(StdLibrary::default());
assembler
})
.unwrap_or_else(|| {
assembly::Assembler::with_module_provider(StdLibrary::default(), self.in_debug_mode)
})
.compile(&self.source)
.expect("Failed to compile test source.")
}
Expand Down

0 comments on commit 025b62f

Please sign in to comment.