1. 10 Nov, 2013 1 commit
  2. 26 Oct, 2013 1 commit
    • Andrei Paskevich's avatar
      Pattern: add compile_bare which does not require known_map · 43aeab83
      Andrei Paskevich authored
      In pattern compilation, we only need to know the full list of
      constructors for a given type, whenever
      1. we want to check that a symbol used in a pattern is indeed
         a constructor;
      2. we want to check for non-exhaustive matching and return an
         example of a non-covered pattern, if any.
      Thus, we need to give Pattern.compile access to the current
      known_map whenever we check new declarations in Decl or Mlw_decl.
      However, once we have checked the patterns, we do not need the
      full constructor lists just to compile the match expressions.
      Just knowing the number of constructors (provided in ls_constr)
      is enough to detect non-exhaustive matching during compilation.
  3. 06 Mar, 2013 1 commit
  4. 04 Mar, 2013 1 commit
    • Andrei Paskevich's avatar
      whyml: match expression is ghost if we look inside ghost fields · 43b684d0
      Andrei Paskevich authored
      We store in every lsymbol a new integer field ls_constr,
      equal to zero if the lsymbol is not a constructor, and equal
      to the number of constructors of the lsymbol's type otherwise.
      It is allowed to declare or define an lsymbol with ls_constr > 0
      as an ordinary function (otherwise algebraic type elimination
      wouldn't work - though we might still check this in theories),
      but it is forbidden to use a wrong ls_constr in algebraic type
      The ghostness of a match expression is now determined as follows:
      If at least one branch expression is ghost,
        then the match is ghost;
      else if there is only one branch,
        then the match is not ghost;
      else if the matched expression is ghost,
        then the match is ghost;
      else if at least one pattern matches a ghost field
              against a constructor with ls_constr > 1
        then the match is ghost;
        the match is not ghost.
      We do just enough to recognize obvious non-ghost cases, and
      make no attempt to handle redundant matches or to detect
      exhaustive or-patterns in subpatterns.
  5. 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
  6. 09 Apr, 2012 1 commit
  7. 01 Jul, 2011 1 commit
  8. 24 May, 2011 1 commit
  9. 15 May, 2011 1 commit
  10. 13 Dec, 2010 1 commit
  11. 21 Jul, 2010 1 commit
  12. 27 Mar, 2010 1 commit
  13. 23 Mar, 2010 2 commits
  14. 22 Mar, 2010 1 commit
  15. 21 Mar, 2010 1 commit
  16. 19 Mar, 2010 2 commits
    • Andrei Paskevich's avatar
      use the functor StructMake to make Maps, Sets and Hashtbls · abf5427a
      Andrei Paskevich authored
      for uniquely tagged objects.
    • Francois Bobot's avatar
      · 23ca2d16
      Francois Bobot authored
         - Util : Ajout de Creation generique de Set,Map et Hashtbl 
                  quand on a un tag et une egalitée physique
         - Hashweak : Implementation de l'idee de Jean-Christophe et Andreï
         - Register : Simplification des types comme demandé par Jean-Christophe
                      Mise à jour des fichiers qui en dépendait
         - Theory   : Ajout d'une facilité de création des th_inst
         - Encoding_decorate : Prelude pour l'encodage de Stéphane en utilisant flat_theory d'Andreï
         - Ty : Ajout de Sty, Mty et Hty
         - Main : Reduction de la taille des lignes à 80 colonnes