openSUSE Commits
Threads by month
- ----- 2024 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2016
- 1 participants
- 1523 discussions
Hello community,
here is the log from the commit of package ghc-free for openSUSE:Factory checked in at 2016-01-21 23:43:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-free (Old)
and /work/SRC/openSUSE:Factory/.ghc-free.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-free"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-free/ghc-free.changes 2015-08-27 08:55:30.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-free.new/ghc-free.changes 2016-01-22 01:08:49.000000000 +0100
@@ -1,0 +2,10 @@
+Mon Jan 18 10:33:25 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 4.12.4
+* Add instances for ExceptT: like ErrorT, but without an Error constraint.
+* Support containers
+* Support transformers 0.5
+* Removed a number of spurious class constraints.
+* Support comonad 5
+
+-------------------------------------------------------------------
Old:
----
free-4.12.1.tar.gz
New:
----
free-4.12.4.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-free.spec ++++++
--- /var/tmp/diff_new_pack.kNrhli/_old 2016-01-22 01:08:51.000000000 +0100
+++ /var/tmp/diff_new_pack.kNrhli/_new 2016-01-22 01:08:51.000000000 +0100
@@ -18,7 +18,7 @@
%global pkg_name free
Name: ghc-free
-Version: 4.12.1
+Version: 4.12.4
Release: 0
Summary: Monads for free
Group: System/Libraries
@@ -33,6 +33,7 @@
# Begin cabal-rpm deps:
BuildRequires: ghc-bifunctors-devel
BuildRequires: ghc-comonad-devel
+BuildRequires: ghc-containers-devel
BuildRequires: ghc-distributive-devel
BuildRequires: ghc-exceptions-devel
BuildRequires: ghc-mtl-devel
++++++ free-4.12.1.tar.gz -> free-4.12.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/.travis.yml new/free-4.12.4/.travis.yml
--- old/free-4.12.1/.travis.yml 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/.travis.yml 2016-01-17 03:15:13.000000000 +0100
@@ -1,13 +1,14 @@
env:
- - GHCVER=7.4.2 CABALVER=1.16
- - GHCVER=7.6.3 CABALVER=1.16
+ - GHCVER=7.4.2 CABALVER=1.18
+ - GHCVER=7.6.3 CABALVER=1.18
- GHCVER=7.8.4 CABALVER=1.18
- - GHCVER=7.10.1 CABALVER=1.22
- - GHCVER=head CABALVER=1.22
+ - GHCVER=7.10.2 CABALVER=1.22
+ - GHCVER=8.0.1 CABALVER=1.24
+ - GHCVER=head CABALVER=1.24
matrix:
allow_failures:
- - env: GHCVER=head CABALVER=1.22
+ - env: GHCVER=head CABALVER=1.24
before_install:
- travis_retry sudo add-apt-repository -y ppa:hvr/ghc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/CHANGELOG.markdown new/free-4.12.4/CHANGELOG.markdown
--- old/free-4.12.1/CHANGELOG.markdown 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/CHANGELOG.markdown 2016-01-17 03:15:13.000000000 +0100
@@ -1,3 +1,19 @@
+4.12.4
+------
+* Removed a number of spurious class constraints.
+* Support GHC 8
+
+4.12.3
+------
+* Support `comonad` 5
+
+4.12.2
+------
+* Add instances for `ExceptT`: like `ErrorT`, but without an `Error` constraint.
+* Support `containers`
+* Support `transformers` 0.5
+
+
4.12.1
------
* Support GHC 7.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/README.markdown new/free-4.12.4/README.markdown
--- old/free-4.12.1/README.markdown 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/README.markdown 2016-01-17 03:15:13.000000000 +0100
@@ -1,7 +1,7 @@
free
====
-[![Build Status](https://secure.travis-ci.org/ekmett/free.png?branch=master)](http:/…
+[![Hackage](https://img.shields.io/hackage/v/free.svg)](https://hackage.haskell.org/package/free) [![Build Status](https://secure.travis-ci.org/ekmett/free.png?branch=master)](http:/…
This package provides a common definitions for working with free monads, free applicatives, and cofree comonads in Haskell.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/examples/Cabbage.lhs new/free-4.12.4/examples/Cabbage.lhs
--- old/free-4.12.1/examples/Cabbage.lhs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/examples/Cabbage.lhs 2016-01-17 03:15:13.000000000 +0100
@@ -43,7 +43,7 @@
@
*Cabbage> singleOut1 (== Sheep) [Wolf, Sheep, Cabbage]
-[(Just Wolf,[Sheep,Cabbage]),(Just Sheep,[Wolf,Cabbage]),(Just Cabbage,[Wolf,Sheep]),(Nothing,[Wolf,Sheep,Cabbage])]
+(Just Sheep,[Wolf,Cabbage])
@
> singleOutAll :: [a] -> [(Maybe a,[a])]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/free.cabal new/free-4.12.4/free.cabal
--- old/free-4.12.1/free.cabal 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/free.cabal 2016-01-17 03:15:13.000000000 +0100
@@ -1,6 +1,6 @@
name: free
category: Control, Monads
-version: 4.12.1
+version: 4.12.4
license: BSD3
cabal-version: >= 1.10
license-file: LICENSE
@@ -69,16 +69,18 @@
build-depends:
base == 4.*,
bifunctors >= 4 && < 6,
- comonad == 4.*,
+ comonad >= 4 && < 6,
distributive >= 0.2.1,
mtl >= 2.0.1.0 && < 2.3,
prelude-extras >= 0.4 && < 1,
profunctors >= 4 && < 6,
semigroupoids >= 4 && < 6,
semigroups >= 0.8.3.1 && < 1,
- transformers >= 0.2.0 && < 0.5,
+ transformers >= 0.2.0 && < 0.6,
+ transformers-compat >= 0.3 && < 1,
template-haskell >= 2.7.0.0 && < 3,
- exceptions >= 0.6 && < 0.9
+ exceptions >= 0.6 && < 0.9,
+ containers < 0.6
exposed-modules:
Control.Applicative.Free
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Alternative/Free.hs new/free-4.12.4/src/Control/Alternative/Free.hs
--- old/free-4.12.1/src/Control/Alternative/Free.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Alternative/Free.hs 2016-01-17 03:15:13.000000000 +0100
@@ -69,7 +69,7 @@
(Alt xs) <*> ys = Alt (xs >>= alternatives . (`ap'` ys))
where
- ap' :: (Functor f) => AltF f (a -> b) -> Alt f a -> Alt f b
+ ap' :: AltF f (a -> b) -> Alt f a -> Alt f b
Pure f `ap'` u = fmap f u
(u `Ap` f) `ap'` v = Alt [u `Ap` (flip <$> f) <*> v]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Comonad/Cofree/Class.hs new/free-4.12.4/src/Control/Comonad/Cofree/Class.hs
--- old/free-4.12.1/src/Control/Comonad/Cofree/Class.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Comonad/Cofree/Class.hs 2016-01-17 03:15:13.000000000 +0100
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE FlexibleInstances #-}
@@ -23,7 +24,10 @@
import Control.Comonad.Trans.Traced
import Control.Comonad.Trans.Identity
import Data.List.NonEmpty
-import Data.Semigroup
+import Data.Tree
+#if __GLASGOW_HASKELL__ < 710
+import Data.Monoid
+#endif
-- | Allows you to peel a layer off a cofree comonad.
class (Functor f, Comonad w) => ComonadCofree f w | w -> f where
@@ -34,6 +38,9 @@
unwrap (_ :| []) = Nothing
unwrap (_ :| (a : as)) = Just (a :| as)
+instance ComonadCofree [] Tree where
+ unwrap = subForest
+
instance ComonadCofree (Const b) ((,) b) where
unwrap = Const . fst
@@ -46,5 +53,5 @@
instance ComonadCofree f w => ComonadCofree f (StoreT s w) where
unwrap (StoreT wsa s) = flip StoreT s <$> unwrap wsa
-instance (ComonadCofree f w, Semigroup m, Monoid m) => ComonadCofree f (TracedT m w) where
+instance (ComonadCofree f w, Monoid m) => ComonadCofree f (TracedT m w) where
unwrap (TracedT wma) = TracedT <$> unwrap wma
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Comonad/Cofree.hs new/free-4.12.4/src/Control/Comonad/Cofree.hs
--- old/free-4.12.1/src/Control/Comonad/Cofree.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Comonad/Cofree.hs 2016-01-17 03:15:13.000000000 +0100
@@ -25,6 +25,7 @@
, ComonadCofree(..)
, section
, coiter
+ , coiterW
, unfold
, unfoldM
, hoistCofree
@@ -41,6 +42,7 @@
import Control.Comonad.Env.Class
import Control.Comonad.Store.Class as Class
import Control.Comonad.Traced.Class
+import Control.Comonad.Hoist.Class
import Control.Category
import Control.Monad(ap, (>=>), liftM)
import Control.Monad.Zip
@@ -64,7 +66,7 @@
-- /Formally/
--
-- A 'Comonad' @v@ is a cofree 'Comonad' for @f@ if every comonad homomorphism
--- another comonad @w@ to @v@ is equivalent to a natural transformation
+-- from another comonad @w@ to @v@ is equivalent to a natural transformation
-- from @w@ to @f@.
--
-- A 'cofree' functor is right adjoint to a forgetful functor.
@@ -110,6 +112,10 @@
coiter :: Functor f => (a -> f a) -> a -> Cofree f a
coiter psi a = a :< (coiter psi <$> psi a)
+-- | Like coiter for comonadic values.
+coiterW :: (Comonad w, Functor f) => (w a -> f (w a)) -> w a -> Cofree f a
+coiterW psi a = extract a :< (coiterW psi <$> psi a)
+
-- | Unfold a cofree comonad from a seed.
unfold :: Functor f => (b -> (a, f b)) -> b -> Cofree f a
unfold f c = case f c of
@@ -151,7 +157,7 @@
{-# INLINE lower #-}
instance Alternative f => Monad (Cofree f) where
- return x = x :< empty
+ return = pure
{-# INLINE return #-}
(a :< m) >>= k = case k a of
b :< n -> b :< (n <|> fmap (>>= k) m)
@@ -182,7 +188,7 @@
{-# INLINE (@>) #-}
instance Alternative f => Applicative (Cofree f) where
- pure = return
+ pure x = x :< empty
{-# INLINE pure #-}
(<*>) = ap
{-# INLINE (<*>) #-}
@@ -235,6 +241,10 @@
foldMap f = go where
go (a :< as) = f a `mappend` foldMap go as
{-# INLINE foldMap #-}
+#if __GLASGOW_HASKELL__ >= 709
+ length = go 0 where
+ go s (_ :< as) = foldl' go (s + 1) as
+#endif
instance Foldable1 f => Foldable1 (Cofree f) where
foldMap1 f = go where
@@ -291,6 +301,9 @@
{-# NOINLINE cofreeDataType #-}
#endif
+instance ComonadHoist Cofree where
+ cohoist = hoistCofree
+
instance ComonadEnv e w => ComonadEnv e (Cofree w) where
ask = ask . lower
{-# INLINE ask #-}
@@ -331,12 +344,24 @@
_unwrap f (a :< as) = (a :<) <$> f as
{-# INLINE _unwrap #-}
--- | Construct a @Lens@ into a @'Cofree' f@ given a list of lenses into the base functor.
+-- | Construct an @Lens@ into a @'Cofree' g@ given a list of lenses into the base functor.
+-- When the input list is empty, this is equivalent to '_extract'.
+-- When the input list is non-empty, this composes the input lenses
+-- with '_unwrap' to walk through the @'Cofree' g@ before using
+-- '_extract' to get the element at the final location.
--
-- For more on lenses see the 'lens' package on hackage.
--
--- @telescoped :: 'Functor' g => [Lens' ('Cofree' g a) (g ('Cofree' g a))] -> Lens' ('Cofree' g a) a@
-telescoped :: (Functor f, Functor g) =>
+-- @telescoped :: [Lens' (g ('Cofree' g a)) ('Cofree' g a)] -> Lens' ('Cofree' g a) a@
+--
+-- @telescoped :: [Traversal' (g ('Cofree' g a)) ('Cofree' g a)] -> Traversal' ('Cofree' g a) a@
+--
+-- @telescoped :: [Getter (g ('Cofree' g a)) ('Cofree' g a)] -> Getter ('Cofree' g a) a@
+--
+-- @telescoped :: [Fold (g ('Cofree' g a)) ('Cofree' g a)] -> Fold ('Cofree' g a) a@
+--
+-- @telescoped :: [Setter' (g ('Cofree' g a)) ('Cofree' g a)] -> Setter' ('Cofree' g a) a@
+telescoped :: Functor f =>
[(Cofree g a -> f (Cofree g a)) -> g (Cofree g a) -> f (g (Cofree g a))] ->
(a -> f a) -> Cofree g a -> f (Cofree g a)
telescoped = Prelude.foldr (\l r -> _unwrap . l . r) _extract
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Comonad/Trans/Cofree.hs new/free-4.12.4/src/Control/Comonad/Trans/Cofree.hs
--- old/free-4.12.1/src/Control/Comonad/Trans/Cofree.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Comonad/Trans/Cofree.hs 2016-01-17 03:15:13.000000000 +0100
@@ -3,6 +3,7 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE Rank2Types #-}
#if __GLASGOW_HASKELL__ >= 707
{-# LANGUAGE DeriveDataTypeable #-}
#endif
@@ -26,6 +27,7 @@
, ComonadCofree(..)
, headF
, tailF
+ , transCofreeT
, coiterT
) where
@@ -33,6 +35,8 @@
import Control.Comonad
import Control.Comonad.Trans.Class
import Control.Comonad.Cofree.Class
+import Control.Comonad.Env.Class
+import Control.Comonad.Hoist.Class
import Control.Category
import Data.Bifunctor
import Data.Bifoldable
@@ -83,6 +87,10 @@
instance Traversable f => Bitraversable (CofreeF f) where
bitraverse f g (a :< as) = (:<) <$> f a <*> traverse g as
+transCofreeF :: (forall x. f x -> g x) -> CofreeF f a b -> CofreeF g a b
+transCofreeF t (a :< fb) = a :< t fb
+{-# INLINE transCofreeF #-}
+
-- | This is a cofree comonad of some functor @f@, with a comonad @w@ threaded through it at each level.
newtype CofreeT f w a = CofreeT { runCofreeT :: w (CofreeF f a (CofreeT f w a)) }
#if __GLASGOW_HASKELL__ >= 707
@@ -132,12 +140,19 @@
instance (Traversable f, Traversable w) => Traversable (CofreeT f w) where
traverse f = fmap CofreeT . traverse (bitraverse f (traverse f)) . runCofreeT
-instance Functor f => ComonadTrans (CofreeT f) where
+instance ComonadTrans (CofreeT f) where
lower = fmap headF . runCofreeT
instance (Functor f, Comonad w) => ComonadCofree f (CofreeT f w) where
unwrap = tailF . extract . runCofreeT
+instance (Functor f, ComonadEnv e w) => ComonadEnv e (CofreeT f w) where
+ ask = ask . lower
+ {-# INLINE ask #-}
+
+instance Functor f => ComonadHoist (CofreeT f) where
+ cohoist g = CofreeT . fmap (second (cohoist g)) . g . runCofreeT
+
instance Show (w (CofreeF f a (CofreeT f w a))) => Show (CofreeT f w a) where
showsPrec d (CofreeT w) = showParen (d > 10) $
showString "CofreeT " . showsPrec 11 w
@@ -153,8 +168,10 @@
compare (CofreeT a) (CofreeT b) = compare a b
instance (Alternative f, Monad w) => Monad (CofreeT f w) where
+#if __GLASGOW_HASKELL__ < 710
return = CofreeT . return . (:< empty)
{-# INLINE return #-}
+#endif
CofreeT cx >>= f = CofreeT $ do
a :< m <- cx
b :< n <- runCofreeT $ f a
@@ -177,6 +194,10 @@
(a :< fa, b :< fb) <- mzip ma mb
return $ (a, b) :< (uncurry mzip <$> mzip fa fb)
+-- | Lift a natural transformation from @f@ to @g@ into a comonad homomorphism from @'CofreeT' f w@ to @'CofreeT' g w@
+transCofreeT :: (Functor g, Comonad w) => (forall x. f x -> g x) -> CofreeT f w a -> CofreeT g w a
+transCofreeT t = CofreeT . liftW (fmap (transCofreeT t) . transCofreeF t) . runCofreeT
+
-- | Unfold a @CofreeT@ comonad transformer from a coalgebra and an initial comonad.
coiterT :: (Functor f, Comonad w) => (w a -> f (w a)) -> w a -> CofreeT f w a
coiterT psi = CofreeT . extend (\w -> extract w :< fmap (coiterT psi) (psi w))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Monad/Free/Church.hs new/free-4.12.4/src/Control/Monad/Free/Church.hs
--- old/free-4.12.1/src/Control/Monad/Free/Church.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Monad/Free/Church.hs 2016-01-17 03:15:13.000000000 +0100
@@ -56,6 +56,7 @@
( F(..)
, improve
, fromF
+ , iter
, iterM
, toF
, retract
@@ -69,7 +70,7 @@
import Control.Applicative
import Control.Monad as Monad
import Control.Monad.Fix
-import Control.Monad.Free hiding (retract, iterM, cutoff)
+import Control.Monad.Free hiding (retract, iter, iterM, cutoff)
import qualified Control.Monad.Free as Free
import Control.Monad.Reader.Class
import Control.Monad.Writer.Class
@@ -87,8 +88,12 @@
-- <http://comonad.com/reader/2011/free-monads-for-less-2/>
newtype F f a = F { runF :: forall r. (a -> r) -> (f r -> r) -> r }
+-- | Tear down a 'Free' 'Monad' using iteration.
+iter :: (f a -> a) -> F f a -> a
+iter phi xs = runF xs id phi
+
-- | Like iter for monadic values.
-iterM :: (Monad m, Functor f) => (f (m a) -> m a) -> F f a -> m a
+iterM :: Monad m => (f (m a) -> m a) -> F f a -> m a
iterM phi xs = runF xs return phi
instance Functor (F f) where
@@ -110,7 +115,7 @@
(>>-) = (>>=)
instance Monad (F f) where
- return a = F (\kp _ -> kp a)
+ return = pure
F m >>= f = F (\kp kf -> m (\a -> runF (f a) kp kf) kf)
instance MonadFix (F f) where
@@ -118,7 +123,7 @@
a = f (impure a)
impure (F x) = x id (error "MonadFix (F f): wrap")
-instance (Foldable f, Functor f) => Foldable (F f) where
+instance Foldable f => Foldable (F f) where
foldr f r xs = runF xs f (foldr (.) id) r
{-# INLINE foldr #-}
@@ -169,7 +174,7 @@
hoistF :: (forall x. f x -> g x) -> F f a -> F g a
hoistF t (F m) = F (\p f -> m p (f . t))
--- | The very definition of a free monoid is that given a natural transformation you get a monoid homomorphism.
+-- | The very definition of a free monad is that given a natural transformation you get a monad homomorphism.
foldF :: Monad m => (forall x. f x -> m x) -> F f a -> m a
foldF f (F m) = m return (Monad.join . f)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Monad/Free/Class.hs new/free-4.12.4/src/Control/Monad/Free/Class.hs
--- old/free-4.12.1/src/Control/Monad/Free/Class.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Monad/Free/Class.hs 2016-01-17 03:15:13.000000000 +0100
@@ -43,6 +43,7 @@
import Control.Monad.Trans.Maybe
import Control.Monad.Trans.List
import Control.Monad.Trans.Error
+import Control.Monad.Trans.Except
import Control.Monad.Trans.Identity
#if !(MIN_VERSION_base(4,8,0))
@@ -144,6 +145,9 @@
instance (Functor f, MonadFree f m, Error e) => MonadFree f (ErrorT e m) where
wrap = ErrorT . wrap . fmap runErrorT
+instance (Functor f, MonadFree f m) => MonadFree f (ExceptT e m) where
+ wrap = ExceptT . wrap . fmap runExceptT
+
-- instance (Functor f, MonadFree f m) => MonadFree f (EitherT e m) where
-- wrap = EitherT . wrap . fmap runEitherT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Monad/Free/TH.hs new/free-4.12.4/src/Control/Monad/Free/TH.hs
--- old/free-4.12.1/src/Control/Monad/Free/TH.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Monad/Free/TH.hs 2016-01-17 03:15:13.000000000 +0100
@@ -189,13 +189,18 @@
RecC cName fields -> liftCon' typeSig ts cx f n ns cName $ map (\(_, _, ty) -> ty) fields
InfixC (_,t1) cName (_,t2) -> liftCon' typeSig ts cx f n ns cName [t1, t2]
ForallC ts' cx' con' -> liftCon typeSig (ts ++ ts') (cx ++ cx') f n ns con'
+ _ -> fail "Unsupported constructor type"
-- | Provide free monadic actions for a type declaration.
liftDec :: Bool -- ^ Include type signature?
-> Maybe [Name] -- ^ Include only mentioned constructor names. Use all constructors when @Nothing@.
-> Dec -- ^ Data type declaration.
-> Q [Dec]
+#if MIN_VERSION_template_haskell(2,11,0)
+liftDec typeSig onlyCons (DataD _ tyName tyVarBndrs _ cons _)
+#else
liftDec typeSig onlyCons (DataD _ tyName tyVarBndrs cons _)
+#endif
| null tyVarBndrs = fail $ "Type " ++ show tyName ++ " needs at least one free variable"
| otherwise = concat <$> mapM (liftCon typeSig [] [] con nextTyName (init tyNames)) cons'
where
@@ -213,6 +218,7 @@
constructorName (RecC name _) = name
constructorName (InfixC _ name _) = name
constructorName (ForallC _ _ c) = constructorName c
+constructorName _ = error "Unsupported constructor type"
-- | Generate monadic actions for a data type.
genFree :: Bool -- ^ Include type signature?
@@ -232,7 +238,11 @@
genFreeCon typeSig cname = do
info <- reify cname
case info of
- DataConI _ _ tname _ -> genFree typeSig (Just [cname]) tname
+ DataConI _ _ tname
+#if !(MIN_VERSION_template_haskell(2,11,0))
+ _
+#endif
+ -> genFree typeSig (Just [cname]) tname
_ -> fail "makeFreeCon expects a data constructor"
-- | @$('makeFree' ''T)@ provides free monadic actions for the
@@ -240,7 +250,7 @@
makeFree :: Name -> Q [Dec]
makeFree = genFree True Nothing
--- | Like 'makeFreeCon', but does not provide type signatures.
+-- | Like 'makeFree', but does not provide type signatures.
-- This can be used to attach Haddock comments to individual arguments
-- for each generated function.
--
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Monad/Free.hs new/free-4.12.4/src/Control/Monad/Free.hs
--- old/free-4.12.1/src/Control/Monad/Free.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Monad/Free.hs 2016-01-17 03:15:13.000000000 +0100
@@ -28,6 +28,7 @@
, retract
, liftF
, iter
+ , iterA
, iterM
, hoistFree
, foldFree
@@ -186,7 +187,7 @@
Free m >>- f = Free ((>>- f) <$> m)
instance Functor f => Monad (Free f) where
- return = Pure
+ return = pure
{-# INLINE return #-}
Pure a >>= f = f a
Free m >>= f = Free ((>>= f) <$> m)
@@ -303,18 +304,23 @@
iter _ (Pure a) = a
iter phi (Free m) = phi (iter phi <$> m)
--- | Like iter for monadic values.
+-- | Like 'iter' for applicative values.
+iterA :: (Applicative p, Functor f) => (f (p a) -> p a) -> Free f a -> p a
+iterA _ (Pure x) = pure x
+iterA phi (Free f) = phi (iterA phi <$> f)
+
+-- | Like 'iter' for monadic values.
iterM :: (Monad m, Functor f) => (f (m a) -> m a) -> Free f a -> m a
iterM _ (Pure x) = return x
-iterM phi (Free f) = phi $ fmap (iterM phi) f
+iterM phi (Free f) = phi (iterM phi <$> f)
-- | Lift a natural transformation from @f@ to @g@ into a natural transformation from @'FreeT' f@ to @'FreeT' g@.
hoistFree :: Functor g => (forall a. f a -> g a) -> Free f b -> Free g b
hoistFree _ (Pure a) = Pure a
hoistFree f (Free as) = Free (hoistFree f <$> f as)
--- | The very definition of a free monoid is that given a natural transformation you get a monoid homomorphism.
-foldFree :: (Functor m, Monad m) => (forall x . f x -> m x) -> Free f a -> m a
+-- | The very definition of a free monad is that given a natural transformation you get a monad homomorphism.
+foldFree :: Monad m => (forall x . f x -> m x) -> Free f a -> m a
foldFree _ (Pure a) = return a
foldFree f (Free as) = f as >>= foldFree f
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Monad/Trans/Free/Church.hs new/free-4.12.4/src/Control/Monad/Trans/Free/Church.hs
--- old/free-4.12.1/src/Control/Monad/Trans/Free/Church.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Monad/Trans/Free/Church.hs 2016-01-17 03:15:13.000000000 +0100
@@ -146,10 +146,10 @@
{-# INLINE throwError #-}
m `catchError` f = toFT $ fromFT m `catchError` (fromFT . f)
-instance (MonadCont m) => MonadCont (FT f m) where
+instance MonadCont m => MonadCont (FT f m) where
callCC f = join . lift $ callCC (\k -> return $ f (lift . k . return))
-instance (Functor f, MonadReader r m) => MonadReader r (FT f m) where
+instance MonadReader r m => MonadReader r (FT f m) where
ask = lift ask
{-# INLINE ask #-}
local f = hoistFT (local f)
@@ -165,7 +165,7 @@
{-# INLINE writer #-}
#endif
-instance (Functor f, MonadState s m) => MonadState s (FT f m) where
+instance MonadState s m => MonadState s (FT f m) where
get = lift get
{-# INLINE get #-}
put = lift . put
@@ -223,7 +223,7 @@
hoistFT phi (FT m) = FT (\kp kf -> join . phi $ m (return . kp) (\xg -> return . kf (join . phi . xg)))
-- | Lift a natural transformation from @f@ to @g@ into a monad homomorphism from @'FT' f m@ to @'FT' g n@
-transFT :: Monad m => (forall a. f a -> g a) -> FT f m b -> FT g m b
+transFT :: (forall a. f a -> g a) -> FT f m b -> FT g m b
transFT phi (FT m) = FT (\kp kf -> m kp (\xg -> kf xg . phi))
-- | Pull out and join @m@ layers of @'FreeT' f m a@.
@@ -252,7 +252,11 @@
-- @
-- 'retract' . 'liftF' = 'id'
-- @
+#if __GLASGOW_HASKELL__ < 710
retract :: (Functor f, Monad f) => F f a -> f a
+#else
+retract :: Monad f => F f a -> f a
+#endif
retract m = runF m return join
{-# INLINE retract #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Monad/Trans/Free.hs new/free-4.12.4/src/Control/Monad/Trans/Free.hs
--- old/free-4.12.1/src/Control/Monad/Trans/Free.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Monad/Trans/Free.hs 2016-01-17 03:15:13.000000000 +0100
@@ -224,7 +224,7 @@
instance (Functor f, Monad m) => Monad (FreeT f m) where
fail e = FreeT (fail e)
- return a = FreeT (return (Pure a))
+ return = pure
{-# INLINE return #-}
FreeT m >>= f = FreeT $ m >>= \v -> case v of
Pure a -> runFreeT (f a)
@@ -332,7 +332,7 @@
hoistFreeT :: (Monad m, Functor f) => (forall a. m a -> n a) -> FreeT f m b -> FreeT f n b
hoistFreeT mh = FreeT . mh . liftM (fmap (hoistFreeT mh)) . runFreeT
--- | Lift a natural transformation from @f@ to @g@ into a monad homomorphism from @'FreeT' f m@ to @'FreeT' g n@
+-- | Lift a natural transformation from @f@ to @g@ into a monad homomorphism from @'FreeT' f m@ to @'FreeT' g m@
transFreeT :: (Monad m, Functor g) => (forall a. f a -> g a) -> FreeT f m b -> FreeT g m b
transFreeT nt = FreeT . liftM (fmap (transFreeT nt) . transFreeF nt) . runFreeT
@@ -431,7 +431,11 @@
-- @
-- 'intercalateT' f ≡ 'retractT' . 'intersperseT' f
-- @
+#if __GLASGOW_HASKELL__ < 710
intercalateT :: (Monad m, MonadTrans t, Monad (t m), Functor (t m)) => t m a -> FreeT (t m) m b -> t m b
+#else
+intercalateT :: (Monad m, MonadTrans t, Monad (t m)) => t m a -> FreeT (t m) m b -> t m b
+#endif
intercalateT f (FreeT m) = do
val <- lift m
case val of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/free-4.12.1/src/Control/Monad/Trans/Iter.hs new/free-4.12.4/src/Control/Monad/Trans/Iter.hs
--- old/free-4.12.1/src/Control/Monad/Trans/Iter.hs 2015-05-15 19:34:34.000000000 +0200
+++ new/free-4.12.4/src/Control/Monad/Trans/Iter.hs 2016-01-17 03:15:13.000000000 +0100
@@ -172,7 +172,7 @@
{-# INLINE (<*>) #-}
instance Monad m => Monad (IterT m) where
- return = IterT . return . Left
+ return = pure
{-# INLINE return #-}
IterT m >>= k = IterT $ m >>= either (runIterT . k) (return . Right . (>>= k))
{-# INLINE (>>=) #-}
1
0
Hello community,
here is the log from the commit of package bustle for openSUSE:Factory checked in at 2016-01-21 23:43:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bustle (Old)
and /work/SRC/openSUSE:Factory/.bustle.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bustle"
Changes:
--------
--- /work/SRC/openSUSE:Factory/bustle/bustle.changes 2015-09-08 18:06:54.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.bustle.new/bustle.changes 2016-01-22 01:08:48.000000000 +0100
@@ -1,0 +2,8 @@
+Fri Jan 15 09:48:47 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.5.3
+* No functional changes!
+* Add keywords to `.desktop` file
+* Update screenshots in `.appdata.xml` file
+
+-------------------------------------------------------------------
Old:
----
bustle-0.5.2.tar.gz
New:
----
bustle-0.5.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bustle.spec ++++++
--- /var/tmp/diff_new_pack.PKiGvb/_old 2016-01-22 01:08:49.000000000 +0100
+++ /var/tmp/diff_new_pack.PKiGvb/_new 2016-01-22 01:08:49.000000000 +0100
@@ -18,7 +18,7 @@
%bcond_with tests
Name: bustle
-Version: 0.5.2
+Version: 0.5.3
Release: 0
Summary: Draw sequence diagrams of D-Bus traffic
Group: System/Libraries
++++++ bustle-0.5.2.tar.gz -> bustle-0.5.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bustle-0.5.2/HACKING.md new/bustle-0.5.3/HACKING.md
--- old/bustle-0.5.2/HACKING.md 2015-08-18 13:23:07.000000000 +0200
+++ new/bustle-0.5.3/HACKING.md 2016-01-11 14:52:06.000000000 +0100
@@ -10,5 +10,29 @@
In new code, try to follow
<https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md>.
-Certain authors did not follow it in the past but it seems like a good kind of
+The author did not follow it in the past but it seems like a good kind of
thing to aim for.
+
+Releasing Bustle
+================
+
+* Ideally, automate the steps below
+* Update version number in `bustle.cabal`
+* Write news in `NEWS.md`
+
+```sh
+# Tag release, build and sign the tarballs
+make maintainer-make-release
+gpg --detach-sign --armor dist/bustle-x.y.z.tar.gz
+gpg --detach-sign --armor dist/bustle-x.y.z-x86_64.tar.bz2
+
+# Stick source and binaries on freedesktop.org
+mkdir x.y.z
+cp dist/bustle-x.y.z* x.y.z/
+scp -r x.y.z annarchy.freedesktop.org:/srv/www.freedesktop.org/www/software/bustle/
+
+# Upload source to Hackage
+cabal upload
+
+git push origin --tags master
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bustle-0.5.2/NEWS.md new/bustle-0.5.3/NEWS.md
--- old/bustle-0.5.2/NEWS.md 2015-08-18 13:23:07.000000000 +0200
+++ new/bustle-0.5.3/NEWS.md 2016-01-11 14:52:06.000000000 +0100
@@ -1,3 +1,10 @@
+Bustle 0.5.3 (2016-01-11)
+-------------------------
+
+* No functional changes!
+* Add keywords to `.desktop` file
+* Update screenshots in `.appdata.xml` file
+
Bustle 0.5.2 (2015-08-18)
-------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bustle-0.5.2/bustle.cabal new/bustle-0.5.3/bustle.cabal
--- old/bustle-0.5.2/bustle.cabal 2015-08-18 13:23:07.000000000 +0200
+++ new/bustle-0.5.3/bustle.cabal 2016-01-11 14:52:06.000000000 +0100
@@ -1,6 +1,6 @@
Name: bustle
Category: Network, Desktop
-Version: 0.5.2
+Version: 0.5.3
Cabal-Version: >= 1.18
Tested-With: GHC >= 7.8.4 && < 7.11
Synopsis: Draw sequence diagrams of D-Bus traffic
@@ -202,6 +202,7 @@
type: exitcode-stdio-1.0
main-is: Test/Regions.hs
other-modules: Bustle.Regions
+ default-language: Haskell2010
Build-Depends: base
, QuickCheck
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bustle-0.5.2/data/bustle.appdata.xml.in new/bustle-0.5.3/data/bustle.appdata.xml.in
--- old/bustle-0.5.2/data/bustle.appdata.xml.in 2015-08-18 13:23:07.000000000 +0200
+++ new/bustle-0.5.3/data/bustle.appdata.xml.in 2016-01-11 14:52:06.000000000 +0100
@@ -16,8 +16,14 @@
and average method call times.</_p>
</description>
<screenshots>
- <!-- Translators: This should be the URI of a 691×510 pixel screenshot of Bustle in your language. If you can't take a screenshot, leave the string as the English screenshot. -->
- <_screenshot type="default" width="691" height="510">http://willthompson.co.uk/bustle/bustle-0.3.1.png</_screenshot>
+ <screenshot type="default">
+ <!-- Translators: This should be the URI of a 2400×1350, pixel screenshot of Bustle in your language. If you can't take a screenshot, leave the string as the English screenshot. -->
+ <_image type="source">https://wiki.freedesktop.org/www/Software/Bustle/bustle-0.5.2-1.png</_image>
+ </screenshot>
+ <screenshot>
+ <!-- Translators: This should be the URI of a 2400×1350, pixel screenshot of Bustle in your language. If you can't take a screenshot, leave the string as the English screenshot. -->
+ <_image type="source">https://wiki.freedesktop.org/www/Software/Bustle/bustle-0.5.2-2.png</_image>
+ </screenshot>
</screenshots>
<url type="homepage">http://willthompson.co.uk/bustle/</url>
<updatecontact>philip_at_tecnocode.co.uk</updatecontact>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bustle-0.5.2/data/bustle.desktop.in new/bustle-0.5.3/data/bustle.desktop.in
--- old/bustle-0.5.2/data/bustle.desktop.in 2015-08-18 13:23:07.000000000 +0200
+++ new/bustle-0.5.3/data/bustle.desktop.in 2016-01-11 14:52:06.000000000 +0100
@@ -7,3 +7,4 @@
Type=Application
Categories=GTK;Development;Debugger;Profiling;
StartupNotify=true
+_Keywords=debug;profile;d-bus;dbus;sequence;monitor;
1
0
Hello community,
here is the log from the commit of package ghc-dbus for openSUSE:Factory checked in at 2016-01-21 23:43:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-dbus (Old)
and /work/SRC/openSUSE:Factory/.ghc-dbus.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-dbus"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-dbus/ghc-dbus.changes 2015-10-14 16:45:21.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-dbus.new/ghc-dbus.changes 2016-01-22 01:08:45.000000000 +0100
@@ -1,0 +2,5 @@
+Sun Jan 17 08:16:49 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.10.12
+
+-------------------------------------------------------------------
Old:
----
dbus-0.10.11.tar.gz
New:
----
dbus-0.10.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-dbus.spec ++++++
--- /var/tmp/diff_new_pack.qxFXgI/_old 2016-01-22 01:08:47.000000000 +0100
+++ /var/tmp/diff_new_pack.qxFXgI/_new 2016-01-22 01:08:47.000000000 +0100
@@ -21,7 +21,7 @@
%global debug_package %{nil}
%bcond_with tests
Name: ghc-dbus
-Version: 0.10.11
+Version: 0.10.12
Release: 0
Summary: A client library for the D-Bus IPC system
License: GPL-3.0+
++++++ dbus-0.10.11.tar.gz -> dbus-0.10.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-0.10.11/dbus.cabal new/dbus-0.10.12/dbus.cabal
--- old/dbus-0.10.11/dbus.cabal 2015-10-12 02:12:17.000000000 +0200
+++ new/dbus-0.10.12/dbus.cabal 2016-01-15 07:59:32.000000000 +0100
@@ -1,5 +1,5 @@
name: dbus
-version: 0.10.11
+version: 0.10.12
license: GPL-3
license-file: license.txt
author: John Millikin <john(a)john-millikin.com>
@@ -83,7 +83,7 @@
source-repository this
type: git
location: https://john-millikin.com/code/haskell-dbus/
- tag: haskell-dbus_0.10.11
+ tag: haskell-dbus_0.10.12
library
ghc-options: -Wall -O2
@@ -95,8 +95,8 @@
-- IMPORTANT: keep these in sync with the test suite
build-depends:
base >= 4.0 && < 5.0
- , bytestring >= 0.9
- , cereal >= 0.3.4 && < 0.5
+ , bytestring >= 0.10.2
+ , cereal >= 0.3.4 && < 0.6
, containers >= 0.1 && < 0.6
, libxml-sax >= 0.7 && < 0.8
, network >= 2.2.3
@@ -131,8 +131,8 @@
build-depends:
base >= 4.0 && < 5.0
- , bytestring >= 0.9
- , cereal >= 0.3.4 && < 0.5
+ , bytestring >= 0.10.2
+ , cereal >= 0.3.4 && < 0.6
, chell >= 0.4 && < 0.5
, chell-quickcheck >= 0.2 && < 0.3
, containers >= 0.1 && < 0.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-0.10.11/lib/DBus/Transport.hs new/dbus-0.10.12/lib/DBus/Transport.hs
--- old/dbus-0.10.11/lib/DBus/Transport.hs 2015-10-12 02:12:17.000000000 +0200
+++ new/dbus-0.10.12/lib/DBus/Transport.hs 2016-01-15 07:59:32.000000000 +0100
@@ -40,15 +40,16 @@
import Control.Exception
import qualified Data.ByteString
import Data.ByteString (ByteString)
+import qualified Data.ByteString.Builder as Builder
+import qualified Data.ByteString.Lazy as Lazy
import qualified Data.Map as Map
+import Data.Monoid (mappend, mempty)
import Data.Typeable (Typeable)
import Foreign.C (CUInt)
import Network.Socket hiding (recv)
import Network.Socket.ByteString (sendAll, recv)
import qualified System.Info
-import qualified Data.Serialize.Builder as Builder
-
import DBus
-- | Thrown from transport methods when an error occurs.
@@ -149,24 +150,24 @@
transportClose (SocketTransport addr s) = catchIOException addr (sClose s)
recvLoop :: Socket -> Int -> IO ByteString
-recvLoop s = loop Builder.empty where
+recvLoop s = \n -> Lazy.toStrict `fmap` loop mempty n where
chunkSize = 4096
loop acc n = if n > chunkSize
then do
chunk <- recv s chunkSize
- let builder = Builder.append acc (Builder.fromByteString chunk)
+ let builder = mappend acc (Builder.byteString chunk)
loop builder (n - Data.ByteString.length chunk)
else do
chunk <- recv s n
case Data.ByteString.length chunk of
-- Unexpected end of connection; maybe the remote end went away.
-- Return what we've got so far.
- 0 -> return (Builder.toByteString acc)
+ 0 -> return (Builder.toLazyByteString acc)
len -> do
- let builder = Builder.append acc (Builder.fromByteString chunk)
+ let builder = mappend acc (Builder.byteString chunk)
if len == n
- then return (Builder.toByteString builder)
+ then return (Builder.toLazyByteString builder)
else loop builder (n - Data.ByteString.length chunk)
instance TransportOpen SocketTransport where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/dbus-0.10.11/lib/DBus/Wire.hs new/dbus-0.10.12/lib/DBus/Wire.hs
--- old/dbus-0.10.11/lib/DBus/Wire.hs 2015-10-12 02:12:17.000000000 +0200
+++ new/dbus-0.10.12/lib/DBus/Wire.hs 2016-01-15 07:59:32.000000000 +0100
@@ -30,11 +30,14 @@
import Control.Monad (ap, liftM, when, unless)
import qualified Data.ByteString
import Data.ByteString (ByteString)
+import qualified Data.ByteString.Builder as Builder
import qualified Data.ByteString.Char8
+import qualified Data.ByteString.Lazy as Lazy
import Data.Int (Int16, Int32, Int64)
import qualified Data.Map
import Data.Map (Map)
import Data.Maybe (fromJust, listToMaybe, fromMaybe)
+import Data.Monoid (mappend, mempty)
import Data.Text (Text)
import qualified Data.Text.Encoding
import qualified Data.Vector
@@ -43,7 +46,6 @@
import Foreign.C.Types (CInt)
import System.Posix.Types (Fd(..))
-import qualified Data.Serialize.Builder as Builder
import qualified Data.Serialize.Get as Get
import Data.Serialize.IEEE754 (getFloat64be, getFloat64le, putFloat64be, putFloat64le)
import Data.Serialize.Put (runPut)
@@ -178,14 +180,19 @@
appendB :: Word64 -> Builder.Builder -> Marshal ()
appendB size bytes = Wire (\_ (MarshalState builder count) -> let
- builder' = Builder.append builder bytes
+ builder' = mappend builder bytes
count' = count + size
in WireRR () (MarshalState builder' count'))
appendS :: ByteString -> Marshal ()
appendS bytes = appendB
(fromIntegral (Data.ByteString.length bytes))
- (Builder.fromByteString bytes)
+ (Builder.byteString bytes)
+
+appendL :: Lazy.ByteString -> Marshal ()
+appendL bytes = appendB
+ (fromIntegral (Lazy.length bytes))
+ (Builder.lazyByteString bytes)
pad :: Word8 -> Marshal ()
pad count = do
@@ -273,25 +280,25 @@
return ret
marshalWord8 :: Word8 -> Marshal ()
-marshalWord8 x = appendB 1 (Builder.singleton x)
+marshalWord8 x = appendB 1 (Builder.word8 x)
unmarshalWord8 :: Unmarshal Word8
unmarshalWord8 = liftM Data.ByteString.head (consume 1)
marshalWord16 :: Word16 -> Marshal ()
marshalWord16 = marshalBuilder 2
- Builder.putWord16be
- Builder.putWord16le
+ Builder.word16BE
+ Builder.word16LE
marshalWord32 :: Word32 -> Marshal ()
marshalWord32 = marshalBuilder 4
- Builder.putWord32be
- Builder.putWord32le
+ Builder.word32BE
+ Builder.word32LE
marshalWord64 :: Word64 -> Marshal ()
marshalWord64 = marshalBuilder 8
- Builder.putWord64be
- Builder.putWord64le
+ Builder.word64BE
+ Builder.word64LE
marshalInt16 :: Int16 -> Marshal ()
marshalInt16 = marshalWord16 . fromIntegral
@@ -414,35 +421,35 @@
skipTerminator
fromMaybeU "signature" parseSignatureBytes bytes
-arrayMaximumLength :: Int
+arrayMaximumLength :: Int64
arrayMaximumLength = 67108864
marshalVector :: Type -> Vector Value -> Marshal ()
marshalVector t x = do
(arrayPadding, arrayBytes) <- getArrayBytes t x
- let arrayLen = Data.ByteString.length arrayBytes
+ let arrayLen = Lazy.length arrayBytes
when (arrayLen > arrayMaximumLength) (throwError ("Marshaled array size (" ++ show arrayLen ++ " bytes) exceeds maximum limit of (" ++ show arrayMaximumLength ++ " bytes)."))
marshalWord32 (fromIntegral arrayLen)
appendS (Data.ByteString.replicate arrayPadding 0)
- appendS arrayBytes
+ appendL arrayBytes
marshalStrictBytes :: ByteString -> Marshal ()
marshalStrictBytes bytes = do
- let arrayLen = Data.ByteString.length bytes
+ let arrayLen = Lazy.length (Lazy.fromStrict bytes)
when (fromIntegral arrayLen > arrayMaximumLength) (throwError ("Marshaled array size (" ++ show arrayLen ++ " bytes) exceeds maximum limit of (" ++ show arrayMaximumLength ++ " bytes)."))
marshalWord32 (fromIntegral arrayLen)
appendS bytes
-getArrayBytes :: Type -> Vector Value -> Marshal (Int, ByteString)
+getArrayBytes :: Type -> Vector Value -> Marshal (Int, Lazy.ByteString)
getArrayBytes itemType vs = do
s <- getState
(MarshalState _ afterLength) <- marshalWord32 0 >> getState
(MarshalState _ afterPadding) <- pad (alignment itemType) >> getState
- putState (MarshalState Builder.empty afterPadding)
+ putState (MarshalState mempty afterPadding)
(MarshalState itemBuilder _) <- Data.Vector.mapM_ marshal vs >> getState
- let itemBytes = Builder.toByteString itemBuilder
+ let itemBytes = Builder.toLazyByteString itemBuilder
paddingSize = fromIntegral (afterPadding - afterLength)
putState s
@@ -556,7 +563,7 @@
Nothing -> throwErrorM (UnmarshalError ("Header field " ++ show label ++ " contains invalid value " ++ show x))
marshalMessage :: Message a => Endianness -> Serial -> a
- -> Either MarshalError Data.ByteString.ByteString
+ -> Either MarshalError ByteString
marshalMessage e serial msg = runMarshal where
body = messageBody msg
marshaler = do
@@ -566,15 +573,15 @@
(MarshalState bodyBytesB _) <- getState
putState empty
marshal (toValue (encodeEndianness e))
- let bodyBytes = Builder.toByteString bodyBytesB
- marshalHeader msg serial sig (fromIntegral (Data.ByteString.length bodyBytes))
+ let bodyBytes = Builder.toLazyByteString bodyBytesB
+ marshalHeader msg serial sig (fromIntegral (Lazy.length bodyBytes))
pad 8
- appendS bodyBytes
+ appendL bodyBytes
checkMaximumSize
- emptyState = MarshalState Builder.empty 0
+ emptyState = MarshalState mempty 0
runMarshal = case unWire marshaler e emptyState of
WireRL err -> Left (MarshalError err)
- WireRR _ (MarshalState builder _) -> Right (Builder.toByteString builder)
+ WireRR _ (MarshalState builder _) -> Right (Lazy.toStrict (Builder.toLazyByteString builder))
checkBodySig :: [Variant] -> Marshal Signature
checkBodySig vs = case signature (map variantType vs) of
1
0
Hello community,
here is the log from the commit of package ghc-cabal-helper for openSUSE:Factory checked in at 2016-01-21 23:43:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-cabal-helper (Old)
and /work/SRC/openSUSE:Factory/.ghc-cabal-helper.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-cabal-helper"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-cabal-helper/ghc-cabal-helper.changes 2015-12-29 12:58:51.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-cabal-helper.new/ghc-cabal-helper.changes 2016-01-22 01:08:43.000000000 +0100
@@ -1,0 +2,5 @@
+Mon Jan 11 07:39:48 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.6.3.0
+
+-------------------------------------------------------------------
Old:
----
cabal-helper-0.6.2.0.tar.gz
New:
----
cabal-helper-0.6.3.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-cabal-helper.spec ++++++
--- /var/tmp/diff_new_pack.PHISNk/_old 2016-01-22 01:08:45.000000000 +0100
+++ /var/tmp/diff_new_pack.PHISNk/_new 2016-01-22 01:08:45.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name cabal-helper
%bcond_with tests
Name: ghc-cabal-helper
-Version: 0.6.2.0
+Version: 0.6.3.0
Release: 0
Summary: Simple interface to some of Cabal's configuration state used by ghc-mod
License: AGPL-3.0+
++++++ cabal-helper-0.6.2.0.tar.gz -> cabal-helper-0.6.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-helper-0.6.2.0/Distribution/Helper.hs new/cabal-helper-0.6.3.0/Distribution/Helper.hs
--- old/cabal-helper-0.6.2.0/Distribution/Helper.hs 2015-09-24 04:11:17.000000000 +0200
+++ new/cabal-helper-0.6.3.0/Distribution/Helper.hs 2016-01-10 22:00:45.000000000 +0100
@@ -48,6 +48,7 @@
, configFlags
, nonDefaultConfigFlags
, packageId
+ , compilerVersion
-- * Result types
, ChModuleName(..)
@@ -63,8 +64,10 @@
-- * Managing @dist/@
, prepare
+ , prepare'
, reconfigure
, writeAutogenFiles
+ , writeAutogenFiles'
-- * $libexec related error handling
, LibexecNotFoundError(..)
@@ -79,6 +82,7 @@
import Control.Exception as E
import Data.Char
import Data.List
+import Data.Maybe
import Data.Version
import Data.Typeable
import Distribution.Simple.BuildPaths (exeExtension)
@@ -154,7 +158,8 @@
slbiPkgLicenses :: [(String, [(String, Version)])],
slbiFlags :: [(String, Bool)],
slbiConfigFlags :: [(String, Bool)],
- slbiNonDefaultConfigFlags :: [(String, Bool)]
+ slbiNonDefaultConfigFlags :: [(String, Bool)],
+ slbiCompilerVersion :: (String, Version)
} deriving (Eq, Ord, Read, Show)
-- | Caches helper executable result so it doesn't have to be run more than once
@@ -164,6 +169,9 @@
(ReaderT QueryEnv m) a }
deriving (Functor, Applicative, Monad, MonadIO)
+instance MonadTrans Query where
+ lift = Query . lift . lift
+
type MonadQuery m = ( MonadIO m
, MonadState (Maybe SomeLocalBuildInfo) m
, MonadReader QueryEnv m)
@@ -230,6 +238,9 @@
-- i.e. don't rely on these being the flags set by the user directly.
nonDefaultConfigFlags :: MonadIO m => Query m [(String, Bool)]
+-- | The version of GHC the project is configured to use
+compilerVersion :: MonadIO m => Query m (String, Version)
+
-- | Package identifier, i.e. package name and version
packageId :: MonadIO m => Query m (String, Version)
@@ -246,6 +257,7 @@
flags = Query $ slbiFlags `liftM` getSlbi
configFlags = Query $ slbiConfigFlags `liftM` getSlbi
nonDefaultConfigFlags = Query $ slbiNonDefaultConfigFlags `liftM` getSlbi
+compilerVersion = Query $ slbiCompilerVersion `liftM` getSlbi
packageId = Query $ getPackageId
-- | Run @cabal configure@
@@ -266,50 +278,57 @@
_ <- liftIO $ readProc (cabalProgram progs) ("configure":progOpts) ""
return ()
-
-
-invokeHelper :: MonadQuery m => [String] -> m [Maybe ChResponse]
-invokeHelper args = ask >>= \QueryEnv {..} -> do
- let progs = qePrograms
- projdir = qeProjectDir
- distdir = qeDistDir
-
- progArgs = [ "--with-ghc=" ++ ghcProgram progs
- , "--with-ghc-pkg=" ++ ghcPkgProgram progs
- , "--with-cabal=" ++ cabalProgram progs
+readHelper :: (MonadIO m, MonadQuery m) => [String] -> m [Maybe ChResponse]
+readHelper args = ask >>= \qe -> liftIO $ do
+ out <- either error id <$> invokeHelper qe args
+ let res = read out
+ liftIO $ evaluate res `E.catch` \se@(SomeException _) -> do
+ md <- lookupEnv' "CABAL_HELPER_DEBUG"
+ let msg = "readHelper: exception: '" ++ show se ++ "'"
+ error $ msg ++ case md of
+ Nothing -> ", for more information set the environment variable CABAL_HELPER_DEBUG"
+ Just _ -> ", output: '"++ out ++"'"
+
+invokeHelper :: QueryEnv -> [String] -> IO (Either String String)
+invokeHelper QueryEnv {..} args = do
+ let progArgs = [ "--with-ghc=" ++ ghcProgram qePrograms
+ , "--with-ghc-pkg=" ++ ghcPkgProgram qePrograms
+ , "--with-cabal=" ++ cabalProgram qePrograms
+ ]
+ exe <- findLibexecExe "cabal-helper-wrapper"
+ let args' = progArgs ++ qeProjectDir:qeDistDir:args
+ out <- qeReadProcess exe args' ""
+ (Right <$> evaluate out) `E.catch` \(SomeException _) ->
+ return $ Left $ concat
+ ["invokeHelper", ": ", exe, " "
+ , intercalate " " (map show args')
+ , " failed"
]
- liftIO $ do
- exe <- findLibexecExe "cabal-helper-wrapper"
- let args' = progArgs ++ projdir:distdir:args
- out <- qeReadProcess exe args' ""
- evaluate (read out) `E.catch` \(SomeException _) ->
- error $ concat ["invokeHelper", ": ", exe, " "
- , intercalate " " (map show args')
- , " (read failed)"
- ]
getPackageId :: MonadQuery m => m (String, Version)
getPackageId = ask >>= \QueryEnv {..} -> do
- [ Just (ChResponseVersion pkgName pkgVer) ] <- invokeHelper [ "package-id" ]
+ [ Just (ChResponseVersion pkgName pkgVer) ] <- readHelper [ "package-id" ]
return (pkgName, pkgVer)
getSomeConfigState :: MonadQuery m => m SomeLocalBuildInfo
getSomeConfigState = ask >>= \QueryEnv {..} -> do
- res <- invokeHelper [ "package-db-stack"
- , "entrypoints"
- , "source-dirs"
- , "ghc-options"
- , "ghc-src-options"
- , "ghc-pkg-options"
- , "ghc-merged-pkg-options"
- , "ghc-lang-options"
- , "licenses"
- , "flags"
- , "config-flags"
- , "non-default-config-flags"
- ]
+ res <- readHelper
+ [ "package-db-stack"
+ , "entrypoints"
+ , "source-dirs"
+ , "ghc-options"
+ , "ghc-src-options"
+ , "ghc-pkg-options"
+ , "ghc-merged-pkg-options"
+ , "ghc-lang-options"
+ , "licenses"
+ , "flags"
+ , "config-flags"
+ , "non-default-config-flags"
+ , "compiler-version"
+ ]
let [ Just (ChResponsePkgDbs pkgDbs),
Just (ChResponseEntrypoints eps),
Just (ChResponseCompList srcDirs),
@@ -321,28 +340,31 @@
Just (ChResponseLicenses pkgLics),
Just (ChResponseFlags fls),
Just (ChResponseFlags cfls),
- Just (ChResponseFlags ndcfls)
+ Just (ChResponseFlags ndcfls),
+ Just (ChResponseVersion comp compVer)
] = res
return $ SomeLocalBuildInfo
- pkgDbs eps srcDirs ghcOpts ghcSrcOpts ghcPkgOpts ghcMergedPkgOpts ghcLangOpts pkgLics fls cfls ndcfls
+ pkgDbs eps srcDirs ghcOpts ghcSrcOpts ghcPkgOpts ghcMergedPkgOpts ghcLangOpts pkgLics fls cfls ndcfls (comp, compVer)
--- | Make sure the appropriate helper executable for the given project is
--- installed and ready to run queries.
prepare :: MonadIO m
=> (FilePath -> [String] -> String -> IO String)
-> FilePath
- -- ^ Path to project directory, i.e. the one containing the
- -- @project.cabal@ file
-> FilePath
- -- ^ Path to the @dist/@ directory
-> m ()
prepare readProc projdir distdir = liftIO $ do
exe <- findLibexecExe "cabal-helper-wrapper"
void $ readProc exe [projdir, distdir] ""
--- | Create @cabal_macros.h@ and @Paths_\<pkg\>@ possibly other generated files
--- in the usual place.
+{-# DEPRECATED prepare
+ "Will be replaced by prepare' in the next major release" #-}
+
+-- | Make sure the appropriate helper executable for the given project is
+-- installed and ready to run queries.
+prepare' :: MonadIO m => QueryEnv -> m ()
+prepare' qe =
+ liftIO $ void $ invokeHelper qe []
+
writeAutogenFiles :: MonadIO m
=> (FilePath -> [String] -> String -> IO String)
-> FilePath
@@ -355,6 +377,15 @@
exe <- findLibexecExe "cabal-helper-wrapper"
void $ readProc exe [projdir, distdir, "write-autogen-files"] ""
+{-# DEPRECATED writeAutogenFiles
+ "Will be replaced by writeAutogenFiles' in the next major release" #-}
+
+-- | Create @cabal_macros.h@ and @Paths_\<pkg\>@ possibly other generated files
+-- in the usual place.
+writeAutogenFiles' :: MonadIO m => QueryEnv -> m ()
+writeAutogenFiles' qe =
+ liftIO $ void $ invokeHelper qe ["write-autogen-files"]
+
-- | Get the path to the sandbox package-db in a project
getSandboxPkgDb :: (FilePath -> [String] -> String -> IO String)
-> FilePath
@@ -442,3 +473,6 @@
#else
getProgName
#endif
+
+lookupEnv' :: String -> IO (Maybe String)
+lookupEnv' k = lookup k <$> getEnvironment
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-helper-0.6.2.0/cabal-helper.cabal new/cabal-helper-0.6.3.0/cabal-helper.cabal
--- old/cabal-helper-0.6.2.0/cabal-helper.cabal 2015-11-19 13:22:02.000000000 +0100
+++ new/cabal-helper-0.6.3.0/cabal-helper.cabal 2016-01-10 22:00:59.000000000 +0100
@@ -1,5 +1,5 @@
name: cabal-helper
-version: 0.6.2.0
+version: 0.6.3.0
synopsis: Simple interface to some of Cabal's configuration state used by ghc-mod
description:
@cabal-helper@ provides a library which wraps the internal use of
@@ -68,6 +68,7 @@
CabalHelper.Data
CabalHelper.Compile
CabalHelper.Log
+ CabalHelper.Sandbox
GHC-Options: -Wall
X-Install-Target: $libexecdir
Build-Depends: base >= 4.5 && < 5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cabal-helper-0.6.2.0/tests/Spec.hs new/cabal-helper-0.6.3.0/tests/Spec.hs
--- old/cabal-helper-0.6.2.0/tests/Spec.hs 2015-11-03 14:27:21.000000000 +0100
+++ new/cabal-helper-0.6.3.0/tests/Spec.hs 2016-01-10 22:00:45.000000000 +0100
@@ -8,6 +8,7 @@
import Data.Functor
import Control.Exception as E
import Control.Arrow
+import Prelude
import CabalHelper.Common
import CabalHelper.Compile
@@ -18,7 +19,7 @@
flip (setEnv "HOME") True =<< fromMaybe "/tmp" <$> lookupEnv "TMPDIR"
_ <- rawSystem "cabal" ["update"]
- writeAutogenFiles readProcess "." "./dist"
+ writeAutogenFiles' $ defaultQueryEnv "." "./dist"
let vers :: [(Version, [Version])]
vers = map (parseVer *** map parseVer) [
1
0
Hello community,
here is the log from the commit of package ghc-GLURaw for openSUSE:Factory checked in at 2016-01-21 23:43:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-GLURaw (Old)
and /work/SRC/openSUSE:Factory/.ghc-GLURaw.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-GLURaw"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-GLURaw/ghc-GLURaw.changes 2016-01-05 21:55:51.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-GLURaw.new/ghc-GLURaw.changes 2016-01-22 01:08:41.000000000 +0100
@@ -1,0 +2,6 @@
+Mon Jan 11 08:07:55 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 2.0.0.1
+* Relaxed upper version bound for OpenGLRaw
+
+-------------------------------------------------------------------
Old:
----
GLURaw-2.0.0.0.tar.gz
New:
----
GLURaw-2.0.0.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-GLURaw.spec ++++++
--- /var/tmp/diff_new_pack.JJaEaR/_old 2016-01-22 01:08:43.000000000 +0100
+++ /var/tmp/diff_new_pack.JJaEaR/_new 2016-01-22 01:08:43.000000000 +0100
@@ -18,7 +18,7 @@
%global pkg_name GLURaw
Name: ghc-GLURaw
-Version: 2.0.0.0
+Version: 2.0.0.1
Release: 0
Summary: A raw binding for the OpenGL graphics system
License: BSD-3-Clause
++++++ GLURaw-2.0.0.0.tar.gz -> GLURaw-2.0.0.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GLURaw-2.0.0.0/CHANGELOG.md new/GLURaw-2.0.0.1/CHANGELOG.md
--- old/GLURaw-2.0.0.0/CHANGELOG.md 2016-01-03 23:49:12.000000000 +0100
+++ new/GLURaw-2.0.0.1/CHANGELOG.md 2016-01-10 16:25:43.000000000 +0100
@@ -1,3 +1,7 @@
+2.0.0.1
+-------
+* Relaxed upper version bound for `OpenGLRaw`.
+
2.0.0.0
-------
* Use pattern synonyms.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GLURaw-2.0.0.0/GLURaw.cabal new/GLURaw-2.0.0.1/GLURaw.cabal
--- old/GLURaw-2.0.0.0/GLURaw.cabal 2016-01-03 23:49:12.000000000 +0100
+++ new/GLURaw-2.0.0.1/GLURaw.cabal 2016-01-10 16:25:43.000000000 +0100
@@ -1,5 +1,5 @@
name: GLURaw
-version: 2.0.0.0
+version: 2.0.0.1
synopsis: A raw binding for the OpenGL graphics system
description:
GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL utility library. It is
@@ -46,7 +46,7 @@
build-depends:
base >= 4 && < 5,
transformers >= 0.2 && < 0.6,
- OpenGLRaw >= 3.0 && < 3.1
+ OpenGLRaw >= 3.0 && < 3.2
default-language: Haskell2010
ghc-options: -Wall
other-extensions:
1
0
Hello community,
here is the log from the commit of package ghc-GLUT for openSUSE:Factory checked in at 2016-01-21 23:43:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-GLUT (Old)
and /work/SRC/openSUSE:Factory/.ghc-GLUT.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-GLUT"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-GLUT/ghc-GLUT.changes 2016-01-05 21:55:54.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-GLUT.new/ghc-GLUT.changes 2016-01-22 01:08:39.000000000 +0100
@@ -1,0 +2,6 @@
+Mon Jan 11 08:12:22 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 2.7.0.6
+* Relaxed upper version bound for OpenGLRaw.
+
+-------------------------------------------------------------------
Old:
----
GLUT-2.7.0.5.tar.gz
New:
----
GLUT-2.7.0.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-GLUT.spec ++++++
--- /var/tmp/diff_new_pack.eJLNYb/_old 2016-01-22 01:08:41.000000000 +0100
+++ /var/tmp/diff_new_pack.eJLNYb/_new 2016-01-22 01:08:41.000000000 +0100
@@ -18,7 +18,7 @@
%global pkg_name GLUT
Name: ghc-GLUT
-Version: 2.7.0.5
+Version: 2.7.0.6
Release: 0
Summary: A binding for the OpenGL Utility Toolkit
License: BSD-3-Clause
++++++ GLUT-2.7.0.5.tar.gz -> GLUT-2.7.0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GLUT-2.7.0.5/CHANGELOG.md new/GLUT-2.7.0.6/CHANGELOG.md
--- old/GLUT-2.7.0.5/CHANGELOG.md 2016-01-03 23:53:35.000000000 +0100
+++ new/GLUT-2.7.0.6/CHANGELOG.md 2016-01-10 20:03:01.000000000 +0100
@@ -1,3 +1,7 @@
+2.7.0.6
+--------
+* Relaxed upper version bound for `OpenGLRaw`.
+
2.7.0.5
--------
* Make things work with both old and new `OpenGLRaw`/`GLURaw` packages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/GLUT-2.7.0.5/GLUT.cabal new/GLUT-2.7.0.6/GLUT.cabal
--- old/GLUT-2.7.0.5/GLUT.cabal 2016-01-03 23:53:35.000000000 +0100
+++ new/GLUT-2.7.0.6/GLUT.cabal 2016-01-10 20:03:01.000000000 +0100
@@ -1,5 +1,5 @@
name: GLUT
-version: 2.7.0.5
+version: 2.7.0.6
synopsis: A binding for the OpenGL Utility Toolkit
description:
A Haskell binding for the OpenGL Utility Toolkit, a window system independent
@@ -229,7 +229,7 @@
if !flag(BuildExamples)
buildable: False
main-is: SmoothOpenGL3.hs
- build-depends: base >= 3 && < 5, bytestring >= 0.9 && < 0.11, OpenGLRaw >= 1.0 && < 3.1, GLUT
+ build-depends: base >= 3 && < 5, bytestring >= 0.9 && < 0.11, OpenGLRaw >= 1.0 && < 3.2, GLUT
hs-source-dirs: examples/Misc
default-language: Haskell2010
ghc-options: -Wall
1
0
Hello community,
here is the log from the commit of package hdevtools for openSUSE:Factory checked in at 2016-01-21 23:43:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/hdevtools (Old)
and /work/SRC/openSUSE:Factory/.hdevtools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hdevtools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/hdevtools/hdevtools.changes 2015-08-25 08:49:19.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.hdevtools.new/hdevtools.changes 2016-01-22 01:08:37.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Jan 15 09:57:29 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.1.2.2
+* Added type checking support for tests and benchmarks in stack projects.
+
+-------------------------------------------------------------------
Old:
----
hdevtools-0.1.2.1.tar.gz
New:
----
hdevtools-0.1.2.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ hdevtools.spec ++++++
--- /var/tmp/diff_new_pack.n7lpw4/_old 2016-01-22 01:08:39.000000000 +0100
+++ /var/tmp/diff_new_pack.n7lpw4/_new 2016-01-22 01:08:39.000000000 +0100
@@ -18,7 +18,7 @@
%global debug_package %{nil}
Name: hdevtools
-Version: 0.1.2.1
+Version: 0.1.2.2
Release: 0
Summary: Persistent GHC powered background server for FAST haskell development tools
License: MIT
@@ -38,6 +38,7 @@
BuildRequires: ghc-process-devel
BuildRequires: ghc-syb-devel
BuildRequires: ghc-time-devel
+BuildRequires: ghc-transformers-devel
BuildRequires: ghc-unix-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# End cabal-rpm deps
++++++ hdevtools-0.1.2.1.tar.gz -> hdevtools-0.1.2.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdevtools-0.1.2.1/CHANGELOG.md new/hdevtools-0.1.2.2/CHANGELOG.md
--- old/hdevtools-0.1.2.1/CHANGELOG.md 1970-01-01 01:00:00.000000000 +0100
+++ new/hdevtools-0.1.2.2/CHANGELOG.md 2016-01-11 23:25:10.000000000 +0100
@@ -0,0 +1,5 @@
+# Changelog
+
+## 0.1.2.2 - 2016-01-11
+
+ * Added type checking support for tests and benchmarks in stack projects.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdevtools-0.1.2.1/LICENSE new/hdevtools-0.1.2.2/LICENSE
--- old/hdevtools-0.1.2.1/LICENSE 2015-08-14 00:18:29.000000000 +0200
+++ new/hdevtools-0.1.2.2/LICENSE 2015-12-18 19:26:31.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright (C) 2012 The hdevtools Authors (see AUTHORS file)
+Copyright (C) 2015 The hdevtools Authors (see AUTHORS file)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdevtools-0.1.2.1/hdevtools.cabal new/hdevtools-0.1.2.2/hdevtools.cabal
--- old/hdevtools-0.1.2.1/hdevtools.cabal 2015-08-14 00:18:29.000000000 +0200
+++ new/hdevtools-0.1.2.2/hdevtools.cabal 2016-01-11 23:27:20.000000000 +0100
@@ -1,5 +1,5 @@
name: hdevtools
-version: 0.1.2.1
+version: 0.1.2.2
synopsis: Persistent GHC powered background server for FAST haskell development tools
description:
'hdevtools' is a backend for text editor plugins, to allow for things such as
@@ -30,17 +30,19 @@
license: MIT
license-file: LICENSE
author: Bit Connor
-maintainer: schell.scivally(a)synapsegroup.com
+maintainer: Sebastian Nagel <sebastian.nagel(a)ncoding.at>,
+ Ranjit Jhala <jhala(a)cs.ucsd.edu>
copyright: See AUTHORS file
category: Development
-homepage: https://github.com/schell/hdevtools/
-bug-reports: https://github.com/schell/hdevtools/issues/
+homepage: https://github.com/hdevtools/hdevtools/
+bug-reports: https://github.com/hdevtools/hdevtools/issues/
build-type: Simple
cabal-version: >=1.8
+extra-source-files: CHANGELOG.md
source-repository head
type: git
- location: git://github.com/schell/hdevtools.git
+ location: git://github.com/hdevtools/hdevtools.git
executable hdevtools
hs-source-dirs: src
@@ -69,8 +71,9 @@
ghc-paths,
syb,
network,
- process >= 1.2.3.0,
+ process,
time,
+ transformers,
unix
if impl(ghc == 7.6.*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdevtools-0.1.2.1/src/Cabal.hs new/hdevtools-0.1.2.2/src/Cabal.hs
--- old/hdevtools-0.1.2.1/src/Cabal.hs 2015-08-14 00:18:29.000000000 +0200
+++ new/hdevtools-0.1.2.2/src/Cabal.hs 2015-12-18 15:38:26.000000000 +0100
@@ -7,6 +7,9 @@
#ifdef ENABLE_CABAL
import Stack
import Control.Exception (IOException, catch)
+import Control.Monad (when)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.State (execStateT, modify)
import Data.Char (isSpace)
import Data.List (foldl', nub, sort, find, isPrefixOf, isSuffixOf)
#if __GLASGOW_HASKELL__ < 709
@@ -24,12 +27,13 @@
#endif
componentBuildInfo, foldComponent)
import Distribution.Simple.Compiler (PackageDB(..))
+import Distribution.Simple.Command (CommandParse(..), commandParseArgs)
import Distribution.Simple.GHC (componentGhcOptions)
import Distribution.Simple.Program (defaultProgramConfiguration)
import Distribution.Simple.Program.Db (lookupProgram)
import Distribution.Simple.Program.Types (ConfiguredProgram(programVersion), simpleProgram)
import Distribution.Simple.Program.GHC (GhcOptions(..), renderGhcOptions)
-import Distribution.Simple.Setup (ConfigFlags(..), defaultConfigFlags, toFlag)
+import Distribution.Simple.Setup (ConfigFlags(..), defaultConfigFlags, configureCommand, toFlag)
#if __GLASGOW_HASKELL__ >= 709
import Distribution.Utils.NubList
import qualified Distribution.Simple.GHC as GHC(configure)
@@ -38,7 +42,7 @@
import Distribution.Version (Version(..))
import System.IO.Error (ioeGetErrorString)
-import System.Directory (doesFileExist, getDirectoryContents)
+import System.Directory (doesFileExist, doesDirectoryExist, getDirectoryContents)
import System.FilePath (takeDirectory, splitFileName, (</>))
@@ -110,30 +114,44 @@
-- via: https://groups.google.com/d/msg/haskell-stack/8HJ6DHAinU0/J68U6AXTsasJ
-- cabal configure --package-db=clear --package-db=global --package-db=$(stack path --snapshot-pkg-db) --package-db=$(stack path --local-pkg-db)
-getPackageGhcOpts :: FilePath -> Maybe StackConfig -> IO (Either String [String])
-getPackageGhcOpts path mbStack = do
+getPackageGhcOpts :: FilePath -> Maybe StackConfig -> [String] -> IO (Either String [String])
+getPackageGhcOpts path mbStack opts = do
getPackageGhcOpts' `catch` (\e -> do
return $ Left $ "Cabal error: " ++ (ioeGetErrorString (e :: IOException)))
where
getPackageGhcOpts' :: IO (Either String [String])
getPackageGhcOpts' = do
genPkgDescr <- readPackageDescription silent path
- let cfgFlags'' = (defaultConfigFlags defaultProgramConfiguration)
- { configDistPref = toFlag $ takeDirectory path </> "dist"
- -- TODO: figure out how to find out this flag
- , configUserInstall = toFlag True
- }
- let cfgFlags' = stackifyFlags cfgFlags'' mbStack
- let sandboxConfig = takeDirectory path </> "cabal.sandbox.config"
- exists <- doesFileExist sandboxConfig
-
- cfgFlags <- case exists of
- False -> return cfgFlags'
- True -> do
- sandboxPackageDb <- getSandboxPackageDB sandboxConfig
- return $ cfgFlags'
- { configPackageDBs = [Just sandboxPackageDb]
- }
+ distDir <- getDistDir
+
+ let programCfg = defaultProgramConfiguration
+ let initCfgFlags = (defaultConfigFlags programCfg)
+ { configDistPref = toFlag distDir
+ -- TODO: figure out how to find out this flag
+ , configUserInstall = toFlag True
+
+ -- configure with --enable-tests to include test dependencies/modules
+ , configTests = toFlag True
+
+ -- configure with --enable-benchmarks to include benchmark dependencies/modules
+ , configBenchmarks = toFlag True
+ }
+ let initCfgFlags' = stackifyFlags initCfgFlags mbStack
+
+ cfgFlags <- flip execStateT initCfgFlags' $ do
+ let sandboxConfig = takeDirectory path </> "cabal.sandbox.config"
+
+ exists <- lift $ doesFileExist sandboxConfig
+ when (exists) $ do
+ sandboxPackageDb <- lift $ getSandboxPackageDB sandboxConfig
+ modify $ \x -> x { configPackageDBs = [Just sandboxPackageDb] }
+
+ let cmdUI = configureCommand programCfg
+ case commandParseArgs cmdUI True opts of
+ CommandReadyToGo (modFlags, _) -> modify modFlags
+ CommandErrors (e:_) -> error e
+ _ -> return ()
+
localBuildInfo <- configure (genPkgDescr, emptyHookedBuildInfo) cfgFlags
let pkgDescr = localPkgDescr localBuildInfo
let baseDir = fst . splitFileName $ path
@@ -166,6 +184,14 @@
return $ Right $ renderGhcOptions ghcVersion ghcOpts
#endif
+ -- returns the right 'dist' directory in the case of a sandbox
+ getDistDir = do
+ let dir = takeDirectory path </> "dist"
+ exists <- doesDirectoryExist dir
+ if not exists then return dir else do
+ contents <- getDirectoryContents dir
+ return . maybe dir (dir </>) $ find ("dist-sandbox-" `isPrefixOf`) contents
+
pkgLibName :: PackageDescription -> Maybe PackageName
pkgLibName pkgDescr = if hasLibrary pkgDescr
then Just $ pkgName . package $ pkgDescr
@@ -217,8 +243,8 @@
# else
-getPackageGhcOpts :: FilePath -> IO (Either String [String])
-getPackageGhcOpts _ = return $ Right []
+getPackageGhcOpts :: FilePath -> [String] -> IO (Either String [String])
+getPackageGhcOpts _ _ = return $ Right []
findCabalFile :: FilePath -> IO (Maybe FilePath)
findCabalFile _ = return Nothing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdevtools-0.1.2.1/src/CommandArgs.hs new/hdevtools-0.1.2.2/src/CommandArgs.hs
--- old/hdevtools-0.1.2.1/src/CommandArgs.hs 2015-08-14 00:18:29.000000000 +0200
+++ new/hdevtools-0.1.2.2/src/CommandArgs.hs 2015-12-18 15:38:26.000000000 +0100
@@ -53,17 +53,21 @@
| Check
{ socket :: Maybe FilePath
, ghcOpts :: [String]
+ , cabalOpts :: [String]
, path :: Maybe String
, file :: String
+ , json :: Bool
}
| ModuleFile
{ socket :: Maybe FilePath
, ghcOpts :: [String]
+ , cabalOpts :: [String]
, module_ :: String
}
| Info
{ socket :: Maybe FilePath
, ghcOpts :: [String]
+ , cabalOpts :: [String]
, path :: Maybe String
, file :: String
, identifier :: String
@@ -71,6 +75,7 @@
| Type
{ socket :: Maybe FilePath
, ghcOpts :: [String]
+ , cabalOpts :: [String]
, path :: Maybe String
, file :: String
, line :: Int
@@ -79,6 +84,7 @@
| FindSymbol
{ socket :: Maybe FilePath
, ghcOpts :: [String]
+ , cabalOpts :: [String]
, symbol :: String
, files :: [String]
}
@@ -86,25 +92,28 @@
dummyAdmin :: HDevTools
dummyAdmin = Admin
- { socket = Nothing
+ { socket = Nothing
, start_server = False
- , noDaemon = False
- , status = False
- , stop_server = False
+ , noDaemon = False
+ , status = False
+ , stop_server = False
}
dummyCheck :: HDevTools
dummyCheck = Check
{ socket = Nothing
, ghcOpts = []
+ , cabalOpts = []
, path = Nothing
, file = ""
+ , json = False
}
dummyModuleFile :: HDevTools
dummyModuleFile = ModuleFile
{ socket = Nothing
, ghcOpts = []
+ , cabalOpts = []
, module_ = ""
}
@@ -112,6 +121,7 @@
dummyInfo = Info
{ socket = Nothing
, ghcOpts = []
+ , cabalOpts = []
, path = Nothing
, file = ""
, identifier = ""
@@ -121,6 +131,7 @@
dummyType = Type
{ socket = Nothing
, ghcOpts = []
+ , cabalOpts = []
, path = Nothing
, file = ""
, line = 0
@@ -131,6 +142,7 @@
dummyFindSymbol = FindSymbol
{ socket = Nothing
, ghcOpts = []
+ , cabalOpts = []
, symbol = ""
, files = []
}
@@ -148,14 +160,25 @@
check = record dummyCheck
[ socket := def += typFile += help "socket file to use"
, ghcOpts := def += typ "OPTION" += help "ghc options"
+#ifdef ENABLE_CABAL
+ , cabalOpts := def += typ "OPTION" += help "cabal options"
+#else
+ , cabalOpts := def += ignore
+#endif
, path := def += typFile += help "path to target file"
, file := def += typFile += argPos 0 += opt ""
+ , json := def += help "render output as JSON"
] += help "Check a haskell source file for errors and warnings"
moduleFile :: Annotate Ann
moduleFile = record dummyModuleFile
[ socket := def += typFile += help "socket file to use"
, ghcOpts := def += typ "OPTION" += help "ghc options"
+#ifdef ENABLE_CABAL
+ , cabalOpts := def += typ "OPTION" += help "cabal options"
+#else
+ , cabalOpts := def += ignore
+#endif
, module_ := def += typ "MODULE" += argPos 0
] += help "Get the haskell source file corresponding to a module name"
@@ -163,6 +186,11 @@
info = record dummyInfo
[ socket := def += typFile += help "socket file to use"
, ghcOpts := def += typ "OPTION" += help "ghc options"
+#ifdef ENABLE_CABAL
+ , cabalOpts := def += typ "OPTION" += help "cabal options"
+#else
+ , cabalOpts := def += ignore
+#endif
, path := def += typFile += help "path to target file"
, file := def += typFile += argPos 0 += opt ""
, identifier := def += typ "IDENTIFIER" += argPos 1
@@ -172,6 +200,11 @@
type_ = record dummyType
[ socket := def += typFile += help "socket file to use"
, ghcOpts := def += typ "OPTION" += help "ghc options"
+#ifdef ENABLE_CABAL
+ , cabalOpts := def += typ "OPTION" += help "cabal options"
+#else
+ , cabalOpts := def += ignore
+#endif
, path := def += typFile += help "path to target file"
, file := def += typFile += argPos 0 += opt ""
, line := def += typ "LINE" += argPos 1
@@ -182,6 +215,11 @@
findSymbol = record dummyFindSymbol
[ socket := def += typFile += help "socket file to use"
, ghcOpts := def += typ "OPTION" += help "ghc options"
+#ifdef ENABLE_CABAL
+ , cabalOpts := def += typ "OPTION" += help "cabal options"
+#else
+ , cabalOpts := def += ignore
+#endif
, symbol := def += typ "SYMBOL" += argPos 0
, files := def += typFile += args
] += help "List the modules where the given symbol could be found"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdevtools-0.1.2.1/src/CommandLoop.hs new/hdevtools-0.1.2.2/src/CommandLoop.hs
--- old/hdevtools-0.1.2.1/src/CommandLoop.hs 2015-08-14 00:18:29.000000000 +0200
+++ new/hdevtools-0.1.2.2/src/CommandLoop.hs 2015-12-18 15:38:26.000000000 +0100
@@ -46,14 +46,16 @@
data CabalConfig = CabalConfig
{ cabalConfigPath :: FilePath
+ , cabalConfigOpts :: [String]
, cabalConfigLastUpdatedAt :: EpochTime
}
deriving Eq
-mkCabalConfig :: FilePath -> IO CabalConfig
-mkCabalConfig path = do
+mkCabalConfig :: FilePath -> [String] -> IO CabalConfig
+mkCabalConfig path opts = do
fileStatus <- getFileStatus path
return $ CabalConfig { cabalConfigPath = path
+ , cabalConfigOpts = opts
, cabalConfigLastUpdatedAt = modificationTime fileStatus
}
@@ -66,7 +68,7 @@
newConfig :: CommandExtra -> IO Config
newConfig cmdExtra = do
- mbCabalConfig <- traverse mkCabalConfig $ ceCabalConfig cmdExtra
+ mbCabalConfig <- traverse (\path -> mkCabalConfig path (ceCabalOptions cmdExtra)) $ ceCabalConfig cmdExtra
mbStackConfig <- getStackConfig cmdExtra
return $ Config { configGhcOpts = "-O0" : ceGhcOptions cmdExtra
@@ -140,7 +142,7 @@
return $ Right []
Just cabalConfig -> do
liftIO $ setCurrentDirectory . takeDirectory $ cabalConfigPath cabalConfig
- liftIO $ getPackageGhcOpts (cabalConfigPath cabalConfig) (configStack config)
+ liftIO $ getPackageGhcOpts (cabalConfigPath cabalConfig) (configStack config) (cabalConfigOpts cabalConfig)
case eCabalGhcOpts of
Left e -> return $ Left e
Right cabalGhcOpts -> do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdevtools-0.1.2.1/src/Main.hs new/hdevtools-0.1.2.2/src/Main.hs
--- old/hdevtools-0.1.2.1/src/Main.hs 2015-08-14 00:18:29.000000000 +0200
+++ new/hdevtools-0.1.2.2/src/Main.hs 2015-12-22 02:42:26.000000000 +0100
@@ -60,6 +60,7 @@
{ ceGhcOptions = ghcOpts args
, ceCabalConfig = mCabalFile
, cePath = argPath
+ , ceCabalOptions = cabalOpts args
}
let defaultSocketPath = maybe "" takeDirectory mCabalFile </> defaultSocketFile
let sock = fromMaybe defaultSocketPath $ socket args
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdevtools-0.1.2.1/src/Stack.hs new/hdevtools-0.1.2.2/src/Stack.hs
--- old/hdevtools-0.1.2.1/src/Stack.hs 2015-08-14 00:18:29.000000000 +0200
+++ new/hdevtools-0.1.2.2/src/Stack.hs 2015-12-18 15:38:26.000000000 +0100
@@ -8,9 +8,12 @@
import Data.Maybe (listToMaybe)
import Data.Char (isSpace)
+
#if __GLASGOW_HASKELL__ < 709
import Control.Applicative((<$>), (<*>))
+import System.IO
#endif
+
import System.Process
import System.FilePath
import System.Directory
@@ -18,6 +21,7 @@
import Control.Exception
import Types
+
-- | This module adds support for `stack`, as follows:
-- 1. Figure out if the target-file is in a stack project,
-- 2. If `stack` in available in PATH, run `stack exec` to extract
@@ -104,9 +108,35 @@
where
f = reverse . dropWhile isSpace
+#if __GLASGOW_HASKELL__ < 709
+execInPath :: String -> FilePath -> IO (Maybe String)
+execInPath cmd p = do
+ eIOEstr <- try $ createProcess prc :: IO (Either IOError ProcH)
+ case eIOEstr of
+ Right (_, Just h, _, _) -> Just <$> getClose h
+ Right (_, Nothing, _, _) -> return Nothing
+ -- This error is most likely "/bin/sh: stack: command not found"
+ -- which is caused by the package containing a stack.yaml file but
+ -- no stack command is in the PATH.
+ Left _ -> return Nothing
+ where
+ prc = (shell cmd) { cwd = Just $ takeDirectory p }
+
+getClose :: Handle -> IO String
+getClose h = do
+ str <- hGetContents h
+ hClose h
+ return str
+
+type ProcH = (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle)
+
+-- Not deleting this because this is likely more robust than the above! (but
+-- only works on process-1.2.3.0 onwards
+
+#else
execInPath :: String -> FilePath -> IO (Maybe String)
execInPath cmd p = do
- eIOEstr <- (try $ readCreateProcess prc "" :: IO (Either IOError String))
+ eIOEstr <- try $ readCreateProcess prc "" :: IO (Either IOError String)
return $ case eIOEstr of
Right s -> Just s
-- This error is most likely "/bin/sh: stack: command not found"
@@ -115,3 +145,4 @@
Left _ -> Nothing
where
prc = (shell cmd) { cwd = Just $ takeDirectory p }
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hdevtools-0.1.2.1/src/Types.hs new/hdevtools-0.1.2.2/src/Types.hs
--- old/hdevtools-0.1.2.1/src/Types.hs 2015-08-14 00:18:29.000000000 +0200
+++ new/hdevtools-0.1.2.2/src/Types.hs 2015-12-18 15:38:26.000000000 +0100
@@ -12,12 +12,14 @@
{ ceGhcOptions :: [String]
, ceCabalConfig :: Maybe FilePath
, cePath :: Maybe FilePath
+ , ceCabalOptions :: [String]
} deriving (Read, Show)
emptyCommandExtra :: CommandExtra
emptyCommandExtra = CommandExtra { ceGhcOptions = []
, ceCabalConfig = Nothing
, cePath = Nothing
+ , ceCabalOptions = []
}
data ServerDirective
1
0
Hello community,
here is the log from the commit of package ghc-HUnit for openSUSE:Factory checked in at 2016-01-21 23:43:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-HUnit (Old)
and /work/SRC/openSUSE:Factory/.ghc-HUnit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-HUnit"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-HUnit/ghc-HUnit.changes 2016-01-08 15:22:58.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-HUnit.new/ghc-HUnit.changes 2016-01-22 01:08:35.000000000 +0100
@@ -1,0 +2,5 @@
+Fri Jan 15 10:01:12 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 1.3.1.0
+
+-------------------------------------------------------------------
Old:
----
HUnit-1.3.0.0.tar.gz
New:
----
HUnit-1.3.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-HUnit.spec ++++++
--- /var/tmp/diff_new_pack.I27pWT/_old 2016-01-22 01:08:37.000000000 +0100
+++ /var/tmp/diff_new_pack.I27pWT/_new 2016-01-22 01:08:37.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name HUnit
Name: ghc-HUnit
-Version: 1.3.0.0
+Version: 1.3.1.0
Release: 0
Summary: A unit testing framework for Haskell
License: BSD-3-Clause
++++++ HUnit-1.3.0.0.tar.gz -> HUnit-1.3.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.0.0/HUnit.cabal new/HUnit-1.3.1.0/HUnit.cabal
--- old/HUnit-1.3.0.0/HUnit.cabal 2015-08-21 10:48:41.000000000 +0200
+++ new/HUnit-1.3.1.0/HUnit.cabal 2016-01-11 10:04:20.000000000 +0100
@@ -1,5 +1,5 @@
Name: HUnit
-Version: 1.3.0.0
+Version: 1.3.1.0
Cabal-Version: >= 1.8
License: BSD3
License-File: LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.0.0/README.md new/HUnit-1.3.1.0/README.md
--- old/HUnit-1.3.0.0/README.md 2015-08-21 10:48:41.000000000 +0200
+++ new/HUnit-1.3.1.0/README.md 2016-01-11 10:04:20.000000000 +0100
@@ -17,6 +17,10 @@
## Changes
+### 1.3.1.0
+
+- add minimal support for GHC 8.0
+
### 1.3.0.0
- removed support for old compilers
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.0.0/Test/HUnit/Base.hs new/HUnit-1.3.1.0/Test/HUnit/Base.hs
--- old/HUnit-1.3.0.0/Test/HUnit/Base.hs 2015-08-21 10:48:41.000000000 +0200
+++ new/HUnit-1.3.1.0/Test/HUnit/Base.hs 2016-01-11 10:04:20.000000000 +0100
@@ -2,6 +2,7 @@
#if MIN_VERSION_base(4,8,1)
#define HAS_SOURCE_LOCATIONS
{-# LANGUAGE ImplicitParams #-}
+{-# LANGUAGE ConstrainedClassMethods #-}
#endif
-- | Basic definitions for the HUnit library.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/HUnit-1.3.0.0/Test/HUnit/Lang.hs new/HUnit-1.3.1.0/Test/HUnit/Lang.hs
--- old/HUnit-1.3.0.0/Test/HUnit/Lang.hs 2015-08-21 10:48:41.000000000 +0200
+++ new/HUnit-1.3.1.0/Test/HUnit/Lang.hs 2016-01-11 10:04:20.000000000 +0100
@@ -25,7 +25,9 @@
import Data.Typeable
#ifdef HAS_SOURCE_LOCATIONS
+#if !(MIN_VERSION_base(4,9,0))
import GHC.SrcLoc
+#endif
import GHC.Stack
#endif
1
0
Hello community,
here is the log from the commit of package ghc-monad-logger for openSUSE:Factory checked in at 2016-01-21 23:43:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-monad-logger (Old)
and /work/SRC/openSUSE:Factory/.ghc-monad-logger.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-monad-logger"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-monad-logger/ghc-monad-logger.changes 2015-12-23 08:49:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-monad-logger.new/ghc-monad-logger.changes 2016-01-22 01:08:33.000000000 +0100
@@ -1,0 +2,6 @@
+Fri Jan 15 10:06:34 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.3.17
+* log to a chan
+
+-------------------------------------------------------------------
Old:
----
monad-logger-0.3.16.tar.gz
New:
----
monad-logger-0.3.17.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-monad-logger.spec ++++++
--- /var/tmp/diff_new_pack.N4JWEN/_old 2016-01-22 01:08:35.000000000 +0100
+++ /var/tmp/diff_new_pack.N4JWEN/_new 2016-01-22 01:08:35.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name monad-logger
Name: ghc-monad-logger
-Version: 0.3.16
+Version: 0.3.17
Release: 0
Summary: A class of monads which can log messages
License: MIT
++++++ monad-logger-0.3.16.tar.gz -> monad-logger-0.3.17.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monad-logger-0.3.16/ChangeLog.md new/monad-logger-0.3.17/ChangeLog.md
--- old/monad-logger-0.3.16/ChangeLog.md 2015-12-13 09:03:42.000000000 +0100
+++ new/monad-logger-0.3.17/ChangeLog.md 2016-01-12 12:18:18.000000000 +0100
@@ -1,3 +1,7 @@
+## 0.3.17
+
+* log to a chan [#74](https://github.com/kazu-yamamoto/logger/pull/74)
+
## 0.3.16
* Provide default monadLoggerLog implementation [#72](https://github.com/kazu-yamamoto/logger/pull/72)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monad-logger-0.3.16/Control/Monad/Logger.hs new/monad-logger-0.3.17/Control/Monad/Logger.hs
--- old/monad-logger-0.3.16/Control/Monad/Logger.hs 2015-12-13 09:03:42.000000000 +0100
+++ new/monad-logger-0.3.17/Control/Monad/Logger.hs 2016-01-12 12:18:18.000000000 +0100
@@ -36,6 +36,8 @@
, LoggingT (..)
, runStderrLoggingT
, runStdoutLoggingT
+ , runChanLoggingT
+ , unChanLoggingT
, withChannelLogger
, filterLogger
, NoLoggingT (..)
@@ -80,10 +82,11 @@
import Data.Monoid (Monoid)
import Control.Applicative (Applicative (..))
+import Control.Concurrent.Chan (Chan(),writeChan,readChan)
import Control.Concurrent.STM
import Control.Concurrent.STM.TBChan
import Control.Exception.Lifted (onException)
-import Control.Monad (liftM, ap, when, void)
+import Control.Monad (liftM, ap, when, void, forever)
import Control.Monad.Base (MonadBase (liftBase))
import Control.Monad.Loops (untilM)
import Control.Monad.Trans.Control (MonadBaseControl (..), MonadTransControl (..))
@@ -579,6 +582,29 @@
runStdoutLoggingT :: MonadIO m => LoggingT m a -> m a
runStdoutLoggingT = (`runLoggingT` defaultOutput stdout)
+-- | Run a block using a @MonadLogger@ instance which writes tuples to an
+-- unbounded channel.
+--
+-- The tuples can be extracted (ie. in another thread) with `unChanLoggingT`
+-- or a custom extraction funtion, and written to a destination.
+--
+-- @since 0.3.17
+runChanLoggingT :: MonadIO m => Chan (Loc, LogSource, LogLevel, LogStr) -> LoggingT m a -> m a
+runChanLoggingT chan = (`runLoggingT` sink chan)
+ where
+ sink chan loc src lvl msg = writeChan chan (loc,src,lvl,msg)
+
+-- | Read logging tuples from an unbounded channel and log them into a
+-- `MonadLoggerIO` monad, forever.
+--
+-- For use in a dedicated thread with a channel fed by `runChanLoggingT`.
+--
+-- @since 0.3.17
+unChanLoggingT :: (MonadLogger m, MonadIO m) => Chan (Loc, LogSource, LogLevel, LogStr) -> m ()
+unChanLoggingT chan = forever $ do
+ (loc,src,lvl,msg) <- liftIO $ readChan chan
+ monadLoggerLog loc src lvl msg
+
-- | Within the 'LoggingT' monad, capture all log messages to a bounded
-- channel of the indicated size, and only actually log them if there is an
-- exception.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/monad-logger-0.3.16/monad-logger.cabal new/monad-logger-0.3.17/monad-logger.cabal
--- old/monad-logger-0.3.16/monad-logger.cabal 2015-12-13 09:03:42.000000000 +0100
+++ new/monad-logger-0.3.17/monad-logger.cabal 2016-01-12 12:18:18.000000000 +0100
@@ -1,5 +1,5 @@
name: monad-logger
-version: 0.3.16
+version: 0.3.17
synopsis: A class of monads which can log messages.
description: Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/monad-logger>.
homepage: https://github.com/kazu-yamamoto/logger
1
0
Hello community,
here is the log from the commit of package ghc-MonadRandom for openSUSE:Factory checked in at 2016-01-21 23:43:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-MonadRandom (Old)
and /work/SRC/openSUSE:Factory/.ghc-MonadRandom.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-MonadRandom"
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-MonadRandom/ghc-MonadRandom.changes 2015-11-23 07:30:29.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.ghc-MonadRandom.new/ghc-MonadRandom.changes 2016-01-22 01:08:31.000000000 +0100
@@ -1,0 +2,7 @@
+Mon Jan 18 10:42:18 UTC 2016 - mimi.vx(a)gmail.com
+
+- update to 0.4.2.1
+* Allow transformers-compat-0.5.
+* Add MonadPlus and Alternative instances for RandT.
+
+-------------------------------------------------------------------
Old:
----
MonadRandom-0.4.1.tar.gz
New:
----
MonadRandom-0.4.2.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-MonadRandom.spec ++++++
--- /var/tmp/diff_new_pack.Jjruc2/_old 2016-01-22 01:08:33.000000000 +0100
+++ /var/tmp/diff_new_pack.Jjruc2/_new 2016-01-22 01:08:33.000000000 +0100
@@ -19,7 +19,7 @@
%global pkg_name MonadRandom
Name: ghc-MonadRandom
-Version: 0.4.1
+Version: 0.4.2.1
Release: 0
Summary: Random-number generation monad
License: MIT
++++++ MonadRandom-0.4.1.tar.gz -> MonadRandom-0.4.2.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MonadRandom-0.4.1/CHANGES.markdown new/MonadRandom-0.4.2.1/CHANGES.markdown
--- old/MonadRandom-0.4.1/CHANGES.markdown 2015-11-21 05:13:15.000000000 +0100
+++ new/MonadRandom-0.4.2.1/CHANGES.markdown 2016-01-17 00:40:44.000000000 +0100
@@ -1,3 +1,13 @@
+0.4.2.1 (16 January 2016)
+-------------------------
+
+ - Allow `transformers-compat-0.5`.
+
+0.4.2 (16 January 2016)
+-----------------------
+
+ - Add `MonadPlus` and `Alternative` instances for `RandT`.
+
0.4.1 (20 November 2015)
------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MonadRandom-0.4.1/Control/Monad/Random.hs new/MonadRandom-0.4.2.1/Control/Monad/Random.hs
--- old/MonadRandom-0.4.1/Control/Monad/Random.hs 2015-11-21 05:13:15.000000000 +0100
+++ new/MonadRandom-0.4.2.1/Control/Monad/Random.hs 2016-01-17 00:40:44.000000000 +0100
@@ -72,12 +72,16 @@
-- | A monad transformer which adds a random number generator to an
-- existing monad.
newtype RandT g m a = RandT (StateT g m a)
- deriving (Functor, Monad, MonadTrans, MonadIO, MonadFix, MonadReader r, MonadWriter w)
+ deriving (Functor, Monad, MonadPlus, MonadTrans, MonadIO, MonadFix, MonadReader r, MonadWriter w)
-instance (Functor m,Monad m) => Applicative (RandT g m) where
+instance (Functor m, Monad m) => Applicative (RandT g m) where
pure = return
(<*>) = ap
+instance (Functor m, MonadPlus m) => Alternative (RandT g m) where
+ empty = mzero
+ (<|>) = mplus
+
-- | Lift arbitrary action to RandT
liftRandT :: (g -> m (a, g)) -- ^ action returning value and new generator state
-> RandT g m a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MonadRandom-0.4.1/MonadRandom.cabal new/MonadRandom-0.4.2.1/MonadRandom.cabal
--- old/MonadRandom-0.4.1/MonadRandom.cabal 2015-11-21 05:13:15.000000000 +0100
+++ new/MonadRandom-0.4.2.1/MonadRandom.cabal 2016-01-17 00:40:44.000000000 +0100
@@ -1,5 +1,5 @@
name: MonadRandom
-version: 0.4.1
+version: 0.4.2.1
synopsis: Random-number generation monad.
description: Support for computations which consume random values.
license: OtherLicense
@@ -19,7 +19,7 @@
exposed-modules: Control.Monad.Random, Control.Monad.Random.Class
build-depends: base >= 2 && < 5,
transformers >= 0.3 && < 0.5,
- transformers-compat == 0.4.*,
+ transformers-compat >= 0.4 && < 0.6,
mtl >= 2.1 && < 2.3,
random
ghc-options: -Wall
1
0