| 1 | |
|---|
| 2 | New patches: |
|---|
| 3 | |
|---|
| 4 | [Make the code compatible with the stricter labelled-field parsing rules |
|---|
| 5 | Ian Lynagh <igloo@earth.li>**20090725211817] { |
|---|
| 6 | hunk ./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 |
|---|
| 13 | hunk ./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 |
|---|
| 20 | hunk ./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 |
|---|
| 27 | hunk ./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 |
|---|
| 34 | hunk ./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 |
|---|
| 41 | hunk ./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 } |
|---|
| 44 | hunk ./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) |
|---|
| 47 | hunk ./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 }) () |
|---|
| 50 | hunk ./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 |
|---|
| 59 | hunk ./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'}) |
|---|
| 62 | hunk ./compiler/codeGen/ClosureInfo.lhs 662 |
|---|
| 63 | -blackHoleOnEntry _ ConInfo{} = False |
|---|
| 64 | +blackHoleOnEntry _ (ConInfo{}) = False |
|---|
| 65 | hunk ./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 |
|---|
| 70 | hunk ./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 |
|---|
| 75 | hunk ./compiler/codeGen/StgCmmClosure.hs 897 |
|---|
| 76 | -blackHoleOnEntry _ ConInfo{} = False |
|---|
| 77 | +blackHoleOnEntry _ (ConInfo{}) = False |
|---|
| 78 | hunk ./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 |
|---|
| 83 | hunk ./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 |
|---|
| 88 | hunk ./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 |
|---|
| 91 | hunk ./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 |
|---|
| 106 | hunk ./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 |
|---|
| 135 | hunk ./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 |
|---|
| 170 | hunk ./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 |
|---|
| 179 | hunk ./compiler/ghci/ByteCodeItbls.lhs 297 |
|---|
| 180 | - return |
|---|
| 181 | + return $ |
|---|
| 182 | hunk ./compiler/ghci/ByteCodeItbls.lhs 382 |
|---|
| 183 | - return |
|---|
| 184 | + return $ |
|---|
| 185 | hunk ./compiler/ghci/Debugger.hs 160 |
|---|
| 186 | - cPprShowable prec t@Term{ty=ty, val=val} = |
|---|
| 187 | + cPprShowable prec t@(Term{ty=ty, val=val}) = |
|---|
| 188 | hunk ./compiler/ghci/Debugger.hs 174 |
|---|
| 189 | - _ <- GHC.setSessionDynFlags dflags{log_action=noop_log} |
|---|
| 190 | + _ <- GHC.setSessionDynFlags (dflags{log_action=noop_log}) |
|---|
| 191 | hunk ./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}) |
|---|
| 196 | hunk ./compiler/ghci/Linker.lhs 658 |
|---|
| 197 | - return lnk{ linkableUnlinked=new_uls } |
|---|
| 198 | + return $ lnk{ linkableUnlinked=new_uls } |
|---|
| 199 | hunk ./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 |
|---|
| 216 | hunk ./compiler/ghci/RtClosureInspect.hs 122 |
|---|
| 217 | -isFun Suspension{ctype=Fun} = True |
|---|
| 218 | +isFun (Suspension{ctype=Fun}) = True |
|---|
| 219 | hunk ./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 |
|---|
| 222 | hunk ./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 |
|---|
| 233 | hunk ./compiler/ghci/RtClosureInspect.hs 300 |
|---|
| 234 | -mapTermType f = foldTerm idTermFold { |
|---|
| 235 | +mapTermType f = foldTerm (idTermFold { |
|---|
| 236 | hunk ./compiler/ghci/RtClosureInspect.hs 305 |
|---|
| 237 | - fRefWrap = \ty t -> RefWrap (f ty) t} |
|---|
| 238 | + fRefWrap = \ty t -> RefWrap (f ty) t}) |
|---|
| 239 | hunk ./compiler/ghci/RtClosureInspect.hs 308 |
|---|
| 240 | -mapTermTypeM f = foldTermM TermFoldM { |
|---|
| 241 | +mapTermTypeM f = foldTermM (TermFoldM { |
|---|
| 242 | hunk ./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}) |
|---|
| 245 | hunk ./compiler/ghci/RtClosureInspect.hs 317 |
|---|
| 246 | -termTyVars = foldTerm TermFold { |
|---|
| 247 | +termTyVars = foldTerm (TermFold { |
|---|
| 248 | hunk ./compiler/ghci/RtClosureInspect.hs 323 |
|---|
| 249 | - fRefWrap = \ty t -> tyVarsOfType ty `plusVarEnv` t} |
|---|
| 250 | + fRefWrap = \ty t -> tyVarsOfType ty `plusVarEnv` t}) |
|---|
| 251 | hunk ./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 |
|---|
| 254 | hunk ./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}) |
|---|
| 257 | hunk ./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 |
|---|
| 262 | hunk ./compiler/ghci/RtClosureInspect.hs 373 |
|---|
| 263 | -ppr_termM1 Prim{value=words, ty=ty} = |
|---|
| 264 | +ppr_termM1 (Prim{value=words, ty=ty}) = |
|---|
| 265 | hunk ./compiler/ghci/RtClosureInspect.hs 375 |
|---|
| 266 | -ppr_termM1 Suspension{ty=ty, bound_to=Nothing} = |
|---|
| 267 | +ppr_termM1 (Suspension{ty=ty, bound_to=Nothing}) = |
|---|
| 268 | hunk ./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}) |
|---|
| 271 | hunk ./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" |
|---|
| 278 | hunk ./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}) |
|---|
| 281 | hunk ./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) |
|---|
| 284 | hunk ./compiler/ghci/RtClosureInspect.hs 436 |
|---|
| 285 | - where ifTerm pred f prec t@Term{} |
|---|
| 286 | + where ifTerm pred f prec t@(Term{}) |
|---|
| 287 | hunk ./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] |
|---|
| 294 | hunk ./compiler/ghci/RtClosureInspect.hs 758 |
|---|
| 295 | - expandNewtypes = foldTerm idTermFold { fTerm = worker } where |
|---|
| 296 | + expandNewtypes = foldTerm (idTermFold { fTerm = worker }) where |
|---|
| 297 | hunk ./compiler/ghci/RtClosureInspect.hs 770 |
|---|
| 298 | - fixFunDictionaries = foldTerm idTermFold {fSuspension = worker} where |
|---|
| 299 | + fixFunDictionaries = foldTerm (idTermFold {fSuspension = worker}) where |
|---|
| 300 | hunk ./compiler/ghci/RtClosureInspect.hs 1107 |
|---|
| 301 | -zonkTerm = foldTermM TermFoldM{ |
|---|
| 302 | +zonkTerm = foldTermM (TermFoldM{ |
|---|
| 303 | hunk ./compiler/ghci/RtClosureInspect.hs 1117 |
|---|
| 304 | - } |
|---|
| 305 | + }) |
|---|
| 306 | hunk ./compiler/hsSyn/HsDecls.lhs 154 |
|---|
| 307 | - HsGroup { |
|---|
| 308 | + (HsGroup { |
|---|
| 309 | hunk ./compiler/hsSyn/HsDecls.lhs 165 |
|---|
| 310 | - hs_docs = docs1 } |
|---|
| 311 | - HsGroup { |
|---|
| 312 | + hs_docs = docs1 }) |
|---|
| 313 | + (HsGroup { |
|---|
| 314 | hunk ./compiler/hsSyn/HsDecls.lhs 177 |
|---|
| 315 | - hs_docs = docs2 } |
|---|
| 316 | + hs_docs = docs2 }) |
|---|
| 317 | hunk ./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 |
|---|
| 322 | hunk ./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 |
|---|
| 327 | hunk ./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 |
|---|
| 330 | hunk ./compiler/iface/BinIface.hs 133 |
|---|
| 331 | - bh <- return $! setUserData bh ud{ud_symtab = symtab} |
|---|
| 332 | + bh <- return $! setUserData bh (ud{ud_symtab = symtab}) |
|---|
| 333 | hunk ./compiler/iface/BinIface.hs 270 |
|---|
| 334 | -putName BinSymbolTable{ |
|---|
| 335 | +putName (BinSymbolTable{ |
|---|
| 336 | hunk ./compiler/iface/BinIface.hs 272 |
|---|
| 337 | - bin_symtab_next = symtab_next } bh name |
|---|
| 338 | + bin_symtab_next = symtab_next }) bh name |
|---|
| 339 | hunk ./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 |
|---|
| 344 | hunk ./compiler/iface/BinIface.hs 494 |
|---|
| 345 | - put_ bh usg@UsagePackageModule{} = do |
|---|
| 346 | + put_ bh usg@(UsagePackageModule{}) = do |
|---|
| 347 | hunk ./compiler/iface/BinIface.hs 498 |
|---|
| 348 | - put_ bh usg@UsageHomeModule{} = do |
|---|
| 349 | + put_ bh usg@(UsageHomeModule{}) = do |
|---|
| 350 | hunk ./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 } |
|---|
| 353 | hunk ./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, |
|---|
| 356 | hunk ./compiler/iface/IfaceEnv.lhs 170 |
|---|
| 357 | - setNameCache name_cache{ nsUniqs = us', nsNames = new_cache } |
|---|
| 358 | + setNameCache (name_cache{ nsUniqs = us', nsNames = new_cache }) |
|---|
| 359 | hunk ./compiler/iface/IfaceSyn.lhs 354 |
|---|
| 360 | -ifaceDeclSubBndrs IfaceData {ifCons = IfAbstractTyCon} = [] |
|---|
| 361 | +ifaceDeclSubBndrs (IfaceData {ifCons = IfAbstractTyCon}) = [] |
|---|
| 362 | hunk ./compiler/iface/IfaceSyn.lhs 681 |
|---|
| 363 | -freeNamesIfDecl IfaceForeign{} = |
|---|
| 364 | +freeNamesIfDecl (IfaceForeign{}) = |
|---|
| 365 | hunk ./compiler/iface/IfaceSyn.lhs 683 |
|---|
| 366 | -freeNamesIfDecl d@IfaceData{} = |
|---|
| 367 | +freeNamesIfDecl d@(IfaceData{}) = |
|---|
| 368 | hunk ./compiler/iface/IfaceSyn.lhs 688 |
|---|
| 369 | -freeNamesIfDecl d@IfaceSyn{} = |
|---|
| 370 | +freeNamesIfDecl d@(IfaceSyn{}) = |
|---|
| 371 | hunk ./compiler/iface/IfaceSyn.lhs 692 |
|---|
| 372 | -freeNamesIfDecl d@IfaceClass{} = |
|---|
| 373 | +freeNamesIfDecl d@(IfaceClass{}) = |
|---|
| 374 | hunk ./compiler/iface/LoadIface.lhs 672 |
|---|
| 375 | -pprUsage usage@UsagePackageModule{} |
|---|
| 376 | +pprUsage usage@(UsagePackageModule{}) |
|---|
| 377 | hunk ./compiler/iface/LoadIface.lhs 675 |
|---|
| 378 | -pprUsage usage@UsageHomeModule{} |
|---|
| 379 | +pprUsage usage@(UsageHomeModule{}) |
|---|
| 380 | hunk ./compiler/iface/MkIface.lhs 123 |
|---|
| 381 | - ModGuts{ mg_module = this_mod, |
|---|
| 382 | + (ModGuts{ mg_module = this_mod, |
|---|
| 383 | hunk ./compiler/iface/MkIface.lhs 131 |
|---|
| 384 | - mg_hpc_info = hpc_info } |
|---|
| 385 | + mg_hpc_info = hpc_info }) |
|---|
| 386 | hunk ./compiler/iface/MkIface.lhs 145 |
|---|
| 387 | - tc_result@TcGblEnv{ tcg_mod = this_mod, |
|---|
| 388 | + tc_result@(TcGblEnv{ tcg_mod = this_mod, |
|---|
| 389 | hunk ./compiler/iface/MkIface.lhs 152 |
|---|
| 390 | - } |
|---|
| 391 | + }) |
|---|
| 392 | hunk ./compiler/iface/MkIface.lhs 164 |
|---|
| 393 | - TcGblEnv{ tcg_inst_uses = dfun_uses_var, |
|---|
| 394 | + (TcGblEnv{ tcg_inst_uses = dfun_uses_var, |
|---|
| 395 | hunk ./compiler/iface/MkIface.lhs 166 |
|---|
| 396 | - } |
|---|
| 397 | + }) |
|---|
| 398 | hunk ./compiler/iface/MkIface.lhs 173 |
|---|
| 399 | - TcGblEnv{ tcg_mod = mod, |
|---|
| 400 | + (TcGblEnv{ tcg_mod = mod, |
|---|
| 401 | hunk ./compiler/iface/MkIface.lhs 176 |
|---|
| 402 | - } |
|---|
| 403 | + }) |
|---|
| 404 | hunk ./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) } |
|---|
| 413 | hunk ./compiler/iface/MkIface.lhs 207 |
|---|
| 414 | - ModDetails{ md_insts = insts, |
|---|
| 415 | + (ModDetails{ md_insts = insts, |
|---|
| 416 | hunk ./compiler/iface/MkIface.lhs 213 |
|---|
| 417 | - md_exports = exports } |
|---|
| 418 | + md_exports = exports }) |
|---|
| 419 | hunk ./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 }) |
|---|
| 424 | hunk ./compiler/iface/MkIface.lhs 850 |
|---|
| 425 | - = Just UsageHomeModule { |
|---|
| 426 | + = Just (UsageHomeModule { |
|---|
| 427 | hunk ./compiler/iface/MkIface.lhs 854 |
|---|
| 428 | - usg_entities = fmToList ent_hashs } |
|---|
| 429 | + usg_entities = fmToList ent_hashs }) |
|---|
| 430 | hunk ./compiler/iface/MkIface.lhs 1164 |
|---|
| 431 | -checkModUsage _this_pkg UsagePackageModule{ |
|---|
| 432 | +checkModUsage _this_pkg (UsagePackageModule{ |
|---|
| 433 | hunk ./compiler/iface/MkIface.lhs 1166 |
|---|
| 434 | - usg_mod_hash = old_mod_hash } |
|---|
| 435 | + usg_mod_hash = old_mod_hash }) |
|---|
| 436 | hunk ./compiler/iface/MkIface.lhs 1174 |
|---|
| 437 | -checkModUsage this_pkg UsageHomeModule{ |
|---|
| 438 | +checkModUsage this_pkg (UsageHomeModule{ |
|---|
| 439 | hunk ./compiler/iface/MkIface.lhs 1178 |
|---|
| 440 | - usg_entities = old_decl_hash } |
|---|
| 441 | + usg_entities = old_decl_hash }) |
|---|
| 442 | hunk ./compiler/iface/MkIface.lhs 1340 |
|---|
| 443 | - ifaceConDecls OpenTyCon {} = IfOpenDataTyCon |
|---|
| 444 | + ifaceConDecls (OpenTyCon {}) = IfOpenDataTyCon |
|---|
| 445 | hunk ./compiler/main/DynFlags.hs 577 |
|---|
| 446 | - return dflags{ |
|---|
| 447 | + return $ dflags{ |
|---|
| 448 | hunk ./compiler/main/Finder.lhs 430 |
|---|
| 449 | - return ModLocation{ ml_hs_file = Nothing, |
|---|
| 450 | + return $ ModLocation{ ml_hs_file = Nothing, |
|---|
| 451 | hunk ./compiler/main/GHC.hs 1768 |
|---|
| 452 | - return hsc_env{ hsc_HPT = new_hpt } |
|---|
| 453 | + return $ hsc_env{ hsc_HPT = new_hpt } |
|---|
| 454 | hunk ./compiler/main/GHC.hs 2084 |
|---|
| 455 | - return old_summary{ ms_obj_date = obj_timestamp } |
|---|
| 456 | + return $ old_summary{ ms_obj_date = obj_timestamp } |
|---|
| 457 | hunk ./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 }) |
|---|
| 460 | hunk ./compiler/main/HeaderInfo.hs 138 |
|---|
| 461 | - unsafeInterleaveIO $ lazyLexBuf handle state{buffer=newbuf} False |
|---|
| 462 | + unsafeInterleaveIO $ lazyLexBuf handle (state{buffer=newbuf}) False |
|---|
| 463 | hunk ./compiler/main/HscTypes.lhs 1184 |
|---|
| 464 | -substInteractiveContext ictxt@InteractiveContext{ic_tmp_ids=ids} subst = |
|---|
| 465 | +substInteractiveContext ictxt@(InteractiveContext{ic_tmp_ids=ids}) subst = |
|---|
| 466 | hunk ./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 } } |
|---|
| 469 | hunk ./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} |
|---|
| 472 | hunk ./compiler/main/InteractiveEval.hs 626 |
|---|
| 473 | - hsc_env1 <- rttiEnvironment hsc_env{ hsc_IC = ictxt1 } |
|---|
| 474 | + hsc_env1 <- rttiEnvironment $ hsc_env{ hsc_IC = ictxt1 } |
|---|
| 475 | hunk ./compiler/main/InteractiveEval.hs 645 |
|---|
| 476 | -rttiEnvironment hsc_env@HscEnv{hsc_IC=ic} = do |
|---|
| 477 | +rttiEnvironment hsc_env@(HscEnv{hsc_IC=ic}) = do |
|---|
| 478 | hunk ./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 |
|---|
| 481 | hunk ./compiler/main/InteractiveEval.hs 679 |
|---|
| 482 | - return hsc_env{hsc_IC=ic'} |
|---|
| 483 | + return $ hsc_env{hsc_IC=ic'} |
|---|
| 484 | hunk ./compiler/main/InteractiveEval.hs 849 |
|---|
| 485 | -getContext = withSession $ \HscEnv{ hsc_IC=ic } -> |
|---|
| 486 | +getContext = withSession $ \(HscEnv{ hsc_IC=ic }) -> |
|---|
| 487 | hunk ./compiler/main/InteractiveEval.hs 906 |
|---|
| 488 | -greToRdrNames GRE{ gre_name = name, gre_prov = prov } |
|---|
| 489 | +greToRdrNames (GRE{ gre_name = name, gre_prov = prov }) |
|---|
| 490 | hunk ./compiler/main/SysTools.lhs 227 |
|---|
| 491 | - ; return dflags1{ |
|---|
| 492 | + ; return $ dflags1{ |
|---|
| 493 | hunk ./compiler/main/TidyPgm.lhs 116 |
|---|
| 494 | - TcGblEnv{ tcg_exports = exports, |
|---|
| 495 | + (TcGblEnv{ tcg_exports = exports, |
|---|
| 496 | hunk ./compiler/main/TidyPgm.lhs 120 |
|---|
| 497 | - } |
|---|
| 498 | + }) |
|---|
| 499 | hunk ./compiler/main/TidyPgm.lhs 125 |
|---|
| 500 | - ModGuts{ mg_exports = exports, |
|---|
| 501 | + (ModGuts{ mg_exports = exports, |
|---|
| 502 | hunk ./compiler/main/TidyPgm.lhs 129 |
|---|
| 503 | - } |
|---|
| 504 | + }) |
|---|
| 505 | hunk ./compiler/nativeGen/AsmCodeGen.lhs 192 |
|---|
| 506 | - | stat@Color.RegAllocStatsStart{} <- stats] |
|---|
| 507 | + | stat@(Color.RegAllocStatsStart{}) <- stats] |
|---|
| 508 | hunk ./compiler/nativeGen/RegAlloc/Graph/Coalesce.hs 71 |
|---|
| 509 | - slurpCmm rs CmmData{} = rs |
|---|
| 510 | + slurpCmm rs (CmmData{}) = rs |
|---|
| 511 | hunk ./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 |
|---|
| 516 | hunk ./compiler/nativeGen/RegAlloc/Graph/Spill.hs 84 |
|---|
| 517 | -regSpill_instr _ SPILL{} |
|---|
| 518 | +regSpill_instr _ (SPILL{}) |
|---|
| 519 | hunk ./compiler/nativeGen/RegAlloc/Graph/Spill.hs 87 |
|---|
| 520 | -regSpill_instr _ RELOAD{} |
|---|
| 521 | +regSpill_instr _ (RELOAD{}) |
|---|
| 522 | hunk ./compiler/nativeGen/RegAlloc/Graph/SpillCost.hs 73 |
|---|
| 523 | - countCmm CmmData{} = return () |
|---|
| 524 | + countCmm (CmmData{}) = return () |
|---|
| 525 | hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 66 |
|---|
| 526 | - ppr (s@RegAllocStatsStart{}) |
|---|
| 527 | + ppr s@(RegAllocStatsStart{}) |
|---|
| 528 | hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 75 |
|---|
| 529 | - ppr (s@RegAllocStatsSpill{}) |
|---|
| 530 | + ppr s@(RegAllocStatsSpill{}) |
|---|
| 531 | hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 100 |
|---|
| 532 | - ppr (s@RegAllocStatsColored { raSRMs = (spills, reloads, moves) }) |
|---|
| 533 | + ppr s@(RegAllocStatsColored { raSRMs = (spills, reloads, moves) }) |
|---|
| 534 | hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 155 |
|---|
| 535 | - finals = [ s | s@RegAllocStatsColored{} <- stats] |
|---|
| 536 | + finals = [ s | s@(RegAllocStatsColored{}) <- stats] |
|---|
| 537 | hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 174 |
|---|
| 538 | - | s@RegAllocStatsStart{} <- stats ] |
|---|
| 539 | + | s@(RegAllocStatsStart{}) <- stats ] |
|---|
| 540 | hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 203 |
|---|
| 541 | - [ raGraph s | s@RegAllocStatsStart{} <- stats ] |
|---|
| 542 | + [ raGraph s | s@(RegAllocStatsStart{}) <- stats ] |
|---|
| 543 | hunk ./compiler/nativeGen/RegAlloc/Graph/Stats.hs 221 |
|---|
| 544 | - $ [ raSpillCosts s | s@RegAllocStatsStart{} <- stats ] |
|---|
| 545 | + $ [ raSpillCosts s | s@(RegAllocStatsStart{}) <- stats ] |
|---|
| 546 | hunk ./compiler/nativeGen/RegAlloc/Linear/State.hs 70 |
|---|
| 547 | - (# state'@RA_State |
|---|
| 548 | + (# state'@(RA_State |
|---|
| 549 | hunk ./compiler/nativeGen/RegAlloc/Linear/State.hs 72 |
|---|
| 550 | - , ra_stack = stack' } |
|---|
| 551 | + , ra_stack = stack' }) |
|---|
| 552 | hunk ./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}) -> |
|---|
| 555 | hunk ./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}) -> |
|---|
| 558 | hunk ./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}) -> |
|---|
| 561 | hunk ./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}) -> |
|---|
| 564 | hunk ./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}) -> |
|---|
| 567 | hunk ./compiler/nativeGen/RegAlloc/Liveness.hs 223 |
|---|
| 568 | - where slurpCmm rs CmmData{} = rs |
|---|
| 569 | + where slurpCmm rs (CmmData{}) = rs |
|---|
| 570 | hunk ./compiler/nativeGen/RegAlloc/Liveness.hs 302 |
|---|
| 571 | - where slurpCmm cs CmmData{} = cs |
|---|
| 572 | + where slurpCmm cs (CmmData{}) = cs |
|---|
| 573 | hunk ./compiler/nativeGen/RegAlloc/Liveness.hs 464 |
|---|
| 574 | - patchCmm cmm@CmmData{} = cmm |
|---|
| 575 | + patchCmm cmm@(CmmData{}) = cmm |
|---|
| 576 | hunk ./compiler/nativeGen/RegAlloc/Liveness.hs 521 |
|---|
| 577 | - (Just live |
|---|
| 578 | + (Just $ live |
|---|
| 579 | hunk ./compiler/nativeGen/RegAlloc/Liveness.hs 696 |
|---|
| 580 | - in Instr instr (Just live { liveBorn = rsBorn }) |
|---|
| 581 | + in Instr instr (Just $ live { liveBorn = rsBorn }) |
|---|
| 582 | hunk ./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) }) () |
|---|
| 585 | hunk ./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}) () |
|---|
| 588 | hunk ./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 { |
|---|
| 591 | hunk ./compiler/parser/Lexer.x 1542 |
|---|
| 592 | -} () |
|---|
| 593 | +}) () |
|---|
| 594 | hunk ./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) |
|---|
| 597 | hunk ./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 }) () |
|---|
| 600 | hunk ./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}) () |
|---|
| 603 | hunk ./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 |
|---|
| 606 | hunk ./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 |
|---|
| 609 | hunk ./compiler/parser/Lexer.x 1791 |
|---|
| 610 | - = P $ \s@PState{messages=(ws,es), dflags=d} -> |
|---|
| 611 | + = P $ \s@(PState{messages=(ws,es), dflags=d}) -> |
|---|
| 612 | hunk ./compiler/parser/Lexer.x 1794 |
|---|
| 613 | - in POk s{messages=(ws', es)} () |
|---|
| 614 | + in POk (s{messages=(ws', es)}) () |
|---|
| 615 | hunk ./compiler/parser/Lexer.x 1797 |
|---|
| 616 | -getMessages PState{messages=ms} = ms |
|---|
| 617 | +getMessages (PState{messages=ms}) = ms |
|---|
| 618 | hunk ./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 |
|---|
| 621 | hunk ./compiler/parser/Lexer.x 1803 |
|---|
| 622 | -setContext ctx = P $ \s -> POk s{context=ctx} () |
|---|
| 623 | +setContext ctx = P $ \s -> POk (s{context=ctx}) () |
|---|
| 624 | hunk ./compiler/parser/Lexer.x 1809 |
|---|
| 625 | - (_:tl) -> POk s{ context = tl } () |
|---|
| 626 | + (_:tl) -> POk (s{ context = tl }) () |
|---|
| 627 | hunk ./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}) () |
|---|
| 632 | hunk ./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}) -> |
|---|
| 635 | hunk ./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 }) -> |
|---|
| 640 | hunk ./compiler/prelude/ForeignCall.lhs 82 |
|---|
| 641 | -playSafe PlaySafe{} = True |
|---|
| 642 | -playSafe PlayRisky = False |
|---|
| 643 | +playSafe (PlaySafe{}) = True |
|---|
| 644 | +playSafe PlayRisky = False |
|---|
| 645 | hunk ./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 |
|---|
| 650 | hunk ./compiler/rename/RnSource.lhs 644 |
|---|
| 651 | -rnTyClDecl (tydecl@TyFamily {}) = |
|---|
| 652 | +rnTyClDecl tydecl@(TyFamily {}) = |
|---|
| 653 | hunk ./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, |
|---|
| 656 | hunk ./compiler/rename/RnSource.lhs 651 |
|---|
| 657 | - tcdKindSig = sig, tcdDerivs = derivs} |
|---|
| 658 | + tcdKindSig = sig, tcdDerivs = derivs}) |
|---|
| 659 | hunk ./compiler/rename/RnSource.lhs 924 |
|---|
| 660 | -rnFamily (tydecl@TyFamily {tcdFlavour = flavour, |
|---|
| 661 | +rnFamily tydecl@(TyFamily {tcdFlavour = flavour, |
|---|
| 662 | hunk ./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 {}) = |
|---|
| 667 | hunk ./compiler/simplCore/SimplMonad.lhs 207 |
|---|
| 668 | -doFreeTick tick sc@SimplCount { details = dts } |
|---|
| 669 | +doFreeTick tick sc@(SimplCount { details = dts }) |
|---|
| 670 | hunk ./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 }) |
|---|
| 673 | hunk ./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 }) |
|---|
| 678 | hunk ./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{}) = |
|---|
| 683 | hunk ./compiler/typecheck/TcRnDriver.lhs 674 |
|---|
| 684 | - eqAlgRhs tc1@NewTyCon{} tc2@NewTyCon{} = |
|---|
| 685 | + eqAlgRhs tc1@(NewTyCon{}) tc2@(NewTyCon{}) = |
|---|
| 686 | hunk ./compiler/typecheck/TcTyClsDecls.lhs 268 |
|---|
| 687 | -tcFamInstDecl1 (decl@TySynonym {tcdLName = L loc tc_name}) |
|---|
| 688 | +tcFamInstDecl1 decl@(TySynonym {tcdLName = L loc tc_name}) |
|---|
| 689 | hunk ./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, |
|---|
| 692 | hunk ./compiler/typecheck/TcTyClsDecls.lhs 468 |
|---|
| 693 | - allDecls (decl@ClassDecl {tcdATs = ats}) = decl : [ at |
|---|
| 694 | + allDecls decl@(ClassDecl {tcdATs = ats}) = decl : [ at |
|---|
| 695 | hunk ./compiler/typecheck/TcTyFuns.lhs 991 |
|---|
| 696 | -applySubstRules eq todoEqs (eqConfig@EqConfig {eqs = resEqs}) |
|---|
| 697 | +applySubstRules eq todoEqs eqConfig@(EqConfig {eqs = resEqs}) |
|---|
| 698 | hunk ./compiler/types/TyCon.lhs 325 |
|---|
| 699 | -visibleDataCons OpenTyCon {} = [] |
|---|
| 700 | +visibleDataCons (OpenTyCon {}) = [] |
|---|
| 701 | hunk ./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 | + } |
|---|
| 712 | hunk ./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 | + } |
|---|
| 723 | hunk ./compiler/utils/GraphOps.hs 111 |
|---|
| 724 | - Just Node{} |
|---|
| 725 | + Just (Node{}) |
|---|
| 726 | hunk ./compiler/utils/GraphOps.hs 150 |
|---|
| 727 | - (newNode u c) { nodeConflicts = unitUniqSet u' } |
|---|
| 728 | + ((newNode u c) { nodeConflicts = unitUniqSet u' }) |
|---|
| 729 | hunk ./compiler/utils/GraphOps.hs 198 |
|---|
| 730 | - (newNode u (getClass u)) { nodeConflicts = set' } |
|---|
| 731 | + ((newNode u (getClass u)) { nodeConflicts = set' }) |
|---|
| 732 | hunk ./compiler/utils/GraphOps.hs 213 |
|---|
| 733 | - (newNode u (getClass u)) { nodeExclusions = unitUniqSet color } |
|---|
| 734 | + ((newNode u (getClass u)) { nodeExclusions = unitUniqSet color }) |
|---|
| 735 | hunk ./compiler/utils/GraphOps.hs 236 |
|---|
| 736 | - (newNode u c) { nodeCoalesce = unitUniqSet u' } |
|---|
| 737 | + ((newNode u c) { nodeCoalesce = unitUniqSet u' }) |
|---|
| 738 | hunk ./compiler/utils/GraphOps.hs 268 |
|---|
| 739 | - (newNode u c) { nodePreference = [color] } |
|---|
| 740 | + ((newNode u c) { nodePreference = [color] }) |
|---|
| 741 | hunk ./ghc/GhciMonad.hs 265 |
|---|
| 742 | - _ <- GHC.setSessionDynFlags dflags {log_action = logAction encoder} |
|---|
| 743 | + _ <- GHC.setSessionDynFlags (dflags {log_action = logAction encoder}) |
|---|
| 744 | hunk ./ghc/InteractiveUI.hs 344 |
|---|
| 745 | - startGHCi (runGHCi srcs maybe_exprs) |
|---|
| 746 | + startGHCi (runGHCi srcs maybe_exprs) $ |
|---|
| 747 | hunk ./ghc/InteractiveUI.hs 568 |
|---|
| 748 | - c:cs -> do setGHCiState st{ cmdqueue = cs } |
|---|
| 749 | + c:cs -> do setGHCiState (st{ cmdqueue = cs }) |
|---|
| 750 | hunk ./ghc/InteractiveUI.hs 606 |
|---|
| 751 | - lift $ setGHCiState st{ prompt = "%s| " } |
|---|
| 752 | + lift $ setGHCiState (st{ prompt = "%s| " }) |
|---|
| 753 | hunk ./ghc/InteractiveUI.hs 608 |
|---|
| 754 | - lift $ getGHCiState >>= \st->setGHCiState st{ prompt = p } |
|---|
| 755 | + lift $ getGHCiState >>= \st->setGHCiState (st{ prompt = p }) |
|---|
| 756 | hunk ./ghc/InteractiveUI.hs 634 |
|---|
| 757 | - setGHCiState st{ cmdqueue = cmds ++ cmdqueue st } |
|---|
| 758 | + setGHCiState (st{ cmdqueue = cmds ++ cmdqueue st }) |
|---|
| 759 | hunk ./ghc/InteractiveUI.hs 751 |
|---|
| 760 | - setGHCiState st{ last_command = mc } |
|---|
| 761 | + setGHCiState (st{ last_command = mc }) |
|---|
| 762 | hunk ./ghc/InteractiveUI.hs 1121 |
|---|
| 763 | - setGHCiState st{ remembered_ctx = [] } |
|---|
| 764 | + setGHCiState (st{ remembered_ctx = [] }) |
|---|
| 765 | hunk ./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)] }) |
|---|
| 768 | hunk ./ghc/InteractiveUI.hs 1397 |
|---|
| 769 | - setGHCiState st{ args = args } |
|---|
| 770 | + setGHCiState $ st{ args = args } |
|---|
| 771 | hunk ./ghc/InteractiveUI.hs 1401 |
|---|
| 772 | - setGHCiState st{ progname = prog } |
|---|
| 773 | + setGHCiState $ st{ progname = prog } |
|---|
| 774 | hunk ./ghc/InteractiveUI.hs 1405 |
|---|
| 775 | - setGHCiState st{ editor = cmd } |
|---|
| 776 | + setGHCiState $ st{ editor = cmd } |
|---|
| 777 | hunk ./ghc/InteractiveUI.hs 1419 |
|---|
| 778 | - setGHCiState st{ breaks = new_breaks } |
|---|
| 779 | + setGHCiState $ st{ breaks = new_breaks } |
|---|
| 780 | hunk ./ghc/InteractiveUI.hs 1422 |
|---|
| 781 | - setGHCiState st{ stop = cmd } |
|---|
| 782 | + setGHCiState $ st{ stop = cmd } |
|---|
| 783 | hunk ./ghc/InteractiveUI.hs 2213 |
|---|
| 784 | - setGHCiState st{tickarrays = extendModuleEnv arrmap modl arr} |
|---|
| 785 | + setGHCiState $ st{tickarrays = extendModuleEnv arrmap modl arr} |
|---|
| 786 | hunk ./ghc/InteractiveUI.hs 2219 |
|---|
| 787 | - setGHCiState st{tickarrays = emptyModuleEnv} |
|---|
| 788 | + setGHCiState $ st{tickarrays = emptyModuleEnv} |
|---|
| 789 | } |
|---|
| 790 | |
|---|
| 791 | Context: |
|---|
| 792 | |
|---|
| 793 | [Add an extension to disable n+k patterns |
|---|
| 794 | Ian Lynagh <igloo@earth.li>**20090725134703] |
|---|
| 795 | [Fix a warning on Windows |
|---|
| 796 | Ian Lynagh <igloo@earth.li>**20090724221244] |
|---|
| 797 | [Remove GHC's haskell98 dependency |
|---|
| 798 | Ian Lynagh <igloo@earth.li>**20090724210825] |
|---|
| 799 | [add number of bytes to +RTS -DS leak reports |
|---|
| 800 | Simon Marlow <marlowsd@gmail.com>**20090724150010 |
|---|
| 801 | Ignore-this: 3a66585c8fd2b58ce96abab1e154fb6e |
|---|
| 802 | ] |
|---|
| 803 | [free the gc_thread structures during shutdown |
|---|
| 804 | Simon Marlow <marlowsd@gmail.com>**20090724145956 |
|---|
| 805 | Ignore-this: 25efeb189cbfb549af4550d266604f0e |
|---|
| 806 | ] |
|---|
| 807 | [Add atomic_inc()/atomic_dec(), and use them to replace gc_running_mutex |
|---|
| 808 | Simon Marlow <marlowsd@gmail.com>**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. |
|---|
| 813 | ] |
|---|
| 814 | [Rewrite the foreign import string parser using ReadP |
|---|
| 815 | Simon Marlow <marlowsd@gmail.com>**20090723152138 |
|---|
| 816 | Ignore-this: 1c7db770a29d48710b05e2a3d216b2a8 |
|---|
| 817 | And kill the duplicate one in HsSyn.Convert |
|---|
| 818 | ] |
|---|
| 819 | [point to the wiki |
|---|
| 820 | Simon Marlow <marlowsd@gmail.com>**20090723132345 |
|---|
| 821 | Ignore-this: c11300bac62ce2f56d7fc271aa26dbcd |
|---|
| 822 | ] |
|---|
| 823 | [Remove note about avoiding use of #def in libraries |
|---|
| 824 | Simon Marlow <marlowsd@gmail.com>**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. |
|---|
| 828 | ] |
|---|
| 829 | [refactorings |
|---|
| 830 | Simon Marlow <marlowsd@gmail.com>**20090723091230 |
|---|
| 831 | Ignore-this: 836feb0e819127603dd56623af6e48dc |
|---|
| 832 | ] |
|---|
| 833 | [Fix Trac #3391: make generic to/from bindings only for newly-declared types |
|---|
| 834 | simonpj@microsoft.com**20090723155803 |
|---|
| 835 | Ignore-this: bb56c2ec054397d421dce13d5eb6c73f |
|---|
| 836 | |
|---|
| 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. |
|---|
| 841 | |
|---|
| 842 | ] |
|---|
| 843 | [Print explicit braces and semicolons in do-notation |
|---|
| 844 | simonpj@microsoft.com**20090723152411 |
|---|
| 845 | Ignore-this: a97ddf19774d27d15a01d63787708b20 |
|---|
| 846 | |
|---|
| 847 | By printing explicit braces we make it more likely that pretty-printed |
|---|
| 848 | code will be acceptable if fed back into GHC. |
|---|
| 849 | |
|---|
| 850 | See http://www.haskell.org/pipermail/glasgow-haskell-users/2009-July/017554.html |
|---|
| 851 | |
|---|
| 852 | ] |
|---|
| 853 | [Documentation for stand-alone deriving (Trac #3012) |
|---|
| 854 | simonpj@microsoft.com**20090723132558 |
|---|
| 855 | Ignore-this: 54445c5984594eb7f82151b2ac118695 |
|---|
| 856 | ] |
|---|
| 857 | [Windows only: set the encoding on stdin to utf8 |
|---|
| 858 | Simon Marlow <marlowsd@gmail.com>**20090723121913 |
|---|
| 859 | Ignore-this: d65115d9711b5fb68e77786565ef6de |
|---|
| 860 | Otherwise it defaults to latin1. |
|---|
| 861 | ] |
|---|
| 862 | [Fix Trac #3012: allow more free-wheeling in standalone deriving |
|---|
| 863 | simonpj@microsoft.com**20090723130145 |
|---|
| 864 | Ignore-this: 357580b9388ccbe1da3c1da3ba90e456 |
|---|
| 865 | |
|---|
| 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. |
|---|
| 869 | |
|---|
| 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. |
|---|
| 873 | |
|---|
| 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. |
|---|
| 878 | |
|---|
| 879 | Still to come: changes in the documentation. |
|---|
| 880 | |
|---|
| 881 | ] |
|---|
| 882 | [Use the ErrMsg record type |
|---|
| 883 | simonpj@microsoft.com**20090723130108 |
|---|
| 884 | Ignore-this: 7fb6dd78d3185da0c33901b8aac8d108 |
|---|
| 885 | ] |
|---|
| 886 | [Stop generating redundant parens in 'deriving' code |
|---|
| 887 | simonpj@microsoft.com**20090723125903 |
|---|
| 888 | Ignore-this: 6fc82df9648a82bcf7bf6fdfa9b4dad3 |
|---|
| 889 | |
|---|
| 890 | This makes the code printed by -ddump-deriv look prettier |
|---|
| 891 | |
|---|
| 892 | ] |
|---|
| 893 | [Wibble to printing tuple sections |
|---|
| 894 | simonpj@microsoft.com**20090723125756 |
|---|
| 895 | Ignore-this: af2a1b9784f6447fea0e11d454cf082f |
|---|
| 896 | ] |
|---|
| 897 | [Fix Trac #3193: improve line number reporting for equality constraints |
|---|
| 898 | simonpj@microsoft.com**20090723065504 |
|---|
| 899 | Ignore-this: b45a68071bcaca48cad7855dccb9c9eb |
|---|
| 900 | |
|---|
| 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. |
|---|
| 905 | |
|---|
| 906 | I'm 99% certain this fixes #3193, but it's too complicated to |
|---|
| 907 | reproduce, so I have not actually tested it. |
|---|
| 908 | |
|---|
| 909 | ] |
|---|
| 910 | [Add fmapM_maybe :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b) |
|---|
| 911 | simonpj@microsoft.com**20090723064932 |
|---|
| 912 | Ignore-this: db5f6319b52a5e6b5f85d76985f2a7c9 |
|---|
| 913 | |
|---|
| 914 | This function isn't used at the moment, but Max added it, and it |
|---|
| 915 | looks useful. |
|---|
| 916 | |
|---|
| 917 | ] |
|---|
| 918 | [Add tuple sections as a new feature |
|---|
| 919 | simonpj@microsoft.com**20090723063859 |
|---|
| 920 | Ignore-this: d42a26fc1efff112b852b5c1135c1746 |
|---|
| 921 | |
|---|
| 922 | This patch adds tuple sections, so that |
|---|
| 923 | |
|---|
| 924 | (x,,z) means \y -> (x,y,z) |
|---|
| 925 | |
|---|
| 926 | Thanks for Max Bolinbroke for doing the hard work. |
|---|
| 927 | |
|---|
| 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 |
|---|
| 932 | |
|---|
| 933 | While I was at it, I did a bit of refactoring too. |
|---|
| 934 | |
|---|
| 935 | ] |
|---|
| 936 | [NetBSD defines _REENTRANT in its header files, so compiling ghc gives |
|---|
| 937 | Simon Marlow <marlowsd@gmail.com>**20090723075030 |
|---|
| 938 | Ignore-this: 4722c4ff0541c6080de8f433e498684 |
|---|
| 939 | redefinition warnings for all files that are including includes/Rts.h. |
|---|
| 940 | |
|---|
| 941 | Contributed by: Krister Walfridsson <krister.walfridsson@gmail.com> |
|---|
| 942 | ] |
|---|
| 943 | [includes/TSO.h: kill trailing whitespace |
|---|
| 944 | Samuel Bronson <naesten@gmail.com>**20090722170354 |
|---|
| 945 | Ignore-this: 36d4afd1a21188d604ed6b432942dcdc |
|---|
| 946 | ] |
|---|
| 947 | [Say what StgTSOBlockInfo is for, where to read about it. |
|---|
| 948 | Samuel Bronson <naesten@gmail.com>**20090722163011 |
|---|
| 949 | Ignore-this: 6c09e11f23594251cdc2db1bc642edc9 |
|---|
| 950 | ] |
|---|
| 951 | [Make the Integer library used directly configurable in GHC and base |
|---|
| 952 | Ian Lynagh <igloo@earth.li>**20090722151048 |
|---|
| 953 | Rather than indirecting through an integer package |
|---|
| 954 | ] |
|---|
| 955 | [thenIO, bindIO, returnIO moved to GHC.Base |
|---|
| 956 | Simon Marlow <marlowsd@gmail.com>**20090722102219 |
|---|
| 957 | Ignore-this: 5d6c5988e0abab2c5169540aa8ddedb9 |
|---|
| 958 | ] |
|---|
| 959 | [remove unused $(HscIfaceFileVersion) |
|---|
| 960 | Simon Marlow <marlowsd@gmail.com>**20090720145053 |
|---|
| 961 | Ignore-this: d725cbbde3c68673e2342b370460d87f |
|---|
| 962 | ] |
|---|
| 963 | [Choose external names more predictably |
|---|
| 964 | Simon Marlow <marlowsd@gmail.com>**20090720144751 |
|---|
| 965 | Ignore-this: 17513bc93af646108f21bbed1c8f4a3a |
|---|
| 966 | |
|---|
| 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 |
|---|
| 970 | |
|---|
| 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). |
|---|
| 974 | |
|---|
| 975 | - less recompilation will be necessary after making changes |
|---|
| 976 | |
|---|
| 977 | - navigating Core might be a bit easier. |
|---|
| 978 | |
|---|
| 979 | unfortunately, compilation with -O still does not consistently produce |
|---|
| 980 | the same ABI. The simplifier sometimes does different things, |
|---|
| 981 | apparently. |
|---|
| 982 | |
|---|
| 983 | Names will be longer, but I can't see a way around that. |
|---|
| 984 | ] |
|---|
| 985 | [Use stable ordering in the dependencies |
|---|
| 986 | Simon Marlow <marlowsd@gmail.com>**20090717123449 |
|---|
| 987 | Ignore-this: e20bac233cf6f834e69c027ff60b5b50 |
|---|
| 988 | Fixes another cause of wobbly interface files and unnecessary recompilation. |
|---|
| 989 | ] |
|---|
| 990 | [fall back on libffi for 'foreign import "wrapper"' if necessary |
|---|
| 991 | Simon Marlow <marlowsd@gmail.com>**20090716134549 |
|---|
| 992 | Ignore-this: e1073e1ad77e720326865a6d3c4f3790 |
|---|
| 993 | ] |
|---|
| 994 | [Take account of GADTs when reporting patterm-match overlap |
|---|
| 995 | simonpj@microsoft.com**20090722050933 |
|---|
| 996 | Ignore-this: 7dcbdcb91021e83e6e6208a2e68c50c9 |
|---|
| 997 | |
|---|
| 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 |
|---|
| 1004 | |
|---|
| 1005 | f :: T Int -> Int |
|---|
| 1006 | f T1 = 3 |
|---|
| 1007 | f T3 = 4 |
|---|
| 1008 | |
|---|
| 1009 | Here, does not have any missing cases, despite omittting T2, because |
|---|
| 1010 | T2 :: T Bool. |
|---|
| 1011 | |
|---|
| 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. |
|---|
| 1015 | |
|---|
| 1016 | ] |
|---|
| 1017 | [Fix Trac #3382: desugaring of NPats |
|---|
| 1018 | simonpj@microsoft.com**20090720061226 |
|---|
| 1019 | Ignore-this: 4dccdaf2b7d6428141dcf174cb455a20 |
|---|
| 1020 | |
|---|
| 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. |
|---|
| 1024 | |
|---|
| 1025 | ] |
|---|
| 1026 | [Fix cleaning with the new integer changes |
|---|
| 1027 | Ian Lynagh <igloo@earth.li>**20090722142545] |
|---|
| 1028 | [Add integer-simple as a build option |
|---|
| 1029 | Ian Lynagh <igloo@earth.li>**20090722013137] |
|---|
| 1030 | [Tweak whitespace |
|---|
| 1031 | Ian Lynagh <igloo@earth.li>**20090719221303] |
|---|
| 1032 | [Add a -fwarn-dodgy-exports flag; fixes #1911 |
|---|
| 1033 | Ian Lynagh <igloo@earth.li>**20090719200124 |
|---|
| 1034 | This is used to control warnings that were previously unconditional. |
|---|
| 1035 | ] |
|---|
| 1036 | [Build terminfo if we /aren't/ on Windows, not if we /are/ |
|---|
| 1037 | Ian Lynagh <igloo@earth.li>**20090719111709] |
|---|
| 1038 | [Change how PACKAGES is constructed, so that everything gets cleaned properly |
|---|
| 1039 | Ian Lynagh <igloo@earth.li>**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 |
|---|
| 1042 | PACKAGES when CLEANING=YES. |
|---|
| 1043 | ] |
|---|
| 1044 | [temporarily turn off unused import warnings for the time library |
|---|
| 1045 | Ian Lynagh <igloo@earth.li>**20090718183445] |
|---|
| 1046 | [Follow the split directory rename in the GHC build system rules |
|---|
| 1047 | Ian Lynagh <igloo@earth.li>**20090718155618] |
|---|
| 1048 | [Fix Trac #3346: tcSimplify for LHS of RULES with type equalities |
|---|
| 1049 | simonpj@microsoft.com**20090717155722 |
|---|
| 1050 | Ignore-this: dfdd0f9a62d78d63276a4d558831099c |
|---|
| 1051 | ] |
|---|
| 1052 | [Add osuf to the name we use for the split dir |
|---|
| 1053 | Ian Lynagh <igloo@earth.li>**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. |
|---|
| 1057 | ] |
|---|
| 1058 | [Temporarily turn off unused-do-bind warnings for the time package |
|---|
| 1059 | Ian Lynagh <igloo@earth.li>**20090718134536] |
|---|
| 1060 | [Make ghc-cabal handle "Custom" Setup.hs files that have a configure script |
|---|
| 1061 | Ian Lynagh <igloo@earth.li>**20090718131555] |
|---|
| 1062 | [Add the time library, and support for libraries in tarballs |
|---|
| 1063 | Ian Lynagh <igloo@earth.li>**20090718121649] |
|---|
| 1064 | [Always serialise Int as 64bit values; fixes trac #3041 |
|---|
| 1065 | Ian Lynagh <igloo@earth.li>**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. |
|---|
| 1069 | ] |
|---|
| 1070 | [Remove some code that has always been commented out |
|---|
| 1071 | Ian Lynagh <igloo@earth.li>**20090717224100] |
|---|
| 1072 | [Allow mixed case in the LINE pragma; patch from squadette; fixes #1817 |
|---|
| 1073 | Ian Lynagh <igloo@earth.li>**20090717133522] |
|---|
| 1074 | [Comment only |
|---|
| 1075 | simonpj@microsoft.com**20090717120154 |
|---|
| 1076 | Ignore-this: f96b11e602fe4b311c1e466af9aa1908 |
|---|
| 1077 | ] |
|---|
| 1078 | [Add missing case for eq_note. |
|---|
| 1079 | t-peterj@microsoft.com**20090624134407] |
|---|
| 1080 | [Rename parameters to make debugging code compile. |
|---|
| 1081 | t-peterj@microsoft.com**20090626105440] |
|---|
| 1082 | [Comment fix: use the same variable names in the conclusion as in the premise. |
|---|
| 1083 | t-peterj@microsoft.com**20090618092235] |
|---|
| 1084 | [Use names like '$fOrdInt' for dfuns (and TF instances), rather than '$f21' |
|---|
| 1085 | Simon Marlow <marlowsd@gmail.com>**20090716125643 |
|---|
| 1086 | Ignore-this: d0b4632cf8ed9e05b67a19aa19ab3e19 |
|---|
| 1087 | |
|---|
| 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 |
|---|
| 1093 | |
|---|
| 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. |
|---|
| 1099 | |
|---|
| 1100 | Type family instances are handled in the same way, with the same |
|---|
| 1101 | disambiguation strategy. |
|---|
| 1102 | ] |
|---|
| 1103 | [Use a stable ordering for the export list in the interface |
|---|
| 1104 | Simon Marlow <marlowsd@gmail.com>**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. |
|---|
| 1109 | ] |
|---|
| 1110 | [whitespace only |
|---|
| 1111 | Simon Marlow <marlowsd@gmail.com>**20090716104217 |
|---|
| 1112 | Ignore-this: 38cff291d9ef15c30e3ed685ffc3c9f9 |
|---|
| 1113 | ] |
|---|
| 1114 | [refactor: use packageConfigId in place of mkPackageId . package |
|---|
| 1115 | Simon Marlow <marlowsd@gmail.com>**20090716104145 |
|---|
| 1116 | Ignore-this: f3d73e7bd1b307a67d26585c49f3d89f |
|---|
| 1117 | ] |
|---|
| 1118 | [Typo fixes, from Alexey Mahotkin |
|---|
| 1119 | Ian Lynagh <igloo@earth.li>**20090717010817] |
|---|
| 1120 | [Don't put all of $CFLAGS into $SRC_CC_OPTS |
|---|
| 1121 | Ian Lynagh <igloo@earth.li>**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. |
|---|
| 1125 | ] |
|---|
| 1126 | [Move showOpt into DynFlags |
|---|
| 1127 | Ian Lynagh <igloo@earth.li>**20090716005314] |
|---|
| 1128 | [Make the --info values printable with "ghc --print-foo"; trac #3122 |
|---|
| 1129 | Ian Lynagh <igloo@earth.li>**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. |
|---|
| 1134 | ] |
|---|
| 1135 | [Fix a flag name in the docs |
|---|
| 1136 | Ian Lynagh <igloo@earth.li>**20090714165943] |
|---|
| 1137 | [Add the -fno-shared-implib flag |
|---|
| 1138 | Ian Lynagh <igloo@earth.li>**20090714165631 |
|---|
| 1139 | Patch from |
|---|
| 1140 | Max Bolingbroke <batterseapower@hotmail.com> |
|---|
| 1141 | Rerecorded to avoid conflicts. |
|---|
| 1142 | ] |
|---|
| 1143 | [Derived Foldable instances should use Data.Foldable.foldr |
|---|
| 1144 | m.niloc@gmail.com**20090711130647 |
|---|
| 1145 | Ignore-this: e3eb841e9535a842a98bb1ae0532c6e8 |
|---|
| 1146 | ] |
|---|
| 1147 | [remove Solaris-specific hacks, now unnecessary |
|---|
| 1148 | Simon Marlow <marlowsd@gmail.com>**20090713083524 |
|---|
| 1149 | Ignore-this: 500077008e463532e0677ee82f5284bb |
|---|
| 1150 | ] |
|---|
| 1151 | [Simplify timestamp restoration |
|---|
| 1152 | Matthias Kilian <kili@outback.escape.de>**20090711100244 |
|---|
| 1153 | Ignore-this: 7eaede224befa6b5368c91b92366211 |
|---|
| 1154 | ] |
|---|
| 1155 | [FIX #3272 |
|---|
| 1156 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090714054559 |
|---|
| 1157 | Ignore-this: 225fe4d82d4eed02e9b1377687661bac |
|---|
| 1158 | ] |
|---|
| 1159 | [Fix warnings |
|---|
| 1160 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20090713092032 |
|---|
| 1161 | Ignore-this: 3631b87164fc54d82e3a02875dc08f7d |
|---|
| 1162 | ] |
|---|
| 1163 | [Separate length from data in DPH arrays |
|---|
| 1164 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20090713044212 |
|---|
| 1165 | Ignore-this: aa2cc3b5ae43bd2c493ce4b330c883cd |
|---|
| 1166 | ] |
|---|
| 1167 | [TFs: FIX #2203 (second half) |
|---|
| 1168 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090710064834 |
|---|
| 1169 | Ignore-this: 46a46feaa73f74feb08524b9e7547414 |
|---|
| 1170 | ] |
|---|
| 1171 | [TFs: Fix should_compile/Simple8 |
|---|
| 1172 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090710042728 |
|---|
| 1173 | Ignore-this: 471ab67e3df1c5245921be5286a45f93 |
|---|
| 1174 | ] |
|---|
| 1175 | [workaround new Cygwin bash CRLF behaviour |
|---|
| 1176 | Simon Marlow <marlowsd@gmail.com>**20090709132850 |
|---|
| 1177 | Ignore-this: 5cfa2cc9d776ebe315c0f6ad7ab56d98 |
|---|
| 1178 | ] |
|---|
| 1179 | [Use /usr/bin/test if it exists, and fix test syntax. |
|---|
| 1180 | Simon Marlow <marlowsd@gmail.com>**20090709124616 |
|---|
| 1181 | Ignore-this: 83a75ba7c3ce2a1d02bddb7bfe414bfe |
|---|
| 1182 | Should fix Solaris build failures |
|---|
| 1183 | ] |
|---|
| 1184 | [Stop using -fno-warn-unused-do-bind when compiling the libraries |
|---|
| 1185 | Ian Lynagh <igloo@earth.li>**20090709160422 |
|---|
| 1186 | They're now fixed to not generate those warnings |
|---|
| 1187 | ] |
|---|
| 1188 | [Remove maybePrefixMatch, using stripPrefix instead |
|---|
| 1189 | Ian Lynagh <igloo@earth.li>**20090709160412 |
|---|
| 1190 | We already require GHC 6.8 to build, and that included stripPrefix |
|---|
| 1191 | in Data.List. |
|---|
| 1192 | ] |
|---|
| 1193 | [Allow mixed case pragmas; #1817. Patch from squadette |
|---|
| 1194 | Ian Lynagh <igloo@earth.li>**20090709153737 |
|---|
| 1195 | This patch allow you to use "Language CPP", or even "LaNgUaGe CPP", |
|---|
| 1196 | if you wish, as the manual claims you can. |
|---|
| 1197 | ] |
|---|
| 1198 | [don't create inplace/bin/ghc-<version> |
|---|
| 1199 | Simon Marlow <marlowsd@gmail.com>**20090706092031 |
|---|
| 1200 | Ignore-this: 2584d7bf56e77b27ca5b7b557c152c5e |
|---|
| 1201 | ] |
|---|
| 1202 | [Fix ignored-monadic-result warnings |
|---|
| 1203 | Ian Lynagh <igloo@earth.li>**20090707181857] |
|---|
| 1204 | [Fix an unused import warning |
|---|
| 1205 | Ian Lynagh <igloo@earth.li>**20090707144706] |
|---|
| 1206 | [Avoid unnecessary recompilation after ./configure (helps #3228) |
|---|
| 1207 | Simon Marlow <marlowsd@gmail.com>**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. |
|---|
| 1212 | ] |
|---|
| 1213 | [check for tabs in compiler/ghc.cabal.in (#3344) |
|---|
| 1214 | Simon Marlow <marlowsd@gmail.com>**20090707081845 |
|---|
| 1215 | Ignore-this: 6073db47eafd52e13e76c58ef738afcf |
|---|
| 1216 | ] |
|---|
| 1217 | [remove tabs |
|---|
| 1218 | Simon Marlow <marlowsd@gmail.com>**20090707081823 |
|---|
| 1219 | Ignore-this: 3d65831fc019f76cefac03291904842a |
|---|
| 1220 | ] |
|---|
| 1221 | [fix cleaning of libraries (now 'make clean' in libraries/* works again) |
|---|
| 1222 | Simon Marlow <marlowsd@gmail.com>**20090703114638 |
|---|
| 1223 | Ignore-this: b3af731d50ff5bfbd453f94aa40cb92c |
|---|
| 1224 | ] |
|---|
| 1225 | [FIX #2677 |
|---|
| 1226 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090707055442 |
|---|
| 1227 | Ignore-this: e224dd09d0d1c9ec4f3b46c7accb8d57 |
|---|
| 1228 | ] |
|---|
| 1229 | [Fix unused import warnings |
|---|
| 1230 | Ian Lynagh <igloo@earth.li>**20090707143216] |
|---|
| 1231 | [Fix unused import warnings |
|---|
| 1232 | Ian Lynagh <igloo@earth.li>**20090707133537] |
|---|
| 1233 | [When exporting F(..), all the children of F are also exported |
|---|
| 1234 | Ian Lynagh <igloo@earth.li>**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. |
|---|
| 1240 | ] |
|---|
| 1241 | [Remove unused imports |
|---|
| 1242 | Ian Lynagh <igloo@earth.li>**20090707121548] |
|---|
| 1243 | [Major patch to fix reporting of unused imports |
|---|
| 1244 | simonpj@microsoft.com**20090706112503 |
|---|
| 1245 | Ignore-this: 3b5ecdd880474493d73bdbdc0fa0b782 |
|---|
| 1246 | |
|---|
| 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 |
|---|
| 1250 | |
|---|
| 1251 | http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/UnusedImports |
|---|
| 1252 | |
|---|
| 1253 | The implementation is both easier to understand than before, and shorter |
|---|
| 1254 | too. |
|---|
| 1255 | |
|---|
| 1256 | Also fixed are #1148, #2267 |
|---|
| 1257 | |
|---|
| 1258 | Also fixed is -ddump-minimal imports, which now works properly, fixing |
|---|
| 1259 | Trac #1792. |
|---|
| 1260 | |
|---|
| 1261 | |
|---|
| 1262 | ] |
|---|
| 1263 | [Trim unused imports detected by new unused-import code |
|---|
| 1264 | simonpj@microsoft.com**20090706112201 |
|---|
| 1265 | Ignore-this: c6ca46d3a750c1cd1d58ea2c0de9f14f |
|---|
| 1266 | ] |
|---|
| 1267 | [Fix generational GC bug (#3348) |
|---|
| 1268 | Simon Marlow <marlowsd@gmail.com>**20090706112227 |
|---|
| 1269 | Ignore-this: 5938338efa0ad1550968c664a5a76f31 |
|---|
| 1270 | ] |
|---|
| 1271 | [Windows fixes to build system: use the 'find' and 'sort' found by configure |
|---|
| 1272 | simonpj@microsoft.com**20090706103413 |
|---|
| 1273 | Ignore-this: a96197917f388a637118bafefb427495 |
|---|
| 1274 | |
|---|
| 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. |
|---|
| 1278 | |
|---|
| 1279 | This patch fixes the ones I tripped over. There may be more. |
|---|
| 1280 | |
|---|
| 1281 | ] |
|---|
| 1282 | [Update driver/Makefile for the new build system |
|---|
| 1283 | Ian Lynagh <igloo@earth.li>**20090705204041] |
|---|
| 1284 | [Follow Cabal changes |
|---|
| 1285 | Ian Lynagh <igloo@earth.li>**20090705180414] |
|---|
| 1286 | [Update TODO list |
|---|
| 1287 | Ian Lynagh <igloo@earth.li>**20090705165009] |
|---|
| 1288 | [Make -fext-core a dynamic flag (it was a static flag) |
|---|
| 1289 | Ian Lynagh <igloo@earth.li>**20090705132420] |
|---|
| 1290 | [Update a few points about shared libs in other sections |
|---|
| 1291 | Duncan Coutts <duncan@well-typed.com>**20090704212212 |
|---|
| 1292 | And add links to the new shared libs section. |
|---|
| 1293 | ] |
|---|
| 1294 | [Document -dynload flag. Also add it and -shared to the flags reference. |
|---|
| 1295 | Duncan Coutts <duncan@well-typed.com>**20090704212119] |
|---|
| 1296 | [Add new section on using shared libs |
|---|
| 1297 | Duncan Coutts <duncan@well-typed.com>**20090704212003] |
|---|
| 1298 | [Document foreign import prim in the user guide |
|---|
| 1299 | Duncan 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. |
|---|
| 1302 | ] |
|---|
| 1303 | [For now, use -fno-warn-unused-do-bind when building the libraries |
|---|
| 1304 | Ian Lynagh <igloo@earth.li>**20090704210654] |
|---|
| 1305 | [Make changes to -fwarn-unused-do-bind and -fwarn-wrong-do-bind suggested by SPJ |
|---|
| 1306 | Max Bolingbroke <batterseapower@hotmail.com>**20090702150943 |
|---|
| 1307 | Ignore-this: 595368298d2e11623c0bd280ff89d8de |
|---|
| 1308 | ] |
|---|
| 1309 | [Support for -fwarn-unused-do-bind and -fwarn-wrong-do-bind, as per #3263 |
|---|
| 1310 | Max Bolingbroke <batterseapower@hotmail.com>**20090701200344 |
|---|
| 1311 | Ignore-this: 511117ffc10d4b656e530b751559b8b8 |
|---|
| 1312 | ] |
|---|
| 1313 | [Improved infrastructure for fast-rebuilding of parts of the tree |
|---|
| 1314 | Simon Marlow <marlowsd@gmail.com>**20090703074527 |
|---|
| 1315 | Ignore-this: ab348d0988d8bbc28c2b4babbd6bbfb8 |
|---|
| 1316 | |
|---|
| 1317 | e.g. |
|---|
| 1318 | |
|---|
| 1319 | cd compiler |
|---|
| 1320 | make FAST=YES stage1/build/HscTypes.o |
|---|
| 1321 | |
|---|
| 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'. |
|---|
| 1326 | ] |
|---|
| 1327 | [Fix Trac #3342: missed zonking in TcHsSyn |
|---|
| 1328 | simonpj@microsoft.com**20090702124331 |
|---|
| 1329 | Ignore-this: 9b97b2142dfc665b503f59df7c55dd17 |
|---|
| 1330 | |
|---|
| 1331 | The type in a ViewPat wasn't being zonked. Easily fixed. |
|---|
| 1332 | |
|---|
| 1333 | ] |
|---|
| 1334 | [Type synonym families may be nullary |
|---|
| 1335 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090702084826 |
|---|
| 1336 | Ignore-this: bcfe6ed62c901206daf5a5088890bbea |
|---|
| 1337 | ] |
|---|
| 1338 | [New syntax for GADT-style record declarations, and associated refactoring |
|---|
| 1339 | simonpj@microsoft.com**20090702094657 |
|---|
| 1340 | Ignore-this: bd9817230d3773b3b01fae3d7f04c57d |
|---|
| 1341 | |
|---|
| 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. |
|---|
| 1348 | |
|---|
| 1349 | The old form is still allowed, but give a deprecation warning. |
|---|
| 1350 | |
|---|
| 1351 | When we remove the old form we'll also get rid of the one reduce/reduce |
|---|
| 1352 | error in the grammar. Hurrah! |
|---|
| 1353 | |
|---|
| 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. |
|---|
| 1358 | |
|---|
| 1359 | ConDecl has record syntax, but it was not being used consistently, so I |
|---|
| 1360 | pushed that through the compiler. |
|---|
| 1361 | |
|---|
| 1362 | ] |
|---|
| 1363 | [White space only |
|---|
| 1364 | simonpj@microsoft.com**20090702094627 |
|---|
| 1365 | Ignore-this: 19f654cbf371c8dcc6517fd4934855b4 |
|---|
| 1366 | ] |
|---|
| 1367 | [Comments only |
|---|
| 1368 | simonpj@microsoft.com**20090702094531 |
|---|
| 1369 | Ignore-this: 384fc2729c7c50a1680775a1f9ff89e4 |
|---|
| 1370 | ] |
|---|
| 1371 | [Look through Notes when matching |
|---|
| 1372 | simonpj@microsoft.com**20090702094444 |
|---|
| 1373 | Ignore-this: 7daea81e905ec6061d3e0fd588d7e61b |
|---|
| 1374 | ] |
|---|
| 1375 | [FIX #3197 |
|---|
| 1376 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090702070905 |
|---|
| 1377 | Ignore-this: ebf829f0ae025e82bccdfa4345828ffe |
|---|
| 1378 | ] |
|---|
| 1379 | [Fix #2197 (properly this time) |
|---|
| 1380 | Simon Marlow <marlowsd@gmail.com>**20090701122354 |
|---|
| 1381 | Ignore-this: 39b6e4b0bcdd8c2f4660f976b7db768d |
|---|
| 1382 | |
|---|
| 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 |
|---|
| 1387 | ] |
|---|
| 1388 | [make GhcProfiled work, and add a "prof" flavour to build.mk |
|---|
| 1389 | Simon Marlow <marlowsd@gmail.com>**20090701114211 |
|---|
| 1390 | Ignore-this: 386d347e4ad8b6c2bd40a2ba7da31ba6 |
|---|
| 1391 | |
|---|
| 1392 | Building a profiled GHC is as simple as adding |
|---|
| 1393 | |
|---|
| 1394 | GhcLibWays += p |
|---|
| 1395 | GhcProfiled = YES |
|---|
| 1396 | |
|---|
| 1397 | to your build.mk and saying 'make'. Then you have a profiled |
|---|
| 1398 | inplace/bin/ghc-stage2. |
|---|
| 1399 | ] |
|---|
| 1400 | [remove unnecessary $(RM)s |
|---|
| 1401 | Simon Marlow <marlowsd@gmail.com>**20090701110609 |
|---|
| 1402 | Ignore-this: f326ec8931d0d484a66b67ce1270cc6e |
|---|
| 1403 | ] |
|---|
| 1404 | ['make html' in a library builds the Haddock docs |
|---|
| 1405 | Simon Marlow <marlowsd@gmail.com>**20090630111137 |
|---|
| 1406 | Ignore-this: 781bf10e2d4bca23b7f70c6f0465d120 |
|---|
| 1407 | ] |
|---|
| 1408 | [fix GC bug introduced with the C finalizer support |
|---|
| 1409 | Simon Marlow <marlowsd@gmail.com>**20090630080834 |
|---|
| 1410 | Ignore-this: 3567e3adb5ae4a5dcbce81733487f348 |
|---|
| 1411 | ] |
|---|
| 1412 | [Fix #3319, and do various tidyups at the same time |
|---|
| 1413 | Simon 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 |
|---|
| 1418 | ] |
|---|
| 1419 | [rename cache variable to keep recent autoconfs happy |
|---|
| 1420 | Ross Paterson <ross@soi.city.ac.uk>**20090626131410 |
|---|
| 1421 | Ignore-this: 187091bbe78f2b14402162acfb98180f |
|---|
| 1422 | ] |
|---|
| 1423 | [TAG 2009-06-25 |
|---|
| 1424 | Ian Lynagh <igloo@earth.li>**20090625155528] |
|---|
| 1425 | [TAG 2009-06-25 |
|---|
| 1426 | Ian Lynagh <igloo@earth.li>**20090625155514] |
|---|
| 1427 | [Add a configure test for whether or not __mingw_vfprintf exists |
|---|
| 1428 | Ian Lynagh <igloo@earth.li>**20090627150501] |
|---|
| 1429 | [Add buildinfo files to the bindist |
|---|
| 1430 | Ian Lynagh <igloo@earth.li>**20090625132220] |
|---|
| 1431 | [Fix Trac #3323: naughty record selectors again |
|---|
| 1432 | simonpj@microsoft.com**20090625072340 |
|---|
| 1433 | Ignore-this: 5ea70e631a2104ae7bf139f89a91a63a |
|---|
| 1434 | |
|---|
| 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 |
|---|
| 1438 | |
|---|
| 1439 | you'll need to rebuild all .hi files |
|---|
| 1440 | |
|---|
| 1441 | That said, the fix is easy. |
|---|
| 1442 | |
|---|
| 1443 | ] |
|---|
| 1444 | [propagate the result of atomically properly (fixes #3049) |
|---|
| 1445 | Simon Marlow <marlowsd@gmail.com>**20090624141530 |
|---|
| 1446 | Ignore-this: 419d29c24d280799e44ee8248f27c606 |
|---|
| 1447 | ] |
|---|
| 1448 | [add debug_p and thr_debug_p to $(ALL_WAYS) |
|---|
| 1449 | Simon Marlow <marlowsd@gmail.com>**20090624110255 |
|---|
| 1450 | Ignore-this: 6f4aebb8b276b8ec5d77ae6a809b0a6b |
|---|
| 1451 | ] |
|---|
| 1452 | [Fix buffering problem when GHCi is using the new IO library |
|---|
| 1453 | Simon 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. |
|---|
| 1458 | |
|---|
| 1459 | This should fix those ghci test failures that sprung up in full |
|---|
| 1460 | testsuite runs recently. |
|---|
| 1461 | ] |
|---|
| 1462 | [Optimise the %.hi : %.o rule |
|---|
| 1463 | Simon 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. |
|---|
| 1469 | |
|---|
| 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). |
|---|
| 1474 | |
|---|
| 1475 | The comments in this file now describe various versions of the rule |
|---|
| 1476 | that don't work. |
|---|
| 1477 | ] |
|---|
| 1478 | [fix comment |
|---|
| 1479 | Simon Marlow <marlowsd@gmail.com>**20090622145249 |
|---|
| 1480 | Ignore-this: 17950b7877d90170ea3fd12f98a9fe02 |
|---|
| 1481 | ] |
|---|
| 1482 | [Make C and CMM objects way-dependent |
|---|
| 1483 | Ian 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. |
|---|
| 1486 | ] |
|---|
| 1487 | [Add boot-pkgs and packages to the source dists |
|---|
| 1488 | Ian Lynagh <igloo@earth.li>**20090623224516] |
|---|
| 1489 | [follow change in System.Posix.Internals.c_open |
|---|
| 1490 | Simon Marlow <marlowsd@gmail.com>**20090622140724 |
|---|
| 1491 | Ignore-this: 1cc3370defcfbbd2ccec1f6aba193e6 |
|---|
| 1492 | ] |
|---|
| 1493 | [fix 'make 1' |
|---|
| 1494 | Simon Marlow <marlowsd@gmail.com>**20090617140657 |
|---|
| 1495 | Ignore-this: 16ba87f7ffc7dd8bd4b738ed9f843687 |
|---|
| 1496 | ] |
|---|
| 1497 | [remove unused cruft |
|---|
| 1498 | Simon Marlow <marlowsd@gmail.com>**20090603143348 |
|---|
| 1499 | Ignore-this: 4daebb56f61c4391823c12a2705135 |
|---|
| 1500 | ] |
|---|
| 1501 | [Fix the GHCi debugger so that it can recognise Integers again |
|---|
| 1502 | Ian Lynagh <igloo@earth.li>**20090623001946] |
|---|
| 1503 | [Follow Integer changes |
|---|
| 1504 | Ian Lynagh <igloo@earth.li>**20090622224423] |
|---|
| 1505 | [Add the integer package |
|---|
| 1506 | Ian Lynagh <igloo@earth.li>**20090622221716 |
|---|
| 1507 | integer-gmp's Integer is now wrapped by an Integer type in integer. |
|---|
| 1508 | ] |
|---|
| 1509 | [Add a couple more symbols to the Linker.c table |
|---|
| 1510 | Ian Lynagh <igloo@earth.li>**20090622144443 |
|---|
| 1511 | Fixes ghci loading gmp on Windows |
|---|
| 1512 | ] |
|---|
| 1513 | [The IO type has moved to GHC.Types in ghc-prim |
|---|
| 1514 | Ian Lynagh <igloo@earth.li>**20090620155154] |
|---|
| 1515 | [Fix #3132: a case of bogus code generation |
|---|
| 1516 | Simon Marlow <marlowsd@gmail.com>**20090618090718 |
|---|
| 1517 | Ignore-this: 7c9f7d649ea6baf9422c97f6c95ecc81 |
|---|
| 1518 | ] |
|---|
| 1519 | [Fix the way in the +RTS --info output |
|---|
| 1520 | Ian Lynagh <igloo@earth.li>**20090620142600] |
|---|
| 1521 | [Set DELETE_ON_ERROR in ghc.mk |
|---|
| 1522 | Ian Lynagh <igloo@earth.li>**20090617121806] |
|---|
| 1523 | [makefile tweak |
|---|
| 1524 | Ian Lynagh <igloo@earth.li>**20090617121711] |
|---|
| 1525 | [Add an _EXTRA_OBJS variable when linking packages |
|---|
| 1526 | Ian Lynagh <igloo@earth.li>**20090616231750] |
|---|
| 1527 | [Fix the ghci wrapper |
|---|
| 1528 | Ian Lynagh <igloo@earth.li>**20090616182501 |
|---|
| 1529 | The ${1+"$@"} was being evaluated by make, rather than being escaped. |
|---|
| 1530 | ] |
|---|
| 1531 | [Remove more GMP bits |
|---|
| 1532 | Ian Lynagh <igloo@earth.li>**20090616173712] |
|---|
| 1533 | [Add a #endif back that was accidentally removed from package.conf.in |
|---|
| 1534 | Ian Lynagh <igloo@earth.li>**20090616170417] |
|---|
| 1535 | [Fix #3279, #3288: fix crash encountered when calling unblock inside unsafePerformIO |
|---|
| 1536 | Simon Marlow <marlowsd@gmail.com>**20090616152455 |
|---|
| 1537 | Ignore-this: 79b89712df9f87b239c41e469c8745c8 |
|---|
| 1538 | See comments for details |
|---|
| 1539 | ] |
|---|
| 1540 | [drop packedstring; it is no longer required by template-haskell |
|---|
| 1541 | Simon Marlow <marlowsd@gmail.com>**20090518120957 |
|---|
| 1542 | Ignore-this: bd2e52eac8372b53a65e9dbd0d8ae46f |
|---|
| 1543 | ] |
|---|
| 1544 | [suggest "cd <dir>; make help" |
|---|
| 1545 | Simon Marlow <marlowsd@gmail.com>**20090616085708 |
|---|
| 1546 | Ignore-this: 4ea0fcb9ab613b1b29daaf4881f8edb6 |
|---|
| 1547 | ] |
|---|
| 1548 | [Add support for 'make help' in subdirectories |
|---|
| 1549 | Simon Marlow <marlowsd@gmail.com>**20090616085341 |
|---|
| 1550 | Ignore-this: 7a3f80690e8e9a9094096aa4cfecfa8b |
|---|
| 1551 | Including help for directory-specific targets, such as 'make 1' in ghc |
|---|
| 1552 | ] |
|---|
| 1553 | [mention 'make {html,ps,pdf}' |
|---|
| 1554 | Simon Marlow <marlowsd@gmail.com>**20090616085302 |
|---|
| 1555 | Ignore-this: af8e9abe23a903a14e99711b631abc1d |
|---|
| 1556 | ] |
|---|
| 1557 | [eliminate "warning: overriding commnds..." from make when we're cleaning |
|---|
| 1558 | Simon Marlow <marlowsd@gmail.com>**20090616084451 |
|---|
| 1559 | Ignore-this: 1ac620ad71d6e89313f544be1d94f6c3 |
|---|
| 1560 | ] |
|---|
| 1561 | [Add 'make help', displaying a list of useful make targets |
|---|
| 1562 | Simon Marlow <marlowsd@gmail.com>**20090615140008 |
|---|
| 1563 | Ignore-this: e6aae72e011eb668bbb2cff677c11a02 |
|---|
| 1564 | ] |
|---|
| 1565 | [Add 'make fast' which omits deps (for a library) and some of the phases |
|---|
| 1566 | Simon Marlow <marlowsd@gmail.com>**20090615135801 |
|---|
| 1567 | Ignore-this: ec6f7a63fbfd4d6881f0dc2931705da9 |
|---|
| 1568 | ] |
|---|
| 1569 | [add the missing final row of dashes in the success message |
|---|
| 1570 | Simon Marlow <marlowsd@gmail.com>**20090615135716 |
|---|
| 1571 | Ignore-this: c173af64e8bfb4e50e2fa377c44031d8 |
|---|
| 1572 | ] |
|---|
| 1573 | ['make 1' in libraries builds just the stage1 libs |
|---|
| 1574 | Simon Marlow <marlowsd@gmail.com>**20090615135651 |
|---|
| 1575 | Ignore-this: 50d35c045f56575de99c4c8a644bd538 |
|---|
| 1576 | i.e. not dph, and hence not stage2 |
|---|
| 1577 | ] |
|---|
| 1578 | [add 'make stage1_libs', to make just the stage 1 libs |
|---|
| 1579 | Simon Marlow <marlowsd@gmail.com>**20090615135532 |
|---|
| 1580 | Ignore-this: 5bf5f3ff554f47fd6e22dd13a1729c2d |
|---|
| 1581 | i.e. not dph, and hence not the stage 2 compiler. |
|---|
| 1582 | ] |
|---|
| 1583 | [Make sure we aren't passing -Werror in the CFLAGS for configure scripts |
|---|
| 1584 | Ian 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. |
|---|
| 1588 | ] |
|---|
| 1589 | [copyFileWithHeader: use binary Handles |
|---|
| 1590 | Simon Marlow <marlowsd@gmail.com>**20090615110545 |
|---|
| 1591 | Ignore-this: ae9bb5087317a20b9caefec9419c4a69 |
|---|
| 1592 | Fixes failure when Haddocking Data.Monoid in libraries/base |
|---|
| 1593 | ] |
|---|
| 1594 | [Pass CFLAGS and LDFLAGS to configure scripts |
|---|
| 1595 | Ian Lynagh <igloo@earth.li>**20090615201604] |
|---|
| 1596 | [.cmm rules need to depend on $$($1_$2_HC_DEP), not $$($1_$2_HC) |
|---|
| 1597 | Ian Lynagh <igloo@earth.li>**20090615133357] |
|---|
| 1598 | [Move gmp into libraries/integer-gmp |
|---|
| 1599 | Ian Lynagh <igloo@earth.li>**20090614183150] |
|---|
| 1600 | [Stop building the rts against gmp |
|---|
| 1601 | Duncan Coutts <duncan@well-typed.com>**20090613191956 |
|---|
| 1602 | Nothing from gmp is used in the rts anymore. |
|---|
| 1603 | ] |
|---|
| 1604 | [Remove the implementation of gmp primops from the rts |
|---|
| 1605 | Duncan Coutts <duncan@well-typed.com>**20090613191851] |
|---|
| 1606 | [Stop setting the gmp memory functions in the rts |
|---|
| 1607 | Duncan Coutts <duncan@well-typed.com>**20090613165841 |
|---|
| 1608 | and remove the implementations of stg(Alloc|Realloc|Dealloc)ForGMP |
|---|
| 1609 | ] |
|---|
| 1610 | [Remove the gmp/Integer primops from the compiler |
|---|
| 1611 | Duncan Coutts <duncan@well-typed.com>**20090613142410 |
|---|
| 1612 | The implementations are still in the rts. |
|---|
| 1613 | ] |
|---|
| 1614 | [Put the CMM objects in the GHCi library too |
|---|
| 1615 | Ian Lynagh <igloo@earth.li>**20090611162038] |
|---|
| 1616 | [Add rules for building .cmm files in libraries |
|---|
| 1617 | Ian Lynagh <igloo@earth.li>**20090611134057] |
|---|
| 1618 | [Exports a few rts things we need for cmm code in external packages |
|---|
| 1619 | Duncan 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. |
|---|
| 1622 | ] |
|---|
| 1623 | [Add and export rts_unsafeGetMyCapability from rts |
|---|
| 1624 | Duncan 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. |
|---|
| 1637 | ] |
|---|
| 1638 | [Require GHCForeignImportPrim for "foreign import prim" |
|---|
| 1639 | Duncan 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. |
|---|
| 1642 | ] |
|---|
| 1643 | [Add missing StgPrimCallOp case in repCCallConv |
|---|
| 1644 | Duncan Coutts <duncan@well-typed.com>**20090611165905 |
|---|
| 1645 | We don't handle "foreign import prim" in TH stuff. |
|---|
| 1646 | ] |
|---|
| 1647 | [Add missing StgPrimCallOp case to isSimpleOp |
|---|
| 1648 | Ian Lynagh <igloo@earth.li>**20090611122727] |
|---|
| 1649 | [Reverse the safe/unsafe requirement on foreign import prim |
|---|
| 1650 | Duncan 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). |
|---|
| 1655 | ] |
|---|
| 1656 | [Add PrimCall to the STG layer and update Core -> STG translation |
|---|
| 1657 | Duncan 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. |
|---|
| 1665 | ] |
|---|
| 1666 | [Desugaring for "foreign import prim" |
|---|
| 1667 | Duncan 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. |
|---|
| 1678 | ] |
|---|
| 1679 | [Typechecking for "foreign import prim" |
|---|
| 1680 | Duncan 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. |
|---|
| 1690 | ] |
|---|
| 1691 | [Lexing and parsing for "foreign import prim" |
|---|
| 1692 | Duncan 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. |
|---|
| 1695 | ] |
|---|
| 1696 | [Add new FFI calling convention "prim" |
|---|
| 1697 | Duncan 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. |
|---|
| 1700 | ] |
|---|
| 1701 | [Include runghc and unlit in bindists |
|---|
| 1702 | Ian Lynagh <igloo@earth.li>**20090613161707] |
|---|
| 1703 | [Improve bindist testing |
|---|
| 1704 | Ian Lynagh <igloo@earth.li>**20090613161516 |
|---|
| 1705 | We now also test runghc and unlit |
|---|
| 1706 | ] |
|---|
| 1707 | [Remove the haskeline-specific hacks from ghc-cabal |
|---|
| 1708 | Ian 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. |
|---|
| 1712 | ] |
|---|
| 1713 | [Remove library buildinfo files when cleaning |
|---|
| 1714 | Ian Lynagh <igloo@earth.li>**20090612233818] |
|---|
| 1715 | [Update symbol names; fixes the build on OSX |
|---|
| 1716 | Ian Lynagh <igloo@earth.li>**20090612194029] |
|---|
| 1717 | [don't check for stack underflow if we just had an overflow |
|---|
| 1718 | Simon Marlow <marlowsd@gmail.com>**20090610104748 |
|---|
| 1719 | Ignore-this: 1c52dd362ec23bdec26012c23d5049e6 |
|---|
| 1720 | ] |
|---|
| 1721 | [pprExpr: don't add extra parens around [a..b] in an argument position |
|---|
| 1722 | Simon Marlow <marlowsd@gmail.com>**20090608082705 |
|---|
| 1723 | Ignore-this: b0e25aa489a313535234571d9d8633a8 |
|---|
| 1724 | test is tcfail205 |
|---|
| 1725 | ] |
|---|
| 1726 | [Changes for the new IO library, mainly base-package modules moving around |
|---|
| 1727 | Simon Marlow <marlowsd@gmail.com>**20090529131822 |
|---|
| 1728 | Ignore-this: 7c542c1d82b18500118b8b198c9e2be0 |
|---|
| 1729 | ] |
|---|
| 1730 | [Deprecate the threadsafe kind of foreign import |
|---|
| 1731 | Duncan Coutts <duncan@well-typed.com>**20090611123441] |
|---|
| 1732 | [Remove __encodeDouble and __encodeFloat from the rts |
|---|
| 1733 | Duncan Coutts <duncan@well-typed.com>**20090611154852 |
|---|
| 1734 | They now live in the integer-gmp package. |
|---|
| 1735 | ] |
|---|
| 1736 | [Add recently added lib dirs to the darcs boring file |
|---|
| 1737 | Duncan Coutts <duncan@well-typed.com>**20090611112824] |
|---|
| 1738 | [Fix the compiler-hs-dependency's |
|---|
| 1739 | Ian 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. |
|---|
| 1743 | ] |
|---|
| 1744 | [Doc building is now controlled by sensible variables |
|---|
| 1745 | Ian Lynagh <igloo@earth.li>**20090611162858] |
|---|
| 1746 | [HC bootstrapping now works |
|---|
| 1747 | Ian Lynagh <igloo@earth.li>**20090611162756] |
|---|
| 1748 | [bindists are now done |
|---|
| 1749 | Ian Lynagh <igloo@earth.li>**20090611162730] |
|---|
| 1750 | [Add some $s to rules/build-package.mk for consistency |
|---|
| 1751 | Ian Lynagh <igloo@earth.li>**20090611130144] |
|---|
| 1752 | [Fix the flag used to force linking when we are making a shared library |
|---|
| 1753 | Duncan 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. |
|---|
| 1758 | ] |
|---|
| 1759 | [Check we're not using stdcall in foreign export on unsupported platforms |
|---|
| 1760 | Duncan Coutts <duncan@well-typed.com>**20090608145509 |
|---|
| 1761 | It's already checked for foreign import, but was missing for export. |
|---|
| 1762 | ] |
|---|
| 1763 | [Remove the various mp registers from the StgRegTable |
|---|
| 1764 | Duncan Coutts <duncan@well-typed.com>**20090610173609 |
|---|
| 1765 | No longer need them as temp vars in the cmm primop implementations. |
|---|
| 1766 | ] |
|---|
| 1767 | [Convert the gmp cmm primops to use local stack allocation |
|---|
| 1768 | Duncan 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. |
|---|
| 1772 | ] |
|---|
| 1773 | [Make killThread# cmm primop use local stack allocation |
|---|
| 1774 | Duncan 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. |
|---|
| 1779 | ] |
|---|
| 1780 | [Make Windows bindists and installers work in the new build system |
|---|
| 1781 | Ian Lynagh <igloo@earth.li>**20090610181825] |
|---|
| 1782 | [Change GHC_OPTIONS to OPTIONS_GHC |
|---|
| 1783 | Ian Lynagh <igloo@earth.li>**20090610124611] |
|---|
| 1784 | [Define _BSD_SOURCE in Stg.h |
|---|
| 1785 | Ian Lynagh <igloo@earth.li>**20090609121705 |
|---|
| 1786 | This means that, on Linux, we get functions like gamma defined when we |
|---|
| 1787 | #include math.h |
|---|
| 1788 | ] |
|---|
| 1789 | [Put "%expect 0" directives in the .y files |
|---|
| 1790 | Ian Lynagh <igloo@earth.li>**20090608203935 |
|---|
| 1791 | With the exception of GHC's main Parser.y(.pp), which has 2 |
|---|
| 1792 | reduce/reduce conflicts |
|---|
| 1793 | ] |
|---|
| 1794 | [Mention that generalised list comprehensions are enabled with -XTransformListComp |
|---|
| 1795 | simonpj@microsoft.com**20090605140009 |
|---|
| 1796 | Ignore-this: 4cb8b8153a2b072904c97a3bdd1ce05e |
|---|
| 1797 | ] |
|---|
| 1798 | [Update to libffi 3.0.8; fixes trac #3119 |
|---|
| 1799 | Ian Lynagh <igloo@earth.li>**20090605171704] |
|---|
| 1800 | [Fix the libffi Makefile |
|---|
| 1801 | Ian Lynagh <igloo@earth.li>**20090605160538] |
|---|
| 1802 | [Add a README saying where libffi tarballs come from |
|---|
| 1803 | Ian Lynagh <igloo@earth.li>**20090605160431] |
|---|
| 1804 | [ghc-pkg now takes a verbosity argument |
|---|
| 1805 | Ian Lynagh <igloo@earth.li>**20090605151544] |
|---|
| 1806 | [Follow Cabal changes |
|---|
| 1807 | Ian Lynagh <igloo@earth.li>**20090605131324] |
|---|
| 1808 | [Update the docs on how you bind unlifted types in let/where clauses |
|---|
| 1809 | Ian Lynagh <igloo@earth.li>**20090605122929] |
|---|
| 1810 | [Document -fwarn-lazy-unlifted-bindings |
|---|
| 1811 | Ian Lynagh <igloo@earth.li>**20090605122348] |
|---|
| 1812 | [Fix typo |
|---|
| 1813 | Ian Lynagh <igloo@earth.li>**20090605122048] |
|---|
| 1814 | [Make a proper Opt_WarnLazyUnliftedBindings warning, with a flag etc |
|---|
| 1815 | Ian Lynagh <igloo@earth.li>**20090605114316] |
|---|
| 1816 | [fix a warning |
|---|
| 1817 | Simon Marlow <marlowsd@gmail.com>**20090604093539 |
|---|
| 1818 | Ignore-this: 90713a7abf991d73c352cbd5a4012d5d |
|---|
| 1819 | ] |
|---|
| 1820 | [Lock the StablePtr table during GC |
|---|
| 1821 | Simon Marlow <marlowsd@gmail.com>**20090604090553 |
|---|
| 1822 | Ignore-this: 9e9705892b80a8226fd37df04d9c606d |
|---|
| 1823 | Allows hs_free_fun_ptr() to be called by a separate thread |
|---|
| 1824 | ] |
|---|
| 1825 | [fix $(TOP) |
|---|
| 1826 | Simon Marlow <marlowsd@gmail.com>**20090604084824 |
|---|
| 1827 | Ignore-this: abfe797881428381eebf6b2036a83a7c |
|---|
| 1828 | ] |
|---|
| 1829 | [remove a prototype that shouldn't be here |
|---|
| 1830 | Simon Marlow <marlowsd@gmail.com>**20090604084749 |
|---|
| 1831 | Ignore-this: a0fda8f38b5674fcfa04f30b01d4e846 |
|---|
| 1832 | ] |
|---|
| 1833 | [Fix ghc-cabal, so that GHC.Prim gets registered when we install |
|---|
| 1834 | Ian Lynagh <igloo@earth.li>**20090604124501] |
|---|
| 1835 | [Tighten up the DocBook XSL stylesheet test |
|---|
| 1836 | Simon Marlow <marlowsd@gmail.com>**20090603101244 |
|---|
| 1837 | Ignore-this: e68f96360250831634c77914afe11566 |
|---|
| 1838 | It wasn't failing even when the DTD was not found. |
|---|
| 1839 | ] |
|---|
| 1840 | [fix logic for BUID_DOCBOOK_HTML |
|---|
| 1841 | Simon Marlow <marlowsd@gmail.com>**20090603092313 |
|---|
| 1842 | Ignore-this: f255bbaf00713b998370c810e7ab75d3 |
|---|
| 1843 | ] |
|---|
| 1844 | [Allow RULES for seq, and exploit them |
|---|
| 1845 | simonpj@microsoft.com**20090603092956 |
|---|
| 1846 | Ignore-this: 7d72898475a3a76fea48c9a85ea2dfd |
|---|
| 1847 | |
|---|
| 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 |
|---|
| 1854 | |
|---|
| 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: |
|---|
| 1857 | |
|---|
| 1858 | RULE "f/seq" forall n. seq (f n) e = seq n e |
|---|
| 1859 | |
|---|
| 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. |
|---|
| 1864 | |
|---|
| 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. |
|---|
| 1867 | |
|---|
| 1868 | The patch looks bigger than it is, because |
|---|
| 1869 | a) Comments; see esp MkId Note [seqId magic] |
|---|
| 1870 | |
|---|
| 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.) |
|---|
| 1874 | |
|---|
| 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. |
|---|
| 1879 | |
|---|
| 1880 | |
|---|
| 1881 | ] |
|---|
| 1882 | [Remove old GUM/GranSim code |
|---|
| 1883 | Simon Marlow <marlowsd@gmail.com>**20090602140233 |
|---|
| 1884 | Ignore-this: 9c03eaaf072122118fa4d9cb6db684ca |
|---|
| 1885 | ] |
|---|
| 1886 | [tidy up autoconfiguration of docbook stuff |
|---|
| 1887 | Simon Marlow <marlowsd@gmail.com>**20090602134943 |
|---|
| 1888 | Ignore-this: 967773e506bb00fe19c08831fb4e03a6 |
|---|
| 1889 | |
|---|
| 1890 | * use --nonet, so xmllint and co don't go off trying to download |
|---|
| 1891 | stuff from the web |
|---|
| 1892 | |
|---|
| 1893 | * use the http:// reference for the stylesheet, so we don't have to |
|---|
| 1894 | search the filesystem for it (should speedup ./configure) |
|---|
| 1895 | ] |
|---|
| 1896 | [fix 'make sdist' |
|---|
| 1897 | Simon Marlow <marlowsd@gmail.com>**20090602121618 |
|---|
| 1898 | Ignore-this: 79da188afd5a22368e645a88c51237f1 |
|---|
| 1899 | ] |
|---|
| 1900 | [Fix Trac #3265: type operators in type/class declarations |
|---|
| 1901 | simonpj@microsoft.com**20090602133706 |
|---|
| 1902 | Ignore-this: 17bc1c59defa189311171155f36562ab |
|---|
| 1903 | |
|---|
| 1904 | We should accept these: |
|---|
| 1905 | |
|---|
| 1906 | data a :*: b = .... |
|---|
| 1907 | or |
|---|
| 1908 | data (:*:) a b = ... |
|---|
| 1909 | |
|---|
| 1910 | only if -XTypeOperators is in force. And similarly class decls. |
|---|
| 1911 | |
|---|
| 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. |
|---|
| 1915 | |
|---|
| 1916 | ] |
|---|
| 1917 | [Merge the TODO lists in ghc.mk |
|---|
| 1918 | Ian Lynagh <igloo@earth.li>**20090603121209] |
|---|
| 1919 | [Remove the unused remains of __decodeFloat |
|---|
| 1920 | Ian Lynagh <igloo@earth.li>**20090602182211] |
|---|
| 1921 | [Add a comment about why RM and RM_OPTS are not in config.mk |
|---|
| 1922 | Ian Lynagh <igloo@earth.li>**20090602124700] |
|---|
| 1923 | [Follow the change in RM's definition in distrib/Makefile-bin-vars.in |
|---|
| 1924 | Ian Lynagh <igloo@earth.li>**20090602124644] |
|---|
| 1925 | [Add a section "Multi-threading and the FFI" |
|---|
| 1926 | Simon Marlow <marlowsd@gmail.com>**20090602102352 |
|---|
| 1927 | Ignore-this: 767a942fa119cd1ea2eb13584667ac27 |
|---|
| 1928 | and collect all the information about multi-threaded FFI use into it. |
|---|
| 1929 | ] |
|---|
| 1930 | [emit a helpful message if you say 'make html' and BUILD_DOCBOOK_HTML=NO |
|---|
| 1931 | Simon Marlow <marlowsd@gmail.com>**20090602095936 |
|---|
| 1932 | Ignore-this: a50f9799cc1ff7a5b7e1b0d9386ca3ef |
|---|
| 1933 | ] |
|---|
| 1934 | [mention documentation tools in the summary; tidy up formatting |
|---|
| 1935 | Simon Marlow <marlowsd@gmail.com>**20090602090345 |
|---|
| 1936 | Ignore-this: 6227ba9fc0f97b3cf796785356a10b37 |
|---|
| 1937 | ] |
|---|
| 1938 | [depend on mk/project.mk appropriately |
|---|
| 1939 | Simon Marlow <marlowsd@gmail.com>**20090529151934 |
|---|
| 1940 | Ignore-this: 17517fcc36b4cafc1c4337a356e4a88c |
|---|
| 1941 | ] |
|---|
| 1942 | [fix comment |
|---|
| 1943 | Simon Marlow <marlowsd@gmail.com>**20090529113028 |
|---|
| 1944 | Ignore-this: 1391a669e3d253b3174ffae0970eee89 |
|---|
| 1945 | ] |
|---|
| 1946 | [Use -w when compiling libffi, to stop -Werror failures |
|---|
| 1947 | Ian Lynagh <igloo@earth.li>**20090602113408] |
|---|
| 1948 | [Unquote a $(LN_S) in ghc/ghc.mk |
|---|
| 1949 | Ian Lynagh <igloo@earth.li>**20090530233356] |
|---|
| 1950 | [$(XARGS) might include arguments, so don't quote it in makefiles |
|---|
| 1951 | Ian Lynagh <igloo@earth.li>**20090530233133] |
|---|
| 1952 | [Quote commands that we run, so they work if there are space in their paths |
|---|
| 1953 | Ian 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. |
|---|
| 1956 | ] |
|---|
| 1957 | [Remove some redundant code from hi-rule.mk |
|---|
| 1958 | Ian Lynagh <igloo@earth.li>**20090530193729] |
|---|
| 1959 | [make the clean_libraries target work, so you can "make clean" in libraries/ |
|---|
| 1960 | Ian Lynagh <igloo@earth.li>**20090530184750] |
|---|
| 1961 | [fix pprDynamicLinkerAsmLabel for Mac OS X x86_64 |
|---|
| 1962 | Austin Seipp <as@nijoruj.org>**20090523090901 |
|---|
| 1963 | Ignore-this: 2cef271f4ca27315bd8b0df9c1bc4343 |
|---|
| 1964 | ] |
|---|
| 1965 | [Make clean_libraries in the same way that we make all_libraries |
|---|
| 1966 | Ian Lynagh <igloo@earth.li>**20090529180150] |
|---|
| 1967 | [Tweak mk/sub-makefile.mk |
|---|
| 1968 | Ian Lynagh <igloo@earth.li>**20090529175748] |
|---|
| 1969 | [Implement -XMonoLocalBinds: a radical new flag |
|---|
| 1970 | simonpj@microsoft.com**20090529131137 |
|---|
| 1971 | Ignore-this: b52744bdde2e8ea52a9b6d4374a3e049 |
|---|
| 1972 | |
|---|
| 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. |
|---|
| 1976 | |
|---|
| 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. |
|---|
| 1981 | |
|---|
| 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. |
|---|
| 1987 | |
|---|
| 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 |
|---|
| 2014 | |
|---|
| 2015 | |
|---|
| 2016 | ] |
|---|
| 2017 | [don't shrink the stack smaller than the value set by +RTS -k<size> |
|---|
| 2018 | Simon Marlow <marlowsd@gmail.com>**20090529090827 |
|---|
| 2019 | Ignore-this: 4034b691895bc2fb3a1eaa2195a9ae31 |
|---|
| 2020 | ] |
|---|
| 2021 | [Fix bug in previous change: allocate the correct size |
|---|
| 2022 | Simon Marlow <marlowsd@gmail.com>**20090529090758 |
|---|
| 2023 | Ignore-this: b591ad70cdaed2def46fb8d046f63539 |
|---|
| 2024 | ] |
|---|
| 2025 | [Make haddocking depend on the library .a file |
|---|
| 2026 | simonpj@microsoft.com**20090529084514 |
|---|
| 2027 | Ignore-this: 233496beeea7a0ca0d8d21543c5050c7 |
|---|
| 2028 | |
|---|
| 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. |
|---|
| 2035 | |
|---|
| 2036 | This patch adds the missing dependency (thanks to Simon M) |
|---|
| 2037 | |
|---|
| 2038 | ] |
|---|
| 2039 | [Fix Trac #3259: expose 'lazy' only after generating interface files |
|---|
| 2040 | simonpj@microsoft.com**20090529072020 |
|---|
| 2041 | Ignore-this: 3c762bda546981c4b4f01d28b8586ff8 |
|---|
| 2042 | |
|---|
| 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. |
|---|
| 2045 | |
|---|
| 2046 | Here's the diagnosis, copied from the Trac ticket. par is defined |
|---|
| 2047 | in GHC.Conc thus: |
|---|
| 2048 | |
|---|
| 2049 | {-# INLINE par #-} |
|---|
| 2050 | par :: a -> b -> b |
|---|
| 2051 | par x y = case (par# x) of { _ -> lazy y } |
|---|
| 2052 | |
|---|
| 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. |
|---|
| 2058 | |
|---|
| 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. |
|---|
| 2062 | |
|---|
| 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. |
|---|
| 2068 | |
|---|
| 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. |
|---|
| 2072 | |
|---|
| 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. |
|---|
| 2075 | |
|---|
| 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. |
|---|
| 2080 | |
|---|
| 2081 | |
|---|
| 2082 | ] |
|---|
| 2083 | [Fix Trac #3262: suppress name-shadow warning for _names |
|---|
| 2084 | simonpj@microsoft.com**20090528152359 |
|---|
| 2085 | Ignore-this: 482ee7e5039987c53b2755c8f61f3fe |
|---|
| 2086 | |
|---|
| 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. |
|---|
| 2090 | |
|---|
| 2091 | ] |
|---|
| 2092 | [don't call Haskeline to read input when stdin is not a terminal |
|---|
| 2093 | Simon Marlow <marlowsd@gmail.com>**20090528152651 |
|---|
| 2094 | Ignore-this: 3810fe8dff7e0a8b4ec013f47e33cc4c |
|---|
| 2095 | ] |
|---|
| 2096 | [Fix handling of R_SPARC_UA32 relocations in linker |
|---|
| 2097 | Ben.Lippmeier@anu.edu.au**20090528080509 |
|---|
| 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. |
|---|
| 2101 | ] |
|---|
| 2102 | [Document the fact that Template Haskell type splices work |
|---|
| 2103 | simonpj@microsoft.com**20090528165443 |
|---|
| 2104 | Ignore-this: a3817bd84645acbe3c83ad04bbff06c3 |
|---|
| 2105 | ] |
|---|
| 2106 | [Improve printing of Orig RdrNames |
|---|
| 2107 | simonpj@microsoft.com**20090528165215 |
|---|
| 2108 | Ignore-this: a00c57daf826176dbec85402a7982ef4 |
|---|
| 2109 | |
|---|
| 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. |
|---|
| 2113 | |
|---|
| 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. |
|---|
| 2117 | |
|---|
| 2118 | ] |
|---|
| 2119 | [Print more nicely in -ddump-splices |
|---|
| 2120 | simonpj@microsoft.com**20090528165039 |
|---|
| 2121 | Ignore-this: ffa4855ac1e95e45a057acae85ca75db |
|---|
| 2122 | |
|---|
| 2123 | When you say -ddump-splices, the "before" expression is now |
|---|
| 2124 | |
|---|
| 2125 | *renamed* but not *typechecked" |
|---|
| 2126 | |
|---|
| 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 |
|---|
| 2131 | |
|---|
| 2132 | ] |
|---|
| 2133 | [Fix Trac #3261: make default types play nice with -Werror |
|---|
| 2134 | simonpj@microsoft.com**20090528164900 |
|---|
| 2135 | Ignore-this: c6167edcb5c537cb0f08151f649c3eb2 |
|---|
| 2136 | |
|---|
| 2137 | The trial-and-error for type defaults was not playing nicely with |
|---|
| 2138 | -Werror. The fix is simple. |
|---|
| 2139 | |
|---|
| 2140 | ] |
|---|
| 2141 | [Adjust error message slightly |
|---|
| 2142 | simonpj@microsoft.com**20090528164802 |
|---|
| 2143 | Ignore-this: c21f2ef9064fcf22f00e962f53a5f97 |
|---|
| 2144 | ] |
|---|
| 2145 | [White space only |
|---|
| 2146 | simonpj@microsoft.com**20090528164727 |
|---|
| 2147 | Ignore-this: 355873c67330176455bc7d698190d956 |
|---|
| 2148 | ] |
|---|
| 2149 | [Remove type-ambiguous (fromIntegral 0)::Int, replacing it with just 0 |
|---|
| 2150 | simonpj@microsoft.com**20090528164525 |
|---|
| 2151 | Ignore-this: f09a0e7a2b4de20867036b7c8ee6f1d2 |
|---|
| 2152 | |
|---|
| 2153 | This unnecessary ambiguity has been there for ages, and is now rejected |
|---|
| 2154 | by -Werror, after fixing #3261 |
|---|
| 2155 | |
|---|
| 2156 | ] |
|---|
| 2157 | [Move getMainFun to TcRnDriver, trim DynFlags imports |
|---|
| 2158 | simonpj@microsoft.com**20090528164436 |
|---|
| 2159 | Ignore-this: a0cf27e74a916c13c4df77190d2e14b0 |
|---|
| 2160 | ] |
|---|
| 2161 | [Comments only |
|---|
| 2162 | simonpj@microsoft.com**20090528164329 |
|---|
| 2163 | Ignore-this: 69b8edd4c3f8643ec9774a0f88af2c66 |
|---|
| 2164 | ] |
|---|
| 2165 | [Comments about naming for data constructors |
|---|
| 2166 | simonpj@microsoft.com**20090528164250 |
|---|
| 2167 | Ignore-this: 8c31cbf597211b318dab96f3c728ac71 |
|---|
| 2168 | ] |
|---|
| 2169 | [Remove dead code isHsVar |
|---|
| 2170 | simonpj@microsoft.com**20090528092750 |
|---|
| 2171 | Ignore-this: b19c8eb9f507e68d910515600a336e1c |
|---|
| 2172 | ] |
|---|
| 2173 | [Round stack size to a whole number of megablocks |
|---|
| 2174 | Simon Marlow <marlowsd@gmail.com>**20090528133440 |
|---|
| 2175 | Ignore-this: 6d7da9b80d7a6771365bd146201f102f |
|---|
| 2176 | This is not a bug fix, it just makes better use of memory |
|---|
| 2177 | ] |
|---|
| 2178 | [Fix #3156: ensure preconditions of splitLargeBlock() |
|---|
| 2179 | Simon Marlow <marlowsd@gmail.com>**20090528133357 |
|---|
| 2180 | Ignore-this: 5d7e7f345fe19123bf17aa1d2daa0e7b |
|---|
| 2181 | ] |
|---|
| 2182 | [fix it so that 'make' on its own works even if we're not building docs |
|---|
| 2183 | Simon Marlow <marlowsd@gmail.com>**20090528111608 |
|---|
| 2184 | Ignore-this: 92e9355de04733042403dc6814a3a146 |
|---|
| 2185 | ] |
|---|
| 2186 | [Comments only |
|---|
| 2187 | simonpj@microsoft.com**20090528075918 |
|---|
| 2188 | Ignore-this: 14112a7b5e4d0b3b8763ce72d01bba00 |
|---|
| 2189 | ] |
|---|
| 2190 | [Fix Trac #3013: multiple constructors in a GADT decl |
|---|
| 2191 | simonpj@microsoft.com**20090528075306 |
|---|
| 2192 | Ignore-this: fda39c50dd80e13d593e396133fd92c4 |
|---|
| 2193 | |
|---|
| 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 |
|---|
| 2199 | |
|---|
| 2200 | ] |
|---|
| 2201 | [Separate flags -XDeriveFunctor, -XDeriveFoldable, -XDeriveTraversable |
|---|
| 2202 | simonpj@microsoft.com**20090528075031 |
|---|
| 2203 | Ignore-this: b5b6ce32b6d4e847a6f58de17dd1af54 |
|---|
| 2204 | |
|---|
| 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. |
|---|
| 2208 | |
|---|
| 2209 | ] |
|---|
| 2210 | [Add a comment |
|---|
| 2211 | simonpj@microsoft.com**20090528072513 |
|---|
| 2212 | Ignore-this: d278c8d49b299e376a8dbcdd940e1cfa |
|---|
| 2213 | ] |
|---|
| 2214 | [Follow vreg/hreg patch in X86_64 NCG |
|---|
| 2215 | Ben.Lippmeier.anu.edu.au**20090527040101 |
|---|
| 2216 | Ignore-this: f11f3d8ebfc33d3c012ce8d2cb09d076 |
|---|
| 2217 | ] |
|---|
| 2218 | [Follow vreg/hreg patch in PPC NCG |
|---|
| 2219 | Ben.Lippmeier@anu.edu.au**20090526105522] |
|---|
| 2220 | [Follow vreg/hreg patch in x86 NCG |
|---|
| 2221 | Ben.Lippmeier@anu.edu.au**20090519095507 |
|---|
| 2222 | Ignore-this: c4303cc12ddbdd38606c16a7e2fbc56c |
|---|
| 2223 | ] |
|---|
| 2224 | [Don't try and coalesce RealReg->RealReg moves |
|---|
| 2225 | Ben.Lippmeier@anu.edu.au**20090519035528] |
|---|
| 2226 | [Split Reg into vreg/hreg and add register pairs |
|---|
| 2227 | Ben.Lippmeier@anu.edu.au**20090518014444 |
|---|
| 2228 | |
|---|
| 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. |
|---|
| 2239 | ] |
|---|
| 2240 | [SPARC NCG: Fix available regs for graph allocator |
|---|
| 2241 | Ben.Lippmeier@anu.edu.au**20090421014409] |
|---|
| 2242 | [Fix Trac #3221: renamer warnings for deriving clauses |
|---|
| 2243 | simonpj@microsoft.com**20090527182157 |
|---|
| 2244 | Ignore-this: a4a93f2928fd311c4950eb60277bf9e1 |
|---|
| 2245 | |
|---|
| 2246 | This patch arranges to gather the variables used by 'deriving' clauses, |
|---|
| 2247 | so that unused bindings are correctly reported. |
|---|
| 2248 | |
|---|
| 2249 | ] |
|---|
| 2250 | [Template Haskell: allow type splices |
|---|
| 2251 | simonpj@microsoft.com**20090527181242 |
|---|
| 2252 | Ignore-this: 8beb8ab4f5857967ff33a4877c8931b |
|---|
| 2253 | |
|---|
| 2254 | At last! Trac #1476 and #3177 |
|---|
| 2255 | |
|---|
| 2256 | This patch extends Template Haskell by allowing splices in |
|---|
| 2257 | types. For example |
|---|
| 2258 | |
|---|
| 2259 | f :: Int -> $(burble 3) |
|---|
| 2260 | |
|---|
| 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. |
|---|
| 2265 | |
|---|
| 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. |
|---|
| 2269 | |
|---|
| 2270 | |
|---|
| 2271 | |
|---|
| 2272 | ] |
|---|
| 2273 | [Template Haskell: improve lifting for strings |
|---|
| 2274 | simonpj@microsoft.com**20090527180840 |
|---|
| 2275 | Ignore-this: 296fa4ede64a87cc66b8c7af0e35b66f |
|---|
| 2276 | |
|---|
| 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. |
|---|
| 2280 | |
|---|
| 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 |
|---|
| 2286 | |
|---|
| 2287 | There an accompanying patch in the template-haskell package, |
|---|
| 2288 | adding Language.Haskell.TH.Syntax.liftString |
|---|
| 2289 | |
|---|
| 2290 | |
|---|
| 2291 | |
|---|
| 2292 | ] |
|---|
| 2293 | [Rename conDeclsNames to hsConDeclsNames, and export it |
|---|
| 2294 | simonpj@microsoft.com**20090527180032 |
|---|
| 2295 | Ignore-this: 304b8881445df43a7a98e17001500ba9 |
|---|
| 2296 | ] |
|---|
| 2297 | [Comments about wiredInIds |
|---|
| 2298 | simonpj@microsoft.com**20090527175603 |
|---|
| 2299 | Ignore-this: 9f0910d37e75f7a91807a3b2e5b2d608 |
|---|
| 2300 | ] |
|---|
| 2301 | [Wibble some comments to avoid haddock parse errors |
|---|
| 2302 | Ian Lynagh <igloo@earth.li>**20090526192953] |
|---|
| 2303 | [Add a haddock target, for just building the haddock docs |
|---|
| 2304 | Ian Lynagh <igloo@earth.li>**20090526190459] |
|---|
| 2305 | [Add some more $s to rules/haddock.mk for consistency |
|---|
| 2306 | Ian Lynagh <igloo@earth.li>**20090526184127] |
|---|
| 2307 | [Fix haddocking |
|---|
| 2308 | Ian Lynagh <igloo@earth.li>**20090526184034 |
|---|
| 2309 | We were looking at HADDOCK_DOCS instead of $$(HADDOCK_DOCS) |
|---|
| 2310 | ] |
|---|
| 2311 | [Make the sed in configure.ac more portable |
|---|
| 2312 | Ian Lynagh <igloo@earth.li>**20090525120021] |
|---|
| 2313 | [Remove legacy code that isn't used now that we require GHC >= 6.8 |
|---|
| 2314 | Ian Lynagh <igloo@earth.li>**20090524204412] |
|---|
| 2315 | [Remove unused variables |
|---|
| 2316 | Ian Lynagh <igloo@earth.li>**20090524135350] |
|---|
| 2317 | [Remove unused variables |
|---|
| 2318 | Ian Lynagh <igloo@earth.li>**20090524134753] |
|---|
| 2319 | [Be more precise about munging compiler/stage1/inplace-pkg-config |
|---|
| 2320 | Ian 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. |
|---|
| 2325 | ] |
|---|
| 2326 | [Use the more portable %lu rather than %zu |
|---|
| 2327 | Ian 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). |
|---|
| 2330 | ] |
|---|
| 2331 | [Clean libraries/bootstrapping.conf |
|---|
| 2332 | Ian Lynagh <igloo@earth.li>**20090524131454] |
|---|
| 2333 | [Fix warnings |
|---|
| 2334 | Ian Lynagh <igloo@earth.li>**20090523231438] |
|---|
| 2335 | [Fix warnings in genprimopcode |
|---|
| 2336 | Ian Lynagh <igloo@earth.li>**20090523222715] |
|---|
| 2337 | [Fix warnings in mkDerivedConstants |
|---|
| 2338 | Ian Lynagh <igloo@earth.li>**20090523215836] |
|---|
| 2339 | [Fix warnings in ghc-cabal |
|---|
| 2340 | Ian Lynagh <igloo@earth.li>**20090523213518] |
|---|
| 2341 | [Turn on warnings when validating |
|---|
| 2342 | Ian Lynagh <igloo@earth.li>**20090523213451] |
|---|
| 2343 | [Fix configure |
|---|
| 2344 | Ian Lynagh <igloo@earth.li>**20090523004231] |
|---|
| 2345 | [ghc_ge_607 is now always true |
|---|
| 2346 | Ian Lynagh <igloo@earth.li>**20090523001643] |
|---|
| 2347 | [Sanity check the platforms we are given |
|---|
| 2348 | Ian Lynagh <igloo@earth.li>**20090523000445] |
|---|
| 2349 | [Change how we find the host/build/target platforms |
|---|
| 2350 | Ian 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. |
|---|
| 2353 | |
|---|
| 2354 | When doing a port of GHC, you need to specify the platform you are |
|---|
| 2355 | porting to. |
|---|
| 2356 | |
|---|
| 2357 | The minimum version of GHC required is now 6.8. |
|---|
| 2358 | ] |
|---|
| 2359 | [remove old todo comment |
|---|
| 2360 | Simon Marlow <marlowsd@gmail.com>**20090520224427 |
|---|
| 2361 | Ignore-this: 7dc72333d7f84d12a581514da368caa7 |
|---|
| 2362 | ] |
|---|
| 2363 | [document -XUnicodeSyntax |
|---|
| 2364 | Simon Marlow <marlowsd@gmail.com>**20090520223647 |
|---|
| 2365 | Ignore-this: 343d54ebf27013c21e5dea1e8aab2740 |
|---|
| 2366 | ] |
|---|
| 2367 | [export sysErrorBelch |
|---|
| 2368 | Simon Marlow <marlowsd@gmail.com>**20090328191355] |
|---|
| 2369 | [ rm package.conf.inplace in distclean, not clean |
|---|
| 2370 | Simon Marlow <simonmar@microsoft.com>**20090506195216] |
|---|
| 2371 | [#2197: try to detect when GHCi is compiled with -prof and emit an error message |
|---|
| 2372 | Simon Marlow <simonmar@microsoft.com>**20090506194802] |
|---|
| 2373 | [fix typo |
|---|
| 2374 | Simon Marlow <simonmar@microsoft.com>**20090328211518] |
|---|
| 2375 | [Remove hacky on-demand building of libraries/*/ghc.mk, put it back in sh boot |
|---|
| 2376 | Simon 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). |
|---|
| 2382 | ] |
|---|
| 2383 | [Fix unregisterised bindists |
|---|
| 2384 | Ian Lynagh <igloo@earth.li>**20090521223519] |
|---|
| 2385 | [Pass CFLAGS and LDFLAGS to libffi's configure |
|---|
| 2386 | Ian Lynagh <igloo@earth.li>**20090521160210] |
|---|
| 2387 | [Don't overwrite the *OPTS/*Opts variables in mk/validate-settings.mk |
|---|
| 2388 | Ian Lynagh <igloo@earth.li>**20090521141938 |
|---|
| 2389 | Overwriting means we lose the -m64 on OS X 64. |
|---|
| 2390 | ] |
|---|
| 2391 | [Build and install gmp.h |
|---|
| 2392 | Ian Lynagh <igloo@earth.li>**20090521133614] |
|---|
| 2393 | [Clean gmp.h |
|---|
| 2394 | Ian Lynagh <igloo@earth.li>**20090521133606] |
|---|
| 2395 | [Need to pass gcc -m64 on amd64 OSX |
|---|
| 2396 | Ian Lynagh <igloo@earth.li>*-20090520170508] |
|---|
| 2397 | [Set C compiler and linker flags correctly for OS X 64 |
|---|
| 2398 | Ian Lynagh <igloo@earth.li>**20090521124459] |
|---|
| 2399 | [Fix #3201: "ar: Bad file number" build error with MSYS and SplitObjs=YES |
|---|
| 2400 | Simon Marlow <marlowsd@gmail.com>**20090521103131 |
|---|
| 2401 | Ignore-this: b86763ca5f36447f633a9b9a5f58ecf8 |
|---|
| 2402 | ] |
|---|
| 2403 | [fix warning (and validate) |
|---|
| 2404 | Simon Marlow <marlowsd@gmail.com>**20090521081932 |
|---|
| 2405 | Ignore-this: 4d9168fb4caca4ab84e3e06a4a94602 |
|---|
| 2406 | ] |
|---|
| 2407 | [don't clean GMP before validating (it rarely changes, and is slow to build) |
|---|
| 2408 | Simon Marlow <marlowsd@gmail.com>**20090521074840 |
|---|
| 2409 | Ignore-this: 752904e56363c197328079dbde9363f1 |
|---|
| 2410 | ] |
|---|
| 2411 | [remove a todo item (bug #2966 is fixed) |
|---|
| 2412 | Simon Marlow <marlowsd@gmail.com>**20090520130504 |
|---|
| 2413 | Ignore-this: 8c3c6cd3791aba3336e3e8052ceddab9 |
|---|
| 2414 | ] |
|---|
| 2415 | [When linking a shared library with --make, always do the link step |
|---|
| 2416 | Duncan 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. |
|---|
| 2422 | ] |
|---|
| 2423 | [Pass --enable-shared and --with-hscolour to ghc-cabal configure |
|---|
| 2424 | Duncan Coutts <duncan@well-typed.com>**20090519120953 |
|---|
| 2425 | It tried to do this already, but the make variable name was wrong. |
|---|
| 2426 | ] |
|---|
| 2427 | [Use shared lib mode -dynload deploy to build the rts and core shared libs |
|---|
| 2428 | Duncan 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. |
|---|
| 2432 | ] |
|---|
| 2433 | [Make -dynload sysdep mean to embed rpaths in shared libs as well as binaries |
|---|
| 2434 | Duncan 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. |
|---|
| 2440 | ] |
|---|
| 2441 | [Switch the default -dynload mode to SystemDependent |
|---|
| 2442 | Duncan 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. |
|---|
| 2445 | ] |
|---|
| 2446 | [Set the soname when creating a shared lib |
|---|
| 2447 | Duncan 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 |
|---|
| 2450 | ] |
|---|
| 2451 | [Keep C main separate from rts lib and link it in for standalone progs |
|---|
| 2452 | Duncan 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. |
|---|
| 2462 | ] |
|---|
| 2463 | [Remove old Windows-only implementation of keeping main outside the rts |
|---|
| 2464 | Duncan 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. |
|---|
| 2470 | ] |
|---|
| 2471 | [Fix silly make macro mistake in a rule used in the --enable-shared case |
|---|
| 2472 | Duncan Coutts <duncan@well-typed.com>**20090514184216] |
|---|
| 2473 | [Windows: load msvcrt and kernel32 manually |
|---|
| 2474 | Simon Marlow <marlowsd@gmail.com>**20090520124310 |
|---|
| 2475 | Ignore-this: ae3fc7bf3e07bd0c4b30f2f6e6e04a53 |
|---|
| 2476 | ] |
|---|
| 2477 | [Need to pass gcc -m64 on amd64 OSX |
|---|
| 2478 | Ian Lynagh <igloo@earth.li>**20090520224020] |
|---|
| 2479 | [OS X / amd64 fixes |
|---|
| 2480 | Ian Lynagh <igloo@earth.li>**20090520223610] |
|---|
| 2481 | [Fix the unregisterised build |
|---|
| 2482 | Ian Lynagh <igloo@earth.li>**20090520221046] |
|---|
| 2483 | [Build fix for amd64/OSX |
|---|
| 2484 | Ian Lynagh <igloo@earth.li>**20090520211705] |
|---|
| 2485 | [Fix building with the HEAD |
|---|
| 2486 | Ian Lynagh <igloo@earth.li>**20090520202532] |
|---|
| 2487 | [make [123] omits phases 1,2, and 3 |
|---|
| 2488 | Simon Marlow <marlowsd@gmail.com>**20090519083419 |
|---|
| 2489 | Ignore-this: 899fc1fb6707fde243e3a1e2221f768a |
|---|
| 2490 | ] |
|---|
| 2491 | [allow phases to be omitted by setting OMIT_PHASE_[123]=YES |
|---|
| 2492 | Simon Marlow <marlowsd@gmail.com>**20090519083350 |
|---|
| 2493 | Ignore-this: 4ac4a0ab2547dcccce5e2fdfe83525aa |
|---|
| 2494 | ] |
|---|
| 2495 | [fix a dependency: Makefile -> includes/Makefile |
|---|
| 2496 | Simon Marlow <marlowsd@gmail.com>**20090519083317 |
|---|
| 2497 | Ignore-this: 3447c85226202ae0130326ab011d3473 |
|---|
| 2498 | ] |
|---|
| 2499 | [Make -Odph imply -fsimplifier-phases=3 |
|---|
| 2500 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20090519055807 |
|---|
| 2501 | Ignore-this: 25d9f2ac3f89ebac487254313fcb1b3e |
|---|
| 2502 | ] |
|---|
| 2503 | [Add missing word, spotted by Tom Lokhorst |
|---|
| 2504 | Max Bolingbroke <batterseapower@hotmail.com>**20090518153314] |
|---|
| 2505 | [fix typo: TH.ModName -> TH.PkgName |
|---|
| 2506 | Simon Marlow <marlowsd@gmail.com>**20090518120457 |
|---|
| 2507 | Ignore-this: c52d36b33b0446a925156c5c4d47d373 |
|---|
| 2508 | ] |
|---|
| 2509 | [Fix #3236: emit a helpful error message when the RTS has not been initialised |
|---|
| 2510 | Simon Marlow <marlowsd@gmail.com>**20090518104108 |
|---|
| 2511 | Ignore-this: ff4b5e9c226832feb08b1e69e0bdbfcb |
|---|
| 2512 | ] |
|---|
| 2513 | [Fix #3207: add has_side_effects = True for lots of primops |
|---|
| 2514 | Simon Marlow <marlowsd@gmail.com>**20090515143608 |
|---|
| 2515 | Ignore-this: 6dd688582c3c5f506eac75f409185cf2 |
|---|
| 2516 | and document primOpHasSideEffects |
|---|
| 2517 | ] |
|---|
| 2518 | [Need to pass gcc -m64 on amd64 OSX |
|---|
| 2519 | Ian Lynagh <igloo@earth.li>**20090520170508] |
|---|
| 2520 | [Use machdepCCOpts when running "as" |
|---|
| 2521 | Ian Lynagh <igloo@earth.li>**20090520165811] |
|---|
| 2522 | [Use SRC_HC_OPTS when making ghc-cabal and ghc-pkg |
|---|
| 2523 | Ian Lynagh <igloo@earth.li>**20090520130009] |
|---|
| 2524 | [Fix building ghc-pkg when bootstrapping |
|---|
| 2525 | Ian Lynagh <igloo@earth.li>**20090520122241] |
|---|
| 2526 | [Simplify ghc-pkg's ghc.mk slightly |
|---|
| 2527 | Ian Lynagh <igloo@earth.li>**20090520121940] |
|---|
| 2528 | [Set CLEANING=YES for the clean_% targets |
|---|
| 2529 | Ian Lynagh <igloo@earth.li>**20090520114312] |
|---|
| 2530 | [Use SRC_CC_OPTS when making HSffi.o |
|---|
| 2531 | Ian Lynagh <igloo@earth.li>**20090519195742] |
|---|
| 2532 | [Bootstrapping fixes |
|---|
| 2533 | Ian Lynagh <igloo@earth.li>**20090517130558] |
|---|
| 2534 | [Bootstrapping fixes |
|---|
| 2535 | Ian Lynagh <igloo@earth.li>**20090517001146] |
|---|
| 2536 | [Bootstrapping fixes |
|---|
| 2537 | Ian Lynagh <igloo@earth.li>**20090516183020] |
|---|
| 2538 | [Remove a done TODO item |
|---|
| 2539 | Ian Lynagh <igloo@earth.li>**20090516175836] |
|---|
| 2540 | [Add libraries/dph/LICENSE to bindists |
|---|
| 2541 | Ian Lynagh <igloo@earth.li>**20090516130016] |
|---|
| 2542 | [Tweak bindist creation |
|---|
| 2543 | Ian 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). |
|---|
| 2546 | ] |
|---|
| 2547 | [Move the fixed paths out of config.mk, so cleaning works without configuring |
|---|
| 2548 | Ian Lynagh <igloo@earth.li>**20090516121248] |
|---|
| 2549 | [Remove an incorrect comment |
|---|
| 2550 | Ian Lynagh <igloo@earth.li>**20090516120255] |
|---|
| 2551 | [Hide more make rules when cleaning |
|---|
| 2552 | Ian Lynagh <igloo@earth.li>**20090516114511] |
|---|
| 2553 | [Remove some $(TOP)s that cause problems on Windows (as they contain ':') |
|---|
| 2554 | Ian Lynagh <igloo@earth.li>**20090516001118] |
|---|
| 2555 | [Disable suffix rules when cleaning |
|---|
| 2556 | Ian Lynagh <igloo@earth.li>**20090515231947] |
|---|
| 2557 | [Don't require the library ghc.mk files in order to clean |
|---|
| 2558 | Ian Lynagh <igloo@earth.li>**20090515231516] |
|---|
| 2559 | [Add a maintainer-clean rule |
|---|
| 2560 | Ian Lynagh <igloo@earth.li>**20090515225659] |
|---|
| 2561 | [Make dph required |
|---|
| 2562 | Ian Lynagh <igloo@earth.li>**20090515205122] |
|---|
| 2563 | [Remove --extra flag from darcs-all |
|---|
| 2564 | Ian Lynagh <igloo@earth.li>**20090515203646] |
|---|
| 2565 | [Remove nofib-analyse |
|---|
| 2566 | Ian Lynagh <igloo@earth.li>**20090515200241 |
|---|
| 2567 | It's now in the nofib repo. |
|---|
| 2568 | ] |
|---|
| 2569 | [Further fixes to the stage1 version hack; fix validate. |
|---|
| 2570 | Simon 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. |
|---|
| 2575 | ] |
|---|
| 2576 | [remove warning settings; we already have warnings turned on everywhere |
|---|
| 2577 | Simon Marlow <marlowsd@gmail.com>**20090515094046 |
|---|
| 2578 | Ignore-this: 25fda62eb47c7a324b30cd0cd942d1ef |
|---|
| 2579 | ] |
|---|
| 2580 | [disable all docs in the "quick" and "devel" builds |
|---|
| 2581 | Simon Marlow <marlowsd@gmail.com>**20090515093500 |
|---|
| 2582 | Ignore-this: 1ef50b4624bd196584feb3d4da64a6 |
|---|
| 2583 | ] |
|---|
| 2584 | [remove XmlDocWays relic |
|---|
| 2585 | Simon Marlow <marlowsd@gmail.com>**20090515094452 |
|---|
| 2586 | Ignore-this: 98fe2765fb54d3fcd890fcb3e193bc3e |
|---|
| 2587 | ] |
|---|
| 2588 | [cleanup: remove reference to $1_$2_CONFIGURE_FLAGS, which is never used |
|---|
| 2589 | Simon Marlow <marlowsd@gmail.com>**20090515092858 |
|---|
| 2590 | Ignore-this: a563c6706dc5d072f4dd5341e37bbb16 |
|---|
| 2591 | we also have $1_$2_CONFIGURE_OPTS, which is used. |
|---|
| 2592 | ] |
|---|
| 2593 | [fix cut-and-pasto in mkWeakForeignEnv#, causing random segfaults |
|---|
| 2594 | Simon Marlow <marlowsd@gmail.com>**20090515092356 |
|---|
| 2595 | Ignore-this: cac2a0ae0a9535992466a85d1fb877b7 |
|---|
| 2596 | ] |
|---|
| 2597 | [Fix maintainer-clean for library/dph |
|---|
| 2598 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090515024812 |
|---|
| 2599 | Ignore-this: 189a52c2b3a6cd90fa23e74cc455244 |
|---|
| 2600 | ] |
|---|
| 2601 | [Move hasktags out of the GHC repo |
|---|
| 2602 | Ian Lynagh <igloo@earth.li>**20090515135755 |
|---|
| 2603 | Now configure looks for it as an installed program instead. |
|---|
| 2604 | ] |
|---|
| 2605 | [use StgWord for the lock (fixes valgrind complaint on 64-bit machines) |
|---|
| 2606 | Simon Marlow <marlowsd@gmail.com>**20090514145524 |
|---|
| 2607 | Ignore-this: 23100384044c7ecf26e7e552582bcccd |
|---|
| 2608 | ] |
|---|
| 2609 | [don't rebuild the whole of stage 1 just because the date has changed |
|---|
| 2610 | Simon Marlow <marlowsd@gmail.com>**20090514093636 |
|---|
| 2611 | Ignore-this: f4b7eceae68033723e6eb79f3972636d |
|---|
| 2612 | ] |
|---|
| 2613 | [Remove left-over bits of extralib support |
|---|
| 2614 | Ian Lynagh <igloo@earth.li>**20090514125804] |
|---|
| 2615 | [Clean the right directory in bindisttest |
|---|
| 2616 | Ian Lynagh <igloo@earth.li>**20090514125044] |
|---|
| 2617 | [validate now uses maintainer-clean, not distclean |
|---|
| 2618 | Simon Marlow <marlowsd@gmail.com>**20090514105717 |
|---|
| 2619 | Ignore-this: fc63835c465928e7b996d548661c26bf |
|---|
| 2620 | ] |
|---|
| 2621 | [main repeated 'make maintainer-clean' not fail |
|---|
| 2622 | Simon Marlow <marlowsd@gmail.com>**20090514105704 |
|---|
| 2623 | Ignore-this: 81fa6dbd35ccc9d8081ad5b3ebda3113 |
|---|
| 2624 | ] |
|---|
| 2625 | [make repeated 'make distclean' not fail |
|---|
| 2626 | Simon Marlow <marlowsd@gmail.com>**20090514105645 |
|---|
| 2627 | Ignore-this: f637c255cf741f256114a98d63f47768 |
|---|
| 2628 | ] |
|---|
| 2629 | [dummy-ghc should depend on config.mk, to pick up the latest version number |
|---|
| 2630 | Simon 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 |
|---|
| 2634 | ] |
|---|
| 2635 | [rejig ghc version test; fail if GHC version can't be determined |
|---|
| 2636 | Simon Marlow <marlowsd@gmail.com>**20090513103905 |
|---|
| 2637 | Ignore-this: a905701fd9cb8bd09a9b423998e8d98d |
|---|
| 2638 | ] |
|---|
| 2639 | [Improve error reporting for kind errors (fix Trac #1633) |
|---|
| 2640 | simonpj@microsoft.com**20090513151130 |
|---|
| 2641 | Ignore-this: 80c4b0d98ac25bececf0896d27f954b8 |
|---|
| 2642 | |
|---|
| 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 `*' |
|---|
| 2648 | |
|---|
| 2649 | Ha! |
|---|
| 2650 | |
|---|
| 2651 | ] |
|---|
| 2652 | [Fix Trac #3219: type of a record update |
|---|
| 2653 | simonpj@microsoft.com**20090513150922 |
|---|
| 2654 | Ignore-this: 95af0b6c81a888839528327905f849fa |
|---|
| 2655 | |
|---|
| 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! |
|---|
| 2659 | |
|---|
| 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 |
|---|
| 2662 | |
|---|
| 2663 | Test is typecheck/should_compile/T3219, which GHC 6.10 barfs on (with Lint). |
|---|
| 2664 | |
|---|
| 2665 | ] |
|---|
| 2666 | [Add comments |
|---|
| 2667 | simonpj@microsoft.com**20090513145944 |
|---|
| 2668 | Ignore-this: 8f799933bf7b2bc72ba67e999afd6fe0 |
|---|
| 2669 | ] |
|---|
| 2670 | [Hide warnings from alex/happy sources |
|---|
| 2671 | Ian Lynagh <igloo@earth.li>**20090514005450] |
|---|
| 2672 | [Fix some warnings in Lexer |
|---|
| 2673 | Ian Lynagh <igloo@earth.li>**20090513234042] |
|---|
| 2674 | [Fix building dph in the new build system |
|---|
| 2675 | Ian Lynagh <igloo@earth.li>**20090513160531] |
|---|
| 2676 | [Link the rts shared libs against gmp and the other C libs |
|---|
| 2677 | Duncan 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). |
|---|
| 2681 | ] |
|---|
| 2682 | [Make ghc -dynamic imply -fPIC for C code |
|---|
| 2683 | Duncan 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. |
|---|
| 2692 | ] |
|---|
| 2693 | [validate does "exit 1" if it fails |
|---|
| 2694 | Simon Marlow <marlowsd@gmail.com>**20090513102044 |
|---|
| 2695 | Ignore-this: f032189c358c133f2b00f062de28890a |
|---|
| 2696 | ] |
|---|
| 2697 | [fix warning |
|---|
| 2698 | Simon Marlow <marlowsd@gmail.com>**20090513101649 |
|---|
| 2699 | Ignore-this: d93e813fd3010f157768b04ebabe8880 |
|---|
| 2700 | ] |
|---|
| 2701 | [remove old unused fop/dvips/xmltex stuff |
|---|
| 2702 | Simon Marlow <marlowsd@gmail.com>**20090513100317 |
|---|
| 2703 | Ignore-this: a3ff10c53c7fb630d019e47611ff07a6 |
|---|
| 2704 | ] |
|---|
| 2705 | [build Haddock docs |
|---|
| 2706 | Simon Marlow <marlowsd@gmail.com>**20090513100142 |
|---|
| 2707 | Ignore-this: 867538ef3a566197f24b73c70407a6f1 |
|---|
| 2708 | ] |
|---|
| 2709 | [enable LinkDynLib in compilier phase |
|---|
| 2710 | y.zhuang5@lse.ac.uk**20090422201937 |
|---|
| 2711 | Ignore-this: 615f399aae08a19ea5047e7c0c4a67d4 |
|---|
| 2712 | ] |
|---|
| 2713 | [expand hack to include PS docs too |
|---|
| 2714 | Simon Marlow <marlowsd@gmail.com>**20090513075903 |
|---|
| 2715 | Ignore-this: f9f7914eeaef39bf357cd47984692417 |
|---|
| 2716 | ] |
|---|
| 2717 | [stub Makefile |
|---|
| 2718 | Simon Marlow <marlowsd@gmail.com>**20090511145122 |
|---|
| 2719 | Ignore-this: 837a294680f957880d5ce24bec293bf1 |
|---|
| 2720 | ] |
|---|
| 2721 | [GhcBootLibs is no more |
|---|
| 2722 | Simon Marlow <marlowsd@gmail.com>**20090511145006 |
|---|
| 2723 | Ignore-this: 1de74fa020bdb341c852c39bb427b98f |
|---|
| 2724 | ] |
|---|
| 2725 | [updates to the section describing the +RTS -s/-S output (#3211) |
|---|
| 2726 | Simon Marlow <marlowsd@gmail.com>**20090511144935 |
|---|
| 2727 | Ignore-this: 1a472f099d4db1aa04c86a250a64036 |
|---|
| 2728 | ] |
|---|
| 2729 | [multi-slurp protection |
|---|
| 2730 | Simon Marlow <marlowsd@gmail.com>**20090508092200 |
|---|
| 2731 | Ignore-this: 147a78b3d43e55804df50807facfe1ed |
|---|
| 2732 | ] |
|---|
| 2733 | [Improve error messages for type functions |
|---|
| 2734 | simonpj@microsoft.com**20090512171229 |
|---|
| 2735 | Ignore-this: 69207771396a7940b1bb1413622b0b5d |
|---|
| 2736 | |
|---|
| 2737 | Following a suggestion of Claus Reinke, this patch improves the error |
|---|
| 2738 | messages involving type functions. Here's the relevant note from TcTyFuns. |
|---|
| 2739 | |
|---|
| 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 |
|---|
| 2747 | |
|---|
| 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 ...). |
|---|
| 2756 | |
|---|
| 2757 | ] |
|---|
| 2758 | [stub makefile |
|---|
| 2759 | Simon Marlow <marlowsd@gmail.com>**20090511133615 |
|---|
| 2760 | Ignore-this: 1d5890844e9329eb832def2caab142f7 |
|---|
| 2761 | ] |
|---|
| 2762 | [Hack to make the user's guide build in a linked build tree |
|---|
| 2763 | Simon Marlow <marlowsd@gmail.com>**20090511133523 |
|---|
| 2764 | Ignore-this: ff861fdc8a2f30ad970f1afe2121d4b6 |
|---|
| 2765 | See comment for details |
|---|
| 2766 | ] |
|---|
| 2767 | [make it so that 'make html', 'make pdf', and 'make ps' work for docs |
|---|
| 2768 | Simon Marlow <marlowsd@gmail.com>**20090511120256 |
|---|
| 2769 | Ignore-this: 31314dbdf6d1b81142a0618ff80d79af |
|---|
| 2770 | ] |
|---|
| 2771 | [correct the +RTS -? docs for -A (default is 512k not 256k) |
|---|
| 2772 | Simon Marlow <marlowsd@gmail.com>**20090508083811 |
|---|
| 2773 | Ignore-this: 3325973d3236d4363da007ae5d052d39 |
|---|
| 2774 | ] |
|---|
| 2775 | [Use a more compact +RTS -s output for Tasks |
|---|
| 2776 | Simon Marlow <marlowsd@gmail.com>**20090508083738 |
|---|
| 2777 | Ignore-this: 120572f8f207d709268389f83d6e3930 |
|---|
| 2778 | |
|---|
| 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) |
|---|
| 2784 | ] |
|---|
| 2785 | [disable a warning |
|---|
| 2786 | Simon Marlow <marlowsd@gmail.com>**20090505092015 |
|---|
| 2787 | Ignore-this: 88be67365fd00a0e82374bd543220224 |
|---|
| 2788 | ] |
|---|
| 2789 | [docbook PDF item is done |
|---|
| 2790 | Simon Marlow <marlowsd@gmail.com>**20090505092009 |
|---|
| 2791 | Ignore-this: be0fea575eb930a040b7b15bd11f0eb1 |
|---|
| 2792 | ] |
|---|
| 2793 | [add a .c --> .s rule |
|---|
| 2794 | Simon Marlow <marlowsd@gmail.com>**20090501095627 |
|---|
| 2795 | Ignore-this: d21dc88910d189cce35ce2d26028b547 |
|---|
| 2796 | ] |
|---|
| 2797 | [Remove libraries/ifBuildable.hs; it's no longer used |
|---|
| 2798 | Ian Lynagh <igloo@earth.li>**20090509200708] |
|---|
| 2799 | [Fix configure |
|---|
| 2800 | Ian Lynagh <igloo@earth.li>**20090509184634] |
|---|
| 2801 | [Build system tweak |
|---|
| 2802 | Ian Lynagh <igloo@earth.li>**20090509142936] |
|---|
| 2803 | [Add a Makefile in libraries/ |
|---|
| 2804 | Ian Lynagh <igloo@earth.li>**20090508232920] |
|---|
| 2805 | [Tweak ./boot |
|---|
| 2806 | Ian Lynagh <igloo@earth.li>**20090508230236] |
|---|
| 2807 | [Partially fix "make framework-pkg" |
|---|
| 2808 | Ian Lynagh <igloo@earth.li>**20090508224857 |
|---|
| 2809 | We still need to sort out the "install-docs" story to get this working |
|---|
| 2810 | properly. |
|---|
| 2811 | ] |
|---|
| 2812 | [Handle deciding what docs to build better |
|---|
| 2813 | Ian 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). |
|---|
| 2818 | ] |
|---|
| 2819 | [Remove oldconfig.mk.in |
|---|
| 2820 | Ian Lynagh <igloo@earth.li>**20090507150641] |
|---|
| 2821 | [Rename pwd to ghc-pwd |
|---|
| 2822 | Ian Lynagh <igloo@earth.li>**20090507135034] |
|---|
| 2823 | [Remove pwd's Makefile from the old build system |
|---|
| 2824 | Ian Lynagh <igloo@earth.li>**20090507134356] |
|---|
| 2825 | [Clean utils/pwd |
|---|
| 2826 | Ian Lynagh <igloo@earth.li>**20090507134259] |
|---|
| 2827 | [Use more portable shell in ./boot; fixes booting on Solaris |
|---|
| 2828 | Ian Lynagh <igloo@earth.li>**20090506010445] |
|---|
| 2829 | [Simplify utils/pwd |
|---|
| 2830 | Ian 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. |
|---|
| 2833 | ] |
|---|
| 2834 | [More rules for bootstrapping |
|---|
| 2835 | Ian Lynagh <igloo@earth.li>**20090504150209] |
|---|
| 2836 | [Bootstrapping fix |
|---|
| 2837 | Ian Lynagh <igloo@earth.li>**20090504142605] |
|---|
| 2838 | [Bootstrapping fixes |
|---|
| 2839 | Ian Lynagh <igloo@earth.li>**20090504142511] |
|---|
| 2840 | [Test "ghc-pkg check" passes in bindisttest |
|---|
| 2841 | Ian 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). |
|---|
| 2844 | ] |
|---|
| 2845 | [Put install-sh into bindists |
|---|
| 2846 | Ian Lynagh <igloo@earth.li>**20090504104026] |
|---|
| 2847 | [Test bindists in a deeper subdirectory |
|---|
| 2848 | Ian 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. |
|---|
| 2851 | ] |
|---|
| 2852 | [Use "-x c" when compiling hc files |
|---|
| 2853 | Ian Lynagh <igloo@earth.li>**20090503205344] |
|---|
| 2854 | [Makefile rules tweak for BootingFromHc |
|---|
| 2855 | Ian Lynagh <igloo@earth.li>**20090503203733] |
|---|
| 2856 | [More bootstrapping rules |
|---|
| 2857 | Ian Lynagh <igloo@earth.li>**20090503201812] |
|---|
| 2858 | [Add a .hc building rules for bootstrapping |
|---|
| 2859 | Ian Lynagh <igloo@earth.li>**20090503190508] |
|---|
| 2860 | [Tweak rts ghc.mk for bootstrapping |
|---|
| 2861 | Ian Lynagh <igloo@earth.li>**20090503111009] |
|---|
| 2862 | [Add a build system TODO |
|---|
| 2863 | Ian Lynagh <igloo@earth.li>**20090503224627] |
|---|
| 2864 | [Add dph to build system; patch from Roman Leshchinskiy |
|---|
| 2865 | Ian Lynagh <igloo@earth.li>**20090503104005] |
|---|
| 2866 | [add publish-binary-dist; tidy up |
|---|
| 2867 | Simon Marlow <marlowsd@gmail.com>**20090501112857 |
|---|
| 2868 | Ignore-this: 7e0032d7ac300f5dd18626488a035c05 |
|---|
| 2869 | ] |
|---|
| 2870 | [Fix make for libffi again, properly this time |
|---|
| 2871 | Duncan Coutts <duncan@well-typed.com>**20090430225546 |
|---|
| 2872 | No idea how the last patch managed to pass validate. |
|---|
| 2873 | ] |
|---|
| 2874 | [Fix parallel make for libffi. |
|---|
| 2875 | Duncan 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. |
|---|
| 2879 | ] |
|---|
| 2880 | [Fix linking shared libs with parallel make |
|---|
| 2881 | Duncan 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 |
|---|
| 2884 | ] |
|---|
| 2885 | [Fix building without GHCi |
|---|
| 2886 | Ian Lynagh <igloo@earth.li>**20090503004437] |
|---|
| 2887 | [Makefile tweak |
|---|
| 2888 | Ian Lynagh <igloo@earth.li>**20090502225601] |
|---|
| 2889 | [Fix building Haskeline on Windows |
|---|
| 2890 | Ian Lynagh <igloo@earth.li>**20090430161613] |
|---|
| 2891 | [FIX build: add dependencies on ghc_boot_platform.h |
|---|
| 2892 | Simon Marlow <marlowsd@gmail.com>**20090430100245 |
|---|
| 2893 | Ignore-this: b9bd4f40f4b6789eee500626b9ef6e2c |
|---|
| 2894 | ] |
|---|
| 2895 | [Prevent haddock docs being built when HADDOCK_DOCS=NO |
|---|
| 2896 | Duncan Coutts <duncan@well-typed.com>**20090429160230] |
|---|
| 2897 | [Clean up building of libffi for dynamic lib way |
|---|
| 2898 | Duncan Coutts <duncan@well-typed.com>**20090429153002 |
|---|
| 2899 | And depend on it at the top level when we're using dynamic libs. |
|---|
| 2900 | ] |
|---|
| 2901 | [Build library packages as shared libs |
|---|
| 2902 | Duncan Coutts <duncan@well-typed.com>**20090429151553 |
|---|
| 2903 | when we configure ghc with --enable-shared |
|---|
| 2904 | ] |
|---|
| 2905 | [Build the rts as a shared lib correctly |
|---|
| 2906 | Duncan Coutts <duncan@well-typed.com>**20090429143131 |
|---|
| 2907 | That is, build it as a .so/.dll rather than as libHSrts_dyn.a |
|---|
| 2908 | ] |
|---|
| 2909 | [Don't actually build ghc itself with -dynamic |
|---|
| 2910 | Duncan 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. |
|---|
| 2915 | ] |
|---|
| 2916 | [Add a new $way_libsuf variable for library suffix+extension |
|---|
| 2917 | Duncan 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" |
|---|
| 2921 | ] |
|---|
| 2922 | [extend the rules/c-objs macro to take the way as a parameter |
|---|
| 2923 | Duncan 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. |
|---|
| 2928 | ] |
|---|
| 2929 | [Do not link ghc stage1 using -threaded, only for stage2 or 3 |
|---|
| 2930 | Duncan 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 |
|---|
| 2933 | ] |
|---|
| 2934 | [Fix mkdependC: Make it tell cpp to use our temporary filename |
|---|
| 2935 | Ian Lynagh <igloo@earth.li>**20090430130638] |
|---|
| 2936 | [Tweak ghc-cabal |
|---|
| 2937 | Ian Lynagh <igloo@earth.li>**20090429183728] |
|---|
| 2938 | [Add special support for haskeline |
|---|
| 2939 | Ian 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. |
|---|
| 2944 | ] |
|---|
| 2945 | [In mkdependC.prl, create temp files properly |
|---|
| 2946 | Ian Lynagh <igloo@earth.li>**20090429151215 |
|---|
| 2947 | Avoids a race condition, where one run deletes/overwrites the temp file |
|---|
| 2948 | of another. |
|---|
| 2949 | ] |
|---|
| 2950 | [move nofib settings here from ghc's config.mk |
|---|
| 2951 | Simon Marlow <marlowsd@gmail.com>**20090428125551 |
|---|
| 2952 | Ignore-this: a2eb9d0094fe10446b74987af44a6005 |
|---|
| 2953 | ] |
|---|
| 2954 | [add missing eventlog subdir |
|---|
| 2955 | Simon Marlow <marlowsd@gmail.com>**20090428125528 |
|---|
| 2956 | Ignore-this: 127bc2a6bc9fa29871a19ad99ddb346e |
|---|
| 2957 | ] |
|---|
| 2958 | [move runstdtest into nofib |
|---|
| 2959 | Simon Marlow <marlowsd@gmail.com>**20090428124505 |
|---|
| 2960 | Ignore-this: 98eae5d994693ed8235e8693f3615899 |
|---|
| 2961 | ] |
|---|
| 2962 | [Use haskeline, rather than editline, for line editing in ghci |
|---|
| 2963 | Ian Lynagh <igloo@earth.li>**20090429005838] |
|---|
| 2964 | [Fix error handling |
|---|
| 2965 | Ian 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. |
|---|
| 2968 | ] |
|---|
| 2969 | [FIX #2500: Don't log warnings in getHeader |
|---|
| 2970 | Simon Marlow <marlowsd@gmail.com>**20090421100039 |
|---|
| 2971 | Ignore-this: 24a8e8c2dca64dcd592d53fd7468eed5 |
|---|
| 2972 | ] |
|---|
| 2973 | [improve the finalizer callback error message |
|---|
| 2974 | Simon Marlow <marlowsd@gmail.com>**20090428085345 |
|---|
| 2975 | Ignore-this: 3255e17c98b3c9cf591b71d6023592b8 |
|---|
| 2976 | ] |
|---|
| 2977 | [Add a header to all build system files: |
|---|
| 2978 | Simon Marlow <marlowsd@gmail.com>**20090428085233 |
|---|
| 2979 | Ignore-this: 49aa394badd4f17dc17aa3a26085ddba |
|---|
| 2980 | |
|---|
| 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 | # ----------------------------------------------------------------------------- |
|---|
| 2992 | ] |
|---|
| 2993 | [more cleaning |
|---|
| 2994 | Simon Marlow <marlowsd@gmail.com>**20090428084919 |
|---|
| 2995 | Ignore-this: e41e0dcbef3d410ca5d6a2ff8e433cc8 |
|---|
| 2996 | ] |
|---|
| 2997 | [todo updates |
|---|
| 2998 | Simon Marlow <marlowsd@gmail.com>**20090427152529 |
|---|
| 2999 | Ignore-this: b476fdb991b7b229d4aa837aa6d45216 |
|---|
| 3000 | ] |
|---|
| 3001 | [remove commentary that is now in the wiki |
|---|
| 3002 | Simon Marlow <marlowsd@gmail.com>**20090427144743 |
|---|
| 3003 | Ignore-this: e9f6bec77aa99a3c1b49ada0bf4ca9ad |
|---|
| 3004 | ] |
|---|
| 3005 | [remove ticket todos |
|---|
| 3006 | Simon Marlow <marlowsd@gmail.com>**20090427144406 |
|---|
| 3007 | Ignore-this: 7de6ea0d0ecfc1ca51d75090074dcdd9 |
|---|
| 3008 | ] |
|---|
| 3009 | [require gcc 3.0+ (see #2770) |
|---|
| 3010 | Simon Marlow <marlowsd@gmail.com>**20090427134322 |
|---|
| 3011 | Ignore-this: 4844e99c80bdd0f9a6bdd34bae46748b |
|---|
| 3012 | ] |
|---|
| 3013 | [update build order comment |
|---|
| 3014 | Simon Marlow <marlowsd@gmail.com>**20090427124711 |
|---|
| 3015 | Ignore-this: 96be57ee425cb4d5a916960273aefe87 |
|---|
| 3016 | ] |
|---|
| 3017 | [Equality constraint solver is now externally pure |
|---|
| 3018 | Manuel 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). |
|---|
| 3030 | |
|---|
| 3031 | See also http://hackage.haskell.org/trac/ghc/wiki/TypeFunctionsSolving |
|---|
| 3032 | ] |
|---|
| 3033 | [Improve the error message when we find a module in 2 places; trac #3183 |
|---|
| 3034 | Ian Lynagh <igloo@earth.li>**20090426160204] |
|---|
| 3035 | [Remove a comment (a bug to close, that has now been closed) |
|---|
| 3036 | Ian Lynagh <igloo@earth.li>**20090426151942] |
|---|
| 3037 | [GHC new build system megapatch |
|---|
| 3038 | Ian Lynagh <igloo@earth.li>**20090426114215] |
|---|
| 3039 | [Fix SPARC build, missing #include |
|---|
| 3040 | Ben.Lippmeier@anu.edu.au**20090425083345] |
|---|
| 3041 | [Fix a lint failure when we have a ! (# ... #) pattern in a where clause |
|---|
| 3042 | Ian Lynagh <igloo@earth.li>**20090424173313 |
|---|
| 3043 | This showed up when converting ds057 to follow the new bang pattern rules, |
|---|
| 3044 | in #2806. |
|---|
| 3045 | ] |
|---|
| 3046 | [Do the second part of #2806: Disallow unlifted types in ~ patterns |
|---|
| 3047 | Ian Lynagh <igloo@earth.li>**20090424150519] |
|---|
| 3048 | [Tiny refactor |
|---|
| 3049 | Ian Lynagh <igloo@earth.li>**20090424140227] |
|---|
| 3050 | [Require a bang pattern when unlifted types are where/let bound; #3182 |
|---|
| 3051 | Ian 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. |
|---|
| 3054 | ] |
|---|
| 3055 | [Don't short out top-level indirections if there's a INLINE/NOINLINE pragma |
|---|
| 3056 | simonpj@microsoft.com**20090424123238 |
|---|
| 3057 | Ignore-this: 422a4256a63c93a0bf806cbfa564ec69 |
|---|
| 3058 | |
|---|
| 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. |
|---|
| 3063 | |
|---|
| 3064 | ] |
|---|
| 3065 | [Fix #3182: 64 bit FP value returned by C calls was getting trashed |
|---|
| 3066 | Ben.Lippmeier@anu.edu.au**20090424065053 |
|---|
| 3067 | Ignore-this: 529bfd2bfb663a70e1345a0089737496 |
|---|
| 3068 | movss instruction was being used to move the result into the |
|---|
| 3069 | destination register instead of movsd |
|---|
| 3070 | ] |
|---|
| 3071 | [add missing files (part of #3171 fix) |
|---|
| 3072 | Simon Marlow <marlowsd@gmail.com>**20090424091610 |
|---|
| 3073 | Ignore-this: 3d11fe878c873529906f67e930c46c2c |
|---|
| 3074 | ] |
|---|
| 3075 | [Tiny optimisation to mkInlineMe |
|---|
| 3076 | simonpj@microsoft.com**20090424074733 |
|---|
| 3077 | Ignore-this: be1e8ed22a82f1dc348b1e047a986d8b |
|---|
| 3078 | ] |
|---|
| 3079 | [Add EVENT_CREATE_SPARK_THREAD to replace EVENT_SPARK_TO_THREAD |
|---|
| 3080 | Simon Marlow <marlowsd@gmail.com>**20090423141940 |
|---|
| 3081 | Ignore-this: 173128c92c20e6a85d6611355fb5273a |
|---|
| 3082 | Also some tidyups and renaming |
|---|
| 3083 | ] |
|---|
| 3084 | [add getOrSetSignalHandlerStore, much like getOrSetTypeableStore |
|---|
| 3085 | Simon Marlow <marlowsd@gmail.com>**20090423113002 |
|---|
| 3086 | Ignore-this: d9dcb835444cae366aa8f6bcf68fd191 |
|---|
| 3087 | Part of the fix for #3171 |
|---|
| 3088 | ] |
|---|
| 3089 | [don't overwrite io_manager_pipe if it is already set |
|---|
| 3090 | Simon Marlow <marlowsd@gmail.com>**20090423112939 |
|---|
| 3091 | Ignore-this: 8e7d94a051b4b3daec89ea3103678550 |
|---|
| 3092 | Part of the fix for #3171 |
|---|
| 3093 | ] |
|---|
| 3094 | [Simplify the placeholder binding for naughty record selectors |
|---|
| 3095 | simonpj@microsoft.com**20090423094401 |
|---|
| 3096 | Ignore-this: 50dca18eeaa60e24319ed75dabf55bab |
|---|
| 3097 | ] |
|---|
| 3098 | [Fix Trac #3176: intercept naughty record selectors |
|---|
| 3099 | simonpj@microsoft.com**20090423094237 |
|---|
| 3100 | Ignore-this: 1aab5295a20191d8a56364f1fbf2e765 |
|---|
| 3101 | |
|---|
| 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. |
|---|
| 3106 | |
|---|
| 3107 | ] |
|---|
| 3108 | [Better pretty-printing for IdDetails |
|---|
| 3109 | simonpj@microsoft.com**20090423093945 |
|---|
| 3110 | Ignore-this: 34721cec14f1ad33838f12bfc7851a48 |
|---|
| 3111 | ] |
|---|
| 3112 | [FIX #3166: include the fixity of classes and type synonyms in their fingerprints |
|---|
| 3113 | Simon Marlow <marlowsd@gmail.com>**20090421135624 |
|---|
| 3114 | Ignore-this: 5390a8fb76bf1f3133f08277a978cb2 |
|---|
| 3115 | ] |
|---|
| 3116 | [FIX #2682: banish silly cases of the "module Foo is not loaded" error |
|---|
| 3117 | Simon Marlow <marlowsd@gmail.com>**20090421131038 |
|---|
| 3118 | Ignore-this: 15298691a63e13c63a68673202b1fc18 |
|---|
| 3119 | |
|---|
| 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. |
|---|
| 3125 | |
|---|
| 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. |
|---|
| 3130 | |
|---|
| 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. |
|---|
| 3136 | |
|---|
| 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. |
|---|
| 3139 | ] |
|---|
| 3140 | [add a DO NOT EDIT comment |
|---|
| 3141 | Simon Marlow <marlowsd@gmail.com>**20090421094606 |
|---|
| 3142 | Ignore-this: d0e81a968fe38918d2830dcf1186f61c |
|---|
| 3143 | ] |
|---|
| 3144 | [FIX #3153: we lost an EOF sentinel in the event of a lexical error |
|---|
| 3145 | Simon Marlow <marlowsd@gmail.com>**20090421094558 |
|---|
| 3146 | Ignore-this: e30401ca719605a6991e9c8a31821eba |
|---|
| 3147 | ] |
|---|
| 3148 | [FIX #2845: Allow breakpoints on expressions with unlifted type |
|---|
| 3149 | Simon Marlow <marlowsd@gmail.com>**20090420142525 |
|---|
| 3150 | Ignore-this: 8d1b2624a4635b421032463219af604e |
|---|
| 3151 | |
|---|
| 3152 | It turns out we can easily support breakpoints on expressions with |
|---|
| 3153 | unlifted types, by translating |
|---|
| 3154 | |
|---|
| 3155 | case tick# of _ -> e |
|---|
| 3156 | |
|---|
| 3157 | into |
|---|
| 3158 | |
|---|
| 3159 | let f = \s . case tick# of _ -> e |
|---|
| 3160 | in f realWorld# |
|---|
| 3161 | |
|---|
| 3162 | instead of just a plain let-binding. This is the same trick that GHC |
|---|
| 3163 | uses for abstracting join points of unlifted type. |
|---|
| 3164 | |
|---|
| 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. |
|---|
| 3174 | ] |
|---|
| 3175 | [remove now-unused atomic_modify_mutvar_mutex |
|---|
| 3176 | Simon Marlow <marlowsd@gmail.com>**20090403132731 |
|---|
| 3177 | Ignore-this: d27c29bdd8a4c43b384e278fb192138e |
|---|
| 3178 | ] |
|---|
| 3179 | [SPARC NCG: Add a comment explaining why we can't used a pinned reg for gct |
|---|
| 3180 | Ben.Lippmeier@anu.edu.au**20090420074335 |
|---|
| 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. |
|---|
| 3183 | ] |
|---|
| 3184 | [SPARC NCG: validate fixes |
|---|
| 3185 | Ben.Lippmeier@anu.edu.au**20090420032120 |
|---|
| 3186 | Ignore-this: 4df988a6b3c005de741a300313104408 |
|---|
| 3187 | ] |
|---|
| 3188 | [SPARC NCG: Base freeRegs on includes/MachRegs.h again |
|---|
| 3189 | Ben.Lippmeier@anu.edu.au**20090420020700] |
|---|
| 3190 | [Really fix Trac #2611 this time |
|---|
| 3191 | pepe iborra <mnislaih@gmail.com>**20090419142241 |
|---|
| 3192 | |
|---|
| 3193 | My previous patch didn't completely solve the problem. |
|---|
| 3194 | I believe I got it right this time. |
|---|
| 3195 | ] |
|---|
| 3196 | [Fix Trac #2611 |
|---|
| 3197 | pepe iborra <mnislaih@gmail.com>**20090418214115 |
|---|
| 3198 | |
|---|
| 3199 | Fix a bug in :print affecting data types with unboxed components |
|---|
| 3200 | |
|---|
| 3201 | ] |
|---|
| 3202 | [Fix #3170: Allow coalescing of the same node during register allocation. |
|---|
| 3203 | Ben.Lippmeier@anu.edu.au**20090418082253 |
|---|
| 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. |
|---|
| 3208 | ] |
|---|
| 3209 | [Fix my previous patch about type parsing |
|---|
| 3210 | David Waern <david.waern@gmail.com>**20090418082927 |
|---|
| 3211 | |
|---|
| 3212 | I forgot to record some additional changes. |
|---|
| 3213 | ] |
|---|
| 3214 | [Simplify the type grammar |
|---|
| 3215 | David Waern <david.waern@gmail.com>**20090417145855 |
|---|
| 3216 | |
|---|
| 3217 | Simon P-J suggested the following simplifications in #3097: |
|---|
| 3218 | |
|---|
| 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`. |
|---|
| 3223 | |
|---|
| 3224 | This patch does this. Also, the equivalent thing is done for documented types. |
|---|
| 3225 | ] |
|---|
| 3226 | [Removed unused function postEventTypeID. |
|---|
| 3227 | donnie@darthik.com**20090413011745 |
|---|
| 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. |
|---|
| 3231 | ] |
|---|
| 3232 | [For consistency, changed access of thread id to be through capability instead of directly from StgRegTable. |
|---|
| 3233 | donnie@darthik.com**20090413011701 |
|---|
| 3234 | Ignore-this: dd38adce264aa882be0a4daf7c8c7378 |
|---|
| 3235 | ] |
|---|
| 3236 | [Added new EventLog event: Spark to Thread. |
|---|
| 3237 | donnie@darthik.com**20090413011444 |
|---|
| 3238 | Ignore-this: d38be4d01d76297953d6ed075896cb97 |
|---|
| 3239 | ] |
|---|
| 3240 | [Changed postEvent last argument from "nat from" to "StgWord64 other". |
|---|
| 3241 | donnie@darthik.com**20090413011140 |
|---|
| 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. |
|---|
| 3247 | ] |
|---|
| 3248 | [Fixed ThreadID to be defined as StgThreadID, not StgWord64. Changed CapabilityNum to CapNo. Added helper functions postCapNo() and postThreadID(). |
|---|
| 3249 | donnie@darthik.com**20090413010705 |
|---|
| 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. |
|---|
| 3256 | ] |
|---|
| 3257 | [Fixed error in order of EventTypeDescriptions -- seq and par GC come after start and finish GC. |
|---|
| 3258 | donnie@darthik.com**20090403034322 |
|---|
| 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. |
|---|
| 3263 | ] |
|---|
| 3264 | [Eventlog support for new event type: create spark. |
|---|
| 3265 | donnie@darthik.com**20090403033025 |
|---|
| 3266 | Ignore-this: 1da2a5eb13c7c64132234323e2acb514 |
|---|
| 3267 | ] |
|---|
| 3268 | [Tweak a Show instance |
|---|
| 3269 | Ian Lynagh <igloo@earth.li>**20090407143057] |
|---|
| 3270 | [Fix Trac #3155: better error message when -XRankNTypes is omitted |
|---|
| 3271 | simonpj@microsoft.com**20090409144004 |
|---|
| 3272 | Ignore-this: fc9d3035cd461c8a892332facd86c7da |
|---|
| 3273 | |
|---|
| 3274 | This patch sligtly re-adjusts the way in which the syntax of types |
|---|
| 3275 | is handled: |
|---|
| 3276 | |
|---|
| 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. |
|---|
| 3281 | |
|---|
| 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. |
|---|
| 3284 | |
|---|
| 3285 | * Test for -XKindSignatures in the renamer when processing |
|---|
| 3286 | a) type variable bindings |
|---|
| 3287 | b) types with sigs (ty :: kind-sig) |
|---|
| 3288 | |
|---|
| 3289 | * Make -XKindSignatures be implied by -XTypeFamilies |
|---|
| 3290 | Previously this was buried in the conditonal lexing of '*' |
|---|
| 3291 | |
|---|
| 3292 | ] |
|---|
| 3293 | [Use return instead of returnM, and similar tidy-ups |
|---|
| 3294 | simonpj@microsoft.com**20090409140959 |
|---|
| 3295 | Ignore-this: 987baeb20a3ff9f07c7a103ca5258c70 |
|---|
| 3296 | ] |
|---|
| 3297 | [Don't use thread local storage on x86/not-Linux |
|---|
| 3298 | Ian 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 |
|---|
| 3303 | ] |
|---|
| 3304 | [Make some showSDoc's use OneLineMode rather than PageMode |
|---|
| 3305 | Ian Lynagh <igloo@earth.li>**20090331181948] |
|---|
| 3306 | [Make the showSDoc definition more explicit |
|---|
| 3307 | Ian Lynagh <igloo@earth.li>**20090331174103] |
|---|
| 3308 | [eliminate warnings |
|---|
| 3309 | dias@eecs.tufts.edu**20090403203429] |
|---|
| 3310 | [Debugging by Sesame Street: |
|---|
| 3311 | dias@eecs.tufts.edu**20090403201504 |
|---|
| 3312 | |
|---|
| 3313 | One of these things is not like the others: |
|---|
| 3314 | |
|---|
| 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 |
|---|
| 3324 | |
|---|
| 3325 | Today's debugging session was brought to you by the letter P. |
|---|
| 3326 | ] |
|---|
| 3327 | [Buggy optimizations caused function-call return to share the function's entry point |
|---|
| 3328 | dias@eecs.tufts.edu**20090331144639 |
|---|
| 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. |
|---|
| 3333 | ] |
|---|
| 3334 | [Better handling of node parameter in calling conventions |
|---|
| 3335 | dias@eecs.tufts.edu**20090325163815 |
|---|
| 3336 | - Previously, the node was taken as a parameter, then ignored, |
|---|
| 3337 | for static closures. Goofy. Now, the vestigial node parameters |
|---|
| 3338 | are gone. |
|---|
| 3339 | ] |
|---|
| 3340 | [When calling gc, avoid saving node in static closures |
|---|
| 3341 | dias@eecs.tufts.edu**20090323204744] |
|---|
| 3342 | [Code simplifications due to call/return separation; some improvements to how node argument is managed |
|---|
| 3343 | dias@eecs.tufts.edu**20090323201140] |
|---|
| 3344 | [Code simplification due to separate call/return conventions |
|---|
| 3345 | dias@eecs.tufts.edu**20090323182214] |
|---|
| 3346 | [Calls with and without passing node arguments more clearly separated |
|---|
| 3347 | dias@eecs.tufts.edu**20090323174700] |
|---|
| 3348 | [Another small step: call and return conventions specified separately when making calls |
|---|
| 3349 | dias@eecs.tufts.edu**20090323172837] |
|---|
| 3350 | [Small step toward call-conv improvement: separate out calls and returns |
|---|
| 3351 | dias@eecs.tufts.edu**20090323170706] |
|---|
| 3352 | [On x86, use thread-local storage instead of stealing a reg for gct |
|---|
| 3353 | Simon 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. |
|---|
| 3357 | |
|---|
| 3358 | This only affects -threaded; without -threaded we're (now) using |
|---|
| 3359 | static storage for the GC data. |
|---|
| 3360 | ] |
|---|
| 3361 | [in the non-threaded RTS, use a static gc_thread structure |
|---|
| 3362 | Simon Marlow <marlowsd@gmail.com>**20090403121443 |
|---|
| 3363 | Ignore-this: 631365db4f9ec7c87f71e0ac851cdfc |
|---|
| 3364 | ] |
|---|
| 3365 | [small GC optimisation |
|---|
| 3366 | Simon Marlow <marlowsd@gmail.com>**20090403083708] |
|---|
| 3367 | [add -funroll-loops when compiling the parallel version of Evac.c too |
|---|
| 3368 | Simon Marlow <marlowsd@gmail.com>**20090402105643 |
|---|
| 3369 | Ignore-this: c120d5f5ea961e10acad457fd871ba53 |
|---|
| 3370 | ] |
|---|
| 3371 | [PACKAGE_CPP_OPTS += -DPAPI_INCLUDE_DIR="" |
|---|
| 3372 | Simon Marlow <marlowsd@gmail.com>**20090402105540 |
|---|
| 3373 | Ignore-this: 4136707371784c791c435ae4f562a500 |
|---|
| 3374 | unbreaks ghc-pkg check in an installed GHC |
|---|
| 3375 | ] |
|---|
| 3376 | [Adjust inlining heursitics |
|---|
| 3377 | simonpj@microsoft.com**20090403084634 |
|---|
| 3378 | Ignore-this: a2d6849726f6705e06941c74137bfe7e |
|---|
| 3379 | |
|---|
| 3380 | This patch is the result of a long series of nofib-based experiments |
|---|
| 3381 | to improve GHC's inlining heuristics. |
|---|
| 3382 | |
|---|
| 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. |
|---|
| 3387 | |
|---|
| 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. |
|---|
| 3390 | |
|---|
| 3391 | The main changes are in CoreUnfold, which has lots of new comments. |
|---|
| 3392 | Other changes: |
|---|
| 3393 | |
|---|
| 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) |
|---|
| 3399 | |
|---|
| 3400 | |
|---|
| 3401 | ] |
|---|
| 3402 | [Worker/wrapper should make INLINE if it doesn't w/w |
|---|
| 3403 | simonpj@microsoft.com**20090403084333 |
|---|
| 3404 | Ignore-this: 5ef3c02c272ad59616fa7dfaa0dc0381 |
|---|
| 3405 | |
|---|
| 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. |
|---|
| 3411 | |
|---|
| 3412 | See Note [Don't w/w inline things (a) and (b)] |
|---|
| 3413 | |
|---|
| 3414 | ] |
|---|
| 3415 | [Rewrite a good chunk of CoreArity |
|---|
| 3416 | simonpj@microsoft.com**20090403083655 |
|---|
| 3417 | Ignore-this: 314d26ad8f2d4437e11148b58e35d731 |
|---|
| 3418 | |
|---|
| 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. |
|---|
| 3424 | |
|---|
| 3425 | Anyway I think this is an improvement. The comments are more |
|---|
| 3426 | up to date too, and more voluminous. |
|---|
| 3427 | |
|---|
| 3428 | ] |
|---|
| 3429 | [Comments only; record remarks about removing 'type' nonterminal |
|---|
| 3430 | simonpj@microsoft.com**20090402165226 |
|---|
| 3431 | Ignore-this: 82f93bd161ee48c0a745fb58247afec0 |
|---|
| 3432 | ] |
|---|
| 3433 | [Don't float case expressions in full laziness |
|---|
| 3434 | simonpj@microsoft.com**20090402165101 |
|---|
| 3435 | Ignore-this: 356f0fc77301283116a669ed76478c4 |
|---|
| 3436 | |
|---|
| 3437 | See Note [Case MFEs]; don't float case expressions from |
|---|
| 3438 | a strict context. |
|---|
| 3439 | |
|---|
| 3440 | ] |
|---|
| 3441 | [Fix Trac #3118: missing alternative |
|---|
| 3442 | simonpj@microsoft.com**20090402152834 |
|---|
| 3443 | Ignore-this: 9a9866ad88eae871cb98c6795c12349b |
|---|
| 3444 | |
|---|
| 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. |
|---|
| 3448 | |
|---|
| 3449 | ] |
|---|
| 3450 | [Use a local interestingDict function instead of importing SimplUtils.interestingArg |
|---|
| 3451 | simonpj@microsoft.com**20090402152246 |
|---|
| 3452 | Ignore-this: d01d1a42067c2f907a1f2fb2ddec4ada |
|---|
| 3453 | |
|---|
| 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. |
|---|
| 3457 | |
|---|
| 3458 | |
|---|
| 3459 | ] |
|---|
| 3460 | [Better panic reporting |
|---|
| 3461 | simonpj@microsoft.com**20090402151846 |
|---|
| 3462 | Ignore-this: abbd0ab8e2e8771012c17e0fc66fed41 |
|---|
| 3463 | |
|---|
| 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. |
|---|
| 3467 | |
|---|
| 3468 | ] |
|---|
| 3469 | [Fix pragmas in binder-swapping |
|---|
| 3470 | simonpj@microsoft.com**20090402151616 |
|---|
| 3471 | Ignore-this: 422672152247c7732c56e850f3317546 |
|---|
| 3472 | |
|---|
| 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. |
|---|
| 3476 | |
|---|
| 3477 | ] |
|---|
| 3478 | [Float constants to top-level even in first full laziness pass |
|---|
| 3479 | simonpj@microsoft.com**20090402151406 |
|---|
| 3480 | Ignore-this: c81a6d62b760d50348aaa5de0276d7c6 |
|---|
| 3481 | |
|---|
| 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. |
|---|
| 3487 | |
|---|
| 3488 | ] |
|---|
| 3489 | [update the intro section |
|---|
| 3490 | Simon Marlow <marlowsd@gmail.com>**20090401105256 |
|---|
| 3491 | Ignore-this: 90aba333b501ecdedca5116d7204e47f |
|---|
| 3492 | ] |
|---|
| 3493 | [Remove the "Installing GHC" section |
|---|
| 3494 | Simon Marlow <marlowsd@gmail.com>**20090401103418 |
|---|
| 3495 | Ignore-this: 94b8c9bcb8a93442ae19f9547f545f74 |
|---|
| 3496 | |
|---|
| 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. |
|---|
| 3503 | ] |
|---|
| 3504 | [SPARC: Fix ffi019 split load/store of HsInt64 into two parts to respect alignment constraints |
|---|
| 3505 | Ben.Lippmeier@anu.edu.au**20090331045145] |
|---|
| 3506 | [SPARC NCG: Fix 64 bit addition, carry bit wasn't getting set. |
|---|
| 3507 | Ben.Lippmeier@anu.edu.au**20090330051732] |
|---|
| 3508 | [SPARC NCG: When getting a 64 bit word, promote halves to 64 bit before shifting |
|---|
| 3509 | Ben.Lippmeier@anu.edu.au**20090330050346] |
|---|
| 3510 | [SPARC NCG: HpLim is now always stored on the stack, not in a register |
|---|
| 3511 | Ben.Lippmeier@anu.edu.au**20090331051900 |
|---|
| 3512 | This fixes the out of memory errors we were getting on sparc |
|---|
| 3513 | after the following patch: |
|---|
| 3514 | |
|---|
| 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. |
|---|
| 3521 | ] |
|---|
| 3522 | [Allow Haddock comments in type synonyms |
|---|
| 3523 | David Waern <david.waern@gmail.com>**20090331212306 |
|---|
| 3524 | Ignore-this: 11f1bad22d25d8d0017580d020c1aa5d |
|---|
| 3525 | |
|---|
| 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. |
|---|
| 3529 | |
|---|
| 3530 | Note: |
|---|
| 3531 | |
|---|
| 3532 | * I've modified `ctypedoc` so it allows implicit parameters and equational |
|---|
| 3533 | constraints, just like ctype. |
|---|
| 3534 | |
|---|
| 3535 | * Since `ctypedoc` allows nested foralls, we now allow that in type synonyms. |
|---|
| 3536 | |
|---|
| 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). |
|---|
| 3540 | |
|---|
| 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: |
|---|
| 3546 | |
|---|
| 3547 | > data R = R { field :: Int -- ^ comment on the field } |
|---|
| 3548 | |
|---|
| 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. |
|---|
| 3551 | ] |
|---|
| 3552 | [mkErrorAppDs now takes an SDoc rather than a String |
|---|
| 3553 | Ian Lynagh <igloo@earth.li>**20090331134058 |
|---|
| 3554 | This avoids some showSDoc's where the String then gets converted back |
|---|
| 3555 | into an SDoc. |
|---|
| 3556 | ] |
|---|
| 3557 | [FIX #1779 and qq005: export hs_hpc_module |
|---|
| 3558 | Simon Marlow <marlowsd@gmail.com>**20090330084414 |
|---|
| 3559 | Ignore-this: cacd10985619c25505f0e48400187ccc |
|---|
| 3560 | ] |
|---|
| 3561 | [go back to using $CPUS + 1 for the number of threads to use |
|---|
| 3562 | Simon Marlow <marlowsd@gmail.com>**20090330083032 |
|---|
| 3563 | Ignore-this: 2c1915e2c13b953513a2c16cc86a7073 |
|---|
| 3564 | ] |
|---|
| 3565 | [use a UniqSet for is MathFun, this list is getting quite large |
|---|
| 3566 | Simon Marlow <marlowsd@gmail.com>**20090330082957 |
|---|
| 3567 | Ignore-this: ceaf912ed4ec0d778178e2391715c689 |
|---|
| 3568 | ] |
|---|
| 3569 | [Fix an nasty black hole, concerning computation of isRecursiveTyCon |
|---|
| 3570 | simonpj@microsoft.com**20090330084912 |
|---|
| 3571 | Ignore-this: 3bf163be6629cb933a3be1564ac2b0cc |
|---|
| 3572 | |
|---|
| 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! |
|---|
| 3577 | |
|---|
| 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. |
|---|
| 3582 | |
|---|
| 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. |
|---|
| 3587 | |
|---|
| 3588 | Anyway, it's fine now. |
|---|
| 3589 | |
|---|
| 3590 | ] |
|---|
| 3591 | [Add an extra print to -ddump-tc-trace |
|---|
| 3592 | simonpj@microsoft.com**20090330084835 |
|---|
| 3593 | Ignore-this: 4197fee2974d94a30af97549a858a44 |
|---|
| 3594 | ] |
|---|
| 3595 | [Remove dead code (dataConsStupidTheta) |
|---|
| 3596 | simonpj@microsoft.com**20090330084739 |
|---|
| 3597 | Ignore-this: 56a6f274aa7194f614a34f664c6e80af |
|---|
| 3598 | ] |
|---|
| 3599 | [Fix Trac #246: order of matching in record patterns |
|---|
| 3600 | simonpj@microsoft.com**20090330083736 |
|---|
| 3601 | Ignore-this: 2f0a008e0086cfe7ac5100d4253f4fb1 |
|---|
| 3602 | |
|---|
| 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. |
|---|
| 3608 | |
|---|
| 3609 | Needless to say, that requires a little more code. |
|---|
| 3610 | See Note [Record patterns] in MatchCon.lhs |
|---|
| 3611 | |
|---|
| 3612 | |
|---|
| 3613 | ] |
|---|
| 3614 | [Fix Trac #3126: matching overloaded literals |
|---|
| 3615 | simonpj@microsoft.com**20090330083435 |
|---|
| 3616 | Ignore-this: 560c5e7dba95400bef4a73569ea26b82 |
|---|
| 3617 | |
|---|
| 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!) |
|---|
| 3622 | |
|---|
| 3623 | See Note [Grouping overloaded literal patterns] in Match.lhs |
|---|
| 3624 | |
|---|
| 3625 | If this merges smoothly to 6.10, go for it, but it's very much |
|---|
| 3626 | a corner case. |
|---|
| 3627 | |
|---|
| 3628 | Thank you Claus! |
|---|
| 3629 | |
|---|
| 3630 | ] |
|---|
| 3631 | [White space cosmetics only |
|---|
| 3632 | simonpj@microsoft.com**20090330083103 |
|---|
| 3633 | Ignore-this: c52ebfa8f85e81abcd8694b3a30c6a63 |
|---|
| 3634 | ] |
|---|
| 3635 | [Improve mkDupableCont; and fix Trac #3116 |
|---|
| 3636 | simonpj@microsoft.com**20090325095205 |
|---|
| 3637 | |
|---|
| 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. |
|---|
| 3641 | |
|---|
| 3642 | Extensive comments in Note [Duplicating StrictArg]. |
|---|
| 3643 | |
|---|
| 3644 | ] |
|---|
| 3645 | [Avoid quadratic complexity in occurrence analysis (fix Trac #1969) |
|---|
| 3646 | simonpj@microsoft.com**20090323103826 |
|---|
| 3647 | |
|---|
| 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. |
|---|
| 3651 | |
|---|
| 3652 | See Note [Complexity of loop breaking] for the details. |
|---|
| 3653 | |
|---|
| 3654 | ] |
|---|
| 3655 | [Improve arity propagation in the specialiser |
|---|
| 3656 | simonpj@microsoft.com**20090323101614 |
|---|
| 3657 | |
|---|
| 3658 | This patch makes the specialiser propagate arities a bit more |
|---|
| 3659 | eagerly, which avoids a spurious warning in the simplifier. |
|---|
| 3660 | |
|---|
| 3661 | See Note [Arity decrease] in Simplify.lhs |
|---|
| 3662 | |
|---|
| 3663 | ] |
|---|
| 3664 | [check for ThreadRelocated in checkBlackHoles() |
|---|
| 3665 | Simon Marlow <marlowsd@gmail.com>**20090326140343 |
|---|
| 3666 | Ignore-this: 5d63f26567030cf0ccfa33da82702f86 |
|---|
| 3667 | ] |
|---|
| 3668 | [syb no longer needs to be wired in |
|---|
| 3669 | Ian Lynagh <igloo@earth.li>**20090326130517] |
|---|
| 3670 | [Template Haskell: added bang patterns |
|---|
| 3671 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090326100208 |
|---|
| 3672 | Ignore-this: f15890cd7ee7fee664af342796780443 |
|---|
| 3673 | ] |
|---|
| 3674 | [Template Haskell: support for kind annotations |
|---|
| 3675 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090326085520 |
|---|
| 3676 | Ignore-this: 722c23eac614089d24a8e8373a13de3b |
|---|
| 3677 | ] |
|---|
| 3678 | [update list of C math functions |
|---|
| 3679 | Bertram 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) |
|---|
| 3682 | |
|---|
| 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). |
|---|
| 3685 | ] |
|---|
| 3686 | [Template Haskell: make reify aware of type families |
|---|
| 3687 | Manuel 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. |
|---|
| 3695 | ] |
|---|
| 3696 | [Template Haskell: support for INLINE and SPECIALISE pragmas |
|---|
| 3697 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090324232940 |
|---|
| 3698 | Ignore-this: 1f6c2e0de01842da7c9384d3ccafcb63 |
|---|
| 3699 | ] |
|---|
| 3700 | [fix an fprintf that should be fputs (quiets gcc) |
|---|
| 3701 | Simon Marlow <marlowsd@gmail.com>**20090322195441] |
|---|
| 3702 | [check return value of write (quiets gcc) |
|---|
| 3703 | Simon Marlow <marlowsd@gmail.com>**20090322195319] |
|---|
| 3704 | [Fix locking in evacuate_large() (FIX openfile008(threaded2)) |
|---|
| 3705 | Simon Marlow <marlowsd@gmail.com>**20090323092953 |
|---|
| 3706 | Ignore-this: 2c6c2790676c3bcd40f0a0b6030d31dc |
|---|
| 3707 | ] |
|---|
| 3708 | [Please the -Wall police by moving a variable declaration; really FIX getNumberOfProcessors() for MacOS X |
|---|
| 3709 | Austin Seipp <mad.one@gmail.com>**20090320124846 |
|---|
| 3710 | Ignore-this: fcd0015e0923855df814f55d88770db2 |
|---|
| 3711 | ] |
|---|
| 3712 | [wibble in setExecutable |
|---|
| 3713 | Austin Seipp <mad.one@gmail.com>**20090320120043 |
|---|
| 3714 | Ignore-this: 968aa9856a5494e4e58ca8a20106298f |
|---|
| 3715 | ] |
|---|
| 3716 | [FIX getNumberOfProcessors() on MacOS X |
|---|
| 3717 | Austin Seipp <mad.one@gmail.com>**20090318023127 |
|---|
| 3718 | Ignore-this: 8df07f3353a8e12be9becf4b855d5fdf |
|---|
| 3719 | |
|---|
| 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. |
|---|
| 3722 | ] |
|---|
| 3723 | [Work around Solaris's grep not supporting -q |
|---|
| 3724 | Ian Lynagh <igloo@earth.li>**20090319171501] |
|---|
| 3725 | [Some wording wibbles from Thorkil |
|---|
| 3726 | Ian Lynagh <igloo@earth.li>**20090319165916] |
|---|
| 3727 | [Fix bug in setThreadAffinity() (Linux) |
|---|
| 3728 | Simon Marlow <marlowsd@gmail.com>**20090320100446 |
|---|
| 3729 | Ignore-this: 6e8b430fe03959f7e7f8c641d5a589f6 |
|---|
| 3730 | ] |
|---|
| 3731 | [Implement setThreadAffinity for Mac OS X (from 10.5) |
|---|
| 3732 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090320071347 |
|---|
| 3733 | Ignore-this: d5e2104b4a011fc98500527741c5e7a7 |
|---|
| 3734 | ] |
|---|
| 3735 | [Fix warnings with older versions of gcc (3.4.5) |
|---|
| 3736 | Simon Marlow <marlowsd@gmail.com>**20090319124932] |
|---|
| 3737 | [wibble for getNumberOfProcessors |
|---|
| 3738 | Simon Marlow <marlowsd@gmail.com>**20090318165936 |
|---|
| 3739 | Ignore-this: 60a776b8250590f72e45c941b810f14a |
|---|
| 3740 | ] |
|---|
| 3741 | [Set thread affinity with +RTS -qa (only on Linux so far) |
|---|
| 3742 | Simon Marlow <marlowsd@gmail.com>**20090318154719 |
|---|
| 3743 | Ignore-this: a799d276f29dd24c655e1f423eb6743e |
|---|
| 3744 | ] |
|---|
| 3745 | [Template Haskell support for equality constraints |
|---|
| 3746 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090319132347 |
|---|
| 3747 | Ignore-this: 2a0150d9466b0552c5094cdcdc08dbe5 |
|---|
| 3748 | ] |
|---|
| 3749 | [add missing case in ENTER() (fixes readwrite002(profasm) crash) |
|---|
| 3750 | Simon Marlow <marlowsd@gmail.com>**20090319102126 |
|---|
| 3751 | Ignore-this: 5599d4df888e830a8865e57e6745e094 |
|---|
| 3752 | ] |
|---|
| 3753 | [FIX unregisterised build |
|---|
| 3754 | Simon Marlow <marlowsd@gmail.com>**20090319100954 |
|---|
| 3755 | Ignore-this: 97f15b77b030f1f26b0827e6335a8251 |
|---|
| 3756 | ] |
|---|
| 3757 | [Template Haskell: support for type family declarations |
|---|
| 3758 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090319084306 |
|---|
| 3759 | Ignore-this: b9f5f5af61a5da53dc4326f380fdb72e |
|---|
| 3760 | ] |
|---|
| 3761 | [Comment explaining use of seq in DFMonad |
|---|
| 3762 | dias@eecs.tufts.edu**20090318210138] |
|---|
| 3763 | [FIX unregisterised target by #ifdefing targetPlatform stuff |
|---|
| 3764 | Simon 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. |
|---|
| 3769 | ] |
|---|
| 3770 | [Removed a trace |
|---|
| 3771 | dias@eecs.tufts.edu**20090318151343] |
|---|
| 3772 | [Calling convention bug and cleanup |
|---|
| 3773 | dias@eecs.tufts.edu**20090317204238 |
|---|
| 3774 | - yet another wrong calling convention; this one was a special case for returning one |
|---|
| 3775 | value. |
|---|
| 3776 | ] |
|---|
| 3777 | [Inconsistent type and arguments in safe foreign calls... |
|---|
| 3778 | dias@eecs.tufts.edu**20090316214654 |
|---|
| 3779 | - The function argument was stripped from the argument list but not from the type. |
|---|
| 3780 | Now they're both stripped. |
|---|
| 3781 | ] |
|---|
| 3782 | [stack overflows and out of memory's |
|---|
| 3783 | dias@eecs.tufts.edu**20090316213506 |
|---|
| 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... |
|---|
| 3788 | ] |
|---|
| 3789 | [Add the notion of "constructor-like" Ids for rule-matching |
|---|
| 3790 | simonpj@microsoft.com**20090318105911 |
|---|
| 3791 | Ignore-this: 9249b00a2292563e68d5d715376b216c |
|---|
| 3792 | |
|---|
| 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) #-} |
|---|
| 3798 | |
|---|
| 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)). |
|---|
| 3805 | |
|---|
| 3806 | The main changes are: |
|---|
| 3807 | - Syntax |
|---|
| 3808 | |
|---|
| 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. |
|---|
| 3812 | |
|---|
| 3813 | - The occurrence analyser (OccAnal) and simplifier (Simplify) treat |
|---|
| 3814 | CONLIKE thing like constructors, by ANF-ing them |
|---|
| 3815 | |
|---|
| 3816 | - New function coreUtils.exprIsExpandable is like exprIsCheap, but |
|---|
| 3817 | additionally spots applications of CONLIKE functions |
|---|
| 3818 | |
|---|
| 3819 | - A CoreUnfolding has a field that caches exprIsExpandable |
|---|
| 3820 | |
|---|
| 3821 | - The rule matcher consults this field. See |
|---|
| 3822 | Note [Expanding variables] in Rules.lhs. |
|---|
| 3823 | |
|---|
| 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. |
|---|
| 3829 | |
|---|
| 3830 | ] |
|---|
| 3831 | [Fixes to "Retract Hp *before* checking for HpLim==0" |
|---|
| 3832 | Simon Marlow <marlowsd@gmail.com>**20090318111847 |
|---|
| 3833 | Ignore-this: 154a41eeb18a775465db29c818d1ec3a |
|---|
| 3834 | ] |
|---|
| 3835 | [Add fast event logging |
|---|
| 3836 | Simon Marlow <marlowsd@gmail.com>**20090317164214 |
|---|
| 3837 | Ignore-this: c470164a5e66dca06fddc2fe172025de |
|---|
| 3838 | |
|---|
| 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. |
|---|
| 3843 | |
|---|
| 3844 | New GHC option: |
|---|
| 3845 | |
|---|
| 3846 | -eventlog (link-time option) Enables event logging. |
|---|
| 3847 | |
|---|
| 3848 | +RTS -l (runtime option) Generates <prog>.eventlog with |
|---|
| 3849 | the binary event information. |
|---|
| 3850 | |
|---|
| 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). |
|---|
| 3854 | |
|---|
| 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. |
|---|
| 3861 | |
|---|
| 3862 | (Todo: docs) |
|---|
| 3863 | ] |
|---|
| 3864 | [FIX biographical profiling (#3039, probably #2297) |
|---|
| 3865 | Simon 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). |
|---|
| 3873 | ] |
|---|
| 3874 | [Add getNumberOfProcessors(), FIX MacOS X build problem (hopefully) |
|---|
| 3875 | Simon Marlow <marlowsd@gmail.com>**20090317093309 |
|---|
| 3876 | Ignore-this: 3de51351864f7276f3f887cca5385294 |
|---|
| 3877 | Somebody needs to implement getNumberOfProcessors() for MacOS X, |
|---|
| 3878 | currently it will return 1. |
|---|
| 3879 | ] |
|---|
| 3880 | [FIX #3093: stub filenames when using -osuf |
|---|
| 3881 | Simon Marlow <marlowsd@gmail.com>**20090316203437 |
|---|
| 3882 | Ignore-this: 999de35952804c760462ae32cfdd04d5 |
|---|
| 3883 | Also remove some unused cruft |
|---|
| 3884 | ] |
|---|
| 3885 | [Don't call processHeapClosureForDead on pinned blocks |
|---|
| 3886 | Simon Marlow <marlowsd@gmail.com>**20090316160534 |
|---|
| 3887 | Ignore-this: 33a60e4ce78db6cc5bab399ec673ad0a |
|---|
| 3888 | Fixes heapprof001(prof_hp) after fix for #2917 |
|---|
| 3889 | ] |
|---|
| 3890 | [Retract Hp *before* checking for HpLim==0 |
|---|
| 3891 | Simon 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. |
|---|
| 3895 | ] |
|---|
| 3896 | [eliminate some not-quite-duplicate code |
|---|
| 3897 | Simon Marlow <marlowsd@gmail.com>**20090313155619 |
|---|
| 3898 | Ignore-this: 2edadf2f966bf37868b355da1faa211c |
|---|
| 3899 | ] |
|---|
| 3900 | [start finalizers on the current Capability rather than last_free_capability |
|---|
| 3901 | Simon Marlow <marlowsd@gmail.com>**20090313155602 |
|---|
| 3902 | Ignore-this: b3e7bc2a7966cd5778e55a0e5dc83553 |
|---|
| 3903 | ] |
|---|
| 3904 | [cope with ThreadRelocated on the sleeping_queue |
|---|
| 3905 | Simon Marlow <marlowsd@gmail.com>**20090217132757 |
|---|
| 3906 | Ignore-this: 6b73d2b2e4142d7db4e7db4570f644ff |
|---|
| 3907 | ] |
|---|
| 3908 | [Fix Trac #3095, and make RdrHsSyn warning-clean |
|---|
| 3909 | simonpj@microsoft.com**20090316174706 |
|---|
| 3910 | Ignore-this: db47522307c92d93e0037143dee74375 |
|---|
| 3911 | ] |
|---|
| 3912 | [Layout only |
|---|
| 3913 | simonpj@microsoft.com**20090316164619 |
|---|
| 3914 | Ignore-this: af7c9018e873b1618bfe4a2f3102a0c7 |
|---|
| 3915 | ] |
|---|
| 3916 | [Reject foralls in constructor args in 'deriving', except for Functor etc |
|---|
| 3917 | simonpj@microsoft.com**20090316164502 |
|---|
| 3918 | Ignore-this: 2538aee2634fb587d74a8dc1a064cb5b |
|---|
| 3919 | ] |
|---|
| 3920 | [Fix Trac #3092 |
|---|
| 3921 | simonpj@microsoft.com**20090316164049 |
|---|
| 3922 | Ignore-this: 9502fdd84b7b1849f6c37afe12d46d64 |
|---|
| 3923 | |
|---|
| 3924 | We were't checking that a 'data/type instance' was extending a family |
|---|
| 3925 | type constructor. |
|---|
| 3926 | |
|---|
| 3927 | Merge to 6.10 if we ever release 6.10.3 (or do it for 6.10.2). |
|---|
| 3928 | |
|---|
| 3929 | |
|---|
| 3930 | ] |
|---|
| 3931 | [Ensure the orientation of var-var equalities is correct for instatiation |
|---|
| 3932 | Manuel 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. |
|---|
| 3938 | ] |
|---|
| 3939 | [Use work-stealing for load-balancing in the GC |
|---|
| 3940 | Simon Marlow <marlowsd@gmail.com>**20090313135116 |
|---|
| 3941 | Ignore-this: d05027217c516de3d75f4d1844c860fd |
|---|
| 3942 | |
|---|
| 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). |
|---|
| 3946 | |
|---|
| 3947 | To get the "PARGC3" configuration described in the "Runtime support |
|---|
| 3948 | for Multicore Haskell" paper, use "+RTS -qg0 -qb -RTS". |
|---|
| 3949 | |
|---|
| 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. |
|---|
| 3957 | ] |
|---|
| 3958 | [Fix Trac #3087: derived Data now defines dataCast1/2 |
|---|
| 3959 | simonpj@microsoft.com**20090313134436 |
|---|
| 3960 | Ignore-this: df43405a2ef5adef20f9eb3675e7411f |
|---|
| 3961 | |
|---|
| 3962 | This patch generates code in deriving(Data) for dataCast1 or 2 as |
|---|
| 3963 | appropriate. |
|---|
| 3964 | |
|---|
| 3965 | While I was there I did some refactoring (of course), pulling out |
|---|
| 3966 | the TcDeriv.inferConstraints as a separate function. |
|---|
| 3967 | |
|---|
| 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. |
|---|
| 3971 | |
|---|
| 3972 | ] |
|---|
| 3973 | [Adjust error message slightly to make it clearer |
|---|
| 3974 | simonpj@microsoft.com**20090313134402 |
|---|
| 3975 | Ignore-this: 46b0abb88c1fe11cd4ff059955b81561 |
|---|
| 3976 | ] |
|---|
| 3977 | [just comment formatting |
|---|
| 3978 | Simon Marlow <marlowsd@gmail.com>**20090313132339 |
|---|
| 3979 | Ignore-this: f53b0dca0896134dd704fc3aca3ea93f |
|---|
| 3980 | ] |
|---|
| 3981 | [Add "+RTS -N" to determine the -N value automatically (see #1741) |
|---|
| 3982 | Simon Marlow <marlowsd@gmail.com>**20090313114646 |
|---|
| 3983 | Ignore-this: b5dd21278e02f4a161093466ca97dce |
|---|
| 3984 | ] |
|---|
| 3985 | [tidy up "missing symbol" error message |
|---|
| 3986 | Simon Marlow <marlowsd@gmail.com>**20090313101334] |
|---|
| 3987 | [Fix sanity checking after fix to #2917 |
|---|
| 3988 | Simon Marlow <marlowsd@gmail.com>**20090312093855] |
|---|
| 3989 | [Instead of a separate context-switch flag, set HpLim to zero |
|---|
| 3990 | Simon 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. |
|---|
| 3995 | |
|---|
| 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. |
|---|
| 4001 | ] |
|---|
| 4002 | [TAG 2009-03-13 |
|---|
| 4003 | Ian Lynagh <igloo@earth.li>**20090313021251] |
|---|
| 4004 | Patch bundle hash: |
|---|
| 4005 | b2433717cebe0927bc64a992c34a15c16ba0c167 |
|---|