1. 07 Jan, 1999 4 commits
  2. 06 Jan, 1999 6 commits
  3. 05 Jan, 1999 1 commit
  4. 24 Dec, 1998 1 commit
  5. 23 Dec, 1998 4 commits
  6. 22 Dec, 1998 6 commits
  7. 21 Dec, 1998 6 commits
  8. 18 Dec, 1998 1 commit
    • simonpj's avatar
      [project @ 1998-12-18 17:40:31 by simonpj] · 7e602b0a
      simonpj authored
      Another big commit from Simon.  Actually, the last one
      didn't all go into the main trunk; because of a CVS glitch it
      ended up in the wrong branch.
      
      So this commit includes:
      
      * Scoped type variables
      * Warnings for unused variables should work now (they didn't before)
      * Simplifier improvements:
      	- Much better treatment of strict arguments
      	- Better treatment of bottoming Ids
      	- No need for w/w split for fns that are merely strict
      	- Fewer iterations needed, I hope
      * Less gratuitous renaming in interface files and abs C
      * OccName is a separate module, and is an abstract data type
      
      I think the whole Prelude and Exts libraries compile correctly.
      Something isn't quite right about typechecking existentials though.
      7e602b0a
  9. 15 Dec, 1998 2 commits
  10. 14 Dec, 1998 1 commit
  11. 10 Dec, 1998 1 commit
    • simonpj's avatar
      [project @ 1998-12-10 08:54:18 by simonpj] · 688c1dd3
      simonpj authored
      This massive commit is what Simon has been up to for a couple of weeks.
      
      1.  Scoped type variables are in
      
      2.  The typechecker works a bit differently.
          In partiular, the compiler no longer has TcTyVars of
      	a different type than TyVars.
          All the 's' and 'flexi' type parameters have vanished from Id, TyVar,
      	Type, etc.
          The typchecker monad is now in the IO world (though I didn't get
      	around to removing the 's' parameter from the monad, but it's
      	no longer used)
      
          Bottom line: significantly simpler,
      		 fewer gratuitous conversions from TcType <-> Type
      		 but less type security in the compiler
      
          There was a reason for doing this now; somehow the 's' stuff
          got in the way of kind inference for scoped type variables
          and I lost patience with it.
      
      3.  Haskell98-style reporting of scope errors; i.e. you only get
          an error if you use a variable that could mean two different things.
          At the same time I did a lot of tidying-up in the renamer.
      
      4.  Mostly-complete fix to the reporting of unused variables, which
          has never worked properly.  (The 'mostly' bit is because it reports
          those 'system' tycons like _C as unused.  I'm on the job.)
      
      5.  The parser is a bit tider than it was.  A few more ugn files give
          a more refined C data type.  I had to tackle this because of
          the scoped type variables.
      
      6.  Haskell98-style fixities.  Fixity decls can occur wherever a type
          signature can
      
      7.  Some HsSyn changes that constitute minor tidy ups
      	Put TypeDecl and ClassDecl into one type [HsDecls]
      	Improved the HsMatch/GRHSs etc data types.
      
      8.  TcGRHSs is removed; combined into TcMatches.
      
      I DO NOT PROMISE THAT ALL OF THIS WORKS.  It compiles the Prelude,
      but I have not tested it more than that.  Stick to 4.01 if you want a
      compiler that's sure to work.
      688c1dd3
  12. 09 Dec, 1998 2 commits
  13. 03 Dec, 1998 5 commits