1. 24 Nov, 2015 1 commit
  2. 15 Nov, 2015 1 commit
    • Andrei Paskevich's avatar
      Mlw: admit fields with mutable types in private records · f522e56e
      Andrei Paskevich authored
      this should not be problematic as long as these fields do not occur
      in the invariants (actual or refined). In other words, a value of
      a private type exists no matter what is stored in the field.
      
      Also, admit non-private mutable types without actual mutable fields.
      It is actually impossible to create a write effect for such types,
      and the only consequence of being mutable is that they are assigned
      a region, and so every value of such type can be tracked individually.
      One use case for this is a non-private record with an invariant,
      which either has fields with mutable types or has type parameters
      that we wish to instantiate with mutable types. If we modify these
      mutable components, this may break the record's invariant. Now, if
      the record itself is immutable (and thus has no associated region),
      then we must reestablish the invariant immediately, otherwise we
      lose track of the value. Even if this extra flexibility does not
      prove useful in the end, it seems to be harmless.
      
      Also, admit type definitions of the form
        type t 'a = (private|abstract)? mutable? {} invariant*
      which define private empty records (even if not declared private).
      
      Also, "type t 'a" is now equivalent to "type t 'a = private {}".
      f522e56e
  3. 13 Nov, 2015 1 commit
  4. 08 Nov, 2015 1 commit
  5. 18 Sep, 2015 1 commit
  6. 13 Sep, 2015 1 commit
  7. 22 Aug, 2015 6 commits
  8. 21 Aug, 2015 1 commit
  9. 20 Aug, 2015 2 commits
  10. 19 Aug, 2015 2 commits
  11. 18 Aug, 2015 3 commits
  12. 07 Aug, 2015 1 commit
  13. 06 Aug, 2015 3 commits
  14. 31 Jul, 2015 1 commit
  15. 28 Jul, 2015 1 commit
  16. 17 Jul, 2015 1 commit
  17. 05 Jul, 2015 1 commit
  18. 29 Jun, 2015 1 commit
  19. 25 Jun, 2015 1 commit
  20. 24 Jun, 2015 2 commits
  21. 19 Jun, 2015 2 commits
  22. 18 Jun, 2015 1 commit