Commits on Apr 27, 2015
  1. Flesh out some more Backpack examples in the merging section.

    Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
    committed Apr 27, 2015
Commits on Apr 25, 2015
  1. @bgamari @hvr

    base: Export GHC.Event(.Internal).Lifetime

    This was an unfortunate oversight in the original event manager rework
    patch. Fixes #10308
    
    Differential Revision: https://phabricator.haskell.org/D845
    bgamari committed with hvr Apr 25, 2015
  2. @hvr

    Add missing since-annotations for c024af1

    See also #9049
    hvr committed Apr 25, 2015
  3. @hvr

    Bump base version to 4.8.2.0

    This is needed because GHC 7.10.2 requires a minor version bump to base-4.8.1.0
    
    Several test outputs needed base-4.8.1.0 replaced by base-4.8.2.0
    hvr committed Apr 25, 2015
Commits on Apr 24, 2015
  1. Updates to Backpack documentation based on recent visit to MSRC.

    Includes lots of shaping examples, and a shaping algorithm description.
    
    Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
    committed Apr 20, 2015
  2. Change default roles in hs-boot files. (#9204)

    Test case: roles/should_compile/T9204b
    Richard Eisenberg committed Apr 23, 2015
  3. Test case for #10141

    Richard Eisenberg committed Apr 23, 2015
  4. Test #10321 in ghci/scripts/T10321

    Richard Eisenberg committed Apr 23, 2015
  5. Fix the formal operational semantics (#10121)

    This adapts the work of Christiaan Baaij to present a sensible
    operational semantics for FC with mutual recursion.
    Richard Eisenberg committed Apr 23, 2015
  6. Fix #10285 by refusing to use NthCo on a newtype.

    During this commit, I tested to make sure that CoreLint actually
    catches the Core error if the typechecker doesn't.
    
    Test case: typecheck/should_fail/T10285
    Richard Eisenberg committed Apr 23, 2015
  7. Rename role annotations w.r.t only local decls.

    Fix #10263.
    Richard Eisenberg committed Apr 10, 2015
  8. @nomeata

    Make sure GHC.List.last is memory-efficient

    by eta-expanding its definition so that GHC optmizes the foldl here.
    Also make sure that other uses of last go via foldl as well, to allow
    list fusion (tested in T9339). Fixes #10260.
    nomeata committed Apr 16, 2015
Commits on Apr 22, 2015
  1. @nomeata

    Rename new T9858d to T9858e to avoid test name clash

    (Next time, when fixing someone else’s mistake, I really shouldn’t do
    the precise same thing.)
    nomeata committed Apr 22, 2015
  2. @nomeata
  3. @simonpj

    Test Trac #9858 comment:101

    simonpj committed Apr 22, 2015
  4. @simonpj

    Better documetation of higher rank types

    In response to suggestions on Trac #10281
    simonpj committed Apr 22, 2015
  5. @simonpj

    Improve error reporting for impredicative types

    Don't suggest -XImpredicativeTypes; and document its flakiness
    Fixes Trac #10325
    simonpj committed Apr 21, 2015
  6. @simonpj

    Comments only

    simonpj committed Apr 21, 2015
  7. @simonpj

    Fix superclass generation in an instance

    More fallout from the silent-superclass refactoring; nothing drastic.
    Fixes Trac #10335.
    simonpj committed Apr 21, 2015
  8. Fix #10182 by disallowing/avoiding self {-# SOURCE #-} imports

    Summary:
    hs-boot declarations were leaking into the EPS due to
    self {-# SOURCE #-} imports, and interface loading induced by
    orphan instances.  For the former, we simply disallow self
    {-# SOURCE #-} imports; for the latter, we simply just don't
    load an interface if it would be ourself.
    
    Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
    
    Test Plan: validate
    
    Reviewers: simonpj, austin
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D860
    
    GHC Trac Issues: #10182
    committed Apr 21, 2015
  9. Don't use self {-# SOURCE #-} import in test-cases.

    Summary:
    It's kind of buggy, c.f. #10182, and isn't motivated by any
    real world programs, so we're going to get rid of it (despite
    it being handy for GHC test cases.)
    
    Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
    
    Test Plan: validate
    
    Reviewers: simonpj, austin
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D862
    committed Apr 21, 2015
  10. @nomeata

    Mark T8743 as passing

    as Simons recent commit 9b9fc4c fixed
    this.
    nomeata committed Apr 22, 2015
  11. @simonpj

    Do not decompose => (Trac #9858)

    We really don't want to unify (a b) with (Eq a => ty).
    The ever-ingenious Oerjan discovered this problem;
    see comment:101 in Trac #9858.
    
    See Note [Decomposing fat arrow c=>t] in Type.hs
    simonpj committed Apr 22, 2015
  12. @simonpj

    Fix the boot dfun impedence-matching binding

    In TcRnDriver.checkHiBootIface' we were generating an
    impedence-matching binding
       $fxToRecMaybe = $fToRecMaybe
    but the type of the former was gotten from the *hi-boot*
    file, so its type constructor was not fully fleshed out.
    That should never happen.
    
    Fix is easy, happily.  A dark corner.
    simonpj committed Apr 22, 2015
  13. @simonpj

    Add a blank line

    simonpj committed Apr 22, 2015
Commits on Apr 21, 2015
  1. @erikd

    Use the gold linker for aarch64/linux (#9673)

    Like 32 bit Arm, Aarch64 requires use of the gold linker.
    
    Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
    
    Test Plan: 'make install' on aarch64, validate elsewhere
    
    Reviewers: rwbarton, bgamari, austin
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D858
    
    GHC Trac Issues: #9673
    erikd committed Apr 20, 2015
  2. @erikd

    Enable SMP and GHCi support for Aarch64

    Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
    
    Test Plan: Full build on Aarch64
    
    Reviewers: rwbarton, bgamari, austin
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D859
    erikd committed Apr 1, 2015
  3. @simonpj

    GADTs now are CPR-able

    Accompanies f2d1b7f
    Support unboxing for GADT product types
    simonpj committed Apr 21, 2015
  4. @simonpj

    Wibble to DmdAnal

    This fixes a typo in d5773a4
        Teach DmdAnal that coercions are value arguments!
        (Trac #10288)
    
    Sorry about that; I'm not sure how it slipped through.
    simonpj committed Apr 21, 2015
  5. @simonpj

    Support unboxing for GADT product types

    Beofre this commit we never unboxed GADT, even if they
    are perfectly civilised products.
    
    This patch liberalises unboxing slightly.
    See Note [Product types] in TyCon.
    
    Still to come
     - for strictness, we could maybe deal with existentials too
     - todo: unboxing constructor arguments
    simonpj committed Apr 20, 2015
  6. @simonpj

    Spelling in comment

    simonpj committed Apr 20, 2015
  7. @simonpj

    Teach DmdAnal about free coercion variables

    Coercion variables are used in casts and coercions, so the demand
    analyser should jolly well not regard them as absent!
    
    In fact this bug never makes a difference because even absent
    unboxed-coercion arguments are passed anyway;
    see WwLib.mk_abesnt_let, which returns Nothing for coercion Ids.
    
    But it was simply wrong before and that is never cool.
    simonpj committed Apr 20, 2015
Commits on Apr 20, 2015
  1. @simonpj

    Teach DmdAnal that coercions are value arguments!

    The demand analyser was treating coercion args like type args,
    which meant that the arguments in a strictness signature got
    out of step with the arguments of a call.  Result chaos and
    disaster.  Trac #10288 showed it up.
    
    It's hard to get this bug to show up in practice because
     - functions abstracted over coercions are usually abstracted
       over *boxed* coercions
     - we don't currently unbox a boxed-coercion arg because it's
       GADT (I see how to fix this too)
    
    But after floating, optimisation, and so on, Trac #10288 did
    get a function abstracted over an unboxed coercion, and then
    the -flate-dmd-anal pass went wrong.
    
    I don't think I can come up with a test case, but I don't think
    it matters too much.
    
    Still to come
     - Fix a second bug, namely that coercion variables are wrongly
       marked as absent because DmdAnal doesn't check the the free
       variables of casts. I think this never bites in practice
       (see the follow-up commit)
    
     - Make GADT products work with strictness analysis
    simonpj committed Apr 20, 2015
  2. @hvr

    Update Cabal submodule to 1.22.3.0 release

    Highlights since 1.22.2.0:
    
    - cabal check will fail on -fprof-auto passed as a ghc-option
    - filterConfigureFlags: filter more flags.
    - fix ghcjs-pkg version number handling
    
    Addresses #10304
    hvr committed Apr 20, 2015
Commits on Apr 18, 2015
  1. @rwbarton