1. 14 Nov, 2016 2 commits
    • Simon Marlow's avatar
      Accept output for scc003 · 034e01e4
      Simon Marlow authored
      Looks like e3f341f3 broke it, but we
      wouldn't have noticed because the test isn't run in validate.
      I think the change is OK.  We don't get a tick for x' any more, because
      it is converted directly to a case instead of a let-binding, but we
      still get a tick for the "pattern binding" (!x').  This could be better
      - f.(...) isn't all that intuitive - but it's not strictly wrong.
    • Simon Marlow's avatar
      Remove CONSTR_STATIC · 55d535da
      Simon Marlow authored
      We currently have two info tables for a constructor
      * XXX_con_info: the info table for a heap-resident instance of the
        constructor, It has type CONSTR, or one of the specialised types like
      * XXX_static_info: the info table for a static instance of this
        constructor, which has type CONSTR_STATIC or CONSTR_STATIC_NOCAF.
      I'm getting rid of the latter, and using the `con_info` info table for
      both static and dynamic constructors.  For rationale and more details
      see Note [static constructors] in SMRep.hs.
      I also removed these macros: `isSTATIC()`, `ip_STATIC()`,
      `closure_STATIC()`, since they relied on the CONSTR/CONSTR_STATIC
      distinction, and anyway HEAP_ALLOCED() does the same job.
      Test Plan: validate
      Reviewers: bgamari, simonpj, austin, gcampax, hvr, niteria, erikd
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D2690
      GHC Trac Issues: #12455
  2. 13 Nov, 2016 2 commits
    • Ben Gamari's avatar
      Kill Type pretty-printer · 6c0f10fa
      Ben Gamari authored
      Here we consolidate the pretty-printing logic for types in IfaceType. We
      need IfaceType regardless and the printer for Type can be implemented in
      terms of that for IfaceType. See #11660.
      Note that this is very much a work-in-progress. Namely I still have yet
      to ponder how to ease the hs-boot file situation, still need to rip out
      more dead code, need to move some of the special cases for, e.g., `*` to
      the IfaceType printer, and need to get it to validate. That being said,
      it comes close to validating as-is.
      Test Plan: Validate
      Reviewers: goldfire, austin
      Subscribers: goldfire, thomie, simonpj
      Differential Revision: https://phabricator.haskell.org/D2528
      GHC Trac Issues: #11660
    • Ben Gamari's avatar
      rts: Fix references to UChar · 8cb7bc5c
      Ben Gamari authored
      Test Plan: Validate on Windows.
      Reviewers: erikd, austin, simonmar
      Reviewed By: erikd
      Subscribers: Phyx, thomie
      Differential Revision: https://phabricator.haskell.org/D2700
  3. 12 Nov, 2016 7 commits
  4. 11 Nov, 2016 4 commits
    • Ben Gamari's avatar
      Pass -no-pie to GCC · d421a7e2
      Ben Gamari authored
      Certain distributions (e.g. Debian and Ubuntu) have enabled PIE be
      default in their GCC packaging. This breaks our abuse of GCC as a linker
      which requires that we pass -Wl,-r, which is incompatible with
      PIE (since the former implies that we are generating a relocatable
      object file and the latter an executable).
      This is a second attempt at D2691. This attempt constrasts with D2691 in that
      it preserves the "does gcc support -no-pie" flag in settings, allowing this to
      be reconfigured by `configure` during installation of a binary distribution.
      Thanks for @rwbarton for drawing attention to this issue.
      Test Plan: Validate
      Reviewers: austin, hvr, erikd
      Reviewed By: erikd
      Subscribers: thomie, rwbarton, erikd
      Differential Revision: https://phabricator.haskell.org/D2693
      GHC Trac Issues: #12759
    • Ben Gamari's avatar
      rts: Fix LoadArchive on OS X · ec0bf811
      Ben Gamari authored
    • Simon Peyton Jones's avatar
      Revert "Refactor CallStack defaulting slightly" · 7a7bb5d2
      Simon Peyton Jones authored
      This reverts commit 317236db.
      I totally missed that in simplifyInfer for local functions
      we must NOT default call stacks.  So I'm reverting this.
      Fortunately caught by T10845, which sadly isn't run by
      validate --fast
    • Ben Gamari's avatar
      Revert "Pass -no-pie to GCC" · 60bb9d1c
      Ben Gamari authored
      This reverts commit bae4a55b.
      This will be superceded by D2693.
  5. 10 Nov, 2016 15 commits
  6. 07 Nov, 2016 2 commits
    • Ryan Scott's avatar
      Update 8.0.2 release notes for #12784 · 2e8463b2
      Ryan Scott authored
      The fix for #12220 exposed some ill-typed programs which passed the typechecker
      in GHC 8.0.1 but now fail to typecheck in GHC 8.0.2. It's a bit difficult to
      characterize what exactly triggers this bug, but we at least have a minimal
      example and a simple fix to illustrate the problem and solution, so let's
      add that the the 8.0.2 release notes to advertise this change.
      Resolves #12784.
      Reviewers: rwbarton, austin, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D2682
      GHC Trac Issues: #12784
    • Simon Marlow's avatar
      Fix hs_try_putmvar003 (#12800) · 91f9e138
      Simon Marlow authored
      There was a race condition on some shared data when creating the
      callback thread.
      I couldn't repro the issue without inserting a dummy usleep(100), but
      it's definitely a bug.
      Test Plan: validate
      Reviewers: bgamari, austin, erikd
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D2678
      GHC Trac Issues: #12800
  7. 06 Nov, 2016 6 commits
    • Tamar Christina's avatar
      Fix broken validate build. · 7d988dd4
      Tamar Christina authored
    • Tamar Christina's avatar
      Some minor linker cleanups. · 1964d869
      Tamar Christina authored
      Just some cleanups to some oddities I've noticed
      while investigating a linker issue.
      Particularly the dll name returned by `findSysDll`
      was decorated. So foo.dll is returned. We make it
      `foo.dll.dll` and later drop one `.dll` when passed to
      `addDll` which expects it without extension, but still
      tries the name *as is* which is why it worked.
      This should be slightly faster, since we don't try 4 loads
      before we succeed.
      Test Plan: ./validate
      Reviewers: austin, hvr, erikd, simonmar, bgamari
      Reviewed By: bgamari
      Subscribers: thomie, #ghc_windows_task_force
      Differential Revision: https://phabricator.haskell.org/D2680
    • Ryan Scott's avatar
      Describe symptoms of (and the cure for) #12768 in 8.0.2 release notes · ead83db8
      Ryan Scott authored
      GHC 8.0.2 introduced a bugfix involving GeneralizedNewtypeDeriving in
      96d45145. This made typechecking of
      GND-produced code a bit stricter, and an unfortunate side effect of this was
      that there were a couple of corner-case programs that stopped compiling
      when transitioning from GHC 8.0.1 to 8.0.2.
      Since the number of affected programs seems quite small, and since the fix
      is so straightforward, we opt to simply note this discrepancy in the 8.0.2
      release notes.
      Resolves #12768.
    • Ryan Scott's avatar
      Allow GeneralizedNewtypeDeriving for classes with associated type families · 630d8817
      Ryan Scott authored
      This implements the ability to derive associated type family instances
      for newtypes automatically using `GeneralizedNewtypeDeriving`. Refer to the
      users' guide additions for how this works; I essentially follow the pattern
      laid out in https://ghc.haskell.org/trac/ghc/ticket/8165#comment:18.
      Fixes #2721 and #8165.
      Test Plan: ./validate
      Reviewers: simonpj, goldfire, austin, bgamari
      Reviewed By: simonpj
      Subscribers: mpickering, thomie
      Differential Revision: https://phabricator.haskell.org/D2636
      GHC Trac Issues: #2721, #8165
    • Matthew Pickering's avatar
      Add tracing infrastructure to pattern match checker · 25c8e80e
      Matthew Pickering authored
      This is the start of some tracing infrastructure which I found useful
      when working through how the pattern match checker worked.
      It adds the flag -ddump-ec-trace in order to turn on the trace.
      Reviewers: austin, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D2658
    • Matthew Pickering's avatar
      Stop -dno-debug-output suppressing -ddump-tc-trace · 1c886ead
      Matthew Pickering authored
      The user manual states that -dno-debug-output should suppress
      *unsolicited* debugging output which essentially amounts to calls
      to `pprTrace`. Before I unified the interface of `traceTc` and
      `traceRn`, the flag suppressed calls to `traceTc` but not to `traceRn`
      or any other tracing function already controlled by a flag.
      Thus, in order to make the behaviour more uniform, it seemed best to
      remove this one special case.
      Reviewers: austin, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D2628
      GHC Trac Issues: #12691
  8. 05 Nov, 2016 2 commits