Commits on May 30, 2008
  1. Fix a bug to do with recursive modules in one-shot mode

    The problem was that when loading interface files in checkOldIface, we
    were not passing the If monad the mutable variable for use when
    looking up entities in the *current* module, with the result that the
    knots wouldn't be tied properly, and some instances of TyCons would
    be incorrectly abstract.
    This bug has subtle effects: for example, recompiling a module without
    making any changes might lead to a slightly different result (noticed
    due to the new interface-file fingerprints).  The bug doesn't lead to
    any direct failures that we're aware of.
    simonmar committed May 30, 2008
  2. disable SAT for now (see #2321)

    simonmar committed May 30, 2008
Commits on May 29, 2008
  1. Replacing copyins and copyouts with data-movement instructions

    o Moved BlockId stuff to a new file to avoid module recursion
    o Defined stack areas for parameter-passing locations and spill slots
    o Part way through replacing copy in and copy out nodes
      - added movement instructions for stack pointer
      - added movement instructions for call and return parameters
        (but not with the proper calling conventions)
    o Inserting spills and reloads for proc points is now procpoint-aware
      (it was relying on the presence of a CopyIn node as a proxy for
       procpoint knowledge)
    o Changed ZipDataflow to expect AGraphs (instead of being polymorphic in
       the type of graph) committed May 29, 2008
  2. Make it less fatal to not call ioManagerStart()

    For clients that forget to do hs_add_root()
    simonmar committed May 29, 2008
  3. FIX BUILD with GHC 6.4.x

    simonmar committed May 29, 2008
  4. Cmm back end upgrades

    Several changes in this patch, partially bug fixes, partially new code:
    o bug fixes in ZipDataflow
       - added some checks to verify that facts converge
       - removed some erroneous checks of convergence on entry nodes
       - added some missing applications of transfer functions
    o changed dataflow clients to use ZipDataflow, making ZipDataflow0 obsolete
    o eliminated DFA monad (no need for separate analysis and rewriting monads with ZipDataflow)
    o started stack layout changes
       - no longer generating CopyIn and CopyOut nodes (not yet fully expunged though)
       - still not using proper calling conventions
    o simple new optimizations:
       - common block elimination
          -- have not yet tried to move the Adams opt out of CmmProcPointZ
       - block concatenation
    o piped optimization fuel up to the HscEnv
       - can be limited by a command-line flag
       - not tested, and probably not yet properly used by clients
    o added unique supply to FuelMonad, also lifted unique supply to DFMonad committed May 29, 2008
Commits on May 28, 2008
  1. Use MD5 checksums for recompilation checking (fixes #1372, #1959)

    This is a much more robust way to do recompilation checking.  The idea
    is to create a fingerprint of the ABI of an interface, and track
    dependencies by recording the fingerprints of ABIs that a module
    depends on.  If any of those ABIs have changed, then we need to
    In bug #1372 we weren't recording dependencies on package modules,
    this patch fixes that by recording fingerprints of package modules
    that we depend on.  Within a package there is still fine-grained
    recompilation avoidance as before.
    We currently use MD5 for fingerprints, being a good compromise between
    efficiency and security.  We're not worried about attackers, but we
    are worried about accidental collisions.
    All the MD5 sums do make interface files a bit bigger, but compile
    times on the whole are about the same as before.  Recompilation
    avoidance should be a bit more accurate than in 6.8.2 due to fixing
    #1959, especially when using -O.
    simonmar committed May 28, 2008
  2. when linking, ignore unknown .reloc section that appeared in gcc 3.4.…

    …5(?) committed May 28, 2008
Commits on May 27, 2008
Commits on May 26, 2008
  1. Simplify specifying that some libraries need to use the build.* rules

    Now you just add them to SUBDIRS_BUILD instead of SUBDIRS.
    igfoo committed May 26, 2008
  2. Cope with libraries in libraries/foo/bar rather than just libraries/foo

    You need to use the build.* rules rather than the make.* rules, though.
    igfoo committed May 26, 2008
  3. Fix fwrite$UNIX2003 symbols when cross-compiling for Tiger

    - When compiling with -mmacos-deployment-target=10.4, we need 
      --no-builtin-fprintf, as the use of GCC's builtin function 
      optimisation for fprintf together with #include "PosixSource" in the 
      RTS leads to the use of fwrite$UNIX2003 (with GCC 4.0.1 on Mac OS X 
    mchakravarty committed May 26, 2008
Commits on May 23, 2008
  1. Do some stack fiddling in stg_unblockAsyncExceptionszh_ret

    This fixes a segfault in #1657
    igfoo committed May 23, 2008
Commits on May 22, 2008
Commits on May 21, 2008
  1. Fix warnings in TcTyDecls

    igfoo committed May 21, 2008
  2. Fix whitespace in TcTyDecls

    igfoo committed May 21, 2008
  3. Fix Trac #1061: refactor handling of default methods

    In an instance declaration, omitted methods get a definition that
    uses the default method.  We used to generate source code and feed it
    to the type checker.  But tc199 shows that is a bad idea -- see
    Note [Default methods in instances] in TcClassDcl.
    So this patch refactors to insteadl all us to generate the 
    *post* typechecked code directly for default methods. committed May 21, 2008
  4. Comment typo committed May 21, 2008
Commits on May 20, 2008
  1. Fix Trac #2292: improve error message for lone signatures

    Refactoring reduces code and improves error messages committed May 20, 2008
  2. Fix Trac #2293: improve error reporting for duplicate declarations committed May 20, 2008
  3. Make TcType warning-free

    igfoo committed May 20, 2008
Commits on May 19, 2008
  1. Make TcUnify warning-free

    igfoo committed May 19, 2008
  2. Fix a comment typo

    igfoo committed May 19, 2008
  3. Detab TcUnify

    igfoo committed May 19, 2008
  4. FIX #1955: confusion between .exe.hp and .hp suffixes for heap profiles

    Now we use <prog>.hp and <prog>.prof consistently.
    Simon Marlow committed May 19, 2008
Commits on May 17, 2008
  1. Teach push-all how to send as well

    igfoo committed May 17, 2008
Commits on May 15, 2008
  1. Tuples cannot contain unboxed types

    This bug allowed, for example
      f = let x = ( 1#, 'x' ) in x
    which is ill-typed because you can't put an unboxed value in a tuple.
    Core Lint fails on this program.
    The patch makes the program be rejcted up-front. committed May 15, 2008
Commits on May 1, 2008