Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ghc-unliftio-core for openSUSE:Factory checked in at 2023-04-04 21:24:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-unliftio-core (Old) and /work/SRC/openSUSE:Factory/.ghc-unliftio-core.new.19717 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-unliftio-core" Tue Apr 4 21:24:22 2023 rev:13 rq:1076103 version:0.2.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-unliftio-core/ghc-unliftio-core.changes 2021-08-25 20:58:22.865147574 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-unliftio-core.new.19717/ghc-unliftio-core.changes 2023-04-04 21:24:40.042639961 +0200 @@ -1,0 +2,29 @@ +Thu Mar 30 17:08:50 UTC 2023 - Peter Simons <[email protected]> + +- Updated spec file to conform with ghc-rpm-macros-2.5.2. + +------------------------------------------------------------------- +Wed Mar 22 09:50:12 UTC 2023 - Peter Simons <[email protected]> + +- Update unliftio-core to version 0.2.1.0 revision 2. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Wed Feb 8 14:48:21 UTC 2023 - Peter Simons <[email protected]> + +- Update unliftio-core to version 0.2.1.0 revision 1. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Mon Feb 6 17:06:17 UTC 2023 - Peter Simons <[email protected]> + +- Update unliftio-core to version 0.2.1.0. + ## 0.2.1.0 + + * Added `Control.Monad.IO.Unlift.liftIOOp` + + ## 0.2.0.2 + + * Widen `base` upperbound to `< 4.17` to support ghc-9.2. + +------------------------------------------------------------------- Old: ---- unliftio-core-0.2.0.1.tar.gz New: ---- unliftio-core-0.2.1.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-unliftio-core.spec ++++++ --- /var/tmp/diff_new_pack.oncpWt/_old 2023-04-04 21:24:41.138646167 +0200 +++ /var/tmp/diff_new_pack.oncpWt/_new 2023-04-04 21:24:41.142646190 +0200 @@ -1,7 +1,7 @@ # # spec file for package ghc-unliftio-core # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,8 +17,9 @@ %global pkg_name unliftio-core +%global pkgver %{pkg_name}-%{version} Name: ghc-%{pkg_name} -Version: 0.2.0.1 +Version: 0.2.1.0 Release: 0 Summary: The MonadUnliftIO typeclass for unlifting monads to IO License: MIT @@ -26,8 +27,11 @@ Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/2.cabal#/%{pkg_name}.cabal BuildRequires: ghc-Cabal-devel +BuildRequires: ghc-base-devel +BuildRequires: ghc-base-prof BuildRequires: ghc-rpm-macros BuildRequires: ghc-transformers-devel +BuildRequires: ghc-transformers-prof ExcludeArch: %{ix86} %description @@ -44,6 +48,22 @@ %description devel This package provides the Haskell %{pkg_name} library development files. +%package -n ghc-%{pkg_name}-doc +Summary: Haskell %{pkg_name} library documentation +Requires: ghc-filesystem +BuildArch: noarch + +%description -n ghc-%{pkg_name}-doc +This package provides the Haskell %{pkg_name} library documentation. + +%package -n ghc-%{pkg_name}-prof +Summary: Haskell %{pkg_name} profiling library +Requires: ghc-%{pkg_name}-devel = %{version}-%{release} +Supplements: (ghc-%{pkg_name}-devel and ghc-prof) + +%description -n ghc-%{pkg_name}-prof +This package provides the Haskell %{pkg_name} profiling library. + %prep %autosetup -n %{pkg_name}-%{version} cp -p %{SOURCE1} %{pkg_name}.cabal @@ -66,4 +86,9 @@ %files devel -f %{name}-devel.files %doc ChangeLog.md README.md +%files -n ghc-%{pkg_name}-doc -f ghc-%{pkg_name}-doc.files +%license LICENSE + +%files -n ghc-%{pkg_name}-prof -f ghc-%{pkg_name}-prof.files + %changelog ++++++ unliftio-core-0.2.0.1.tar.gz -> unliftio-core-0.2.1.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unliftio-core-0.2.0.1/ChangeLog.md new/unliftio-core-0.2.1.0/ChangeLog.md --- old/unliftio-core-0.2.0.1/ChangeLog.md 2020-03-02 14:17:45.000000000 +0100 +++ new/unliftio-core-0.2.1.0/ChangeLog.md 2023-02-06 18:06:01.000000000 +0100 @@ -1,5 +1,13 @@ # ChangeLog for unliftio-core +## 0.2.1.0 + +* Added `Control.Monad.IO.Unlift.liftIOOp` + +## 0.2.0.2 + +* Widen `base` upperbound to `< 4.17` to support ghc-9.2. + ## 0.2.0.1 * Remove faulty default implementation of `withRunInIO` [#56](https://github.com/fpco/unliftio/issues/56) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unliftio-core-0.2.0.1/src/Control/Monad/IO/Unlift.hs new/unliftio-core-0.2.1.0/src/Control/Monad/IO/Unlift.hs --- old/unliftio-core-0.2.0.1/src/Control/Monad/IO/Unlift.hs 2020-03-02 14:02:26.000000000 +0100 +++ new/unliftio-core-0.2.1.0/src/Control/Monad/IO/Unlift.hs 2023-02-06 18:06:01.000000000 +0100 @@ -9,6 +9,7 @@ , withUnliftIO , toIO , wrappedWithRunInIO + , liftIOOp , MonadIO (..) ) where @@ -35,20 +36,30 @@ -- 'MonadUnliftIO' to 'ReaderT' and 'IdentityT' transformers on top of -- 'IO'. -- --- Laws. For any value @u@ returned by 'askUnliftIO', it must meet the +-- Laws. For any function @run@ provided by 'withRunInIO', it must meet the -- monad transformer laws as reformulated for @MonadUnliftIO@: -- --- * @unliftIO u . return = return@ +-- * @run . return = return@ -- --- * @unliftIO u (m >>= f) = unliftIO u m >>= unliftIO u . f@ +-- * @run (m >>= f) = run m >>= run . f@ -- --- Instances of @MonadUnliftIO@ must also satisfy the idempotency law: +-- Instances of @MonadUnliftIO@ must also satisfy the following laws: -- --- * @askUnliftIO >>= \\u -> (liftIO . unliftIO u) m = m@ +-- [Identity law] @withRunInIO (\\run -> run m) = m@ +-- [Inverse law] @withRunInIO (\\_ -> m) = liftIO m@ -- --- This law showcases two properties. First, 'askUnliftIO' doesn't change --- the monadic context, and second, @liftIO . unliftIO u@ is equivalent to --- @id@ IF called in the same monadic context as 'askUnliftIO'. +-- As an example of an invalid instance, a naive implementation of +-- @MonadUnliftIO (StateT s m)@ might be +-- +-- @ +-- withRunInIO inner = +-- StateT $ \\s -> +-- withRunInIO $ \\run -> +-- inner (run . flip evalStateT s) +-- @ +-- +-- This breaks the identity law because the inner @run m@ would throw away +-- any state changes in @m@. -- -- @since 0.1.0.0 class MonadIO m => MonadUnliftIO m where @@ -58,9 +69,11 @@ -- -- @since 0.1.0.0 withRunInIO :: ((forall a. m a -> IO a) -> IO b) -> m b + instance MonadUnliftIO IO where {-# INLINE withRunInIO #-} withRunInIO inner = inner id + instance MonadUnliftIO m => MonadUnliftIO (ReaderT r m) where {-# INLINE withRunInIO #-} withRunInIO inner = @@ -124,13 +137,16 @@ Useful for the common case where you want to simply delegate to the underlying transformer. +Note: You can derive 'MonadUnliftIO' for newtypes without this helper function +in @unliftio-core@ 0.2.0.0 and later. + @since 0.1.2.0 ==== __Example__ > newtype AppT m a = AppT { unAppT :: ReaderT Int (ResourceT m) a } > deriving (Functor, Applicative, Monad, MonadIO) -> -- Unfortunately, deriving MonadUnliftIO does not work. > +> -- Same as `deriving newtype (MonadUnliftIO)` > instance MonadUnliftIO m => MonadUnliftIO (AppT m) where > withRunInIO = wrappedWithRunInIO AppT unAppT -} @@ -145,3 +161,17 @@ -> m b wrappedWithRunInIO wrap unwrap inner = wrap $ withRunInIO $ \run -> inner $ run . unwrap + +{- | A helper function for lifting @IO a -> IO b@ functions into any @MonadUnliftIO@. + +=== __Example__ + +> liftedTry :: (Exception e, MonadUnliftIO m) => m a -> m (Either e a) +> liftedTry m = liftIOOp Control.Exception.try m + +@since 0.2.1.0 +-} +liftIOOp :: MonadUnliftIO m => (IO a -> IO b) -> m a -> m b +liftIOOp f x = do + runInIO <- askRunInIO + liftIO $ f $ runInIO x diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/unliftio-core-0.2.0.1/unliftio-core.cabal new/unliftio-core-0.2.1.0/unliftio-core.cabal --- old/unliftio-core-0.2.0.1/unliftio-core.cabal 2020-03-02 14:17:55.000000000 +0100 +++ new/unliftio-core-0.2.1.0/unliftio-core.cabal 2023-02-06 18:06:03.000000000 +0100 @@ -1,13 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.33.0. +-- This file has been generated from package.yaml by hpack version 0.35.1. -- -- see: https://github.com/sol/hpack --- --- hash: 9cae5ca1af8760786d8e586fd9b1ed7e329f13f4ec8a3d0aee62818b25038c1f name: unliftio-core -version: 0.2.0.1 +version: 0.2.1.0 synopsis: The MonadUnliftIO typeclass for unlifting monads to IO description: Please see the documentation and README at <https://www.stackage.org/package/unliftio-core> category: Control @@ -30,6 +28,6 @@ hs-source-dirs: src build-depends: - base >=4.5 && <4.14 - , transformers >=0.2 && <0.6 + base >=4.9 && <4.17 + , transformers >=0.2 && <0.7 default-language: Haskell2010 ++++++ unliftio-core.cabal ++++++ --- /var/tmp/diff_new_pack.oncpWt/_old 2023-04-04 21:24:41.246646779 +0200 +++ /var/tmp/diff_new_pack.oncpWt/_new 2023-04-04 21:24:41.250646801 +0200 @@ -1,13 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.33.0. +-- This file has been generated from package.yaml by hpack version 0.35.1. -- -- see: https://github.com/sol/hpack --- --- hash: 9cae5ca1af8760786d8e586fd9b1ed7e329f13f4ec8a3d0aee62818b25038c1f name: unliftio-core -version: 0.2.0.1 +version: 0.2.1.0 x-revision: 2 synopsis: The MonadUnliftIO typeclass for unlifting monads to IO description: Please see the documentation and README at <https://www.stackage.org/package/unliftio-core> @@ -31,7 +29,7 @@ hs-source-dirs: src build-depends: - base >=4.5 && < 10 + base >=4.9 && <4.19 , transformers >=0.2 && <0.7 default-language: Haskell2010
