| 1 | Mon Apr 7 16:10:58 EDT 2008 Samuel Bronson <naesten@gmail.com> |
|---|
| 2 | * Implement #2191 (traceCcs# -- prints CCS of a value when available -- take 3) |
|---|
| 3 | In this version, I untag R1 before using it, and even enter R2 at the |
|---|
| 4 | end rather than simply returning it (which didn't work right when R2 |
|---|
| 5 | was a thunk). |
|---|
| 6 | |
|---|
| 7 | New patches: |
|---|
| 8 | |
|---|
| 9 | [Implement #2191 (traceCcs# -- prints CCS of a value when available -- take 3) |
|---|
| 10 | Samuel Bronson <naesten@gmail.com>**20080407201058 |
|---|
| 11 | In this version, I untag R1 before using it, and even enter R2 at the |
|---|
| 12 | end rather than simply returning it (which didn't work right when R2 |
|---|
| 13 | was a thunk). |
|---|
| 14 | ] { |
|---|
| 15 | hunk ./compiler/prelude/primops.txt.pp 1702 |
|---|
| 16 | with |
|---|
| 17 | out_of_line = True |
|---|
| 18 | |
|---|
| 19 | +------------------------------------------------------------------------ |
|---|
| 20 | +section "Misc" |
|---|
| 21 | + {These aren't nearly as wired in as Etc...} |
|---|
| 22 | +------------------------------------------------------------------------ |
|---|
| 23 | + |
|---|
| 24 | +primop TraceCcsOp "traceCcs#" GenPrimOp |
|---|
| 25 | + a -> b -> b |
|---|
| 26 | + with |
|---|
| 27 | + has_side_effects = True |
|---|
| 28 | + out_of_line = True |
|---|
| 29 | + |
|---|
| 30 | ------------------------------------------------------------------------ |
|---|
| 31 | section "Etc" |
|---|
| 32 | {Miscellaneous built-ins} |
|---|
| 33 | hunk ./includes/StgMiscClosures.h 606 |
|---|
| 34 | RTS_FUN(getApStackValzh_fast); |
|---|
| 35 | |
|---|
| 36 | RTS_FUN(noDuplicatezh_fast); |
|---|
| 37 | + |
|---|
| 38 | +RTS_FUN(traceCcszh_fast); |
|---|
| 39 | |
|---|
| 40 | /* Other misc stuff */ |
|---|
| 41 | |
|---|
| 42 | hunk ./rts/Linker.c 771 |
|---|
| 43 | SymX(rts_stop_on_exception) \ |
|---|
| 44 | SymX(stopTimer) \ |
|---|
| 45 | SymX(n_capabilities) \ |
|---|
| 46 | + SymX(traceCcszh_fast) \ |
|---|
| 47 | RTS_USER_SIGNALS_SYMBOLS |
|---|
| 48 | |
|---|
| 49 | #ifdef SUPPORT_LONG_LONGS |
|---|
| 50 | hunk ./rts/PrimOps.cmm 2236 |
|---|
| 51 | RET_NP(ok,val); |
|---|
| 52 | } |
|---|
| 53 | |
|---|
| 54 | +/* ----------------------------------------------------------------------------- |
|---|
| 55 | + Misc. primitives |
|---|
| 56 | + -------------------------------------------------------------------------- */ |
|---|
| 57 | + |
|---|
| 58 | +// Write the cost center stack of the first argument on stderr; return |
|---|
| 59 | +// the second. Possibly only makes sense for already evaluated |
|---|
| 60 | +// things? |
|---|
| 61 | +traceCcszh_fast |
|---|
| 62 | +{ |
|---|
| 63 | + W_ ccs; |
|---|
| 64 | + |
|---|
| 65 | +#ifdef PROFILING |
|---|
| 66 | + ccs = StgHeader_ccs(UNTAG(R1)); |
|---|
| 67 | + foreign "C" fprintCCS_stderr(ccs "ptr") [R2]; |
|---|
| 68 | +#endif |
|---|
| 69 | + |
|---|
| 70 | + R1 = R2; |
|---|
| 71 | + ENTER(); |
|---|
| 72 | +} |
|---|
| 73 | + |
|---|
| 74 | } |
|---|
| 75 | |
|---|
| 76 | Context: |
|---|
| 77 | |
|---|
| 78 | [Virtualize the cwd in GHCi |
|---|
| 79 | Pepe Iborra <mnislaih@gmail.com>**20080405145136 |
|---|
| 80 | |
|---|
| 81 | This fixes the issue where :list would stop working if the |
|---|
| 82 | program being debugged side-effected the working directory, |
|---|
| 83 | and should prevent other similar issues |
|---|
| 84 | |
|---|
| 85 | ] |
|---|
| 86 | [Fix rendering of references in :print under -fprint-evld-with-show flag |
|---|
| 87 | Pepe Iborra <mnislaih@gmail.com>**20071219174431] |
|---|
| 88 | [Fix Trac #2188: scoping in TH declarations quotes |
|---|
| 89 | simonpj@microsoft.com**20080404205556 |
|---|
| 90 | |
|---|
| 91 | This patch fixes a rather tiresome issue, namely the fact that |
|---|
| 92 | a TH declaration quote *shadows* bindings in outer scopes: |
|---|
| 93 | |
|---|
| 94 | f g = [d| f :: Int |
|---|
| 95 | f = g |
|---|
| 96 | g :: Int |
|---|
| 97 | g = 4 |] |
|---|
| 98 | |
|---|
| 99 | Here, the outer bindings for 'f' (top-level) and 'g' (local) |
|---|
| 100 | are shadowed, and the inner bindings for f,g should not be |
|---|
| 101 | reported as duplicates. (Remember they are top-level bindings.) |
|---|
| 102 | |
|---|
| 103 | The actual bug was that we'd forgotten to delete 'g' from the |
|---|
| 104 | LocalRdrEnv, so the type sig for 'g' was binding to the outer |
|---|
| 105 | 'g' not the inner one. |
|---|
| 106 | |
|---|
| 107 | ] |
|---|
| 108 | [Fix simplifier thrashing |
|---|
| 109 | simonpj@microsoft.com**20080403223819 |
|---|
| 110 | |
|---|
| 111 | Another example of the simplifier thrashing, getting nowhere. |
|---|
| 112 | See SimplUtils, Note [Unsaturated functions] |
|---|
| 113 | |
|---|
| 114 | There's a test at eyeball/inline4.hs |
|---|
| 115 | |
|---|
| 116 | ] |
|---|
| 117 | [Fix Trac #2179: error message for main |
|---|
| 118 | simonpj@microsoft.com**20080403173746 |
|---|
| 119 | |
|---|
| 120 | A short-cut to generate the (runMainIO main) wrapper turned out |
|---|
| 121 | to make a bad error message. This should fix it. |
|---|
| 122 | |
|---|
| 123 | ] |
|---|
| 124 | [Fix Trac #2136: reporting of unused variables |
|---|
| 125 | simonpj@microsoft.com**20080403110250 |
|---|
| 126 | |
|---|
| 127 | There's a bit of a hack RnBinds.rnValBindsAndThen, documented |
|---|
| 128 | in Note [Unused binding hack]. But the hack was over brutal |
|---|
| 129 | before, and produced unnecssarily bad (absence of) warnings. |
|---|
| 130 | This patch does a bit of refactoring; and fixes the bug in |
|---|
| 131 | rnValBindsAndThen. |
|---|
| 132 | |
|---|
| 133 | ] |
|---|
| 134 | [Fix Trac #2137: report correct location for shadowed binding |
|---|
| 135 | simonpj@microsoft.com**20080402153410 |
|---|
| 136 | |
|---|
| 137 | The error message generation for a shadowed binding was |
|---|
| 138 | plain wrong, at least where the shadowed binding isn't |
|---|
| 139 | top-level. Just a typo really -- the fix is trivial. |
|---|
| 140 | |
|---|
| 141 | ] |
|---|
| 142 | [Fix Trac #2141: invalid record update |
|---|
| 143 | simonpj@microsoft.com**20080402132057 |
|---|
| 144 | |
|---|
| 145 | See Note [Record field lookup] in TcEnv. The fix here |
|---|
| 146 | is quite straightforward. |
|---|
| 147 | |
|---|
| 148 | ] |
|---|
| 149 | [Do not #include external header files when compiling via C |
|---|
| 150 | Simon Marlow <simonmar@microsoft.com>**20080402051412 |
|---|
| 151 | |
|---|
| 152 | This has several advantages: |
|---|
| 153 | |
|---|
| 154 | - -fvia-C is consistent with -fasm with respect to FFI declarations: |
|---|
| 155 | both bind to the ABI, not the API. |
|---|
| 156 | |
|---|
| 157 | - foreign calls can now be inlined freely across module boundaries, since |
|---|
| 158 | a header file is not required when compiling the call. |
|---|
| 159 | |
|---|
| 160 | - bootstrapping via C will be more reliable, because this difference |
|---|
| 161 | in behavour between the two backends has been removed. |
|---|
| 162 | |
|---|
| 163 | There is one disadvantage: |
|---|
| 164 | |
|---|
| 165 | - we get no checking by the C compiler that the FFI declaration |
|---|
| 166 | is correct. |
|---|
| 167 | |
|---|
| 168 | So now, the c-includes field in a .cabal file is always ignored by |
|---|
| 169 | GHC, as are header files specified in an FFI declaration. This was |
|---|
| 170 | previously the case only for -fasm compilations, now it is also the |
|---|
| 171 | case for -fvia-C too. |
|---|
| 172 | ] |
|---|
| 173 | [Derive a valid Ix instance for data Foo = Foo Int Int |
|---|
| 174 | Ian Lynagh <igloo@earth.li>**20080330182813 |
|---|
| 175 | The old one didn't satisfy the axioms. See trac #2158 for details. |
|---|
| 176 | ] |
|---|
| 177 | [Revive External Core parser |
|---|
| 178 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080329223948 |
|---|
| 179 | |
|---|
| 180 | Huzzah, the External Core parser will now parse External Core generated by |
|---|
| 181 | the HEAD. |
|---|
| 182 | |
|---|
| 183 | Most notably, I rewrote the parser in Parsec, but the old Happy version |
|---|
| 184 | remains in the repository. |
|---|
| 185 | |
|---|
| 186 | I checked all the nofib benchmarks and most of the ghc-prim, base and integer |
|---|
| 187 | libraries to make sure they parsed; one known bug: |
|---|
| 188 | - Strings like "\x0aE", in which a hex escape code is followed by a |
|---|
| 189 | letter that could be a hex digit, aren't handled properly. I'm |
|---|
| 190 | investigating whether this is a bug in Parsec or expected behavior. |
|---|
| 191 | |
|---|
| 192 | The checker and interpreter still don't work, but should compile. |
|---|
| 193 | |
|---|
| 194 | Please mess around with the parser, report bugs, improve my code, etc., |
|---|
| 195 | if you're so inclined. |
|---|
| 196 | |
|---|
| 197 | ] |
|---|
| 198 | [Fix big character literal printing in External Core |
|---|
| 199 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080329221109 |
|---|
| 200 | |
|---|
| 201 | Characters bigger than '\xff' should be represented as int |
|---|
| 202 | literals in External Core. (This was originally fixed five years ago |
|---|
| 203 | and broken again four and a half years ago...) |
|---|
| 204 | ] |
|---|
| 205 | [External Core: don't print superfluous parens in case types |
|---|
| 206 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080329194629 |
|---|
| 207 | |
|---|
| 208 | The External Core printer was parenthesizing the scrutinee type in case expressions. Since this type is required to be atomic, the parens aren't necessary. |
|---|
| 209 | ] |
|---|
| 210 | [Don't import FastString in HsVersions.h |
|---|
| 211 | Ian Lynagh <igloo@earth.li>**20080329185043 |
|---|
| 212 | Modules that need it import it themselves instead. |
|---|
| 213 | ] |
|---|
| 214 | [DEBUG removal |
|---|
| 215 | Ian Lynagh <igloo@earth.li>**20080329171135] |
|---|
| 216 | [DEBUG removal |
|---|
| 217 | Ian Lynagh <igloo@earth.li>**20080329171013] |
|---|
| 218 | [DEBUG removal |
|---|
| 219 | Ian Lynagh <igloo@earth.li>**20080329170935] |
|---|
| 220 | [DEBUG removal |
|---|
| 221 | Ian Lynagh <igloo@earth.li>**20080329170341] |
|---|
| 222 | [DEBUG removal |
|---|
| 223 | Ian Lynagh <igloo@earth.li>**20080329170227] |
|---|
| 224 | [DEBUG removal |
|---|
| 225 | Ian Lynagh <igloo@earth.li>**20080329165412] |
|---|
| 226 | [Fix typo; spotted by Bdh in #ghc |
|---|
| 227 | Ian Lynagh <igloo@earth.li>**20080329165303] |
|---|
| 228 | [DEBUG removal |
|---|
| 229 | Ian Lynagh <igloo@earth.li>**20080329164849] |
|---|
| 230 | [DEBUG removal |
|---|
| 231 | Ian Lynagh <igloo@earth.li>**20080329164420] |
|---|
| 232 | [Remove a DEBUG use |
|---|
| 233 | Ian Lynagh <igloo@earth.li>**20080329164209] |
|---|
| 234 | [Remove a DEBUG |
|---|
| 235 | Ian Lynagh <igloo@earth.li>**20080329163936] |
|---|
| 236 | [Remove more #ifdef DEBUGs |
|---|
| 237 | Ian Lynagh <igloo@earth.li>**20080329145716] |
|---|
| 238 | [Remove an #ifdef DEBUG |
|---|
| 239 | Ian Lynagh <igloo@earth.li>**20080329145508] |
|---|
| 240 | [Remove an #ifdef DEBUG |
|---|
| 241 | Ian Lynagh <igloo@earth.li>**20080329145244] |
|---|
| 242 | [Remove an #ifdef DEBUG |
|---|
| 243 | Ian Lynagh <igloo@earth.li>**20080329144844] |
|---|
| 244 | [Remove a #ifdef DEBUG |
|---|
| 245 | Ian Lynagh <igloo@earth.li>**20080329144658] |
|---|
| 246 | [Remove an #ifdef DEBUG |
|---|
| 247 | Ian Lynagh <igloo@earth.li>**20080329144544] |
|---|
| 248 | [Remove some redundant code |
|---|
| 249 | Ian Lynagh <igloo@earth.li>**20080329144226] |
|---|
| 250 | [prelude/PrimOp is now mostly warning-free |
|---|
| 251 | Ian Lynagh <igloo@earth.li>**20080329143914 |
|---|
| 252 | commutableOp seems to be unused, so we're no 100% there yet. |
|---|
| 253 | ] |
|---|
| 254 | [Fix warnings from primops.txt.pp |
|---|
| 255 | Ian Lynagh <igloo@earth.li>**20080329142637] |
|---|
| 256 | [Use _ rather than "other" in generated code |
|---|
| 257 | Ian Lynagh <igloo@earth.li>**20080329142508] |
|---|
| 258 | [Fix some warnings |
|---|
| 259 | Ian Lynagh <igloo@earth.li>**20080329142219] |
|---|
| 260 | [Remove some redundant imports |
|---|
| 261 | Ian Lynagh <igloo@earth.li>**20080329141809] |
|---|
| 262 | [Remove an #ifdef DEBUG |
|---|
| 263 | Ian Lynagh <igloo@earth.li>**20080329141733] |
|---|
| 264 | [Remove an #ifdef DEBUG |
|---|
| 265 | Ian Lynagh <igloo@earth.li>**20080329141629] |
|---|
| 266 | [Remove some unnecessary imports |
|---|
| 267 | Ian Lynagh <igloo@earth.li>**20080329141145] |
|---|
| 268 | [Remove an unnecessary #ifdef DEBUG |
|---|
| 269 | Ian Lynagh <igloo@earth.li>**20080329141047] |
|---|
| 270 | [Another debugIsOn use |
|---|
| 271 | Ian Lynagh <igloo@earth.li>**20080329140126] |
|---|
| 272 | [Convert some DEBUG uses to debugIsOn |
|---|
| 273 | Ian Lynagh <igloo@earth.li>**20080329135950] |
|---|
| 274 | [Put debugIsOn in Util, rather than rely on it being CPPed in |
|---|
| 275 | Ian Lynagh <igloo@earth.li>**20080329135755] |
|---|
| 276 | [External Core: print function types correctly, improve newtype pretty-printing |
|---|
| 277 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080328222630 |
|---|
| 278 | |
|---|
| 279 | - In a previous patch I broke the printing of fully-applied arrow |
|---|
| 280 | types (e.g., "a -> b" was "(ghczmprim:GHCziPrim a b)") by z-encoding |
|---|
| 281 | package names and not updating the primitive module name as defined in |
|---|
| 282 | External Core accordingly. Fixed. (Mega sigh...) |
|---|
| 283 | |
|---|
| 284 | - Make newtype decls print slightly more readably. |
|---|
| 285 | ] |
|---|
| 286 | [Print out rational literals correctly in External Core |
|---|
| 287 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080328211919 |
|---|
| 288 | |
|---|
| 289 | The External Core printer was printing out rational literals of the |
|---|
| 290 | form: |
|---|
| 291 | 2.0e-2 |
|---|
| 292 | when the External Core grammar doesn't allow this. (This |
|---|
| 293 | bug has apparently been there since the beginning...) |
|---|
| 294 | |
|---|
| 295 | It's now printing rationals in the same form that (show (r::Rational)) |
|---|
| 296 | does. This requires a parser change as well (soon to come.) |
|---|
| 297 | ] |
|---|
| 298 | [Change syntax for qualified names in External Core |
|---|
| 299 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080327185436 |
|---|
| 300 | |
|---|
| 301 | Two changes that make the ext-core code uglier but the parser easier: |
|---|
| 302 | |
|---|
| 303 | - Prefix qualified names with "^" so that we can more easily |
|---|
| 304 | distinguish a qualified name: |
|---|
| 305 | ^a:Foo.Bar.quux |
|---|
| 306 | from an unqualified name: |
|---|
| 307 | a |
|---|
| 308 | |
|---|
| 309 | - z-encode package names ("ghc-prim" was the culprit.) |
|---|
| 310 | ] |
|---|
| 311 | [Make use of the SDoc type synonym |
|---|
| 312 | Ian Lynagh <igloo@earth.li>**20080326175306] |
|---|
| 313 | [Fix warnings in rename/RnTypes |
|---|
| 314 | Ian Lynagh <igloo@earth.li>**20080326174657] |
|---|
| 315 | [Fix warnings in basicTypes/IdInfo |
|---|
| 316 | Ian Lynagh <igloo@earth.li>**20080326170014] |
|---|
| 317 | [Fix warnings in basicTypes/NameEnv |
|---|
| 318 | Ian Lynagh <igloo@earth.li>**20080326165139] |
|---|
| 319 | [Fix warnings in basicTypes/NameSet |
|---|
| 320 | Ian Lynagh <igloo@earth.li>**20080326164837] |
|---|
| 321 | [Fix warning in basicTypes/NewDemand |
|---|
| 322 | Ian Lynagh <igloo@earth.li>**20080326160017] |
|---|
| 323 | [Fix warnings in basicTypes/VarEnv |
|---|
| 324 | Ian Lynagh <igloo@earth.li>**20080326155412] |
|---|
| 325 | [Fix warnings in basicTypes/VarSet |
|---|
| 326 | Ian Lynagh <igloo@earth.li>**20080326155105] |
|---|
| 327 | [main/BreakArray has no warnings |
|---|
| 328 | Ian Lynagh <igloo@earth.li>**20080326154747] |
|---|
| 329 | [In validate settings, make -Werror easier to override |
|---|
| 330 | Ian Lynagh <igloo@earth.li>**20080326141030] |
|---|
| 331 | [Remove a redundant type sig |
|---|
| 332 | Ian Lynagh <igloo@earth.li>**20080326004932] |
|---|
| 333 | [Fix warnings in main/DriverPhases |
|---|
| 334 | Ian Lynagh <igloo@earth.li>**20080325235828] |
|---|
| 335 | [Remove redundant type sig |
|---|
| 336 | Ian Lynagh <igloo@earth.li>**20080325235801] |
|---|
| 337 | [Fix warnings in main/HscStats |
|---|
| 338 | Ian Lynagh <igloo@earth.li>**20080325234110] |
|---|
| 339 | [Fix warnings in main/Constants |
|---|
| 340 | Ian Lynagh <igloo@earth.li>**20080325233034] |
|---|
| 341 | [Fix warnings in main/InteractiveEval |
|---|
| 342 | Ian Lynagh <igloo@earth.li>**20080325230153] |
|---|
| 343 | [Fix warnings in main/Packages |
|---|
| 344 | Ian Lynagh <igloo@earth.li>**20080325224444] |
|---|
| 345 | [Fix warnings in main/PprTyThing |
|---|
| 346 | Ian Lynagh <igloo@earth.li>**20080325223104] |
|---|
| 347 | [Fix warnings in main/StaticFlags |
|---|
| 348 | Ian Lynagh <igloo@earth.li>**20080325221632] |
|---|
| 349 | [Change syntax for newtypes in External Core |
|---|
| 350 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080325170218 |
|---|
| 351 | |
|---|
| 352 | The way that newtype declarations were printed in External Core files was |
|---|
| 353 | incomplete, since there was no declaration for the coercion introduced by a |
|---|
| 354 | newtype. |
|---|
| 355 | |
|---|
| 356 | For example, the Haskell source: |
|---|
| 357 | |
|---|
| 358 | newtype T a = MkT (a -> a) |
|---|
| 359 | |
|---|
| 360 | foo (MkT x) = x |
|---|
| 361 | |
|---|
| 362 | got printed out in External Core as (roughly): |
|---|
| 363 | |
|---|
| 364 | %newtype T a = a -> a; |
|---|
| 365 | |
|---|
| 366 | foo :: %forall t . T t -> t -> t = |
|---|
| 367 | %cast (\ @ t -> a1 @ t) |
|---|
| 368 | (%forall t . T t -> ZCCoT t); |
|---|
| 369 | |
|---|
| 370 | There is no declaration anywhere in the External Core program for :CoT, so |
|---|
| 371 | that's bad. |
|---|
| 372 | |
|---|
| 373 | I changed the newtype decl syntax so as to include the declaration for the |
|---|
| 374 | coercion axiom introduced by the newtype. Now, it looks like: |
|---|
| 375 | |
|---|
| 376 | %newtype T a ^ (ZCCoT :: ((T a) :=: (a -> a))) = a -> a; |
|---|
| 377 | |
|---|
| 378 | And an external typechecker could conceivably typecheck code that uses this. |
|---|
| 379 | |
|---|
| 380 | The major changes are to MkExternalCore and PprExternalCore (as well as |
|---|
| 381 | ExternalCore, to change the External Core AST.) I also corrected some typos in |
|---|
| 382 | comments in other files. |
|---|
| 383 | |
|---|
| 384 | Documentation and external tool changes to follow. |
|---|
| 385 | |
|---|
| 386 | ] |
|---|
| 387 | [Fix warnings in the RTS |
|---|
| 388 | Ian Lynagh <igloo@earth.li>**20080325160314 |
|---|
| 389 | For some reason this causes build failures for me in my 32-bit chroot, |
|---|
| 390 | ] |
|---|
| 391 | [Another change for GHC.PrimopWrappers moving from base to ghc-prim |
|---|
| 392 | Ian Lynagh <igloo@earth.li>**20080324224006] |
|---|
| 393 | [Update darcs-boring |
|---|
| 394 | Ian Lynagh <igloo@earth.li>**20080324212319] |
|---|
| 395 | [Fix primMname in External Core printer |
|---|
| 396 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080324014311 |
|---|
| 397 | |
|---|
| 398 | My earlier changes broke printing of function types in .hcr files. |
|---|
| 399 | In other words: the z-encoding must die. |
|---|
| 400 | ] |
|---|
| 401 | [Fix primMname in External Core printer |
|---|
| 402 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080324005246 |
|---|
| 403 | |
|---|
| 404 | My earlier changes broke printing of function types in .hcr files. |
|---|
| 405 | In other words: the z-encoding must die. |
|---|
| 406 | ] |
|---|
| 407 | [Follow library changes |
|---|
| 408 | Ian Lynagh <igloo@earth.li>**20080323182557 |
|---|
| 409 | Integer, Bool and Unit/Inl/Inr are now in new packages integer |
|---|
| 410 | and ghc-prim. |
|---|
| 411 | ] |
|---|
| 412 | [CgTicky now doesn't know about the Integer data constructors |
|---|
| 413 | Ian Lynagh <igloo@earth.li>**20080320195836] |
|---|
| 414 | [-DDEBUG build fix |
|---|
| 415 | Ian Lynagh <igloo@earth.li>**20080322140641] |
|---|
| 416 | [Rename rebuild to remake, and define rebuild to "clean; build" |
|---|
| 417 | Ian Lynagh <igloo@earth.li>**20080320221915] |
|---|
| 418 | [Handle hierarchical module names in External Core tools |
|---|
| 419 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080320014449 |
|---|
| 420 | |
|---|
| 421 | I updated the parser to handle hierarchical module names (with package names) |
|---|
| 422 | the way GHC is currently printing them out in External Core. |
|---|
| 423 | |
|---|
| 424 | Beware kludgy use of z-encoding and gratutious copy-pasta from GHC. |
|---|
| 425 | |
|---|
| 426 | You can now use the stand-alone Core parser to parse a very simple |
|---|
| 427 | GHC-generated .hcr file (progress!) but not to typecheck or interpret it |
|---|
| 428 | (the typechecker/interpreter don't snarf in the right libraries yet, among |
|---|
| 429 | other things.) And, the parser is still incomplete in that it doesn't handle |
|---|
| 430 | programs with newtypes/GADTs/etc. whose syntax has changed since 2003. In |
|---|
| 431 | other words: probably don't try to use this yet. |
|---|
| 432 | |
|---|
| 433 | ] |
|---|
| 434 | [Improve hierarchical module name handling in MkExternalCore |
|---|
| 435 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080319190429 |
|---|
| 436 | |
|---|
| 437 | It's easier for the External Core parser if MkExternalCore prints |
|---|
| 438 | module names like: |
|---|
| 439 | base:GHCziBase |
|---|
| 440 | rather than like: |
|---|
| 441 | base:GHC.Base |
|---|
| 442 | (which it was doing before.) |
|---|
| 443 | |
|---|
| 444 | So now we z-encode the hierarchical module-name part of a module |
|---|
| 445 | name, but don't z-encode the ':'. |
|---|
| 446 | |
|---|
| 447 | I also removed some old comments that don't seem relevant anymore. |
|---|
| 448 | ] |
|---|
| 449 | [Fixed remaining warning in coreSyn/MkExternalCore |
|---|
| 450 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080319182521 |
|---|
| 451 | |
|---|
| 452 | There was a (suppressed) warning about an incomplete pattern match in make_alt. This was because the DEFAULT alt never has variable bindings. I thought it would be better to check that case and panic if it happens than to have an incomplete pattern. It's still not great, but at least now we don't have to suppress any warnings in this file. |
|---|
| 453 | ] |
|---|
| 454 | [Revert an accidental change |
|---|
| 455 | Ian Lynagh <igloo@earth.li>**20080317200130] |
|---|
| 456 | [Print some extra debugging info when doing --show-iface |
|---|
| 457 | Ian Lynagh <igloo@earth.li>**20080317185032] |
|---|
| 458 | [Eliminate a global variable |
|---|
| 459 | Ian Lynagh <igloo@earth.li>**20080317180150 |
|---|
| 460 | Very little parameter passing is needed without it, so there was no real |
|---|
| 461 | benefit to it. |
|---|
| 462 | ] |
|---|
| 463 | [Follow changes in editline |
|---|
| 464 | Ian Lynagh <igloo@earth.li>**20080317103617] |
|---|
| 465 | [Use editline instead of readline |
|---|
| 466 | Ian Lynagh <igloo@earth.li>**20080316060407] |
|---|
| 467 | [Vectorise tuple constructorsn |
|---|
| 468 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080317033436] |
|---|
| 469 | [Added double divide and unzipP |
|---|
| 470 | keller@cse.unsw.edu.au**20080317025553] |
|---|
| 471 | [Added 'div' to set of vectorising functions |
|---|
| 472 | keller@cse.unsw.edu.au**20080311125035] |
|---|
| 473 | [If unregisterised, link with -optl-Wl,--relax on IA64 |
|---|
| 474 | Ian Lynagh <igloo@earth.li>**20080316214104 |
|---|
| 475 | This fixes part of trac #856 |
|---|
| 476 | ] |
|---|
| 477 | [When concatenating variables in Makefile, strip spaces in case one is empty |
|---|
| 478 | Ian Lynagh <igloo@earth.li>**20080315141751 |
|---|
| 479 | Otherwise "$(A) $(B)" will not be equal to "" even if A and B are empty. |
|---|
| 480 | Trac #856. |
|---|
| 481 | ] |
|---|
| 482 | [Fix a space leak in :trace (trac #2128) |
|---|
| 483 | Ian Lynagh <igloo@earth.li>**20080316211748 |
|---|
| 484 | We were doing lots of cons'ing and tail'ing without forcing the tails, |
|---|
| 485 | so were building up lots of thunks. |
|---|
| 486 | ] |
|---|
| 487 | [If we are failing due to a warning and -Werror, say so |
|---|
| 488 | Ian Lynagh <igloo@earth.li>**20080316195636 |
|---|
| 489 | Fixes trac #1893, based on a patch from Daniel Franke. |
|---|
| 490 | ] |
|---|
| 491 | [Remove leftover NoteTy/FTVNote bits |
|---|
| 492 | Ian Lynagh <igloo@earth.li>**20080315194220] |
|---|
| 493 | [Remove uses of addFreeTyVars |
|---|
| 494 | Ian Lynagh <igloo@earth.li>**20080315155027 |
|---|
| 495 | This optimisation actually make things a bit slower on average, as |
|---|
| 496 | measured by nofib. The example in #1136 in particular suffers from high |
|---|
| 497 | memory usage. Therefore we no longer do the optimisation. |
|---|
| 498 | ] |
|---|
| 499 | [parsing tweak for :break |
|---|
| 500 | Simon Marlow <simonmar@microsoft.com>**20080313182936] |
|---|
| 501 | [Tweaks to stack squeezing |
|---|
| 502 | Simon Marlow <simonmar@microsoft.com>**20080207122445 |
|---|
| 503 | |
|---|
| 504 | 1. We weren't squeezing two frames if one of them was a marked update |
|---|
| 505 | frame. This is easy to fix. |
|---|
| 506 | |
|---|
| 507 | 2. The heuristic to decide whether to squeeze was a little |
|---|
| 508 | conservative. It's worth copying 3 words to save an update frame. |
|---|
| 509 | |
|---|
| 510 | ] |
|---|
| 511 | [Some cleanup in TcSimplify.reduceContext |
|---|
| 512 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080313065220 |
|---|
| 513 | - Makes this horrid function a bit better - and shorter! |
|---|
| 514 | - Also gets rid of another API function of TcTyFuns |
|---|
| 515 | ] |
|---|
| 516 | [Properly normalise reduced dicts |
|---|
| 517 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080313051708 |
|---|
| 518 | - Another chapter in the never-ending TcSimplify.reduceContext saga: after |
|---|
| 519 | context reduction of wanted dicts it is not sufficient to normalise them |
|---|
| 520 | wrt to the wanted equalities. We also need to take top-level equalities |
|---|
| 521 | into account. (In fact, we probably also have to normalise wrt to given |
|---|
| 522 | equalities, but I have left that open for the moment - but added a TODO |
|---|
| 523 | note.) |
|---|
| 524 | - This finally eliminates substEqInDictInsts from TcTyFuns interface and |
|---|
| 525 | suggest some further possible clean up (which will be in a separate patch). |
|---|
| 526 | |
|---|
| 527 | Thanks to Roman for the intricate example that uncovered this bug. |
|---|
| 528 | ] |
|---|
| 529 | [Bump mAX_NDP_PROD to 5 |
|---|
| 530 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080313061411] |
|---|
| 531 | [#2050: save the GHCi history in ~/.ghc/ghci_history |
|---|
| 532 | Simon Marlow <simonmar@microsoft.com>**20080312215724 |
|---|
| 533 | Modified version of Judah's patch |
|---|
| 534 | ] |
|---|
| 535 | [Make sure we generate PA dictionaries for tuples up to mAX_NDP_PROD |
|---|
| 536 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080312034905] |
|---|
| 537 | [Bump mAX_NDP_PROD to 4 |
|---|
| 538 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080312030245] |
|---|
| 539 | [First cut at reviving the External Core tools |
|---|
| 540 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080310025821 |
|---|
| 541 | |
|---|
| 542 | I updated the External Core AST to be somewhat closer to reality (where reality is defined by the HEAD), and got all the code to compile under GHC 6.8.1. (That means it works, right?) |
|---|
| 543 | |
|---|
| 544 | Major changes: |
|---|
| 545 | |
|---|
| 546 | - Added a Makefile. |
|---|
| 547 | |
|---|
| 548 | - Core AST: |
|---|
| 549 | - Represented package names and qualified module names. |
|---|
| 550 | - Added type annotation on Case exps. |
|---|
| 551 | - Changed Coerce to Cast. |
|---|
| 552 | - Cleaned up representation of qualified/unqualified names. |
|---|
| 553 | - Fixed up wired-in module names (no more "PrelGHC", etc.) |
|---|
| 554 | |
|---|
| 555 | - Updated parser/interpreter/typechecker/prep for the new AST. |
|---|
| 556 | |
|---|
| 557 | - Typechecker: |
|---|
| 558 | - Used a Reader monad to pass around the global environment and top module name. |
|---|
| 559 | - Added an entry point to check a single expression. |
|---|
| 560 | |
|---|
| 561 | - Prep: |
|---|
| 562 | - Got rid of typeofExp; it's now defined in terms of the typechecker. |
|---|
| 563 | |
|---|
| 564 | ] |
|---|
| 565 | [Remove ndpFlatten |
|---|
| 566 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080309225914 |
|---|
| 567 | |
|---|
| 568 | This patch removes the ndpFlatten directory and the -fflatten static flag. |
|---|
| 569 | This code has never worked and has now been superceded by vectorisation. |
|---|
| 570 | ] |
|---|
| 571 | [documentation fix: change flag -frules-off to -fno-rewrite-rules |
|---|
| 572 | iavor.diatchki@gmail.com**20080309191911] |
|---|
| 573 | [Don't expose the unfolding of dictionary selectors without -O |
|---|
| 574 | simonpj@microsoft.com**20080306135026 |
|---|
| 575 | |
|---|
| 576 | When compiling without -O we were getting code like this |
|---|
| 577 | |
|---|
| 578 | f x = case GHC.Base.$f20 of |
|---|
| 579 | :DEq eq neq -> eq x x |
|---|
| 580 | |
|---|
| 581 | But because of the -O the $f20 dictionary is not available, so exposing |
|---|
| 582 | the dictionary selector was useless. Yet it makes the code bigger! |
|---|
| 583 | Better to get |
|---|
| 584 | f x = GHC.Base.== GHC.Bsae.$f20 x x |
|---|
| 585 | |
|---|
| 586 | This patch suppresses the implicit unfolding for dictionary selectors |
|---|
| 587 | when compiling without -O. We could do the same for other implicit |
|---|
| 588 | Ids, but this will do for now. |
|---|
| 589 | |
|---|
| 590 | There should be no effect when compiling with -O. Programs should |
|---|
| 591 | be smaller without -O and may run a tiny bit slower. |
|---|
| 592 | |
|---|
| 593 | |
|---|
| 594 | ] |
|---|
| 595 | [Fix Trac #783: improve short-cutting literals in the type checker |
|---|
| 596 | simonpj@microsoft.com**20080306134734 |
|---|
| 597 | |
|---|
| 598 | The Inst.shortCutIntLit mechanism in the type checker was missing cases |
|---|
| 599 | where a floating-point literal was given without an explicit decimal point. |
|---|
| 600 | |
|---|
| 601 | As a result, programs with lots of floating-point literals (without decimals) |
|---|
| 602 | ended up with massive Static Reference Tables. This is not cool. See |
|---|
| 603 | comments with Trac #783 for details. |
|---|
| 604 | |
|---|
| 605 | |
|---|
| 606 | ] |
|---|
| 607 | [Fix Trac #2138: print the 'stupid theta' of a data type |
|---|
| 608 | simonpj@microsoft.com**20080306134651] |
|---|
| 609 | [Fix vectorisation monad |
|---|
| 610 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080307050859] |
|---|
| 611 | [Improve SpecConstr for local bindings: seed specialisation from the calls |
|---|
| 612 | simonpj@microsoft.com**20080306120004 |
|---|
| 613 | |
|---|
| 614 | This patch makes a significant improvement to SpecConstr, based on |
|---|
| 615 | Roman's experience with using it for stream fusion. The main change is |
|---|
| 616 | this: |
|---|
| 617 | |
|---|
| 618 | * For local (not-top-level) declarations, seed the specialisation |
|---|
| 619 | loop from the calls in the body of the 'let'. |
|---|
| 620 | |
|---|
| 621 | See Note [Local recursive groups] for discussion and example. Top-level |
|---|
| 622 | declarations are treated just as before. |
|---|
| 623 | |
|---|
| 624 | Other changes in this patch: |
|---|
| 625 | |
|---|
| 626 | * New flag -fspec-constr-count=N sets the maximum number of specialisations |
|---|
| 627 | for any single function to N. -fno-spec-constr-count removes the limit. |
|---|
| 628 | |
|---|
| 629 | * Refactoring in specLoop and friends; new algebraic data types |
|---|
| 630 | OneSpec and SpecInfo instead of the tuples that were there before |
|---|
| 631 | |
|---|
| 632 | * Be less keen to specialise on variables that are simply in scope. |
|---|
| 633 | Example |
|---|
| 634 | f p q = letrec g a y = ...g.... in g q p |
|---|
| 635 | We probably do not want to specialise 'g' for calls with exactly |
|---|
| 636 | the arguments 'q' and 'p', since we know nothing about them. |
|---|
| 637 | |
|---|
| 638 | |
|---|
| 639 | ] |
|---|
| 640 | [Refactor OccAnal; and improve dead-code elimination |
|---|
| 641 | simonpj@microsoft.com**20080305155708 |
|---|
| 642 | |
|---|
| 643 | The occurrence analyer is now really rather subtle when dealing |
|---|
| 644 | with recursive groups; see Note [Loop breaking and RULES] especially. |
|---|
| 645 | |
|---|
| 646 | This patch refactors this code a bit, notably |
|---|
| 647 | * Introduces a new data type Details instead of a tuple |
|---|
| 648 | |
|---|
| 649 | * More clearly breaks up a recursive group into its SCCs |
|---|
| 650 | before processing it in a separate function occAnalRec |
|---|
| 651 | |
|---|
| 652 | * As a result, does better dead-code elimination, becuause it's |
|---|
| 653 | done per SCC rather than for the whole Rec |
|---|
| 654 | |
|---|
| 655 | |
|---|
| 656 | |
|---|
| 657 | |
|---|
| 658 | ] |
|---|
| 659 | [Copy the right ghc-pkg.bin into bindists |
|---|
| 660 | Ian Lynagh <igloo@earth.li>**20080305224020] |
|---|
| 661 | [Add a missing endif to the bindist Makefile |
|---|
| 662 | Ian Lynagh <igloo@earth.li>**20080305221136] |
|---|
| 663 | [Fix bashisms; patch from Bernie Pope |
|---|
| 664 | Ian Lynagh <igloo@earth.li>**20080305134556] |
|---|
| 665 | [Improve no-type-signature warning |
|---|
| 666 | Ian Lynagh <igloo@earth.li>**20080305011242 |
|---|
| 667 | Instead of |
|---|
| 668 | Warning: Definition but no type signature for `.+.' |
|---|
| 669 | Inferred type: .+. :: forall a. a |
|---|
| 670 | we now say |
|---|
| 671 | Warning: Definition but no type signature for `.+.' |
|---|
| 672 | Inferred type: (.+.) :: forall a. a |
|---|
| 673 | ] |
|---|
| 674 | [Fix typo |
|---|
| 675 | Ian Lynagh <igloo@earth.li>**20080302151339] |
|---|
| 676 | [In bindists, look in the right place to see if we have provided docs |
|---|
| 677 | Ian Lynagh <igloo@earth.li>**20080302140408 |
|---|
| 678 | Fixes trac #1971: unjustified warning about documentation |
|---|
| 679 | ] |
|---|
| 680 | [Remove GADT refinements, part 3 |
|---|
| 681 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080229035740] |
|---|
| 682 | [MacOS installer: Uninstaller must be able to deal with ATiger receipts |
|---|
| 683 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228050707] |
|---|
| 684 | [Add and use seqBitmap when constructing SRTs |
|---|
| 685 | Ian Lynagh <igloo@earth.li>**20080227144505 |
|---|
| 686 | This roughly halves memory usage when compiling |
|---|
| 687 | module Foo where |
|---|
| 688 | |
|---|
| 689 | foo :: Double -> Int |
|---|
| 690 | foo x | x == 1 = 1 |
|---|
| 691 | ... |
|---|
| 692 | foo x | x == 500 = 500 |
|---|
| 693 | without optimisation. |
|---|
| 694 | ] |
|---|
| 695 | [Whitespace |
|---|
| 696 | Ian Lynagh <igloo@earth.li>**20080220191230] |
|---|
| 697 | [Remove GADT refinements, part 2 |
|---|
| 698 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228055326] |
|---|
| 699 | [Fix Trac #2130: improve derived Ord for primmitive types |
|---|
| 700 | simonpj@microsoft.com**20080228121106 |
|---|
| 701 | |
|---|
| 702 | This patch does two things: |
|---|
| 703 | |
|---|
| 704 | * (Minor): in TcGenDeriv.careful_compare_Case, test for less-than before |
|---|
| 705 | equality. This should reduce the number of dynamic tests, and also gives |
|---|
| 706 | more scope for optimisation, since less-than tells us more than equality. |
|---|
| 707 | |
|---|
| 708 | * (More important): add special-case derived code for data types that are |
|---|
| 709 | simple wrappers of primitive types. See |
|---|
| 710 | Note [Comparision of primitive types] |
|---|
| 711 | This fixes Trac 2130. |
|---|
| 712 | |
|---|
| 713 | However see also Trac #2132, which is not addressed here. |
|---|
| 714 | |
|---|
| 715 | ] |
|---|
| 716 | [Comments only |
|---|
| 717 | simonpj@microsoft.com**20080228111301] |
|---|
| 718 | [add a note about SMP execution not being supported with profiling |
|---|
| 719 | Simon Marlow <simonmar@microsoft.com>**20080228112209] |
|---|
| 720 | [Enable -prof -threaded (#886) |
|---|
| 721 | Simon Marlow <simonmar@microsoft.com>**20080228111631 |
|---|
| 722 | It turns out that -prof -threaded works (modulo some small changes), |
|---|
| 723 | because all the data structures used in profiling are only accessed by |
|---|
| 724 | one thread at a time, at long as we don't use +RTS -N2 or higher. So |
|---|
| 725 | this patch enables the use of -prof -threaded, but an error is given |
|---|
| 726 | if you ask for more than one CPU with +RTS -N. |
|---|
| 727 | ] |
|---|
| 728 | [Wibble to error message (stmt of do block or comprehension) |
|---|
| 729 | simonpj@microsoft.com**20080228083104] |
|---|
| 730 | [Make explicit lists more fusable |
|---|
| 731 | Max Bolingbroke <batterseapower@hotmail.com>**20080228083050] |
|---|
| 732 | [Add comments explaining flags |
|---|
| 733 | simonpj@microsoft.com**20080228082935] |
|---|
| 734 | [Remove GADT refinements, part 1 |
|---|
| 735 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228045351 |
|---|
| 736 | - A while ago, I changed the type checker to use equality constraints together |
|---|
| 737 | with implication constraints to track local type refinement due to GADT |
|---|
| 738 | pattern matching. This patch is the first of a number of surgical strikes |
|---|
| 739 | to remove the resulting dead code of the previous GADT refinement machinery. |
|---|
| 740 | |
|---|
| 741 | Hurray to code simplification! |
|---|
| 742 | ] |
|---|
| 743 | [Eliminate SkolemOccurs skolems only after checkLoop reached a fixed point |
|---|
| 744 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080228001957 |
|---|
| 745 | - See test case indexed-types/should_fail/SkolemOccursLoop, which sends the |
|---|
| 746 | type checker into an endless loop without this fix |
|---|
| 747 | ] |
|---|
| 748 | [Fix Trac #2126: re-order tests (easy) |
|---|
| 749 | simonpj@microsoft.com**20080227163202] |
|---|
| 750 | [Fix Trac #2111: improve error handling for 'rec' in do-notation |
|---|
| 751 | simonpj@microsoft.com**20080226175635 |
|---|
| 752 | |
|---|
| 753 | We were not dealing correctly with all the combinations of |
|---|
| 754 | do notation |
|---|
| 755 | mdo notation |
|---|
| 756 | arrow notation |
|---|
| 757 | in combination with 'rec' Stmts. |
|---|
| 758 | |
|---|
| 759 | I think this patch sorts it out. |
|---|
| 760 | |
|---|
| 761 | ] |
|---|
| 762 | [Remove gaw comment |
|---|
| 763 | simonpj@microsoft.com**20080226175305] |
|---|
| 764 | [Fix Trac #1899; missing equality check in typechecker's constraint simplifier |
|---|
| 765 | simonpj@microsoft.com**20080226174743 |
|---|
| 766 | |
|---|
| 767 | This patch fixes a missing equality check (uifying type variable b=b) in |
|---|
| 768 | the new constraint simplifier in TcTyFuns. As it stands, we were making |
|---|
| 769 | 'b' point to itself, which subsequently led to an infinite loop when |
|---|
| 770 | zonking. Test is T1899.hs |
|---|
| 771 | |
|---|
| 772 | |
|---|
| 773 | |
|---|
| 774 | ] |
|---|
| 775 | [FIX #2122: file locking bug |
|---|
| 776 | Simon Marlow <simonmar@microsoft.com>**20080226104650 |
|---|
| 777 | Second and subsequent readers weren't being inserted into the |
|---|
| 778 | fd->lock hash table, which meant that the file wasn't correctly |
|---|
| 779 | unlocked when the Handles were closed. |
|---|
| 780 | ] |
|---|
| 781 | [documentation improvements from Frederik Eaton |
|---|
| 782 | Simon Marlow <simonmar@microsoft.com>**20080226102612] |
|---|
| 783 | [markup fix |
|---|
| 784 | Simon Marlow <simonmar@microsoft.com>**20080226102558] |
|---|
| 785 | [Mac installer: cross-compile for 10.4 |
|---|
| 786 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080225093734] |
|---|
| 787 | [Make UniqFM non-strict again while we work out what we're doing. |
|---|
| 788 | Ian Lynagh <igloo@earth.li>**20080225171305 |
|---|
| 789 | This "fixes" the very-slow problem we have when compiling dictionaries. |
|---|
| 790 | ] |
|---|
| 791 | [Fix Trac #2082 |
|---|
| 792 | simonpj@microsoft.com**20080219173410] |
|---|
| 793 | [Fix Trac #2114: error reporting for 'forall' without appropriate flags |
|---|
| 794 | simonpj@microsoft.com**20080222182646] |
|---|
| 795 | [Improve error messages from type-checking data constructors |
|---|
| 796 | simonpj@microsoft.com**20080222182514 |
|---|
| 797 | |
|---|
| 798 | This addresses Trac #2112 |
|---|
| 799 | |
|---|
| 800 | ] |
|---|
| 801 | [Add type sigs and minor refactoring |
|---|
| 802 | simonpj@microsoft.com**20080222182305] |
|---|
| 803 | [FIX #2073: Don't add empty lines to GHCI's history |
|---|
| 804 | Ian Lynagh <igloo@earth.li>**20080224143256] |
|---|
| 805 | [FIX #1977: Check to see if $(bindir) is in the path |
|---|
| 806 | Ian Lynagh <igloo@earth.li>**20080224134334 |
|---|
| 807 | Before telling the user to add it, when installing a bindist, check to |
|---|
| 808 | see if $(bindir) is already in the path. |
|---|
| 809 | ] |
|---|
| 810 | [Fix warnings in Simplify |
|---|
| 811 | Ian Lynagh <igloo@earth.li>**20080222150318] |
|---|
| 812 | [Whitespace |
|---|
| 813 | Ian Lynagh <igloo@earth.li>**20080222140755] |
|---|
| 814 | [Add a comment |
|---|
| 815 | Ian Lynagh <igloo@earth.li>**20080220205844] |
|---|
| 816 | [Fix most of the warnings in StgLint |
|---|
| 817 | Ian Lynagh <igloo@earth.li>**20080220171858] |
|---|
| 818 | [Whitespace |
|---|
| 819 | Ian Lynagh <igloo@earth.li>**20080220171140] |
|---|
| 820 | [CprAnalyse is warning-free |
|---|
| 821 | Ian Lynagh <igloo@earth.li>**20080220170843] |
|---|
| 822 | [Whitespace |
|---|
| 823 | Ian Lynagh <igloo@earth.li>**20080220170650] |
|---|
| 824 | [Fix #1984: missing context switches |
|---|
| 825 | Simon Marlow <simonmar@microsoft.com>**20080219102212] |
|---|
| 826 | [fix unregisterised stage 2 build |
|---|
| 827 | Simon Marlow <simonmar@microsoft.com>**20080219093407] |
|---|
| 828 | [Mac OS X deployment target: piping opts through Makefiles |
|---|
| 829 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080221224449] |
|---|
| 830 | [Rewrite fixTvSubstEnv so it iteratively applies its substition |
|---|
| 831 | Ian Lynagh <igloo@earth.li>**20080220153752 |
|---|
| 832 | This fixes a stack overflow when using strict UniqFMs. It might be |
|---|
| 833 | possible to rewrite it more efficiently, or to avoid needing it in the |
|---|
| 834 | first place. |
|---|
| 835 | ] |
|---|
| 836 | [Typo |
|---|
| 837 | Ian Lynagh <igloo@earth.li>**20080219204117] |
|---|
| 838 | [Make some more modules use LazyUniqFM instead of UniqFM |
|---|
| 839 | Ian Lynagh <igloo@earth.li>*-20080207015714 |
|---|
| 840 | If these modules use UniqFM then we get a stack overflow when compiling |
|---|
| 841 | modules that use fundeps. I haven't tracked down the actual cause. |
|---|
| 842 | ] |
|---|
| 843 | [Add configure option --with-macos-deployment-target |
|---|
| 844 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080219031755] |
|---|
| 845 | [Fix warning in SCCfinal |
|---|
| 846 | Ian Lynagh <igloo@earth.li>**20080219020429] |
|---|
| 847 | [Whitespace only |
|---|
| 848 | Ian Lynagh <igloo@earth.li>**20080219015259] |
|---|
| 849 | [Fix warnings in UniqSupply |
|---|
| 850 | Ian Lynagh <igloo@earth.li>**20080219013233] |
|---|
| 851 | [Whitespace only |
|---|
| 852 | Ian Lynagh <igloo@earth.li>**20080219012417] |
|---|
| 853 | [Fix non-missing-signature warnings in MkId |
|---|
| 854 | Ian Lynagh <igloo@earth.li>**20080219010917] |
|---|
| 855 | [Whitespace only |
|---|
| 856 | Ian Lynagh <igloo@earth.li>**20080219005042] |
|---|
| 857 | [Whitespace only |
|---|
| 858 | Ian Lynagh <igloo@earth.li>**20080218234559] |
|---|
| 859 | [Make literals in the syntax tree strict |
|---|
| 860 | Ian Lynagh <igloo@earth.li>**20080218183424] |
|---|
| 861 | [Make the parser a bit stricter |
|---|
| 862 | Ian Lynagh <igloo@earth.li>**20080218175514] |
|---|
| 863 | [seq what we actually want to seq, not the seq'ing function |
|---|
| 864 | Ian Lynagh <igloo@earth.li>**20080213131857] |
|---|
| 865 | [attempt to fix #2098 (PPC pepple please test & fix) |
|---|
| 866 | Simon Marlow <simonmar@microsoft.com>**20080218115748] |
|---|
| 867 | [FIX #2023: substitute for $topdir in haddockInterfaces and haddockHTMLs |
|---|
| 868 | Simon Marlow <simonmar@microsoft.com>**20080209143648] |
|---|
| 869 | [All installed Haskell prgms have an inplace and an installed version |
|---|
| 870 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080218061809 |
|---|
| 871 | - GHC installs a range of compiled Haskell programs in addition to the actual |
|---|
| 872 | compiler. To ensure that they all run on the platform targeted by the build |
|---|
| 873 | (which may have different libraries installed than the build host), we need |
|---|
| 874 | to make sure that all compiled Haskell code going into an install is build |
|---|
| 875 | with the stage 1 compiler, not the bootstrap compiler. Getting this right |
|---|
| 876 | is especially important on the Mac to enable builds that work on Mac OS X |
|---|
| 877 | versions that are older than the one performing the build. |
|---|
| 878 | - For all installed utils implemented in Haskell (i.e., ghc-pkg, hasktags, |
|---|
| 879 | hsc2hs, runghc, hpc, and pwd) we compile two versions, an inplace version |
|---|
| 880 | and a version for installation. The former is build by the bootstrap |
|---|
| 881 | compiler during the stage 1 build and the latter is build by the stage 1 |
|---|
| 882 | compiler during the stage 2 build. |
|---|
| 883 | - This is really very much as the setup for ghc itself, only that we don't use |
|---|
| 884 | separate stage1/ and stage2/ build directories. Instead, we clean before |
|---|
| 885 | each build. CAVEAT: This only works properly if invoked from the |
|---|
| 886 | toplevel Makefile. |
|---|
| 887 | - Instead of UseStage1=YES (as used by the previous binary-dist-specific |
|---|
| 888 | recompilation), we now use the same $(stage) variables as used for the |
|---|
| 889 | compiler proper - to increase uniformity and to avoid extra conditionals for |
|---|
| 890 | the install target. |
|---|
| 891 | ] |
|---|
| 892 | [Fix warnings in Pretty |
|---|
| 893 | Ian Lynagh <igloo@earth.li>**20080218214151] |
|---|
| 894 | [Fix warnings in FiniteMap |
|---|
| 895 | Ian Lynagh <igloo@earth.li>**20080218200408] |
|---|
| 896 | [Fix warnings in Binary |
|---|
| 897 | Ian Lynagh <igloo@earth.li>**20080218193645] |
|---|
| 898 | [Fix warnings in StringBuffer |
|---|
| 899 | Ian Lynagh <igloo@earth.li>**20080218191846] |
|---|
| 900 | [Fix warnings in IOEnv |
|---|
| 901 | Ian Lynagh <igloo@earth.li>**20080218190849] |
|---|
| 902 | [Fix warnings in FastString, and check for empty case in head/tail |
|---|
| 903 | Ian Lynagh <igloo@earth.li>**20080218144707] |
|---|
| 904 | [Whitespace only |
|---|
| 905 | Ian Lynagh <igloo@earth.li>**20080218112232] |
|---|
| 906 | [Whitespace only |
|---|
| 907 | Ian Lynagh <igloo@earth.li>**20080218112101] |
|---|
| 908 | [Whitespace only |
|---|
| 909 | Ian Lynagh <igloo@earth.li>**20080218111941] |
|---|
| 910 | [Whitespace only |
|---|
| 911 | Ian Lynagh <igloo@earth.li>**20080218110241] |
|---|
| 912 | [Whitespace only |
|---|
| 913 | Ian Lynagh <igloo@earth.li>**20080218105909] |
|---|
| 914 | [Whitespace only |
|---|
| 915 | Ian Lynagh <igloo@earth.li>**20080218105343] |
|---|
| 916 | [Tweak whitespace |
|---|
| 917 | Ian Lynagh <igloo@earth.li>**20080217175133] |
|---|
| 918 | [Fix typo |
|---|
| 919 | Ian Lynagh <igloo@earth.li>**20080217175021] |
|---|
| 920 | [Print better error message for reading External Core |
|---|
| 921 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080217223844 |
|---|
| 922 | |
|---|
| 923 | GHC panicked with a "Prelude.undefined" error message if you tried to |
|---|
| 924 | compile a .hcr file. Since support for reading ExternalCore simply does |
|---|
| 925 | not exist, I added an error message to say that. |
|---|
| 926 | |
|---|
| 927 | Please merge to 6.8. Thanks. |
|---|
| 928 | |
|---|
| 929 | ] |
|---|
| 930 | [Documentation only: update External Core section of user guide |
|---|
| 931 | Tim Chevalier <chevalier@alum.wellesley.edu>**20080217213206 |
|---|
| 932 | |
|---|
| 933 | I updated the External Core section of the user guide, mostly to reflect |
|---|
| 934 | that the input path is broken and there are no firm plans to fix it. |
|---|
| 935 | ] |
|---|
| 936 | [Generate foo(void) rather than foo() in FFI stub files |
|---|
| 937 | Ian Lynagh <igloo@earth.li>**20080216141031 |
|---|
| 938 | -Wstrict-prototypes warns about the latter. |
|---|
| 939 | Patch from pcc in trac #2100. |
|---|
| 940 | ] |
|---|
| 941 | [Make hasktags -Wall clean |
|---|
| 942 | Ian Lynagh <igloo@earth.li>**20080215160309] |
|---|
| 943 | [Whitespace only |
|---|
| 944 | Ian Lynagh <igloo@earth.li>**20080215155122] |
|---|
| 945 | [Fix building hasktags |
|---|
| 946 | Ian Lynagh <igloo@earth.li>**20080215154415] |
|---|
| 947 | [Revert an accidental comment change |
|---|
| 948 | Ian Lynagh <igloo@earth.li>**20080215153558] |
|---|
| 949 | [find module names, fix for get constructor names, find class names as well, sort ctag files |
|---|
| 950 | marco-oweber@gmx.de**20080212232157] |
|---|
| 951 | [added TODO item and link to alternatives on wiki |
|---|
| 952 | marco-oweber@gmx.de**20080212231853] |
|---|
| 953 | [Make more arch-specific #if's exclusive with #else #error cases |
|---|
| 954 | Duncan Coutts <duncan@haskell.org>**20080207170020 |
|---|
| 955 | So when the next person compiles the Sparc NCG it should fail more |
|---|
| 956 | obviously at compile time rather than panicing at runtime. |
|---|
| 957 | Plus one obvious fix for LocalReg gaining an extra param |
|---|
| 958 | Missing bits of Sparc NCG: |
|---|
| 959 | * genSwitch for generating jump tables. This is the most tricky one. |
|---|
| 960 | * ALLOCATABLE_REGS_INTEGER and ALLOCATABLE_REGS_DOUBLE just requires |
|---|
| 961 | finding and verifying the values. The nearby comment describes how. |
|---|
| 962 | * isRegRegMove and mkRegRegMoveInstr. Sparc uses Or for int move, check |
|---|
| 963 | what this is supposed to do for single and double float types. |
|---|
| 964 | * regDotColor. Probably just copy the ppc impl. |
|---|
| 965 | ] |
|---|
| 966 | [Document code a bit better |
|---|
| 967 | Ian Lynagh <igloo@earth.li>**20080213161106] |
|---|
| 968 | [Add a necessary [] error case |
|---|
| 969 | Ian Lynagh <igloo@earth.li>**20080213154232] |
|---|
| 970 | [\e -> f e ===> f |
|---|
| 971 | Ian Lynagh <igloo@earth.li>**20080213153835] |
|---|
| 972 | [Fixed warnings in parser/Lexer.x |
|---|
| 973 | Twan van Laarhoven <twanvl@gmail.com>**20080204021131 |
|---|
| 974 | |
|---|
| 975 | The -w flag can not be removed, because alex also generates code with lots of warnings. |
|---|
| 976 | ] |
|---|
| 977 | [Monadification and Fixed warnings in parser/RdrHsSyn, except for incomplete pattern matches |
|---|
| 978 | Twan van Laarhoven <twanvl@gmail.com>**20080204015053] |
|---|
| 979 | [Fixed warnings in vectorise/VectMonad |
|---|
| 980 | Twan van Laarhoven <twanvl@gmail.com>**20080203223932] |
|---|
| 981 | [Fix typo in message |
|---|
| 982 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080212052219] |
|---|
| 983 | [Remove old code to get TMPDIR, use System.Directory.getTemporaryDirectory |
|---|
| 984 | Simon Marlow <simonmar@microsoft.com>**20080207143915] |
|---|
| 985 | [Mac installer: Added XCODE_EXTRA_CONFIGURE_ARGS |
|---|
| 986 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211115201] |
|---|
| 987 | [Mac installer: make Uninstaller a bit more robust |
|---|
| 988 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211091119] |
|---|
| 989 | [Mac installer: add comprehensive licencing information |
|---|
| 990 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211061450] |
|---|
| 991 | [Force -s on ar in xcode builds |
|---|
| 992 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080211022329] |
|---|
| 993 | [Fix warning (FIX validate) |
|---|
| 994 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211040211] |
|---|
| 995 | [Symbolic tags for simplifier phases |
|---|
| 996 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211032350 |
|---|
| 997 | |
|---|
| 998 | Every simplifier phase can have an arbitrary number of tags and multiple |
|---|
| 999 | phases can share the same tags. The tags can be used as arguments to |
|---|
| 1000 | -ddump-simpl-phases to specify which phases are to be dumped. |
|---|
| 1001 | For instance, -ddump-simpl-phases=main will dump the output of phases 2, 1 and |
|---|
| 1002 | 0 of the initial simplifier run (they all share the "main" tag) while |
|---|
| 1003 | -ddump-simpl-phases=main:0 will dump only the output of phase 0 of that run. |
|---|
| 1004 | |
|---|
| 1005 | At the moment, the supported tags are: |
|---|
| 1006 | |
|---|
| 1007 | main The main, staged simplifier run (before strictness) |
|---|
| 1008 | post-worker-wrapper After the w/w split |
|---|
| 1009 | post-liberate-case After LiberateCase |
|---|
| 1010 | final Final clean-up run |
|---|
| 1011 | |
|---|
| 1012 | The names are somewhat arbitrary and will change in the future. |
|---|
| 1013 | ] |
|---|
| 1014 | [Allow -ddump-simpl-phases to specify which phases to dump |
|---|
| 1015 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080211020630 |
|---|
| 1016 | |
|---|
| 1017 | We can now say -ddump-simpl-phases=1,2 to dump only these two phases and |
|---|
| 1018 | nothing else. |
|---|
| 1019 | ] |
|---|
| 1020 | [Fixed warnings in parser/ParserCoreUtils |
|---|
| 1021 | Twan van Laarhoven <twanvl@gmail.com>**20080204022226] |
|---|
| 1022 | [Fixed warnings in hsSyn/Convert, except for incomplete pattern matches |
|---|
| 1023 | Twan van Laarhoven <twanvl@gmail.com>**20080204000510] |
|---|
| 1024 | [Fixed warnings in types/Unify |
|---|
| 1025 | Twan van Laarhoven <twanvl@gmail.com>**20080203224228] |
|---|
| 1026 | [Fixed warnings in ndpFlatten/FlattenInfo |
|---|
| 1027 | Twan van Laarhoven <twanvl@gmail.com>**20080203224159] |
|---|
| 1028 | [Fixed warnings in vectorise/VectBuiltIn |
|---|
| 1029 | Twan van Laarhoven <twanvl@gmail.com>**20080203224043] |
|---|
| 1030 | [Fixed warnings in vectorise/VectCore |
|---|
| 1031 | Twan van Laarhoven <twanvl@gmail.com>**20080203224003] |
|---|
| 1032 | [Fixed warnings in deSugar/DsExpr, except for incomplete pattern matches |
|---|
| 1033 | Twan van Laarhoven <twanvl@gmail.com>**20080203214848] |
|---|
| 1034 | [Fixed warnings in deSugar/DsGRHSs, except for incomplete pattern matches |
|---|
| 1035 | Twan van Laarhoven <twanvl@gmail.com>**20080203214602] |
|---|
| 1036 | [Fixed warnings in deSugar/DsListComp, except for incomplete pattern matches |
|---|
| 1037 | Twan van Laarhoven <twanvl@gmail.com>**20080203211253] |
|---|
| 1038 | [Fixed warnings in deSugar/Check, except for incomplete pattern matches |
|---|
| 1039 | Twan van Laarhoven <twanvl@gmail.com>**20080203210814] |
|---|
| 1040 | [Fixed warnings in deSugar/Match, except for incomplete pattern matches |
|---|
| 1041 | Twan van Laarhoven <twanvl@gmail.com>**20080203210533] |
|---|
| 1042 | [Fixed warnings in deSugar/MatchCon, except for incomplete pattern matches |
|---|
| 1043 | Twan van Laarhoven <twanvl@gmail.com>**20080203210402] |
|---|
| 1044 | [Fixed warnings in deSugar/DsMonad |
|---|
| 1045 | Twan van Laarhoven <twanvl@gmail.com>**20080203210339] |
|---|
| 1046 | [Wibble the Makefile: DQ, \" and '"' |
|---|
| 1047 | Ian Lynagh <igloo@earth.li>**20080210171104] |
|---|
| 1048 | [Don't use -w when compiling Config.hs |
|---|
| 1049 | Ian Lynagh <igloo@earth.li>**20080210171050] |
|---|
| 1050 | [Add typesigs to Config.hs |
|---|
| 1051 | Ian Lynagh <igloo@earth.li>**20080210170925] |
|---|
| 1052 | [Allow skipping "make clean" or only re-running the testsuite in validate |
|---|
| 1053 | Ian Lynagh <igloo@earth.li>**20080210162842] |
|---|
| 1054 | [Mac installer: added support for full docs |
|---|
| 1055 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080209110727] |
|---|
| 1056 | [Fixed permissions and other cleanup in Mac installer package |
|---|
| 1057 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080207030528] |
|---|
| 1058 | [Adjust error message (Trac #2079) |
|---|
| 1059 | simonpj@microsoft.com**20080207171622] |
|---|
| 1060 | [Redo inlining patch, plus some tidying up |
|---|
| 1061 | simonpj@microsoft.com**20080207155102 |
|---|
| 1062 | |
|---|
| 1063 | This adds back in the patch |
|---|
| 1064 | * UNDO: Be a little keener to inline |
|---|
| 1065 | |
|---|
| 1066 | It originally broke the compiler because it tickled a Cmm optimisation bug, |
|---|
| 1067 | now fixed. |
|---|
| 1068 | |
|---|
| 1069 | In revisiting this I have also make inlining a bit cleverer, in response to |
|---|
| 1070 | more examples from Roman. In particular |
|---|
| 1071 | |
|---|
| 1072 | * CoreUnfold.CallCtxt is a data type that tells something about |
|---|
| 1073 | the context of a call. The new feature is that if the context is |
|---|
| 1074 | the argument position of a function call, we record both |
|---|
| 1075 | - whether the function (or some higher up function) has rules |
|---|
| 1076 | - what the argument discount in that position is |
|---|
| 1077 | Either of these make functions keener to inline, even if it's |
|---|
| 1078 | in a lazy position |
|---|
| 1079 | |
|---|
| 1080 | * There was conseqential tidying up on the data type of CallCont. |
|---|
| 1081 | In particular I got rid of the now-unused LetRhsFlag |
|---|
| 1082 | |
|---|
| 1083 | |
|---|
| 1084 | |
|---|
| 1085 | ] |
|---|
| 1086 | [Comments, and a type signature |
|---|
| 1087 | simonpj@microsoft.com**20080125174203] |
|---|
| 1088 | [FIX #2080: an optimisation to remove a widening was wrong |
|---|
| 1089 | Simon Marlow <simonmar@microsoft.com>**20080208124219] |
|---|
| 1090 | [Remove some of the old compat stuff now that we assume GHC 6.4 |
|---|
| 1091 | Simon Marlow <simonmar@microsoft.com>**20080208124132] |
|---|
| 1092 | [Allow runghc to take input from stdin, just like Ruby & Python |
|---|
| 1093 | Simon Marlow <simonmar@microsoft.com>**20080207145830] |
|---|
| 1094 | [remove a bogus assertion |
|---|
| 1095 | Simon Marlow <simonmar@microsoft.com>**20080207143805] |
|---|
| 1096 | [Convert more UniqFM's back to LazyUniqFM's |
|---|
| 1097 | Ian Lynagh <igloo@earth.li>**20080207144736 |
|---|
| 1098 | These fix these failures: |
|---|
| 1099 | break008(ghci) |
|---|
| 1100 | break009(ghci) |
|---|
| 1101 | break026(ghci) |
|---|
| 1102 | ghci.prog009(ghci) |
|---|
| 1103 | ghci025(ghci) |
|---|
| 1104 | print007(ghci) |
|---|
| 1105 | prog001(ghci) |
|---|
| 1106 | prog002(ghci) |
|---|
| 1107 | prog003(ghci) |
|---|
| 1108 | at least some of which have this symptom: |
|---|
| 1109 | Exception: expectJust prune |
|---|
| 1110 | ] |
|---|
| 1111 | [Be a bit more consistent about what's a set and what's a map |
|---|
| 1112 | Ian Lynagh <igloo@earth.li>**20080205211909] |
|---|
| 1113 | [Make some more modules use LazyUniqFM instead of UniqFM |
|---|
| 1114 | Ian Lynagh <igloo@earth.li>**20080207015714 |
|---|
| 1115 | If these modules use UniqFM then we get a stack overflow when compiling |
|---|
| 1116 | modules that use fundeps. I haven't tracked down the actual cause. |
|---|
| 1117 | ] |
|---|
| 1118 | [Remove unused import |
|---|
| 1119 | Ian Lynagh <igloo@earth.li>**20080207002544] |
|---|
| 1120 | [Make UniqFM strict in its elements |
|---|
| 1121 | Ian Lynagh <igloo@earth.li>**20080206141620] |
|---|
| 1122 | [Use uniqSetToList rather than eltsUFM |
|---|
| 1123 | Ian Lynagh <igloo@earth.li>**20080206000043] |
|---|
| 1124 | [Use isEmptyUniqSet rather than isNullUFM |
|---|
| 1125 | Ian Lynagh <igloo@earth.li>**20080205205336] |
|---|
| 1126 | [Added Uninstaller |
|---|
| 1127 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080206073054] |
|---|
| 1128 | [FIX BUILD on x86_64 |
|---|
| 1129 | Simon Marlow <simonmar@microsoft.com>**20080206113936] |
|---|
| 1130 | [matchesPkg: match against the pkg Id (foo-1.0) not just the package name (foo) |
|---|
| 1131 | Simon Marlow <simonmar@microsoft.com>**20080205090429 |
|---|
| 1132 | Fixes the ghcpkg01 test. |
|---|
| 1133 | ] |
|---|
| 1134 | [Teach cheapEqExpr about casts |
|---|
| 1135 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080206035007 |
|---|
| 1136 | |
|---|
| 1137 | Previously, cheapEqExpr would always return False if it encountered a cast. |
|---|
| 1138 | This was bad for two reasons. Firstly, CSE (which uses cheapEqExpr to compare |
|---|
| 1139 | expressions) never eliminated expressions which contained casts and secondly, |
|---|
| 1140 | it was inconsistent with exprIsBig. This patch fixes this. |
|---|
| 1141 | ] |
|---|
| 1142 | [Inject implicit bindings before the simplifier (Trac #2070) |
|---|
| 1143 | simonpj@microsoft.com**20080205165507 |
|---|
| 1144 | |
|---|
| 1145 | With constructor unpacking, it's possible for constructors and record |
|---|
| 1146 | selectors to have non-trivial code, which should be optimised before |
|---|
| 1147 | being fed to the code generator. Example: |
|---|
| 1148 | |
|---|
| 1149 | data Foo = Foo { get :: {-# UNPACK #-} !Int } |
|---|
| 1150 | |
|---|
| 1151 | Then we do not want to get this: |
|---|
| 1152 | T2070.get = |
|---|
| 1153 | \ (tpl_B1 :: T2070.Foo) -> |
|---|
| 1154 | case tpl_B1 of tpl1_B2 { T2070.Foo rb_B4 -> |
|---|
| 1155 | let { |
|---|
| 1156 | ipv_B3 [Just S] :: GHC.Base.Int |
|---|
| 1157 | [Str: DmdType m] |
|---|
| 1158 | ipv_B3 = GHC.Base.I# rb_B4 |
|---|
| 1159 | } in ipv_B3 } |
|---|
| 1160 | |
|---|
| 1161 | If this goes through to codegen, we'll generate bad code. Admittedly, |
|---|
| 1162 | this only matters when the selector is used in a curried way (e.g |
|---|
| 1163 | map get xs), but nevertheless it's silly. |
|---|
| 1164 | |
|---|
| 1165 | This patch injects the implicit bindings in SimplCore, before the |
|---|
| 1166 | simplifier runs. That slows the simplifier a little, because it has |
|---|
| 1167 | to look at some extra bindings; but it's probably a slight effect. |
|---|
| 1168 | If it turns out to matter I suppose we can always inject them later, |
|---|
| 1169 | e.g. just before the final simplification. |
|---|
| 1170 | |
|---|
| 1171 | An unexpected (to me) consequence is that we get some specialisation rules |
|---|
| 1172 | for class-method selectors. E.g. we get a rule |
|---|
| 1173 | RULE (==) Int dInt = eqInt |
|---|
| 1174 | There's no harm in this, but not much benefit either, because the |
|---|
| 1175 | same result will happen when we inline (==) and dInt, but it's perhaps |
|---|
| 1176 | more direct. |
|---|
| 1177 | |
|---|
| 1178 | |
|---|
| 1179 | ] |
|---|
| 1180 | [Make do-notation a bit more flexible (Trac #1537) |
|---|
| 1181 | simonpj@microsoft.com**20080205164816 |
|---|
| 1182 | |
|---|
| 1183 | This is a second attempt to fix #1537: to make the static typechecking |
|---|
| 1184 | of do-notation behave just like the desugared version of the same thing. |
|---|
| 1185 | This should allow parameterised monads to work properly (see Oleg's comment |
|---|
| 1186 | in the above ticket). |
|---|
| 1187 | |
|---|
| 1188 | We can probably merge to 6.8.3 if it goes smoothly. |
|---|
| 1189 | |
|---|
| 1190 | Incidentally, the resulting setup suffers from greater type ambiguity |
|---|
| 1191 | if (>>=) has a very general type. So test rebindable6 no longer works |
|---|
| 1192 | (at least not without more type signatures), and rebindable5 requires |
|---|
| 1193 | extra functional dependencies. But they are weird tests. |
|---|
| 1194 | |
|---|
| 1195 | ] |
|---|
| 1196 | [White space only |
|---|
| 1197 | simonpj@microsoft.com**20080205163702] |
|---|
| 1198 | [FIX #2047: Windows (and older Unixes): align info tables to 4 bytes, not 2 |
|---|
| 1199 | Simon Marlow <simonmar@microsoft.com>**20080205101425 |
|---|
| 1200 | Perhaps in the past '.align 2' meant align to 4 bytes, but nowadays it |
|---|
| 1201 | means align to 2 bytes. The compacting collector requires info tables |
|---|
| 1202 | to be aligned to 4 bytes, because it stores tag bits in the low 2 |
|---|
| 1203 | bits. |
|---|
| 1204 | |
|---|
| 1205 | This only affects -fvia-C - the native code generator was already |
|---|
| 1206 | emitting the correct alignment. The incorrect alignment might well |
|---|
| 1207 | have been adversely affecting performance with -fvia-C on Windows. |
|---|
| 1208 | ] |
|---|
| 1209 | [Most of installer for framework on system volume |
|---|
| 1210 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205073738] |
|---|
| 1211 | [Split into two types of Mac installer specs |
|---|
| 1212 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205052504] |
|---|
| 1213 | [Lambda logo for packages |
|---|
| 1214 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205052017 |
|---|
| 1215 | - This image is in the public domain, cf |
|---|
| 1216 | http://en.wikipedia.org/wiki/Image:Greek_lc_lamda_thin.svg |
|---|
| 1217 | ] |
|---|
| 1218 | [xcode build target for fixed /Library/Frameworks inst |
|---|
| 1219 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080205030047 |
|---|
| 1220 | - Also moving all MacOS-specific Makefile components into |
|---|
| 1221 | distrib/MacOS/Makefile |
|---|
| 1222 | ] |
|---|
| 1223 | [First stab at an installer package for the Mac |
|---|
| 1224 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080202134853 |
|---|
| 1225 | - GHC as a Mac framework |
|---|
| 1226 | - I tried to make a package where the user could choose whether to install |
|---|
| 1227 | in /Library/Frameworks or ~/Library/Frameworks (to allow installation for |
|---|
| 1228 | non-admins). However, that doesn't work well without including the whole |
|---|
| 1229 | distribution twice as the decision as to whether the admin password needs |
|---|
| 1230 | to be entered is made at packaging time (not at install time). |
|---|
| 1231 | ] |
|---|
| 1232 | [Support for using libffi to implement FFI calls in GHCi (#631) |
|---|
| 1233 | Simon Marlow <simonmar@microsoft.com>**20080204161053 |
|---|
| 1234 | This means that an unregisterised build on a platform not directly |
|---|
| 1235 | supported by GHC can now have full FFI support using libffi. |
|---|
| 1236 | |
|---|
| 1237 | Also in this commit: |
|---|
| 1238 | |
|---|
| 1239 | - use PrimRep rather than CgRep to describe FFI args in the byte |
|---|
| 1240 | code generator. No functional changes, but PrimRep is more correct. |
|---|
| 1241 | |
|---|
| 1242 | - change TyCon.sizeofPrimRep to primRepSizeW, which is more useful |
|---|
| 1243 | ] |
|---|
| 1244 | [Use the correct libffi type for pointers |
|---|
| 1245 | Simon Marlow <simonmar@microsoft.com>**20080104131936] |
|---|
| 1246 | [Fix DEBUG build |
|---|
| 1247 | simonpj@microsoft.com**20080204160514] |
|---|
| 1248 | [Make seqAlts actually seq everything |
|---|
| 1249 | Ian Lynagh <igloo@earth.li>**20080203134321] |
|---|
| 1250 | [Strictness tweaks |
|---|
| 1251 | Ian Lynagh <igloo@earth.li>**20080203024836] |
|---|
| 1252 | [Whitespace |
|---|
| 1253 | Ian Lynagh <igloo@earth.li>**20080203003929] |
|---|
| 1254 | [Whitespace only |
|---|
| 1255 | Ian Lynagh <igloo@earth.li>**20080202213936] |
|---|
| 1256 | [Tweak strictness |
|---|
| 1257 | Ian Lynagh <igloo@earth.li>**20080202213542] |
|---|
| 1258 | [Fix warnings in deSugar/DsBinds |
|---|
| 1259 | Ian Lynagh <igloo@earth.li>**20080130144014] |
|---|
| 1260 | [UNDO: Be a little keener to inline |
|---|
| 1261 | Simon Marlow <simonmar@microsoft.com>**20080201144810 |
|---|
| 1262 | |
|---|
| 1263 | This patch caused at least the following test failures: |
|---|
| 1264 | 1744(normal) |
|---|
| 1265 | ghci028(ghci) |
|---|
| 1266 | unicode001(normal) |
|---|
| 1267 | and additionally made the stage3 build fail. |
|---|
| 1268 | |
|---|
| 1269 | A little more validation please! |
|---|
| 1270 | |
|---|
| 1271 | I didn't find the exact cause of the failure yet, but it appears that |
|---|
| 1272 | the Lexer is miscompiled in some strange way. If any of {Encoding, |
|---|
| 1273 | StringBuffer, or Lexer} are compiled without -O, the problem goes |
|---|
| 1274 | away. |
|---|
| 1275 | ] |
|---|
| 1276 | [FIX BUILD with GHC 6.4.x |
|---|
| 1277 | Simon Marlow <simonmar@microsoft.com>**20080201122753] |
|---|
| 1278 | [FIX BUILD with ghc-6.4.x |
|---|
| 1279 | Simon Marlow <simonmar@microsoft.com>**20080201114302] |
|---|
| 1280 | [Some tweaks to the building from source section |
|---|
| 1281 | Simon Marlow <simonmar@microsoft.com>**20080129091132] |
|---|
| 1282 | [Warning clean up |
|---|
| 1283 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080131024845] |
|---|
| 1284 | [Move spiltDmdTy within module (no change in code) |
|---|
| 1285 | simonpj@microsoft.com**20080129011438] |
|---|
| 1286 | [Fix typo where I forgot the new substitution |
|---|
| 1287 | simonpj@microsoft.com**20080128213856] |
|---|
| 1288 | [Add missing (error) case in isIrrefutablePat |
|---|
| 1289 | simonpj@microsoft.com**20080128213429] |
|---|
| 1290 | [Add missing (error) case in pprConDecl |
|---|
| 1291 | simonpj@microsoft.com**20080128213409] |
|---|
| 1292 | [Fix warnings on non-Windows |
|---|
| 1293 | Ian Lynagh <igloo@earth.li>**20080130114640] |
|---|
| 1294 | [Fixed warnings in main/ErrUtils |
|---|
| 1295 | Twan van Laarhoven <twanvl@gmail.com>**20080127015419] |
|---|
| 1296 | [Fixed warnings in main/HeaderInfo, except for incomplete pattern matches |
|---|
| 1297 | Twan van Laarhoven <twanvl@gmail.com>**20080127014118] |
|---|
| 1298 | [Fixed warnings in main/DynFlags |
|---|
| 1299 | Twan van Laarhoven <twanvl@gmail.com>**20080127012443] |
|---|
| 1300 | [Fixed warnings in hsSyn/HsSyn |
|---|
| 1301 | Twan van Laarhoven <twanvl@gmail.com>**20080127004626] |
|---|
| 1302 | [Fixed warnings in hsSyn/HsUtils |
|---|
| 1303 | Twan van Laarhoven <twanvl@gmail.com>**20080127004506] |
|---|
| 1304 | [Fixed warnings in hsSyn/HsTypes |
|---|
| 1305 | Twan van Laarhoven <twanvl@gmail.com>**20080127004419] |
|---|
| 1306 | [Fixed warnings in hsSyn/HsDoc |
|---|
| 1307 | Twan van Laarhoven <twanvl@gmail.com>**20080127004359] |
|---|
| 1308 | [Fixed warnings in hsSyn/HsLit |
|---|
| 1309 | Twan van Laarhoven <twanvl@gmail.com>**20080127004330] |
|---|
| 1310 | [Fixed warnings in hsSyn/HsImpExp, except for incomplete pattern matches |
|---|
| 1311 | Twan van Laarhoven <twanvl@gmail.com>**20080127004254] |
|---|
| 1312 | [Fixed warnings in hsSyn/HsPat, except for incomplete pattern matches |
|---|
| 1313 | Twan van Laarhoven <twanvl@gmail.com>**20080127004209] |
|---|
| 1314 | [Fixed warnings in hsSyn/HsBinds, except for incomplete pattern matches |
|---|
| 1315 | Twan van Laarhoven <twanvl@gmail.com>**20080127004119] |
|---|
| 1316 | [Fixed warnings in hsSyn/HsDecls, except for incomplete pattern matches |
|---|
| 1317 | Twan van Laarhoven <twanvl@gmail.com>**20080127004046] |
|---|
| 1318 | [Fixed warnings in simplCore/CSE |
|---|
| 1319 | Twan van Laarhoven <twanvl@gmail.com>**20080126233918] |
|---|
| 1320 | [Fixed warnings in profiling/CostCentre, except for incomplete pattern matches |
|---|
| 1321 | Twan van Laarhoven <twanvl@gmail.com>**20080126232841] |
|---|
| 1322 | [Fixed warnings in types/InstEnv |
|---|
| 1323 | Twan van Laarhoven <twanvl@gmail.com>**20080126231732] |
|---|
| 1324 | [Fixed warnings in types/FamInstEnv |
|---|
| 1325 | Twan van Laarhoven <twanvl@gmail.com>**20080126231426] |
|---|
| 1326 | [Fixed warnings in simplStg/SRT, except for incomplete pattern matches |
|---|
| 1327 | Twan van Laarhoven <twanvl@gmail.com>**20080126230900] |
|---|
| 1328 | [Fixed warnings in simplStg/StgStats, except for incomplete pattern matches |
|---|
| 1329 | Twan van Laarhoven <twanvl@gmail.com>**20080126230830] |
|---|
| 1330 | [Fixed warnings in simplStg/SimplStg |
|---|
| 1331 | Twan van Laarhoven <twanvl@gmail.com>**20080126230805] |
|---|
| 1332 | [Fixed warnings in vectorise/VectUtils |
|---|
| 1333 | Twan van Laarhoven <twanvl@gmail.com>**20080126223033] |
|---|
| 1334 | [Fixed warnings in types/Generics |
|---|
| 1335 | Twan van Laarhoven <twanvl@gmail.com>**20080126222817] |
|---|
| 1336 | [Fixed warnings in stgSyn/StgSyn |
|---|
| 1337 | Twan van Laarhoven <twanvl@gmail.com>**20080126221010] |
|---|
| 1338 | [Fixed warnings in types/TyCon |
|---|
| 1339 | Twan van Laarhoven <twanvl@gmail.com>**20080126215800] |
|---|
| 1340 | [Fixed warnings in types/Type, except for incomplete pattern matches |
|---|
| 1341 | Twan van Laarhoven <twanvl@gmail.com>**20080126214126] |
|---|
| 1342 | [Fixed warnings in types/TypeRep |
|---|
| 1343 | Twan van Laarhoven <twanvl@gmail.com>**20080126211722] |
|---|
| 1344 | [Fixed warnings in types/FunDeps |
|---|
| 1345 | Twan van Laarhoven <twanvl@gmail.com>**20080126203050] |
|---|
| 1346 | [Fixed warnings in basicTypes/OccName |
|---|
| 1347 | Twan van Laarhoven <twanvl@gmail.com>**20080126202737] |
|---|
| 1348 | [Fixed warnings in basicTypes/RdrName |
|---|
| 1349 | Twan van Laarhoven <twanvl@gmail.com>**20080126202104] |
|---|
| 1350 | [Fixed warnings in utils/Encoding |
|---|
| 1351 | Twan van Laarhoven <twanvl@gmail.com>**20080126201235] |
|---|
| 1352 | [Fixed warnings in utils/Digraph |
|---|
| 1353 | Twan van Laarhoven <twanvl@gmail.com>**20080126200754] |
|---|
| 1354 | [Fixed warnings in basicTypes/Demand |
|---|
| 1355 | Twan van Laarhoven <twanvl@gmail.com>**20080126195929] |
|---|
| 1356 | [Fixed warnings in basicTypes/Unique |
|---|
| 1357 | Twan van Laarhoven <twanvl@gmail.com>**20080126195459] |
|---|
| 1358 | [Fixed warnings in coreSyn/ExternalCore |
|---|
| 1359 | Twan van Laarhoven <twanvl@gmail.com>**20080126194759] |
|---|
| 1360 | [Fixed warnings in simplCore/OccurAnal |
|---|
| 1361 | Twan van Laarhoven <twanvl@gmail.com>**20080126194426] |
|---|
| 1362 | [Fixed warnings in basicTypes/BasicTypes |
|---|
| 1363 | Twan van Laarhoven <twanvl@gmail.com>**20080126194255] |
|---|
| 1364 | [Fixed warnings in basicTypes/Literal, except for incomplete pattern matches |
|---|
| 1365 | Twan van Laarhoven <twanvl@gmail.com>**20080126193209] |
|---|
| 1366 | [Fixed warnings in basicTypes/Id |
|---|
| 1367 | Twan van Laarhoven <twanvl@gmail.com>**20080126192817] |
|---|
| 1368 | [Fixed warnings in basicTypes/Var |
|---|
| 1369 | Twan van Laarhoven <twanvl@gmail.com>**20080126191939] |
|---|
| 1370 | [Fixed warnings in basicTypes/Name |
|---|
| 1371 | Twan van Laarhoven <twanvl@gmail.com>**20080126191501] |
|---|
| 1372 | [Fixed warnings in types/Coercion, except for incomplete pattern matches |
|---|
| 1373 | Twan van Laarhoven <twanvl@gmail.com>**20080126190735] |
|---|
| 1374 | [Fixed warnings in coreSyn/MkExternalCore, except for incomplete pattern matches |
|---|
| 1375 | Twan van Laarhoven <twanvl@gmail.com>**20080126012807] |
|---|
| 1376 | [Fixed warnings in coreSyn/PprExternalCore |
|---|
| 1377 | Twan van Laarhoven <twanvl@gmail.com>**20080125162418] |
|---|
| 1378 | [Fixed warnings in coreSyn/CoreUtils, except for incomplete pattern matches |
|---|
| 1379 | Twan van Laarhoven <twanvl@gmail.com>**20080125161800] |
|---|
| 1380 | [Fixed warnings in coreSyn/CoreUnfold |
|---|
| 1381 | Twan van Laarhoven <twanvl@gmail.com>**20080125161308] |
|---|
| 1382 | [Fixed warnings in coreSyn/CorePrep |
|---|
| 1383 | Twan van Laarhoven <twanvl@gmail.com>**20080125161051] |
|---|
| 1384 | [Fixed warnings in coreSyn/CoreSubst |
|---|
| 1385 | Twan van Laarhoven <twanvl@gmail.com>**20080125161002] |
|---|
| 1386 | [Fixed warnings in coreSyn/CoreLint |
|---|
| 1387 | Twan van Laarhoven <twanvl@gmail.com>**20080125160809] |
|---|
| 1388 | [Fixed warnings in coreSyn/CoreFVs, except for incomplete pattern matches |
|---|
| 1389 | Twan van Laarhoven <twanvl@gmail.com>**20080125160716] |
|---|
| 1390 | [Fixed warnings in types/Class |
|---|
| 1391 | Twan van Laarhoven <twanvl@gmail.com>**20080125160438] |
|---|
| 1392 | [Fix warnings in coreSyn/CoreTidy |
|---|
| 1393 | Twan van Laarhoven <twanvl@gmail.com>**20080118165559] |
|---|
| 1394 | [Fix warnings in coreSyn/CoreSyn |
|---|
| 1395 | Twan van Laarhoven <twanvl@gmail.com>**20080118165506] |
|---|
| 1396 | [Strictness tweaks |
|---|
| 1397 | Ian Lynagh <igloo@earth.li>**20080125174347] |
|---|
| 1398 | [Parser tweak |
|---|
| 1399 | Ian Lynagh <igloo@earth.li>**20080125145847] |
|---|
| 1400 | [A couple more parser tweaks |
|---|
| 1401 | Ian Lynagh <igloo@earth.li>**20080125143421] |
|---|
| 1402 | [Make comb[234] strict |
|---|
| 1403 | Ian Lynagh <igloo@earth.li>**20080124183149] |
|---|
| 1404 | [Strictness tweaks |
|---|
| 1405 | Ian Lynagh <igloo@earth.li>**20080124183142] |
|---|
| 1406 | [Tell happy to be strict |
|---|
| 1407 | Ian Lynagh <igloo@earth.li>**20080124165214] |
|---|
| 1408 | [Make the Parser Monad's return strict |
|---|
| 1409 | Ian Lynagh <igloo@earth.li>**20080124155827] |
|---|
| 1410 | [Get a bit of sharing |
|---|
| 1411 | Ian Lynagh <igloo@earth.li>**20080124152000] |
|---|
| 1412 | [Make sL strict in /both/ arguments to L |
|---|
| 1413 | Ian Lynagh <igloo@earth.li>**20080124151223] |
|---|
| 1414 | [A touch more strictness in the parser |
|---|
| 1415 | Ian Lynagh <igloo@earth.li>**20080124150137] |
|---|
| 1416 | [Add a bit of strictness to the parser |
|---|
| 1417 | Ian Lynagh <igloo@earth.li>**20080124145311] |
|---|
| 1418 | [Use nilFS |
|---|
| 1419 | Ian Lynagh <igloo@earth.li>**20080123211917] |
|---|
| 1420 | [Whitespace only |
|---|
| 1421 | Ian Lynagh <igloo@earth.li>**20080123174153] |
|---|
| 1422 | [Fix #2062: foldr1 problem in hpc tool |
|---|
| 1423 | andy@galois.com**20080126210607] |
|---|
| 1424 | [Fix do-notation so that it works with -DDEBUG |
|---|
| 1425 | simonpj@microsoft.com**20080125163101] |
|---|
| 1426 | [Be a little keener to inline |
|---|
| 1427 | simonpj@microsoft.com**20080125104616 |
|---|
| 1428 | |
|---|
| 1429 | This is really a bug. A saturated call in an "interesting" context |
|---|
| 1430 | should inline, but there was a strange "n_val_args > 0" condition, which |
|---|
| 1431 | was stopping it. Reported by Roman. |
|---|
| 1432 | |
|---|
| 1433 | |
|---|
| 1434 | ] |
|---|
| 1435 | [Fix the build |
|---|
| 1436 | Ian Lynagh <igloo@earth.li>**20080124141800 |
|---|
| 1437 | Work around various problems caused by some of the monadification patches |
|---|
| 1438 | not being applied. |
|---|
| 1439 | ] |
|---|
| 1440 | [Replace ioToTcRn with liftIO |
|---|
| 1441 | Twan van Laarhoven <twanvl@gmail.com>**20080117220553] |
|---|
| 1442 | [Remove unused custom versions of monad combinators from IOEnv |
|---|
| 1443 | Twan van Laarhoven <twanvl@gmail.com>**20080117215835] |
|---|
| 1444 | [Remove unused custom versions of monad combinators from UniqSupply |
|---|
| 1445 | Twan van Laarhoven <twanvl@gmail.com>**20080117215752] |
|---|
| 1446 | [Replace remaining uses of ioToIOEnv by liftIO, remove ioToIOEnv |
|---|
| 1447 | Twan van Laarhoven <twanvl@gmail.com>**20080117215233] |
|---|
| 1448 | [Monadify iface/BuildTyCl: use return |
|---|
| 1449 | Twan van Laarhoven <twanvl@gmail.com>**20080117215036] |
|---|
| 1450 | [Monadify iface/TcIface: use do, return, applicative, standard monad functions |
|---|
| 1451 | Twan van Laarhoven <twanvl@gmail.com>**20080117214938] |
|---|
| 1452 | [Monadify iface/MkIface: use do, return and standard monad functions |
|---|
| 1453 | Twan van Laarhoven <twanvl@gmail.com>**20080117214441] |
|---|
| 1454 | [Monadify iface/LoadIface: use return and liftIO |
|---|
| 1455 | Twan van Laarhoven <twanvl@gmail.com>**20080117214233] |
|---|
| 1456 | [Monadify iface/IfaceEnv: use do, return and standard monad functions |
|---|
| 1457 | Twan van Laarhoven <twanvl@gmail.com>**20080117214041] |
|---|
| 1458 | [Monadify typecheck/TcRnMonad: use return, standard monad functions and liftIO |
|---|
| 1459 | Twan van Laarhoven <twanvl@gmail.com>**20080117213850] |
|---|
| 1460 | [Monadify typecheck/TcEnv: use do, return, applicative, standard monad functions |
|---|
| 1461 | Twan van Laarhoven <twanvl@gmail.com>**20080117213636] |
|---|
| 1462 | [Monadify typecheck/TcRnDriver: use return and standard monad functions |
|---|
| 1463 | Twan van Laarhoven <twanvl@gmail.com>**20080117213352] |
|---|
| 1464 | [Monadify typecheck/TcMatches: use return and standard monad functions |
|---|
| 1465 | Twan van Laarhoven <twanvl@gmail.com>**20080117213307] |
|---|
| 1466 | [Monadify typecheck/TcMType: use do, return, applicative, standard monad functions |
|---|
| 1467 | Twan van Laarhoven <twanvl@gmail.com>**20080117213242] |
|---|
| 1468 | [Monadify typecheck/TcInstDcls: use do, return and standard monad functions |
|---|
| 1469 | Twan van Laarhoven <twanvl@gmail.com>**20080117213040] |
|---|
| 1470 | [Monadify typecheck/TcHsType: use do, return and standard monad functions |
|---|
| 1471 | Twan van Laarhoven <twanvl@gmail.com>**20080117212822] |
|---|
| 1472 | [Monadify typecheck/TcSimplify: use do, return and standard monad functions |
|---|
| 1473 | Twan van Laarhoven <twanvl@gmail.com>**20080117212200] |
|---|
| 1474 | [Monadify typecheck/TcSplice: use do and return |
|---|
| 1475 | Twan van Laarhoven <twanvl@gmail.com>**20080117211911] |
|---|
| 1476 | [Monadify typecheck/TcTyClsDecls: use return and standard monad functions |
|---|
| 1477 | Twan van Laarhoven <twanvl@gmail.com>**20080117211746] |
|---|
| 1478 | [Monadify typecheck/TcDefaults: use return and standard monad functions |
|---|
| 1479 | Twan van Laarhoven <twanvl@gmail.com>**20080117211558] |
|---|
| 1480 | [Monadify typecheck/TcDeriv: use return |
|---|
| 1481 | Twan van Laarhoven <twanvl@gmail.com>**20080117211507] |
|---|
| 1482 | [Monadify typecheck/TcClassDcl: use do, return and standard monad functions |
|---|
| 1483 | Twan van Laarhoven <twanvl@gmail.com>**20080117211439] |
|---|
| 1484 | [Monadify typecheck/TcBinds: use do, return and standard monad functions |
|---|
| 1485 | Twan van Laarhoven <twanvl@gmail.com>**20080117211035] |
|---|
| 1486 | [Monadify typecheck/TcArrows: use do and return |
|---|
| 1487 | Twan van Laarhoven <twanvl@gmail.com>**20080117210818] |
|---|
| 1488 | [Monadify typecheck/Inst: use do, return and standard monad functions |
|---|
| 1489 | Twan van Laarhoven <twanvl@gmail.com>**20080117210655] |
|---|
| 1490 | [Monadify typecheck/TcUnify: use do, return and standard monad functions |
|---|
| 1491 | Twan van Laarhoven <twanvl@gmail.com>**20080117210213 |
|---|
| 1492 | there may be some accidental tab->space conversion |
|---|
| 1493 | ] |
|---|
| 1494 | [Monadify typecheck/TcTyFuns: use standard monad functions |
|---|
| 1495 | Twan van Laarhoven <twanvl@gmail.com>**20080117205505] |
|---|
| 1496 | [Monadify typecheck/TcPat: use return and standard monad functions |
|---|
| 1497 | Twan van Laarhoven <twanvl@gmail.com>**20080117205423] |
|---|
| 1498 | [Monadify typecheck/TcRules: use do, return and standard monad functions |
|---|
| 1499 | Twan van Laarhoven <twanvl@gmail.com>**20080117205307] |
|---|
| 1500 | [Monadify typecheck/TcForeign: use do, return and standard monad functions |
|---|
| 1501 | Twan van Laarhoven <twanvl@gmail.com>**20080117204934] |
|---|
| 1502 | [Monadify typecheck/TcExpr: use do, return and standard monad functions |
|---|
| 1503 | Twan van Laarhoven <twanvl@gmail.com>**20080117204603] |
|---|
| 1504 | [Monadify specialise/Specialise: use do, return, standard monad functions and MonadUnique |
|---|
| 1505 | Twan van Laarhoven <twanvl@gmail.com>**20080117204330] |
|---|
| 1506 | [Monadify specialise/SpecConstr: use do, return and standard monad functions |
|---|
| 1507 | Twan van Laarhoven <twanvl@gmail.com>**20080117203842] |
|---|
| 1508 | [Monadify stgSyn/StgLint |
|---|
| 1509 | Twan van Laarhoven <twanvl@gmail.com>**20080117203042 |
|---|
| 1510 | - made LintM a newtype instead of a type synonym |
|---|
| 1511 | - use do, return and standard monad functions |
|---|
| 1512 | - use MaybeT where `thenMaybeL` was used |
|---|
| 1513 | - removed custom versions of monad functions |
|---|
| 1514 | |
|---|
| 1515 | ] |
|---|
| 1516 | [Monadify stgSyn/CoreToStg |
|---|
| 1517 | Twan van Laarhoven <twanvl@gmail.com>**20080117202619 |
|---|
| 1518 | - made LneM a newtype instead of a type synonym |
|---|
| 1519 | - use do, return and standard monad functions |
|---|
| 1520 | - removed custom versions of monad functions |
|---|
| 1521 | ] |
|---|
| 1522 | [Remove generic monad function from State, it was moved to MonadUtils |
|---|
| 1523 | Twan van Laarhoven <twanvl@gmail.com>**20080117202144] |
|---|
| 1524 | [Added MaybeT monad transformer to utils/Maybes |
|---|
| 1525 | Twan van Laarhoven <twanvl@gmail.com>**20080117202051] |
|---|
| 1526 | [Removed unused Maybe functions, use the standard Maybe monad instead |
|---|
| 1527 | Twan van Laarhoven <twanvl@gmail.com>**20080117201953] |
|---|
| 1528 | [MonadIO instance for IOEnv |
|---|
| 1529 | Twan van Laarhoven <twanvl@gmail.com>**20080117201812] |
|---|
| 1530 | [Monadify simplCore/SimplMonad: custom monad functions are no longer needed |
|---|
| 1531 | Twan van Laarhoven <twanvl@gmail.com>**20080117200354] |
|---|
| 1532 | [Monadify simplCore/SimplMonad: use MonadUnique instance instead of custom functions |
|---|
| 1533 | Twan van Laarhoven <twanvl@gmail.com>**20080117200228] |
|---|
| 1534 | [Monadify simplCore/SetLevels: use do, return, standard monad functions and MonadUnique |
|---|
| 1535 | Twan van Laarhoven <twanvl@gmail.com>**20080117195958] |
|---|
| 1536 | [Monadify simplCore/SimplUtils: use do, return, standard monad functions and MonadUnique |
|---|
| 1537 | Twan van Laarhoven <twanvl@gmail.com>**20080117195625] |
|---|
| 1538 | [Monadify simplCore/Simplify: use do and return |
|---|
| 1539 | Twan van Laarhoven <twanvl@gmail.com>**20080117195408] |
|---|
| 1540 | [Monadify simplCore/SimplEnv: use standard monad functions |
|---|
| 1541 | Twan van Laarhoven <twanvl@gmail.com>**20080117195255] |
|---|
| 1542 | [Monadify simplCore/SimplCore: use do, return and standard monad functions |
|---|
| 1543 | Twan van Laarhoven <twanvl@gmail.com>**20080117195149] |
|---|
| 1544 | [Monadify profiling/SCCfinal |
|---|
| 1545 | Twan van Laarhoven <twanvl@gmail.com>**20080117194417 |
|---|
| 1546 | - change monad type synonym into a newtype |
|---|
| 1547 | - use do, return and standard monad functions |
|---|
| 1548 | ] |
|---|
| 1549 | [Monadify coreSyn/CorePrep: use do, return, applicative, standard monad functions |
|---|
| 1550 | Twan van Laarhoven <twanvl@gmail.com>**20080117193154] |
|---|
| 1551 | [Monadify rename/RnTypes: use do, return and standard monad functions |
|---|
| 1552 | Twan van Laarhoven <twanvl@gmail.com>**20080117190823] |
|---|
| 1553 | [Monadify rename/RnPat: use do, return and standard monad functions |
|---|
| 1554 | Twan van Laarhoven <twanvl@gmail.com>**20080117190033] |
|---|
| 1555 | [Monadify rename/RnNames: use return and standard monad functions |
|---|
| 1556 | Twan van Laarhoven <twanvl@gmail.com>**20080117185837] |
|---|
| 1557 | [seqMaybe is more commonly known as mplus |
|---|
| 1558 | Twan van Laarhoven <twanvl@gmail.com>**20080117185330] |
|---|
| 1559 | [Monadify rename/RnBinds: use do, return and standard monad functions |
|---|
| 1560 | Twan van Laarhoven <twanvl@gmail.com>**20080117184354] |
|---|
| 1561 | [Monadify stranal/StrictAnal: use the State monad instead of a custom thing |
|---|
| 1562 | Twan van Laarhoven <twanvl@gmail.com>**20080117180449] |
|---|
| 1563 | [Monadify stranal/WwLib: use do, return, applicative, standard monad functions |
|---|
| 1564 | Twan van Laarhoven <twanvl@gmail.com>**20080117180022] |
|---|
| 1565 | [Added MonadUnique class for monads that have a unique supply |
|---|
| 1566 | Twan van Laarhoven <twanvl@gmail.com>**20080117175616] |
|---|
| 1567 | [Monadify stranal/WorkWrap: use do, return, applicative, standard monad functions |
|---|
| 1568 | Twan van Laarhoven <twanvl@gmail.com>**20080117175007] |
|---|
| 1569 | [Added Applicative and Functor instances for State monad |
|---|
| 1570 | Twan van Laarhoven <twanvl@gmail.com>**20080117174656] |
|---|
| 1571 | [Monadify deSugar/DsMonad: use do, return, applicative, standard monad functions |
|---|
| 1572 | Twan van Laarhoven <twanvl@gmail.com>**20080117174432] |
|---|
| 1573 | [Monadify deSugar/Desugar: use do, return, applicative, standard monad functions |
|---|
| 1574 | Twan van Laarhoven <twanvl@gmail.com>**20080117174130] |
|---|
| 1575 | [Monadify deSugar/DsUtils: use do, return, applicative, standard monad functions |
|---|
| 1576 | Twan van Laarhoven <twanvl@gmail.com>**20080117173856] |
|---|
| 1577 | [Monadify deSugar/DsListComp: use do, return, applicative, standard monad functions |
|---|
| 1578 | Twan van Laarhoven <twanvl@gmail.com>**20080117173205] |
|---|
| 1579 | [Monadify deSugar/DsForeign: use do, return, applicative, standard monad functions |
|---|
| 1580 | Twan van Laarhoven <twanvl@gmail.com>**20080117172843] |
|---|
| 1581 | [Monadify deSugar/DsGRHSs: use do, return, applicative, standard monad functions |
|---|
| 1582 | Twan van Laarhoven <twanvl@gmail.com>**20080117172228] |
|---|
| 1583 | [Monadify deSugar/DsExpr: use do, return, applicative, standard monad functions |
|---|
| 1584 | Twan van Laarhoven <twanvl@gmail.com>**20080117164055] |
|---|
| 1585 | [Added Applicative instance for IOEnv |
|---|
| 1586 | Twan van Laarhoven <twanvl@gmail.com>**20080117162644] |
|---|
| 1587 | [Add 'util/MonadUtils.hs' with common monad (and applicative) combinators |
|---|
| 1588 | Twan van Laarhoven <twanvl@gmail.com>**20080117161939] |
|---|
| 1589 | [Monadify deSugar/MatchLit: use do, return, applicative, standard monad functions |
|---|
| 1590 | Twan van Laarhoven <twanvl@gmail.com>**20080117173439] |
|---|
| 1591 | [Monadify deSugar/Match: use do, return, applicative, standard monad functions |
|---|
| 1592 | Twan van Laarhoven <twanvl@gmail.com>**20080117173336] |
|---|
| 1593 | [Monadify deSugar/DsCCall: use do, return, applicative, standard monad functions |
|---|
| 1594 | Twan van Laarhoven <twanvl@gmail.com>**20080117165334] |
|---|
| 1595 | [Monadify deSugar/DsArrows: use do, return, applicative, standard monad functions |
|---|
| 1596 | Twan van Laarhoven <twanvl@gmail.com>**20080117165114] |
|---|
| 1597 | [Monadify deSugar/DsBinds: use do, return, applicative, standard monad functions |
|---|
| 1598 | Twan van Laarhoven <twanvl@gmail.com>**20080117164746] |
|---|
| 1599 | [Added MASSERT macro for assertions in do notation |
|---|
| 1600 | Twan van Laarhoven <twanvl@gmail.com>**20080117163112] |
|---|
| 1601 | [FIX BUILD wrong imports on non-Windows |
|---|
| 1602 | Simon Marlow <simonmar@microsoft.com>**20080124092935] |
|---|
| 1603 | [Show CmdLineError exceptions as "<command line>: ..." |
|---|
| 1604 | Simon Marlow <simonmar@microsoft.com>**20080123163145 |
|---|
| 1605 | instead of something like "ghc-6.8.2: ...", which causes problems in |
|---|
| 1606 | the test suite. In any case, "<command line>" seems a more |
|---|
| 1607 | appropriate context for these errors, the only question is whether |
|---|
| 1608 | we're using CmdLineError incorrectly anywhere. |
|---|
| 1609 | ] |
|---|
| 1610 | [FIX #1750: in isBrokenPackage, don't loop if the deps are recursive |
|---|
| 1611 | Simon Marlow <simonmar@microsoft.com>**20080123160703] |
|---|
| 1612 | [FIX #1750: throw out mutually recursive groups of packages |
|---|
| 1613 | Simon Marlow <simonmar@microsoft.com>**20080123160635] |
|---|
| 1614 | [Windows now doesn't need different values for DQ in the build system |
|---|
| 1615 | Ian Lynagh <igloo@earth.li>**20080123173933] |
|---|
| 1616 | [Fix setting argv[0] in shell-utils.c on Windows |
|---|
| 1617 | Ian Lynagh <igloo@earth.li>**20080123160139] |
|---|
| 1618 | [Escape arguments for Windows in shell-tools.c |
|---|
| 1619 | Ian Lynagh <igloo@earth.li>**20080123151724] |
|---|
| 1620 | [Attach the INLINE Activation pragma to any automatically-generated specialisations |
|---|
| 1621 | simonpj@microsoft.com**20080123134012 |
|---|
| 1622 | |
|---|
| 1623 | Another idea suggested by Roman, happily involving a one-line change. Here's |
|---|
| 1624 | the new Note in Specialise: |
|---|
| 1625 | |
|---|
| 1626 | Note [Auto-specialisation and RULES] |
|---|
| 1627 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 1628 | Consider: |
|---|
| 1629 | g :: Num a => a -> a |
|---|
| 1630 | g = ... |
|---|
| 1631 | |
|---|
| 1632 | f :: (Int -> Int) -> Int |
|---|
| 1633 | f w = ... |
|---|
| 1634 | {-# RULE f g = 0 #-} |
|---|
| 1635 | |
|---|
| 1636 | Suppose that auto-specialisation makes a specialised version of |
|---|
| 1637 | g::Int->Int That version won't appear in the LHS of the RULE for f. |
|---|
| 1638 | So if the specialisation rule fires too early, the rule for f may |
|---|
| 1639 | never fire. |
|---|
| 1640 | |
|---|
| 1641 | It might be possible to add new rules, to "complete" the rewrite system. |
|---|
| 1642 | Thus when adding |
|---|
| 1643 | RULE forall d. g Int d = g_spec |
|---|
| 1644 | also add |
|---|
| 1645 | RULE f g_spec = 0 |
|---|
| 1646 | |
|---|
| 1647 | But that's a bit complicated. For now we ask the programmer's help, |
|---|
| 1648 | by *copying the INLINE activation pragma* to the auto-specialised rule. |
|---|
| 1649 | So if g says {-# NOINLINE[2] g #-}, then the auto-spec rule will also |
|---|
| 1650 | not be active until phase 2. |
|---|
| 1651 | |
|---|
| 1652 | ] |
|---|
| 1653 | [Tidy up the treatment of SPECIALISE pragmas |
|---|
| 1654 | simonpj@microsoft.com**20080122122613 |
|---|
| 1655 | |
|---|
| 1656 | Remove the now-redundant "const-dicts" field in SpecPrag |
|---|
| 1657 | |
|---|
| 1658 | In dsBinds, abstract over constant dictionaries in the RULE. |
|---|
| 1659 | This avoids the creation of a redundant, duplicate, rule later |
|---|
| 1660 | in the Specialise pass, which was happening before. |
|---|
| 1661 | |
|---|
| 1662 | There should be no effect on performance either way, just less |
|---|
| 1663 | duplicated code, and the compiler gets a little simpler. |
|---|
| 1664 | |
|---|
| 1665 | ] |
|---|
| 1666 | [Comments only |
|---|
| 1667 | simonpj@microsoft.com**20080122122547] |
|---|
| 1668 | [FIX #1838, #1987: change where GHCi searches for config files |
|---|
| 1669 | Simon Marlow <simonmar@microsoft.com>**20080123143207 |
|---|
| 1670 | |
|---|
| 1671 | 6.6 behaviour: |
|---|
| 1672 | - ./.ghci |
|---|
| 1673 | - $HOME/.ghci |
|---|
| 1674 | |
|---|
| 1675 | 6.8.[12] behaviour: |
|---|
| 1676 | - ./.ghci |
|---|
| 1677 | - Windows: c:/Documents and Settings/<user>/.ghci |
|---|
| 1678 | - Unix: $HOME/.ghci |
|---|
| 1679 | |
|---|
| 1680 | 6.10 (and 6.8.3 when this is merged): |
|---|
| 1681 | - ./.ghci |
|---|
| 1682 | - Windows: c:/Documents and Settings/<user>/Application Data/ghc/ghci.conf |
|---|
| 1683 | - Unix: $HOME/.ghc/ghci.conf |
|---|
| 1684 | - $HOME/.ghci |
|---|
| 1685 | |
|---|
| 1686 | We will need to document this in the 6.8.3 release notes because it |
|---|
| 1687 | may affect Windows users who have adapted their setup to 6.8.[12]. |
|---|
| 1688 | ] |
|---|
| 1689 | [FIX #1767 :show documentation claimed too much |
|---|
| 1690 | Simon Marlow <simonmar@microsoft.com>**20080122152943 |
|---|
| 1691 | Also put the :help docs back within 80 columns |
|---|
| 1692 | ] |
|---|
| 1693 | [fix syntax-error output for :show |
|---|
| 1694 | Simon Marlow <simonmar@microsoft.com>**20080122144923] |
|---|
| 1695 | [This goes with the patch for #1839, #1463 |
|---|
| 1696 | Simon Marlow <simonmar@microsoft.com>**20080122161811] |
|---|
| 1697 | [use pathSeparator instead of '/' |
|---|
| 1698 | Simon Marlow <simonmar@microsoft.com>**20080122140957] |
|---|
| 1699 | [cleanup only |
|---|
| 1700 | Simon Marlow <simonmar@microsoft.com>**20080122132047] |
|---|
| 1701 | [FIX #1839, #1463, by supporting ghc-pkg bulk queries with substring matching |
|---|
| 1702 | claus.reinke@talk21.com**20080121161744 |
|---|
| 1703 | |
|---|
| 1704 | - #1839 asks for a ghc-pkg dump feature, #1463 for the ability |
|---|
| 1705 | to query the same fields in several packages at once. |
|---|
| 1706 | |
|---|
| 1707 | - this patch enables substring matching for packages in 'list', |
|---|
| 1708 | 'describe', and 'field', and for modules in find-module. it |
|---|
| 1709 | also allows for comma-separated multiple fields in 'field'. |
|---|
| 1710 | substring matching can optionally ignore cases to avoid the |
|---|
| 1711 | rather unpredictable capitalisation of packages. |
|---|
| 1712 | |
|---|
| 1713 | - the patch is not quite as full-featured as the one attached |
|---|
| 1714 | to #1839, but avoids the additional dependency on regexps. |
|---|
| 1715 | open ended substrings are indicated by '*' (only the three |
|---|
| 1716 | forms prefix*, *suffix, *infix* are supported) |
|---|
| 1717 | |
|---|
| 1718 | - on windows, the use of '*' for package/module name globbing |
|---|
| 1719 | leads to conflicts with filename globbing: by default, windows |
|---|
| 1720 | programs are self-globbing, and bash adds another level of |
|---|
| 1721 | globbing on top of that. it seems impossible to escape '*' |
|---|
| 1722 | from both levels of globbing, so we disable default globbing |
|---|
| 1723 | for ghc-pkg and ghc-pkg-inplace. users of bash will still |
|---|
| 1724 | have filename globbing available, users of cmd won't. |
|---|
| 1725 | |
|---|
| 1726 | - if it is considered necessary to reenable filename globbing |
|---|
| 1727 | for cmd users, it should be done selectively, only for |
|---|
| 1728 | filename parameters. to this end, the patch includes a |
|---|
| 1729 | glob.hs program which simply echoes its parameters after |
|---|
| 1730 | filename globbing. see the commented out glob command in |
|---|
| 1731 | Main.hs for usage or testing. |
|---|
| 1732 | |
|---|
| 1733 | - this covers both tickets, and permits for the most common |
|---|
| 1734 | query patterns (finding all packages contributing to the |
|---|
| 1735 | System. hierarchy, finding all regex or string packages, |
|---|
| 1736 | listing all package maintainers or haddock directories, |
|---|
| 1737 | ..), which not only i have wanted to have for a long time. |
|---|
| 1738 | |
|---|
| 1739 | examples (the quotes are needed to escape shell-based |
|---|
| 1740 | filename globbing and should be omitted in cmd.exe): |
|---|
| 1741 | |
|---|
| 1742 | ghc-pkg list '*regex*' --ignore-case |
|---|
| 1743 | ghc-pkg list '*string*' --ignore-case |
|---|
| 1744 | ghc-pkg list '*gl*' --ignore-case |
|---|
| 1745 | ghc-pkg find-module 'Data.*' |
|---|
| 1746 | ghc-pkg find-module '*Monad*' |
|---|
| 1747 | ghc-pkg field '*' name,maintainer |
|---|
| 1748 | ghc-pkg field '*' haddock-html |
|---|
| 1749 | ghc-pkg describe '*' |
|---|
| 1750 | |
|---|
| 1751 | |
|---|
| 1752 | ] |
|---|
| 1753 | [Wibble to the OccurAnal fix for RULEs and loop-breakers |
|---|
| 1754 | simonpj@microsoft.com**20080121165529] |
|---|
| 1755 | [FIX #2049, another problem with the module context on :reload |
|---|
| 1756 | Simon Marlow <simonmar@microsoft.com>**20080121145935 |
|---|
| 1757 | The previous attempt to fix this (#1873, #1360) left a problem that |
|---|
| 1758 | occurred when the first :load of the program failed (#2049). |
|---|
| 1759 | |
|---|
| 1760 | Now I've implemented a different strategy: between :loads, we remember |
|---|
| 1761 | all the :module commands, and just replay them after a :reload. This |
|---|
| 1762 | is in addition to remembering all the package modules added with |
|---|
| 1763 | :module, which is orthogonal. |
|---|
| 1764 | |
|---|
| 1765 | This approach is simpler than the previous one, and seems to do the |
|---|
| 1766 | right thing in all the cases I could think of. Let's hope this is the |
|---|
| 1767 | last bug in this series... |
|---|
| 1768 | ] |
|---|
| 1769 | [Increase the bar for bootstrapping GHC to 6.4 (HEAD only) |
|---|
| 1770 | Simon Marlow <simonmar@microsoft.com>**20080121111835 |
|---|
| 1771 | - remove $(ghc_ge_601), $(ghc_ge_602), $(ghc_ge_603) |
|---|
| 1772 | - configure now checks the GHC version number |
|---|
| 1773 | - there are probably various cleanups that we can now do in compat/ |
|---|
| 1774 | and compiler/, but I haven't done those yet. |
|---|
| 1775 | ] |
|---|
| 1776 | [Do not worker/wrapper INLINE things, even if they are in a recursive group |
|---|
| 1777 | simonpj@microsoft.com**20080121135909 |
|---|
| 1778 | |
|---|
| 1779 | This patch stops the worker/wrapper transform working on an INLINE thing, |
|---|
| 1780 | even if it's in a recursive group. It might not be the loop breaker. Indeed |
|---|
| 1781 | a recursive group might have no loop breaker, if the only recursion is |
|---|
| 1782 | through rules. |
|---|
| 1783 | |
|---|
| 1784 | Again, this change was provoked by one of Roman's NDP libraries. |
|---|
| 1785 | Specifically the Rec { splitD, splitJoinD } group in |
|---|
| 1786 | Data.Array.Parallel.Unlifted.Distributed.Arrays |
|---|
| 1787 | |
|---|
| 1788 | Simon |
|---|
| 1789 | |
|---|
| 1790 | ] |
|---|
| 1791 | [Make the loop-breaking algorithm a bit more liberal, where RULES are involved |
|---|
| 1792 | simonpj@microsoft.com**20080121135654 |
|---|
| 1793 | |
|---|
| 1794 | This is another gloss on the now-quite-subtle and heavily-documented algorithm |
|---|
| 1795 | for choosing loop breakers. |
|---|
| 1796 | |
|---|
| 1797 | This fix, provoked by Roman's NDP library, makes sure that when we are choosing |
|---|
| 1798 | a loop breaker we only take into account variables free on the *rhs* of a rule |
|---|
| 1799 | not the *lhs*. |
|---|
| 1800 | |
|---|
| 1801 | Most of the new lines are comments! |
|---|
| 1802 | |
|---|
| 1803 | ] |
|---|
| 1804 | [Fix Trac #2055 |
|---|
| 1805 | simonpj@microsoft.com**20080121124244 |
|---|
| 1806 | |
|---|
| 1807 | Sorry, this was my fault, a consequence of the quasi-quoting patch. |
|---|
| 1808 | |
|---|
| 1809 | I've added rn062 as a test. |
|---|
| 1810 | |
|---|
| 1811 | |
|---|
| 1812 | ] |
|---|
| 1813 | [Fix exception message with ghc -e |
|---|
| 1814 | Ian Lynagh <igloo@earth.li>**20080121104142 |
|---|
| 1815 | When running with ghc -e, exceptions should claim to be from the program |
|---|
| 1816 | that we are running, not ghc. |
|---|
| 1817 | ] |
|---|
| 1818 | [Fix warnings in main/CmdLineParser |
|---|
| 1819 | Ian Lynagh <igloo@earth.li>**20080121103158] |
|---|
| 1820 | [Normalise FilePaths before printing them |
|---|
| 1821 | Ian Lynagh <igloo@earth.li>**20080120193002] |
|---|
| 1822 | [Tweak runghc |
|---|
| 1823 | Ian Lynagh <igloo@earth.li>**20080120184639] |
|---|
| 1824 | [Fix catching exit exceptions in ghc -e |
|---|
| 1825 | Ian Lynagh <igloo@earth.li>**20080120170236] |
|---|
| 1826 | [Typo in phase-control documentation |
|---|
| 1827 | simonpj@microsoft.com**20080121113620] |
|---|
| 1828 | [Fix warnings in main/Main |
|---|
| 1829 | Ian Lynagh <igloo@earth.li>**20080119235914] |
|---|
| 1830 | [Support multiple -e flags |
|---|
| 1831 | Ian Lynagh <igloo@earth.li>**20080119223036] |
|---|
| 1832 | [Fix ghc -e :main (it was enqueuing the main function, but not running it) |
|---|
| 1833 | Ian Lynagh <igloo@earth.li>**20080119220044] |
|---|
| 1834 | [Fix whitespace |
|---|
| 1835 | Ian Lynagh <igloo@earth.li>**20080119212830] |
|---|
| 1836 | [Fix giving an error if we are given conflicting mode flags |
|---|
| 1837 | Ian Lynagh <igloo@earth.li>**20080119212602] |
|---|
| 1838 | [Add :run and tweak :main |
|---|
| 1839 | Ian Lynagh <igloo@earth.li>**20080119164923 |
|---|
| 1840 | You can now give :main a Haskell [String] as an argument, e.g. |
|---|
| 1841 | :main ["foo", "bar"] |
|---|
| 1842 | and :run is a variant that takes the name of the function to run. |
|---|
| 1843 | Also, :main now obeys the -main-is flag. |
|---|
| 1844 | ] |
|---|
| 1845 | [Make MacFrameworks a subdirectory of distrib, since it isn't used in the normal building process. |
|---|
| 1846 | judah.jacobson@gmail.com**20071217235735] |
|---|
| 1847 | [Add scripts for building GMP.framework and GNUreadline.framework (OS X). |
|---|
| 1848 | judah.jacobson@gmail.com**20071127072951] |
|---|
| 1849 | [Use -framework-path flags during the cc phase. Fixes trac #1975. |
|---|
| 1850 | judah.jacobson@gmail.com**20071212201245] |
|---|
| 1851 | [FIX #1821 (Parser or lexer mess-up) |
|---|
| 1852 | df@dfranke.us**20071210230649] |
|---|
| 1853 | [Improve the error when :list can't find any code to show |
|---|
| 1854 | Ian Lynagh <igloo@earth.li>**20080118225655] |
|---|
| 1855 | [Fix imports when !DEBUG |
|---|
| 1856 | Ian Lynagh <igloo@earth.li>**20080118180126] |
|---|
| 1857 | [Tweak the splitter |
|---|
| 1858 | Ian Lynagh <igloo@earth.li>**20080116195612 |
|---|
| 1859 | We were generating a label ".LnLC7", which the splitter was confusing |
|---|
| 1860 | with a literal constant (LC). The end result was the assembler tripping |
|---|
| 1861 | up on ".Ln.text". |
|---|
| 1862 | ] |
|---|
| 1863 | [Wibble to SetLevels.abstractVars |
|---|
| 1864 | simonpj@microsoft.com**20080118171754 |
|---|
| 1865 | |
|---|
| 1866 | I've gotten this wrong more than once. Hopefully this has it nailed. |
|---|
| 1867 | The issue is that in float-out we must abstract over the correct |
|---|
| 1868 | variables. |
|---|
| 1869 | |
|---|
| 1870 | |
|---|
| 1871 | ] |
|---|
| 1872 | [Add quasi-quotation, courtesy of Geoffrey Mainland |
|---|
| 1873 | simonpj@microsoft.com**20080118145503 |
|---|
| 1874 | |
|---|
| 1875 | This patch adds quasi-quotation, as described in |
|---|
| 1876 | "Nice to be Quoted: Quasiquoting for Haskell" |
|---|
| 1877 | (Geoffrey Mainland, Haskell Workshop 2007) |
|---|
| 1878 | Implemented by Geoffrey and polished by Simon. |
|---|
| 1879 | |
|---|
| 1880 | Overview |
|---|
| 1881 | ~~~~~~~~ |
|---|
| 1882 | The syntax for quasiquotation is very similar to the existing |
|---|
| 1883 | Template haskell syntax: |
|---|
| 1884 | [$q| stuff |] |
|---|
| 1885 | where 'q' is the "quoter". This syntax differs from the paper, by using |
|---|
| 1886 | a '$' rather than ':', to avoid clashing with parallel array comprehensions. |
|---|
| 1887 | |
|---|
| 1888 | The "quoter" is a value of type Language.Haskell.TH.Quote.QuasiQuoter, which |
|---|
| 1889 | contains two functions for quoting expressions and patterns, respectively. |
|---|
| 1890 | |
|---|
| 1891 | quote = Language.Haskell.TH.Quote.QuasiQuoter quoteExp quotePat |
|---|
| 1892 | |
|---|
| 1893 | quoteExp :: String -> Language.Haskell.TH.ExpQ |
|---|
| 1894 | quotePat :: String -> Language.Haskell.TH.PatQ |
|---|
| 1895 | |
|---|
| 1896 | TEXT is passed unmodified to the quoter. The context of the |
|---|
| 1897 | quasiquotation statement determines which of the two quoters is |
|---|
| 1898 | called: if the quasiquotation occurs in an expression context, |
|---|
| 1899 | quoteExp is called, and if it occurs in a pattern context, quotePat |
|---|
| 1900 | is called. |
|---|
| 1901 | |
|---|
| 1902 | The result of running the quoter on its arguments is spliced into |
|---|
| 1903 | the program using Template Haskell's existing mechanisms for |
|---|
| 1904 | splicing in code. Note that although Template Haskell does not |
|---|
| 1905 | support pattern brackets, with this patch binding occurrences of |
|---|
| 1906 | variables in patterns are supported. Quoters must also obey the same |
|---|
| 1907 | stage restrictions as Template Haskell; in particular, in this |
|---|
| 1908 | example quote may not be defined in the module where it is used as a |
|---|
| 1909 | quasiquoter, but must be imported from another module. |
|---|
| 1910 | |
|---|
| 1911 | Points to notice |
|---|
| 1912 | ~~~~~~~~~~~~~~~~ |
|---|
| 1913 | * The whole thing is enabled with the flag -XQuasiQuotes |
|---|
| 1914 | |
|---|
| 1915 | * There is an accompanying patch to the template-haskell library. This |
|---|
| 1916 | involves one interface change: |
|---|
| 1917 | currentModule :: Q String |
|---|
| 1918 | is replaced by |
|---|
| 1919 | location :: Q Loc |
|---|
| 1920 | where Loc is a data type defined in TH.Syntax thus: |
|---|
| 1921 | data Loc |
|---|
| 1922 | = Loc { loc_filename :: String |
|---|
| 1923 | , loc_package :: String |
|---|
| 1924 | , loc_module :: String |
|---|
| 1925 | , loc_start :: CharPos |
|---|
| 1926 | , loc_end :: CharPos } |
|---|
| 1927 | |
|---|
| 1928 | type CharPos = (Int, Int) -- Line and character position |
|---|
| 1929 | |
|---|
| 1930 | So you get a lot more info from 'location' than from 'currentModule'. |
|---|
| 1931 | The location you get is the location of the splice. |
|---|
| 1932 | |
|---|
| 1933 | This works in Template Haskell too of course, and lets a TH program |
|---|
| 1934 | generate much better error messages. |
|---|
| 1935 | |
|---|
| 1936 | * There's also a new module in the template-haskell package called |
|---|
| 1937 | Language.Haskell.TH.Quote, which contains support code for the |
|---|
| 1938 | quasi-quoting feature. |
|---|
| 1939 | |
|---|
| 1940 | * Quasi-quote splices are run *in the renamer* because they can build |
|---|
| 1941 | *patterns* and hence the renamer needs to see the output of running the |
|---|
| 1942 | splice. This involved a bit of rejigging in the renamer, especially |
|---|
| 1943 | concerning the reporting of duplicate or shadowed names. |
|---|
| 1944 | |
|---|
| 1945 | (In fact I found and removed a few calls to checkDupNames in RnSource |
|---|
| 1946 | that are redundant, becuase top-level duplicate decls are handled in |
|---|
| 1947 | RnNames.) |
|---|
| 1948 | |
|---|
| 1949 | |
|---|
| 1950 | |
|---|
| 1951 | ] |
|---|
| 1952 | [lots of portability changes (#1405) |
|---|
| 1953 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20080117011312 |
|---|
| 1954 | |
|---|
| 1955 | re-recording to avoid new conflicts was too hard, so I just put it |
|---|
| 1956 | all in one big patch :-( (besides, some of the changes depended on |
|---|
| 1957 | each other.) Here are what the component patches were: |
|---|
| 1958 | |
|---|
| 1959 | Fri Dec 28 11:02:55 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 1960 | * document BreakArray better |
|---|
| 1961 | |
|---|
| 1962 | Fri Dec 28 11:39:22 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 1963 | * properly ifdef BreakArray for GHCI |
|---|
| 1964 | |
|---|
| 1965 | Fri Jan 4 13:50:41 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 1966 | * change ifs on __GLASGOW_HASKELL__ to account for... (#1405) |
|---|
| 1967 | for it not being defined. I assume it being undefined implies |
|---|
| 1968 | a compiler with relatively modern libraries but without most |
|---|
| 1969 | unportable glasgow extensions. |
|---|
| 1970 | |
|---|
| 1971 | Fri Jan 4 14:21:21 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 1972 | * MyEither-->EitherString to allow Haskell98 instance |
|---|
| 1973 | |
|---|
| 1974 | Fri Jan 4 16:13:29 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 1975 | * re-portabilize Pretty, and corresponding changes |
|---|
| 1976 | |
|---|
| 1977 | Fri Jan 4 17:19:55 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 1978 | * Augment FastTypes to be much more complete |
|---|
| 1979 | |
|---|
| 1980 | Fri Jan 4 20:14:19 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 1981 | * use FastFunctions, cleanup FastString slightly |
|---|
| 1982 | |
|---|
| 1983 | Fri Jan 4 21:00:22 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 1984 | * Massive de-"#", mostly Int# --> FastInt (#1405) |
|---|
| 1985 | |
|---|
| 1986 | Fri Jan 4 21:02:49 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 1987 | * miscellaneous unnecessary-extension-removal |
|---|
| 1988 | |
|---|
| 1989 | Sat Jan 5 19:30:13 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> |
|---|
| 1990 | * add FastFunctions |
|---|
| 1991 | |
|---|
| 1992 | ] |
|---|
| 1993 | [Add missing extendSubst |
|---|
| 1994 | simonpj@microsoft.com**20080117180227 |
|---|
| 1995 | |
|---|
| 1996 | Oops -- missed this from previous commit; sorry |
|---|
| 1997 | |
|---|
| 1998 | ] |
|---|
| 1999 | [Add -fspec-inline-join-points to SpecConstr |
|---|
| 2000 | simonpj@microsoft.com**20080117150325 |
|---|
| 2001 | |
|---|
| 2002 | This patch addresses a problem that Roman found in SpecConstr. Consider: |
|---|
| 2003 | |
|---|
| 2004 | foo :: Maybe Int -> Maybe Int -> Int |
|---|
| 2005 | foo a b = let j b = foo a b |
|---|
| 2006 | in |
|---|
| 2007 | case b of |
|---|
| 2008 | Nothing -> ... |
|---|
| 2009 | Just n -> case a of |
|---|
| 2010 | Just m -> ... j (Just (n+1)) ... |
|---|
| 2011 | Nothing -> ... j (Just (n-1)) ... |
|---|
| 2012 | |
|---|
| 2013 | We want to make specialised versions for 'foo' for the patterns |
|---|
| 2014 | Nothing (Just v) |
|---|
| 2015 | (Just a) (Just b) |
|---|
| 2016 | |
|---|
| 2017 | Two problems, caused by the join point j. First, j does not |
|---|
| 2018 | scrutinise b, so j won't be specialised f for the (Just v) pattern. |
|---|
| 2019 | Second, j is defined where the free var 'a' is not evaluated. |
|---|
| 2020 | |
|---|
| 2021 | Both are solved by brutally inlining j at its call sites. This risks |
|---|
| 2022 | major code bloat, but it's relatively quick to implement. The flag |
|---|
| 2023 | -fspec-inline-join-points |
|---|
| 2024 | causes brutal inlining for a |
|---|
| 2025 | non-recursive binding |
|---|
| 2026 | of a function |
|---|
| 2027 | whose RHS contains calls |
|---|
| 2028 | of a recursive function |
|---|
| 2029 | |
|---|
| 2030 | The (experimental) flag is static for now, and I have not even |
|---|
| 2031 | documented it properly. |
|---|
| 2032 | |
|---|
| 2033 | |
|---|
| 2034 | ] |
|---|
| 2035 | [Fix references to Filepath |
|---|
| 2036 | Clemens Fruhwirth <clemens@endorphin.org>**20080117134139] |
|---|
| 2037 | [Fix egregious error in earlier "Record evaluated-ness" patch |
|---|
| 2038 | simonpj@microsoft.com**20080117134057] |
|---|
| 2039 | [Eliminate warnings with -DDEBUG |
|---|
| 2040 | simonpj@microsoft.com**20080117124921] |
|---|
| 2041 | [Record evaluated-ness information correctly for strict constructors |
|---|
| 2042 | simonpj@microsoft.com**20080117105256 |
|---|
| 2043 | |
|---|
| 2044 | The add_evals code in Simplify.simplAlt had bit-rotted. Example: |
|---|
| 2045 | |
|---|
| 2046 | data T a = T !a |
|---|
| 2047 | data U a = U !a |
|---|
| 2048 | |
|---|
| 2049 | foo :: T a -> U a |
|---|
| 2050 | foo (T x) = U x |
|---|
| 2051 | |
|---|
| 2052 | Here we should not evaluate x before building the U result, because |
|---|
| 2053 | the x argument of T is already evaluated. |
|---|
| 2054 | |
|---|
| 2055 | Thanks to Roman for finding this. |
|---|
| 2056 | |
|---|
| 2057 | |
|---|
| 2058 | ] |
|---|
| 2059 | [In float-out, make sure we abstract over the type variables in the kind of a coercion |
|---|
| 2060 | simonpj@microsoft.com**20080116153908 |
|---|
| 2061 | |
|---|
| 2062 | I can't remember where this bug showed up, but we were abstracting over a |
|---|
| 2063 | coercion variable (co :: a ~ T), without also abstracting over 'a'. |
|---|
| 2064 | |
|---|
| 2065 | The fix is simple. |
|---|
| 2066 | |
|---|
| 2067 | ] |
|---|
| 2068 | [Fix broken debug warning |
|---|
| 2069 | simonpj@microsoft.com**20080116151818] |
|---|
| 2070 | [Complain sensibly if you try to use scoped type variables in Template Haskell |
|---|
| 2071 | simonpj@microsoft.com**20080116151612 |
|---|
| 2072 | |
|---|
| 2073 | This fixes Trac #2024; worth merging onto 6.8 branch. |
|---|
| 2074 | |
|---|
| 2075 | ] |
|---|
| 2076 | [Comments only |
|---|
| 2077 | simonpj@microsoft.com**20080116150554] |
|---|
| 2078 | [Extra instance for Outputable on 5-tuples |
|---|
| 2079 | simonpj@microsoft.com**20080116150525] |
|---|
| 2080 | [Fix the -frule-check pass |
|---|
| 2081 | simonpj@microsoft.com**20080116141156 |
|---|
| 2082 | |
|---|
| 2083 | Rules for imported things are now kept in the global rule base, not |
|---|
| 2084 | attached to the global Id. The rule-check pass hadn't kept up. |
|---|
| 2085 | |
|---|
| 2086 | This should fix it. |
|---|
| 2087 | |
|---|
| 2088 | ] |
|---|
| 2089 | [Add dyn-wrapper.c used as cross-plattform launch wrapper for executables using dynamic libraries in non-standard places |
|---|
| 2090 | Clemens Fruhwirth <clemens@endorphin.org>**20080116220603] |
|---|
| 2091 | [Use runPhase_MoveBinary also for generating a dynamic library wrapper |
|---|
| 2092 | Clemens Fruhwirth <clemens@endorphin.org>**20080116220420] |
|---|
| 2093 | [Remove -fhardwire-lib-paths in favour of -dynload sysdep |
|---|
| 2094 | Clemens Fruhwirth <clemens@endorphin.org>**20080110121736] |
|---|
| 2095 | [ghc-inplace defaults to -fhardwire-lib-paths. Change that to -dynload wrapped |
|---|
| 2096 | Clemens Fruhwirth <clemens@endorphin.org>**20080110090839] |
|---|
| 2097 | [Add -dynload flag as dynamic flag. |
|---|
| 2098 | Clemens Fruhwirth <clemens@endorphin.org>**20080116205710] |
|---|
| 2099 | [Add a missing import |
|---|
| 2100 | Ian Lynagh <igloo@earth.li>**20080116174149] |
|---|
| 2101 | [Fix Makefile generatin on Windows |
|---|
| 2102 | Ian Lynagh <igloo@earth.li>**20080116162752] |
|---|
| 2103 | [Fix slash direction on Windows with the new filePath code |
|---|
| 2104 | Ian Lynagh <igloo@earth.li>**20080116154317] |
|---|
| 2105 | [Fix typo |
|---|
| 2106 | Ian Lynagh <igloo@earth.li>**20080116011953] |
|---|
| 2107 | [The Core type-matcher should look through PredTypes |
|---|
| 2108 | simonpj@microsoft.com**20080116145939 |
|---|
| 2109 | |
|---|
| 2110 | The core type-matcher Unify.match was previouly using tcView to expand |
|---|
| 2111 | types, because it must treat newtypes as distinct from their representation. |
|---|
| 2112 | But that meant that it also treated the PredType {C Int} as distinct from |
|---|
| 2113 | its representation type (:TC Int). And that in turn was causing a rule |
|---|
| 2114 | not to fire, because the argument types didn't match up. |
|---|
| 2115 | |
|---|
| 2116 | For this to happen we need to get a situation where we have |
|---|
| 2117 | |
|---|
| 2118 | a = :DC blah blah -- Dictionary |
|---|
| 2119 | ....(f a)..... |
|---|
| 2120 | |
|---|
| 2121 | Now a has type (:TC Int), bu the RULE for f expects an argument |
|---|
| 2122 | of type {C Int}. Roman found that just this was happening. |
|---|
| 2123 | |
|---|
| 2124 | |
|---|
| 2125 | |
|---|
| 2126 | |
|---|
| 2127 | ] |
|---|
| 2128 | [A bottoming function should have infinite arity |
|---|
| 2129 | simonpj@microsoft.com**20080116145722 |
|---|
| 2130 | |
|---|
| 2131 | I can't think how this one escaped for so long, but |
|---|
| 2132 | (error "foo") |
|---|
| 2133 | should have arityType ABot, just as 'error' itself does. |
|---|
| 2134 | |
|---|
| 2135 | This improves eta expansion. I spotted it when looking at the function |
|---|
| 2136 | |
|---|
| 2137 | Data.Array.Parallel.Arr.BBArr.writeMBB |
|---|
| 2138 | |
|---|
| 2139 | in the ndp package. |
|---|
| 2140 | |
|---|
| 2141 | |
|---|
| 2142 | ] |
|---|
| 2143 | [Add Main.dyn_o deployed into the RTS library dir to linking (see DLLNOTES for rational) |
|---|
| 2144 | Clemens Fruhwirth <clemens@endorphin.org>**20080110091217] |
|---|
| 2145 | [Refactor cross-plattform process spawning from ghc-inplace into shell-tools.c |
|---|
| 2146 | Clemens Fruhwirth <clemens@endorphin.org>**20080110090721] |
|---|
| 2147 | [More verbose error reporting in mk/target.mk |
|---|
| 2148 | Clemens Fruhwirth <clemens@endorphin.org>**20071231170715] |
|---|
| 2149 | [Fix generating dependencies for different ways now we use FilePath |
|---|
| 2150 | Ian Lynagh <igloo@earth.li>**20080115204716 |
|---|
| 2151 | We were making filenames like |
|---|
| 2152 | dist/build/GHC/Base.p_.o |
|---|
| 2153 | rather than |
|---|
| 2154 | dist/build/GHC/Base.p_o |
|---|
| 2155 | ] |
|---|
| 2156 | [Fix utils/Util for debug build |
|---|
| 2157 | mainland@eecs.harvard.edu**20080114190530] |
|---|
| 2158 | [Give an error if view pattern syntax is used in an expression; fixes #2033 |
|---|
| 2159 | Ian Lynagh <igloo@earth.li>**20080114115031] |
|---|
| 2160 | [FIX BUILD (Solaris): include fcntl.h for file operations |
|---|
| 2161 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080115051844] |
|---|
| 2162 | [Fix warning when USE_READLINE is unset |
|---|
| 2163 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20080115015014] |
|---|
| 2164 | [Remove an extra ) that was breaking the build on Windows |
|---|
| 2165 | Ian Lynagh <igloo@earth.li>**20080114103953] |
|---|
| 2166 | [Fix warnings in utils/ListSetOps |
|---|
| 2167 | Ian Lynagh <igloo@earth.li>**20080113150017] |
|---|
| 2168 | [Fix warnings in utils/Panic |
|---|
| 2169 | Ian Lynagh <igloo@earth.li>**20080113142939] |
|---|
| 2170 | [Fix warnings in utils/UniqSet |
|---|
| 2171 | Ian Lynagh <igloo@earth.li>**20080113142604] |
|---|
| 2172 | [Fix warnings in utils/Maybes |
|---|
| 2173 | Ian Lynagh <igloo@earth.li>**20080113142347] |
|---|
| 2174 | [Fix warnings in utils/BufWrite |
|---|
| 2175 | Ian Lynagh <igloo@earth.li>**20080113141630] |
|---|
| 2176 | [Fix warnings in utils/FastTypes |
|---|
| 2177 | Ian Lynagh <igloo@earth.li>**20080113141612 |
|---|
| 2178 | Split off a FastBool module, to avoid a circular import with Panic |
|---|
| 2179 | ] |
|---|
| 2180 | [Fix warnings in utils/OrdList |
|---|
| 2181 | Ian Lynagh <igloo@earth.li>**20080113132042] |
|---|
| 2182 | [Fix warnings in utils/FastMutInt |
|---|
| 2183 | Ian Lynagh <igloo@earth.li>**20080113131830] |
|---|
| 2184 | [Fix warnings in utils/State |
|---|
| 2185 | Ian Lynagh <igloo@earth.li>**20080113131658] |
|---|
| 2186 | [Only initialise readline if we are connected to a terminal |
|---|
| 2187 | Ian Lynagh <igloo@earth.li>**20080113124107 |
|---|
| 2188 | Patch from Bertram Felgenhauer <int-e@gmx.de> |
|---|
| 2189 | ] |
|---|
| 2190 | [Fix warnings in utils/Util |
|---|
| 2191 | Ian Lynagh <igloo@earth.li>**20080113005832] |
|---|
| 2192 | [Fix warnings in utils/Bag.lhs |
|---|
| 2193 | Ian Lynagh <igloo@earth.li>**20080113002037] |
|---|
| 2194 | [Add GMP_INCLUDE_DIRS in a couple of places |
|---|
| 2195 | Ian Lynagh <igloo@earth.li>**20080112234215 |
|---|
| 2196 | Fixes the build on OpenBSD (trac #2009). Based on a patch from kili. |
|---|
| 2197 | ] |
|---|
| 2198 | [Tweak whitespace in HsExpr |
|---|
| 2199 | Ian Lynagh <igloo@earth.li>**20080112185753] |
|---|
| 2200 | [Fix warnings in HsExpr |
|---|
| 2201 | Ian Lynagh <igloo@earth.li>**20080112181444] |
|---|
| 2202 | [FilePath fixes |
|---|
| 2203 | Ian Lynagh <igloo@earth.li>**20080112172837] |
|---|
| 2204 | [don't initialize readline needlessly |
|---|
| 2205 | Ian Lynagh <igloo@earth.li>**20080112155413 |
|---|
| 2206 | Readline.initialize spills some escape sequences to stdout for some terminal |
|---|
| 2207 | types, potentially spoiling ghc -e output. So don't initialize readline |
|---|
| 2208 | unless we're working interactively on a terminal. |
|---|
| 2209 | Patch from Bertram Felgenhauer <int-e@gmx.de> |
|---|
| 2210 | ] |
|---|
| 2211 | [Fix whitespace |
|---|
| 2212 | Ian Lynagh <igloo@earth.li>**20080112155214] |
|---|
| 2213 | [Use System.FilePath |
|---|
| 2214 | Ian Lynagh <igloo@earth.li>**20080112154459] |
|---|
| 2215 | [Fix filename completion by adding trailing spaces/slashes manually. |
|---|
| 2216 | judah.jacobson@gmail.com**20080110221928] |
|---|
| 2217 | [Use command-dependent word break characters for tab completion in ghci. Fixes bug #998. |
|---|
| 2218 | judah.jacobson@gmail.com**20080109003606] |
|---|
| 2219 | [Fix 2030: make -XScopedTypeVariables imply -XRelaxedPolyRec |
|---|
| 2220 | simonpj@microsoft.com**20080110113133 |
|---|
| 2221 | |
|---|
| 2222 | The type checker doesn't support lexically scoped type variables |
|---|
| 2223 | unless we are using the RelaxedPolyRec option. Reasons: see |
|---|
| 2224 | Note [Scoped tyvars] in TcBinds. |
|---|
| 2225 | |
|---|
| 2226 | So I've changed DynFlags to add this implication, improved the |
|---|
| 2227 | documentation, and simplified the code in TcBinds somewhat. |
|---|
| 2228 | (It's longer but only because of comments!) |
|---|
| 2229 | |
|---|
| 2230 | |
|---|
| 2231 | ] |
|---|
| 2232 | [More refactoring in getCoreToDo |
|---|
| 2233 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109023747] |
|---|
| 2234 | [Document -fsimplifier-phases |
|---|
| 2235 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109022822] |
|---|
| 2236 | [Add -fsimplifier-phases option |
|---|
| 2237 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109022449 |
|---|
| 2238 | |
|---|
| 2239 | It controls the number of simplifier phases run during optimisation. These are |
|---|
| 2240 | numbered from n to 1 (by default, n=2). Phase 0 is always run regardless of |
|---|
| 2241 | this flag. The flag is ignored with -O0 since (practically) no optimisation is |
|---|
| 2242 | performed in that case. |
|---|
| 2243 | ] |
|---|
| 2244 | [Refactor getCoreToDo slightly |
|---|
| 2245 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20080109014359] |
|---|
| 2246 | [Fix Trac #2018: float-out was ignoring the kind of a coercion variable |
|---|
| 2247 | simonpj@microsoft.com**20080107142601 |
|---|
| 2248 | |
|---|
| 2249 | The float-out transformation must handle the case where a coercion |
|---|
| 2250 | variable is free, which in turn mentions type variables in its kind. |
|---|
| 2251 | Just like a term variable really. |
|---|
| 2252 | |
|---|
| 2253 | I did a bit of refactoring at the same time. |
|---|
| 2254 | |
|---|
| 2255 | Test is tc241 |
|---|
| 2256 | |
|---|
| 2257 | MERGE to stable branch |
|---|
| 2258 | |
|---|
| 2259 | ] |
|---|
| 2260 | [Make the treatment of equalities more uniform |
|---|
| 2261 | simonpj@microsoft.com**20080107142306 |
|---|
| 2262 | |
|---|
| 2263 | This patch (which is part of the fix for Trac #2018) makes coercion variables |
|---|
| 2264 | be handled more uniformly. Generally, they are treated like dictionaries |
|---|
| 2265 | in the type checker, not like type variables, but in a couple of places we |
|---|
| 2266 | were treating them like type variables. Also when zonking we should use |
|---|
| 2267 | zonkDictBndr not zonkIdBndr. |
|---|
| 2268 | |
|---|
| 2269 | ] |
|---|
| 2270 | [Fix Trac #2017 |
|---|
| 2271 | simonpj@microsoft.com**20080107125819] |
|---|
| 2272 | [Add -XImpredicativeTypes, and tighten up type-validity checking (cf Trac 2019) |
|---|
| 2273 | simonpj@microsoft.com**20080107115451 |
|---|
| 2274 | |
|---|
| 2275 | Somehow we didn't have a separate flag for impredicativity; now we do. |
|---|
| 2276 | |
|---|
| 2277 | Furthermore, Trac #2019 showed up a missing test for monotypes in data |
|---|
| 2278 | constructor return types. And I realised that we were even allowing |
|---|
| 2279 | things like |
|---|
| 2280 | Num (forall a. a) => ... |
|---|
| 2281 | which we definitely should not. |
|---|
| 2282 | |
|---|
| 2283 | This patch insists on monotypes in several places where we were (wrongly) |
|---|
| 2284 | too liberal before. |
|---|
| 2285 | |
|---|
| 2286 | Could be merged to 6.8 but no big deal. |
|---|
| 2287 | |
|---|
| 2288 | |
|---|
| 2289 | ] |
|---|
| 2290 | [pass -no-user-package-conf to ghc-inplace |
|---|
| 2291 | Simon Marlow <simonmar@microsoft.com>**20080104162840] |
|---|
| 2292 | [Fix build: Recent instance shuffling left us with overlapping instances |
|---|
| 2293 | Ian Lynagh <igloo@earth.li>**20080106221547] |
|---|
| 2294 | [Add instructions for building docs to README |
|---|
| 2295 | Ian Lynagh <igloo@earth.li>**20080106215723] |
|---|
| 2296 | [A little refactoring of GenIfaceEq to make the Outputable instance into H98 |
|---|
| 2297 | simonpj@microsoft.com**20080104105450] |
|---|
| 2298 | [Make the instance of DebugNodes more H98-like |
|---|
| 2299 | simonpj@microsoft.com**20080104105409] |
|---|
| 2300 | [change CmmActual, CmmFormal to use a data CmmHinted rather than tuple (#1405) |
|---|
| 2301 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20080104105339 |
|---|
| 2302 | This allows the instance of UserOfLocalRegs to be within Haskell98, and IMHO |
|---|
| 2303 | makes the code a little cleaner generally. |
|---|
| 2304 | This is one small (though tedious) step towards making GHC's code more |
|---|
| 2305 | portable... |
|---|
| 2306 | ] |
|---|
| 2307 | [generalize instance Outputable GenCmm to H98 (#1405) |
|---|
| 2308 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226175915] |
|---|
| 2309 | [move and generalize another instance (#1405) |
|---|
| 2310 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226174904 |
|---|
| 2311 | was instance Outputable CmmGraph |
|---|
| 2312 | type CmmGraph = LGraph Middle Last |
|---|
| 2313 | now instance (ctx) => Outputable (LGraph m l), |
|---|
| 2314 | in module with LGraph where it belongs |
|---|
| 2315 | This also let us reduce the context of DebugNodes to Haskell98, |
|---|
| 2316 | leaving that class's only extension being multi-parameter. |
|---|
| 2317 | (also Outputable (LGraph M Last) with M = ExtendWithSpills Middle |
|---|
| 2318 | was another redundant instance that was then removed) |
|---|
| 2319 | ] |
|---|
| 2320 | [move and generalize an instance (#1405) |
|---|
| 2321 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226171913 |
|---|
| 2322 | UserOfLocalRegs (ZLast Last) isn't Haskell98, but it was just as |
|---|
| 2323 | good an instance to be UserOfLocalRegs a => UserOfLocalRegs (ZLast a) |
|---|
| 2324 | ] |
|---|
| 2325 | [Do not consult -XGADTs flag when pattern matching on GADTs |
|---|
| 2326 | simonpj@microsoft.com**20080104125814 |
|---|
| 2327 | |
|---|
| 2328 | See Trac #2004, and Note [Flags and equational constraints] in TcPat. |
|---|
| 2329 | |
|---|
| 2330 | ] |
|---|
| 2331 | [Add a note about primop wrappers (cf Trac #1509) |
|---|
| 2332 | simonpj@microsoft.com**20080104125305] |
|---|
| 2333 | [Document SOURCE pragma; clarify TH behavior for mutually-recurive modules (Trac #1012) |
|---|
| 2334 | simonpj@microsoft.com**20080104121939] |
|---|
| 2335 | [White space and comments only |
|---|
| 2336 | simonpj@microsoft.com**20080104102236] |
|---|
| 2337 | [Optionally use libffi to implement 'foreign import "wrapper"' (#793) |
|---|
| 2338 | Simon Marlow <simonmar@microsoft.com>**20080103170236 |
|---|
| 2339 | To enable this, set UseLibFFI=YES in mk/build.mk. |
|---|
| 2340 | |
|---|
| 2341 | The main advantage here is that this reduces the porting effort for |
|---|
| 2342 | new platforms: libffi works on more architectures than our current |
|---|
| 2343 | adjustor code, and it is probably more heavily tested. We could |
|---|
| 2344 | potentially replace our existing code, but since it is probably faster |
|---|
| 2345 | than libffi (just a guess, I'll measure later) and is already working, |
|---|
| 2346 | it doesn't seem worthwhile. |
|---|
| 2347 | |
|---|
| 2348 | Right now, you must have libffi installed on your system. I used the |
|---|
| 2349 | one supplied by Debian/Ubuntu. |
|---|
| 2350 | ] |
|---|
| 2351 | [remove trace apparently left in by accident |
|---|
| 2352 | Simon Marlow <simonmar@microsoft.com>**20080103163805] |
|---|
| 2353 | [Remove -funfolding-update-in-place flag documentation |
|---|
| 2354 | simonpj@microsoft.com**20080103160036 |
|---|
| 2355 | |
|---|
| 2356 | This flag does nothing, and should have been removed ages ago. (GHC |
|---|
| 2357 | no longer does update-in-place.) |
|---|
| 2358 | |
|---|
| 2359 | MERGE to 6.8 branch |
|---|
| 2360 | |
|---|
| 2361 | ] |
|---|
| 2362 | [Fix warnings with newer gcc versions (I hope) |
|---|
| 2363 | Simon Marlow <simonmar@microsoft.com>**20080103140338] |
|---|
| 2364 | [FIX #1898: add a missing UNTAG_CLOSURE() in checkBlackHoles |
|---|
| 2365 | Simon Marlow <simonmar@microsoft.com>**20080103112717] |
|---|
| 2366 | [fix validation failure on non-i386 |
|---|
| 2367 | Simon Marlow <simonmar@microsoft.com>**20080102151740] |
|---|
| 2368 | [expand "out of stack slots" panic to suggest using -fregs-graph, see #1993 |
|---|
| 2369 | Simon Marlow <simonmar@microsoft.com>**20080102150737] |
|---|
| 2370 | [Warning clean, and fix compilation with GHC 6.2.x |
|---|
| 2371 | Simon Marlow <simonmar@microsoft.com>**20080102114529] |
|---|
| 2372 | [Add dead code elimination in cmmMiniInline |
|---|
| 2373 | Simon Marlow <simonmar@microsoft.com>**20071220151734 |
|---|
| 2374 | cmmMiniInline counts the uses of local variables, so it can easily |
|---|
| 2375 | eliminate assigments to unused locals. This almost never gets |
|---|
| 2376 | triggered, as we don't generate any dead assignments, but it will be |
|---|
| 2377 | needed by a forthcoming cleanup in CgUtils.emitSwitch. |
|---|
| 2378 | ] |
|---|
| 2379 | [implement prefix unboxed tuples (part of #1509) |
|---|
| 2380 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20080102124001] |
|---|
| 2381 | [Link libgmp.a statically into libHSrts.dll on Windows |
|---|
| 2382 | Clemens Fruhwirth <clemens@endorphin.org>**20080101154017] |
|---|
| 2383 | [Embedd DLL name into its import library, so client libs reference them properly in .idata |
|---|
| 2384 | Clemens Fruhwirth <clemens@endorphin.org>**20080101152157] |
|---|
| 2385 | [Add package dependencies to link pass when building ghc package (required for windows DLL build) |
|---|
| 2386 | Clemens Fruhwirth <clemens@endorphin.org>**20080101152101] |
|---|
| 2387 | [Fix building libHSrts.dll by using ghc-pkg instead of grepping in base.cabal |
|---|
| 2388 | Clemens Fruhwirth <clemens@endorphin.org>**20071230193952] |
|---|
| 2389 | [Add installPackage to dependencies of make.library.* as it's used by the rule |
|---|
| 2390 | Clemens Fruhwirth <clemens@endorphin.org>**20071229162707] |
|---|
| 2391 | [Install dynlibs correctly |
|---|
| 2392 | Clemens Fruhwirth <clemens@endorphin.org>**20071228184024 |
|---|
| 2393 | |
|---|
| 2394 | Add dynlibdir target to config.mk.in, setting it to @libdir@. |
|---|
| 2395 | Invoke installPackage with dynlibdir at libraries/Makefile |
|---|
| 2396 | Make installPackage.hs hand dynlibdir to Cabal. |
|---|
| 2397 | ] |
|---|
| 2398 | [import ord that alex secretly imported |
|---|
| 2399 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071228175727] |
|---|
| 2400 | [add missing import that happy -agc secretly provided |
|---|
| 2401 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071227171335] |
|---|
| 2402 | [correct type mistake, hidden by happy -agc coercions! |
|---|
| 2403 | Isaac Dupree <id@isaac.cedarswampstudios.org>**20071226140743] |
|---|
| 2404 | [API changes for cabal-HEAD |
|---|
| 2405 | Clemens Fruhwirth <clemens@endorphin.org>**20071227143114 |
|---|
| 2406 | |
|---|
| 2407 | Rename interfacedir to haddockdir |
|---|
| 2408 | Change empty(Copy|Register)Flags to default(Copy|Register)Flags |
|---|
| 2409 | Wrap content of RegisterFlags with toFlag (the Flag type is actually just Maybe) |
|---|
| 2410 | ] |
|---|
| 2411 | [Extend API for compiling to and from Core |
|---|
| 2412 | Tim Chevalier <chevalier@alum.wellesley.edu>**20071225200411 |
|---|
| 2413 | |
|---|
| 2414 | Added API support for compiling Haskell to simplified Core, and for |
|---|
| 2415 | compiling Core to machine code. The latter, especially, should be |
|---|
| 2416 | considered experimental and has only been given cursory testing. Also |
|---|
| 2417 | fixed warnings in DriverPipeline. Merry Christmas. |
|---|
| 2418 | ] |
|---|
| 2419 | [When complaining about non-rigid context, give suggestion of adding a signature |
|---|
| 2420 | simonpj@microsoft.com**20071224122217] |
|---|
| 2421 | [Improve handling of newtypes (fixes Trac 1495) |
|---|
| 2422 | simonpj@microsoft.com**20071221090406 |
|---|
| 2423 | |
|---|
| 2424 | In a few places we want to "look through" newtypes to get to the |
|---|
| 2425 | representation type. But we need to be careful that we don't fall |
|---|
| 2426 | into an ininite loop with e.g. |
|---|
| 2427 | newtype T = MkT T |
|---|
| 2428 | |
|---|
| 2429 | The old mechansim for doing this was to have a field nt_rep, inside |
|---|
| 2430 | a newtype TyCon, that gave the "ultimate representation" of the type. |
|---|
| 2431 | But that failed for Trac 1495, which looked like this: |
|---|
| 2432 | newtype Fix a = Fix (a (Fix a)) |
|---|
| 2433 | data I a = I a |
|---|
| 2434 | Then, expanding the type (Fix I) went on for ever. |
|---|
| 2435 | |
|---|
| 2436 | The right thing to do seems to be to check for loops when epxanding |
|---|
| 2437 | the *type*, rather than in the *tycon*. This patch does that, |
|---|
| 2438 | - Removes nt_rep from TyCon |
|---|
| 2439 | - Make Type.repType check for loops |
|---|
| 2440 | See Note [Expanding newtypes] in Type.lhs. |
|---|
| 2441 | |
|---|
| 2442 | At the same time I also fixed a bug for Roman, where newtypes were not |
|---|
| 2443 | being expanded properly in FamInstEnv.topNormaliseType. This function |
|---|
| 2444 | and Type.repType share a common structure. |
|---|
| 2445 | |
|---|
| 2446 | |
|---|
| 2447 | Ian, see if this merges easily to the branch |
|---|
| 2448 | If not, I don't think it's essential to fix 6.8 |
|---|
| 2449 | |
|---|
| 2450 | ] |
|---|
| 2451 | [Fix Trac #1981: seq on a type-family-typed expression |
|---|
| 2452 | simonpj@microsoft.com**20071221085542 |
|---|
| 2453 | |
|---|
| 2454 | We were crashing when we saw |
|---|
| 2455 | case x of DEFAULT -> rhs |
|---|
| 2456 | where x had a type-family type. This patch fixes it. |
|---|
| 2457 | |
|---|
| 2458 | MERGE to the 6.8 branch. |
|---|
| 2459 | |
|---|
| 2460 | |
|---|
| 2461 | ] |
|---|
| 2462 | [Comment only |
|---|
| 2463 | simonpj@microsoft.com**20071220164621] |
|---|
| 2464 | [Fix nasty recompilation bug in MkIface.computeChangedOccs |
|---|
| 2465 | simonpj@microsoft.com**20071220164307 |
|---|
| 2466 | |
|---|
| 2467 | MERGE to 6.8 branch |
|---|
| 2468 | |
|---|
| 2469 | In computeChangedOccs we look up the old version of a Name. |
|---|
| 2470 | But a WiredIn Name doesn't have an old version, because WiredIn things |
|---|
| 2471 | don't appear in interface files at all. |
|---|
| 2472 | |
|---|
| 2473 | Result: ghc-6.9: panic! (the 'impossible' happened) |
|---|
| 2474 | (GHC version 6.9 for x86_64-unknown-linux): |
|---|
| 2475 | lookupVers1 base:GHC.Prim chr#{v} |
|---|
| 2476 | |
|---|
| 2477 | This fixes the problem. The patch should merge easily onto the branch. |
|---|
| 2478 | |
|---|
| 2479 | |
|---|
| 2480 | ] |
|---|
| 2481 | [Fix Trac #1988; keep the ru_fn field of a RULE up to date |
|---|
| 2482 | simonpj@microsoft.com**20071220131912 |
|---|
| 2483 | |
|---|
| 2484 | The ru_fn field was wrong when we moved RULES from one Id to another. |
|---|
| 2485 | The fix is simple enough. |
|---|
| 2486 | |
|---|
| 2487 | However, looking at this makes me realise that the worker/wrapper stuff |
|---|
| 2488 | for recursive newtypes isn't very clever: we generate demand info but |
|---|
| 2489 | then don't properly exploit it. |
|---|
| 2490 | |
|---|
| 2491 | This patch fixes the crash though. |
|---|
| 2492 | |
|---|
| 2493 | ] |
|---|
| 2494 | [Add better panic message in getSRTInfo (Trac #1973) |
|---|
| 2495 | simonpj@microsoft.com**20071220180335] |
|---|
| 2496 | [Remove obselete code for update-in-place (which we no longer do) |
|---|
| 2497 | simonpj@microsoft.com**20071220173432] |
|---|
| 2498 | [Implement generalised list comprehensions |
|---|
| 2499 | simonpj@microsoft.com**20071220111300 |
|---|
| 2500 | |
|---|
| 2501 | This patch implements generalised list comprehensions, as described in |
|---|
| 2502 | the paper "Comprehensive comprehensions" (Peyton Jones & Wadler, Haskell |
|---|
| 2503 | Workshop 2007). If you don't use the new comprehensions, nothing |
|---|
| 2504 | should change. |
|---|
| 2505 | |
|---|
| 2506 | The syntax is not exactly as in the paper; see the user manual entry |
|---|
| 2507 | for details. |
|---|
| 2508 | |
|---|
| 2509 | You need an accompanying patch to the base library for this stuff |
|---|
| 2510 | to work. |
|---|
| 2511 | |
|---|
| 2512 | The patch is the work of Max Bolingbroke [batterseapower@hotmail.com], |
|---|
| 2513 | with some advice from Simon PJ. |
|---|
| 2514 | |
|---|
| 2515 | The related GHC Wiki page is |
|---|
| 2516 | http://hackage.haskell.org/trac/ghc/wiki/SQLLikeComprehensions |
|---|
| 2517 | |
|---|
| 2518 | ] |
|---|
| 2519 | [More bindist-publishing fixes and refactoring |
|---|
| 2520 | Ian Lynagh <igloo@earth.li>**20071218144505] |
|---|
| 2521 | [Fix publishing the docs |
|---|
| 2522 | Ian Lynagh <igloo@earth.li>**20071216122544] |
|---|
| 2523 | [FIX #1980: must check for ThreadRelocated in killThread# |
|---|
| 2524 | Simon Marlow <simonmar@microsoft.com>**20071217164610] |
|---|
| 2525 | [Eliminate external GMP dependencies |
|---|
| 2526 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071217093839 |
|---|
| 2527 | - Ensure the stage1 compiler uses ghc's own GMP library on Mac OS |
|---|
| 2528 | - Need to rebuild installPackage and ifBuildable with stage1 compiler as they |
|---|
| 2529 | go into bindists |
|---|
| 2530 | ] |
|---|
| 2531 | [Include ~/Library/Frameworks in the framework searchpath |
|---|
| 2532 | Ian Lynagh <igloo@earth.li>**20071217233457 |
|---|
| 2533 | Patch from Christian Maeder |
|---|
| 2534 | ] |
|---|
| 2535 | [Make ghcii.sh executable |
|---|
| 2536 | Ian Lynagh <igloo@earth.li>**20071217195734] |
|---|
| 2537 | [Don't rely on distrib/prep-bin-dist-mingw being executable |
|---|
| 2538 | Ian Lynagh <igloo@earth.li>**20071217195554] |
|---|
| 2539 | [always try to remove the new file before restoring the old one (#1963) |
|---|
| 2540 | Simon Marlow <simonmar@microsoft.com>**20071214123345] |
|---|
| 2541 | [Fix a bug in gen_contents_index |
|---|
| 2542 | Ian Lynagh <igloo@earth.li>**20071212121154 |
|---|
| 2543 | The library doc index thought that the docs were in $module.html, rather |
|---|
| 2544 | than $package/$module.html. |
|---|
| 2545 | ] |
|---|
| 2546 | [Fix lifting of case expressions |
|---|
| 2547 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071215000837 |
|---|
| 2548 | |
|---|
| 2549 | We have to explicity check for empty arrays in each alternative as recursive |
|---|
| 2550 | algorithms wouldn't terminate otherwise. |
|---|
| 2551 | ] |
|---|
| 2552 | [Use (UArr Int) instead of PArray_Int# in vectorisation |
|---|
| 2553 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071215000739] |
|---|
| 2554 | [Fix bug in VectInfo loading |
|---|
| 2555 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214230914] |
|---|
| 2556 | [Remove unused vectorisation built-in |
|---|
| 2557 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214011015] |
|---|
| 2558 | [Treat some standard data cons specially during vectorisation |
|---|
| 2559 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034855 |
|---|
| 2560 | |
|---|
| 2561 | This is a temporary hack which allows us to vectorise literals. |
|---|
| 2562 | ] |
|---|
| 2563 | [More vectorisation-related built ins |
|---|
| 2564 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034839] |
|---|
| 2565 | [Track changes to package ndp |
|---|
| 2566 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071212062714] |
|---|
| 2567 | [Add vectorisation built-ins |
|---|
| 2568 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071212040521] |
|---|
| 2569 | [FIX #1963: catch Ctrl-C and clean up properly |
|---|
| 2570 | Simon Marlow <simonmar@microsoft.com>**20071213154056] |
|---|
| 2571 | [Document the new threshold flags |
|---|
| 2572 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214003003] |
|---|
| 2573 | [Separate and optional size thresholds for SpecConstr and LiberateCase |
|---|
| 2574 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071214002719 |
|---|
| 2575 | |
|---|
| 2576 | This patch replaces -fspec-threshold by -fspec-constr-threshold and |
|---|
| 2577 | -fliberate-case-threshold. The thresholds can be disabled by |
|---|
| 2578 | -fno-spec-constr-threshold and -fno-liberate-case-threshold. |
|---|
| 2579 | ] |
|---|
| 2580 | [Make HscTypes.tyThingId respond not panic on ADataCon |
|---|
| 2581 | simonpj@microsoft.com**20071204152903] |
|---|
| 2582 | [Use Unix format for RnPat (no other change) |
|---|
| 2583 | simonpj@microsoft.com**20071213140532] |
|---|
| 2584 | [Improve free-variable handling for rnPat and friends (fixes Trac #1972) |
|---|
| 2585 | simonpj@microsoft.com**20071213140213 |
|---|
| 2586 | |
|---|
| 2587 | As well as fixing the immediate problem (Trac #1972) this patch does |
|---|
| 2588 | a signficant simplification and refactoring of pattern renaming. |
|---|
| 2589 | |
|---|
| 2590 | Fewer functions, fewer parameters passed....it's all good. But it |
|---|
| 2591 | took much longer than I expected to figure out. |
|---|
| 2592 | |
|---|
| 2593 | The most significant change is that the NameMaker type does *binding* |
|---|
| 2594 | as well as *making* and, in the matchNameMaker case, checks for unused |
|---|
| 2595 | bindings as well. This is much tider. |
|---|
| 2596 | |
|---|
| 2597 | (No need to merge to the 6.8 branch, but no harm either.) |
|---|
| 2598 | |
|---|
| 2599 | |
|---|
| 2600 | ] |
|---|
| 2601 | [Allow more than 3 simplifier iterations to be run in phase 0 |
|---|
| 2602 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040835 |
|---|
| 2603 | |
|---|
| 2604 | The number of iterations during the first run of phase 0 was erroneously |
|---|
| 2605 | hardcoded to 3. It should be *at least* 3 (see comments in code) but can be |
|---|
| 2606 | more. |
|---|
| 2607 | ] |
|---|
| 2608 | [Document -ddump-simpl-phases |
|---|
| 2609 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040822] |
|---|
| 2610 | [New flag: -ddump-simpl-phases |
|---|
| 2611 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213040644 |
|---|
| 2612 | |
|---|
| 2613 | This outputs the core after each simplifier phase (i.e., it produces less |
|---|
| 2614 | information that -ddump-simpl-iterations). |
|---|
| 2615 | ] |
|---|
| 2616 | [Don't dump simplifier iterations with -dverbose-core2core |
|---|
| 2617 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071213034635 |
|---|
| 2618 | |
|---|
| 2619 | SimonPJ says this is the correct behaviour. We still have |
|---|
| 2620 | -ddump-simpl-iterations. |
|---|
| 2621 | ] |
|---|
| 2622 | ["list --simple-output" should be quiet when there are no packages to list |
|---|
| 2623 | Simon Marlow <simonmar@microsoft.com>**20071212102230 |
|---|
| 2624 | |
|---|
| 2625 | Previously: |
|---|
| 2626 | |
|---|
| 2627 | $ ghc-pkg list --user --simple-output |
|---|
| 2628 | ghc-pkg: no matches |
|---|
| 2629 | $ |
|---|
| 2630 | |
|---|
| 2631 | Now: |
|---|
| 2632 | |
|---|
| 2633 | $ ghc-pkg list --user --simple-output |
|---|
| 2634 | $ |
|---|
| 2635 | ] |
|---|
| 2636 | [Fix vectorisation bug |
|---|
| 2637 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206233015] |
|---|
| 2638 | [Vectorisation-related built ins |
|---|
| 2639 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206040829] |
|---|
| 2640 | [Teach vectorisation about some temporary conversion functions |
|---|
| 2641 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071206032547] |
|---|
| 2642 | [Vectorise case of unit correctly |
|---|
| 2643 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221305] |
|---|
| 2644 | [Teach vectorisation about singletonP |
|---|
| 2645 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221240] |
|---|
| 2646 | [Optimise desugaring of parallel array comprehensions |
|---|
| 2647 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205221213] |
|---|
| 2648 | [Teach vectorisation about tuple datacons |
|---|
| 2649 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205050221] |
|---|
| 2650 | [Track additions to package ndp |
|---|
| 2651 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205042649] |
|---|
| 2652 | [Track changes to package ndp |
|---|
| 2653 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071205033859] |
|---|
| 2654 | [Improve pretty-printing of InstDecl |
|---|
| 2655 | simonpj@microsoft.com**20071210083053 |
|---|
| 2656 | |
|---|
| 2657 | Fixes Trac #1966. |
|---|
| 2658 | |
|---|
| 2659 | ] |
|---|
| 2660 | [Comments only |
|---|
| 2661 | Pepe Iborra <mnislaih@gmail.com>**20071208204815] |
|---|
| 2662 | [Refactoring only |
|---|
| 2663 | Pepe Iborra <mnislaih@gmail.com>**20071208195222 |
|---|
| 2664 | |
|---|
| 2665 | Suspensions in the Term datatype used for RTTI |
|---|
| 2666 | always get assigned a Type, so there is no reason |
|---|
| 2667 | to juggle around with a (Maybe Type) anymore. |
|---|
| 2668 | |
|---|
| 2669 | ] |
|---|
| 2670 | [Change the format used by :print to show the content of references |
|---|
| 2671 | Pepe Iborra <mnislaih@gmail.com>**20071208193013 |
|---|
| 2672 | |
|---|
| 2673 | This comes as result of the short discussion linked below. |
|---|
| 2674 | |
|---|
| 2675 | http://www.haskell.org/pipermail/cvs-ghc/2007-December/040049.html |
|---|
| 2676 | |
|---|
| 2677 | ] |
|---|
| 2678 | [Help the user when she tries to do :history without :trace |
|---|
| 2679 | Pepe Iborra <mnislaih@gmail.com>**20071208180918 |
|---|
| 2680 | |
|---|
| 2681 | Teach GHCi to show a "perhaps you forgot to use :trace?" when |
|---|
| 2682 | it finds that the user is trying to retrieve an empty :history |
|---|
| 2683 | |
|---|
| 2684 | ] |
|---|
| 2685 | [Prevent the binding of unboxed things by :print |
|---|
| 2686 | Pepe Iborra <mnislaih@gmail.com>**20071208181830] |
|---|
| 2687 | [Coercions from boxy splitters must be sym'ed in pattern matches |
|---|
| 2688 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071208105018] |
|---|
| 2689 | [Properly keep track of whether normalising given or wanted dicts |
|---|
| 2690 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071207071302 |
|---|
| 2691 | - The information of whether given or wanted class dictionaries where |
|---|
| 2692 | normalised by rewriting wasn't always correctly propagated in TcTyFuns, |
|---|
| 2693 | which lead to malformed dictionary bindings. |
|---|
| 2694 | - Also fixes a bug in TcPat.tcConPat where GADT equalities where emitted in |
|---|
| 2695 | the wrong position in case bindings (which led to CoreLint failures). |
|---|
| 2696 | ] |
|---|
| 2697 | [TcPat.tcConPat uses equalities instead of GADT refinement |
|---|
| 2698 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071120071208 |
|---|
| 2699 | * This patch implements the use of equality constraints instead of GADT |
|---|
| 2700 | refinements that we have been discussing for a while. |
|---|
| 2701 | * It just changes TcPat.tcConPat. It doesn't have any of the simplification |
|---|
| 2702 | and dead code removal that is possible due to this change. |
|---|
| 2703 | * At the moment, this patch breaks a fair number of GADT regression tests. |
|---|
| 2704 | ] |
|---|
| 2705 | [Use installPackage for register --inplace as well as installing |
|---|
| 2706 | Ian Lynagh <igloo@earth.li>**20071207234652 |
|---|
| 2707 | We also need to do the GHC.Prim hack when registering inplace or the |
|---|
| 2708 | tests that use it fail. |
|---|
| 2709 | ] |
|---|
| 2710 | [Fix the libraries Makefile |
|---|
| 2711 | Ian Lynagh <igloo@earth.li>**20071205125015 |
|---|
| 2712 | x && y |
|---|
| 2713 | is not the same as |
|---|
| 2714 | if x; then y; fi |
|---|
| 2715 | as the latter doesn't fail when x fails |
|---|
| 2716 | ] |
|---|
| 2717 | [Copy hscolour.css into dist/... so it gets installed with the library docs |
|---|
| 2718 | Ian Lynagh <igloo@earth.li>**20071205013703] |
|---|
| 2719 | [Add the hscolour.css from hscolour 1.8 |
|---|
| 2720 | Ian Lynagh <igloo@earth.li>**20071205011733] |
|---|
| 2721 | [BIN_DIST_INST_SUBDIR Needs to be defined in config.mk so ./Makefile can see it |
|---|
| 2722 | Ian Lynagh <igloo@earth.li>**20071207121317] |
|---|
| 2723 | [#include ../includes/MachRegs.h rather than just MachRegs.h |
|---|
| 2724 | Ian Lynagh <igloo@earth.li>**20071205170335 |
|---|
| 2725 | This fixes building on NixOS. I'm not sure why it worked everywhere else, |
|---|
| 2726 | but not on NixOS, before. |
|---|
| 2727 | ] |
|---|
| 2728 | [Fix bindist creation: readline/config.mk is gone |
|---|
| 2729 | Ian Lynagh <igloo@earth.li>**20071203123031] |
|---|
| 2730 | [FIX #1843: Generate different instructions on PPC |
|---|
| 2731 | Ian Lynagh <igloo@earth.li>**20071203123237 |
|---|
| 2732 | The old ones caused lots of |
|---|
| 2733 | unknown scattered relocation type 4 |
|---|
| 2734 | errors. Patch from Chris Kuklewicz. |
|---|
| 2735 | ] |
|---|
| 2736 | [Refactor gen_contents_index |
|---|
| 2737 | Ian Lynagh <igloo@earth.li>**20071207183538 |
|---|
| 2738 | Also fixes it with Solaris's sh, spotted by Christian Maeder |
|---|
| 2739 | ] |
|---|
| 2740 | [Use GHC.Exts rather than GHC.Prim |
|---|
| 2741 | Ian Lynagh <igloo@earth.li>**20071202234222] |
|---|
| 2742 | [Alter the base:GHC.Prim hack in installPackage, following changes in base |
|---|
| 2743 | Ian Lynagh <igloo@earth.li>**20071202215719] |
|---|
| 2744 | [Remove debug warning, and explain why |
|---|
| 2745 | simonpj@microsoft.com**20071207170507] |
|---|
| 2746 | [comment only |
|---|
| 2747 | Simon Marlow <simonmar@microsoft.com>**20071206092422] |
|---|
| 2748 | [comment typo |
|---|
| 2749 | Simon Marlow <simonmar@microsoft.com>**20071206092412] |
|---|
| 2750 | [add Outputable instance for OccIfaceEq |
|---|
| 2751 | Simon Marlow <simonmar@microsoft.com>**20071206092403] |
|---|
| 2752 | [Workaround for #1959: assume untracked names have changed |
|---|
| 2753 | Simon Marlow <simonmar@microsoft.com>**20071206092349 |
|---|
| 2754 | This fixes the 1959 test, but will do more recompilation than is |
|---|
| 2755 | strictly necessary (but only when -O is on). Still, more |
|---|
| 2756 | recompilation is better than segfaults, link errors or other random |
|---|
| 2757 | breakage. |
|---|
| 2758 | ] |
|---|
| 2759 | [FIX part of #1959: declaration versions were not being incremented correctly |
|---|
| 2760 | Simon Marlow <simonmar@microsoft.com>**20071206084556 |
|---|
| 2761 | We were building a mapping from ModuleName to [Occ] from the usage |
|---|
| 2762 | list, using the usg_mod field as the key. Unfortunately, due to a |
|---|
| 2763 | very poor naming decision, usg_mod is actually the module version, not |
|---|
| 2764 | the ModuleName. usg_name is the ModuleName. Since Version is also an |
|---|
| 2765 | instance of Uniquable, there was no type error: all that happened was |
|---|
| 2766 | lookups in the map never succeeded. I shall rename the fields of |
|---|
| 2767 | Usage in a separate patch. |
|---|
| 2768 | |
|---|
| 2769 | This doesn't completely fix #1959, but it gets part of the way there. |
|---|
| 2770 | |
|---|
| 2771 | I have to take partial blame as the person who wrote this fragment of |
|---|
| 2772 | code in late 2006 (patch "Interface file optimisation and removal of |
|---|
| 2773 | nameParent"). |
|---|
| 2774 | ] |
|---|
| 2775 | [move FP_FIND_ROOT after the "GHC is required" check |
|---|
| 2776 | Simon Marlow <simonmar@microsoft.com>**20071205101814] |
|---|
| 2777 | [FIX #1110: hackery also needed when running gcc for CPP |
|---|
| 2778 | Simon Marlow <simonmar@microsoft.com>**20071205150230] |
|---|
| 2779 | [Teach :print to follow references (STRefs and IORefs) |
|---|
| 2780 | Pepe Iborra <mnislaih@gmail.com>**20071204105511 |
|---|
| 2781 | |
|---|
| 2782 | Prelude Data.IORef> :p l |
|---|
| 2783 | l = (_t4::Maybe Integer) : (_t5::[Maybe Integer]) |
|---|
| 2784 | Prelude Data.IORef> p <- newIORef l |
|---|
| 2785 | Prelude Data.IORef> :p p |
|---|
| 2786 | p = GHC.IOBase.IORef (GHC.STRef.STRef {((_t6::Maybe Integer) : |
|---|
| 2787 | (_t7::[Maybe Integer]))}) |
|---|
| 2788 | Prelude Data.IORef> :sp p |
|---|
| 2789 | p = GHC.IOBase.IORef (GHC.STRef.STRef {(_ : _)}) |
|---|
| 2790 | |
|---|
| 2791 | |
|---|
| 2792 | I used braces to denote the contents of a reference. |
|---|
| 2793 | Perhaps there is a more appropriate notation? |
|---|
| 2794 | ] |
|---|
| 2795 | [refactoring only |
|---|
| 2796 | Pepe Iborra <mnislaih@gmail.com>**20071202125400] |
|---|
| 2797 | [Change --shared to -shared in Win32 DLL docs |
|---|
| 2798 | simonpj@microsoft.com**20071204154023] |
|---|
| 2799 | [protect console handler against concurrent access (#1922) |
|---|
| 2800 | Simon Marlow <simonmar@microsoft.com>**20071204153918] |
|---|
| 2801 | [Make eta reduction check more carefully for bottoms (fix Trac #1947) |
|---|
| 2802 | simonpj@microsoft.com**20071204145803 |
|---|
| 2803 | |
|---|
| 2804 | Eta reduction was wrongly transforming |
|---|
| 2805 | f = \x. f x |
|---|
| 2806 | to |
|---|
| 2807 | f = f |
|---|
| 2808 | |
|---|
| 2809 | Solution: don't trust f's arity information; instead look at its |
|---|
| 2810 | unfolding. See Note [Eta reduction conditions] |
|---|
| 2811 | |
|---|
| 2812 | Almost all the new lines are comments! |
|---|
| 2813 | |
|---|
| 2814 | |
|---|
| 2815 | ] |
|---|
| 2816 | [Improve inlining for INLINE non-functions |
|---|
| 2817 | simonpj@microsoft.com**20071204114955 |
|---|
| 2818 | |
|---|
| 2819 | (No need to merge to 6.8, but no harm if a subsequent patch needs it.) |
|---|
| 2820 | |
|---|
| 2821 | The proximate cause for this patch is to improve the inlining for INLINE |
|---|
| 2822 | things that are not functions; this came up in the NDP project. See |
|---|
| 2823 | Note [Lone variables] in CoreUnfold. |
|---|
| 2824 | |
|---|
| 2825 | This caused some refactoring that actually made things simpler. In |
|---|
| 2826 | particular, more of the inlining logic has moved from SimplUtils to |
|---|
| 2827 | CoreUnfold, where it belongs. |
|---|
| 2828 | |
|---|
| 2829 | |
|---|
| 2830 | ] |
|---|
| 2831 | [fix race conditions in sandboxIO (#1583, #1922, #1946) |
|---|
| 2832 | Simon Marlow <simonmar@microsoft.com>**20071204114444 |
|---|
| 2833 | using the new block-inheriting forkIO (#1048) |
|---|
| 2834 | ] |
|---|
| 2835 | [:cd with no argument goes to the user's home directory |
|---|
| 2836 | Simon Marlow <simonmar@microsoft.com>**20071204113945 |
|---|
| 2837 | Seems better than getting a confusing 'cannot find directory' exception. |
|---|
| 2838 | ] |
|---|
| 2839 | [forkIO starts the new thread blocked if the parent is blocked (#1048) |
|---|
| 2840 | Simon Marlow <simonmar@microsoft.com>**20071204110947] |
|---|
| 2841 | [Improve eta reduction, to reduce Simplifier iterations |
|---|
| 2842 | simonpj@microsoft.com**20071203150039 |
|---|
| 2843 | |
|---|
| 2844 | I finally got around to investigating why the Simplifier was sometimes |
|---|
| 2845 | iterating so often. There's a nice example in Text.ParserCombinators.ReadPrec, |
|---|
| 2846 | which produced: |
|---|
| 2847 | |
|---|
| 2848 | NOTE: Simplifier still going after 3 iterations; bailing out. Size = 339 |
|---|
| 2849 | NOTE: Simplifier still going after 3 iterations; bailing out. Size = 339 |
|---|
| 2850 | NOTE: Simplifier still going after 3 iterations; bailing out. Size = 339 |
|---|
| 2851 | |
|---|
| 2852 | No progress is being made. It turned out that an interaction between |
|---|
| 2853 | eta-expansion, casts, and eta reduction was responsible. The change is |
|---|
| 2854 | small and simple, in SimplUtils.mkLam: do not require the body to be |
|---|
| 2855 | a Lam when floating the cast outwards. |
|---|
| 2856 | |
|---|
| 2857 | I also discovered a missing side condition in the same equation, so fixing |
|---|
| 2858 | that is good too. Now there is no loop when compiling ReadPrec. |
|---|
| 2859 | |
|---|
| 2860 | Should do a full nofib run though. |
|---|
| 2861 | |
|---|
| 2862 | ] |
|---|
| 2863 | [Don't default to stripping binaries when installing |
|---|
| 2864 | Ian Lynagh <igloo@earth.li>**20071202195817] |
|---|
| 2865 | [Improve pretty-printing for Insts |
|---|
| 2866 | simonpj@microsoft.com**20071128173125] |
|---|
| 2867 | [Reorganise TcSimplify (again); FIX Trac #1919 |
|---|
| 2868 | simonpj@microsoft.com**20071128173146 |
|---|
| 2869 | |
|---|
| 2870 | This was a bit tricky. We had a "given" dict like (d7:Eq a); then it got |
|---|
| 2871 | supplied to reduceImplication, which did some zonking, and emerged with |
|---|
| 2872 | a "needed given" (d7:Eq Int). That got everything confused. |
|---|
| 2873 | |
|---|
| 2874 | I found a way to simplify matters significantly. Now reduceContext |
|---|
| 2875 | - first deals with methods/literals/dictionaries |
|---|
| 2876 | - then deals with implications |
|---|
| 2877 | Separating things in this way not only made the bug go away, but |
|---|
| 2878 | eliminated the need for the recently-added "needed-givens" results returned |
|---|
| 2879 | by checkLoop. Hurrah. |
|---|
| 2880 | |
|---|
| 2881 | It's still a swamp. But it's a bit better. |
|---|
| 2882 | |
|---|
| 2883 | ] |
|---|
| 2884 | [FIX #1914: GHCi forgot all the modules that were loaded before an error |
|---|
| 2885 | Simon Marlow <simonmar@microsoft.com>**20071130130734] |
|---|
| 2886 | [FIX #1744: ignore the byte-order mark at the beginning of a file |
|---|
| 2887 | Simon Marlow <simonmar@microsoft.com>**20071130101100] |
|---|
| 2888 | [FIX Trac #1935: generate superclass constraints for derived classes |
|---|
| 2889 | simonpj@microsoft.com**20071128150541 |
|---|
| 2890 | |
|---|
| 2891 | This bug only reports a problem with phantom types, but actually |
|---|
| 2892 | there was quite a long-standing and significant omission in the |
|---|
| 2893 | constraint generation for derived classes. See |
|---|
| 2894 | Note [Superclasses of derived instance] in TcDeriv. |
|---|
| 2895 | |
|---|
| 2896 | The test deriving-1935 tests both cases. |
|---|
| 2897 | |
|---|
| 2898 | |
|---|
| 2899 | ] |
|---|
| 2900 | [Print a bit more info in VarBinds (no need to merge) |
|---|
| 2901 | simonpj@microsoft.com**20071128150354] |
|---|
| 2902 | [Check for duplicate bindings in CoreLint |
|---|
| 2903 | simonpj@microsoft.com**20071128150214] |
|---|
| 2904 | [add comment |
|---|
| 2905 | Simon Marlow <simonmar@microsoft.com>**20071128111417] |
|---|
| 2906 | [FIX #1916: don't try to convert float constants to int in CMM optimizer |
|---|
| 2907 | Bertram Felgenhauer <int-e@gmx.de>**20071122095513] |
|---|
| 2908 | [give a more useful message when the static flags have not been initialised (#1938) |
|---|
| 2909 | Simon Marlow <simonmar@microsoft.com>**20071127135435] |
|---|
| 2910 | [Rebuild utils with the stage1 compiler when making a bindist; fixes trac #1860 |
|---|
| 2911 | Ian Lynagh <igloo@earth.li>**20071127203959 |
|---|
| 2912 | This is a bit unpleasant, as "make binary-dist" really shouldn't actually |
|---|
| 2913 | build anything, but it works. |
|---|
| 2914 | ] |
|---|
| 2915 | [Remove the --print-docdir flag |
|---|
| 2916 | Ian Lynagh <igloo@earth.li>**20071127195605 |
|---|
| 2917 | It wasn't doing the right thing for bindists. Let's rethink... |
|---|
| 2918 | ] |
|---|
| 2919 | [FIX #1925: the interpreter was not maintaining tag bits correctly |
|---|
| 2920 | Simon Marlow <simonmar@microsoft.com>**20071127122614 |
|---|
| 2921 | See comment for details |
|---|
| 2922 | ] |
|---|
| 2923 | [add missing instruction: ALLOC_AP_NOUPD |
|---|
| 2924 | Simon Marlow <simonmar@microsoft.com>**20071127122604] |
|---|
| 2925 | [Check tag bits on the fun pointer of a PAP |
|---|
| 2926 | Simon Marlow <simonmar@microsoft.com>**20071126160420] |
|---|
| 2927 | [canonicalise the path to HsColour |
|---|
| 2928 | Simon Marlow <simonmar@microsoft.com>**20071126141614] |
|---|
| 2929 | [Consistently put www. on the front of haskell.org in URLs |
|---|
| 2930 | Ian Lynagh <igloo@earth.li>**20071126215256] |
|---|
| 2931 | [Fix some more URLs |
|---|
| 2932 | Ian Lynagh <igloo@earth.li>**20071126214147] |
|---|
| 2933 | [Tweak some URLs |
|---|
| 2934 | Ian Lynagh <igloo@earth.li>**20071126194148] |
|---|
| 2935 | [Fix some links |
|---|
| 2936 | Ian Lynagh <igloo@earth.li>**20071126184406] |
|---|
| 2937 | [Copy gmp stamps into bindists, so we don't try and rebuild gmp |
|---|
| 2938 | Ian Lynagh <igloo@earth.li>**20071125211919] |
|---|
| 2939 | [On Windows, Delete the CriticalSection's we Initialize |
|---|
| 2940 | Ian Lynagh <igloo@earth.li>**20071125125845] |
|---|
| 2941 | [On Windows, add a start menu link to the flag reference |
|---|
| 2942 | Ian Lynagh <igloo@earth.li>**20071125124429] |
|---|
| 2943 | [Remove html/ from the paths we put in the start menu on Windows |
|---|
| 2944 | Ian Lynagh <igloo@earth.li>**20071125124150] |
|---|
| 2945 | [MERGED: Make ":" in GHCi repeat the last command |
|---|
| 2946 | Ian Lynagh <igloo@earth.li>**20071125122020 |
|---|
| 2947 | Ian Lynagh <igloo@earth.li>**20071124231857 |
|---|
| 2948 | It used to be a synonym for ":r" in 6.6.1, but this wasn't documented or |
|---|
| 2949 | known about by the developers. In 6.8.1 it was accidentally broken. |
|---|
| 2950 | This patch brings it back, but as "repeat the last command", similar to |
|---|
| 2951 | pressing enter in gdb. This is almost as good for people who want it to |
|---|
| 2952 | reload, and means that it can also be used to repeat commands like :step. |
|---|
| 2953 | ] |
|---|
| 2954 | [MERGED: Put library docs in a $pkg, rather than $pkgid, directory; fixes trac #1864 |
|---|
| 2955 | Ian Lynagh <igloo@earth.li>**20071124212305 |
|---|
| 2956 | Ian Lynagh <igloo@earth.li>**20071124171220 |
|---|
| 2957 | ] |
|---|
| 2958 | [Don't make a library documentation prologue |
|---|
| 2959 | Ian Lynagh <igloo@earth.li>**20071124211943 |
|---|
| 2960 | It's far too large now, and no-one complained when 6.8.1 didn't have one. |
|---|
| 2961 | ] |
|---|
| 2962 | [Don't put package version numbers in links in index.html |
|---|
| 2963 | Ian Lynagh <igloo@earth.li>**20071124211629] |
|---|
| 2964 | [Define install-strip in Makefile |
|---|
| 2965 | Ian Lynagh <igloo@earth.li>**20071124205037] |
|---|
| 2966 | [Define install-strip in distrib/Makefile |
|---|
| 2967 | Ian Lynagh <igloo@earth.li>**20071124204803] |
|---|
| 2968 | [Install gmp from bindists; fixes trac #1848 |
|---|
| 2969 | Ian Lynagh <igloo@earth.li>**20071124185240] |
|---|
| 2970 | [(native gen) fix code generated for GDTOI on x86_32 |
|---|
| 2971 | Bertram Felgenhauer <int-e@gmx.de>**20071121063942 |
|---|
| 2972 | See trac #1910. |
|---|
| 2973 | ] |
|---|
| 2974 | [Copy the INSTALL hack from mk/config.mk.in into distrib/Makefile-bin-vars.in |
|---|
| 2975 | Ian Lynagh <igloo@earth.li>**20071124163028 |
|---|
| 2976 | configure will set INSTALL to ./install-sh if it can't find it in the path, |
|---|
| 2977 | so we need to replace the . with the path to our root. |
|---|
| 2978 | ] |
|---|
| 2979 | [Make install-sh executable /before/ we try to find it |
|---|
| 2980 | Ian Lynagh <igloo@earth.li>**20071124162450] |
|---|
| 2981 | [Document --info in the +RTS -? help |
|---|
| 2982 | Ian Lynagh <igloo@earth.li>**20071123204352] |
|---|
| 2983 | [MERGED: If we have hscolour then make source code links in teh haddock docs |
|---|
| 2984 | Ian Lynagh <igloo@earth.li>**20071123233113 |
|---|
| 2985 | Fri Nov 23 13:15:59 PST 2007 Ian Lynagh <igloo@earth.li> |
|---|
| 2986 | ] |
|---|
| 2987 | [Tidy and trim the type environment in mkBootModDetails |
|---|
| 2988 | simonpj@microsoft.com**20071123153519 |
|---|
| 2989 | |
|---|
| 2990 | Should fix Trac #1833 |
|---|
| 2991 | |
|---|
| 2992 | We were failing to trim the type envt in mkBootModDetails, so several |
|---|
| 2993 | functions all called (*), for example, were getting into the interface. |
|---|
| 2994 | Result chaos. It only actually bites when we do the retyping-loop thing, |
|---|
| 2995 | which is why it's gone so long without a fix. |
|---|
| 2996 | |
|---|
| 2997 | |
|---|
| 2998 | ] |
|---|
| 2999 | [refactor: HscNothing and boot modules do not need desugaring |
|---|
| 3000 | Simon Marlow <simonmar@microsoft.com>**20071123135237] |
|---|
| 3001 | [FIX #1910: fix code generated for GDTOI on x86_32 |
|---|
| 3002 | Bertram Felgenhauer <int-e@gmx.de>*-20071121102627] |
|---|
| 3003 | [Properly ppr InstEqs in wanteds of implication constraints |
|---|
| 3004 | Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20071122093002] |
|---|
| 3005 | [FIX #1910: fix code generated for GDTOI on x86_32 |
|---|
| 3006 | Bertram Felgenhauer <int-e@gmx.de>**20071121102627] |
|---|
| 3007 | [Add built-in Double operations to vectorisation |
|---|
| 3008 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071122002517] |
|---|
| 3009 | [Teach vectorisation about Double |
|---|
| 3010 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071121054932] |
|---|
| 3011 | [Vectorise polyexprs with notes |
|---|
| 3012 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071121053102] |
|---|
| 3013 | [Make rebindable do-notation behave as advertised |
|---|
| 3014 | simonpj@microsoft.com**20071121174914 |
|---|
| 3015 | |
|---|
| 3016 | Adopt Trac #1537. The patch ended up a bit bigger than I expected, |
|---|
| 3017 | so I suggest we do not merge this into the 6.8 branch. But there |
|---|
| 3018 | is no funadamental reason why not. |
|---|
| 3019 | |
|---|
| 3020 | With this patch, rebindable do-notation really does type as if you |
|---|
| 3021 | had written the original (>>) and (>>=) operations in desguared form. |
|---|
| 3022 | |
|---|
| 3023 | I ended up refactoring some of the (rather complicated) error-context |
|---|
| 3024 | stuff in TcUnify, by pushing an InstOrigin into tcSubExp and its |
|---|
| 3025 | various calls. That means we could get rid of tcFunResTy, and the |
|---|
| 3026 | SubCtxt type. This should improve error messages slightly |
|---|
| 3027 | in complicated situations, because we have an Origin to hand |
|---|
| 3028 | to instCall (in the (isSigmaTy actual_ty) case of tc_sub1). |
|---|
| 3029 | |
|---|
| 3030 | Thanks to Pepe for the first draft of the patch. |
|---|
| 3031 | |
|---|
| 3032 | ] |
|---|
| 3033 | [Add DEBUG-only flag -dsuppress-uniques to suppress printing of uniques |
|---|
| 3034 | simonpj@microsoft.com**20071116152446 |
|---|
| 3035 | |
|---|
| 3036 | This is intended only for debugging use: it makes it easier to |
|---|
| 3037 | compare two variants without the variations between uniques mattering. |
|---|
| 3038 | |
|---|
| 3039 | (Of course, you can't actually feed the output to the C compiler |
|---|
| 3040 | or assembler and expect anything sensible to happen!) |
|---|
| 3041 | |
|---|
| 3042 | ] |
|---|
| 3043 | [Add -dcore-lint when validating libraries |
|---|
| 3044 | simonpj@microsoft.com**20071105164733] |
|---|
| 3045 | [Fix Trac #1913: check data const for derived types are in scope |
|---|
| 3046 | simonpj@microsoft.com**20071121151428 |
|---|
| 3047 | |
|---|
| 3048 | When deriving an instance, the data constructors should all be in scope. |
|---|
| 3049 | This patch checks the condition. |
|---|
| 3050 | |
|---|
| 3051 | |
|---|
| 3052 | ] |
|---|
| 3053 | [Fix Trac #1909: type of map in docs |
|---|
| 3054 | simonpj@microsoft.com**20071120160152] |
|---|
| 3055 | [Move file locking into the RTS, fixing #629, #1109 |
|---|
| 3056 | Simon Marlow <simonmar@microsoft.com>**20071120140859 |
|---|
| 3057 | File locking (of the Haskell 98 variety) was previously done using a |
|---|
| 3058 | static table with linear search, which had two problems: the array had |
|---|
| 3059 | a fixed size and was sometimes too small (#1109), and performance of |
|---|
| 3060 | lockFile/unlockFile was suboptimal due to the linear search. |
|---|
| 3061 | Also the algorithm failed to count readers as required by Haskell 98 |
|---|
| 3062 | (#629). |
|---|
| 3063 | |
|---|
| 3064 | Now it's done using a hash table (provided by the RTS). Furthermore I |
|---|
| 3065 | avoided the extra fstat() for every open file by passing the dev_t and |
|---|
| 3066 | ino_t into lockFile. This and the improvements to the locking |
|---|
| 3067 | algorithm result in a healthy 20% or so performance increase for |
|---|
| 3068 | opening/closing files (see openFile008 test). |
|---|
| 3069 | ] |
|---|
| 3070 | [FIX Trac #1825: standalone deriving Typeable |
|---|
| 3071 | simonpj@microsoft.com**20071120125732 |
|---|
| 3072 | |
|---|
| 3073 | Standalone deriving of typeable now requires you to say |
|---|
| 3074 | instance Typeable1 Maybe |
|---|
| 3075 | which is exactly the shape of instance decl that is generated |
|---|
| 3076 | by a 'deriving( Typeable )' clause on the data type decl. |
|---|
| 3077 | |
|---|
| 3078 | This is a bit horrid, but it's the only consistent way, at least |
|---|
| 3079 | for now. If you say something else, the error messages are helpful. |
|---|
| 3080 | |
|---|
| 3081 | MERGE to 6.8 branch |
|---|
| 3082 | |
|---|
| 3083 | ] |
|---|
| 3084 | [FIX #1715: egregious bug in ifaceDeclSubBndrs |
|---|
| 3085 | simonpj@microsoft.com**20071120111723 |
|---|
| 3086 | |
|---|
| 3087 | ifaceDeclSubBndrs didn't have an IfaceSyn case; but with type |
|---|
| 3088 | families an IfaceSyn can introduce subordinate binders. Result: |
|---|
| 3089 | chaos. |
|---|
| 3090 | |
|---|
| 3091 | The fix is easy though. Merge to 6.8 branch. |
|---|
| 3092 | |
|---|
| 3093 | |
|---|
| 3094 | ] |
|---|
| 3095 | [Always do 'setup makefile' before building each library |
|---|
| 3096 | Simon Marlow <simonmar@microsoft.com>**20071120103329 |
|---|
| 3097 | This forces preprocessing to happen, which is necessary if any of the |
|---|
| 3098 | .hsc files have been modified. Without this change, a 'setup |
|---|
| 3099 | makefile' would be required by hand after a .hsc file changed. |
|---|
| 3100 | Fortunately 'setup makefile' isn't much extra work, and I've made it |
|---|
| 3101 | not overwrite GNUmakefile if it hasn't changed, which avoids |
|---|
| 3102 | recalculating the dependencies each time. |
|---|
| 3103 | ] |
|---|
| 3104 | [FIX #1847 (improve :browse! docs, fix unqual) |
|---|
| 3105 | claus.reinke@talk21.com**20071108013147 |
|---|
| 3106 | |
|---|
| 3107 | - add example to docs, explain how to interpret |
|---|
| 3108 | output of `:browse! Data.Maybe` |
|---|
| 3109 | - print unqualified names according to current |
|---|
| 3110 | context, not the context of the target module |
|---|
| 3111 | |
|---|
| 3112 | ] |
|---|
| 3113 | [Track changes to package ndp |
|---|
| 3114 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071120033716] |
|---|
| 3115 | [Temporary hack for passing PArrays from unvectorised to vectorised code |
|---|
| 3116 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071120024545] |
|---|
| 3117 | [Bind NDP stuff to [:.:] arrays |
|---|
| 3118 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119020302] |
|---|
| 3119 | [Don't treat enumerations specially during vectorisation for the moment |
|---|
| 3120 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119013729] |
|---|
| 3121 | [Fix bugs in vectorisation of case expressions |
|---|
| 3122 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119013714] |
|---|
| 3123 | [More built-in NDP combinators |
|---|
| 3124 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071119012205] |
|---|
| 3125 | [New vectorisation built-ins |
|---|
| 3126 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118051940] |
|---|
| 3127 | [Fix bug in conversion unvect/vect |
|---|
| 3128 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118051926] |
|---|
| 3129 | [Extend built-in vectorisation environments |
|---|
| 3130 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118045219] |
|---|
| 3131 | [Fix bug in generation of environments for vectorisation |
|---|
| 3132 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118045203] |
|---|
| 3133 | [Add builtin var->var mapping to vectorisation |
|---|
| 3134 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118042605] |
|---|
| 3135 | [Extend vectorisation built-in mappings with datacons |
|---|
| 3136 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118034351] |
|---|
| 3137 | [Change representation of parallel arrays of enumerations |
|---|
| 3138 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118033355] |
|---|
| 3139 | [Add vectorisation-related builtin |
|---|
| 3140 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071118031513] |
|---|
| 3141 | [Teach vectorisation about Bool |
|---|
| 3142 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117042714] |
|---|
| 3143 | [Incomplete support for boxing during vectorisation |
|---|
| 3144 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117040739] |
|---|
| 3145 | [Make sure some TyCons always vectorise to themselves |
|---|
| 3146 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117040537] |
|---|
| 3147 | [Simple conversion vectorised -> unvectorised |
|---|
| 3148 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117023029] |
|---|
| 3149 | [Fix bug in case vectorisation |
|---|
| 3150 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071117015014] |
|---|
| 3151 | [Vectorisation of algebraic case expressions |
|---|
| 3152 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116074814] |
|---|
| 3153 | [More vectorisation-related built-ins |
|---|
| 3154 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116061831] |
|---|
| 3155 | [Vectorisation utilities |
|---|
| 3156 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116051037] |
|---|
| 3157 | [Add vectorisation built-ins |
|---|
| 3158 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116050959] |
|---|
| 3159 | [Fix vectorisation of binders in case expressions |
|---|
| 3160 | Roman Leshchinskiy <rl@cse.unsw.edu.au>**20071116021833] |
|---|
| 3161 | [Two small typos in the flags summary (merge to 6.8 branch) |
|---|
| 3162 | simonpj@microsoft.com**20071119134639] |
|---|
| 3163 | [Improve the situation for Trac #959: civilised warning instead of a trace msg |
|---|
| 3164 | simonpj@microsoft.com**20071119122938 |
|---|
| 3165 | |
|---|
| 3166 | This doesn't fix the root cause of the bug, but it makes the report |
|---|
| 3167 | more civilised, and points to further info. |
|---|
| 3168 | |
|---|
| 3169 | ] |
|---|
| 3170 | [FIX Trac #1806: test for correct arity for datacon in infix pattern patch |
|---|
| 3171 | simonpj@microsoft.com**20071119114301 |
|---|
| 3172 | |
|---|
| 3173 | Happily the fix is easy; pls merge |
|---|
| 3174 | |
|---|
| 3175 | ] |
|---|
| 3176 | [Accept x86_64-*-freebsd* as well as amd64-*-freebsd* in configure.ac |
|---|
| 3177 | Ian Lynagh <igloo@earth.li>**20071117154502 |
|---|
| 3178 | Patch from Brian P. O'Hanlon |
|---|
| 3179 | ] |
|---|
| 3180 | [Attempt at fixing #1873, #1360 |
|---|
| 3181 | Simon Marlow <simonmar@microsoft.com>**20071116152148 |
|---|
| 3182 | |
|---|
| 3183 | I think I figured out a reasonable way to manage the GHCi context, |
|---|
| 3184 | comments welcome. |
|---|
| 3185 | |
|---|
| 3186 | Rule 1: external package modules in the context are persistent. That |
|---|
| 3187 | is, when you say 'import Data.Maybe' it survives over :load, :add, |
|---|
| 3188 | :reload and :cd. |
|---|
| 3189 | |
|---|
| 3190 | Rule 2: :load and :add remove all home-package modules from the |
|---|
| 3191 | context and add the rightmost target, as a *-module if possible. This |
|---|
| 3192 | is as before, and makes sense for :load because we're starting a new |
|---|
| 3193 | program; the old home-package modules don't make sense any more. For |
|---|
| 3194 | :add, it usually does what you want, because the new target will |
|---|
| 3195 | become the context. |
|---|
| 3196 | |
|---|
| 3197 | Rule 3: any modules from the context that fail to load during a |
|---|
| 3198 | :reload are remembered, and re-added to the context at the next |
|---|
| 3199 | successful :reload. |
|---|
| 3200 | |
|---|
| 3201 | Claus' suggestion about adding the "remembered" modules to the prompt |
|---|
| 3202 | prefixed with a ! is implemented but commented out. I couldn't |
|---|
| 3203 | decide whether it was useful or confusing. |
|---|
| 3204 | |
|---|
| 3205 | One difference that people might notice is that after a :reload where |
|---|
| 3206 | there were errors, GHCi would previously dump you in the most recent |
|---|
| 3207 | module that it loaded. Now it dumps you in whatever subset of the |
|---|
| 3208 | current context still makes sense, and in the common case that will |
|---|
| 3209 | probably be {Prelude}. |
|---|
| 3210 | ] |
|---|
| 3211 | [Wibble to fix Trac #1901 (shorten messsage slightly) |
|---|
| 3212 | simonpj@microsoft.com**20071116150341] |
|---|
| 3213 | [Improve links from flag reference to the relevant section; and improve doc of RankN flags |
|---|
| 3214 | simonpj@microsoft.com**20071116145816] |
|---|
| 3215 | [FIX Trac #1901: check no existential context in H98 mode |
|---|
| 3216 | simonpj@microsoft.com**20071116145609] |
|---|
| 3217 | [Improve documentation of data type declarations (Trac #1901) |
|---|
| 3218 | simonpj@microsoft.com**20071116081841] |
|---|
| 3219 | [Change the command-line semantics for query commands |
|---|
| 3220 | Simon Marlow <simonmar@microsoft.com>**20071116132046 |
|---|
| 3221 | |
|---|
| 3222 | From the help text: |
|---|
| 3223 | |
|---|
| 3224 | Commands that query the package database (list, latest, describe, |
|---|
| 3225 | field) operate on the list of databases specified by the flags |
|---|
| 3226 | --user, --global, and --package-conf. If none of these flags are |
|---|
| 3227 | given, the default is --global --user. |
|---|
| 3228 | |
|---|
| 3229 | This makes it possible to query just a single database (e.g. the |
|---|
| 3230 | global one without the user one), which needed tricks to accomplish |
|---|
| 3231 | before. |
|---|
| 3232 | ] |
|---|
| 3233 | [use "ghc-pkg latest --global" instead of "ghc-pkg list --simple-output" |
|---|
| 3234 | Simon Marlow <simonmar@microsoft.com>**20071116122018 |
|---|
| 3235 | The former now does the right thing: it uses the global database only, |
|---|
| 3236 | and picks the most recent package with the given name. |
|---|
| 3237 | ] |
|---|
| 3238 | [Disallow installing packages whose names differ in case only. |
|---|
| 3239 | Simon Marlow <simonmar@microsoft.com>**20071116121153 |
|---|
| 3240 | --force overrides. Requested by Duncan Coutts, with a view to |
|---|
| 3241 | treating package names as case-insensitive in the future. |
|---|
| 3242 | ] |
|---|
| 3243 | [FIX BUILD (with GHC 6.2.x): update .hi-boot file |
|---|
| 3244 | Simon Marlow <simonmar@microsoft.com>**20071116101227] |
|---|
| 3245 | [FIX #1828: installing to a patch with spaces in |
|---|
| 3246 | Simon Marlow <simonmar@microsoft.com>**20071115155747 |
|---|
| 3247 | We have to pass the path to gcc when calling windres, which itself |
|---|
| 3248 | might have spaces in. Furthermore, we have to pass the path to gcc's |
|---|
| 3249 | tools to gcc. This means getting the quoting right, and after much |
|---|
| 3250 | experimentation and reading of the windres sources I found something |
|---|
| 3251 | that works: passing --use-temp-files to windres makes it use its own |
|---|
| 3252 | implementation of quoting instead of popen(), and this does what we |
|---|
| 3253 | want. Sigh. |
|---|
| 3254 | ] |
|---|
| 3255 | [on Windows, install to a directory with spaces (test for #1828) |
|---|
| 3256 | Simon Marlow <simonmar@microsoft.com>**20071115155327] |
|---|
| 3257 | [FIX #1679: crash on returning from a foreign call |
|---|
| 3258 | Simon Marlow <simonmar@microsoft.com>**20071115131635 |
|---|
| 3259 | We forgot to save a pointer to the BCO over the foreign call. Doing |
|---|
| 3260 | enough allocation and GC during the call could provoke a crash. |
|---|
| 3261 | ] |
|---|
| 3262 | [Avoid the use of unversioned package dependencies |
|---|
| 3263 | Simon Marlow <simonmar@microsoft.com>**20071115103249 |
|---|
| 3264 | Fortunately "ghc-pkg list $pkg --simple-output" is a good way to add |
|---|
| 3265 | the version number. |
|---|
| 3266 | ] |
|---|
| 3267 | [FIX #1596 (remove deprecated --define-name) |
|---|
| 3268 | Simon Marlow <simonmar@microsoft.com>**20071114165323 |
|---|
| 3269 | Also remove the old command-line syntax for ghc-pkg, which was not |
|---|
| 3270 | documented. Do not merge. |
|---|
| 3271 | ] |
|---|
| 3272 | [FIX #1837: remove deprecated support for unversioned dependencies (do not merge) |
|---|
| 3273 | Simon Marlow <simonmar@microsoft.com>**20071114161044 |
|---|
| 3274 | |
|---|
| 3275 | ] |
|---|
| 3276 | [wibble |
|---|
| 3277 | Pepe Iborra <mnislaih@gmail.com>**20071114233356] |
|---|
| 3278 | [Make pprNameLoc more robust in absence of loc information |
|---|
| 3279 | Pepe Iborra <mnislaih@gmail.com>**20071114233343] |
|---|
| 3280 | [Try to manage the size of the text rendered for ':show bindings' |
|---|
| 3281 | Pepe Iborra <mnislaih@gmail.com>**20071114231601] |
|---|
| 3282 | [Make the Term ppr depth aware |
|---|
| 3283 | Pepe Iborra <mnislaih@gmail.com>**20071114183417] |
|---|
| 3284 | [Use paragraph fill sep where possible |
|---|
| 3285 | Pepe Iborra <mnislaih@gmail.com>**20071114181233] |
|---|
| 3286 | [Make SpecConstr work again |
|---|
| 3287 | simonpj@microsoft.com**20071115084242 |
|---|
| 3288 | |
|---|
| 3289 | In a typo I'd written env instead of env', and as a result RULES are |
|---|
| 3290 | practically guaranteed not to work in a recursive group. This pretty |
|---|
| 3291 | much kills SpecConstr in its tracks! |
|---|
| 3292 | |
|---|
| 3293 | Well done Kenny Lu for spotting this. The fix is easy. |
|---|
| 3294 | |
|---|
| 3295 | Merge into 6.8 please. |
|---|
| 3296 | |
|---|
| 3297 | |
|---|
| 3298 | |
|---|
| 3299 | ] |
|---|
| 3300 | [Documentation only - fix typo in flags reference |
|---|
| 3301 | Tim Chevalier <chevalier@alum.wellesley.edu>**20071115055748] |
|---|
| 3302 | [Avoid making Either String an instance of Monad in the Haddock parser |
|---|
| 3303 | David Waern <david.waern@gmail.com>**20071114204050] |
|---|
| 3304 | [FIX 1463 (implement 'ghc-pkg find-module') |
|---|
| 3305 | claus.reinke@talk21.com**20071109162652 |
|---|
| 3306 | |
|---|
| 3307 | - the ticket asks for a module2package lookup in ghc-pkg |
|---|
| 3308 | (this would be useful to have in cabal, as well) |
|---|
| 3309 | |
|---|
| 3310 | - we can now ask which packages expose a module we need, |
|---|
| 3311 | eg, when preparing a cabal file or when getting errors |
|---|
| 3312 | after package reorganisations: |
|---|
| 3313 | |
|---|
| 3314 | $ ./ghc-pkg-inplace find-module Var |
|---|
| 3315 | c:/fptools/ghc/driver/package.conf.inplace: |
|---|
| 3316 | (ghc-6.9.20071106) |
|---|
| 3317 | |
|---|
| 3318 | $ ./ghc-pkg-inplace find-module Data.Sequence |
|---|
| 3319 | c:/fptools/ghc/driver/package.conf.inplace: |
|---|
| 3320 | containers-0.1 |
|---|
| 3321 | |
|---|
| 3322 | - implemented as a minor variation on listPackages |
|---|
| 3323 | |
|---|
| 3324 | (as usual, it would be useful if one could combine |
|---|
| 3325 | multiple queries into one) |
|---|
| 3326 | |
|---|
| 3327 | ] |
|---|
| 3328 | [remove --define-name from the --help usage message (#1596) |
|---|
| 3329 | Simon Marlow <simonmar@microsoft.com>**20071114153417 |
|---|
| 3330 | |
|---|
| 3331 | ] |
|---|
| 3332 | [FIX #1837: emit deprecated message for unversioned dependencies |
|---|
| 3333 | Simon Marlow <simonmar@microsoft.com>**20071114153010] |
|---|
| 3334 | [Fix #782, #1483, #1649: Unicode GHCi input |
|---|
| 3335 | Simon Marlow <simonmar@microsoft.com>**20071114151411 |
|---|
| 3336 | GHCi input is now treated universally as UTF-8, except for the Windows |
|---|
| 3337 | console where we do the correct conversion from the current code |
|---|
| 3338 | page (see System.Win32.stringToUnicode). |
|---|
| 3339 | |
|---|
| 3340 | That leaves non-UTF-8 locales on Unix as unsupported, but (a) we only |
|---|
| 3341 | accept source files in UTF-8 anyway, and (b) UTF-8 is quite ubiquitous |
|---|
| 3342 | as the default locale. |
|---|
| 3343 | |
|---|
| 3344 | ] |
|---|
| 3345 | [Fix build |
|---|
| 3346 | David Waern <david.waern@gmail.com>**20071114125842 |
|---|
| 3347 | I had forgot to update HaddockLex.hi-boot-6, so the build with 6.2.2 |
|---|
| 3348 | failed. This fixes that. |
|---|
| 3349 | ] |
|---|
| 3350 | [FIX Trac 1662: actually check for existentials in proc patterns |
|---|
| 3351 | simonpj@microsoft.com**20071114112930 |
|---|
| 3352 | |
|---|
| 3353 | I'd fixed the bug for code that should be OK, but had forgotten to |
|---|
| 3354 | make the test for code that should be rejected! |
|---|
| 3355 | |
|---|
| 3356 | Test is arrowfail004 |
|---|
| 3357 | |
|---|
| 3358 | ] |
|---|
| 3359 | [FIX Trac 1888; duplicate INLINE pragmas |
|---|
| 3360 | simonpj@microsoft.com**20071114104701 |
|---|
| 3361 | |
|---|
| 3362 | There are actually three things here |
|---|
| 3363 | - INLINE pragmas weren't being pretty-printed properly |
|---|
| 3364 | - They were being classified into too-narrow boxes by eqHsSig |
|---|
| 3365 | - They were being printed in to much detail by hsSigDoc |
|---|
| 3366 | |
|---|
| 3367 | All easy. Test is rnfail048. |
|---|
| 3368 | |
|---|
| 3369 | ] |
|---|
| 3370 | [Run the -frule-check pass more often (when asked) |
|---|
| 3371 | simonpj@microsoft.com**20071114104632] |
|---|
| 3372 | [GHCi debugger: added a new flag, -fno-print-binding-contents |
|---|
| 3373 | Pepe Iborra <mnislaih@gmail.com>**20071113174539 |
|---|
| 3374 | |
|---|
| 3375 | The contents of bindings show at breakpoints and by :show bindings |
|---|
| 3376 | is rendered using the same printer that :print uses. |
|---|
| 3377 | But sometimes the output it gives spans over too many lines and the |
|---|
| 3378 | user may want to be able to disable it. |
|---|
| 3379 | ] |
|---|
| 3380 | [Fix Trac 1865: GHCi debugger crashes with :print |
|---|
| 3381 | Pepe Iborra <mnislaih@gmail.com>**20071113170113] |
|---|
| 3382 | [Replaced two uses of head b explicit pattern matching |
|---|
| 3383 | Pepe Iborra <mnislaih@gmail.com>**20071013113136] |
|---|
| 3384 | [Print binding contents in :show bindings |
|---|
| 3385 | Pepe Iborra <mnislaih@gmail.com>**20071006123952] |
|---|
| 3386 | [ Leftovers from the 1st GHCi debugger prototype |
|---|
| 3387 | Pepe Iborra <mnislaih@gmail.com>**20071004204718] |
|---|
| 3388 | [Following an indirection doesn't count as a RTTI step |
|---|
| 3389 | Pepe Iborra <mnislaih@gmail.com>**20070928091941] |
|---|
| 3390 | [FIX #1653 (partially): add -X flags to completion for :set |
|---|
| 3391 | Simon Marlow <simonmar@microsoft.com>**20071113153257] |
|---|
| 3392 | [Merge from Haddock: Add <<url>> for images |
|---|
| 3393 | David Waern <david.waern@gmail.com>**20071112220537 |
|---|
| 3394 | A merge of this patch: |
|---|
| 3395 | |
|---|
| 3396 | Mon Aug 7 16:22:14 CEST 2006 Simon Marlow <simonmar@microsoft.com> |
|---|
| 3397 | * Add <<url>> for images |
|---|
| 3398 | Submitted by: Lennart Augustsson |
|---|
| 3399 | |
|---|
| 3400 | Please merge to the 6.8.2 branch. |
|---|
| 3401 | ] |
|---|
| 3402 | [Improve documentation of INLINE, esp its interactions with other transformations |
|---|
| 3403 | simonpj@microsoft.com**20071112160240] |
|---|
| 3404 | [Comment re Trac #1220 |
|---|
| 3405 | simonpj@microsoft.com**20071112154109] |
|---|
| 3406 | [Merge from Haddock: Modify lexing of /../ |
|---|
| 3407 | David Waern <david.waern@gmail.com>**20071112023856 |
|---|
| 3408 | |
|---|
| 3409 | Tue Aug 28 11:19:54 CEST 2007 Simon Marlow <simonmar@microsoft.com> |
|---|
| 3410 | * Modify lexing of /../ |
|---|
| 3411 | This makes /../ more like '..', so that a single / on a line doesn't |
|---|
| 3412 | trigger a parse error. This should reduce the causes of accidental |
|---|
| 3413 | parse errors in Haddock comments; apparently stray / characters are |
|---|
| 3414 | a common source of failures. |
|---|
| 3415 | |
|---|
| 3416 | Please merge this to the 6.8.2 branch. |
|---|
| 3417 | ] |
|---|
| 3418 | [Merge from Haddock: allow blank lines inside code blocks |
|---|
| 3419 | David Waern <david.waern@gmail.com>**20071112013439 |
|---|
| 3420 | |
|---|
| 3421 | Tue Jan 9 14:14:34 CET 2007 Simon Marlow <simonmar@microsoft.com> |
|---|
| 3422 | * allow blank lines inside a @...@ code block |
|---|
| 3423 | |
|---|
| 3424 | Please merge this to the 6.8.2 branch |
|---|
| 3425 | ] |
|---|
| 3426 | [Merge of a patch from the old Haddock branch: |
|---|
| 3427 | David Waern <david.waern@gmail.com>**20071112013143 |
|---|
| 3428 | |
|---|
| 3429 | Fri Jan 5 12:13:41 CET 2007 Simon Marlow <simonmar@microsoft.com> |
|---|
| 3430 | * Fix up a case of extra vertical space after a code block |
|---|
| 3431 | |
|---|
| 3432 | Please merge this to the 6.8.2 branch |
|---|
| 3433 | ] |
|---|
| 3434 | [Remove ex-extralibs from libraries/Makefile |
|---|
| 3435 | Ian Lynagh <igloo@earth.li>**20071111213618] |
|---|
| 3436 | [Remove the X11 and HGL libraries from extralibs |
|---|
| 3437 | Ian Lynagh <igloo@earth.li>**20071111213447 |
|---|
| 3438 | Don Stewart, X11 maintainer, requested we remove X11, and HGL depends on it |
|---|
| 3439 | on Linux (and we don't try to build HGL on Windows). |
|---|
| 3440 | ] |
|---|
| 3441 | [arrows is no longer an extralib |
|---|
| 3442 | Ian Lynagh <igloo@earth.li>**20071027123656] |
|---|
| 3443 | [Turn -fprint-bind-result off by default |
|---|
| 3444 | Ian Lynagh <igloo@earth.li>**20071111001126] |
|---|
| 3445 | [TAG 2007-11-11 |
|---|
| 3446 | Ian Lynagh <igloo@earth.li>**20071111161540] |
|---|
| 3447 | Patch bundle hash: |
|---|
| 3448 | 9fdd15a1bb6af7372057eead0b395a6d9c680258 |
|---|