1. 16 May, 2019 1 commit
  2. 14 May, 2019 9 commits
    • Alp Mestanogullari's avatar
      Hadrian: 'need' source files for various docs in Rules.Documentation · a416ae26
      Alp Mestanogullari authored
      Previously, changing one of the .rst files from the user guide would not cause
      the user guide to be rebuilt. This patch take a first stab at declaring the
      documentation source files that our documentation rules depend on, focusing
      on the .rst files only for now.
      We eventually might want to rebuild docs when we, say, change the haddock style
      file, but this level of tracking isn't really necessary for now.
      This fixes #16645.
    • Vladislav Zavialov's avatar
      Restore the --coerce option in 'happy' configuration · 684dc290
      Vladislav Zavialov authored
      happy-1.19.10 has been released with a fix for --coerce in the presence
      of higher rank types. This should result in about 10% performance
      improvement in the parser.
    • Vladislav Zavialov's avatar
      Guard CUSKs behind a language pragma · a5fdd185
      Vladislav Zavialov authored
      GHC Proposal #36 describes a transition plan away from CUSKs and to
      top-level kind signatures:
      1. Introduce a new extension, -XCUSKs, on by default, that detects CUSKs
         as they currently exist.
      2. We turn off the -XCUSKs extension in a few releases and remove it
         sometime thereafter.
      This patch implements phase 1 of this plan, introducing a new language
      extension to control whether CUSKs are enabled. When top-level kind
      signatures are implemented, we can transition to phase 2.
    • Vladislav Zavialov's avatar
    • Oleg Grenrus's avatar
      Update terminal title while running test-suite · 5cf8032e
      Oleg Grenrus authored
      Useful progress indicator even when `make test VERBOSE=1`,
      and when you do something else, but have terminal title visible.
    • John Ericson's avatar
      Remove all target-specific portions of Config.hs · e529c65e
      John Ericson authored
      1. If GHC is to be multi-target, these cannot be baked in at compile
      2. Compile-time flags have a higher maintenance than run-time flags.
      3. The old way makes build system implementation (various bootstrapping
         details) with the thing being built. E.g. GHC doesn't need to care
         about which integer library *will* be used---this is purely a crutch
         so the build system doesn't need to pass flags later when using that
      4. Experience with cross compilation in Nixpkgs has shown things work
         nicer when compiler's can *optionally* delegate the bootstrapping the
         package manager. The package manager knows the entire end-goal build
         plan, and thus can make top-down decisions on bootstrapping. GHC can
         just worry about GHC, not even core library like base and ghc-prim!
    • John Ericson's avatar
      Dont refer to `cLeadingUnderscore` in test · f9e4ea40
      John Ericson authored
      Can't use this config entry because it's about to go away
    • John Ericson's avatar
      hadrian: Make settings stage specific · 015a21b8
      John Ericson authored
    • KevinBuhr's avatar
      Add regression test for old parser issue #504 · 357be128
      KevinBuhr authored
  3. 13 May, 2019 1 commit
  4. 10 May, 2019 5 commits
  5. 08 May, 2019 9 commits
  6. 07 May, 2019 3 commits
    • KevinBuhr's avatar
    • Ryan Scott's avatar
      Check for duplicate variables in associated default equations · 78a5c4ce
      Ryan Scott authored
      A follow-up to !696's, which attempted to clean up the error messages
      for ill formed associated type family default equations. The previous
      attempt, !696, forgot to account for the possibility of duplicate
      kind variable arguments, as in the following example:
      class C (a :: j) where
        type T (a :: j) (b :: k)
        type T (a :: k) (b :: k) = k
      This patch addresses this shortcoming by adding an additional check
      for this. Fixes #13971 (hopefully for good this time).
    • Ryan Scott's avatar
      Add /includes/dist to .gitignore · 96197961
      Ryan Scott authored
      As of commit d37d91e9, the GHC build
      now autogenerates a `includes/dist/build/settings` file. To avoid
      dirtying the current `git` status, this adds `includes/dist` to
      [ci skip]
  7. 06 May, 2019 4 commits
  8. 05 May, 2019 2 commits
  9. 04 May, 2019 5 commits
  10. 03 May, 2019 1 commit
    • Ryan Scott's avatar
      Make equality constraints in kinds invisible · cc495d57
      Ryan Scott authored
      Issues #12102 and #15872 revealed something strange about the way GHC
      handles equality constraints in kinds: it treats them as _visible_
      arguments! This causes a litany of strange effects, from strange
      error messages
      (ghc/ghc#12102 (comment 169035))
      to bizarre `Eq#`-related things leaking through to GHCi output, even
      without any special flags enabled.
      This patch is an attempt to contain some of this strangeness.
      In particular:
      * In `TcHsType.etaExpandAlgTyCon`, we propagate through the
        `AnonArgFlag`s of any `Anon` binders. Previously, we were always
        hard-coding them to `VisArg`, which meant that invisible binders
        (like those whose kinds were equality constraint) would mistakenly
        get flagged as visible.
      * In `ToIface.toIfaceAppArgsX`, we previously assumed that the
        argument to a `FunTy` always corresponding to a `Required`
        argument. We now dispatch on the `FunTy`'s `AnonArgFlag` and map
        `VisArg` to `Required` and `InvisArg` to `Inferred`. As a
        consequence, the iface pretty-printer correctly recognizes that
        equality coercions are inferred arguments, and as a result,
        only displays them in `-fprint-explicit-kinds` is enabled.
      * Speaking of iface pretty-printing, `Anon InvisArg` binders were
        previously being pretty-printed like `T (a :: b ~ c)`, as if they
        were required. This seemed inconsistent with other invisible
        arguments (that are printed like `T @{d}`), so I decided to switch
        this to `T @{a :: b ~ c}`.
      Along the way, I also cleaned up a minor inaccuracy in the users'
      guide section for constraints in kinds that was spotted in
      ghc/ghc#12102 (comment 136220).
      Fixes #12102 and #15872.