1. 18 Nov, 2015 3 commits
  2. 17 Nov, 2015 9 commits
    • quchen's avatar
      MonadFail proposal, phase 1 · 233d1312
      quchen authored
      This implements phase 1 of the MonadFail proposal (MFP, #10751).
      
      - MonadFail warnings are all issued as desired, tunable with two new flags
      - GHC was *not* made warning-free with `-fwarn-missing-monadfail-warnings`
        (but it's disabled by default right now)
      
      Credits/thanks to
      - Franz Thoma, whose help was crucial to implementing this
      - My employer TNG Technology Consulting GmbH for partially funding us
        for this work
      
      Reviewers: goldfire, austin, #core_libraries_committee, hvr, bgamari, fmthoma
      
      Reviewed By: hvr, bgamari, fmthoma
      
      Subscribers: thomie
      
      Projects: #ghc
      
      Differential Revision: https://phabricator.haskell.org/D1248
      
      GHC Trac Issues: #10751
      233d1312
    • Adam Gundry's avatar
      Implement OverloadedLabels · 7b962bab
      Adam Gundry authored
      See
      https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/OverloadedLabels
      for the big picture.
      
      Reviewers: goldfire, simonpj, austin, hvr, bgamari
      
      Reviewed By: simonpj, bgamari
      
      Subscribers: kosmikus, thomie, mpickering
      
      Differential Revision: https://phabricator.haskell.org/D1331
      7b962bab
    • Tamar Christina's avatar
      Fix archive loading on Windows by the runtime loader · acce37f3
      Tamar Christina authored
      The runtime loader is unable to find archive files `.a` shipping
      with the inplace `GCC`.
      
      It seems the issue is caused by `findArchive` being unable to
      find any archives that are shipped using the in-place `GCC`.
      
      - It works on Linux because `findArchive` would search
        the standard Linux include path.
      - It works during compilation because `GCC` can find it's own libraries
        (we explicitly tell it where to look for libraries using the `gcc`
        wrapper around `realgcc`)
      
      So fixing the issue means using `searchForLibUsingGcc` in `findArchive`
      as well, which will then find the correct file.
      
      The reason for the error as it is, is because if we can't locate the
      library using any of the methods we have, we assume it is a system dll,
      or something on the system search path.  e.g. if trying to load
      `kernel32.dll`.
      
      There is a slight issue in that the `GHCi` code (incorrectly) favors
      `static archives` over `dynamic` ones
      
      ```
      findDll        `orElse`
      findArchive    `orElse`
      tryGcc         `orElse`
      tryGccPrefixed `orElse`
      assumeDll
      ```
      This has the unwanted effect of when `kernel32` is specified as a lib,
      it will try to load `kernel32.a` instead of `kernel32.dll`.
      
      To solve this I have added another search function that is able to
      search the Windows search paths using `SearchPath` in order to find if
      it is a dll on the system search path.
      
      The new search order is:
      
      ```
      findDll     `orElse`
      findSysDll  `orElse`
      tryGcc      `orElse`
      findArchive `orElse`
      assumeDll
      ```
      
      (`tryGccPrefixed` was rolled into `tryGcc` so it is no longer needed at
      top level)
      
      Test Plan: ./validate added new windows tests T3242
      
      Reviewers: thomie, erikd, hvr, austin, bgamari
      
      Reviewed By: thomie, erikd, bgamari
      
      Differential Revision: https://phabricator.haskell.org/D1455
      
      GHC Trac Issues: #3242
      acce37f3
    • Herbert Valerio Riedel's avatar
      Make `timer_create(CLOCK_REALTIME)` autoconf test more reliable · 8ad9e74f
      Herbert Valerio Riedel authored
      I've noticed that on a platform with a coarse timer/scheduling
      granularity of 10ms this autoconf tests fails to detect a working
      `timer_create(CLOCK_REALTIME)`.
      
      On AIX, this effectively means that intervals/timers are rounded up to
      multiples of 10ms, so a 13ms delay is effectively a 20ms delay.
      
      By using a 100ms timeout we are on the safe side.
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie, erikd
      
      Differential Revision: https://phabricator.haskell.org/D1483
      8ad9e74f
    • Adam Sandberg Eriksson's avatar
      Update Cabal submodule for new known extension · b3d6c0f7
      Adam Sandberg Eriksson authored
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1485
      b3d6c0f7
    • Herbert Valerio Riedel's avatar
      template-haskell: drop `TemplateHaskell` requirement · 7c9cbfd9
      Herbert Valerio Riedel authored
      `other-extensions: TemplateHaskell` is inaccurate: It's not required
      to compile `template-haskell` (otherwise we wouldn't be able to build
      that package via `ghc-stage1`...)
      
      This has been discovered while working on #11102
      7c9cbfd9
    • Ömer Sinan Ağacan's avatar
      Remove orphan Functor instance of Data.Graph.SCC · 615ba5ff
      Ömer Sinan Ağacan authored
      Reviewers: bgamari, austin
      
      Reviewed By: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1481
      615ba5ff
    • Ben Gamari's avatar
      T9181: Fix testsuite output · 4e74ef96
      Ben Gamari authored
      I'm not really sure how this one snuck through my local validation. Hmm.
      4e74ef96
    • Ben Gamari's avatar
      Bump process submodule · df8169c8
      Ben Gamari authored
      df8169c8
  3. 16 Nov, 2015 14 commits
  4. 14 Nov, 2015 3 commits
    • Adam Sandberg Eriksson's avatar
      Implement the Strict language extension · 46a03fbe
      Adam Sandberg Eriksson authored
      Add a new language extension `-XStrict` which turns all bindings strict
      as if the programmer had written a `!` before it. This also upgrades
      ordinary Haskell to allow recursive and polymorphic strict bindings.
      
      See the wiki[1] and the Note [Desugar Strict binds] in DsBinds for
      specification and implementation details.
      
      [1] https://ghc.haskell.org/trac/ghc/wiki/StrictPragma
      
      Reviewers: austin, tibbe, simonpj, bgamari
      
      Reviewed By: tibbe, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1142
      
      GHC Trac Issues: #8347
      46a03fbe
    • Ben Gamari's avatar
      Fix bootstrapping with GHC 7.10.1 · 54884220
      Ben Gamari authored
      Relying on CallStack being in GLASGOW_HASKELL >= 710 breaks
      bootstrappability with 7.10.1
      
      7.10.2 added the CallStack mechanism, and GHC already relies on this
      while being built. Unfortunately, it is enabled with "GLASGOW_HASKELL
      >= 710", which also applies to GHC 7.10.1, which does not have
      CallStack, and fails building the stage-1 compiler because the symbol
      is not found.
      
      This patch makes the CPP directive more strict, requiring **more than**
      7.10 instead of **at least**.
      
      Reviewers: jstolarek, austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1472
      
      GHC Trac Issues: #11085
      54884220
    • Ben Gamari's avatar
      Rip out __HADDOCK__ references · 3353f62a
      Ben Gamari authored
      As it turns out no one actually sets this macro anyways and haddock
      now clearly has no trouble parsing this code.
      
      Test Plan: Validate
      
      Reviewers: hvr, goldfire, austin
      
      Reviewed By: austin
      
      Subscribers: duncan, thomie, hvr
      
      Differential Revision: https://phabricator.haskell.org/D1463
      3353f62a
  5. 13 Nov, 2015 6 commits
    • Simon Marlow's avatar
      Make 'error' include the CCS call stack when profiled · 8988be85
      Simon Marlow authored
      Summary:
      The idea here is that this gives a more detailed stack trace in two
      cases:
      
      1. With `-prof` and `-fprof-auto`
      2. In GHCi (see #11047)
      
      Example, with an error inserted in nofib/shootout/binary-trees:
      
      ```
      $ ./Main 3
      Main: z
      CallStack (from ImplicitParams):
        error, called at Main.hs:67:29 in main:Main
      CallStack (from -prof):
        Main.check' (Main.hs:(67,1)-(68,82))
        Main.check (Main.hs:63:1-21)
        Main.stretch (Main.hs:32:35-57)
        Main.main.c (Main.hs:32:9-57)
        Main.main (Main.hs:(27,1)-(43,42))
        Main.CAF (<entire-module>)
      ```
      
      This doesn't quite obsolete +RTS -xc, which also attempts to display
      more information in the case when the error is in a CAF, but I'm
      exploring other solutions to that.
      
      Includes submodule updates.
      
      Test Plan: validate
      
      Reviewers: simonpj, ezyang, gridaphobe, bgamari, hvr, austin
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1426
      8988be85
    • Matthew Pickering's avatar
      8868ff3e
    • Joachim Breitner's avatar
      Remove imv_empty from ImportedModsVal · 5a862928
      Joachim Breitner authored
      it seems that this field is never used.
      5a862928
    • Joachim Breitner's avatar
      Turn ImportedModsVal into a data type · b8d263dc
      Joachim Breitner authored
      it was a 4-tuple before my patch, and a 6-tuple afterwards. Clearly a
      record type is in order here!
      b8d263dc
    • Joachim Breitner's avatar
      Give helpful advice when a fully qualified name is not in scope · e66f79df
      Joachim Breitner authored
      This implements #11071. It needs to thread through a GlobalRdrEnv
      corresponding to the export list of the module if its exports were not
      restricted.
      
      A refactoring of ImportedModsVal into a proper data type follows.
      
      Differential Revision: https://phabricator.haskell.org/D1462
      e66f79df
    • Alan Zimmerman's avatar
      APIAnnotations:add Locations in hsSyn for layout · 2290c8bd
      Alan Zimmerman authored
      Summary:
      At the moment ghc-exactprint, which uses the GHC API Annotations to
      provide a framework for roundtripping Haskell source code with optional
      AST edits, has to implement a horrible workaround to manage the points
      where layout needs to be captured.
      
      These are
      
          MatchGroup
          HsDo
          HsCmdDo
          HsLet
          LetStmt
          HsCmdLet
          GRHSs
      
      To provide a more natural representation, the contents subject to layout
      rules need to be wrapped in a SrcSpan.
      
      This commit does this.
      
      Trac ticket #10250
      
      Test Plan: ./validate
      
      Reviewers: hvr, goldfire, bgamari, austin, mpickering
      
      Reviewed By: mpickering
      
      Subscribers: thomie, mpickering
      
      Differential Revision: https://phabricator.haskell.org/D1370
      
      GHC Trac Issues: #10250
      2290c8bd
  6. 12 Nov, 2015 5 commits