liquidhaskell 0.9.2.8.0 → 0.9.4.7.0
raw patch · 6 files changed
+30/−22 lines, 6 filesdep +ghc-bignumdep ~bytestringdep ~containersdep ~liquidhaskell-boot
Dependencies added: ghc-bignum
Dependency ranges changed: bytestring, containers, liquidhaskell-boot
Files
- CHANGES.md +8/−0
- README.md +1/−17
- liquidhaskell.cabal +7/−5
- src/GHC/Num/Integer_LHAssumptions.hs +12/−0
- src/GHC/Types_LHAssumptions.hs +1/−0
- src/Prelude_LHAssumptions.hs +1/−0
CHANGES.md view
@@ -1,5 +1,13 @@ # Changes +## Next++-++## 0.9.4.7.0++- Set support for GHC 9.4.7+ ## 0.9.2.8.0 - Support for GHC 9.2.8
README.md view
@@ -339,33 +339,17 @@ Currently, no. Only one version of GHC is supported and that is the one that can be tested with `./scripts/test/test_plugin.sh`. -# GHC Plugin Development FAQs--## Why is the GHC.Interface using slightly different types than the GHC.Plugin module?--Mostly for backward-compatibility and for historical reasons. Types like [BareSpec][] used to be type alias-rather than `newtype`s, and things were slightly renamed to reflect better purpose when the support for the-plugin was added. While doing so we also added a compatibility layer in the form of some `optics` that can be used-to map back and forth (sometimes in a partial way) between old and new data structures. When in doubt,-**consider the GHC.Plugin as the single source of truth, and prefer whichever data structure the latter is-using**.- [GHC.API]: liquidhaskell-boot/src-ghc/Liquid/GHC/API.hs [Plugin]: liquidhaskell-boot/src/Language/Haskell/Liquid/GHC/Plugin.hs [GHC.Plugin]: liquidhaskell-boot/src/Language/Haskell/Liquid/GHC/Plugin.hs [GHC.Interface]: liquidhaskell-boot/src/Language/Haskell/Liquid/GHC/Interface.hs [SpecFinder]: liquidhaskell-boot/src/Language/Haskell/Liquid/GHC/Plugin/SpecFinder.hs-[BareSpec]: liquidhaskell-boot/src/Language/Haskell/Liquid/Types/Specs.hs#L362 [LiftedSpec]: liquidhaskell-boot/src/Language/Haskell/Liquid/Types/Specs.hs#L559 [TargetSrc]: liquidhaskell-boot/src/Language/Haskell/Liquid/Types/Specs.hs#L158-[Ghc monad]: https://hackage.haskell.org/package/ghc-9.2.8/docs/GHC.html#t:Ghc-[HscEnv]: https://hackage.haskell.org/package/ghc-9.2.8/docs/GHC.html#t:HscEnv-[DynFlags]: https://hackage.haskell.org/package/ghc-9.2.8/docs/GHC.html#t:DynFlags-[GhcMonad]: https://hackage.haskell.org/package/ghc-9.2.8/docs/GHC.html#t:GhcMonad [typechecking phase]: liquidhaskell-boot/src/Language/Haskell/Liquid/GHC/Plugin.hs#L211-L226 [ghcide]: https://github.com/haskell/ghcide [findRelevantSpecs]: liquidhaskell-boot/src/Language/Haskell/Liquid/GHC/Plugin/SpecFinder.hs#L65-[core binds]: https://hackage.haskell.org/package/ghc-9.2.8/docs/GHC-Core.html#t:CoreBind+[core binds]: https://hackage.haskell.org/package/ghc-9.4.7/docs/GHC-Core.html#t:CoreBind [configureGhcTargets]: liquidhaskell-boot/src/Language/Haskell/Liquid/GHC/Interface.hs#L254 [processTargetModule]: liquidhaskell-boot/src/Language/Haskell/Liquid/GHC/Interface.hs#L483 [processModule]: liquidhaskell-boot/src/Language/Haskell/Liquid/GHC/Plugin.hs#L509
liquidhaskell.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: liquidhaskell-version: 0.9.2.8.0+version: 0.9.4.7.0 synopsis: Liquid Types for Haskell description: Liquid Types for Haskell. license: BSD-3-Clause@@ -11,7 +11,7 @@ category: Language homepage: https://github.com/ucsd-progsys/liquidhaskell build-type: Custom-tested-with: GHC == 9.2.8+tested-with: GHC == 9.4.7 extra-doc-files: CHANGES.md README.md @@ -57,6 +57,7 @@ GHC.IO.Handle_LHAssumptions GHC.List_LHAssumptions GHC.Num_LHAssumptions+ GHC.Num.Integer_LHAssumptions GHC.Maybe_LHAssumptions GHC.Ptr_LHAssumptions GHC.Real_LHAssumptions@@ -77,9 +78,10 @@ hs-source-dirs: src build-depends: base >= 4.11.1.0 && < 5,- liquidhaskell-boot == 0.9.2.8.0,- bytestring == 0.11.4.0,- containers == 0.6.5.1,+ liquidhaskell-boot == 0.9.4.7.0,+ bytestring == 0.11.5.2,+ containers == 0.6.7,+ ghc-bignum, ghc-prim default-language: Haskell98 ghc-options: -Wall -fplugin=LiquidHaskellBoot
+ src/GHC/Num/Integer_LHAssumptions.hs view
@@ -0,0 +1,12 @@+{-# LANGUAGE MagicHash #-}+{-# OPTIONS_GHC -Wno-unused-imports #-}+module GHC.Num.Integer_LHAssumptions() where++import GHC.Types+import GHC.Num.Integer+import GHC.Types_LHAssumptions()+++{-@+assume GHC.Num.Integer.IS :: x:GHC.Prim.Int# -> {v: GHC.Num.Integer | v = (x :: int) }+@-}
src/GHC/Types_LHAssumptions.hs view
@@ -16,6 +16,7 @@ embed GHC.Prim.Float# as real embed GHC.Types.Word as int embed GHC.Prim.Word# as int+embed GHC.Prim.Word64# as int embed GHC.Types.Int as int embed GHC.Prim.Int# as int embed GHC.Types.Bool as bool
src/Prelude_LHAssumptions.hs view
@@ -4,6 +4,7 @@ import GHC.Float_LHAssumptions() import GHC.Maybe_LHAssumptions() import GHC.Num_LHAssumptions()+import GHC.Num.Integer_LHAssumptions() import GHC.Real_LHAssumptions() import Liquid.Prelude.Real_LHAssumptions() import Liquid.Prelude.Totality_LHAssumptions()