[project @ 1998-12-10 08:54:18 by simonpj]
authorsimonpj <unknown>
Thu, 10 Dec 1998 08:54:19 +0000 (08:54 +0000)
committersimonpj <unknown>
Thu, 10 Dec 1998 08:54:19 +0000 (08:54 +0000)
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.

ghc/compiler/Makefile
ghc/compiler/NOTES

index a89de68..b90208a 100644 (file)
@@ -1,5 +1,5 @@
 # -----------------------------------------------------------------------------
-# $Id: Makefile,v 1.46 1998/12/02 13:17:15 simonm Exp $
+# $Id: Makefile,v 1.47 1998/12/10 08:54:18 simonpj Exp $
 
 TOP = ..
 include $(TOP)/mk/boilerplate.mk
@@ -158,17 +158,20 @@ nativeGen/MachMisc_HC_OPTS        = -K2m -fvia-C
 nativeGen/MachCode_HC_OPTS     = -H10m
 parser/UgenAll_HC_OPTS                 = -fvia-C '-\#include"hspincl.h"'
 parser/UgenUtil_HC_OPTS        = -fvia-C '-\#include"hspincl.h"'
-parser/U_constr_HC_OPTS        = -fvia-C '-\#include"hspincl.h"'
 parser/U_binding_HC_OPTS       = -fvia-C '-\#include"hspincl.h"'
-parser/U_pbinding_HC_OPTS      = -fvia-C '-\#include"hspincl.h"'
+parser/U_constr_HC_OPTS        = -fvia-C '-\#include"hspincl.h"'
+parser/U_either_HC_OPTS        = -fvia-C '-\#include"hspincl.h"'
 parser/U_entidt_HC_OPTS        = -fvia-C '-\#include"hspincl.h"'
+parser/U_gdexp_HC_OPTS                 = -fvia-C '-\#include"hspincl.h"'
+parser/U_grhsb_HC_OPTS                 = -fvia-C '-\#include"hspincl.h"'
 parser/U_list_HC_OPTS          = -fvia-C '-\#include"hspincl.h"'
 parser/U_literal_HC_OPTS       = -fvia-C '-\#include"hspincl.h"'
+parser/U_match_HC_OPTS                 = -fvia-C '-\#include"hspincl.h"'
 parser/U_maybe_HC_OPTS                 = -fvia-C '-\#include"hspincl.h"'
-parser/U_either_HC_OPTS        = -fvia-C '-\#include"hspincl.h"'
 parser/U_qid_HC_OPTS           = -fvia-C '-\#include"hspincl.h"'
 parser/U_tree_HC_OPTS          = -H12m -fvia-C '-\#include"hspincl.h"'
 parser/U_ttype_HC_OPTS                 = -fvia-C '-\#include"hspincl.h"'
+
 prelude/PrimOp_HC_OPTS                 = -H12m -K3m
 reader/Lex_HC_OPTS             = -K2m -H16m -fvia-C
 
index 367bb93..c64db1a 100644 (file)
@@ -1,3 +1,9 @@
+cvs remove TcGRHSs.hi-boot TcGRHSs.hi-boot-5 TcGRHSs.lhs
+cvs remove pbinding.ugn
+cvs add grhsb.ugn gdexp.ugn
+-----------------------
+
+
 * CHECK that the things seek_liftable found are done in Core
 
 * CHECK that there aren't too many indirections in STG