Ticket #4359: LambdaCase-Compiler.patch

File LambdaCase-Compiler.patch, 181.2 KB (added by batterseapower, 3 years ago)
Line 
15 patches for repository /Users/mbolingbroke/Programming/Checkouts/ghc.realhead:
2
3Sat Oct  2 10:39:59 EDT 2010  Max Bolingbroke <batterseapower@hotmail.com>
4  * Implement and document the Haskell' lambda-case feature
5
6Sat Oct  2 10:45:50 EDT 2010  Max Bolingbroke <batterseapower@hotmail.com>
7  * Fix some documentation bugs for TupleSections
8
9Sat Oct  2 11:42:58 EDT 2010  Max Bolingbroke <batterseapower@hotmail.com>
10  * Fix a validate failure due to Werror (not introduced by me)
11
12Sat Oct  2 11:44:17 EDT 2010  Max Bolingbroke <batterseapower@hotmail.com>
13  * Fix a validate failure due to Werror (not introduced by me) #2
14
15Sat Oct  2 11:45:45 EDT 2010  Max Bolingbroke <batterseapower@hotmail.com>
16  * Fix a validate failure due to Werror - this time it's my fault
17
18New patches:
19
20[Implement and document the Haskell' lambda-case feature
21Max Bolingbroke <batterseapower@hotmail.com>**20101002143959
22 Ignore-this: b63e963f9f1e62d14d6de1c0517a22ba
23] {
24hunk ./compiler/deSugar/Coverage.lhs 283
25                (addTickLHsExpr e2)
26 addTickHsExpr (ExplicitTuple es boxity) =
27         liftM2 ExplicitTuple
28-                (mapM addTickTupArg es)
29+                (mapM (addTickOptExpr addTickLHsExpr) es)
30                 (return boxity)
31 addTickHsExpr (HsCase e mgs) =
32        liftM2 HsCase
33hunk ./compiler/deSugar/Coverage.lhs 287
34-               (addTickLHsExpr e)
35+               (addTickOptExpr addTickLHsExpr e)
36                (addTickMatchGroup mgs)
37 addTickHsExpr (HsIf     e1 e2 e3) =
38        liftM3 HsIf
39hunk ./compiler/deSugar/Coverage.lhs 291
40-               (addBinTickLHsExpr (BinBox CondBinBox) e1)
41+               (addTickOptExpr (addBinTickLHsExpr (BinBox CondBinBox)) e1)
42                (addTickLHsExprOptAlt True e2)
43                (addTickLHsExprOptAlt True e3)
44 addTickHsExpr (HsLet binds e) =
45hunk ./compiler/deSugar/Coverage.lhs 380
46 -- Others dhould never happen in expression content.
47 addTickHsExpr e  = pprPanic "addTickHsExpr" (ppr e)
48 
49-addTickTupArg :: HsTupArg Id -> TM (HsTupArg Id)
50-addTickTupArg (Present e)  = do { e' <- addTickLHsExpr e; return (Present e') }
51-addTickTupArg (Missing ty) = return (Missing ty)
52+addTickOptExpr :: (LHsExpr Id -> TM (LHsExpr Id)) -> HsOptExpr Id -> TM (HsOptExpr Id)
53+addTickOptExpr addTick (Present e)  = do { e' <- addTick e; return (Present e') }
54+addTickOptExpr _       (Missing ty) = return (Missing ty)
55 
56 addTickMatchGroup :: MatchGroup Id -> TM (MatchGroup Id)
57 addTickMatchGroup (MatchGroup matches ty) = do
58hunk ./compiler/deSugar/DsArrows.lhs 407
59 --                     if e then Left ((xs1)*ts) else Right ((xs2)*ts)) >>>
60 --                  c1 ||| c2
61 
62-dsCmd ids local_vars env_ids stack res_ty (HsIf cond then_cmd else_cmd) = do
63+dsCmd _   _          _       _     _    e@(HsIf (Missing _) _ _)
64+  = panic "Combination of lambda-if and arrows should have been rejected by the type checker"
65+dsCmd ids local_vars env_ids stack res_ty (HsIf (Present cond) then_cmd else_cmd) = do
66     core_cond <- dsLExpr cond
67     (core_then, fvs_then, then_ids) <- dsfixCmd ids local_vars stack res_ty then_cmd
68     (core_else, fvs_else, else_ids) <- dsfixCmd ids local_vars stack res_ty else_cmd
69hunk ./compiler/deSugar/DsExpr.lhs 281
70             Lam x_id (mkCoreAppsDs core_op [Var x_id, Var y_id]))
71 
72 dsExpr (ExplicitTuple tup_args boxity)
73-  = do { let go (lam_vars, args) (Missing ty)
74-                    -- For every missing expression, we need
75-                   -- another lambda in the desugaring.
76-               = do { lam_var <- newSysLocalDs ty
77-                    ; return (lam_var : lam_vars, Var lam_var : args) }
78-            go (lam_vars, args) (Present expr)
79-                   -- Expressions that are present don't generate
80-                    -- lambdas, just arguments.
81-               = do { core_expr <- dsLExpr expr
82-                    ; return (lam_vars, core_expr : args) }
83+  = do { let go (lam_vars, args) tup_arg
84+              = do { (mb_lam_var, core_expr) <- dsOptExpr tup_arg
85+                   ; return (maybe id (:) mb_lam_var lam_vars, core_expr : args) }
86 
87        ; (lam_vars, args) <- foldM go ([], []) (reverse tup_args)
88                -- The reverse is because foldM goes left-to-right
89hunk ./compiler/deSugar/DsExpr.lhs 305
90     mkErrorAppDs pAT_ERROR_ID (funResultTy rhs_ty) (ptext (sLit "case"))
91 
92   | otherwise
93-  = do { core_discrim <- dsLExpr discrim
94+  = do { (mb_lam_var, core_discrim) <- dsOptExpr discrim
95        ; ([discrim_var], matching_code) <- matchWrapper CaseAlt matches
96hunk ./compiler/deSugar/DsExpr.lhs 307
97-       ; return (scrungleMatch discrim_var core_discrim matching_code) }
98+       ; return $ maybe id Lam mb_lam_var $ scrungleMatch discrim_var core_discrim matching_code }
99 
100 -- Pepe: The binds are in scope in the body but NOT in the binding group
101 --       This is to avoid silliness in breakpoints
102hunk ./compiler/deSugar/DsExpr.lhs 342
103     [elt_ty] = tcTyConAppArgs result_ty
104 
105 dsExpr (HsIf guard_expr then_expr else_expr)
106-  = mkIfThenElse <$> dsLExpr guard_expr <*> dsLExpr then_expr <*> dsLExpr else_expr
107+  = do { (mb_lam_var, guard_core_expr) <- dsOptExpr guard_expr
108+       ; fmap (maybe id Lam mb_lam_var) $
109+              (mkIfThenElse guard_core_expr) <$> dsLExpr then_expr
110+                                             <*> dsLExpr else_expr }
111 \end{code}
112 
113 
114hunk ./compiler/deSugar/DsExpr.lhs 606
115         , lbl == idName (unLoc id) ]
116 \end{code}
117 
118+\begin{code}
119+dsOptExpr :: HsOptExpr Id -> DsM (Maybe Var, CoreExpr)
120+dsOptExpr (Present expr) = do
121+    -- Expressions that are present don't generate
122+    -- lambdas, just arguments.
123+    core_expr <- dsLExpr expr
124+    return (Nothing, core_expr)
125+dsOptExpr (Missing ty) = do   
126+    -- For every missing expression, we need
127+    -- another lambda in the desugaring.
128+    lam_var <- newSysLocalDs ty
129+    return (Just lam_var, Var lam_var)
130+\end{code}
131+
132 %--------------------------------------------------------------------
133 
134 Note [Desugaring explicit lists]
135hunk ./compiler/deSugar/DsMeta.hs 705
136 repE (HsPar x)            = repLE x
137 repE (SectionL x y)       = do { a <- repLE x; b <- repLE y; repSectionL a b }
138 repE (SectionR x y)       = do { a <- repLE x; b <- repLE y; repSectionR a b }
139-repE (HsCase e (MatchGroup ms _)) = do { arg <- repLE e
140+repE e@(HsCase (Missing _) _) = notHandled "Lambda case" (ppr e)
141+repE (HsCase (Present e) (MatchGroup ms _))
142+                                 = do { arg <- repLE e
143                                       ; ms2 <- mapM repMatchTup ms
144                                       ; repCaseE arg (nonEmptyCoreList ms2) }
145hunk ./compiler/deSugar/DsMeta.hs 710
146-repE (HsIf x y z)         = do
147+repE e@(HsIf (Missing _) _ _) = notHandled "Lambda if" (ppr e)
148+repE (HsIf (Present x) y z)         = do
149                              a <- repLE x
150                              b <- repLE y
151                              c <- repLE z
152hunk ./compiler/deSugar/DsMeta.hs 743
153 repE (ExplicitList _ es) = do { xs <- repLEs es; repListExp xs }
154 repE e@(ExplicitPArr _ _) = notHandled "Parallel arrays" (ppr e)
155 repE e@(ExplicitTuple es boxed)
156-  | not (isBoxed boxed)        = notHandled "Unboxed tuples" (ppr e)
157-  | not (all tupArgPresent es) = notHandled "Tuple sections" (ppr e)
158-  | otherwise                  = do { xs <- repLEs [e | Present e <- es]; repTup xs }
159+  | not (isBoxed boxed)         = notHandled "Unboxed tuples" (ppr e)
160+  | not (all optExprPresent es) = notHandled "Tuple sections" (ppr e)
161+  | otherwise                   = do { xs <- repLEs [e | Present e <- es]; repTup xs }
162 
163 repE (RecordCon c _ flds)
164  = do { x <- lookupLOcc c;
165hunk ./compiler/deSugar/Match.lhs 904
166         exp (ExplicitTuple es1 _) (ExplicitTuple es2 _) =
167             eq_list tup_arg es1 es2
168         exp (HsIf e e1 e2) (HsIf e' e1' e2') =
169-            lexp e e' && lexp e1 e1' && lexp e2 e2'
170+            tup_arg e e' && lexp e1 e1' && lexp e2 e2'
171 
172         -- Enhancement: could implement equality for more expressions
173         --   if it seems useful
174hunk ./compiler/hsSyn/Convert.lhs 467
175     cvt (TupE [e])     = cvt e -- Singleton tuples treated like nothing (just parens)
176     cvt (TupE es)      = do { es' <- mapM cvtl es; return $ ExplicitTuple (map Present es') Boxed }
177     cvt (CondE x y z)  = do { x' <- cvtl x; y' <- cvtl y; z' <- cvtl z
178-                           ; return $ HsIf x' y' z' }
179+                           ; return $ HsIf (Present x') y' z' }
180     cvt (LetE ds e)    = do { ds' <- cvtLocalDecs (ptext (sLit "a let expression")) ds
181                             ; e' <- cvtl e; return $ HsLet ds' e' }
182     cvt (CaseE e ms)   
183hunk ./compiler/hsSyn/Convert.lhs 473
184        | null ms       = failWith (ptext (sLit "Case expression with no alternatives"))
185        | otherwise     = do { e' <- cvtl e; ms' <- mapM cvtMatch ms
186-                           ; return $ HsCase e' (mkMatchGroup ms') }
187+                           ; return $ HsCase (Present e') (mkMatchGroup ms') }
188     cvt (DoE ss)       = cvtHsDo DoExpr ss
189     cvt (CompE ss)     = cvtHsDo ListComp ss
190     cvt (ArithSeqE dd) = do { dd' <- cvtDD dd; return $ ArithSeq noPostTcExpr dd' }
191hunk ./compiler/hsSyn/HsExpr.lhs 129
192                 (LHsExpr id)    -- operand
193 
194   | ExplicitTuple              -- Used for explicit tuples and sections thereof
195-        [HsTupArg id]
196+        [HsOptExpr id]
197         Boxity
198 
199hunk ./compiler/hsSyn/HsExpr.lhs 132
200-  | HsCase      (LHsExpr id)
201+  | HsCase      (HsOptExpr id)
202                 (MatchGroup id)
203 
204hunk ./compiler/hsSyn/HsExpr.lhs 135
205-  | HsIf        (LHsExpr id)    --  predicate
206+  | HsIf        (HsOptExpr id)  --  predicate
207                 (LHsExpr id)    --  then part
208                 (LHsExpr id)    --  else part
209 
210hunk ./compiler/hsSyn/HsExpr.lhs 284
211                 (HsExpr id)
212   deriving (Data, Typeable)
213 
214--- HsTupArg is used for tuple sections
215+-- HsOptExpr is used for tuple sections and lambda-case/lambda-if
216 --  (,a,) is represented by  ExplicitTuple [Mising ty1, Present a, Missing ty3]
217 --  Which in turn stands for (\x:ty1 \y:ty2. (x,a,y))
218hunk ./compiler/hsSyn/HsExpr.lhs 287
219-data HsTupArg id
220+--  if then e1 e2 is represented by HsIf (Missing ty1) e1 e2
221+--  Which in turn stands for (\x:ty1. if x then e1 else e2)
222+data HsOptExpr id
223   = Present (LHsExpr id)       -- The argument
224   | Missing PostTcType         -- The argument is missing, but this is its type
225   deriving (Data, Typeable)
226hunk ./compiler/hsSyn/HsExpr.lhs 294
227 
228-tupArgPresent :: HsTupArg id -> Bool
229-tupArgPresent (Present {}) = True
230-tupArgPresent (Missing {}) = False
231+optExprPresent :: HsOptExpr id -> Bool
232+optExprPresent (Present {}) = True
233+optExprPresent (Missing {}) = False
234 
235 type PendingSplice = (Name, LHsExpr Id) -- Typechecked splices, waiting to be
236                                         -- pasted back in by the desugarer
237hunk ./compiler/hsSyn/HsExpr.lhs 415
238  where idType :: HsExpr id -> HsMatchContext id; idType = undefined
239 
240 ppr_expr exprType@(HsCase expr matches)
241-  = sep [ sep [ptext (sLit "case"), nest 4 (ppr expr), ptext (sLit "of {")],
242+  = sep [ sep [ptext (sLit "case"), case expr of Present expr -> nest 4 (ppr expr); Missing _ -> empty, ptext (sLit "of {")],
243           nest 2 (pprMatches (CaseAlt `asTypeOf` idType exprType) matches <+> char '}') ]
244  where idType :: HsExpr id -> HsMatchContext id; idType = undefined
245 
246hunk ./compiler/hsSyn/HsExpr.lhs 420
247 ppr_expr (HsIf e1 e2 e3)
248-  = sep [hsep [ptext (sLit "if"), nest 2 (ppr e1), ptext (sLit "then")],
249+  = sep [hsep [ptext (sLit "if"), case e1 of Present e1 -> nest 2 (ppr e1); Missing _ -> empty, ptext (sLit "then")],
250          nest 4 (ppr e2),
251          ptext (sLit "else"),
252          nest 4 (ppr e3)]
253hunk ./compiler/hsSyn/HsExpr.lhs 620
254 
255   | HsPar       (HsCmd id)      -- parenthesised command
256 
257-  | HsCase      (HsExpr id)
258+  | HsCase      (HsOptExpr id)  -- must be Present
259                 [Match id]      -- bodies are HsCmd's
260                 SrcLoc
261 
262hunk ./compiler/hsSyn/HsExpr.lhs 624
263-  | HsIf        (HsExpr id)     --  predicate
264+  | HsIf        (HsOptExpr id)  --  predicate, must be Present
265                 (HsCmd id)      --  then part
266                 (HsCmd id)      --  else part
267                 SrcLoc
268hunk ./compiler/hsSyn/HsUtils.lhs 28
269 
270   nlHsTyApp, nlHsVar, nlHsLit, nlHsApp, nlHsApps, nlHsIntLit, nlHsVarApps,
271   nlHsDo, nlHsOpApp, nlHsLam, nlHsPar, nlHsIf, nlHsCase, nlList,
272-  mkLHsTupleExpr, mkLHsVarTuple, missingTupArg,
273+  mkLHsTupleExpr, mkLHsVarTuple, missingOptExpr,
274 
275   -- Bindigns
276   mkFunBind, mkVarBind, mkHsVarBind, mk_easy_FunBind,
277hunk ./compiler/hsSyn/HsUtils.lhs 332
278 
279 nlHsLam        match           = noLoc (HsLam (mkMatchGroup [match]))
280 nlHsPar e              = noLoc (HsPar e)
281-nlHsIf cond true false = noLoc (HsIf cond true false)
282-nlHsCase expr matches  = noLoc (HsCase expr (mkMatchGroup matches))
283+nlHsIf cond true false = noLoc (HsIf (Present cond) true false)
284+nlHsCase expr matches  = noLoc (HsCase (Present expr) (mkMatchGroup matches))
285 nlList exprs           = noLoc (ExplicitList placeHolderType exprs)
286 
287 nlHsAppTy :: LHsType name -> LHsType name -> LHsType name
288hunk ./compiler/hsSyn/HsUtils.lhs 363
289 nlTuplePat :: [LPat id] -> Boxity -> LPat id
290 nlTuplePat pats box = noLoc (TuplePat pats box placeHolderType)
291 
292-missingTupArg :: HsTupArg a
293-missingTupArg = Missing placeHolderType
294+missingOptExpr :: HsOptExpr a
295+missingOptExpr = Missing placeHolderType
296 \end{code}
297 
298 %************************************************************************
299hunk ./compiler/main/DynFlags.hs 352
300    | Opt_DoRec
301    | Opt_PostfixOperators
302    | Opt_TupleSections
303+   | Opt_LambdaCase
304    | Opt_PatternGuards
305    | Opt_LiberalTypeSynonyms
306    | Opt_Rank2Types
307hunk ./compiler/main/DynFlags.hs 1556
308   ( "CPP",                              Opt_Cpp, nop ),
309   ( "PostfixOperators",                 Opt_PostfixOperators, nop ),
310   ( "TupleSections",                    Opt_TupleSections, nop ),
311+  ( "LambdaCase",                       Opt_LambdaCase, nop ),
312   ( "PatternGuards",                    Opt_PatternGuards, nop ),
313   ( "UnicodeSyntax",                    Opt_UnicodeSyntax, nop ),
314   ( "MagicHash",                        Opt_MagicHash, nop ),
315hunk ./compiler/parser/Parser.y.pp 1276
316                                                                (unguardedGRHSs $6)
317                                                            ]) }
318        | 'let' binds 'in' exp                  { LL $ HsLet (unLoc $2) $4 }
319-       | 'if' exp optSemi 'then' exp optSemi 'else' exp
320-                                        {% checkDoAndIfThenElse $2 $3 $5 $6 $8 >>
321+       | 'if' optexp optSemi 'then' exp optSemi 'else' exp
322+                                        {% checkDoAndIfThenElse (comb2 $1 $>) $2 $3 $5 $6 $8 >>
323                                            return (LL $ HsIf $2 $5 $8) }
324hunk ./compiler/parser/Parser.y.pp 1279
325-       | 'case' exp 'of' altslist              { LL $ HsCase $2 (mkMatchGroup (unLoc $4)) }
326+       | 'case' optexp 'of' altslist           { LL $ HsCase $2 (mkMatchGroup (unLoc $4)) }
327        | '-' fexp                              { LL $ NegApp $2 noSyntaxExpr }
328 
329        | 'do' stmtlist                 {% let loc = comb2 $1 $2 in
330hunk ./compiler/parser/Parser.y.pp 1305
331                                                    -- hdaume: core annotation
332        | fexp                                  { $1 }
333 
334+optexp :: { HsOptExpr RdrName }
335+       : exp         { Present $1 }
336+       | {- empty -} { missingOptExpr }
337+
338 optSemi :: { Bool }
339        : ';'         { True }
340        | {- empty -} { False }
341hunk ./compiler/parser/Parser.y.pp 1439
342        | exp '->' texp   { LL $ EViewPat $1 $3 }
343 
344 -- Always at least one comma
345-tup_exprs :: { [HsTupArg RdrName] }
346+tup_exprs :: { [HsOptExpr RdrName] }
347            : texp commas_tup_tail  { Present $1 : $2 }
348hunk ./compiler/parser/Parser.y.pp 1441
349-           | commas tup_tail      { replicate $1 missingTupArg ++ $2 }
350+           | commas tup_tail      { replicate $1 missingOptExpr ++ $2 }
351 
352 -- Always starts with commas; always follows an expr
353hunk ./compiler/parser/Parser.y.pp 1444
354-commas_tup_tail :: { [HsTupArg RdrName] }
355-commas_tup_tail : commas tup_tail  { replicate ($1-1) missingTupArg ++ $2 }
356+commas_tup_tail :: { [HsOptExpr RdrName] }
357+commas_tup_tail : commas tup_tail  { replicate ($1-1) missingOptExpr ++ $2 }
358 
359 -- Always follows a comma
360hunk ./compiler/parser/Parser.y.pp 1448
361-tup_tail :: { [HsTupArg RdrName] }
362+tup_tail :: { [HsOptExpr RdrName] }
363           : texp commas_tup_tail       { Present $1 : $2 }
364          | texp                        { [Present $1] }
365hunk ./compiler/parser/Parser.y.pp 1451
366-          | {- empty -}                        { [missingTupArg] }
367+          | {- empty -}                        { [missingOptExpr] }
368 
369 -----------------------------------------------------------------------------
370 -- List expressions
371hunk ./compiler/parser/RdrHsSyn.lhs 727
372                             return (PArrPat ps placeHolderType)
373   
374    ExplicitTuple es b
375-     | all tupArgPresent es  -> do ps <- mapM checkLPat [e | Present e <- es]
376-                                   return (TuplePat ps b placeHolderType)
377+     | all optExprPresent es  -> do ps <- mapM checkLPat [e | Present e <- es]
378+                                    return (TuplePat ps b placeHolderType)
379      | otherwise -> parseErrorSDoc loc (text "Illegal tuple section in pattern:" $$ ppr e0)
380   
381    RecordCon c _ (HsRecFields fs dd)
382hunk ./compiler/parser/RdrHsSyn.lhs 827
383 
384     foreign_RDR = mkUnqual varName (fsLit "foreign")
385 
386-checkDoAndIfThenElse :: LHsExpr RdrName
387+checkDoAndIfThenElse :: SrcSpan
388+                     -> HsOptExpr RdrName
389                      -> Bool
390                      -> LHsExpr RdrName
391                      -> Bool
392hunk ./compiler/parser/RdrHsSyn.lhs 834
393                      -> LHsExpr RdrName
394                      -> P ()
395-checkDoAndIfThenElse guardExpr semiThen thenExpr semiElse elseExpr
396+checkDoAndIfThenElse loc guardExpr semiThen thenExpr semiElse elseExpr
397  | semiThen || semiElse
398     = do pState <- getPState
399          unless (xopt Opt_DoAndIfThenElse (dflags pState)) $ do
400hunk ./compiler/parser/RdrHsSyn.lhs 838
401-             parseErrorSDoc (combineLocs guardExpr elseExpr)
402+             parseErrorSDoc loc
403                             (text "Unexpected semi-colons in conditional:"
404                           $$ nest 4 expr
405                           $$ text "Perhaps you meant to use -XDoAndIfThenElse?")
406hunk ./compiler/parser/RdrHsSyn.lhs 845
407  | otherwise            = return ()
408     where pprOptSemi True  = semi
409           pprOptSemi False = empty
410-          expr = text "if"   <+> ppr guardExpr <> pprOptSemi semiThen <+>
411+          guardDoc = case guardExpr of Present guardExpr -> ppr guardExpr
412+                                       Missing _         -> empty
413+          expr = text "if"   <+> guardDoc      <> pprOptSemi semiThen <+>
414                  text "then" <+> ppr thenExpr  <> pprOptSemi semiElse <+>
415                  text "else" <+> ppr elseExpr
416 \end{code}
417hunk ./compiler/rename/RnExpr.lhs 214
418     return (HsLam matches', fvMatch)
419 
420 rnExpr (HsCase expr matches)
421-  = rnLExpr expr                       `thenM` \ (new_expr, e_fvs) ->
422-    rnMatchGroup CaseAlt matches       `thenM` \ (new_matches, ms_fvs) ->
423-    return (HsCase new_expr new_matches, e_fvs `plusFV` ms_fvs)
424+  = do { checkLambdaCase (ptext (sLit "lambda-case")) expr
425+       ; (new_expr, e_fvs) <- rnOptExpr expr
426+       ; (new_matches, ms_fvs) <- rnMatchGroup CaseAlt matches
427+       ; return (HsCase new_expr new_matches, e_fvs `plusFV` ms_fvs) }
428 
429 rnExpr (HsLet binds expr)
430   = rnLocalBindsAndThen binds          $ \ binds' ->
431hunk ./compiler/rename/RnExpr.lhs 240
432 rnExpr (ExplicitTuple tup_args boxity)
433   = do { checkTupleSection tup_args
434        ; checkTupSize (length tup_args)
435-       ; (tup_args', fvs) <- mapAndUnzipM rnTupArg tup_args
436+       ; (tup_args', fvs) <- mapAndUnzipM rnOptExpr tup_args
437        ; return (ExplicitTuple tup_args' boxity, plusFVs fvs) }
438hunk ./compiler/rename/RnExpr.lhs 242
439-  where
440-    rnTupArg (Present e) = do { (e',fvs) <- rnLExpr e; return (Present e', fvs) }
441-    rnTupArg (Missing _) = return (Missing placeHolderType, emptyFVs)
442 
443 rnExpr (RecordCon con_id _ rbinds)
444   = do { conname <- lookupLocatedOccRn con_id
445hunk ./compiler/rename/RnExpr.lhs 264
446     doc = text "In an expression type signature"
447 
448 rnExpr (HsIf p b1 b2)
449-  = rnLExpr p          `thenM` \ (p', fvP) ->
450-    rnLExpr b1         `thenM` \ (b1', fvB1) ->
451-    rnLExpr b2         `thenM` \ (b2', fvB2) ->
452-    return (HsIf p' b1' b2', plusFVs [fvP, fvB1, fvB2])
453+  = do { checkLambdaCase (ptext (sLit "lambda-if")) p
454+       ; (p', fvP) <- rnOptExpr p
455+       ; (b1', fvB1) <- rnLExpr b1
456+       ; (b2', fvB2) <- rnLExpr b2
457+       ; return (HsIf p' b1' b2', plusFVs [fvP, fvB1, fvB2]) }
458 
459 rnExpr (HsType a)
460   = rnHsTypeFVs doc a  `thenM` \ (t, fvT) ->
461hunk ./compiler/rename/RnExpr.lhs 343
462 rnExpr other = pprPanic "rnExpr: unexpected expression" (ppr other)
463        -- HsWrap
464 
465+rnOptExpr :: HsOptExpr RdrName -> RnM (HsOptExpr Name, FreeVars)
466+rnOptExpr (Present e) = do { (e',fvs) <- rnLExpr e; return (Present e', fvs) }
467+rnOptExpr (Missing _) = return (Missing placeHolderType, emptyFVs)
468+
469+
470 ----------------------
471 -- See Note [Parsing sections] in Parser.y.pp
472 rnSection :: HsExpr RdrName -> RnM (HsExpr Name, FreeVars)
473hunk ./compiler/rename/RnExpr.lhs 1203
474     msg = ptext (sLit "Illegal transform or grouping in") <+> pprStmtContext ctxt
475 
476 ---------
477-checkTupleSection :: [HsTupArg RdrName] -> RnM ()
478+checkLambdaCase :: SDoc -> HsOptExpr RdrName -> RnM ()
479+checkLambdaCase violation scrut = do
480+    lambda_case <- xoptM Opt_LambdaCase
481+    checkErr (optExprPresent scrut || lambda_case) msg
482+  where
483+    msg = ptext (sLit "Illegal") <+> violation <> ptext (sLit ": use -XLambdaCase")
484+
485+---------
486+checkTupleSection :: [HsOptExpr RdrName] -> RnM ()
487 checkTupleSection args
488   = do { tuple_section <- xoptM Opt_TupleSections
489hunk ./compiler/rename/RnExpr.lhs 1214
490-       ; checkErr (all tupArgPresent args || tuple_section) msg }
491+       ; checkErr (all optExprPresent args || tuple_section) msg }
492   where
493     msg = ptext (sLit "Illegal tuple section: use -XTupleSections")
494 
495hunk ./compiler/typecheck/TcArrows.lhs 120
496 
497 tc_cmd env in_cmd@(HsCase scrut matches) (stk, res_ty)
498   = addErrCtxt (cmdCtxt in_cmd) $ do
499-      (scrut', scrut_ty) <- tcInferRho scrut
500+      (scrut', scrut_ty) <- case scrut of
501+        Present scrut -> tcInferRho scrut
502+        Missing _     -> failWith (ptext (sLit "Unsupported combination of lambda-case and arrows"))
503       matches' <- tcMatchesCase match_ctxt scrut_ty matches res_ty
504hunk ./compiler/typecheck/TcArrows.lhs 124
505-      return (HsCase scrut' matches')
506+      return (HsCase (Present scrut') matches')
507   where
508     match_ctxt = MC { mc_what = CaseAlt,
509                       mc_body = mc_body }
510hunk ./compiler/typecheck/TcArrows.lhs 131
511     mc_body body res_ty' = tcGuardedCmd env body stk res_ty'
512 
513 tc_cmd env (HsIf pred b1 b2) res_ty
514-  = do         { pred' <- tcMonoExpr pred boolTy
515+  = do         { pred' <- case pred of
516+            Present pred -> tcMonoExpr pred boolTy
517+            Missing _    -> failWith (ptext (sLit "Unsupported combination of lambda-if and arrows"))
518        ; b1'   <- tcCmd env b1 res_ty
519        ; b2'   <- tcCmd env b2 res_ty
520hunk ./compiler/typecheck/TcArrows.lhs 136
521-       ; return (HsIf pred' b1' b2')
522+       ; return (HsIf (Present pred') b1' b2')
523     }
524 
525 -------------------------------------------
526hunk ./compiler/typecheck/TcExpr.lhs 324
527          SectionL arg1' (mkLHsWrapCoI co_fn op') }
528 
529 tcExpr (ExplicitTuple tup_args boxity) res_ty
530-  | all tupArgPresent tup_args
531+  | all optExprPresent tup_args
532   = do { let tup_tc = tupleTyCon boxity (length tup_args)
533        ; (coi, arg_tys) <- matchExpectedTyConApp tup_tc res_ty
534        ; tup_args1 <- tcTupArgs tup_args arg_tys
535hunk ./compiler/typecheck/TcExpr.lhs 376
536                             tcMonoExpr expr res_ty   
537        ; return (HsLet binds' expr') }
538 
539-tcExpr (HsCase scrut matches) exp_ty
540+tcExpr e@(HsCase scrut matches) res_ty
541   = do {  -- We used to typecheck the case alternatives first.
542           -- The case patterns tend to give good type info to use
543           -- when typechecking the scrutinee.  For example
544hunk ./compiler/typecheck/TcExpr.lhs 386
545           --
546           -- But now, in the GADT world, we need to typecheck the scrutinee
547           -- first, to get type info that may be refined in the case alternatives
548-         (scrut', scrut_ty) <- tcInferRho scrut
549-
550+       ; (coi, body_ty, scrut', scrut_ty) <- case scrut of
551+           Missing _ -> do
552+             (co_fn, [arg_ty], body_ty) <- matchExpectedFunTys (mk_lam_case_msg e) 1 res_ty
553+             return (co_fn, body_ty, Missing arg_ty, arg_ty)
554+           Present scrut -> do
555+              (scrut', scrut_ty) <- tcInferRho scrut
556+              return (IdCo res_ty, res_ty, Present scrut', scrut_ty)
557        ; traceTc "HsCase" (ppr scrut_ty)
558hunk ./compiler/typecheck/TcExpr.lhs 394
559-       ; matches' <- tcMatchesCase match_ctxt scrut_ty matches exp_ty
560-       ; return (HsCase scrut' matches') }
561+       ; matches' <- tcMatchesCase match_ctxt scrut_ty matches body_ty
562+       ; return $ mkHsWrapCoI coi $ HsCase scrut' matches' }
563  where
564     match_ctxt = MC { mc_what = CaseAlt,
565                      mc_body = tcBody }
566hunk ./compiler/typecheck/TcExpr.lhs 400
567 
568-tcExpr (HsIf pred b1 b2) res_ty
569-  = do { pred' <- tcMonoExpr pred boolTy
570-       ; b1' <- tcMonoExpr b1 res_ty
571-       ; b2' <- tcMonoExpr b2 res_ty
572-       ; return (HsIf pred' b1' b2') }
573+tcExpr e@(HsIf pred b1 b2) res_ty
574+  = do { (coi, pred', body_ty) <- case pred of
575+            Missing _ -> do
576+              (co_fn1, [arg_ty], body_ty) <- matchExpectedFunTys (mk_lam_case_msg e) 1 res_ty
577+              co_arg <- unifyType boolTy arg_ty
578+              let -- co_fn1 :: (arg_ty -> body_ty) ~ res_ty
579+                  -- co_arg :: Bool ~ arg_ty
580+                  -- co_fn2 :: (Bool -> body_ty) ~ (arg_ty -> body_ty)
581+                  -- co_fn :: (Bool -> body_ty) ~ res_ty
582+                  co_fn2 = co_arg `mkFunTyCoI` IdCo body_ty
583+                  co_fn = co_fn2 `mkTransCoI` co_fn1
584+              -- TODO: constructing this coercion is smelly. Is there a better way?
585+              return (co_fn, Missing boolTy, body_ty)
586+            Present pred -> do
587+              pred' <- tcMonoExpr pred boolTy
588+              return (IdCo boolTy, Present pred', res_ty)
589+       ; b1' <- tcMonoExpr b1 body_ty
590+       ; b2' <- tcMonoExpr b2 body_ty
591+       ; return $ mkHsWrapCoI coi $ HsIf pred' b1' b2' }
592 
593 tcExpr (HsDo do_or_lc stmts body _) res_ty
594   = tcDoStmts do_or_lc stmts body res_ty
595hunk ./compiler/typecheck/TcExpr.lhs 825
596 mk_app_msg fun = sep [ ptext (sLit "The function") <+> quotes (ppr fun)
597                      , ptext (sLit "is applied to")]
598 
599+mk_lam_case_msg :: HsExpr Name -> SDoc
600+mk_lam_case_msg fun = sep [ ptext (sLit "The function") <+> quotes (ppr fun)
601+                          , ptext (sLit "requires")]
602+
603 ----------------
604 tcInferApp :: LHsExpr Name -> [LHsExpr Name] -- Function and args
605            -> TcM (HsExpr TcId, TcRhoType) -- Translated fun and args
606hunk ./compiler/typecheck/TcExpr.lhs 881
607                                         (tcPolyExprNC arg ty)
608 
609 ----------------
610-tcTupArgs :: [HsTupArg Name] -> [TcSigmaType] -> TcM [HsTupArg TcId]
611+tcTupArgs :: [HsOptExpr Name] -> [TcSigmaType] -> TcM [HsOptExpr TcId]
612 tcTupArgs args tys
613hunk ./compiler/typecheck/TcExpr.lhs 883
614-  = ASSERT( equalLength args tys ) mapM go (args `zip` tys)
615-  where
616-    go (Missing {},   arg_ty) = return (Missing arg_ty)
617-    go (Present expr, arg_ty) = do { expr' <- tcPolyExpr expr arg_ty
618-                                  ; return (Present expr') }
619+  = ASSERT( equalLength args tys ) mapM (uncurry tcTupArg) (args `zip` tys)
620+
621+tcTupArg :: HsOptExpr Name -> TcSigmaType -> TcM (HsOptExpr TcId)
622+tcTupArg (Missing {})   arg_ty = return (Missing arg_ty)
623+tcTupArg (Present expr) arg_ty = do { expr' <- tcPolyExpr expr arg_ty
624+                                    ; return (Present expr') }
625 
626 ----------------
627 unifyOpFunTys :: LHsExpr Name -> Arity -> TcRhoType
628hunk ./compiler/typecheck/TcHsSyn.lhs 551
629     returnM (SectionR new_op new_expr)
630 
631 zonkExpr env (ExplicitTuple tup_args boxed)
632-  = do { new_tup_args <- mapM zonk_tup_arg tup_args
633+  = do { new_tup_args <- mapM (zonkOptExpr env) tup_args
634        ; return (ExplicitTuple new_tup_args boxed) }
635hunk ./compiler/typecheck/TcHsSyn.lhs 553
636-  where
637-    zonk_tup_arg (Present e) = do { e' <- zonkLExpr env e; return (Present e') }
638-    zonk_tup_arg (Missing t) = do { t' <- zonkTcTypeToType env t; return (Missing t') }
639 
640 zonkExpr env (HsCase expr ms)
641hunk ./compiler/typecheck/TcHsSyn.lhs 555
642-  = zonkLExpr env expr         `thenM` \ new_expr ->
643+  = zonkOptExpr env expr       `thenM` \ new_expr ->
644     zonkMatchGroup env ms      `thenM` \ new_ms ->
645     returnM (HsCase new_expr new_ms)
646 
647hunk ./compiler/typecheck/TcHsSyn.lhs 560
648 zonkExpr env (HsIf e1 e2 e3)
649-  = zonkLExpr env e1   `thenM` \ new_e1 ->
650+  = zonkOptExpr env e1 `thenM` \ new_e1 ->
651     zonkLExpr env e2   `thenM` \ new_e2 ->
652     zonkLExpr env e3   `thenM` \ new_e3 ->
653     returnM (HsIf new_e1 new_e2 new_e3)
654hunk ./compiler/typecheck/TcHsSyn.lhs 652
655 
656 zonkExpr _ expr = pprPanic "zonkExpr" (ppr expr)
657 
658+zonkOptExpr :: ZonkEnv -> HsOptExpr TcId -> TcM (HsOptExpr Id)
659+zonkOptExpr env (Present e) = do { e' <- zonkLExpr env e; return (Present e') }
660+zonkOptExpr env (Missing t) = do { t' <- zonkTcTypeToType env t; return (Missing t') }
661+
662 zonkCmdTop :: ZonkEnv -> LHsCmdTop TcId -> TcM (LHsCmdTop Id)
663 zonkCmdTop env cmd = wrapLocM (zonk_cmd_top env) cmd
664 
665hunk ./compiler/types/Generics.lhs 313
666 mk_sum_stuff us datacons
667   = (wrap inlDataCon_RDR l_from_alts ++ wrap inrDataCon_RDR r_from_alts,
668      nlVarPat to_arg,
669-     noLoc (HsCase (nlHsVar to_arg)
670-           (mkMatchGroup [mkSimpleHsAlt (nlConPat inlDataCon_RDR [l_to_pat]) l_to_body,
671-                          mkSimpleHsAlt (nlConPat inrDataCon_RDR [r_to_pat]) r_to_body])))
672+     nlHsCase (nlHsVar to_arg) [mkSimpleHsAlt (nlConPat inlDataCon_RDR [l_to_pat]) l_to_body,
673+                               mkSimpleHsAlt (nlConPat inrDataCon_RDR [r_to_pat]) r_to_body])
674   where
675     (l_datacons, r_datacons)           = splitInHalf datacons
676     (l_from_alts, l_to_pat, l_to_body) = mk_sum_stuff us' l_datacons
677hunk ./compiler/types/Generics.lhs 373
678      nlHsApps crossDataCon_RDR [l_alt_rhs, r_alt_rhs],
679      nlVarPat to_arg,
680 -- gaw 2004 FIX?
681-     \x -> noLoc (HsCase (nlHsVar to_arg)
682-                 (mkMatchGroup [mkSimpleHsAlt pat (l_to_body_fn (r_to_body_fn x))])))
683+     \x -> nlHsCase (nlHsVar to_arg) [mkSimpleHsAlt pat (l_to_body_fn (r_to_body_fn x))])
684   where
685     to_arg = mkGenericLocal us
686     (l_arg_vars, r_arg_vars)                 = splitInHalf arg_vars
687hunk ./docs/users_guide/flags.xml 963
688              <entry><option>-XNoUnboxedTuples</option></entry>
689            </row>
690            <row>
691+             <entry><option>-XLambdaCase</option></entry>
692+             <entry>Enable <link linkend="lambda-case">lambda-case and lambda-if</link>.</entry>
693+             <entry>dynamic</entry>
694+             <entry><option>-XNoLambdaCase</option></entry>
695+           </row>
696+           <row>
697              <entry><option>-XStandaloneDeriving</option></entry>
698              <entry>Enable <link linkend="stand-alone-deriving">standalone deriving</link>.</entry>
699              <entry>dynamic</entry>
700hunk ./docs/users_guide/glasgow_exts.xml 1399
701 
702 </sect2>
703 
704+<sect2 id="lambda-case">
705+<title>Lambda-case and lambda-if</title>
706+
707+<para>
708+  The <option>-XLambdaCase</option> flag enables point-free versions of the
709+  if and case statements. For example, the following program
710+<programlisting>
711+  if then 1 else 2
712+</programlisting>
713+  is considered to be an alternative notation for the more unwieldy alternative
714+<programlisting>
715+  \x -> if x then 1 else 2
716+</programlisting>
717+Likewise, you can write
718+<programlisting>
719+  case of 1 -> True; 2 -> False
720+</programlisting>
721+which translates to
722+<programlisting>
723+  \x -> case x of 1 -> True; 2 -> False
724+</programlisting>
725+</para>
726+
727+</sect2>
728+
729 <sect2 id="disambiguate-fields">
730 <title>Record field disambiguation</title>
731 <para>
732}
733[Fix some documentation bugs for TupleSections
734Max Bolingbroke <batterseapower@hotmail.com>**20101002144550
735 Ignore-this: fdb6c096b331a4e095aa505252b1f8cd
736] {
737hunk ./docs/users_guide/flags.xml 963
738              <entry><option>-XNoUnboxedTuples</option></entry>
739            </row>
740            <row>
741+             <entry><option>-XTupleSections</option></entry>
742+             <entry>Enable <link linkend="tuple-sections">tuple sections</link>.</entry>
743+             <entry>dynamic</entry>
744+             <entry><option>-XNoTupleSections</option></entry>
745+           </row>
746+           <row>
747              <entry><option>-XLambdaCase</option></entry>
748              <entry>Enable <link linkend="lambda-case">lambda-case and lambda-if</link>.</entry>
749              <entry>dynamic</entry>
750hunk ./docs/users_guide/glasgow_exts.xml 1365
751 <title>Tuple sections</title>
752 
753 <para>
754-  The <option>-XTupleSections</option> flag enables Python-style partially applied
755+  The <option>-XTupleSections</option> flag enables partially applied
756   tuple constructors. For example, the following program
757 <programlisting>
758   (, True)
759}
760[Fix a validate failure due to Werror (not introduced by me)
761Max Bolingbroke <batterseapower@hotmail.com>**20101002154258
762 Ignore-this: d46da031c2bc18797e6c500414c90f61
763] hunk ./compiler/typecheck/Inst.lhs 40
764 import TcHsSyn
765 import TcRnMonad
766 import TcEnv
767-import TcRnTypes
768 import InstEnv
769 import FunDeps
770 import TcMType
771[Fix a validate failure due to Werror (not introduced by me) #2
772Max Bolingbroke <batterseapower@hotmail.com>**20101002154417
773 Ignore-this: a5161af3d8945dcc4e86f5e8ac6777f0
774] hunk ./compiler/typecheck/TcSMonad.lhs 100
775 
776 import TcRnTypes
777 
778-import Control.Monad
779 import Data.IORef
780 \end{code}
781 
782[Fix a validate failure due to Werror - this time it's my fault
783Max Bolingbroke <batterseapower@hotmail.com>**20101002154545
784 Ignore-this: e18d97763a8c364dd4b3e2fcb5accbd1
785] hunk ./compiler/deSugar/DsArrows.lhs 407
786 --                     if e then Left ((xs1)*ts) else Right ((xs2)*ts)) >>>
787 --                  c1 ||| c2
788 
789-dsCmd _   _          _       _     _    e@(HsIf (Missing _) _ _)
790+dsCmd _   _          _       _     _    (HsIf (Missing _) _ _)
791   = panic "Combination of lambda-if and arrows should have been rejected by the type checker"
792 dsCmd ids local_vars env_ids stack res_ty (HsIf (Present cond) then_cmd else_cmd) = do
793     core_cond <- dsLExpr cond
794
795Context:
796
797[make test and fulltest targets in the main Makefile; fixes #4297
798Ian Lynagh <igloo@earth.li>**20100930224741
799 You can now run "make test" in the root, and the fast testsuite will be
800 run with cleaning enabled. It will also put the summary in
801 testsuite_summary.txt.
802]
803[Don't show the loaded packages in ":show packages"; fixes #4300
804Ian Lynagh <igloo@earth.li>**20100930210128
805 It's never worked properly, and the information is in ":show linker".
806]
807[Handle EXTRA_LIBRARIES when building programs
808Ian Lynagh <igloo@earth.li>**20100930192552
809 Ignore-this: 401a26e18d25dcaee010b13eaed8f011
810 And set hp2ps's EXTRA_LIBRARIES. Based on a patch from Sergei Trofimovich.
811]
812[Fix the doc directory on Windows
813Ian Lynagh <igloo@earth.li>**20100929133328]
814[Remove an unused import on Windows
815Ian Lynagh <igloo@earth.li>**20100929000024
816 Ignore-this: 2899e0e5a47122e637fb5c8aa0df52ab
817]
818[Use showCommandForUser when showing tracing commands
819Ian Lynagh <igloo@earth.li>**20100928235844
820 Ignore-this: 8a4a9c9f8a8029e708c4297b096b6ef1
821]
822[Fix hsc2hs docs: 'gcc' is now the default compiler, not 'ghc'; fixes #4341
823Ian Lynagh <igloo@earth.li>**20100928201938]
824[Use an empty signal handler for SIGPIPE instead of SIG_IGN
825Simon Marlow <marlowsd@gmail.com>**20100925193548
826 Ignore-this: b4dc5de32740a7c5fd8fe4b3bfb1300f
827 
828 This is so that the SIGPIPE handler gets reset to the default
829 automatically on exec().
830]
831[Fix the TH deps
832Ian Lynagh <igloo@earth.li>**20100925210029
833 Ignore-this: 32b832301a3625d4ba70f84c5c4f94d2
834]
835[Check inplace doesn't exist before we try to create it
836Ian Lynagh <igloo@earth.li>**20100924191858
837 This fixes rerunning configure in a tree which already has an inplace
838 directory. Edward Z Yang ran into this; I guess whether it actually
839 fails depends on details of your installation, or we'd have run into
840 it sooner.
841]
842[Fix an egregious bug: INLINE pragmas on monomorphic Ids were being ignored
843simonpj@microsoft.com**20100924155815
844 Ignore-this: 38c6eec6710a92df7662a55fc5132c15
845 
846 I had do to some refactoring to make this work nicely
847 but now it does. I can't think how this escaped our
848 attention for so long!
849]
850[Eta expand only lambdas that bind a non-dictionary Id
851simonpj@microsoft.com**20100924155707
852 Ignore-this: 7cc265eaf6c0bb3fa12eb311d92594ac
853 
854 See Note [When to eta expand]. The idea is that dictionary
855 lambdas are invisible to the user, so we shouldn't eta
856 expand them.
857]
858[Add a comment
859simonpj@microsoft.com**20100924155620
860 Ignore-this: de210a1afdd40328824803e1d77b4d7f
861]
862[Add a debug print
863simonpj@microsoft.com**20100924155614
864 Ignore-this: 1a58b6d297fc77d6ded8eec7ea9f895d
865]
866[Just moving comments around
867simonpj@microsoft.com**20100924155600
868 Ignore-this: 96635b8e8c9d88b50d82938568152ef8
869]
870[use putStrLn instead of Haskeline's outputStrLn
871Simon Marlow <marlowsd@gmail.com>**20100924133154
872 Ignore-this: 7581ae11714a9a52e78ba098c3c216b3
873 use of the latter caused problems for Claus Reinke's macros that
874 redirect stdout.
875]
876[Change "OPTIONS" to "OPTIONS_GHC" in error messages; fixes #4327
877Ian Lynagh <igloo@earth.li>**20100924120423
878 Ignore-this: 1697c83a5c346db640c0a2e22c69ff55
879]
880[Add deps for TH uses in vector
881Ian Lynagh <igloo@earth.li>**20100923220244
882 Ignore-this: 54c3386b1c268821fcdd34b84bc8c6a4
883]
884[Bump Cabal dep
885Ian Lynagh <igloo@earth.li>**20100923143241]
886[Update Cabal's version number
887Ian Lynagh <igloo@earth.li>**20100923141719]
888[Build primitive with stage2
889Ian Lynagh <igloo@earth.li>**20100923140525
890 Ignore-this: 110a819b78a57629a7edf1d4facdc191
891]
892[Fix the Windows __chkstk build error (missing Linker symbol)
893Simon Marlow <marlowsd@gmail.com>**20100924113837
894 Ignore-this: 48f0907bb1bd5eaa0730b94a6bd94ea
895]
896[emit a helpful error message for missing DPH packages
897Simon Marlow <marlowsd@gmail.com>**20100923141957
898 Ignore-this: 55ff2ee90c94524e023e014243bfe5df
899]
900[Fix computation of installed packages
901simonpj@microsoft.com**20100924084737
902 Ignore-this: a597d2fa8be5135ba8ead6d2624b3d71
903 
904 This is a follow-on to Simon's patch yesterday, developed
905 with him.  It cleans up the computation of how packages
906 are installed, and installs the right ones.
907]
908[Fix braino in WwLib/Literal patch
909simonpj@microsoft.com**20100924070914
910 Ignore-this: f6eb3a42e10f8aa7920de541cdfe76d8
911]
912[For now, switch off incomplete-pattern warnings in containers
913simonpj@microsoft.com**20100923130117
914 Ignore-this: 7ffa58567f7a33aafe256492999da325
915 
916 Put it back on when my patch is applied to the containers repo.
917 (the one that removes two refuable lambdas)
918]
919[Make -funfolding-dict-threshold work properly
920simonpj@microsoft.com**20100923130032
921 Ignore-this: 417788f5b09d1d624f6b6371852c80c7
922 
923 and increase its default value. This makes overloaded functions
924 a bit keener to inline.  Which fixes Trac #4321
925]
926[Impredicative types is no longer deprecated
927simonpj@microsoft.com**20100923125910
928 Ignore-this: 2bbaeb38b5e8424551677c0add627683
929]
930[Do not make FunctionalDependencies force MonoLocalBinds
931simonpj@microsoft.com**20100923125900
932 Ignore-this: f4ae1fd07c87ec14f60bdfe3863ba7a9
933]
934[move CHECKED settings to the right place
935Simon Marlow <marlowsd@gmail.com>**20100923123558
936 Ignore-this: e00a0eb5855463cc9b953670b3bbf211
937]
938[turn off -Werror for primitive and vector
939Simon Marlow <marlowsd@gmail.com>**20100923122055
940 Ignore-this: 54d7b80f3f893385e1c3ef431e2a8a7b
941]
942[Add primitive and vector packages for DPH support
943Simon Marlow <marlowsd@gmail.com>**20100923104542
944 Ignore-this: c070d015385b0a0797394132dcbb7670
945 DPH is now using the public vector package instead of its internal
946 version.
947 
948 vector and primitive are not "boot" packages; they aren't required to
949 build GHC, but they are required to validate (because we include DPH
950 when validating).
951 
952 If you say './darcs-all get --no-dph' then you don't get DPH, vector,
953 or primitive.
954]
955[Refactoring and tidy up in the build system
956Simon Marlow <marlowsd@gmail.com>**20100923095642
957 Ignore-this: f7bf3a1fd160149d89b26f464b064fb1
958 
959 Instead of the ghc-stage and ghc-stage2-package files in a package, we
960 now have a list of these in ghc.mk.  There are other similar lists (of
961 boot-packages and non-installable packages), so this is not too bad,
962 and is simpler.
963 
964 While poking around in the top-level ghc.mk file I spotted various
965 opportunities to clean up and re-order some of the cruft that has
966 accumulated over time.
967]
968[Allow absent State# RealWorld arguments
969simonpj@microsoft.com**20100923111356
970 Ignore-this: c2d57633dec0293ebe6723ea3a4bb5df
971]
972[Add notSCCNote, and use it
973simonpj@microsoft.com**20100923105949
974 Ignore-this: c8cc758656558a7f366bf784d75f0304
975 
976 The point here is that SCCs get in the way of eta
977 expansion and we must treat them uniformly.
978]
979[Remove use of lambda with a refutable pattern
980simonpj@microsoft.com**20100923105901
981 Ignore-this: d7d48b94e5744717a838591a1cc79cf0
982]
983[Avoid ASSERT black hole
984simonpj@microsoft.com**20100923105820
985 Ignore-this: 5419d450871be22c8781ac3f0f40d76a
986 
987 When this ASSERT tripped in CoreToStg it tried to print out
988 too much, which tripped the asssertion again.  Result: an
989 infinite loop with no output at all.  Hard to debug!
990]
991[Rejig the absent-arg stuff for unlifted types
992simonpj@microsoft.com**20100923105732
993 Ignore-this: 69daa35816b948b0c4d259c73a5e928e
994 
995 This is what was giving the "absent entered" messages
996 See Note [Absent errors] in WwLib.  We now return a
997 suitable literal for absent values of unlifted type.
998]
999[Remove -fwarn-simple-patterns, and make -fwarn-incomplete-patterns include lambdas
1000simonpj@microsoft.com**20100922133934
1001 Ignore-this: e851a2fb0377e10c28c506f0bf14cc85
1002 
1003 This makes
1004      \(x:xs) -> e
1005 want when you have -fwarn-incomplete-patterns, which is consistent.
1006]
1007[Get rid of non-exhaustive lambda
1008simonpj@microsoft.com**20100922133801
1009 Ignore-this: 748b2d5b43b02b6591b81abe7c105cd6
1010]
1011[Fix an ASSERT failure with profiling
1012simonpj@microsoft.com**20100922133741
1013 Ignore-this: 170b2e94d6ee8cc7444cc4bb515328a0
1014 
1015 The problem arose with this kind of thing
1016 
1017    x = (,) (scc "blah" Nothing)
1018 
1019 Then 'x' is marked NoCafRefs by CoreTidy, becuase it has
1020 arity 1, and doesn't mention any caffy things.
1021 
1022 That in turns means that CorePrep must not float out the
1023 sat binding to give
1024 
1025   sat = scc "blah" Nothing
1026   x = (,) sat
1027 
1028 Rather we must generate
1029 
1030   x = \eta. let sat = scc "blah" Nothing
1031             in (,) sat eta
1032 
1033 URGH! This Caf stuff is such a mess.
1034]
1035[Remove an out of date paragraph from the user guide; fixes #4331
1036Ian Lynagh <igloo@earth.li>**20100922225239]
1037[Fix bindisttest when GhcProfiled = YES
1038Ian Lynagh <igloo@earth.li>**20100921222634
1039 Ignore-this: 47c620fd6bec745e3eb699d9f53441d8
1040]
1041[Fixes for when HADDOCK_DOCS=NO
1042Ian Lynagh <igloo@earth.li>**20100921213916
1043 Ignore-this: e0e069555c6db9d01a8ac70ba4dde591
1044]
1045[Bump version to 7.1
1046Ian Lynagh <igloo@earth.li>**20100921195935
1047 Ignore-this: 4563987e6885d5ef55995ec0fa0d5ae8
1048]
1049[Don't use -march=i686 on powerpc-apple-darwin
1050Ian Lynagh <igloo@earth.li>**20100921193721
1051 Thorikil ran into this when doing a PPC OS X build. We now also don't
1052 use -m32 on PPC/OSX, but I don't think it should be necessary. We can
1053 add it back if it does turn out to be.
1054]
1055[add a simple trace facility to the build system
1056Simon Marlow <marlowsd@gmail.com>**20100921134729
1057 Ignore-this: d23ea2d62a648d0711b4b07d98e1b79f
1058 
1059 saying
1060 
1061   make TRACE=1
1062 
1063 prints most of the macro calls and their arguments.  It's easy to
1064 trace new macros; see rules/trace.mk.
1065]
1066[fix building with extra packages (packages were added to BUILD_DIRS twice)
1067Simon Marlow <marlowsd@gmail.com>**20100921100153
1068 Ignore-this: 4b425dff9777871ad5ba3e05e1d14483
1069 Also add some comments about what extra-packages is doing
1070]
1071[add extra packages to $(EXTRA_PACKAGES), so we avoid installing them by default
1072Simon Marlow <marlowsd@gmail.com>**20100920144307
1073 Ignore-this: 3395825d911a8bf7ba8385518d8b517b
1074]
1075[Fix indexing error in archive loader
1076Ian Lynagh <igloo@earth.li>**20100921121642]
1077[Add some -Dl belches
1078Ian Lynagh <igloo@earth.li>**20100921121624]
1079[Add casts to fix warnings
1080Ian Lynagh <igloo@earth.li>**20100921121714]
1081[Add support for BSD-variant large filenames in .a archives
1082Ian Lynagh <igloo@earth.li>**20100921000451]
1083[Tell Cabal that we're not building GHCi libs if UseArchivesForGhci=YES
1084Ian Lynagh <igloo@earth.li>**20100920230449]
1085["UseArchivesForGhci = YES" on darwin
1086Ian Lynagh <igloo@earth.li>**20100920211538]
1087[Add a dependency that my OS X build has recently started tripping up over
1088Ian Lynagh <igloo@earth.li>**20100920210239]
1089[Add "Use archives for ghci" to --info output
1090Ian Lynagh <igloo@earth.li>**20100920210523]
1091[Implement archive loading for ghci
1092Ian Lynagh <igloo@earth.li>**20100920201620]
1093[Tweak gen_contents_index now dph may not be there
1094Ian Lynagh <igloo@earth.li>**20100920201513]
1095[Filter out the FFI library when loading package in ghci
1096Ian Lynagh <igloo@earth.li>**20100920181032
1097 The FFI GHCi import lib isn't needed as
1098 compiler/ghci/Linker.lhs + rts/Linker.c link the
1099 interpreted references to FFI to the compiled FFI.
1100 We therefore filter it out so that we don't get
1101 duplicate symbol errors.
1102]
1103[Loosen the conditions for -XUndecidableInstances; fixes Trac #4200
1104simonpj@microsoft.com**20100919162623
1105 Ignore-this: 2f4323e278b1ce9250549727ffd0aa1b
1106]
1107[Further improvements in error messages
1108simonpj@microsoft.com**20100919153355
1109 Ignore-this: b6fa0b11ae893df1a3ca68f78e427fa
1110]
1111[Add a flag -fwarn-missing-local-sigs, and improve -fwarn-mising-signatures
1112simonpj@microsoft.com**20100919153327
1113 Ignore-this: fda8dfca450054ea692be0ee30b01885
1114 
1115 The new flag prints out a warning if you have a local,
1116 polymorphic binding that lacks a type signature. It's meant
1117 to help with the transition to the new typechecker, which
1118 discourages local let-generalisation.
1119 
1120 At the same time I moved the missing-signature code to TcHsSyn,
1121 where it takes place as part of zonking.  That way the
1122 types are reported after all typechecking is complete,
1123 thereby fixing Trac #3696.  (It's even more important for
1124 local bindings, which is why I made the change.)
1125]
1126[Include the "stupid theta" in the type of $con2tag
1127simonpj@microsoft.com**20100919152201
1128 Ignore-this: d95fae78a0e66f48bbd5862573a11f4d
1129]
1130[Add a release note about the typechecker
1131Ian Lynagh <igloo@earth.li>**20100919132927]
1132[Enable shared libs on OpenBSD
1133Matthias Kilian <kili@outback.escape.de>**20100918205040
1134 Ignore-this: 729dd7ac0bba5d758f43bc31b541896
1135]
1136[Add separate functions for querying DynFlag and ExtensionFlag options
1137Ian Lynagh <igloo@earth.li>**20100918163815
1138 and remove the temporary DOpt class workaround.
1139]
1140[Fix mkUserGuidePart deps
1141Ian Lynagh <igloo@earth.li>**20100918145904
1142 We need to directly depend on the stage1 libs. The stage1 compiler lib
1143 doesn't depend on them.
1144]
1145[Fix build on cygwin: Normalise slashes in .depend files to be /
1146Ian Lynagh <igloo@earth.li>**20100918132328
1147 Ignore-this: 664f5ef4a41a4461eb34fe2ca7f2729a
1148]
1149[extra packages info is now read from packages file
1150Ian Lynagh <igloo@earth.li>**20100917224409
1151 rather than being repeated in the build system
1152]
1153[Tweak darcs-all
1154Ian Lynagh <igloo@earth.li>**20100917194435]
1155[Bump dependencies
1156Ian Lynagh <igloo@earth.li>**20100917183609]
1157[Library release notes for 7.0.1
1158Ian Lynagh <igloo@earth.li>**20100917174850]
1159[Fix overriding of implicit parameters in the solver
1160simonpj@microsoft.com**20100917140403
1161 Ignore-this: af76732309c7e2ca6b04f49327e9c14b
1162]
1163[Minor type printing amomaly
1164simonpj@microsoft.com**20100917140204
1165 Ignore-this: c90cb2e51421b4543a827e096051772e
1166]
1167[Spaces only
1168simonpj@microsoft.com**20100917140156
1169 Ignore-this: 7e34479502f7cb87d762355e40cbd012
1170]
1171[Minor refactoring
1172simonpj@microsoft.com**20100917140150
1173 Ignore-this: 6c0648b949b91b7e2f23c136b124faf2
1174]
1175[Add types of implicit parameters as untouchable
1176simonpj@microsoft.com**20100917140138
1177 Ignore-this: ba80740a557a9ba062dc7756e2320d17
1178 
1179 This is a tricky point:
1180    see Note [Implicit parameter untouchables]
1181]
1182[Better pretty printing of implicit parameters
1183simonpj@microsoft.com**20100917140054
1184 Ignore-this: 867dd67818a5bd687b2b6a1b59e15775
1185]
1186[Yet more error message improvement
1187simonpj@microsoft.com**20100917121206
1188 Ignore-this: 647fe8129d1d39d81e8249debd8df94e
1189]
1190[More error message wibbles
1191simonpj@microsoft.com**20100917094721
1192 Ignore-this: 8ec2f150b96b26af2e9ab7ac2b371fc7
1193]
1194[More error refactoring
1195simonpj@microsoft.com**20100917092834
1196 Ignore-this: 2d570ac0b9cc11305ddd33d093d11324
1197]
1198[Refactor type errors a bit
1199simonpj@microsoft.com**20100917080726
1200 Ignore-this: 33da4549373f585064e2ee22b50ad6ac
1201 
1202 Improves kind error messages in paticular
1203]
1204[Fix a very subtle shadowing bug in optCoercion
1205simonpj@microsoft.com**20100916170452
1206 Ignore-this: 9041cfb3c93e27a5e644e57815313aae
1207 
1208 See Note [Subtle shadowing in coercions]
1209 
1210 This is what was going wrong in Trac 4160.
1211]
1212[Fix bad error in tyVarsOfType
1213simonpj@microsoft.com**20100916170348
1214 Ignore-this: 67c8ce96a668cf6e3a38b82c893bcd81
1215 
1216 We weren't gathering the type variables free in the kind
1217 of a coercion binder!
1218]
1219[More assertions
1220simonpj@microsoft.com**20100916170310
1221 Ignore-this: 7fdcb53c99d791621a3d7e01ef454404
1222]
1223[Add more location info in CoreLint
1224simonpj@microsoft.com**20100916170229
1225 Ignore-this: 6558bab544b4f30189e0430668db87c3
1226]
1227[Print coercion variables as such (debugging change only)
1228simonpj@microsoft.com**20100916165944
1229 Ignore-this: c6d2001c1d8279a2288cb63bc339577d
1230]
1231[Remove pprTrace
1232simonpj@microsoft.com**20100915225935
1233 Ignore-this: 28185bbfa9732386f3c0f3eb4781a637
1234]
1235[Remove dead code dealing with type refinement
1236simonpj@microsoft.com**20100915223230
1237 Ignore-this: 62824b5c2ec1077c7642163352559621
1238]
1239[Use mkAppTy
1240simonpj@microsoft.com**20100915223205
1241 Ignore-this: e79e087b6a49219e9088846a1253a153
1242 
1243 Using AppTy in CoreLint was giving a bogus Lint failure
1244]
1245[Comments only
1246simonpj@microsoft.com**20100915221253
1247 Ignore-this: 3a45ea614188ccbb4a462de5cac96eda
1248]
1249[Extend eta reduction to work with casted arguments
1250simonpj@microsoft.com**20100915221229
1251 Ignore-this: 24b103dcdf70331211507af929789f86
1252 
1253 See Trac #4201, and
1254 Note [Eta reduction with casted arguments]
1255 
1256 Thanks to Louis Wasserman for suggesting this, and
1257 implementing an early version of the patch
1258]
1259[Allow "INLINEABLE" as a synonym
1260simonpj@microsoft.com**20100915154249
1261 Ignore-this: f41f80cb769e9acd5b463b170df698d0
1262]
1263[Documentation for INLINABLE
1264simonpj@microsoft.com**20100915154235
1265 Ignore-this: f942c02bcadc0d2d2f05b9369f93e280
1266]
1267[Implement TH reification of instances (Trac #1835)
1268simonpj@microsoft.com**20100915151242
1269 Ignore-this: 97dfa83db7da8f6cbd1b96801a57f8c5
1270 
1271 Accompanying patch for template-haskell package is reqd
1272]
1273[errno corresponding to ERROR_NO_DATA should be EPIPE (non-threaded RTS)
1274Simon Marlow <marlowsd@gmail.com>**20100915141809
1275 Ignore-this: 709c7280fbaa762e7071fb8796e8c01e
1276]
1277[Windows: use a thread-local variable for myTask()
1278Simon Marlow <marlowsd@gmail.com>**20100915120627
1279 Ignore-this: 13ffa4f19ebd319fe672af53af8d0b9a
1280 Which entailed fixing an incorrect #ifdef in Task.c
1281]
1282[Fix typo
1283Ian Lynagh <igloo@earth.li>**20100915140814]
1284[Add quotes in error message
1285simonpj@microsoft.com**20100915144724
1286 Ignore-this: c5158047c0aa41947a79e4c8edbe54f4
1287]
1288[Fix isDefaultInlinePragma
1289simonpj@microsoft.com**20100915144710
1290 Ignore-this: c9addf6bf811b23dc12603cf8521aa6c
1291]
1292[Implement INLINABLE pragma
1293simonpj@microsoft.com**20100915124442
1294 Ignore-this: 80a4ab2c2d65b27868dc9b2e954d6c6f
1295 
1296 Implements Trac #4299.  Documentation to come.
1297]
1298[Less voluminous error when derived code doesn't typecheck
1299simonpj@microsoft.com**20100915072301
1300 Ignore-this: eca7871dcc50c1070a0b530711adea27
1301]
1302[Improve pretty-printing of family instances
1303simonpj@microsoft.com**20100915123219
1304 Ignore-this: 25ec6bcc7e8a7f7c303b38ca201db90e
1305 
1306 Fixed Trac #4246
1307]
1308[Fix Trac #4240: -ddump-minimal-imports
1309simonpj@microsoft.com**20100915121937
1310 Ignore-this: ab85057cb829a42ea44a92f7b4af24a3
1311 
1312 See Note [Partial export] for the details.
1313 I also fixed one egregious bug that was just
1314 waiting to bite: we were using loadSysInterface
1315 instead of loadSrcInterface.
1316]
1317[Comments only
1318simonpj@microsoft.com**20100915105707
1319 Ignore-this: ab3a5f16f8260b7b8570e748bf97998a
1320]
1321[implement setThreadAffinity on Windows (#1741)
1322Simon Marlow <marlowsd@gmail.com>**20100914155844
1323 Ignore-this: a14c7b4ef812007042342d0a25478f0b
1324]
1325[COFF: cope with new debug sections in gcc 4.x (fixes ghciprog004)
1326Simon Marlow <marlowsd@gmail.com>**20100914153026
1327 Ignore-this: f340e40a2b0390836bc61bba144a04ed
1328 Also updated the object file parser to properly handle the overflow
1329 case for section names longer than 8 chars.
1330]
1331[eliminate clutter from make output
1332Simon Marlow <marlowsd@gmail.com>**20100915105712
1333 Ignore-this: bfa4480dd239dda2a02ac391b6a9219c
1334]
1335[rts_isProfiled should be a visible API (fixes T2615(dyn))
1336Simon Marlow <marlowsd@gmail.com>**20100915083941
1337 Ignore-this: b8ac09bb9d1a929bf45c6122f8485561
1338]
1339[Fix the "lost due to fragmentation" calculation
1340Simon Marlow <marlowsd@gmail.com>**20100914145945
1341 Ignore-this: cdffcc9f3061c3a33da5171be111fc43
1342 It was counting the space used by block descriptors as "lost"
1343]
1344[fix +RTS -S output: use peak_mblocks_allocated, now that mblocks can be freed
1345Simon Marlow <marlowsd@gmail.com>**20100914135030
1346 Ignore-this: 65d21e5f86d3ab6ab4d6c255180b6968
1347]
1348[Fix egregious bug in deeplyInstantiate
1349simonpj@microsoft.com**20100915070325
1350 Ignore-this: 22ede973038877af2673339aaf5de6cf
1351 
1352 This resulted in an infinite loop in applyTypeToArgs, in syb
1353]
1354[Improve HsSyn pretty printing
1355simonpj@microsoft.com**20100915070255
1356 Ignore-this: 7c8e2d86a482453c7e69e22bc31cb03f
1357]
1358[Remove (most of) the FiniteMap wrapper
1359Ian Lynagh <igloo@earth.li>**20100914201703
1360 We still have
1361     insertList, insertListWith, deleteList
1362 which aren't in Data.Map, and
1363     foldRightWithKey
1364 which works around the fold(r)WithKey addition and deprecation.
1365]
1366[Improve ASSERT
1367simonpj@microsoft.com**20100914113900
1368 Ignore-this: dbc0363be5924f543316e77f7d18dd77
1369]
1370[Comment on what an "enumeration" type is
1371simonpj@microsoft.com**20100914113850
1372 Ignore-this: c09c8591e3140f305d55fbf945adbf95
1373]
1374[Make absent-arg wrappers work for unlifted types (fix Trac #4306)
1375simonpj@microsoft.com**20100914113827
1376 Ignore-this: 1945e56779329e8b79780403710aba98
1377 
1378 Previously we were simply passing arguments of unlifted
1379 type to a wrapper, even if they were absent, which was
1380 stupid.
1381 
1382 See Note [Absent error Id] in WwLib.
1383]
1384[Comments only
1385simonpj@microsoft.com**20100914113641
1386 Ignore-this: 3191ce856c9b5d9700cedc9b149b8097
1387]
1388[Move error-ids to MkCore (from PrelRules)
1389simonpj@microsoft.com**20100914113635
1390 Ignore-this: c3d820db62ba6139dd7c96bf97e51bb5
1391 
1392 and adjust imports accordingly
1393]
1394[More wibbles to deriving error messages
1395simonpj@microsoft.com**20100914113523
1396 Ignore-this: bd2df662644961138fa209aec843a2aa
1397]
1398[Fix getThreadCPUTime()
1399Simon Marlow <marlowsd@gmail.com>**20100913153838
1400 Ignore-this: 950e048a5724086534b74c609c7d5ed
1401 ever since the patch "Check with sysconf _POSIX_THREAD_CPUTIME", it
1402 has been returning incorrect results, because the sysconf variable to
1403 check should have been _SC_THREAD_CPUTIME, not _POSIX_THREAD_CPUTIME.
1404]
1405[filter out the gcc-lib directory from the rts package's library-dirs
1406Simon Marlow <marlowsd@gmail.com>**20100913101259
1407 Ignore-this: 46dc1dccbfee8a65f9243e125eee117f
1408 fixes problems when building with GHC 6.10 on Windows
1409]
1410[Don't include GC time in heap profiles (#4225)
1411Simon Marlow <marlowsd@gmail.com>**20100913133852
1412 Ignore-this: 68ac48b004b311384b5996c6b33ba5cc
1413]
1414[Use clock_gettime (if available) to measure the process CPU time
1415Simon Marlow <marlowsd@gmail.com>**20100913133818
1416 Ignore-this: 8c9300df9b929bfc1db4713c9b6065b3
1417 This is much more accurate than getrusage, which was giving misleading
1418 results when trying to time very quick operations like a minor GC.
1419]
1420[make stg_arg_bitmaps public, and available via the GHCi linker (#3672)
1421Simon Marlow <marlowsd@gmail.com>**20100913105235
1422 Ignore-this: e18efd0bd77c521e5530fb59e93b5a42
1423]
1424[fix typo
1425Simon Marlow <marlowsd@gmail.com>**20100913105100
1426 Ignore-this: 6049eea21208864203b2d79db2edd143
1427]
1428[Update release notes and docs with LLVM info.
1429David Terei <davidterei@gmail.com>**20100914072135
1430 Ignore-this: 5b3d0e5c9d5da98ed6ae9c2e8e1f6f30
1431]
1432[Remove defaultExtensionFlags
1433Ian Lynagh <igloo@earth.li>**20100913165949
1434 The default should do into languageExtensions instead
1435]
1436[Improve crash message
1437simonpj@microsoft.com**20100913170407
1438 Ignore-this: 5c26a9979f18be8cd12cea823c9f4b5a
1439]
1440[Fix Trac #4302, plus a little refactoring
1441simonpj@microsoft.com**20100913170355
1442 Ignore-this: cf6886b587aa0e8d723362183625d946
1443]
1444[Fix build with 6.10
1445Ian Lynagh <igloo@earth.li>**20100913160048]
1446[Haddock fixes
1447simonpj@microsoft.com**20100913120510
1448 Ignore-this: f3157d6969f10d4cbd593000a477138b
1449]
1450[Remove two old junk files
1451simonpj@microsoft.com**20100913103426
1452 Ignore-this: ed7af5ef1b9592178909a8d876345302
1453]
1454[Super-monster patch implementing the new typechecker -- at last
1455simonpj@microsoft.com**20100913095048
1456 Ignore-this: 14d14a1e4d7a414f5ae8d9d89d1c6a4b
1457 
1458 This major patch implements the new OutsideIn constraint solving
1459 algorithm in the typecheker, following our JFP paper "Modular type
1460 inference with local assumptions". 
1461 
1462 Done with major help from Dimitrios Vytiniotis and Brent Yorgey.
1463 
1464]
1465[Fix simplifier statistics
1466simonpj@microsoft.com**20100909085441
1467 Ignore-this: 48e383655aafc912dea15c4d94382863
1468]
1469[Trace output
1470simonpj@microsoft.com**20100908170056
1471 Ignore-this: 4b67fa4b310fbf0a16b852686d2d3294
1472]
1473[Better debug output
1474simonpj@microsoft.com**20100908170047
1475 Ignore-this: 410cef00616dda7c0c162f65216e8ca3
1476]
1477[Add Outputable instance for OccEncl
1478simonpj@microsoft.com**20100908150510
1479 Ignore-this: 6362ef9028287d84f070eaf8963c1bfc
1480]
1481[Better simplifier counting
1482simonpj@microsoft.com**20100907214840
1483 Ignore-this: 9d4722703f8f47447e86a28c8c50e0ea
1484]
1485[Put liftStringName into the known-key names
1486simonpj@microsoft.com**20100906112415
1487 Ignore-this: 287064d14ff484da1a6dea6924bc9235
1488]
1489[Deprecate NoRelaxedPolyRec
1490simonpj@microsoft.com**20100903234519
1491 Ignore-this: 607217e77f6bc1b91bf57dfd8dd2b967
1492]
1493[Buglet in Core Lint
1494simonpj@microsoft.com**20100903234457
1495 Ignore-this: 277535d51b396d3b4b0265a0939c2d4
1496]
1497[Give seqId the right type
1498simonpj@microsoft.com**20100903093556
1499 Ignore-this: d1fc7a73dea160614a8d4ddc930f99cd
1500]
1501[Remove dead code
1502simonpj@microsoft.com**20100903093548
1503 Ignore-this: 92cc3f7651445aa349ee7f114d3ec758
1504]
1505[Comments and layout
1506simonpj@microsoft.com**20100903093502
1507 Ignore-this: 9987d1409e654992c1cb1be35cb87728
1508]
1509[Remove checkFreeness; no longer needed
1510simonpj@microsoft.com**20100902233227
1511 Ignore-this: c96a12ac9794290aa30402317d88c095
1512]
1513[Assert
1514simonpj@microsoft.com**20100902073642
1515 Ignore-this: 4be1ab2f6096665ae5ec7fdd1f025a67
1516]
1517[Add aserts
1518simonpj@microsoft.com**20100902073211
1519 Ignore-this: e1409441217fd070c5a7f9ee4cca99ab
1520]
1521[Wibbles
1522simonpj@microsoft.com**20100831113540
1523 Ignore-this: 903811ab493a7b560a62eb86fcf3ee25
1524]
1525[Wibble to allow phantom types in Enum
1526simonpj@microsoft.com**20100825112711
1527 Ignore-this: fdef1c50d92b4a3d46bbe4cbfd8a83ea
1528]
1529[Add HsCoreTy to HsType
1530simonpj@microsoft.com**20100824141845
1531 Ignore-this: 4ca742b099f9cc90af3167f1012dbba6
1532 
1533 The main thing here is to allow us to provide type
1534 signatures for 'deriving' bindings without pain.
1535]
1536[Comments
1537simonpj@microsoft.com**20100823223654
1538 Ignore-this: dd412a55839430c436902d8699d6900b
1539]
1540[Wibbles to error message
1541simonpj@microsoft.com**20100823163308
1542 Ignore-this: 4d6cd8e613762dca8135c2e3b09264ec
1543]
1544[Correct type signatures
1545simonpj@microsoft.com**20100823153045
1546 Ignore-this: 42942309221a443258246098f9c0a13b
1547]
1548[Add missing signatures
1549simonpj@microsoft.com**20100823112413
1550 Ignore-this: 8ee1ce40456306de469938c02df4fed5
1551]
1552[Add type signatures in "deriving" bindings
1553simonpj@microsoft.com**20100820234230
1554 Ignore-this: 4726b28968cf65ec16cb65b7e0e7303e
1555]
1556[Minor
1557dimitris@microsoft.com**20100820131021]
1558[Be a bit less aggressive in mark-many inside a cast
1559simonpj@microsoft.com**20100819104804
1560 Ignore-this: 3fd48fe7647ec7a58c2032cd86ca4d4f
1561]
1562[Wibble
1563simonpj@microsoft.com**20100818185738
1564 Ignore-this: d5c939311377c0d0c7244aa339193315
1565]
1566[Pretty printing change
1567simonpj@microsoft.com**20100818065436
1568 Ignore-this: 4f7e70976dbe52f95effb3e634dfef5d
1569]
1570[Remember to zonk FlatSkols!
1571simonpj@microsoft.com**20100811143555
1572 Ignore-this: 84f7f9dbda97f561a918c69308ddef9a
1573]
1574[De-polymorphise
1575simonpj@microsoft.com**20100730151217
1576 Ignore-this: a9304487b983e517a9083fd697f77576
1577]
1578[Work around missing type signature in Happy
1579simonpj@microsoft.com**20100730122405
1580 Ignore-this: 7f241a655d93c5ad7763a7ffe8db0c7a
1581 
1582 Happy generates
1583 
1584       notHappyAtAll = error "Blah"
1585 
1586 without a type signature, and currently the new
1587 typechecker doesn't generalise it.  This patch
1588 says "no monomorphism restriction" which makes it
1589 generalise again.
1590 
1591 Better would be to add a type sig to Happy's template
1592]
1593[Add two local type signatures
1594simonpj@microsoft.com**20100729152611
1595 Ignore-this: afa99bcc515469aa0990d44d8c18a9e6
1596]
1597[Second test from Simon's laptop
1598simonpj@microsoft.com**20100729091703
1599 Ignore-this: 4dc64cadae314a5a1b05cc5326918a83
1600]
1601[Test commit from Simon's laptop
1602simonpj@microsoft.com**20100729091344
1603 Ignore-this: 109eff835cc19e9f93799d12f09b0ba7
1604]
1605[Add OutsideIn flag
1606simonpj@microsoft.com**20100728075525
1607 Ignore-this: 69c2f5c3a15fa653f6da80598aa8d74d
1608]
1609[Layout only
1610simonpj@microsoft.com**20100727141539
1611 Ignore-this: 1a58a8fe80ba8bced18ae81a2efb9495
1612]
1613[Improvement to SimplUtils.mkLam
1614simonpj@microsoft.com**20100727131659
1615 Ignore-this: 739beaefa79baa7e0ebeb5b2b6d1ea91
1616]
1617[Give the correct kind to unsafeCoerce#
1618simonpj@microsoft.com**20100727131538
1619 Ignore-this: 6b787de3b398c6d7a61fa04fccd15fd6
1620]
1621[Suppress warnings about recursive INLINE in output of desugarer
1622simonpj@microsoft.com**20100727094549
1623 Ignore-this: a361f7238c0fcba526d46326722c42e
1624]
1625[Rename CorePrep.tryEtaReduce to tryEtaReducePrep
1626simonpj@microsoft.com**20100726231253
1627 Ignore-this: 4375ddace205745244ba224ae012252
1628 
1629 This avoids the name clash with the similar but
1630 not identical CoreUtils.tryEtaReduce
1631]
1632[Add a trace message
1633simonpj@microsoft.com**20100719211111
1634 Ignore-this: b5daebe46e50c8cf28cc693f84bbf099
1635]
1636[Don't use RelaxedPolyRec in the compiler; it's built in now
1637simonpj@microsoft.com**20100719170441
1638 Ignore-this: a2e4489cdf63478e46282a421ee7aec3
1639]
1640[Remove duplicated #defines for FreeBSD
1641Matthias Kilian <kili@outback.escape.de>**20100912181518
1642 Ignore-this: d16214fef8635c7c9ef4edec4e8e7896
1643]
1644[Don't fail with absolute silence
1645Matthias Kilian <kili@outback.escape.de>**20100912150506
1646 Ignore-this: 479e2321f39b263fa2d9f80491e5e9f7
1647]
1648[Add a release note: "-dynload wrapper" removed
1649Ian Lynagh <igloo@earth.li>**20100911195809]
1650[put back the conversion of warn-lazy-unlifted-bindings into an error until 7.2
1651Ian Lynagh <igloo@earth.li>**20100911193434
1652 I think we'll currently still have too many people with old versions of
1653 alex/happy to want to make this an error now.
1654]
1655[6.14 -> 7.0
1656Ian Lynagh <igloo@earth.li>**20100911192837]
1657[Add a couple more release notes
1658Ian Lynagh <igloo@earth.li>**20100911162059]
1659[Document -dsuppress-module-prefixes
1660Ian Lynagh <igloo@earth.li>**20100911162005]
1661[Enable -fregs-graph with -O2; fixes #2790
1662Ian Lynagh <igloo@earth.li>**20100910191301]
1663[Remove unused code
1664Ian Lynagh <igloo@earth.li>**20100909170207]
1665[Fix warnings
1666Ian Lynagh <igloo@earth.li>**20100909154348]
1667[Fix warnings
1668Ian Lynagh <igloo@earth.li>**20100909150957]
1669[Remove context completion
1670lykahb@gmail.com**20100901160153
1671 Ignore-this: dc61b259dcb7063f0c76f56788b5d2af
1672 Now completion suggests to remove only modules added to context before.
1673]
1674[avoid Foreign.unsafePerformIO
1675Ross Paterson <ross@soi.city.ac.uk>**20100909125531
1676 Ignore-this: 5cabeae4cffec8fc17ef7c0cabbea22a
1677]
1678[updates to the release notes
1679Simon Marlow <marlowsd@gmail.com>**20100909111450
1680 Ignore-this: a4d25ad8815c305b7e0f21fd4f6ee37b
1681]
1682[newAlignedPinnedByteArray#: avoid allocating an extra word sometimes
1683Simon Marlow <marlowsd@gmail.com>**20100909110805
1684 Ignore-this: 996a3c0460068ab2835b4920905b3e75
1685]
1686[Finish breaking up vectoriser utils
1687benl@ouroborus.net**20100909061311
1688 Ignore-this: 217fe1d58a3e8bb13200bcb81353a416
1689]
1690[Move VectType module to Vectorise tree
1691benl@ouroborus.net**20100909042451
1692 Ignore-this: 5af8cf394d4835911259ca3ffb6774c5
1693]
1694[Sort all the PADict/PData/PRDict/PRepr stuff into their own modules
1695benl@ouroborus.net**20100909035147
1696 Ignore-this: 53436329773347cad793adbd83e90a9e
1697]
1698[Break out Repr and PADict stuff for vectorisation of ADTs to their own modules
1699benl@ouroborus.net**20100909025759
1700 Ignore-this: d2b7d2f79332eda13416449742f7cf1c
1701]
1702[Break out conversion functions to own module
1703benl@ouroborus.net**20100909023332
1704 Ignore-this: 613f2666b6ca7f2f8876fcc1e4a59593
1705]
1706[Comments and formatting only
1707benl@ouroborus.net**20100909022117
1708 Ignore-this: c8e30139d730669e5db44f0ef491a588
1709]
1710[Remove "-dynload wrapper"; fixes trac #4275
1711Ian Lynagh <igloo@earth.li>**20100908213251]
1712[Don't set visibility on Windows
1713Ian Lynagh <igloo@earth.li>**20100905122442
1714 With gcc 4.5.0-1, using visibility hidden gives:
1715     error: visibility attribute not supported in this configuration; ignored
1716]
1717[Fix warnings on Windows
1718Ian Lynagh <igloo@earth.li>**20100905111201
1719 Ignore-this: c5cce63bb1e0c7a27271bed78d25fbc5
1720]
1721[Fix gcc wrapper for new mingw binaries
1722Ian Lynagh <igloo@earth.li>**20100905001807
1723 Ignore-this: f6acc8c911055ffce632bac138ccc939
1724]
1725[Don't pass our gcc options to stage0 ghc's gcc; they may not be suitable
1726Ian Lynagh <igloo@earth.li>**20100905103129]
1727[Update intree-mingw creation
1728Ian Lynagh <igloo@earth.li>**20100904225559]
1729[Update commands to build in-tree mingw
1730Ian Lynagh <igloo@earth.li>**20100904215112]
1731[Break out hoisting utils into their own module
1732benl@ouroborus.net**20100908074102
1733 Ignore-this: e3ba4ed0252a2def1ed88a9e14c58fea
1734]
1735[Break out closure utils into own module
1736benl@ouroborus.net**20100908072040
1737 Ignore-this: 216172b046ff101cf31a1753667a5383
1738]
1739[Move VectVar module to Vectorise tree
1740benl@ouroborus.net**20100908065904
1741 Ignore-this: 1fba5333d29927dba4275381e1a7f315
1742]
1743[Break out vectorisation of expressions into own module
1744benl@ouroborus.net**20100908065128
1745 Ignore-this: 6a952b80fb024b5291f166477eb1976
1746]
1747[Break out TyCon classifier into own module
1748benl@ouroborus.net**20100908063111
1749 Ignore-this: da754c4ef6960b4e152ea1bf8c04ab6f
1750]
1751[Break out vectorisation of TyConDecls into own module
1752benl@ouroborus.net**20100908052004
1753 Ignore-this: c0ab4fb2a05ca396efe348b384db1ebf
1754]
1755[Break out type vectorisation into own module
1756benl@ouroborus.net**20100907110311
1757 Ignore-this: 67bd70a21d16468daf68dd3ec1ff7d62
1758]
1759[Tidy up the ArchHasAdjustorSupport definition
1760Ian Lynagh <igloo@earth.li>**20100904144234]
1761[ppc: switch handling of 'foreign import wrapper' (FIW) to libffi
1762Sergei Trofimovich <slyfox@community.haskell.org>**20100829192859
1763 Ignore-this: 662ea926681ebea0759e2a04a38e82b7
1764 
1765 Joseph Jezak reported darcs-2.4.4 SIGSEGV in interactive mode in ghc-6.12.3.
1766 So I've concluded ppc also has rotten native adjustor. I don't have hardware
1767 to verify the patch (ticket #3516 should help to test it), but I think it will
1768 help (as similar patch helped for ia64 and ppc64).
1769]
1770[Binary no longer has unusable UNPACK pragmas, so no need to turn of -Werror
1771Ian Lynagh <igloo@earth.li>**20100904133339]
1772[Don't haddock packages that we aren't going to install
1773Ian Lynagh <igloo@earth.li>**20100903231921]
1774[Give haddock per-package source entity paths; fixes #3810
1775Ian Lynagh <igloo@earth.li>**20100903221335]
1776[update for containers-0.4
1777Simon Marlow <marlowsd@gmail.com>**20100903105131
1778 Ignore-this: 556eac0e4926c9b8af6b66d7b069302c
1779]
1780[Fix for nursery resizing: the first block's back pointer should be NULL
1781Simon Marlow <marlowsd@gmail.com>**20100827102818
1782 Ignore-this: fb68938e3f1e291e3c9e5e8047f9dcd2
1783 I'm not sure if this could lead to a crash or not, but it upsets +RTS -DS
1784 Might be related to #4265
1785]
1786[Add some -no-user-package-conf flags
1787Ian Lynagh <igloo@earth.li>**20100902224726
1788 Stops user-installed packages breaking the build
1789]
1790[Fix warnings: Remove unused imports
1791Ian Lynagh <igloo@earth.li>**20100902204342]
1792[Finish breaking up VectBuiltIn and VectMonad, and add comments
1793benl@ouroborus.net**20100831100724
1794 Ignore-this: 65604f3d22d03433abc12f10be40050d
1795]
1796[Fix warnings
1797benl@ouroborus.net**20100830083746
1798 Ignore-this: 2a0e000985f694582a6f9a9261ff2739
1799]
1800[Break up vectoriser builtins module
1801benl@ouroborus.net**20100830070900
1802 Ignore-this: b86bd36a7875abdcf16763902ba2e637
1803]
1804[Move VectCore to Vectorise tree
1805benl@ouroborus.net**20100830053415
1806 Ignore-this: d5763ca6424285b39a58c7792f4a84a1
1807]
1808[Split out vectoriser environments into own module
1809benl@ouroborus.net**20100830050252
1810 Ignore-this: 5319111c74831394d2c29b9aedf5a766
1811]
1812[Comments and formatting to vectoriser, and split out varish stuff into own module
1813benl@ouroborus.net**20100830042722
1814 Ignore-this: d3f0c98ed8124dd0fca9a2ccea3e15fd
1815]
1816[Fix warnings
1817benl@ouroborus.net**20100830040340
1818 Ignore-this: d6cfad803ad4617e7fdaa62e4a895282
1819]
1820[Fix warning about multiply exported name
1821benl@ouroborus.net**20100830035243
1822 Ignore-this: 27ce2c1d22d9f99929d16a426343044e
1823]
1824[Vectorisation of method types
1825benl@ouroborus.net**20100830032941
1826 Ignore-this: 75614571d5c246a4906edb3b39ab1e0b
1827]
1828[Comments and formatting to vectoriser
1829benl@ouroborus.net**20100830032516
1830 Ignore-this: fe665b77108501c7960d858be3290761
1831]
1832[Implement -dsuppress-module-prefixes
1833benl@ouroborus.net**20100830032428
1834 Ignore-this: 2bb8bad9c60ef9044132bba118010687
1835]
1836[Whitespace only
1837benl@ouroborus.net**20100527045629
1838 Ignore-this: 4c160dfa77727e659817b6af9c84684a
1839]
1840[Disambiguate a function name
1841Ian Lynagh <igloo@earth.li>**20100828225827]
1842[users_guide.xml is now generated
1843Ian Lynagh <igloo@earth.li>**20100828225751]
1844[Pass more -pgm flags in the ghc wrapper; fixes #3863
1845Ian Lynagh <igloo@earth.li>**20100827204537]
1846[Add a new-IO manager release note
1847Ian Lynagh <igloo@earth.li>**20100827171616]
1848[Merge a duplicate release note
1849Ian Lynagh <igloo@earth.li>**20100827171511]
1850[Typo, spotted by Johan Tibell
1851Ian Lynagh <igloo@earth.li>**20100827153914]
1852[First pass at 6.14.1 release notes
1853Ian Lynagh <igloo@earth.li>**20100826220811]
1854[Fix typo
1855Ian Lynagh <igloo@earth.li>**20100824201330]
1856[FIX BUILD: add rts_isProfiled to the symbol table
1857Simon Marlow <marlowsd@gmail.com>**20100826094319
1858 Ignore-this: 9536ddb0a94721c8dec03a2a981cfa83
1859]
1860[Fix the DPH package cleaning/profiled mess even more (the build was broken)
1861Simon Marlow <marlowsd@gmail.com>**20100826084436
1862 Ignore-this: 49d7e4db2fb53b856c213c74c8969d82
1863]
1864[Remove the debugging memory allocator - valgrind does a better job
1865Simon Marlow <marlowsd@gmail.com>**20100824113537
1866 Ignore-this: a3731a83dc18b0fd0de49452e695a7ca
1867 
1868 I got fed up with the constant bogus output from the debugging memory
1869 allocator in RtsUtils.c.  One problem is that we allocate memory in
1870 constructors that then isn't tracked, because the debugging allocator
1871 hasn't been initialised yet.
1872 
1873 The bigger problem is that for a given piece of leaking memory it's
1874 impossible to find out where it was allocated; however Valgrind gives
1875 output like this:
1876 
1877 ==6967== 8 bytes in 1 blocks are still reachable in loss record 1 of 7
1878 ==6967==    at 0x4C284A8: malloc (vg_replace_malloc.c:236)
1879 ==6967==    by 0x4C28522: realloc (vg_replace_malloc.c:525)
1880 ==6967==    by 0x6745E9: stgReallocBytes (RtsUtils.c:213)
1881 ==6967==    by 0x68D812: setHeapAlloced (MBlock.c:91)
1882 ==6967==    by 0x68D8E2: markHeapAlloced (MBlock.c:116)
1883 ==6967==    by 0x68DB56: getMBlocks (MBlock.c:240)
1884 ==6967==    by 0x684F55: alloc_mega_group (BlockAlloc.c:305)
1885 ==6967==    by 0x6850C8: allocGroup (BlockAlloc.c:358)
1886 ==6967==    by 0x69484F: allocNursery (Storage.c:390)
1887 ==6967==    by 0x694ABD: allocNurseries (Storage.c:436)
1888 ==6967==    by 0x6944F2: initStorage (Storage.c:217)
1889 ==6967==    by 0x673E3C: hs_init (RtsStartup.c:160)
1890 
1891 which tells us exactly what the leaking bit of memory is.  So I don't
1892 think we need our own debugging allocator.
1893]
1894[free the entries in the thread label table on exit
1895Simon Marlow <marlowsd@gmail.com>**20100824112606
1896 Ignore-this: c9d577c06548cda80791e590e40d35b3
1897]
1898[Panic in the right way
1899simonpj@microsoft.com**20100825091614
1900 Ignore-this: e6ea4f6dfd2aea088828ea7a945ddd5f
1901]
1902[Fix the DPH/profiled make thing (again)
1903simonpj@microsoft.com**20100825091602
1904 Ignore-this: bc58fa48034ac40cf7be4170958ea29e
1905]
1906[Don't test for gcc flags before we've found gcc
1907Ian Lynagh <igloo@earth.li>**20100824131401]
1908[Change how the dblatex/lndir problem is worked around
1909Ian Lynagh <igloo@earth.li>**20100824130938
1910 Hack: dblatex normalises the name of the main input file using
1911 os.path.realpath, which means that if we're in a linked build tree,
1912 it find the real source files rather than the symlinks in our link
1913 tree. This is fine for the static sources, but it means it can't
1914 find the generated sources.
1915 
1916 We therefore also generate the main input file, so that it really
1917 is in the link tree, and thus dblatex can find everything.
1918]
1919[Clean the generated userguide sources
1920Ian Lynagh <igloo@earth.li>**20100824105827
1921 Ignore-this: 39b4f9702c688c053ed3273b20969597
1922]
1923[DPH should not even be built if GhcProfiled
1924simonpj@microsoft.com**20100823133439
1925 Ignore-this: 62acbf83de5b70ff6d27ab38ce9218ae
1926 
1927 It's not just when cleaning!
1928]
1929[The templateHaskellOk check should only run in stage2
1930simonpj@microsoft.com**20100823133353
1931 Ignore-this: f6dc9292923a1ca201953c5f58c0af3c
1932 
1933 Because rtsIsProfiled is only available in stage2
1934]
1935[Add a couple of missing tests for EAGER_BLACKHOLE
1936Simon Marlow <marlowsd@gmail.com>**20100823104654
1937 Ignore-this: 70c981b86370b0c7564b29b057650897
1938 This was leading to looping and excessive allocation, when the
1939 computation should have just blocked on the black hole. 
1940 
1941 Reported by Christian Höner zu Siederdissen <choener@tbi.univie.ac.at>
1942 on glasgow-haskell-users.
1943]
1944[Don't check for swept blocks in -DS.
1945Marco Túlio Gontijo e Silva <marcot@marcot.eti.br>**20100718225526
1946 Ignore-this: ad5dcf3c247bc19fbef5122c1142f3b2
1947 
1948 The checkHeap function assumed the allocated part of the block contained only
1949 alive objects and slops.  This was not true for blocks that are collected using
1950 mark sweep.  The code in this patch skip the test for this kind of blocks.
1951]
1952[Fix "darcs get"
1953Ian Lynagh <igloo@earth.li>**20100822183542]
1954[Add "darcs-all upstreampull"
1955Ian Lynagh <igloo@earth.li>**20100822163419
1956 This pulls from the upstream repos, for those packages which have
1957 upstreams
1958]
1959[Generate the bit in the user guide where we say what -fglasgow-exts does
1960Ian Lynagh <igloo@earth.li>**20100822155514
1961 Stops the docs going out of sync with the code.
1962]
1963[Factor out the packages file parsing in darcs-all
1964Ian Lynagh <igloo@earth.li>**20100822154813]
1965[Document --supported-extensions
1966Ian Lynagh <igloo@earth.li>**20100822134530]
1967[fix extraction of command stack of arguments of arrow "forms" (fixes #4236)
1968Ross Paterson <ross@soi.city.ac.uk>**20100822090022
1969 Ignore-this: a93db04ec4f20540642a19cdc67d1666
1970 
1971 The command stack was being extracted (by unscramble) with the outermost
1972 type first, contrary to the comment on the function.
1973]
1974[minor fix to comment
1975Ross Paterson <ross@soi.city.ac.uk>**20100822085838
1976 Ignore-this: 8d203ba2600eaf4cf21b043dcfa96cdc
1977]
1978[Add the RTS library path to the library search path
1979Ian Lynagh <igloo@earth.li>**20100820155523
1980 In case the RTS is being explicitly linked in. For #3807.
1981]
1982[Remove some duplication of C flags
1983Ian Lynagh <igloo@earth.li>**20100819233743
1984 We now use the CONF_CC_OPTS_STAGEn C flags in machdepCCOpts, rather than
1985 repeating them there.
1986]
1987[Set -fno-stack-protector in CONF_CC_OPTS_STAGE* rathre than extra-gcc-opts
1988Ian Lynagh <igloo@earth.li>**20100819233031
1989 The latter is only used when compiling .hc files, whereas we need it for
1990 .c files too.
1991]
1992[Give clearer errors for bad input in the packages file; suggested by pejo
1993Ian Lynagh <igloo@earth.li>**20100819232420]
1994[Set -march=i686 on OS X x86 in the configure variables
1995Ian Lynagh <igloo@earth.li>**20100819230939
1996 We used to set it only in machdepCCOpts, so this is more consistent
1997]
1998[Give each stage its own Config.hs
1999Ian Lynagh <igloo@earth.li>**20100819224709
2000 This also means the file is generated in a dist directory, not a
2001 source directory.
2002]
2003[Fix cleaning when GhcProfiled = YES
2004Ian Lynagh <igloo@earth.li>**20100819131346
2005 We need to include the DPH cleaning rules, even though we don't build DPH
2006 when GhcProfiled = YES.
2007]
2008[stgReallocBytes(DEBUG): don't fail when the ptr passed in is NULL
2009Simon Marlow <marlowsd@gmail.com>**20100817150836
2010 Ignore-this: 4b5063e65e01399f64a33f0d0555ff38
2011]
2012[Use make-command in rules/bindist.mk
2013Ian Lynagh <igloo@earth.li>**20100818191243
2014 Rather than it having its own specialised version
2015]
2016[Use make-command when installing packages
2017Ian Lynagh <igloo@earth.li>**20100818190600]
2018[Add _DATA_FILES to package-data.mk files
2019Ian Lynagh <igloo@earth.li>**20100818185801]
2020[Add a "make-command" utility Makefile function
2021Ian Lynagh <igloo@earth.li>**20100818183055]
2022[LLVM: Nicer format for lack of shared lib warning
2023David Terei <davidterei@gmail.com>**20100817145207
2024 Ignore-this: 753d45762601d87761614937a1bb6716
2025]
2026[fix FP_CHECK_ALIGNMENT for autoconf 2.66 (fixes #4252)
2027Ross Paterson <ross@soi.city.ac.uk>**20100816142442
2028 Ignore-this: cd784b8888d32b3b2cc2cc0969ec40f
2029 
2030 Recent versions of AS_LITERAL_IF don't like *'s.  Fix from
2031 
2032 http://blog.gmane.org/gmane.comp.sysutils.autoconf.general/month=20100701
2033]
2034[Refactor the command-line argument parsing (again)
2035simonpj@microsoft.com**20100816074453
2036 Ignore-this: 26dc9e37a88660a887a2e316ed7a9803
2037 
2038 This change allows the client of CmdLineParser a bit more flexibility,
2039 by giving him an arbitrary computation (not just a deprecation
2040 message) for each flag. 
2041 
2042 There are several clients, so there are lots of boilerplate changes.
2043 
2044 Immediate motivation: if RTS is not profiled, we want to make
2045 Template Haskell illegal.  That wasn't with the old setup.
2046]
2047[Add upstream repo to the packages file
2048Ian Lynagh <igloo@earth.li>**20100815154741]
2049[Make the "tag" column of the packages file always present
2050Ian Lynagh <igloo@earth.li>**20100815151657
2051 It makes the parsing simpler if we always have the same number of columns
2052]
2053[Disable object splitting on OSX; works around #4013
2054Ian Lynagh <igloo@earth.li>**20100815134759]
2055[Return memory to the OS; trac #698
2056Ian Lynagh <igloo@earth.li>**20100813170402]
2057[Reduce the xargs -s value we use on Windows
2058Ian Lynagh <igloo@earth.li>**20100812223721
2059 With 30000 I was getting:
2060     xargs: value for -s option should be < 28153
2061]
2062[LLVM: Enable shared lib support on Linux x64
2063David Terei <davidterei@gmail.com>**20100813191534
2064 Ignore-this: 642ed37af38e5f17d419bf4f09332671
2065]
2066[Re-do the arity calculation mechanism again (fix Trac #3959)
2067simonpj@microsoft.com**20100813161151
2068 Ignore-this: d4a2aa48150b503b20c25351a79decfb
2069 
2070 After rumination, yet again, on the subject of arity calculation,
2071 I have redone what an ArityType is (it's purely internal to the
2072 CoreArity module), and documented it better.  The result should
2073 fix #3959, and I hope the related #3961, #3983.
2074 
2075 There is lots of new documentation: in particular
2076  * Note [ArityType] 
2077    describes the new datatype for arity info
2078 
2079  * Note [State hack and bottoming functions]
2080    says how bottoming functions are dealt with, particularly
2081    covering catch# and Trac #3959
2082 
2083 I also found I had to be careful not to eta-expand single-method
2084 class constructors; see Note [Newtype classes and eta expansion].
2085 I think this part could be done better, but it works ok.
2086]
2087[Comments only
2088simonpj@microsoft.com**20100813161019
2089 Ignore-this: baf68300d8bc630bf0b7ab27647b33a0
2090]
2091[Modify FloatOut to fix Trac #4237
2092simonpj@microsoft.com**20100813163120
2093 Ignore-this: ffc8d00d4b7f0a8a785fcef312900413
2094 
2095 The problem was that a strict binding was getting floated
2096 out into a letrec. This only happened when profiling was
2097 on.  It exposed a fragility in the floating strategy.  This
2098 patch makes it more robust.  See
2099       Note [Avoiding unnecessary floating]
2100]
2101[Fix egregious bug in SetLevels.notWorthFloating
2102simonpj@microsoft.com**20100813161429
2103 Ignore-this: d22865f48d417e6a6b732de3dfba378f
2104 
2105 This bug just led to stupid code, which would
2106 later be optimised away, but better not to generate
2107 stupid code in the first place.
2108]
2109[Delete GhcLibProfiled
2110simonpj@microsoft.com**20100813140152
2111 Ignore-this: 2e1a3f677308be726bd022f45e2fd856
2112 
2113 Simon M and I looked at this, and we think GhcLibProfiled is
2114 (a) not needed (b) confusing.
2115 
2116 Ian should review.
2117 
2118 Really, if GhcProfiled is on we should also
2119 check that 'p' is in the GhcLibWays
2120]
2121[Do not build DPH when GhcProfiled (fixes #4172)
2122simonpj@microsoft.com**20100813140021
2123 Ignore-this: 9e20181643b456e841f845ae0cab0a9a
2124 
2125 Reason: DPH uses Template Haskell and TH doesn't work
2126 in a profiled compiler
2127]
2128[Fix Trac #4220
2129simonpj@microsoft.com**20100812131319
2130 Ignore-this: 33141cfd81627592150a9e5973411ff8
2131 
2132 For deriving Functor, Foldable, Traversable with empty
2133 data cons I just generate a null equation
2134    f _ = error "urk"
2135 
2136 There are probably more lurking (eg Enum) but this will do for now.
2137]
2138[Improve the Specialiser, fixing Trac #4203
2139simonpj@microsoft.com**20100812131133
2140 Ignore-this: 482afbf75165e24a80527a6e52080c07
2141 
2142 Simply fixing #4203 is a tiny fix: in case alterantives we should
2143 do dumpUDs *including* the case binder. 
2144 
2145 But I realised that we can do better and wasted far too much time
2146 implementing the idea.  It's described in
2147     Note [Floating dictionaries out of cases]
2148]
2149[Comments
2150simonpj@microsoft.com**20100812101456
2151 Ignore-this: 6362fe887d25688c12ef2c3cf5554ce4
2152]
2153[Comments only
2154simonpj@microsoft.com**20100812101439
2155 Ignore-this: 7ed2f5fc08811cbe9958c2309a9ed1fa
2156]
2157[Fix bug in linting of shadowed case-alternative binders
2158simonpj@microsoft.com**20100812101413
2159 Ignore-this: 9212a5e2c03421749f5935b3944ecf53
2160]
2161[Comments and spacing only
2162simonpj@microsoft.com**20100812101347
2163 Ignore-this: ed59a7dae7decb24470709dc1c118dbb
2164]
2165[Add more info to more parse error messages (#3811)
2166Ian Lynagh <igloo@earth.li>**20100809233108]
2167[Run finalizers *after* updating the stable pointer table (#4221)
2168Simon Marlow <marlowsd@gmail.com>**20100810133739
2169 Ignore-this: b0462f80dd64eac71e599d8a9f6dd665
2170 Silly bug really, we were running the C finalizers while the StablePtr
2171 table was still in a partially-updated state during GC, but finalizers
2172 are allowed to call freeStablePtr() (via hs_free_fun_ptr(), for
2173 example), and chaos ensues.
2174]
2175[Do the dependency-omitting for 'make 1' in a slightly different way
2176Simon Marlow <marlowsd@gmail.com>**20100810093446
2177 Ignore-this: af15edd3a1492cbd93111316b57e02e4
2178 
2179 I encountered a couple of things that broke after Ian's previous
2180 patch: one was my nightly build scripts that use 'make stage=2' at the
2181 top level, and the other is 'make fast' in libraries/base, which uses
2182 'stage=0' to avoid building any compilers.
2183 
2184 So my version of this patch is more direct: it just turns off the
2185 appropriate dependencies using a variable set by 'make 1', 'make 2',
2186 etc.
2187]
2188[Integrate new I/O manager, with signal support
2189Johan Tibell <johan.tibell@gmail.com>**20100724102355
2190 Ignore-this: eb092857a2a1b0ca966649caffe7ac2b
2191]
2192[Add DoAndIfThenElse support
2193Ian Lynagh <igloo@earth.li>**20100808194625]
2194[Make another parse error more informative
2195Ian Lynagh <igloo@earth.li>**20100808193340]
2196[Make a parse error say what it is failing to parse; part of #3811
2197Ian Lynagh <igloo@earth.li>**20100808155732]
2198[Send ghc progress output to stdout; fixes #3636
2199Ian Lynagh <igloo@earth.li>**20100808142542]
2200[Fix the HsColour test in the build system
2201Ian Lynagh <igloo@earth.li>**20100805155319
2202 Ignore-this: ba2752b04801a253e891b31e1914485d
2203]
2204[Fix the -lm configure test; fixes #4155
2205Ian Lynagh <igloo@earth.li>**20100805142508
2206 Ignore-this: 358b8b1074d2d22fb8d362ea6d8b80d6
2207]
2208[Don't restrict filenames in line pragmas to printable characters; fixes #4207
2209Ian Lynagh <igloo@earth.li>**20100805135011
2210 Ignore-this: e3d32312127165e40e6eaa919193d60b
2211 "printable" is ASCII-only, whereas in other locales we can get things like
2212 # 1 "<línea-de-orden>"
2213]
2214[Ensure extension flags are flattened in the Cmm phase
2215Ian Lynagh <igloo@earth.li>**20100805133614
2216 If we start with a .cmmcpp file then they don't get flattened in
2217 the CmmCpp phase, as we don't run that phase.
2218]
2219[Add "cmmcpp" as a Haskellish source suffix
2220Ian Lynagh <igloo@earth.li>**20100805132555]
2221[On amd64/OSX we don't need to be given memory in the first 31bits
2222Ian Lynagh <igloo@earth.li>**20100805120600
2223 Ignore-this: 42eb64e25ad4b66ae022884305e0297b
2224 as PIC is always on
2225]
2226[NCG: Don't worry about trying to re-freeze missing coalescences
2227benl@ouroborus.net**20100702053319
2228 Ignore-this: ea05cbee19b6c5c410db41292cbb64b0
2229]
2230[Make -rtsopts more flexible
2231Ian Lynagh <igloo@earth.li>**20100805011137
2232 The default is a new "some" state, which allows only known-safe flags
2233 that we want on by default. Currently this is only "--info".
2234]
2235[Test for (fd < 0) before trying to FD_SET it
2236Ian Lynagh <igloo@earth.li>**20100804173636]
2237[Remove "On by default" comments in DynFlags
2238Ian Lynagh <igloo@earth.li>**20100802110803
2239 Ignore-this: 2a51055277b5ce9f0e98e1438b212027
2240 These make less sense now we support multiple languges. The
2241 "languageExtensions" function gives the defaults.
2242]
2243[Fix build: Add newline to end of ghc-pkg/Main.hs
2244Ian Lynagh <igloo@earth.li>**20100801183206]
2245[Add a versions haddock binary for Windows
2246Ian Lynagh <igloo@earth.li>**20100801180917]
2247[ghc-pkg: don't fail, if a file is already removed
2248ich@christoph-bauer.net**20100725162606
2249 Ignore-this: 5501d6812c31f4da525c7fb24f6dcaed
2250]
2251[Remove push-all from file list in boot script (push-all no longer exists)
2252Ian Lynagh <igloo@earth.li>**20100801121841
2253 Ignore-this: eec130f06610d8728a57626682860a1a
2254]
2255[Add error checking to boot-pkgs script
2256Ian Lynagh <igloo@earth.li>**20100801121432
2257 Ignore-this: 8afd6663db443c774bad45d75bbfe950
2258]
2259[Add more error checking to the boot script
2260Ian Lynagh <igloo@earth.li>**20100801113628]
2261[Remove libHSrtsmain.a before creating it
2262Ian Lynagh <igloo@earth.li>**20100801005432
2263 Otherwise it isn't updated properly if rts/Main.c changes
2264]
2265[Expose the functions haddock needs even when haddock is disabled; #3558
2266Ian Lynagh <igloo@earth.li>**20100731115506]
2267[Always haddock by default
2268Ian Lynagh <igloo@earth.li>**20100730235001
2269 Revert this patch:
2270     Matthias Kilian <kili@outback.escape.de>**20090920181319
2271     Don't build haddock if HADDOC_DOCS = NO, and disable HADDOC_DOCS
2272         if GhcWithInterpreter = NO
2273     Haddock uses TcRnDriver.tcRnGetInfo, which is only available if
2274     GHCI is built. Set HADDOC_DOCS to NO if GhcWithInterpreter is NO,
2275     and disable the haddock build if HADDOC_DOCS = NO.
2276]
2277[Add a debugTrace for the phases that we run
2278Ian Lynagh <igloo@earth.li>**20100729201503]
2279[* Add StringPrimL as a constructor for Template Haskell (Trac #4168)
2280simonpj@microsoft.com**20100730131922
2281 Ignore-this: 520d0a0a14b499b299e8b2be8d148ff0
2282   
2283 There are already constructors for IntPrim, FloatPrim etc,
2284 so this makes it more uniform.
2285   
2286 There's a corresponding patch for the TH library
2287]
2288[Add thread affinity support for FreeBSD
2289Gabor Pali <pgj@FreeBSD.org>**20100720001409
2290 Ignore-this: 6c117b8219bfb45445089e82ee470410
2291 - Implement missing functions for setting thread affinity and getting real
2292   number of processors.
2293 - It is available starting from 7.1-RELEASE, which includes a native support
2294   for managing CPU sets.
2295 - Add __BSD_VISIBLE, since it is required for certain types to be visible in
2296   addition to POSIX & C99.
2297]
2298[Disable symbol visibility pragmas for FreeBSD
2299Ian Lynagh <igloo@earth.li>**20100729012507
2300 Do not use GCC pragmas for controlling visibility, because it causes
2301 "undefined reference" errors at link-time.  The true reasons are
2302 unknown, however FreeBSD 8.x includes GCC 4.2.1 in the base system,
2303 which might be buggy.
2304]
2305[Fix numeric escape sequences parsing
2306Anton Nikishaev <anton.nik@gmail.com>**20100721194208
2307 Ignore-this: dd71935b1866b5624f7975c45ad519a1
2308 This fixes trac bug #1344
2309]
2310[Explicitly give the right path to perl when making the OS X installer; #4183
2311Ian Lynagh <igloo@earth.li>**20100728163030]
2312[Set -fno-stack-protector in extra-gcc-opts; fixes #4206
2313Ian Lynagh <igloo@earth.li>**20100728161957
2314 We were using it only when building the RTS, and only on certain
2315 platforms. However, some versions of OS X need the flag, while others
2316 don't support it, so we now test for it properly.
2317]
2318[Make PersistentLinkerState fields strict; fixes #4208
2319Ian Lynagh <igloo@earth.li>**20100727201911
2320 Ignore-this: fc5cfba48cd16624f6bb15a7a03a3b4
2321 We modify fields a lot, so we retain the old value if they aren't forced.
2322]
2323[Don't rebuild dependency files unnecessarily when doing "make 1" etc
2324Ian Lynagh <igloo@earth.li>**20100726211512
2325 Ignore-this: d91a729e5113aa964cc67768e92e57ef
2326]
2327[LLVM: If user specifies optlo, don't use '-O' levels
2328David Terei <davidterei@gmail.com>**20100726105650
2329 Ignore-this: e05e103b09d1de937540ffad7983f88e
2330]
2331[Flatten flags for ghci's :show
2332Ian Lynagh <igloo@earth.li>**20100725135320]
2333[Add support for Haskell98 and Haskell2010 "languages"
2334Ian Lynagh <igloo@earth.li>**20100724230121]
2335[Rename "language" varibles etc to "extension", and add --supported-extensions
2336Ian Lynagh <igloo@earth.li>**20100724223624]
2337[Separate language option handling into 2 phases
2338Ian Lynagh <igloo@earth.li>**20100724212013
2339 We now first collect the option instructions (from the commandline,
2340 from pragmas in source files, etc), and then later flatten them into
2341 the list of enabled options. This will enable us to use different
2342 standards (H98, H2010, etc) as a base upon which to apply the
2343 instructions, when we don't know what the base will be when we start
2344 collecting instructions.
2345]
2346[Separate the language flags from the other DynFlag's
2347Ian Lynagh <igloo@earth.li>**20100724133103
2348 Ignore-this: 47bb8d42e621e47016b66c7472bd6cb5
2349]
2350[Set stage-specific CC/LD opts in the bindist configure.ac
2351Ian Lynagh <igloo@earth.li>**20100724113748
2352 Ignore-this: f06926d185a35ddd05490ca4a257e992
2353]
2354[Use different CC/LD options for different stages
2355Ian Lynagh <igloo@earth.li>**20100723223059]
2356[Add some error belchs to the linker, when we find bad magic numbers
2357Ian Lynagh <igloo@earth.li>**20100723200822]
2358[Add some more linker debugging prints
2359Ian Lynagh <igloo@earth.li>**20100723180237]
2360[When (un)loading an object fails, say which object in teh panic
2361Ian Lynagh <igloo@earth.li>**20100723162649]
2362[Add a release note: GHCi import syntax
2363Ian Lynagh <igloo@earth.li>**20100721193647]
2364[Deprecate NewQualifiedOperators extension (rejected by H')
2365Ian Lynagh <igloo@earth.li>**20100719150909
2366 Ignore-this: 6e7e3bedc5360c5975f73497b3e6cba5
2367]
2368[LLVM: Allow optlc and optlo to override default params for these systools
2369David Terei <davidterei@gmail.com>**20100722181631
2370 Ignore-this: e60af7941996f7170fb3bfb02a002082
2371]
2372[LLVM: Code and speed improvement to dominateAllocs pass.
2373David Terei <davidterei@gmail.com>**20100721143654
2374 Ignore-this: 9fb7058c8a2afc005521298c7b8d0036
2375]
2376[Comments only
2377simonpj@microsoft.com**20100721144257
2378 Ignore-this: b3091ddcd1df271eb85fe90978ab7adc
2379]
2380[Fix inlining for default methods
2381simonpj@microsoft.com**20100721144248
2382 Ignore-this: 61a11a8f741f775000c6318aae4b3191
2383 
2384 This was discombobulated by a patch a week ago;
2385 now fixed, quite straightforwardly.  See
2386 Note [Default methods and instances]
2387]
2388[Allow reification of existentials and GADTs
2389simonpj@microsoft.com**20100721090437
2390 Ignore-this: 20f1ccd336cc25aff4d4d67a9ac2211a
2391 
2392 It turns out that TH.Syntax is rich enough to express even GADTs,
2393 provided we express them in equality-predicate form.  So for
2394 example
2395 
2396   data T a where
2397      MkT1 :: a -> T [a]
2398      MkT2 :: T Int
2399 
2400 will appear in TH syntax like this
2401 
2402   data T a = forall b. (a ~ [b]) => MkT1 b
2403            | (a ~ Int) => MkT2
2404 
2405 While I was at it I also improved the reification of types,
2406 so that we use TH.TupleT and TH.ListT when we can.
2407]
2408[add numSparks# primop (#4167)
2409Simon Marlow <marlowsd@gmail.com>**20100720153746
2410 Ignore-this: f3f925e7de28f3f895213aefbdbe0b0f
2411]
2412[LLVM: Decrease max opt level used under OSX to avoid bug
2413David Terei <davidterei@gmail.com>**20100720160938
2414 Ignore-this: 34b0b3550f00b27b00ad92f8232745e5
2415 
2416 Currently, many programs compiled with GHC at -O2 and LLVM
2417 set to -O3 will segfault (only under OSX). Until this issue
2418 is fixed I have simply 'solved' the segfault by lowering
2419 the max opt level for LLVM used to -O2 under OSX.
2420 
2421 All these recent changes to OSX should mean its finally as
2422 stable as Linux and Windows.
2423]
2424[LLVM: Fix OSX to work again with TNTC disabled.
2425David Terei <davidterei@gmail.com>**20100720160845
2426 Ignore-this: 8dc98139cfa536b2a64aa364d040b581
2427]
2428[LLVM: Fix printing of local vars so LLVM works with -fnew-codegen
2429David Terei <davidterei@gmail.com>**20100720160302
2430 Ignore-this: d883c433dfaed67921a8c5360e1f9f6a
2431]
2432[Use a separate mutex to protect all_tasks, avoiding a lock-order-reversal
2433Simon Marlow <marlowsd@gmail.com>**20100716150832
2434 Ignore-this: ffbdb4ee502e0f724d57acb9bfbe9d92
2435 In GHC 6.12.x I found a rare deadlock caused by this
2436 lock-order-reversal:
2437 
2438 AQ cap->lock
2439   startWorkerTask
2440     newTask
2441       AQ sched_mutex
2442 
2443 scheduleCheckBlackHoles
2444   AQ sched_mutex
2445    unblockOne_
2446     wakeupThreadOnCapabilty
2447       AQ cap->lock
2448 
2449 so sched_mutex and cap->lock are taken in a different order in two
2450 places.
2451 
2452 This doesn't happen in the HEAD because we don't have
2453 scheduleCheckBlackHoles, but I thought it would be prudent to make
2454 this less likely to happen in the future by using a different mutex in
2455 newTask.  We can clearly see that the all_tasks mutex cannot be
2456 involved in a deadlock, becasue we never call anything else while
2457 holding it.
2458]
2459['make fast' in a package does not build any compilers
2460Simon Marlow <marlowsd@gmail.com>**20100715125904
2461 Ignore-this: f27e70faf3944831dad16e89a4e273da
2462]
2463[LLVM: Fix up botched last commit
2464David Terei <davidterei@gmail.com>**20100719104823
2465 Ignore-this: a32e0f6a38cb9e02527eb8ca69b3eb59
2466]
2467[LLVM: Fix warning introduce in last commit.
2468David Terei <davidterei@gmail.com>**20100719103411
2469 Ignore-this: e9c92a9402aff50d60ab26e6ad441bfc
2470]
2471[LLVM: Use mangler to fix up stack alignment issues on OSX
2472David Terei <davidterei@gmail.com>**20100718231000
2473 Ignore-this: 9f6e8cb855269cb3a5ac1a23480d0e71
2474]
2475[Fix #4195 (isGadtSyntaxTyCon returns opposite result)
2476illissius@gmail.com**20100715134134
2477 Ignore-this: a90403f893030432b5c15d743647f350
2478]
2479[Update to time 1.2.0.3
2480Ian Lynagh <igloo@earth.li>**20100717181810
2481 Ignore-this: 1ccb4801a73f399e6718ce556543ede1
2482]
2483[Reorder RTS --info output
2484Ian Lynagh <igloo@earth.li>**20100717162356]
2485[Fix unreg prof build: Define CCS_SYSTEM in stg/MiscClosures.h
2486Ian Lynagh <igloo@earth.li>**20100717142832
2487 Ignore-this: 9675f3f51b6dac40483155344e7f45b6
2488]
2489[Make mkDerivedConstants as a stage 1 program
2490Ian Lynagh <igloo@earth.li>**20100717000827
2491 Ignore-this: 5357403461b209b8606f1d33defb51cf
2492 This way it gets the defines for the right platform when cross-compiling
2493]
2494[Don't generate Haskell dependencies if we don't have any Haskell sources
2495Ian Lynagh <igloo@earth.li>**20100717000800
2496 Ignore-this: 454abd0358f535b7e789327125c9206c
2497]
2498[Link programs that have no Haskell objects with gcc rather than ghc
2499Ian Lynagh <igloo@earth.li>**20100716235303
2500 Ignore-this: f65588b69675edea616cc434e769b0a4
2501]
2502[Use gcc to build C programs for stages >= 1
2503Ian Lynagh <igloo@earth.li>**20100716223703
2504 Ignore-this: 9f843a4e17285cda582117504707f9e7
2505]
2506[Add platform info to "ghc --info" output
2507Ian Lynagh <igloo@earth.li>**20100716141953]
2508[Tidy up Config.hs generation
2509Ian Lynagh <igloo@earth.li>**20100716140630]
2510[Fix HC porting test in makefiles
2511Ian Lynagh <igloo@earth.li>**20100716010808
2512 Ignore-this: 6052c1dd022a6108ab2236a299ee1d84
2513 Now that we are trying to support cross compilation, we can't use
2514     "$(TARGETPLATFORM)" != "$(HOSTPLATFORM)"
2515 as a test for HC-porting.
2516]
2517[Change a BUILD var to a HOST var
2518Ian Lynagh <igloo@earth.li>**20100716002558]
2519[Remove an unnecessary #include
2520Ian Lynagh <igloo@earth.li>**20100715233930
2521 Ignore-this: dcede249de6be7e3c9305c9279c2ca07
2522]
2523[Split up some make commands, so that errors aren't overlooked
2524Ian Lynagh <igloo@earth.li>**20100715152237
2525 Ignore-this: fb69b0a25d9ca71dae5e75d38db675cd
2526 When we ask make to run "a | b", if a fails then the pipeline might
2527 still exit successfuly.
2528]
2529[Remove an unnecessary #include
2530Ian Lynagh <igloo@earth.li>**20100715143000
2531 Ignore-this: 4e098cac5dda2dd595ca0a0f5121853c
2532]
2533[Simplify some more CPP __GLASGOW_HASKELL__ tests
2534Ian Lynagh <igloo@earth.li>**20100715142500]
2535[Remove some code only used with GHC 6.11.*
2536Ian Lynagh <igloo@earth.li>**20100715141720]
2537[__GLASGOW_HASKELL__ >= 609 is now always true
2538Ian Lynagh <igloo@earth.li>**20100715141544]
2539[Correct the values in ghc_boot_platform.h
2540Ian Lynagh <igloo@earth.li>**20100714223717
2541 Ignore-this: 4c99116f7ac73fadbd6d16807f57a693
2542]
2543[Change some TARGET checks to HOST checks
2544Ian Lynagh <igloo@earth.li>**20100714184715]
2545[LLVM: Add inline assembly to binding.
2546David Terei <davidterei@gmail.com>**20100714152530
2547 Ignore-this: 72a7b5460c128ed511e8901e5889fe2b
2548]
2549[LLVM: Fix mistype in last commit which broke TNTC under win/linux.
2550David Terei <davidterei@gmail.com>**20100714153339
2551 Ignore-this: 302d7957e3dded80368ebade5312ab35
2552]
2553[Remove unnecessary #include
2554Ian Lynagh <igloo@earth.li>**20100713153704
2555 Ignore-this: c37d3127b1dc68f59270c07173994c28
2556]
2557[Change some TARGET tests to HOST tests in the RTS
2558Ian Lynagh <igloo@earth.li>**20100713141034
2559 Which was being used seemed to be random
2560]
2561[LLVM: Add in new LLVM mangler for implementing TNTC on OSX
2562David Terei <davidterei@gmail.com>**20100713183243
2563 Ignore-this: 394fb74d7f9657d8b454bd0148d24bf7
2564]
2565[Refactor where an error message is generated
2566simonpj@microsoft.com**20100713115733
2567 Ignore-this: f94467856238586fcbbe48537141cf78
2568]
2569[Comments only
2570simonpj@microsoft.com**20100713115703
2571 Ignore-this: 5815442c4e69b9ec331b34242a596253
2572]
2573[Comments on data type families
2574simonpj@microsoft.com**20100713115640
2575 Ignore-this: 90a333bb7f7d64a49fb7dd180d893f6b
2576]
2577[Fix Trac #T4136: take care with nullary symbol constructors
2578simonpj@microsoft.com**20100707135945
2579 Ignore-this: 2a717a24fefcd593ea41c23dad351db0
2580 
2581 When a nullary constructor is a symbol eg (:=:) we need
2582 to take care.  Annoying.
2583]
2584[Fix Trac #4127 (and hence #4173)
2585simonpj@microsoft.com**20100707123125
2586 Ignore-this: 98bb6d0f7182b59f8c93596c61f9785d
2587 
2588 The change involves a little refactoring, so that the default
2589 method Ids are brought into scope earlier, before the value
2590 declarations are compiled.  (Since a value decl may contain
2591 an instance decl in a quote.)
2592 
2593 See Note [Default method Ids and Template Haskell] in
2594 TcTyClsDcls.
2595]
2596[Fix second bug in Trac #4127
2597simonpj@microsoft.com**20100701140124
2598 Ignore-this: c8d1cc27364fe9ee5a52acb1ecb5cdd9
2599 
2600 This bug concerned the awkward shadowing we do for
2601 Template Haskell declaration brackets.  Lots of
2602 comments in
2603 
2604   Note [Top-level Names in Template Haskell decl quotes]
2605]
2606[ia64: switch handling of 'foreign import wrapper' (FIW) to libffi
2607Sergei Trofimovich <slyfox@community.haskell.org>**20100709213922
2608 Ignore-this: fd07687e0089aebabf62de85d2be693
2609 
2610 I tried to build darcs-2.4.4 with ghc-6.12.3 and got coredumps when darcs is used
2611 in interactive mode. I tried test from ticket #3516 and found out FIW code is broken.
2612 Instead of fixing it I just switched to libffi. Result built successfully, passed
2613 'foreign import wrapper' test from ticket #3516 and builds working darcs.
2614]
2615[* storage manager: preserve upper address bits on 64bit machines (thanks to zygoloid)
2616Sergei Trofimovich <slyfox@community.haskell.org>**20100709115917
2617 Ignore-this: 9f1958a19992091ddc2761c389ade940
2618 
2619 Patch does not touch amd64 as it's address lengts is 48 bits at most, so amd64 is unaffected.
2620 
2621 the issue: during ia64 ghc bootstrap (both 6.10.4 and 6.12.3) I
2622 got the failure on stage2 phase:
2623     "inplace/bin/ghc-stage2"   -H32m -O -H64m -O0 -w ...
2624     ghc-stage2: internal error: evacuate: strange closure type 15
2625         (GHC version 6.12.3 for ia64_unknown_linux)
2626         Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
2627     make[1]: *** [libraries/dph/dph-base/dist-install/build/Data/Array/Parallel/Base/Hyperstrict.o] Aborted
2628 
2629 gdb backtrace (break on 'barf'):
2630 Breakpoint 1 at 0x400000000469ec31: file rts/RtsMessages.c, line 39.
2631 (gdb) run -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
2632 Starting program: /var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/lib/ghc-stage2 -B/var/tmp/portage/dev-lang/ghc-6.12.3/work/ghc-6.12.3/inplace/bin --info
2633 [Thread debugging using libthread_db enabled]
2634 
2635 Breakpoint 1, barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
2636 39        va_start(ap,s);
2637 (gdb) bt
2638 #0  barf (s=0x40000000047915b0 "evacuate: strange closure type %d") at rts/RtsMessages.c:39
2639 #1  0x400000000474a1e0 in evacuate (p=0x6000000000147958) at rts/sm/Evac.c:756
2640 #2  0x40000000046d68c0 in scavenge_srt (srt=0x6000000000147958, srt_bitmap=7) at rts/sm/Scav.c:348
2641 ...
2642 
2643 > 16:52:53 < zygoloid> slyfox: i'm no ghc expert but it looks like HEAP_ALLOCED_GC(q)
2644 >                      is returning true for a FUN_STATIC closure
2645 > 17:18:43 < zygoloid> try: p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
2646 > 17:19:12 < slyfox> (gdb) p HEAP_ALLOCED_miss((unsigned long)(*p) >> 20, *p)
2647 > 17:19:12 < slyfox> $1 = 0
2648 > 17:19:40 < zygoloid> i /think/ that means the mblock_cache is broken
2649 > 17:22:45 < zygoloid> i can't help further. however i am suspicious that you seem to have pointers with similar-looking low 33
2650 >                      bits and different high 4 bits, and it looks like such pointers get put into the same bucket in
2651 >                      mblock_cache.
2652 ...
2653 > 17:36:16 < zygoloid> slyfox: try changing the definition of MbcCacheLine to StgWord64, see if that helps
2654 > 17:36:31 < zygoloid> that's in includes/rts/storage/MBlock.h
2655 And it helped!
2656]
2657[Fixing link failure of compiler on ia64 ('-Wl,' prefixed value passed directly to ld)
2658Sergei Trofimovich <slyfox@community.haskell.org>**20100708180943
2659 Ignore-this: ced99785e1f870ee97e5bec658e2504f
2660 
2661     /usr/bin/ld -Wl,--relax -r -o dist-stage1/build/HSghc-6.10.4.o \
2662                                   dist-stage1/build/BasicTypes.o dist-stage1/build/DataCon.o ...
2663     /usr/bin/ld: unrecognized option '-Wl,--relax'
2664 
2665 If we just drop '-Wl,' part it will not help as '-r' and '--relax' are incompatible.
2666 
2667 Looks like '-Wl,--relax' was skipped by earlier binutils' ld as unknown option.
2668 Removing ia64 specific path.
2669]
2670[LLVM: Allow getelementptr to use LlvmVar for indexes.
2671David Terei <davidterei@gmail.com>**20100712152529
2672 Ignore-this: 9e158d9b89a86bca8abf11d082328278
2673]
2674[Move all the warning workarounds to one place
2675Ian Lynagh <igloo@earth.li>**20100710161723]
2676[xhtml is now warning-free
2677Ian Lynagh <igloo@earth.li>**20100710144635]
2678[Move a bit of build system code
2679Ian Lynagh <igloo@earth.li>**20100709224534]
2680[adapt to the new async exceptions API
2681Simon Marlow <marlowsd@gmail.com>**20100709125238
2682 Ignore-this: 55d845e40b9daed3575c1479d8dda1d5
2683]
2684[quiet some new spewage
2685Simon Marlow <marlowsd@gmail.com>**20100709091521
2686 Ignore-this: de7f91976bbc9789e6fd7091f05c25c0
2687]
2688[New asynchronous exception control API (ghc parts)
2689Simon Marlow <marlowsd@gmail.com>**20100708144851
2690 Ignore-this: 56320c5fc61ae3602d586609387aae22
2691 
2692 As discussed on the libraries/haskell-cafe mailing lists
2693   http://www.haskell.org/pipermail/libraries/2010-April/013420.html
2694 
2695 This is a replacement for block/unblock in the asychronous exceptions
2696 API to fix a problem whereby a function could unblock asynchronous
2697 exceptions even if called within a blocked context.
2698 
2699 The new terminology is "mask" rather than "block" (to avoid confusion
2700 due to overloaded meanings of the latter).
2701 
2702 In GHC, we changed the names of some primops:
2703 
2704   blockAsyncExceptions#   -> maskAsyncExceptions#
2705   unblockAsyncExceptions# -> unmaskAsyncExceptions#
2706   asyncExceptionsBlocked# -> getMaskingState#
2707 
2708 and added one new primop:
2709 
2710   maskUninterruptible#
2711 
2712 See the accompanying patch to libraries/base for the API changes.
2713]
2714[remove outdated comment
2715Simon Marlow <marlowsd@gmail.com>**20100708100840
2716 Ignore-this: afb2e9f6fe1f1acda51b0cbdf2637176
2717]
2718[remove 'mode: xml' emacs settings (#2208)
2719Simon Marlow <marlowsd@gmail.com>**20100708100817
2720 Ignore-this: 3a8d997fb90e01ca88dc47fb95feeba0
2721]
2722[typo in comment
2723Simon Marlow <marlowsd@gmail.com>**20100616111359
2724 Ignore-this: d3ef9288d6d6b9ab3bacbe09e0d9801c
2725]
2726[Win32 getProcessElapsedTime: use a higher-resolution time source
2727Simon Marlow <marlowsd@gmail.com>**20100708093223
2728 Ignore-this: 821989d4ff7ff2bff40cee71a881521c
2729 QueryPerformanceCounter() on Windows gives much better resolution than
2730 GetSystemTimeAsFileTime().
2731]
2732[alpha: switch handling of 'foreign import wrapper' (FIW) to libffi
2733Sergei Trofimovich <slyfox@community.haskell.org>**20100708065318
2734 Ignore-this: ddee15876737a6aa7f6dabc8ff79ce0d
2735 
2736 I tried to build ghc-6.12.3 and found out FIW part of code
2737 does not compile anymore. It uses absent functions under #ifdef.
2738 Instead of fixing it I just switched to libffi. Result built successfully
2739 and passed 'foreign import wrapper' test I wrote for trac ticket #3516.
2740 
2741 I didn't try to build -HEAD yet, but this patch only removes code, so
2742 it should not make -HEAD worse.
2743]
2744[Reorder the CPP flags so -optP can override the platform defines
2745Ian Lynagh <igloo@earth.li>**20100708203523]
2746[Add docs for DatatypeContexts extension
2747Ian Lynagh <igloo@earth.li>**20100707230907
2748 Ignore-this: 8158f03b35a2d7442a75fe85d6f1b1c7
2749]
2750[Make datatype contexts an extension (on by default) (DatatypeContexts)
2751Ian Lynagh <igloo@earth.li>**20100707212529
2752 Ignore-this: 6885ff510a0060610eeeba65122caef5
2753]
2754[LLVM: Fix various typos in comments
2755David Terei <davidterei@gmail.com>**20100707220448
2756 Ignore-this: 1ba3e722f150492da2f9d485c5795e80
2757]
2758[Handle haddock headers when looking for LANGUAGE/OPTIONS_GHC pragmas
2759Ian Lynagh <igloo@earth.li>**20100707120423
2760 Ignore-this: a75aa67690284a6cee3e62c943d4fd01
2761]
2762[Make pragState call mkPState, rather than duplicating everything
2763Ian Lynagh <igloo@earth.li>**20100706173007
2764 Ignore-this: 61fe24b99dbe7a42efff1a9dd703a75c
2765 This also means that extsBitmap gets set, whereas is was just being set
2766 to 0 before.
2767]
2768[LLVM: Add alias type defenitions to LlvmModule.
2769David Terei <davidterei@gmail.com>**20100707142053
2770 Ignore-this: eee6ad5385563ccf08e664d2634a03f2
2771]
2772[LLVM: Use packed structure type instead of structure type
2773David Terei <davidterei@gmail.com>**20100707120320
2774 Ignore-this: a06e0359d182291b81cae56993ca385e
2775 
2776 The regular structure type adds padding to conform to the platform ABI,
2777 which causes problems with structures storing doubles under windows since
2778 we don't conform to the platform ABI there. So we use packed structures
2779 instead now that don't do any padding.
2780]
2781[Make mkPState and pragState take their arguments in the same order
2782Ian Lynagh <igloo@earth.li>**20100706172611]
2783[Remove an out-of-date comment
2784Ian Lynagh <igloo@earth.li>**20100706172217
2785 Ignore-this: 710ebd7d2dc01c1b0f1e58a5b6f85701
2786]
2787[LLVM: Stop llvm saving stg caller-save regs across C calls
2788David Terei <davidterei@gmail.com>**20100705162629
2789 Ignore-this: 28b4877b31b9358e682e38fc54b88658
2790 
2791 This is already handled by the Cmm code generator so LLVM is simply
2792 duplicating work. LLVM also doesn't know which ones are actually live
2793 so saves them all which causes a fair performance overhead for C calls
2794 on x64. We stop llvm saving them across the call by storing undef to
2795 them just before the call.
2796]
2797[LLVM: Add in literal undefined value to binding
2798David Terei <davidterei@gmail.com>**20100705161544
2799 Ignore-this: 95d8361b11584aaeec44c30e76916470
2800]
2801[LLVM: Add a literal NULL value to binding
2802David Terei <davidterei@gmail.com>**20100705161308
2803 Ignore-this: 9507b4b12c1157498704a9d1e5860f12
2804 
2805 Patch from Erik de Castro Lopo <erikd@mega-nerd.com>.
2806]
2807[refactor import declaration support (#2362)
2808Simon Marlow <marlowsd@gmail.com>**20100705104557
2809 Ignore-this: ee034ac377078a7e92bfada1907c86a0
2810]
2811[Disable dynamic linking optimisations on OS X
2812Simon Marlow <marlowsd@gmail.com>**20100705103014
2813 Ignore-this: b04420d3705c51112797758d17b2e40c
2814 To improve performance of the RTS when dynamically linked on x86, I
2815 previously disabled -fPIC for certain critical modules (the GC, and a
2816 few others).  However, build reports suggest that the dynamic linker
2817 on OS X doesn't like this, so I'm disabling this optimsation on that
2818 platform.
2819]
2820[trac #2362 (full import syntax in ghci)
2821amsay@amsay.net**20100625032632
2822 Ignore-this: a9d0859d84956beb74e27b797431bf9c
2823 'import' syntax is seperate from ':module' syntax
2824]
2825[Simplify ghc-pkg's Cabal dependencies
2826Ian Lynagh <igloo@earth.li>**20100704184155
2827 We no longer support building with a compiler that doesn't come with
2828 base 4.
2829]
2830[Use Cabal to configure the dist-install ghc-pkg; fixes trac #4156
2831Ian Lynagh <igloo@earth.li>**20100704132612]
2832[Remove dead code (standalone deriving flag no longer used in parser)
2833Ian Lynagh <igloo@earth.li>**20100701162058]
2834[LLVM: Use the inbounds keyword for getelementptr instructions.
2835David Terei <davidterei@gmail.com>**20100702160511
2836 Ignore-this: 3708e658a4c82b78b1402393f4405541
2837]
2838[threadPaused: fix pointer arithmetic
2839Simon Marlow <marlowsd@gmail.com>**20100701085046
2840 Ignore-this: b78210e5d978f18ffd235f1c78a55a23
2841 Noticed by Henrique Ferreiro <hferreiro@udc.es>, thanks!
2842]
2843[LLVM: Change more operations to use getelementptr
2844David Terei <davidterei@gmail.com>**20100701161856
2845 Ignore-this: fb24eb124e203f50680c6fec3ff9fe7d
2846]
2847[Add the haskell2010 package
2848Simon Marlow <marlowsd@gmail.com>**20100630125532
2849 Ignore-this: e9b011313f283a8ff2fcda7d029a01f
2850]
2851[LLVM: Use getelementptr instruction for a lot of situations
2852David Terei <davidterei@gmail.com>**20100630181157
2853 Ignore-this: 34d314dd8dffad9bdcffdc525261a49d
2854 
2855 LLVM supports creating pointers in two ways, firstly through
2856 pointer arithmetic (by casting between pointers and ints)
2857 and secondly using the getelementptr instruction. The second way
2858 is preferable as it gives LLVM more information to work with.
2859 
2860 This patch changes a lot of pointer related code from the first
2861 method to the getelementptr method.
2862]
2863[remove out of date comments; point to the wiki
2864Simon Marlow <marlowsd@gmail.com>**20100625100313
2865 Ignore-this: 95f363a373534b9471b1818102ec592d
2866]
2867[NCG: allocatableRegs is only giving us 8 SSE regs to allocate to
2868benl@ouroborus.net**20100629054321
2869 Ignore-this: b3e0fa0b4ce988a0258dc12261989ee0
2870]
2871[LLVM: Use intrinsic functions for pow, sqrt, sin, cos
2872David Terei <davidterei@gmail.com>**20100628182949
2873 Ignore-this: 98a0befaca3fe2b36d710d8ff9f062c4
2874 
2875 Instead of calling the C library for these Cmm functions
2876 we use intrinsic functions provided by llvm. LLVM will
2877 then either create a compile time constant if possible, or
2878 use a cpu instruction or as a last resort call the C
2879 library.
2880]
2881[LLVM: Fix test '2047' under linux-x64
2882David Terei <davidterei@gmail.com>**20100628165256
2883 Ignore-this: 41735d4f431a430db636621650ccd71e
2884]
2885[LLVM: Fix test 'ffi005' under linux-x64
2886David Terei <davidterei@gmail.com>**20100628155355
2887 Ignore-this: 841f3142c63cc898ac4c3f89698a837e
2888]
2889[LLVM: Update to use new fp ops introduced in 2.7
2890David Terei <davidterei@gmail.com>**20100628144037
2891 Ignore-this: 5dd2e5964e3c039d297ed586841e706b
2892]
2893[Add noalias and nocapture attributes to pointer stg registers
2894David Terei <davidterei@gmail.com>**20100628115120
2895 Ignore-this: 492a1e723cb3a62498d240d7de92dd7
2896 
2897 At the moment this gives a very slight performance boost of around 1 - 2%.
2898 Future changes to the generated code though so that pointers are kept as
2899 pointers more often instead of being cast to integer types straight away
2900 should hopefully improve the benefit this brings.
2901 
2902]
2903[during shutdown, only free the heap if we waited for foreign calls to exit
2904Simon Marlow <marlowsd@gmail.com>**20100628090536
2905 Ignore-this: d545384a4f641d701455d08ef1217479
2906]
2907[Fix typo in -ddump-pass's document.
2908shelarcy <shelarcy@gmail.com>**20100620070759
2909 Ignore-this: f4f1ddb53f147949e948147d89190c37
2910]
2911[Add #undefs for posix source symbols when including papi.h
2912dmp@rice.edu**20100624163514
2913 Ignore-this: 8a1cba21b880d12a75a75f7e96882053
2914 
2915 Validation fails when validating with PAPI support (i.e. GhcRtsWithPapi  = YES
2916 in validate.mk).  The problem is that the posix symbols are defined by a header
2917 included from papi.h. Compilation then fails because these symbols are
2918 redefined in PosixSource.h.
2919 
2920 This patch adds an undefine for the posix symbols after including papi.h and
2921 before including PosixSource.h. The #undefines are localized to Papi.c since
2922 that is the only case where they are getting defined twice.
2923]
2924[Use machdepCCOpts in runPhase_MoveBinary; fixes trac #3952
2925Ian Lynagh <igloo@earth.li>**20100625220953]
2926[LLVM: Fix bug with calling tail with empty list
2927David Terei <davidterei@gmail.com>**20100625115729
2928 Ignore-this: 46b4b32c8d92372a2d49794a96fe1613
2929]
2930[Fix warnings
2931benl@ouroborus.net**20100624091339
2932 Ignore-this: 5ba4bbd6abb9c9d1fb8c5d21ab73f218
2933]
2934[NCG: Comments and formatting only
2935benl@ouroborus.net**20100624083121
2936 Ignore-this: 86002e72c30d06bcc876d8c49f4caa5a
2937]
2938[NCG: Do the actual reversing of SCCs
2939benl@ouroborus.net**20100624082717
2940 Ignore-this: 12d2027ea118e751fbb48b27126150ef
2941]
2942[NCG: Fix dumping of graphs in regalloc stats for graph allocator
2943benl@ouroborus.net**20100624082625
2944 Ignore-this: 2b971bc9e0318099a9afb0e0db135730
2945]
2946[NCG: Reverse SCCs after each round in the graph allocator
2947benl@ouroborus.net**20100624082437
2948 Ignore-this: f0152e4039d6f16f7b5a99b286538116
2949]
2950[NCG: Don't actually complain on unreachable code blocks
2951benl@ouroborus.net**20100624081445
2952 Ignore-this: e7335ae6120917cb858c38c7c6da8e24
2953]
2954[NCG: Do explicit check for precondition of computeLiveness
2955benl@ouroborus.net**20100624080747
2956 Ignore-this: e7053c4e5e4c3c746b5ebf016913424a
2957 
2958  computeLiveness requires the SCCs of blocks to be in reverse dependent
2959  order, and if they're not it was silently giving bad liveness info,
2960  yielding a bad allocation.
2961 
2962  Now it complains, loudly.
2963]
2964[NCG: Fix off-by-one error in realRegSqueeze
2965benl@ouroborus.net**20100623095813
2966 Ignore-this: ab0698686d4c250da8e207f734f8252d
2967]
2968[NCG: Handle stripping of liveness info from procs with no blocks (like stg_split_marker)
2969benl@ouroborus.net**20100623091209
2970 Ignore-this: c0319b6cc62ec713afe4eb03790406e3
2971]
2972[NCG: Emit a warning on unreachable code block instead of panicing
2973benl@ouroborus.net**20100623085002
2974 Ignore-this: d20314b79e3c31e764ed4cd97290c696
2975]
2976[NCG: Remember to keep the entry block first when erasing liveness info
2977Ben.Lippmeier@anu.edu.au**20090917104429
2978 Ignore-this: 1b0c1df19d622858d50ffb6a01f2cef0
2979]
2980[NCG: Refactor representation of code with liveness info
2981Ben.Lippmeier@anu.edu.au**20090917090730
2982 Ignore-this: 2aebb3b02ebd92e547c5abad9feb0f0d
2983 
2984  * I've pushed the SPILL and RELOAD instrs down into the
2985    LiveInstr type to make them easier to work with.
2986 
2987  * When the graph allocator does a spill cycle it now just
2988    re-annotates the LiveCmmTops instead of converting them
2989    to NatCmmTops and back.
2990 
2991  * This saves working out the SCCS again, and avoids rewriting
2992    the SPILL and RELOAD meta instructions into real machine
2993    instructions.
2994]
2995[NCG: Add sanity checking to linear allocator
2996Ben.Lippmeier@anu.edu.au**20090917090335
2997 Ignore-this: 5a442be8b5087d04bc8b58dffa9ea080
2998 If there are are unreachable basic blocks in the native code then the
2999 linear allocator might loop. Detect this case and panic instead.
3000]
3001[NCG: Refactor LiveCmmTop to hold a list of SCCs instead of abusing ListGraph
3002Ben.Lippmeier@anu.edu.au**20090917060332
3003 Ignore-this: 3fec8d69ed0f760e53a202f873d5d9cb
3004]
3005[NCG: Allow the liveness map in a LiveInfo to be Nothing
3006Ben.Lippmeier@anu.edu.au**20090917043937
3007 Ignore-this: 5f82422d54d1b0ffc0589eb7e82fb7a4
3008]
3009[NCG: Also show the result of applying coalesings with -ddump-asm-regalloc-stages
3010Ben.Lippmeier.anu.edu.au**20090917034427
3011 Ignore-this: 76bd6d5ca43adb2167cb25832cbaa80b
3012]
3013[Fix panic when running "ghc -H"; trac #3364
3014Ian Lynagh <igloo@earth.li>**20100624234011
3015 The problem is that showing SDoc's looks at the static flags global
3016 variables, but those are panics while we are parsing the static flags.
3017 We work around this by explicitly using a fixed prettyprinter style.
3018]
3019[Allow for stg registers to have pointer type in llvm BE.
3020David Terei <davidterei@gmail.com>**20100621175839
3021 Ignore-this: fc09b1a8314aef0bde945c77af1124fb
3022 
3023 Before all the stg registers were simply a bit type or
3024 floating point type but now they can be declared to have
3025 a pointer type to one of these. This will allow various
3026 optimisations in the future in llvm since the type is
3027 more accurate.
3028]
3029[Add support for parameter attributes to the llvm BE binding
3030David Terei <davidterei@gmail.com>**20100624111744
3031 Ignore-this: 77f3c0c7bf8f81c4a154dc835ae7bcba
3032 
3033 These allow annotations of the code produced by the backend
3034 which should bring some perforamnce gains. At the moment
3035 the attributes aren't being used though.
3036]
3037[Cast some more nats to StgWord to be on the safe side
3038Simon Marlow <marlowsd@gmail.com>**20100624105700
3039 Ignore-this: e6176683856f9872fdeb2358bb065bb8
3040 And add a comment about the dangers of int overflow
3041]
3042[comments only
3043Simon Marlow <marlowsd@gmail.com>**20100624105105
3044 Ignore-this: fc8f762f4c3a5ffca2f8da2bc63ac2a4
3045]
3046[Fix an arithmetic overflow bug causing crashes with multi-GB heaps
3047Simon Marlow <marlowsd@gmail.com>**20100624104654
3048 Ignore-this: 67210755aa098740ff5230347be0fd5d
3049]
3050[Add support for collecting PAPI native events
3051dmp@rice.edu**20100622195953
3052 Ignore-this: 7269f9c4dfb2912a024eb632200fcd1
3053 
3054 This patch extends the PAPI support in the RTS to allow collection of native
3055 events. PAPI can collect data for native events that are exposed by the
3056 hardware beyond the PAPI present events. The native events supported on your
3057 hardware can found by using the papi_native_avail tool.
3058 
3059 The RTS already allows users to specify PAPI preset events from the command
3060 line. This patch extends that support to allow users to specify native events.
3061 The changes needed are:
3062 
3063 1) New option (#) for the RTS PAPI flag for native events. For example, to
3064    collect the native event 0x40000000, use ./a.out +RTS -a#0x40000000 -sstderr
3065 
3066 2) Update the PAPI_FLAGS struct to store whether the user specified event is a
3067    papi preset or a native event
3068 
3069 3) Update init_countable_events function to add the native events after parsing
3070    the event code and decoding the name using PAPI_event_code_to_name
3071 
3072]
3073[Don't warn about unused bindings with parents in .hs-boot files; trac #3449
3074Ian Lynagh <igloo@earth.li>**20100624110351]
3075[fix the home_imps filter to allow for 'import "this" <module>'
3076Simon Marlow <marlowsd@gmail.com>**20100621125535
3077 Ignore-this: da4e605b0513afc32a4e7caa921a2c76
3078 In the PackageImports extension, import "this" means "import from the
3079 current package".
3080]
3081[Use the standard C wrapper code for the ghc-$version.exe wrapper
3082Ian Lynagh <igloo@earth.li>**20100622202859
3083 Ignore-this: 60cd3e6db3afb63e6ba9e2db3b033580
3084]
3085[Don't rely on "-packagefoo" working; use "-package foo" instead
3086Ian Lynagh <igloo@earth.li>**20100622202547]
3087[Remove unnecessary C #includes
3088Ian Lynagh <igloo@earth.li>**20100622172919]
3089[Make the ghci.exe wrapper call the right ghc.exe
3090Ian Lynagh <igloo@earth.li>**20100622172247]
3091[More updates to datalayout description in llvm BE
3092David Terei <davidterei@gmail.com>**20100622165339
3093 Ignore-this: b0c604fe7673b0aa7c7064694d574437
3094]
3095[Remove LlvmAs phase as the llvm opt tool now handles this phase
3096David Terei <davidterei@gmail.com>**20100622144044
3097 Ignore-this: b9fd8f959702b6af014e2fa654bede3
3098 
3099 This phase originally invoked the llvm-as tool that turns a textual
3100 llvm assembly file into a bit code file for the rest of llvm to deal
3101 with. Now the llvm opt tool can do this itself, so we don't need to
3102 use llvm-as anymore.
3103]
3104[Update datalayout info in llvm BE
3105David Terei <davidterei@gmail.com>**20100622123457
3106 Ignore-this: 89b043d211225dcd819f30549afe1840
3107]
3108[Fix handling of float literals in llvm BE
3109David Terei <davidterei@gmail.com>**20100622121642
3110 Ignore-this: a3b5f382ad4b5a426ad4b581664506fa
3111]
3112[Declare some top level globals to be constant when appropriate
3113David Terei <davidterei@gmail.com>**20100621174954
3114 Ignore-this: 44832f65550d4f995d11c01cc1affef5
3115 
3116 This involved removing the old constant handling mechanism
3117 which was fairly hard to use. Now being constant or not is
3118 simply a property of a global variable instead of a separate
3119 type.
3120]
3121[Reduce the number of passes over the cmm in llvm BE
3122David Terei <davidterei@gmail.com>**20100621125220
3123 Ignore-this: cb2f4e54e8d0f982d5087fbeee35c73c
3124]
3125[Fix negate op not working for -0 in llvm backend
3126David Terei <davidterei@gmail.com>**20100621123606
3127 Ignore-this: c5d76e5cffa781fed074137851b1347f
3128]
3129[ROLLBACK: picCCOpts: -dynamic should not entail -optc-fPIC
3130Simon Marlow <marlowsd@gmail.com>**20100621100409
3131 Ignore-this: f2fac7df33d3919199befc59bd455414
3132 and add a comment to explain why it was wrong.  This fixes the dyn
3133 test failures that sprang up recently.
3134]
3135[Check files are really created in libffi
3136Ian Lynagh <igloo@earth.li>**20100620163724
3137 when we think that the libffi build creates them, so they just depend
3138 on the libffi build stamp.
3139]
3140[Improve the missing-import-list warning
3141Ian Lynagh <igloo@earth.li>**20100620124320
3142 Ignore-this: 551e5fdf2dfb56b49d249e0cebaa6115
3143]
3144[Tweak missing-import-list warning
3145Ian Lynagh <igloo@earth.li>**20100620122622
3146 Ignore-this: 360cdf59ae13d66ded181129325506c4
3147]
3148[trac #1789 (warnings for missing import lists)
3149amsay@amsay.net**20100618150649
3150 Ignore-this: b0b0b1e048fbca0817c1e6fade1153fa
3151]
3152[Refix docs for sizeofByteArray#/sizeofMutableByteArray# (#3800)
3153Ian Lynagh <igloo@earth.li>**20100620103749]
3154[Remove some old commented out code
3155Ian Lynagh <igloo@earth.li>**20100620000459]
3156[SET_ARR_HDR's last argument is now a number of bytes, rather than words
3157Ian Lynagh <igloo@earth.li>**20100619235214
3158 This avoids unnecessary work and potential loss of information
3159]
3160[Replace an (incorrect) bytes-to-words calculation with ROUNDUP_BYTES_TO_WDS
3161Ian Lynagh <igloo@earth.li>**20100619234310]
3162[FIX #38000 Store StgArrWords payload size in bytes
3163Antoine Latter <aslatter@gmail.com>**20100101183346
3164 Ignore-this: 7bf3ab4fc080c46311fc10b179361bb6
3165]
3166[Add win32 datalayout support to llvm backend
3167David Terei <davidterei@gmail.com>**20100618131733
3168 Ignore-this: 4b7bffaa8ef38c628ab852c1a6c1c009
3169]
3170[Remove unused 'ddump-opt-llvm' flag
3171David Terei <davidterei@gmail.com>**20100618101237
3172 Ignore-this: f78467496d986897e49d82646ee2907e
3173]
3174[generate "movl lbl(%reg1), %reg2" instructions, better codegen for -fPIC
3175Simon Marlow <marlowsd@gmail.com>**20100618082258
3176 Ignore-this: a25567ebff9f575303ddc8f2deafebbf
3177]
3178[joinToTargets: fix a case of panic "handleComponent cyclic"
3179Simon Marlow <marlowsd@gmail.com>**20100618082147
3180 Ignore-this: 765baeefbb5a41724004acd92405cecc
3181]
3182[comment typo
3183Simon Marlow <marlowsd@gmail.com>**20100618082102
3184 Ignore-this: e495610b7dd5ec30b02938638b56cb7
3185]
3186[Add support of TNTC to llvm backend
3187David Terei <davidterei@gmail.com>**20100618093205
3188 Ignore-this: 2c27d21668374a5b0d5e844882c69439
3189 
3190 We do this through a gnu as feature called subsections,
3191 where you can put data/code into a numbered subsection
3192 and those subsections will be joined together in descending
3193 order by gas at compile time.
3194]
3195[Don't automatically insert a -fvia-C flag in an unregisterised compiler
3196Ian Lynagh <igloo@earth.li>**20100617190901
3197 Ignore-this: eb25a9a338fade9e17c153da7c5f27e9
3198 The default object mode is already HscC, so it's unnecessary, and
3199 -fvia-C generates a deprecated flag warning now.
3200]
3201[In PosixSource.h, conditionally define things based on platform
3202Ian Lynagh <igloo@earth.li>**20100617174912
3203 This may not be ideal, but it should get GHC building on all platforms
3204 again.
3205]
3206[disable -fPIC for the GC for performance reasons
3207Simon Marlow <marlowsd@gmail.com>**20100617140025
3208 Ignore-this: c7c152bbff71ef7891eaee8ff39fc281
3209 see comment for details
3210]
3211[picCCOpts: -dynamic should not entail -optc-fPIC
3212Simon Marlow <marlowsd@gmail.com>**20100617115259
3213 Ignore-this: d71e42bd56e4bd107d2c431b801855e5
3214]
3215[Make getAllocations() visible
3216Simon Marlow <marlowsd@gmail.com>**20100617113259
3217 Ignore-this: 1b7fb38a01358c0acbe8987df07d23f2
3218]
3219[Fix the symbol visibility pragmas
3220Simon Marlow <marlowsd@gmail.com>**20100617105758
3221 Ignore-this: 76552500865473a1dbebbc1cc2def9f0
3222]
3223[pick up changes to $(GhcStage1HcOpts) without re-configuring the ghc package
3224Simon Marlow <marlowsd@gmail.com>**20100616124718
3225 Ignore-this: afb56d5560c813051285607fefb15493
3226]
3227[Fix bindisttest Makefile
3228Ian Lynagh <igloo@earth.li>**20100616205611
3229 Ignore-this: 39cd352152422f378572fc3859c5a377
3230]
3231[Remove some more unused make variables
3232Ian Lynagh <igloo@earth.li>**20100616180519]
3233[Convert some more variable names to FOO_CMD, for consistency
3234Ian Lynagh <igloo@earth.li>**20100616175916]
3235[Rename some variables from FOO to FOO_CMD
3236Ian Lynagh <igloo@earth.li>**20100616161108
3237 This fixes a problem with commands like gzip, where if $GZIP is exported
3238 in the environment, then when make runs a command it'll put the Makefile
3239 variable's value in the environment. But gzip treats $GZIP as arguments
3240 for itself, so when we run gzip it thinks we're giving it "gzip" as an
3241 argument.
3242]
3243[Make the "show" target work anywhere in the build tree
3244Ian Lynagh <igloo@earth.li>**20100616122910
3245 Ignore-this: 299d40cbe16112accd9f14e56fa12158
3246]
3247[Change ghc-pwd's license to a string Cabal recognises
3248Ian Lynagh <igloo@earth.li>**20100615204015
3249 Ignore-this: c935b6ad7f605aab0168997a90b40fc6
3250]
3251[fix warning
3252Simon Marlow <marlowsd@gmail.com>**20100604205933
3253 Ignore-this: 2aaa4ed6a8b9ae1e39adc4696aaf14a3
3254]
3255[--install-signal-handles=no does not affect the timer signal (#1908)
3256Simon Marlow <marlowsd@gmail.com>**20100527214627
3257 Ignore-this: b0c51f1abdb159dc360662485095a11a
3258]
3259[Small optimisation: allocate nursery blocks contiguously
3260Simon Marlow <marlowsd@gmail.com>**20100509194928
3261 Ignore-this: e650e99e9ea9493d2efb245d565beef4
3262 This lets automatic prefetching work better, for a tiny performance boost
3263]
3264[fix -fforce-recomp setting: module is PrimOp, not PrimOps
3265Simon Marlow <marlowsd@gmail.com>**20100507084507
3266 Ignore-this: f76e0d9b643682ec0e8fb7d91afdea68
3267]
3268[it should be an error to use relative directories (#4134)
3269Simon Marlow <marlowsd@gmail.com>**20100615151740
3270 Ignore-this: 2068021701832e018ca41b22877921d5
3271]
3272[missing include-dirs or library-dirs is only a warning now (#4104)
3273Simon Marlow <marlowsd@gmail.com>**20100615151702
3274 Ignore-this: e3114123cef147bbd28ccb64581a1afb
3275]
3276[fix #3822: desugaring case command in arrow notation
3277Ross Paterson <ross@soi.city.ac.uk>**20100615225110
3278 Ignore-this: 477d6c460b4174b94b4cd113fa5b9d19
3279 
3280 Get the set of free variables from the generated case expression:
3281 includes variables in the guards and decls that were missed before,
3282 and is also a bit simpler.
3283]
3284[Deprecate the -fvia-C flag; trac #3232
3285Ian Lynagh <igloo@earth.li>**20100615151836
3286 Ignore-this: c2452b2648bf7e44546465c1b964fce
3287]
3288[Avoid using the new ~~ perl operator in the mangler
3289Ian Lynagh <igloo@earth.li>**20100615151236
3290 Ignore-this: 709a7ba4e514b1596841b3ba7e5c6cc
3291]
3292[stmAddInvariantToCheck: add missing init of invariant->lock (#4057)
3293Simon Marlow <marlowsd@gmail.com>**20100615123643
3294 Ignore-this: 3b132547fa934cecf71a846db2a5f70e
3295]
3296[Add new LLVM code generator to GHC. (Version 2)
3297David Terei <davidterei@gmail.com>**20100615094714
3298 Ignore-this: 4dd2fe5854b64a3f0339d484fd5c238
3299 
3300 This was done as part of an honours thesis at UNSW, the paper describing the
3301 work and results can be found at:
3302 
3303 http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf
3304 
3305 A Homepage for the backend can be found at:
3306 
3307 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM
3308 
3309 Quick summary of performance is that for the 'nofib' benchmark suite, runtimes
3310 are within 5% slower than the NCG and generally better than the C code
3311 generator.  For some code though, such as the DPH projects benchmark, the LLVM
3312 code generator outperforms the NCG and C code generator by about a 25%
3313 reduction in run times.
3314 
3315]
3316[Fix Trac #4127: build GlobalRdrEnv in GHCi correctly
3317simonpj@microsoft.com**20100615070626
3318 Ignore-this: d907e3bfa7882878cea0af172aaf6e84
3319 
3320 GHCi was building its GlobalRdrEnv wrongly, so that the
3321 gre_par field was bogus.  That in turn fooled the renamer.
3322 The fix is easy: use the right function!  Namely, call
3323 RnNames.gresFromAvail rather than availsToNameSet.
3324]
3325[Comments, and improvement to pretty-printing of HsGroup
3326simonpj@microsoft.com**20100615070409
3327 Ignore-this: ec8358f2485370b20226a97ec84e9024
3328]
3329[Don't reverse bindings in rnMethodBinds (fix Trac #4126)
3330simonpj@microsoft.com**20100614163935
3331 Ignore-this: a6ffbb5af6f51b142ed0aeae8ee5e3a9
3332]
3333[Fix Trac #4120: generate a proper coercion when unifying forall types
3334simonpj@microsoft.com**20100614134311
3335 Ignore-this: 601592bb505305f1954cbe730f168da4
3336 
3337 This was just a blatant omission, which hasn't come up before.
3338 Easily fixed, happily.
3339]
3340[Use mkFunTy to ensure that invariants are respected
3341simonpj@microsoft.com**20100614134159
3342 Ignore-this: 67dcada7a4e8d9927581cd77af71b6f
3343]
3344[Remove redundant debug code
3345simonpj@microsoft.com**20100601154151
3346 Ignore-this: e6ff11c04c631cf6aac73788cbcf02b5
3347]
3348[Fix Trac #4099: better error message for type functions
3349simonpj@microsoft.com**20100531140413
3350 Ignore-this: 3f53ca98cf770577818b9c0937482577
3351 
3352 Now we only want about "T is a type function and might not be
3353 injective" when matchin (T x) against (T y), which is the case
3354 that is really confusing.
3355]
3356[Gruesome fix in CorePrep to fix embarassing Trac #4121
3357simonpj@microsoft.com**20100614132726
3358 Ignore-this: fe82d15474afaac3e6133adfd7a7e055
3359 
3360 This is a long-lurking bug that has been flushed into
3361 the open by other arity-related changes.  There's a
3362 long comment
3363 
3364      Note [CafInfo and floating]
3365 
3366 to explain. 
3367 
3368 I really hate the contortions we have to do through to keep correct
3369 CafRef information on top-level binders.  The Right Thing, I believe,
3370 is to compute CAF and arity information later, and merge it into the
3371 interface-file information when the latter is generated.
3372 
3373 But for now, this hackily fixes the problem.
3374]
3375[Fix a bug in CorePrep that meant output invariants not satisfied
3376simonpj@microsoft.com**20100531150013
3377 Ignore-this: d34eb36d8877d3caf1cf2b20de426abd
3378 
3379 In cpePair I did things in the wrong order so that something that
3380 should have been a CprRhs wasn't.  Result: a crash in CoreToStg.
3381 Fix is easy, and I added more informative type signatures too.
3382]
3383[Robustify the treatement of DFunUnfolding
3384simonpj@microsoft.com**20100531145332
3385 Ignore-this: 8f5506ada4d89f6ab8ad1e8c3ffb09ba
3386 
3387 See Note [DFun unfoldings] in CoreSyn.  The issue here is that
3388 you can't tell how many dictionary arguments a DFun needs just
3389 from looking at the Arity of the DFun Id: if the dictionary is
3390 represented by a newtype the arity might include the dictionary
3391 and value arguments of the (single) method.
3392 
3393 So we need to record the number of arguments need by the DFun
3394 in the DFunUnfolding itself.  Details in
3395    Note [DFun unfoldings] in CoreSyn
3396]
3397[Fix spelling in comment
3398simonpj@microsoft.com**20100614132259
3399 Ignore-this: bbf0d55f2e5f10ef9c74592c12f9201c
3400]
3401[Update docs on view patterns
3402simonpj@microsoft.com**20100614074801
3403 Ignore-this: 8617b9078800d4942d71f142a5b6c831
3404]
3405[Fix printing of splices; part of #4124
3406Ian Lynagh <igloo@earth.li>**20100613154838
3407 Just putting parens around non-atomic expressions isn't sufficient
3408 for splices, as only the $x and $(e) forms are valid input.
3409]
3410[In ghci, catch IO exceptions when calling canonicalizePath
3411Ian Lynagh <igloo@earth.li>**20100613134627
3412 We now get an exception if the path doesn't exist
3413]
3414[Whitespace only
3415Ian Lynagh <igloo@earth.li>**20100612213119]
3416[Whitespace only
3417Ian Lynagh <igloo@earth.li>**20100612165450]
3418[Update ghci example output in user guide; patch from YitzGale in #4111
3419Ian Lynagh <igloo@earth.li>**20100612162250]
3420[Fix #4131 missing UNTAG_CLOSURE in messageBlackHole()
3421benl@ouroborus.net**20100611044614]
3422[messageBlackHole: fix deadlock bug caused by a missing 'volatile'
3423Simon Marlow <marlowsd@gmail.com>**20100610080636
3424 Ignore-this: 3cda3054bb45408aa9bd2d794b69c938
3425]
3426[Pass --no-tmp-comp-dir to Haddock (see comment)
3427Simon Marlow <marlowsd@gmail.com>**20100604083214
3428 Ignore-this: bfa4d74038637bd149f4d878b4eb8a87
3429]
3430[Track changes to DPH libs
3431Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607052903
3432 Ignore-this: 4dbc3f8418af3e74b3fc4f9a9dfe7764
3433]
3434[Track changes to DPH libs
3435Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100607012642
3436 Ignore-this: 5d4e498171a3c57ab02621bfaea82cff
3437]
3438[In ghc-pkg, send warnings to stderr
3439Ian Lynagh <igloo@earth.li>**20100606161726
3440 Ignore-this: 56927d13b5e1c1ce2752734f0f9b665b
3441]
3442[Re-add newlines to enable layout for multi-line input.
3443Ian Lynagh <igloo@earth.li>**20100602180737
3444 Patch from Adam Vogt <vogt.adam@gmail.com>
3445 Partial fix for #3984
3446]
3447[Don't use unnecessary parens when printing types (Fix Trac 4107)
3448simonpj@microsoft.com**20100604110143
3449 Ignore-this: a833714ab13013c4345b222f4e87db1d
3450 
3451    f :: Eq a => a -> a
3452 rather than
3453    f :: (Eq a) => a -> a
3454]
3455[Track DPH library changes
3456Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100604005728
3457 Ignore-this: 32bc2fbea6ad975e89545d4c42fd7c30
3458]
3459[fix --source-entity option passed to Haddock: we needed to escape a #
3460Simon Marlow <marlowsd@gmail.com>**20100603125459
3461 Ignore-this: d52ae6188b510c482bcebb23f0e553ae
3462]
3463[__stg_EAGER_BLACKHOLE_INFO -> __stg_EAGER_BLACKHOLE_info (#4106)
3464Simon Marlow <marlowsd@gmail.com>**20100602091419
3465 Ignore-this: 293315ac8f86fd366b8d61992ecc7961
3466]
3467[Add xhtml package (a new dependency of Haddock; not installed/shipped)
3468Simon Marlow <marlowsd@gmail.com>**20100602090101
3469 Ignore-this: af0ac8b91abe98f7fdb624ea0a4dee20
3470]
3471[Use UserInterrupt rather than our own Interrupted exception (#4100)
3472Simon Marlow <marlowsd@gmail.com>**20100602082345
3473 Ignore-this: 1909acf2f452593138b9f85024711714
3474]
3475[Add the global package DB to ghc --info (#4103)
3476Simon Marlow <marlowsd@gmail.com>**20100602082233
3477 Ignore-this: fd5c0e207e70eb0f62606c45dc5b8124
3478]
3479[rts/sm/GC.c: resize_generations(): Remove unneeded check of number of generations.
3480Marco Túlio Gontijo e Silva <marcot@debian.org>**20100528115612
3481 Ignore-this: 6f1bea62917c01c7adac636146132c97
3482 
3483 This "if" is inside another "if" which checks for RtsFlags.GcFlags.generations
3484 > 1, so testing this again is redundant, assuming the number of generations
3485 won't change during program execution.
3486]
3487[rts/sm/BlockAlloc.c: Small comment correction.
3488Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205839
3489 Ignore-this: bd2fcd4597cc872d80b0e2eeb1c3998a
3490]
3491[rts/sm/GC.c: Annotate constants.
3492Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526205707
3493 Ignore-this: f232edb89383564d759ed890a18f602f
3494]
3495[includes/rts/storage/GC.h: generation_: n_words: Improve comment.
3496Marco Túlio Gontijo e Silva <marcot@debian.org>**20100526204615
3497 Ignore-this: f5d5feefa8f7b552303978f1804fea23
3498]
3499[Add PPC_RELOC_LOCAL_SECTDIFF support; patch from PHO in #3654
3500Ian Lynagh <igloo@earth.li>**20100601204211
3501 Ignore-this: 51293b7041cdce3ce7619ef11cf7ceb
3502]
3503[powerpc-apple-darwin now supports shared libs
3504Ian Lynagh <igloo@earth.li>**20100601173325]
3505[PIC support for PowerPC
3506pho@cielonegro.org**20100508143900
3507 Ignore-this: 3673859a305398c4acae3f4d7c997615
3508 
3509 PPC.CodeGen.getRegister was not properly handling PicBaseReg.
3510 It seems working with this patch, but I'm not sure this change is correct.
3511]
3512[Vectoriser: only treat a function as scalar if it actually computes something
3513Roman Leshchinskiy <rl@cse.unsw.edu.au>**20100601045630
3514 Ignore-this: e5d99a6ddb62052e3520094a5af47552
3515]
3516[Add a release notes file for 6.14.1
3517Ian Lynagh <igloo@earth.li>**20100530171117
3518 Ignore-this: 1941e6d3d1f4051b69ca2f17a1cf84d6
3519]
3520[Check dblatex actually creates the files we tell it to
3521Ian Lynagh <igloo@earth.li>**20100530171043
3522 Ignore-this: ccc72caea2313be05cbac59bb54c0603
3523 If it fails, it still exits successfully.
3524]
3525[Add darwin to the list of OSes for which we use mmap
3526Ian Lynagh <igloo@earth.li>**20100529145016
3527 Ignore-this: a86d12a3334aaaafc86f7af9dbb0a7ae
3528 Patch from Barney Stratford
3529]
3530[Simplify the CPP logic in rts/Linker.c
3531Ian Lynagh <igloo@earth.li>**20100529144929
3532 Ignore-this: 1288f5b752cc1ab8b1c90cfd0ecfdf68
3533]
3534[Fix validate on OS X
3535Ian Lynagh <igloo@earth.li>**20100529154726]
3536[OS X x86_64 fix from Barney Stratford
3537Ian Lynagh <igloo@earth.li>**20100529122440]
3538[OS X 64 installer fixes from Barney Stratford
3539Ian Lynagh <igloo@earth.li>**20100528234935]
3540[fix warning
3541Simon Marlow <marlowsd@gmail.com>**20100525155812
3542 Ignore-this: f34eee3fe3d89579fd8d381c91ced750
3543]
3544[Fix doc bugs (#4071)
3545Simon Marlow <marlowsd@gmail.com>**20100525155728
3546 Ignore-this: aa25be196de567de360075022a1942f7
3547]
3548[Make sparks into weak pointers (#2185)
3549Simon Marlow <marlowsd@gmail.com>**20100525150435
3550 Ignore-this: feea0bb5006007b82c932bc3006124d7
3551 The new strategies library (parallel-2.0+, preferably 2.2+) is now
3552 required for parallel programming, otherwise parallelism will be lost.
3553]
3554[If you say 'make' or 'make stage=2' here, pretend we're in the ghc dir
3555Simon Marlow <marlowsd@gmail.com>**20100525085301
3556 Ignore-this: 78b740337aa460915c812cbbcdae5321
3557]
3558[Another attempt to get these #defines right
3559Simon Marlow <marlowsd@gmail.com>**20100525154313
3560 Ignore-this: 460ca0c47d81cd25eae6542114f67899
3561 Apparently on Solaris it is an error to omit _ISOC99_SOURCE when using
3562 _POSIX_C_SOURCE==200112L.
3563]
3564[Add configure flags for the location of GMP includes/library; fixes #4022
3565Ian Lynagh <igloo@earth.li>**20100525221616
3566 Ignore-this: fc3060caf995d07274ec975eeefbdf3e
3567]
3568[Refactor pretty printing of TyThings to fix Trac #4015
3569simonpj@microsoft.com**20100525153126
3570 Ignore-this: 8f15053b7554f62caa84201d2e4976d2
3571]
3572[When haddocking, we need the dependencies to have been built
3573Ian Lynagh <igloo@earth.li>**20100525145830
3574 as haddock loads the .hi files with the GHC API.
3575]
3576[Fix profiling output; spotted by jlouis
3577Ian Lynagh <igloo@earth.li>**20100525111217
3578 We were outputing the number of words allocated in a column titled "bytes".
3579]
3580[Improve printing of TyThings; fixes Trac #4087
3581simonpj@microsoft.com**20100525114045
3582 Ignore-this: da2a757a533454bba80b9b77cc5a771
3583]
3584[Spelling in comments
3585simonpj@microsoft.com**20100525114001
3586 Ignore-this: 270f3da655e526cf04e27db7a01e29c0
3587]
3588[Refactor (again) the handling of default methods
3589simonpj@microsoft.com**20100525113910
3590 Ignore-this: 6686f6cdb878d57abf6b49fec64fcbb1
3591 
3592 This patch fixes Trac #4056, by
3593 
3594  a) tidying up the treatment of default method names
3595  b) removing the 'module' argument to newTopSrcBinder
3596 
3597 The details aren't that interesting, but the result
3598 is much tidier. The original bug was a 'nameModule' panic,
3599 caused by trying to find the module of a top-level name.
3600 But TH quotes generate Internal top-level names that don't
3601 have a module, and that is generally a good thing. 
3602 
3603 Fixing that in turn led to the default-method refactoring,
3604 which also makes the Name for a default method be handled
3605 in the same way as other derived names, generated in BuildTyCl
3606 via a call newImplicitBinder.  Hurrah.
3607]
3608[Don't do SpecConstr on NOINLINE things (Trac #4064)
3609simonpj@microsoft.com**20100525112807
3610 Ignore-this: 452be0a2cef0042fb67275c2827b5f72
3611 
3612 Since the RULE from specialising gets the same Activation as
3613 the inlining for the Id itself there's no point in specialising
3614 a NOINLINE thing, because the rule will be permanently switched
3615 off.
3616 
3617 See Note [Transfer activation] in SpecConstr
3618 and Note [Auto-specialisation and RULES] in Specialise.
3619]
3620[Change our #defines to work on FreeBSD too
3621Simon Marlow <marlowsd@gmail.com>**20100524105828
3622 Ignore-this: b23ede46211e67859206c0ec57d6a86f
3623 With glibc, things like _POSIX_C_SOURCE and _ISOC99_SOURCE are
3624 additive, but on FreeBSD they are mutually exclusive.  However, it
3625 turns out we only need to define _POSIX_C_SOURCE and _XOPEN_SOURCE to
3626 get all the C99 stuff we need too, so there's no need for any #ifdefs.
3627 
3628 Submitted by: Gabor PALI <pgj@FreeBSD.org>
3629]
3630[Add a missing UNTAG_CLOSURE, causing bus errors on Sparc
3631Simon Marlow <marlowsd@gmail.com>**20100524105547
3632 Ignore-this: a590b5391d6f05d50c8c088456c3c166
3633 We just about got away with this on x86 which isn't
3634 alignment-sensitive.  The result of the memory load is compared
3635 against a few different values, but there is a fallback case that
3636 happened to be the right thing when the pointer was tagged.  A good
3637 bug to find, nonetheless.
3638]
3639[Add wiki links
3640Simon Marlow <marlowsd@gmail.com>**20100520095953
3641 Ignore-this: c22f126cde166e6207922b2eb51d29e3
3642]
3643[the 'stage=0' trick to disable all compiler builds stopped working; fix it
3644Simon Marlow <marlowsd@gmail.com>**20100520104455
3645 Ignore-this: bb6fae9056471612c8dbf06916188c33
3646]
3647[Comments and formatting only
3648benl@ouroborus.net**20100524014021
3649 Ignore-this: 64579c38154728b632e358bec751cc0b
3650]
3651[Core prettyprinter fixes. Patch from Tim Chevalier. Fixes #4085
3652Ian Lynagh <igloo@earth.li>**20100522225048]
3653[Correct install-name for dynamic Darwin rts
3654pho@cielonegro.org**20100508151155
3655 Ignore-this: 6d31716c8c113dcb46e9cb925c4201df
3656]
3657[Fix the RTS debug_p build
3658Ian Lynagh <igloo@earth.li>**20100522163127]
3659[Unset $CFLAGS for "GNU non-executable stack" configure test; fixes #3889
3660Ian Lynagh <igloo@earth.li>**20100521165005
3661 With gcc 4.4 we get
3662     Error: can't resolve `.note.GNU-stack' {.note.GNU-stack section} - `.Ltext0' {.text section}
3663 when running gcc with the -g flag. To work around this we unset
3664 CFLAGS when running the test.
3665]
3666[Don't run "set -o igncr" before configuring libffi
3667Ian Lynagh <igloo@earth.li>**20100520162918
3668 Ignore-this: 489fa94df23f2adf4ff63c8ede2c0794
3669 It used to make the build work on cygwin, but now it breaks it instead:
3670     config.status: creating include/Makefile
3671     gawk: ./confLqjohp/subs.awk:1: BEGIN {\r
3672     gawk: ./confLqjohp/subs.awk:1: ^ backslash not last character on line
3673     config.status: error: could not create include/Makefile
3674     make[2]: *** [libffi/stamp.ffi.configure-shared] Error 1
3675     make[1]: *** [all] Error 2
3676]
3677[Stop passing -Wl,-macosx_version_min to gcc
3678Ian Lynagh <igloo@earth.li>**20100520154003
3679 Fixes a build failure on OS X 10.6. When linking
3680     rts/dist/build/libHSrts-ghc6.13.20100519.dylib
3681 we got
3682     ld: symbol dyld_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o)
3683     collect2: ld returned 1 exit status
3684]
3685[Fix build on FreeBSD; patch from Gabor PALI
3686Ian Lynagh <igloo@earth.li>**20100519140552]
3687[Fix package shadowing order (#4072)
3688Simon Marlow <marlowsd@gmail.com>**20100519104617
3689 Ignore-this: 26ea5e4bb5dff18618b807a54c7d6ebb
3690 
3691 Later packages are supposed to shadow earlier ones in the stack,
3692 unless the ordering is overriden with -package-id flags.
3693 Unfortunately an earlier fix for something else had sorted the list of
3694 packages so that it was in lexicographic order by installedPackageId,
3695 and sadly our test (cabal/shadow) didn't pick this up because the
3696 lexicographic ordering happened to work for the test.  I've now fixed
3697 the test so it tries both orderings.
3698]
3699[Set more env variables when configuring libffi
3700Ian Lynagh <igloo@earth.li>**20100518185014
3701 We now tell it where to find ld, nm and ar
3702]
3703[Set the location of ar to be the in-tree ar on Windows
3704Ian Lynagh <igloo@earth.li>**20100518181556]
3705[Change another / to </> to avoid building paths containing \/
3706Ian Lynagh <igloo@earth.li>**20100518172015
3707 This will hopefully fix #2889.
3708]
3709[Fix #4074 (I hope).
3710Simon Marlow <marlowsd@gmail.com>**20100518113214
3711 Ignore-this: 73cd70f5bc6f5add5247b61985c03fc1
3712 
3713 1. allow multiple threads to call startTimer()/stopTimer() pairs
3714 2. disable the timer around fork() in forkProcess()
3715 
3716 A corresponding change to the process package is required.
3717]
3718[we don't have a gcc-lib in LIB_DIR any more
3719Simon Marlow <marlowsd@gmail.com>**20100401102351
3720 Ignore-this: f41acd2d8f8e6763aa8bd57a0b44a7e4
3721]
3722[In validate, use gmake if available; based on a patch from Gabor PALI
3723Ian Lynagh <igloo@earth.li>**20100517200654]
3724[Remove duplicate "./configure --help" output; fixes #4075
3725Ian Lynagh <igloo@earth.li>**20100516141206]
3726[Update various 'sh boot's to 'perl boot'
3727Ian Lynagh <igloo@earth.li>**20100516122609
3728 Spotted by Marco Túlio Gontijo e Silva
3729]
3730[add missing initialisation for eventBufMutex
3731Simon Marlow <marlowsd@gmail.com>**20100514094943
3732 Ignore-this: 7f75594a8cb54fbec5aebd46bb959f45
3733]
3734[Undo part of #4003 patch
3735Simon Marlow <marlowsd@gmail.com>**20100513142017
3736 Ignore-this: cb65db86a38a7e5ccee9f779e489d104
3737 We still need the workaround for when compiling HEAD with 6.12.2
3738 
3739]
3740[Fix makefile loop (#4050)
3741pho@cielonegro.org**20100507140707
3742 Ignore-this: 3a1cb13d0600977e74d17ac26cbef83d
3743 
3744 The libtool creates "libffi.dylib" and "libffi.5.dylib" but not "libffi.5.0.9.dylib". Having it in libffi_DYNAMIC_LIBS causes an infinite makefile loop.
3745]
3746[fix !TABLES_NEXT_TO_CODE
3747Simon Marlow <marlowsd@gmail.com>**20100510151934
3748 Ignore-this: fccb859b114bef1c3122c98e60af51
3749]
3750[looksLikeModuleName: allow apostrophe in module names (#4051)
3751Simon Marlow <marlowsd@gmail.com>**20100510094741
3752 Ignore-this: df9348f3ba90608bec57257b47672985
3753]
3754[add the proper library dependencies for GhcProfiled=YES
3755Simon Marlow <marlowsd@gmail.com>**20100506122118
3756 Ignore-this: 6236993aa308ab5b5e1e5ea5f65982a
3757]
3758[Fix Trac #4003: fix the knot-tying in checkHiBootIface
3759simonpj@microsoft.com**20100511075026
3760 Ignore-this: a9ce2a318386fdc8782848df84592002
3761 
3762 I had incorrectly "optimised" checkHiBootIface so that it forgot
3763 to update the "knot-tied" type environment.
3764 
3765 This patch fixes the HEAD
3766]
3767[Re-engineer the derived Ord instance generation code (fix Trac #4019)
3768simonpj@microsoft.com**20100510133333
3769 Ignore-this: 8fe46e4dad27fbee211a7928acf372c2
3770   
3771 As well as fixing #4019, I rejigged the way that Ord instances are
3772 generated, which should make them faster in general.  See the
3773 Note [Generating Ord instances].
3774 
3775 I tried to measure the performance difference from this change, but
3776 the #4019 fix only removes one conditional branch per iteration, and
3777 I couldn't measure a consistent improvement.  But still, tihs is
3778 better than before.
3779]
3780[Make arity of INLINE things consistent
3781simonpj@microsoft.com**20100510133005
3782 Ignore-this: 15e7abf803d1dcb3f4ca760d2d939d0d
3783 
3784 We eta-expand things with INLINE pragmas;
3785 see Note [Eta-expanding INLINE things].
3786 
3787 But I eta-expanded it the wrong amount when the function
3788 was overloaded.  Ooops.
3789]
3790[Compacting GC fix, we forgot to thread the new bq field of StgTSO.
3791Simon Marlow <marlowsd@gmail.com>**20100510082325
3792 Ignore-this: a079c8446e2ad53efff6fd95d0f3ac80
3793]
3794[Add version constraints for the boot packages; fixes trac #3852
3795Ian Lynagh <igloo@earth.li>**20100509175051
3796 When using the bootstrapping compiler, we now explicitly constrain
3797 the version of boot packages (Cabal, extensible-exceptions, etc) to the
3798 in-tree version, so that the build system is less fragile should the
3799 user have a newer version installed for the bootstrapping compiler.
3800]
3801[Don't include inter-package dependencies when compiling with stage 0; #4031
3802Ian Lynagh <igloo@earth.li>**20100509130511
3803 This fixes a problem when building with GHC 6.12 on Windows, where
3804 dependencies on stage 0 (bootstrapping compiler) packages have absolute
3805 paths c:/ghc/..., and make gets confused by the colon.
3806]
3807[Add a ghc.mk for bindisttest/
3808Ian Lynagh <igloo@earth.li>**20100508223911]
3809[Move some make variables around so they are available when cleaning
3810Ian Lynagh <igloo@earth.li>**20100508212405]
3811[Optimise checkremove a bit
3812Ian Lynagh <igloo@earth.li>**20100508202006]
3813[Improve the bindisttest Makefile
3814Ian Lynagh <igloo@earth.li>**20100508195450]
3815[Add tools to test that cleaning works properly
3816Ian Lynagh <igloo@earth.li>**20100508194105]
3817[Tweak the ghc-pkg finding code
3818Ian Lynagh <igloo@earth.li>**20100508125815
3819 It now understand the ghc-stage[123] names we use in-tree, and it won't
3820 go looking for any old ghc-pkg if it can't find the one that matches
3821 ghc.
3822]
3823[Add a way to show what cleaning would be done, without actually doing it
3824Ian Lynagh <igloo@earth.li>**20100508122438]
3825[Tidy up the "rm" flags in the build system
3826Ian Lynagh <igloo@earth.li>**20100508115745]
3827[Fix crash in nested callbacks (#4038)
3828Simon Marlow <marlowsd@gmail.com>**20100507093222
3829 Ignore-this: cade85e361534ce711865a4820276388
3830 Broken by "Split part of the Task struct into a separate struct
3831 InCall".
3832]
3833[Add $(GhcDynamic) knob, set to YES to get stage2 linked with -dynamic
3834Simon Marlow <marlowsd@gmail.com>**20100428205241
3835 Ignore-this: 1db8bccf92099785ecac39aebd27c92d
3836 Default currently NO.
3837 
3838 Validate passed with GhcDynamic=YES on x86/Linux here.
3839 
3840 The compiler is currently slower on x86 when linked -dynamic,
3841 because the GC inner loop has been adversely affected by -fPIC, I'm
3842 looking into how to fix it.
3843]
3844[omit "dyn" from the way appended to the __stginit label
3845Simon Marlow <marlowsd@gmail.com>**20100428204914
3846 Ignore-this: 14183f3defa9f2bde68fda6729b740bc
3847 When GHCi is linked dynamically, we still want to be able to load
3848 non-dynamic object files.
3849]
3850[improvements to findPtr(), a neat hack for browsing the heap in gdb
3851Simon Marlow <marlowsd@gmail.com>**20100506115427
3852 Ignore-this: ac57785bb3e13b97a5945f753f068738
3853]
3854[Fix +RTS -G1
3855Simon Marlow <marlowsd@gmail.com>**20100506110739
3856 Ignore-this: 86a5de39a94d3331a4ee1213f82be497
3857]
3858[Enable the "redundant specialise pragmas" warning; fixes trac #3855
3859Ian Lynagh <igloo@earth.li>**20100506175351]
3860[Find the correct external ids when there's a wrapper
3861simonpj@microsoft.com**20100506164135
3862 Ignore-this: 636266407b174b05b2b8646cc73062c0
3863 
3864 We were failing to externalise the wrapper id for a function
3865 that had one.
3866]
3867[Add a comment about pattern coercions
3868simonpj@microsoft.com**20100506164027
3869 Ignore-this: 17428089f3df439f65d892e23e8ed61a
3870]
3871[Comments only
3872simonpj@microsoft.com**20100506163829
3873 Ignore-this: 169167b6463873ab173cc5750c5be469
3874]
3875[Make a missing name in mkUsageInfo into a panic
3876simonpj@microsoft.com**20100506163813
3877 Ignore-this: b82ff1b8bf89f74f146db7cb5cc4c4d7
3878 
3879 We really want to know about this!
3880]
3881[Refactoring of hsXxxBinders
3882simonpj@microsoft.com**20100506163737
3883 Ignore-this: 97c6667625262b160f9746f7bea1c980
3884 
3885 This patch moves various functions that extract the binders
3886 from a HsTyClDecl, HsForeignDecl etc into HsUtils, and gives
3887 them consistent names.
3888]
3889[Fix Trac #3966: warn about useless UNPACK pragmas
3890simonpj@microsoft.com**20100506163337
3891 Ignore-this: 5beb24b686eda6113b614dfac8490df1
3892 
3893 Warning about useless UNPACK pragmas wasn't as easy as I thought.
3894 I did quite a bit of refactoring, which improved the code by refining
3895 the types somewhat.  In particular notice that in DataCon, we have
3896 
3897     dcStrictMarks   :: [HsBang]
3898     dcRepStrictness :: [StrictnessMarks]
3899 
3900 The former relates to the *source-code* annotation, the latter to
3901 GHC's representation choice.
3902]
3903[Make tcg_dus behave more sanely; fixes a mkUsageInfo panic
3904simonpj@microsoft.com**20100506162719
3905 Ignore-this: d000bca15b0e127e297378ded1bfb81b
3906 
3907 The tcg_dus field used to contain *uses* of type and class decls,
3908 but not *defs*.  That was inconsistent, and it really went wrong
3909 for Template Haskell bracket.  What happened was that
3910  foo = [d| data A = A
3911                   f :: A -> A
3912                   f x = x |]
3913 would find a "use" of A when processing the top level of the module,
3914 which in turn led to a mkUsageInfo panic in MkIface.  The cause was
3915 the fact that the tcg_dus for the nested quote didn't have defs for
3916 A.
3917]
3918[Add a HsExplicitFlag to SpliceDecl, to improve Trac #4042
3919simonpj@microsoft.com**20100506161523
3920 Ignore-this: e4e563bac2fd831cc9e94612f5b4fa9d
3921 
3922 The issue here is that
3923 
3924     g :: A -> A
3925     f
3926     data A = A
3927 
3928 is treated as if you'd written $(f); that is the call of
3929 f is a top-level Template Haskell splice.  This patch
3930 makes sure that we *first* check the -XTemplateHaskellFlag
3931 and bleat about a parse error if it's off.  Othewise we
3932 get strange seeing "A is out of scope" errors.
3933]
3934[Change an assert to a warn
3935simonpj@microsoft.com**20100506161111
3936 Ignore-this: 739a4fb4c7940376b0f2c8ad52a1966c
3937 
3938 This is in the constraint simplifier which I'm about
3939 to rewrite, so I'm hoping the assert isn't fatal!
3940]
3941[Tidy up debug print a little
3942simonpj@microsoft.com**20100506161027
3943 Ignore-this: bd5492878e06bee1cddcbb3fc4df66d8
3944]
3945[Remove useless UNPACK pragmas
3946simonpj@microsoft.com**20100506161012
3947 Ignore-this: 3e5ab1a7cf58107034412a798bc214e5
3948]
3949[Add WARNM2 macro, plus some refactoring
3950simonpj@microsoft.com**20100506160808
3951 Ignore-this: 2ab4f1f0b5d94be683036e77aec09255
3952]
3953[Use -Wwarn for the binary package, becuase it has redundant UNPACK pragmas
3954simonpj@microsoft.com**20100506160750
3955 Ignore-this: cf0d3a11473e28bfce9602e716e69a5f
3956]
3957[Fix Trac #3966: warn about unused UNPACK pragmas
3958simonpj@microsoft.com**20100409201812
3959 Ignore-this: c96412596b39c918b5fb9b3c39ce2119
3960]
3961[Fix Trac #3953: fail earlier when using a bogus quasiquoter
3962simonpj@microsoft.com**20100409201748
3963 Ignore-this: ef48e39aa932caed538643985234f043
3964]
3965[Fix Trac #3965: tighten conditions when deriving Data
3966simonpj@microsoft.com**20100409184420
3967 Ignore-this: 96f7d7d2da11565d26b465d7d0497ac9
3968 
3969 It's tricky to set up the context for a Data instance.  I got it wrong
3970 once, and fixed it -- hence the "extra_constraints" in
3971 TcDeriv.inferConstraints. 
3972 
3973 But it still wasn't right!  The tricky bit is that dataCast1 is only
3974 generated when T :: *->*, and dataCast2 when T :: *->*->*. (See
3975 the code in TcGenDeriv for dataCastX.
3976]
3977[Fix Trac #3964: view patterns in DsArrows
3978simonpj@microsoft.com**20100409165557
3979 Ignore-this: d823c182831d5e2e592e995b16180e2f
3980 
3981 Just a missing case; I've eliminated the catch-all so
3982 that we get a warning next time we extend HsPat
3983]
3984[Fix Trac #3955: renamer and type variables
3985simonpj@microsoft.com**20100409163710
3986 Ignore-this: bd5ec64d76c0f583bf5f224792bf294c
3987 
3988 The renamer wasn't computing the free variables of a type declaration
3989 properly.  This patch refactors a bit, and makes it more robust,
3990 fixing #3955 and several other closely-related bugs.  (We were
3991 omitting some free variables and that could just possibly lead to a
3992 usage-version tracking error.
3993]
3994[Layout only
3995simonpj@microsoft.com**20100409163506
3996 Ignore-this: 1f14990b5aa0b9821b84452fb34e9f41
3997]
3998[Give a better deprecated message for INCLUDE pragmas; fixes #3933
3999Ian Lynagh <igloo@earth.li>**20100506130910
4000 We now have a DeprecatedFullText constructor, so we can override the
4001 "-#include is deprecated: " part of the warning.
4002]
4003[De-haddock a comment that confuses haddock
4004Ian Lynagh <igloo@earth.li>**20100506123607]
4005[Fix comment to not confuse haddock
4006Ian Lynagh <igloo@earth.li>**20100506113642]
4007[Detect EOF when trying to parse a string in hp2ps
4008Ian Lynagh <igloo@earth.li>**20100506000830]
4009[Make the demand analyser sdd demands for strict constructors
4010simonpj@microsoft.com**20100505200936
4011 Ignore-this: eb32632adbc354eb7a5cf884c263e0d3
4012 
4013 This opportunity was spotted by Roman, and is documented in
4014 Note [Add demands for strict constructors] in DmdAnal.
4015]
4016[Fix interaction of exprIsCheap and the lone-variable inlining check
4017simonpj@microsoft.com**20100505200723
4018 Ignore-this: f3cb65085c5673a99153d5d7b6559ab1
4019 
4020 See Note [Interaction of exprIsCheap and lone variables] in CoreUnfold
4021 
4022 This buglet meant that a nullary definition with an INLINE pragma
4023 counter-intuitively didn't get inlined at all.  Roman identified
4024 the bug.
4025]
4026[Matching cases in SpecConstr and Rules
4027simonpj@microsoft.com**20100505200543
4028 Ignore-this: f5c28c780fbf8badce84c6fdc9aa1779
4029 
4030 This patch has zero effect.  It includes comments,
4031 a bit of refactoring, and a tiny bit of commment-out
4032 code go implement the "matching cases" idea below.
4033 
4034 In the end I've left it disabled because while I think
4035 it does no harm I don't think it'll do any good either.
4036 But I didn't want to lose the idea totally. There's
4037 a thread called "Storable and constant memory" on
4038 the libraries@haskell.org list (Apr 2010) about it.
4039 
4040 Note [Matching cases]
4041 ~~~~~~~~~~~~~~~~~~~~~
4042 {- NOTE: This idea is currently disabled.  It really only works if
4043          the primops involved are OkForSpeculation, and, since
4044         they have side effects readIntOfAddr and touch are not.
4045         Maybe we'll get back to this later .  -}
4046   
4047 Consider
4048    f (case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
4049       case touch# fp s# of { _ ->
4050       I# n# } } )
4051 This happened in a tight loop generated by stream fusion that
4052 Roman encountered.  We'd like to treat this just like the let
4053 case, because the primops concerned are ok-for-speculation.
4054 That is, we'd like to behave as if it had been
4055    case readIntOffAddr# p# i# realWorld# of { (# s#, n# #) ->
4056    case touch# fp s# of { _ ->
4057    f (I# n# } } )
4058]
4059[Comments only
4060simonpj@microsoft.com**20100504163629
4061 Ignore-this: 3be12df04714aa820bce706b5dc8a9cb
4062]
4063[Comments only
4064simonpj@microsoft.com**20100504163529
4065 Ignore-this: 791e2fd39c7d880ce1dc80ebdf3a5398
4066]
4067[Comments only
4068simonpj@microsoft.com**20100504163457
4069 Ignore-this: f19e9ffeb3d65770b1595bca5f97a59d
4070]
4071[Comments only (about type families)
4072simonpj@microsoft.com**20100417145032
4073 Ignore-this: dd39425ef2155d52dbf55a4d5fd97cb8
4074]
4075[Fix hp2ps when the .hp file has large string literals
4076Ian Lynagh <igloo@earth.li>**20100505191921]
4077[In build system, call package-config after including package data
4078Ian Lynagh <igloo@earth.li>**20100504225035
4079 Otherwise the $1_$2_HC_OPTS variable gets clobbered.
4080]
4081[runghc: flush stdout/stderr on an exception (#3890)
4082Simon Marlow <marlowsd@gmail.com>**20100505133848
4083 Ignore-this: 224c1898cec64cb1c94e0d7033e7590e
4084]
4085[Remove the Unicode alternative for ".." (#3894)
4086Simon Marlow <marlowsd@gmail.com>**20100505121202
4087 Ignore-this: 2452cd67281667106f9169747b6d784f
4088]
4089[tidyup; no functional changes
4090Simon Marlow <marlowsd@gmail.com>**20100505115015
4091 Ignore-this: d0787e5cdeef1dee628682fa0a46019
4092]
4093[Make the running_finalizers flag task-local
4094Simon Marlow <marlowsd@gmail.com>**20100505114947
4095 Ignore-this: 345925d00f1dca203941b3c5d84c90e1
4096 Fixes a bug reported by Lennart Augustsson, whereby we could get an
4097 incorrect error from the RTS about re-entry from a finalizer,
4098]
4099[add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping
4100Simon Marlow <marlowsd@gmail.com>**20100505114746
4101 Ignore-this: efea04991d6feed04683a42232fc85da
4102]
4103[Allow filepath-1.2.*
4104Simon Marlow <marlowsd@gmail.com>**20100505101139
4105 Ignore-this: 1b5580cd9cd041ec48f40cd37603326a
4106]
4107[BlockedOnMsgThrowTo is possible in resurrectThreads (#4030)
4108Simon Marlow <marlowsd@gmail.com>**20100505094534
4109 Ignore-this: ac24a22f95ffeaf480187a1620fdddb2
4110]
4111[Don't raise a throwTo when the target is masking and BlockedOnBlackHole
4112Simon Marlow <marlowsd@gmail.com>**20100505094506
4113 Ignore-this: 302616931f61667030d77ddfbb02374e
4114]
4115[Fix build with GHC 6.10
4116Ian Lynagh <igloo@earth.li>**20100504180302
4117 In GHC 6.10, intersectionWith is (a -> b -> a) instead of (a -> b -> c),
4118 so we need to jump through some hoops to get the more general type.
4119]
4120[The libffi patches are no longer needed
4121Ian Lynagh <igloo@earth.li>**20100504171603]
4122[Use the in-tree windres; fixes trac #4032
4123Ian Lynagh <igloo@earth.li>**20100504170941]
4124[Print unfoldings on lambda-bound variables
4125Simon PJ <simonpj@microsoft.com>**20100503181822
4126 Ignore-this: 2fd5a7502cc6273d96258e0914f0f8cd
4127 
4128 ...in the unusual case where they have one;
4129 see Note [Case binders and join points] in Simplify.lhs
4130]
4131[Replace FiniteMap and UniqFM with counterparts from containers.
4132Milan Straka <fox@ucw.cz>**20100503171315
4133 Ignore-this: a021972239163dbf728284b19928cebb
4134 
4135 The original interfaces are kept. There is small performance improvement:
4136 - when compiling for five nofib, we get following speedups:
4137     Average                -----           -2.5%
4138     Average                -----           -0.6%
4139     Average                -----           -0.5%
4140     Average                -----           -5.5%
4141     Average                -----          -10.3%
4142 - when compiling HPC ten times, we get:
4143     switches                          oldmaps   newmaps
4144     -O -fasm                          117.402s  116.081s (98.87%)
4145     -O -fasm -fregs-graph             119.993s  118.735s (98.95%)
4146     -O -fasm -fregs-iterative         120.191s  118.607s (98.68%)
4147]
4148[Make the demand analyser take account of lambda-bound unfoldings
4149Simon PJ <simonpj@microsoft.com>**20100503151630
4150 Ignore-this: 2ee8e27d4df2debfc79e6b8a17c32bc1
4151 
4152 This is a long-standing lurking bug. See Note [Lamba-bound unfoldings]
4153 in DmdAnal.
4154 
4155 I'm still not really happy with this lambda-bound-unfolding stuff.
4156]
4157[Fix dynamic libs on OS X, and enable them by default
4158Ian Lynagh <igloo@earth.li>**20100503150302]
4159[Switch back to using bytestring from the darcs repo; partially fixes #3855
4160Ian Lynagh <igloo@earth.li>**20100502113458]
4161[Fix some cpp warnings when building on FreeBSD; patch from Gabor PALI
4162Ian Lynagh <igloo@earth.li>**20100428150700]
4163[Fix "make 2"
4164Ian Lynagh <igloo@earth.li>**20100427162212
4165 The new Makefile logic was enabling the stage 1 rules when stage=2,
4166 so "make 2" was rebuilding stage 1.
4167]
4168[Inplace programs depend on their shell wrappers
4169Ian Lynagh <igloo@earth.li>**20100427160038]
4170[--make is now the default (#3515), and -fno-code works with --make (#3783)
4171Simon Marlow <marlowsd@gmail.com>**20100427122851
4172 Ignore-this: 33330474fa4703f32bf9997462b4bf3c
4173 If the command line contains any Haskell source files, then we behave
4174 as if --make had been given.
4175 
4176 The meaning of the -c flag has changed (back): -c now selects one-shot
4177 compilation, but stops before linking.  However, to retain backwards
4178 compatibility, -c is still allowed with --make, and means the same as
4179 --make -no-link.  The -no-link flag has been un-deprecated.
4180 
4181 -fno-code is now allowed with --make (#3783); the fact that it was
4182 disabled before was largely accidental, it seems.  We also had some
4183 regressions in this area: it seems that -fno-code was causing a .hc
4184 file to be emitted in certain cases.  I've tidied up the code, there
4185 was no need for -fno-code to be a "mode" flag, as far as I can tell.
4186 
4187 -fno-code does not emit interface files, nor does it do recompilation
4188 checking, as suggested in #3783.  This would make Haddock emit
4189 interface files, for example, and I'm fairly sure we don't want to do
4190 that.  Compiling with -fno-code is pretty quick anyway, perhaps we can
4191 get away without recompilation checking.
4192]
4193[remove duplicate docs for -e in --help output (#4010)
4194Simon Marlow <marlowsd@gmail.com>**20100426140642
4195 Ignore-this: 187ff893ba8ffa0ec127867a7590e38d
4196]
4197[workaround for #4003, fixes HEAD build with 6.12.2
4198Simon Marlow <marlowsd@gmail.com>**20100426103428
4199 Ignore-this: c4bc445dc8052d4e6efef3f1daf63562
4200]
4201[Make sure all the clean rules are always included
4202Ian Lynagh <igloo@earth.li>**20100424181823
4203 In particular, this fixes a problem where stage3 bits weren't being cleaned
4204]
4205[Correct the name of the amd64/FreeBSD platform in PlatformSupportsSharedLibs
4206Ian Lynagh <igloo@earth.li>**20100424132830
4207 We weren't getting sharedlibs on amd64/FreeBSD because of this
4208]
4209[Include DPH docs in bindists
4210Ian Lynagh <igloo@earth.li>**20100424123101]
4211[reinstate eta-expansion during SimplGently, to fix inlining of sequence_
4212Simon Marlow <marlowsd@gmail.com>**20100423124853
4213 Ignore-this: 4fa0fd5bafe0d6b58fc81076f50d5f8d
4214]
4215[fix 64-bit value for W_SHIFT, which thankfully appears to be not used
4216Simon Marlow <marlowsd@gmail.com>**20100422213605
4217 Ignore-this: 525c062d2456c224ec8d0e083edd3b55
4218]
4219[Add missing constant folding and optimisation for unsigned division
4220Simon Marlow <marlowsd@gmail.com>**20100422213443
4221 Ignore-this: fb10d1cda0852fab0cbcb47247498fb3
4222 Noticed by Denys Rtveliashvili <rtvd@mac.com>, see #4004
4223]
4224[Fix the GHC API link in the main doc index.html
4225Ian Lynagh <igloo@earth.li>**20100422213226]
4226[Give the right exit code in darcs-all
4227Ian Lynagh <igloo@earth.li>**20100421171339
4228 Our END block was calling system, which alters $?. So now we save and
4229 restore it.
4230]
4231[Use StgWord64 instead of ullong
4232Ian Lynagh <igloo@earth.li>**20100421162336
4233 This patch also fixes ullong_format_string (renamed to showStgWord64)
4234 so that it works with values outside the 32bit range (trac #3979), and
4235 simplifies the without-commas case.
4236]
4237[Implement try10Times in Makefile
4238Ian Lynagh <igloo@earth.li>**20100420165909
4239 Avoid using seq, as FreeBSD has jot instead.
4240]
4241[Fix crash in non-threaded RTS on Windows
4242Simon Marlow <marlowsd@gmail.com>**20100420122125
4243 Ignore-this: 28b0255a914a8955dce02d89a7dfaca
4244 The tso->block_info field is now overwritten by pushOnRunQueue(), but
4245 stg_block_async_info was assuming that it still held a pointer to the
4246 StgAsyncIOResult.  We must therefore save this value somewhere safe
4247 before putting the TSO on the run queue.
4248]
4249[Expand the scope of the event_buf_mutex to cover io_manager_event
4250Simon Marlow <marlowsd@gmail.com>**20100420122026
4251 Ignore-this: 185a6d84f7d4a35997f10803f6dacef1
4252 I once saw a failure that I think was due to a race on
4253 io_manager_event, this should fix it.
4254]
4255[Flags -auto and -auto-all operate only on functions not marked INLINE.
4256Milan Straka <fox@ucw.cz>**20100331191050
4257 Ignore-this: 3b63580cfcb3c33d62ad697c36d94d05
4258]
4259[Spelling correction for LANGUAGE pragmas
4260Max Bolingbroke <batterseapower@hotmail.com>**20100413192825
4261 Ignore-this: 311b51ba8d43f6c7fd32f48db9a88dee
4262]
4263[Update the user guide so it talks about the newer "do rec" notation everywhere
4264Ian Lynagh <igloo@earth.li>**20100416205416
4265 Some of the problems highlighted in trac #3968.
4266]
4267[Fix typo
4268Ian Lynagh <igloo@earth.li>**20100416205412]
4269[Fix Trac #3950: unifying types of different kinds
4270simonpj@microsoft.com**20100412151845
4271 Ignore-this: d145b9de5ced136ef2c39f3ea4a04f4a
4272 
4273 I was assuming that the unifer only unified types of the
4274 same kind, but now we can "defer" unsolved constraints that
4275 invariant no longer holds.  Or at least is's more complicated
4276 to ensure. 
4277 
4278 This patch takes the path of not assuming the invariant, which
4279 is simpler and more robust.  See
4280 Note [Mismatched type lists and application decomposition]
4281]
4282[Fix Trac #3943: incorrect unused-variable warning
4283simonpj@microsoft.com**20100412151630
4284 Ignore-this: 52459f2b8b02c3cb120abe674dc9a060
4285 
4286 In fixing this I did the usual little bit of refactoring
4287]
4288[Convert boot and boot-pkgs to perl
4289Ian Lynagh <igloo@earth.li>**20100415143919
4290 This stops us having to worry about sh/sed/... portability.
4291]
4292[Use $(MAKE), not make, when recursively calling make
4293Ian Lynagh <igloo@earth.li>**20100415121453]
4294[Remove the ghc_ge_609 makefile variables
4295Ian Lynagh <igloo@earth.li>**20100412235658
4296 They are now guaranteed to be YES
4297]
4298[Increase the minimum version number required to 6.10 in configure.ac
4299Ian Lynagh <igloo@earth.li>**20100412235313]
4300[The bootstrapping compiler is now required to be > 609
4301Ian Lynagh <igloo@earth.li>**20100409161046]
4302[Handle IND_STATIC in isRetainer
4303Ian Lynagh <igloo@earth.li>**20100409104207
4304 IND_STATIC used to be an error, but at the moment it can happen
4305 as isAlive doesn't look through IND_STATIC as it ignores static
4306 closures. See trac #3956 for a program that hit this error.
4307]
4308[Add Data and Typeable instances to HsSyn
4309David Waern <david.waern@gmail.com>**20100330011020
4310 Ignore-this: c3f2717207b15539fea267c36b686e6a
4311 
4312 The instances (and deriving declarations) have been taken from the ghc-syb
4313 package.
4314]
4315[Fix for derefing ThreadRelocated TSOs in MVar operations
4316Simon Marlow <marlowsd@gmail.com>**20100407092824
4317 Ignore-this: 94dd7c68a6094eda667e2375921a8b78
4318]
4319[sanity check fix
4320Simon Marlow <marlowsd@gmail.com>**20100407092746
4321 Ignore-this: 9c18cd5f5393e5049015ca52e62a1269
4322]
4323[get the reg liveness right in the putMVar# heap check
4324Simon Marlow <marlowsd@gmail.com>**20100407092724
4325 Ignore-this: b1ba07a59ecfae00e9a1f8391741abc
4326]
4327[initialise the headers of MSG_BLACKHOLE objects properly
4328Simon Marlow <marlowsd@gmail.com>**20100407081712
4329 Ignore-this: 183dcd0ca6a395d08db2be12b02bdd79
4330]
4331[initialise the headers of MVAR_TSO_QUEUE objects properly
4332Simon Marlow <marlowsd@gmail.com>**20100407081514
4333 Ignore-this: 4b4a2f30cf2fb69ca4128c41744687bb
4334]
4335[undo debugging code
4336Simon Marlow <marlowsd@gmail.com>**20100406142740
4337 Ignore-this: 323c2248f817b6717c19180482fc4b00
4338]
4339[putMVar#: fix reg liveness in the heap check
4340Simon Marlow <marlowsd@gmail.com>**20100406135832
4341 Ignore-this: cddd2c7807ac7612c9b2c4c0d384d284
4342]
4343[account for the new BLACKHOLEs in the GHCi debugger
4344Simon Marlow <marlowsd@gmail.com>**20100406133406
4345 Ignore-this: 4d4aeb4bbada3f50dc1fb0123f565e8f
4346]
4347[don't forget to deRefTSO() in tryWakeupThread()
4348Simon Marlow <marlowsd@gmail.com>**20100406130411
4349 Ignore-this: 171d57c4f8653835dec0b69f9be9881c
4350]
4351[Fix bug in popRunQueue
4352Simon Marlow <marlowsd@gmail.com>**20100406091453
4353 Ignore-this: 9d3cec8f18f5c5cbd51751797386eb6f
4354]
4355[fix bug in migrateThread()
4356Simon Marlow <marlowsd@gmail.com>**20100401105840
4357 Ignore-this: 299bcf0d1ea0f8865f3e845eb93d2ad3
4358]
4359[Remove the IND_OLDGEN and IND_OLDGEN_PERM closure types
4360Simon Marlow <marlowsd@gmail.com>**20100401093519
4361 Ignore-this: 95f2480c8a45139835eaf5610217780b
4362 These are no longer used: once upon a time they used to have different
4363 layout from IND and IND_PERM respectively, but that is no longer the
4364 case since we changed the remembered set to be an array of addresses
4365 instead of a linked list of closures.
4366]
4367[Change the representation of the MVar blocked queue
4368Simon Marlow <marlowsd@gmail.com>**20100401091605
4369 Ignore-this: 20a35bfabacef2674df362905d7834fa
4370 
4371 The list of threads blocked on an MVar is now represented as a list of
4372 separately allocated objects rather than being linked through the TSOs
4373 themselves.  This lets us remove a TSO from the list in O(1) time
4374 rather than O(n) time, by marking the list object.  Removing this
4375 linear component fixes some pathalogical performance cases where many
4376 threads were blocked on an MVar and became unreachable simultaneously
4377 (nofib/smp/threads007), or when sending an asynchronous exception to a
4378 TSO in a long list of thread blocked on an MVar.
4379 
4380 MVar performance has actually improved by a few percent as a result of
4381 this change, slightly to my surprise.
4382 
4383 This is the final cleanup in the sequence, which let me remove the old
4384 way of waking up threads (unblockOne(), MSG_WAKEUP) in favour of the
4385 new way (tryWakeupThread and MSG_TRY_WAKEUP, which is idempotent).  It
4386 is now the case that only the Capability that owns a TSO may modify
4387 its state (well, almost), and this simplifies various things.  More of
4388 the RTS is based on message-passing between Capabilities now.
4389]
4390[eliminate some duplication with a bit of CPP
4391Simon Marlow <marlowsd@gmail.com>**20100330154355
4392 Ignore-this: 838f7d341f096ca14c86ab9c81193e36
4393]
4394[Make ioManagerDie() idempotent
4395Simon Marlow <marlowsd@gmail.com>**20100401100705
4396 Ignore-this: a5996b43cdb2e2d72e6e971d7ea925fb
4397 Avoids screeds of "event buffer overflowed; event dropped" in
4398 conc059(threaded1).
4399]
4400[Move a thread to the front of the run queue when another thread blocks on it
4401Simon Marlow <marlowsd@gmail.com>**20100329144521
4402 Ignore-this: c518ff0d41154680edc811d891826a29
4403 This fixes #3838, and was made possible by the new BLACKHOLE
4404 infrastructure.  To allow reording of the run queue I had to make it
4405 doubly-linked, which entails some extra trickiness with regard to
4406 GC write barriers and suchlike.
4407]
4408[remove non-existent MUT_CONS symbols
4409Simon Marlow <marlowsd@gmail.com>**20100330152600
4410 Ignore-this: 885628257a9d03f2ece2a754d993014a
4411]
4412[change throwTo to use tryWakeupThread rather than unblockOne
4413Simon Marlow <marlowsd@gmail.com>**20100329144613
4414 Ignore-this: 10ad4965e6c940db71253f1c72218bbb
4415]
4416[tiny GC optimisation
4417Simon Marlow <marlowsd@gmail.com>**20100329144551
4418 Ignore-this: 9e095b9b73fff0aae726f9937846ba92
4419]
4420[New implementation of BLACKHOLEs
4421Simon Marlow <marlowsd@gmail.com>**20100329144456
4422 Ignore-this: 96cd26793b4e6ab9ddd0d59aae5c2f1d
4423 
4424 This replaces the global blackhole_queue with a clever scheme that
4425 enables us to queue up blocked threads on the closure that they are
4426 blocked on, while still avoiding atomic instructions in the common
4427 case.
4428 
4429 Advantages:
4430 
4431  - gets rid of a locked global data structure and some tricky GC code
4432    (replacing it with some per-thread data structures and different
4433    tricky GC code :)
4434 
4435  - wakeups are more prompt: parallel/concurrent performance should
4436    benefit.  I haven't seen anything dramatic in the parallel
4437    benchmarks so far, but a couple of threading benchmarks do improve
4438    a bit.
4439 
4440  - waking up a thread blocked on a blackhole is now O(1) (e.g. if
4441    it is the target of throwTo).
4442 
4443  - less sharing and better separation of Capabilities: communication
4444    is done with messages, the data structures are strictly owned by a
4445    Capability and cannot be modified except by sending messages.
4446 
4447  - this change will utlimately enable us to do more intelligent
4448    scheduling when threads block on each other.  This is what started
4449    off the whole thing, but it isn't done yet (#3838).
4450 
4451 I'll be documenting all this on the wiki in due course.
4452 
4453]
4454[Fix warnings (allow pushOnRunQueue() to not be inlined)
4455Simon Marlow <marlowsd@gmail.com>**20100401114559
4456 Ignore-this: f40bfbfad70a5165a946d11371605b7d
4457]
4458[remove out of date comment
4459Simon Marlow <marlowsd@gmail.com>**20100401105853
4460 Ignore-this: 26af88dd418ee0bcda7223b3b7e4e8d2
4461]
4462[tidy up spacing in stderr traces
4463Simon Marlow <marlowsd@gmail.com>**20100326163122
4464 Ignore-this: 16558b0433a274be217d4bf39aa4946
4465]
4466[Fix an assertion that was not safe when running in parallel
4467Simon Marlow <marlowsd@gmail.com>**20100325143656
4468 Ignore-this: cad08fb8900eb3a475547af0189fcc47
4469]
4470[Never jump directly to a thunk's entry code, even if it is single-entry
4471Simon Marlow <marlowsd@gmail.com>**20100325114847
4472 Ignore-this: 938da172c06a97762ef605c8fccfedf1
4473 I don't think this fixes any bugs as we don't have single-entry thunks
4474 at the moment, but it could cause problems for parallel execution if
4475 we ever did re-introduce update avoidance.
4476]
4477[Rename forgotten -dverbose-simpl to -dverbose-core2core in the docs.
4478Milan Straka <fox@ucw.cz>**20100331153626
4479 Ignore-this: 2da58477fb96e1cfb80f37dddd7c422c
4480]
4481[Add -pa and -V to the documentation of time profiling options.
4482Milan Straka <fox@ucw.cz>**20100329191121
4483 Ignore-this: be74d216481ec5a19e5f40f85e6e3d65
4484]
4485[Keep gcc 4.5 happy
4486Simon Marlow <marlowsd@gmail.com>**20100330120425
4487 Ignore-this: 7811878cc2bd1ce9cfbb5bf102fe3454
4488]
4489[Fix warning compiling Linker.c for PPC Mac
4490naur@post11.tele.dk**20100403182355
4491 Ignore-this: e2d2448770c9714ce17dd6cf3e297063
4492 The warning message eliminated is:
4493 > rts/Linker.c:4756:0:
4494 >      warning: nested extern declaration of 'symbolsWithoutUnderscore'
4495]
4496[Fix error compiling AsmCodeGen.lhs for PPC Mac (mkRtsCodeLabel)
4497naur@post11.tele.dk**20100403181656
4498 Ignore-this: deb7524ea7852a15a2ac0849c8c82f74
4499 The error messages eliminated are:
4500 > compiler/nativeGen/AsmCodeGen.lhs:875:31:
4501 >     Not in scope: `mkRtsCodeLabel'
4502 > compiler/nativeGen/AsmCodeGen.lhs:879:31:
4503 >     Not in scope: `mkRtsCodeLabel'
4504 > compiler/nativeGen/AsmCodeGen.lhs:883:31:
4505 >     Not in scope: `mkRtsCodeLabel'
4506]
4507[Fix error compiling AsmCodeGen.lhs for PPC Mac (DestBlockId)
4508naur@post11.tele.dk**20100403180643
4509 Ignore-this: 71e833e94ed8371b2ffabc2cf80bf585
4510 The error message eliminated is:
4511 > compiler/nativeGen/AsmCodeGen.lhs:637:16:
4512 >     Not in scope: data constructor `DestBlockId'
4513]
4514[Fix boot-pkgs's sed usage to work with Solaris's sed
4515Ian Lynagh <igloo@earth.li>**20100401153441]
4516[Pass "-i org.haskell.GHC" to packagemaker when building the OS X installer
4517Ian Lynagh <igloo@earth.li>**20100331144707
4518 This seems to fix this failure:
4519 [...]
4520 ** BUILD SUCCEEDED **
4521 rm -f -f GHC-system.pmdoc/*-contents.xml
4522 /Developer/usr/bin/packagemaker -v --doc GHC-system.pmdoc\
4523              -o /Users/ian/to_release/ghc-6.12.1.20100330/GHC-6.12.1.20100330-i386.pkg
4524 2010-03-31 15:08:15.695 packagemaker[13909:807] Setting to : 0 (null)
4525 2010-03-31 15:08:15.709 packagemaker[13909:807] Setting to : 0 org.haskell.glasgowHaskellCompiler.ghc.pkg
4526 2010-03-31 15:08:15.739 packagemaker[13909:807] relocate: (null) 0
4527 2010-03-31 15:08:15.740 packagemaker[13909:807] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXMLDocument initWithXMLString:options:error:]: nil argument'
4528 2010-03-31 15:08:15.741 packagemaker[13909:807] Stack: (
4529     2511962091,
4530     2447007291,
4531     2511961547,
4532     2511961610,
4533     2432803204,
4534     453371,
4535     447720,
4536     436209,
4537     435510,
4538     9986,
4539     9918
4540 )
4541 make[1]: *** [framework-pkg] Trace/BPT trap
4542 make: *** [framework-pkg] Error 2
4543]
4544[Use machdepCCOpts when compiling the file to toggle -(no-)rtsopts
4545Ian Lynagh <igloo@earth.li>**20100331161302
4546 Should fix toggling on OS X "Snow Leopard". Diagnosed by Roman Leshchinskiy.
4547]
4548[Avoid a non-portable use of tar reported by Roman Leshchinskiy
4549Ian Lynagh <igloo@earth.li>**20100330145802]
4550[Don't install EXTRA_PACKAGES by default
4551Simon Marlow <marlowsd@gmail.com>**20100330142714
4552 Ignore-this: d4cc8f87a6de8d9d1d6dc9b77130b3
4553]
4554[fix a non-portable printf format
4555Simon Marlow <marlowsd@gmail.com>**20100330134437
4556 Ignore-this: d41c23c54ec29654cb2049de1e588570
4557]
4558[avoid single quote in #error
4559Simon Marlow <marlowsd@gmail.com>**20100330120346
4560 Ignore-this: 663f39e7a27fead2f648fbf22d345bb4
4561]
4562[use FMT_Word64 instead of locally-defined version
4563Simon Marlow <marlowsd@gmail.com>**20100330114650
4564 Ignore-this: 82697b8095dffb3a8e196c687006ece0
4565]
4566[remove old/unused DotnetSupport and GhcLibsWithUnix
4567Simon Marlow <marlowsd@gmail.com>**20100330123732
4568 Ignore-this: c68814868b3671abdc369105bbeafe6c
4569]
4570[fix return type cast in f.i.wrapper when using libffi (#3516)
4571Simon Marlow <marlowsd@gmail.com>**20100329154220
4572 Ignore-this: f898eb8c9ae2ca2009e539735b92c438
4573 
4574 Original fix submitted by
4575   Sergei Trofimovich <slyfox@community.haskell.org>
4576 modified by me:
4577  - exclude 64-bit types
4578  - compare uniques, not strings
4579  - #include "ffi.h" is conditional
4580]
4581[libffi: install 'ffitarget.h' header as sole 'ffi.h' is unusable
4582Simon Marlow <marlowsd@gmail.com>**20100329135734
4583 Ignore-this: f9b555ea289d8df1aa22cb6faa219a39
4584 Submitted by: Sergei Trofimovich <slyfox@community.haskell.org>
4585 Re-recorded against HEAD.
4586]
4587[avoid a fork deadlock (see comments)
4588Simon Marlow <marlowsd@gmail.com>**20100329132329
4589 Ignore-this: 3377f88b83bb3b21e42d7fc5f0d866f
4590]
4591[tidy up the end of the all_tasks list after forking
4592Simon Marlow <marlowsd@gmail.com>**20100329132253
4593 Ignore-this: 819d679875be5f344e816210274d1c29
4594]
4595[Add a 'setKeepCAFs' external function (#3900)
4596Simon Marlow <marlowsd@gmail.com>**20100329110036
4597 Ignore-this: ec532a18cad4259a09847b0b9ae2e1d2
4598]
4599[Explicitly check whether ar supports the @file syntax
4600Ian Lynagh <igloo@earth.li>**20100329123325
4601 rather than assuming that all GNU ar's do.
4602 Apparently OpenBSD's older version doesn't.
4603]
4604[Fix the format specifier for Int64/Word64 on Windows
4605Ian Lynagh <igloo@earth.li>**20100327182126
4606 mingw doesn't understand %llu/%lld - it treats them as 32-bit rather
4607 than 64-bit. We use %I64u/%I64d instead.
4608]
4609[Fix the ghci startmenu item
4610Ian Lynagh <igloo@earth.li>**20100326235934
4611 I'm not sure what changed, but it now doesn't work for me without
4612 the "Start in" field being set.
4613]
4614[Fix paths to docs in "Start Menu" entries in Windows installer; fixes #3847
4615Ian Lynagh <igloo@earth.li>**20100326155917]
4616[Add a licence file for the Windows installer to use
4617Ian Lynagh <igloo@earth.li>**20100326155130]
4618[Add gcc-g++ to the inplace mingw installation; fixes #3893
4619Ian Lynagh <igloo@earth.li>**20100326154714]
4620[Add the licence file to the Windows installer. Fixes #3934
4621Ian Lynagh <igloo@earth.li>**20100326152449]
4622[Quote the paths to alex and happy in configure
4623Ian Lynagh <igloo@earth.li>**20100325143449
4624 Ignore-this: d6d6e1a250f88985bbeea760e63a79db
4625]
4626[Use </> rather than ++ "/"
4627Ian Lynagh <igloo@earth.li>**20100325133237
4628 This stops us generating paths like
4629     c:\foo\/ghc460_0/ghc460_0.o
4630 which windres doesn't understand.
4631]
4632[Append $(exeext) to utils/ghc-pkg_dist_PROG
4633Ian Lynagh <igloo@earth.li>**20100324233447
4634 Fixes bindist creation
4635]
4636[A sanity check
4637Simon Marlow <marlowsd@gmail.com>**20100325110500
4638 Ignore-this: 3b3b76d898c822456857e506b7531e65
4639]
4640[do_checks: do not set HpAlloc if the stack check fails
4641Simon Marlow <marlowsd@gmail.com>**20100325110328
4642 Ignore-this: 899ac8c29ca975d03952dbf4608d758
4643 
4644 This fixes a very rare heap corruption bug, whereby
4645 
4646  - a context switch is requested, which sets HpLim to zero
4647    (contextSwitchCapability(), called by the timer signal or
4648    another Capability).
4649 
4650  - simultaneously a stack check fails, in a code fragment that has
4651    both a stack and a heap check.
4652 
4653 The RTS then assumes that a heap-check failure has occurred and
4654 subtracts HpAlloc from Hp, although in fact it was a stack-check
4655 failure and retreating Hp will overwrite valid heap objects.  The bug
4656 is that HpAlloc should only be set when Hp has been incremented by the
4657 heap check.  See comments in rts/HeapStackCheck.cmm for more details.
4658 
4659 This bug is probably incredibly rare in practice, but I happened to be
4660 working on a test that triggers it reliably:
4661 concurrent/should_run/throwto001, compiled with -O -threaded, args 30
4662 300 +RTS -N2, run repeatedly in a loop.
4663]
4664[comments and formatting only
4665Simon Marlow <marlowsd@gmail.com>**20100325104617
4666 Ignore-this: c0a211e15b5953bb4a84771bcddd1d06
4667]
4668[Change how perl scripts get installed; partially fixes #3863
4669Ian Lynagh <igloo@earth.li>**20100324171422
4670 We now regenerate them when installing, which means the path for perl
4671 doesn't get baked in
4672]
4673[Pass the location of gcc in the ghc wrapper script; partially fixes #3863
4674Ian Lynagh <igloo@earth.li>**20100324171408
4675 This means we don't rely on baking a path to gcc into the executable
4676]
4677[Quote the ar path in configure
4678Ian Lynagh <igloo@earth.li>**20100324162043]
4679[Remove unused cUSER_WAY_NAMES cUSER_WAY_OPTS
4680Ian Lynagh <igloo@earth.li>**20100324145048]
4681[Remove unused cCONTEXT_DIFF
4682Ian Lynagh <igloo@earth.li>**20100324145013]
4683[Remove unused cEnableWin32DLLs
4684Ian Lynagh <igloo@earth.li>**20100324144841]
4685[Remove unused cGHC_CP
4686Ian Lynagh <igloo@earth.li>**20100324144656]
4687[Fix the build for non-GNU-ar
4688Ian Lynagh <igloo@earth.li>**20100324132907]
4689[Tweak the Makefile code for making .a libs; fixes trac #3642
4690Ian Lynagh <igloo@earth.li>**20100323221325
4691 The main change is that, rather than using "xargs ar" we now put
4692 all the filenames into a file, and do "ar @file". This means that
4693 ar adds all the files at once, which works around a problem where
4694 files with the same basename in a later invocation were overwriting
4695 the existing file in the .a archive.
4696]
4697[Enable shared libraries on Windows; fixes trac #3879
4698Ian Lynagh <igloo@earth.li>**20100320231414
4699 Ignore-this: c93b35ec5b7a7fa6ddb286d17a616216
4700]
4701[Add the external core PDF to the new build system
4702Ian Lynagh <igloo@earth.li>**20100321161909]
4703[Allow specifying $threads directly when validating
4704Ian Lynagh <igloo@earth.li>**20100321112835]
4705[Remove LazyUniqFM; fixes trac #3880
4706Ian Lynagh <igloo@earth.li>**20100320213837]
4707[UNDO: slight improvement to scavenging ...
4708Simon Marlow <marlowsd@gmail.com>**20100319153413
4709 Ignore-this: f0ab581c07361f7b57eae02dd6ec893c
4710 
4711 Accidnetally pushed this patch which, while it validates, isn't
4712 correct.
4713 
4714 rolling back:
4715 
4716 Fri Mar 19 11:21:27 GMT 2010  Simon Marlow <marlowsd@gmail.com>
4717   * slight improvement to scavenging of update frames when a collision has occurred
4718 
4719     M ./rts/sm/Scav.c -19 +15
4720]
4721[slight improvement to scavenging of update frames when a collision has occurred
4722Simon Marlow <marlowsd@gmail.com>**20100319112127
4723 Ignore-this: 6de2bb9614978975f17764a0f259d9bf
4724]
4725[Don't install the utf8-string package
4726Ian Lynagh <igloo@earth.li>**20100317212709]
4727[Don't use -Bsymbolic when linking the RTS
4728Ian Lynagh <igloo@earth.li>**20100316233357
4729 This makes the RTS hooks work when doing dynamic linking
4730]
4731[Fix Trac #3920: Template Haskell kinds
4732simonpj@microsoft.com**20100317123519
4733 Ignore-this: 426cac7920446e04f3cc30bd1d9f76e2
4734 
4735 Fix two places where we were doing foldl instead of foldr
4736 after decomposing a Kind.  Strange that the same bug appears
4737 in two quite different places!
4738]
4739[copy_tag_nolock(): fix write ordering and add a write_barrier()
4740Simon Marlow <marlowsd@gmail.com>**20100316143103
4741 Ignore-this: ab7ca42904f59a0381ca24f3eb38d314
4742 
4743 Fixes a rare crash in the parallel GC.
4744 
4745 If we copy a closure non-atomically during GC, as we do for all
4746 immutable values, then before writing the forwarding pointer we better
4747 make sure that the closure itself is visible to other threads that
4748 might follow the forwarding pointer.  I imagine this doesn't happen
4749 very often, but I just found one case of it: in scavenge_stack, the
4750 RET_FUN case, after evacuating ret_fun->fun we then follow it and look
4751 up the info pointer.
4752]
4753[Add sliceP mapping to vectoriser builtins
4754benl@ouroborus.net**20100316060517
4755 Ignore-this: 54c3cafff584006b6fbfd98124330aa3
4756]
4757[Comments only
4758benl@ouroborus.net**20100311064518
4759 Ignore-this: d7dc718cc437d62aa5b1b673059a9b22
4760]
4761[TAG 2010-03-16
4762Ian Lynagh <igloo@earth.li>**20100316005137
4763 Ignore-this: 234e3bc29e2f26cc59d7b03d780cc352
4764]
4765Patch bundle hash:
4766712b1cac9ed1e43858d5956c6568062ff74779d9