Skip to content
Snippets Groups Projects
  1. Jan 14, 2024
  2. Jan 13, 2024
  3. Jan 10, 2024
  4. Jan 08, 2024
  5. Jan 07, 2024
  6. Jan 05, 2024
  7. Dec 31, 2023
  8. Dec 29, 2023
  9. 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
  10. Dec 23, 2023
  11. Dec 15, 2023
  12. Dec 14, 2023
  13. Dec 13, 2023
  14. Dec 12, 2023
  15. 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
  16. Dec 08, 2023
Loading