Commits on Mar 31, 2011
  1. Introducing a datatype for WorkLists that properly prioritizes equali…

    We were not prioritizing the interaction of equalities in the worklist, because
    pre-canonicalization solved the constraints one by one, in their arrival order.
    This patch fixes this, so it's a generally useful improvement, mainly for
    efficiency. It makes #4981 go away, although it's not a definite answer to the
    cause of the problem. See discussion on Trac. committed Mar 31, 2011
  2. Fix Trac #5048: location on AbsBinds

    This patch just puts a better SrcSpan on the AbsBinds
    produced by the type checker committed Mar 31, 2011
  3. Comments and variable naming only committed Mar 31, 2011
  4. Re-enable assertion now the new type checker is in

    (See Trac #3011.) committed Mar 31, 2011
  5. Add a new static flag -fno-opt-coercion

    This just disables the coercion optimiser, mainly for measurements in the paper committed Mar 31, 2011
  6. New statistics flags -ddump-core-stats

    This dumps a (one-line) listing of the size of the Core program,
    just after tidying committed Mar 31, 2011
Commits on Mar 30, 2011
Commits on Mar 29, 2011
  1. add atexit (#4456)

    simonmar committed Mar 29, 2011
  2. Turn -vfia-C into a no-op

    igfoo committed Mar 29, 2011
  3. Renumber TH uniques

    This fixes a couple of duplicates that had crept in, and also
    renumbers everything so that they are monotonically increasing
    through the file.
    igfoo committed Mar 29, 2011
  4. fix typo (#5056)

    simonmar committed Mar 29, 2011
Commits on Mar 28, 2011
  1. Whitespace only

    igfoo committed Mar 28, 2011
Commits on Mar 27, 2011
  1. Add a script for library merging

    igfoo committed Mar 27, 2011
Commits on Mar 26, 2011
  1. Fix the build on Windows (disable hsc2hs --cross-safe)

    The .hsc files aren't currently safe for cross-compilation on Windows:
        directive "let" is not safe for cross-compilation
    igfoo committed Mar 26, 2011
Commits on Mar 25, 2011
  1. Fix #4914 (I hope)

    Here's a bit of erroneous code:
    00000c5c <s1ad_info>:
         c5c:       8b 45 08                mov    0x8(%ebp),%eax
         c5f:       d9 46 03                flds   0x3(%esi)
         c62:       dd d9                   fstp   %st(1)
         c64:       d9 55 08                fsts   0x8(%ebp)
         c67:       89 c6                   mov    %eax,%esi
         c69:       c7 45 00 24 0c 00 00    movl   $0xc24,0x0(%ebp)
         c70:       f7 c6 03 00 00 00       test   $0x3,%esi
         c76:       75 ac                   jne    c24 <s1ac_info>
    So we should be doing some ffrees before the jne.  The code that
    inserts the ffrees wasn't expecting to do it for a conditional jump,
    because they are usually local, but we have a late optimisation that
    shortcuts jumps-to-jumps, and that can result in a non-local
    conditional jump.
    This at least fixes an instance of the bug that I was able to
    reproduce, let's hope there aren't any more.
    simonmar committed Mar 25, 2011
  2. Ignore comments when inlining.

    ezyang committed Mar 25, 2011
  3. Fix typo in documentation (Trac #5035) committed Mar 25, 2011
Commits on Mar 23, 2011
  1. Immediately tag initialization code to prevent untagged spills.

    When allocating new objects on the heap, we previously returned
    a CmmExpr containing the heap pointer as well as the tag expression,
    which would be added to the code graph upon first usage.  Unfortunately,
    this meant that untagged heap pointers living in registers might
    be spilled to the stack, where they interacted poorly with garbage
    collection (we saw this bug specifically with the compacting garbage
    This fix immediately tags the register containing the heap pointer,
    so that unless we have extremely unfriendly spill code, the new pointer
    will never be spilled to the stack untagged.
    An alternate solution might have been to modify allocDynClosure to
    tag the pointer upon the initial register allocation, but not all
    invocations of allocDynClosure tag the resulting pointer, and
    threading the consequent CgIdInfo for the cases that did would have
    been annoying.
    ezyang committed Mar 23, 2011
  2. Document new hsc2hs flags, and use the --cross-safe flag when we're c…

    Patch from Brian Bloniarz
    igfoo committed Mar 23, 2011
Commits on Mar 22, 2011
  1. Split out "Raw Cmm" dump to its own flag -ddump-raw-cmm

    Previously, -ddump-cmmz was used to dump out the "Raw Cmm" right
    before it gets passed to the backends, as well as all of the
    intermediate phases in the new code generator.  Unfortunately,
    there are a lot of intermediate phases, which means -ddump-cmmz
    takes a very long time with -fnew-codegen for large programs,
    even if you're only interested in the final result.
    Here we split up -ddump-cmmz into -ddump-cmmz (now exclusively for
    the new code generator) and -ddump-raw-cmm (for both code generation
    paths.) The old flag was not documented in the manual, so hopefully
    not too many people will be surprised by this change.
    ezyang committed Mar 22, 2011
  2. bindist checker improvements

    * Some refactoring
    * Support for Windows filenames
    * Some support for installed trees (as Windows "bindists" are really
      install trees)
    igfoo committed Mar 22, 2011
Commits on Mar 21, 2011
  1. Fix Trac #5028: zap occ info when doing the binder swap

    This fixes the Lint error, but still risks leaving stupid
    let { x=y } bindings in the code.  But no time to fix that 
    today.  (Leave the ticket open for that reason.) committed Mar 21, 2011
  2. Rename System.Event to GHC.Event

    It's just an internal GHC library, for now at least
    igfoo committed Mar 21, 2011
Commits on Mar 20, 2011
Commits on Mar 18, 2011
  1. pruneSparkQueue: handle CAFs

    simonmar committed Mar 18, 2011
Commits on Mar 9, 2011