1. Jul 26, 2020
  2. Jul 13, 2020
  3. Jul 09, 2020
    • Matthew Fernandez's avatar
      retrieve and use the *previous* schedule when diffing scalarset-indexed arrays · 6ecec8fb
      Matthew Fernandez authored
      This is the final change that brings diff counterexample traces (the default)
      inline with the user's expectations. Traces should now correctly suppress
      printing of elements that have not changed and preserve elements that have
      changed. The effect can be seen on tests/scalarset-cex.m.
      
      Github: related to #194 "clearer CEX output with scalarsets"
      6ecec8fb
    • Matthew Fernandez's avatar
      during printing, derive previous handles from the tracked previous handle · 693c595a
      Matthew Fernandez authored
      Another baby step towards having the current handle and previous handle evolve
      independently.
      
      Github: related to #194 "clearer CEX output with scalarsets"
      693c595a
    • Matthew Fernandez's avatar
      aabff04b
    • Matthew Fernandez's avatar
      during printing, track the current handle more explicitly · d161bb07
      Matthew Fernandez authored
      This is more preparation to generate independent handles when traversing a
      scalarset-indexed array. The relative offset for a given array element in the
      previous state is not the same as the relative offset in the current state,
      because the previous and current states may have different schedules for the
      index type.
      
      E.g. given a scalarset(4), the original type contains {0, 1, 2, 3}. The schedule
      of this type in the previous state might be the permutation {2, 3, 1, 0} while
      the schedule in the current state might be {3, 2, 0, 1}. So when retrieving the
      0th element of the array, this is actually at the 2nd element in the current
      state and the 3rd element in the previous state.
      
      Github: related to #194 "clearer CEX output with scalarsets"
      d161bb07
  4. Jul 08, 2020
  5. Jul 07, 2020
  6. Jul 05, 2020
  7. Jun 28, 2020
    • Matthew Fernandez's avatar
      generate loops to print range- and scalarset-indexed arrays · b2edcd1a
      Matthew Fernandez authored
      Previously such arrays were unrolled at code generation time. This was
      suboptimal for large arrays (e.g. an array with an index type of `0 .. 10000`
      would generate a huge amount of code to print it). However, the main motivation
      for this change is that we would like to print scalarsets using more friendly
      identifiers. This requires us to emit printing as a loop, because the order of
      the elements is not known at code generation time.
      
      Github: related to #194 "clearer CEX output with scalarsets"
      b2edcd1a
    • Matthew Fernandez's avatar
      support non-constant offsets when deriving handles for printing · e126e1e8
      Matthew Fernandez authored
      To support printing arrays without unrolling, we will need to handle offsets
      that use a loop counter.
      
      Github: related to #194 "clearer CEX output with scalarsets"
      e126e1e8
    • Matthew Fernandez's avatar
      support integers in dynamic printf call · fdf5a7bf
      Matthew Fernandez authored
      Github: related to #194 "clearer CEX output with scalarsets"
      fdf5a7bf
    • Matthew Fernandez's avatar
      introduce a way of incrementally constructing a printf call · 314103b2
      Matthew Fernandez authored
      This is a step towards allowing us to emit printing of an array type as a loop
      instead of unrolling the array at code generation time.
      
      Github: related to #194 "clearer CEX output with scalarsets"
      314103b2
    • Matthew Fernandez's avatar
      rephrase a generate_print call to Generator() · d379ccc6
      Matthew Fernandez authored
      This has no immediate relevance, but we're about to make the `prefix` parameter
      to Generator a more complex type than std::string. This particular call site
      will need to take advantage of this to pass through richer information than a
      simple string that it can pass to generate_print().
      
      Github: related to #194 "clearer CEX output with scalarsets"
      d379ccc6