simonpj 2002/08/28 07:51:52 PDT
Modified files: (Branch: meta-haskell-branch)
ghc/compiler/basicTypes Module.lhs Var.lhs
ghc/compiler/codeGen CodeGen.lhs
ghc/compiler/compMan CompManager.lhs
ghc/compiler/coreSyn CoreLint.lhs CorePrep.lhs
MkExternalCore.lhs
ghc/compiler/deSugar Desugar.lhs DsForeign.lhs DsMeta.hs
Match.lhs
ghc/compiler/ghci ByteCodeGen.lhs InteractiveUI.hs
Linker.lhs
ghc/compiler/hsSyn Convert.lhs HsDecls.lhs HsExpr.lhs
ghc/compiler/main BinIface.hs CodeOutput.lhs
DriverPipeline.hs ErrUtils.lhs
HscMain.lhs HscTypes.lhs MkIface.lhs
TidyPgm.lhs
ghc/compiler/ndpFlatten FlattenMonad.hs Flattening.hs
ghc/compiler/parser Parser.y ParserCore.y RdrHsSyn.lhs
ghc/compiler/prelude PrelNames.lhs
ghc/compiler/rename RnBinds.hi-boot-5 RnBinds.hi-boot-6
RnBinds.lhs RnEnv.lhs RnExpr.lhs
RnHiFiles.hi-boot-5 RnHiFiles.hi-boot-6
RnHiFiles.lhs RnHsSyn.lhs RnIfaces.lhs
RnNames.lhs RnSource.lhs RnTypes.lhs
ghc/compiler/simplCore SimplCore.lhs
ghc/compiler/stgSyn CoreToStg.lhs StgLint.lhs
ghc/compiler/typecheck Inst.lhs TcBinds.lhs TcClassDcl.lhs
TcDefaults.lhs TcDeriv.lhs TcEnv.lhs
TcExpr.hi-boot-5 TcExpr.hi-boot-6
TcExpr.lhs TcForeign.lhs TcHsSyn.lhs
TcIfaceSig.lhs TcInstDcls.lhs
TcMType.lhs TcMatches.hi-boot-5
TcMatches.hi-boot-6 TcMatches.lhs
TcMonoType.lhs TcPat.lhs TcRules.lhs
TcSimplify.lhs TcSplice.hi-boot-6
TcSplice.lhs TcTyClsDecls.lhs
TcTyDecls.lhs TcUnify.hi-boot
TcUnify.hi-boot-5 TcUnify.hi-boot-6
TcUnify.lhs
ghc/compiler/utils Outputable.lhs Panic.lhs
Added files: (Branch: meta-haskell-branch)
ghc/compiler/typecheck TcRnDriver.lhs TcRnMonad.lhs
TcRnTypes.lhs
Removed files: (Branch: meta-haskell-branch)
ghc/compiler/rename Rename.lhs RnMonad.lhs
ghc/compiler/typecheck TcModule.lhs TcMonad.lhs
Log:
This massive commit is the stuff I did while
I was away (summer school etc)
The main goal
Support declaration splices in Template Haskell
The main change: renaming and typechecking have to be
interleaved, because we can't rename stuff after a declaration
splice until after we've typechecked the stuff before (and the
splice itself).
* Combine the renamer and typecheker monads into one
(TcRnMonad, TcRnTypes)
These two replace TcMonad and RnMonad
* Give them a single 'driver' (TcRnDriver). This driver
replaces TcModule.lhs and Rename.lhs
One other big-ish thing
* Instead of explicitly gathering constraints in the LIE
tcExpr :: RenamedExpr -> TcM (TypecheckedExpr, LIE)
we now dump the constraints into a mutable varabiable carried
by the monad, so we get
tcExpr :: RenamedExpr -> TcM TypecheckedExpr
Much less clutter in the code, and more efficient too.
(Originally suggested by Mark Shields.)
Other smaller things
* Major tidy up of DsMeta. We
* Lots of cleaning up and fiddling.
I think it all still works. Ha ha.
Revision Changes Path
1.51.2.7 +12 -2 fptools/ghc/compiler/basicTypes/Module.lhs
1.28.2.2 +11 -15 fptools/ghc/compiler/basicTypes/Var.lhs
1.46.2.4 +8 -10 fptools/ghc/compiler/codeGen/CodeGen.lhs
1.109.2.17 +9 -7 fptools/ghc/compiler/compMan/CompManager.lhs
1.67.2.1 +10 -10 fptools/ghc/compiler/coreSyn/CoreLint.lhs
1.23.2.4 +2 -2 fptools/ghc/compiler/coreSyn/CorePrep.lhs
1.9.2.3 +2 -2 fptools/ghc/compiler/coreSyn/MkExternalCore.lhs
1.52.2.7 +52 -41 fptools/ghc/compiler/deSugar/Desugar.lhs
1.66.2.8 +1 -1 fptools/ghc/compiler/deSugar/DsForeign.lhs
1.1.2.16 +418 -439 fptools/ghc/compiler/deSugar/Attic/DsMeta.hs
1.57.2.6 +4 -4 fptools/ghc/compiler/deSugar/Match.lhs
1.75.2.9 +8 -11 fptools/ghc/compiler/ghci/ByteCodeGen.lhs
1.121.2.15 +29 -30 fptools/ghc/compiler/ghci/InteractiveUI.hs
1.13.2.12 +3 -3 fptools/ghc/compiler/ghci/Linker.lhs
1.1.2.5 +113 -28 fptools/ghc/compiler/hsSyn/Attic/Convert.lhs
1.90.2.7 +37 -33 fptools/ghc/compiler/hsSyn/HsDecls.lhs
1.65.2.13 +1 -1 fptools/ghc/compiler/hsSyn/HsExpr.lhs
1.3.2.7 +2 -12 fptools/ghc/compiler/main/BinIface.hs
1.40.2.4 +2 -2 fptools/ghc/compiler/main/CodeOutput.lhs
1.129.2.14 +1 -2 fptools/ghc/compiler/main/DriverPipeline.hs
1.38.6.1 +60 -44 fptools/ghc/compiler/main/ErrUtils.lhs
1.156.2.20 +76 -258 fptools/ghc/compiler/main/HscMain.lhs
1.91.2.14 +99 -83 fptools/ghc/compiler/main/HscTypes.lhs
1.158.2.11 +41 -46 fptools/ghc/compiler/main/MkIface.lhs
1.2.2.3 +11 -15 fptools/ghc/compiler/main/TidyPgm.lhs
1.3.2.3 +3 -2 fptools/ghc/compiler/ndpFlatten/FlattenMonad.hs
1.2.6.5 +3 -3 fptools/ghc/compiler/ndpFlatten/Flattening.hs
1.95.2.17 +4 -2 fptools/ghc/compiler/parser/Parser.y
1.3.2.5 +7 -7 fptools/ghc/compiler/parser/ParserCore.y
1.40.2.6 +2 -0 fptools/ghc/compiler/parser/RdrHsSyn.lhs
1.53.2.19 +25 -19 fptools/ghc/compiler/prelude/PrelNames.lhs
1.6.14.1 +3 -1 fptools/ghc/compiler/rename/RnBinds.hi-boot-5
1.2.2.1 +2 -2 fptools/ghc/compiler/rename/RnBinds.hi-boot-6
1.73.4.5 +86 -104 fptools/ghc/compiler/rename/RnBinds.lhs
1.147.2.15 +261 -318 fptools/ghc/compiler/rename/RnEnv.lhs
1.89.2.18 +314 -309 fptools/ghc/compiler/rename/RnExpr.lhs
1.2.14.1 +2 -1 fptools/ghc/compiler/rename/RnHiFiles.hi-boot-5
1.2.2.1 +1 -1 fptools/ghc/compiler/rename/RnHiFiles.hi-boot-6
1.64.2.12 +308 -194 fptools/ghc/compiler/rename/RnHiFiles.lhs
1.68.2.6 +9 -3 fptools/ghc/compiler/rename/RnHsSyn.lhs
1.152.2.11 +231 -227 fptools/ghc/compiler/rename/RnIfaces.lhs
1.131.2.7 +332 -185 fptools/ghc/compiler/rename/RnNames.lhs
1.143.2.6 +448 -250 fptools/ghc/compiler/rename/RnSource.lhs
1.5.2.5 +81 -78 fptools/ghc/compiler/rename/RnTypes.lhs
1.106.2.4 +6 -5 fptools/ghc/compiler/simplCore/SimplCore.lhs
1.93.2.3 +1 -1 fptools/ghc/compiler/stgSyn/CoreToStg.lhs
1.40.2.1 +9 -8 fptools/ghc/compiler/stgSyn/StgLint.lhs
1.100.2.6 +137 -115 fptools/ghc/compiler/typecheck/Inst.lhs
1.105.2.5 +133 -139 fptools/ghc/compiler/typecheck/TcBinds.lhs
1.115.2.4 +73 -73 fptools/ghc/compiler/typecheck/TcClassDcl.lhs
1.26.6.1 +15 -19 fptools/ghc/compiler/typecheck/TcDefaults.lhs
1.96.2.8 +56 -55 fptools/ghc/compiler/typecheck/TcDeriv.lhs
1.108.2.16 +214 -251 fptools/ghc/compiler/typecheck/TcEnv.lhs
1.7.2.2 +2 -2 fptools/ghc/compiler/typecheck/TcExpr.hi-boot-5
1.3.2.2 +2 -2 fptools/ghc/compiler/typecheck/TcExpr.hi-boot-6
1.120.2.22 +261 -272 fptools/ghc/compiler/typecheck/TcExpr.lhs
1.52.2.4 +49 -50 fptools/ghc/compiler/typecheck/TcForeign.lhs
1.76.2.13 +485 -443 fptools/ghc/compiler/typecheck/TcHsSyn.lhs
1.83.2.7 +94 -104 fptools/ghc/compiler/typecheck/TcIfaceSig.lhs
1.146.2.8 +99 -99 fptools/ghc/compiler/typecheck/TcInstDcls.lhs
1.31.2.6 +185 -172 fptools/ghc/compiler/typecheck/TcMType.lhs
1.5.8.2 +2 -2 fptools/ghc/compiler/typecheck/TcMatches.hi-boot-5
1.2.2.2 +2 -2 fptools/ghc/compiler/typecheck/TcMatches.hi-boot-6
1.63.2.5 +104 -116 fptools/ghc/compiler/typecheck/TcMatches.lhs
1.97.2.6 +135 -134 fptools/ghc/compiler/typecheck/TcMonoType.lhs
1.76.2.8 +102 -109 fptools/ghc/compiler/typecheck/TcPat.lhs
1.36.2.2 +40 -51 fptools/ghc/compiler/typecheck/TcRules.lhs
1.103.2.5 +186 -189 fptools/ghc/compiler/typecheck/TcSimplify.lhs
1.1.2.4 +1 -1 fptools/ghc/compiler/typecheck/Attic/TcSplice.hi-boot-6
1.1.2.6 +92 -40 fptools/ghc/compiler/typecheck/Attic/TcSplice.lhs
1.90.2.4 +42 -42 fptools/ghc/compiler/typecheck/TcTyClsDecls.lhs
1.85.2.3 +23 -23 fptools/ghc/compiler/typecheck/TcTyDecls.lhs
1.1.6.1 +1 -1 fptools/ghc/compiler/typecheck/TcUnify.hi-boot
1.2.6.1 +1 -1 fptools/ghc/compiler/typecheck/TcUnify.hi-boot-5
1.2.2.1 +1 -1 fptools/ghc/compiler/typecheck/TcUnify.hi-boot-6
1.37.2.3 +146 -148 fptools/ghc/compiler/typecheck/TcUnify.lhs
1.48.2.4 +13 -7 fptools/ghc/compiler/utils/Outputable.lhs
1.9.6.1 +7 -1 fptools/ghc/compiler/utils/Panic.lhs
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc