Skip to content

Commit e8048d8

Browse files
committed
Separate Jet env from Jet trait
1 parent 80f3821 commit e8048d8

14 files changed

Lines changed: 211 additions & 1032 deletions

File tree

jets-bench/benches/elements/main.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use elements::confidential;
55
use rand::rngs::ThreadRng;
66
use simplicity::elements;
77
use simplicity::jet::elements::ElementsEnv;
8-
use simplicity::jet::{Elements, Jet};
8+
use simplicity::jet::{Elements, ElementsTxEnv, Jet, JetEnvironment};
99
use simplicity::types;
1010
use simplicity::types::Final;
1111
use simplicity::Value;
@@ -625,7 +625,7 @@ fn bench(c: &mut Criterion) {
625625
let (src, dst) = buffer.write(&src_ty, params, &mut rng);
626626
(dst, src, &env, buffer)
627627
},
628-
|(mut dst, src, env, _buffer)| jet.c_jet_ptr()(&mut dst, src, env.c_tx_env()),
628+
|(mut dst, src, env, _buffer)| ElementsTxEnv::c_jet_ptr(&jet)(&mut dst, src, env.c_tx_env()),
629629
BatchSize::SmallInput,
630630
)
631631
});
@@ -743,7 +743,7 @@ fn bench(c: &mut Criterion) {
743743
let (src, dst) = buffer.write(&src_ty, params, &mut rng);
744744
(dst, src, buffer)
745745
},
746-
|(mut dst, src, _buffer)| jet.c_jet_ptr()(&mut dst, src, env.c_tx_env()),
746+
|(mut dst, src, _buffer)| ElementsTxEnv::c_jet_ptr(&jet)(&mut dst, src, env.c_tx_env()),
747747
BatchSize::SmallInput,
748748
)
749749
});
@@ -806,7 +806,7 @@ fn bench(c: &mut Criterion) {
806806
let (src, dst) = buffer.write(&src_ty, params, &mut rng);
807807
(dst, src, buffer)
808808
},
809-
|(mut dst, src, _buffer)| jet.c_jet_ptr()(&mut dst, src, env.c_tx_env()),
809+
|(mut dst, src, _buffer)| ElementsTxEnv::c_jet_ptr(&jet)(&mut dst, src, env.c_tx_env()),
810810
BatchSize::SmallInput,
811811
)
812812
});
@@ -903,7 +903,7 @@ fn bench(c: &mut Criterion) {
903903
let (src, dst) = buffer.write(&src_ty, params, &mut rng);
904904
(dst, src, buffer)
905905
},
906-
|(mut dst, src, _buffer)| jet.c_jet_ptr()(&mut dst, src, env.c_tx_env()),
906+
|(mut dst, src, _buffer)| ElementsTxEnv::c_jet_ptr(&jet)(&mut dst, src, env.c_tx_env()),
907907
BatchSize::SmallInput,
908908
)
909909
});

jets-bench/src/input.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use simplicity::ffi::c_jets::frame_ffi::c_writeBit;
88
use simplicity::ffi::ffi::UWORD;
99
use simplicity::ffi::CFrameItem;
1010
use simplicity::hashes::Hash;
11-
use simplicity::jet::Elements;
11+
use simplicity::jet::{Elements, ElementsTxEnv, JetEnvironment};
1212
use simplicity::types::{self, CompleteBound};
1313
use simplicity::Value;
1414

@@ -296,7 +296,6 @@ impl FlatValue {
296296
fn call_jet(&self, jet: Elements, dest_bits: usize) -> Self {
297297
use core::{mem, ptr};
298298
use simplicity::ffi::c_jets::uword_width;
299-
use simplicity::jet::Jet as _;
300299

301300
assert!(dest_bits <= 8 * MAX_VALUE_BYTES);
302301
let mut ret = Self::zero_n_bits(dest_bits);
@@ -354,10 +353,11 @@ impl FlatValue {
354353

355354
// We can assert this because in our sampling code jets should never
356355
// fail. In the benchmarking code they might.
357-
assert!(jet.c_jet_ptr()(
356+
357+
assert!(ElementsTxEnv::c_jet_ptr(&jet)(
358358
&mut dst_write_frame,
359359
src_read_frame,
360-
Elements::c_jet_env(&env)
360+
env.c_tx_env()
361361
));
362362
// The write frame winds up as an array of usizes with all bytes in
363363
// reverse order. (The bytes of the usizes are in reverse order due
@@ -1366,8 +1366,12 @@ impl InputSample for DivMod12864Input {
13661366
for (bit1, bit2) in sample_1.bit_iter().zip(sample_2.bit_iter()) {
13671367
match (bit1, bit2) {
13681368
(false, false) | (true, true) => {} // both equal
1369-
(true, false) => return FlatValue::product(&[sample_2, UniformBits.sample(0, 64), sample_1]),
1370-
(false, true) => return FlatValue::product(&[sample_1, UniformBits.sample(0, 64), sample_2]),
1369+
(true, false) => {
1370+
return FlatValue::product(&[sample_2, UniformBits.sample(0, 64), sample_1])
1371+
}
1372+
(false, true) => {
1373+
return FlatValue::product(&[sample_1, UniformBits.sample(0, 64), sample_2])
1374+
}
13711375
}
13721376
}
13731377
unreachable!("if we get here, two uniform 63-bit samples were exactly equal")
@@ -1428,7 +1432,7 @@ mod tests {
14281432

14291433
let (src, mut dst) = buffer.write(&src_ty, &params, &mut rand::thread_rng());
14301434

1431-
jet.c_jet_ptr()(&mut dst, src, env.c_tx_env());
1435+
ElementsTxEnv::c_jet_ptr(&jet)(&mut dst, src, env.c_tx_env());
14321436
}
14331437

14341438
#[test]

0 commit comments

Comments
 (0)