Skip to content
Snippets Groups Projects
  1. Jan 07, 2024
  2. Jan 05, 2024
  3. Dec 31, 2023
  4. Dec 29, 2023
  5. Dec 24, 2023
    • Ben Bellick's avatar
      Deprecate -ddump-json and introduce -fdiagnostics-as-json · dfd670a0
      Ben Bellick authored and Marge Bot's avatar Marge Bot committed
      Addresses #19278
      
      This commit deprecates the underspecified -ddump-json flag and
      introduces a newer, well-specified flag -fdiagnostics-as-json.
      
      Also included is a JSON schema as part of the documentation.
      
      The -ddump-json flag will be slated for removal shortly after this merge.
      dfd670a0
  6. Dec 23, 2023
  7. Dec 15, 2023
  8. Dec 14, 2023
  9. Dec 13, 2023
  10. Dec 12, 2023
  11. Dec 11, 2023
    • Arnaud Spiwack's avatar
      Linear let and where bindings · 8e0446df
      Arnaud Spiwack authored
      For expediency, the initial implementation of linear types in GHC
      made it so that let and where binders would always be considered
      unrestricted. This was rather unpleasant, and probably a big obstacle
      to adoption. At any rate, this was not how the proposal was designed.
      
      This patch fixes this infelicity. It was surprisingly difficult to
      build, which explains, in part, why it took so long to materialise.
      
      As of this patch, let or where bindings marked with %1 will be
      linear (respectively %p for an arbitrary multiplicity p). Unmarked let
      will infer their multiplicity.
      
      Here is a prototypical example of program that used to be rejected and
      is accepted with this patch:
      
      ```haskell
      f :: A %1 -> B
      g :: B %1 -> C
      
      h :: A %1 -> C
      h x = g y
        where
          y = f x
      ```
      
      Exceptions:
      - Recursive let are unrestricted, as there isn't a clear semantics of
        what a linear recursive binding would be.
      - Destructive lets with lazy bindings are unrestricted, as their
        desugaring isn't linear (see also #23461).
      - (Strict) destructive lets with inferred polymorphic type are
        unrestricted. Because the desugaring isn't linear (See #18461
        down-thread).
      
      Closes #18461 and #18739
      
      Co-authored-by: @jackohughes
      8e0446df
    • Arnaud Spiwack's avatar
      LinearTypes => MonoLocalBinds · 188b280d
      Arnaud Spiwack authored
      188b280d
    • Zubin's avatar
      testsuite: add test for #24118 and #24107 · 105c370c
      Zubin authored and Marge Bot's avatar Marge Bot committed
      MultiLayerModulesDefsGhci was not able to catch the leak because it uses
      :l which discards the previous environment.
      
      Using :r catches both of these leaks
      105c370c
    • Zubin's avatar
      driver: Ensure we actually clear the interactive context before reloading · 58d56644
      Zubin authored and Marge Bot's avatar Marge Bot committed
      Previously we called discardIC, but immediately after set the session
      back to an old HscEnv that still contained the IC
      
      Partially addresses #24107
      Fixes #23405
      58d56644
    • Vladislav Zavialov's avatar
      Make forall a keyword (#23719) · d9e4c597
      Vladislav Zavialov authored and Marge Bot's avatar Marge Bot committed
      Before this change, GHC used to accept `forall` as a term-level
      identifier:
      
      	-- from constraints-0.13
      	forall :: forall p. (forall a. Dict (p a)) -> Dict (Forall p)
      	forall d = ...
      
      Now it is a parse error.
      
      The -Wforall-identifier warning has served its purpose and is now
      a deprecated no-op.
      d9e4c597
  12. Dec 08, 2023
  13. Dec 06, 2023
  14. Dec 03, 2023
  15. Nov 30, 2023
    • Krzysztof Gogolewski's avatar
      Kind-check body of a required forall · bd8acc0c
      Krzysztof Gogolewski authored and Marge Bot's avatar Marge Bot committed
      We now require that in 'forall a -> ty', ty has kind TYPE r for some r.
      Fixes #24176
      bd8acc0c
    • Alan Zimmerman's avatar
      EPA: EpaDelta for comment has no comments · c7623b22
      Alan Zimmerman authored and Marge Bot's avatar Marge Bot committed
      EpaLocation is used to position things. It has two constructors,
      EpaSpan holding a SrcSpan, and EpaDelta with a delta position and a
      possible list of comments.  The comment list is needed because the
      location in EpaDelta has no absolute information to decide which
      comments should be emitted before them when printing.
      
      But it is also used for specifying the position of a comment.  To
      prevent the absurdity of a comment position having a list of comments
      in it, we make EpaLocation parameterisable, using comments for the
      normal case and a constant for within comments.
      
      Updates haddock submodule.
      
      aarch64-darwin
      Metric Decrease:
          MultiLayerModulesTH_OneShot
      c7623b22
    • Sebastian Graf's avatar
      perf tests: Move comments into new `Note [Sensitivity to unique increment]` (#19414) · cbc03fa0
      Sebastian Graf authored and Marge Bot's avatar Marge Bot committed
      And additionally to T12545, link from T8095, T13386 to this new Note.
      cbc03fa0
  16. Nov 29, 2023
Loading