1. 21 Jun, 2022 1 commit
  2. 20 Jun, 2022 9 commits
    • Tamar Christina's avatar
      linker: only keep rtl exception tables if they have been relocated · 159b7628
      Tamar Christina authored and Marge Bot's avatar Marge Bot committed
      159b7628
    • Vladislav Zavialov's avatar
      HsToken for @-patterns and TypeApplications (#19623) · d24afd9d
      Vladislav Zavialov authored and Marge Bot's avatar Marge Bot committed
      One more step towards the new design of EPA.
      d24afd9d
    • Matthew Pickering's avatar
      Add NO_BOOT to hackage_doc_tarball job · b5590fff
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      We were attempting to boot a src-tarball which doesn't work as ./boot is
      not included in the source tarball. This slipped through as the job is
      only run on nightly.
      b5590fff
    • Winston Hartnett's avatar
      Make Outputable instance for InlineSig print the InlineSpec · 262a9f93
      Winston Hartnett authored and Marge Bot's avatar Marge Bot committed
      Fix ghc/ghc#21739
      
      Squash fix ghc/ghc#21739
      262a9f93
    • Simon Peyton Jones's avatar
      Instantiate top level foralls in partial type signatures · e4e44d8d
      Simon Peyton Jones authored and Marge Bot's avatar Marge Bot committed
      The main fix for #21667 is the new call to tcInstTypeBnders
      in tcHsPartialSigType. It was really a simple omission before.
      
      I also moved the decision about whether we need to apply the
      Monomorphism Restriction, from `decideGeneralisationPlan` to
      `tcPolyInfer`.  That removes a flag from the InferGen constructor,
      which is good.
      
      But more importantly, it allows the new function,
         checkMonomorphismRestriction
      called from `tcPolyInfer`, to "see" the `Types` involved rather than
      the `HsTypes`.  And that in turn matters because we invoke the MR for
      partial signatures if none of the partial signatures in the group have
      any overloading context; and we can't answer that question for HsTypes.
      See Note [Partial type signatures and the monomorphism restriction]
      in GHC.Tc.Gen.Bind.
      
      This latter is really a pre-existing bug.
      e4e44d8d
    • Sebastian Graf's avatar
      Ignore .hie-bios · 2563b95c
      Sebastian Graf authored
      2563b95c
    • Sebastian Graf's avatar
      Simplify: Take care with eta reduction in recursive RHSs (#21652) · 49fb2f9b
      Sebastian Graf authored
      Similar to the fix to #20836 in CorePrep, we now track the set of enclosing
      recursive binders in the SimplEnv and SimpleOptEnv.
      See Note [Eta reduction in recursive RHSs] for details.
      
      I also updated Note [Arity robustness] with the insights Simon and I had in a
      call discussing the issue.
      
      Fixes #21652.
      
      Unfortunately, we get a 5% ghc/alloc regression in T16577. That is due to
      additional eta reduction in GHC.Read.choose1 and the resulting ANF-isation
      of a large list literal at the top-level that didn't happen before (presumably
      because it was too interesting to float to the top-level). There's not much we
      can do about that.
      
      Metric Increase:
          T16577
      49fb2f9b
    • Sebastian Graf's avatar
      CorePrep: Don't speculatively evaluate recursive calls (#20836) · b570da84
      Sebastian Graf authored
      In #20836 we have optimised a terminating program into an endless loop,
      because we speculated the self-recursive call of a recursive DFun.
      Now we track the set of enclosing recursive binders in CorePrep to prevent
      speculation of such self-recursive calls.
      
      See the updates to Note [Speculative evaluation] for details.
      
      Fixes #20836.
      b570da84
    • Sebastian Graf's avatar
      CprAnal: Set signatures of DFuns to top · 94f2e92a
      Sebastian Graf authored
      The recursive DFun in the reproducer for #20836 also triggered a bug in CprAnal
      that is observable in a debug build. The CPR signature of a recursive DFunId
      was never updated and hence the optimistic arity 0 bottom signature triggered a
      mismatch with the arity 1 of the binding in WorkWrap. We never miscompiled any
      code because WW doesn't exploit bottom CPR signatures.
      94f2e92a
  3. 18 Jun, 2022 7 commits
  4. 16 Jun, 2022 10 commits
    • sheaf's avatar
      Hadrian bootstrap: look up hsc2hs · 9c575f24
      sheaf authored and Marge Bot's avatar Marge Bot committed
      Hadrian bootstrapping looks up where to find ghc_pkg, but the same
      logic was not in place for hsc2hs which meant we could fail to
      find the appropriate hsc2hs executabe when bootstrapping Hadrian.
      This patch adds that missing logic.
      9c575f24
    • sheaf's avatar
      Hadrian: allow configuring Hsc2Hs · 99ff3818
      sheaf authored and Marge Bot's avatar Marge Bot committed
      This patch adds the ability to pass options to Hsc2Hs as Hadrian
      key/value settings, in the same way as cabal configure options,
      using the syntax:
      
        *.*.hsc2hs.run.opts += ...
      99ff3818
    • Hécate Moonlight's avatar
      Repair dead link in TH haddocks · ecbf8685
      Hécate Moonlight authored and Marge Bot's avatar Marge Bot committed
      Closes #21724
      ecbf8685
    • Bryan R's avatar
      Enable eventlogs on nightly perf job · 03172116
      Bryan R authored and Marge Bot's avatar Marge Bot committed
      03172116
    • Matthew Pickering's avatar
      hadrian: Don't install `include/` directory in bindist. · aa7e1f20
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      The install_includes for the RTS package used to be put in the top-level
      ./include folder but this would lead to confusing things happening if
      you installed multiple GHC versions side-by-side.
      
      We don't need this folder anymore because install-includes
      is honoured properly by cabal and the relevant header files already
      copied in by the cabal installation process.
      
      If you want to depend on the header files for the RTS in a Haskell
      project then you just have to depend on the `rts` package and the
      correct include directories will be provided for you.
      
      If you want to depend on the header files in a standard C project then
      you should query ghc-pkg to get the right paths.
      
      ```
      ghc-pkg field rts include-dirs  --simple-output
      ```
      
      Fixes #21609
      aa7e1f20
    • Torsten Schmits's avatar
      replace quadratic nub to fight byte code gen perf explosion · 25b510c3
      Torsten Schmits authored and Marge Bot's avatar Marge Bot committed
      Despite this code having been present in the core-to-bytecode
      implementation, I have observed it in the wild starting with 9.2,
      causing enormous slowdown in certain situations.
      
      My test case produces the following profiles:
      
      Before:
      
      ```
      	total time  =      559.77 secs   (559766 ticks @ 1000 us, 1 processor)
      	total alloc = 513,985,665,640 bytes  (excludes profiling overheads)
      
      COST CENTRE MODULE         SRC                                         %time %alloc  ticks     bytes
      
      elem_by     Data.OldList   libraries/base/Data/OldList.hs:429:1-7       67.6   92.9  378282 477447404296
      eqInt       GHC.Classes    libraries/ghc-prim/GHC/Classes.hs:275:8-14   12.4    0.0  69333        32
      $c>>=       GHC.Data.IOEnv <no location info>                            6.9    0.6  38475 3020371232
      ```
      
      After:
      
      ```
      	total time  =       89.83 secs   (89833 ticks @ 1000 us, 1 processor)
      	total alloc = 39,365,306,360 bytes  (excludes profiling overheads)
      
      COST CENTRE           MODULE                SRC                                                                  %time %alloc  ticks     bytes
      
      $c>>=                 GHC.Data.IOEnv        <no location info>                                                    43.6    7.7  39156 3020403424
      doCase                GHC.StgToByteCode     compiler/GHC/StgToByteCode.hs:(805,1)-(1054,53)                        2.5    7.4   2246 2920777088
      
      ```
      25b510c3
    • Ben Gamari's avatar
      configure: Don't attempt to override linker on Darwin · bde65ea9
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Configure's --enable-ld-override functionality is intended to ensure
      that we don't rely on ld.bfd, which tends to be slow and buggy, on
      Linux and Windows. However, on Darwin the lack of sensible package
      management makes it extremely easy for users to have awkward mixtures of
      toolchain components from, e.g., XCode, the Apple Command-Line Tools
      package, and homebrew. This leads to extremely confusing problems
      like #21712.
      
      Here we avoid this by simply giving up on linker selection on Darwin
      altogether. This isn't so bad since the Apple ld64 linker has decent
      performance and AFAICT fairly reliable.
      
      Closes #21712.
      bde65ea9
    • Ben Gamari's avatar
      cmm: Add surface syntax for MO_MulMayOflo · e128b7b8
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      e128b7b8
    • Ben Gamari's avatar
      configure: Hide spurious warning from ld · cdc75a1f
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Previously the check_for_gold_t22266 configure check could result in
      spurious warnings coming from the linker being blurted to stderr.
      Suppress these by piping stderr to /dev/null.
      cdc75a1f
    • Ben Gamari's avatar
      hadrian: Run xattr -rc . on bindist tarball · aa9d9381
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Fixes #21506.
      aa9d9381
  5. 15 Jun, 2022 1 commit
    • John Ericson's avatar
      CoreToStg.Prep: Get rid of `DynFlags` and `HscEnv` · 59bc6008
      John Ericson authored
      The call sites in `Driver.Main` are duplicative, but this is good,
      because the next step is to remove `InteractiveContext` from `Core.Lint`
      into `Core.Lint.Interactive`.
      
      Also further clean up `Core.Lint` to use a better configuration record
      than the one we initially added.
      59bc6008
  6. 14 Jun, 2022 2 commits
    • Ben Gamari's avatar
      validate: Ensure that $make variable is set · ac83899d
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Currently the `$make` variable is used without being set in `validate`'s
      Hadrian path, which uses make to install the binary distribution. Fix
      this.
      
      Fixes #21687.
      ac83899d
    • Matthew Pickering's avatar
      hadrian: Fix testing stage1 compiler · ad70c621
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      There were various issues with testing the stage1 compiler..
      
      1. The wrapper was not being built
      2. The wrapper was picking up the stage0 package database and trying to
         load prelude from that.
      3. The wrappers never worked on windows so just don't support that for
         now.
      
      Fixes #21072
      ad70c621
  7. 13 Jun, 2022 1 commit
  8. 11 Jun, 2022 1 commit
  9. 09 Jun, 2022 7 commits
  10. 07 Jun, 2022 1 commit