1. 13 Jun, 2017 1 commit
    • Andrei Paskevich's avatar
      WhyML: white-box blocks · 516cfd3a
      Andrei Paskevich authored
      Just as abstract blocks, "white-box blocks" are program expressions
      with an additional contract attached to their execution place.
      Contrary to abstract blocks, whiteboxes do not hide their contents
      from the outer computation. In most cases, you would not need
      whiteboxes at all, as the same effect can be achieved by adding
      assertions. Their utility comes from their syntax: the added
      contract clauses bind to the expression and do not require
      additional semicolons, begin-end's, let-in's or try-with's.
      
      Compare:
      
          let x = <expr> in assert { P x }; x
      to  <expr> ensures { P result }
      or  <expr> returns { x -> P x }
      
          if ... then begin let x = <expr> in assert { P x }; x end; ...
      to  if ... then <expr> ensures { P result }; ...
      
          try <expr> with E x -> assert { P x }; raise E x; end
      to  <expr> raises { E x -> P x }
      
      Internally, whiteboxes are just abstract blocks (zero-argument
      anonymous functions executed in-place) with the label "vc:white_box"
      on top. The user never needs to write this label explicitly though.
      516cfd3a
  2. 08 Jun, 2017 1 commit
    • Andrei Paskevich's avatar
      Mlw: for-loops over range types · 2f7b69b5
      Andrei Paskevich authored
      In the surface language, the loop index is always int in
      the loop invariant and all annotations and pure terms inside
      the loop. If you want to access the original range-typed index,
      use "let copy_i = i in" in the program code before your assertion.
      Of course, you cannot do that for the loop invariant, which is
      what we want.
      2f7b69b5
  3. 15 Mar, 2016 1 commit
  4. 31 Jan, 2016 1 commit
  5. 07 Dec, 2015 1 commit
  6. 13 Sep, 2015 1 commit
  7. 20 Mar, 2015 1 commit
  8. 19 Mar, 2015 1 commit
  9. 14 Mar, 2014 1 commit
  10. 06 Mar, 2013 1 commit
  11. 20 Oct, 2012 1 commit
    • Andrei Paskevich's avatar
      simplify copyright headers · 11598d2b
      Andrei Paskevich authored
      + create AUTHORS file
      + fix the linking exception in LICENSE
      + update the "About" in IDE
      + remove the trailing whitespace
      + inflate my scores at Ohloh
      11598d2b
  12. 09 Apr, 2012 1 commit
  13. 01 Jul, 2011 1 commit
  14. 24 May, 2011 1 commit
  15. 13 Dec, 2010 1 commit
  16. 18 Mar, 2010 1 commit
  17. 10 Mar, 2010 1 commit
  18. 09 Mar, 2010 2 commits
  19. 08 Mar, 2010 1 commit
  20. 07 Mar, 2010 1 commit
  21. 05 Mar, 2010 2 commits