Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : ghc-new-flavor
http://hackage.haskell.org/trac/ghc/changeset/b4b7647fedf0feab41d417c4e980bd08445ce559 >--------------------------------------------------------------- commit b4b7647fedf0feab41d417c4e980bd08445ce559 Merge: cc2d2e1... 9606231... Author: Dimitrios Vytiniotis <[email protected]> Date: Wed Mar 28 10:56:29 2012 +0200 Merge branch 'master' of http://darcs.haskell.org/ghc into ghc-new-flavor .authorspellings | 29 - .darcs-boring | 256 --- aclocal.m4 | 29 +- compiler/basicTypes/Name.lhs | 3 + compiler/basicTypes/OccName.lhs | 8 +- compiler/basicTypes/RdrName.lhs | 4 + compiler/cmm/Cmm.hs | 8 - compiler/cmm/PprC.hs | 9 +- compiler/codeGen/ClosureInfo.lhs | 8 + compiler/codeGen/StgCmmClosure.hs | 7 + compiler/coreSyn/CoreLint.lhs | 27 +- compiler/coreSyn/CorePrep.lhs | 14 +- compiler/coreSyn/CoreSyn.lhs | 4 +- compiler/coreSyn/CoreUtils.lhs | 90 +- compiler/coreSyn/MkExternalCore.lhs | 11 +- compiler/coreSyn/TrieMap.lhs | 38 +- compiler/deSugar/Desugar.lhs | 2 +- compiler/deSugar/DsBinds.lhs | 91 +- compiler/deSugar/DsExpr.lhs | 8 +- compiler/deSugar/DsMeta.hs | 287 ++-- compiler/deSugar/DsMonad.lhs | 5 +- compiler/deSugar/Match.lhs | 2 +- compiler/deSugar/MatchCon.lhs | 15 +- compiler/ghc.mk | 3 +- compiler/ghci/Linker.lhs | 563 +++--- compiler/ghci/ObjLink.lhs | 39 +- compiler/hsSyn/Convert.lhs | 154 +- compiler/hsSyn/HsDecls.lhs | 365 ++-- compiler/hsSyn/HsImpExp.lhs | 19 +- compiler/hsSyn/HsSyn.lhs | 3 +- compiler/hsSyn/HsTypes.lhs | 40 +- compiler/hsSyn/HsUtils.lhs | 53 +- compiler/iface/BinIface.hs | 20 + compiler/iface/IfaceSyn.lhs | 1 + compiler/iface/IfaceType.lhs | 26 +- compiler/iface/TcIface.lhs | 7 + compiler/main/{Annotations.lhs => Annotations.hs} | 57 +- compiler/main/DynFlags.hs | 23 +- compiler/main/GhcMake.hs | 1246 ++++++------ compiler/main/HscStats.hs | 159 ++ compiler/main/HscStats.lhs | 12 +- compiler/main/PackageConfig.hs | 48 +- compiler/nativeGen/PPC/Ppr.hs | 467 +++--- compiler/nativeGen/X86/CodeGen.hs | 78 +- compiler/nativeGen/X86/Regs.hs | 38 +- compiler/parser/Lexer.x | 14 + compiler/parser/Parser.y.pp | 100 +- compiler/parser/ParserCore.y | 24 +- compiler/parser/RdrHsSyn.lhs | 255 ++-- compiler/prelude/PrelNames.lhs | 43 +- compiler/prelude/TysPrim.lhs | 7 + compiler/rename/RnEnv.lhs | 19 +- compiler/rename/RnNames.lhs | 11 +- compiler/rename/RnSource.lhs | 243 ++- compiler/rename/RnTypes.lhs | 119 +- compiler/simplCore/SetLevels.lhs | 3 +- compiler/simplCore/SimplUtils.lhs | 100 +- compiler/simplCore/Simplify.lhs | 2 + compiler/stgSyn/StgLint.lhs | 7 - compiler/typecheck/TcCanonical.lhs | 5 + compiler/typecheck/TcClassDcl.lhs | 13 +- compiler/typecheck/TcDeriv.lhs | 104 +- compiler/typecheck/TcEnv.lhs | 7 +- compiler/typecheck/TcErrors.lhs | 1 + compiler/typecheck/TcEvidence.lhs | 49 + compiler/typecheck/TcForeign.lhs | 49 +- compiler/typecheck/TcHsSyn.lhs | 1 + compiler/typecheck/TcHsType.lhs | 17 +- compiler/typecheck/TcInstDcls.lhs | 45 +- compiler/typecheck/TcInteract.lhs | 10 + compiler/typecheck/TcMType.lhs | 8 +- compiler/typecheck/TcSimplify.lhs | 3 +- compiler/typecheck/TcSplice.lhs | 5 + compiler/typecheck/TcTyClsDecls.lhs | 221 ++- compiler/typecheck/TcTyDecls.lhs | 6 +- compiler/typecheck/TcType.lhs | 24 +- compiler/typecheck/TcUnify.lhs | 5 + compiler/types/Coercion.lhs | 1 + compiler/types/FamInstEnv.lhs | 2 +- compiler/types/Kind.lhs | 1 + compiler/types/Type.lhs | 47 +- compiler/types/TypeRep.lhs | 27 +- compiler/utils/Digraph.lhs | 6 - compiler/utils/ListSetOps.lhs | 6 - compiler/utils/Outputable.lhs | 5 +- compiler/vectorise/Vectorise/Convert.hs | 9 +- compiler/vectorise/Vectorise/Type/Classify.hs | 1 + compiler/vectorise/Vectorise/Type/Type.hs | 1 + configure.ac | 117 +- docs/coding-style.html | 28 +- docs/index.html.in | 22 +- docs/users_guide/flags.xml | 14 + docs/users_guide/glasgow_exts.xml | 29 +- docs/users_guide/runtime_control.xml | 43 +- docs/users_guide/using.xml | 2166 +++++++++++---------- docs/vh/vh.xml | 591 +++--- driver/ghci/ghc.mk | 4 +- driver/utils/cwrapper.c | 6 +- ghc/GhciTags.hs | 17 +- ghc/ghc.mk | 9 + includes/Cmm.h | 2 +- includes/HaskellConstants.hs | 10 +- includes/MachDeps.h | 27 +- includes/Rts.h | 25 + includes/RtsAPI.h | 2 +- includes/Stg.h | 8 +- includes/mkDerivedConstants.c | 20 +- includes/rts/Constants.h | 22 +- includes/stg/DLL.h | 4 +- includes/stg/MachRegs.h | 173 +- mk/config.mk.in | 6 + mk/validate-settings.mk | 2 +- rts/Adjustor.c | 441 +++-- rts/HeapStackCheck.cmm | 10 +- rts/Interpreter.c | 4 +- rts/Linker.c | 37 +- rts/PrimOps.cmm | 2 +- rts/RtsMain.c | 4 +- rts/Schedule.c | 2 +- rts/StgCRun.c | 67 +- rts/StgMiscClosures.cmm | 6 +- rts/Trace.c | 5 +- rts/ghc.mk | 7 +- rts/win32/AwaitEvent.c | 4 +- rts/win32/ThrIOManager.c | 2 +- rts/win32/seh_excn.c | 5 +- utils/fingerprint/fingerprint.py | 2 +- utils/genapply/GenApply.hs | 646 +++--- utils/genprimopcode/Main.hs | 427 ++-- utils/genprimopcode/Parser.y | 1 - utils/genprimopcode/ParserM.hs | 1 - utils/genprimopcode/Syntax.hs | 20 +- utils/hp2ps/Key.c | 22 +- 133 files changed, 5922 insertions(+), 5142 deletions(-) diff --cc compiler/coreSyn/TrieMap.lhs index fefea6d,5855ed6..7a047e3 --- a/compiler/coreSyn/TrieMap.lhs +++ b/compiler/coreSyn/TrieMap.lhs @@@ -519,46 -524,9 +524,47 @@@ lkT env ty go (AppTy t1 t2) = tm_app >.> lkT env t1 >=> lkT env t2 go (FunTy t1 t2) = tm_fun >.> lkT env t1 >=> lkT env t2 go (TyConApp tc tys) = tm_tc_app >.> lkNamed tc >=> lkList (lkT env) tys + go (LitTy l) = tm_tylit >.> lkTyLit l go (ForAllTy tv ty) = tm_forall >.> lkT (extendCME env tv) ty >=> lkBndr env tv + +lkT_mod :: CmEnv + -> TyVarEnv a -- A substitution + -> (a -> Type) + -> Type + -> TypeMap b -> Maybe b +lkT_mod env s f ty m + | EmptyTM <- m = Nothing + | Just ty' <- coreView ty + = lkT_mod env s f ty' m + | isEmptyVarEnv candidates + = go env s ty m + | otherwise + = Just $ head (varEnvElts candidates) -- Yikes! + where + candidates = filterVarEnv_Directly find_matching (vm_fvar $ tm_var m) + find_matching tv _b = case lookupVarEnv_Directly s tv of + Nothing -> False + Just a -> f a `eqType` ty + go env _s (TyVarTy v) = tm_var >.> lkVar env v + go env s (AppTy t1 t2) = tm_app >.> lkT_mod env s f t1 >=> lkT_mod env s f t2 + go env s (FunTy t1 t2) = tm_fun >.> lkT_mod env s f t1 >=> lkT_mod env s f t2 + go env s (TyConApp tc tys) = tm_tc_app >.> lkNamed tc >=> lkList (lkT_mod env s f) tys + go _env _s (ForAllTy _tv _ty) = const Nothing + {- TODO: bleah the following is wrong! + = let (s',inscope') = substTyVarBndr tv (s,inscope) + in + let s' = delVarEnv s tv -- I think it's enough to just restrict substution + -- without renaming anything + in tm_forall >.> lkT_mod (extendCME env tv) s' f ty >=> lkBndr env tv + -} + +lookupTypeMap_mod :: TyVarEnv a -- A substitution to be applied to the /keys/ of type map + -> (a -> Type) + -> Type + -> TypeMap b -> Maybe b +lookupTypeMap_mod = lkT_mod emptyCME + ----------------- xtT :: CmEnv -> Type -> XT a -> TypeMap a -> TypeMap a xtT env ty f m diff --cc compiler/typecheck/TcSimplify.lhs index 3037628,390c70e..1e68e4b --- a/compiler/typecheck/TcSimplify.lhs +++ b/compiler/typecheck/TcSimplify.lhs @@@ -1442,8 -1426,9 +1443,8 @@@ newFlatWanteds orig thet = do { loc <- getCtLoc orig ; mapM (inst_to_wanted loc) theta } where inst_to_wanted loc pty - = do { v <- newWantedEvVar pty + = do { v <- TcMType.newWantedEvVar pty ; return $ - CNonCanonical { cc_id = v - , cc_flavor = Wanted loc + CNonCanonical { cc_flavor = Wanted loc v , cc_depth = 0 } } - \end{code} + \end{code} _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
