[Git][haskell-team/DHG_packages][master] 2 commits: haskell-cryptol: cherry-pick upstream build fixes

Gianfranco Costamagna gitlab at salsa.debian.org
Fri Aug 30 17:39:50 BST 2019



Gianfranco Costamagna pushed to branch master at Debian Haskell Group / DHG_packages


Commits:
495c5625 by Gianfranco Costamagna at 2019-08-30T16:39:31Z
haskell-cryptol: cherry-pick upstream build fixes

- - - - -
114f8fbd by Gianfranco Costamagna at 2019-08-30T16:39:31Z
haskell-dual-tree: patch for newer base

- - - - -


7 changed files:

- p/haskell-cryptol/debian/changelog
- + p/haskell-cryptol/debian/patches/634c5a03e757663bf86d1ffad1ce2c6086d4483f.patch
- + p/haskell-cryptol/debian/patches/a8eab11b319f6434f9b01b26d419b8305ff30bc2.patch
- p/haskell-cryptol/debian/patches/series
- p/haskell-dual-tree/debian/changelog
- + p/haskell-dual-tree/debian/patches/newer-deps
- + p/haskell-dual-tree/debian/patches/series


Changes:

=====================================
p/haskell-cryptol/debian/changelog
=====================================
@@ -1,3 +1,11 @@
+haskell-cryptol (2.6.0-4) unstable; urgency=medium
+
+  * debian/patches/a8eab11b319f6434f9b01b26d419b8305ff30bc2.patch:
+  * debian/patches/634c5a03e757663bf86d1ffad1ce2c6086d4483f.patch:
+    - cherry-pick two upstream patches to fix the build
+
+ -- Gianfranco Costamagna <locutusofborg at debian.org>  Fri, 30 Aug 2019 18:05:32 +0200
+
 haskell-cryptol (2.6.0-3) unstable; urgency=medium
 
   * Patch for newer base-compat.


=====================================
p/haskell-cryptol/debian/patches/634c5a03e757663bf86d1ffad1ce2c6086d4483f.patch
=====================================
@@ -0,0 +1,31 @@
+## Description: add some description
+## Origin/Author: add some origin or author
+## Bug: bug URL
+From 634c5a03e757663bf86d1ffad1ce2c6086d4483f Mon Sep 17 00:00:00 2001
+From: Brian Huffman <huffman at galois.com>
+Date: Mon, 17 Sep 2018 09:46:00 -0700
+Subject: [PATCH] Suppress REPL instantiation messages when warnDefaulting =
+ off.
+
+Fixes #543.
+---
+ src/Cryptol/REPL/Command.hs | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+Index: haskell-cryptol-2.6.0/src/Cryptol/REPL/Command.hs
+===================================================================
+--- haskell-cryptol-2.6.0.orig/src/Cryptol/REPL/Command.hs
++++ haskell-cryptol-2.6.0/src/Cryptol/REPL/Command.hs
+@@ -1207,8 +1207,10 @@
+     case ts of
+       [] -> return ()
+       _  ->
+-        do rPutStrLn "Showing a specific instance of polymorphic result:"
+-           mapM_ warnDefault ts
++        do EnvBool warnDefaulting <- getUser "warnDefaulting"
++           when warnDefaulting $
++             do rPutStrLn "Showing a specific instance of polymorphic result:"
++                mapM_ warnDefault ts
+ 
+   warnDefault (x,t) =
+     rPrint ("  *" <+> nest 2  ("Using" <+> quotes (pp t) <+> "for" <+>


=====================================
p/haskell-cryptol/debian/patches/a8eab11b319f6434f9b01b26d419b8305ff30bc2.patch
=====================================
@@ -0,0 +1,281 @@
+## Description: add some description
+## Origin/Author: add some origin or author
+## Bug: bug URL
+From a8eab11b319f6434f9b01b26d419b8305ff30bc2 Mon Sep 17 00:00:00 2001
+From: Iavor Diatchki <iavor.diatchki at gmail.com>
+Date: Mon, 8 Oct 2018 13:50:25 -0700
+Subject: [PATCH] Changes to avoid irrefutable patterns.
+
+This is to make things build with GHC 8.6, which requires a MonadFail
+instance.
+
+Pretty much all of these should end up being `panic`, so perhaps we should
+rewrite more of them to call `panic` (instead of using lazy patterns)
+---
+ src/Cryptol/ModuleSystem/Renamer.hs          | 15 +++++--
+ src/Cryptol/Prims/Eval.hs                    |  2 +-
+ src/Cryptol/REPL/Command.hs                  | 26 ++++++------
+ src/Cryptol/REPL/Monad.hs                    | 42 +++++++++++++++++---
+ src/Cryptol/Transform/Specialize.hs          |  2 +-
+ src/Cryptol/TypeCheck/CheckModuleInstance.hs |  2 +-
+ src/Cryptol/TypeCheck/Infer.hs               |  2 +-
+ 7 files changed, 65 insertions(+), 26 deletions(-)
+
+Index: haskell-cryptol-2.6.0/src/Cryptol/ModuleSystem/Renamer.hs
+===================================================================
+--- haskell-cryptol-2.6.0.orig/src/Cryptol/ModuleSystem/Renamer.hs
++++ haskell-cryptol-2.6.0/src/Cryptol/ModuleSystem/Renamer.hs
+@@ -442,7 +442,7 @@
+     DBind b           -> DBind         <$> rename b
+ 
+     -- XXX we probably shouldn't see these at this point...
+-    DPatBind pat e    -> do (pe,[pat']) <- renamePats [pat]
++    DPatBind pat e    -> do (pe,pat') <- renamePat pat
+                             shadowNames pe (DPatBind pat' <$> rename e)
+ 
+     DType syn         -> DType         <$> rename syn
+@@ -902,8 +902,8 @@
+ renameMatch :: Match PName -> RenameM (NamingEnv,Match Name)
+ 
+ renameMatch (Match p e) =
+-  do (pe,[p']) <- renamePats [p]
+-     e'        <- rename e
++  do (pe,p') <- renamePat p
++     e'      <- rename e
+      return (pe,Match p' e')
+ 
+ renameMatch (MatchLet b) =
+@@ -913,6 +913,15 @@
+      return (be,MatchLet b')
+ 
+ -- | Rename patterns, and collect the new environment that they introduce.
++renamePat :: Pattern PName -> RenameM (NamingEnv, Pattern Name)
++renamePat p =
++  do pe <- patternEnv p
++     p' <- shadowNames pe (rename p)
++     return (pe, p')
++
++
++
++-- | Rename patterns, and collect the new environment that they introduce.
+ renamePats :: [Pattern PName] -> RenameM (NamingEnv,[Pattern Name])
+ renamePats  = loop
+   where
+Index: haskell-cryptol-2.6.0/src/Cryptol/Prims/Eval.hs
+===================================================================
+--- haskell-cryptol-2.6.0.orig/src/Cryptol/Prims/Eval.hs
++++ haskell-cryptol-2.6.0/src/Cryptol/Prims/Eval.hs
+@@ -926,7 +926,7 @@
+   lam  $ \ val ->
+     case (parts, each) of
+        (Nat p, Nat e) | isTBit a -> do
+-          VWord _ val' <- val
++          ~(VWord _ val') <- val
+           return $ VSeq p $ IndexSeqMap $ \i -> do
+             return $ VWord e (extractWordVal e ((p-i-1)*e) <$> val')
+        (Inf, Nat e) | isTBit a -> do
+Index: haskell-cryptol-2.6.0/src/Cryptol/REPL/Command.hs
+===================================================================
+--- haskell-cryptol-2.6.0.orig/src/Cryptol/REPL/Command.hs
++++ haskell-cryptol-2.6.0/src/Cryptol/REPL/Command.hs
+@@ -249,9 +249,9 @@
+ -- Get the setting we should use for displaying values.
+ getPPValOpts :: REPL E.PPOpts
+ getPPValOpts =
+-  do EnvNum base      <- getUser "base"
+-     EnvBool ascii    <- getUser "ascii"
+-     EnvNum infLength <- getUser "infLength"
++  do base      <- getKnownUser "base"
++     ascii     <- getKnownUser "ascii"
++     infLength <- getKnownUser "infLength"
+      return E.PPOpts { E.useBase      = base
+                      , E.useAscii     = ascii
+                      , E.useInfLength = infLength
+@@ -315,7 +315,7 @@
+ qcCmd qcMode str =
+   do expr <- replParseExpr str
+      (val,ty) <- replEvalExpr expr
+-     EnvNum testNum <- getUser "tests"
++     testNum <- getKnownUser "tests"
+      case testableType ty of
+        Just (Just sz,tys,vss) | qcMode == QCExhaust || sz <= toInteger testNum -> do
+             rPutStrLn "Using exhaustive testing."
+@@ -511,10 +511,10 @@
+ cmdProveSat isSat str = do
+   let cexStr | isSat = "satisfying assignment"
+              | otherwise = "counterexample"
+-  EnvString proverName <- getUser "prover"
+-  EnvString fileName <- getUser "smtfile"
++  proverName <- getKnownUser "prover"
++  fileName   <- getKnownUser "smtfile"
+   let mfile = if fileName == "-" then Nothing else Just fileName
+-  case proverName of
++  case proverName :: String of
+     "offline" -> do
+       result <- offlineProveSat isSat str mfile
+       case result of
+@@ -571,8 +571,8 @@
+                -> String -> Maybe FilePath
+                -> REPL (Maybe SBV.Solver,Symbolic.ProverResult,ProverStats)
+ onlineProveSat isSat str mfile = do
+-  EnvString proverName <- getUser "prover"
+-  EnvBool verbose <- getUser "debug"
++  proverName <- getKnownUser "prover"
++  verbose <- getKnownUser "debug"
+   satNum <- getUserSatNum
+   parseExpr <- replParseExpr str
+   (_, expr, schema) <- replCheckExpr parseExpr
+@@ -594,7 +594,7 @@
+ 
+ offlineProveSat :: Bool -> String -> Maybe FilePath -> REPL (Either String String)
+ offlineProveSat isSat str mfile = do
+-  EnvBool verbose <- getUser "debug"
++  verbose <- getKnownUser "debug"
+   parseExpr <- replParseExpr str
+   (_, expr, schema) <- replCheckExpr parseExpr
+   decls <- fmap M.deDecls getDynEnv
+@@ -1121,8 +1121,8 @@
+ 
+ moduleCmdResult :: M.ModuleRes a -> REPL a
+ moduleCmdResult (res,ws0) = do
+-  EnvBool warnDefaulting <- getUser "warnDefaulting"
+-  EnvBool warnShadowing  <- getUser "warnShadowing"
++  warnDefaulting <- getKnownUser "warnDefaulting"
++  warnShadowing  <- getKnownUser "warnShadowing"
+   -- XXX: let's generalize this pattern
+   let isDefaultWarn (T.DefaultingTo _ _) = True
+       isDefaultWarn _ = False
+@@ -1207,7 +1207,7 @@
+     case ts of
+       [] -> return ()
+       _  ->
+-        do EnvBool warnDefaulting <- getUser "warnDefaulting"
++        do warnDefaulting <- getKnownUser "warnDefaulting"
+            when warnDefaulting $
+              do rPutStrLn "Showing a specific instance of polymorphic result:"
+                 mapM_ warnDefault ts
+Index: haskell-cryptol-2.6.0/src/Cryptol/REPL/Monad.hs
+===================================================================
+--- haskell-cryptol-2.6.0.orig/src/Cryptol/REPL/Monad.hs
++++ haskell-cryptol-2.6.0/src/Cryptol/REPL/Monad.hs
+@@ -13,6 +13,7 @@
+ {-# LANGUAGE RecordWildCards #-}
+ {-# LANGUAGE TypeFamilies #-}
+ {-# LANGUAGE ViewPatterns #-}
++{-# LANGUAGE FlexibleInstances #-}
+ 
+ module Cryptol.REPL.Monad (
+     -- * REPL Monad
+@@ -56,7 +57,7 @@
+     -- ** Config Options
+   , EnvVal(..)
+   , OptionDescr(..)
+-  , setUser, getUser, tryGetUser
++  , setUser, getUser, getKnownUser, tryGetUser
+   , userOptions
+   , getUserSatNum
+   , getUserShowProverStats
+@@ -650,10 +651,38 @@
+     Just ev -> return ev
+     Nothing -> panic "[REPL] getUser" ["option `" ++ name ++ "` does not exist"]
+ 
++getKnownUser :: IsEnvVal a => String -> REPL a
++getKnownUser x = fromEnvVal <$> getUser x
++
++class IsEnvVal a where
++  fromEnvVal :: EnvVal -> a
++
++instance IsEnvVal Bool where
++  fromEnvVal x = case x of
++                   EnvBool b -> b
++                   _         -> badIsEnv "Bool"
++
++instance IsEnvVal Int where
++  fromEnvVal x = case x of
++                   EnvNum b -> b
++                   _         -> badIsEnv "Num"
++
++instance IsEnvVal (String,[String]) where
++  fromEnvVal x = case x of
++                   EnvProg b bs -> (b,bs)
++                   _            -> badIsEnv "Prog"
++
++instance IsEnvVal String where
++  fromEnvVal x = case x of
++                   EnvString b -> b
++                   _           -> badIsEnv "String"
++
++badIsEnv :: String -> a
++badIsEnv x = panic "fromEnvVal" [ "[REPL] Expected a `" ++ x ++ "` value." ]
++
++
+ getUserShowProverStats :: REPL Bool
+-getUserShowProverStats =
+-  do EnvBool yes <- getUser "prover-stats"
+-     return yes
++getUserShowProverStats = getKnownUser "prover-stats"
+ 
+ -- Environment Options ---------------------------------------------------------
+ 
+@@ -789,7 +818,7 @@
+ 
+ getUserSatNum :: REPL SatNum
+ getUserSatNum = do
+-  EnvString s <- getUser "satNum"
++  s <- getKnownUser "satNum"
+   case s of
+     "all"                     -> return AllSat
+     _ | Just n <- readMaybe s -> return (SomeSat n)
+@@ -800,7 +829,7 @@
+ 
+ whenDebug :: REPL () -> REPL ()
+ whenDebug m = do
+-  EnvBool b <- getUser "debug"
++  b <- getKnownUser "debug"
+   when b m
+ 
+ -- Smoke Testing ---------------------------------------------------------------
+@@ -830,3 +859,4 @@
+   case mPath of
+     Nothing -> return (Just Z3NotFound)
+     Just _  -> return Nothing
++
+Index: haskell-cryptol-2.6.0/src/Cryptol/Transform/Specialize.hs
+===================================================================
+--- haskell-cryptol-2.6.0.orig/src/Cryptol/Transform/Specialize.hs
++++ haskell-cryptol-2.6.0/src/Cryptol/Transform/Specialize.hs
+@@ -126,7 +126,7 @@
+   -- Then reassemble the DeclGroups.
+   let splitDecl :: Decl -> SpecM [Decl]
+       splitDecl d = do
+-        Just (_, tm) <- Map.lookup (dName d) <$> getSpecCache
++        ~(Just (_, tm)) <- Map.lookup (dName d) <$> getSpecCache
+         return (catMaybes $ map (snd . snd) $ toListTM tm)
+   let splitDeclGroup :: DeclGroup -> SpecM [DeclGroup]
+       splitDeclGroup (Recursive ds) = do
+Index: haskell-cryptol-2.6.0/src/Cryptol/TypeCheck/CheckModuleInstance.hs
+===================================================================
+--- haskell-cryptol-2.6.0.orig/src/Cryptol/TypeCheck/CheckModuleInstance.hs
++++ haskell-cryptol-2.6.0/src/Cryptol/TypeCheck/CheckModuleInstance.hs
+@@ -162,7 +162,7 @@
+                    InferM Expr {- ^ Expression to use for param definition -}
+ 
+ makeValParamDef x sDef pDef =
+-  withVar x sDef $ do DExpr e <- dDefinition <$> checkSigB bnd (pDef,[])
++  withVar x sDef $ do ~(DExpr e) <- dDefinition <$> checkSigB bnd (pDef,[])
+                       return e
+   where
+   bnd = P.Bind { P.bName      = loc x
+Index: haskell-cryptol-2.6.0/src/Cryptol/TypeCheck/Infer.hs
+===================================================================
+--- haskell-cryptol-2.6.0.orig/src/Cryptol/TypeCheck/Infer.hs
++++ haskell-cryptol-2.6.0/src/Cryptol/TypeCheck/Infer.hs
+@@ -921,7 +921,7 @@
+               bs1
+ 
+   checkBinds decls (AcyclicSCC c : more) =
+-    do [b] <- inferBinds isTopLevel False [c]
++    do ~[b] <- inferBinds isTopLevel False [c]
+        withVar (dName b) (dSignature b) $
+          checkBinds (NonRecursive b : decls) more
+ 


=====================================
p/haskell-cryptol/debian/patches/series
=====================================
@@ -1 +1,3 @@
 newer-deps
+634c5a03e757663bf86d1ffad1ce2c6086d4483f.patch
+a8eab11b319f6434f9b01b26d419b8305ff30bc2.patch


=====================================
p/haskell-dual-tree/debian/changelog
=====================================
@@ -1,3 +1,9 @@
+haskell-dual-tree (0.2.2-3) unstable; urgency=medium
+
+  * Patch for newer deps
+
+ -- Gianfranco Costamagna <locutusofborg at debian.org>  Fri, 30 Aug 2019 18:37:22 +0200
+
 haskell-dual-tree (0.2.2-2) unstable; urgency=medium
 
   * Bump debhelper compat level to 10


=====================================
p/haskell-dual-tree/debian/patches/newer-deps
=====================================
@@ -0,0 +1,11 @@
+--- haskell-dual-tree-0.2.2.orig/dual-tree.cabal
++++ haskell-dual-tree-0.2.2/dual-tree.cabal
+@@ -40,7 +40,7 @@ library
+   default-language:  Haskell2010
+   exposed-modules:   Data.Tree.DUAL
+                      Data.Tree.DUAL.Internal
+-  build-depends:     base >= 4.3 && < 4.12,
++  build-depends:     base >= 4.3 && < 4.13,
+                      semigroups >= 0.8 && < 0.19,
+                      newtype-generics >= 0.5 && < 0.6,
+                      monoid-extras >= 0.2 && < 0.6


=====================================
p/haskell-dual-tree/debian/patches/series
=====================================
@@ -0,0 +1 @@
+newer-deps



View it on GitLab: https://salsa.debian.org/haskell-team/DHG_packages/compare/25a83191b40f2d7d3e25c1dba55b8ffd37433a35...114f8fbd5a131d25f52dbfe883c5b747e904b7b0

-- 
View it on GitLab: https://salsa.debian.org/haskell-team/DHG_packages/compare/25a83191b40f2d7d3e25c1dba55b8ffd37433a35...114f8fbd5a131d25f52dbfe883c5b747e904b7b0
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-haskell-commits/attachments/20190830/27b745ae/attachment-0001.html>


More information about the Pkg-haskell-commits mailing list