1. 04 Oct, 2018 1 commit
  2. 28 Sep, 2018 2 commits
  3. 21 Sep, 2018 3 commits
  4. 20 Sep, 2018 1 commit
  5. 14 Sep, 2018 2 commits
  6. 13 Sep, 2018 7 commits
  7. 12 Sep, 2018 1 commit
    • Guillaume Melquiond's avatar
      Improve the lexicographic order for variants. · 0fb980c6
      Guillaume Melquiond authored
      1. better handle the equality case, which is the reason for using a
         lexicographic order in the first place;
      2. implement a proper lexicographic order, i.e., make (a,b) smaller
         than (a,b,c).
      
      As a consequence of these two changes, in the following example, the VC
      for f goes from (0 <= x /\ x < x) to true:
      
      let rec f (x y : int) : int variant { x, () } = g x y
      with g (x y : int) : int variant { x } = f (x-1) y
      0fb980c6
  8. 11 Sep, 2018 2 commits
    • Mário Pereira's avatar
      OCaml printer: pattern priting protected by parentheses. · 47f6a44c
      Mário Pereira authored
      This closes issue #181.
      47f6a44c
    • Guillaume Melquiond's avatar
      Remove handcrafted error messages (fix issues #150 and #172). · ce21b6c1
      Guillaume Melquiond authored
      Short story: it was a source of bugs, there was only one handcrafted
      message over 650, and, to quote François Pottier, "you seem to have
      misunderstood what the various commands do".
      
      Long story: the proper steps to update the error messages after modifying
      the parser are
      
      1. update the old states with --update-errors
      2. generate the new states with --list-errors
      3. compare the old and new states with --compare-errors
      4. manually reconcile the differences between the old and new states
      5. write error messages for the new states
      6. add %on_error_reduce and go back to step 1, if step 5 is too hard
      7. check that the error messages for the old states are still meaningful
      8. check that the set of states is both correct (--compile-errors) and
         complete (--compare-errors)
      
      We were doing only step 1 and half of step 8. Doing the other half of
      step 8 would have prevented issue #172 from occurring. But that would have
      meant doing step 4 after each parser modification, which was never done.
      Note that step 2 is so expensive that it is impossible to perform step 8
      during continuous integration.
      
      Given the work needed to update the error messages after a syntax change,
      I don't think we can reliably use them until WhyML no longer evolves.
      ce21b6c1
  9. 10 Sep, 2018 8 commits
  10. 07 Sep, 2018 1 commit
  11. 04 Sep, 2018 1 commit
  12. 31 Aug, 2018 2 commits
  13. 30 Aug, 2018 1 commit
  14. 29 Aug, 2018 1 commit
  15. 24 Aug, 2018 2 commits
  16. 22 Aug, 2018 1 commit
  17. 21 Aug, 2018 1 commit
  18. 20 Aug, 2018 3 commits