Skip to content
Snippets Groups Projects
  1. Apr 27, 2024
  2. 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 #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
  3. Apr 25, 2024
  4. Apr 23, 2024
  5. Apr 22, 2024
    • Brandon S. Allbery's avatar
      fix link in CODEOWNERS · e1cf8dc2
      Brandon S. Allbery authored and Marge Bot's avatar Marge Bot committed
      It seems that our local Gitlab no longer has documentation for the
      `CODEOWNERS` file, but the master documentation still does. Use
      that instead.
      e1cf8dc2
  6. Apr 21, 2024
  7. Apr 20, 2024
  8. Apr 19, 2024
Loading