diff --git a/lisp/lisp.rs b/lisp/lisp.rs index b3e2701b5..20e407e3b 100644 --- a/lisp/lisp.rs +++ b/lisp/lisp.rs @@ -300,8 +300,7 @@ fn eval(mut ast: MalVal, mut env: Env) -> MalRet { } Sym(ref a0sym) if a0sym == "setup" => { let a1 = l[1].clone(); - let circuit = setup(&ast, env.clone())?; - env_sets(&env, ZK_CIRCUIT_ENV_KEY, circuit); + setup(a1.clone(), env.clone())?; eval(a1.clone(), env.clone()) } Sym(ref a0sym) if a0sym == "prove" => { @@ -389,7 +388,7 @@ pub fn env_circuit(mut env: Env) -> MalVal { } } -pub fn setup(ast: &MalVal, mut env: Env) -> MalRet { +pub fn setup(ast: MalVal, mut env: Env) -> MalRet { println!("{:?}", ast); // TODO get params from ast let start = Instant::now(); diff --git a/lisp/types.rs b/lisp/types.rs index d9eb2789b..d5572b829 100644 --- a/lisp/types.rs +++ b/lisp/types.rs @@ -14,12 +14,18 @@ use crate::types::MalVal::{Atom, Bool, Func, Hash, Int, List, MalFunc, Nil, Str, use bls12_381::Scalar; use sapvi::{BlsStringConversion, ConstraintInstruction}; +#[derive(Debug, Clone)] +pub struct Allocation { + pub symbol: String, + pub value: Scalar +} + #[derive(Debug, Clone)] pub struct LispCircuit { // TODO refactor to vec pub params: Vec>, - pub allocs: Vec>, - pub alloc_inputs: Vec>, + pub allocs: Vec>, + pub alloc_inputs: Vec>, pub constraints: Vec>, pub env: Env, } @@ -29,6 +35,13 @@ impl Circuit for LispCircuit { self, cs: &mut CS, ) -> Result<(), SynthesisError> { + + for alloc_value in &self.allocs { +// let var = cs.alloc(|| "private alloc", ||)?; + // TODO use env + println!("{:?}", alloc_value); + } + Ok(()) } }