1. 20 Apr, 2016 10 commits
    • Simon Peyton Jones's avatar
      Accept tcrun045 output · 55b1b85d
      Simon Peyton Jones authored
      My validate didn't catch this one; it is fallout
      (actually an improvement) from
        353d8a SCC analysis for instances as well as types/classes
      55b1b85d
    • niteria's avatar
      Build a correct substitution in dataConInstPat · 62943d2a
      niteria authored
      This adds the tyvars of the domain of the substitution into the in-scope
      set as well.
      What I'm not sure here is if the kinds can have any free vars that
      should be in the in-scope set as well.
      
      Test Plan: ./validate
      
      Reviewers: goldfire, austin, bgamari, simonpj
      
      Reviewed By: simonpj
      
      Subscribers: thomie, simonmar
      
      Differential Revision: https://phabricator.haskell.org/D2094
      
      GHC Trac Issues: #11371
      62943d2a
    • niteria's avatar
      Kill unnecessary varSetElemsWellScoped in deriveTyData · 687c7780
      niteria authored
      varSetElemsWellScoped introduces unnecessary non-determinism and it's possible
      to do the same thing deterministically for the same price.
      
      Test Plan: ./validate
      
      Reviewers: austin, simonmar, bgamari, simonpj
      
      Reviewed By: simonpj
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2124
      
      GHC Trac Issues: #4012
      687c7780
    • Simon Peyton Jones's avatar
      Tighten up imports on TcTyClsDecls · cdcf014d
      Simon Peyton Jones authored
      cdcf014d
    • Simon Peyton Jones's avatar
      Fix two buglets in 17eb2419 noticed by Richard · 61191dee
      Simon Peyton Jones authored
      These are corner cases in
         17eb2419 Refactor computing dependent type vars
      and I couldn't even come up with a test case
      
      * In TcSimplify.simplifyInfer, in the promotion step, be sure
        to promote kind variables as well as type variables.
      
      * In TcType.spiltDepVarsOfTypes, the CoercionTy case, be sure
        to get the free coercion variables too.
      61191dee
    • Simon Peyton Jones's avatar
      SCC analysis for instances as well as types/classes · 353d8ae6
      Simon Peyton Jones authored
      This big patch is in pursuit of Trac #11348.
      
      It is largely the work of Alex Veith (thank you!), with some
      follow-up simplification and refactoring from Simon PJ.
      
      The main payload is described in RnSource
        Note [Dependency analysis of type, class, and instance decls]
      which is pretty detailed.
      
      * There is a new data type HsDecls.TyClGroup, for a strongly
        connected component of type/class/instance/role decls.
      
        The hs_instds field of HsGroup disappears, in consequence
      
        This forces some knock-on changes, including a minor
        haddock submodule update
      
      Smaller, weakly-related things
      
      * I found that both the renamer and typechecker were building an
        identical env for RoleAnnots, so I put common code for
        RoleAnnotEnv in RnEnv.
      
      * I found that tcInstDecls1 had very clumsy error handling, so I
        put it together into TcInstDcls.doClsInstErrorChecks
      353d8ae6
    • Simon Peyton Jones's avatar
      Tighten up imports, white space · 7319b80a
      Simon Peyton Jones authored
      7319b80a
    • Simon Peyton Jones's avatar
      Define NameSet.intersectFVs · 871f684d
      Simon Peyton Jones authored
      I want it for subsequent commits
      871f684d
    • Simon Peyton Jones's avatar
      Reduce use of instances in hs-boot files · 81aa3d1c
      Simon Peyton Jones authored
      Several things here
      
      * GHC no longer allows user-written Typeable instances,
        so remove them from hs-boot files.
      
      * Generally, reduce the use of instances in hs-boot files. They are
        hard to track.  Mainly this involves using pprType, pprKind etc
        instead of just ppr.  There were a lot of instances in hs-boot
        files that weren't needed at all.
      
      * Take TyThing out of Eq; it was used in exactly one place (in
        InteractiveEval), and equality is too big a hammer for that.
      81aa3d1c
    • Ben Gamari's avatar
      Bump haddock submodule · 7f71dbe3
      Ben Gamari authored
      Install files necessary for --hyperlinked-source. Fixes #11949.
      7f71dbe3
  2. 19 Apr, 2016 12 commits
  3. 18 Apr, 2016 6 commits
  4. 17 Apr, 2016 12 commits
    • Herbert Valerio Riedel's avatar
      8a75bb58
    • Herbert Valerio Riedel's avatar
    • Herbert Valerio Riedel's avatar
      Update `directory` submodule to v1.2.6.1 release · 93d85af9
      Herbert Valerio Riedel authored
      This fixes a build-failure on OSX
      93d85af9
    • Tamar Christina's avatar
      Resolve symlinks when attempting to find GHC's lib folder on Windows · a3922083
      Tamar Christina authored
      Summary:
      Systools makes some pretty hard assumptions about where GHC is on Windows.
      One of these is that ghc be in a folder named `bin` and that `../lib` exists.
      
      This pattern doesn't hold for symlinks as a link `C:\ghc-bin\`
      pointing to `C:\ghc\ghc-7.10.3\bin` will break this assumption.
      
      This patch resolves symlinks by finding where they point to and uses that location
      as the base for GHC.
      
      This uses an API that's been introduced in Vista. For older systems it falls back to
      the current behavior of not resolving symlinks.
      
      Test Plan:
      1) Create symlink to GHC's bin folder.
      2) Run GHC from that folder.
      
      Reviewers: austin, bgamari
      
      Reviewed By: austin
      
      Subscribers: #ghc_windows_task_force, thomie
      
      Differential Revision: https://phabricator.haskell.org/D2101
      
      GHC Trac Issues: #11759
      a3922083
    • Erik de Castro Lopo's avatar
      Linker: Clean up #if USE_MMAP usage · 177aec69
      Erik de Castro Lopo authored
      Test Plan:
       - Run tests on x86_64/linux, x86_64/darwin and powerpc/linux
       - Cross compile rts/Linker.c with the i686-w64-mingw32-gcc and
         x86_64-w64-mingw32-gcc Linux to Windows cross-compilers.
      
      Reviewers: hvr, austin, thomie, bgamari, simonmar, Phyx
      
      Reviewed By: Phyx
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1437
      177aec69
    • Andrew Farmer's avatar
      Check CCS tree for pointers into shared object during checkUnload · 36a0b6dc
      Andrew Farmer authored
      Prevent shared objects from being unloaded if cost centre stacks point
      at the object. This will prevent segfault in #11776, but also prevents
      objects from ever being unloaded when profiling. Pruning CCS tree will
      enable that in another diff.
      
      Test Plan: make TEST=linker_profiled, examine linker_profiled.run.stderr
      
      Reviewers: austin, simonmar, bgamari
      
      Reviewed By: simonmar, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2069
      
      GHC Trac Issues: #11776
      36a0b6dc
    • quchen's avatar
      Add flag to control number of missing patterns in warnings · 7005b9f7
      quchen authored
      Non-exhaustive pattern warnings had their number of patterns to
      show hardcoded in the past. This patch implements the TODO remark
      that this should be made a command line flag.
      
          -fmax-uncovered-patterns=<n>
      
      can now be used to influence the number of patterns to be shown.
      
      Reviewers: hvr, austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2076
      7005b9f7
    • Ben Gamari's avatar
      07dc3307
    • Ben Gamari's avatar
      users-guide: Fix typo · 7a1c0731
      Ben Gamari authored
      7a1c0731
    • Ben Gamari's avatar
      TH: Tweak Haddock language · 89b66742
      Ben Gamari authored
      89b66742
    • Iavor S. Diatchki's avatar
      Add TemplateHaskell support for Overlapping pragmas · 04b70cda
      Iavor S. Diatchki authored
      Reviewers: hvr, goldfire, austin, RyanGlScott, bgamari
      
      Reviewed By: RyanGlScott, bgamari
      
      Subscribers: RyanGlScott, thomie
      
      Differential Revision: https://phabricator.haskell.org/D2118
      04b70cda
    • Tamar Christina's avatar
      Add Windows import library support to the Runtime Linker · 97f2b164
      Tamar Christina authored
      Summary:
      Import libraries are files ending in `.dll.a` and `.lib` depending on which
      compiler creates them (GCC, vs MSVC).
      
      Import Libraries are standard `archive` files that contain object files.
      These object files can have two different formats:
      
      1) The normal COFF Object format for object files
          (contains all ascii data and very little program code, so do not
           try to execute.)
      2) "short import" format which just contains a symbol name and
         the dll in which the symbol can be found.
      
      Import Libraries are useful for two things:
      
      1) Allowing applications that don't support dynamic linking to
         link against the import lib (non-short format) which then
         makes calls into the DLL by loading it at runtime.
      
      2) Allow linking of mutually recursive dlls. if `A.DLL` requires
         `B.DLL` and vice versa, import libs can be used to break the cycle
         as they can be created from the expected exports of the DLLs.
      
      A side effect of having these two capabilities is that Import libs are often
      used to hide specific versions of DLLs behind a non-versioned import lib.
      
      e.g. GCC_S.a (non-conventional import lib) will point to the correct
      `libGCC` DLL. With this support Windows Haskell files can now just link
      to `-lGCC_S` and not have to worry about what the actual name of libGCC is.
      
      Also third party libraries such as `icuuc` use import libs to forward to
      versioned DLLs. e.g. `icuuc.lib` points to `icuuc51.dll` etc.
      
      Test Plan:
      ./validate
      
      Two new tests added T11072gcc T11072msvc
      
      Two binary files have been added to the test folder because the "short"
      import library format doesn't seem to be creatable via `dlltool`
      and requires Microsoft's `lib.exe`.
      
      Reviewers: bgamari, RyanGlScott, erikd, goldfire, austin, hvr
      
      Reviewed By: RyanGlScott, erikd
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1696
      
      GHC Trac Issues: #11072
      97f2b164