1. 11 Dec, 2018 16 commits
  2. 10 Dec, 2018 1 commit
  3. 08 Dec, 2018 20 commits
    • Ben Gamari's avatar
      hadrian: Drop nix build script · c00d2f59
      Ben Gamari authored
      It's currently too out-of-date to build current hadrian and is arguably
      completely broken anyways (see #15794).
    • Ben Gamari's avatar
      testsuite: 32-bit expected output for T15460 · f5bff4bc
      Ben Gamari authored
    • Ben Gamari's avatar
      rts: Ensure that task->id is initialized · 64ef4d7f
      Ben Gamari authored
      Reviewers: erikd, simonmar
      Reviewed By: simonmar
      Subscribers: rwbarton, carter
      Differential Revision: https://phabricator.haskell.org/D5325
    • Simon Marlow's avatar
      Use --no-as-needed with LLD too · aa619f39
      Simon Marlow authored
      Test Plan: validate using LLD as the linker (TODO)
      Reviewers: bgamari, angerman, kavon, erikd
      Reviewed By: bgamari
      Subscribers: watashi, rwbarton, carter
      Differential Revision: https://phabricator.haskell.org/D5336
    • Matthew Pickering's avatar
      Add -fno-safe-haskell flag · 45e98f64
      Matthew Pickering authored
      This flag can be set to turn off the Safe Haskell checks.
      Whether a module is marked Safe/Unsafe/Trustworthy is ignored when
      this flag to set.
      Reviewers: bgamari, tdammers
      Reviewed By: tdammers
      Subscribers: rwbarton, carter
      GHC Trac Issues: #15920
      Differential Revision: https://phabricator.haskell.org/D5360
    • Ömer Sinan Ağacan's avatar
      Fix StgLint bound id check, generalize StgLint · 04caa935
      Ömer Sinan Ağacan authored
      StgLint was incorrectly using isLocalId for bound id check to see
      whether an id is imported (in which case we don't expect it to be bound)
      or local.  The problem with isLocalId is that its semantics changes
      after Core, as explained in the note: (last line)
          Note [GlobalId/LocalId]
          A GlobalId is
            * always a constant (top-level)
            * imported, or data constructor, or primop, or record selector
            * has a Unique that is globally unique across the whole
              GHC invocation (a single invocation may compile multiple
            * never treated as a candidate by the free-variable finder;
                  it's a constant!
          A LocalId is
            * bound within an expression (lambda, case, local let(rec))
            * or defined at top level in the module being compiled
            * always treated as a candidate by the free-variable finder
          After CoreTidy, top-level LocalIds are turned into GlobalIds
      We now pass current module as a parameter to StgLint, which uses it to
      see if an id should be bound (defined in the current module) or not
      Other changes:
      - Generalized StgLint to make it work on both StgTopBinding and
      - Bring all top-level binders into scope before linting top-level
        bindings to allow uses before definitions.
      TODO: We should remove the binder from local vars when checking RHSs of
      non-recursive bindings.
      Test Plan: This validates.
      Reviewers: simonpj, bgamari, sgraf
      Reviewed By: simonpj, sgraf
      Subscribers: rwbarton, carter
      Differential Revision: https://phabricator.haskell.org/D5370
    • Roland Senn's avatar
      Fix #15369: GHCi doesn't honor :set +c when loading for a second time · 57c9b1ae
      Roland Senn authored
      The decision to (re)collect the type info for a (re)loaded module is
      now taken only by comparing the file timestamps of the .hs file of the
      module. (Or form the .o file if the .hs file is missing).
      If the file timestamp changes, we (re)collect the type info.
      The timestamp of the processing time of the last collect is no longer
      Test Plan: make test TEST=T15369
      Reviewers: alanz, hvr, monoidal, osa1, thomie, bgamari, tdammers
      Reviewed By: tdammers
      Subscribers: rwbarton, carter
      GHC Trac Issues: #15369
      Differential Revision: https://phabricator.haskell.org/D5376
    • Andreas Klebinger's avatar
      Add haddock for Node in Digraph. [skip ci] · c5ced679
      Andreas Klebinger authored
      Test Plan: make
      Reviewers: bgamari
      Reviewed By: bgamari
      Subscribers: rwbarton, carter
      Differential Revision: https://phabricator.haskell.org/D5378
    • Zejun Wu's avatar
      Remove redundant include of Rts.h in EventLogWriter.h · a24ab444
      Zejun Wu authored
      `EventLogWriter.h` doesn't use anything from `Rts.h`, the include is
      redundant. This include is ignored when we include
      Rts.h -> RtsAPI.h -> rts/EventLogWriter.h -> Rts.h
      but can can cause problem when we include `RtsApi.h` directly with
      errors like
      In file included from /usr/lib/ghc-8.6.2/include/RtsAPI.h:20:
      In file included from
      In file included from /usr/lib/ghc-8.6.2/include/Rts.h:185:
      /usr/lib/ghc-8.6.2/include/rts/storage/GC.h:187:29: error: unknown type
      name 'Capability'
      StgPtr  allocate          ( Capability *cap, W_ n );
      Test Plan: ./validate
      Reviewers: simonmar, bgamari, afarmer, erikd, alexbiehl
      Reviewed By: bgamari, alexbiehl
      Subscribers: rwbarton, carter
      Differential Revision: https://phabricator.haskell.org/D5395
    • Ömer Sinan Ağacan's avatar
      Rename "changed" to "no-change" in HscMain · f2bad7e1
      Ömer Sinan Ağacan authored
      hscSimpleIface is returning a bool for whether there were _no changes_
      in the iface file. The same bool is called "no_change_at_all" in
      mkIface_, and "no_change" in hscWriteIface and other functions. However
      it is called "changed" in HscMain.finish and hscMaybeWriteIface, which
      is confusing because "changed" and "no_change" have opposite meanings.
      This patch renames "changed" to "no_change" to fix this.
      Reviewers: simonpj, bgamari
      Reviewed By: bgamari
      Subscribers: rwbarton, carter
      Differential Revision: https://phabricator.haskell.org/D5416
    • Alp Mestanogullari's avatar
      Hadrian: fix dynamicGhcPrograms value for the quickest flavour · 7d96d281
      Alp Mestanogullari authored
      Quickest does not build anything in a dynamic way, so that
      flavour should default to not building "ghc programs" dynamically.
      I ran into this problem by building the 'docs' target with quickest,
      which failed because at some point we run a haddock command in a
      context whose Way is sensitive to dynamicGhcPrograms, and it
      started looking for dyn interface files when it shouldn't have.
      Test Plan: hadrian/build.sh --flavour=quickest docs
      Reviewers: snowleopard, bgamari
      Reviewed By: snowleopard
      Subscribers: rwbarton, carter
      Differential Revision: https://phabricator.haskell.org/D5419
    • Ömer Sinan Ağacan's avatar
      Mark SRT_1/SRT_2 as CONSTR_1_0/CONSTR_2_0 · 38edeea9
      Ömer Sinan Ağacan authored
      Test Plan:
      Validated locally, but skipped perf tests as there's a
      framework-related error
      Reviewers: simonmar, bgamari, erikd
      Reviewed By: simonmar
      Subscribers: rwbarton, carter
      Differential Revision: https://phabricator.haskell.org/D5421
    • Alp Mestanogullari's avatar
      hadrian: eliminate most of the remaining big rule enumerations · 665f8b0c
      Alp Mestanogullari authored
      Following what was done to Rules.Library some time ago and to
      Rules.Compile recently (D5412), this patch moves more rules away from
      the "enumerate a lot of contexts and generate one rule for each" style
      and instead uses the "parse data from file path to recover context"
      approach. In fact, the only rules left to convert seem to be the ones
      from Rules.Generate.
      This effectively decreases the pauses described in #15938 further as
      well as the amount of allocations and GC that we do, unsurprisingly.
      Nowhere as drastically as D5412, though.
      Test Plan: perform full build and generate docs
      Reviewers: snowleopard, bgamari
      Reviewed By: snowleopard
      Subscribers: rwbarton, carter
      GHC Trac Issues: #15938
      Differential Revision: https://phabricator.haskell.org/D5422
    • Alec Theriault's avatar
      Require 'libdw' for '--enable-dwarf-unwind' · cb882fc9
      Alec Theriault authored
      This causes './configure --enable-dwarf-unwind' to exit with a helpful
      error message when 'libdw' cannot be found (compared to the previous
      behaviour of silently pretending the user hadn't requested DWARF support
      at all).
      Test Plan: ./configure --enable-dwarf-unwind # on systems with/without
      Reviewers: bgamari, nh2
      Reviewed By: nh2
      Subscribers: nh2, rwbarton, erikd, carter
      GHC Trac Issues: #15968
      Differential Revision: https://phabricator.haskell.org/D5424
    • Peter Trommler's avatar
      Mark broken tests on powerpc64le and skip ghci-ext · bd808316
      Peter Trommler authored
      Mark tests with DWARF as broken
      Test way `ghci-ext` only where available
      Test Plan: validate
      Reviewers: bgamari, hvr, simonmar, erikd, Phyx
      Reviewed By: bgamari, Phyx
      Subscribers: Phyx, rwbarton, carter
      Differential Revision: https://phabricator.haskell.org/D5297
    • Ben Gamari's avatar
      testsuite: Fix tests expecting 64-bit word size · e1a98fab
      Ben Gamari authored
      These were added in 75a8349b.
    • Adam Sandberg Eriksson's avatar
    • abc's avatar
      Fixed plugin example to work · 3de019cb
      abc authored
    • Simon Jakobi's avatar
      Fix typo in Foldable docs · eb7ba36b
      Simon Jakobi authored
    • Sven Tennie's avatar
      Add some complexities to Data.List documentation (#15003) · 07e02d57
      Sven Tennie authored
      Namely for:
      - head
      - uncons
      - tail
      - last
      - init
      - null
  4. 07 Dec, 2018 3 commits
    • Ben Gamari's avatar
      CircleCI: Don't ignore gitlab/.* branches · c77fbd94
      Ben Gamari authored
      This was added (for good reasons) in b9260e92
      but it seems this field isn't allowed in this context. Sadly there doesn't
      appear to be an easy way to accomplish what we are after with CircleCI's rather
      restrictive configuration language. Sigh.
    • Ben Gamari's avatar
      testsuite: Fix use of stats_num_field · a6b4da8c
      Ben Gamari authored
      This is now collect_stats.
    • Ryan Scott's avatar
      Fix #12102/#15872 by removing outdated users' guide prose · 73cce63f
      Ryan Scott authored
      In the beginning, #12102 (and #15872, which is of a similar
      ilk) were caused by a poor, confused user trying to use code that
      looks like this (with a constraint in the kind of a data type):
      type family IsTypeLit a where
        IsTypeLit Nat    = 'True
        IsTypeLit Symbol = 'True
        IsTypeLit a      = 'False
      data T :: forall a. (IsTypeLit a ~ 'True) => a -> * where
        MkNat    :: T 42
        MkSymbol :: T "Don't panic!"
      Many bizarre GHC quirks (documented in those tickets) arose from
      this sort of construction. Ultimately, the use of constraints in
      data type kinds like this has made a lot of people very confused and
      been widely regarded as a bad move.
      Commit 2257a86d finally put this
      feature out of its misery, so now the code above simply errors with
      `Illegal constraint in a kind`. As a result, the aforementioned
      tickets are moot, so this patch wraps a bow on the whole thing by:
      1. Removing the (now outdated) section on constraints in data type
         kinds from the users' guide, and
      2. Adding a test case to test this code path.
      Test Plan: make test TEST=T12102
      Reviewers: goldfire, simonpj, bgamari, tdammers
      Reviewed By: tdammers
      Subscribers: tdammers, rwbarton, carter
      GHC Trac Issues: #12102, #15872
      Differential Revision: https://phabricator.haskell.org/D5397