Skip to content
Snippets Groups Projects
  1. Aug 07, 2021
    • Gergő Érdi's avatar
      Move `ol_witness` to `OverLitTc` · b603581d
      Gergő Érdi authored
      We also add a new `ol_from_fun` field to renamed (but not yet
      typechecked) OverLits. This has the nice knock-on effect of making
      total some typechecker functions that used to be partial.
      
      Fixes #20151
      b603581d
  2. Aug 05, 2021
  3. Aug 04, 2021
    • sheaf's avatar
      Use Reductions to keep track of rewritings · 7a9d8803
      sheaf authored and Marge Bot's avatar Marge Bot committed
      We define Reduction = Reduction Coercion !Type.
      A reduction of the form 'Reduction co new_ty' witnesses an
      equality ty ~co~> new_ty.
      That is, the rewriting happens left-to-right: the right-hand-side
      type of the coercion is the rewritten type, and the left-hand-side
      type the original type.
      Sticking to this convention makes the codebase more consistent,
      helping to avoid certain applications of SymCo.
      
      This replaces the parts of the codebase which represented reductions as
      pairs, (Coercion,Type) or (Type,Coercion).
      
      Reduction being strict in the Type argument improves performance
      in some programs that rewrite many type families (such as T9872).
      
      Fixes #20161
      
      -------------------------
      Metric Decrease:
        T5321Fun
          T9872a
          T9872b
          T9872c
          T9872d
      -------------------------
      7a9d8803
    • Zubin's avatar
      Fix GHCi completion (#20101) · 477bc2dd
      Zubin authored and Marge Bot's avatar Marge Bot committed
      Updates haskeline submodule
      477bc2dd
    • Matthew Pickering's avatar
      hadrian: Create relative rather than absolute symlinks in binary dist folder · ce7eeda5
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      The symlink structure now looks like:
      
      ```
      lrwxrwxrwx 1 matt users       16 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc -> ghc-9.3.20210721
      -rwxr-xr-x 1 matt users  1750336 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-9.3.20210721
      lrwxrwxrwx 1 matt users       22 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-iserv -> ghc-iserv-9.3.20210721
      -rwxr-xr-x 1 matt users 31703176 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-iserv-9.3.20210721
      lrwxrwxrwx 1 matt users       26 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-iserv-dyn -> ghc-iserv-dyn-9.3.20210721
      -rwxr-xr-x 1 matt users    40808 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-iserv-dyn-9.3.20210721
      lrwxrwxrwx 1 matt users       20 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-pkg -> ghc-pkg-9.3.20210721
      -rwxr-xr-x 1 matt users   634872 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/ghc-pkg-9.3.20210721
      lrwxrwxrwx 1 matt users       14 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/haddock -> haddock-2.24.0
      -rwxr-xr-x 1 matt users  4336664 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/haddock-2.24.0
      lrwxrwxrwx 1 matt users        9 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hp2ps -> hp2ps-0.1
      -rwxr-xr-x 1 matt users    49312 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hp2ps-0.1
      lrwxrwxrwx 1 matt users        8 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hpc -> hpc-0.68
      -rwxr-xr-x 1 matt users   687896 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hpc-0.68
      lrwxrwxrwx 1 matt users       13 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hsc2hs -> hsc2hs-0.68.8
      -rwxr-xr-x 1 matt users   729904 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/hsc2hs-0.68.8
      lrwxrwxrwx 1 matt users       19 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/runghc -> runghc-9.3.20210721
      -rwxr-xr-x 1 matt users    57672 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/runghc-9.3.20210721
      lrwxrwxrwx 1 matt users        9 Aug  3 16:27 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/unlit -> unlit-0.1
      -rwxr-xr-x 1 matt users    14896 Aug  3 15:00 _build/bindist/ghc-9.3.20210721-x86_64-unknown-linux/bin/unlit-0.1
      ```
      
      Fixes #20198
      ce7eeda5
    • John Ericson's avatar
      Make HsWrapper a Monoid · 1b6e646e
      John Ericson authored and Marge Bot's avatar Marge Bot committed
      See instance documentation for caviat.
      1b6e646e
    • Krzysztof Gogolewski's avatar
      Linear types: fix linting of multiplicities (#19165) · 9b719549
      Krzysztof Gogolewski authored and Marge Bot's avatar Marge Bot committed
      The previous version did not substitute the type used in the scrutinee.
      9b719549
    • Krzysztof Gogolewski's avatar
      Disable -fdefer-type-errors for linear types (#20083) · 2c714f07
      Krzysztof Gogolewski authored and Marge Bot's avatar Marge Bot committed
      2c714f07
  4. Aug 03, 2021
    • Sylvain Henry's avatar
      Don't store tmpDir in Settings · 4f672677
      Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
      There was no point in doing this as indicated by the TODO.
      4f672677
    • Sylvain Henry's avatar
      Fix ASSERTS_ENABLED CPP · 6ad25367
      Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
      6ad25367
    • Luite Stegeman's avatar
      move bytecode preparation into the STG pipeline · 3403c028
      Luite Stegeman authored and Marge Bot's avatar Marge Bot committed
      this makes it possible to combine passes to compute free variables
      more efficiently in a future change
      3403c028
    • Tito Sacchi's avatar
      Correctly unload libs on GHCi with external iserv · 9744c6f5
      Tito Sacchi authored and Marge Bot's avatar Marge Bot committed
      Fix #17669
      
      `hostIsDynamic` is basically a compile-time constant embedded
      in the RTS. Therefore, GHCi didn't unload object files
      properly when used with an external interpreter built in a
      different way.
      9744c6f5
    • Zubin's avatar
      Handle OverloadedRecordDot in TH (#20185) · 5155eafa
      Zubin authored and Marge Bot's avatar Marge Bot committed
      5155eafa
    • Andreas Klebinger's avatar
      Improve documentation for HscTypes.usg_mod_hash · bd287400
      Andreas Klebinger authored and Marge Bot's avatar Marge Bot committed
      bd287400
    • Krzysztof Gogolewski's avatar
      Add "fast-ci" label, for skipping most builds (#19280) · c0e66524
      Krzysztof Gogolewski authored and Marge Bot's avatar Marge Bot committed
      If "fast-ci" is present, only the following parts of full-build are run:
      - validate-x86_64-linux-deb9-debug
      - validate-x86_64-windows-hadrian
      - validate-x86_64-linux-deb9-unreg-hadrian
      c0e66524
    • Matthew Pickering's avatar
      Remove eager forcing of RuleInfo in substRuleInfo · 694ec53b
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      substRuleInfo updates the IdInfo for an Id, therefore it is important to not
      force said IdInfo whilst updating it, otherwise we end up in an infinite
      loop. This is what happened in #20112 where `mkTick` forced the IdInfo being
      updated by checking the arity in isSaturatedConApp. The fix is to stop
      the expression being forced so early by removing the call to
      seqRuleInfo.
      
      The call sequence looked something like:
      
      * `substRecBndrs`
      * `substIdBndr`
      * `substIdInfo`
      * `substRuleInfo`
      * `substRule`
      * `substExpr`
      * `mkTick`
      * `isSaturatedConApp`
      * Look at `IdInfo` for thing we are currently substituting because the rule is attached to `transpose` and mentions it in the `RHS` of the rule.
      
      Which arose because the `transpose` Id had a rule attached where the RHS
      of the rule also mentioned `transpose`.
      
      This call to seqRuleInfo was introduced in 4e7d56fd
      where it was explained
      
      >  I think there are now *too many* seqs, and they waste work, but I don't have
      >  time to find which ones.
      
      We also observe that there is the ominous note on `substRule` about
      making sure substExpr is called lazily.
      
      > {- Note [Substitute lazily]
      > ~~~~~~~~~~~~~~~~~~~~~~~~~~~
      > The functions that substitute over IdInfo must be pretty lazy, because
      > they are knot-tied by substRecBndrs.
      >
      > One case in point was #10627 in which a rule for a function 'f'
      > referred to 'f' (at a different type) on the RHS.  But instead of just
      > substituting in the rhs of the rule, we were calling simpleOptExpr, which
      > looked at the idInfo for 'f'; result <<loop>>.
      >
      > In any case we don't need to optimise the RHS of rules, or unfoldings,
      > because the simplifier will do that.
      
      Before `seqRuleInfo` was removed, this note was pretty much ignored in
      the `substSpec` case because the expression was immediately forced after
      `substRule` was called.
      
      Unfortunately it's a bit tricky to add a test for this as the failure
      only manifested (for an unknown reason) with a dwarf enabled compiler
      *AND* compiling with -g3. Fortunatley there is currently a CI
      configuration which builds a dwarf compiler to test this.
      
      Also, for good measure, finish off the work started in
      840df336 which renamed SpecInfo to
      RuleInfo but then didn't rename 'substSpec' to 'substRuleInfo'.
      
      Fixes #20112
      694ec53b
    • Ben Gamari's avatar
      Bump process submodule · d22ec8a9
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      d22ec8a9
    • Zubin's avatar
      Properly escape arguments in ghc-cabal · 9807350a
      Zubin authored and Marge Bot's avatar Marge Bot committed
      9807350a
    • Zubin's avatar
      Remove hschooks.c and -no-hs-main for ghc-bin · bbee89dd
      Zubin authored and Marge Bot's avatar Marge Bot committed
      bbee89dd
    • Jens Petersen's avatar
      include README in hadrian.cabal · c248e7cc
      Jens Petersen authored and Marge Bot's avatar Marge Bot committed
      [skip ci]
      c248e7cc
  5. Aug 02, 2021
Loading