1. Jul 21, 2019
  2. Jul 19, 2019
  3. Jul 18, 2019
  4. Jul 16, 2019
  5. Jul 11, 2019
    • Matthew Fernandez's avatar
      fix: suppress encoding errors during testing · 14de19ce
      Matthew Fernandez authored
      In CI the test script thinks the system locale is ASCII, but apparently one of
      the subprocesses gives us non-ASCII data. Rather than trying to deal with this
      mess, just ignore encoding errors when piping data back to stdout/stderr.
      14de19ce
  6. Jul 10, 2019
  7. Jul 09, 2019
    • Matthew Fernandez's avatar
      Merge branch 'bugfix/github-142' · ea0e78d1
      Matthew Fernandez authored
      ea0e78d1
    • Matthew Fernandez's avatar
      add some extra assume statement tests · 0cf8e57a
      Matthew Fernandez authored
      0cf8e57a
    • Matthew Fernandez's avatar
      enable now-passing test · 37be26cf
      Matthew Fernandez authored
      Github: related to #142 "pending-queue.m terminates exploration too early"
      37be26cf
    • Matthew Fernandez's avatar
      fix: perform quantifier loop comparison as signed · 2329056d
      Matthew Fernandez authored
      This was leading to the misc/pending-queue.m model terminating early with a
      surprisingly small number of states. Some more explanation from the Github
      issue:
      
        The misc/pending-queue.m model produces many fewer states (81) than it used to
        (147487952), which is unexpected. Bisecting indicates 79579fd5 is the first bad
        commit.
        ...
        The problem here is that commit 79579fd5 inadvertently caused the comparison in
        the loop emitted for a quantifier to become unsigned. A quantifier emits code
        that previously looked something like:
      
          const value_t step = VALUE_C(1);
          const value_t lb = VALUE_C(-1);
          const value_t ub = VALUE_C(3);
          for (value_t _ru1_i = lb; _ru_i <= ub; _ru_i += step) {
          ...
      
        After that commit, the emitted code looks like:
      
          const raw_value_t step = (raw_value_t)1;
          const raw_value_t lb = (raw_value_t)VALUE_C(-1);
          const raw_value_t ub = (raw_value_t)VALUE_C(3);
          for (raw_value_t _ru1_i = 1; _ru_i <= ub - lb + 1; _ru_i += step) {
          ...
      
        Now everything generally works out fine except in cases like the above when
        the range spans positive and negative values. Notice that the first iteration
        of the loop in the second case already has a false condition. The problem here
        is that the comparison was previously comparing value_ts and now it's
        comparing raw_value_ts. In a typical model this goes from comparing int8_t
        values to uint8_t values.
      
      Github: closes #142 "pending-queue.m terminates exploration too early"
      2329056d
    • Matthew Fernandez's avatar
      add a test for the signed/unsigned comparison problem · f3c1b183
      Matthew Fernandez authored
      Github: related to #142 "pending-queue.m terminates exploration too early"
      f3c1b183
  8. Jul 08, 2019
  9. Jul 07, 2019