diff --git a/crates/fayalite/src/sim.rs b/crates/fayalite/src/sim.rs index b3e4cd6..4a7721b 100644 --- a/crates/fayalite/src/sim.rs +++ b/crates/fayalite/src/sim.rs @@ -2217,7 +2217,7 @@ impl SimulationImpl { | SimTraceKind::BigClock { index } => self .state .big_slots - .state_index_fetch_and_clear_maybe_modified_flag(index), + .state_index_fetch_maybe_modified_flag(index), SimTraceKind::SmallUInt { index, ty: _ } | SimTraceKind::SmallSInt { index, ty: _ } | SimTraceKind::SmallBool { index } @@ -2227,11 +2227,11 @@ impl SimulationImpl { | SimTraceKind::EnumDiscriminant { index, ty: _ } => self .state .small_slots - .state_index_fetch_and_clear_maybe_modified_flag(index), + .state_index_fetch_maybe_modified_flag(index), SimTraceKind::SimOnly { index, ty: _ } => self .state .sim_only_slots - .state_index_fetch_and_clear_maybe_modified_flag(index), + .state_index_fetch_maybe_modified_flag(index), SimTraceKind::PhantomConst { ty: _ } => IS_INITIAL_STEP, }; if !new_maybe_changed && !IS_INITIAL_STEP { @@ -2291,6 +2291,7 @@ impl SimulationImpl { last_state.clone_from(state); } } + self.state.clear_all_maybe_modified_flags(); } #[track_caller] fn advance_time(this_ref: &Rc>, duration: SimDuration) { diff --git a/crates/fayalite/src/sim/interpreter.rs b/crates/fayalite/src/sim/interpreter.rs index 0cf98d0..e16519b 100644 --- a/crates/fayalite/src/sim/interpreter.rs +++ b/crates/fayalite/src/sim/interpreter.rs @@ -914,11 +914,14 @@ impl StatePart { value: K::borrow_state(&mut self.value), } } - pub(crate) fn state_index_fetch_and_clear_maybe_modified_flag( - &mut self, + pub(crate) fn state_index_fetch_maybe_modified_flag( + &self, part_index: StatePartIndex, ) -> bool { - K::state_index_fetch_and_clear_maybe_modified_flag(&mut self.value, part_index) + K::state_index_fetch_maybe_modified_flag(&self.value, part_index) + } + pub(crate) fn clear_all_maybe_modified_flags(&mut self) { + K::clear_all_maybe_modified_flags(&mut self.value) } } @@ -1015,6 +1018,10 @@ macro_rules! make_state { $($type_plural_field: self.$type_plural_field.borrow(),)* } } + pub(crate) fn clear_all_maybe_modified_flags(&mut self) { + $(self.$state_plural_field.clear_all_maybe_modified_flags();)* + $(self.$type_plural_field.clear_all_maybe_modified_flags();)* + } } #[derive(Debug)] diff --git a/crates/fayalite/src/sim/interpreter/parts.rs b/crates/fayalite/src/sim/interpreter/parts.rs index d9e4214..308ac44 100644 --- a/crates/fayalite/src/sim/interpreter/parts.rs +++ b/crates/fayalite/src/sim/interpreter/parts.rs @@ -256,10 +256,11 @@ pub(crate) trait StatePartKind: state: &'a mut Self::State, part_index: StatePartIndex, ) -> &'a mut Self::StateElement; - fn state_index_fetch_and_clear_maybe_modified_flag( - state: &mut Self::State, + fn state_index_fetch_maybe_modified_flag( + state: &Self::State, part_index: StatePartIndex, ) -> bool; + fn clear_all_maybe_modified_flags(state: &mut Self::State); fn borrowed_state_index<'a, 'b>( state: &'a Self::BorrowedState<'b>, part_index: StatePartIndex, @@ -335,12 +336,13 @@ impl StatePartKind for StatePartKindMemories { ) -> &'a mut Self::StateElement { &mut state[part_index.as_usize()] } - fn state_index_fetch_and_clear_maybe_modified_flag( - _state: &mut Self::State, + fn state_index_fetch_maybe_modified_flag( + _state: &Self::State, _part_index: StatePartIndex, ) -> bool { true } + fn clear_all_maybe_modified_flags(_state: &mut Self::State) {} fn borrowed_state_index<'a, 'b>( state: &'a Self::BorrowedState<'b>, part_index: StatePartIndex, @@ -438,11 +440,14 @@ impl StatePartKind for StatePartKindSmallSlots { state.modified[part_index.as_usize()] = true; &mut state.state[part_index.as_usize()] } - fn state_index_fetch_and_clear_maybe_modified_flag( - state: &mut Self::State, + fn state_index_fetch_maybe_modified_flag( + state: &Self::State, part_index: StatePartIndex, ) -> bool { - std::mem::replace(&mut state.modified[part_index.as_usize()], false) + state.modified[part_index.as_usize()] + } + fn clear_all_maybe_modified_flags(state: &mut Self::State) { + state.modified.fill(false); } fn borrowed_state_index<'a, 'b>( state: &'a Self::BorrowedState<'b>, @@ -519,11 +524,14 @@ impl StatePartKind for StatePartKindBigSlots { state.modified[part_index.as_usize()] = true; &mut state.state[part_index.as_usize()] } - fn state_index_fetch_and_clear_maybe_modified_flag( - state: &mut Self::State, + fn state_index_fetch_maybe_modified_flag( + state: &Self::State, part_index: StatePartIndex, ) -> bool { - std::mem::replace(&mut state.modified[part_index.as_usize()], false) + state.modified[part_index.as_usize()] + } + fn clear_all_maybe_modified_flags(state: &mut Self::State) { + state.modified.fill(false); } fn borrowed_state_index<'a, 'b>( state: &'a Self::BorrowedState<'b>, @@ -600,11 +608,14 @@ impl StatePartKind for StatePartKindSimOnlySlots { state.modified[part_index.as_usize()] = true; &mut state.state[part_index.as_usize()] } - fn state_index_fetch_and_clear_maybe_modified_flag( - state: &mut Self::State, + fn state_index_fetch_maybe_modified_flag( + state: &Self::State, part_index: StatePartIndex, ) -> bool { - std::mem::replace(&mut state.modified[part_index.as_usize()], false) + state.modified[part_index.as_usize()] + } + fn clear_all_maybe_modified_flags(state: &mut Self::State) { + state.modified.fill(false); } fn borrowed_state_index<'a, 'b>( state: &'a Self::BorrowedState<'b>, diff --git a/crates/fayalite/tests/sim.rs b/crates/fayalite/tests/sim.rs index e57c064..53f7d9d 100644 --- a/crates/fayalite/tests/sim.rs +++ b/crates/fayalite/tests/sim.rs @@ -550,6 +550,150 @@ fn test_enums() { } } +#[hdl] +pub enum EnumWithSimpleBody { + A(UInt<8>), + B(UInt<8>), + C(UInt<8>), +} + +#[hdl_module(outline_generated)] +pub fn enum_with_simple_body() { + #[hdl] + let which_in: UInt<8> = m.input(); + #[hdl] + let data_in: UInt<8> = m.input(); + #[hdl] + let which_out: UInt<8> = m.output(); + #[hdl] + let data_out: UInt<8> = m.output(); + #[hdl] + let enum_out: EnumWithSimpleBody = m.output(); + + #[hdl] + if which_in.cmp_eq(0u8) { + connect(enum_out, EnumWithSimpleBody.A(data_in)); + } else if which_in.cmp_eq(1u8) { + connect(enum_out, EnumWithSimpleBody.B(data_in)); + } else { + connect(enum_out, EnumWithSimpleBody.C(data_in)); + } + + #[hdl] + match enum_out { + EnumWithSimpleBody::A(v) => { + connect(which_out, 0u8); + connect(data_out, v); + } + EnumWithSimpleBody::B(v) => { + connect(which_out, 1u8); + connect(data_out, v); + } + EnumWithSimpleBody::C(v) => { + connect(which_out, 2u8); + connect(data_out, v); + } + } +} + +#[hdl] +#[test] +fn test_enum_with_simple_body() { + let _n = SourceLocation::normalize_files_for_tests(); + let mut sim = Simulation::new(enum_with_simple_body()); + let mut writer = RcWriter::default(); + sim.add_trace_writer(VcdWriterDecls::new(writer.clone())); + for which in 0u8..=2 { + for data in (0..u8::MAX).step_by(45) { + sim.write(sim.io().which_in, which); + sim.write(sim.io().data_in, data); + sim.advance_time(SimDuration::from_micros(1)); + assert_eq!(sim.read(sim.io().which_out).as_int(), which); + assert_eq!(sim.read(sim.io().data_out).as_int(), data); + } + } + sim.flush_traces().unwrap(); + let vcd = String::from_utf8(writer.take()).unwrap(); + println!("####### VCD:\n{vcd}\n#######"); + #[derive(Debug)] + struct WireState<'a> { + name: &'a str, + space_then_id: Option<&'a str>, + value: Option<&'a str>, + } + impl<'a> WireState<'a> { + fn new(name: &'a str) -> Self { + Self { + name, + space_then_id: None, + value: None, + } + } + } + let mut variant_wires = [ + WireState::new("A"), + WireState::new("B"), + WireState::new("C"), + ]; + // check that output .vcd has the proper values for all variants' wires + for (is_last, line) in vcd.lines().map(|line| (false, line)).chain([(true, "")]) { + if let Some(line) = line.strip_prefix("$var wire 8") + && let Some(line) = line.strip_suffix(" $end") + && let Some((space_then_id, state)) = variant_wires + .iter_mut() + .find_map(|state| Some((line.strip_suffix(state.name)?.strip_suffix(" ")?, state))) + { + assert_eq!(space_then_id.chars().next(), Some(' ')); + assert!( + space_then_id + .chars() + .skip(1) + .all(|ch| matches!(ch, '!'..='~')) + ); + assert_eq!(state.space_then_id.replace(space_then_id), None); + } else if line.starts_with("#") || is_last { + let Some(expected_value) = variant_wires[0].value else { + panic!( + "variant {} hasn't been initialized before a timestamp or EOF: {variant_wires:#?}\n\ + line={line:?}", + variant_wires[0].name, + ); + }; + for state in &variant_wires { + assert_eq!( + state.value, + Some(expected_value), + "at a timestamp or EOF: variant value for {} doesn't match expected value.\n\ + {variant_wires:#?}\nline={line:?}", + state.name, + ); + } + } else if line.starts_with("b") { + for state in &mut variant_wires { + let Some(space_then_id) = state.space_then_id else { + let name = state.name; + panic!( + "variant {name} hasn't had an id assigned yet: {variant_wires:#?}\n\ + line={line:?}", + ); + }; + if let Some(value) = line.strip_suffix(space_then_id) { + state.value = Some(value); + break; + } + } + } + } + if vcd != include_str!("sim/expected/enum_with_simple_body.vcd") { + panic!(); + } + let sim_debug = format!("{sim:#?}"); + println!("#######\n{sim_debug}\n#######"); + if sim_debug != include_str!("sim/expected/enum_with_simple_body.txt") { + panic!(); + } +} + #[hdl_module(outline_generated)] pub fn memories() { #[hdl] diff --git a/crates/fayalite/tests/sim/expected/array_rw.txt b/crates/fayalite/tests/sim/expected/array_rw.txt index 2486eaa..271ec3c 100644 --- a/crates/fayalite/tests/sim/expected/array_rw.txt +++ b/crates/fayalite/tests/sim/expected/array_rw.txt @@ -424,8 +424,8 @@ Simulation { }, small_slots: StatePart { value: [ - 16 (modified), - 0 (modified), + 16, + 0, ], }, big_slots: StatePart { @@ -483,7 +483,7 @@ Simulation { 248, 252, 254, - 255 (modified), + 255, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/conditional_assignment_last.txt b/crates/fayalite/tests/sim/expected/conditional_assignment_last.txt index 0df7f20..74c03a4 100644 --- a/crates/fayalite/tests/sim/expected/conditional_assignment_last.txt +++ b/crates/fayalite/tests/sim/expected/conditional_assignment_last.txt @@ -86,8 +86,8 @@ Simulation { value: [ 1, 0, - 1 (modified), - 0 (modified), + 1, + 0, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/connect_const.txt b/crates/fayalite/tests/sim/expected/connect_const.txt index 6cf4014..8193fc5 100644 --- a/crates/fayalite/tests/sim/expected/connect_const.txt +++ b/crates/fayalite/tests/sim/expected/connect_const.txt @@ -63,7 +63,7 @@ Simulation { big_slots: StatePart { value: [ 5, - 5 (modified), + 5, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/connect_const_reset.txt b/crates/fayalite/tests/sim/expected/connect_const_reset.txt index a75ff8a..5a64923 100644 --- a/crates/fayalite/tests/sim/expected/connect_const_reset.txt +++ b/crates/fayalite/tests/sim/expected/connect_const_reset.txt @@ -90,9 +90,9 @@ Simulation { value: [ 1, 1, - 1 (modified), - 1 (modified), - 1 (modified), + 1, + 1, + 1, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/counter_async.txt b/crates/fayalite/tests/sim/expected/counter_async.txt index 256e1b7..20d27ac 100644 --- a/crates/fayalite/tests/sim/expected/counter_async.txt +++ b/crates/fayalite/tests/sim/expected/counter_async.txt @@ -185,10 +185,10 @@ Simulation { }, small_slots: StatePart { value: [ - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), + 0, + 0, + 1, + 0, ], }, big_slots: StatePart { @@ -197,12 +197,12 @@ Simulation { 0, 3, 3, - 4 (modified), - 3 (modified), - 0 (modified), - 1 (modified), - 4 (modified), - 4 (modified), + 4, + 3, + 0, + 1, + 4, + 4, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/counter_sync.txt b/crates/fayalite/tests/sim/expected/counter_sync.txt index 1448f58..baa08e7 100644 --- a/crates/fayalite/tests/sim/expected/counter_sync.txt +++ b/crates/fayalite/tests/sim/expected/counter_sync.txt @@ -167,10 +167,10 @@ Simulation { }, small_slots: StatePart { value: [ - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), + 0, + 0, + 1, + 0, ], }, big_slots: StatePart { @@ -179,11 +179,11 @@ Simulation { 0, 3, 3, - 4 (modified), - 3 (modified), - 1 (modified), - 4 (modified), - 4 (modified), + 4, + 3, + 1, + 4, + 4, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/duplicate_names.txt b/crates/fayalite/tests/sim/expected/duplicate_names.txt index 394cfbb..76338e8 100644 --- a/crates/fayalite/tests/sim/expected/duplicate_names.txt +++ b/crates/fayalite/tests/sim/expected/duplicate_names.txt @@ -81,9 +81,9 @@ Simulation { big_slots: StatePart { value: [ 5, - 5 (modified), + 5, + 6, 6, - 6 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/enum_with_simple_body.txt b/crates/fayalite/tests/sim/expected/enum_with_simple_body.txt new file mode 100644 index 0000000..6b5af1c --- /dev/null +++ b/crates/fayalite/tests/sim/expected/enum_with_simple_body.txt @@ -0,0 +1,749 @@ +Simulation { + state: State { + insns: Insns { + state_layout: StateLayout { + ty: TypeLayout { + small_slots: StatePartLayout { + len: 1, + debug_data: [ + SlotDebugData { + name: "", + ty: Enum { + A, + B, + C, + }, + }, + ], + .. + }, + big_slots: StatePartLayout { + len: 33, + debug_data: [ + SlotDebugData { + name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::which_in", + ty: UInt<8>, + }, + SlotDebugData { + name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::data_in", + ty: UInt<8>, + }, + SlotDebugData { + name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::which_out", + ty: UInt<8>, + }, + SlotDebugData { + name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::data_out", + ty: UInt<8>, + }, + SlotDebugData { + name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::enum_out", + ty: Enum { + A(UInt<8>), + B(UInt<8>), + C(UInt<8>), + }, + }, + SlotDebugData { + name: "", + ty: UInt<10>, + }, + SlotDebugData { + name: "", + ty: UInt<8>, + }, + SlotDebugData { + name: "", + ty: UInt<8>, + }, + SlotDebugData { + name: "", + ty: Bool, + }, + SlotDebugData { + name: ".0", + ty: UInt<2>, + }, + SlotDebugData { + name: ".1", + ty: UInt<8>, + }, + SlotDebugData { + name: "", + ty: UInt<2>, + }, + SlotDebugData { + name: "", + ty: UInt<10>, + }, + SlotDebugData { + name: "", + ty: UInt<10>, + }, + SlotDebugData { + name: "", + ty: UInt<10>, + }, + SlotDebugData { + name: "", + ty: Enum { + A(UInt<8>), + B(UInt<8>), + C(UInt<8>), + }, + }, + SlotDebugData { + name: "", + ty: UInt<8>, + }, + SlotDebugData { + name: "", + ty: Bool, + }, + SlotDebugData { + name: ".0", + ty: UInt<2>, + }, + SlotDebugData { + name: ".1", + ty: UInt<8>, + }, + SlotDebugData { + name: "", + ty: UInt<2>, + }, + SlotDebugData { + name: "", + ty: UInt<10>, + }, + SlotDebugData { + name: "", + ty: UInt<10>, + }, + SlotDebugData { + name: "", + ty: UInt<10>, + }, + SlotDebugData { + name: "", + ty: Enum { + A(UInt<8>), + B(UInt<8>), + C(UInt<8>), + }, + }, + SlotDebugData { + name: ".0", + ty: UInt<2>, + }, + SlotDebugData { + name: ".1", + ty: UInt<8>, + }, + SlotDebugData { + name: "", + ty: UInt<2>, + }, + SlotDebugData { + name: "", + ty: UInt<10>, + }, + SlotDebugData { + name: "", + ty: UInt<10>, + }, + SlotDebugData { + name: "", + ty: UInt<10>, + }, + SlotDebugData { + name: "", + ty: Enum { + A(UInt<8>), + B(UInt<8>), + C(UInt<8>), + }, + }, + SlotDebugData { + name: "", + ty: UInt<8>, + }, + ], + .. + }, + sim_only_slots: StatePartLayout { + len: 0, + debug_data: [], + layout_data: [], + .. + }, + }, + memories: StatePartLayout { + len: 0, + debug_data: [], + layout_data: [], + .. + }, + }, + insns: [ + // at: module-XXXXXXXXXX.rs:1:1 + 0: Const { + dest: StatePartIndex(32), // (0x2) SlotDebugData { name: "", ty: UInt<8> }, + value: 0x2, + }, + 1: Const { + dest: StatePartIndex(27), // (0x2) SlotDebugData { name: "", ty: UInt<2> }, + value: 0x2, + }, + 2: Copy { + dest: StatePartIndex(25), // (0x2) SlotDebugData { name: ".0", ty: UInt<2> }, + src: StatePartIndex(27), // (0x2) SlotDebugData { name: "", ty: UInt<2> }, + }, + 3: Copy { + dest: StatePartIndex(26), // (0xe1) SlotDebugData { name: ".1", ty: UInt<8> }, + src: StatePartIndex(1), // (0xe1) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::data_in", ty: UInt<8> }, + }, + 4: Shl { + dest: StatePartIndex(28), // (0x384) SlotDebugData { name: "", ty: UInt<10> }, + lhs: StatePartIndex(26), // (0xe1) SlotDebugData { name: ".1", ty: UInt<8> }, + rhs: 2, + }, + 5: Or { + dest: StatePartIndex(29), // (0x386) SlotDebugData { name: "", ty: UInt<10> }, + lhs: StatePartIndex(25), // (0x2) SlotDebugData { name: ".0", ty: UInt<2> }, + rhs: StatePartIndex(28), // (0x384) SlotDebugData { name: "", ty: UInt<10> }, + }, + 6: CastToUInt { + dest: StatePartIndex(30), // (0x386) SlotDebugData { name: "", ty: UInt<10> }, + src: StatePartIndex(29), // (0x386) SlotDebugData { name: "", ty: UInt<10> }, + dest_width: 10, + }, + 7: Copy { + dest: StatePartIndex(31), // (0x386) SlotDebugData { name: "", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + src: StatePartIndex(30), // (0x386) SlotDebugData { name: "", ty: UInt<10> }, + }, + 8: Const { + dest: StatePartIndex(20), // (0x1) SlotDebugData { name: "", ty: UInt<2> }, + value: 0x1, + }, + 9: Copy { + dest: StatePartIndex(18), // (0x1) SlotDebugData { name: ".0", ty: UInt<2> }, + src: StatePartIndex(20), // (0x1) SlotDebugData { name: "", ty: UInt<2> }, + }, + 10: Copy { + dest: StatePartIndex(19), // (0xe1) SlotDebugData { name: ".1", ty: UInt<8> }, + src: StatePartIndex(1), // (0xe1) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::data_in", ty: UInt<8> }, + }, + 11: Shl { + dest: StatePartIndex(21), // (0x384) SlotDebugData { name: "", ty: UInt<10> }, + lhs: StatePartIndex(19), // (0xe1) SlotDebugData { name: ".1", ty: UInt<8> }, + rhs: 2, + }, + 12: Or { + dest: StatePartIndex(22), // (0x385) SlotDebugData { name: "", ty: UInt<10> }, + lhs: StatePartIndex(18), // (0x1) SlotDebugData { name: ".0", ty: UInt<2> }, + rhs: StatePartIndex(21), // (0x384) SlotDebugData { name: "", ty: UInt<10> }, + }, + 13: CastToUInt { + dest: StatePartIndex(23), // (0x385) SlotDebugData { name: "", ty: UInt<10> }, + src: StatePartIndex(22), // (0x385) SlotDebugData { name: "", ty: UInt<10> }, + dest_width: 10, + }, + 14: Copy { + dest: StatePartIndex(24), // (0x385) SlotDebugData { name: "", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + src: StatePartIndex(23), // (0x385) SlotDebugData { name: "", ty: UInt<10> }, + }, + 15: Const { + dest: StatePartIndex(16), // (0x1) SlotDebugData { name: "", ty: UInt<8> }, + value: 0x1, + }, + 16: CmpEq { + dest: StatePartIndex(17), // (0x0) SlotDebugData { name: "", ty: Bool }, + lhs: StatePartIndex(0), // (0x2) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::which_in", ty: UInt<8> }, + rhs: StatePartIndex(16), // (0x1) SlotDebugData { name: "", ty: UInt<8> }, + }, + 17: Const { + dest: StatePartIndex(11), // (0x0) SlotDebugData { name: "", ty: UInt<2> }, + value: 0x0, + }, + 18: Copy { + dest: StatePartIndex(9), // (0x0) SlotDebugData { name: ".0", ty: UInt<2> }, + src: StatePartIndex(11), // (0x0) SlotDebugData { name: "", ty: UInt<2> }, + }, + 19: Copy { + dest: StatePartIndex(10), // (0xe1) SlotDebugData { name: ".1", ty: UInt<8> }, + src: StatePartIndex(1), // (0xe1) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::data_in", ty: UInt<8> }, + }, + 20: Shl { + dest: StatePartIndex(12), // (0x384) SlotDebugData { name: "", ty: UInt<10> }, + lhs: StatePartIndex(10), // (0xe1) SlotDebugData { name: ".1", ty: UInt<8> }, + rhs: 2, + }, + 21: Or { + dest: StatePartIndex(13), // (0x384) SlotDebugData { name: "", ty: UInt<10> }, + lhs: StatePartIndex(9), // (0x0) SlotDebugData { name: ".0", ty: UInt<2> }, + rhs: StatePartIndex(12), // (0x384) SlotDebugData { name: "", ty: UInt<10> }, + }, + 22: CastToUInt { + dest: StatePartIndex(14), // (0x384) SlotDebugData { name: "", ty: UInt<10> }, + src: StatePartIndex(13), // (0x384) SlotDebugData { name: "", ty: UInt<10> }, + dest_width: 10, + }, + 23: Copy { + dest: StatePartIndex(15), // (0x384) SlotDebugData { name: "", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + src: StatePartIndex(14), // (0x384) SlotDebugData { name: "", ty: UInt<10> }, + }, + 24: Const { + dest: StatePartIndex(7), // (0x0) SlotDebugData { name: "", ty: UInt<8> }, + value: 0x0, + }, + 25: CmpEq { + dest: StatePartIndex(8), // (0x0) SlotDebugData { name: "", ty: Bool }, + lhs: StatePartIndex(0), // (0x2) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::which_in", ty: UInt<8> }, + rhs: StatePartIndex(7), // (0x0) SlotDebugData { name: "", ty: UInt<8> }, + }, + // at: module-XXXXXXXXXX.rs:7:1 + 26: BranchIfZero { + target: 28, + value: StatePartIndex(8), // (0x0) SlotDebugData { name: "", ty: Bool }, + }, + // at: module-XXXXXXXXXX.rs:8:1 + 27: Copy { + dest: StatePartIndex(4), // (0x386) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::enum_out", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + src: StatePartIndex(15), // (0x384) SlotDebugData { name: "", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + }, + // at: module-XXXXXXXXXX.rs:7:1 + 28: BranchIfNonZero { + target: 33, + value: StatePartIndex(8), // (0x0) SlotDebugData { name: "", ty: Bool }, + }, + // at: module-XXXXXXXXXX.rs:9:1 + 29: BranchIfZero { + target: 31, + value: StatePartIndex(17), // (0x0) SlotDebugData { name: "", ty: Bool }, + }, + // at: module-XXXXXXXXXX.rs:10:1 + 30: Copy { + dest: StatePartIndex(4), // (0x386) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::enum_out", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + src: StatePartIndex(24), // (0x385) SlotDebugData { name: "", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + }, + // at: module-XXXXXXXXXX.rs:9:1 + 31: BranchIfNonZero { + target: 33, + value: StatePartIndex(17), // (0x0) SlotDebugData { name: "", ty: Bool }, + }, + // at: module-XXXXXXXXXX.rs:11:1 + 32: Copy { + dest: StatePartIndex(4), // (0x386) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::enum_out", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + src: StatePartIndex(31), // (0x386) SlotDebugData { name: "", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + }, + // at: module-XXXXXXXXXX.rs:1:1 + 33: Copy { + dest: StatePartIndex(5), // (0x386) SlotDebugData { name: "", ty: UInt<10> }, + src: StatePartIndex(4), // (0x386) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::enum_out", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + }, + 34: SliceInt { + dest: StatePartIndex(6), // (0xe1) SlotDebugData { name: "", ty: UInt<8> }, + src: StatePartIndex(5), // (0x386) SlotDebugData { name: "", ty: UInt<10> }, + start: 2, + len: 8, + }, + // at: module-XXXXXXXXXX.rs:6:1 + 35: AndBigWithSmallImmediate { + dest: StatePartIndex(0), // (0x2 2) SlotDebugData { name: "", ty: Enum {A, B, C} }, + lhs: StatePartIndex(4), // (0x386) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::enum_out", ty: Enum {A(UInt<8>), B(UInt<8>), C(UInt<8>)} }, + rhs: 0x3, + }, + // at: module-XXXXXXXXXX.rs:12:1 + 36: BranchIfSmallNeImmediate { + target: 39, + lhs: StatePartIndex(0), // (0x2 2) SlotDebugData { name: "", ty: Enum {A, B, C} }, + rhs: 0x0, + }, + // at: module-XXXXXXXXXX.rs:13:1 + 37: Copy { + dest: StatePartIndex(2), // (0x2) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::which_out", ty: UInt<8> }, + src: StatePartIndex(7), // (0x0) SlotDebugData { name: "", ty: UInt<8> }, + }, + // at: module-XXXXXXXXXX.rs:14:1 + 38: Copy { + dest: StatePartIndex(3), // (0xe1) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::data_out", ty: UInt<8> }, + src: StatePartIndex(6), // (0xe1) SlotDebugData { name: "", ty: UInt<8> }, + }, + // at: module-XXXXXXXXXX.rs:12:1 + 39: BranchIfSmallNeImmediate { + target: 42, + lhs: StatePartIndex(0), // (0x2 2) SlotDebugData { name: "", ty: Enum {A, B, C} }, + rhs: 0x1, + }, + // at: module-XXXXXXXXXX.rs:15:1 + 40: Copy { + dest: StatePartIndex(2), // (0x2) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::which_out", ty: UInt<8> }, + src: StatePartIndex(16), // (0x1) SlotDebugData { name: "", ty: UInt<8> }, + }, + // at: module-XXXXXXXXXX.rs:16:1 + 41: Copy { + dest: StatePartIndex(3), // (0xe1) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::data_out", ty: UInt<8> }, + src: StatePartIndex(6), // (0xe1) SlotDebugData { name: "", ty: UInt<8> }, + }, + // at: module-XXXXXXXXXX.rs:12:1 + 42: BranchIfSmallNeImmediate { + target: 45, + lhs: StatePartIndex(0), // (0x2 2) SlotDebugData { name: "", ty: Enum {A, B, C} }, + rhs: 0x2, + }, + // at: module-XXXXXXXXXX.rs:17:1 + 43: Copy { + dest: StatePartIndex(2), // (0x2) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::which_out", ty: UInt<8> }, + src: StatePartIndex(32), // (0x2) SlotDebugData { name: "", ty: UInt<8> }, + }, + // at: module-XXXXXXXXXX.rs:18:1 + 44: Copy { + dest: StatePartIndex(3), // (0xe1) SlotDebugData { name: "InstantiatedModule(enum_with_simple_body: enum_with_simple_body).enum_with_simple_body::data_out", ty: UInt<8> }, + src: StatePartIndex(6), // (0xe1) SlotDebugData { name: "", ty: UInt<8> }, + }, + // at: module-XXXXXXXXXX.rs:1:1 + 45: Return, + ], + .. + }, + pc: 45, + memory_write_log: [], + memories: StatePart { + value: [], + }, + small_slots: StatePart { + value: [ + 2, + ], + }, + big_slots: StatePart { + value: [ + 2, + 225, + 2 (modified), + 225 (modified), + 902, + 902, + 225, + 0, + 0, + 0, + 225, + 0, + 900, + 900, + 900, + 900, + 1, + 0, + 1, + 225, + 1, + 900, + 901, + 901, + 901, + 2, + 225, + 2, + 900, + 902, + 902, + 902, + 2, + ], + }, + sim_only_slots: StatePart { + value: [], + }, + }, + io: Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }, + main_module: SimulationModuleState { + base_targets: [ + Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }.which_in, + Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }.data_in, + Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }.which_out, + Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }.data_out, + Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }.enum_out, + ], + uninitialized_ios: {}, + io_targets: { + Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }.data_in, + Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }.data_out, + Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }.enum_out, + Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }.which_in, + Instance { + name: ::enum_with_simple_body, + instantiated: Module { + name: enum_with_simple_body, + .. + }, + }.which_out, + }, + did_initial_settle: true, + clocks_for_past: {}, + }, + extern_modules: [], + trace_decls: TraceModule { + name: "enum_with_simple_body", + children: [ + TraceModuleIO { + name: "which_in", + child: TraceUInt { + location: TraceScalarId(0), + name: "which_in", + ty: UInt<8>, + flow: Source, + }, + ty: UInt<8>, + flow: Source, + }, + TraceModuleIO { + name: "data_in", + child: TraceUInt { + location: TraceScalarId(1), + name: "data_in", + ty: UInt<8>, + flow: Source, + }, + ty: UInt<8>, + flow: Source, + }, + TraceModuleIO { + name: "which_out", + child: TraceUInt { + location: TraceScalarId(2), + name: "which_out", + ty: UInt<8>, + flow: Sink, + }, + ty: UInt<8>, + flow: Sink, + }, + TraceModuleIO { + name: "data_out", + child: TraceUInt { + location: TraceScalarId(3), + name: "data_out", + ty: UInt<8>, + flow: Sink, + }, + ty: UInt<8>, + flow: Sink, + }, + TraceModuleIO { + name: "enum_out", + child: TraceEnumWithFields { + name: "enum_out", + discriminant: TraceEnumDiscriminant { + location: TraceScalarId(4), + name: "$tag", + ty: Enum { + A(UInt<8>), + B(UInt<8>), + C(UInt<8>), + }, + flow: Sink, + }, + non_empty_fields: [ + TraceUInt { + location: TraceScalarId(5), + name: "A", + ty: UInt<8>, + flow: Source, + }, + TraceUInt { + location: TraceScalarId(6), + name: "B", + ty: UInt<8>, + flow: Source, + }, + TraceUInt { + location: TraceScalarId(7), + name: "C", + ty: UInt<8>, + flow: Source, + }, + ], + ty: Enum { + A(UInt<8>), + B(UInt<8>), + C(UInt<8>), + }, + flow: Sink, + }, + ty: Enum { + A(UInt<8>), + B(UInt<8>), + C(UInt<8>), + }, + flow: Sink, + }, + ], + }, + traces: [ + SimTrace { + id: TraceScalarId(0), + kind: BigUInt { + index: StatePartIndex(0), + ty: UInt<8>, + }, + maybe_changed: true, + state: 0x02, + last_state: 0x02, + }, + SimTrace { + id: TraceScalarId(1), + kind: BigUInt { + index: StatePartIndex(1), + ty: UInt<8>, + }, + maybe_changed: true, + state: 0xe1, + last_state: 0xb4, + }, + SimTrace { + id: TraceScalarId(2), + kind: BigUInt { + index: StatePartIndex(2), + ty: UInt<8>, + }, + maybe_changed: true, + state: 0x02, + last_state: 0x02, + }, + SimTrace { + id: TraceScalarId(3), + kind: BigUInt { + index: StatePartIndex(3), + ty: UInt<8>, + }, + maybe_changed: true, + state: 0xe1, + last_state: 0xb4, + }, + SimTrace { + id: TraceScalarId(4), + kind: EnumDiscriminant { + index: StatePartIndex(0), + ty: Enum { + A(UInt<8>), + B(UInt<8>), + C(UInt<8>), + }, + }, + maybe_changed: true, + state: 0x2, + last_state: 0x2, + }, + SimTrace { + id: TraceScalarId(5), + kind: BigUInt { + index: StatePartIndex(6), + ty: UInt<8>, + }, + maybe_changed: true, + state: 0xe1, + last_state: 0xb4, + }, + SimTrace { + id: TraceScalarId(6), + kind: BigUInt { + index: StatePartIndex(6), + ty: UInt<8>, + }, + maybe_changed: true, + state: 0xe1, + last_state: 0xb4, + }, + SimTrace { + id: TraceScalarId(7), + kind: BigUInt { + index: StatePartIndex(6), + ty: UInt<8>, + }, + maybe_changed: true, + state: 0xe1, + last_state: 0xb4, + }, + ], + trace_memories: {}, + trace_writers: [ + Running( + VcdWriter { + finished_init: true, + timescale: 1 ps, + .. + }, + ), + ], + clocks_triggered: [], + event_queue: EventQueue(EventQueueData { + instant: 18 μs, + events: {}, + }), + waiting_sensitivity_sets_by_address: {}, + waiting_sensitivity_sets_by_compiled_value: {}, + .. +} \ No newline at end of file diff --git a/crates/fayalite/tests/sim/expected/enum_with_simple_body.vcd b/crates/fayalite/tests/sim/expected/enum_with_simple_body.vcd new file mode 100644 index 0000000..dfe0dc1 --- /dev/null +++ b/crates/fayalite/tests/sim/expected/enum_with_simple_body.vcd @@ -0,0 +1,133 @@ +$timescale 1 ps $end +$scope module enum_with_simple_body $end +$var wire 8 J&-ne which_in $end +$var wire 8 \7mo/ data_in $end +$var wire 8 ,`>ir which_out $end +$var wire 8 0_gMP data_out $end +$scope struct enum_out $end +$var string 1 kFH/w \$tag $end +$var wire 8 |EI_= A $end +$var wire 8 !pRd4 B $end +$var wire 8 &RAbd C $end +$upscope $end +$upscope $end +$enddefinitions $end +$dumpvars +b0 J&-ne +b0 \7mo/ +b0 ,`>ir +b0 0_gMP +sA\x20(0) kFH/w +b0 |EI_= +b0 !pRd4 +b0 &RAbd +$end +#1000000 +b101101 \7mo/ +b101101 0_gMP +b101101 |EI_= +b101101 !pRd4 +b101101 &RAbd +#2000000 +b1011010 \7mo/ +b1011010 0_gMP +b1011010 |EI_= +b1011010 !pRd4 +b1011010 &RAbd +#3000000 +b10000111 \7mo/ +b10000111 0_gMP +b10000111 |EI_= +b10000111 !pRd4 +b10000111 &RAbd +#4000000 +b10110100 \7mo/ +b10110100 0_gMP +b10110100 |EI_= +b10110100 !pRd4 +b10110100 &RAbd +#5000000 +b11100001 \7mo/ +b11100001 0_gMP +b11100001 |EI_= +b11100001 !pRd4 +b11100001 &RAbd +#6000000 +b1 J&-ne +b0 \7mo/ +b1 ,`>ir +b0 0_gMP +sB\x20(1) kFH/w +b0 |EI_= +b0 !pRd4 +b0 &RAbd +#7000000 +b101101 \7mo/ +b101101 0_gMP +b101101 |EI_= +b101101 !pRd4 +b101101 &RAbd +#8000000 +b1011010 \7mo/ +b1011010 0_gMP +b1011010 |EI_= +b1011010 !pRd4 +b1011010 &RAbd +#9000000 +b10000111 \7mo/ +b10000111 0_gMP +b10000111 |EI_= +b10000111 !pRd4 +b10000111 &RAbd +#10000000 +b10110100 \7mo/ +b10110100 0_gMP +b10110100 |EI_= +b10110100 !pRd4 +b10110100 &RAbd +#11000000 +b11100001 \7mo/ +b11100001 0_gMP +b11100001 |EI_= +b11100001 !pRd4 +b11100001 &RAbd +#12000000 +b10 J&-ne +b0 \7mo/ +b10 ,`>ir +b0 0_gMP +sC\x20(2) kFH/w +b0 |EI_= +b0 !pRd4 +b0 &RAbd +#13000000 +b101101 \7mo/ +b101101 0_gMP +b101101 |EI_= +b101101 !pRd4 +b101101 &RAbd +#14000000 +b1011010 \7mo/ +b1011010 0_gMP +b1011010 |EI_= +b1011010 !pRd4 +b1011010 &RAbd +#15000000 +b10000111 \7mo/ +b10000111 0_gMP +b10000111 |EI_= +b10000111 !pRd4 +b10000111 &RAbd +#16000000 +b10110100 \7mo/ +b10110100 0_gMP +b10110100 |EI_= +b10110100 !pRd4 +b10110100 &RAbd +#17000000 +b11100001 \7mo/ +b11100001 0_gMP +b11100001 |EI_= +b11100001 !pRd4 +b11100001 &RAbd +#18000000 diff --git a/crates/fayalite/tests/sim/expected/enums.txt b/crates/fayalite/tests/sim/expected/enums.txt index 2b00f05..d2da2d9 100644 --- a/crates/fayalite/tests/sim/expected/enums.txt +++ b/crates/fayalite/tests/sim/expected/enums.txt @@ -1191,10 +1191,10 @@ Simulation { value: [ 0, 0, - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), + 0, + 0, + 1, + 0, 2, ], }, @@ -1207,110 +1207,110 @@ Simulation { 15, 2, 15, - 0 (modified), 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 62 (modified), - 62 (modified), - 0 (modified), - 0 (modified), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 62, + 62, + 0, + 0, + 1, + 1, + 62, + 3, + 1, 1, 1, - 62 (modified), - 3 (modified), - 1 (modified), - 1 (modified), - 1 (modified), 1, 1, -1, - 1 (modified), - 1 (modified), - 15 (modified), - 3 (modified), - 1 (modified), - 1 (modified), - 3 (modified), - -1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 2 (modified), - 3 (modified), - 12 (modified), - 13 (modified), - 13 (modified), - 13 (modified), - 2 (modified), - 1 (modified), - 1 (modified), - -1 (modified), - 2 (modified), - 1 (modified), - 1 (modified), - -1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 3 (modified), - -1 (modified), - 2 (modified), - 3 (modified), - 3 (modified), - 12 (modified), - 15 (modified), - 60 (modified), - 62 (modified), - 62 (modified), - 62 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 2 (modified), - 3 (modified), - 3 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 2 (modified), - 3 (modified), - 6 (modified), - 7 (modified), - 7 (modified), - 7 (modified), - 2 (modified), - 3 (modified), - 3 (modified), - 12 (modified), - 15 (modified), + 1, + 1, + 15, + 3, + 1, + 1, + 3, + -1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 3, + 12, + 13, + 13, + 13, + 2, + 1, + 1, + -1, + 2, + 1, + 1, + -1, + 1, + 1, + 1, + 3, + -1, + 2, + 3, + 3, + 12, + 15, + 60, + 62, + 62, + 62, + 0, + 0, + 0, + 1, + 2, + 3, + 3, + 1, + 1, + 1, + 1, + 1, + 2, + 3, + 6, + 7, + 7, + 7, + 2, + 3, + 3, + 12, + 15, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/last_connect.txt b/crates/fayalite/tests/sim/expected/last_connect.txt index 297d395..c5d1341 100644 --- a/crates/fayalite/tests/sim/expected/last_connect.txt +++ b/crates/fayalite/tests/sim/expected/last_connect.txt @@ -418,39 +418,39 @@ Simulation { }, big_slots: StatePart { value: [ - 31 (modified), + 31, + 1, + 1, + 1, + 1, + 31, + 15, + 1, + 1, + 1, + 1, 1, 1, 1, 1, - 31 (modified), - 15 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 7 (modified), 7 (modified), + 7, 3, - 0 (modified), - 0 (modified), + 0, + 0, + 3, + 1, + 3, + 1, + 6, + 7, + 7, + 7, + 4, + 0, + 1, + 2, 3, - 1 (modified), - 3 (modified), - 1 (modified), - 6 (modified), - 7 (modified), - 7 (modified), - 7 (modified), - 4 (modified), - 0 (modified), - 1 (modified), - 2 (modified), - 3 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/many_memories.txt b/crates/fayalite/tests/sim/expected/many_memories.txt index 84d9162..0d1a6db 100644 --- a/crates/fayalite/tests/sim/expected/many_memories.txt +++ b/crates/fayalite/tests/sim/expected/many_memories.txt @@ -2910,102 +2910,102 @@ Simulation { }, small_slots: StatePart { value: [ - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 15 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 15 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 15 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 15 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 15 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 15 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 15 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 15 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 15, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 15, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 15, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 15, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 15, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 15, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 15, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 15, + 1, + 0, + 0, + 0, + 0, + 0, + 0, ], }, big_slots: StatePart { @@ -3091,8 +3091,8 @@ Simulation { 0, 0, 1, - 0 (modified), - 1 (modified), + 0, + 1, 15, 1, 0, @@ -3102,8 +3102,8 @@ Simulation { 0, 0, 1, - 0 (modified), - 1 (modified), + 0, + 1, 15, 1, 0, @@ -3113,8 +3113,8 @@ Simulation { 0, 0, 1, - 0 (modified), - 1 (modified), + 0, + 1, 15, 1, 0, @@ -3124,8 +3124,8 @@ Simulation { 0, 0, 1, - 0 (modified), - 1 (modified), + 0, + 1, 15, 1, 0, @@ -3135,8 +3135,8 @@ Simulation { 0, 0, 1, - 0 (modified), - 1 (modified), + 0, + 1, 15, 1, 0, @@ -3146,8 +3146,8 @@ Simulation { 0, 0, 1, - 0 (modified), - 1 (modified), + 0, + 1, 15, 1, 0, @@ -3157,8 +3157,8 @@ Simulation { 0, 0, 1, - 0 (modified), - 1 (modified), + 0, + 1, 15, 1, 0, @@ -3168,8 +3168,8 @@ Simulation { 0, 0, 1, - 0 (modified), - 1 (modified), + 0, + 1, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/memories.txt b/crates/fayalite/tests/sim/expected/memories.txt index db5a2f3..c96da4f 100644 --- a/crates/fayalite/tests/sim/expected/memories.txt +++ b/crates/fayalite/tests/sim/expected/memories.txt @@ -522,18 +522,18 @@ Simulation { }, small_slots: StatePart { value: [ - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 2 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 2 (modified), - 2 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 2, + 0, ], }, big_slots: StatePart { @@ -562,10 +562,10 @@ Simulation { -32, 1, 1, - 208 (modified), - -32 (modified), - 1 (modified), - 1 (modified), + 208, + -32, + 1, + 1, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/memories2.txt b/crates/fayalite/tests/sim/expected/memories2.txt index 5a82b91..1f78fcf 100644 --- a/crates/fayalite/tests/sim/expected/memories2.txt +++ b/crates/fayalite/tests/sim/expected/memories2.txt @@ -545,15 +545,15 @@ Simulation { value: [ 0, 0, - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, ], }, big_slots: StatePart { @@ -568,32 +568,32 @@ Simulation { 0, 0, 0, - 0 (modified), 0, - 0 (modified), 0, - 0 (modified), - 0 (modified), 0, - 0 (modified), - 0 (modified), 0, - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/memories3.txt b/crates/fayalite/tests/sim/expected/memories3.txt index 7522430..75720a8 100644 --- a/crates/fayalite/tests/sim/expected/memories3.txt +++ b/crates/fayalite/tests/sim/expected/memories3.txt @@ -1356,20 +1356,20 @@ Simulation { }, small_slots: StatePart { value: [ - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, ], }, big_slots: StatePart { @@ -1415,22 +1415,6 @@ Simulation { 0, 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), 0, 0, 0, @@ -1450,38 +1434,54 @@ Simulation { 0, 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/mod1.txt b/crates/fayalite/tests/sim/expected/mod1.txt index 7f89a66..a1de89a 100644 --- a/crates/fayalite/tests/sim/expected/mod1.txt +++ b/crates/fayalite/tests/sim/expected/mod1.txt @@ -207,11 +207,11 @@ Simulation { -2, -2, 15, - -2 (modified), - 14 (modified), - 5 (modified), - 1 (modified), - 15 (modified), + -2, + 14, + 5, + 1, + 15, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/phantom_const.txt b/crates/fayalite/tests/sim/expected/phantom_const.txt index 864a4f7..c9adae4 100644 --- a/crates/fayalite/tests/sim/expected/phantom_const.txt +++ b/crates/fayalite/tests/sim/expected/phantom_const.txt @@ -185,11 +185,11 @@ Simulation { }, small_slots: StatePart { value: [ - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 0, + 0, ], }, big_slots: StatePart { @@ -197,11 +197,11 @@ Simulation { 0, 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 0, + 0, + 0, + 0, + 0, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_1_false_false.txt b/crates/fayalite/tests/sim/expected/queue_1_false_false.txt index 1ac0403..e349bbd 100644 --- a/crates/fayalite/tests/sim/expected/queue_1_false_false.txt +++ b/crates/fayalite/tests/sim/expected/queue_1_false_false.txt @@ -1098,35 +1098,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 51 (modified), + 51, 0, - 51 (modified), + 51, 25, - 51 (modified), + 51, 0, - 51 (modified), + 51, 25, 1, 0, @@ -1138,56 +1138,56 @@ Simulation { 0, 25, 1, - 25 (modified), - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1, - 1 (modified), - 0 (modified), - 0, - 0, - 0, - 0, - 1, - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 1, - 1 (modified), - 1 (modified), 25, - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 25 (modified), - 1 (modified), - 50 (modified), - 51 (modified), - 51 (modified), - 51 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 25, + 0, + 0, + 1, + 1, + 25, + 1, + 50, + 51, + 51, + 51, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_1_false_true.txt b/crates/fayalite/tests/sim/expected/queue_1_false_true.txt index 5b56068..3a31636 100644 --- a/crates/fayalite/tests/sim/expected/queue_1_false_true.txt +++ b/crates/fayalite/tests/sim/expected/queue_1_false_true.txt @@ -1079,35 +1079,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 63 (modified), + 63, 0, - 63 (modified), + 63, 31, - 63 (modified), + 63, 0, - 63 (modified), + 63, 31, 1, 0, @@ -1119,54 +1119,54 @@ Simulation { 0, 31, 1, - 31 (modified), - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1, - 1 (modified), - 0 (modified), - 0, - 0, - 0, - 0, - 1, - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 1, - 1 (modified), - 1 (modified), 31, - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 31 (modified), - 1 (modified), - 62 (modified), - 63 (modified), - 63 (modified), - 63 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 31, + 0, + 0, + 1, + 1, + 31, + 1, + 62, + 63, + 63, + 63, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_1_true_false.txt b/crates/fayalite/tests/sim/expected/queue_1_true_false.txt index 6076237..9dd3851 100644 --- a/crates/fayalite/tests/sim/expected/queue_1_true_false.txt +++ b/crates/fayalite/tests/sim/expected/queue_1_true_false.txt @@ -1108,35 +1108,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 63 (modified), + 63, 0, - 63 (modified), + 63, 31, - 63 (modified), + 63, 0, - 63 (modified), + 63, 31, 1, 0, @@ -1148,56 +1148,56 @@ Simulation { 0, 31, 1, - 31 (modified), - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1, - 1 (modified), - 0 (modified), - 0, - 0, - 0, - 0, - 1, - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 1, - 1 (modified), - 1 (modified), 31, - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 31 (modified), - 1 (modified), - 62 (modified), - 63 (modified), - 63 (modified), - 63 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 31, + 0, + 0, + 1, + 1, + 31, + 1, + 62, + 63, + 63, + 63, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_1_true_true.txt b/crates/fayalite/tests/sim/expected/queue_1_true_true.txt index 8fe32ad..5762f24 100644 --- a/crates/fayalite/tests/sim/expected/queue_1_true_true.txt +++ b/crates/fayalite/tests/sim/expected/queue_1_true_true.txt @@ -1089,35 +1089,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 71 (modified), + 71, 0, - 71 (modified), + 71, 35, - 71 (modified), + 71, 0, - 71 (modified), + 71, 35, 1, 0, @@ -1129,54 +1129,54 @@ Simulation { 0, 35, 1, - 35 (modified), - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1, - 1 (modified), - 0 (modified), - 0, - 0, - 0, - 0, - 1, - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 1, - 1 (modified), - 1 (modified), 35, - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 35 (modified), - 1 (modified), - 70 (modified), - 71 (modified), - 71 (modified), - 71 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 35, + 0, + 0, + 1, + 1, + 35, + 1, + 70, + 71, + 71, + 71, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_2_false_false.txt b/crates/fayalite/tests/sim/expected/queue_2_false_false.txt index 5a5c47d..c2cb51a 100644 --- a/crates/fayalite/tests/sim/expected/queue_2_false_false.txt +++ b/crates/fayalite/tests/sim/expected/queue_2_false_false.txt @@ -1114,35 +1114,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 1, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 71 (modified), + 71, 1, - 71 (modified), + 71, 35, - 71 (modified), + 71, 0, - 71 (modified), + 71, 35, 1, 1, @@ -1154,58 +1154,58 @@ Simulation { 0, 35, 1, - 35 (modified), - 1 (modified), - 0, - 1 (modified), - 0 (modified), - 1, - 1 (modified), - 1, - 1 (modified), - 0 (modified), - 1, - 1, - 0, - 0, - 0, - 0 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1 (modified), 35, - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 35 (modified), - 1 (modified), - 70 (modified), - 71 (modified), - 71 (modified), - 71 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 2 (modified), - 0 (modified), - 2 (modified), - 2 (modified), - 0 (modified), 1, - 3 (modified), - 1 (modified), - 1 (modified), + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 35, + 0, + 1, + 1, + 1, + 35, + 1, + 70, + 71, + 71, + 71, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 2, + 0, + 2, + 2, + 0, + 1, + 3, + 1, + 1, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_2_false_true.txt b/crates/fayalite/tests/sim/expected/queue_2_false_true.txt index 2d9ea3f..f229451 100644 --- a/crates/fayalite/tests/sim/expected/queue_2_false_true.txt +++ b/crates/fayalite/tests/sim/expected/queue_2_false_true.txt @@ -1095,35 +1095,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 77 (modified), + 77, 1, - 77 (modified), + 77, 38, - 77 (modified), + 77, 0, - 77 (modified), + 77, 38, 1, 0, @@ -1135,56 +1135,56 @@ Simulation { 0, 38, 1, - 38 (modified), - 1 (modified), - 1, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1, - 1 (modified), - 0 (modified), - 1, - 1, - 0, - 0, - 0, - 0 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1 (modified), 38, - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 38 (modified), - 1 (modified), - 76 (modified), - 77 (modified), - 77 (modified), - 77 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 2 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 2 (modified), - 2 (modified), - 0 (modified), 1, - 1 (modified), - 1 (modified), - 1 (modified), + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 38, + 0, + 1, + 1, + 1, + 38, + 1, + 76, + 77, + 77, + 77, + 1, + 1, + 1, + 0, + 0, + 2, + 0, + 0, + 1, + 1, + 2, + 2, + 0, + 1, + 1, + 1, + 1, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_2_true_false.txt b/crates/fayalite/tests/sim/expected/queue_2_true_false.txt index 3d16da2..e137316 100644 --- a/crates/fayalite/tests/sim/expected/queue_2_true_false.txt +++ b/crates/fayalite/tests/sim/expected/queue_2_true_false.txt @@ -1124,35 +1124,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 79 (modified), + 79, 0, - 79 (modified), + 79, 39, - 77 (modified), + 77, 0, - 77 (modified), + 77, 38, 2, 0, @@ -1164,58 +1164,58 @@ Simulation { 0, 39, 1, - 39 (modified), - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1, - 1 (modified), - 0 (modified), - 0, - 0, - 0, - 0, - 1, - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 1, - 1 (modified), - 1 (modified), 39, - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 38 (modified), - 1 (modified), - 76 (modified), - 77 (modified), - 77 (modified), - 77 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 2 (modified), - 2 (modified), - 0 (modified), + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 39, + 0, + 0, + 1, + 1, + 38, + 1, + 76, + 77, + 77, + 77, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_2_true_true.txt b/crates/fayalite/tests/sim/expected/queue_2_true_true.txt index 041e62d..5203027 100644 --- a/crates/fayalite/tests/sim/expected/queue_2_true_true.txt +++ b/crates/fayalite/tests/sim/expected/queue_2_true_true.txt @@ -1105,35 +1105,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 85 (modified), + 85, 0, - 85 (modified), + 85, 42, - 83 (modified), + 83, 0, - 83 (modified), + 83, 41, 2, 1, @@ -1145,56 +1145,56 @@ Simulation { 0, 42, 1, - 42 (modified), - 1 (modified), - 1, - 1 (modified), - 0 (modified), - 1, - 1 (modified), - 1, - 1 (modified), - 0 (modified), - 0, - 0, - 0, - 0, - 1, - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 1, - 1 (modified), - 1 (modified), 42, - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 41 (modified), - 1 (modified), - 82 (modified), - 83 (modified), - 83 (modified), - 83 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 2 (modified), - 0 (modified), - 1 (modified), - 2 (modified), - 0 (modified), - 2 (modified), - 2 (modified), - 0 (modified), + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 42, + 0, + 0, + 1, + 1, + 41, + 1, + 82, + 83, + 83, + 83, + 0, + 1, + 1, + 0, + 0, + 2, + 0, + 1, + 2, + 0, + 2, + 2, + 0, + 0, + 0, + 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_3_false_false.txt b/crates/fayalite/tests/sim/expected/queue_3_false_false.txt index f9c68cc..f5641ce 100644 --- a/crates/fayalite/tests/sim/expected/queue_3_false_false.txt +++ b/crates/fayalite/tests/sim/expected/queue_3_false_false.txt @@ -1142,35 +1142,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 2 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 0, + 1, + 0, + 0, + 1, + 2, + 1, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 81 (modified), + 81, 1, - 81 (modified), + 81, 40, - 79 (modified), + 79, 0, - 79 (modified), + 79, 39, 2, 0, @@ -1182,59 +1182,59 @@ Simulation { 0, 40, 1, - 40 (modified), - 1 (modified), - 2, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1, - 1 (modified), - 0 (modified), - 1, - 1, - 0, - 0, - 0, - 0 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1 (modified), 40, - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 39 (modified), - 1 (modified), - 78 (modified), - 79 (modified), - 79 (modified), - 79 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 2 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 3 (modified), - 3 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 3 (modified), - 3 (modified), - 0 (modified), - 5 (modified), - 5 (modified), - 1 (modified), - 2 (modified), - 2 (modified), + 1, + 2, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 40, + 0, + 1, + 1, + 1, + 39, + 1, + 78, + 79, + 79, + 79, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 3, + 3, + 0, + 1, + 1, + 3, + 3, + 0, + 5, + 5, + 1, + 2, + 2, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_3_false_true.txt b/crates/fayalite/tests/sim/expected/queue_3_false_true.txt index 9b0a7ea..cde5489 100644 --- a/crates/fayalite/tests/sim/expected/queue_3_false_true.txt +++ b/crates/fayalite/tests/sim/expected/queue_3_false_true.txt @@ -1123,35 +1123,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 2 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 85 (modified), + 85, 1, - 85 (modified), + 85, 42, - 83 (modified), + 83, 0, - 83 (modified), + 83, 41, 2, 2, @@ -1163,57 +1163,57 @@ Simulation { 0, 42, 1, - 42 (modified), - 1 (modified), - 1, - 2 (modified), - 0 (modified), - 2, - 2 (modified), - 1, - 1 (modified), - 0 (modified), - 1, - 1, - 0, - 0, - 0, - 0 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1 (modified), 42, - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 41 (modified), - 1 (modified), - 82 (modified), - 83 (modified), - 83 (modified), - 83 (modified), - 1 (modified), - 2 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 2 (modified), - 2 (modified), - 1 (modified), - 3 (modified), - 3 (modified), - 3 (modified), - 3 (modified), - 1 (modified), - 4 (modified), - 2 (modified), - 2 (modified), - 7 (modified), - 3 (modified), + 1, + 1, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 42, + 0, + 1, + 1, + 1, + 41, + 1, + 82, + 83, + 83, + 83, + 1, + 2, + 0, + 0, + 0, + 2, + 2, + 1, + 3, + 3, + 3, + 3, + 1, + 4, + 2, + 2, + 7, + 3, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_3_true_false.txt b/crates/fayalite/tests/sim/expected/queue_3_true_false.txt index 1b486d6..d943150 100644 --- a/crates/fayalite/tests/sim/expected/queue_3_true_false.txt +++ b/crates/fayalite/tests/sim/expected/queue_3_true_false.txt @@ -1152,35 +1152,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 2 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 2 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 87 (modified), + 87, 0, - 87 (modified), + 87, 43, - 83 (modified), + 83, 0, - 83 (modified), + 83, 41, 3, 2, @@ -1192,59 +1192,59 @@ Simulation { 0, 43, 1, - 43 (modified), - 1 (modified), - 2, - 2 (modified), - 0 (modified), - 2, - 2 (modified), - 1, - 1 (modified), - 0 (modified), - 0, - 0, - 0, - 0, - 1, - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 1, - 1 (modified), - 1 (modified), 43, - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 41 (modified), - 1 (modified), - 82 (modified), - 83 (modified), - 83 (modified), - 83 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 2 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 3 (modified), - 3 (modified), - 1 (modified), - 3 (modified), - 3 (modified), - 3 (modified), - 3 (modified), - 0 (modified), - 5 (modified), - 3 (modified), - 3 (modified), - 0 (modified), - 0 (modified), + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 43, + 0, + 0, + 1, + 1, + 41, + 1, + 82, + 83, + 83, + 83, + 0, + 0, + 0, + 2, + 1, + 0, + 0, + 3, + 3, + 1, + 3, + 3, + 3, + 3, + 0, + 5, + 3, + 3, + 0, + 0, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_3_true_true.txt b/crates/fayalite/tests/sim/expected/queue_3_true_true.txt index 730e7e5..4a0f664 100644 --- a/crates/fayalite/tests/sim/expected/queue_3_true_true.txt +++ b/crates/fayalite/tests/sim/expected/queue_3_true_true.txt @@ -1133,35 +1133,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 2 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 2 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 2, + 1, + 0, + 0, + 0, + 2, + 1, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 87 (modified), + 87, 0, - 87 (modified), + 87, 43, - 83 (modified), + 83, 0, - 83 (modified), + 83, 41, 3, 2, @@ -1173,57 +1173,57 @@ Simulation { 0, 43, 1, - 43 (modified), - 1 (modified), - 2, - 2 (modified), - 0 (modified), - 2, - 2 (modified), - 1, - 1 (modified), - 0 (modified), - 0, - 0, - 0, - 0, - 1, - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 1, - 1 (modified), - 1 (modified), 43, - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 41 (modified), - 1 (modified), - 82 (modified), - 83 (modified), - 83 (modified), - 83 (modified), - 0 (modified), - 2 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 3 (modified), - 3 (modified), - 1 (modified), - 3 (modified), - 3 (modified), - 3 (modified), - 3 (modified), - 0 (modified), - 5 (modified), - 3 (modified), - 3 (modified), - 0 (modified), - 0 (modified), + 1, + 2, + 2, + 0, + 2, + 2, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 43, + 0, + 0, + 1, + 1, + 41, + 1, + 82, + 83, + 83, + 83, + 0, + 2, + 1, + 0, + 0, + 3, + 3, + 1, + 3, + 3, + 3, + 3, + 0, + 5, + 3, + 3, + 0, + 0, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_4_false_false.txt b/crates/fayalite/tests/sim/expected/queue_4_false_false.txt index e549ced..4e0a067 100644 --- a/crates/fayalite/tests/sim/expected/queue_4_false_false.txt +++ b/crates/fayalite/tests/sim/expected/queue_4_false_false.txt @@ -1122,35 +1122,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 3 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 3, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 87 (modified), + 87, 1, - 87 (modified), + 87, 43, - 83 (modified), + 83, 0, - 83 (modified), + 83, 41, 3, 1, @@ -1162,58 +1162,58 @@ Simulation { 0, 43, 1, - 43 (modified), - 1 (modified), - 0, - 1 (modified), - 0 (modified), - 1, - 1 (modified), - 1, - 1 (modified), - 0 (modified), - 1, - 1, - 0, - 0, - 0, - 0 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1 (modified), 43, - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 41 (modified), - 1 (modified), - 82 (modified), - 83 (modified), - 83 (modified), - 83 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 3 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 2 (modified), - 2 (modified), - 4 (modified), - 4 (modified), - 0 (modified), + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 43, + 0, + 1, + 1, + 1, + 41, + 1, + 82, + 83, + 83, + 83, + 0, + 0, + 1, + 3, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 4, + 4, + 0, + 3, + 7, + 3, 3, - 7 (modified), - 3 (modified), - 3 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_4_false_true.txt b/crates/fayalite/tests/sim/expected/queue_4_false_true.txt index 9f1d05b..a374f44 100644 --- a/crates/fayalite/tests/sim/expected/queue_4_false_true.txt +++ b/crates/fayalite/tests/sim/expected/queue_4_false_true.txt @@ -1103,35 +1103,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 3 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 1, + 0, + 3, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 87 (modified), + 87, 1, - 87 (modified), + 87, 43, - 83 (modified), + 83, 0, - 83 (modified), + 83, 41, 3, 1, @@ -1143,56 +1143,56 @@ Simulation { 0, 43, 1, - 43 (modified), - 1 (modified), - 0, - 1 (modified), - 0 (modified), - 1, - 1 (modified), - 1, - 1 (modified), - 0 (modified), - 1, - 1, - 0, - 0, - 0, - 0 (modified), - 0, - 0 (modified), - 0 (modified), - 0, - 0 (modified), - 1 (modified), 43, - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 41 (modified), - 1 (modified), - 82 (modified), - 83 (modified), - 83 (modified), - 83 (modified), - 1 (modified), - 3 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 2 (modified), - 2 (modified), - 4 (modified), - 4 (modified), - 0 (modified), + 1, + 0, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 43, + 0, + 1, + 1, + 1, + 41, + 1, + 82, + 83, + 83, + 83, + 1, + 3, + 0, + 0, + 0, + 1, + 1, + 0, + 2, + 2, + 4, + 4, + 0, + 3, + 7, + 3, 3, - 7 (modified), - 3 (modified), - 3 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_4_true_false.txt b/crates/fayalite/tests/sim/expected/queue_4_true_false.txt index b37a9cd..7d20f26 100644 --- a/crates/fayalite/tests/sim/expected/queue_4_true_false.txt +++ b/crates/fayalite/tests/sim/expected/queue_4_true_false.txt @@ -1132,35 +1132,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 89 (modified), + 89, 0, - 89 (modified), + 89, 44, - 83 (modified), + 83, 0, - 83 (modified), + 83, 41, 4, 1, @@ -1172,58 +1172,58 @@ Simulation { 0, 44, 1, - 44 (modified), - 1 (modified), - 1, - 1 (modified), - 0 (modified), - 1, - 1 (modified), - 1, - 1 (modified), - 0 (modified), - 0, - 0, - 0, - 0, - 1, - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 1, - 1 (modified), - 1 (modified), 44, - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 41 (modified), - 1 (modified), - 82 (modified), - 83 (modified), - 83 (modified), - 83 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 3 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 2 (modified), - 2 (modified), - 0 (modified), - 2 (modified), - 2 (modified), - 4 (modified), - 4 (modified), - 0 (modified), + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 44, + 0, + 0, + 1, + 1, + 41, + 1, + 82, + 83, + 83, + 83, + 0, + 0, + 0, + 3, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 4, + 4, + 0, + 0, + 0, + 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/queue_4_true_true.txt b/crates/fayalite/tests/sim/expected/queue_4_true_true.txt index 051b203..a0ee509 100644 --- a/crates/fayalite/tests/sim/expected/queue_4_true_true.txt +++ b/crates/fayalite/tests/sim/expected/queue_4_true_true.txt @@ -1113,35 +1113,35 @@ Simulation { value: [ 1, 1, - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 0, + 1, + 1, + 0, + 0, + 0, ], }, big_slots: StatePart { value: [ 0, 0, - 89 (modified), + 89, 0, - 89 (modified), + 89, 44, - 83 (modified), + 83, 0, - 83 (modified), + 83, 41, 4, 1, @@ -1153,56 +1153,56 @@ Simulation { 0, 44, 1, - 44 (modified), - 1 (modified), - 1, - 1 (modified), - 0 (modified), - 1, - 1 (modified), - 1, - 1 (modified), - 0 (modified), - 0, - 0, - 0, - 0, - 1, - 1 (modified), - 0, - 0 (modified), - 0 (modified), - 1, - 1 (modified), - 1 (modified), 44, - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 41 (modified), - 1 (modified), - 82 (modified), - 83 (modified), - 83 (modified), - 83 (modified), - 0 (modified), - 3 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 2 (modified), - 2 (modified), - 0 (modified), - 2 (modified), - 2 (modified), - 4 (modified), - 4 (modified), - 0 (modified), + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 44, + 0, + 0, + 1, + 1, + 41, + 1, + 82, + 83, + 83, + 83, + 0, + 3, + 0, + 0, + 0, + 2, + 2, + 0, + 2, + 2, + 4, + 4, + 0, + 0, + 0, + 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/ripple_counter.txt b/crates/fayalite/tests/sim/expected/ripple_counter.txt index 91bbffd..6562d4d 100644 --- a/crates/fayalite/tests/sim/expected/ripple_counter.txt +++ b/crates/fayalite/tests/sim/expected/ripple_counter.txt @@ -641,15 +641,15 @@ Simulation { }, small_slots: StatePart { value: [ - 0 (modified), - 0 (modified), - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), + 0, + 0, + 1, + 1, + 0, + 0, + 1, + 0, + 0, ], }, big_slots: StatePart { @@ -662,56 +662,56 @@ Simulation { 0, 0, 0, - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 0 (modified), 0, - 1 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, 0, 0, 0 (modified), 0, - 0 (modified), 0, - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), + 0, + 1, + 0, + 0, + 0, + 1, 0, 0, 0 (modified), 0, - 0 (modified), 0, - 1 (modified), - 0 (modified), - 0 (modified), - 0 (modified), - 1 (modified), + 0, + 1, + 0, + 0, + 0, + 1, 0, 0, 0 (modified), 0, - 0 (modified), + 0, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/shift_register.txt b/crates/fayalite/tests/sim/expected/shift_register.txt index cc9d95a..1eaa378 100644 --- a/crates/fayalite/tests/sim/expected/shift_register.txt +++ b/crates/fayalite/tests/sim/expected/shift_register.txt @@ -259,10 +259,10 @@ Simulation { }, small_slots: StatePart { value: [ - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), + 0, + 0, + 1, + 0, ], }, big_slots: StatePart { @@ -272,14 +272,14 @@ Simulation { 0, 0, 0, - 0 (modified), - 0 (modified), 0, - 0 (modified), 0, - 0 (modified), 0, - 0 (modified), + 0, + 0, + 0, + 0, + 0, ], }, sim_only_slots: StatePart { diff --git a/crates/fayalite/tests/sim/expected/sim_only_connects.txt b/crates/fayalite/tests/sim/expected/sim_only_connects.txt index 3b90ca8..2ae2fbe 100644 --- a/crates/fayalite/tests/sim/expected/sim_only_connects.txt +++ b/crates/fayalite/tests/sim/expected/sim_only_connects.txt @@ -380,10 +380,10 @@ Simulation { }, small_slots: StatePart { value: [ - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), + 0, + 0, + 1, + 0, ], }, big_slots: StatePart { @@ -395,9 +395,9 @@ Simulation { 1 (modified), 0, 0, - 0 (modified), - 1 (modified), - 0 (modified), + 0, + 1, + 0, 1, 0, 1 (modified), @@ -443,8 +443,8 @@ Simulation { }, { "extra": "value", - } (modified), - {} (modified), + }, + {}, { "bar": "", "extra": "value", diff --git a/crates/fayalite/tests/sim/expected/sim_read_past.txt b/crates/fayalite/tests/sim/expected/sim_read_past.txt index 17156d0..f771434 100644 --- a/crates/fayalite/tests/sim/expected/sim_read_past.txt +++ b/crates/fayalite/tests/sim/expected/sim_read_past.txt @@ -517,15 +517,15 @@ Simulation { }, small_slots: StatePart { value: [ - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 0 (modified), + 1, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, ], }, big_slots: StatePart { @@ -542,42 +542,42 @@ Simulation { 49 (modified), 49 (modified), 50 (modified), - 1 (modified), - 0 (modified), - 0 (modified), - 48 (modified), - 49 (modified), - 49 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 48 (modified), - 49 (modified), - 48 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 49 (modified), - 49 (modified), - 50 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 49 (modified), - 49 (modified), - 49 (modified), - 0 (modified), - 0 (modified), - 1 (modified), - 49 (modified), - 50 (modified), - 50 (modified), - 0 (modified), - 1 (modified), - 0 (modified), - 49 (modified), - 49 (modified), - 50 (modified), + 1, + 0, + 0, + 48, + 49, + 49, + 0, + 0, + 1, + 48, + 49, + 48, + 0, + 1, + 0, + 49, + 49, + 50, + 0, + 0, + 1, + 49, + 49, + 49, + 0, + 0, + 1, + 49, + 50, + 50, + 0, + 1, + 0, + 49, + 49, + 50, ], }, sim_only_slots: StatePart {