Skip to content
Snippets Groups Projects
  1. May 02, 2024
    • Sylvain Henry's avatar
      GHCi: support inlining breakpoints (#24712) · b85b1199
      Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
      When a breakpoint is inlined, its context may change (e.g. tyvars in
      scope). We must take this into account and not used the breakpoint tick
      index as its sole identifier. Each instance of a breakpoint (even with
      the same tick index) now gets a different "info" index.
      
      We also need to distinguish modules:
      - tick module: module with the break array (tick counters, status, etc.)
      - info module: module having the CgBreakInfo (info at occurrence site)
      b85b1199
    • jeffrey young's avatar
      testsuite: expand size testing infrastructure · 9bae34d8
      jeffrey young authored and Marge Bot's avatar Marge Bot committed
      - closes #24191
      - adds windows_skip, wasm_skip, wasm_arch, find_so, _find_so
      - path_from_ghcPkg, collect_size_ghc_pkg, collect_object_size, find_non_inplace functions to testsuite
      - adds on_windows and req_dynamic_ghc predicate to testsuite
      
      The design is to not make the testsuite too smart and simply offload to
      ghc-pkg for locations of object files and directories.
      9bae34d8
    • Alan Zimmerman's avatar
      EPA: fix span for empty \case(s) · 167a56a0
      Alan Zimmerman authored and Marge Bot's avatar Marge Bot committed
      In
          instance SDecide Nat where
            SZero %~ (SSucc _) = Disproved (\case)
      
      Ensure the span for the HsLam covers the full construct.
      
      Closes #24748
      167a56a0
    • Andreas Klebinger's avatar
      STM: Be more optimistic when validating in-flight transactions. · 917ef81b
      Andreas Klebinger authored and Marge Bot's avatar Marge Bot committed
      * Don't lock tvars when performing non-committal validation.
      * If we encounter a locked tvar don't consider it a failure.
      
      This means in-flight validation will only fail if committing at the
      moment of validation is *guaranteed* to fail.
      
      This prevents in-flight validation from failing spuriously if it happens in
      parallel on multiple threads or parallel to thread comitting.
      917ef81b
    • Andreas Klebinger's avatar
      STM: Remove (unused)coarse grained locking. · ac9c5f84
      Andreas Klebinger authored and Marge Bot's avatar Marge Bot committed
      The STM code had a coarse grained locking mode guarded by #defines that was unused.
      This commit removes the code.
      ac9c5f84
    • Cheng Shao's avatar
      testsuite: fix req_target_smp predicate · a580722e
      Cheng Shao authored and Marge Bot's avatar Marge Bot committed
      a580722e
    • Hécate Moonlight's avatar
      Correct `@since` metadata in HpcFlags · 92134789
      Hécate Moonlight authored and Marge Bot's avatar Marge Bot committed
      It was introduced in base-4.20, not 4.22.
      Fix #24721
      92134789
    • Alan Zimmerman's avatar
      EPA: Preserve comments for PrefixCon · 40026ac3
      Alan Zimmerman authored and Marge Bot's avatar Marge Bot committed
      Preserve comments in
      
          fun (Con {- c1 -} a b)
              = undefined
      
      Closes #24736
      40026ac3
  2. May 01, 2024
  3. Apr 30, 2024
  4. Apr 28, 2024
  5. Apr 27, 2024
  6. Apr 26, 2024
    • Bryan R's avatar
      CI: Work around frequent Signal 9 errors · 1e41de83
      Bryan R authored and Marge Bot's avatar Marge Bot committed
      1e41de83
    • Bodigrim's avatar
      Document that setEnv is not thread-safe · a8616747
      Bodigrim authored and Marge Bot's avatar Marge Bot committed
      a8616747
    • Alan Zimmerman's avatar
      EPA: check-exact: check that the roundtrip reproduces the source · 981c2c2c
      Alan Zimmerman authored and Marge Bot's avatar Marge Bot committed
      Closes #24670
      981c2c2c
    • Simon Peyton Jones's avatar
      Fix missing escaping-kind check in tcPatSynSig · 4d6394dd
      Simon Peyton Jones authored and Marge Bot's avatar Marge Bot committed
      Note [Escaping kind in type signatures] explains how we deal
      with escaping kinds in type signatures, e.g.
          f :: forall r (a :: TYPE r). a
      where the kind of the body is (TYPE r), but `r` is not in
      scope outside the forall-type.
      
      I had missed this subtlety in tcPatSynSig, leading to #24686.
      This MR fixes it; and a similar bug in tc_top_lhs_type. (The
      latter is tested by T24686a.)
      4d6394dd
    • Hannes Siebenhandl's avatar
      Split `BinHandle` into `ReadBinHandle` and `WriteBinHandle` · bac57298
      Hannes Siebenhandl authored and Marge Bot's avatar Marge Bot committed
      A `BinHandle` contains too much information for reading data.
      For example, it needs to keep a `FastMutInt` and a `IORef BinData`,
      when the non-mutable variants would suffice.
      
      Additionally, this change has the benefit that anyone can immediately
      tell whether the `BinHandle` is used for reading or writing.
      
      Bump haddock submodule BinHandle split.
      bac57298
    • Hannes Siebenhandl's avatar
      Refactor the Binary serialisation interface · fa03b1fb
      Hannes Siebenhandl authored and Marge Bot's avatar Marge Bot committed
      The goal is simplifiy adding deduplication tables to `ModIface`
      interface serialisation.
      
      We identify two main points of interest that make this difficult:
      
      1. UserData hardcodes what `Binary` instances can have deduplication
         tables. Moreover, it heavily uses partial functions.
      2. GHC.Iface.Binary hardcodes the deduplication tables for 'Name' and
         'FastString', making it difficult to add more deduplication.
      
      Instead of having a single `UserData` record with fields for all the
      types that can have deduplication tables, we allow to provide custom
      serialisers for any `Typeable`.
      These are wrapped in existentials and stored in a `Map` indexed by their
      respective `TypeRep`.
      The `Binary` instance of the type to deduplicate still needs to
      explicitly look up the decoder via `findUserDataReader` and
      `findUserDataWriter`, which is no worse than the status-quo.
      
      `Map` was chosen as microbenchmarks indicate it is the fastest for a
      small number of keys (< 10).
      
      To generalise the deduplication table serialisation mechanism, we
      introduce the types `ReaderTable` and `WriterTable` which provide a
      simple interface that is sufficient to implement a general purpose
      deduplication mechanism for `writeBinIface` and `readBinIface`.
      
      This allows us to provide a list of deduplication tables for
      serialisation that can be extended more easily, for example for
      `IfaceTyCon`, see the issue ghc/ghc#24540
      for more motivation.
      
      In addition to this refactoring, we split `UserData` into `ReaderUserData`
      and `WriterUserData`, to avoid partial functions and reduce overall
      memory usage, as we need fewer mutable variables.
      
      Bump haddock submodule to accomodate for `UserData` split.
      
      -------------------------
      Metric Increase:
          MultiLayerModulesTH_Make
          MultiLayerModulesRecomp
          T21839c
      -------------------------
      fa03b1fb
  7. Apr 25, 2024
  8. Apr 23, 2024
Loading