Switch branches/tags
Commits on Mar 31, 2011
  1. Introducing a datatype for WorkLists that properly prioritizes equali… committed Mar 31, 2011
    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.
  2. Fix Trac #5048: location on AbsBinds committed Mar 31, 2011
    This patch just puts a better SrcSpan on the AbsBinds
    produced by the type checker
  3. Comments and variable naming only committed Mar 31, 2011
  4. Re-enable assertion now the new type checker is in committed Mar 31, 2011
    (See Trac #3011.)
  5. Add a new static flag -fno-opt-coercion committed Mar 31, 2011
    This just disables the coercion optimiser, mainly for measurements in the paper
  6. New statistics flags -ddump-core-stats committed Mar 31, 2011
    This dumps a (one-line) listing of the size of the Core program,
    just after tidying
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

    igfoo committed Mar 29, 2011
    This fixes a couple of duplicates that had crept in, and also
    renumbers everything so that they are monotonically increasing
    through the file.
  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
Commits on Mar 26, 2011
  1. Fix the build on Windows (disable hsc2hs --cross-safe)

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

    simonmar committed Mar 25, 2011
    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.
  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.

    ezyang committed Mar 23, 2011
    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.
  2. Document new hsc2hs flags, and use the --cross-safe flag when we're c…

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

    ezyang committed Mar 22, 2011
    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.
  2. bindist checker improvements

    igfoo committed Mar 22, 2011
    * Some refactoring
    * Support for Windows filenames
    * Some support for installed trees (as Windows "bindists" are really
      install trees)
Commits on Mar 21, 2011
  1. Fix Trac #5028: zap occ info when doing the binder swap committed Mar 21, 2011
    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.)
  2. Rename System.Event to GHC.Event

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

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