Switch branches/tags
Commits on Aug 7, 2011
Commits on Aug 6, 2011
  1. Fix a long-standing bug in HsUtils.hsTyClDeclBinders

    simonpj authored and igfoo committed Aug 5, 2011
    We were returning the tycon of a type family *instance*
    as a binder, and it just isn't!
    Consequential tidy-ups follow.  I tripped over this on
    the way to something else.  I'm not sure it was causing
    a problem, but it is Plainly Wrong.
Commits on Aug 5, 2011
  1. Another run at binders in Template Haskell (fixes Trac #5379)

    simonpj authored and igfoo committed Aug 5, 2011
    TH quotation was using mkName rather than newName for
    top-level definitions, which is plain wrong as #5379
    points out.
  2. typo

    simonmar authored and igfoo committed Aug 4, 2011
  3. Add a release note about TypeSynonymInstances change of behaviour

    igfoo committed Aug 5, 2011
    As discussed in #5377
Commits on Aug 4, 2011
  1. Add plugin documentation for reinitializeGlobals

    Austin Seipp authored and batterseapower committed Jul 31, 2011
  2. Revert "Stop using -Wl,-no_pie on OS X"

    igfoo committed Aug 4, 2011
    This reverts commit d02a197.
    Apparently there are still problems with gmp. See #5293 for more details.
  3. Don't duplicate files in bindists; trac #5356

    igfoo committed Aug 4, 2011
    We were putting
    into bindists twice.
  4. Change the representation of export lists in .hi files

    simonpj authored and igfoo committed Aug 2, 2011
    Currently export list in .hi files are partitioned by module
      export M T(C1,C2)
             N f,g
    In each list we only have OccNames, all assumed to come from
    the parent module M or N resp.
    This patch changes the representatation so that export lists
    have full Names:
      export M.T(M.C1,M.C2), N.f, N.g
    Numerous advatages
      * AvailInfo no longer needs to be parameterised; it always
        contains Names
      * Fixes Trac #5306.  This was the main provocation
      * Less to-and-fro conversion when reading interface files
    It's all generally simpler.  Interface files should not get bigger,
    becuase they have a nice compact representation for Names.
  5. Add CoreMonad.reinitializeGlobals so plugins can work around linker i…

    batterseapower authored and igfoo committed Jul 29, 2011
    When a plugin is loaded, it currently gets linked against a *newly loaded* copy
    of the GHC package. This would not be a problem, except that the new copy has its
    own mutable state that is not shared with that state that has already been initialized by
    the original GHC package.
    This leads to loaded plugins calling GHC code which pokes the static flags,
    and then dying with a panic because the static flags *it* sees are uninitialized.
    There are two possible solutions:
      1. Export the symbols from the GHC executable from the GHC library and link
         against this existing copy rather than a new copy of the GHC library
      2. Carefully ensure that the global state in the two copies of the GHC
         library matches
    I tried 1. and it *almost* works (and speeds up plugin load times!) except
    on Windows. On Windows the GHC library tends to export more than 65536 symbols
    (see #5292) which overflows the limit of what we can export from the EXE and
    causes breakage.
    (Note that if the GHC exeecutable was dynamically linked this wouldn't be a problem,
    because we could share the GHC library it links to.)
    We are going to try 2. instead. Unfortunately, this means that every plugin
    will have to say `reinitializeGlobals` before it does anything, but never mind.
    I've threaded the cr_globals through CoreM rather than giving them as an
    argument to the plugin function so that we can turn this function into
    (return ()) without breaking any plugins when we eventually get 1. working.
  6. Put the info CLabel in CmmInfoTable rather than a localness flag, tid…

    batterseapower committed Jul 28, 2011
    …y up some info<->entry conversions
Commits on Aug 3, 2011
  1. Stop using -Wl,-no_pie on OS X

    igfoo committed Aug 3, 2011
    Now that the in-tree gmp has been upgraded, it should no longer be
    necessary, according to #5293.
  2. On OS X x86_64, use "-Wl,-no_pie" and "-Wl,-no_compact_unwind" to avo…

    mchakravarty authored and igfoo committed Jul 27, 2011
    …id linker warnings
    - "-Wl,-no_pie" can be removed once GMP gets updated
  3. Update 7.2.1 ANNOUNCE

    igfoo committed Aug 3, 2011
  4. Fix a grevious error in InstEnv: Trac #5095

    simonpj authored and igfoo committed Aug 3, 2011
    An claimed short-cut optimisation was actually an error.
    The optimisation was this: when looking up (C a b), where
    'a' and 'b' are type variables, we were returning [] immediately
    if the instance environment had no instances of form (C a b).
    Why? Because the thing being looked up definitely won't match
    (C Int Bool), say.
    BUT it will *unify* with (C Int Bool) and we care very much
    about things it might unify with.  If we neglect them we may
    silently allow incoherent instance selection, and that is
    exactly what happened in #5095.
    The fix is easy: remove the "optimisation".
  5. Include the instances of associated types in the "extras" of a class

    simonpj authored and igfoo committed Aug 3, 2011
    This fixes Trac #5147, which was going wrong because
    the class ABI fingerprint wasn't changing when we added
    or removed a Show instance to the associated type.
  6. Small refactoring

    igfoo committed Aug 2, 2011
  7. Avoid confusing Haddock in comment

    simonpj authored and igfoo committed Aug 2, 2011