| 1 | |
|---|
| 2 | New patches: |
|---|
| 3 | |
|---|
| 4 | [Be more liberal when typechecking rebindable do-notation |
|---|
| 5 | Pepe Iborra <mnislaih@gmail.com>**20080201193440 |
|---|
| 6 | |
|---|
| 7 | More Trac #1537. The previous patch still assumed that |
|---|
| 8 | the monadic combinators have types of shape |
|---|
| 9 | |
|---|
| 10 | (>>=) :: rhs_ty -> (a -> res_ty) -> res_ty |
|---|
| 11 | (>>) :: rhs_ty -> res_ty -> res_ty |
|---|
| 12 | |
|---|
| 13 | This patch generalizes those assumptions |
|---|
| 14 | ] { |
|---|
| 15 | hunk ./compiler/deSugar/DsExpr.lhs 554 |
|---|
| 16 | - result_ty (cantFailMatchResult body) |
|---|
| 17 | + (exprType body) (cantFailMatchResult body) |
|---|
| 18 | hunk ./compiler/typecheck/TcMatches.lhs 470 |
|---|
| 19 | -tcDoStmt ctxt (BindStmt pat rhs bind_op fail_op) reft_res_ty@(_,res_ty) thing_inside |
|---|
| 20 | +tcDoStmt ctxt (BindStmt pat rhs bind_op fail_op) reft_res_ty@(reft,res_ty) thing_inside |
|---|
| 21 | hunk ./compiler/typecheck/TcMatches.lhs 479 |
|---|
| 22 | - -- Deal with rebindable syntax; (>>=) :: rhs_ty -> (a -> res_ty) -> res_ty |
|---|
| 23 | + -- Deal with rebindable syntax; (>>=) :: rhs_ty -> (a -> thing_ty) -> res_ty |
|---|
| 24 | + ; thing_ty <- newFlexiTyVarTy liftedTypeKind |
|---|
| 25 | hunk ./compiler/typecheck/TcMatches.lhs 484 |
|---|
| 26 | - (mkFunTys [rhs_ty, mkFunTy pat_ty res_ty] res_ty) |
|---|
| 27 | + (mkFunTys [rhs_ty, mkFunTy pat_ty thing_ty] res_ty) |
|---|
| 28 | hunk ./compiler/typecheck/TcMatches.lhs 492 |
|---|
| 29 | - ; (pat', thing) <- tcLamPat pat pat_ty reft_res_ty thing_inside |
|---|
| 30 | + ; (pat', thing) <- tcLamPat pat pat_ty (reft,thing_ty) thing_inside |
|---|
| 31 | hunk ./compiler/typecheck/TcMatches.lhs 497 |
|---|
| 32 | -tcDoStmt ctxt (ExprStmt rhs then_op _) reft_res_ty@(_,res_ty) thing_inside |
|---|
| 33 | +tcDoStmt ctxt (ExprStmt rhs then_op _) reft_res_ty@(reft,res_ty) thing_inside |
|---|
| 34 | hunk ./compiler/typecheck/TcMatches.lhs 499 |
|---|
| 35 | - |
|---|
| 36 | - -- Deal with rebindable syntax; (>>) :: rhs_ty -> res_ty -> res_ty |
|---|
| 37 | + ; thing_ty <- newFlexiTyVarTy liftedTypeKind |
|---|
| 38 | + -- Deal with rebindable syntax; (>>) :: rhs_ty -> thing_ty -> res_ty |
|---|
| 39 | hunk ./compiler/typecheck/TcMatches.lhs 502 |
|---|
| 40 | - (mkFunTys [rhs_ty, res_ty] res_ty) |
|---|
| 41 | + (mkFunTys [rhs_ty, thing_ty] res_ty) |
|---|
| 42 | hunk ./compiler/typecheck/TcMatches.lhs 504 |
|---|
| 43 | - ; thing <- thing_inside reft_res_ty |
|---|
| 44 | + ; thing <- thing_inside (reft,thing_ty) |
|---|
| 45 | } |
|---|
| 46 | |
|---|
| 47 | Context: |
|---|
| 48 | |
|---|
| 49 | [Fix #2062: foldr1 problem in hpc tool |
|---|
| 50 | andy@galois.com**20080126210607] |
|---|
| 51 | [Fix do-notation so that it works with -DDEBUG |
|---|
| 52 | simonpj@microsoft.com**20080125163101] |
|---|
| 53 | [Be a little keener to inline |
|---|
| 54 | simonpj@microsoft.com**20080125104616 |
|---|
| 55 | |
|---|
| 56 | This is really a bug. A saturated call in an "interesting" context |
|---|
| 57 | should inline, but there was a strange "n_val_args > 0" condition, which |
|---|
| 58 | was stopping it. Reported by Roman. |
|---|
| 59 | |
|---|
| 60 | |
|---|
| 61 | ] |
|---|
| 62 | [Fix the build |
|---|
| 63 | Ian Lynagh <igloo@earth.li>**20080124141800 |
|---|
| 64 | Work around various problems caused by some of the monadification patches |
|---|
| 65 | not being applied. |
|---|
| 66 | ] |
|---|
| 67 | [Replace ioToTcRn with liftIO |
|---|
| 68 | Twan van Laarhoven <twanvl@gmail.com>**20080117220553] |
|---|
| 69 | [Remove unused custom versions of monad combinators from IOEnv |
|---|
| 70 | Twan van Laarhoven <twanvl@gmail.com>**20080117215835] |
|---|
| 71 | [Remove unused custom versions of monad combinators from UniqSupply |
|---|
| 72 | Twan van Laarhoven <twanvl@gmail.com>**20080117215752] |
|---|
| 73 | [Replace remaining uses of ioToIOEnv by liftIO, remove ioToIOEnv |
|---|
| 74 | Twan van Laarhoven <twanvl@gmail.com>**20080117215233] |
|---|
| 75 | [Monadify iface/BuildTyCl: use return |
|---|
| 76 | Twan van Laarhoven <twanvl@gmail.com>**20080117215036] |
|---|
| 77 | [Monadify iface/TcIface: use do, return, applicative, standard monad functions |
|---|
| 78 | Twan van Laarhoven <twanvl@gmail.com>**20080117214938] |
|---|
| 79 | [Monadify iface/MkIface: use do, return and standard monad functions |
|---|
| 80 | Twan van Laarhoven <twanvl@gmail.com>**20080117214441] |
|---|
| 81 | [Monadify iface/LoadIface: use return and liftIO |
|---|
| 82 | Twan van Laarhoven <twanvl@gmail.com>**20080117214233] |
|---|
| 83 | [Monadify iface/IfaceEnv: use do, return and standard monad functions |
|---|
| 84 | Twan van Laarhoven <twanvl@gmail.com>**20080117214041] |
|---|
| 85 | [Monadify typecheck/TcRnMonad: use return, standard monad functions and liftIO |
|---|
| 86 | Twan van Laarhoven <twanvl@gmail.com>**20080117213850] |
|---|
| 87 | [Monadify typecheck/TcEnv: use do, return, applicative, standard monad functions |
|---|
| 88 | Twan van Laarhoven <twanvl@gmail.com>**20080117213636] |
|---|
| 89 | [Monadify typecheck/TcRnDriver: use return and standard monad functions |
|---|
| 90 | Twan van Laarhoven <twanvl@gmail.com>**20080117213352] |
|---|
| 91 | [Monadify typecheck/TcMatches: use return and standard monad functions |
|---|
| 92 | Twan van Laarhoven <twanvl@gmail.com>**20080117213307] |
|---|
| 93 | [Monadify typecheck/TcMType: use do, return, applicative, standard monad functions |
|---|
| 94 | Twan van Laarhoven <twanvl@gmail.com>**20080117213242] |
|---|
| 95 | [Monadify typecheck/TcInstDcls: use do, return and standard monad functions |
|---|
| 96 | Twan van Laarhoven <twanvl@gmail.com>**20080117213040] |
|---|
| 97 | [Monadify typecheck/TcHsType: use do, return and standard monad functions |
|---|
| 98 | Twan van Laarhoven <twanvl@gmail.com>**20080117212822] |
|---|
| 99 | [Monadify typecheck/TcSimplify: use do, return and standard monad functions |
|---|
| 100 | Twan van Laarhoven <twanvl@gmail.com>**20080117212200] |
|---|
| 101 | [Monadify typecheck/TcSplice: use do and return |
|---|
| 102 | Twan van Laarhoven <twanvl@gmail.com>**20080117211911] |
|---|
| 103 | [Monadify typecheck/TcTyClsDecls: use return and standard monad functions |
|---|
| 104 | Twan van Laarhoven <twanvl@gmail.com>**20080117211746] |
|---|
| 105 | [Monadify typecheck/TcDefaults: use return and standard monad functions |
|---|
| 106 | Twan van Laarhoven <twanvl@gmail.com>**20080117211558] |
|---|
| 107 | [Monadify typecheck/TcDeriv: use return |
|---|
| 108 | Twan van Laarhoven <twanvl@gmail.com>**20080117211507] |
|---|
| 109 | [Monadify typecheck/TcClassDcl: use do, return and standard monad functions |
|---|
| 110 | Twan van Laarhoven <twanvl@gmail.com>**20080117211439] |
|---|
| 111 | [Monadify typecheck/TcBinds: use do, return and standard monad functions |
|---|
| 112 | Twan van Laarhoven <twanvl@gmail.com>**20080117211035] |
|---|
| 113 | [Monadify typecheck/TcArrows: use do and return |
|---|
| 114 | Twan van Laarhoven <twanvl@gmail.com>**20080117210818] |
|---|
| 115 | [Monadify typecheck/Inst: use do, return and standard monad functions |
|---|
| 116 | Twan van Laarhoven <twanvl@gmail.com>**20080117210655] |
|---|
| 117 | [Monadify typecheck/TcUnify: use do, return and standard monad functions |
|---|
| 118 | Twan van Laarhoven <twanvl@gmail.com>**20080117210213 |
|---|
| 119 | there may be some accidental tab->space conversion |
|---|
| 120 | ] |
|---|
| 121 | [Monadify typecheck/TcTyFuns: use standard monad functions |
|---|
| 122 | Twan van Laarhoven <twanvl@gmail.com>**20080117205505] |
|---|
| 123 | [Monadify typecheck/TcPat: use return and standard monad functions |
|---|
| 124 | Twan van Laarhoven <twanvl@gmail.com>**20080117205423] |
|---|
| 125 | [Monadify typecheck/TcRules: use do, return and standard monad functions |
|---|
| 126 | Twan van Laarhoven <twanvl@gmail.com>**20080117205307] |
|---|
| 127 | [Monadify typecheck/TcForeign: use do, return and standard monad functions |
|---|
| 128 | Twan van Laarhoven <twanvl@gmail.com>**20080117204934] |
|---|
| 129 | [Monadify typecheck/TcExpr: use do, return and standard monad functions |
|---|
| 130 | Twan van Laarhoven <twanvl@gmail.com>**20080117204603] |
|---|
| 131 | [Monadify specialise/Specialise: use do, return, standard monad functions and MonadUnique |
|---|
| 132 | Twan van Laarhoven <twanvl@gmail.com>**20080117204330] |
|---|
| 133 | [Monadify specialise/SpecConstr: use do, return and standard monad functions |
|---|
| 134 | Twan van Laarhoven <twanvl@gmail.com>**20080117203842] |
|---|
| 135 | [Monadify stgSyn/StgLint |
|---|
| 136 | Twan van Laarhoven <twanvl@gmail.com>**20080117203042 |
|---|
| 137 | - made LintM a newtype instead of a type synonym |
|---|
| 138 | - use do, return and standard monad functions |
|---|
| 139 | - use MaybeT where `thenMaybeL` was used |
|---|
| 140 | - removed custom versions of monad functions |
|---|
| 141 | |
|---|
| 142 | ] |
|---|
| 143 | [Monadify stgSyn/CoreToStg |
|---|
| 144 | Twan van Laarhoven <twanvl@gmail.com>**20080117202619 |
|---|
| 145 | - made LneM a newtype instead of a type synonym |
|---|
| 146 | - use do, return and standard monad functions |
|---|
| 147 | - removed custom versions of monad functions |
|---|
| 148 | ] |
|---|
| 149 | [Remove generic monad function from State, it was moved to MonadUtils |
|---|
| 150 | Twan van Laarhoven <twanvl@gmail.com>**20080117202144] |
|---|
| 151 | [Added MaybeT monad transformer to utils/Maybes |
|---|
| 152 | Twan van Laarhoven <twanvl@gmail.com>**20080117202051] |
|---|
| 153 | [Removed unused Maybe functions, use the standard Maybe monad instead |
|---|
| 154 | Twan van Laarhoven <twanvl@gmail.com>**20080117201953] |
|---|
| 155 | [MonadIO instance for IOEnv |
|---|
| 156 | Twan van Laarhoven <twanvl@gmail.com>**20080117201812] |
|---|
| 157 | [Monadify simplCore/SimplMonad: custom monad functions are no longer needed |
|---|
| 158 | Twan van Laarhoven <twanvl@gmail.com>**20080117200354] |
|---|
| 159 | [Monadify simplCore/SimplMonad: use MonadUnique instance instead of custom functions |
|---|
| 160 | Twan van Laarhoven <twanvl@gmail.com>**20080117200228] |
|---|
| 161 | [Monadify simplCore/SetLevels: use do, return, standard monad functions and MonadUnique |
|---|
| 162 | Twan van Laarhoven <twanvl@gmail.com>**20080117195958] |
|---|
| 163 | [Monadify simplCore/SimplUtils: use do, return, standard monad functions and MonadUnique |
|---|
| 164 | Twan van Laarhoven <twanvl@gmail.com>**20080117195625] |
|---|
| 165 | [Monadify simplCore/Simplify: use do and return |
|---|
| 166 | Twan van Laarhoven <twanvl@gmail.com>**20080117195408] |
|---|
| 167 | [Monadify simplCore/SimplEnv: use standard monad functions |
|---|
| 168 | Twan van Laarhoven <twanvl@gmail.com>**20080117195255] |
|---|
| 169 | [Monadify simplCore/SimplCore: use do, return and standard monad functions |
|---|
| 170 | Twan van Laarhoven <twanvl@gmail.com>**20080117195149] |
|---|
| 171 | [Monadify profiling/SCCfinal |
|---|
| 172 | Twan van Laarhoven <twanvl@gmail.com>**20080117194417 |
|---|
| 173 | - change monad type synonym into a newtype |
|---|
| 174 | - use do, return and standard monad functions |
|---|
| 175 | ] |
|---|
| 176 | [Monadify coreSyn/CorePrep: use do, return, applicative, standard monad functions |
|---|
| 177 | Twan van Laarhoven <twanvl@gmail.com>**20080117193154] |
|---|
| 178 | [Monadify rename/RnTypes: use do, return and standard monad functions |
|---|
| 179 | Twan van Laarhoven <twanvl@gmail.com>**20080117190823] |
|---|
| 180 | [Monadify rename/RnPat: use do, return and standard monad functions |
|---|
| 181 | Twan van Laarhoven <twanvl@gmail.com>**20080117190033] |
|---|
| 182 | [Monadify rename/RnNames: use return and standard monad functions |
|---|
| 183 | Twan van Laarhoven <twanvl@gmail.com>**20080117185837] |
|---|
| 184 | [seqMaybe is more commonly known as mplus |
|---|
| 185 | Twan van Laarhoven <twanvl@gmail.com>**20080117185330] |
|---|
| 186 | [Monadify rename/RnBinds: use do, return and standard monad functions |
|---|
| 187 | Twan van Laarhoven <twanvl@gmail.com>**20080117184354] |
|---|
| 188 | [Monadify stranal/StrictAnal: use the State monad instead of a custom thing |
|---|
| 189 | Twan van Laarhoven <twanvl@gmail.com>**20080117180449] |
|---|
| 190 | [Monadify stranal/WwLib: use do, return, applicative, standard monad functions |
|---|
| 191 | Twan van Laarhoven <twanvl@gmail.com>**20080117180022] |
|---|
| 192 | [Added MonadUnique class for monads that have a unique supply |
|---|
| 193 | Twan van Laarhoven <twanvl@gmail.com>**20080117175616] |
|---|
| 194 | [Monadify stranal/WorkWrap: use do, return, applicative, standard monad functions |
|---|
| 195 | Twan van Laarhoven <twanvl@gmail.com>**20080117175007] |
|---|
| 196 | [Added Applicative and Functor instances for State monad |
|---|
| 197 | Twan van Laarhoven <twanvl@gmail.com>**20080117174656] |
|---|
| 198 | [Monadify deSugar/DsMonad: use do, return, applicative, standard monad functions |
|---|
| 199 | Twan van Laarhoven <twanvl@gmail.com>**20080117174432] |
|---|
| 200 | [Monadify deSugar/Desugar: use do, return, applicative, standard monad functions |
|---|
| 201 | Twan van Laarhoven <twanvl@gmail.com>**20080117174130] |
|---|
| 202 | [Monadify deSugar/DsUtils: use do, return, applicative, standard monad functions |
|---|
| 203 | Twan van Laarhoven <twanvl@gmail.com>**20080117173856] |
|---|
| 204 | [Monadify deSugar/DsListComp: use do, return, applicative, standard monad functions |
|---|
| 205 | Twan van Laarhoven <twanvl@gmail.com>**20080117173205] |
|---|
| 206 | [Monadify deSugar/DsForeign: use do, return, applicative, standard monad functions |
|---|
| 207 | Twan van Laarhoven <twanvl@gmail.com>**20080117172843] |
|---|
| 208 | [Monadify deSugar/DsGRHSs: use do, return, applicative, standard monad functions |
|---|
| 209 | Twan van Laarhoven <twanvl@gmail.com>**20080117172228] |
|---|
| 210 | [Monadify deSugar/DsExpr: use do, return, applicative, standard monad functions |
|---|
| 211 | Twan van Laarhoven <twanvl@gmail.com>**20080117164055] |
|---|
| 212 | [Added Applicative instance for IOEnv |
|---|
| 213 | Twan van Laarhoven <twanvl@gmail.com>**20080117162644] |
|---|
| 214 | [Add 'util/MonadUtils.hs' with common monad (and applicative) combinators |
|---|
| 215 | Twan van Laarhoven <twanvl@gmail.com>**20080117161939] |
|---|
| 216 | [Monadify deSugar/MatchLit: use do, return, applicative, standard monad functions |
|---|
| 217 | Twan van Laarhoven <twanvl@gmail.com>**20080117173439] |
|---|
| 218 | [Monadify deSugar/Match: use do, return, applicative, standard monad functions |
|---|
| 219 | Twan van Laarhoven <twanvl@gmail.com>**20080117173336] |
|---|
| 220 | [Monadify deSugar/DsCCall: use do, return, applicative, standard monad functions |
|---|
| 221 | Twan van Laarhoven <twanvl@gmail.com>**20080117165334] |
|---|
| 222 | [Monadify deSugar/DsArrows: use do, return, applicative, standard monad functions |
|---|
| 223 | Twan van Laarhoven <twanvl@gmail.com>**20080117165114] |
|---|
| 224 | [Monadify deSugar/DsBinds: use do, return, applicative, standard monad functions |
|---|
| 225 | Twan van Laarhoven <twanvl@gmail.com>**20080117164746] |
|---|
| 226 | [Added MASSERT macro for assertions in do notation |
|---|
| 227 | Twan van Laarhoven <twanvl@gmail.com>**20080117163112] |
|---|
| 228 | [FIX BUILD wrong imports on non-Windows |
|---|
| 229 | Simon Marlow <simonmar@microsoft.com>**20080124092935] |
|---|
| 230 | [Show CmdLineError exceptions as "<command line>: ..." |
|---|
| 231 | Simon Marlow <simonmar@microsoft.com>**20080123163145 |
|---|
| 232 | instead of something like "ghc-6.8.2: ...", which causes problems in |
|---|
| 233 | the test suite. In any case, "<command line>" seems a more |
|---|
| 234 | appropriate context for these errors, the only question is whether |
|---|
| 235 | we're using CmdLineError incorrectly anywhere. |
|---|
| 236 | ] |
|---|
| 237 | [FIX #1750: in isBrokenPackage, don't loop if the deps are recursive |
|---|
| 238 | Simon Marlow <simonmar@microsoft.com>**20080123160703] |
|---|
| 239 | [FIX #1750: throw out mutually recursive groups of packages |
|---|
| 240 | Simon Marlow <simonmar@microsoft.com>**20080123160635] |
|---|
| 241 | [Windows now doesn't need different values for DQ in the build system |
|---|
| 242 | Ian Lynagh <igloo@earth.li>**20080123173933] |
|---|
| 243 | [Fix setting argv[0] in shell-utils.c on Windows |
|---|
| 244 | Ian Lynagh <igloo@earth.li>**20080123160139] |
|---|
| 245 | [Escape arguments for Windows in shell-tools.c |
|---|
| 246 | Ian Lynagh <igloo@earth.li>**20080123151724] |
|---|
| 247 | [Attach the INLINE Activation pragma to any automatically-generated specialisations |
|---|
| 248 | simonpj@microsoft.com**20080123134012 |
|---|
| 249 | |
|---|
| 250 | Another idea suggested by Roman, happily involving a one-line change. Here's |
|---|
| 251 | the new Note in Specialise: |
|---|
| 252 | |
|---|
| 253 | Note [Auto-specialisation and RULES] |
|---|
| 254 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 255 | Consider: |
|---|
| 256 | g :: Num a => a -> a |
|---|
| 257 | g = ... |
|---|
| 258 | |
|---|
| 259 | f :: (Int -> Int) -> Int |
|---|
| 260 | f w = ... |
|---|
| 261 | {-# RULE f g = 0 #-} |
|---|
| 262 | |
|---|
| 263 | Suppose that auto-specialisation makes a specialised version of |
|---|
| 264 | g::Int->Int That version won't appear in the LHS of the RULE for f. |
|---|
| 265 | So if the specialisation rule fires too early, the rule for f may |
|---|
| 266 | never fire. |
|---|
| 267 | |
|---|
| 268 | It might be possible to add new rules, to "complete" the rewrite system. |
|---|
| 269 | Thus when adding |
|---|
| 270 | RULE forall d. g Int d = g_spec |
|---|
| 271 | also add |
|---|
| 272 | RULE f g_spec = 0 |
|---|
| 273 | |
|---|
| 274 | But that's a bit complicated. For now we ask the programmer's help, |
|---|
| 275 | by *copying the INLINE activation pragma* to the auto-specialised rule. |
|---|
| 276 | So if g says {-# NOINLINE[2] g #-}, then the auto-spec rule will also |
|---|
| 277 | not be active until phase 2. |
|---|
| 278 | |
|---|
| 279 | ] |
|---|
| 280 | [Tidy up the treatment of SPECIALISE pragmas |
|---|
| 281 | simonpj@microsoft.com**20080122122613 |
|---|
| 282 | |
|---|
| 283 | Remove the now-redundant "const-dicts" field in SpecPrag |
|---|
| 284 | |
|---|
| 285 | In dsBinds, abstract over constant dictionaries in the RULE. |
|---|
| 286 | This avoids the creation of a redundant, duplicate, rule later |
|---|
| 287 | in the Specialise pass, which was happening before. |
|---|
| 288 | |
|---|
| 289 | There should be no effect on performance either way, just less |
|---|
| 290 | duplicated code, and the compiler gets a little simpler. |
|---|
| 291 | |
|---|
| 292 | ] |
|---|
| 293 | [Comments only |
|---|
| 294 | simonpj@microsoft.com**20080122122547] |
|---|
| 295 | [FIX #1838, #1987: change where GHCi searches for config files |
|---|
| 296 | Simon Marlow <simonmar@microsoft.com>**20080123143207 |
|---|
| 297 | |
|---|
| 298 | 6.6 behaviour: |
|---|
| 299 | - ./.ghci |
|---|
| 300 | - $HOME/.ghci |
|---|
| 301 | |
|---|
| 302 | 6.8.[12] behaviour: |
|---|
| 303 | - ./.ghci |
|---|
| 304 | - Windows: c:/Documents and Settings/<user>/.ghci |
|---|
| 305 | - Unix: $HOME/.ghci |
|---|
| 306 | |
|---|
| 307 | 6.10 (and 6.8.3 when this is merged): |
|---|
| 308 | - ./.ghci |
|---|
| 309 | - Windows: c:/Documents and Settings/<user>/Application Data/ghc/ghci.conf |
|---|
| 310 | - Unix: $HOME/.ghc/ghci.conf |
|---|
| 311 | - $HOME/.ghci |
|---|
| 312 | |
|---|
| 313 | We will need to document this in the 6.8.3 release notes because it |
|---|
| 314 | may affect Windows users who have adapted their setup to 6.8.[12]. |
|---|
| 315 | ] |
|---|
| 316 | [FIX #1767 :show documentation claimed too much |
|---|
| 317 | Simon Marlow <simonmar@microsoft.com>**20080122152943 |
|---|
| 318 | Also put the :help docs back within 80 columns |
|---|
| 319 | ] |
|---|
| 320 | [fix syntax-error output for :show |
|---|
| 321 | Simon Marlow <simonmar@microsoft.com>**20080122144923] |
|---|
| 322 | [This goes with the patch for #1839, #1463 |
|---|
| 323 | Simon Marlow <simonmar@microsoft.com>**20080122161811] |
|---|
| 324 | [use pathSeparator instead of '/' |
|---|
| 325 | Simon Marlow <simonmar@microsoft.com>**20080122140957] |
|---|
| 326 | [cleanup only |
|---|
| 327 | Simon Marlow <simonmar@microsoft.com>**20080122132047] |
|---|
| 328 | [FIX #1839, #1463, by supporting ghc-pkg bulk queries with substring matching |
|---|
| 329 | claus.reinke@talk21.com**20080121161744 |
|---|
| 330 | |
|---|
| 331 | - #1839 asks for a ghc-pkg dump feature, #1463 for the ability |
|---|
| 332 | to query the same fields in several packages at once. |
|---|
| 333 | |
|---|
| 334 | - this patch enables substring matching for packages in 'list', |
|---|
| 335 | 'describe', and 'field', and for modules in find-module. it |
|---|
| 336 | also allows for comma-separated multiple fields in 'field'. |
|---|
| 337 | substring matching can optionally ignore cases to avoid the |
|---|
| 338 | rather unpredictable capitalisation of packages. |
|---|
| 339 | |
|---|
| 340 | - the patch is not quite as full-featured as the one attached |
|---|
| 341 | to #1839, but avoids the additional dependency on regexps. |
|---|
| 342 | open ended substrings are indicated by '*' (only the three |
|---|
| 343 | forms prefix*, *suffix, *infix* are supported) |
|---|
| 344 | |
|---|
| 345 | - on windows, the use of '*' for package/module name globbing |
|---|
| 346 | leads to conflicts with filename globbing: by default, windows |
|---|
| 347 | programs are self-globbing, and bash adds another level of |
|---|
| 348 | globbing on top of that. it seems impossible to escape '*' |
|---|
| 349 | from both levels of globbing, so we disable default globbing |
|---|
| 350 | for ghc-pkg and ghc-pkg-inplace. users of bash will still |
|---|
| 351 | have filename globbing available, users of cmd won't. |
|---|
| 352 | |
|---|
| 353 | - if it is considered necessary to reenable filename globbing |
|---|
| 354 | for cmd users, it should be done selectively, only for |
|---|
| 355 | filename parameters. to this end, the patch includes a |
|---|
| 356 | glob.hs program which simply echoes its parameters after |
|---|
| 357 | filename globbing. see the commented out glob command in |
|---|
| 358 | Main.hs for usage or testing. |
|---|
| 359 | |
|---|
| 360 | - this covers both tickets, and permits for the most common |
|---|
| 361 | query patterns (finding all packages contributing to the |
|---|
| 362 | System. hierarchy, finding all regex or string packages, |
|---|
| 363 | listing all package maintainers or haddock directories, |
|---|
| 364 | ..), which not only i have wanted to have for a long time. |
|---|
| 365 | |
|---|
| 366 | examples (the quotes are needed to escape shell-based |
|---|
| 367 | filename globbing and should be omitted in cmd.exe): |
|---|
| 368 | |
|---|
| 369 | ghc-pkg list '*regex*' --ignore-case |
|---|
| 370 | ghc-pkg list '*string*' --ignore-case |
|---|
| 371 | ghc-pkg list '*gl*' --ignore-case |
|---|
| 372 | ghc-pkg find-module 'Data.*' |
|---|
| 373 | ghc-pkg find-module '*Monad*' |
|---|
| 374 | ghc-pkg field '*' name,maintainer |
|---|
| 375 | ghc-pkg field '*' haddock-html |
|---|
| 376 | ghc-pkg describe '*' |
|---|
| 377 | |
|---|
| 378 | |
|---|
| 379 | ] |
|---|
| 380 | [Wibble to the OccurAnal fix for RULEs and loop-breakers |
|---|
| 381 | simonpj@microsoft.com**20080121165529] |
|---|
| 382 | [FIX #2049, another problem with the module context on :reload |
|---|
| 383 | Simon Marlow <simonmar@microsoft.com>**20080121145935 |
|---|
| 384 | The previous attempt to fix this (#1873, #1360) left a problem that |
|---|
| 385 | occurred when the first :load of the program failed (#2049). |
|---|
| 386 | |
|---|
| 387 | Now I've implemented a different strategy: between :loads, we remember |
|---|
| 388 | all the :module commands, and just replay them after a :reload. This |
|---|
| 389 | is in addition to remembering all the package modules added with |
|---|
| 390 | :module, which is orthogonal. |
|---|
| 391 | |
|---|
| 392 | This approach is simpler than the previous one, and seems to do the |
|---|
| 393 | right thing in all the cases I could think of. Let's hope this is the |
|---|
| 394 | last bug in this series... |
|---|
| 395 | ] |
|---|
| 396 | [Increase the bar for bootstrapping GHC to 6.4 (HEAD only) |
|---|
| 397 | Simon Marlow <simonmar@microsoft.com>**20080121111835 |
|---|
| 398 | - remove $(ghc_ge_601), $(ghc_ge_602), $(ghc_ge_603) |
|---|
| 399 | - configure now checks the GHC version number |
|---|
| 400 | - there are probably various cleanups that we can now do in compat/ |
|---|
| 401 | and compiler/, but I haven't done those yet. |
|---|
| 402 | ] |
|---|
| 403 | [Do not worker/wrapper INLINE things, even if they are in a recursive group |
|---|
| 404 | simonpj@microsoft.com**20080121135909 |
|---|
| 405 | |
|---|
| 406 | This patch stops the worker/wrapper transform working on an INLINE thing, |
|---|
| 407 | even if it's in a recursive group. It might not be the loop breaker. Indeed |
|---|
| 408 | a recursive group might have no loop breaker, if the only recursion is |
|---|
| 409 | through rules. |
|---|
| 410 | |
|---|
| 411 | Again, this change was provoked by one of Roman's NDP libraries. |
|---|
| 412 | Specifically the Rec { splitD, splitJoinD } group in |
|---|
| 413 | Data.Array.Parallel.Unlifted.Distributed.Arrays |
|---|
| 414 | |
|---|
| 415 | Simon |
|---|
| 416 | |
|---|
| 417 | ] |
|---|
| 418 | [Make the loop-breaking algorithm a bit more liberal, where RULES are involved |
|---|
| 419 | simonpj@microsoft.com**20080121135654 |
|---|
| 420 | |
|---|
| 421 | This is another gloss on the now-quite-subtle and heavily-documented algorithm |
|---|
| 422 | for choosing loop breakers. |
|---|
| 423 | |
|---|
| 424 | This fix, provoked by Roman's NDP library, makes sure that when we are choosing |
|---|
| 425 | a loop breaker we only take into account variables free on the *rhs* of a rule |
|---|
| 426 | not the *lhs*. |
|---|
| 427 | |
|---|
| 428 | Most of the new lines are comments! |
|---|
| 429 | |
|---|
| 430 | ] |
|---|
| 431 | [Fix Trac #2055 |
|---|
| 432 | simonpj@microsoft.com**20080121124244 |
|---|
| 433 | |
|---|
| 434 | Sorry, this was my fault, a consequence of the quasi-quoting patch. |
|---|
| 435 | |
|---|
| 436 | I've added rn062 as a test. |
|---|
| 437 | |
|---|
| 438 | |
|---|
| 439 | ] |
|---|
| 440 | [Fix exception message with ghc -e |
|---|
| 441 | Ian Lynagh <igloo@earth.li>**20080121104142 |
|---|
| 442 | When running with ghc -e, exceptions should claim to be from the program |
|---|
| 443 | that we are running, not ghc. |
|---|
| 444 | ] |
|---|
| 445 | [Fix warnings in main/CmdLineParser |
|---|
| 446 | Ian Lynagh <igloo@earth.li>**20080121103158] |
|---|
| 447 | [Normalise FilePaths before printing them |
|---|
| 448 | Ian Lynagh <igloo@earth.li>**20080120193002] |
|---|
| 449 | [Tweak runghc |
|---|
| 450 | Ian Lynagh <igloo@earth.li>**20080120184639] |
|---|
| 451 | [Fix catching exit exceptions in ghc -e |
|---|
| 452 | Ian Lynagh <igloo@earth.li>**20080120170236] |
|---|
| 453 | [Typo in phase-control documentation |
|---|
| 454 | simonpj@microsoft.com**20080121113620] |
|---|
| 455 | [Fix warnings in main/Main |
|---|
| 456 | Ian Lynagh <igloo@earth.li>**20080119235914] |
|---|
| 457 | [Support multiple -e flags |
|---|
| 458 | Ian Lynagh <igloo@earth.li>**20080119223036] |
|---|
| 459 | [Fix ghc -e :main (it was enqueuing the main function, but not running it) |
|---|
| 460 | Ian Lynagh <igloo@earth.li>**20080119220044] |
|---|
| 461 | [Fix whitespace |
|---|
| 462 | Ian Lynagh <igloo@earth.li>**20080119212830] |
|---|
| 463 | [Fix giving an error if we are given conflicting mode flags |
|---|
| 464 | Ian Lynagh <igloo@earth.li>**20080119212602] |
|---|
| 465 | [Add :run and tweak :main |
|---|
| 466 | Ian Lynagh <igloo@earth.li>**20080119164923 |
|---|
| 467 | You can now give :main a Haskell [String] as an argument, e.g. |
|---|
| 468 | :main ["foo", "bar"] |
|---|
| 469 | and :run is a variant that takes the name of the function to run. |
|---|
| 470 | Also, :main now obeys the -main-is flag. |
|---|
| 471 | ] |
|---|
| 472 | [Make MacFrameworks a subdirectory of distrib, since it isn't used in the normal building process. |
|---|
| 473 | judah.jacobson@gmail.com**20071217235735] |
|---|
| 474 | [Add scripts for building GMP.framework and GNUreadline.framework (OS X). |
|---|
| 475 | judah.jacobson@gmail.com**20071127072951] |
|---|
| 476 | [Use -framework-path flags during the cc phase. Fixes trac #1975. |
|---|
| 477 | judah.jacobson@gmail.com**20071212201245] |
|---|
| 478 | [FIX #1821 (Parser or lexer mess-up) |
|---|
| 479 | df@dfranke.us**20071210230649] |
|---|
| 480 | [Improve the error when :list can't find any code to show |
|---|
| 481 | Ian Lynagh <igloo@earth.li>**20080118225655] |
|---|
| 482 | [Fix imports when !DEBUG |
|---|
| 483 | Ian Lynagh <igloo@earth.li>**20080118180126] |
|---|
| 484 | [Tweak the splitter |
|---|
| 485 | Ian Lynagh <igloo@earth.li>**20080116195612 |
|---|
| 486 | We were generating a label ".LnLC7", which the splitter was confusing |
|---|
| 487 | with a literal constant (LC). The end result was the assembler tripping |
|---|
| 488 | up on ".Ln.text". |
|---|
| 489 | ] |
|---|
| 490 | [Wibble to SetLevels.abstractVars |
|---|
| 491 | simonpj@microsoft.com**20080118171754 |
|---|
| 492 | |
|---|
| 493 | I've gotten this wrong more than once. Hopefully this has it nailed. |
|---|
| 494 | The issue is that in float-out we must abstract over the correct |
|---|
| 495 | variables. |
|---|
| 496 | |
|---|
| 497 | |
|---|
| 498 | ] |
|---|
| 499 | [Add quasi-quotation, courtesy of Geoffrey Mainland |
|---|
| 500 | simonpj@microsoft.com**20080118145503 |
|---|
| 501 | |
|---|
| 502 | This patch adds quasi-quotation, as described in |
|---|
| 503 | "Nice to be Quoted: Quasiquoting for Haskell" |
|---|
| 504 | (Geoffrey Mainland, Haskell Workshop 2007) |
|---|
| 505 | Implemented by Geoffrey and polished by Simon. |
|---|
| 506 | |
|---|
| 507 | Overview |
|---|
| 508 | ~~~~~~~~ |
|---|
| 509 | The syntax for quasiquotation is very similar to the existing |
|---|
| 510 | Template haskell syntax: |
|---|
| 511 | [$q| stuff |] |
|---|
| 512 | where 'q' is the "quoter". This syntax differs from the paper, by using |
|---|
| 513 | a '$' rather than ':', to avoid clashing with parallel array comprehensions. |
|---|
| 514 | |
|---|
| 515 | The "quoter" is a value of type Language.Haskell.TH.Quote.QuasiQuoter, which |
|---|
| 516 | contains two functions for quoting expressions and patterns, respectively. |
|---|
| 517 | |
|---|
| 518 | quote = Language.Haskell.TH.Quote.QuasiQuoter quoteExp quotePat |
|---|
| 519 | |
|---|
| 520 | quoteExp :: String -> Language.Haskell.TH.ExpQ |
|---|
| 521 | quotePat :: String -> Language.Haskell.TH.PatQ |
|---|
| 522 | |
|---|
| 523 | TEXT is passed unmodified to the quoter. The context of the |
|---|
| 524 | quasiquotation statement determines which of the two quoters is |
|---|
| 525 | called: if the quasiquotation occurs in an expression context, |
|---|
| 526 | quoteExp is called, and if it occurs in a pattern context, quotePat |
|---|
| 527 | is called. |
|---|
| 528 | |
|---|
| 529 | The result of running the quoter on its arguments is spliced into |
|---|
| 530 | the program using Template Haskell's existing mechanisms for |
|---|
| 531 | splicing in code. Note that although Template Haskell does not |
|---|
| 532 | support pattern brackets, with this patch binding occurrences of |
|---|
| 533 | variables in patterns are supported. Quoters must also obey the same |
|---|
| 534 | stage restrictions as Template Haskell; in particular, in this |
|---|
| 535 | example quote may not be defined in the module where it is used as a |
|---|
| 536 | quasiquoter, but must be imported from another module. |
|---|
| 537 | |
|---|
| 538 | Points to notice |
|---|
| 539 | ~~~~~~~~~~~~~~~~ |
|---|
| 540 | * The whole thing is enabled with the flag -XQuasiQuotes |
|---|
| 541 | |
|---|
| 542 | * There is an accompanying patch to the template-haskell library. This |
|---|
| 543 | involves one interface change: |
|---|
| 544 | currentModule :: Q String |
|---|
| 545 | is replaced by |
|---|
| 546 | location :: Q Loc |
|---|
| 547 | where Loc is a data type defined in TH.Syntax thus: |
|---|
| 548 | data Loc |
|---|
| 549 | = Loc { loc_filename :: String |
|---|
| 550 | , loc_package :: String |
|---|
| 551 | , loc_module :: String |
|---|
| 552 | , loc_start :: CharPos |
|---|
| 553 | , loc_end :: CharPos } |
|---|
| 554 | |
|---|
| 555 | type CharPos = (Int, Int) -- Line and character position |
|---|
| 556 | |
|---|
| 557 | So you get a lot more info from 'location' than from 'currentModule'. |
|---|
| 558 | The location you get is the location of the splice. |
|---|
| 559 | |
|---|
| 560 | This works in Template Haskell too of course, and lets a TH program |
|---|
| 561 | generate much better error messages. |
|---|
| 562 | |
|---|
| 563 | * There's also a new module in the template-haskell package called |
|---|
| 564 | Language.Haskell.TH.Quote, which contains support code for the |
|---|
| 565 | quasi-quoting feature. |
|---|
| 566 | |
|---|
| 567 | * Quasi-quote splices are run *in the renamer* because they can build |
|---|
| 568 | *patterns* and hence the renamer needs to see the output of running the |
|---|
| 569 | splice. This involved a bit of rejigging in the renamer, especially |
|---|
| 570 | concerning the reporting of duplicate or shadowed names. |
|---|
| 571 | |
|---|
| 572 | (In fact I found and removed a few calls to checkDupNames in RnSource |
|---|
| 573 | that are redundant, becuase top-level duplicate decls are handled in |
|---|
| 574 | RnNames.) |
|---|
| 575 | |
|---|
| 576 | |
|---|
| 577 | |
|---|
| 578 | ] |
|---|
| 579 | [lots of portability changes (#1405) |
|---|
| 580 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20080117011312 |
|---|
| 581 | |
|---|
| 582 | re-recording to avoid new conflicts was too hard, so I just put it |
|---|
| 583 | all in one big patch :-( (besides, some of the changes depended on |
|---|
| 584 | each other.) Here are what the component patches were: |
|---|
| 585 | |
|---|
| 586 | Fri Dec 28 11:02:55 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 587 | * document BreakArray better |
|---|
| 588 | |
|---|
| 589 | Fri Dec 28 11:39:22 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 590 | * properly ifdef BreakArray for GHCI |
|---|
| 591 | |
|---|
| 592 | Fri Jan 4 13:50:41 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 593 | * change ifs on __GLASGOW_HASKELL__ to account for... (#1405) |
|---|
| 594 | for it not being defined. I assume it being undefined implies |
|---|
| 595 | a compiler with relatively modern libraries but without most |
|---|
| 596 | unportable glasgow extensions. |
|---|
| 597 | |
|---|
| 598 | Fri Jan 4 14:21:21 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 599 | * MyEither-->EitherString to allow Haskell98 instance |
|---|
| 600 | |
|---|
| 601 | Fri Jan 4 16:13:29 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 602 | * re-portabilize Pretty, and corresponding changes |
|---|
| 603 | |
|---|
| 604 | Fri Jan 4 17:19:55 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 605 | * Augment FastTypes to be much more complete |
|---|
| 606 | |
|---|
| 607 | Fri Jan 4 20:14:19 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 608 | * use FastFunctions, cleanup FastString slightly |
|---|
| 609 | |
|---|
| 610 | Fri Jan 4 21:00:22 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 611 | * Massive de-"#", mostly Int# --> FastInt (#1405) |
|---|
| 612 | |
|---|
| 613 | Fri Jan 4 21:02:49 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 614 | * miscellaneous unnecessary-extension-removal |
|---|
| 615 | |
|---|
| 616 | Sat Jan 5 19:30:13 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 617 | * add FastFunctions |
|---|
| 618 | |
|---|
| 619 | ] |
|---|
| 620 | [Add missing extendSubst |
|---|
| 621 | simonpj@microsoft.com**20080117180227 |
|---|
| 622 | |
|---|
| 623 | Oops -- missed this from previous commit; sorry |
|---|
| 624 | |
|---|
| 625 | ] |
|---|
| 626 | [Add -fspec-inline-join-points to SpecConstr |
|---|
| 627 | simonpj@microsoft.com**20080117150325 |
|---|
| 628 | |
|---|
| 629 | This patch addresses a problem that Roman found in SpecConstr. Consider: |
|---|
| 630 | |
|---|
| 631 | foo :: Maybe Int -> Maybe Int -> Int |
|---|
| 632 | foo a b = let j b = foo a b |
|---|
| 633 | in |
|---|
| 634 | case b of |
|---|
| 635 | Nothing -> ... |
|---|
| 636 | Just n -> case a of |
|---|
| 637 | Just m -> ... j (Just (n+1)) ... |
|---|
| 638 | Nothing -> ... j (Just (n-1)) ... |
|---|
| 639 | |
|---|
| 640 | We want to make specialised versions for 'foo' for the patterns |
|---|
| 641 | Nothing (Just v) |
|---|
| 642 | (Just a) (Just b) |
|---|
| 643 | |
|---|
| 644 | Two problems, caused by the join point j. First, j does not |
|---|
| 645 | scrutinise b, so j won't be specialised f for the (Just v) pattern. |
|---|
| 646 | Second, j is defined where the free var 'a' is not evaluated. |
|---|
| 647 | |
|---|
| 648 | Both are solved by brutally inlining j at its call sites. This risks |
|---|
| 649 | major code bloat, but it's relatively quick to implement. The flag |
|---|
| 650 | -fspec-inline-join-points |
|---|
| 651 | causes brutal inlining for a |
|---|
| 652 | non-recursive binding |
|---|
| 653 | of a function |
|---|
| 654 | whose RHS contains calls |
|---|
| 655 | of a recursive function |
|---|
| 656 | |
|---|
| 657 | The (experimental) flag is static for now, and I have not even |
|---|
| 658 | documented it properly. |
|---|
| 659 | |
|---|
| 660 | |
|---|
| 661 | ] |
|---|
| 662 | [Fix references to Filepath |
|---|
| 663 | Clemens Fruhwirth <clemens@endorphin.org>**20080117134139] |
|---|
| 664 | [Fix egregious error in earlier "Record evaluated-ness" patch |
|---|
| 665 | simonpj@microsoft.com**20080117134057] |
|---|
| 666 | [Eliminate warnings with -DDEBUG |
|---|
| 667 | simonpj@microsoft.com**20080117124921] |
|---|
| 668 | [Record evaluated-ness information correctly for strict constructors |
|---|
| 669 | simonpj@microsoft.com**20080117105256 |
|---|
| 670 | |
|---|
| 671 | The add_evals code in Simplify.simplAlt had bit-rotted. Example: |
|---|
| 672 | |
|---|
| 673 | data T a = T !a |
|---|
| 674 | data U a = U !a |
|---|
| 675 | |
|---|
| 676 | foo :: T a -> U a |
|---|
| 677 | foo (T x) = U x |
|---|
| 678 | |
|---|
| 679 | Here we should not evaluate x before building the U result, because |
|---|
| 680 | the x argument of T is already evaluated. |
|---|
| 681 | |
|---|
| 682 | Thanks to Roman for finding this. |
|---|
| 683 | |
|---|
| 684 | |
|---|
| 685 | ] |
|---|
| 686 | [In float-out, make sure we abstract over the type variables in the kind of a coercion |
|---|
| 687 | simonpj@microsoft.com**20080116153908 |
|---|
| 688 | |
|---|
| 689 | I can't remember where this bug showed up, but we were abstracting over a |
|---|
| 690 | coercion variable (co :: a ~ T), without also abstracting over 'a'. |
|---|
| 691 | |
|---|
| 692 | The fix is simple. |
|---|
| 693 | |
|---|
| 694 | ] |
|---|
| 695 | [Fix broken debug warning |
|---|
| 696 | simonpj@microsoft.com**20080116151818] |
|---|
| 697 | [Complain sensibly if you try to use scoped type variables in Template Haskell |
|---|
| 698 | simonpj@microsoft.com**20080116151612 |
|---|
| 699 | |
|---|
| 700 | This fixes Trac #2024; worth merging onto 6.8 branch. |
|---|
| 701 | |
|---|
| 702 | ] |
|---|
| 703 | [Comments only |
|---|
| 704 | simonpj@microsoft.com**20080116150554] |
|---|
| 705 | [Extra instance for Outputable on 5-tuples |
|---|
| 706 | simonpj@microsoft.com**20080116150525] |
|---|
| 707 | [Fix the -frule-check pass |
|---|
| 708 | simonpj@microsoft.com**20080116141156 |
|---|
| 709 | |
|---|
| 710 | Rules for imported things are now kept in the global rule base, not |
|---|
| 711 | attached to the global Id. The rule-check pass hadn't kept up. |
|---|
| 712 | |
|---|
| 713 | This should fix it. |
|---|
| 714 | |
|---|
| 715 | ] |
|---|
| 716 | [Add dyn-wrapper.c used as cross-plattform launch wrapper for executables using dynamic libraries in non-standard places |
|---|
| 717 | Clemens Fruhwirth <clemens@endorphin.org>**20080116220603] |
|---|
| 718 | [Use runPhase_MoveBinary also for generating a dynamic library wrapper |
|---|
| 719 | Clemens Fruhwirth <clemens@endorphin.org>**20080116220420] |
|---|
| 720 | [Remove -fhardwire-lib-paths in favour of -dynload sysdep |
|---|
| 721 | Clemens Fruhwirth <clemens@endorphin.org>**20080110121736] |
|---|
| 722 | [ghc-inplace defaults to -fhardwire-lib-paths. Change that to -dynload wrapped |
|---|
| 723 | Clemens Fruhwirth <clemens@endorphin.org>**20080110090839] |
|---|
| 724 | [Add -dynload flag as dynamic flag. |
|---|
| 725 | Clemens Fruhwirth <clemens@endorphin.org>**20080116205710] |
|---|
| 726 | [Add a missing import |
|---|
| 727 | Ian Lynagh <igloo@earth.li>**20080116174149] |
|---|
| 728 | [Fix Makefile generatin on Windows |
|---|
| 729 | Ian Lynagh <igloo@earth.li>**20080116162752] |
|---|
| 730 | [Fix slash direction on Windows with the new filePath code |
|---|
| 731 | Ian Lynagh <igloo@earth.li>**20080116154317] |
|---|
| 732 | [Fix typo |
|---|
| 733 | Ian Lynagh <igloo@earth.li>**20080116011953] |
|---|
| 734 | [The Core type-matcher should look through PredTypes |
|---|
| 735 | simonpj@microsoft.com**20080116145939 |
|---|
| 736 | |
|---|
| 737 | The core type-matcher Unify.match was previouly using tcView to expand |
|---|
| 738 | types, because it must treat newtypes as distinct from their representation. |
|---|
| 739 | But that meant that it also treated the PredType {C Int} as distinct from |
|---|
| 740 | its representation type (:TC Int). And that in turn was causing a rule |
|---|
| 741 | not to fire, because the argument types didn't match up. |
|---|
| 742 | |
|---|
| 743 | For this to happen we need to get a situation where we have |
|---|
| 744 | |
|---|
| 745 | a = :DC blah blah -- Dictionary |
|---|
| 746 | ....(f a)..... |
|---|
| 747 | |
|---|
| 748 | Now a has type (:TC Int), bu the RULE for f expects an argument |
|---|
| 749 | of type {C Int}. Roman found that just this was happening. |
|---|
| 750 | |
|---|
| 751 | |
|---|
| 752 | |
|---|
| 753 | |
|---|
| 754 | ] |
|---|
| 755 | [A bottoming function should have infinite arity |
|---|
| 756 | simonpj@microsoft.com**20080116145722 |
|---|
| 757 | |
|---|
| 758 | I can't think how this one escaped for so long, but |
|---|
| 759 | (error "foo") |
|---|
| 760 | should have arityType ABot, just as 'error' itself does. |
|---|
| 761 | |
|---|
| 762 | This improves eta expansion. I spotted it when looking at the function |
|---|
| 763 | |
|---|
| 764 | Data.Array.Parallel.Arr.BBArr.writeMBB |
|---|
| 765 | |
|---|
| 766 | in the ndp package. |
|---|
| 767 | |
|---|
| 768 | |
|---|
| 769 | ] |
|---|
| 770 | [Add Main.dyn_o deployed into the RTS library dir to linking (see DLLNOTES for rational) |
|---|
| 771 | Clemens Fruhwirth <clemens@endorphin.org>**20080110091217] |
|---|
| 772 | [Refactor cross-plattform process spawning from ghc-inplace into shell-tools.c |
|---|
| 773 | Clemens Fruhwirth <clemens@endorphin.org>**20080110090721] |
|---|
| 774 | [More verbose error reporting in mk/target.mk |
|---|
| 775 | Clemens Fruhwirth <clemens@endorphin.org>**20071231170715] |
|---|
| 776 | [Fix generating dependencies for different ways now we use FilePath |
|---|
| 777 | Ian Lynagh <igloo@earth.li>**20080115204716 |
|---|
| 778 | We were making filenames like |
|---|
| 779 | dist/build/GHC/Base.p_.o |
|---|
| 780 | rather than |
|---|
| 781 | dist/build/GHC/Base.p_o |
|---|
| 782 | ] |
|---|
| 783 | [Fix utils/Util for debug build |
|---|
| 784 | mainland@eecs.harvard.edu**20080114190530] |
|---|
| 785 | [Give an error if view pattern syntax is used in an expression; fixes #2033 |
|---|
| 786 | Ian Lynagh <igloo@earth.li>**20080114115031] |
|---|
| 787 | [FIX BUILD (Solaris): include fcntl.h for file operations |
|---|
| 788 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080115051844] |
|---|
| 789 | [Fix warning when USE_READLINE is unset |
|---|
| 790 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080115015014] |
|---|
| 791 | [Remove an extra ) that was breaking the build on Windows |
|---|
| 792 | Ian Lynagh <igloo@earth.li>**20080114103953] |
|---|
| 793 | [Fix warnings in utils/ListSetOps |
|---|
| 794 | Ian Lynagh <igloo@earth.li>**20080113150017] |
|---|
| 795 | [Fix warnings in utils/Panic |
|---|
| 796 | Ian Lynagh <igloo@earth.li>**20080113142939] |
|---|
| 797 | [Fix warnings in utils/UniqSet |
|---|
| 798 | Ian Lynagh <igloo@earth.li>**20080113142604] |
|---|
| 799 | [Fix warnings in utils/Maybes |
|---|
| 800 | Ian Lynagh <igloo@earth.li>**20080113142347] |
|---|
| 801 | [Fix warnings in utils/BufWrite |
|---|
| 802 | Ian Lynagh <igloo@earth.li>**20080113141630] |
|---|
| 803 | [Fix warnings in utils/FastTypes |
|---|
| 804 | Ian Lynagh <igloo@earth.li>**20080113141612 |
|---|
| 805 | Split off a FastBool module, to avoid a circular import with Panic |
|---|
| 806 | ] |
|---|
| 807 | [Fix warnings in utils/OrdList |
|---|
| 808 | Ian Lynagh <igloo@earth.li>**20080113132042] |
|---|
| 809 | [Fix warnings in utils/FastMutInt |
|---|
| 810 | Ian Lynagh <igloo@earth.li>**20080113131830] |
|---|
| 811 | [Fix warnings in utils/State |
|---|
| 812 | Ian Lynagh <igloo@earth.li>**20080113131658] |
|---|
| 813 | [Only initialise readline if we are connected to a terminal |
|---|
| 814 | Ian Lynagh <igloo@earth.li>**20080113124107 |
|---|
| 815 | Patch from Bertram Felgenhauer <int-e@gmx.de> |
|---|
| 816 | ] |
|---|
| 817 | [Fix warnings in utils/Util |
|---|
| 818 | Ian Lynagh <igloo@earth.li>**20080113005832] |
|---|
| 819 | [Fix warnings in utils/Bag.lhs |
|---|
| 820 | Ian Lynagh <igloo@earth.li>**20080113002037] |
|---|
| 821 | [Add GMP_INCLUDE_DIRS in a couple of places |
|---|
| 822 | Ian Lynagh <igloo@earth.li>**20080112234215 |
|---|
| 823 | Fixes the build on OpenBSD (trac #2009). Based on a patch from kili. |
|---|
| 824 | ] |
|---|
| 825 | [Tweak whitespace in HsExpr |
|---|
| 826 | Ian Lynagh <igloo@earth.li>**20080112185753] |
|---|
| 827 | [Fix warnings in HsExpr |
|---|
| 828 | Ian Lynagh <igloo@earth.li>**20080112181444] |
|---|
| 829 | [FilePath fixes |
|---|
| 830 | Ian Lynagh <igloo@earth.li>**20080112172837] |
|---|
| 831 | [don't initialize readline needlessly |
|---|
| 832 | Ian Lynagh <igloo@earth.li>**20080112155413 |
|---|
| 833 | Readline.initialize spills some escape sequences to stdout for some terminal |
|---|
| 834 | types, potentially spoiling ghc -e output. So don't initialize readline |
|---|
| 835 | unless we're working interactively on a terminal. |
|---|
| 836 | Patch from Bertram Felgenhauer <int-e@gmx.de> |
|---|
| 837 | ] |
|---|
| 838 | [Fix whitespace |
|---|
| 839 | Ian Lynagh <igloo@earth.li>**20080112155214] |
|---|
| 840 | [Use System.FilePath |
|---|
| 841 | Ian Lynagh <igloo@earth.li>**20080112154459] |
|---|
| 842 | [Fix filename completion by adding trailing spaces/slashes manually. |
|---|
| 843 | judah.jacobson@gmail.com**20080110221928] |
|---|
| 844 | [Use command-dependent word break characters for tab completion in ghci. Fixes bug #998. |
|---|
| 845 | judah.jacobson@gmail.com**20080109003606] |
|---|
| 846 | [Fix 2030: make -XScopedTypeVariables imply -XRelaxedPolyRec |
|---|
| 847 | simonpj@microsoft.com**20080110113133 |
|---|
| 848 | |
|---|
| 849 | The type checker doesn't support lexically scoped type variables |
|---|
| 850 | unless we are using the RelaxedPolyRec option. Reasons: see |
|---|
| 851 | Note [Scoped tyvars] in TcBinds. |
|---|
| 852 | |
|---|
| 853 | So I've changed DynFlags to add this implication, improved the |
|---|
| 854 | documentation, and simplified the code in TcBinds somewhat. |
|---|
| 855 | (It's longer but only because of comments!) |
|---|
| 856 | |
|---|
| 857 | |
|---|
| 858 | ] |
|---|
| 859 | [More refactoring in getCoreToDo |
|---|
| 860 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109023747] |
|---|
| 861 | [Document -fsimplifier-phases |
|---|
| 862 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109022822] |
|---|
| 863 | [Add -fsimplifier-phases option |
|---|
| 864 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109022449 |
|---|
| 865 | |
|---|
| 866 | It controls the number of simplifier phases run during optimisation. These are |
|---|
| 867 | numbered from n to 1 (by default, n=2). Phase 0 is always run regardless of |
|---|
| 868 | this flag. The flag is ignored with -O0 since (practically) no optimisation is |
|---|
| 869 | performed in that case. |
|---|
| 870 | ] |
|---|
| 871 | [Refactor getCoreToDo slightly |
|---|
| 872 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109014359] |
|---|
| 873 | [Fix Trac #2018: float-out was ignoring the kind of a coercion variable |
|---|
| 874 | simonpj@microsoft.com**20080107142601 |
|---|
| 875 | |
|---|
| 876 | The float-out transformation must handle the case where a coercion |
|---|
| 877 | variable is free, which in turn mentions type variables in its kind. |
|---|
| 878 | Just like a term variable really. |
|---|
| 879 | |
|---|
| 880 | I did a bit of refactoring at the same time. |
|---|
| 881 | |
|---|
| 882 | Test is tc241 |
|---|
| 883 | |
|---|
| 884 | MERGE to stable branch |
|---|
| 885 | |
|---|
| 886 | ] |
|---|
| 887 | [Make the treatment of equalities more uniform |
|---|
| 888 | simonpj@microsoft.com**20080107142306 |
|---|
| 889 | |
|---|
| 890 | This patch (which is part of the fix for Trac #2018) makes coercion variables |
|---|
| 891 | be handled more uniformly. Generally, they are treated like dictionaries |
|---|
| 892 | in the type checker, not like type variables, but in a couple of places we |
|---|
| 893 | were treating them like type variables. Also when zonking we should use |
|---|
| 894 | zonkDictBndr not zonkIdBndr. |
|---|
| 895 | |
|---|
| 896 | ] |
|---|
| 897 | [Fix Trac #2017 |
|---|
| 898 | simonpj@microsoft.com**20080107125819] |
|---|
| 899 | [Add -XImpredicativeTypes, and tighten up type-validity checking (cf Trac 2019) |
|---|
| 900 | simonpj@microsoft.com**20080107115451 |
|---|
| 901 | |
|---|
| 902 | Somehow we didn't have a separate flag for impredicativity; now we do. |
|---|
| 903 | |
|---|
| 904 | Furthermore, Trac #2019 showed up a missing test for monotypes in data |
|---|
| 905 | constructor return types. And I realised that we were even allowing |
|---|
| 906 | things like |
|---|
| 907 | Num (forall a. a) => ... |
|---|
| 908 | which we definitely should not. |
|---|
| 909 | |
|---|
| 910 | This patch insists on monotypes in several places where we were (wrongly) |
|---|
| 911 | too liberal before. |
|---|
| 912 | |
|---|
| 913 | Could be merged to 6.8 but no big deal. |
|---|
| 914 | |
|---|
| 915 | |
|---|
| 916 | ] |
|---|
| 917 | [pass -no-user-package-conf to ghc-inplace |
|---|
| 918 | Simon Marlow <simonmar@microsoft.com>**20080104162840] |
|---|
| 919 | [Fix build: Recent instance shuffling left us with overlapping instances |
|---|
| 920 | Ian Lynagh <igloo@earth.li>**20080106221547] |
|---|
| 921 | [Add instructions for building docs to README |
|---|
| 922 | Ian Lynagh <igloo@earth.li>**20080106215723] |
|---|
| 923 | [A little refactoring of GenIfaceEq to make the Outputable instance into H98 |
|---|
| 924 | simonpj@microsoft.com**20080104105450] |
|---|
| 925 | [Make the instance of DebugNodes more H98-like |
|---|
| 926 | simonpj@microsoft.com**20080104105409] |
|---|
| 927 | [change CmmActual, CmmFormal to use a data CmmHinted rather than tuple (#1405) |
|---|
| 928 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20080104105339 |
|---|
| 929 | This allows the instance of UserOfLocalRegs to be within Haskell98, and IMHO |
|---|
| 930 | makes the code a little cleaner generally. |
|---|
| 931 | This is one small (though tedious) step towards making GHC's code more |
|---|
| 932 | portable... |
|---|
| 933 | ] |
|---|
| 934 | [generalize instance Outputable GenCmm to H98 (#1405) |
|---|
| 935 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226175915] |
|---|
| 936 | [move and generalize another instance (#1405) |
|---|
| 937 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226174904 |
|---|
| 938 | was instance Outputable CmmGraph |
|---|
| 939 | type CmmGraph = LGraph Middle Last |
|---|
| 940 | now instance (ctx) => Outputable (LGraph m l), |
|---|
| 941 | in module with LGraph where it belongs |
|---|
| 942 | This also let us reduce the context of DebugNodes to Haskell98, |
|---|
| 943 | leaving that class's only extension being multi-parameter. |
|---|
| 944 | (also Outputable (LGraph M Last) with M = ExtendWithSpills Middle |
|---|
| 945 | was another redundant instance that was then removed) |
|---|
| 946 | ] |
|---|
| 947 | [move and generalize an instance (#1405) |
|---|
| 948 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226171913 |
|---|
| 949 | UserOfLocalRegs (ZLast Last) isn't Haskell98, but it was just as |
|---|
| 950 | good an instance to be UserOfLocalRegs a => UserOfLocalRegs (ZLast a) |
|---|
| 951 | ] |
|---|
| 952 | [Do not consult -XGADTs flag when pattern matching on GADTs |
|---|
| 953 | simonpj@microsoft.com**20080104125814 |
|---|
| 954 | |
|---|
| 955 | See Trac #2004, and Note [Flags and equational constraints] in TcPat. |
|---|
| 956 | |
|---|
| 957 | ] |
|---|
| 958 | [Add a note about primop wrappers (cf Trac #1509) |
|---|
| 959 | simonpj@microsoft.com**20080104125305] |
|---|
| 960 | [Document SOURCE pragma; clarify TH behavior for mutually-recurive modules (Trac #1012) |
|---|
| 961 | simonpj@microsoft.com**20080104121939] |
|---|
| 962 | [White space and comments only |
|---|
| 963 | simonpj@microsoft.com**20080104102236] |
|---|
| 964 | [Optionally use libffi to implement 'foreign import "wrapper"' (#793) |
|---|
| 965 | Simon Marlow <simonmar@microsoft.com>**20080103170236 |
|---|
| 966 | To enable this, set UseLibFFI=YES in mk/build.mk. |
|---|
| 967 | |
|---|
| 968 | The main advantage here is that this reduces the porting effort for |
|---|
| 969 | new platforms: libffi works on more architectures than our current |
|---|
| 970 | adjustor code, and it is probably more heavily tested. We could |
|---|
| 971 | potentially replace our existing code, but since it is probably faster |
|---|
| 972 | than libffi (just a guess, I'll measure later) and is already working, |
|---|
| 973 | it doesn't seem worthwhile. |
|---|
| 974 | |
|---|
| 975 | Right now, you must have libffi installed on your system. I used the |
|---|
| 976 | one supplied by Debian/Ubuntu. |
|---|
| 977 | ] |
|---|
| 978 | [remove trace apparently left in by accident |
|---|
| 979 | Simon Marlow <simonmar@microsoft.com>**20080103163805] |
|---|
| 980 | [Remove -funfolding-update-in-place flag documentation |
|---|
| 981 | simonpj@microsoft.com**20080103160036 |
|---|
| 982 | |
|---|
| 983 | This flag does nothing, and should have been removed ages ago. (GHC |
|---|
| 984 | no longer does update-in-place.) |
|---|
| 985 | |
|---|
| 986 | MERGE to 6.8 branch |
|---|
| 987 | |
|---|
| 988 | ] |
|---|
| 989 | [Fix warnings with newer gcc versions (I hope) |
|---|
| 990 | Simon Marlow <simonmar@microsoft.com>**20080103140338] |
|---|
| 991 | [FIX #1898: add a missing UNTAG_CLOSURE() in checkBlackHoles |
|---|
| 992 | Simon Marlow <simonmar@microsoft.com>**20080103112717] |
|---|
| 993 | [fix validation failure on non-i386 |
|---|
| 994 | Simon Marlow <simonmar@microsoft.com>**20080102151740] |
|---|
| 995 | [expand "out of stack slots" panic to suggest using -fregs-graph, see #1993 |
|---|
| 996 | Simon Marlow <simonmar@microsoft.com>**20080102150737] |
|---|
| 997 | [Warning clean, and fix compilation with GHC 6.2.x |
|---|
| 998 | Simon Marlow <simonmar@microsoft.com>**20080102114529] |
|---|
| 999 | [Add dead code elimination in cmmMiniInline |
|---|
| 1000 | Simon Marlow <simonmar@microsoft.com>**20071220151734 |
|---|
| 1001 | cmmMiniInline counts the uses of local variables, so it can easily |
|---|
| 1002 | eliminate assigments to unused locals. This almost never gets |
|---|
| 1003 | triggered, as we don't generate any dead assignments, but it will be |
|---|
| 1004 | needed by a forthcoming cleanup in CgUtils.emitSwitch. |
|---|
| 1005 | ] |
|---|
| 1006 | [implement prefix unboxed tuples (part of #1509) |
|---|
| 1007 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20080102124001] |
|---|
| 1008 | [Link libgmp.a statically into libHSrts.dll on Windows |
|---|
| 1009 | Clemens Fruhwirth <clemens@endorphin.org>**20080101154017] |
|---|
| 1010 | [Embedd DLL name into its import library, so client libs reference them properly in .idata |
|---|
| 1011 | Clemens Fruhwirth <clemens@endorphin.org>**20080101152157] |
|---|
| 1012 | [Add package dependencies to link pass when building ghc package (required for windows DLL build) |
|---|
| 1013 | Clemens Fruhwirth <clemens@endorphin.org>**20080101152101] |
|---|
| 1014 | [Fix building libHSrts.dll by using ghc-pkg instead of grepping in base.cabal |
|---|
| 1015 | Clemens Fruhwirth <clemens@endorphin.org>**20071230193952] |
|---|
| 1016 | [Add installPackage to dependencies of make.library.* as it's used by the rule |
|---|
| 1017 | Clemens Fruhwirth <clemens@endorphin.org>**20071229162707] |
|---|
| 1018 | [Install dynlibs correctly |
|---|
| 1019 | Clemens Fruhwirth <clemens@endorphin.org>**20071228184024 |
|---|
| 1020 | |
|---|
| 1021 | Add dynlibdir target to config.mk.in, setting it to @libdir@. |
|---|
| 1022 | Invoke installPackage with dynlibdir at libraries/Makefile |
|---|
| 1023 | Make installPackage.hs hand dynlibdir to Cabal. |
|---|
| 1024 | ] |
|---|
| 1025 | [import ord that alex secretly imported |
|---|
| 1026 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071228175727] |
|---|
| 1027 | [add missing import that happy -agc secretly provided |
|---|
| 1028 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071227171335] |
|---|
| 1029 | [correct type mistake, hidden by happy -agc coercions! |
|---|
| 1030 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226140743] |
|---|
| 1031 | [API changes for cabal-HEAD |
|---|
| 1032 | Clemens Fruhwirth <clemens@endorphin.org>**20071227143114 |
|---|
| 1033 | |
|---|
| 1034 | Rename interfacedir to haddockdir |
|---|
| 1035 | Change empty(Copy|Register)Flags to default(Copy|Register)Flags |
|---|
| 1036 | Wrap content of RegisterFlags with toFlag (the Flag type is actually just Maybe) |
|---|
| 1037 | ] |
|---|
| 1038 | [Extend API for compiling to and from Core |
|---|
| 1039 | Tim Chevalier <chevalier@alum.wellesley.edu>**20071225200411 |
|---|
| 1040 | |
|---|
| 1041 | Added API support for compiling Haskell to simplified Core, and for |
|---|
| 1042 | compiling Core to machine code. The latter, especially, should be |
|---|
| 1043 | considered experimental and has only been given cursory testing. Also |
|---|
| 1044 | fixed warnings in DriverPipeline. Merry Christmas. |
|---|
| 1045 | ] |
|---|
| 1046 | [When complaining about non-rigid context, give suggestion of adding a signature |
|---|
| 1047 | simonpj@microsoft.com**20071224122217] |
|---|
| 1048 | [Improve handling of newtypes (fixes Trac 1495) |
|---|
| 1049 | simonpj@microsoft.com**20071221090406 |
|---|
| 1050 | |
|---|
| 1051 | In a few places we want to "look through" newtypes to get to the |
|---|
| 1052 | representation type. But we need to be careful that we don't fall |
|---|
| 1053 | into an ininite loop with e.g. |
|---|
| 1054 | newtype T = MkT T |
|---|
| 1055 | |
|---|
| 1056 | The old mechansim for doing this was to have a field nt_rep, inside |
|---|
| 1057 | a newtype TyCon, that gave the "ultimate representation" of the type. |
|---|
| 1058 | But that failed for Trac 1495, which looked like this: |
|---|
| 1059 | newtype Fix a = Fix (a (Fix a)) |
|---|
| 1060 | data I a = I a |
|---|
| 1061 | Then, expanding the type (Fix I) went on for ever. |
|---|
| 1062 | |
|---|
| 1063 | The right thing to do seems to be to check for loops when epxanding |
|---|
| 1064 | the *type*, rather than in the *tycon*. This patch does that, |
|---|
| 1065 | - Removes nt_rep from TyCon |
|---|
| 1066 | - Make Type.repType check for loops |
|---|
| 1067 | See Note [Expanding newtypes] in Type.lhs. |
|---|
| 1068 | |
|---|
| 1069 | At the same time I also fixed a bug for Roman, where newtypes were not |
|---|
| 1070 | being expanded properly in FamInstEnv.topNormaliseType. This function |
|---|
| 1071 | and Type.repType share a common structure. |
|---|
| 1072 | |
|---|
| 1073 | |
|---|
| 1074 | Ian, see if this merges easily to the branch |
|---|
| 1075 | If not, I don't think it's essential to fix 6.8 |
|---|
| 1076 | |
|---|
| 1077 | ] |
|---|
| 1078 | [Fix Trac #1981: seq on a type-family-typed expression |
|---|
| 1079 | simonpj@microsoft.com**20071221085542 |
|---|
| 1080 | |
|---|
| 1081 | We were crashing when we saw |
|---|
| 1082 | case x of DEFAULT -> rhs |
|---|
| 1083 | where x had a type-family type. This patch fixes it. |
|---|
| 1084 | |
|---|
| 1085 | MERGE to the 6.8 branch. |
|---|
| 1086 | |
|---|
| 1087 | |
|---|
| 1088 | ] |
|---|
| 1089 | [Comment only |
|---|
| 1090 | simonpj@microsoft.com**20071220164621] |
|---|
| 1091 | [Fix nasty recompilation bug in MkIface.computeChangedOccs |
|---|
| 1092 | simonpj@microsoft.com**20071220164307 |
|---|
| 1093 | |
|---|
| 1094 | MERGE to 6.8 branch |
|---|
| 1095 | |
|---|
| 1096 | In computeChangedOccs we look up the old version of a Name. |
|---|
| 1097 | But a WiredIn Name doesn't have an old version, because WiredIn things |
|---|
| 1098 | don't appear in interface files at all. |
|---|
| 1099 | |
|---|
| 1100 | Result: ghc-6.9: panic! (the 'impossible' happened) |
|---|
| 1101 | (GHC version 6.9 for x86_64-unknown-linux): |
|---|
| 1102 | lookupVers1 base:GHC.Prim chr#{v} |
|---|
| 1103 | |
|---|
| 1104 | This fixes the problem. The patch should merge easily onto the branch. |
|---|
| 1105 | |
|---|
| 1106 | |
|---|
| 1107 | ] |
|---|
| 1108 | [Fix Trac #1988; keep the ru_fn field of a RULE up to date |
|---|
| 1109 | simonpj@microsoft.com**20071220131912 |
|---|
| 1110 | |
|---|
| 1111 | The ru_fn field was wrong when we moved RULES from one Id to another. |
|---|
| 1112 | The fix is simple enough. |
|---|
| 1113 | |
|---|
| 1114 | However, looking at this makes me realise that the worker/wrapper stuff |
|---|
| 1115 | for recursive newtypes isn't very clever: we generate demand info but |
|---|
| 1116 | then don't properly exploit it. |
|---|
| 1117 | |
|---|
| 1118 | This patch fixes the crash though. |
|---|
| 1119 | |
|---|
| 1120 | ] |
|---|
| 1121 | [Add better panic message in getSRTInfo (Trac #1973) |
|---|
| 1122 | simonpj@microsoft.com**20071220180335] |
|---|
| 1123 | [Remove obselete code for update-in-place (which we no longer do) |
|---|
| 1124 | simonpj@microsoft.com**20071220173432] |
|---|
| 1125 | [Implement generalised list comprehensions |
|---|
| 1126 | simonpj@microsoft.com**20071220111300 |
|---|
| 1127 | |
|---|
| 1128 | This patch implements generalised list comprehensions, as described in |
|---|
| 1129 | the paper "Comprehensive comprehensions" (Peyton Jones & Wadler, Haskell |
|---|
| 1130 | Workshop 2007). If you don't use the new comprehensions, nothing |
|---|
| 1131 | should change. |
|---|
| 1132 | |
|---|
| 1133 | The syntax is not exactly as in the paper; see the user manual entry |
|---|
| 1134 | for details. |
|---|
| 1135 | |
|---|
| 1136 | You need an accompanying patch to the base library for this stuff |
|---|
| 1137 | to work. |
|---|
| 1138 | |
|---|
| 1139 | The patch is the work of Max Bolingbroke [batterseapower@hotmail.com], |
|---|
| 1140 | with some advice from Simon PJ. |
|---|
| 1141 | |
|---|
| 1142 | The related GHC Wiki page is |
|---|
| 1143 | http://hackage.haskell.org/trac/ghc/wiki/SQLLikeComprehensions |
|---|
| 1144 | |
|---|
| 1145 | ] |
|---|
| 1146 | [More bindist-publishing fixes and refactoring |
|---|
| 1147 | Ian Lynagh <igloo@earth.li>**20071218144505] |
|---|
| 1148 | [Fix publishing the docs |
|---|
| 1149 | Ian Lynagh <igloo@earth.li>**20071216122544] |
|---|
| 1150 | [FIX #1980: must check for ThreadRelocated in killThread# |
|---|
| 1151 | Simon Marlow <simonmar@microsoft.com>**20071217164610] |
|---|
| 1152 | [Eliminate external GMP dependencies |
|---|
| 1153 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071217093839 |
|---|
| 1154 | - Ensure the stage1 compiler uses ghc's own GMP library on Mac OS |
|---|
| 1155 | - Need to rebuild installPackage and ifBuildable with stage1 compiler as they |
|---|
| 1156 | go into bindists |
|---|
| 1157 | ] |
|---|
| 1158 | [Include ~/Library/Frameworks in the framework searchpath |
|---|
| 1159 | Ian Lynagh <igloo@earth.li>**20071217233457 |
|---|
| 1160 | Patch from Christian Maeder |
|---|
| 1161 | ] |
|---|
| 1162 | [Make ghcii.sh executable |
|---|
| 1163 | Ian Lynagh <igloo@earth.li>**20071217195734] |
|---|
| 1164 | [Don't rely on distrib/prep-bin-dist-mingw being executable |
|---|
| 1165 | Ian Lynagh <igloo@earth.li>**20071217195554] |
|---|
| 1166 | [always try to remove the new file before restoring the old one (#1963) |
|---|
| 1167 | Simon Marlow <simonmar@microsoft.com>**20071214123345] |
|---|
| 1168 | [Fix a bug in gen_contents_index |
|---|
| 1169 | Ian Lynagh <igloo@earth.li>**20071212121154 |
|---|
| 1170 | The library doc index thought that the docs were in $module.html, rather |
|---|
| 1171 | than $package/$module.html. |
|---|
| 1172 | ] |
|---|
| 1173 | [Fix lifting of case expressions |
|---|
| 1174 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071215000837 |
|---|
| 1175 | |
|---|
| 1176 | We have to explicity check for empty arrays in each alternative as recursive |
|---|
| 1177 | algorithms wouldn't terminate otherwise. |
|---|
| 1178 | ] |
|---|
| 1179 | [Use (UArr Int) instead of PArray_Int# in vectorisation |
|---|
| 1180 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071215000739] |
|---|
| 1181 | [Fix bug in VectInfo loading |
|---|
| 1182 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214230914] |
|---|
| 1183 | [Remove unused vectorisation built-in |
|---|
| 1184 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214011015] |
|---|
| 1185 | [Treat some standard data cons specially during vectorisation |
|---|
| 1186 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034855 |
|---|
| 1187 | |
|---|
| 1188 | This is a temporary hack which allows us to vectorise literals. |
|---|
| 1189 | ] |
|---|
| 1190 | [More vectorisation-related built ins |
|---|
| 1191 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034839] |
|---|
| 1192 | [Track changes to package ndp |
|---|
| 1193 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071212062714] |
|---|
| 1194 | [Add vectorisation built-ins |
|---|
| 1195 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071212040521] |
|---|
| 1196 | [FIX #1963: catch Ctrl-C and clean up properly |
|---|
| 1197 | Simon Marlow <simonmar@microsoft.com>**20071213154056] |
|---|
| 1198 | [Document the new threshold flags |
|---|
| 1199 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214003003] |
|---|
| 1200 | [Separate and optional size thresholds for SpecConstr and LiberateCase |
|---|
| 1201 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214002719 |
|---|
| 1202 | |
|---|
| 1203 | This patch replaces -fspec-threshold by -fspec-constr-threshold and |
|---|
| 1204 | -fliberate-case-threshold. The thresholds can be disabled by |
|---|
| 1205 | -fno-spec-constr-threshold and -fno-liberate-case-threshold. |
|---|
| 1206 | ] |
|---|
| 1207 | [Make HscTypes.tyThingId respond not panic on ADataCon |
|---|
| 1208 | simonpj@microsoft.com**20071204152903] |
|---|
| 1209 | [Use Unix format for RnPat (no other change) |
|---|
| 1210 | simonpj@microsoft.com**20071213140532] |
|---|
| 1211 | [Improve free-variable handling for rnPat and friends (fixes Trac #1972) |
|---|
| 1212 | simonpj@microsoft.com**20071213140213 |
|---|
| 1213 | |
|---|
| 1214 | As well as fixing the immediate problem (Trac #1972) this patch does |
|---|
| 1215 | a signficant simplification and refactoring of pattern renaming. |
|---|
| 1216 | |
|---|
| 1217 | Fewer functions, fewer parameters passed....it's all good. But it |
|---|
| 1218 | took much longer than I expected to figure out. |
|---|
| 1219 | |
|---|
| 1220 | The most significant change is that the NameMaker type does *binding* |
|---|
| 1221 | as well as *making* and, in the matchNameMaker case, checks for unused |
|---|
| 1222 | bindings as well. This is much tider. |
|---|
| 1223 | |
|---|
| 1224 | (No need to merge to the 6.8 branch, but no harm either.) |
|---|
| 1225 | |
|---|
| 1226 | |
|---|
| 1227 | ] |
|---|
| 1228 | [Allow more than 3 simplifier iterations to be run in phase 0 |
|---|
| 1229 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040835 |
|---|
| 1230 | |
|---|
| 1231 | The number of iterations during the first run of phase 0 was erroneously |
|---|
| 1232 | hardcoded to 3. It should be *at least* 3 (see comments in code) but can be |
|---|
| 1233 | more. |
|---|
| 1234 | ] |
|---|
| 1235 | [Document -ddump-simpl-phases |
|---|
| 1236 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040822] |
|---|
| 1237 | [New flag: -ddump-simpl-phases |
|---|
| 1238 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040644 |
|---|
| 1239 | |
|---|
| 1240 | This outputs the core after each simplifier phase (i.e., it produces less |
|---|
| 1241 | information that -ddump-simpl-iterations). |
|---|
| 1242 | ] |
|---|
| 1243 | [Don't dump simplifier iterations with -dverbose-core2core |
|---|
| 1244 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034635 |
|---|
| 1245 | |
|---|
| 1246 | SimonPJ says this is the correct behaviour. We still have |
|---|
| 1247 | -ddump-simpl-iterations. |
|---|
| 1248 | ] |
|---|
| 1249 | ["list --simple-output" should be quiet when there are no packages to list |
|---|
| 1250 | Simon Marlow <simonmar@microsoft.com>**20071212102230 |
|---|
| 1251 | |
|---|
| 1252 | Previously: |
|---|
| 1253 | |
|---|
| 1254 | $ ghc-pkg list --user --simple-output |
|---|
| 1255 | ghc-pkg: no matches |
|---|
| 1256 | $ |
|---|
| 1257 | |
|---|
| 1258 | Now: |
|---|
| 1259 | |
|---|
| 1260 | $ ghc-pkg list --user --simple-output |
|---|
| 1261 | $ |
|---|
| 1262 | ] |
|---|
| 1263 | [Fix vectorisation bug |
|---|
| 1264 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206233015] |
|---|
| 1265 | [Vectorisation-related built ins |
|---|
| 1266 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206040829] |
|---|
| 1267 | [Teach vectorisation about some temporary conversion functions |
|---|
| 1268 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206032547] |
|---|
| 1269 | [Vectorise case of unit correctly |
|---|
| 1270 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221305] |
|---|
| 1271 | [Teach vectorisation about singletonP |
|---|
| 1272 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221240] |
|---|
| 1273 | [Optimise desugaring of parallel array comprehensions |
|---|
| 1274 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221213] |
|---|
| 1275 | [Teach vectorisation about tuple datacons |
|---|
| 1276 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205050221] |
|---|
| 1277 | [Track additions to package ndp |
|---|
| 1278 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205042649] |
|---|
| 1279 | [Track changes to package ndp |
|---|
| 1280 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205033859] |
|---|
| 1281 | [Improve pretty-printing of InstDecl |
|---|
| 1282 | simonpj@microsoft.com**20071210083053 |
|---|
| 1283 | |
|---|
| 1284 | Fixes Trac #1966. |
|---|
| 1285 | |
|---|
| 1286 | ] |
|---|
| 1287 | [Coercions from boxy splitters must be sym'ed in pattern matches |
|---|
| 1288 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071208105018] |
|---|
| 1289 | [Properly keep track of whether normalising given or wanted dicts |
|---|
| 1290 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071207071302 |
|---|
| 1291 | - The information of whether given or wanted class dictionaries where |
|---|
| 1292 | normalised by rewriting wasn't always correctly propagated in TcTyFuns, |
|---|
| 1293 | which lead to malformed dictionary bindings. |
|---|
| 1294 | - Also fixes a bug in TcPat.tcConPat where GADT equalities where emitted in |
|---|
| 1295 | the wrong position in case bindings (which led to CoreLint failures). |
|---|
| 1296 | ] |
|---|
| 1297 | [TcPat.tcConPat uses equalities instead of GADT refinement |
|---|
| 1298 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071120071208 |
|---|
| 1299 | * This patch implements the use of equality constraints instead of GADT |
|---|
| 1300 | refinements that we have been discussing for a while. |
|---|
| 1301 | * It just changes TcPat.tcConPat. It doesn't have any of the simplification |
|---|
| 1302 | and dead code removal that is possible due to this change. |
|---|
| 1303 | * At the moment, this patch breaks a fair number of GADT regression tests. |
|---|
| 1304 | ] |
|---|
| 1305 | [Use installPackage for register --inplace as well as installing |
|---|
| 1306 | Ian Lynagh <igloo@earth.li>**20071207234652 |
|---|
| 1307 | We also need to do the GHC.Prim hack when registering inplace or the |
|---|
| 1308 | tests that use it fail. |
|---|
| 1309 | ] |
|---|
| 1310 | [Fix the libraries Makefile |
|---|
| 1311 | Ian Lynagh <igloo@earth.li>**20071205125015 |
|---|
| 1312 | x && y |
|---|
| 1313 | is not the same as |
|---|
| 1314 | if x; then y; fi |
|---|
| 1315 | as the latter doesn't fail when x fails |
|---|
| 1316 | ] |
|---|
| 1317 | [Copy hscolour.css into dist/... so it gets installed with the library docs |
|---|
| 1318 | Ian Lynagh <igloo@earth.li>**20071205013703] |
|---|
| 1319 | [Add the hscolour.css from hscolour 1.8 |
|---|
| 1320 | Ian Lynagh <igloo@earth.li>**20071205011733] |
|---|
| 1321 | [BIN_DIST_INST_SUBDIR Needs to be defined in config.mk so ./Makefile can see it |
|---|
| 1322 | Ian Lynagh <igloo@earth.li>**20071207121317] |
|---|
| 1323 | [#include ../includes/MachRegs.h rather than just MachRegs.h |
|---|
| 1324 | Ian Lynagh <igloo@earth.li>**20071205170335 |
|---|
| 1325 | This fixes building on NixOS. I'm not sure why it worked everywhere else, |
|---|
| 1326 | but not on NixOS, before. |
|---|
| 1327 | ] |
|---|
| 1328 | [Fix bindist creation: readline/config.mk is gone |
|---|
| 1329 | Ian Lynagh <igloo@earth.li>**20071203123031] |
|---|
| 1330 | [FIX #1843: Generate different instructions on PPC |
|---|
| 1331 | Ian Lynagh <igloo@earth.li>**20071203123237 |
|---|
| 1332 | The old ones caused lots of |
|---|
| 1333 | unknown scattered relocation type 4 |
|---|
| 1334 | errors. Patch from Chris Kuklewicz. |
|---|
| 1335 | ] |
|---|
| 1336 | [Refactor gen_contents_index |
|---|
| 1337 | Ian Lynagh <igloo@earth.li>**20071207183538 |
|---|
| 1338 | Also fixes it with Solaris's sh, spotted by Christian Maeder |
|---|
| 1339 | ] |
|---|
| 1340 | [Use GHC.Exts rather than GHC.Prim |
|---|
| 1341 | Ian Lynagh <igloo@earth.li>**20071202234222] |
|---|
| 1342 | [Alter the base:GHC.Prim hack in installPackage, following changes in base |
|---|
| 1343 | Ian Lynagh <igloo@earth.li>**20071202215719] |
|---|
| 1344 | [Remove debug warning, and explain why |
|---|
| 1345 | simonpj@microsoft.com**20071207170507] |
|---|
| 1346 | [comment only |
|---|
| 1347 | Simon Marlow <simonmar@microsoft.com>**20071206092422] |
|---|
| 1348 | [comment typo |
|---|
| 1349 | Simon Marlow <simonmar@microsoft.com>**20071206092412] |
|---|
| 1350 | [add Outputable instance for OccIfaceEq |
|---|
| 1351 | Simon Marlow <simonmar@microsoft.com>**20071206092403] |
|---|
| 1352 | [Workaround for #1959: assume untracked names have changed |
|---|
| 1353 | Simon Marlow <simonmar@microsoft.com>**20071206092349 |
|---|
| 1354 | This fixes the 1959 test, but will do more recompilation than is |
|---|
| 1355 | strictly necessary (but only when -O is on). Still, more |
|---|
| 1356 | recompilation is better than segfaults, link errors or other random |
|---|
| 1357 | breakage. |
|---|
| 1358 | ] |
|---|
| 1359 | [FIX part of #1959: declaration versions were not being incremented correctly |
|---|
| 1360 | Simon Marlow <simonmar@microsoft.com>**20071206084556 |
|---|
| 1361 | We were building a mapping from ModuleName to [Occ] from the usage |
|---|
| 1362 | list, using the usg_mod field as the key. Unfortunately, due to a |
|---|
| 1363 | very poor naming decision, usg_mod is actually the module version, not |
|---|
| 1364 | the ModuleName. usg_name is the ModuleName. Since Version is also an |
|---|
| 1365 | instance of Uniquable, there was no type error: all that happened was |
|---|
| 1366 | lookups in the map never succeeded. I shall rename the fields of |
|---|
| 1367 | Usage in a separate patch. |
|---|
| 1368 | |
|---|
| 1369 | This doesn't completely fix #1959, but it gets part of the way there. |
|---|
| 1370 | |
|---|
| 1371 | I have to take partial blame as the person who wrote this fragment of |
|---|
| 1372 | code in late 2006 (patch "Interface file optimisation and removal of |
|---|
| 1373 | nameParent"). |
|---|
| 1374 | ] |
|---|
| 1375 | [move FP_FIND_ROOT after the "GHC is required" check |
|---|
| 1376 | Simon Marlow <simonmar@microsoft.com>**20071205101814] |
|---|
| 1377 | [FIX #1110: hackery also needed when running gcc for CPP |
|---|
| 1378 | Simon Marlow <simonmar@microsoft.com>**20071205150230] |
|---|
| 1379 | [Comments only |
|---|
| 1380 | Pepe Iborra <mnislaih@gmail.com>**20071208204815] |
|---|
| 1381 | [Refactoring only |
|---|
| 1382 | Pepe Iborra <mnislaih@gmail.com>**20071208195222 |
|---|
| 1383 | |
|---|
| 1384 | Suspensions in the Term datatype used for RTTI |
|---|
| 1385 | always get assigned a Type, so there is no reason |
|---|
| 1386 | to juggle around with a (Maybe Type) anymore. |
|---|
| 1387 | |
|---|
| 1388 | ] |
|---|
| 1389 | [Change the format used by :print to show the content of references |
|---|
| 1390 | Pepe Iborra <mnislaih@gmail.com>**20071208193013 |
|---|
| 1391 | |
|---|
| 1392 | This comes as result of the short discussion linked below. |
|---|
| 1393 | |
|---|
| 1394 | http://www.haskell.org/pipermail/cvs-ghc/2007-December/040049.html |
|---|
| 1395 | |
|---|
| 1396 | ] |
|---|
| 1397 | [Help the user when she tries to do :history without :trace |
|---|
| 1398 | Pepe Iborra <mnislaih@gmail.com>**20071208180918 |
|---|
| 1399 | |
|---|
| 1400 | Teach GHCi to show a "perhaps you forgot to use :trace?" when |
|---|
| 1401 | it finds that the user is trying to retrieve an empty :history |
|---|
| 1402 | |
|---|
| 1403 | ] |
|---|
| 1404 | [Prevent the binding of unboxed things by :print |
|---|
| 1405 | Pepe Iborra <mnislaih@gmail.com>**20071208181830] |
|---|
| 1406 | [Change --shared to -shared in Win32 DLL docs |
|---|
| 1407 | simonpj@microsoft.com**20071204154023] |
|---|
| 1408 | [protect console handler against concurrent access (#1922) |
|---|
| 1409 | Simon Marlow <simonmar@microsoft.com>**20071204153918] |
|---|
| 1410 | [Make eta reduction check more carefully for bottoms (fix Trac #1947) |
|---|
| 1411 | simonpj@microsoft.com**20071204145803 |
|---|
| 1412 | |
|---|
| 1413 | Eta reduction was wrongly transforming |
|---|
| 1414 | f = \x. f x |
|---|
| 1415 | to |
|---|
| 1416 | f = f |
|---|
| 1417 | |
|---|
| 1418 | Solution: don't trust f's arity information; instead look at its |
|---|
| 1419 | unfolding. See Note [Eta reduction conditions] |
|---|
| 1420 | |
|---|
| 1421 | Almost all the new lines are comments! |
|---|
| 1422 | |
|---|
| 1423 | |
|---|
| 1424 | ] |
|---|
| 1425 | [Improve inlining for INLINE non-functions |
|---|
| 1426 | simonpj@microsoft.com**20071204114955 |
|---|
| 1427 | |
|---|
| 1428 | (No need to merge to 6.8, but no harm if a subsequent patch needs it.) |
|---|
| 1429 | |
|---|
| 1430 | The proximate cause for this patch is to improve the inlining for INLINE |
|---|
| 1431 | things that are not functions; this came up in the NDP project. See |
|---|
| 1432 | Note [Lone variables] in CoreUnfold. |
|---|
| 1433 | |
|---|
| 1434 | This caused some refactoring that actually made things simpler. In |
|---|
| 1435 | particular, more of the inlining logic has moved from SimplUtils to |
|---|
| 1436 | CoreUnfold, where it belongs. |
|---|
| 1437 | |
|---|
| 1438 | |
|---|
| 1439 | ] |
|---|
| 1440 | [fix race conditions in sandboxIO (#1583, #1922, #1946) |
|---|
| 1441 | Simon Marlow <simonmar@microsoft.com>**20071204114444 |
|---|
| 1442 | using the new block-inheriting forkIO (#1048) |
|---|
| 1443 | ] |
|---|
| 1444 | [:cd with no argument goes to the user's home directory |
|---|
| 1445 | Simon Marlow <simonmar@microsoft.com>**20071204113945 |
|---|
| 1446 | Seems better than getting a confusing 'cannot find directory' exception. |
|---|
| 1447 | ] |
|---|
| 1448 | [forkIO starts the new thread blocked if the parent is blocked (#1048) |
|---|
| 1449 | Simon Marlow <simonmar@microsoft.com>**20071204110947] |
|---|
| 1450 | [Improve eta reduction, to reduce Simplifier iterations |
|---|
| 1451 | simonpj@microsoft.com**20071203150039 |
|---|
| 1452 | |
|---|
| 1453 | I finally got around to investigating why the Simplifier was sometimes |
|---|
| 1454 | iterating so often. There's a nice example in Text.ParserCombinators.ReadPrec, |
|---|
| 1455 | which produced: |
|---|
| 1456 | |
|---|
| 1457 | NOTE: Simplifier still going after 3 iterations; bailing out. Size = 339 |
|---|
| 1458 | NOTE: Simplifier still going after 3 iterations; bailing out. Size = 339 |
|---|
| 1459 | NOTE: Simplifier still going after 3 iterations; bailing out. Size = 339 |
|---|
| 1460 | |
|---|
| 1461 | No progress is being made. It turned out that an interaction between |
|---|
| 1462 | eta-expansion, casts, and eta reduction was responsible. The change is |
|---|
| 1463 | small and simple, in SimplUtils.mkLam: do not require the body to be |
|---|
| 1464 | a Lam when floating the cast outwards. |
|---|
| 1465 | |
|---|
| 1466 | I also discovered a missing side condition in the same equation, so fixing |
|---|
| 1467 | that is good too. Now there is no loop when compiling ReadPrec. |
|---|
| 1468 | |
|---|
| 1469 | Should do a full nofib run though. |
|---|
| 1470 | |
|---|
| 1471 | ] |
|---|
| 1472 | [Don't default to stripping binaries when installing |
|---|
| 1473 | Ian Lynagh <igloo@earth.li>**20071202195817] |
|---|
| 1474 | [Improve pretty-printing for Insts |
|---|
| 1475 | simonpj@microsoft.com**20071128173125] |
|---|
| 1476 | [Reorganise TcSimplify (again); FIX Trac #1919 |
|---|
| 1477 | simonpj@microsoft.com**20071128173146 |
|---|
| 1478 | |
|---|
| 1479 | This was a bit tricky. We had a "given" dict like (d7:Eq a); then it got |
|---|
| 1480 | supplied to reduceImplication, which did some zonking, and emerged with |
|---|
| 1481 | a "needed given" (d7:Eq Int). That got everything confused. |
|---|
| 1482 | |
|---|
| 1483 | I found a way to simplify matters significantly. Now reduceContext |
|---|
| 1484 | - first deals with methods/literals/dictionaries |
|---|
| 1485 | - then deals with implications |
|---|
| 1486 | Separating things in this way not only made the bug go away, but |
|---|
| 1487 | eliminated the need for the recently-added "needed-givens" results returned |
|---|
| 1488 | by checkLoop. Hurrah. |
|---|
| 1489 | |
|---|
| 1490 | It's still a swamp. But it's a bit better. |
|---|
| 1491 | |
|---|
| 1492 | ] |
|---|
| 1493 | [Teach :print to follow references (STRefs and IORefs) |
|---|
| 1494 | Pepe Iborra <mnislaih@gmail.com>**20071204105511 |
|---|
| 1495 | |
|---|
| 1496 | Prelude Data.IORef> :p l |
|---|
| 1497 | l = (_t4::Maybe Integer) : (_t5::[Maybe Integer]) |
|---|
| 1498 | Prelude Data.IORef> p <- newIORef l |
|---|
| 1499 | Prelude Data.IORef> :p p |
|---|
| 1500 | p = GHC.IOBase.IORef (GHC.STRef.STRef {((_t6::Maybe Integer) : |
|---|
| 1501 | (_t7::[Maybe Integer]))}) |
|---|
| 1502 | Prelude Data.IORef> :sp p |
|---|
| 1503 | p = GHC.IOBase.IORef (GHC.STRef.STRef {(_ : _)}) |
|---|
| 1504 | |
|---|
| 1505 | |
|---|
| 1506 | I used braces to denote the contents of a reference. |
|---|
| 1507 | Perhaps there is a more appropriate notation? |
|---|
| 1508 | ] |
|---|
| 1509 | [refactoring only |
|---|
| 1510 | Pepe Iborra <mnislaih@gmail.com>**20071202125400] |
|---|
| 1511 | [FIX #1914: GHCi forgot all the modules that were loaded before an error |
|---|
| 1512 | Simon Marlow <simonmar@microsoft.com>**20071130130734] |
|---|
| 1513 | [FIX #1744: ignore the byte-order mark at the beginning of a file |
|---|
| 1514 | Simon Marlow <simonmar@microsoft.com>**20071130101100] |
|---|
| 1515 | [FIX Trac #1935: generate superclass constraints for derived classes |
|---|
| 1516 | simonpj@microsoft.com**20071128150541 |
|---|
| 1517 | |
|---|
| 1518 | This bug only reports a problem with phantom types, but actually |
|---|
| 1519 | there was quite a long-standing and significant omission in the |
|---|
| 1520 | constraint generation for derived classes. See |
|---|
| 1521 | Note [Superclasses of derived instance] in TcDeriv. |
|---|
| 1522 | |
|---|
| 1523 | The test deriving-1935 tests both cases. |
|---|
| 1524 | |
|---|
| 1525 | |
|---|
| 1526 | ] |
|---|
| 1527 | [Print a bit more info in VarBinds (no need to merge) |
|---|
| 1528 | simonpj@microsoft.com**20071128150354] |
|---|
| 1529 | [Check for duplicate bindings in CoreLint |
|---|
| 1530 | simonpj@microsoft.com**20071128150214] |
|---|
| 1531 | [add comment |
|---|
| 1532 | Simon Marlow <simonmar@microsoft.com>**20071128111417] |
|---|
| 1533 | [FIX #1916: don't try to convert float constants to int in CMM optimizer |
|---|
| 1534 | Bertram Felgenhauer <int-e@gmx.de>**20071122095513] |
|---|
| 1535 | [give a more useful message when the static flags have not been initialised (#1938) |
|---|
| 1536 | Simon Marlow <simonmar@microsoft.com>**20071127135435] |
|---|
| 1537 | [Rebuild utils with the stage1 compiler when making a bindist; fixes trac #1860 |
|---|
| 1538 | Ian Lynagh <igloo@earth.li>**20071127203959 |
|---|
| 1539 | This is a bit unpleasant, as "make binary-dist" really shouldn't actually |
|---|
| 1540 | build anything, but it works. |
|---|
| 1541 | ] |
|---|
| 1542 | [Remove the --print-docdir flag |
|---|
| 1543 | Ian Lynagh <igloo@earth.li>**20071127195605 |
|---|
| 1544 | It wasn't doing the right thing for bindists. Let's rethink... |
|---|
| 1545 | ] |
|---|
| 1546 | [FIX #1925: the interpreter was not maintaining tag bits correctly |
|---|
| 1547 | Simon Marlow <simonmar@microsoft.com>**20071127122614 |
|---|
| 1548 | See comment for details |
|---|
| 1549 | ] |
|---|
| 1550 | [add missing instruction: ALLOC_AP_NOUPD |
|---|
| 1551 | Simon Marlow <simonmar@microsoft.com>**20071127122604] |
|---|
| 1552 | [Check tag bits on the fun pointer of a PAP |
|---|
| 1553 | Simon Marlow <simonmar@microsoft.com>**20071126160420] |
|---|
| 1554 | [canonicalise the path to HsColour |
|---|
| 1555 | Simon Marlow <simonmar@microsoft.com>**20071126141614] |
|---|
| 1556 | [Consistently put www. on the front of haskell.org in URLs |
|---|
| 1557 | Ian Lynagh <igloo@earth.li>**20071126215256] |
|---|
| 1558 | [Fix some more URLs |
|---|
| 1559 | Ian Lynagh <igloo@earth.li>**20071126214147] |
|---|
| 1560 | [Tweak some URLs |
|---|
| 1561 | Ian Lynagh <igloo@earth.li>**20071126194148] |
|---|
| 1562 | [Fix some links |
|---|
| 1563 | Ian Lynagh <igloo@earth.li>**20071126184406] |
|---|
| 1564 | [Copy gmp stamps into bindists, so we don't try and rebuild gmp |
|---|
| 1565 | Ian Lynagh <igloo@earth.li>**20071125211919] |
|---|
| 1566 | [On Windows, Delete the CriticalSection's we Initialize |
|---|
| 1567 | Ian Lynagh <igloo@earth.li>**20071125125845] |
|---|
| 1568 | [On Windows, add a start menu link to the flag reference |
|---|
| 1569 | Ian Lynagh <igloo@earth.li>**20071125124429] |
|---|
| 1570 | [Remove html/ from the paths we put in the start menu on Windows |
|---|
| 1571 | Ian Lynagh <igloo@earth.li>**20071125124150] |
|---|
| 1572 | [MERGED: Make ":" in GHCi repeat the last command |
|---|
| 1573 | Ian Lynagh <igloo@earth.li>**20071125122020 |
|---|
| 1574 | Ian Lynagh <igloo@earth.li>**20071124231857 |
|---|
| 1575 | It used to be a synonym for ":r" in 6.6.1, but this wasn't documented or |
|---|
| 1576 | known about by the developers. In 6.8.1 it was accidentally broken. |
|---|
| 1577 | This patch brings it back, but as "repeat the last command", similar to |
|---|
| 1578 | pressing enter in gdb. This is almost as good for people who want it to |
|---|
| 1579 | reload, and means that it can also be used to repeat commands like :step. |
|---|
| 1580 | ] |
|---|
| 1581 | [MERGED: Put library docs in a $pkg, rather than $pkgid, directory; fixes trac #1864 |
|---|
| 1582 | Ian Lynagh <igloo@earth.li>**20071124212305 |
|---|
| 1583 | Ian Lynagh <igloo@earth.li>**20071124171220 |
|---|
| 1584 | ] |
|---|
| 1585 | [Don't make a library documentation prologue |
|---|
| 1586 | Ian Lynagh <igloo@earth.li>**20071124211943 |
|---|
| 1587 | It's far too large now, and no-one complained when 6.8.1 didn't have one. |
|---|
| 1588 | ] |
|---|
| 1589 | [Don't put package version numbers in links in index.html |
|---|
| 1590 | Ian Lynagh <igloo@earth.li>**20071124211629] |
|---|
| 1591 | [Define install-strip in Makefile |
|---|
| 1592 | Ian Lynagh <igloo@earth.li>**20071124205037] |
|---|
| 1593 | [Define install-strip in distrib/Makefile |
|---|
| 1594 | Ian Lynagh <igloo@earth.li>**20071124204803] |
|---|
| 1595 | [Install gmp from bindists; fixes trac #1848 |
|---|
| 1596 | Ian Lynagh <igloo@earth.li>**20071124185240] |
|---|
| 1597 | [(native gen) fix code generated for GDTOI on x86_32 |
|---|
| 1598 | Bertram Felgenhauer <int-e@gmx.de>**20071121063942 |
|---|
| 1599 | See trac #1910. |
|---|
| 1600 | ] |
|---|
| 1601 | [Copy the INSTALL hack from mk/config.mk.in into distrib/Makefile-bin-vars.in |
|---|
| 1602 | Ian Lynagh <igloo@earth.li>**20071124163028 |
|---|
| 1603 | configure will set INSTALL to ./install-sh if it can't find it in the path, |
|---|
| 1604 | so we need to replace the . with the path to our root. |
|---|
| 1605 | ] |
|---|
| 1606 | [Make install-sh executable /before/ we try to find it |
|---|
| 1607 | Ian Lynagh <igloo@earth.li>**20071124162450] |
|---|
| 1608 | [Document --info in the +RTS -? help |
|---|
| 1609 | Ian Lynagh <igloo@earth.li>**20071123204352] |
|---|
| 1610 | [MERGED: If we have hscolour then make source code links in teh haddock docs |
|---|
| 1611 | Ian Lynagh <igloo@earth.li>**20071123233113 |
|---|
| 1612 | Fri Nov 23 13:15:59 PST 2007 Ian Lynagh <igloo@earth.li> |
|---|
| 1613 | ] |
|---|
| 1614 | [Tidy and trim the type environment in mkBootModDetails |
|---|
| 1615 | simonpj@microsoft.com**20071123153519 |
|---|
| 1616 | |
|---|
| 1617 | Should fix Trac #1833 |
|---|
| 1618 | |
|---|
| 1619 | We were failing to trim the type envt in mkBootModDetails, so several |
|---|
| 1620 | functions all called (*), for example, were getting into the interface. |
|---|
| 1621 | Result chaos. It only actually bites when we do the retyping-loop thing, |
|---|
| 1622 | which is why it's gone so long without a fix. |
|---|
| 1623 | |
|---|
| 1624 | |
|---|
| 1625 | ] |
|---|
| 1626 | [refactor: HscNothing and boot modules do not need desugaring |
|---|
| 1627 | Simon Marlow <simonmar@microsoft.com>**20071123135237] |
|---|
| 1628 | [FIX #1910: fix code generated for GDTOI on x86_32 |
|---|
| 1629 | Bertram Felgenhauer <int-e@gmx.de>*-20071121102627] |
|---|
| 1630 | [Properly ppr InstEqs in wanteds of implication constraints |
|---|
| 1631 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071122093002] |
|---|
| 1632 | [FIX #1910: fix code generated for GDTOI on x86_32 |
|---|
| 1633 | Bertram Felgenhauer <int-e@gmx.de>**20071121102627] |
|---|
| 1634 | [Add built-in Double operations to vectorisation |
|---|
| 1635 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071122002517] |
|---|
| 1636 | [Teach vectorisation about Double |
|---|
| 1637 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071121054932] |
|---|
| 1638 | [Vectorise polyexprs with notes |
|---|
| 1639 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071121053102] |
|---|
| 1640 | [Make rebindable do-notation behave as advertised |
|---|
| 1641 | simonpj@microsoft.com**20071121174914 |
|---|
| 1642 | |
|---|
| 1643 | Adopt Trac #1537. The patch ended up a bit bigger than I expected, |
|---|
| 1644 | so I suggest we do not merge this into the 6.8 branch. But there |
|---|
| 1645 | is no funadamental reason why not. |
|---|
| 1646 | |
|---|
| 1647 | With this patch, rebindable do-notation really does type as if you |
|---|
| 1648 | had written the original (>>) and (>>=) operations in desguared form. |
|---|
| 1649 | |
|---|
| 1650 | I ended up refactoring some of the (rather complicated) error-context |
|---|
| 1651 | stuff in TcUnify, by pushing an InstOrigin into tcSubExp and its |
|---|
| 1652 | various calls. That means we could get rid of tcFunResTy, and the |
|---|
| 1653 | SubCtxt type. This should improve error messages slightly |
|---|
| 1654 | in complicated situations, because we have an Origin to hand |
|---|
| 1655 | to instCall (in the (isSigmaTy actual_ty) case of tc_sub1). |
|---|
| 1656 | |
|---|
| 1657 | Thanks to Pepe for the first draft of the patch. |
|---|
| 1658 | |
|---|
| 1659 | ] |
|---|
| 1660 | [Add DEBUG-only flag -dsuppress-uniques to suppress printing of uniques |
|---|
| 1661 | simonpj@microsoft.com**20071116152446 |
|---|
| 1662 | |
|---|
| 1663 | This is intended only for debugging use: it makes it easier to |
|---|
| 1664 | compare two variants without the variations between uniques mattering. |
|---|
| 1665 | |
|---|
| 1666 | (Of course, you can't actually feed the output to the C compiler |
|---|
| 1667 | or assembler and expect anything sensible to happen!) |
|---|
| 1668 | |
|---|
| 1669 | ] |
|---|
| 1670 | [Add -dcore-lint when validating libraries |
|---|
| 1671 | simonpj@microsoft.com**20071105164733] |
|---|
| 1672 | [Fix Trac #1913: check data const for derived types are in scope |
|---|
| 1673 | simonpj@microsoft.com**20071121151428 |
|---|
| 1674 | |
|---|
| 1675 | When deriving an instance, the data constructors should all be in scope. |
|---|
| 1676 | This patch checks the condition. |
|---|
| 1677 | |
|---|
| 1678 | |
|---|
| 1679 | ] |
|---|
| 1680 | [Fix Trac #1909: type of map in docs |
|---|
| 1681 | simonpj@microsoft.com**20071120160152] |
|---|
| 1682 | [Move file locking into the RTS, fixing #629, #1109 |
|---|
| 1683 | Simon Marlow <simonmar@microsoft.com>**20071120140859 |
|---|
| 1684 | File locking (of the Haskell 98 variety) was previously done using a |
|---|
| 1685 | static table with linear search, which had two problems: the array had |
|---|
| 1686 | a fixed size and was sometimes too small (#1109), and performance of |
|---|
| 1687 | lockFile/unlockFile was suboptimal due to the linear search. |
|---|
| 1688 | Also the algorithm failed to count readers as required by Haskell 98 |
|---|
| 1689 | (#629). |
|---|
| 1690 | |
|---|
| 1691 | Now it's done using a hash table (provided by the RTS). Furthermore I |
|---|
| 1692 | avoided the extra fstat() for every open file by passing the dev_t and |
|---|
| 1693 | ino_t into lockFile. This and the improvements to the locking |
|---|
| 1694 | algorithm result in a healthy 20% or so performance increase for |
|---|
| 1695 | opening/closing files (see openFile008 test). |
|---|
| 1696 | ] |
|---|
| 1697 | [FIX Trac #1825: standalone deriving Typeable |
|---|
| 1698 | simonpj@microsoft.com**20071120125732 |
|---|
| 1699 | |
|---|
| 1700 | Standalone deriving of typeable now requires you to say |
|---|
| 1701 | instance Typeable1 Maybe |
|---|
| 1702 | which is exactly the shape of instance decl that is generated |
|---|
| 1703 | by a 'deriving( Typeable )' clause on the data type decl. |
|---|
| 1704 | |
|---|
| 1705 | This is a bit horrid, but it's the only consistent way, at least |
|---|
| 1706 | for now. If you say something else, the error messages are helpful. |
|---|
| 1707 | |
|---|
| 1708 | MERGE to 6.8 branch |
|---|
| 1709 | |
|---|
| 1710 | ] |
|---|
| 1711 | [FIX #1715: egregious bug in ifaceDeclSubBndrs |
|---|
| 1712 | simonpj@microsoft.com**20071120111723 |
|---|
| 1713 | |
|---|
| 1714 | ifaceDeclSubBndrs didn't have an IfaceSyn case; but with type |
|---|
| 1715 | families an IfaceSyn can introduce subordinate binders. Result: |
|---|
| 1716 | chaos. |
|---|
| 1717 | |
|---|
| 1718 | The fix is easy though. Merge to 6.8 branch. |
|---|
| 1719 | |
|---|
| 1720 | |
|---|
| 1721 | ] |
|---|
| 1722 | [Always do 'setup makefile' before building each library |
|---|
| 1723 | Simon Marlow <simonmar@microsoft.com>**20071120103329 |
|---|
| 1724 | This forces preprocessing to happen, which is necessary if any of the |
|---|
| 1725 | .hsc files have been modified. Without this change, a 'setup |
|---|
| 1726 | makefile' would be required by hand after a .hsc file changed. |
|---|
| 1727 | Fortunately 'setup makefile' isn't much extra work, and I've made it |
|---|
| 1728 | not overwrite GNUmakefile if it hasn't changed, which avoids |
|---|
| 1729 | recalculating the dependencies each time. |
|---|
| 1730 | ] |
|---|
| 1731 | [FIX #1847 (improve :browse! docs, fix unqual) |
|---|
| 1732 | claus.reinke@talk21.com**20071108013147 |
|---|
| 1733 | |
|---|
| 1734 | - add example to docs, explain how to interpret |
|---|
| 1735 | output of `:browse! Data.Maybe` |
|---|
| 1736 | - print unqualified names according to current |
|---|
| 1737 | context, not the context of the target module |
|---|
| 1738 | |
|---|
| 1739 | ] |
|---|
| 1740 | [Track changes to package ndp |
|---|
| 1741 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071120033716] |
|---|
| 1742 | [Temporary hack for passing PArrays from unvectorised to vectorised code |
|---|
| 1743 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071120024545] |
|---|
| 1744 | [Bind NDP stuff to [:.:] arrays |
|---|
| 1745 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119020302] |
|---|
| 1746 | [Don't treat enumerations specially during vectorisation for the moment |
|---|
| 1747 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119013729] |
|---|
| 1748 | [Fix bugs in vectorisation of case expressions |
|---|
| 1749 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119013714] |
|---|
| 1750 | [More built-in NDP combinators |
|---|
| 1751 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119012205] |
|---|
| 1752 | [New vectorisation built-ins |
|---|
| 1753 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118051940] |
|---|
| 1754 | [Fix bug in conversion unvect/vect |
|---|
| 1755 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118051926] |
|---|
| 1756 | [Extend built-in vectorisation environments |
|---|
| 1757 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118045219] |
|---|
| 1758 | [Fix bug in generation of environments for vectorisation |
|---|
| 1759 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118045203] |
|---|
| 1760 | [Add builtin var->var mapping to vectorisation |
|---|
| 1761 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118042605] |
|---|
| 1762 | [Extend vectorisation built-in mappings with datacons |
|---|
| 1763 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118034351] |
|---|
| 1764 | [Change representation of parallel arrays of enumerations |
|---|
| 1765 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118033355] |
|---|
| 1766 | [Add vectorisation-related builtin |
|---|
| 1767 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118031513] |
|---|
| 1768 | [Teach vectorisation about Bool |
|---|
| 1769 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117042714] |
|---|
| 1770 | [Incomplete support for boxing during vectorisation |
|---|
| 1771 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117040739] |
|---|
| 1772 | [Make sure some TyCons always vectorise to themselves |
|---|
| 1773 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117040537] |
|---|
| 1774 | [Simple conversion vectorised -> unvectorised |
|---|
| 1775 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117023029] |
|---|
| 1776 | [Fix bug in case vectorisation |
|---|
| 1777 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117015014] |
|---|
| 1778 | [Vectorisation of algebraic case expressions |
|---|
| 1779 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116074814] |
|---|
| 1780 | [More vectorisation-related built-ins |
|---|
| 1781 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116061831] |
|---|
| 1782 | [Vectorisation utilities |
|---|
| 1783 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116051037] |
|---|
| 1784 | [Add vectorisation built-ins |
|---|
| 1785 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116050959] |
|---|
| 1786 | [Fix vectorisation of binders in case expressions |
|---|
| 1787 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116021833] |
|---|
| 1788 | [Two small typos in the flags summary (merge to 6.8 branch) |
|---|
| 1789 | simonpj@microsoft.com**20071119134639] |
|---|
| 1790 | [Improve the situation for Trac #959: civilised warning instead of a trace msg |
|---|
| 1791 | simonpj@microsoft.com**20071119122938 |
|---|
| 1792 | |
|---|
| 1793 | This doesn't fix the root cause of the bug, but it makes the report |
|---|
| 1794 | more civilised, and points to further info. |
|---|
| 1795 | |
|---|
| 1796 | ] |
|---|
| 1797 | [FIX Trac #1806: test for correct arity for datacon in infix pattern patch |
|---|
| 1798 | simonpj@microsoft.com**20071119114301 |
|---|
| 1799 | |
|---|
| 1800 | Happily the fix is easy; pls merge |
|---|
| 1801 | |
|---|
| 1802 | ] |
|---|
| 1803 | [Accept x86_64-*-freebsd* as well as amd64-*-freebsd* in configure.ac |
|---|
| 1804 | Ian Lynagh <igloo@earth.li>**20071117154502 |
|---|
| 1805 | Patch from Brian P. O'Hanlon |
|---|
| 1806 | ] |
|---|
| 1807 | [Attempt at fixing #1873, #1360 |
|---|
| 1808 | Simon Marlow <simonmar@microsoft.com>**20071116152148 |
|---|
| 1809 | |
|---|
| 1810 | I think I figured out a reasonable way to manage the GHCi context, |
|---|
| 1811 | comments welcome. |
|---|
| 1812 | |
|---|
| 1813 | Rule 1: external package modules in the context are persistent. That |
|---|
| 1814 | is, when you say 'import Data.Maybe' it survives over :load, :add, |
|---|
| 1815 | :reload and :cd. |
|---|
| 1816 | |
|---|
| 1817 | Rule 2: :load and :add remove all home-package modules from the |
|---|
| 1818 | context and add the rightmost target, as a *-module if possible. This |
|---|
| 1819 | is as before, and makes sense for :load because we're starting a new |
|---|
| 1820 | program; the old home-package modules don't make sense any more. For |
|---|
| 1821 | :add, it usually does what you want, because the new target will |
|---|
| 1822 | become the context. |
|---|
| 1823 | |
|---|
| 1824 | Rule 3: any modules from the context that fail to load during a |
|---|
| 1825 | :reload are remembered, and re-added to the context at the next |
|---|
| 1826 | successful :reload. |
|---|
| 1827 | |
|---|
| 1828 | Claus' suggestion about adding the "remembered" modules to the prompt |
|---|
| 1829 | prefixed with a ! is implemented but commented out. I couldn't |
|---|
| 1830 | decide whether it was useful or confusing. |
|---|
| 1831 | |
|---|
| 1832 | One difference that people might notice is that after a :reload where |
|---|
| 1833 | there were errors, GHCi would previously dump you in the most recent |
|---|
| 1834 | module that it loaded. Now it dumps you in whatever subset of the |
|---|
| 1835 | current context still makes sense, and in the common case that will |
|---|
| 1836 | probably be {Prelude}. |
|---|
| 1837 | ] |
|---|
| 1838 | [Wibble to fix Trac #1901 (shorten messsage slightly) |
|---|
| 1839 | simonpj@microsoft.com**20071116150341] |
|---|
| 1840 | [Improve links from flag reference to the relevant section; and improve doc of RankN flags |
|---|
| 1841 | simonpj@microsoft.com**20071116145816] |
|---|
| 1842 | [FIX Trac #1901: check no existential context in H98 mode |
|---|
| 1843 | simonpj@microsoft.com**20071116145609] |
|---|
| 1844 | [Improve documentation of data type declarations (Trac #1901) |
|---|
| 1845 | simonpj@microsoft.com**20071116081841] |
|---|
| 1846 | [Change the command-line semantics for query commands |
|---|
| 1847 | Simon Marlow <simonmar@microsoft.com>**20071116132046 |
|---|
| 1848 | |
|---|
| 1849 | From the help text: |
|---|
| 1850 | |
|---|
| 1851 | Commands that query the package database (list, latest, describe, |
|---|
| 1852 | field) operate on the list of databases specified by the flags |
|---|
| 1853 | --user, --global, and --package-conf. If none of these flags are |
|---|
| 1854 | given, the default is --global --user. |
|---|
| 1855 | |
|---|
| 1856 | This makes it possible to query just a single database (e.g. the |
|---|
| 1857 | global one without the user one), which needed tricks to accomplish |
|---|
| 1858 | before. |
|---|
| 1859 | ] |
|---|
| 1860 | [use "ghc-pkg latest --global" instead of "ghc-pkg list --simple-output" |
|---|
| 1861 | Simon Marlow <simonmar@microsoft.com>**20071116122018 |
|---|
| 1862 | The former now does the right thing: it uses the global database only, |
|---|
| 1863 | and picks the most recent package with the given name. |
|---|
| 1864 | ] |
|---|
| 1865 | [Disallow installing packages whose names differ in case only. |
|---|
| 1866 | Simon Marlow <simonmar@microsoft.com>**20071116121153 |
|---|
| 1867 | --force overrides. Requested by Duncan Coutts, with a view to |
|---|
| 1868 | treating package names as case-insensitive in the future. |
|---|
| 1869 | ] |
|---|
| 1870 | [FIX BUILD (with GHC 6.2.x): update .hi-boot file |
|---|
| 1871 | Simon Marlow <simonmar@microsoft.com>**20071116101227] |
|---|
| 1872 | [FIX #1828: installing to a patch with spaces in |
|---|
| 1873 | Simon Marlow <simonmar@microsoft.com>**20071115155747 |
|---|
| 1874 | We have to pass the path to gcc when calling windres, which itself |
|---|
| 1875 | might have spaces in. Furthermore, we have to pass the path to gcc's |
|---|
| 1876 | tools to gcc. This means getting the quoting right, and after much |
|---|
| 1877 | experimentation and reading of the windres sources I found something |
|---|
| 1878 | that works: passing --use-temp-files to windres makes it use its own |
|---|
| 1879 | implementation of quoting instead of popen(), and this does what we |
|---|
| 1880 | want. Sigh. |
|---|
| 1881 | ] |
|---|
| 1882 | [on Windows, install to a directory with spaces (test for #1828) |
|---|
| 1883 | Simon Marlow <simonmar@microsoft.com>**20071115155327] |
|---|
| 1884 | [FIX #1679: crash on returning from a foreign call |
|---|
| 1885 | Simon Marlow <simonmar@microsoft.com>**20071115131635 |
|---|
| 1886 | We forgot to save a pointer to the BCO over the foreign call. Doing |
|---|
| 1887 | enough allocation and GC during the call could provoke a crash. |
|---|
| 1888 | ] |
|---|
| 1889 | [Avoid the use of unversioned package dependencies |
|---|
| 1890 | Simon Marlow <simonmar@microsoft.com>**20071115103249 |
|---|
| 1891 | Fortunately "ghc-pkg list $pkg --simple-output" is a good way to add |
|---|
| 1892 | the version number. |
|---|
| 1893 | ] |
|---|
| 1894 | [FIX #1596 (remove deprecated --define-name) |
|---|
| 1895 | Simon Marlow <simonmar@microsoft.com>**20071114165323 |
|---|
| 1896 | Also remove the old command-line syntax for ghc-pkg, which was not |
|---|
| 1897 | documented. Do not merge. |
|---|
| 1898 | ] |
|---|
| 1899 | [FIX #1837: remove deprecated support for unversioned dependencies (do not merge) |
|---|
| 1900 | Simon Marlow <simonmar@microsoft.com>**20071114161044 |
|---|
| 1901 | |
|---|
| 1902 | ] |
|---|
| 1903 | [Make SpecConstr work again |
|---|
| 1904 | simonpj@microsoft.com**20071115084242 |
|---|
| 1905 | |
|---|
| 1906 | In a typo I'd written env instead of env', and as a result RULES are |
|---|
| 1907 | practically guaranteed not to work in a recursive group. This pretty |
|---|
| 1908 | much kills SpecConstr in its tracks! |
|---|
| 1909 | |
|---|
| 1910 | Well done Kenny Lu for spotting this. The fix is easy. |
|---|
| 1911 | |
|---|
| 1912 | Merge into 6.8 please. |
|---|
| 1913 | |
|---|
| 1914 | |
|---|
| 1915 | |
|---|
| 1916 | ] |
|---|
| 1917 | [Documentation only - fix typo in flags reference |
|---|
| 1918 | Tim Chevalier <chevalier@alum.wellesley.edu>**20071115055748] |
|---|
| 1919 | [Avoid making Either String an instance of Monad in the Haddock parser |
|---|
| 1920 | David Waern <david.waern@gmail.com>**20071114204050] |
|---|
| 1921 | [FIX 1463 (implement 'ghc-pkg find-module') |
|---|
| 1922 | claus.reinke@talk21.com**20071109162652 |
|---|
| 1923 | |
|---|
| 1924 | - the ticket asks for a module2package lookup in ghc-pkg |
|---|
| 1925 | (this would be useful to have in cabal, as well) |
|---|
| 1926 | |
|---|
| 1927 | - we can now ask which packages expose a module we need, |
|---|
| 1928 | eg, when preparing a cabal file or when getting errors |
|---|
| 1929 | after package reorganisations: |
|---|
| 1930 | |
|---|
| 1931 | $ ./ghc-pkg-inplace find-module Var |
|---|
| 1932 | c:/fptools/ghc/driver/package.conf.inplace: |
|---|
| 1933 | (ghc-6.9.20071106) |
|---|
| 1934 | |
|---|
| 1935 | $ ./ghc-pkg-inplace find-module Data.Sequence |
|---|
| 1936 | c:/fptools/ghc/driver/package.conf.inplace: |
|---|
| 1937 | containers-0.1 |
|---|
| 1938 | |
|---|
| 1939 | - implemented as a minor variation on listPackages |
|---|
| 1940 | |
|---|
| 1941 | (as usual, it would be useful if one could combine |
|---|
| 1942 | multiple queries into one) |
|---|
| 1943 | |
|---|
| 1944 | ] |
|---|
| 1945 | [remove --define-name from the --help usage message (#1596) |
|---|
| 1946 | Simon Marlow <simonmar@microsoft.com>**20071114153417 |
|---|
| 1947 | |
|---|
| 1948 | ] |
|---|
| 1949 | [FIX #1837: emit deprecated message for unversioned dependencies |
|---|
| 1950 | Simon Marlow <simonmar@microsoft.com>**20071114153010] |
|---|
| 1951 | [Fix #782, #1483, #1649: Unicode GHCi input |
|---|
| 1952 | Simon Marlow <simonmar@microsoft.com>**20071114151411 |
|---|
| 1953 | GHCi input is now treated universally as UTF-8, except for the Windows |
|---|
| 1954 | console where we do the correct conversion from the current code |
|---|
| 1955 | page (see System.Win32.stringToUnicode). |
|---|
| 1956 | |
|---|
| 1957 | That leaves non-UTF-8 locales on Unix as unsupported, but (a) we only |
|---|
| 1958 | accept source files in UTF-8 anyway, and (b) UTF-8 is quite ubiquitous |
|---|
| 1959 | as the default locale. |
|---|
| 1960 | |
|---|
| 1961 | ] |
|---|
| 1962 | [Fix build |
|---|
| 1963 | David Waern <david.waern@gmail.com>**20071114125842 |
|---|
| 1964 | I had forgot to update HaddockLex.hi-boot-6, so the build with 6.2.2 |
|---|
| 1965 | failed. This fixes that. |
|---|
| 1966 | ] |
|---|
| 1967 | [FIX Trac 1662: actually check for existentials in proc patterns |
|---|
| 1968 | simonpj@microsoft.com**20071114112930 |
|---|
| 1969 | |
|---|
| 1970 | I'd fixed the bug for code that should be OK, but had forgotten to |
|---|
| 1971 | make the test for code that should be rejected! |
|---|
| 1972 | |
|---|
| 1973 | Test is arrowfail004 |
|---|
| 1974 | |
|---|
| 1975 | ] |
|---|
| 1976 | [FIX Trac 1888; duplicate INLINE pragmas |
|---|
| 1977 | simonpj@microsoft.com**20071114104701 |
|---|
| 1978 | |
|---|
| 1979 | There are actually three things here |
|---|
| 1980 | - INLINE pragmas weren't being pretty-printed properly |
|---|
| 1981 | - They were being classified into too-narrow boxes by eqHsSig |
|---|
| 1982 | - They were being printed in to much detail by hsSigDoc |
|---|
| 1983 | |
|---|
| 1984 | All easy. Test is rnfail048. |
|---|
| 1985 | |
|---|
| 1986 | ] |
|---|
| 1987 | [Run the -frule-check pass more often (when asked) |
|---|
| 1988 | simonpj@microsoft.com**20071114104632] |
|---|
| 1989 | [FIX #1653 (partially): add -X flags to completion for :set |
|---|
| 1990 | Simon Marlow <simonmar@microsoft.com>**20071113153257] |
|---|
| 1991 | [wibble |
|---|
| 1992 | Pepe Iborra <mnislaih@gmail.com>**20071114233356] |
|---|
| 1993 | [Make pprNameLoc more robust in absence of loc information |
|---|
| 1994 | Pepe Iborra <mnislaih@gmail.com>**20071114233343] |
|---|
| 1995 | [Try to manage the size of the text rendered for ':show bindings' |
|---|
| 1996 | Pepe Iborra <mnislaih@gmail.com>**20071114231601] |
|---|
| 1997 | [Make the Term ppr depth aware |
|---|
| 1998 | Pepe Iborra <mnislaih@gmail.com>**20071114183417] |
|---|
| 1999 | [Use paragraph fill sep where possible |
|---|
| 2000 | Pepe Iborra <mnislaih@gmail.com>**20071114181233] |
|---|
| 2001 | [GHCi debugger: added a new flag, -fno-print-binding-contents |
|---|
| 2002 | Pepe Iborra <mnislaih@gmail.com>**20071113174539 |
|---|
| 2003 | |
|---|
| 2004 | The contents of bindings show at breakpoints and by :show bindings |
|---|
| 2005 | is rendered using the same printer that :print uses. |
|---|
| 2006 | But sometimes the output it gives spans over too many lines and the |
|---|
| 2007 | user may want to be able to disable it. |
|---|
| 2008 | ] |
|---|
| 2009 | [Fix Trac 1865: GHCi debugger crashes with :print |
|---|
| 2010 | Pepe Iborra <mnislaih@gmail.com>**20071113170113] |
|---|
| 2011 | [Merge from Haddock: Add <<url>> for images |
|---|
| 2012 | David Waern <david.waern@gmail.com>**20071112220537 |
|---|
| 2013 | A merge of this patch: |
|---|
| 2014 | |
|---|
| 2015 | Mon Aug 7 16:22:14 CEST 2006 Simon Marlow <simonmar@microsoft.com> |
|---|
| 2016 | * Add <<url>> for images |
|---|
| 2017 | Submitted by: Lennart Augustsson |
|---|
| 2018 | |
|---|
| 2019 | Please merge to the 6.8.2 branch. |
|---|
| 2020 | ] |
|---|
| 2021 | [Improve documentation of INLINE, esp its interactions with other transformations |
|---|
| 2022 | simonpj@microsoft.com**20071112160240] |
|---|
| 2023 | [Comment re Trac #1220 |
|---|
| 2024 | simonpj@microsoft.com**20071112154109] |
|---|
| 2025 | [Merge from Haddock: Modify lexing of /../ |
|---|
| 2026 | David Waern <david.waern@gmail.com>**20071112023856 |
|---|
| 2027 | |
|---|
| 2028 | Tue Aug 28 11:19:54 CEST 2007 Simon Marlow <simonmar@microsoft.com> |
|---|
| 2029 | * Modify lexing of /../ |
|---|
| 2030 | This makes /../ more like '..', so that a single / on a line doesn't |
|---|
| 2031 | trigger a parse error. This should reduce the causes of accidental |
|---|
| 2032 | parse errors in Haddock comments; apparently stray / characters are |
|---|
| 2033 | a common source of failures. |
|---|
| 2034 | |
|---|
| 2035 | Please merge this to the 6.8.2 branch. |
|---|
| 2036 | ] |
|---|
| 2037 | [Merge from Haddock: allow blank lines inside code blocks |
|---|
| 2038 | David Waern <david.waern@gmail.com>**20071112013439 |
|---|
| 2039 | |
|---|
| 2040 | Tue Jan 9 14:14:34 CET 2007 Simon Marlow <simonmar@microsoft.com> |
|---|
| 2041 | * allow blank lines inside a @...@ code block |
|---|
| 2042 | |
|---|
| 2043 | Please merge this to the 6.8.2 branch |
|---|
| 2044 | ] |
|---|
| 2045 | [Merge of a patch from the old Haddock branch: |
|---|
| 2046 | David Waern <david.waern@gmail.com>**20071112013143 |
|---|
| 2047 | |
|---|
| 2048 | Fri Jan 5 12:13:41 CET 2007 Simon Marlow <simonmar@microsoft.com> |
|---|
| 2049 | * Fix up a case of extra vertical space after a code block |
|---|
| 2050 | |
|---|
| 2051 | Please merge this to the 6.8.2 branch |
|---|
| 2052 | ] |
|---|
| 2053 | [Remove ex-extralibs from libraries/Makefile |
|---|
| 2054 | Ian Lynagh <igloo@earth.li>**20071111213618] |
|---|
| 2055 | [Remove the X11 and HGL libraries from extralibs |
|---|
| 2056 | Ian Lynagh <igloo@earth.li>**20071111213447 |
|---|
| 2057 | Don Stewart, X11 maintainer, requested we remove X11, and HGL depends on it |
|---|
| 2058 | on Linux (and we don't try to build HGL on Windows). |
|---|
| 2059 | ] |
|---|
| 2060 | [arrows is no longer an extralib |
|---|
| 2061 | Ian Lynagh <igloo@earth.li>**20071027123656] |
|---|
| 2062 | [Turn -fprint-bind-result off by default |
|---|
| 2063 | Ian Lynagh <igloo@earth.li>**20071111001126] |
|---|
| 2064 | [TAG 2007-11-11 |
|---|
| 2065 | Ian Lynagh <igloo@earth.li>**20071111161540] |
|---|
| 2066 | [Define CPP in distrib/Makefile-bin-vars.in; fixes #1855 |
|---|
| 2067 | Ian Lynagh <igloo@earth.li>**20071110180302 |
|---|
| 2068 | Patch from Christian Maeder |
|---|
| 2069 | ] |
|---|
| 2070 | [Tweak gen_contents_index to work with Solaris's sh |
|---|
| 2071 | Ian Lynagh <igloo@earth.li>**20071110180014] |
|---|
| 2072 | [Update install-sh |
|---|
| 2073 | Ian Lynagh <igloo@earth.li>**20071110173950 |
|---|
| 2074 | This comes from the Debian automake 1:1.10+nogfdl-1 package. |
|---|
| 2075 | ] |
|---|
| 2076 | [Support more doc targets (html, pdf, etc) in the libraries Makefile |
|---|
| 2077 | Ian Lynagh <igloo@earth.li>**20071110171328] |
|---|
| 2078 | [Build Cabal user guide during "make", not only "make install-docs" |
|---|
| 2079 | Ian Lynagh <igloo@earth.li>**20071110171247] |
|---|
| 2080 | [Use INSTALL_SCRIPT, not INSTALL_PROGRAM, when installing scripts; fixes #1858 |
|---|
| 2081 | Ian Lynagh <igloo@earth.li>**20071110152309] |
|---|
| 2082 | [Rename Parser.ly in the extralibs tarball; fixes #1859 |
|---|
| 2083 | Ian Lynagh <igloo@earth.li>**20071110151529 |
|---|
| 2084 | If Cabal doesn't see the .ly file then it won't try to run happy, and |
|---|
| 2085 | thus won't fail if happy isn't installed. |
|---|
| 2086 | ] |
|---|
| 2087 | [Add a path to the DocBook XSL Stylesheets search path |
|---|
| 2088 | Ian Lynagh <igloo@earth.li>**20071110150649 |
|---|
| 2089 | Slackware puts the stylesheets in /usr/share/xml/docbook/xsl-stylesheets* |
|---|
| 2090 | Patch from Andrea Rossato. |
|---|
| 2091 | ] |
|---|
| 2092 | [Replace "tail -n +2" with "sed 1d", as Solaris doesn't understand the former |
|---|
| 2093 | Ian Lynagh <igloo@earth.li>**20071031001218] |
|---|
| 2094 | [Fix typo: -XNoRank2Types -> -XRank2Types |
|---|
| 2095 | Ian Lynagh <igloo@earth.li>**20071109135656] |
|---|
| 2096 | [Fix Trac #1654: propagate name changes into CoreRules |
|---|
| 2097 | simonpj@microsoft.com**20071108175108 |
|---|
| 2098 | |
|---|
| 2099 | This patch is on the HEAD. It fixes a nasty and long-standing bug |
|---|
| 2100 | whereby we weren't substituting the ru_fn field of a CoreRule in |
|---|
| 2101 | CoreSubst.substSpec, which ultimately led to a puzzling "nameModule" |
|---|
| 2102 | error trying to put the rules in the interface file. |
|---|
| 2103 | |
|---|
| 2104 | |
|---|
| 2105 | ] |
|---|
| 2106 | [eliminate a bit of duplication |
|---|
| 2107 | Simon Marlow <simonmar@microsoft.com>*-20071105143714] |
|---|
| 2108 | [Pad static literals to word size in the code generator |
|---|
| 2109 | Simon Marlow <simonmar@microsoft.com>**20071108132842] |
|---|
| 2110 | [FIX #1617: reloading didn't change the :browse output as it should |
|---|
| 2111 | Simon Marlow <simonmar@microsoft.com>**20071107161454 |
|---|
| 2112 | The problem was that because the interface hadn't changed, we were |
|---|
| 2113 | re-using the old ModIface. Unfortunately the ModIface contains the |
|---|
| 2114 | GlobalRdrEnv for the module, and that *had* changed. The fix is to |
|---|
| 2115 | put the new GlobalRdrEnv in the ModIface even if the interface has not |
|---|
| 2116 | otherwise changed. |
|---|
| 2117 | |
|---|
| 2118 | ModIface is not really the right place for the GlobalRdrEnv, but |
|---|
| 2119 | neither is ModDetails, so we should think about a better way to do |
|---|
| 2120 | this. |
|---|
| 2121 | ] |
|---|
| 2122 | [FIX BUILD |
|---|
| 2123 | Simon Marlow <simonmar@microsoft.com>**20071107161612 |
|---|
| 2124 | Sorry, should have pushed with previous batch of changes. |
|---|
| 2125 | ] |
|---|
| 2126 | [FIX #1556: GHC's :reload keeps the context, if possible |
|---|
| 2127 | Simon Marlow <simonmar@microsoft.com>**20071107124118] |
|---|
| 2128 | [FIX #1561: don't use tabs in pretty-printed output at all. |
|---|
| 2129 | Simon Marlow <simonmar@microsoft.com>**20071107113201 |
|---|
| 2130 | Tabs aren't guaranteed to be 8 spaces on every output device, so we |
|---|
| 2131 | shouldn't be using them. Instead I added a little optimisation to |
|---|
| 2132 | use chunks of 8 spaces for long indentations. |
|---|
| 2133 | |
|---|
| 2134 | ] |
|---|
| 2135 | [FIX #1765, #1766 |
|---|
| 2136 | Simon Marlow <simonmar@microsoft.com>**20071107111757 |
|---|
| 2137 | - :def! now overwrites a previous command with the same name |
|---|
| 2138 | - :def on its own lists the defined macros |
|---|
| 2139 | - ":undef f g" undefines both f and g |
|---|
| 2140 | ] |
|---|
| 2141 | [#1617: Add :browse! and various other additions to GHCi |
|---|
| 2142 | Simon Marlow <simonmar@microsoft.com>**20071107102648 |
|---|
| 2143 | |
|---|
| 2144 | - :browse! |
|---|
| 2145 | a variant of :browse that lists children separately, |
|---|
| 2146 | not in context, and gives import qualifiers in comments |
|---|
| 2147 | |
|---|
| 2148 | SimonM: I also added sorting by source location for interpreted |
|---|
| 2149 | modules in :browse, and alphabetic sorting by name otherwise. For |
|---|
| 2150 | :browse *M, the locally-defined names come before the external ones. |
|---|
| 2151 | |
|---|
| 2152 | - :{ ..lines.. :} (multiline commands) |
|---|
| 2153 | allow existing commands to be spread over multiple lines |
|---|
| 2154 | to improve readability, both interactively and in .ghci |
|---|
| 2155 | (includes a refactoring that unifies the previous three |
|---|
| 2156 | command loops into one, runCommands, fed from cmdqueue, |
|---|
| 2157 | file, or readline) |
|---|
| 2158 | |
|---|
| 2159 | - :set |
|---|
| 2160 | now shows GHCi-specific flag settings (printing/ |
|---|
| 2161 | debugger), as well as non-language dynamic flag |
|---|
| 2162 | settings |
|---|
| 2163 | :show languages |
|---|
| 2164 | show active language flags |
|---|
| 2165 | :show packages |
|---|
| 2166 | show active package flags as well as implicitly |
|---|
| 2167 | loaded packages |
|---|
| 2168 | |
|---|
| 2169 | ] |
|---|
| 2170 | [FIX #1838: use System.Directory.getHomeDirectory instead of getEnv "HOME" |
|---|
| 2171 | Simon Marlow <simonmar@microsoft.com>**20071107100653] |
|---|
| 2172 | [catch up with removal of config.mk in the readline package |
|---|
| 2173 | Simon Marlow <simonmar@microsoft.com>**20071107095952] |
|---|
| 2174 | [Fix Trac #1813: generalise over *all* type variables at top level, even phantom ones |
|---|
| 2175 | simonpj@microsoft.com**20071106153151 |
|---|
| 2176 | |
|---|
| 2177 | See Note [Silly type synonym] in TcType for further details. This bug |
|---|
| 2178 | (or at least infelicity) has been in GHC for quite a long time. |
|---|
| 2179 | |
|---|
| 2180 | ] |
|---|
| 2181 | [Fix Trac #1814 (staging interaction in Template Haskell and GHCi), and add comments |
|---|
| 2182 | simonpj@microsoft.com**20071106135548 |
|---|
| 2183 | |
|---|
| 2184 | An Id bound by GHCi from a previous Stmt is Global but Internal, and |
|---|
| 2185 | I'd forgotten that, leading to unnecessary restrictions when using TH |
|---|
| 2186 | and GHCi together. |
|---|
| 2187 | |
|---|
| 2188 | This patch fixes the problem and adds lots of explanatory comments (which |
|---|
| 2189 | is where most of the extra lines come from). |
|---|
| 2190 | |
|---|
| 2191 | |
|---|
| 2192 | ] |
|---|
| 2193 | [Improve error messages |
|---|
| 2194 | simonpj@microsoft.com**20071106105258] |
|---|
| 2195 | [Improve manual entry for binding lexically scoped type variables in pattern signatures |
|---|
| 2196 | simonpj@microsoft.com**20071106105151] |
|---|
| 2197 | [Remove trailing spaces from programlisting lines |
|---|
| 2198 | simonpj@microsoft.com**20071106104921] |
|---|
| 2199 | [Remove unhelpful sentence (see Trac #1832) |
|---|
| 2200 | simonpj@microsoft.com**20071106104315 |
|---|
| 2201 | |
|---|
| 2202 | Merge to 6.8 branch |
|---|
| 2203 | |
|---|
| 2204 | ] |
|---|
| 2205 | [fix stage 1 compilation |
|---|
| 2206 | Simon Marlow <simonmar@microsoft.com>**20071106142057] |
|---|
| 2207 | [warning police |
|---|
| 2208 | Simon Marlow <simonmar@microsoft.com>**20071106140538] |
|---|
| 2209 | [GHC API: add checkAndLoadModule |
|---|
| 2210 | Simon Marlow <simonmar@microsoft.com>**20071106140121 |
|---|
| 2211 | Does what the name suggests: it performs the function of both |
|---|
| 2212 | checkModule and load on that module, avoiding the need to process each |
|---|
| 2213 | module twice when checking a batch of modules. This will make Haddock |
|---|
| 2214 | and ghctags much faster. |
|---|
| 2215 | |
|---|
| 2216 | Along with this is the beginnings of a refactoring of the HscMain |
|---|
| 2217 | interface. HscMain now exports functions for separately running the |
|---|
| 2218 | parser, typechecher, and generating ModIface and ModDetails. |
|---|
| 2219 | Eventually the plan is to complete this interface and use it to |
|---|
| 2220 | replace the existing one. |
|---|
| 2221 | ] |
|---|
| 2222 | [update to use latest changes to the GHC API (works much quicker now) |
|---|
| 2223 | Simon Marlow <simonmar@microsoft.com>**20071106135430] |
|---|
| 2224 | [warning police |
|---|
| 2225 | Simon Marlow <simonmar@microsoft.com>**20071106104019] |
|---|
| 2226 | [Various improvements |
|---|
| 2227 | Simon Marlow <simonmar@microsoft.com>**20071105164054 |
|---|
| 2228 | - take the GHC topdir as a runtime argument |
|---|
| 2229 | - deal with files one at a time (fix space leak) |
|---|
| 2230 | ] |
|---|
| 2231 | [build ghctags-inplace |
|---|
| 2232 | Simon Marlow <simonmar@microsoft.com>**20071105163954] |
|---|
| 2233 | [updates to ghctags code |
|---|
| 2234 | Simon Marlow <simonmar@microsoft.com>**20071105163927] |
|---|
| 2235 | [eliminate a bit of duplication |
|---|
| 2236 | Simon Marlow <simonmar@microsoft.com>**20071105143714] |
|---|
| 2237 | [catch up with changes to checkModule |
|---|
| 2238 | Simon Marlow <simonmar@microsoft.com>**20071105142217] |
|---|
| 2239 | [reorder the imports |
|---|
| 2240 | Simon Marlow <simonmar@microsoft.com>**20070625134151] |
|---|
| 2241 | [add $(GHCTAGS) |
|---|
| 2242 | Simon Marlow <simonmar@microsoft.com>**20070625133450] |
|---|
| 2243 | [follow changes in HsRecFields |
|---|
| 2244 | Simon Marlow <simonmar@microsoft.com>**20070625133119] |
|---|
| 2245 | [merged patches relating to GhcTags from #946 |
|---|
| 2246 | Simon Marlow <simonmar@microsoft.com>**20070625132158 |
|---|
| 2247 | |
|---|
| 2248 | * accomodate changes in the GHC API |
|---|
| 2249 | * refactoring for more readable source code |
|---|
| 2250 | * if the whole group fails, try one file at a time |
|---|
| 2251 | * desperate attempts to handle the GHC build |
|---|
| 2252 | ] |
|---|
| 2253 | [Rules to create TAGS using ghctags |
|---|
| 2254 | Simon Marlow <simonmar@microsoft.com>**20070625132047] |
|---|
| 2255 | [request for documentation of a new argument |
|---|
| 2256 | nr@eecs.harvard.edu**20070625131906] |
|---|
| 2257 | [new README file for utils/ghctags |
|---|
| 2258 | nr@eecs.harvard.edu**20061013202756] |
|---|
| 2259 | [proper HC entry for bootstrapping in Makefile |
|---|
| 2260 | Norman Ramsey <nr@eecs.harvard.edu>**20060920042839] |
|---|
| 2261 | [first cut at missing case for ids defined in pattern |
|---|
| 2262 | Norman Ramsey <nr@eecs.harvard.edu>**20060920042757] |
|---|
| 2263 | [change representation of FoundThing |
|---|
| 2264 | Norman Ramsey <nr@eecs.harvard.edu>**20060917050800 |
|---|
| 2265 | refactored FoundThing to use GHC's native representation of |
|---|
| 2266 | source-code locations and to carry the module name so that the TAGS |
|---|
| 2267 | file can contain a qualified name as well as the unqualified name |
|---|
| 2268 | ] |
|---|
| 2269 | [get names of data constructors |
|---|
| 2270 | Norman Ramsey <nr@eecs.harvard.edu>**20060917015539] |
|---|
| 2271 | [do notation for the Maybe monad |
|---|
| 2272 | Norman Ramsey <nr@eecs.harvard.edu>**20060917003410] |
|---|
| 2273 | [load all files at once and compute tags for all |
|---|
| 2274 | Norman Ramsey <nr@eecs.harvard.edu>**20060917002430] |
|---|
| 2275 | [tell GHC not to generate code (thanks Simon M) |
|---|
| 2276 | Norman Ramsey <nr@eecs.harvard.edu>**20060917002353] |
|---|
| 2277 | [cover more cases; take GHC options on command line |
|---|
| 2278 | Norman Ramsey <nr@eecs.harvard.edu>**20060916232755 |
|---|
| 2279 | Bit of a dog's breakfast here: |
|---|
| 2280 | * generate tags for more cases in the syntax |
|---|
| 2281 | * accept -package ghc and other args on command line |
|---|
| 2282 | * scrub away old code for snaffling thru text |
|---|
| 2283 | ] |
|---|
| 2284 | [initial, very incomplete tags generator |
|---|
| 2285 | Norman Ramsey <nr@eecs.harvard.edu>**20060915235033 |
|---|
| 2286 | The ultimate goal is to replace hasktags with |
|---|
| 2287 | a tags generator based on GHC-as-a-library. |
|---|
| 2288 | This file is a very incomplete first cut. |
|---|
| 2289 | ] |
|---|
| 2290 | [Inline implication constraints |
|---|
| 2291 | simonpj@microsoft.com**20071105220807 |
|---|
| 2292 | |
|---|
| 2293 | This patch fixes Trac #1643, where Lennart found that GHC was generating |
|---|
| 2294 | code with unnecessary dictionaries. The reason was that we were getting |
|---|
| 2295 | an implication constraint floated out of an INLINE (actually an instance |
|---|
| 2296 | decl), and the implication constraint therefore wasn't inlined even |
|---|
| 2297 | though it was used only once (but inside the INLINE). Thus we were |
|---|
| 2298 | getting: |
|---|
| 2299 | |
|---|
| 2300 | ic = \d -> <stuff> |
|---|
| 2301 | foo = _inline_me_ (...ic...) |
|---|
| 2302 | |
|---|
| 2303 | Then 'foo' gets inlined in lots of places, but 'ic' now looks a bit |
|---|
| 2304 | big. |
|---|
| 2305 | |
|---|
| 2306 | But implication constraints should *always* be inlined; they are just |
|---|
| 2307 | artefacts of the constraint simplifier. |
|---|
| 2308 | |
|---|
| 2309 | This patch solves the problem, by adding a WpInline form to the HsWrap |
|---|
| 2310 | type. |
|---|
| 2311 | |
|---|
| 2312 | |
|---|
| 2313 | ] |
|---|
| 2314 | [Comment warning about transparent newtypes |
|---|
| 2315 | simonpj@microsoft.com**20071105220744] |
|---|
| 2316 | [Wibble to earlier case-merge fix |
|---|
| 2317 | simonpj@microsoft.com**20071105220627 |
|---|
| 2318 | |
|---|
| 2319 | This fix avoids a bogus WARN in SimplEnv.substId |
|---|
| 2320 | |
|---|
| 2321 | ] |
|---|
| 2322 | [Improve pretty-printing of Core slightly (avoid indenting let bodies) |
|---|
| 2323 | simonpj@microsoft.com**20071105220535] |
|---|
| 2324 | [Fix an old but subtle bug in the Simplifier |
|---|
| 2325 | simonpj@microsoft.com**20071105161314 |
|---|
| 2326 | |
|---|
| 2327 | I got a Core Lint failure when compiling System.Win32.Info in the |
|---|
| 2328 | Win32 package. It was very delicate: adding or removing a function |
|---|
| 2329 | definition elsewhere in the module (unrelated to the error) made the |
|---|
| 2330 | error go away. |
|---|
| 2331 | |
|---|
| 2332 | Happily, I found it. In SimplUtils.prepareDefault I was comparing an |
|---|
| 2333 | InId with an OutId. We were getting a spurious hit, and hence doing |
|---|
| 2334 | a bogus CaseMerge. |
|---|
| 2335 | |
|---|
| 2336 | This bug has been lurking ever since I re-factored the way that case |
|---|
| 2337 | expressions were simplified, about 6 months ago! |
|---|
| 2338 | |
|---|
| 2339 | ] |
|---|
| 2340 | [Make CoreLint give a more informative error message |
|---|
| 2341 | simonpj@microsoft.com**20071105161217] |
|---|
| 2342 | [Comments about TH staging |
|---|
| 2343 | simonpj@microsoft.com**20071105145340] |
|---|
| 2344 | [Fix freeHaskellFunctionPtr for Darwin/i386 |
|---|
| 2345 | Aaron Tomb <atomb@galois.com>**20071029202636] |
|---|
| 2346 | [MERGED: Set interfacedir (using $topdir, not $httptopdir) |
|---|
| 2347 | Ian Lynagh <igloo@earth.li>**20071103180803 |
|---|
| 2348 | Mon Oct 29 10:48:25 PDT 2007 Ian Lynagh <igloo@earth.li> |
|---|
| 2349 | ] |
|---|
| 2350 | [Teach ghc-pkg about $httptopdir |
|---|
| 2351 | Ian Lynagh <igloo@earth.li>**20071029161130] |
|---|
| 2352 | [MERGED: installPackage needs to treat $httptopdir the same as $topdir |
|---|
| 2353 | Ian Lynagh <igloo@earth.li>**20071103180259 |
|---|
| 2354 | Sun Oct 28 06:45:34 PDT 2007 Ian Lynagh <igloo@earth.li> |
|---|
| 2355 | ] |
|---|
| 2356 | [MERGED: Define and use $httptopdir for the haddock docs locations |
|---|
| 2357 | Ian Lynagh <igloo@earth.li>**20071103180023 |
|---|
| 2358 | Sun Oct 28 05:35:52 PDT 2007 Ian Lynagh <igloo@earth.li> |
|---|
| 2359 | ] |
|---|
| 2360 | [We need to copy .buildinfo files into the bindists |
|---|
| 2361 | Ian Lynagh <igloo@earth.li>**20071028131752] |
|---|
| 2362 | [(>>>) now comes from GHC.Desugar |
|---|
| 2363 | Simon Marlow <simonmar@microsoft.com>**20071102155954] |
|---|
| 2364 | [Refactor error recovery slightly |
|---|
| 2365 | simonpj@microsoft.com**20071102130115 |
|---|
| 2366 | |
|---|
| 2367 | Mostly this patch is refacoring, but it also avoids post-tc zonking if |
|---|
| 2368 | the typechecker found errors. This is good because otherwise with |
|---|
| 2369 | DEBUG you can get the "Inventing strangely-kinded TyCon" warning. |
|---|
| 2370 | |
|---|
| 2371 | ] |
|---|
| 2372 | [Avoid Haddock bug #1821 |
|---|
| 2373 | simonpj@microsoft.com**20071102130043] |
|---|
| 2374 | [Update error message to mention -XPatternSignatures instead of -fglasgow-exts |
|---|
| 2375 | simonpj@microsoft.com**20071101180302] |
|---|
| 2376 | [Rejig the error messages a bit; fixes a minor bug |
|---|
| 2377 | simonpj@microsoft.com**20071101175022 |
|---|
| 2378 | |
|---|
| 2379 | The type checker was only reporting the first message if an equality |
|---|
| 2380 | failed to match. This patch does a bit of refactoring and fixes the |
|---|
| 2381 | bug, which was in the bogus use of eqInstMisMatch |
|---|
| 2382 | in tcSimplify.report_no_instances.b |
|---|
| 2383 | |
|---|
| 2384 | This is really a bug in 6.8 too, so this would be good to merge across |
|---|
| 2385 | to the 6.8 branch. |
|---|
| 2386 | |
|---|
| 2387 | ] |
|---|
| 2388 | [Refactor Haddock options |
|---|
| 2389 | David Waern <davve@dtek.chalmers.se>**20071101131757 |
|---|
| 2390 | |
|---|
| 2391 | This patch renames the DOC_OPTIONS pragma to OPTIONS_HADDOCK. It also |
|---|
| 2392 | adds "-- # ..."-style Haddock option pragmas, for compatibility with |
|---|
| 2393 | code that use them. |
|---|
| 2394 | |
|---|
| 2395 | Another change is that both of these two pragmas behave like |
|---|
| 2396 | OPTIONS_GHC, i.e. they are only allowed at the top of the module, they |
|---|
| 2397 | are ignored everywhere else and they are stored in the dynflags. There is |
|---|
| 2398 | no longer any Haddock options in HsSyn. |
|---|
| 2399 | |
|---|
| 2400 | Please merge this to the 6.8.2 branch when 6.8.1 is out, if appropriate. |
|---|
| 2401 | |
|---|
| 2402 | ] |
|---|
| 2403 | [clean ghci-inplace |
|---|
| 2404 | Simon Marlow <simonmar@microsoft.com>**20071031093932] |
|---|
| 2405 | [clean Haddock droppings |
|---|
| 2406 | Simon Marlow <simonmar@microsoft.com>**20071031093923] |
|---|
| 2407 | [Fix warning in OSMem for darwin |
|---|
| 2408 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071030133003] |
|---|
| 2409 | [FIX BUILD: a glitch in the new rules and inlining stuff |
|---|
| 2410 | simonpj@microsoft.com**20071030113857 |
|---|
| 2411 | |
|---|
| 2412 | Don't re-add the worker info to a binder until completeBind. It's not |
|---|
| 2413 | needed in its own RHS, and it may be replaced, via the substitution |
|---|
| 2414 | following postInlineUnconditionally. |
|---|
| 2415 | |
|---|
| 2416 | (Fixes build of the stage2 compiler which fell over when Coercion.lhs |
|---|
| 2417 | was being compiled.) |
|---|
| 2418 | |
|---|
| 2419 | ] |
|---|
| 2420 | [Fix LiberateCase |
|---|
| 2421 | simonpj@microsoft.com**20071029170620 |
|---|
| 2422 | |
|---|
| 2423 | Merge to STABLE please |
|---|
| 2424 | |
|---|
| 2425 | Liberate case was being far too gung-ho about what to specialise. This |
|---|
| 2426 | bug only showed up when a recursive function 'f' has a nested recursive |
|---|
| 2427 | function 'g', where 'g' calls 'f' (as well as recursively calling 'g'). |
|---|
| 2428 | This exact situation happens in GHC/IO.writeLines. |
|---|
| 2429 | |
|---|
| 2430 | This patch puts things right; see Note [When to specialise]. Result: |
|---|
| 2431 | much less code bloat. |
|---|
| 2432 | |
|---|
| 2433 | |
|---|
| 2434 | |
|---|
| 2435 | |
|---|
| 2436 | ] |
|---|
| 2437 | [Improve error-message output slightly |
|---|
| 2438 | simonpj@microsoft.com**20071029162637] |
|---|
| 2439 | [Improve documentation of orphan instances (thanks to Adrian Hey) |
|---|
| 2440 | simonpj@microsoft.com**20071029162505 |
|---|
| 2441 | |
|---|
| 2442 | Please push to stable branch |
|---|
| 2443 | |
|---|
| 2444 | Simon |
|---|
| 2445 | |
|---|
| 2446 | ] |
|---|
| 2447 | [fix installation of haddock.css and friends |
|---|
| 2448 | Simon Marlow <simonmar@microsoft.com>**20071029120732] |
|---|
| 2449 | [In a pattern binding, a type sig in the pattern cannot bind a type variable |
|---|
| 2450 | simonpj@microsoft.com**20071027153330 |
|---|
| 2451 | |
|---|
| 2452 | In a pattern binding with a pattern type signature, such as |
|---|
| 2453 | |
|---|
| 2454 | (Just (x::a)) = e |
|---|
| 2455 | |
|---|
| 2456 | the pattern type signature cannot bind type variables. Hence |
|---|
| 2457 | 'a' must be in scope already for the above example to be legal. |
|---|
| 2458 | |
|---|
| 2459 | This has been the situation for some time, but Dan changed it when |
|---|
| 2460 | adding view patterns. This one-line change restores the old behaviour. |
|---|
| 2461 | |
|---|
| 2462 | ] |
|---|
| 2463 | [Substantial improvement to the interaction of RULES and inlining |
|---|
| 2464 | simonpj@microsoft.com**20071029111056 |
|---|
| 2465 | |
|---|
| 2466 | (Merge to 6.8 branch after testing.) |
|---|
| 2467 | |
|---|
| 2468 | There were a number of delicate interactions between RULEs and inlining |
|---|
| 2469 | in GHC 6.6. I've wanted to fix this for a long time, and some perf |
|---|
| 2470 | problems in the 6.8 release candidate finally forced me over the edge! |
|---|
| 2471 | |
|---|
| 2472 | The issues are documented extensively in OccurAnal, Note [Loop breaking |
|---|
| 2473 | and RULES], and I won't duplicate them here. (Many of the extra lines in |
|---|
| 2474 | OccurAnal are comments!) |
|---|
| 2475 | |
|---|
| 2476 | This patch resolves Trac bugs #1709, #1794, #1763, I believe. |
|---|
| 2477 | |
|---|
| 2478 | |
|---|
| 2479 | ] |
|---|
| 2480 | [Add newline in debug print |
|---|
| 2481 | simonpj@microsoft.com**20071026150224] |
|---|
| 2482 | [Explicit pattern match in default case of addTickLHsBind |
|---|
| 2483 | simonpj@microsoft.com**20071024134828] |
|---|
| 2484 | [Generalise the types of mk_FunBind, mk_easy_FunBind, mkVarBind |
|---|
| 2485 | simonpj@microsoft.com**20071024134750] |
|---|
| 2486 | [Fix the build with GHC < 6.4 (foldl1' didn't exist) |
|---|
| 2487 | Ian Lynagh <igloo@earth.li>*-20071027210526] |
|---|
| 2488 | [Fix the build with GHC < 6.4 (foldl1' didn't exist) |
|---|
| 2489 | Ian Lynagh <igloo@earth.li>**20071027210526] |
|---|
| 2490 | [MERGED: We need to install-docs when making the Windows bindist |
|---|
| 2491 | Ian Lynagh <igloo@earth.li>**20071027203220] |
|---|
| 2492 | [We need to set _way=* in rts/ both when making and installing bindists |
|---|
| 2493 | Ian Lynagh <igloo@earth.li>**20071027142914 |
|---|
| 2494 | This is a hack, but it means we get libHSrts*.a etc rather than just |
|---|
| 2495 | libHSrts.a. |
|---|
| 2496 | ] |
|---|
| 2497 | [Fix a whole heap of speling errrs in the docs |
|---|
| 2498 | Josef Svenningsson <josef.svenningsson@gmail.com>**20071007213858] |
|---|
| 2499 | [Only build/install the man page if XSLTPROC is defined |
|---|
| 2500 | Ian Lynagh <igloo@earth.li>**20071027122155] |
|---|
| 2501 | [install the Cabal docs, and make them show up in a binary distribution |
|---|
| 2502 | Simon Marlow <simonmar@microsoft.com>**20071026122456] |
|---|
| 2503 | [cp => $(CP) |
|---|
| 2504 | Simon Marlow <simonmar@microsoft.com>**20071026111054] |
|---|
| 2505 | [get rid of the html subdirectory under share/doc/ghc/users_guide |
|---|
| 2506 | Simon Marlow <simonmar@microsoft.com>**20071026110919] |
|---|
| 2507 | [Make 'improvement' work properly in TcSimplify |
|---|
| 2508 | simonpj@microsoft.com**20071027155459 |
|---|
| 2509 | |
|---|
| 2510 | (Please merge this, and the preceding |
|---|
| 2511 | handful from me to the 6.8 branch.) |
|---|
| 2512 | |
|---|
| 2513 | This patch fixes a serious problem in the type checker, whereby |
|---|
| 2514 | TcSimplify was going into a loop because it thought improvement |
|---|
| 2515 | had taken place, but actually the unificataion was actually deferred. |
|---|
| 2516 | |
|---|
| 2517 | We thereby fix Trac #1781, #1783, #1795, and #1797! |
|---|
| 2518 | |
|---|
| 2519 | In fixing this I found what a mess TcSimplify.reduceContext is! |
|---|
| 2520 | We need to fix this. |
|---|
| 2521 | |
|---|
| 2522 | The main idea is to replace the "improvement flag" in Avails with |
|---|
| 2523 | a simpler and more direct test: have any of the mutable type variables |
|---|
| 2524 | in the (zonked) 'given' or 'irred' constraints been filled in? |
|---|
| 2525 | This test uses the new function TcMType.isFilledMetaTyVar; the test |
|---|
| 2526 | itself is towards the end of reduceContext. |
|---|
| 2527 | |
|---|
| 2528 | I fixed a variety of other infelicities too, and left some ToDos. |
|---|
| 2529 | |
|---|
| 2530 | |
|---|
| 2531 | ] |
|---|
| 2532 | [An implication constraint can abstract over EqInsts |
|---|
| 2533 | simonpj@microsoft.com**20071027155433] |
|---|
| 2534 | [In an AbsBinds, the 'dicts' can include EqInsts |
|---|
| 2535 | simonpj@microsoft.com**20071027154903 |
|---|
| 2536 | |
|---|
| 2537 | An AbsBinds abstrats over evidence, and the evidence can be both |
|---|
| 2538 | Dicts (class constraints, implicit parameters) and EqInsts (equality |
|---|
| 2539 | constraints). So we need to |
|---|
| 2540 | - use varType rather than idType |
|---|
| 2541 | - use instToVar rather than instToId |
|---|
| 2542 | - use zonkDictBndr rather than zonkIdBndr in zonking |
|---|
| 2543 | |
|---|
| 2544 | It actually all worked before, but gave warnings. |
|---|
| 2545 | |
|---|
| 2546 | |
|---|
| 2547 | ] |
|---|
| 2548 | [More notes |
|---|
| 2549 | simonpj@microsoft.com**20071027154702] |
|---|
| 2550 | [Comments only |
|---|
| 2551 | simonpj@microsoft.com**20071027154642] |
|---|
| 2552 | [Add anyM to IOEnv |
|---|
| 2553 | simonpj@microsoft.com**20071027154551] |
|---|
| 2554 | [Add a note to NOTES |
|---|
| 2555 | simonpj@microsoft.com**20071027100220] |
|---|
| 2556 | [Make compileToCore return the module name and type environment along with bindings |
|---|
| 2557 | Tim Chevalier <chevalier@alum.wellesley.edu>**20071027100530 |
|---|
| 2558 | |
|---|
| 2559 | compileToCore returned just a list of CoreBind, which isn't enough, |
|---|
| 2560 | since to do anything with the resulting Core code, you probably also |
|---|
| 2561 | want the type declarations. I left compileToCore as it is, but added a |
|---|
| 2562 | function compileToCoreModule that returns a complete Core module (with |
|---|
| 2563 | module name, type environment, and bindings). I'm not sure that |
|---|
| 2564 | returning the type environment is the best way to represent the type |
|---|
| 2565 | declarations for the given module, but I don't want to reinvent the |
|---|
| 2566 | External Core wheel for this. |
|---|
| 2567 | |
|---|
| 2568 | ] |
|---|
| 2569 | [binary-dist: Makefile-vars needs HADDOCK_DOCS=YES |
|---|
| 2570 | Simon Marlow <simonmar@microsoft.com>**20071025135816] |
|---|
| 2571 | [fix the links in the library documentation index |
|---|
| 2572 | Simon Marlow <simonmar@microsoft.com>**20071025152245] |
|---|
| 2573 | [default to installing runhaskell and hsc2hs again, but provide knobs to turn them off |
|---|
| 2574 | Simon Marlow <simonmar@microsoft.com>**20071025084222] |
|---|
| 2575 | [Adding hpc documentation about sum and map, push to STABLE. |
|---|
| 2576 | andy@unsafeperformio.com**20071025050341] |
|---|
| 2577 | [Fixing typo in runtime documentation for hpc, push to stable |
|---|
| 2578 | andy@unsafeperformio.com**20071025045456] |
|---|
| 2579 | [Correct a comment |
|---|
| 2580 | Ian Lynagh <igloo@earth.li>**20071024114549] |
|---|
| 2581 | [Fix ghc package in bindists; it wasn't adding the depenedency on readline |
|---|
| 2582 | Ian Lynagh <igloo@earth.li>**20071024120633] |
|---|
| 2583 | [Fix installing the ghc package .hi files in a bindist |
|---|
| 2584 | Ian Lynagh <igloo@earth.li>**20071024114219] |
|---|
| 2585 | [Build the manpage when building, not when installing |
|---|
| 2586 | Ian Lynagh <igloo@earth.li>**20071024112914] |
|---|
| 2587 | [Hack to make sure we get all the RTS ways in bindists |
|---|
| 2588 | Ian Lynagh <igloo@earth.li>**20071024004155] |
|---|
| 2589 | [Fix installing the documentation in the bindists |
|---|
| 2590 | Ian Lynagh <igloo@earth.li>**20071023234624] |
|---|
| 2591 | [-ftype-families -> -XTypeFamilies |
|---|
| 2592 | Ian Lynagh <igloo@earth.li>**20071024142828] |
|---|
| 2593 | [FIX #1791: fail with out-of-heap when allocating more than the max heap size in one go |
|---|
| 2594 | Simon Marlow <simonmar@microsoft.com>**20071024095420 |
|---|
| 2595 | Normally the out-of-heap check is performed post-GC, but there are |
|---|
| 2596 | cases where we can detect earlier that we definitely have exhausted |
|---|
| 2597 | the heap size limit. |
|---|
| 2598 | ] |
|---|
| 2599 | [Fix more warnings |
|---|
| 2600 | Simon Marlow <simonmar@microsoft.com>**20071023131351] |
|---|
| 2601 | [FIX BUILD (on 32-bit platforms): hs_hpc_module() type mismatch |
|---|
| 2602 | Simon Marlow <simonmar@microsoft.com>**20071023082233] |
|---|
| 2603 | [patch from #1782; fixes check-packages target on Solaris |
|---|
| 2604 | Simon Marlow <simonmar@microsoft.com>**20071022133337] |
|---|
| 2605 | [add PIC relocations for x86_64, and use a simpler hack in place of x86_64_high_symbol() |
|---|
| 2606 | Simon Marlow <simonmar@microsoft.com>**20071018125220 |
|---|
| 2607 | This is Wolfgang Thaller's patch sent to cvs-ghc recently, with extra |
|---|
| 2608 | commentary by me. It turns out that this patch is not just a cleanup, |
|---|
| 2609 | it is also necessary for GHCi to work on x86_64 with shared libraries, |
|---|
| 2610 | because previously lookupSymbol() was creating jump-table entries for |
|---|
| 2611 | all symbols looked up that resolved outside 2Gb, whereas Wolfgang's |
|---|
| 2612 | version only generates jump-table entries for 32-bit symbol references |
|---|
| 2613 | in object code that we load. |
|---|
| 2614 | ] |
|---|
| 2615 | [fix creation of ghc-inplace for non-std ways |
|---|
| 2616 | Simon Marlow <simonmar@microsoft.com>**20071017152820] |
|---|
| 2617 | [remove an incorrect assertion |
|---|
| 2618 | Simon Marlow <simonmar@microsoft.com>**20071016151829] |
|---|
| 2619 | [second attempt to fix C compiler warnings with -fhpc |
|---|
| 2620 | Simon Marlow <simonmar@microsoft.com>**20071019133243 |
|---|
| 2621 | The hs_hpc_module() prototype in RtsExternal.h didn't match its usage: |
|---|
| 2622 | we were passing StgWord-sized parameters but the prototype used C |
|---|
| 2623 | ints. I think it accidentally worked because we only ever passed |
|---|
| 2624 | constants that got promoted. The constants unfortunately were |
|---|
| 2625 | sometimes negative, which caused the C compiler to emit warnings. |
|---|
| 2626 | |
|---|
| 2627 | I suspect PprC.pprHexVal may be wrong to emit negative constants in |
|---|
| 2628 | the generated C, but I'm not completely sure. Anyway, it's easy to |
|---|
| 2629 | fix this in CgHpc, which is what I've done. |
|---|
| 2630 | |
|---|
| 2631 | ] |
|---|
| 2632 | [Zonk quantified tyvars with skolems |
|---|
| 2633 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071019115653 |
|---|
| 2634 | |
|---|
| 2635 | We used to zonk quantified type variables to regular TyVars. However, this |
|---|
| 2636 | leads to problems. Consider this program from the regression test suite: |
|---|
| 2637 | |
|---|
| 2638 | eval :: Int -> String -> String -> String |
|---|
| 2639 | eval 0 root actual = evalRHS 0 root actual |
|---|
| 2640 | |
|---|
| 2641 | evalRHS :: Int -> a |
|---|
| 2642 | evalRHS 0 root actual = eval 0 root actual |
|---|
| 2643 | |
|---|
| 2644 | It leads to the deferral of an equality |
|---|
| 2645 | |
|---|
| 2646 | (String -> String -> String) ~ a |
|---|
| 2647 | |
|---|
| 2648 | which is propagated up to the toplevel (see TcSimplify.tcSimplifyInferCheck). |
|---|
| 2649 | In the meantime `a' is zonked and quantified to form `evalRHS's signature. |
|---|
| 2650 | This has the *side effect* of also zonking the `a' in the deferred equality |
|---|
| 2651 | (which at this point is being handed around wrapped in an implication |
|---|
| 2652 | constraint). |
|---|
| 2653 | |
|---|
| 2654 | Finally, the equality (with the zonked `a') will be handed back to the |
|---|
| 2655 | simplifier by TcRnDriver.tcRnSrcDecls calling TcSimplify.tcSimplifyTop. |
|---|
| 2656 | If we zonk `a' with a regular type variable, we will have this regular type |
|---|
| 2657 | variable now floating around in the simplifier, which in many places assumes to |
|---|
| 2658 | only see proper TcTyVars. |
|---|
| 2659 | |
|---|
| 2660 | We can avoid this problem by zonking with a skolem. The skolem is rigid |
|---|
| 2661 | (which we requirefor a quantified variable), but is still a TcTyVar that the |
|---|
| 2662 | simplifier knows how to deal with. |
|---|
| 2663 | ] |
|---|
| 2664 | [Fix typo that prevented zonking of rhs of EqInsts |
|---|
| 2665 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071018131040 |
|---|
| 2666 | |
|---|
| 2667 | MERGE TO STABLE |
|---|
| 2668 | ] |
|---|
| 2669 | [implement #1468, :browse on its own uses the currently-loaded module |
|---|
| 2670 | Simon Marlow <simonmar@microsoft.com>**20071019115751] |
|---|
| 2671 | [FIX #1784: EM_AMD64 and EM_X86_64 might both be defined to the same value |
|---|
| 2672 | Simon Marlow <simonmar@microsoft.com>**20071019110223] |
|---|
| 2673 | [Tell Cabal what it's version number is while bootstrapping it |
|---|
| 2674 | Duncan Coutts <duncan.coutts@worc.ox.ac.uk>**20071018222128 |
|---|
| 2675 | This means that it'll work with all the packages that specify a cabal-version |
|---|
| 2676 | ] |
|---|
| 2677 | [FIX #1450: asynchronous exceptions are now printed by +RTS -xc |
|---|
| 2678 | Simon Marlow <simonmar@microsoft.com>**20071018134951] |
|---|
| 2679 | [fix -fbreak-on-exception for unregsterised |
|---|
| 2680 | Simon Marlow <simonmar@microsoft.com>**20071018110621] |
|---|
| 2681 | [fix :print when !tablesNextToCode |
|---|
| 2682 | Simon Marlow <simonmar@microsoft.com>**20071018105340] |
|---|
| 2683 | [fix breakpoints in unregisterised mode |
|---|
| 2684 | Simon Marlow <simonmar@microsoft.com>**20071018101929] |
|---|
| 2685 | [Change some ints to unsigned ints |
|---|
| 2686 | Simon Marlow <simonmar@microsoft.com>**20071018095503 |
|---|
| 2687 | Fixes some gratuitous warnings when compiling via C with -fhpc |
|---|
| 2688 | ] |
|---|
| 2689 | [fix warnings when compiling via C |
|---|
| 2690 | Simon Marlow <simonmar@microsoft.com>**20071018095417] |
|---|
| 2691 | [rollback "accounting wibble: we were missing an alloc_blocks .. " |
|---|
| 2692 | Simon Marlow <simonmar@microsoft.com>**20071018094415 |
|---|
| 2693 | I misread the code, now added a comment to explain why it isn't necessary |
|---|
| 2694 | ] |
|---|
| 2695 | [recordMutable: test for gen>0 before calling recordMutableCap |
|---|
| 2696 | Simon Marlow <simonmar@microsoft.com>**20071017125657 |
|---|
| 2697 | For some reason the C-- version of recordMutable wasn't verifying that |
|---|
| 2698 | the object was in an old generation before attempting to add it to the |
|---|
| 2699 | mutable list, and this broke maessen_hashtab. This version of |
|---|
| 2700 | recordMutable is only used in unsafeThaw#. |
|---|
| 2701 | ] |
|---|
| 2702 | [re-instate missing parts of "put the @N suffix on stdcall foreign calls in .cmm code" |
|---|
| 2703 | Simon Marlow <simonmar@microsoft.com>**20071017144007 |
|---|
| 2704 | These changes were apparently lost during "massive changes to add a |
|---|
| 2705 | 'zipper' representation of C-" |
|---|
| 2706 | ] |
|---|
| 2707 | [Don't barf on error message with non-tc tyvars |
|---|
| 2708 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071018060336 |
|---|
| 2709 | |
|---|
| 2710 | MERGE TO STABLE |
|---|
| 2711 | ] |
|---|
| 2712 | [Fix deferring on tyvars in TcUnify.subFunTys |
|---|
| 2713 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071018044352] |
|---|
| 2714 | [TcUnify.subFunTys must take type families into account |
|---|
| 2715 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071017114326 |
|---|
| 2716 | * A bug reported by Andrew Appleyard revealed that subFunTys did take |
|---|
| 2717 | neither type families nor equalities into account. In a fairly obscure |
|---|
| 2718 | case there was also a coercion ignored. |
|---|
| 2719 | ] |
|---|
| 2720 | [Refactoring: extract platform-specific code from sm/MBlock.c |
|---|
| 2721 | Simon Marlow <simonmar@microsoft.com>**20071017134145 |
|---|
| 2722 | Also common-up some duplicate bits in the platform-specific code |
|---|
| 2723 | ] |
|---|
| 2724 | [fix an error message (barf -> sysErrorBelch) |
|---|
| 2725 | Simon Marlow <simonmar@microsoft.com>**20071017121855] |
|---|
| 2726 | [fix warning on Windows |
|---|
| 2727 | Simon Marlow <simonmar@microsoft.com>**20071017121645] |
|---|
| 2728 | [Don't clean gmp when validating (speeds up validation on Windows) |
|---|
| 2729 | Simon Marlow <simonmar@microsoft.com>**20071017100908] |
|---|
| 2730 | [document float2Int# and double2Int# |
|---|
| 2731 | Simon Marlow <simonmar@microsoft.com>**20070925121139] |
|---|
| 2732 | [Update HsExpr.hi-boot-6 for view pattern changes |
|---|
| 2733 | simonpj@microsoft.com**20071017120212] |
|---|
| 2734 | [Fix #1709: do not expose the worker for a loop-breaker |
|---|
| 2735 | simonpj@microsoft.com**20071016131840 |
|---|
| 2736 | |
|---|
| 2737 | The massive 'Uni' program produced a situation in which a function that |
|---|
| 2738 | had a worker/wrapper split was chosen as a loop breaker. If the worker |
|---|
| 2739 | is exposed in the interface file, then an importing module may go into |
|---|
| 2740 | an inlining loop: see comments on TidyPgm.tidyWorker. |
|---|
| 2741 | |
|---|
| 2742 | This patch fixes the inlining bug. The code that gives rise to this |
|---|
| 2743 | bizarre case is still not good (it's a bunch of implication constraints |
|---|
| 2744 | and we are choosing a bad loop breaker) but the first thing is to fix the |
|---|
| 2745 | bug. |
|---|
| 2746 | |
|---|
| 2747 | It's rather hard to produce a test case! |
|---|
| 2748 | |
|---|
| 2749 | Please merge to the 6.8 branch. |
|---|
| 2750 | |
|---|
| 2751 | |
|---|
| 2752 | |
|---|
| 2753 | ] |
|---|
| 2754 | [Fix #1662: do not simplify constraints for vanilla pattern matches |
|---|
| 2755 | simonpj@microsoft.com**20071016124710 |
|---|
| 2756 | |
|---|
| 2757 | See Note [Arrows and patterns] in TcPat. |
|---|
| 2758 | |
|---|
| 2759 | This fixes Trac 1662. Test is arrows/should_compile/arrowpat.hs |
|---|
| 2760 | |
|---|
| 2761 | Please merge |
|---|
| 2762 | |
|---|
| 2763 | ] |
|---|
| 2764 | [Eliminate over-zealous warning in CoreToStg |
|---|
| 2765 | simonpj@microsoft.com**20071016124606] |
|---|
| 2766 | [Show inlined function in the header of 'Inlining done' message |
|---|
| 2767 | simonpj@microsoft.com**20071016124535] |
|---|
| 2768 | [Show program size in the simplifier-bailing-out message |
|---|
| 2769 | simonpj@microsoft.com**20071016124450] |
|---|
| 2770 | [View patterns, record wildcards, and record puns |
|---|
| 2771 | Dan Licata <drl@cs.cmu.edu>**20071010150254 |
|---|
| 2772 | This patch implements three new features: |
|---|
| 2773 | * view patterns (syntax: expression -> pat in a pattern) |
|---|
| 2774 | * working versions of record wildcards and record puns |
|---|
| 2775 | See the manual for detailed descriptions. |
|---|
| 2776 | |
|---|
| 2777 | Other minor observable changes: |
|---|
| 2778 | * There is a check prohibiting local fixity declarations |
|---|
| 2779 | when the variable being fixed is not defined in the same let |
|---|
| 2780 | * The warn-unused-binds option now reports warnings for do and mdo stmts |
|---|
| 2781 | |
|---|
| 2782 | Implementation notes: |
|---|
| 2783 | |
|---|
| 2784 | * The pattern renamer is now in its own module, RnPat, and the |
|---|
| 2785 | implementation is now in a CPS style so that the correct context is |
|---|
| 2786 | delivered to pattern expressions. |
|---|
| 2787 | |
|---|
| 2788 | * These features required a fairly major upheaval to the renamer. |
|---|
| 2789 | Whereas the old version used to collect up all the bindings from a let |
|---|
| 2790 | (or top-level, or recursive do statement, ...) and put them into scope |
|---|
| 2791 | before renaming anything, the new version does the collection as it |
|---|
| 2792 | renames. This allows us to do the right thing with record wildcard |
|---|
| 2793 | patterns (which need to be expanded to see what names should be |
|---|
| 2794 | collected), and it allows us to implement the desired semantics for view |
|---|
| 2795 | patterns in lets. This change had a bunch of domino effects brought on |
|---|
| 2796 | by fiddling with the top-level renaming. |
|---|
| 2797 | |
|---|
| 2798 | * Prior to this patch, there was a tricky bug in mkRecordSelId in HEAD, |
|---|
| 2799 | which did not maintain the invariant necessary for loadDecl. See note |
|---|
| 2800 | [Tricky iface loop] for details. |
|---|
| 2801 | ] |
|---|
| 2802 | [FIX profiling after my storage manager changes |
|---|
| 2803 | Simon Marlow <simonmar@microsoft.com>**20071015103939] |
|---|
| 2804 | [More docu for skolemOccurs |
|---|
| 2805 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071015075644] |
|---|
| 2806 | [Slightly improved comments in TcTyClsDecls |
|---|
| 2807 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071010142023] |
|---|
| 2808 | [TcTyFuns: remove some duplicate code |
|---|
| 2809 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071004142315] |
|---|
| 2810 | [TcTyFuns.eqInstToRewrite |
|---|
| 2811 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071003145715] |
|---|
| 2812 | [Add allocateInGen() for allocating in a specific generation, and cleanups |
|---|
| 2813 | Simon Marlow <simonmar@microsoft.com>**20071012124413 |
|---|
| 2814 | Now allocate() is a synonym for allocateInGen(). |
|---|
| 2815 | |
|---|
| 2816 | I also made various cleanups: there is now less special-case code for |
|---|
| 2817 | supporting -G1 (two-space collection), and -G1 now works with |
|---|
| 2818 | -threaded. |
|---|
| 2819 | ] |
|---|
| 2820 | [optimise isAlive() |
|---|
| 2821 | Simon Marlow <simonmar@microsoft.com>**20071012103810] |
|---|
| 2822 | [accounting wibble: we were missing an alloc_blocks++ in allocateLocal() |
|---|
| 2823 | Simon Marlow <simonmar@microsoft.com>**20071012101711] |
|---|
| 2824 | [threadStackOverflow should be using allocateLocal |
|---|
| 2825 | Simon Marlow <simonmar@microsoft.com>**20071012100405] |
|---|
| 2826 | [FIX #1759 while respecting the ticks |
|---|
| 2827 | andy@galois.com**20071015033319] |
|---|
| 2828 | [Improving the combine mode for hpc |
|---|
| 2829 | andy@galois.com**20071014171009 |
|---|
| 2830 | |
|---|
| 2831 | we now have |
|---|
| 2832 | Processing Coverage files: |
|---|
| 2833 | sum Sum multiple .tix files in a single .tix file |
|---|
| 2834 | combine Combine two .tix files in a single .tix file |
|---|
| 2835 | map Map a function over a single .tix file |
|---|
| 2836 | |
|---|
| 2837 | Where sum joins many .tix files, combine joins two files (with |
|---|
| 2838 | extra functionality possible), and map just applied a function |
|---|
| 2839 | to single .tix file. |
|---|
| 2840 | |
|---|
| 2841 | These changes were improvements driven by hpc use cases. |
|---|
| 2842 | |
|---|
| 2843 | END OF DESCRIPTION*** |
|---|
| 2844 | |
|---|
| 2845 | Place the long patch description above the ***END OF DESCRIPTION*** marker. |
|---|
| 2846 | The first line of this file will be the patch name. |
|---|
| 2847 | |
|---|
| 2848 | |
|---|
| 2849 | This patch contains the following changes: |
|---|
| 2850 | |
|---|
| 2851 | M ./utils/hpc/Hpc.hs -1 +3 |
|---|
| 2852 | M ./utils/hpc/HpcCombine.hs -33 +84 |
|---|
| 2853 | M ./utils/hpc/HpcFlags.hs -11 +59 |
|---|
| 2854 | ] |
|---|
| 2855 | [Fix DoCon: Another try at getting extractResults right |
|---|
| 2856 | simonpj@microsoft.com**20071012162325 |
|---|
| 2857 | |
|---|
| 2858 | For some reason TcSimplify.extractResults is quite difficult to get right. |
|---|
| 2859 | This is another attempt; finally I think I have it. |
|---|
| 2860 | |
|---|
| 2861 | Strangely enough, it's only Sergey's DoCon program that shows up the |
|---|
| 2862 | bug, which manifested as a failure in the Simplifier |
|---|
| 2863 | |
|---|
| 2864 | lookupRecBndr $dGCDRing{v a1Lz} [lid] |
|---|
| 2865 | |
|---|
| 2866 | But it was due to extractResults producing multiple bindings for |
|---|
| 2867 | the same dictionary. |
|---|
| 2868 | |
|---|
| 2869 | Please merge this to the stable branch (after previous patches to |
|---|
| 2870 | TcSimplify though). |
|---|
| 2871 | |
|---|
| 2872 | |
|---|
| 2873 | ] |
|---|
| 2874 | [mention what SCC stands for |
|---|
| 2875 | Simon Marlow <simonmar@microsoft.com>**20071011135736] |
|---|
| 2876 | [Add a proper write barrier for MVars |
|---|
| 2877 | Simon Marlow <simonmar@microsoft.com>**20071011135505 |
|---|
| 2878 | Previously MVars were always on the mutable list of the old |
|---|
| 2879 | generation, which meant every MVar was visited during every minor GC. |
|---|
| 2880 | With lots of MVars hanging around, this gets expensive. We addressed |
|---|
| 2881 | this problem for MUT_VARs (aka IORefs) a while ago, the solution is to |
|---|
| 2882 | use a traditional GC write-barrier when the object is modified. This |
|---|
| 2883 | patch does the same thing for MVars. |
|---|
| 2884 | |
|---|
| 2885 | TVars are still done the old way, they could probably benefit from the |
|---|
| 2886 | same treatment too. |
|---|
| 2887 | ] |
|---|
| 2888 | [we need to #include "Stg.h" first, we can't rely on GHC to inject it |
|---|
| 2889 | Simon Marlow <simonmar@microsoft.com>**20071010153244 |
|---|
| 2890 | This fixes the unreg build, and in general building the RTS code |
|---|
| 2891 | via-C. I'm not sure at what stage this was broken, but I think it |
|---|
| 2892 | was working accidentally before. |
|---|
| 2893 | ] |
|---|
| 2894 | [Fix Trac #1680; check for unboxed tuples in TcType.marshalableTyCon |
|---|
| 2895 | simonpj@microsoft.com**20071011123426] |
|---|
| 2896 | [Fix Trac #1759: do not let ticks get in the way of spotting trivially-true guards |
|---|
| 2897 | simonpj@microsoft.com**20071010164731 |
|---|
| 2898 | |
|---|
| 2899 | GHC spots that an 'otherwise' guard is true, and uses that knowledge to |
|---|
| 2900 | avoid reporting spurious missing-pattern or overlaps with -Wall. |
|---|
| 2901 | |
|---|
| 2902 | The HPC ticks were disguising the 'otherwise', which led to this failure. |
|---|
| 2903 | Now we check. The key change is defining DsGRHSs.isTrueLHsExpr. |
|---|
| 2904 | |
|---|
| 2905 | Test is ds062 |
|---|
| 2906 | |
|---|
| 2907 | |
|---|
| 2908 | ] |
|---|
| 2909 | [Fix Trac #1755; check for stage errors in TH quoted Names |
|---|
| 2910 | simonpj@microsoft.com**20071010150250 |
|---|
| 2911 | |
|---|
| 2912 | There are a number of situations in which you aren't allowed to use |
|---|
| 2913 | a quoted Name in a TH program, such as |
|---|
| 2914 | \x -> 'x |
|---|
| 2915 | But we weren't checking for that! Now we are. |
|---|
| 2916 | |
|---|
| 2917 | Merge to stable branch. |
|---|
| 2918 | |
|---|
| 2919 | Test is TH_qname. |
|---|
| 2920 | |
|---|
| 2921 | |
|---|
| 2922 | ] |
|---|
| 2923 | [checkWellStaged: reverse comparsion (no change in semantics), plus some comments |
|---|
| 2924 | simonpj@microsoft.com**20071010124013] |
|---|
| 2925 | [Add traceTc in tcSimplifyDefault |
|---|
| 2926 | simonpj@microsoft.com**20071010123933] |
|---|
| 2927 | [Improve pretty-printing of splices in HsSyn |
|---|
| 2928 | simonpj@microsoft.com**20071010123726] |
|---|
| 2929 | [Replaced two uses of head b explicit pattern matching |
|---|
| 2930 | Pepe Iborra <mnislaih@gmail.com>**20071013113136] |
|---|
| 2931 | [Fix Trac #1678; be more careful about catching and reporting exceptions in spliced TH monadic computations |
|---|
| 2932 | simonpj@microsoft.com**20071010145705 |
|---|
| 2933 | |
|---|
| 2934 | Many of the new lines are comments to explain the slightly-convoluted |
|---|
| 2935 | in which exceptions get propagated out of the Q monad. |
|---|
| 2936 | |
|---|
| 2937 | This fixes Trac 1679; test is TH_runIO (as well as the exising TH_fail). |
|---|
| 2938 | |
|---|
| 2939 | Please merge |
|---|
| 2940 | |
|---|
| 2941 | |
|---|
| 2942 | ] |
|---|
| 2943 | [Comments only |
|---|
| 2944 | simonpj@microsoft.com**20071010145646] |
|---|
| 2945 | [FIX BUILD (when compiling base via C): declare n_capabilities |
|---|
| 2946 | Simon Marlow <simonmar@microsoft.com>**20071010103704] |
|---|
| 2947 | [GHCi: use non-updatable thunks for breakpoints |
|---|
| 2948 | Simon Marlow <simonmar@microsoft.com>**20071010093241 |
|---|
| 2949 | The extra safe points introduced for breakpoints were previously |
|---|
| 2950 | compiled as normal updatable thunks, but they are guaranteed |
|---|
| 2951 | single-entry, so we can use non-updatable thunks here. This restores |
|---|
| 2952 | the tail-call property where it was lost in some cases (although stack |
|---|
| 2953 | squeezing probably often recovered it), and should improve |
|---|
| 2954 | performance. |
|---|
| 2955 | ] |
|---|
| 2956 | [FIX #1681: withBreakAction had too large a scope in runStmt |
|---|
| 2957 | Simon Marlow <simonmar@microsoft.com>**20071010085820] |
|---|
| 2958 | [tiny refactoring |
|---|
| 2959 | Simon Marlow <simonmar@microsoft.com>**20071009145002] |
|---|
| 2960 | [small reworking of the loop-breaker-choosing algorithm |
|---|
| 2961 | Simon Marlow <simonmar@microsoft.com>**20071009145305 |
|---|
| 2962 | Previously inline candidates were given higher preference as |
|---|
| 2963 | non-loop-breakers than constructor applications, but the reason for |
|---|
| 2964 | this was that making a wrapper into a loop-breaker is to be avoided at |
|---|
| 2965 | all costs. This patch refines the algorithm slightly so that wrappers |
|---|
| 2966 | are explicitly avoided by giving them a much higher score, and other |
|---|
| 2967 | inline candidates are given lower scores than constructor |
|---|
| 2968 | applications. |
|---|
| 2969 | |
|---|
| 2970 | This makes almost zero difference to a complete nofib run, so it |
|---|
| 2971 | amounts to just a tidyup. |
|---|
| 2972 | ] |
|---|
| 2973 | [Fix warnings when build w/o readline |
|---|
| 2974 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071010101840] |
|---|
| 2975 | [Update documentation for win32 DLL linking |
|---|
| 2976 | Clemens Fruhwirth <clemens@endorphin.org>**20071010074415] |
|---|
| 2977 | [FIX: tidy up TcSimplify following equality constraints additions |
|---|
| 2978 | simonpj@microsoft.com**20071010093334 |
|---|
| 2979 | |
|---|
| 2980 | The combination of "type refinement" for GADTs and the new equality |
|---|
| 2981 | constraints has made TcSimplify rather complicated. And wrong: |
|---|
| 2982 | it generated bogus code for cholewo-eval. |
|---|
| 2983 | |
|---|
| 2984 | This patch is still far from entirely satisfactory. There are |
|---|
| 2985 | too many places where invariants are unclear, and the code is |
|---|
| 2986 | still a bit of a mess. But I believe it's better, and it passes |
|---|
| 2987 | the regression tests! So I think it's good enough for the 6.8 release. |
|---|
| 2988 | |
|---|
| 2989 | Please merge. |
|---|
| 2990 | |
|---|
| 2991 | The main changes are: |
|---|
| 2992 | |
|---|
| 2993 | - get rid of extractLocalResults (which was always suspicious) |
|---|
| 2994 | |
|---|
| 2995 | - instead, treat the 'refinement' along with 'givens', by |
|---|
| 2996 | adding a field to RedEnv, red_reft which travels with red_givens |
|---|
| 2997 | |
|---|
| 2998 | - I also reworked extractResults a bit, which looked wrong to me |
|---|
| 2999 | This entailed changing the Given constructor in Avail to take |
|---|
| 3000 | an Inst rather than a TcId |
|---|
| 3001 | |
|---|
| 3002 | |
|---|
| 3003 | ] |
|---|
| 3004 | [Improve pretty-printing for HsSyn |
|---|
| 3005 | simonpj@microsoft.com**20071010093058] |
|---|
| 3006 | [Fix Trac #1746: make rule-matching work properly with Cast expressions |
|---|
| 3007 | simonpj@microsoft.com**20070929104406 |
|---|
| 3008 | |
|---|
| 3009 | The Cast case of the rule-matcher was simply wrong. |
|---|
| 3010 | |
|---|
| 3011 | This patch fixes it; see Trac #1746. |
|---|
| 3012 | |
|---|
| 3013 | I also fixed the rule generation in SpecConstr to generate a wild-card |
|---|
| 3014 | for the cast expression, which we don't want to match on. This makes |
|---|
| 3015 | the rule more widely applicable; it wasn't the cause of the bug. |
|---|
| 3016 | |
|---|
| 3017 | ] |
|---|
| 3018 | [Small comment only |
|---|
| 3019 | simonpj@microsoft.com**20070929104309] |
|---|
| 3020 | [export n_capabilities, see #1733 |
|---|
| 3021 | Simon Marlow <simonmar@microsoft.com>**20071009142701] |
|---|
| 3022 | [FIX #1743, create a fresh unique for each Id we bind at a breakpoint |
|---|
| 3023 | Simon Marlow <simonmar@microsoft.com>**20071009142554] |
|---|
| 3024 | [remove vestiges of way 'u' (see #1008) |
|---|
| 3025 | Simon Marlow <simonmar@microsoft.com>**20071009130942] |
|---|
| 3026 | [also call initMutex on every task->lock, see #1391 |
|---|
| 3027 | Simon Marlow <simonmar@microsoft.com>**20071009122409] |
|---|
| 3028 | [remove the "-unreg" flag and the unregisterised way, see #1008 |
|---|
| 3029 | Simon Marlow <simonmar@microsoft.com>**20071009122338] |
|---|
| 3030 | [warning removal |
|---|
| 3031 | Simon Marlow <simonmar@microsoft.com>**20071009105138] |
|---|
| 3032 | [warning removal |
|---|
| 3033 | Simon Marlow <simonmar@microsoft.com>**20071003170005] |
|---|
| 3034 | [refactoring only: use the parameterised InstalledPackageInfo |
|---|
| 3035 | Simon Marlow <simonmar@microsoft.com>**20071003163536 |
|---|
| 3036 | This required moving PackageId from PackageConfig to Module |
|---|
| 3037 | ] |
|---|
| 3038 | [warning removal |
|---|
| 3039 | Simon Marlow <simonmar@microsoft.com>**20071003174016] |
|---|
| 3040 | [warning removal |
|---|
| 3041 | Simon Marlow <simonmar@microsoft.com>**20071003173448] |
|---|
| 3042 | [warning removal |
|---|
| 3043 | Simon Marlow <simonmar@microsoft.com>**20071003173202] |
|---|
| 3044 | [warning removal |
|---|
| 3045 | Simon Marlow <simonmar@microsoft.com>**20071003172715] |
|---|
| 3046 | [remove most warnings |
|---|
| 3047 | Simon Marlow <simonmar@microsoft.com>**20071003090804] |
|---|
| 3048 | [mkIfaceExports: sort the children of AvailTC |
|---|
| 3049 | Simon Marlow <simonmar@microsoft.com>**20071002114917 |
|---|
| 3050 | This fixes a problem with spurious recompilations: each time a module |
|---|
| 3051 | was recompiled, the order of the children would change, causing extra |
|---|
| 3052 | recompilation. |
|---|
| 3053 | |
|---|
| 3054 | MERGE TO STABLE |
|---|
| 3055 | ] |
|---|
| 3056 | [error message fix (#1758) |
|---|
| 3057 | Simon Marlow <simonmar@microsoft.com>**20071008134958] |
|---|
| 3058 | [FIX validate for PPC Mac OS X - RegAllocStats.hs |
|---|
| 3059 | Thorkil Naur <naur@post11.tele.dk>**20071005144105] |
|---|
| 3060 | [FIX validate for PPC Mac OS X - RegAllocLinear.hs |
|---|
| 3061 | Thorkil Naur <naur@post11.tele.dk>**20071005143607] |
|---|
| 3062 | [FIX validate for PPC Mac OS X - Linker.c |
|---|
| 3063 | Thorkil Naur <naur@post11.tele.dk>**20071005144908] |
|---|
| 3064 | [FIX validate for PPC Mac OS X - Evac.h |
|---|
| 3065 | Thorkil Naur <naur@post11.tele.dk>**20071005144454] |
|---|
| 3066 | [FIX #1748: -main-is wasn't handling the case of a single hierarchical module |
|---|
| 3067 | Simon Marlow <simonmar@microsoft.com>**20071008131305 |
|---|
| 3068 | test case is driver062.5 |
|---|
| 3069 | ] |
|---|
| 3070 | [FIX BUILD FD_SETSIZE signed |
|---|
| 3071 | jochemberndsen@dse.nl**20070927132649 |
|---|
| 3072 | On FreeBSD FD_SETSIZE is unsigned. Cast it to a signed int |
|---|
| 3073 | for portability. |
|---|
| 3074 | ] |
|---|
| 3075 | [FIX BUILD addDLL returns const char* |
|---|
| 3076 | jochemberndsen@dse.nl**20070927132619 |
|---|
| 3077 | addDLL returns const char*, not just a char*. |
|---|
| 3078 | Fix compiler warning |
|---|
| 3079 | ] |
|---|
| 3080 | [FIX BUILD `set -o igncr'-issue on FreeBSD |
|---|
| 3081 | jochemberndsen@dse.nl**20070926203750 |
|---|
| 3082 | `set -o igncr' does not work on non-cygwin-systems. |
|---|
| 3083 | Fail silently if this command does not work, instead |
|---|
| 3084 | of aborting the build. |
|---|
| 3085 | |
|---|
| 3086 | ] |
|---|
| 3087 | [comment-out "use vars" in 3 places (see #1739) |
|---|
| 3088 | Simon Marlow <simonmar@microsoft.com>**20071008115740] |
|---|
| 3089 | [Print binding contents in :show bindings |
|---|
| 3090 | Pepe Iborra <mnislaih@gmail.com>**20071006123952] |
|---|
| 3091 | [Change DOCOPTIONS pragma to DOC_OPTIONS |
|---|
| 3092 | David Waern <davve@dtek.chalmers.se>**20071002143849 |
|---|
| 3093 | |
|---|
| 3094 | MERGE TO STABLE |
|---|
| 3095 | ] |
|---|
| 3096 | [FIX: parsing of doc options |
|---|
| 3097 | David Waern <davve@dtek.chalmers.se>**20071002143713 |
|---|
| 3098 | |
|---|
| 3099 | Lexing of the doc options pragma was changed, but but no change was |
|---|
| 3100 | made to the parser to reflect that. This patch fixes this problem. |
|---|
| 3101 | |
|---|
| 3102 | MERGE TO STABLE |
|---|
| 3103 | ] |
|---|
| 3104 | [FIX: add missing case to OccName.isSymOcc |
|---|
| 3105 | David Waern <davve@dtek.chalmers.se>**20071002143459] |
|---|
| 3106 | [Remove warnings from WwLib |
|---|
| 3107 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071002130736] |
|---|
| 3108 | [FIX: mkWWcpr takes open alg types into account |
|---|
| 3109 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071002130407 |
|---|
| 3110 | - This fixed the failures of GMapAssoc and GMapTop for optmising ways |
|---|
| 3111 | |
|---|
| 3112 | MERGE TO STABLE |
|---|
| 3113 | ] |
|---|
| 3114 | [FIX #1738: KPush rule of FC must take dataConEqTheta into account |
|---|
| 3115 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071001154343 |
|---|
| 3116 | |
|---|
| 3117 | MERGE TO STABLE |
|---|
| 3118 | ] |
|---|
| 3119 | [FIX #1729: Don't try to expand syn families with -XLiberalTypeSynonyms |
|---|
| 3120 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070929122624 |
|---|
| 3121 | |
|---|
| 3122 | MERGE TO STABLE |
|---|
| 3123 | ] |
|---|
| 3124 | [Some more traceTcs |
|---|
| 3125 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070929121941] |
|---|
| 3126 | [FIX: Make boxy splitters aware of type families |
|---|
| 3127 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20070928225541 |
|---|
| 3128 | |
|---|
| 3129 | MERGE TO STABLE |
|---|
| 3130 | ] |
|---|
| 3131 | [html_installed_root shouldn't contain $$pkgid |
|---|
| 3132 | Ian Lynagh <igloo@earth.li>**20070927130427 |
|---|
| 3133 | This actually didn't break anything, as the shell expanded $pkgid to the |
|---|
| 3134 | empty string, but it was still wrong. |
|---|
| 3135 | ] |
|---|
| 3136 | [Comments and debug output only |
|---|
| 3137 | simonpj@microsoft.com**20070927110842] |
|---|
| 3138 | [further stub filename fix: I managed to break non-stubdir -fvia-C compilation |
|---|
| 3139 | Simon Marlow <simonmar@microsoft.com>**20070927102539] |
|---|
| 3140 | [ Leftovers from the 1st GHCi debugger prototype |
|---|
| 3141 | Pepe Iborra <mnislaih@gmail.com>**20071004204718] |
|---|
| 3142 | [Following an indirection doesn't count as a RTTI step |
|---|
| 3143 | Pepe Iborra <mnislaih@gmail.com>**20070928091941] |
|---|
| 3144 | [Finally, I managed to squash an infamous bug in :print |
|---|
| 3145 | Pepe Iborra <mnislaih@gmail.com>**20070927151300 |
|---|
| 3146 | |
|---|
| 3147 | It turns out the newtype handling code in :print |
|---|
| 3148 | was slipping non mutable Tyvars in the types reconstructed. |
|---|
| 3149 | The error message eventually produced was rather obscure: |
|---|
| 3150 | |
|---|
| 3151 | [src/Tp.hs:75:28-64] *MainTp> :p x |
|---|
| 3152 | *** Exception: No match in record selector Var.tcTyVarDetails |
|---|
| 3153 | [src/Tp.hs:75:28-64] *MainTp> |
|---|
| 3154 | |
|---|
| 3155 | Due to non mutable tyvars, unifyType was failing. |
|---|
| 3156 | A well placed assertion in the unifyType code would have made |
|---|
| 3157 | my life much easier. |
|---|
| 3158 | Which reminds me I should install a -ddump-* system in the |
|---|
| 3159 | RTTI subsystem, or future hackers will run away in swearing. |
|---|
| 3160 | |
|---|
| 3161 | |
|---|
| 3162 | MERGE TO STABLE |
|---|
| 3163 | |
|---|
| 3164 | ] |
|---|
| 3165 | [Be a bit more flexible in terminal identification for do_bold |
|---|
| 3166 | Pepe Iborra <mnislaih@gmail.com>**20070927141549 |
|---|
| 3167 | |
|---|
| 3168 | In Os X for instance, by default we have TERM=xterm-color |
|---|
| 3169 | |
|---|
| 3170 | MERGE TO STABLE |
|---|
| 3171 | |
|---|
| 3172 | ] |
|---|
| 3173 | [also acquire/release task->lock across fork() |
|---|
| 3174 | Simon Marlow <simonmar@microsoft.com>**20070927091331 |
|---|
| 3175 | further attempt to fix #1391 on MacOS |
|---|
| 3176 | ] |
|---|
| 3177 | [FIX -stubdir bug: the .hc file was #including the wrong _stub.h filename |
|---|
| 3178 | Simon Marlow <simonmar@microsoft.com>**20070926134539 |
|---|
| 3179 | Using -stubdir together with hierarchical modules, -fvia-C, and --make |
|---|
| 3180 | is essentially broken in 6.6.x. Recently discovered by Cabal's use of |
|---|
| 3181 | -stubdir. |
|---|
| 3182 | |
|---|
| 3183 | Test cases: driver027/driver028 (I've updated them to use -fvia-C, in |
|---|
| 3184 | order to test for this bug). |
|---|
| 3185 | ] |
|---|
| 3186 | [Add STANDARD_OPTS to SRC_HC_OPTS in rts/Makefile so we get -I../includes for .cmm files |
|---|
| 3187 | Ian Lynagh <igloo@earth.li>**20070926122637 |
|---|
| 3188 | Patch from Clemens Fruhwirth |
|---|
| 3189 | ] |
|---|
| 3190 | [fix #1734, panic in :show modules after load failure |
|---|
| 3191 | Simon Marlow <simonmar@microsoft.com>**20070926100732] |
|---|
| 3192 | [Remove current package from preloaded package set |
|---|
| 3193 | Clemens Fruhwirth <clemens@endorphin.org>**20070926084802] |
|---|
| 3194 | [Fixing #1340, adding HPC Documentation |
|---|
| 3195 | andy@galois.com**20070926055331] |
|---|
| 3196 | [TAG 2007-09-25 |
|---|
| 3197 | Ian Lynagh <igloo@earth.li>**20070925164536] |
|---|
| 3198 | Patch bundle hash: |
|---|
| 3199 | 70bc3ad66a88d44bdbf10674b82377f87b969f24 |
|---|