1. 15 Mar, 2016 2 commits
  2. 08 Mar, 2016 1 commit
  3. 10 Dec, 2015 1 commit
  4. 20 Mar, 2015 1 commit
  5. 19 Mar, 2015 1 commit
  6. 20 Sep, 2014 1 commit
  7. 15 Sep, 2014 1 commit
  8. 02 Sep, 2014 1 commit
  9. 31 Aug, 2014 1 commit
  10. 29 Aug, 2014 1 commit
  11. 25 Aug, 2014 1 commit
  12. 28 Jun, 2014 1 commit
  13. 14 Mar, 2014 1 commit
  14. 07 Feb, 2014 1 commit
  15. 20 Jan, 2014 1 commit
    • Andrei Paskevich's avatar
      WhyML: add "diverges", "reads {}", and "writes {}" effect clauses · 83858597
      Andrei Paskevich authored
      - "diverges" states that the computation may not terminate (which
        does not mean that is always diverges: just as any other effect
        annotation, this clause states a possibility of a side effect).
      
      - "reads {}" states that the computation does not access any variable
        except those that are listed elsewhere in the specification (or the
        proper function arguments, if "reads" is in a function spec).
      
      - "writes {}" states that the computation does not modify any mutable
        value.
      
      - If a function definition or an abstract computation may diverge,
        but there is no "diverges" clause in the specification, a warning
        is produced. If a function definition or an abstract computation
        always terminates, but there is a "diverges" clause in the spec,
        an error is produced.
      
      - If there is a "reads" or a "writes" clause in a function definition
        or an abstract computation, then every modified value must be listed
        in "writes" and every accessed external variable not mentioned in
        the spec must be listed in "reads". (Notice that this is a stricter
        requirement than before, when the presence of a "writes" clause
        did not require to specify "reads".) However, one does not have to
        write "reads {}" or "writes {}" if the corresponding lists are empty.
      83858597
  16. 20 Nov, 2013 1 commit
  17. 19 Nov, 2013 1 commit
  18. 06 Jun, 2013 2 commits
  19. 06 Mar, 2013 1 commit
  20. 04 Feb, 2013 3 commits
  21. 03 Feb, 2013 2 commits
    • Andrei Paskevich's avatar
      whyml: rename vty_arrow to aty · 0e35697f
      Andrei Paskevich authored
      Now, there are three kinds of types used in WhyML API:
        ity -- the type of first-order values, "i" stands for "individual"
        aty -- the type of higher-order values, "a" stands for "arrow"
        vty -- the sum of the previous two, "v" stands for "value"
      
      We should probably rename the VTvalue constructor, since it carries
      an ity, and not a vty. And I would gladly rename ity to something
      more appropriate, too.
      0e35697f
    • Andrei Paskevich's avatar
      2d0fb535
  22. 02 Feb, 2013 1 commit
  23. 01 Feb, 2013 2 commits
  24. 31 Jan, 2013 1 commit
  25. 30 Jan, 2013 1 commit
    • Andrei Paskevich's avatar
      reorganize examples/ · 4b1bc2b0
      Andrei Paskevich authored
      - all programs with sessions are in examples/
      - all programs without sessions are in examples/in_progress/
        (if you have private sessions for those, just move them there)
      - all pure logical problems are in logic/
        (to simplify bench scripts and gallery building; they are few anyway)
      - all OCaml programs are in examples/use_api/
      - all strange stuff is in examples/misc/
        (most of it should probably go)
      - Claude's solutions for Foveoos 2011 are in examples/foveoos11-cm/
        (why do we need two sets of solutions for quite simple problems?)
      - hoare_logic, bitvectors, vacid_0_binary_heaps are in examples/
      
      Bench scripts and documentation are updated.
      Also, bench/bench is simplified a little bit.
      4b1bc2b0