1. 16 Nov, 2015 11 commits
  2. 14 Nov, 2015 3 commits
    • ase's avatar
      Implement the Strict language extension · 46a03fbe
      ase authored and Ben Gamari's avatar Ben Gamari committed
      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
    • 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
    • Ben Gamari's avatar
      Rip out __HADDOCK__ references · 3353f62a
      Ben Gamari authored and Ben Gamari's avatar Ben Gamari committed
      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
  3. 13 Nov, 2015 6 commits
    • Simon Marlow's avatar
      Make 'error' include the CCS call stack when profiled · 8988be85
      Simon Marlow authored
      The idea here is that this gives a more detailed stack trace in two
      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
    • Matthew Pickering's avatar
    • Joachim Breitner's avatar
      Remove imv_empty from ImportedModsVal · 5a862928
      Joachim Breitner authored
      it seems that this field is never used.
    • 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!
    • 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
      A refactoring of ImportedModsVal into a proper data type follows.
      Differential Revision: https://phabricator.haskell.org/D1462
    • Alan Zimmerman's avatar
      APIAnnotations:add Locations in hsSyn for layout · 2290c8bd
      Alan Zimmerman authored
      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
      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
  4. 12 Nov, 2015 6 commits
  5. 11 Nov, 2015 14 commits
    • kgardas's avatar
      fix RTS Linker on platforms without SHN_XINDEX support · 9bea234d
      kgardas authored
      This patch fixes RTS Linker compilation issues on platforms
      where SHN_XINDEX is not defined. Tested on OpenBSD. When SHN_XINDEX
      is not defined, the code reverts to the old behavior, that means
      behavior of the Linker before D1357 which added SHN_XINDEX based
      Reviewers: bgamari, austin, erikd
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1446
    • Matthew Pickering's avatar
      Remove redundant test. · a038b724
      Matthew Pickering authored
      ExportSyntaxImport will fail if this test would have ever failed.
    • Matthew Pickering's avatar
      Rename bundled pattern synonym tests to reflect new terminology · 63cad5d4
      Matthew Pickering authored
      This also fixes a bug which causes intermittent test failures due to
      interdependent tests.
    • Jan Stolarek's avatar
      mkGadtDecl no longer in P monad · afbd30b6
      Jan Stolarek authored and Ben Gamari's avatar Ben Gamari committed
      Since `mkGadtDecl` does not use any of the functions specific to the `P`
      monad we can extract it from that monad and reuse in other parts of the
      Test Plan: ./validate
      Reviewers: austin, bgamari
      Reviewed By: bgamari
      Subscribers: thomie, mpickering
      Differential Revision: https://phabricator.haskell.org/D1461
    • Peter Trommler's avatar
      nativeGen.PPC: Fix shift arith. right > 31 bits · fb0d5120
      Peter Trommler authored and Ben Gamari's avatar Ben Gamari committed
      Arithmetic right shifts of more than 31 bits set all bits to
      the sign bit on PowerPC. iThe assembler does not allow shift
      amounts larger than 32 so do an arithemetic right shift of 31
      bit instead.
      Fixes #10870
      Test Plan: validate (especially on powerpc)
      Reviewers: austin, erikd, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1459
      GHC Trac Issues: #10870
    • Sylvain HENRY's avatar
      Detect invalid foreign imports in bytecode compiler · badf5d54
      Sylvain HENRY authored and Ben Gamari's avatar Ben Gamari committed
      The bytecode compiler doesn't handle every foreign import calling
      convention. Instead of crashing during the generation of the foreign
      call, we display an error.
      Fix lint warnings
      Test Plan: prog014 ghci test added
      Reviewers: austin, hvr, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1458
      GHC Trac Issues: #10462
    • niteria's avatar
      Put kind variables before type variables when specializing · 0f495083
      niteria authored and Ben Gamari's avatar Ben Gamari committed
      When you reverse the order of uniques you get the core lint
      error from the testcase. The testcase is copied from
      The problem is that we would put type and kind variables ordered by
      unique order, which happened to be the right order for this testcase to
      pass under normal conditions.
      I think it's enough to sort them with `sortQuantVars`, but I'm not
      really sure if some more sophisticated dependency analysis isn't needed.
      Test Plan: added a new testcase
      Reviewers: simonpj, goldfire, simonmar, austin, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1457
    • glguy's avatar
      Improve documentation of Data.List.lines: · fa61edde
      glguy authored and Ben Gamari's avatar Ben Gamari committed
      - Document behavior on some inputs.
      - Add some examples.
      Reviewers: bgamari, osa1, hvr, dolio, #core_libraries_committee,
      nomeata, austin
      Reviewed By: bgamari, dolio, #core_libraries_committee, nomeata, austin
      Subscribers: dolio, glguy, nomeata, thomie
      Differential Revision: https://phabricator.haskell.org/D1450
    • Sylvain HENRY's avatar
      Systools: read ELF section without calling readelf · 109d7ce8
      Sylvain HENRY authored and Ben Gamari's avatar Ben Gamari committed
      This patch tackles two issues:
      1) GHC stores a "link info" string into a ELF section. Initially a
      section with type "note" was used but GHC didn't follow the ELF
      specification which specifies a record-based format for these sections.
      With D1375 we switched to a "progbits" section type for which there
      isn't any format constraint. This is an issue for D1242 which use GCC's
      --gc-sections which collects "unused" sections, such as our section
      containing link info... In this patch, we fall back to a section with
      type "note" but we respect the specified format.
      2) Reading back the ELF section was done by parsing the result of a
      call to "readelf". Calling readelf is problematic because the program
      may not be available or it may be renamed on some platforms (see
      D1326). Moreover we have no garanty that its output layout will stay
      the same in future releases of readelf. Finally we would need to fix
      the parsing to support  "note" sections because of 1. Instead, this
      patch proposes to use Data.Binary.Get to directly read the "link info"
      note into its section. ELF has a specification, hence it should work on
      every conforming platform.
      This patch "reverts" D1375, hence it supersedes D1432. It makes D1326
      not necessary anymore.
      Test Plan:
      - recomp011 should pass (test that relinking is avoided when both "link
      info" match)
      - we should add a test for ELF objects with more than 0xff00 sections
      => added test "recomp015"
      - we should check that GAS generates 32-bit words with .int on every
      supported platform using ELF (or find a place where this is
      documented). harbomaster and I (@hsyl20) only tested on x86-64. On
      platforms where it is not true, it should make recomp011 fail. =>
      tested to work on Linux/amd64, Solaris/i386 and OpenBSD/amd64
      Reviewers: olsner, ony, thomie, kgardas, austin, bgamari
      Reviewed By: thomie, bgamari
      Subscribers: kgardas, rwbarton, thomie
      Differential Revision: https://phabricator.haskell.org/D1381
      GHC Trac Issues: #10974, #11022
    • Alan Zimmerman's avatar
      Remove fun_infix from Funbind, as it is now in Match · f0f9365f
      Alan Zimmerman authored and Ben Gamari's avatar Ben Gamari committed
      One of the changes D538 introduced is to add `m_fun_id_infix` to `Match`
      data Match id body
        = Match {
              m_fun_id_infix :: (Maybe (Located id,Bool)),
                -- fun_id and fun_infix for functions with multiple equations
                -- only present for a RdrName. See note [fun_id in Match]
              m_pats :: [LPat id], -- The patterns
              m_type :: (Maybe (LHsType id)),
                                       -- A type signature for the result of the match
                                       -- Nothing after typechecking
              m_grhss :: (GRHSs id body)
        } deriving (Typeable)
      This was done to track the individual locations and fixity of the
      `fun_id` for each of the defining equations for a function when there
      are more than one.
      For example, the function `(&&&)` is defined with some prefix and some
      infix equations below.
          (&&&  ) [] [] =  []
          xs    &&&   [] =  xs
          (  &&&  ) [] ys =  ys
      This means that the fun_infix is now superfluous in the `FunBind`. This
      has not been removed as a potentially risky change just before 7.10 RC2,
      and so must be done after.
      This ticket captures that task, which includes processing these fields
      through the renamer and beyond.
      Ticket #9988 introduced these fields into `Match` through renaming, this
      ticket it to continue through type checking and then remove it from
      `FunBind` completely.
      The split happened so that #9988 could land in 7.10
      Trac ticket : #10061
      Test Plan: ./validate
      Reviewers: goldfire, austin, simonpj, bgamari
      Reviewed By: bgamari
      Subscribers: simonpj, thomie, mpickering
      Differential Revision: https://phabricator.haskell.org/D1285
      GHC Trac Issues: #10061
    • Jan Stolarek's avatar
      Remove unused field in ConDecl · ea8c116a
      Jan Stolarek authored and Ben Gamari's avatar Ben Gamari committed
      We no longer parse old-style GADT syntax but there was some left-over
      code for emitting deprecation warnings.
      Updates haddock submodule.
      Test Plan: ./validate
      Reviewers: austin, bgamari
      Reviewed By: bgamari
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D1460
    • Thomas Miedema's avatar
      OPTIONS_GHC compiler flags may contain spaces (#4931) · fbc2537c
      Thomas Miedema authored and Ben Gamari's avatar Ben Gamari committed
      When a .hsc contains `#define FOO "bar baz"`, hsc2hs emits:
          {-# OPTIONS_GHC -optc-DFOO="bar baz" #-}
      Make sure GHC can compile this, by tweaking `HeaderInfo.getOptions` a
      Test Plan: driver/T4931
      Reviewers: austin, bgamari
      Reviewed By: bgamari
      Differential Revision: https://phabricator.haskell.org/D1452
      GHC Trac Issues: #4931
    • siddhanathan's avatar
      Fix link in documentation · 5eb56edd
      siddhanathan authored and Ben Gamari's avatar Ben Gamari committed
      Reviewers: austin, bgamari
      Reviewed By: bgamari
      Subscribers: mpickering, thomie
      Differential Revision: https://phabricator.haskell.org/D1456
    • Matthew Pickering's avatar
      Associate pattern synonyms with types in module exports · 96621b1b
      Matthew Pickering authored and Ben Gamari's avatar Ben Gamari committed
      This patch implements #10653.
      It adds the ability to bundle pattern synonyms with type constructors in
      export lists so that users can treat pattern synonyms more like data
      Updates haddock submodule.
      Test Plan: ./validate
      Reviewers: goldfire, austin, bgamari
      Reviewed By: bgamari
      Subscribers: simonpj, gridaphobe, thomie
      Differential Revision: https://phabricator.haskell.org/D1258
      GHC Trac Issues: #10653