1. 01 Apr, 2019 6 commits
  2. 30 Mar, 2019 1 commit
  3. 29 Mar, 2019 5 commits
    • Ben Gamari's avatar
      Bump transformers to · 6e15ca54
      Ben Gamari authored
      See #16199.
    • Ben Gamari's avatar
      ci: Check that changelogs don't contain "TBA" · 1a567133
      Ben Gamari authored
      This ensures that the release dates in the library changelogs are
      properly set.
    • Artem Pelenitsyn's avatar
    • Michael Peyton Jones's avatar
      Visibility: handle multiple units with the same name · 8a20bfc2
      Michael Peyton Jones authored
      Fixes #16228. The included test case is adapted from the reproduction in
      the issue, and fails without this patch.
      We compute an initial visilibity mapping for units based on what is
      present in the package databases. To seed this, we compute a set of all
      the package configs to add visibilities for.
      However, this set was keyed off the unit's *package name*. This is
      correct, since we compare packages across databases by version. However,
      we would only ever consider a single, most-preferable unit from the
      database in which it was found.
      The effect of this was that only one of the libraries in a Cabal package
      would be added to this initial set. This would cause attempts to use
      modules from the omitted libraries to fail, claiming that the package
      was hidden (even though `ghc-pkg` would correctly show it as visible).
      A solution is to do the selection of the most preferable packages
      separately, and then be sure to consider exposing all units in the
      same package in the same package db. We can do this by picking a
      most-preferable unit for each package name, and then considering
      exposing all units that are equi-preferable with that unit.
      Why wasn't this bug apparent to all people trying to use sub-libraries
      in Cabal? The answer is that Cabal explicitly passes `-package` and
      `-package-id` flags for all the packages it wants to use, rather than
      relying on the state of the package database. So this bug only really
      affects people who are trying to use package databases produced by Cabal
      outside of Cabal itself.
      One particular example of this is the way that the
      Nixpkgs Haskell infrastructure provides wrapped GHCs: typically these
      are equipped with a package database containing all the needed
      package dependencies, and the user is not expected to pass
      `-package` flags explicitly.
    • Artem Pelenitsyn's avatar
  4. 27 Mar, 2019 6 commits
    • Chaitanya Koparkar's avatar
      Fix a few broken Trac links [skip ci] · 4acdb769
      Chaitanya Koparkar authored
      This patch only attempts to fix links that don't automatically re-direct to the correct URL.
    • Ömer Sinan Ağacan's avatar
      Minor refactoring in copy array primops: · 5730f863
      Ömer Sinan Ağacan authored
      - `emitCopySmallArray` now checks size before generating code and
        doesn't generate any code when size is 0. `emitCopyArray` already does
        this so this makes small/large array cases the same in argument
      - In both `emitCopySmallArray` and `emitCopyArray` read the `dflags`
        after checking the argument.
    • David Eichmann's avatar
      Hadrian: don't use -zorigin on darwin. · 3dec527a
      David Eichmann authored
    • Alp Mestanogullari's avatar
      Hadrian: introduce an easy way for users to build with -split-sections · fb12f53c
      Alp Mestanogullari authored
      Any user can now trivially build any number of Haskell packages with
      `-split-sections` by using `splitSections`/`splitSectionsIf` on any
      existing or new flavour:
          -- build all packages but the ghc library with -split-sections
          splitSections :: Flavour -> Flavour
          -- build all packages that satisfy the given predicate
          -- with --split-sections
          splitSectionsIf :: (Package -> Bool) -> Flavour -> Flavour
      See the new section in `doc/user-settings.md`.
    • Andrey Mokhov's avatar
      Hadrian: trace the execution of expensive Cabal calls · 646f2e79
      Andrey Mokhov authored
      We use Cabal to parse, configure, register and copy packages, which are
      expensive operations that are currently not visible to Shake's profiling
      infrastructure. By using `traced` we tell Shake to add these IO actions
      to the profiling report, helping us to identify performance bottlenecks.
      We use short tracing keys, as recommended in Shake docs: the name of the
      current target is already available in the rest of the profiling
    • Andrey Mokhov's avatar
      Hadrian: Bump Shake to 0.17.6 · ab41c1b4
      Andrey Mokhov authored
      The new release of Shake comes with these relevant features:
      * use symlinks for --shared
      * add --compact for a Bazel/Buck style output
  5. 25 Mar, 2019 5 commits
  6. 24 Mar, 2019 1 commit
  7. 23 Mar, 2019 1 commit
  8. 22 Mar, 2019 13 commits
  9. 21 Mar, 2019 2 commits