logo       
Google Custom Search
    AddThis Social Bookmark Button

cvs commit: fptools/ghc/compiler/basicTypes NameSet.lhs fptools/ghc/comp: msg#00355

Subject: cvs commit: fptools/ghc/compiler/basicTypes NameSet.lhs fptools/ghc/compiler/deSugar DsCCall.lhs DsExpr.lhs DsListComp.lhs DsMeta.hs fptools/ghc/compiler/hsSyn Convert.lhs HsBinds.lhs HsExpr.lhs HsSyn.lhs fptools/ghc/compiler/main MkIface.lhs ...
simonpj     2002/09/27 01:20:50 PDT

  Modified files:
    ghc/compiler/basicTypes NameSet.lhs 
    ghc/compiler/deSugar DsCCall.lhs DsExpr.lhs DsListComp.lhs 
                         DsMeta.hs 
    ghc/compiler/hsSyn   Convert.lhs HsBinds.lhs HsExpr.lhs 
                         HsSyn.lhs 
    ghc/compiler/main    MkIface.lhs 
    ghc/compiler/parser  Lex.lhs ParseUtil.lhs Parser.y 
    ghc/compiler/prelude PrelInfo.lhs PrelNames.lhs 
    ghc/compiler/rename  RnBinds.lhs RnEnv.lhs RnExpr.lhs 
                         RnNames.lhs RnSource.hi-boot-5 
                         RnSource.hi-boot-6 RnSource.lhs 
                         RnTypes.lhs 
    ghc/compiler/typecheck TcClassDcl.lhs TcGenDeriv.lhs 
                           TcHsSyn.lhs TcMType.lhs TcMatches.lhs 
                           TcRnDriver.lhs TcRules.lhs 
                           TcTyClsDecls.lhs 
    ghc/compiler/utils   Digraph.lhs Outputable.lhs 
  Log:
        --------------------------------
          Implement recursive do-notation
        --------------------------------
  
  This commit adds recursive do-notation, which Hugs has had for some time.
  
        mdo { x <- foo y ;
              y <- baz x ;
              return (y,x) }
  
  turns into
  
        do { (x,y) <- mfix (\~(x,y) -> do { x <- foo y;
                                            y <- baz x }) ;
             return (y,x) }
  
  This is all based on work by Levent Erkok and John Lanuchbury.
  
  The really tricky bit is in the renamer (RnExpr.rnMDoStmts) where
  we break things up into minimal segments.  The rest is easy, including
  the type checker.
  
  Levent laid the groundwork, and Simon finished it off. Needless to say,
  I couldn't resist tidying up other stuff, so there's no guaranteed I
  have not broken something.
  
  Revision  Changes    Path
  1.7       +7 -0      fptools/ghc/compiler/basicTypes/NameSet.lhs
  1.60      +4 -6      fptools/ghc/compiler/deSugar/DsCCall.lhs
  1.88      +59 -14    fptools/ghc/compiler/deSugar/DsExpr.lhs
  1.38      +6 -6      fptools/ghc/compiler/deSugar/DsListComp.lhs
  1.4       +2 -2      fptools/ghc/compiler/deSugar/DsMeta.hs
  1.4       +1 -1      fptools/ghc/compiler/hsSyn/Convert.lhs
  1.64      +8 -8      fptools/ghc/compiler/hsSyn/HsBinds.lhs
  1.70      +40 -21    fptools/ghc/compiler/hsSyn/HsExpr.lhs
  1.37      +21 -7     fptools/ghc/compiler/hsSyn/HsSyn.lhs
  1.161     +1 -1      fptools/ghc/compiler/main/MkIface.lhs
  1.86      +3 -0      fptools/ghc/compiler/parser/Lex.lhs
  1.61      +10 -5     fptools/ghc/compiler/parser/ParseUtil.lhs
  1.105     +4 -1      fptools/ghc/compiler/parser/Parser.y
  1.84      +1 -1      fptools/ghc/compiler/prelude/PrelInfo.lhs
  1.62      +11 -1     fptools/ghc/compiler/prelude/PrelNames.lhs
  1.80      +123 -146  fptools/ghc/compiler/rename/RnBinds.lhs
  1.154     +15 -11    fptools/ghc/compiler/rename/RnEnv.lhs
  1.99      +283 -401  fptools/ghc/compiler/rename/RnExpr.lhs
  1.134     +0 -1      fptools/ghc/compiler/rename/RnNames.lhs
  1.9       +5 -2      fptools/ghc/compiler/rename/RnSource.hi-boot-5
  1.3       +4 -1      fptools/ghc/compiler/rename/RnSource.hi-boot-6
  1.150     +23 -17    fptools/ghc/compiler/rename/RnSource.lhs
  1.10      +285 -10   fptools/ghc/compiler/rename/RnTypes.lhs
  1.120     +1 -1      fptools/ghc/compiler/typecheck/TcClassDcl.lhs
  1.87      +1 -1      fptools/ghc/compiler/typecheck/TcGenDeriv.lhs
  1.80      +12 -2     fptools/ghc/compiler/typecheck/TcHsSyn.lhs
  1.40      +2 -7      fptools/ghc/compiler/typecheck/TcMType.lhs
  1.67      +42 -23    fptools/ghc/compiler/typecheck/TcMatches.lhs
  1.4       +14 -15    fptools/ghc/compiler/typecheck/TcRnDriver.lhs
  1.42      +3 -4      fptools/ghc/compiler/typecheck/TcRules.lhs
  1.94      +2 -3      fptools/ghc/compiler/typecheck/TcTyClsDecls.lhs
  1.17      +1 -1      fptools/ghc/compiler/utils/Digraph.lhs
  1.54      +1 -1      fptools/ghc/compiler/utils/Outputable.lhs



Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>