1. 14 Jan, 1999 3 commits
    • sof's avatar
      [project @ 1999-01-14 17:58:41 by sof] · 3160f854
      sof authored
      Assorted minor Haskell 98 changes:
        * Maximal munch rule for "--" comments
        * _ as lower-case letter, "_" is a reserved id. Prefixing unused
          variable names in patterns with '_' causes the renamer not to
          report such names as being unused.
        * allow empty decls
        * comprehensions are now list comprehensions, not monadic.
        * use Monad.fail to signal pattern matching errors within
          do expressions.
        * remove record punning.
        * empty contexts are now legal  (go wild!)
        * allow records with no fields
        * allow newtypes with a labelled field
        * default default is now (Integer, Double)
        * turn off defaulting mechanism for args & res to a _ccall_.
        * allow LHSs of the form  (a -.- b) x = ...
        * Main.main can now have type (IO a)
        * nuked Void (and its use in the compiler sources.)
        * deriving machinery for Enum now also generate 'succ' and 'pred'
          method bindings.
    • sof's avatar
      [project @ 1999-01-14 16:59:51 by sof] · c1cf857a
      sof authored
      Arrange for Makefile dependencies to be generated on misc
      parser/ helper code.
    • sof's avatar
      [project @ 1999-01-14 16:55:16 by sof] · 55e0bdb4
      sof authored
      Added indexFS,
         indexFS :: FastString -> Int -> Char
  2. 13 Jan, 1999 1 commit
  3. 08 Jan, 1999 2 commits
  4. 07 Jan, 1999 7 commits
  5. 06 Jan, 1999 2 commits
  6. 05 Jan, 1999 1 commit
  7. 24 Dec, 1998 1 commit
  8. 23 Dec, 1998 2 commits
  9. 22 Dec, 1998 6 commits
  10. 21 Dec, 1998 3 commits
  11. 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.
  12. 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.
  13. 03 Dec, 1998 1 commit
    • simonm's avatar
      [project @ 1998-12-03 17:23:30 by simonm] · 052f7342
      simonm authored
      Inline PrimOps (inc. _c{call,asm}_GC_): load the arguments into
      temporaries early, just in case one of the arguments is in the spot on
      the stack where we want to push the return address.
  14. 02 Dec, 1998 1 commit
  15. 16 Nov, 1998 1 commit
  16. 13 Nov, 1998 2 commits
  17. 09 Nov, 1998 2 commits
  18. 08 Nov, 1998 3 commits