Skip to content
Snippets Groups Projects
Commit 13a46fd5 authored by Finley McIlwaine's avatar Finley McIlwaine Committed by Matthew Pickering
Browse files

HLS 9.6 patches

The patches primarily deal with mtl-2.3.1 issues, just making consumers
of the package buildable. These were necessary to get some components of
HLS building on GHC 9.6.

During this process it was also discovered that the `vector-space`
package was affected by GHC issue
ghc/ghc#22912 so I've added it to
`extra_packages` in CI.

This commit also includes a small change to the `patch-tool` that fixes
the unpack script in the case that a package which shares a prefix with
the package being upacked is already in the packages dir (e.g. `Chart`
and `Chart-diagrams`).
parent 1cd13fe3
No related branches found
No related tags found
No related merge requests found
......@@ -123,6 +123,9 @@ extra_package servant-conduit
extra_package servant-machines
extra_package linear-generics
# This package is affected by https://gitlab.haskell.org/ghc/ghc/-/issues/22912
extra_package vector-space
# Build-tool packages
build_tool_package alex
build_tool_package happy
......
diff --git a/Graphics/Rendering/Chart/Backend/Diagrams.hs b/Graphics/Rendering/Chart/Backend/Diagrams.hs
index f340253..17f4cc5 100644
--- a/Graphics/Rendering/Chart/Backend/Diagrams.hs
+++ b/Graphics/Rendering/Chart/Backend/Diagrams.hs
@@ -47,6 +47,7 @@ import System.IO (IOMode (..), hPutStr, withFile)
#endif
import Control.Lens(makeLenses)
+import Control.Monad
import Control.Monad.Operational
import Control.Monad.State.Lazy
diff --git a/src/Text/Blaze/Svg/Internal.hs b/src/Text/Blaze/Svg/Internal.hs
index a3a28f1..ac989cc 100644
--- a/src/Text/Blaze/Svg/Internal.hs
+++ b/src/Text/Blaze/Svg/Internal.hs
@@ -1,7 +1,7 @@
module Text.Blaze.Svg.Internal where
-import Control.Monad.State
-import Data.Monoid (mappend, mempty)
+import Control.Monad (join)
+import Control.Monad.State (State, modify, runState)
import Text.Blaze
diff --git a/Geom2D/CubicBezier/Overlap.lhs b/Geom2D/CubicBezier/Overlap.lhs
index ce0bcda..8f3e917 100644
--- a/Geom2D/CubicBezier/Overlap.lhs
+++ b/Geom2D/CubicBezier/Overlap.lhs
@@ -47,6 +47,7 @@ Let's begin with declaring the module and library imports:
> import Data.Foldable (traverse_)
> import Data.Functor ((<$>))
> import Data.List (sortBy, sort, intercalate, intersperse)
+> import Control.Monad
> import Control.Monad.State.Strict
> import Lens.Micro
> import Lens.Micro.TH
diff --git a/diagrams-contrib.cabal b/diagrams-contrib.cabal
index fd951c7..2b51654 100644
--- a/diagrams-contrib.cabal
+++ b/diagrams-contrib.cabal
@@ -63,7 +63,7 @@ library
diagrams-lib >= 1.4 && < 1.5,
diagrams-solve >= 0.1 && < 0.2,
lens >= 4.0 && < 5.3,
- linear >= 1.11.3 && < 1.22,
+ linear >= 1.11.3 && < 1.23,
force-layout >= 0.4 && < 0.5,
data-default >= 0.5.2 && < 0.8,
MonadRandom >= 0.1.8 && < 0.7,
diff --git a/src/Diagrams/TwoD/Layout/Constrained.hs b/src/Diagrams/TwoD/Layout/Constrained.hs
index b90e5f1..29c6f53 100644
--- a/src/Diagrams/TwoD/Layout/Constrained.hs
+++ b/src/Diagrams/TwoD/Layout/Constrained.hs
@@ -140,6 +140,7 @@ module Diagrams.TwoD.Layout.Constrained
import qualified Control.Lens as L
import qualified Control.Lens.Extras as L
+import Control.Monad
import Control.Monad.Except
import Control.Monad.State
import qualified Data.Foldable as F
diff --git a/src/Diagrams/TwoD/Tilings.hs b/src/Diagrams/TwoD/Tilings.hs
index af339d6..41ccce0 100644
--- a/src/Diagrams/TwoD/Tilings.hs
+++ b/src/Diagrams/TwoD/Tilings.hs
@@ -69,6 +69,7 @@ module Diagrams.TwoD.Tilings (
) where
+import Control.Monad
import Control.Monad.State
#if __GLASGOW_HASKELL__ >= 704
import Control.Monad.Writer hiding ((<>))
diff --git a/diagrams-postscript.cabal b/diagrams-postscript.cabal
index 453c0fd..09dd3ec 100644
--- a/diagrams-postscript.cabal
+++ b/diagrams-postscript.cabal
@@ -36,7 +36,7 @@ Library
Hs-source-dirs: src
Build-depends: base >= 4.8 && < 4.17,
bytestring >= 0.9 && <0.12,
- mtl >= 2.0 && < 2.3,
+ mtl >= 2.0 && < 2.4,
diagrams-core >= 1.3 && < 1.6,
diagrams-lib >= 1.3 && < 1.5,
data-default-class < 0.2,
diff --git a/src/Diagrams/Backend/Postscript.hs b/src/Diagrams/Backend/Postscript.hs
index 880d5e7..2b9fa55 100644
--- a/src/Diagrams/Backend/Postscript.hs
+++ b/src/Diagrams/Backend/Postscript.hs
@@ -8,6 +8,7 @@
{-# LANGUAGE NoMonomorphismRestriction #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE ViewPatterns #-}
-----------------------------------------------------------------------------
diff --git a/src/Graphics/Rendering/Postscript.hs b/src/Graphics/Rendering/Postscript.hs
index 9e3c93a..96a0c43 100644
--- a/src/Graphics/Rendering/Postscript.hs
+++ b/src/Graphics/Rendering/Postscript.hs
@@ -86,6 +86,7 @@ import Control.Applicative
import Data.Monoid (mconcat, mempty)
#endif
import Control.Lens (Lens', makeLenses, use, (%=), (.=))
+import Control.Monad
import Control.Monad.State.Strict
import qualified Data.ByteString.Builder as B
import Data.Char (isPrint, ord)
diff --git a/Math/MFSolve.hs b/Math/MFSolve.hs
index 24140a1..f849bd8 100644
--- a/Math/MFSolve.hs
+++ b/Math/MFSolve.hs
@@ -102,6 +102,7 @@ where
import qualified Data.HashMap.Strict as M
import qualified Data.HashSet as H
import GHC.Generics
+import Control.Monad
import Control.Monad.Except
import Control.Monad.State
import Control.Monad.Reader
diff --git a/src/Control/Monad/Operational.hs b/src/Control/Monad/Operational.hs
index b9f325a..c737740 100644
--- a/src/Control/Monad/Operational.hs
+++ b/src/Control/Monad/Operational.hs
@@ -22,6 +22,7 @@ module Control.Monad.Operational (
) where
+import Control.Monad
import Control.Monad.Identity
import Control.Monad.Trans
diff --git a/src/Refinery/Tactic/Internal.hs b/src/Refinery/Tactic/Internal.hs
index 14f0a9d..3798cc1 100644
--- a/src/Refinery/Tactic/Internal.hs
+++ b/src/Refinery/Tactic/Internal.hs
@@ -38,8 +38,7 @@ where
import GHC.Generics
import Control.Applicative
-import Control.Monad.Identity
-import Control.Monad.Except
+import Control.Monad
import Control.Monad.Catch
import Control.Monad.State.Strict
import Control.Monad.Trans ()
diff --git a/Control/Monad/StateStack.hs b/Control/Monad/StateStack.hs
index 51f52ec..765b212 100644
--- a/Control/Monad/StateStack.hs
+++ b/Control/Monad/StateStack.hs
@@ -59,6 +59,7 @@ import Control.Arrow (second)
import Control.Arrow (first, (&&&))
import qualified Control.Monad.State as St
+import Control.Monad
import Control.Monad.Identity
import Control.Monad.Trans
import Control.Monad.Trans.Cont
diff --git a/statestack.cabal b/statestack.cabal
index 459214e..7130c13 100644
--- a/statestack.cabal
+++ b/statestack.cabal
@@ -21,5 +21,5 @@ Library
Default-language: Haskell2010
Exposed-modules: Control.Monad.StateStack
Build-depends: base >= 4.8 && < 4.17,
- mtl >= 2.1 && < 2.3,
+ mtl >= 2.1 && < 2.4,
transformers >= 0.4 && < 0.7
diff --git a/src/Data/AdditiveGroup.hs b/src/Data/AdditiveGroup.hs
index cd7dbcd..a734876 100644
--- a/src/Data/AdditiveGroup.hs
+++ b/src/Data/AdditiveGroup.hs
@@ -23,7 +23,9 @@ module Data.AdditiveGroup
import Prelude hiding (foldr)
-import Control.Applicative
+#if !MIN_VERSION_base(4,18,0)
+import Control.Applicative (liftA2)
+#endif
#if !(MIN_VERSION_base(4,8,0))
import Data.Monoid (Monoid(..))
import Data.Foldable (Foldable)
diff --git a/src/Data/AffineSpace.hs b/src/Data/AffineSpace.hs
index 0dd319f..46293fa 100644
--- a/src/Data/AffineSpace.hs
+++ b/src/Data/AffineSpace.hs
@@ -22,7 +22,9 @@ module Data.AffineSpace
AffineSpace(..), (.-^), distanceSq, distance, alerp, affineCombo
) where
+#if !MIN_VERSION_base(4,18,0)
import Control.Applicative (liftA2)
+#endif
import Data.Ratio
import Foreign.C.Types (CSChar, CInt, CShort, CLong, CLLong, CIntMax, CFloat, CDouble)
import Control.Arrow(first)
@@ -149,7 +151,9 @@ newtype GenericDiff p = GenericDiff (Diff (VRep p))
instance AdditiveGroup (Diff (VRep p)) => AdditiveGroup (GenericDiff p)
instance VectorSpace (Diff (VRep p)) => VectorSpace (GenericDiff p)
-instance InnerSpace (Diff (VRep p)) => InnerSpace (GenericDiff p)
+instance ( AdditiveGroup (Scalar (GenericDiff p))
+ , InnerSpace (Diff (VRep p))
+ ) => InnerSpace (GenericDiff p)
instance HasBasis (Diff (VRep p)) => HasBasis (GenericDiff p)
data AffineDiffProductSpace f g p = AffineDiffProductSpace
@@ -160,7 +164,8 @@ instance ( AffineSpace (f p), AffineSpace (g p)
, VectorSpace (Diff (f p)), VectorSpace (Diff (g p))
, Scalar (Diff (f p)) ~ Scalar (Diff (g p)) )
=> VectorSpace (AffineDiffProductSpace f g p)
-instance ( AffineSpace (f p), AffineSpace (g p)
+instance ( AdditiveGroup (Scalar (AffineDiffProductSpace f g p))
+ , AffineSpace (f p), AffineSpace (g p)
, InnerSpace (Diff (f p)), InnerSpace (Diff (g p))
, Scalar (Diff (f p)) ~ Scalar (Diff (g p))
, Num (Scalar (Diff (f p))) )
diff --git a/src/Data/Basis.hs b/src/Data/Basis.hs
index 9136c0d..b947b95 100644
--- a/src/Data/Basis.hs
+++ b/src/Data/Basis.hs
@@ -22,6 +22,7 @@ module Data.Basis (HasBasis(..), linearCombo, recompose) where
-- import Control.Applicative ((<$>))
import Control.Arrow (first)
import Data.Ratio
+import Data.Kind (Type)
import Foreign.C.Types (CFloat, CDouble)
-- import Data.Either
@@ -36,7 +37,7 @@ import GHC.Generics (Generic, (:*:)(..))
class VectorSpace v => HasBasis v where
-- | Representation of the canonical basis for @v@
- type Basis v :: *
+ type Basis v :: Type
type Basis v = Basis (VRep v)
-- | Interpret basis rep as a vector
basisValue :: Basis v -> v
diff --git a/src/Data/LinearMap.hs b/src/Data/LinearMap.hs
index eb0743f..73f18d6 100644
--- a/src/Data/LinearMap.hs
+++ b/src/Data/LinearMap.hs
@@ -27,7 +27,10 @@ module Data.LinearMap
#if !(MIN_VERSION_base(4,8,0))
import Control.Applicative (Applicative)
#endif
-import Control.Applicative (liftA2, liftA3)
+import Control.Applicative (liftA3)
+#if !MIN_VERSION_base(4,18,0)
+import Control.Applicative (liftA2)
+#endif
import Control.Arrow (first,second)
import Data.MemoTrie (HasTrie(..),(:->:))
diff --git a/src/Data/VectorSpace.hs b/src/Data/VectorSpace.hs
index 8c881b8..1ed5688 100644
--- a/src/Data/VectorSpace.hs
+++ b/src/Data/VectorSpace.hs
@@ -33,8 +33,11 @@ module Data.VectorSpace
, lerp, linearCombo, magnitudeSq, magnitude, normalized, project
) where
+#if !MIN_VERSION_base(4,18,0)
import Control.Applicative (liftA2)
+#endif
import Data.Complex hiding (magnitude)
+import Data.Kind (Type)
import Foreign.C.Types (CSChar, CInt, CShort, CLong, CLLong, CIntMax, CFloat, CDouble)
import Data.Ratio
@@ -49,7 +52,7 @@ infixr 7 *^
-- | Vector space @v@.
class AdditiveGroup v => VectorSpace v where
- type Scalar v :: *
+ type Scalar v :: Type
type Scalar v = Scalar (VRep v)
-- | Scale a vector
(*^) :: Scalar v -> v -> v
......@@ -83,7 +83,7 @@ unpack_pkg() {
local pkg=$1
pushd packages
cabal unpack --pristine $pkg
local pkg_dir="$(ls -d $pkg* | head)"
local pkg_dir="$(ls -d $pkg-[0-9]* | head)"
if [ -z "$pkg_dir" ]; then
echo "failed to unpack $pkg"
exit 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment