Fri Feb 22 03:14:45 CET 2008 Lemmih <[EMAIL PROTECTED]>
* Use an IdMap in E.Demand. This gives an 18% speed-up and smaller ho files.
New patches:
[Use an IdMap in E.Demand. This gives an 18% speed-up and smaller ho files.
Lemmih <[EMAIL PROTECTED]>**20080222021445] {
hunk ./E/Demand.hs 20
-import qualified Data.Map as Map
hunk ./E/Demand.hs 32
-import Support.MapBinaryInstance
hunk ./E/Demand.hs 66
-data DemandEnv = DemandEnv (Map.Map TVr Demand) Demand
+data DemandEnv = DemandEnv (IdMap Demand) Demand
hunk ./E/Demand.hs 71
- putMap dt
+ put dt
hunk ./E/Demand.hs 74
- m <- getMap
+ m <- get
hunk ./E/Demand.hs 84
- showsPrec _ (DemandEnv m Absent) = showString "{" . foldr (.) id (intersperse (showString ",") [ showString (pprint t) . showString " -> " . shows v | (t,v) <- Map.toList m]) . showString "}"
+ showsPrec _ (DemandEnv m Absent) = showString "{" . foldr (.) id (intersperse (showString ",") [ showString (pprint t) . showString " -> " . shows v | (t,v) <- idMapToList m]) . showString "}"
hunk ./E/Demand.hs 86
- showsPrec _ (DemandEnv m demand) = showString "{" . shows demand . showString " - " . foldr (.) id (intersperse (showString ",") [ showString (pprint t) . showString " -> " . shows v | (t,v) <- Map.toList m]) . showString "}"
+ showsPrec _ (DemandEnv m demand) = showString "{" . shows demand . showString " - " . foldr (.) id (intersperse (showString ",") [ showString (pprint t) . showString " -> " . shows v | (t,v) <- idMapToList m]) . showString "}"
hunk ./E/Demand.hs 205
-lenv e (DemandEnv m r) = case Map.lookup e m of
+lenv e (DemandEnv m r) = case mlookup e m of
hunk ./E/Demand.hs 211
-demandEnvSingleton t d = DemandEnv (Map.singleton t d) idGlb
+demandEnvSingleton t d = DemandEnv (msingleton (tvrIdent t) d) idGlb
hunk ./E/Demand.hs 214
-demandEnvMinus (DemandEnv m r) x = DemandEnv (Map.delete x m) r
+demandEnvMinus (DemandEnv m r) x = DemandEnv (mdelete (tvrIdent x) m) r
hunk ./E/Demand.hs 218
- m = Map.fromList [ (x,lenv x d1 `lub` lenv x d2) | x <- Map.keys m1 ++ Map.keys m2]
+ m = fromList [ (x,lenv x d1 `lub` lenv x d2) | x <- mkeys m1 ++ mkeys m2]
hunk ./E/Demand.hs 220
- m = Map.fromList [ (x,lenv x d1 `glb` lenv x d2) | x <- Map.keys m1 ++ Map.keys m2]
+ m = fromList [ (x,lenv x d1 `glb` lenv x d2) | x <- mkeys m1 ++ mkeys m2]
hunk ./E/Demand.hs 315
- let sx = lenv x phi
+ let sx = lenv (tvrIdent x) phi
hunk ./E/Demand.hs 320
- let sx = lenv x phi
+ let sx = lenv (tvrIdent x) phi
hunk ./E/Demand.hs 332
- (e',enve :=> []) <- analyze (eCaseScrutinee ec) (sp [ lenv t enva | t <- ts])
+ (e',enve :=> []) <- analyze (eCaseScrutinee ec) (sp [ lenv (tvrIdent t) enva | t <- ts])
hunk ./E/Demand.hs 340
- let g (t,e) = (tvrInfo_u (Info.insert (lenv t phi)) t,e)
+ let g (t,e) = (tvrInfo_u (Info.insert (lenv (tvrIdent t) phi)) t,e)
hunk ./E/Demand.hs 354
-lazify (DemandEnv x r) = DemandEnv (Map.map f x) Absent where
+lazify (DemandEnv x r) = DemandEnv (fmap f x) Absent where
hunk ./E/Demand.hs 371
-denvDelete x (DemandEnv m r) = DemandEnv (Map.delete x m) r
+denvDelete x (DemandEnv m r) = DemandEnv (mdelete (tvrIdent x) m) r
}
Context:
[improve documentation for core type system
John Meacham <[EMAIL PROTECTED]>**20080221042003]
[fix documentation syntax to not conflict with pragmas, add 'Internals' section to manual
John Meacham <[EMAIL PROTECTED]>**20080221033236]
[clean out old irrelevant code in Number.hs
John Meacham <[EMAIL PROTECTED]>**20080221032134]
[fix various spelling/grammer issues with help files. add pragma.mkd help file
John Meacham <[EMAIL PROTECTED]>**20080221021549]
[start adding jhc manual and program to stitch it together
John Meacham <[EMAIL PROTECTED]>**20080221010433]
[add Jhc.ACIO module for top level actions
John Meacham <[EMAIL PROTECTED]>**20080221005357]
[add Comb data type to hold supercombinators
John Meacham <[EMAIL PROTECTED]>**20080220043315]
[add substMap'' back in
John Meacham <[EMAIL PROTECTED]>**20080220050203]
[Makefile wibbles for jhcp and *.hsc
Lemmih <[EMAIL PROTECTED]>**20080220184910]
[Add a comment describing the function of E.Subst.
Lemmih <[EMAIL PROTECTED]>**20080220184027]
[Remove debug code.
Lemmih <[EMAIL PROTECTED]>**20080219151554]
[Cache scoping info, avoid unnecessary maps.
Lemmih <[EMAIL PROTECTED]>**20080219151410]
[use newId to generate unique ids rather than using local functions
John Meacham <[EMAIL PROTECTED]>**20080220054608]
[move Id selection code to a common place in Name.Id
John Meacham <[EMAIL PROTECTED]>**20080220054522]
[remove BindType anotations from all variables as they were rarely used
John Meacham <[EMAIL PROTECTED]>**20080219153025]
[add mfilterWithKey
John Meacham <[EMAIL PROTECTED]>**20080219151259]
[add findOrphanRules and mapRuleBodies
John Meacham <[EMAIL PROTECTED]>**20080219120255]
[fix show instance for numbers
John Meacham <[EMAIL PROTECTED]>**20080219093542]
[add the ability to get at peek,poke and static type info via primitive imports
John Meacham <[EMAIL PROTECTED]>**20080219054002]
[Only use atoms when absolutely necessary.
Lemmih <[EMAIL PROTECTED]>**20080218232922]
[Avoid lists. They are the bane of performance if badly used.
Lemmih <[EMAIL PROTECTED]>**20080218232646]
[Efficient substitutions.
Lemmih <[EMAIL PROTECTED]>**20080218232431]
[add 'prelude.m4' for common m4 definitons, make m4 use the same include path as haskell source, prefix all builtins with m4_ to avoid name clashes
John Meacham <[EMAIL PROTECTED]>**20080218182546]
[TAG didgigdy
John Meacham <[EMAIL PROTECTED]>**20080218150752]
Patch bundle hash:
304f3ac6c004191d7fe509b91139052dc38ffd8e
_______________________________________________
jhc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/jhc