Ticket #132: ghc.dpatch

File ghc.dpatch, 161.4 KB (added by igloo, 6 years ago)

Patch to change GHC's parser to support (only) the proposed replacement syntax

2New patches:
4[Make the code compatible with the stricter labelled-field parsing rules
5Ian Lynagh <[email protected]>**20090725211817] {
6hunk ./compiler/basicTypes/SrcLoc.lhs 293
7-isGoodSrcSpan SrcSpanOneLine{} = True
8-isGoodSrcSpan SrcSpanMultiLine{} = True
9-isGoodSrcSpan SrcSpanPoint{} = True
10+isGoodSrcSpan (SrcSpanOneLine{}) = True
11+isGoodSrcSpan (SrcSpanMultiLine{}) = True
12+isGoodSrcSpan (SrcSpanPoint{}) = True
13hunk ./compiler/basicTypes/SrcLoc.lhs 324
14-srcSpanStartLine SrcSpanOneLine{ srcSpanLine=l } = l
15-srcSpanStartLine SrcSpanMultiLine{ srcSpanSLine=l } = l
16-srcSpanStartLine SrcSpanPoint{ srcSpanLine=l } = l
17+srcSpanStartLine (SrcSpanOneLine{ srcSpanLine=l }) = l
18+srcSpanStartLine (SrcSpanMultiLine{ srcSpanSLine=l }) = l
19+srcSpanStartLine (SrcSpanPoint{ srcSpanLine=l }) = l
20hunk ./compiler/basicTypes/SrcLoc.lhs 329
21-srcSpanEndLine SrcSpanOneLine{ srcSpanLine=l } = l
22-srcSpanEndLine SrcSpanMultiLine{ srcSpanELine=l } = l
23-srcSpanEndLine SrcSpanPoint{ srcSpanLine=l } = l
24+srcSpanEndLine (SrcSpanOneLine{ srcSpanLine=l }) = l
25+srcSpanEndLine (SrcSpanMultiLine{ srcSpanELine=l }) = l
26+srcSpanEndLine (SrcSpanPoint{ srcSpanLine=l }) = l
27hunk ./compiler/basicTypes/SrcLoc.lhs 334
28-srcSpanStartCol SrcSpanOneLine{ srcSpanSCol=l } = l
29-srcSpanStartCol SrcSpanMultiLine{ srcSpanSCol=l } = l
30-srcSpanStartCol SrcSpanPoint{ srcSpanCol=l } = l
31+srcSpanStartCol (SrcSpanOneLine{ srcSpanSCol=l }) = l
32+srcSpanStartCol (SrcSpanMultiLine{ srcSpanSCol=l }) = l
33+srcSpanStartCol (SrcSpanPoint{ srcSpanCol=l }) = l
34hunk ./compiler/basicTypes/SrcLoc.lhs 339
35-srcSpanEndCol SrcSpanOneLine{ srcSpanECol=c } = c
36-srcSpanEndCol SrcSpanMultiLine{ srcSpanECol=c } = c
37-srcSpanEndCol SrcSpanPoint{ srcSpanCol=c } = c
38+srcSpanEndCol (SrcSpanOneLine{ srcSpanECol=c }) = c
39+srcSpanEndCol (SrcSpanMultiLine{ srcSpanECol=c }) = c
40+srcSpanEndCol (SrcSpanPoint{ srcSpanCol=c }) = c
41hunk ./compiler/cmm/CmmBuildInfoTables.hs 199
42-     return TopSRT { lbl = top_lbl, next_elt = 0, rev_elts = [], elt_map = emptyFM }
43+     return $ TopSRT { lbl = top_lbl, next_elt = 0, rev_elts = [], elt_map = emptyFM }
44hunk ./compiler/cmm/CmmLex.x 333
45-getInput = P $ \s@PState{ loc=l, buffer=b } -> POk s (l,b)
46+getInput = P $ \s@(PState{ loc=l, buffer=b }) -> POk s (l,b)
47hunk ./compiler/cmm/CmmLex.x 336
48-setInput (l,b) = P $ \s -> POk s{ loc=l, buffer=b } ()
49+setInput (l,b) = P $ \s -> POk (s{ loc=l, buffer=b }) ()
50hunk ./compiler/cmm/CmmProcPoint.hs 45
51-      always_proc_point BrokenBlock {
52-                              brokenBlockEntry = FunctionEntry _ _ _ } = True
53-      always_proc_point BrokenBlock {
54-                              brokenBlockEntry = ContinuationEntry _ _ _ } = True
55+      always_proc_point (BrokenBlock {
56+                              brokenBlockEntry = FunctionEntry _ _ _ }) = True
57+      always_proc_point (BrokenBlock {
58+                              brokenBlockEntry = ContinuationEntry _ _ _ }) = True
59hunk ./compiler/cmm/OptimizationFuel.hs 38
60-     return OptFuelState {pass_ref = pass_ref', fuel_ref = fuel_ref'}
61+     return (OptFuelState {pass_ref = pass_ref', fuel_ref = fuel_ref'})
62hunk ./compiler/codeGen/ClosureInfo.lhs 662
63-blackHoleOnEntry _ ConInfo{} = False
64+blackHoleOnEntry _ (ConInfo{}) = False
65hunk ./compiler/codeGen/ClosureInfo.lhs 848
66-closureUpdReqd ClosureInfo{ closureLFInfo = lf_info } = lfUpdatable lf_info
67-closureUpdReqd ConInfo{} = False
68+closureUpdReqd (ClosureInfo{ closureLFInfo = lf_info }) = lfUpdatable lf_info
69+closureUpdReqd (ConInfo{}) = False
70hunk ./compiler/codeGen/ClosureInfo.lhs 859
71-closureIsThunk ClosureInfo{ closureLFInfo = lf_info } = isLFThunk lf_info
72-closureIsThunk ConInfo{} = False
73+closureIsThunk (ClosureInfo{ closureLFInfo = lf_info }) = isLFThunk lf_info
74+closureIsThunk (ConInfo{}) = False
75hunk ./compiler/codeGen/StgCmmClosure.hs 897
76-blackHoleOnEntry _ ConInfo{} = False
77+blackHoleOnEntry _ (ConInfo{}) = False
78hunk ./compiler/codeGen/StgCmmClosure.hs 937
79-closureUpdReqd ClosureInfo{ closureLFInfo = lf_info } = lfUpdatable lf_info
80-closureUpdReqd ConInfo{} = False
81+closureUpdReqd (ClosureInfo{ closureLFInfo = lf_info }) = lfUpdatable lf_info
82+closureUpdReqd (ConInfo{}) = False
83hunk ./compiler/codeGen/StgCmmClosure.hs 948
84-closureIsThunk ClosureInfo{ closureLFInfo = lf_info } = isLFThunk lf_info
85-closureIsThunk ConInfo{} = False
86+closureIsThunk (ClosureInfo{ closureLFInfo = lf_info }) = isLFThunk lf_info
87+closureIsThunk (ConInfo{}) = False
88hunk ./compiler/deSugar/Coverage.lhs 658
89-                 case m env{ inScope = inScope env `extendVarSetList` new_ids } st of
90+                 case m (env{ inScope = inScope env `extendVarSetList` new_ids }) st of
91hunk ./compiler/ghci/ByteCodeInstr.lhs 240
92-bciStackUse STKCHECK{}            = 0
93-bciStackUse PUSH_L{}             = 1
94-bciStackUse PUSH_LL{}            = 2
95-bciStackUse PUSH_LLL{}            = 3
96-bciStackUse PUSH_G{}             = 1
97-bciStackUse PUSH_PRIMOP{}         = 1
98-bciStackUse PUSH_BCO{}           = 1
99+bciStackUse (STKCHECK{})            = 0
100+bciStackUse (PUSH_L{})           = 1
101+bciStackUse (PUSH_LL{})          = 2
102+bciStackUse (PUSH_LLL{})            = 3
103+bciStackUse (PUSH_G{})                   = 1
104+bciStackUse (PUSH_PRIMOP{})         = 1
105+bciStackUse (PUSH_BCO{})         = 1
106hunk ./compiler/ghci/ByteCodeInstr.lhs 250
107-bciStackUse PUSH_APPLY_N{}       = 1
108-bciStackUse PUSH_APPLY_V{}       = 1
109-bciStackUse PUSH_APPLY_F{}       = 1
110-bciStackUse PUSH_APPLY_D{}       = 1
111-bciStackUse PUSH_APPLY_L{}       = 1
112-bciStackUse PUSH_APPLY_P{}       = 1
113-bciStackUse PUSH_APPLY_PP{}      = 1
114-bciStackUse PUSH_APPLY_PPP{}     = 1
115-bciStackUse PUSH_APPLY_PPPP{}    = 1
116-bciStackUse PUSH_APPLY_PPPPP{}   = 1
117-bciStackUse PUSH_APPLY_PPPPPP{}          = 1
118-bciStackUse ALLOC_AP{}            = 1
119-bciStackUse ALLOC_AP_NOUPD{}      = 1
120-bciStackUse ALLOC_PAP{}           = 1
121+bciStackUse (PUSH_APPLY_N{})     = 1
122+bciStackUse (PUSH_APPLY_V{})     = 1
123+bciStackUse (PUSH_APPLY_F{})     = 1
124+bciStackUse (PUSH_APPLY_D{})     = 1
125+bciStackUse (PUSH_APPLY_L{})     = 1
126+bciStackUse (PUSH_APPLY_P{})     = 1
127+bciStackUse (PUSH_APPLY_PP{})    = 1
128+bciStackUse (PUSH_APPLY_PPP{})   = 1
129+bciStackUse (PUSH_APPLY_PPPP{})          = 1
130+bciStackUse (PUSH_APPLY_PPPPP{})         = 1
131+bciStackUse (PUSH_APPLY_PPPPPP{})        = 1
132+bciStackUse (ALLOC_AP{})            = 1
133+bciStackUse (ALLOC_AP_NOUPD{})      = 1
134+bciStackUse (ALLOC_PAP{})           = 1
135hunk ./compiler/ghci/ByteCodeInstr.lhs 265
136-bciStackUse LABEL{}              = 0
137-bciStackUse TESTLT_I{}           = 0
138-bciStackUse TESTEQ_I{}           = 0
139-bciStackUse TESTLT_F{}           = 0
140-bciStackUse TESTEQ_F{}           = 0
141-bciStackUse TESTLT_D{}           = 0
142-bciStackUse TESTEQ_D{}           = 0
143-bciStackUse TESTLT_P{}           = 0
144-bciStackUse TESTEQ_P{}           = 0
145-bciStackUse CASEFAIL{}           = 0
146-bciStackUse JMP{}                = 0
147-bciStackUse ENTER{}              = 0
148-bciStackUse RETURN{}             = 0
149-bciStackUse RETURN_UBX{}         = 1
150-bciStackUse CCALL{}              = 0
151-bciStackUse SWIZZLE{}            = 0
152-bciStackUse BRK_FUN{}            = 0
153+bciStackUse (LABEL{})            = 0
154+bciStackUse (TESTLT_I{})         = 0
155+bciStackUse (TESTEQ_I{})         = 0
156+bciStackUse (TESTLT_F{})         = 0
157+bciStackUse (TESTEQ_F{})         = 0
158+bciStackUse (TESTLT_D{})         = 0
159+bciStackUse (TESTEQ_D{})         = 0
160+bciStackUse (TESTLT_P{})         = 0
161+bciStackUse (TESTEQ_P{})         = 0
162+bciStackUse (CASEFAIL{})                 = 0
163+bciStackUse (JMP{})              = 0
164+bciStackUse (ENTER{})            = 0
165+bciStackUse (RETURN{})           = 0
166+bciStackUse (RETURN_UBX{})       = 1
167+bciStackUse (CCALL{})            = 0
168+bciStackUse (SWIZZLE{})          = 0
169+bciStackUse (BRK_FUN{})          = 0
170hunk ./compiler/ghci/ByteCodeInstr.lhs 285
171-bciStackUse SLIDE{}              = 0
172-bciStackUse MKAP{}               = 0
173-bciStackUse MKPAP{}              = 0
174-bciStackUse PACK{}               = 1 -- worst case is PACK 0 words
175+bciStackUse (SLIDE{})            = 0
176+bciStackUse (MKAP{})             = 0
177+bciStackUse (MKPAP{})            = 0
178+bciStackUse (PACK{})             = 1 -- worst case is PACK 0 words
179hunk ./compiler/ghci/ByteCodeItbls.lhs 297
180-           return 
181+           return  $
182hunk ./compiler/ghci/ByteCodeItbls.lhs 382
183-           return
184+           return $
185hunk ./compiler/ghci/Debugger.hs 160
186-  cPprShowable prec t@Term{ty=ty, val=val} =
187+  cPprShowable prec t@(Term{ty=ty, val=val}) =
188hunk ./compiler/ghci/Debugger.hs 174
189-           _ <- GHC.setSessionDynFlags dflags{log_action=noop_log}
190+           _ <- GHC.setSessionDynFlags (dflags{log_action=noop_log})
191hunk ./compiler/ghci/Debugger.hs 187
192-  cPprShowable prec NewtypeWrap{ty=new_ty,wrapped_term=t} =
193-      cPprShowable prec t{ty=new_ty}
194+  cPprShowable prec (NewtypeWrap{ty=new_ty,wrapped_term=t}) =
195+      cPprShowable prec (t{ty=new_ty})
196hunk ./compiler/ghci/Linker.lhs 658
197-                       return lnk{ linkableUnlinked=new_uls }
198+                       return $ lnk{ linkableUnlinked=new_uls }
199hunk ./compiler/ghci/RtClosureInspect.hs 113
200-isTerm Term{} = True
201-isTerm   _    = False
202-isSuspension Suspension{} = True
203-isSuspension      _       = False
204-isPrim Prim{} = True
205-isPrim   _    = False
206-isNewtypeWrap NewtypeWrap{} = True
207-isNewtypeWrap _             = False
208+isTerm (Term{}) = True
209+isTerm _        = False
210+isSuspension (Suspension{}) = True
211+isSuspension _              = False
212+isPrim (Prim{}) = True
213+isPrim _        = False
214+isNewtypeWrap (NewtypeWrap{}) = True
215+isNewtypeWrap _               = False
216hunk ./compiler/ghci/RtClosureInspect.hs 122
217-isFun Suspension{ctype=Fun} = True
218+isFun (Suspension{ctype=Fun}) = True
219hunk ./compiler/ghci/RtClosureInspect.hs 125
220-isFunLike s@Suspension{ty=ty} = isFun s || isFunTy ty
221+isFunLike s@(Suspension{ty=ty}) = isFun s || isFunTy ty
222hunk ./compiler/ghci/RtClosureInspect.hs 132
223-isFullyEvaluatedTerm Term {subTerms=tt} = all isFullyEvaluatedTerm tt
224-isFullyEvaluatedTerm Prim {}            = True
225-isFullyEvaluatedTerm NewtypeWrap{wrapped_term=t} = isFullyEvaluatedTerm t
226-isFullyEvaluatedTerm RefWrap{wrapped_term=t}     = isFullyEvaluatedTerm t
227-isFullyEvaluatedTerm _                  = False
228+isFullyEvaluatedTerm (Term {subTerms=tt}) = all isFullyEvaluatedTerm tt
229+isFullyEvaluatedTerm (Prim {})            = True
230+isFullyEvaluatedTerm (NewtypeWrap{wrapped_term=t}) = isFullyEvaluatedTerm t
231+isFullyEvaluatedTerm (RefWrap{wrapped_term=t})     = isFullyEvaluatedTerm t
232+isFullyEvaluatedTerm _                    = False
233hunk ./compiler/ghci/RtClosureInspect.hs 300
234-mapTermType f = foldTerm idTermFold {
235+mapTermType f = foldTerm (idTermFold {
236hunk ./compiler/ghci/RtClosureInspect.hs 305
237-          fRefWrap    = \ty t -> RefWrap (f ty) t}
238+          fRefWrap    = \ty t -> RefWrap (f ty) t})
239hunk ./compiler/ghci/RtClosureInspect.hs 308
240-mapTermTypeM f = foldTermM TermFoldM {
241+mapTermTypeM f = foldTermM (TermFoldM {
242hunk ./compiler/ghci/RtClosureInspect.hs 314
243-          fRefWrapM    = \ty t -> f ty >>= \ty' -> return $ RefWrap ty' t}
244+          fRefWrapM    = \ty t -> f ty >>= \ty' -> return $ RefWrap ty' t})
245hunk ./compiler/ghci/RtClosureInspect.hs 317
246-termTyVars = foldTerm TermFold {
247+termTyVars = foldTerm (TermFold {
248hunk ./compiler/ghci/RtClosureInspect.hs 323
249-            fRefWrap    = \ty t -> tyVarsOfType ty `plusVarEnv` t}
250+            fRefWrap    = \ty t -> tyVarsOfType ty `plusVarEnv` t})
251hunk ./compiler/ghci/RtClosureInspect.hs 346
252-ppr_termM y p Term{dc=Left dc_tag, subTerms=tt} = do
253+ppr_termM y p (Term{dc=Left dc_tag, subTerms=tt}) = do
254hunk ./compiler/ghci/RtClosureInspect.hs 350
255-ppr_termM y p Term{dc=Right dc, subTerms=tt}
256+ppr_termM y p (Term{dc=Right dc, subTerms=tt})
257hunk ./compiler/ghci/RtClosureInspect.hs 360
258-ppr_termM y p t@NewtypeWrap{} = pprNewtypeWrap y p t
259-ppr_termM y p RefWrap{wrapped_term=t}  = do
260+ppr_termM y p t@(NewtypeWrap{}) = pprNewtypeWrap y p t
261+ppr_termM y p (RefWrap{wrapped_term=t})  = do
262hunk ./compiler/ghci/RtClosureInspect.hs 373
263-ppr_termM1 Prim{value=words, ty=ty} =
264+ppr_termM1 (Prim{value=words, ty=ty}) =
265hunk ./compiler/ghci/RtClosureInspect.hs 375
266-ppr_termM1 Suspension{ty=ty, bound_to=Nothing} =
267+ppr_termM1 (Suspension{ty=ty, bound_to=Nothing}) =
268hunk ./compiler/ghci/RtClosureInspect.hs 377
269-ppr_termM1 Suspension{ty=ty, bound_to=Just n}
270+ppr_termM1 (Suspension{ty=ty, bound_to=Just n})
271hunk ./compiler/ghci/RtClosureInspect.hs 380
272-ppr_termM1 Term{}        = panic "ppr_termM1 - Term"
273-ppr_termM1 RefWrap{}     = panic "ppr_termM1 - RefWrap"
274-ppr_termM1 NewtypeWrap{} = panic "ppr_termM1 - NewtypeWrap"
275+ppr_termM1 (Term{})        = panic "ppr_termM1 - Term"
276+ppr_termM1 (RefWrap{})     = panic "ppr_termM1 - RefWrap"
277+ppr_termM1 (NewtypeWrap{}) = panic "ppr_termM1 - NewtypeWrap"
278hunk ./compiler/ghci/RtClosureInspect.hs 384
279-pprNewtypeWrap y p NewtypeWrap{ty=ty, wrapped_term=t}
280+pprNewtypeWrap y p (NewtypeWrap{ty=ty, wrapped_term=t})
281hunk ./compiler/ghci/RtClosureInspect.hs 429
282-           (\ p Term{subTerms=[h,t]} -> doList p h t)
283+           (\ p (Term{subTerms=[h,t]}) -> doList p h t)
284hunk ./compiler/ghci/RtClosureInspect.hs 436
285-     where ifTerm pred f prec t@Term{}
286+     where ifTerm pred f prec t@(Term{})
287hunk ./compiler/ghci/RtClosureInspect.hs 467
288-                where getListTerms Term{subTerms=[h,t]} = h : getListTerms t
289-                      getListTerms Term{subTerms=[]}    = []
290-                      getListTerms t@Suspension{}       = [t]
291+                where getListTerms (Term{subTerms=[h,t]}) = h : getListTerms t
292+                      getListTerms (Term{subTerms=[]})    = []
293+                      getListTerms t@(Suspension{})       = [t]
294hunk ./compiler/ghci/RtClosureInspect.hs 758
295-  expandNewtypes = foldTerm idTermFold { fTerm = worker } where
296+  expandNewtypes = foldTerm (idTermFold { fTerm = worker }) where
297hunk ./compiler/ghci/RtClosureInspect.hs 770
298-  fixFunDictionaries = foldTerm idTermFold {fSuspension = worker} where
299+  fixFunDictionaries = foldTerm (idTermFold {fSuspension = worker}) where
300hunk ./compiler/ghci/RtClosureInspect.hs 1107
301-zonkTerm = foldTermM TermFoldM{
302+zonkTerm = foldTermM (TermFoldM{
303hunk ./compiler/ghci/RtClosureInspect.hs 1117
304-             }
305+             })
306hunk ./compiler/hsSyn/HsDecls.lhs 154
307-    HsGroup {
308+    (HsGroup {
309hunk ./compiler/hsSyn/HsDecls.lhs 165
310-  hs_docs   = docs1 }
311-    HsGroup {
312+  hs_docs   = docs1 })
313+    (HsGroup {
314hunk ./compiler/hsSyn/HsDecls.lhs 177
315-  hs_docs   = docs2 }
316+  hs_docs   = docs2 })
317hunk ./compiler/hsSyn/HsDecls.lhs 572
318-   isDataTy TyData{tcdND = DataType, tcdTyPats = Nothing} = True
319-   isDataTy _                                             = False
320+   isDataTy (TyData{tcdND = DataType, tcdTyPats = Nothing}) = True
321+   isDataTy _                                               = False
322hunk ./compiler/hsSyn/HsDecls.lhs 575
323-   isNewTy TyData{tcdND = NewType, tcdTyPats = Nothing} = True
324-   isNewTy _                                            = False
325+   isNewTy (TyData{tcdND = NewType, tcdTyPats = Nothing}) = True
326+   isNewTy _                                              = False
327hunk ./compiler/hsSyn/HsDecls.lhs 651
328-pp_condecls cs@(L _ ConDecl{ con_res = ResTyGADT _ } : _) -- In GADT syntax
329+pp_condecls cs@(L _ (ConDecl{ con_res = ResTyGADT _ }) : _) -- In GADT syntax
330hunk ./compiler/iface/BinIface.hs 133
331-  bh <- return $! setUserData bh ud{ud_symtab = symtab}
332+  bh <- return $! setUserData bh (ud{ud_symtab = symtab})
333hunk ./compiler/iface/BinIface.hs 270
334-putName BinSymbolTable{
335+putName (BinSymbolTable{
336hunk ./compiler/iface/BinIface.hs 272
337-            bin_symtab_next = symtab_next }    bh name
338+            bin_symtab_next = symtab_next })    bh name
339hunk ./compiler/iface/BinIface.hs 293
340-putFastString BinDictionary { bin_dict_next = j_r,
341-                              bin_dict_map  = out_r}  bh f
342+putFastString (BinDictionary { bin_dict_next = j_r,
343+                               bin_dict_map  = out_r})  bh f
344hunk ./compiler/iface/BinIface.hs 494
345-    put_ bh usg@UsagePackageModule{} = do
346+    put_ bh usg@(UsagePackageModule{}) = do
347hunk ./compiler/iface/BinIface.hs 498
348-    put_ bh usg@UsageHomeModule{} = do
349+    put_ bh usg@(UsageHomeModule{}) = do
350hunk ./compiler/iface/BinIface.hs 511
351-            return UsagePackageModule { usg_mod = nm, usg_mod_hash = mod }
352+            return $ UsagePackageModule { usg_mod = nm, usg_mod_hash = mod }
353hunk ./compiler/iface/BinIface.hs 517
354-            return UsageHomeModule { usg_mod_name = nm, usg_mod_hash = mod,
355+            return $ UsageHomeModule { usg_mod_name = nm, usg_mod_hash = mod,
356hunk ./compiler/iface/IfaceEnv.lhs 170
357-                setNameCache name_cache{ nsUniqs = us', nsNames = new_cache }
358+                setNameCache (name_cache{ nsUniqs = us', nsNames = new_cache })
359hunk ./compiler/iface/IfaceSyn.lhs 354
360-ifaceDeclSubBndrs IfaceData {ifCons = IfAbstractTyCon}  = []
361+ifaceDeclSubBndrs (IfaceData {ifCons = IfAbstractTyCon})  = []
362hunk ./compiler/iface/IfaceSyn.lhs 681
363-freeNamesIfDecl IfaceForeign{} =
364+freeNamesIfDecl (IfaceForeign{}) =
365hunk ./compiler/iface/IfaceSyn.lhs 683
366-freeNamesIfDecl d@IfaceData{} =
367+freeNamesIfDecl d@(IfaceData{}) =
368hunk ./compiler/iface/IfaceSyn.lhs 688
369-freeNamesIfDecl d@IfaceSyn{} =
370+freeNamesIfDecl d@(IfaceSyn{}) =
371hunk ./compiler/iface/IfaceSyn.lhs 692
372-freeNamesIfDecl d@IfaceClass{} =
373+freeNamesIfDecl d@(IfaceClass{}) =
374hunk ./compiler/iface/LoadIface.lhs 672
375-pprUsage usage@UsagePackageModule{}
376+pprUsage usage@(UsagePackageModule{})
377hunk ./compiler/iface/LoadIface.lhs 675
378-pprUsage usage@UsageHomeModule{}
379+pprUsage usage@(UsageHomeModule{})
380hunk ./compiler/iface/MkIface.lhs 123
381-        ModGuts{     mg_module    = this_mod,
382+        (ModGuts{     mg_module    = this_mod,
383hunk ./compiler/iface/MkIface.lhs 131
384-                     mg_hpc_info  = hpc_info }
385+                     mg_hpc_info  = hpc_info })
386hunk ./compiler/iface/MkIface.lhs 145
387-  tc_result@TcGblEnv{ tcg_mod = this_mod,
388+ tc_result@(TcGblEnv{ tcg_mod = this_mod,
389hunk ./compiler/iface/MkIface.lhs 152
390-                    }
391+                    })
392hunk ./compiler/iface/MkIface.lhs 164
393-          TcGblEnv{ tcg_inst_uses = dfun_uses_var,
394+         (TcGblEnv{ tcg_inst_uses = dfun_uses_var,
395hunk ./compiler/iface/MkIface.lhs 166
396-                  }
397+                  })
398hunk ./compiler/iface/MkIface.lhs 173
399-          TcGblEnv{ tcg_mod = mod,
400+         (TcGblEnv{ tcg_mod = mod,
401hunk ./compiler/iface/MkIface.lhs 176
402-                  }
403+                  })
404hunk ./compiler/iface/MkIface.lhs 191
405-      return Deps { dep_mods   = sortBy (stableModuleNameCmp `on` fst) dep_mods,
406-                    dep_pkgs   = sortBy stablePackageIdCmp pkgs,
407-                    dep_orphs  = sortBy stableModuleCmp (imp_orphs  imports),
408-                    dep_finsts = sortBy stableModuleCmp (imp_finsts imports) }
409+      return $ Deps { dep_mods   = sortBy (stableModuleNameCmp `on` fst) dep_mods,
410+                      dep_pkgs   = sortBy stablePackageIdCmp pkgs,
411+                      dep_orphs  = sortBy stableModuleCmp (imp_orphs  imports),
412+                      dep_finsts = sortBy stableModuleCmp (imp_finsts imports) }
413hunk ./compiler/iface/MkIface.lhs 207
414-        ModDetails{  md_insts     = insts,
415+        (ModDetails{  md_insts            = insts,
416hunk ./compiler/iface/MkIface.lhs 213
417-                     md_exports   = exports }
418+                     md_exports   = exports })
419hunk ./compiler/iface/MkIface.lhs 836
420-      = Just UsagePackageModule{ usg_mod      = mod,
421-                                 usg_mod_hash = mod_hash }
422+      = Just (UsagePackageModule{ usg_mod      = mod,
423+                                  usg_mod_hash = mod_hash })
424hunk ./compiler/iface/MkIface.lhs 850
425-      = Just UsageHomeModule {
426+      = Just (UsageHomeModule {
427hunk ./compiler/iface/MkIface.lhs 854
428-                     usg_entities = fmToList ent_hashs }
429+                     usg_entities = fmToList ent_hashs })
430hunk ./compiler/iface/MkIface.lhs 1164
431-checkModUsage _this_pkg UsagePackageModule{
432+checkModUsage _this_pkg (UsagePackageModule{
433hunk ./compiler/iface/MkIface.lhs 1166
434-                                usg_mod_hash = old_mod_hash }
435+                                usg_mod_hash = old_mod_hash })
436hunk ./compiler/iface/MkIface.lhs 1174
437-checkModUsage this_pkg UsageHomeModule{
438+checkModUsage this_pkg (UsageHomeModule{
439hunk ./compiler/iface/MkIface.lhs 1178
440-                               usg_entities = old_decl_hash }
441+                               usg_entities = old_decl_hash })
442hunk ./compiler/iface/MkIface.lhs 1340
443-    ifaceConDecls OpenTyCon {}                      = IfOpenDataTyCon
444+    ifaceConDecls (OpenTyCon {})                    = IfOpenDataTyCon
445hunk ./compiler/main/DynFlags.hs 577
446- return dflags{
447+ return $ dflags{
448hunk ./compiler/main/Finder.lhs 430
449-      return ModLocation{    ml_hs_file   = Nothing,
450+      return $ ModLocation{    ml_hs_file   = Nothing,
451hunk ./compiler/main/GHC.hs 1768
452-  return hsc_env{ hsc_HPT = new_hpt }
453+  return $ hsc_env{ hsc_HPT = new_hpt }
454hunk ./compiler/main/GHC.hs 2084
455-                 return old_summary{ ms_obj_date = obj_timestamp }
456+                 return $ old_summary{ ms_obj_date = obj_timestamp }
457hunk ./compiler/main/GHC.hs 2184
458-               return (Just old_summary{ ms_obj_date = obj_timestamp })
459+               return (Just $ old_summary{ ms_obj_date = obj_timestamp })
460hunk ./compiler/main/HeaderInfo.hs 138
461-     unsafeInterleaveIO $ lazyLexBuf handle state{buffer=newbuf} False
462+     unsafeInterleaveIO $ lazyLexBuf handle (state{buffer=newbuf}) False
463hunk ./compiler/main/HscTypes.lhs 1184
464-substInteractiveContext ictxt@InteractiveContext{ic_tmp_ids=ids} subst =
465+substInteractiveContext ictxt@(InteractiveContext{ic_tmp_ids=ids}) subst =
466hunk ./compiler/main/InteractiveEval.hs 248
467-        setSession hsc_env{  hsc_IC = old_IC{ ic_cwd = Just virt_dir } }
468+        setSession $ hsc_env{  hsc_IC = old_IC{ ic_cwd = Just virt_dir } }
469hunk ./compiler/main/InteractiveEval.hs 289
470-                hsc_env' <- liftIO $ rttiEnvironment hsc_env{hsc_IC=final_ic}
471+                hsc_env' <- liftIO $ rttiEnvironment $ hsc_env{hsc_IC=final_ic}
472hunk ./compiler/main/InteractiveEval.hs 626
473-   hsc_env1 <- rttiEnvironment hsc_env{ hsc_IC = ictxt1 }
474+   hsc_env1 <- rttiEnvironment $ hsc_env{ hsc_IC = ictxt1 }
475hunk ./compiler/main/InteractiveEval.hs 645
476-rttiEnvironment hsc_env@HscEnv{hsc_IC=ic} = do
477+rttiEnvironment hsc_env@(HscEnv{hsc_IC=ic}) = do
478hunk ./compiler/main/InteractiveEval.hs 655
479-     improveTypes hsc_env@HscEnv{hsc_IC=ic} name = do
480+     improveTypes hsc_env@(HscEnv{hsc_IC=ic}) name = do
481hunk ./compiler/main/InteractiveEval.hs 679
482-                 return hsc_env{hsc_IC=ic'}
483+                 return $ hsc_env{hsc_IC=ic'}
484hunk ./compiler/main/InteractiveEval.hs 849
485-getContext = withSession $ \HscEnv{ hsc_IC=ic } ->
486+getContext = withSession $ \(HscEnv{ hsc_IC=ic }) ->
487hunk ./compiler/main/InteractiveEval.hs 906
488-greToRdrNames GRE{ gre_name = name, gre_prov = prov }
489+greToRdrNames (GRE{ gre_name = name, gre_prov = prov })
490hunk ./compiler/main/SysTools.lhs 227
491-        ; return dflags1{
492+        ; return $ dflags1{
493hunk ./compiler/main/TidyPgm.lhs 116
494-        TcGblEnv{ tcg_exports   = exports,
495+       (TcGblEnv{ tcg_exports   = exports,
496hunk ./compiler/main/TidyPgm.lhs 120
497-                }
498+                })
499hunk ./compiler/main/TidyPgm.lhs 125
500-        ModGuts{ mg_exports   = exports,
501+       (ModGuts{ mg_exports   = exports,
502hunk ./compiler/main/TidyPgm.lhs 129
503-                }
504+                })
505hunk ./compiler/nativeGen/AsmCodeGen.lhs 192
506-                               | [email protected]{} <- stats]
507+                               | stat@(Color.RegAllocStatsStart{}) <- stats]
508hunk ./compiler/nativeGen/RegAlloc/Graph/Coalesce.hs 71
509-       slurpCmm   rs  CmmData{}                         = rs
510+       slurpCmm   rs (CmmData{})                        = rs
511hunk ./compiler/nativeGen/RegAlloc/Graph/Coalesce.hs 90
512-       slurpLI    rs SPILL{}   = rs
513-       slurpLI    rs RELOAD{}  = rs
514+       slurpLI    rs (SPILL{})         = rs
515+       slurpLI    rs (RELOAD{})        = rs
516hunk ./compiler/nativeGen/RegAlloc/Graph/Spill.hs 84
517-regSpill_instr _ SPILL{}
518+regSpill_instr _ (SPILL{})
519hunk ./compiler/nativeGen/RegAlloc/Graph/Spill.hs 87
520-regSpill_instr _ RELOAD{}
521+regSpill_instr _ (RELOAD{})
522hunk ./compiler/nativeGen/RegAlloc/Graph/SpillCost.hs 73
523-       countCmm CmmData{}              = return ()
524+       countCmm (CmmData{})            = return ()
525hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 66
526- ppr (s@RegAllocStatsStart{})
527+ ppr s@(RegAllocStatsStart{})
528hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 75
529- ppr (s@RegAllocStatsSpill{})
530+ ppr s@(RegAllocStatsSpill{})
531hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 100
532- ppr (s@RegAllocStatsColored { raSRMs = (spills, reloads, moves) })
533+ ppr s@(RegAllocStatsColored { raSRMs = (spills, reloads, moves) })
534hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 155
535-       finals  = [ s   | s@RegAllocStatsColored{} <- stats]
536+       finals  = [ s   | s@(RegAllocStatsColored{}) <- stats]
537hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 174
538-                                       | s@RegAllocStatsStart{} <- stats ]
539+                                       | s@(RegAllocStatsStart{}) <- stats ]
540hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 203
541-                       [ raGraph s | s@RegAllocStatsStart{} <- stats ]
542+                       [ raGraph s | s@(RegAllocStatsStart{}) <- stats ]
543hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 221
544-               $ [ raSpillCosts s | s@RegAllocStatsStart{} <- stats ]
545+               $ [ raSpillCosts s | s@(RegAllocStatsStart{}) <- stats ]
546hunk ./compiler/nativeGen/RegAlloc/Linear/State.hs 70
547-       (# state'@RA_State
548+       (# state'@(RA_State
549hunk ./compiler/nativeGen/RegAlloc/Linear/State.hs 72
550-               , ra_stack      = stack' }
551+               , ra_stack      = stack' })
552hunk ./compiler/nativeGen/RegAlloc/Linear/State.hs 88
553-spillR reg temp = RegM $ \ s@RA_State{ra_delta=delta, ra_stack=stack} ->
554+spillR reg temp = RegM $ \ s@(RA_State{ra_delta=delta, ra_stack=stack}) ->
555hunk ./compiler/nativeGen/RegAlloc/Linear/State.hs 98
556-loadR reg slot = RegM $ \ s@RA_State{ra_delta=delta} ->
557+loadR reg slot = RegM $ \ s@(RA_State{ra_delta=delta}) ->
558hunk ./compiler/nativeGen/RegAlloc/Linear/State.hs 102
559-getFreeRegsR = RegM $ \ s@RA_State{ra_freeregs = freeregs} ->
560+getFreeRegsR = RegM $ \ s@(RA_State{ra_freeregs = freeregs}) ->
561hunk ./compiler/nativeGen/RegAlloc/Linear/State.hs 110
562-getAssigR = RegM $ \ s@RA_State{ra_assig = assig} ->
563+getAssigR = RegM $ \ s@(RA_State{ra_assig = assig}) ->
564hunk ./compiler/nativeGen/RegAlloc/Linear/State.hs 118
565-getBlockAssigR = RegM $ \ s@RA_State{ra_blockassig = assig} ->
566+getBlockAssigR = RegM $ \ s@(RA_State{ra_blockassig = assig}) ->
567hunk ./compiler/nativeGen/RegAlloc/Liveness.hs 223
568- where slurpCmm   rs  CmmData{}                = rs
569+ where slurpCmm   rs  (CmmData{})              = rs
570hunk ./compiler/nativeGen/RegAlloc/Liveness.hs 302
571- where slurpCmm cs CmmData{}   = cs
572+ where slurpCmm cs (CmmData{}) = cs
573hunk ./compiler/nativeGen/RegAlloc/Liveness.hs 464
574-       patchCmm cmm@CmmData{}  = cmm
575+       patchCmm cmm@(CmmData{})        = cmm
576hunk ./compiler/nativeGen/RegAlloc/Liveness.hs 521
577-               (Just live
578+               (Just $ live
579hunk ./compiler/nativeGen/RegAlloc/Liveness.hs 696
580-       in Instr instr (Just live { liveBorn = rsBorn })
581+       in Instr instr (Just $ live { liveBorn = rsBorn })
582hunk ./compiler/parser/Lexer.x 1529
583-setExts f = P $ \s -> POk s{ extsBitmap = f (extsBitmap s) } ()
584+setExts f = P $ \s -> POk (s{ extsBitmap = f (extsBitmap s) }) ()
585hunk ./compiler/parser/Lexer.x 1532
586-setSrcLoc new_loc = P $ \s -> POk s{loc=new_loc} ()
587+setSrcLoc new_loc = P $ \s -> POk (s{loc=new_loc}) ()
588hunk ./compiler/parser/Lexer.x 1538
589-setLastToken loc len line_len = P $ \s -> POk s {
590+setLastToken loc len line_len = P $ \s -> POk (s {
591hunk ./compiler/parser/Lexer.x 1542
592-} ()
593+}) ()
594hunk ./compiler/parser/Lexer.x 1618
595-getInput = P $ \s@PState{ loc=l, last_offs=o, buffer=b } -> POk s (AI l o b)
596+getInput = P $ \s@(PState{ loc=l, last_offs=o, buffer=b }) -> POk s (AI l o b)
597hunk ./compiler/parser/Lexer.x 1621
598-setInput (AI l o b) = P $ \s -> POk s{ loc=l, last_offs=o, buffer=b } ()
599+setInput (AI l o b) = P $ \s -> POk (s{ loc=l, last_offs=o, buffer=b }) ()
600hunk ./compiler/parser/Lexer.x 1624
601-pushLexState ls = P $ \s@PState{ lex_state=l } -> POk s{lex_state=ls:l} ()
602+pushLexState ls = P $ \s@(PState{ lex_state=l }) -> POk (s{lex_state=ls:l}) ()
603hunk ./compiler/parser/Lexer.x 1627
604-popLexState = P $ \s@PState{ lex_state=ls:l } -> POk s{ lex_state=l } ls
605+popLexState = P $ \s@(PState{ lex_state=ls:l }) -> POk (s{ lex_state=l }) ls
606hunk ./compiler/parser/Lexer.x 1630
607-getLexState = P $ \s@PState{ lex_state=ls:_ } -> POk s ls
608+getLexState = P $ \s@(PState{ lex_state=ls:_ }) -> POk s ls
609hunk ./compiler/parser/Lexer.x 1791
610- = P $ \s@PState{messages=(ws,es), dflags=d} ->
611+ = P $ \s@(PState{messages=(ws,es), dflags=d}) ->
612hunk ./compiler/parser/Lexer.x 1794
613-       in POk s{messages=(ws', es)} ()
614+       in POk (s{messages=(ws', es)}) ()
615hunk ./compiler/parser/Lexer.x 1797
616-getMessages PState{messages=ms} = ms
617+getMessages (PState{messages=ms}) = ms
618hunk ./compiler/parser/Lexer.x 1800
619-getContext = P $ \s@PState{context=ctx} -> POk s ctx
620+getContext = P $ \s@(PState{context=ctx}) -> POk s ctx
621hunk ./compiler/parser/Lexer.x 1803
622-setContext ctx = P $ \s -> POk s{context=ctx} ()
623+setContext ctx = P $ \s -> POk (s{context=ctx}) ()
624hunk ./compiler/parser/Lexer.x 1809
625-       (_:tl) -> POk s{ context = tl } ()
626+       (_:tl) -> POk (s{ context = tl }) ()
627hunk ./compiler/parser/Lexer.x 1816
628-pushCurrentContext = P $ \ s@PState{ last_offs=offs, last_line_len=len, context=ctx } ->
629-    POk s{context = Layout (offs-len) : ctx} ()
630+pushCurrentContext = P $ \ s@(PState{ last_offs=offs, last_line_len=len, context=ctx }) ->
631+    POk (s{context = Layout (offs-len) : ctx}) ()
632hunk ./compiler/parser/Lexer.x 1821
633-getOffside = P $ \s@PState{last_offs=offs, context=stk} ->
634+getOffside = P $ \s@(PState{last_offs=offs, context=stk}) ->
635hunk ./compiler/parser/Lexer.x 1846
636-srcParseFail = P $ \PState{ buffer = buf, last_len = len,     
637-                           last_loc = last_loc } ->
638+srcParseFail = P $ \(PState{ buffer = buf, last_len = len,     
639+                           last_loc = last_loc }) ->
640hunk ./compiler/prelude/ForeignCall.lhs 82
641-playSafe PlaySafe{} = True
642-playSafe PlayRisky  = False
643+playSafe (PlaySafe{}) = True
644+playSafe PlayRisky    = False
645hunk ./compiler/rename/RnSource.lhs 472
646-    rnATInst tydecl@TyData     {} = rnTyClDecl tydecl
647-    rnATInst tydecl@TySynonym  {} = rnTyClDecl tydecl
648+    rnATInst tydecl@(TyData     {}) = rnTyClDecl tydecl
649+    rnATInst tydecl@(TySynonym  {}) = rnTyClDecl tydecl
650hunk ./compiler/rename/RnSource.lhs 644
651-rnTyClDecl (tydecl@TyFamily {}) =
652+rnTyClDecl tydecl@(TyFamily {}) =
653hunk ./compiler/rename/RnSource.lhs 648
654-rnTyClDecl tydecl@TyData {tcdND = new_or_data, tcdCtxt = context,
655+rnTyClDecl tydecl@(TyData {tcdND = new_or_data, tcdCtxt = context,
656hunk ./compiler/rename/RnSource.lhs 651
657-                          tcdKindSig = sig, tcdDerivs = derivs}
658+                          tcdKindSig = sig, tcdDerivs = derivs})
659hunk ./compiler/rename/RnSource.lhs 924
660-rnFamily (tydecl@TyFamily {tcdFlavour = flavour,
661+rnFamily tydecl@(TyFamily {tcdFlavour = flavour,
662hunk ./compiler/rename/RnSource.lhs 945
663-    rn_at (tydecl@TyFamily  {}) = rnFamily tydecl lookupIdxVars
664-    rn_at (tydecl@TySynonym {}) =
665+    rn_at tydecl@(TyFamily  {}) = rnFamily tydecl lookupIdxVars
666+    rn_at tydecl@(TySynonym {}) =
667hunk ./compiler/simplCore/SimplMonad.lhs 207
668-doFreeTick tick sc@SimplCount { details = dts }
669+doFreeTick tick sc@(SimplCount { details = dts })
670hunk ./compiler/simplCore/SimplMonad.lhs 211
671-doTick tick sc@SimplCount { ticks = tks, details = dts, n_log = nl, log1 = l1 }
672+doTick tick sc@(SimplCount { ticks = tks, details = dts, n_log = nl, log1 = l1 })
673hunk ./compiler/typecheck/Inst.lhs 841
674-lookupSimpleInst (LitInst { tci_lit = lit@OverLit { ol_val = lit_val
675-                                                 , ol_rebindable = rebindable }
676+lookupSimpleInst (LitInst { tci_lit = lit@(OverLit { ol_val = lit_val
677+                                                 , ol_rebindable = rebindable })
678hunk ./compiler/typecheck/TcRnDriver.lhs 671
679-        eqAlgRhs OpenTyCon{} OpenTyCon{} = True
680-        eqAlgRhs tc1@DataTyCon{} tc2@DataTyCon{} =
681+        eqAlgRhs (OpenTyCon{}) (OpenTyCon{}) = True
682+        eqAlgRhs tc1@(DataTyCon{}) tc2@(DataTyCon{}) =
683hunk ./compiler/typecheck/TcRnDriver.lhs 674
684-        eqAlgRhs tc1@NewTyCon{} tc2@NewTyCon{} =
685+        eqAlgRhs tc1@(NewTyCon{}) tc2@(NewTyCon{}) =
686hunk ./compiler/typecheck/TcTyClsDecls.lhs 268
687-tcFamInstDecl1 (decl@TySynonym {tcdLName = L loc tc_name})
688+tcFamInstDecl1 decl@(TySynonym {tcdLName = L loc tc_name})
689hunk ./compiler/typecheck/TcTyClsDecls.lhs 299
690-tcFamInstDecl1 (decl@TyData {tcdND = new_or_data, tcdLName = L loc tc_name,
691+tcFamInstDecl1 decl@(TyData {tcdND = new_or_data, tcdLName = L loc tc_name,
692hunk ./compiler/typecheck/TcTyClsDecls.lhs 468
693-    allDecls (decl@ClassDecl {tcdATs = ats}) = decl : [ at
694+    allDecls decl@(ClassDecl {tcdATs = ats}) = decl : [ at
695hunk ./compiler/typecheck/TcTyFuns.lhs 991
696-applySubstRules eq todoEqs (eqConfig@EqConfig {eqs = resEqs})
697+applySubstRules eq todoEqs eqConfig@(EqConfig {eqs = resEqs})
698hunk ./compiler/types/TyCon.lhs 325
699-visibleDataCons OpenTyCon {}                 = []
700+visibleDataCons (OpenTyCon {})               = []
701hunk ./compiler/utils/Binary.hs 616
702-  return UserData { ud_dict     = dict,
703-                    ud_symtab   = undef "symtab",
704-                    ud_put_name = undef "put_name",
705-                    ud_put_fs   = undef "put_fs"
706-                   }
707+  return $ UserData { ud_dict     = dict,
708+                      ud_symtab   = undef "symtab",
709+                      ud_put_name = undef "put_name",
710+                      ud_put_fs   = undef "put_fs"
711+                     }
712hunk ./compiler/utils/Binary.hs 626
713-  return UserData { ud_dict     = undef "dict",
714-                    ud_symtab   = undef "symtab",
715-                    ud_put_name = put_name,
716-                    ud_put_fs   = put_fs
717-                   }
718+  return $ UserData { ud_dict     = undef "dict",
719+                      ud_symtab   = undef "symtab",
720+                      ud_put_name = put_name,
721+                      ud_put_fs   = put_fs
722+                     }
723hunk ./compiler/utils/GraphOps.hs 111
724-       Just Node{}
725+       Just (Node{})
726hunk ./compiler/utils/GraphOps.hs 150
727-                       (newNode u c)  { nodeConflicts = unitUniqSet u' }
728+                       ((newNode u c) { nodeConflicts = unitUniqSet u' })
729hunk ./compiler/utils/GraphOps.hs 198
730-               (newNode u (getClass u))        { nodeConflicts = set' }
731+               ((newNode u (getClass u))       { nodeConflicts = set' })
732hunk ./compiler/utils/GraphOps.hs 213
733-               (newNode u (getClass u))        { nodeExclusions = unitUniqSet color }
734+               ((newNode u (getClass u))       { nodeExclusions = unitUniqSet color })
735hunk ./compiler/utils/GraphOps.hs 236
736-                       (newNode u c)  { nodeCoalesce = unitUniqSet u' }
737+                       ((newNode u c)  { nodeCoalesce = unitUniqSet u' })
738hunk ./compiler/utils/GraphOps.hs 268
739-               (newNode u c)  { nodePreference = [color] }
740+               ((newNode u c)  { nodePreference = [color] })
741hunk ./ghc/GhciMonad.hs 265
742-    _ <- GHC.setSessionDynFlags dflags {log_action = logAction encoder}
743+    _ <- GHC.setSessionDynFlags (dflags {log_action = logAction encoder})
744hunk ./ghc/InteractiveUI.hs 344
745-   startGHCi (runGHCi srcs maybe_exprs)
746+   startGHCi (runGHCi srcs maybe_exprs) $
747hunk ./ghc/InteractiveUI.hs 568
748-    c:cs -> do setGHCiState st{ cmdqueue = cs }
749+    c:cs -> do setGHCiState (st{ cmdqueue = cs })
750hunk ./ghc/InteractiveUI.hs 606
751-      lift $ setGHCiState st{ prompt = "%s| " }
752+      lift $ setGHCiState (st{ prompt = "%s| " })
753hunk ./ghc/InteractiveUI.hs 608
754-      lift $ getGHCiState >>= \st->setGHCiState st{ prompt = p }
755+      lift $ getGHCiState >>= \st->setGHCiState (st{ prompt = p })
756hunk ./ghc/InteractiveUI.hs 634
757-  setGHCiState st{ cmdqueue = cmds ++ cmdqueue st }
758+  setGHCiState (st{ cmdqueue = cmds ++ cmdqueue st })
759hunk ./ghc/InteractiveUI.hs 751
760-  setGHCiState st{ last_command = mc }
761+  setGHCiState (st{ last_command = mc })
762hunk ./ghc/InteractiveUI.hs 1121
763-          setGHCiState st{ remembered_ctx = [] }
764+          setGHCiState (st{ remembered_ctx = [] })
765hunk ./ghc/InteractiveUI.hs 1277
766-       setGHCiState st{ remembered_ctx = remembered_ctx st ++ [(cmd,as,bs)] }
767+       setGHCiState (st{ remembered_ctx = remembered_ctx st ++ [(cmd,as,bs)] })
768hunk ./ghc/InteractiveUI.hs 1397
769-  setGHCiState st{ args = args }
770+  setGHCiState $ st{ args = args }
771hunk ./ghc/InteractiveUI.hs 1401
772-  setGHCiState st{ progname = prog }
773+  setGHCiState $ st{ progname = prog }
774hunk ./ghc/InteractiveUI.hs 1405
775-  setGHCiState st{ editor = cmd }
776+  setGHCiState $ st{ editor = cmd }
777hunk ./ghc/InteractiveUI.hs 1419
778-       setGHCiState st{ breaks = new_breaks }
779+       setGHCiState $ st{ breaks = new_breaks }
780hunk ./ghc/InteractiveUI.hs 1422
781-  setGHCiState st{ stop = cmd }
782+  setGHCiState $ st{ stop = cmd }
783hunk ./ghc/InteractiveUI.hs 2213
784-        setGHCiState st{tickarrays = extendModuleEnv arrmap modl arr}
785+        setGHCiState $ st{tickarrays = extendModuleEnv arrmap modl arr}
786hunk ./ghc/InteractiveUI.hs 2219
787-   setGHCiState st{tickarrays = emptyModuleEnv}
788+   setGHCiState $ st{tickarrays = emptyModuleEnv}
793[Add an extension to disable n+k patterns
794Ian Lynagh <[email protected]>**20090725134703]
795[Fix a warning on Windows
796Ian Lynagh <[email protected]>**20090724221244]
797[Remove GHC's haskell98 dependency
798Ian Lynagh <[email protected]>**20090724210825]
799[add number of bytes to +RTS -DS leak reports
800Simon Marlow <[email protected]>**20090724150010
801 Ignore-this: 3a66585c8fd2b58ce96abab1e154fb6e
803[free the gc_thread structures during shutdown
804Simon Marlow <[email protected]>**20090724145956
805 Ignore-this: 25efeb189cbfb549af4550d266604f0e
807[Add atomic_inc()/atomic_dec(), and use them to replace gc_running_mutex
808Simon Marlow <[email protected]>**20090724142620
809 Ignore-this: d775eeaf85fd0f9064d87a0909134bc0
810 This also fixes a memory leak on Windows with -threaded, because we
811 were calling initMutex(&gc_running_mutex) for each GC, which allocates
812 memory.
814[Rewrite the foreign import string parser using ReadP
815Simon Marlow <[email protected]>**20090723152138
816 Ignore-this: 1c7db770a29d48710b05e2a3d216b2a8
817 And kill the duplicate one in HsSyn.Convert
819[point to the wiki
820Simon Marlow <[email protected]>**20090723132345
821 Ignore-this: c11300bac62ce2f56d7fc271aa26dbcd
823[Remove note about avoiding use of #def in libraries
824Simon Marlow <[email protected]>**20090723111026
825 Ignore-this: 8a027ed37b2d10094f7a31548aee2535
826 It should be safe to use now that we aren't relying on C prototypes
827 for foreign functions in via-C code.
830Simon Marlow <[email protected]>**20090723091230
831 Ignore-this: 836feb0e819127603dd56623af6e48dc
833[Fix Trac #3391: make generic to/from bindings only for newly-declared types
834[email protected]**20090723155803
835 Ignore-this: bb56c2ec054397d421dce13d5eb6c73f
837 Before this patch we were bogusly making to/from bindings for all data types
838 in the TcGblEnv.  But that is wrong when we have multiple "chunks" of
839 bindings in Template Haskell.  We should start from the declarations
840 themselves.  Easy.
843[Print explicit braces and semicolons in do-notation
844[email protected]**20090723152411
845 Ignore-this: a97ddf19774d27d15a01d63787708b20
847 By printing explicit braces we make it more likely that pretty-printed
848 code will be acceptable if fed back into GHC.
850 See http://www.haskell.org/pipermail/glasgow-haskell-users/2009-July/017554.html
853[Documentation for stand-alone deriving (Trac #3012)
854[email protected]**20090723132558
855 Ignore-this: 54445c5984594eb7f82151b2ac118695
857[Windows only: set the encoding on stdin to utf8
858Simon Marlow <[email protected]>**20090723121913
859 Ignore-this: d65115d9711b5fb68e77786565ef6de
860 Otherwise it defaults to latin1.
862[Fix Trac #3012: allow more free-wheeling in standalone deriving
863[email protected]**20090723130145
864 Ignore-this: 357580b9388ccbe1da3c1da3ba90e456
866 In standalone deriving, we now do *not* check side conditions.
867 We simply generate the code and typecheck it.  If there's a type
868 error, it's the programmer's problem.
870 This means that you can do 'deriving instance Show (T a)', where
871 T is a GADT, for example, provided of course that the boilerplate
872 code does in fact typecheck.
874 I put some work into getting a decent error message.  In particular
875 if there's a type error in a method, GHC will show the entire code
876 for that method (since, after all, the user did not write it).
877 Most of the changes are to achieve that goal.
879 Still to come: changes in the documentation.
882[Use the ErrMsg record type
883[email protected]**20090723130108
884 Ignore-this: 7fb6dd78d3185da0c33901b8aac8d108
886[Stop generating redundant parens in 'deriving' code
887[email protected]**20090723125903
888 Ignore-this: 6fc82df9648a82bcf7bf6fdfa9b4dad3
890 This makes the code printed by -ddump-deriv look prettier
893[Wibble to printing tuple sections
894[email protected]**20090723125756
895 Ignore-this: af2a1b9784f6447fea0e11d454cf082f
897[Fix Trac #3193: improve line number reporting for equality constraints
898[email protected]**20090723065504
899 Ignore-this: b45a68071bcaca48cad7855dccb9c9eb
901 When reporting an error from a failed equality constraint, we were
902 setting the *context* but not the *line number* in TcTyFuns.eqInstMisMatch
903 As a result, the line number didn't match the context at all.  It's
904 trivial to fix.
906 I'm 99% certain this fixes #3193, but it's too complicated to
907 reproduce, so I have not actually tested it.
910[Add fmapM_maybe :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b)
911[email protected]**20090723064932
912 Ignore-this: db5f6319b52a5e6b5f85d76985f2a7c9
914 This function isn't used at the moment, but Max added it, and it
915 looks useful.
918[Add tuple sections as a new feature
919[email protected]**20090723063859
920 Ignore-this: d42a26fc1efff112b852b5c1135c1746
922 This patch adds tuple sections, so that
924        (x,,z)  means   \y -> (x,y,z)
926 Thanks for Max Bolinbroke for doing the hard work.
928 In the end, instead of using two constructors in HsSyn, I used
929 just one (still called ExplicitTuple) whose arguments can be
930        Present (LHsExpr id)
931 or     Missing PostTcType
933 While I was at it, I did a bit of refactoring too.
936[NetBSD defines _REENTRANT in its header files, so compiling ghc gives
937Simon Marlow <[email protected]>**20090723075030
938 Ignore-this: 4722c4ff0541c6080de8f433e498684
939 redefinition warnings for all files that are including includes/Rts.h.
941 Contributed by: Krister Walfridsson <[email protected]>
943[includes/TSO.h: kill trailing whitespace
944Samuel Bronson <[email protected]>**20090722170354
945 Ignore-this: 36d4afd1a21188d604ed6b432942dcdc
947[Say what StgTSOBlockInfo is for, where to read about it.
948Samuel Bronson <[email protected]>**20090722163011
949 Ignore-this: 6c09e11f23594251cdc2db1bc642edc9
951[Make the Integer library used directly configurable in GHC and base
952Ian Lynagh <[email protected]>**20090722151048
953 Rather than indirecting through an integer package
955[thenIO, bindIO, returnIO moved to GHC.Base
956Simon Marlow <[email protected]>**20090722102219
957 Ignore-this: 5d6c5988e0abab2c5169540aa8ddedb9
959[remove unused $(HscIfaceFileVersion)
960Simon Marlow <[email protected]>**20090720145053
961 Ignore-this: d725cbbde3c68673e2342b370460d87f
963[Choose external names more predictably
964Simon Marlow <[email protected]>**20090720144751
965 Ignore-this: 17513bc93af646108f21bbed1c8f4a3a
967 Now, for a compiler-generated binding "x", if "x" is referred to by
968 the exported "f", then it will be named "f_x" rather than something
969 like "x23".  This means that hopefully
971   - compilation will more often product the same results given the
972     same input (the choice of names is not dependent on the
973     non-deterministic order of bindings within the compiler).
975   - less recompilation will be necessary after making changes
977   - navigating Core might be a bit easier.
979 unfortunately, compilation with -O still does not consistently produce
980 the same ABI.  The simplifier sometimes does different things,
981 apparently.
983 Names will be longer, but I can't see a way around that.
985[Use stable ordering in the dependencies
986Simon Marlow <[email protected]>**20090717123449
987 Ignore-this: e20bac233cf6f834e69c027ff60b5b50
988 Fixes another cause of wobbly interface files and unnecessary recompilation.
990[fall back on libffi for 'foreign import "wrapper"' if necessary
991Simon Marlow <[email protected]>**20090716134549
992 Ignore-this: e1073e1ad77e720326865a6d3c4f3790
994[Take account of GADTs when reporting patterm-match overlap
995[email protected]**20090722050933
996 Ignore-this: 7dcbdcb91021e83e6e6208a2e68c50c9
998 When matching against a GADT, some of the constructors may be impossible.
999 For example
1000        data T a where
1001           T1 :: T Int
1002           T2 :: T Bool
1003           T3 :: T a
1005         f :: T Int -> Int
1006         f T1 = 3
1007         f T3 = 4
1009 Here, does not have any missing cases, despite omittting T2, because
1010 T2 :: T Bool.
1012 This patch teaches the overlap checker about GADTs, which happily
1013 turned out to be rather easy even though the overlap checker needs
1014 a serious rewrite.
1017[Fix Trac #3382: desugaring of NPats
1018[email protected]**20090720061226
1019 Ignore-this: 4dccdaf2b7d6428141dcf174cb455a20
1021 Max spotted that the short-cut rules for desugaring NPats (where
1022 we compare against a literal) were wrong now that we have overloaded
1023 strings.
1026[Fix cleaning with the new integer changes
1027Ian Lynagh <[email protected]>**20090722142545]
1028[Add integer-simple as a build option
1029Ian Lynagh <[email protected]>**20090722013137]
1030[Tweak whitespace
1031Ian Lynagh <[email protected]>**20090719221303]
1032[Add a -fwarn-dodgy-exports flag; fixes #1911
1033Ian Lynagh <[email protected]>**20090719200124
1034 This is used to control warnings that were previously unconditional.
1036[Build terminfo if we /aren't/ on Windows, not if we /are/
1037Ian Lynagh <[email protected]>**20090719111709]
1038[Change how PACKAGES is constructed, so that everything gets cleaned properly
1039Ian Lynagh <[email protected]>**20090718210058
1040 If Windows wasn't defined properly then the Win32 package wasn't being
1041 cleaned, as it wasn't added to PACKAGES. Now we always add everything to
1044[temporarily turn off unused import warnings for the time library
1045Ian Lynagh <[email protected]>**20090718183445]
1046[Follow the split directory rename in the GHC build system rules
1047Ian Lynagh <[email protected]>**20090718155618]
1048[Fix Trac #3346: tcSimplify for LHS of RULES with type equalities
1049[email protected]**20090717155722
1050 Ignore-this: dfdd0f9a62d78d63276a4d558831099c
1052[Add osuf to the name we use for the split dir
1053Ian Lynagh <[email protected]>**20090718145522
1054 This avoids a collision between the directories we use when compiling
1055 multiple ways, which in turn leads to a race condition in parallel
1056 builds.
1058[Temporarily turn off unused-do-bind warnings for the time package
1059Ian Lynagh <[email protected]>**20090718134536]
1060[Make ghc-cabal handle "Custom" Setup.hs files that have a configure script
1061Ian Lynagh <[email protected]>**20090718131555]
1062[Add the time library, and support for libraries in tarballs
1063Ian Lynagh <[email protected]>**20090718121649]
1064[Always serialise Int as 64bit values; fixes trac #3041
1065Ian Lynagh <[email protected]>**20090717224203
1066 This means that, provided the values are small enough, files
1067 serialized are portable between architectures. In particular,
1068 .haddock files are portable.
1070[Remove some code that has always been commented out
1071Ian Lynagh <[email protected]>**20090717224100]
1072[Allow mixed case in the LINE pragma; patch from squadette; fixes #1817
1073Ian Lynagh <[email protected]>**20090717133522]
1074[Comment only
1075[email protected]**20090717120154
1076 Ignore-this: f96b11e602fe4b311c1e466af9aa1908
1078[Add missing case for eq_note.
1079[email protected]**20090624134407]
1080[Rename parameters to make debugging code compile.
1081[email protected]**20090626105440]
1082[Comment fix: use the same variable names in the conclusion as in the premise.
1083[email protected]**20090618092235]
1084[Use names like '$fOrdInt' for dfuns (and TF instances), rather than '$f21'
1085Simon Marlow <[email protected]>**20090716125643
1086 Ignore-this: d0b4632cf8ed9e05b67a19aa19ab3e19
1088 2 reasons for this:
1089   - compilation is more predictable.  Adding or removing an instance
1090     is less likely to force unnecessary recompilation due to
1091     renumbering other dfun names.
1092   - it makes it easier to read Core / C-- / asm
1094 The names aren't completely deterministic.  To do that, we'd have to
1095 include package and module names, which would make the symbol names
1096 long and reduce readability.  So the compromise is that if there's a
1097 clash, we disambiguate by adding an integer suffix.  This is fairly
1098 unlikely in practice unless you're using overlapping instances.
1100 Type family instances are handled in the same way, with the same
1101 disambiguation strategy.
1103[Use a stable ordering for the export list in the interface
1104Simon Marlow <[email protected]>**20090716122601
1105 Ignore-this: 847dd7adc8b52e56f28d2478c78c925
1106 The export list was ordered according to the whim of FastStrings,
1107 which meant that interface fingerprints could change for no good
1108 reason, causing spurious recompilation.
1110[whitespace only
1111Simon Marlow <[email protected]>**20090716104217
1112 Ignore-this: 38cff291d9ef15c30e3ed685ffc3c9f9
1114[refactor: use packageConfigId in place of mkPackageId . package
1115Simon Marlow <[email protected]>**20090716104145
1116 Ignore-this: f3d73e7bd1b307a67d26585c49f3d89f
1118[Typo fixes, from Alexey Mahotkin
1119Ian Lynagh <[email protected]>**20090717010817]
1120[Don't put all of $CFLAGS into $SRC_CC_OPTS
1121Ian Lynagh <[email protected]>**20090716131309
1122 Instead, we just put the flags we need in there (e.g. -m64 on OS X 64).
1123 This fixes a problem found by Simon M, where we were compiling
1124 everything with -g, leading to a bloated RTS.
1126[Move showOpt into DynFlags
1127Ian Lynagh <[email protected]>**20090716005314]
1128[Make the --info values printable with "ghc --print-foo"; trac #3122
1129Ian Lynagh <[email protected]>**20090716001718
1130 Also, libdir is now part of the --info output, so this subsumes the old
1131 --print-libdir flag.
1132 The mode parsing was getting rather adhoc, so I've tidied it up a bit
1133 in the process.
1135[Fix a flag name in the docs
1136Ian Lynagh <[email protected]>**20090714165943]
1137[Add the -fno-shared-implib flag
1138Ian Lynagh <[email protected]>**20090714165631
1139 Patch from
1140     Max Bolingbroke <[email protected]>
1141 Rerecorded to avoid conflicts.
1143[Derived Foldable instances should use Data.Foldable.foldr
1144[email protected]**20090711130647
1145 Ignore-this: e3eb841e9535a842a98bb1ae0532c6e8
1147[remove Solaris-specific hacks, now unnecessary
1148Simon Marlow <[email protected]>**20090713083524
1149 Ignore-this: 500077008e463532e0677ee82f5284bb
1151[Simplify timestamp restoration
1152Matthias Kilian <[email protected]>**20090711100244
1153 Ignore-this: 7eaede224befa6b5368c91b92366211
1155[FIX #3272
1156Manuel M T Chakravarty <[email protected]>**20090714054559
1157 Ignore-this: 225fe4d82d4eed02e9b1377687661bac
1159[Fix warnings
1160Roman Leshchinskiy <[email protected]>**20090713092032
1161 Ignore-this: 3631b87164fc54d82e3a02875dc08f7d
1163[Separate length from data in DPH arrays
1164Roman Leshchinskiy <[email protected]>**20090713044212
1165 Ignore-this: aa2cc3b5ae43bd2c493ce4b330c883cd
1167[TFs: FIX #2203 (second half)
1168Manuel M T Chakravarty <[email protected]>**20090710064834
1169 Ignore-this: 46a46feaa73f74feb08524b9e7547414
1171[TFs: Fix should_compile/Simple8
1172Manuel M T Chakravarty <[email protected]>**20090710042728
1173 Ignore-this: 471ab67e3df1c5245921be5286a45f93
1175[workaround new Cygwin bash CRLF behaviour
1176Simon Marlow <[email protected]>**20090709132850
1177 Ignore-this: 5cfa2cc9d776ebe315c0f6ad7ab56d98
1179[Use /usr/bin/test if it exists, and fix test syntax.
1180Simon Marlow <[email protected]>**20090709124616
1181 Ignore-this: 83a75ba7c3ce2a1d02bddb7bfe414bfe
1182 Should fix Solaris build failures
1184[Stop using -fno-warn-unused-do-bind when compiling the libraries
1185Ian Lynagh <[email protected]>**20090709160422
1186 They're now fixed to not generate those warnings
1188[Remove maybePrefixMatch, using stripPrefix instead
1189Ian Lynagh <[email protected]>**20090709160412
1190 We already require GHC 6.8 to build, and that included stripPrefix
1191 in Data.List.
1193[Allow mixed case pragmas; #1817. Patch from squadette
1194Ian Lynagh <[email protected]>**20090709153737
1195 This patch allow you to use "Language CPP", or even "LaNgUaGe CPP",
1196 if you wish, as the manual claims you can.
1198[don't create inplace/bin/ghc-<version>
1199Simon Marlow <[email protected]>**20090706092031
1200 Ignore-this: 2584d7bf56e77b27ca5b7b557c152c5e
1202[Fix ignored-monadic-result warnings
1203Ian Lynagh <[email protected]>**20090707181857]
1204[Fix an unused import warning
1205Ian Lynagh <[email protected]>**20090707144706]
1206[Avoid unnecessary recompilation after ./configure (helps #3228)
1207Simon Marlow <[email protected]>**20090707085040
1208 Ignore-this: f8b3e7a2a96bc23cd29505ab9c8dbd7d
1209 We cache the old versions of files generated by configure, so that if
1210 configure touches the file without changing it, we can detect that and
1211 restore the timestamp.
1213[check for tabs in compiler/ghc.cabal.in (#3344)
1214Simon Marlow <[email protected]>**20090707081845
1215 Ignore-this: 6073db47eafd52e13e76c58ef738afcf
1217[remove tabs
1218Simon Marlow <[email protected]>**20090707081823
1219 Ignore-this: 3d65831fc019f76cefac03291904842a
1221[fix cleaning of libraries (now 'make clean' in libraries/* works again)
1222Simon Marlow <[email protected]>**20090703114638
1223 Ignore-this: b3af731d50ff5bfbd453f94aa40cb92c
1225[FIX #2677
1226Manuel M T Chakravarty <[email protected]>**20090707055442
1227 Ignore-this: e224dd09d0d1c9ec4f3b46c7accb8d57
1229[Fix unused import warnings
1230Ian Lynagh <[email protected]>**20090707143216]
1231[Fix unused import warnings
1232Ian Lynagh <[email protected]>**20090707133537]
1233[When exporting F(..), all the children of F are also exported
1234Ian Lynagh <[email protected]>**20090707133427
1235 This fixes the unused imports warning when
1236     Foo (F(x,y,z))
1237 is imported and
1238     Foo (F(..))
1239 is exported.
1241[Remove unused imports
1242Ian Lynagh <[email protected]>**20090707121548]
1243[Major patch to fix reporting of unused imports
1244[email protected]**20090706112503
1245 Ignore-this: 3b5ecdd880474493d73bdbdc0fa0b782
1247 This patch, joint work between and Ian and Simon, fixes Trac #1074
1248 by reporting unused import declarations much more accuratly than
1249 before.  The specification is described at
1251 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/UnusedImports
1253 The implementation is both easier to understand than before, and shorter
1254 too. 
1256 Also fixed are #1148, #2267
1258 Also fixed is -ddump-minimal imports, which now works properly, fixing
1259 Trac #1792.
1263[Trim unused imports detected by new unused-import code
1264[email protected]**20090706112201
1265 Ignore-this: c6ca46d3a750c1cd1d58ea2c0de9f14f
1267[Fix generational GC bug (#3348)
1268Simon Marlow <[email protected]>**20090706112227
1269 Ignore-this: 5938338efa0ad1550968c664a5a76f31
1271[Windows fixes to build system: use the 'find' and 'sort' found by configure
1272[email protected]**20090706103413
1273 Ignore-this: a96197917f388a637118bafefb427495
1275 The build system should use 'find' and 'sort' that are discovered by
1276 configure, not the ones in your path.  On Windows the ones in your path
1277 might well be the non-Unixy Windows versions.
1279 This patch fixes the ones I tripped over. There may be more.
1282[Update driver/Makefile for the new build system
1283Ian Lynagh <[email protected]>**20090705204041]
1284[Follow Cabal changes
1285Ian Lynagh <[email protected]>**20090705180414]
1286[Update TODO list
1287Ian Lynagh <[email protected]>**20090705165009]
1288[Make -fext-core a dynamic flag (it was a static flag)
1289Ian Lynagh <[email protected]>**20090705132420]
1290[Update a few points about shared libs in other sections
1291Duncan Coutts <[email protected]>**20090704212212
1292 And add links to the new shared libs section.
1294[Document -dynload flag. Also add it and -shared to the flags reference.
1295Duncan Coutts <duncan@well-typed.com>**20090704212119]
1296[Add new section on using shared libs
1297Duncan Coutts <duncan@well-typed.com>**20090704212003]
1298[Document foreign import prim in the user guide
1299Duncan Coutts <duncan@well-typed.com>**20090704180547
1300 Basically just stat that it exists and refer to the ghc dev wiki
1301 for the details, because we don't really want people using it.
1303[For now, use -fno-warn-unused-do-bind when building the libraries
1304Ian Lynagh <igloo@earth.li>**20090704210654]
1305[Make changes to -fwarn-unused-do-bind and -fwarn-wrong-do-bind suggested by SPJ
1306Max Bolingbroke <batterseapower@hotmail.com>**20090702150943
1307 Ignore-this: 595368298d2e11623c0bd280ff89d8de
1309[Support for -fwarn-unused-do-bind and -fwarn-wrong-do-bind, as per #3263
1310Max Bolingbroke <batterseapower@hotmail.com>**20090701200344
1311 Ignore-this: 511117ffc10d4b656e530b751559b8b8
1313[Improved infrastructure for fast-rebuilding of parts of the tree
1314Simon Marlow <marlowsd@gmail.com>**20090703074527
1315 Ignore-this: ab348d0988d8bbc28c2b4babbd6bbfb8
1317 e.g.
1319   cd compiler
1320   make FAST=YES stage1/build/HscTypes.o
1322 builds just the specified .o file, without rebuilding dependencies,
1323 and omitting some of the makefile phases.  FAST=YES works anywhere, to
1324 omit depenencies and phases.  'make fast' is shorthand for 'make
1325 all FAST=YES'.
1327[Fix Trac #3342: missed zonking in TcHsSyn
1329 Ignore-this: 9b97b2142dfc665b503f59df7c55dd17
1331 The type in a ViewPat wasn't being zonked.  Easily fixed.
1334[Type synonym families may be nullary
1335Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090702084826
1336 Ignore-this: bcfe6ed62c901206daf5a5088890bbea
1338[New syntax for GADT-style record declarations, and associated refactoring
1340 Ignore-this: bd9817230d3773b3b01fae3d7f04c57d
1342 The main purpose of this patch is to fix Trac #3306, by fleshing out the
1343 syntax for GADT-style record declraations so that you have a context in
1344 the type.  The new form is
1345    data T a where
1346      MkT :: forall a. Eq a => { x,y :: !a } -> T a
1347 See discussion on the Trac ticket.
1349 The old form is still allowed, but give a deprecation warning.
1351 When we remove the old form we'll also get rid of the one reduce/reduce
1352 error in the grammar. Hurrah!
1354 While I was at it, I failed as usual to resist the temptation to do lots of
1355 refactoring.  The parsing of data/type declarations is now much simpler and
1356 more uniform.  Less code, less chance of errors, and more functionality.
1357 Took longer than I planned, though.
1359 ConDecl has record syntax, but it was not being used consistently, so I
1360 pushed that through the compiler.
1363[White space only
1365 Ignore-this: 19f654cbf371c8dcc6517fd4934855b4
1367[Comments only
1369 Ignore-this: 384fc2729c7c50a1680775a1f9ff89e4
1371[Look through Notes when matching
1373 Ignore-this: 7daea81e905ec6061d3e0fd588d7e61b
1375[FIX #3197
1376Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090702070905
1377 Ignore-this: ebf829f0ae025e82bccdfa4345828ffe
1379[Fix #2197 (properly this time)
1380Simon Marlow <marlowsd@gmail.com>**20090701122354
1381 Ignore-this: 39b6e4b0bcdd8c2f4660f976b7db768d
1383 $ ./inplace/bin/ghc-stage2 --interactive
1384 GHCi, version 6.11.20090701: http://www.haskell.org/ghc/  :? for help
1385 ghc-stage2: GHCi cannot be used when compiled with -prof
1386 [1]    32473 exit 1     ./inplace/bin/ghc-stage2 --interactive
1388[make GhcProfiled work, and add a "prof" flavour to build.mk
1389Simon Marlow <marlowsd@gmail.com>**20090701114211
1390 Ignore-this: 386d347e4ad8b6c2bd40a2ba7da31ba6
1392 Building a profiled GHC is as simple as adding
1394 GhcLibWays += p
1395 GhcProfiled = YES
1397 to your build.mk and saying 'make'.  Then you have a profiled
1398 inplace/bin/ghc-stage2.
1400[remove unnecessary $(RM)s
1401Simon Marlow <marlowsd@gmail.com>**20090701110609
1402 Ignore-this: f326ec8931d0d484a66b67ce1270cc6e
1404['make html' in a library builds the Haddock docs
1405Simon Marlow <marlowsd@gmail.com>**20090630111137
1406 Ignore-this: 781bf10e2d4bca23b7f70c6f0465d120
1408[fix GC bug introduced with the C finalizer support
1409Simon Marlow <marlowsd@gmail.com>**20090630080834
1410 Ignore-this: 3567e3adb5ae4a5dcbce81733487f348
1412[Fix #3319, and do various tidyups at the same time
1413Simon Marlow <marlowsd@gmail.com>**20090626095421
1414 Ignore-this: ea54175f6bd49e101d7b33392764f643
1415  - converting a THSyn FFI declaration to HsDecl was broken; fixed
1416  - pretty-printing of FFI declarations was variously bogus; fixed
1417  - there was an unused "library" field in CImport; removed
1419[rename cache variable to keep recent autoconfs happy
1420Ross Paterson <ross@soi.city.ac.uk>**20090626131410
1421 Ignore-this: 187091bbe78f2b14402162acfb98180f
1423[TAG 2009-06-25
1424Ian Lynagh <igloo@earth.li>**20090625155528]
1425[TAG 2009-06-25
1426Ian Lynagh <igloo@earth.li>**20090625155514]
1427[Add a configure test for whether or not __mingw_vfprintf exists
1428Ian Lynagh <igloo@earth.li>**20090627150501]
1429[Add buildinfo files to the bindist
1430Ian Lynagh <igloo@earth.li>**20090625132220]
1431[Fix Trac #3323: naughty record selectors again
1433 Ignore-this: 5ea70e631a2104ae7bf139f89a91a63a
1435 I boobed when I decoupled record selectors from their data types.
1436 The most straightforward and robust fix means attaching the TyCon
1437 of a record selector to its IfaceIdInfo, so
1439    you'll need to rebuild all .hi files
1441 That said, the fix is easy.
1444[propagate the result of atomically properly (fixes #3049)
1445Simon Marlow <marlowsd@gmail.com>**20090624141530
1446 Ignore-this: 419d29c24d280799e44ee8248f27c606
1448[add debug_p and thr_debug_p to $(ALL_WAYS)
1449Simon Marlow <marlowsd@gmail.com>**20090624110255
1450 Ignore-this: 6f4aebb8b276b8ec5d77ae6a809b0a6b
1452[Fix buffering problem when GHCi is using the new IO library
1453Simon Marlow <marlowsd@gmail.com>**20090623142623
1454 Ignore-this: 54c78173244203852e27156df139c9f0
1455 Behind the scenes, the new IO library always does buffering for read
1456 Handles regardless of NoBuffering.  Normally this isn't visible, but
1457 it causes a problem in GHCi where there are two stdin Handles.
1459 This should fix those ghci test failures that sprung up in full
1460 testsuite runs recently.
1462[Optimise the %.hi : %.o rule
1463Simon Marlow <marlowsd@gmail.com>**20090623124901
1464 Ignore-this: 4c467d6b7ae90243429951a4f54ff027
1465 Previously this rule had a sanity check for the existence of the .o
1466 file.  However, the sanity check is expensive, especially on Windows,
1467 because it requires spawning a shell.  So now we use an empty command
1468 here.
1470 This change reduced the time to do 'make' in an up-to-date tree on
1471 Windows from 33s to 16s for me.  (the actual saving depends on how
1472 much rebuilding you've been doing, and how many .hi files are older
1473 than their .o files).
1475 The comments in this file now describe various versions of the rule
1476 that don't work.
1478[fix comment
1479Simon Marlow <marlowsd@gmail.com>**20090622145249
1480 Ignore-this: 17950b7877d90170ea3fd12f98a9fe02
1482[Make C and CMM objects way-dependent
1483Ian Lynagh <igloo@earth.li>**20090624134531
1484 In particular, in the integer-gmp package the C and CMM code depends
1485 on the size of STG structures, which vary between ways.
1487[Add boot-pkgs and packages to the source dists
1488Ian Lynagh <igloo@earth.li>**20090623224516]
1489[follow change in System.Posix.Internals.c_open
1490Simon Marlow <marlowsd@gmail.com>**20090622140724
1491 Ignore-this: 1cc3370defcfbbd2ccec1f6aba193e6
1493[fix 'make 1'
1494Simon Marlow <marlowsd@gmail.com>**20090617140657
1495 Ignore-this: 16ba87f7ffc7dd8bd4b738ed9f843687
1497[remove unused cruft
1498Simon Marlow <marlowsd@gmail.com>**20090603143348
1499 Ignore-this: 4daebb56f61c4391823c12a2705135
1501[Fix the GHCi debugger so that it can recognise Integers again
1502Ian Lynagh <igloo@earth.li>**20090623001946]
1503[Follow Integer changes
1504Ian Lynagh <igloo@earth.li>**20090622224423]
1505[Add the integer package
1506Ian Lynagh <igloo@earth.li>**20090622221716
1507 integer-gmp's Integer is now wrapped by an Integer type in integer.
1509[Add a couple more symbols to the Linker.c table
1510Ian Lynagh <igloo@earth.li>**20090622144443
1511 Fixes ghci loading gmp on Windows
1513[The IO type has moved to GHC.Types in ghc-prim
1514Ian Lynagh <igloo@earth.li>**20090620155154]
1515[Fix #3132: a case of bogus code generation
1516Simon Marlow <marlowsd@gmail.com>**20090618090718
1517 Ignore-this: 7c9f7d649ea6baf9422c97f6c95ecc81
1519[Fix the way in the +RTS --info output
1520Ian Lynagh <igloo@earth.li>**20090620142600]
1521[Set DELETE_ON_ERROR in ghc.mk
1522Ian Lynagh <igloo@earth.li>**20090617121806]
1523[makefile tweak
1524Ian Lynagh <igloo@earth.li>**20090617121711]
1525[Add an _EXTRA_OBJS variable when linking packages
1526Ian Lynagh <igloo@earth.li>**20090616231750]
1527[Fix the ghci wrapper
1528Ian Lynagh <igloo@earth.li>**20090616182501
1529 The ${1+"$@"} was being evaluated by make, rather than being escaped.
1531[Remove more GMP bits
1532Ian Lynagh <igloo@earth.li>**20090616173712]
1533[Add a #endif back that was accidentally removed from package.conf.in
1534Ian Lynagh <igloo@earth.li>**20090616170417]
1535[Fix #3279, #3288: fix crash encountered when calling unblock inside unsafePerformIO
1536Simon Marlow <marlowsd@gmail.com>**20090616152455
1537 Ignore-this: 79b89712df9f87b239c41e469c8745c8
1538 See comments for details
1540[drop packedstring; it is no longer required by template-haskell
1541Simon Marlow <marlowsd@gmail.com>**20090518120957
1542 Ignore-this: bd2e52eac8372b53a65e9dbd0d8ae46f
1544[suggest "cd <dir>; make help"
1545Simon Marlow <marlowsd@gmail.com>**20090616085708
1546 Ignore-this: 4ea0fcb9ab613b1b29daaf4881f8edb6
1548[Add support for 'make help' in subdirectories
1549Simon Marlow <marlowsd@gmail.com>**20090616085341
1550 Ignore-this: 7a3f80690e8e9a9094096aa4cfecfa8b
1551 Including help for directory-specific targets, such as 'make 1' in ghc
1553[mention 'make {html,ps,pdf}'
1554Simon Marlow <marlowsd@gmail.com>**20090616085302
1555 Ignore-this: af8e9abe23a903a14e99711b631abc1d
1557[eliminate "warning: overriding commnds..." from make when we're cleaning
1558Simon Marlow <marlowsd@gmail.com>**20090616084451
1559 Ignore-this: 1ac620ad71d6e89313f544be1d94f6c3
1561[Add 'make help', displaying a list of useful make targets
1562Simon Marlow <marlowsd@gmail.com>**20090615140008
1563 Ignore-this: e6aae72e011eb668bbb2cff677c11a02
1565[Add 'make fast' which omits deps (for a library) and some of the phases
1566Simon Marlow <marlowsd@gmail.com>**20090615135801
1567 Ignore-this: ec6f7a63fbfd4d6881f0dc2931705da9
1569[add the missing final row of dashes in the success message
1570Simon Marlow <marlowsd@gmail.com>**20090615135716
1571 Ignore-this: c173af64e8bfb4e50e2fa377c44031d8
1573['make 1' in libraries builds just the stage1 libs
1574Simon Marlow <marlowsd@gmail.com>**20090615135651
1575 Ignore-this: 50d35c045f56575de99c4c8a644bd538
1576 i.e. not dph, and hence not stage2
1578[add 'make stage1_libs', to make just the stage 1 libs
1579Simon Marlow <marlowsd@gmail.com>**20090615135532
1580 Ignore-this: 5bf5f3ff554f47fd6e22dd13a1729c2d
1581 i.e. not dph, and hence not the stage 2 compiler.
1583[Make sure we aren't passing -Werror in the CFLAGS for configure scripts
1584Ian Lynagh <igloo@earth.li>**20090615214758
1585 When configure tests for a feature it may not generate warning-free C
1586 code, and thus may think that the feature doesn't exist if -Werror is
1587 on.
1589[copyFileWithHeader: use binary Handles
1590Simon Marlow <marlowsd@gmail.com>**20090615110545
1591 Ignore-this: ae9bb5087317a20b9caefec9419c4a69
1592 Fixes failure when Haddocking Data.Monoid in libraries/base
1594[Pass CFLAGS and LDFLAGS to configure scripts
1595Ian Lynagh <igloo@earth.li>**20090615201604]
1596[.cmm rules need to depend on $$($1_$2_HC_DEP), not $$($1_$2_HC)
1597Ian Lynagh <igloo@earth.li>**20090615133357]
1598[Move gmp into libraries/integer-gmp
1599Ian Lynagh <igloo@earth.li>**20090614183150]
1600[Stop building the rts against gmp
1601Duncan Coutts <duncan@well-typed.com>**20090613191956
1602 Nothing from gmp is used in the rts anymore.
1604[Remove the implementation of gmp primops from the rts
1605Duncan Coutts <duncan@well-typed.com>**20090613191851]
1606[Stop setting the gmp memory functions in the rts
1607Duncan Coutts <duncan@well-typed.com>**20090613165841
1608 and remove the implementations of stg(Alloc|Realloc|Dealloc)ForGMP
1610[Remove the gmp/Integer primops from the compiler
1611Duncan Coutts <duncan@well-typed.com>**20090613142410
1612 The implementations are still in the rts.
1614[Put the CMM objects in the GHCi library too
1615Ian Lynagh <igloo@earth.li>**20090611162038]
1616[Add rules for building .cmm files in libraries
1617Ian Lynagh <igloo@earth.li>**20090611134057]
1618[Exports a few rts things we need for cmm code in external packages
1619Duncan Coutts <duncan@well-typed.com>**20090613170622
1620 In particular we need alloc_blocks and alloc_blocks_lim for MAYBE_GC.
1621 The gmp cmm primops also use stg_ARR_WORDS_info.
1623[Add and export rts_unsafeGetMyCapability from rts
1624Duncan Coutts <duncan@well-typed.com>**20090612114156
1625 We need this, or something equivalent, to be able to implement
1626 stgAllocForGMP outside of the rts. That's because we want to use
1627 allocateLocal which allocates from the given capability without
1628 having to take any locks. In the gmp primops we're basically in
1629 an unsafe foreign call, that is a context where we hold a current
1630 capability. So it's safe for us to use allocateLocal. We just
1631 need a way to get the current capability. The method to get the
1632 current capability varies depends on whether we're using the
1633 threaded rts or not. When stgAllocForGMP is built inside the rts
1634 that's ok because we can do it conditionally on THREADED_RTS.
1635 Outside the rts we need a single api we can call without knowing
1636 if we're talking to a threaded rts or not, hence this addition.
1638[Require GHCForeignImportPrim for "foreign import prim"
1639Duncan Coutts <duncan@well-typed.com>**20090611202647
1640 In practise currently you also need UnliftedFFITypes, however
1641 the restriction to just unlifted types may be lifted in future.
1643[Add missing StgPrimCallOp case in repCCallConv
1644Duncan Coutts <duncan@well-typed.com>**20090611165905
1645 We don't handle "foreign import prim" in TH stuff.
1647[Add missing StgPrimCallOp case to isSimpleOp
1648Ian Lynagh <igloo@earth.li>**20090611122727]
1649[Reverse the safe/unsafe requirement on foreign import prim
1650Duncan Coutts <duncan@well-typed.com>**20090611115243
1651 The safe/unsafe annotation doesn't currently mean anything for prim.
1652 Just in case we decide it means something later it's better to stick
1653 to using one or the other consistently. We decided that using safe
1654 is the better one to require (and it's also the default).
1656[Add PrimCall to the STG layer and update Core -> STG translation
1657Duncan Coutts <duncan@well-typed.com>**20090609151155
1658 It adds a third case to StgOp which already hold StgPrimOp and StgFCallOp.
1659 The code generation for the new StgPrimCallOp case is almost exactly the
1660 same as for out-of-line primops. They now share the tailCallPrim function.
1661 In the Core -> STG translation we map foreign calls using the "prim"
1662 calling convention to the StgPrimCallOp case. This is because in Core we
1663 represent prim calls using the ForeignCall stuff. At the STG level however
1664 the prim calls are really much more like primops than foreign calls.
1666[Desugaring for "foreign import prim"
1667Duncan Coutts <duncan@well-typed.com>**20090609105945
1668 Unlike normal foreign imports which desugar into a separate worker and
1669 wrapper, we use just a single wrapper decleration. The representation
1670 in Core of the call is currently as a foreign call. This means the
1671 args are all treated as fully strict. This is ok at the moment because
1672 we restrict the types for foreign import prim to be of unboxed types,
1673 however in future we may want to make prim imports be the normal cmm
1674 calling convention for Haskell functions, in which case we would not
1675 be able to assume all args are strict. At that point it may make more
1676 sense to represent cmm/prim calls distinct from foreign calls, and
1677 more like the we the existing PrimOp calls are handled.
1679[Typechecking for "foreign import prim"
1680Duncan Coutts <duncan@well-typed.com>**20090609104826
1681 The main restriction is that all args and results must be unboxed types.
1682 In particular we allow unboxed tuple results (which is a primary
1683 motivation for the whole feature). The normal rules apply about
1684 "void rep" result types like State#. We only allow "prim" calling
1685 convention for import, not export. The other forms of import, "dynamic",
1686 "wrapper" and data label are banned as a conseqence of checking that the
1687 imported name is a valid C string. We currently require prim imports to
1688 be marked unsafe, though this is essentially arbitrary as the safety
1689 information is unused.
1691[Lexing and parsing for "foreign import prim"
1692Duncan Coutts <duncan@well-typed.com>**20090609104536
1693 We only allow simple function label imports, not the normal complicated
1694 business with "wrapper" "dynamic" or data label "&var" imports.
1696[Add new FFI calling convention "prim"
1697Duncan Coutts <duncan@well-typed.com>**20090609104403
1698 First in a series of patches to add the feature.
1699 This patch just adds PrimCallConv to the CCallConv type.
1701[Include runghc and unlit in bindists
1702Ian Lynagh <igloo@earth.li>**20090613161707]
1703[Improve bindist testing
1704Ian Lynagh <igloo@earth.li>**20090613161516
1705 We now also test runghc and unlit
1707[Remove the haskeline-specific hacks from ghc-cabal
1708Ian Lynagh <igloo@earth.li>**20090612235823
1709 Now that base does -liconv when it is necessary, it is no longer
1710 necessary for haskeline to do it as well, as haskeline depends on base.
1711 Thus we don't need the haskeline-specific hacks in ghc-cabal any more.
1713[Remove library buildinfo files when cleaning
1714Ian Lynagh <igloo@earth.li>**20090612233818]
1715[Update symbol names; fixes the build on OSX
1716Ian Lynagh <igloo@earth.li>**20090612194029]
1717[don't check for stack underflow if we just had an overflow
1718Simon Marlow <marlowsd@gmail.com>**20090610104748
1719 Ignore-this: 1c52dd362ec23bdec26012c23d5049e6
1721[pprExpr: don't add extra parens around [a..b] in an argument position
1722Simon Marlow <marlowsd@gmail.com>**20090608082705
1723 Ignore-this: b0e25aa489a313535234571d9d8633a8
1724 test is tcfail205
1726[Changes for the new IO library, mainly base-package modules moving around
1727Simon Marlow <marlowsd@gmail.com>**20090529131822
1728 Ignore-this: 7c542c1d82b18500118b8b198c9e2be0
1730[Deprecate the threadsafe kind of foreign import
1731Duncan Coutts <duncan@well-typed.com>**20090611123441]
1732[Remove __encodeDouble and __encodeFloat from the rts
1733Duncan Coutts <duncan@well-typed.com>**20090611154852
1734 They now live in the integer-gmp package.
1736[Add recently added lib dirs to the darcs boring file
1737Duncan Coutts <duncan@well-typed.com>**20090611112824]
1738[Fix the compiler-hs-dependency's
1739Ian Lynagh <igloo@earth.li>**20090612104827
1740 We needed some more $s to delay evaluation until the values are
1741 available, and the calls needed to be later in the ghc.mk so that
1742 compiler_stage2_WAYS etc are defined.
1744[Doc building is now controlled by sensible variables
1745Ian Lynagh <igloo@earth.li>**20090611162858]
1746[HC bootstrapping now works
1747Ian Lynagh <igloo@earth.li>**20090611162756]
1748[bindists are now done
1749Ian Lynagh <igloo@earth.li>**20090611162730]
1750[Add some $s to rules/build-package.mk for consistency
1751Ian Lynagh <igloo@earth.li>**20090611130144]
1752[Fix the flag used to force linking when we are making a shared library
1753Duncan Coutts <duncan@well-typed.com>**20090604121652
1754 This is a correction to the patch:
1755 * When linking a shared library with --make, always do the link step
1756 which used the wrong flag in making the decision. It used -dynamic
1757 whereas the correct flag is -shared.
1759[Check we're not using stdcall in foreign export on unsupported platforms
1760Duncan Coutts <duncan@well-typed.com>**20090608145509
1761 It's already checked for foreign import, but was missing for export.
1763[Remove the various mp registers from the StgRegTable
1764Duncan Coutts <duncan@well-typed.com>**20090610173609
1765 No longer need them as temp vars in the cmm primop implementations.
1767[Convert the gmp cmm primops to use local stack allocation
1768Duncan Coutts <duncan@well-typed.com>**20090610173026
1769 Using global temp vars is really ugly and in the threaded case it
1770 needs slots in the StgRegTable. It'd also be pretty silly once we
1771 move the cmm primops out of the rts, into the integer-gmp package.
1773[Make killThread# cmm primop use local stack allocation
1774Duncan Coutts <duncan@well-typed.com>**20090610172215
1775 It using the mp_tmp_w register/global as a convenient temporary
1776 variable. This is naughty because those vars are supposed to be
1777 for gmp. Also, we want to remove the gmp temp vars so we must
1778 now use a local stack slot instead.
1780[Make Windows bindists and installers work in the new build system
1781Ian Lynagh <igloo@earth.li>**20090610181825]
1783Ian Lynagh <igloo@earth.li>**20090610124611]
1784[Define _BSD_SOURCE in Stg.h
1785Ian Lynagh <igloo@earth.li>**20090609121705
1786 This means that, on Linux, we get functions like gamma defined when we
1787 #include math.h
1789[Put "%expect 0" directives in the .y files
1790Ian Lynagh <igloo@earth.li>**20090608203935
1791 With the exception of GHC's main Parser.y(.pp), which has 2
1792 reduce/reduce conflicts
1794[Mention that generalised list comprehensions are enabled with -XTransformListComp
1796 Ignore-this: 4cb8b8153a2b072904c97a3bdd1ce05e
1798[Update to libffi 3.0.8; fixes trac #3119
1799Ian Lynagh <igloo@earth.li>**20090605171704]
1800[Fix the libffi Makefile
1801Ian Lynagh <igloo@earth.li>**20090605160538]
1802[Add a README saying where libffi tarballs come from
1803Ian Lynagh <igloo@earth.li>**20090605160431]
1804[ghc-pkg now takes a verbosity argument
1805Ian Lynagh <igloo@earth.li>**20090605151544]
1806[Follow Cabal changes
1807Ian Lynagh <igloo@earth.li>**20090605131324]
1808[Update the docs on how you bind unlifted types in let/where clauses
1809Ian Lynagh <igloo@earth.li>**20090605122929]
1810[Document -fwarn-lazy-unlifted-bindings
1811Ian Lynagh <igloo@earth.li>**20090605122348]
1812[Fix typo
1813Ian Lynagh <igloo@earth.li>**20090605122048]
1814[Make a proper Opt_WarnLazyUnliftedBindings warning, with a flag etc
1815Ian Lynagh <igloo@earth.li>**20090605114316]
1816[fix a warning
1817Simon Marlow <marlowsd@gmail.com>**20090604093539
1818 Ignore-this: 90713a7abf991d73c352cbd5a4012d5d
1820[Lock the StablePtr table during GC
1821Simon Marlow <marlowsd@gmail.com>**20090604090553
1822 Ignore-this: 9e9705892b80a8226fd37df04d9c606d
1823 Allows hs_free_fun_ptr() to be called by a separate thread
1825[fix $(TOP)
1826Simon Marlow <marlowsd@gmail.com>**20090604084824
1827 Ignore-this: abfe797881428381eebf6b2036a83a7c
1829[remove a prototype that shouldn't be here
1830Simon Marlow <marlowsd@gmail.com>**20090604084749
1831 Ignore-this: a0fda8f38b5674fcfa04f30b01d4e846
1833[Fix ghc-cabal, so that GHC.Prim gets registered when we install
1834Ian Lynagh <igloo@earth.li>**20090604124501]
1835[Tighten up the DocBook XSL stylesheet test
1836Simon Marlow <marlowsd@gmail.com>**20090603101244
1837 Ignore-this: e68f96360250831634c77914afe11566
1838 It wasn't failing even when the DTD was not found.
1840[fix logic for BUID_DOCBOOK_HTML
1841Simon Marlow <marlowsd@gmail.com>**20090603092313
1842 Ignore-this: f255bbaf00713b998370c810e7ab75d3
1844[Allow RULES for seq, and exploit them
1846 Ignore-this: 7d72898475a3a76fea48c9a85ea2dfd
1848 Roman found situations where he had
1849       case (f n) of _ -> e
1850 where he knew that f (which was strict in n) would terminate if n did.
1851 Notice that the result of (f n) is discarded. So it makes sense to
1852 transform to
1853       case n of _ -> e
1855 Rather than attempt some general analysis to support this, I've added
1856 enough support that you can do this using a rewrite rule:
1858   RULE "f/seq" forall n.  seq (f n) e = seq n e
1860 You write that rule.  When GHC sees a case expression that discards
1861 its result, it mentally transforms it to a call to 'seq' and looks for
1862 a RULE.  (This is done in Simplify.rebuildCase.)  As usual, the
1863 correctness of the rule is up to you.
1865 This patch implements the extra stuff.  I have not documented it explicitly
1866 in the user manual yet... let's see how useful it is first.
1868 The patch looks bigger than it is, because
1869   a) Comments; see esp MkId Note [seqId magic]
1871   b) Some refactoring.  Notably, I moved the special desugaring for
1872      seq from MkCore back into DsUtils where it properly belongs.
1873      (It's really a desugaring thing, not a CoreSyn invariant.)
1875   c) Annoyingly, in a RULE left-hand side we need to be careful that
1876      the magical desugaring done in MkId Note [seqId magic] item (c)
1877      is *not* done on the LHS of a rule. Or rather, we arrange to
1878      un-do it, in DsBinds.decomposeRuleLhs.
1882[Remove old GUM/GranSim code
1883Simon Marlow <marlowsd@gmail.com>**20090602140233
1884 Ignore-this: 9c03eaaf072122118fa4d9cb6db684ca
1886[tidy up autoconfiguration of docbook stuff
1887Simon Marlow <marlowsd@gmail.com>**20090602134943
1888 Ignore-this: 967773e506bb00fe19c08831fb4e03a6
1890  * use --nonet, so xmllint and co don't go off trying to download
1891    stuff from the web
1893  * use the http:// reference for the stylesheet, so we don't have to
1894    search the filesystem for it (should speedup ./configure)
1896[fix 'make sdist'
1897Simon Marlow <marlowsd@gmail.com>**20090602121618
1898 Ignore-this: 79da188afd5a22368e645a88c51237f1
1900[Fix Trac #3265: type operators in type/class declarations
1902 Ignore-this: 17bc1c59defa189311171155f36562ab
1904 We should accept these:
1906    data a :*: b = ....
1907 or
1908    data (:*:) a b = ...
1910 only if -XTypeOperators is in force.  And similarly class decls.
1912 This patch fixes the problem.  It uses the slightly-nasty OccName.isSymOcc,
1913 but the only way to avoid that is to cach the result in OccNames which seems
1914 overkill to us.
1917[Merge the TODO lists in ghc.mk
1918Ian Lynagh <igloo@earth.li>**20090603121209]
1919[Remove the unused remains of __decodeFloat
1920Ian Lynagh <igloo@earth.li>**20090602182211]
1921[Add a comment about why RM and RM_OPTS are not in config.mk
1922Ian Lynagh <igloo@earth.li>**20090602124700]
1923[Follow the change in RM's definition in distrib/Makefile-bin-vars.in
1924Ian Lynagh <igloo@earth.li>**20090602124644]
1925[Add a section "Multi-threading and the FFI"
1926Simon Marlow <marlowsd@gmail.com>**20090602102352
1927 Ignore-this: 767a942fa119cd1ea2eb13584667ac27
1928 and collect all the information about multi-threaded FFI use into it.
1930[emit a helpful message if you say 'make html' and BUILD_DOCBOOK_HTML=NO
1931Simon Marlow <marlowsd@gmail.com>**20090602095936
1932 Ignore-this: a50f9799cc1ff7a5b7e1b0d9386ca3ef
1934[mention documentation tools in the summary; tidy up formatting
1935Simon Marlow <marlowsd@gmail.com>**20090602090345
1936 Ignore-this: 6227ba9fc0f97b3cf796785356a10b37
1938[depend on mk/project.mk appropriately
1939Simon Marlow <marlowsd@gmail.com>**20090529151934
1940 Ignore-this: 17517fcc36b4cafc1c4337a356e4a88c
1942[fix comment
1943Simon Marlow <marlowsd@gmail.com>**20090529113028
1944 Ignore-this: 1391a669e3d253b3174ffae0970eee89
1946[Use -w when compiling libffi, to stop -Werror failures
1947Ian Lynagh <igloo@earth.li>**20090602113408]
1948[Unquote a $(LN_S) in ghc/ghc.mk
1949Ian Lynagh <igloo@earth.li>**20090530233356]
1950[$(XARGS) might include arguments, so don't quote it in makefiles
1951Ian Lynagh <igloo@earth.li>**20090530233133]
1952[Quote commands that we run, so they work if there are space in their paths
1953Ian Lynagh <igloo@earth.li>**20090530220021
1954 I've also added some missing $s to some makefiles. These aren't
1955 technically necessary, but it's nice to be consistent.
1957[Remove some redundant code from hi-rule.mk
1958Ian Lynagh <igloo@earth.li>**20090530193729]
1959[make the clean_libraries target work, so you can "make clean" in libraries/
1960Ian Lynagh <igloo@earth.li>**20090530184750]
1961[fix pprDynamicLinkerAsmLabel for Mac OS X x86_64
1962Austin Seipp <as@nijoruj.org>**20090523090901
1963 Ignore-this: 2cef271f4ca27315bd8b0df9c1bc4343
1965[Make clean_libraries in the same way that we make all_libraries
1966Ian Lynagh <igloo@earth.li>**20090529180150]
1967[Tweak mk/sub-makefile.mk
1968Ian Lynagh <igloo@earth.li>**20090529175748]
1969[Implement -XMonoLocalBinds: a radical new flag
1971 Ignore-this: b52744bdde2e8ea52a9b6d4374a3e049
1973 The new flag -XMonoLocalBinds tells GHC not to generalise nested
1974 bindings in let or where clauses, unless there is a type signature,
1975 in which case we use it. 
1977 I'm thinking about whether this might actually be a good direction for
1978 Haskell go to in, although it seems pretty radical.  Anyway, the flag
1979 is easy to implement (look at how few lines change), and having it
1980 will allow us to experiement with and without.
1982 Just for the record, below are the changes required in the boot
1983 libraries -- ie the places where.  Not quite as minimal as I'd hoped,
1984 but the changes fall into a few standard patterns, and most represent
1985 (in my opinion) sytlistic improvements.  I will not push these patches,
1986 however.
1988 == running darcs what -s --repodir libraries/base
1989 M ./Control/Arrow.hs -2 +4
1990 M ./Data/Data.hs -7 +22
1991 M ./System/IO/Error.hs +1
1992 M ./Text/ParserCombinators/ReadP.hs +1
1993 == running darcs what -s --repodir libraries/bytestring
1994 M ./Data/ByteString/Char8.hs -1 +2
1995 M ./Data/ByteString/Unsafe.hs +1
1996 == running darcs what -s --repodir libraries/Cabal
1997 M ./Distribution/PackageDescription.hs -2 +6
1998 M ./Distribution/PackageDescription/Check.hs +3
1999 M ./Distribution/PackageDescription/Configuration.hs -1 +3
2000 M ./Distribution/ParseUtils.hs -2 +4
2001 M ./Distribution/Simple/Command.hs -1 +4
2002 M ./Distribution/Simple/Setup.hs -12 +24
2003 M ./Distribution/Simple/UserHooks.hs -1 +5
2004 == running darcs what -s --repodir libraries/containers
2005 M ./Data/IntMap.hs -2 +2
2006 == running darcs what -s --repodir libraries/dph
2007 M ./dph-base/Data/Array/Parallel/Arr/BBArr.hs -1 +3
2008 M ./dph-base/Data/Array/Parallel/Arr/BUArr.hs -2 +4
2009 M ./dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/Arrays.hs -6 +10
2010 M ./dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/Combinators.hs -3 +6
2011 M ./dph-prim-seq/Data/Array/Parallel/Unlifted/Sequential/Flat/Permute.hs -2 +4
2012 == running darcs what -s --repodir libraries/syb
2013 M ./Data/Generics/Twins.hs -5 +18
2017[don't shrink the stack smaller than the value set by +RTS -k<size>
2018Simon Marlow <marlowsd@gmail.com>**20090529090827
2019 Ignore-this: 4034b691895bc2fb3a1eaa2195a9ae31
2021[Fix bug in previous change: allocate the correct size
2022Simon Marlow <marlowsd@gmail.com>**20090529090758
2023 Ignore-this: b591ad70cdaed2def46fb8d046f63539
2025[Make haddocking depend on the library .a file
2027 Ignore-this: 233496beeea7a0ca0d8d21543c5050c7
2029 You can't Haddock a library until it's built. Previously that happened
2030 automatically because
2031   Haddock itself was built with stage2
2032   And all the libraries were built with stage1
2033 But now DPH is built with stage2, so Haddock can get to work too
2034 early.
2036 This patch adds the missing dependency (thanks to Simon M)
2039[Fix Trac #3259: expose 'lazy' only after generating interface files
2041 Ignore-this: 3c762bda546981c4b4f01d28b8586ff8
2043 This patch fixes an insidious and long-standing bug in the way that
2044 parallelism is handled in GHC.  See Note [lazyId magic] in MkId.
2046 Here's the diagnosis, copied from the Trac ticket.  par is defined
2047 in GHC.Conc thus:
2049     {-# INLINE par  #-}
2050     par :: a -> b -> b
2051     par  x y = case (par# x) of { _ -> lazy y }
2053     -- The reason for the strange "lazy" call is that it fools the
2054     -- compiler into thinking that pseq and par are non-strict in
2055     -- their second argument (even if it inlines pseq/par at the call
2056     -- site).  If it thinks par is strict in "y", then it often
2057     -- evaluates "y" before "x", which is totally wrong.
2059 The function lazy is the identity function, but it is inlined only
2060 after strictness analysis, and (via some magic) pretends to be
2061 lazy. Hence par pretends to be lazy too.
2063 The trouble is that both par and lazy are inlined into your definition
2064 of parallelise, so that the unfolding for parallelise (exposed in
2065 Parallelise.hi) does not use lazy at all. Then when compiling Main,
2066 parallelise is in turn inlined (before strictness analysis), and so
2067 the strictness analyser sees too much.
2069 This was all sloppy thinking on my part. Inlining lazy after
2070 strictness analysis works fine for the current module, but not for
2071 importing modules.
2073 The fix implemented by this patch is to inline 'lazy' in CorePrep,
2074 not in WorkWrap. That way interface files never see the inlined version.
2076 The downside is that a little less optimisation may happen on programs
2077 that use 'lazy'.  And you'll only see this in the results -ddump-prep
2078 not in -ddump-simpl.  So KEEP AN EYE OUT (Simon and Satnam especially).
2079 Still, it should work properly now.  Certainly fixes #3259.
2083[Fix Trac #3262: suppress name-shadow warning for _names
2085 Ignore-this: 482ee7e5039987c53b2755c8f61f3fe
2087 Adopt Max's suggestion for name shadowing, by suppressing shadowing
2088 warnings for variables starting with "_".  A tiny bit of refactoring
2089 along the way.
2092[don't call Haskeline to read input when stdin is not a terminal
2093Simon Marlow <marlowsd@gmail.com>**20090528152651
2094 Ignore-this: 3810fe8dff7e0a8b4ec013f47e33cc4c
2096[Fix handling of R_SPARC_UA32 relocations in linker
2098   These refer to unaligned locations that need to be written
2099   byte-at-a-time. This fixes the SPARC ghci failures in
2100   the current head.
2102[Document the fact that Template Haskell type splices work
2104 Ignore-this: a3817bd84645acbe3c83ad04bbff06c3
2106[Improve printing of Orig RdrNames
2108 Ignore-this: a00c57daf826176dbec85402a7982ef4
2110 In Tempate Haskell -ddump-splices, the "after" expression is populated
2111 with RdrNames, many of which are Orig things.  We used to print these
2112 fully-qualified, but that's a bit heavy.
2114 This patch refactors the code a bit so that the same print-unqualified
2115 mechanism we use for Names also works for RdrNames.  Lots of comments
2116 too, because it took me a while to figure out how it all worked again.
2119[Print more nicely in -ddump-splices
2121 Ignore-this: ffa4855ac1e95e45a057acae85ca75db
2123 When you say -ddump-splices, the "before" expression is now
2125         *renamed* but not *typechecked"
2127 Reason (a) less typechecking crap
2128        (b) data constructors after type checking have been
2129           changed to their *wrappers*, and that makes them
2130           print always fully qualified
2133[Fix Trac #3261: make default types play nice with -Werror
2135 Ignore-this: c6167edcb5c537cb0f08151f649c3eb2
2137 The trial-and-error for type defaults was not playing nicely with
2138 -Werror. The fix is simple.
2141[Adjust error message slightly
2143 Ignore-this: c21f2ef9064fcf22f00e962f53a5f97
2145[White space only
2147 Ignore-this: 355873c67330176455bc7d698190d956
2149[Remove type-ambiguous (fromIntegral 0)::Int, replacing it with just 0
2151 Ignore-this: f09a0e7a2b4de20867036b7c8ee6f1d2
2153 This unnecessary ambiguity has been there for ages, and is now rejected
2154 by -Werror, after fixing #3261
2157[Move getMainFun to TcRnDriver, trim DynFlags imports
2159 Ignore-this: a0cf27e74a916c13c4df77190d2e14b0
2161[Comments only
2163 Ignore-this: 69b8edd4c3f8643ec9774a0f88af2c66
2165[Comments about naming for data constructors
2167 Ignore-this: 8c31cbf597211b318dab96f3c728ac71
2169[Remove dead code isHsVar
2171 Ignore-this: b19c8eb9f507e68d910515600a336e1c
2173[Round stack size to a whole number of megablocks
2174Simon Marlow <marlowsd@gmail.com>**20090528133440
2175 Ignore-this: 6d7da9b80d7a6771365bd146201f102f
2176 This is not a bug fix, it just makes better use of memory
2178[Fix #3156: ensure preconditions of splitLargeBlock()
2179Simon Marlow <marlowsd@gmail.com>**20090528133357
2180 Ignore-this: 5d7e7f345fe19123bf17aa1d2daa0e7b
2182[fix it so that 'make' on its own works even if we're not building docs
2183Simon Marlow <marlowsd@gmail.com>**20090528111608
2184 Ignore-this: 92e9355de04733042403dc6814a3a146
2186[Comments only
2188 Ignore-this: 14112a7b5e4d0b3b8763ce72d01bba00
2190[Fix Trac #3013: multiple constructors in a GADT decl
2192 Ignore-this: fda39c50dd80e13d593e396133fd92c4
2194 Makes GADT syntax consistent by allowing multiple constructors
2195 to be given a single signature
2196    data T wehre
2197        A, B :: T
2198        C :: Int -> t
2201[Separate flags -XDeriveFunctor, -XDeriveFoldable, -XDeriveTraversable
2203 Ignore-this: b5b6ce32b6d4e847a6f58de17dd1af54
2205 See Trac #2953. This patch implements a distinct flag for each extended
2206 class that may be automatically derived.  And I updated the user manual
2207 to reflect the fact that we can now derive Functor, Foldable, Traversable.
2210[Add a comment
2212 Ignore-this: d278c8d49b299e376a8dbcdd940e1cfa
2214[Follow vreg/hreg patch in X86_64 NCG
2216 Ignore-this: f11f3d8ebfc33d3c012ce8d2cb09d076
2218[Follow vreg/hreg patch in PPC NCG
2220[Follow vreg/hreg patch in x86 NCG
2222 Ignore-this: c4303cc12ddbdd38606c16a7e2fbc56c
2224[Don't try and coalesce RealReg->RealReg moves
2226[Split Reg into vreg/hreg and add register pairs
2229  * The old Reg type is now split into VirtualReg and RealReg.
2230  * For the graph coloring allocator, the type of the register graph
2231    is now (Graph VirtualReg RegClass RealReg), which shows that it colors
2232    in nodes representing virtual regs with colors representing real regs.
2233    (as was intended) 
2234  * RealReg contains two contructors, RealRegSingle and RealRegPair,
2235    where RealRegPair is used to represent a SPARC double reg
2236    constructed from two single precision FP regs.
2237  * On SPARC we can now allocate double regs into an arbitrary register
2238    pair, instead of reserving some reg ranges to only hold float/double values.
2240[SPARC NCG: Fix available regs for graph allocator
2242[Fix Trac #3221: renamer warnings for deriving clauses
2244 Ignore-this: a4a93f2928fd311c4950eb60277bf9e1
2246 This patch arranges to gather the variables used by 'deriving' clauses,
2247 so that unused bindings are correctly reported.
2250[Template Haskell: allow type splices
2252 Ignore-this: 8beb8ab4f5857967ff33a4877c8931b
2254 At last!  Trac #1476 and #3177
2256 This patch extends Template Haskell by allowing splices in
2257 types.  For example
2259   f :: Int -> $(burble 3)
2261 A type splice should work anywhere a type is expected.  This feature
2262 has been long requested, and quite a while ago I'd re-engineered the
2263 type checker to make it easier, but had never got around to finishing
2264 the job.  With luck, this does it.
2266 There's a ToDo in the HsSpliceTy case of RnTypes.rnHsType, where I
2267 am not dealing properly with the used variables; but that's awaiting
2268 the refactoring of the way we report unused names.
2273[Template Haskell: improve lifting for strings
2275 Ignore-this: 296fa4ede64a87cc66b8c7af0e35b66f
2277 When you have a (\s::String -> ....[| s |]....), the string
2278 's' is lifted.  We used to get a chain of single-character
2279 Cons nodes, correct but lots and lots of code. 
2281 This patch arranges to optimise that to a string literal. It does
2282 so in two places:
2283   a) In TcExpr, if we know that s::String, we generate liftString directly
2284   b) In DsMeta, if we find a list of character literals, we convert to
2285      a string.  This catches a few cases that (a) does not
2287 There an accompanying  patch in the template-haskell package,
2288 adding Language.Haskell.TH.Syntax.liftString
2293[Rename conDeclsNames to hsConDeclsNames, and export it
2295 Ignore-this: 304b8881445df43a7a98e17001500ba9
2297[Comments about wiredInIds
2299 Ignore-this: 9f0910d37e75f7a91807a3b2e5b2d608
2301[Wibble some comments to avoid haddock parse errors
2302Ian Lynagh <igloo@earth.li>**20090526192953]
2303[Add a haddock target, for just building the haddock docs
2304Ian Lynagh <igloo@earth.li>**20090526190459]
2305[Add some more $s to rules/haddock.mk for consistency
2306Ian Lynagh <igloo@earth.li>**20090526184127]
2307[Fix haddocking
2308Ian Lynagh <igloo@earth.li>**20090526184034
2309 We were looking at HADDOCK_DOCS instead of $$(HADDOCK_DOCS)
2311[Make the sed in configure.ac more portable
2312Ian Lynagh <igloo@earth.li>**20090525120021]
2313[Remove legacy code that isn't used now that we require GHC >= 6.8
2314Ian Lynagh <igloo@earth.li>**20090524204412]
2315[Remove unused variables
2316Ian Lynagh <igloo@earth.li>**20090524135350]
2317[Remove unused variables
2318Ian Lynagh <igloo@earth.li>**20090524134753]
2319[Be more precise about munging compiler/stage1/inplace-pkg-config
2320Ian Lynagh <igloo@earth.li>**20090524133439
2321 We were removing ".$(ProjectPatchLevel)" from anywhere in the file.
2322 However, it included absolute paths, so if you untar a source
2323 tarball into its default directory name, e.g.
2324 "6.11.$(ProjectPatchLevel)", then the sed would break the paths.
2326[Use the more portable %lu rather than %zu
2327Ian Lynagh <igloo@earth.li>**20090524131504
2328 We now also need to cast the values to (unsigned long), as on some
2329 platforms sizeof returns (unsigned int).
2331[Clean libraries/bootstrapping.conf
2332Ian Lynagh <igloo@earth.li>**20090524131454]
2333[Fix warnings
2334Ian Lynagh <igloo@earth.li>**20090523231438]
2335[Fix warnings in genprimopcode
2336Ian Lynagh <igloo@earth.li>**20090523222715]
2337[Fix warnings in mkDerivedConstants
2338Ian Lynagh <igloo@earth.li>**20090523215836]
2339[Fix warnings in ghc-cabal
2340Ian Lynagh <igloo@earth.li>**20090523213518]
2341[Turn on warnings when validating
2342Ian Lynagh <igloo@earth.li>**20090523213451]
2343[Fix configure
2344Ian Lynagh <igloo@earth.li>**20090523004231]
2345[ghc_ge_607 is now always true
2346Ian Lynagh <igloo@earth.li>**20090523001643]
2347[Sanity check the platforms we are given
2348Ian Lynagh <igloo@earth.li>**20090523000445]
2349[Change how we find the host/build/target platforms
2350Ian Lynagh <igloo@earth.li>**20090522233022
2351 Rather than using the autoconf built-in stuff and mangling it, we
2352 now just ask the bootstrapping compiler what platform we are on.
2354 When doing a port of GHC, you need to specify the platform you are
2355 porting to.
2357 The minimum version of GHC required is now 6.8.
2359[remove old todo comment
2360Simon Marlow <marlowsd@gmail.com>**20090520224427
2361 Ignore-this: 7dc72333d7f84d12a581514da368caa7
2363[document -XUnicodeSyntax
2364Simon Marlow <marlowsd@gmail.com>**20090520223647
2365 Ignore-this: 343d54ebf27013c21e5dea1e8aab2740
2367[export sysErrorBelch
2368Simon Marlow <marlowsd@gmail.com>**20090328191355]
2369[ rm package.conf.inplace in distclean, not clean
2370Simon Marlow <simonmar@microsoft.com>**20090506195216]
2371[#2197: try to detect when GHCi is compiled with -prof and emit an error message
2372Simon Marlow <simonmar@microsoft.com>**20090506194802]
2373[fix typo
2374Simon Marlow <simonmar@microsoft.com>**20090328211518]
2375[Remove hacky on-demand building of libraries/*/ghc.mk, put it back in sh boot
2376Simon Marlow <marlowsd@gmail.com>**20090522083351
2377 Ignore-this: fa8ada7f782776613aafc5a2825452f0
2378 Now that the clean rules don't require libraries/*/ghc.mk, we don't
2379 have to build them on demand.  And having them built on demand
2380 introduced a failure mode (where some libraries have ghc.mk and some
2381 don't).
2383[Fix unregisterised bindists
2384Ian Lynagh <igloo@earth.li>**20090521223519]
2385[Pass CFLAGS and LDFLAGS to libffi's configure
2386Ian Lynagh <igloo@earth.li>**20090521160210]
2387[Don't overwrite the *OPTS/*Opts variables in mk/validate-settings.mk
2388Ian Lynagh <igloo@earth.li>**20090521141938
2389 Overwriting means we lose the -m64 on OS X 64.
2391[Build and install gmp.h
2392Ian Lynagh <igloo@earth.li>**20090521133614]
2393[Clean gmp.h
2394Ian Lynagh <igloo@earth.li>**20090521133606]
2395[Need to pass gcc -m64 on amd64 OSX
2396Ian Lynagh <igloo@earth.li>*-20090520170508]
2397[Set C compiler and linker flags correctly for OS X 64
2398Ian Lynagh <igloo@earth.li>**20090521124459]
2399[Fix #3201: "ar: Bad file number" build error with MSYS and SplitObjs=YES
2400Simon Marlow <marlowsd@gmail.com>**20090521103131
2401 Ignore-this: b86763ca5f36447f633a9b9a5f58ecf8
2403[fix warning (and validate)
2404Simon Marlow <marlowsd@gmail.com>**20090521081932
2405 Ignore-this: 4d9168fb4caca4ab84e3e06a4a94602
2407[don't clean GMP before validating (it rarely changes, and is slow to build)
2408Simon Marlow <marlowsd@gmail.com>**20090521074840
2409 Ignore-this: 752904e56363c197328079dbde9363f1
2411[remove a todo item (bug #2966 is fixed)
2412Simon Marlow <marlowsd@gmail.com>**20090520130504
2413 Ignore-this: 8c3c6cd3791aba3336e3e8052ceddab9
2415[When linking a shared library with --make, always do the link step
2416Duncan Coutts <duncan@well-typed.com>**20090519121149
2417 Without -shared, the default target is a binary and in that case
2418 it makes sense for --make to not try and link a binary when there
2419 is no Main module. But for a shared library the user already has
2420 to specify -shared and there's no reason a shared lib should
2421 contain any Main module or main function.
2423[Pass --enable-shared and --with-hscolour to ghc-cabal configure
2424Duncan Coutts <duncan@well-typed.com>**20090519120953
2425 It tried to do this already, but the make variable name was wrong.
2427[Use shared lib mode -dynload deploy to build the rts and core shared libs
2428Duncan Coutts <duncan@well-typed.com>**20090519120801
2429 This is now the same as the old default. Currently we cannot embed
2430 rpaths because they would point to the build tree. We should embed
2431 rpaths relative to the $ORIGIN in future.
2433[Make -dynload sysdep mean to embed rpaths in shared libs as well as binaries
2434Duncan Coutts <duncan@well-typed.com>**20090519120533
2435 Previously it only did it for binaries. This was presumably on the
2436 theory that the binary could specify the rpath for all the libs.
2437 However when it is the shared lib that is the final product (ie to
2438 link into a bigger project) then we need the rpaths for the shared
2439 lib to be self-contianed.
2441[Switch the default -dynload mode to SystemDependent
2442Duncan Coutts <duncan@well-typed.com>**20090517003630
2443 The previous default was Deployable though it was being
2444 overridden to Wrapper in the ghc shell script wrapper.
2446[Set the soname when creating a shared lib
2447Duncan Coutts <duncan@well-typed.com>**20090515203730
2448 It's still possible to override it, just use -optl-Wl,-soname, eg:
2449 ghc -shared -dynamic foo.o -o libfoo.so -optl-Wl,-soname,libbar.so
2451[Keep C main separate from rts lib and link it in for standalone progs
2452Duncan Coutts <duncan@well-typed.com>**20090515160814
2453 Previously the object code for the C main function lived in the rts
2454 lib, however this is a problem when the rts is built as a shared lib.
2455 With Windows DLLs it always causes problems while on ELF systems it's a
2456 problem when the user decides to use their own C main function rather
2457 than a Haskell Main.main. So instead we now put main in it's own tiny
2458 little static lib libHSrtsmain.a which we install next to the rts libs.
2459 Whenever ghc links a program (without -no-hs-main) then it also links
2460 in -lHSrtsmain. For consistency we always do it this way now rather
2461 than trying to do it differently for static vs shared libraries.
2463[Remove old Windows-only implementation of keeping main outside the rts
2464Duncan Coutts <duncan@well-typed.com>**20090514183550
2465 We now do it for all ways and for all platforms. This was a Windows-only
2466 version that only kept a separate Main.dyn_o for the dynamic linking case.
2467 It had to do that because Windows DLLs are stricter about unresolved symbols
2468 where as for ELF platforms we only run into the problem when we're not using
2469 a Haskell main function.
2471[Fix silly make macro mistake in a rule used in the --enable-shared case
2472Duncan Coutts <duncan@well-typed.com>**20090514184216]
2473[Windows: load msvcrt and kernel32 manually
2474Simon Marlow <marlowsd@gmail.com>**20090520124310
2475 Ignore-this: ae3fc7bf3e07bd0c4b30f2f6e6e04a53
2477[Need to pass gcc -m64 on amd64 OSX
2478Ian Lynagh <igloo@earth.li>**20090520224020]
2479[OS X / amd64 fixes
2480Ian Lynagh <igloo@earth.li>**20090520223610]
2481[Fix the unregisterised build
2482Ian Lynagh <igloo@earth.li>**20090520221046]
2483[Build fix for amd64/OSX
2484Ian Lynagh <igloo@earth.li>**20090520211705]
2485[Fix building with the HEAD
2486Ian Lynagh <igloo@earth.li>**20090520202532]
2487[make [123] omits phases 1,2, and 3
2488Simon Marlow <marlowsd@gmail.com>**20090519083419
2489 Ignore-this: 899fc1fb6707fde243e3a1e2221f768a
2491[allow phases to be omitted by setting OMIT_PHASE_[123]=YES
2492Simon Marlow <marlowsd@gmail.com>**20090519083350
2493 Ignore-this: 4ac4a0ab2547dcccce5e2fdfe83525aa
2495[fix a dependency: Makefile -> includes/Makefile
2496Simon Marlow <marlowsd@gmail.com>**20090519083317
2497 Ignore-this: 3447c85226202ae0130326ab011d3473
2499[Make -Odph imply -fsimplifier-phases=3
2500Roman Leshchinskiy <rl@cse.unsw.edu.au>**20090519055807
2501 Ignore-this: 25d9f2ac3f89ebac487254313fcb1b3e
2503[Add missing word, spotted by Tom Lokhorst
2504Max Bolingbroke <batterseapower@hotmail.com>**20090518153314]
2505[fix typo: TH.ModName -> TH.PkgName
2506Simon Marlow <marlowsd@gmail.com>**20090518120457
2507 Ignore-this: c52d36b33b0446a925156c5c4d47d373
2509[Fix #3236: emit a helpful error message when the RTS has not been initialised
2510Simon Marlow <marlowsd@gmail.com>**20090518104108
2511 Ignore-this: ff4b5e9c226832feb08b1e69e0bdbfcb
2513[Fix #3207: add has_side_effects = True for lots of primops
2514Simon Marlow <marlowsd@gmail.com>**20090515143608
2515 Ignore-this: 6dd688582c3c5f506eac75f409185cf2
2516 and document primOpHasSideEffects
2518[Need to pass gcc -m64 on amd64 OSX
2519Ian Lynagh <igloo@earth.li>**20090520170508]
2520[Use machdepCCOpts when running "as"
2521Ian Lynagh <igloo@earth.li>**20090520165811]
2522[Use SRC_HC_OPTS when making ghc-cabal and ghc-pkg
2523Ian Lynagh <igloo@earth.li>**20090520130009]
2524[Fix building ghc-pkg when bootstrapping
2525Ian Lynagh <igloo@earth.li>**20090520122241]
2526[Simplify ghc-pkg's ghc.mk slightly
2527Ian Lynagh <igloo@earth.li>**20090520121940]
2528[Set CLEANING=YES for the clean_% targets
2529Ian Lynagh <igloo@earth.li>**20090520114312]
2530[Use SRC_CC_OPTS when making HSffi.o
2531Ian Lynagh <igloo@earth.li>**20090519195742]
2532[Bootstrapping fixes
2533Ian Lynagh <igloo@earth.li>**20090517130558]
2534[Bootstrapping fixes
2535Ian Lynagh <igloo@earth.li>**20090517001146]
2536[Bootstrapping fixes
2537Ian Lynagh <igloo@earth.li>**20090516183020]
2538[Remove a done TODO item
2539Ian Lynagh <igloo@earth.li>**20090516175836]
2540[Add libraries/dph/LICENSE to bindists
2541Ian Lynagh <igloo@earth.li>**20090516130016]
2542[Tweak bindist creation
2543Ian Lynagh <igloo@earth.li>**20090516125527
2544 libraries built by stage2 need all their bits in the bindist too.
2545 We were testing (stage == 1) rather than (stage /= 0).
2547[Move the fixed paths out of config.mk, so cleaning works without configuring
2548Ian Lynagh <igloo@earth.li>**20090516121248]
2549[Remove an incorrect comment
2550Ian Lynagh <igloo@earth.li>**20090516120255]
2551[Hide more make rules when cleaning
2552Ian Lynagh <igloo@earth.li>**20090516114511]
2553[Remove some $(TOP)s that cause problems on Windows (as they contain ':')
2554Ian Lynagh <igloo@earth.li>**20090516001118]
2555[Disable suffix rules when cleaning
2556Ian Lynagh <igloo@earth.li>**20090515231947]
2557[Don't require the library ghc.mk files in order to clean
2558Ian Lynagh <igloo@earth.li>**20090515231516]
2559[Add a maintainer-clean rule
2560Ian Lynagh <igloo@earth.li>**20090515225659]
2561[Make dph required
2562Ian Lynagh <igloo@earth.li>**20090515205122]
2563[Remove --extra flag from darcs-all
2564Ian Lynagh <igloo@earth.li>**20090515203646]
2565[Remove nofib-analyse
2566Ian Lynagh <igloo@earth.li>**20090515200241
2567 It's now in the nofib repo.
2569[Further fixes to the stage1 version hack; fix validate.
2570Simon Marlow <marlowsd@gmail.com>**20090515111109
2571 Ignore-this: 8c75bbe34fdf9ab63b3937d1d16db625
2572 I'm less convinced this is a good idea now.  But it does avoid
2573 rebuilding most of stage1 when you pull and reconfigure.  Better
2574 solutions welcome.
2576[remove warning settings; we already have warnings turned on everywhere
2577Simon Marlow <marlowsd@gmail.com>**20090515094046
2578 Ignore-this: 25fda62eb47c7a324b30cd0cd942d1ef
2580[disable all docs in the "quick" and "devel" builds
2581Simon Marlow <marlowsd@gmail.com>**20090515093500
2582 Ignore-this: 1ef50b4624bd196584feb3d4da64a6
2584[remove XmlDocWays relic
2585Simon Marlow <marlowsd@gmail.com>**20090515094452
2586 Ignore-this: 98fe2765fb54d3fcd890fcb3e193bc3e
2588[cleanup: remove reference to $1_$2_CONFIGURE_FLAGS, which is never used
2589Simon Marlow <marlowsd@gmail.com>**20090515092858
2590 Ignore-this: a563c6706dc5d072f4dd5341e37bbb16
2591 we also have $1_$2_CONFIGURE_OPTS, which is used.
2593[fix cut-and-pasto in mkWeakForeignEnv#, causing random segfaults
2594Simon Marlow <marlowsd@gmail.com>**20090515092356
2595 Ignore-this: cac2a0ae0a9535992466a85d1fb877b7
2597[Fix maintainer-clean for library/dph
2598Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090515024812
2599 Ignore-this: 189a52c2b3a6cd90fa23e74cc455244
2601[Move hasktags out of the GHC repo
2602Ian Lynagh <igloo@earth.li>**20090515135755
2603 Now configure looks for it as an installed program instead.
2605[use StgWord for the lock (fixes valgrind complaint on 64-bit machines)
2606Simon Marlow <marlowsd@gmail.com>**20090514145524
2607 Ignore-this: 23100384044c7ecf26e7e552582bcccd
2609[don't rebuild the whole of stage 1 just because the date has changed
2610Simon Marlow <marlowsd@gmail.com>**20090514093636
2611 Ignore-this: f4b7eceae68033723e6eb79f3972636d
2613[Remove left-over bits of extralib support
2614Ian Lynagh <igloo@earth.li>**20090514125804]
2615[Clean the right directory in bindisttest
2616Ian Lynagh <igloo@earth.li>**20090514125044]
2617[validate now uses maintainer-clean, not distclean
2618Simon Marlow <marlowsd@gmail.com>**20090514105717
2619 Ignore-this: fc63835c465928e7b996d548661c26bf
2621[main repeated 'make maintainer-clean' not fail
2622Simon Marlow <marlowsd@gmail.com>**20090514105704
2623 Ignore-this: 81fa6dbd35ccc9d8081ad5b3ebda3113
2625[make repeated 'make distclean' not fail
2626Simon Marlow <marlowsd@gmail.com>**20090514105645
2627 Ignore-this: f637c255cf741f256114a98d63f47768
2629[dummy-ghc should depend on config.mk, to pick up the latest version number
2630Simon Marlow <marlowsd@gmail.com>**20090513144444
2631 Ignore-this: 790a4e0c40f435c395eabaab50ccae9b
2632 This fixes build problems of the form
2633   ghc-cabal: Version mismatch between ghc and ghc-pkg
2635[rejig ghc version test; fail if GHC version can't be determined
2636Simon Marlow <marlowsd@gmail.com>**20090513103905
2637 Ignore-this: a905701fd9cb8bd09a9b423998e8d98d
2639[Improve error reporting for kind errors (fix Trac #1633)
2641 Ignore-this: 80c4b0d98ac25bececf0896d27f954b8
2643 A long-standing improvement to the error message for kinds. Now instead of
2644     Expected kind `* -> *', but `Int' has kind `*'
2645 we get
2646     The first argument of `T' should have kind `* -> *',
2647     but `Int' has kind `*'
2649 Ha!
2652[Fix Trac #3219: type of a record update
2654 Ignore-this: 95af0b6c81a888839528327905f849fa
2656 Record updates are amazingly hard to typecheck right.  This is one place
2657 where GHC's policy of typechecking the original source is much harder than
2658 desugaring and typechecking that!
2660 Anyway, the bug here is that to compute the 'fixed' type variables I was
2661 only looking at one constructor rather than all the relevant_cons
2663 Test is typecheck/should_compile/T3219, which GHC 6.10 barfs on (with Lint).
2666[Add comments
2668 Ignore-this: 8f799933bf7b2bc72ba67e999afd6fe0
2670[Hide warnings from alex/happy sources
2671Ian Lynagh <igloo@earth.li>**20090514005450]
2672[Fix some warnings in Lexer
2673Ian Lynagh <igloo@earth.li>**20090513234042]
2674[Fix building dph in the new build system
2675Ian Lynagh <igloo@earth.li>**20090513160531]
2676[Link the rts shared libs against gmp and the other C libs
2677Duncan Coutts <duncan@well-typed.com>**20090501235824
2678 When using shared libs we should link each lib against its deps. This allows
2679 the dynamic linker to chase dependencies and means we do not have to specify
2680 all indirect dependencies (as we must do for static libs).
2682[Make ghc -dynamic imply -fPIC for C code
2683Duncan Coutts <duncan@well-typed.com>**20090501121445
2684 As is already the case for ghc -fPIC. This is needed because ghc -dynamic
2685 means to generate code that is capable of being linked to Haskell shared
2686 libs and for C code the equivalent is -fPIC. Normally C code does not need
2687 -fPIC merely to link to shared libs however Haskell shared libs do not
2688 follow common conventions. In particular the static data cannot be
2689 referenced statically because it cannot be copied by the static linker.
2690 The linker cannot copy them because we do not specify a .size for the
2691 _closure entries (in the .data section) though in principle we could.
2693[validate does "exit 1" if it fails
2694Simon Marlow <marlowsd@gmail.com>**20090513102044
2695 Ignore-this: f032189c358c133f2b00f062de28890a
2697[fix warning
2698Simon Marlow <marlowsd@gmail.com>**20090513101649
2699 Ignore-this: d93e813fd3010f157768b04ebabe8880
2701[remove old unused fop/dvips/xmltex stuff
2702Simon Marlow <marlowsd@gmail.com>**20090513100317
2703 Ignore-this: a3ff10c53c7fb630d019e47611ff07a6
2705[build Haddock docs
2706Simon Marlow <marlowsd@gmail.com>**20090513100142
2707 Ignore-this: 867538ef3a566197f24b73c70407a6f1
2709[enable LinkDynLib in compilier phase
2711 Ignore-this: 615f399aae08a19ea5047e7c0c4a67d4
2713[expand hack to include PS docs too
2714Simon Marlow <marlowsd@gmail.com>**20090513075903
2715 Ignore-this: f9f7914eeaef39bf357cd47984692417
2717[stub Makefile
2718Simon Marlow <marlowsd@gmail.com>**20090511145122
2719 Ignore-this: 837a294680f957880d5ce24bec293bf1
2721[GhcBootLibs is no more
2722Simon Marlow <marlowsd@gmail.com>**20090511145006
2723 Ignore-this: 1de74fa020bdb341c852c39bb427b98f
2725[updates to the section describing the  +RTS -s/-S output (#3211)
2726Simon Marlow <marlowsd@gmail.com>**20090511144935
2727 Ignore-this: 1a472f099d4db1aa04c86a250a64036
2729[multi-slurp protection
2730Simon Marlow <marlowsd@gmail.com>**20090508092200
2731 Ignore-this: 147a78b3d43e55804df50807facfe1ed
2733[Improve error messages for type functions
2735 Ignore-this: 69207771396a7940b1bb1413622b0b5d
2737 Following a suggestion of Claus Reinke, this patch improves the error
2738 messages involving type functions.  Here's the relevant note from TcTyFuns.
2740 Note [Non-injective type functions]
2741 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2742 It's very confusing to get a message like
2743      Couldn't match expected type `Depend s'
2744             against inferred type `Depend s1'
2745 so pp_open_tc adds:
2746        NB: `Depend' is a (non-injective) type function
2748 Currently we add this independently for each argument, so we also get
2749      Couldn't match expected type `a'
2750             against inferred type `Dual (Dual a)'
2751        NB: `Dual' is a (non-injective) type function
2752 which is arguably redundant.  But on the other hand, it's probably
2753 a good idea for the programmer to know the error involves type functions
2754 so I've left it in for now.  The obvious alternative is to only add
2755 this NB in the case of matching (T ...) ~ (T ...).
2758[stub makefile
2759Simon Marlow <marlowsd@gmail.com>**20090511133615
2760 Ignore-this: 1d5890844e9329eb832def2caab142f7
2762[Hack to make the user's guide build in a linked build tree
2763Simon Marlow <marlowsd@gmail.com>**20090511133523
2764 Ignore-this: ff861fdc8a2f30ad970f1afe2121d4b6
2765 See comment for details
2767[make it so that 'make html', 'make pdf', and 'make ps' work for docs
2768Simon Marlow <marlowsd@gmail.com>**20090511120256
2769 Ignore-this: 31314dbdf6d1b81142a0618ff80d79af
2771[correct the +RTS -? docs for -A (default is 512k not 256k)
2772Simon Marlow <marlowsd@gmail.com>**20090508083811
2773 Ignore-this: 3325973d3236d4363da007ae5d052d39
2775[Use a more compact +RTS -s output for Tasks
2776Simon Marlow <marlowsd@gmail.com>**20090508083738
2777 Ignore-this: 120572f8f207d709268389f83d6e3930
2779                         MUT time (elapsed)       GC time  (elapsed)
2780   Task  0 (worker) :    0.00s    (  0.00s)       0.00s    (  0.00s)
2781   Task  1 (worker) :    0.00s    (  0.01s)       0.00s    (  0.00s)
2782   Task  2 (worker) :    0.00s    (  0.03s)       0.00s    (  0.00s)
2783   Task  3 (bound)  :    0.00s    (  0.00s)       0.02s    (  0.04s)
2785[disable a warning
2786Simon Marlow <marlowsd@gmail.com>**20090505092015
2787 Ignore-this: 88be67365fd00a0e82374bd543220224
2789[docbook PDF item is done
2790Simon Marlow <marlowsd@gmail.com>**20090505092009
2791 Ignore-this: be0fea575eb930a040b7b15bd11f0eb1
2793[add a .c --> .s rule
2794Simon Marlow <marlowsd@gmail.com>**20090501095627
2795 Ignore-this: d21dc88910d189cce35ce2d26028b547
2797[Remove libraries/ifBuildable.hs; it's no longer used
2798Ian Lynagh <igloo@earth.li>**20090509200708]
2799[Fix configure
2800Ian Lynagh <igloo@earth.li>**20090509184634]
2801[Build system tweak
2802Ian Lynagh <igloo@earth.li>**20090509142936]
2803[Add a Makefile in libraries/
2804Ian Lynagh <igloo@earth.li>**20090508232920]
2805[Tweak ./boot
2806Ian Lynagh <igloo@earth.li>**20090508230236]
2807[Partially fix "make framework-pkg"
2808Ian Lynagh <igloo@earth.li>**20090508224857
2809 We still need to sort out the "install-docs" story to get this working
2810 properly.
2812[Handle deciding what docs to build better
2813Ian Lynagh <igloo@earth.li>**20090508000603
2814 Now we have variables for whether or not to build the docbook docs as
2815 HTML, as PS, and as PDF. The configure script output now matches what
2816 the build system will do (except it cannot take account of any
2817 mk/build.mk settings, of course).
2819[Remove oldconfig.mk.in
2820Ian Lynagh <igloo@earth.li>**20090507150641]
2821[Rename pwd to ghc-pwd
2822Ian Lynagh <igloo@earth.li>**20090507135034]
2823[Remove pwd's Makefile from the old build system
2824Ian Lynagh <igloo@earth.li>**20090507134356]
2825[Clean utils/pwd
2826Ian Lynagh <igloo@earth.li>**20090507134259]
2827[Use more portable shell in ./boot; fixes booting on Solaris
2828Ian Lynagh <igloo@earth.li>**20090506010445]
2829[Simplify utils/pwd
2830Ian Lynagh <igloo@earth.li>**20090505223432
2831 We only need the forwardslash mode now, so always use that mode and
2832 don't accept any arguments.
2834[More rules for bootstrapping
2835Ian Lynagh <igloo@earth.li>**20090504150209]
2836[Bootstrapping fix
2837Ian Lynagh <igloo@earth.li>**20090504142605]
2838[Bootstrapping fixes
2839Ian Lynagh <igloo@earth.li>**20090504142511]
2840[Test "ghc-pkg check" passes in bindisttest
2841Ian Lynagh <igloo@earth.li>**20090504105324
2842 Also fixes it so that it really does pass (we weren't substituting the
2843 GMP variables in the RTS package config).
2845[Put install-sh into bindists
2846Ian Lynagh <igloo@earth.li>**20090504104026]
2847[Test bindists in a deeper subdirectory
2848Ian Lynagh <igloo@earth.li>**20090504103504
2849 configure looks for install-sh in . .. ../.. and we don't want it to
2850 find the build system's install-sh.
2852[Use "-x c" when compiling hc files
2853Ian Lynagh <igloo@earth.li>**20090503205344]
2854[Makefile rules tweak for BootingFromHc
2855Ian Lynagh <igloo@earth.li>**20090503203733]
2856[More bootstrapping rules
2857Ian Lynagh <igloo@earth.li>**20090503201812]
2858[Add a .hc building rules for bootstrapping
2859Ian Lynagh <igloo@earth.li>**20090503190508]
2860[Tweak rts ghc.mk for bootstrapping
2861Ian Lynagh <igloo@earth.li>**20090503111009]
2862[Add a build system TODO
2863Ian Lynagh <igloo@earth.li>**20090503224627]
2864[Add dph to build system; patch from Roman Leshchinskiy
2865Ian Lynagh <igloo@earth.li>**20090503104005]
2866[add publish-binary-dist; tidy up
2867Simon Marlow <marlowsd@gmail.com>**20090501112857
2868 Ignore-this: 7e0032d7ac300f5dd18626488a035c05
2870[Fix make for libffi again, properly this time
2871Duncan Coutts <duncan@well-typed.com>**20090430225546
2872 No idea how the last patch managed to pass validate.
2874[Fix parallel make for libffi.
2875Duncan Coutts <duncan@well-typed.com>**20090430135637
2876 I didn't realise make can invoke the same action multiple
2877 times in parallel if the rule has multiple targets. So go
2878 back to using a build stamp file.
2880[Fix linking shared libs with parallel make
2881Duncan Coutts <duncan@well-typed.com>**20090430123753
2882 Unlike with static libs, when linking shared libs the dependencies
2883 have to already exist. Add a dependency $1_$2_$3_LIBS : $1_$2_$3_DEPS_LIBS
2885[Fix building without GHCi
2886Ian Lynagh <igloo@earth.li>**20090503004437]
2887[Makefile tweak
2888Ian Lynagh <igloo@earth.li>**20090502225601]
2889[Fix building Haskeline on Windows
2890Ian Lynagh <igloo@earth.li>**20090430161613]
2891[FIX build: add dependencies on ghc_boot_platform.h
2892Simon Marlow <marlowsd@gmail.com>**20090430100245
2893 Ignore-this: b9bd4f40f4b6789eee500626b9ef6e2c
2895[Prevent haddock docs being built when HADDOCK_DOCS=NO
2896Duncan Coutts <duncan@well-typed.com>**20090429160230]
2897[Clean up building of libffi for dynamic lib way
2898Duncan Coutts <duncan@well-typed.com>**20090429153002
2899 And depend on it at the top level when we're using dynamic libs.
2901[Build library packages as shared libs
2902Duncan Coutts <duncan@well-typed.com>**20090429151553
2903 when we configure ghc with --enable-shared
2905[Build the rts as a shared lib correctly
2906Duncan Coutts <duncan@well-typed.com>**20090429143131
2907 That is, build it as a .so/.dll rather than as libHSrts_dyn.a
2909[Don't actually build ghc itself with -dynamic
2910Duncan Coutts <duncan@well-typed.com>**20090429142940
2911 For now, with --enable-shared we'll build the libs shared,
2912 but ghc itself will still be statically linked.
2913 In any case, we would want to be able to build it both
2914 ways so it's easy to test both.
2916[Add a new $way_libsuf variable for library suffix+extension
2917Duncan Coutts <duncan@well-typed.com>**20090428123529
2918 This allows the library file type to depend on the way. This is needed
2919 to use .so/.dll libs for the "dyn" way rather than always using .a libs.
2920 For example: thr_debug_dyn_libsuf="_thr_debug-ghc6.11.20090426.so"
2922[extend the rules/c-objs macro to take the way as a parameter
2923Duncan Coutts <duncan@well-typed.com>**20090428123452
2924 Previously we only built library package "cbits" the vanilla way, afterall
2925 C code does not need to be built differently for profiling builds. However
2926 for dynamic libs the C code needs to be built with -fPIC, so we do need
2927 to be able to build package .c (and .s?) files multiple ways.
2929[Do not link ghc stage1 using -threaded, only for stage2 or 3
2930Duncan Coutts <duncan@well-typed.com>**20090428104924
2931 We link stage1 using the bootstrapping compiler and there's
2932 no guarantee that it has working support for threaded
2934[Fix mkdependC: Make it tell cpp to use our temporary filename
2935Ian Lynagh <igloo@earth.li>**20090430130638]
2936[Tweak ghc-cabal
2937Ian Lynagh <igloo@earth.li>**20090429183728]
2938[Add special support for haskeline
2939Ian Lynagh <igloo@earth.li>**20090429181909
2940 The library uses stuff in Setup.hs to determine whether or not it needs
2941 to use -liconv. This patch replicates that logic in ghc-cabal. This
2942 isn't pretty, and we should find a better way to do it, but it works
2943 for now.
2945[In mkdependC.prl, create temp files properly
2946Ian Lynagh <igloo@earth.li>**20090429151215
2947 Avoids a race condition, where one run deletes/overwrites the temp file
2948 of another.
2950[move nofib settings here from ghc's config.mk
2951Simon Marlow <marlowsd@gmail.com>**20090428125551
2952 Ignore-this: a2eb9d0094fe10446b74987af44a6005
2954[add missing eventlog subdir
2955Simon Marlow <marlowsd@gmail.com>**20090428125528
2956 Ignore-this: 127bc2a6bc9fa29871a19ad99ddb346e
2958[move runstdtest into nofib
2959Simon Marlow <marlowsd@gmail.com>**20090428124505
2960 Ignore-this: 98eae5d994693ed8235e8693f3615899
2962[Use haskeline, rather than editline, for line editing in ghci
2963Ian Lynagh <igloo@earth.li>**20090429005838]
2964[Fix error handling
2965Ian Lynagh <igloo@earth.li>**20090428232848
2966 After the fix to #2500, we could get "Failing due to -Werror." but no
2967 warnings printed. Now we don't fail in that case.
2969[FIX #2500: Don't log warnings in getHeader
2970Simon Marlow <marlowsd@gmail.com>**20090421100039
2971 Ignore-this: 24a8e8c2dca64dcd592d53fd7468eed5
2973[improve the finalizer callback error message
2974Simon Marlow <marlowsd@gmail.com>**20090428085345
2975 Ignore-this: 3255e17c98b3c9cf591b71d6023592b8
2977[Add a header to all build system files:
2978Simon Marlow <marlowsd@gmail.com>**20090428085233
2979 Ignore-this: 49aa394badd4f17dc17aa3a26085ddba
2981 # -----------------------------------------------------------------------------
2982 #
2983 # (c) 2009 The University of Glasgow
2984 #
2985 # This file is part of the GHC build system.
2986 #
2987 # To understand how the build system works and how to modify it, see
2988 #      http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture
2989 #      http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying
2990 #
2991 # -----------------------------------------------------------------------------
2993[more cleaning
2994Simon Marlow <marlowsd@gmail.com>**20090428084919
2995 Ignore-this: e41e0dcbef3d410ca5d6a2ff8e433cc8
2997[todo updates
2998Simon Marlow <marlowsd@gmail.com>**20090427152529
2999 Ignore-this: b476fdb991b7b229d4aa837aa6d45216
3001[remove commentary that is now in the wiki
3002Simon Marlow <marlowsd@gmail.com>**20090427144743
3003 Ignore-this: e9f6bec77aa99a3c1b49ada0bf4ca9ad
3005[remove ticket todos
3006Simon Marlow <marlowsd@gmail.com>**20090427144406
3007 Ignore-this: 7de6ea0d0ecfc1ca51d75090074dcdd9
3009[require gcc 3.0+ (see #2770)
3010Simon Marlow <marlowsd@gmail.com>**20090427134322
3011 Ignore-this: 4844e99c80bdd0f9a6bdd34bae46748b
3013[update build order comment
3014Simon Marlow <marlowsd@gmail.com>**20090427124711
3015 Ignore-this: 96be57ee425cb4d5a916960273aefe87
3017[Equality constraint solver is now externally pure
3018Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090427140316
3019 Ignore-this: bd7c31a7d9e62437e4d83f70b48220af
3020 - This patch changes the equality constraint solver such that it does not
3021   instantiate any type variables that occur in the constraints that are to be
3022   solved (or in the environment).  Instead, it returns a bag of type bindings.
3023 - If these type bindings (together with the other results of the solver) are
3024   discarded, solver invocation has no effect (outside the solver) and can be
3025   repeated (that's imported for TcSimplifyRestricted).
3026 - For the type bindings to take effect, the caller of the solver needs to
3027   execute them.
3028 - The solver will still instantiate type variables thet were created during
3029   solving (e.g., skolem flexibles used during type flattening).
3031   See also http://hackage.haskell.org/trac/ghc/wiki/TypeFunctionsSolving
3033[Improve the error message when we find a module in 2 places; trac #3183
3034Ian Lynagh <igloo@earth.li>**20090426160204]
3035[Remove a comment (a bug to close, that has now been closed)
3036Ian Lynagh <igloo@earth.li>**20090426151942]
3037[GHC new build system megapatch
3038Ian Lynagh <igloo@earth.li>**20090426114215]
3039[Fix SPARC build, missing #include
3041[Fix a lint failure when we have a  ! (# ... #)  pattern in a where clause
3042Ian Lynagh <igloo@earth.li>**20090424173313
3043 This showed up when converting ds057 to follow the new bang pattern rules,
3044 in #2806.
3046[Do the second part of #2806: Disallow unlifted types in ~ patterns
3047Ian Lynagh <igloo@earth.li>**20090424150519]
3048[Tiny refactor
3049Ian Lynagh <igloo@earth.li>**20090424140227]
3050[Require a bang pattern when unlifted types are where/let bound; #3182
3051Ian Lynagh <igloo@earth.li>**20090424124754
3052 For now we only get a warning, rather than an error, because the alex
3053 and happy templates don't follow the new rules yet.
3055[Don't short out top-level indirections if there's a INLINE/NOINLINE pragma
3057 Ignore-this: 422a4256a63c93a0bf806cbfa564ec69
3059 The top-level indirection-shorting, done in SimplCore.shortOutIndirections,
3060 was accidentally nuking a NOINLINE pragma.  This patch adopts a slightly
3061 more conservative approach to indirection-shorting, only doing so if
3062 we do not thereby overwrite or lose some user-supplied pragmas.
3065[Fix #3182: 64 bit FP value returned by C calls was getting trashed
3067 Ignore-this: 529bfd2bfb663a70e1345a0089737496
3068    movss instruction was being used to move the result into the
3069    destination register instead of movsd
3071[add missing files (part of #3171 fix)
3072Simon Marlow <marlowsd@gmail.com>**20090424091610
3073 Ignore-this: 3d11fe878c873529906f67e930c46c2c
3075[Tiny optimisation to mkInlineMe
3077 Ignore-this: be1e8ed22a82f1dc348b1e047a986d8b
3080Simon Marlow <marlowsd@gmail.com>**20090423141940
3081 Ignore-this: 173128c92c20e6a85d6611355fb5273a
3082 Also some tidyups and renaming
3084[add getOrSetSignalHandlerStore, much like getOrSetTypeableStore
3085Simon Marlow <marlowsd@gmail.com>**20090423113002
3086 Ignore-this: d9dcb835444cae366aa8f6bcf68fd191
3087 Part of the fix for #3171
3089[don't overwrite io_manager_pipe if it is already set
3090Simon Marlow <marlowsd@gmail.com>**20090423112939
3091 Ignore-this: 8e7d94a051b4b3daec89ea3103678550
3092 Part of the fix for #3171
3094[Simplify the placeholder binding for naughty record selectors
3096 Ignore-this: 50dca18eeaa60e24319ed75dabf55bab
3098[Fix Trac #3176: intercept naughty record selectors
3100 Ignore-this: 1aab5295a20191d8a56364f1fbf2e765
3102 When making record selectors into ordinary functions (rather than
3103 magial implicit Ids) I forgot that they could therefore show up in
3104 the *local* TcEnv, not the global one.  This fixes that problem,
3105 and thereby Trac #3176.
3108[Better pretty-printing for IdDetails
3110 Ignore-this: 34721cec14f1ad33838f12bfc7851a48
3112[FIX #3166: include the fixity of classes and type synonyms in their fingerprints
3113Simon Marlow <marlowsd@gmail.com>**20090421135624
3114 Ignore-this: 5390a8fb76bf1f3133f08277a978cb2
3116[FIX #2682: banish silly cases of the "module Foo is not loaded" error
3117Simon Marlow <marlowsd@gmail.com>**20090421131038
3118 Ignore-this: 15298691a63e13c63a68673202b1fc18
3120 In GHCi if you say 'import Foo' meaning to load a package module Foo,
3121 and Foo.hs is found on the search path, then GHCi replies "module Foo
3122 is not loaded", because it knows Foo refers to the source file rather
3123 than the package module, and you haven't loaded that module with
3124 :load.
3126 This is consistent with the usual module-finding semantics.  However,
3127 it isn't particularly useful.  And it leads to silly problems like not
3128 being able to start GHCi when you happen to be sitting in
3129 libraries/base, because GHCi thinks the Prelude hasn't been loaded.
3131 So now I've made a slight change to the way that 'import M' works: if
3132 M is loaded, then it refers to the loaded module, otherwise it looks
3133 for a package module M.  This does what the reporter of #2682 wanted,
3134 and since it turns an error condition into meaningful behaviour it
3135 can't break anything. 
3137 The only undesirable consequence is that 'import M' might refer to a
3138 different M than ':load M'.  Hopefully that won't lead to confusion.
3140[add a DO NOT EDIT comment
3141Simon Marlow <marlowsd@gmail.com>**20090421094606
3142 Ignore-this: d0e81a968fe38918d2830dcf1186f61c
3144[FIX #3153: we lost an EOF sentinel in the event of a lexical error
3145Simon Marlow <marlowsd@gmail.com>**20090421094558
3146 Ignore-this: e30401ca719605a6991e9c8a31821eba
3148[FIX #2845: Allow breakpoints on expressions with unlifted type
3149Simon Marlow <marlowsd@gmail.com>**20090420142525
3150 Ignore-this: 8d1b2624a4635b421032463219af604e
3152 It turns out we can easily support breakpoints on expressions with
3153 unlifted types, by translating
3155   case tick# of _ -> e
3157 into
3159   let f = \s . case tick# of _ -> e
3160   in  f realWorld#
3162 instead of just a plain let-binding.  This is the same trick that GHC
3163 uses for abstracting join points of unlifted type.
3165 In #2845, GHC has eta-expanded the tick expression, changing the
3166 result type from IO a to (# State#, a #), which was the reason the
3167 tick was suddenly being ignored.  By supporting ticks on unlifted
3168 expressions we can make it work again, although some confusion might
3169 arise because _result will no longer be available (it now has
3170 unboxed-tuple type, so we can't bind it in the environment).  The
3171 underlying problem here is that GHC does transformations like
3172 eta-expanding the tick expressions, and there's nothing we can do to
3173 prevent that.
3175[remove now-unused atomic_modify_mutvar_mutex
3176Simon Marlow <marlowsd@gmail.com>**20090403132731
3177 Ignore-this: d27c29bdd8a4c43b384e278fb192138e
3179[SPARC NCG: Add a comment explaining why we can't used a pinned reg for gct
3181 Can't use windowed regs because the window moves during a function
3182 call. Can't use the global regs because they're reserved for other purposes.
3184[SPARC NCG: validate fixes
3186 Ignore-this: 4df988a6b3c005de741a300313104408
3188[SPARC NCG: Base freeRegs on includes/MachRegs.h again
3190[Really fix Trac #2611 this time
3191pepe iborra <mnislaih@gmail.com>**20090419142241
3193 My previous patch didn't completely solve the problem.
3194 I believe I got it right this time.
3196[Fix Trac #2611
3197pepe iborra <mnislaih@gmail.com>**20090418214115
3199 Fix a bug in :print affecting data types with unboxed components
3202[Fix #3170: Allow coalescing of the same node during register allocation.
3204 Ignore-this: b3a14959d7616fd53c3334a4f0b30f48
3205   The x86 code generator sometimes generates nop moves like
3206   movl %vI_a %vI_a, but we'll just ignore them for coalescing
3207   purposes instead of emitting an error. It shouldn't hurt anything.
3209[Fix my previous patch about type parsing
3210David Waern <david.waern@gmail.com>**20090418082927
3212 I forgot to record some additional changes.
3214[Simplify the type grammar
3215David Waern <david.waern@gmail.com>**20090417145855
3217 Simon P-J suggested the following simplifications in #3097:
3219 * Allow nested foralls in `ctype` just like in `ctypedoc`.
3220 * Use `gentype` rather than `type` in the LHS of type declarations.
3221 * Inline `type` in `ctype`.
3222 * Rename `gentype` to `type`.
3224 This patch does this. Also, the equivalent thing is done for documented types.
3226[Removed unused function postEventTypeID.
3228 Ignore-this: cbab58da40e0d3b6d124347b9fda8e4
3229 postEventTypeID was used to post event marker IDs, but instead we just
3230 call postWord16 directly; thus, this function is unused.
3232[For consistency, changed access of thread id to be through capability instead of directly from StgRegTable.
3234 Ignore-this: dd38adce264aa882be0a4daf7c8c7378
3236[Added new EventLog event: Spark to Thread.
3238 Ignore-this: d38be4d01d76297953d6ed075896cb97
3240[Changed postEvent last argument from "nat from" to "StgWord64 other".
3242 Ignore-this: b7991c781c09d7a631230740cd8b1fe6
3243 StgWord64 other better represents this argument since it can be used as
3244 any particular data, thus "other" and not the "from" capability as it was
3245 previously strictly used.  Also, StgWord64 is normally larger than type
3246 nat to allow for larger data to be passed through the "other" argument.
3248[Fixed ThreadID to be defined as StgThreadID, not StgWord64.  Changed CapabilityNum to CapNo.  Added helper functions postCapNo() and postThreadID().
3250 Ignore-this: dde2f442f9d5e43f20f52069dee4f8c0
3251 ThreadID was StgWord64, but should have been StgThreadID, which is
3252 currently StgWord32.  Changed name from CapabilityNum to CapNo to better
3253 reflect naming in Capability struct where "no" is the capability number.
3254 Modified EventLog.c to use the helper functions postCapNo() and
3255 postThreadID () for CapNo and ThreadID.
3257[Fixed error in order of EventTypeDescriptions -- seq and par GC come after start and finish GC.
3259 Ignore-this: 98c0367103ab7892980d9a17d442584e
3260 EventTypeDescriptions order must be synchronized with the event type
3261 definitions in includes/EventLogFormat.h for the definitions to correctly
3262 index with the matching description.
3264[Eventlog support for new event type: create spark.
3266 Ignore-this: 1da2a5eb13c7c64132234323e2acb514
3268[Tweak a Show instance
3269Ian Lynagh <igloo@earth.li>**20090407143057]
3270[Fix Trac #3155: better error message when -XRankNTypes is omitted
3272 Ignore-this: fc9d3035cd461c8a892332facd86c7da
3274 This patch sligtly re-adjusts the way in which the syntax of types
3275 is handled:
3277  * In the lexer, '.' and '*' are always accepted in types
3278    (previously it was conditional).  This things can't mean
3279    anything else in H98, which is the only reason for doing things
3280    conditionally in the lexer.
3282  * As a result '.' in types is never treated as an operator.
3283    Instead, lacking a 'forall' keyword, it turns into a plain parse error.
3285  * Test for -XKindSignatures in the renamer when processing
3286      a) type variable bindings
3287      b) types with sigs (ty :: kind-sig)
3289  * Make -XKindSignatures be implied by -XTypeFamilies
3290    Previously this was buried in the conditonal lexing of '*'
3293[Use return instead of returnM, and similar tidy-ups
3295 Ignore-this: 987baeb20a3ff9f07c7a103ca5258c70
3297[Don't use thread local storage on x86/not-Linux
3298Ian Lynagh <igloo@earth.li>**20090404003445
3299 With the
3300     On x86, use thread-local storage instead of stealing a reg for gct
3301 patch, on Windows and OS X:
3302     error: thread-local storage not supported for this target
3304[Make some showSDoc's use OneLineMode rather than PageMode
3305Ian Lynagh <igloo@earth.li>**20090331181948]
3306[Make the showSDoc definition more explicit
3307Ian Lynagh <igloo@earth.li>**20090331174103]
3308[eliminate warnings
3310[Debugging by Sesame Street:
3313 One of these things is not like the others:
3315 stdPattern :: [LRep] -> Maybe StgHalfWord
3316 stdPattern reps
3317   = case reps of
3318         []  -> Just ARG_NONE    -- just void args, probably
3319         [N] -> Just ARG_N
3320         [P] -> Just ARG_N
3321         [F] -> Just ARG_F
3322         [D] -> Just ARG_D
3323         [L] -> Just ARG_L
3325 Today's debugging session was brought to you by the letter P.
3327[Buggy optimizations caused function-call return to share the function's entry point
3329 - Block concat and branch-chain elimination were allowing a function call
3330   to return to the caller's entry point. But that doesn't leave anywhere
3331   for the infotable on the stack, since the SP on return must be the same
3332   as the SP on entry to the procedure.
3334[Better handling of node parameter in calling conventions
3336  - Previously, the node was taken as a parameter, then ignored,
3337    for static closures. Goofy. Now, the vestigial node parameters
3338    are gone.
3340[When calling gc, avoid saving node in static closures
3342[Code simplifications due to call/return separation; some improvements to how node argument is managed
3344[Code simplification due to separate call/return conventions
3346[Calls with and without passing node arguments more clearly separated
3348[Another small step: call and return conventions specified separately when making calls
3350[Small step toward call-conv improvement: separate out calls and returns
3352[On x86, use thread-local storage instead of stealing a reg for gct
3353Simon Marlow <marlowsd@gmail.com>**20090403121816
3354 Ignore-this: b132a4c2f56a955adb8537442ca8eb0f
3355 Benchmarks show that using TLS instead of stealing a register is
3356 better by a few percent on x86, due to the lack of registers.
3358 This only affects -threaded; without -threaded we're (now) using
3359 static storage for the GC data.
3361[in the non-threaded RTS, use a static gc_thread structure
3362Simon Marlow <marlowsd@gmail.com>**20090403121443
3363 Ignore-this: 631365db4f9ec7c87f71e0ac851cdfc
3365[small GC optimisation
3366Simon Marlow <marlowsd@gmail.com>**20090403083708]
3367[add -funroll-loops when compiling the parallel version of Evac.c too
3368Simon Marlow <marlowsd@gmail.com>**20090402105643
3369 Ignore-this: c120d5f5ea961e10acad457fd871ba53
3372Simon Marlow <marlowsd@gmail.com>**20090402105540
3373 Ignore-this: 4136707371784c791c435ae4f562a500
3374 unbreaks ghc-pkg check in an installed GHC
3376[Adjust inlining heursitics
3378 Ignore-this: a2d6849726f6705e06941c74137bfe7e
3380 This patch is the result of a long series of nofib-based experiments
3381 to improve GHC's inlining heuristics.
3383 In the end, I'm not sure how worthwhile it all was: I only got a
3384    1% decrease in code size
3385    1% decrease in allocation
3386 and I don't trust the runtime statistics enough to quote.
3388 Still, in doing all this I tidied up the code quite a bit, and
3389 I understand it much better now, so I'm going to commit it.
3391 The main changes are in CoreUnfold, which has lots of new comments.
3392 Other changes:
3394   - litSize moves from Literal to CoreUnfold
3395   - interestingArg moves from SimplUtils to CoreUnfold
3396   - the default unfolding threshold (in StaticFlags)
3397       reduces from 8 to 6 (since the size calculation
3398       has changed a bit)
3402[Worker/wrapper should make INLINE if it doesn't w/w
3404 Ignore-this: 5ef3c02c272ad59616fa7dfaa0dc0381
3406 If worker/wrapper decides not to w/w something on the grounds that
3407 it's too small, it should add an INLINE pragma.  Otherwise, later
3408 in the day that small thing might now be big, and we'd wish we'd
3409 done the w/w after all.  This only made a difference in one nofib
3410 program (bspt), but it's an easy change.
3412 See Note [Don't w/w inline things (a) and (b)]
3415[Rewrite a good chunk of CoreArity
3417 Ignore-this: 314d26ad8f2d4437e11148b58e35d731
3419 I found a couple of shortcomings in arity computation, and did
3420 quite a bit of refactoring as a result.  Regrettably, I have
3421 forgotten the details, but I do remember that one part was to
3422 do with the infamous "state hack".  If we're going to use the
3423 state-hack at all, we'd better do it right.
3425 Anyway I think this is an improvement. The comments are more
3426 up to date too, and more voluminous.
3429[Comments only; record remarks about removing 'type' nonterminal
3431 Ignore-this: 82f93bd161ee48c0a745fb58247afec0
3433[Don't float case expressions in full laziness
3435 Ignore-this: 356f0fc77301283116a669ed76478c4
3437 See Note [Case MFEs]; don't float case expressions from
3438 a strict context.
3441[Fix Trac #3118: missing alternative
3443 Ignore-this: 9a9866ad88eae871cb98c6795c12349b
3445 This patch fixes a rather obscure bug, whereby it's possible
3446 for (case C a b of <alts>) to have altenatives that do not inclue
3447 (C a b)!  See Note [Unreachable code] in CoreUtils.
3450[Use a local interestingDict function instead of importing SimplUtils.interestingArg
3452 Ignore-this: d01d1a42067c2f907a1f2fb2ddec4ada
3454 I'm changing the details of SimplUtils.interstingArg, and don't want to
3455 mess  up the way Specialise works, so this patch makes a specilialised
3456 (ha) function, Specialise.interestingDict, that is used locally.
3460[Better panic reporting
3462 Ignore-this: abbd0ab8e2e8771012c17e0fc66fed41
3464 Make idDetails and idInfo into proper functions, rather than record
3465 fields, so that we can report more informatively if you use thenm on
3466 a non-Id.
3469[Fix pragmas in binder-swapping
3471 Ignore-this: 422672152247c7732c56e850f3317546
3473 In the case binder-swap operation (which is done in OccurAnal),
3474 we deliberately use shadowing. But the new shadowing binder should
3475 not inherit any fancy INLINE or NOINLINE pragmas from its parent.
3478[Float constants to top-level even in first full laziness pass
3480 Ignore-this: c81a6d62b760d50348aaa5de0276d7c6
3482 This patch changes the compilation pipeline flags so that constants
3483 are floated to the top level even in the first full laziness pass.
3484 For some reason this was not done before.  Fixing this makes a big
3485 improvement in 'spectral/rewrite', and has zero effect on any other
3486 nofib benchmark.
3489[update the intro section
3490Simon Marlow <marlowsd@gmail.com>**20090401105256
3491 Ignore-this: 90aba333b501ecdedca5116d7204e47f
3493[Remove the "Installing GHC" section
3494Simon Marlow <marlowsd@gmail.com>**20090401103418
3495 Ignore-this: 94b8c9bcb8a93442ae19f9547f545f74
3497  1. it was out of date in various ways
3498  2. this is not the place people look for installation instructions
3499  3. we have installation instructions elsewhere (e.g. the INSTALL
3500     file in a binary distribution)
3501  4. the section "layout of installed files" is now on the wiki under
3502     Building/Installing.
3504[SPARC: Fix ffi019 split load/store of HsInt64 into two parts to respect alignment constraints
3506[SPARC NCG: Fix 64 bit addition, carry bit wasn't getting set.
3508[SPARC NCG: When getting a 64 bit word, promote halves to 64 bit before shifting
3510[SPARC NCG: HpLim is now always stored on the stack, not in a register
3512    This fixes the out of memory errors we were getting on sparc
3513    after the following patch:
3515      Fri Mar 13 03:45:16 PDT 2009  Simon Marlow <marlowsd@gmail.com>
3516      * Instead of a separate context-switch flag, set HpLim to zero
3517      Ignore-this: 6c5bbe1ce2c5ef551efe98f288483b0
3518      This reduces the latency between a context-switch being triggered and
3519      the thread returning to the scheduler, which in turn should reduce the
3520      cost of the GC barrier when there are many cores.
3522[Allow Haddock comments in type synonyms
3523David Waern <david.waern@gmail.com>**20090331212306
3524 Ignore-this: 11f1bad22d25d8d0017580d020c1aa5d
3526 We now use `ctypedoc` instead of `ctype` for type synonyms. `ctypedoc` was
3527 previously only used for top-level type signatures. This change means that type
3528 synonyms now can contain comments, just like top-level type signatures.
3530 Note:
3532 * I've modified `ctypedoc` so it allows implicit parameters and equational
3533 constraints, just like ctype.
3535 * Since `ctypedoc` allows nested foralls, we now allow that in type synonyms.
3537 * I have inlined some productions into gentypedoc so that there is now a
3538 non-doc version of every production with a 'doc' suffix. (Stylistic change
3539 only, which should make the code easier to follow).
3541 * It would have been nice to simplify the grammar by unifying `ctype` and
3542 ctypedoc` into one production, allowing comments on types everywhere (and
3543 rejecting them after parsing, where necessary).  This is however not possible
3544 since it leads to ambiguity. The reason is the support for comments on record
3545 fields:
3547 > data R = R { field :: Int -- ^ comment on the field }
3549 If we allow comments on types here, it's not clear if the comment applies
3550 to 'field' or to 'Int'. So we must use `ctype` to describe the type.
3552[mkErrorAppDs now takes an SDoc rather than a String
3553Ian Lynagh <igloo@earth.li>**20090331134058
3554 This avoids some showSDoc's where the String then gets converted back
3555 into an SDoc.
3557[FIX #1779 and qq005: export hs_hpc_module
3558Simon Marlow <marlowsd@gmail.com>**20090330084414
3559 Ignore-this: cacd10985619c25505f0e48400187ccc
3561[go back to using $CPUS + 1 for the number of threads to use
3562Simon Marlow <marlowsd@gmail.com>**20090330083032
3563 Ignore-this: 2c1915e2c13b953513a2c16cc86a7073
3565[use a UniqSet for is MathFun, this list is getting quite large
3566Simon Marlow <marlowsd@gmail.com>**20090330082957
3567 Ignore-this: ceaf912ed4ec0d778178e2391715c689
3569[Fix an nasty black hole, concerning computation of isRecursiveTyCon
3571 Ignore-this: 3bf163be6629cb933a3be1564ac2b0cc
3573 Fixing #246 (pattern-match order in record patterns) made GHC go into
3574 a black hole, by changing the order of patterm matching in
3575 TyCon.isProductTyCon!  It turned out that GHC had been avoiding the
3576 black hole only by the narrowest of margins up to now!
3578 The black hole concerned the computation of which type constructors
3579 are recursive, in TcTyDecls.calcRecFlags.  We now refrain from using
3580 isProductTyCon there, since it triggers the black hole (very
3581 indirectly).  See the "YUK YUK" comment in the body of calcRecFlags.
3583 As it turns out, the fact that TyCon.isProductTyCon matched on the
3584 algTcRec field was quite redundant, so I removed that too.  However,
3585 without the fix to calcRecFlags, this wouldn't fix the black hole
3586 because of the use of isRecursiveTyCon in BuildTyCl.mkNewTyConRhs.
3588 Anyway, it's fine now.
3591[Add an extra print to -ddump-tc-trace
3593 Ignore-this: 4197fee2974d94a30af97549a858a44
3595[Remove dead code (dataConsStupidTheta)
3597 Ignore-this: 56a6f274aa7194f614a34f664c6e80af
3599[Fix Trac #246: order of matching in record patterns
3601 Ignore-this: 2f0a008e0086cfe7ac5100d4253f4fb1
3603 While I was looking at the desugaring of pattern matching (fixing
3604 Trac #3126) I finally got around to fixing another long-standing bug:
3605 when matching in a record pattern, GHC should match left-to-right in
3606 the programmer-specfied order, *not* left-to-right positionally in
3607 the original record declaration.
3609 Needless to say, that requires a little more code.
3610 See Note [Record patterns] in MatchCon.lhs
3614[Fix Trac #3126: matching overloaded literals
3616 Ignore-this: 560c5e7dba95400bef4a73569ea26b82
3618 Claus Reinke uncovered a long-standing bug in GHC, whereby we were
3619 combining the pattern-match on overloaded literals, missing the fact
3620 that an intervening pattern (for a different literal) might also
3621 match.  (If someone had a very odd implementation of fromInteger!)
3623 See Note [Grouping overloaded literal patterns] in Match.lhs
3625 If this merges smoothly to 6.10, go for it, but it's very much
3626 a corner case.
3628 Thank you Claus!
3631[White space cosmetics only
3633 Ignore-this: c52ebfa8f85e81abcd8694b3a30c6a63
3635[Improve mkDupableCont; and fix Trac #3116
3638 It turns out that, as a result of a change I made a few months ago to
3639 the representation of SimplCont, it's easy to solve the optimisation
3640 challenge posed by Trac #3116.  Hurrah.
3642 Extensive comments in Note [Duplicating StrictArg].
3645[Avoid quadratic complexity in occurrence analysis (fix Trac #1969)
3648   The occurrence analyser could go out to lunch in bad cases, because
3649   of its clever loop-breaking algorithm. This patch makes it bale out
3650   in bad cases.  Somewhat ad-hoc: a nicer solution would be welcome.
3652   See Note [Complexity of loop breaking] for the details.
3655[Improve arity propagation in the specialiser
3658 This patch makes the specialiser propagate arities a bit more
3659 eagerly, which avoids a spurious warning in the simplifier.
3661 See Note [Arity decrease] in Simplify.lhs
3664[check for ThreadRelocated in checkBlackHoles()
3665Simon Marlow <marlowsd@gmail.com>**20090326140343
3666 Ignore-this: 5d63f26567030cf0ccfa33da82702f86
3668[syb no longer needs to be wired in
3669Ian Lynagh <igloo@earth.li>**20090326130517]
3670[Template Haskell: added bang patterns
3671Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090326100208
3672 Ignore-this: f15890cd7ee7fee664af342796780443
3674[Template Haskell: support for kind annotations
3675Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090326085520
3676 Ignore-this: 722c23eac614089d24a8e8373a13de3b
3678[update list of C math functions
3679Bertram Felgenhauer <int-e@gmx.de>**20090323183630
3680 Ignore-this: af5fa15d957d853d27a0c4b465c2419e
3681 Fix via C compilation of modules that import, say, log1p from math.h (#3117)
3683 The list is based on preprocessing Stg.h with glibc 2.6.1 headers, and
3684 cross-checked with the ISO C 99 standard (draft).
3686[Template Haskell: make reify aware of type families
3687Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090325033447
3688 Ignore-this: 4b9c2d626e7c506a74331bb91d0fcff7
3689 - Reifying a type family returns a TH family declaration
3690 - Reifying a data constructor from a data instance attributes that
3691   constructor to the family (not the representation tycon)
3692 - Ideally, we should have facilities to reify all type/data instances of a
3693   given family (and the same for instances of a class).  I haven't added that
3694   here as it involves some API design.
3696[Template Haskell: support for INLINE and SPECIALISE pragmas
3697Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090324232940
3698 Ignore-this: 1f6c2e0de01842da7c9384d3ccafcb63
3700[fix an fprintf that should be fputs (quiets gcc)
3701Simon Marlow <marlowsd@gmail.com>**20090322195441]
3702[check return value of write (quiets gcc)
3703Simon Marlow <marlowsd@gmail.com>**20090322195319]
3704[Fix locking in evacuate_large() (FIX openfile008(threaded2))
3705Simon Marlow <marlowsd@gmail.com>**20090323092953
3706 Ignore-this: 2c6c2790676c3bcd40f0a0b6030d31dc
3708[Please the -Wall police by moving a variable declaration; really FIX getNumberOfProcessors() for MacOS X
3709Austin Seipp <mad.one@gmail.com>**20090320124846
3710 Ignore-this: fcd0015e0923855df814f55d88770db2
3712[wibble in setExecutable
3713Austin Seipp <mad.one@gmail.com>**20090320120043
3714 Ignore-this: 968aa9856a5494e4e58ca8a20106298f
3716[FIX getNumberOfProcessors() on MacOS X
3717Austin Seipp <mad.one@gmail.com>**20090318023127
3718 Ignore-this: 8df07f3353a8e12be9becf4b855d5fdf
3720 This checks if darwin_HOST_OS is defined and, if so, we call
3721 sysctlbyname() on the "hw.ncpu" property to get the processor count.
3723[Work around Solaris's grep not supporting -q
3724Ian Lynagh <igloo@earth.li>**20090319171501]
3725[Some wording wibbles from Thorkil
3726Ian Lynagh <igloo@earth.li>**20090319165916]
3727[Fix bug in setThreadAffinity() (Linux)
3728Simon Marlow <marlowsd@gmail.com>**20090320100446
3729 Ignore-this: 6e8b430fe03959f7e7f8c641d5a589f6
3731[Implement setThreadAffinity for Mac OS X (from 10.5)
3732Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090320071347
3733 Ignore-this: d5e2104b4a011fc98500527741c5e7a7
3735[Fix warnings with older versions of gcc (3.4.5)
3736Simon Marlow <marlowsd@gmail.com>**20090319124932]
3737[wibble for getNumberOfProcessors
3738Simon Marlow <marlowsd@gmail.com>**20090318165936
3739 Ignore-this: 60a776b8250590f72e45c941b810f14a
3741[Set thread affinity with +RTS -qa (only on Linux so far)
3742Simon Marlow <marlowsd@gmail.com>**20090318154719
3743 Ignore-this: a799d276f29dd24c655e1f423eb6743e
3745[Template Haskell support for equality constraints
3746Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090319132347
3747 Ignore-this: 2a0150d9466b0552c5094cdcdc08dbe5
3749[add missing case in ENTER() (fixes readwrite002(profasm) crash)
3750Simon Marlow <marlowsd@gmail.com>**20090319102126
3751 Ignore-this: 5599d4df888e830a8865e57e6745e094
3753[FIX unregisterised build
3754Simon Marlow <marlowsd@gmail.com>**20090319100954
3755 Ignore-this: 97f15b77b030f1f26b0827e6335a8251
3757[Template Haskell: support for type family declarations
3758Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090319084306
3759 Ignore-this: b9f5f5af61a5da53dc4326f380fdb72e
3761[Comment explaining use of seq in DFMonad
3763[FIX unregisterised target by #ifdefing targetPlatform stuff
3764Simon Marlow <marlowsd@gmail.com>**20090318151255
3765 Ignore-this: 916b3929d0edcd18951591a35e0cc99
3766 I'm not sure if this is the correct fix.  If targetPlatform is really
3767 NCG-specific, then maybe we should call it asmTargetPlatform or
3768 something.
3770[Removed a trace
3772[Calling convention bug and cleanup
3774 - yet another wrong calling convention; this one was a special case for returning one
3775   value.
3777[Inconsistent type and arguments in safe foreign calls...
3779 - The function argument was stripped from the argument list but not from the type.
3780   Now they're both stripped.
3782[stack overflows and out of memory's
3784 1. Stack overflow fixed by making dataflow monad strict in the state.
3785 2. Out of memory fixed by "forgetting" lastoutfacts in the dataflow monad
3786    where we should. We were creating an unnecessarily long list that grew
3787    exponentially...
3789[Add the notion of "constructor-like" Ids for rule-matching
3791 Ignore-this: 9249b00a2292563e68d5d715376b216c
3793 This patch adds an optional CONLIKE modifier to INLINE/NOINLINE pragmas,
3794    {-# NOINLINE CONLIKE [1] f #-}
3795 The effect is to allow applications of 'f' to be expanded in a potential
3796 rule match.  Example
3797   {-# RULE "r/f" forall v. r (f v) = f (v+1) #-}
3799 Consider the term
3800      let x = f v in ..x...x...(r x)...
3801 Normally the (r x) would not match the rule, because GHC would be scared
3802 about duplicating the redex (f v). However the CONLIKE modifier says to
3803 treat 'f' like a constructor in this situation, and "look through" the
3804 unfolding for x.  So (r x) fires, yielding (f (v+1)).
3806 The main changes are:
3807   - Syntax
3809   - The inlinePragInfo field of an IdInfo has a RuleMatchInfo
3810     component, which records whether or not the Id is CONLIKE.
3811     Of course, this needs to be serialised in interface files too.
3813   - The occurrence analyser (OccAnal) and simplifier (Simplify) treat
3814     CONLIKE thing like constructors, by ANF-ing them
3816   - New function coreUtils.exprIsExpandable is like exprIsCheap, but
3817     additionally spots applications of CONLIKE functions
3819   - A CoreUnfolding has a field that caches exprIsExpandable
3821   - The rule matcher consults this field.  See
3822     Note [Expanding variables] in Rules.lhs.
3824 On the way I fixed a lurking variable bug in the way variables are
3825 expanded.  See Note [Do not expand locally-bound variables] in
3826 Rule.lhs.  I also did a bit of reformatting and refactoring in
3827 Rules.lhs, so the module has more lines changed than are really
3828 different.
3831[Fixes to "Retract Hp *before* checking for HpLim==0"
3832Simon Marlow <marlowsd@gmail.com>**20090318111847
3833 Ignore-this: 154a41eeb18a775465db29c818d1ec3a
3835[Add fast event logging
3836Simon Marlow <marlowsd@gmail.com>**20090317164214
3837 Ignore-this: c470164a5e66dca06fddc2fe172025de
3839 Generate binary log files from the RTS containing a log of runtime
3840 events with timestamps.  The log file can be visualised in various
3841 ways, for investigating runtime behaviour and debugging performance
3842 problems.  See for example the forthcoming ThreadScope viewer.
3844 New GHC option:
3846   -eventlog   (link-time option) Enables event logging.
3848   +RTS -l     (runtime option) Generates <prog>.eventlog with
3849               the binary event information.
3851 This replaces some of the tracing machinery we already had in the RTS:
3852 e.g. +RTS -vg  for GC tracing (we should do this using the new event
3853 logging instead).
3855 Event logging has almost no runtime cost when it isn't enabled, though
3856 in the future we might add more fine-grained events and this might
3857 change; hence having a link-time option and compiling a separate
3858 version of the RTS for event logging.  There's a small runtime cost
3859 for enabling event-logging, for most programs it shouldn't make much
3860 difference.
3862 (Todo: docs)
3864[FIX biographical profiling (#3039, probably #2297)
3865Simon Marlow <marlowsd@gmail.com>**20090317144939
3866 Ignore-this: 3b1d53fdf0f99c04e7d0055534baf52f
3867 Since we introduced pointer tagging, we no longer always enter a
3868 closure to evaluate it.  However, the biographical profiler relies on
3869 closures being entered in order to mark them as "used", so we were
3870 getting spurious amounts of data attributed to VOID.  It turns out
3871 there are various places that need to be fixed, and I think at least
3872 one of them was also wrong before pointer tagging (CgCon.cgReturnDataCon).
3874[Add getNumberOfProcessors(), FIX MacOS X build problem (hopefully)
3875Simon Marlow <marlowsd@gmail.com>**20090317093309
3876 Ignore-this: 3de51351864f7276f3f887cca5385294
3877 Somebody needs to implement getNumberOfProcessors() for MacOS X,
3878 currently it will return 1.
3880[FIX #3093: stub filenames when using -osuf
3881Simon Marlow <marlowsd@gmail.com>**20090316203437
3882 Ignore-this: 999de35952804c760462ae32cfdd04d5
3883 Also remove some unused cruft
3885[Don't call processHeapClosureForDead on pinned blocks
3886Simon Marlow <marlowsd@gmail.com>**20090316160534
3887 Ignore-this: 33a60e4ce78db6cc5bab399ec673ad0a
3888 Fixes heapprof001(prof_hp) after fix for #2917
3890[Retract Hp *before* checking for HpLim==0
3891Simon Marlow <marlowsd@gmail.com>**20090316160500
3892 Ignore-this: f8fdb26c724f766cfae016321be101c4
3893 Fixes heapprof001(prof_hp) following the recent HpLim patch, which
3894 depended on the lack of slop in the heap.
3896[eliminate some not-quite-duplicate code
3897Simon Marlow <marlowsd@gmail.com>**20090313155619
3898 Ignore-this: 2edadf2f966bf37868b355da1faa211c
3900[start finalizers on the current Capability rather than last_free_capability
3901Simon Marlow <marlowsd@gmail.com>**20090313155602
3902 Ignore-this: b3e7bc2a7966cd5778e55a0e5dc83553
3904[cope with ThreadRelocated on the sleeping_queue
3905Simon Marlow <marlowsd@gmail.com>**20090217132757
3906 Ignore-this: 6b73d2b2e4142d7db4e7db4570f644ff
3908[Fix Trac #3095, and make RdrHsSyn warning-clean
3910 Ignore-this: db47522307c92d93e0037143dee74375
3912[Layout only
3914 Ignore-this: af7c9018e873b1618bfe4a2f3102a0c7
3916[Reject foralls in constructor args in 'deriving', except for Functor etc
3918 Ignore-this: 2538aee2634fb587d74a8dc1a064cb5b
3920[Fix Trac #3092
3922 Ignore-this: 9502fdd84b7b1849f6c37afe12d46d64
3924 We were't checking that a 'data/type instance' was extending a family
3925 type constructor.
3927 Merge to 6.10 if we ever release 6.10.3 (or do it for 6.10.2).
3931[Ensure the orientation of var-var equalities is correct for instatiation
3932Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090315065709
3933 Ignore-this: 95cf805dde74e0b9ff36a7fe7556ed1a
3934 - During fianlisation we use to occasionally swivel variable-variable equalities
3935 - Now, normalisation ensures that they are always oriented as appropriate for
3936   instantation.
3937 - Also fixed #1899 properly; the previous fix fixed a symptom, not the cause.
3939[Use work-stealing for load-balancing in the GC
3940Simon Marlow <marlowsd@gmail.com>**20090313135116
3941 Ignore-this: d05027217c516de3d75f4d1844c860fd
3943 New flag: "+RTS -qb" disables load-balancing in the parallel GC
3944 (though this is subject to change, I think we will probably want to do
3945 something more automatic before releasing this).
3947 To get the "PARGC3" configuration described in the "Runtime support
3948 for Multicore Haskell" paper, use "+RTS -qg0 -qb -RTS".
3950 The main advantage of this is that it allows us to easily disable
3951 load-balancing altogether, which turns out to be important in parallel
3952 programs.  Maintaining locality is sometimes more important that
3953 spreading the work out in parallel GC.  There is a side benefit in
3954 that the parallel GC should have improved locality even when
3955 load-balancing, because each processor prefers to take work from its
3956 own queue before stealing from others.
3958[Fix Trac #3087: derived Data now defines dataCast1/2
3960 Ignore-this: df43405a2ef5adef20f9eb3675e7411f
3962 This patch generates code in deriving(Data) for dataCast1 or 2 as
3963 appropriate.
3965 While I was there I did some refactoring (of course), pulling out
3966 the TcDeriv.inferConstraints as a separate function.
3968 I don't think it's worth merging this to 6.10.2, even though it's a bugfix,
3969 because it modifies code that I added in the HEAD only (for deriving Functor)
3970 so the merge will be sligtly awkward.  And there's an easy workaround.
3973[Adjust error message slightly to make it clearer
3975 Ignore-this: 46b0abb88c1fe11cd4ff059955b81561
3977[just comment formatting
3978Simon Marlow <marlowsd@gmail.com>**20090313132339
3979 Ignore-this: f53b0dca0896134dd704fc3aca3ea93f
3981[Add "+RTS -N" to determine the -N value automatically (see #1741)
3982Simon Marlow <marlowsd@gmail.com>**20090313114646
3983 Ignore-this: b5dd21278e02f4a161093466ca97dce
3985[tidy up "missing symbol" error message
3986Simon Marlow <marlowsd@gmail.com>**20090313101334]
3987[Fix sanity checking after fix to #2917
3988Simon Marlow <marlowsd@gmail.com>**20090312093855]
3989[Instead of a separate context-switch flag, set HpLim to zero
3990Simon Marlow <marlowsd@gmail.com>**20090313104516
3991 Ignore-this: 6c5bbe1ce2c5ef551efe98f288483b0
3992 This reduces the latency between a context-switch being triggered and
3993 the thread returning to the scheduler, which in turn should reduce the
3994 cost of the GC barrier when there are many cores.
3996 We still retain the old context_switch flag which is checked at the
3997 end of each block of allocation.  The idea is that setting HpLim may
3998 fail if the the target thread is modifying HpLim at the same time; the
3999 context_switch flag is a fallback.  It also allows us to "context
4000 switch soon" without forcing an immediate switch, which can be costly.
4002[TAG 2009-03-13
4003Ian Lynagh <igloo@earth.li>**20090313021251]
4004Patch bundle hash: