1. 05 Jun, 2009 8 commits
  2. 04 Jun, 2009 5 commits
  3. 03 Jun, 2009 4 commits
    • Ian Lynagh's avatar
      Merge the TODO lists in ghc.mk · 328e728f
      Ian Lynagh authored
    • Simon Marlow's avatar
      Tighten up the DocBook XSL stylesheet test · 26f4b94f
      Simon Marlow authored
      It wasn't failing even when the DTD was not found.
    • Simon Marlow's avatar
      fix logic for BUID_DOCBOOK_HTML · f4ec2d0c
      Simon Marlow authored
    • simonpj@microsoft.com's avatar
      Allow RULES for seq, and exploit them · 90ce88a0
      simonpj@microsoft.com authored
      Roman found situations where he had
            case (f n) of _ -> e
      where he knew that f (which was strict in n) would terminate if n did.
      Notice that the result of (f n) is discarded. So it makes sense to
      transform to
            case n of _ -> e
      Rather than attempt some general analysis to support this, I've added
      enough support that you can do this using a rewrite rule:
        RULE "f/seq" forall n.  seq (f n) e = seq n e
      You write that rule.  When GHC sees a case expression that discards
      its result, it mentally transforms it to a call to 'seq' and looks for
      a RULE.  (This is done in Simplify.rebuildCase.)  As usual, the
      correctness of the rule is up to you.
      This patch implements the extra stuff.  I have not documented it explicitly
      in the user manual yet... let's see how useful it is first.
      The patch looks bigger than it is, because
        a) Comments; see esp MkId Note [seqId magic]
        b) Some refactoring.  Notably, I moved the special desugaring for
           seq from MkCore back into DsUtils where it properly belongs.
           (It's really a desugaring thing, not a CoreSyn invariant.)
        c) Annoyingly, in a RULE left-hand side we need to be careful that
           the magical desugaring done in MkId Note [seqId magic] item (c) 
           is *not* done on the LHS of a rule. Or rather, we arrange to 
           un-do it, in DsBinds.decomposeRuleLhs.
  4. 02 Jun, 2009 11 commits
  5. 29 May, 2009 2 commits
  6. 30 May, 2009 5 commits
  7. 23 May, 2009 1 commit
  8. 29 May, 2009 4 commits
    • Ian Lynagh's avatar
    • Ian Lynagh's avatar
      Tweak mk/sub-makefile.mk · c40387ed
      Ian Lynagh authored
    • simonpj@microsoft.com's avatar
      Implement -XMonoLocalBinds: a radical new flag · 903831d5
      simonpj@microsoft.com authored
      The new flag -XMonoLocalBinds tells GHC not to generalise nested
      bindings in let or where clauses, unless there is a type signature,
      in which case we use it.  
      I'm thinking about whether this might actually be a good direction for
      Haskell go to in, although it seems pretty radical.  Anyway, the flag
      is easy to implement (look at how few lines change), and having it
      will allow us to experiement with and without.
      Just for the record, below are the changes required in the boot 
      libraries -- ie the places where.  Not quite as minimal as I'd hoped,
      but the changes fall into a few standard patterns, and most represent
      (in my opinion) sytlistic improvements.  I will not push these patches,
      == running darcs what -s --repodir libraries/base
      M ./Control/Arrow.hs -2 +4
      M ./Data/Data.hs -7 +22
      M ./System/IO/Error.hs +1
      M ./Text/ParserCombinators/ReadP.hs +1
      == running darcs what -s --repodir libraries/bytestring
      M ./Data/ByteString/Char8.hs -1 +2
      M ./Data/ByteString/Unsafe.hs +1
      == running darcs what -s --repodir libraries/Cabal
      M ./Distribution/PackageDescription.hs -2 +6
      M ./Distribution/PackageDescription/Check.hs +3
      M ./Distribution/PackageDescription/Configuration.hs -1 +3
      M ./Distribution/ParseUtils.hs -2 +4
      M ./Distribution/Simple/Command.hs -1 +4
      M ./Distribution/Simple/Setup.hs -12 +24
      M ./Distribution/Simple/UserHooks.hs -1 +5
      == running darcs what -s --repodir libraries/containers
      M ./Data/IntMap.hs -2 +2
      == running darcs what -s --repodir libraries/dph
      M ./dph-base/Data/Array/Parallel/Arr/BBArr.hs -1 +3
      M ./dph-base/Data/Array/Parallel/Arr/BUArr.hs -2 +4
      M ./dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/Arrays.hs -6 +10
      M ./dph-prim-par/Data/Array/Parallel/Unlifted/Distributed/Combinators.hs -3 +6
      M ./dph-prim-seq/Data/Array/Parallel/Unlifted/Sequential/Flat/Permute.hs -2 +4
      == running darcs what -s --repodir libraries/syb
      M ./Data/Generics/Twins.hs -5 +18
    • Simon Marlow's avatar