Attention une mise à jour du serveur va être effectuée le lundi 17 mai entre 13h et 13h30. Cette mise à jour va générer une interruption du service de quelques minutes.

  1. 20 Aug, 2019 1 commit
    • DAILLER Sylvain's avatar
      Generalization of check_unused_vars to logic and program decl · f91bb58b
      DAILLER Sylvain authored
      - Choice was made to not add unused variables when there is no contract
        and no body (no pre/(x)post, and no body).
      - For postcondition variable result, we only check variables that are not
        of unit type. And, we report a warning only if the variable is not present
        in all the ensures.
      - For result variable, with several imbricated raise, it seems possible to
        have false positive with no location. Removing the no location case which
        seems unhelpful anyway
  2. 27 Jun, 2019 1 commit
  3. 05 Jun, 2019 1 commit
  4. 25 Apr, 2019 3 commits
  5. 26 Mar, 2019 1 commit
  6. 11 Feb, 2019 1 commit
  7. 24 Oct, 2018 1 commit
  8. 23 Oct, 2018 1 commit
  9. 22 Oct, 2018 1 commit
  10. 21 Oct, 2018 1 commit
    • Andrei Paskevich's avatar
      WhyML: reference variables · 79f564bd
      Andrei Paskevich authored
      caveat: pass-as-reference does not work in chain relations.
              That is, 0 < r += 12 will not typecheck even
              if x is autodereferencing and (+=) has the
              first parameter with the reference marker.
      todo: forbid reference markers in logic, in type definitions,
            over logical symbols, etc.
      todo: update extraction drivers.
            why3.Ref.Ref defines
              - type "ref",
              - constructor "mk ref" (never used in Typing)
              - projection "contents" (both val and function)
              - program function "ref" (alias for "mk ref")
            ref.Ref defines
              - let-function (!)
              - program function (:=)
            It is important to attribute the symbols to their
            respective modules, since a program with reference
            variables may never use ref.Ref and why3.Ref.Ref
            is imported automatically.
  11. 16 Oct, 2018 1 commit
  12. 14 Oct, 2018 1 commit
  13. 11 Oct, 2018 4 commits
  14. 28 Sep, 2018 1 commit
    • Raphael Rieu-Helft's avatar
      Add support for partial functions · 17ed1270
      Raphael Rieu-Helft authored
      Program functions can be declared as partial with "let/val partial".
      Similarly to "diverges", partial code cannot be ghost, however it does not need to be
      explicitly specified as partial.
      Fixes #184.
  15. 11 Sep, 2018 1 commit
    • 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.
  16. 29 Aug, 2018 1 commit
  17. 17 Jul, 2018 1 commit
    • Andrei Paskevich's avatar
      Ident: disambiguated symbolic notation · 295cacf4
      Andrei Paskevich authored
      It is possible to append an arbitary number of quote symbols
      at the end of an prefix/infix/mixfix operator:
                  applied form      standalone form
                    -' 42               (-'_)
                    x +' y              (+')
                    a[0]' <- 1          ([]'<-)
      Pretty-printing will use the quote symbols for disambiguation.
      The derived symbols can be produced by Why3 by appending
      a suffix of the form "_toto" or "'toto". These symbols can
      be parsed/printed as "(+)_toto" or "(+)'toto", respectively.
  18. 07 Jul, 2018 1 commit
    • Andrei Paskevich's avatar
      confine all notation handling inside Ident · 0fea401c
      Andrei Paskevich authored
      This commit removes all hard-coded "infix ..", "prefix ..",
      and "mixfix .." from the rest of the code, and handles the
      symbolic notation entirely inside Ident. It does not change
      the notation itself.
  19. 18 Jun, 2018 1 commit
  20. 14 Jun, 2018 1 commit
  21. 01 Jun, 2018 1 commit
  22. 31 May, 2018 1 commit
  23. 17 May, 2018 1 commit
  24. 21 Mar, 2018 1 commit
    • Guillaume Melquiond's avatar
      Homogenize constructor names. · 6ef0273e
      Guillaume Melquiond authored
      The pattern-matching construct in the logic is now systematically named
      "Tcase" in constructors (Ptree.Tmatch -> Tcase). The one in the
      programs (supporting exceptions) is now systematically named "Ematch"
      (Expr.Ecase -> Ematch, Dexpr.DEcase -> DEmatch). They are now homogeneous
      with the other constructors: Term.Tcase, Dterm.DTcase, Ptree.Ematch,
      Mltree.Ematch. Smart constructor Expr.e_case was renamed accordingly.
  25. 20 Mar, 2018 1 commit
  26. 15 Mar, 2018 2 commits
  27. 09 Mar, 2018 1 commit
  28. 08 Mar, 2018 1 commit
    • Guillaume Melquiond's avatar
      Remove line numbers from theory anchors (fixes #98). · 6165ac52
      Guillaume Melquiond authored
      Since the same name cannot be reused for several theories in a single
      file, the line-number suffix can be scrapped. This makes it easier to
      reference a given theory from a human-written documentation.
      The final underscore is kept to avoid ambiguities.
  29. 11 Jan, 2018 1 commit
  30. 13 Dec, 2017 1 commit
  31. 06 Dec, 2017 1 commit
  32. 23 Nov, 2017 2 commits
    • MARCHE Claude's avatar
      fix issue #43 · 8e95f4ce
      MARCHE Claude authored
      code for expanding range decls and float decls is now shared between
      theories and modules, avoiding any further inconsistencies
    • MARCHE Claude's avatar
      fix issue #43 · e4d09421
      MARCHE Claude authored
      code for expanding range decls and float decls is now shared between
      theories and modules, avoiding any further inconsistencies
  33. 22 Nov, 2017 1 commit