[commit: packages/stm] master: Refactor & update `stm.cabal` to `cabal-version>=1.10` (aa4774b)
Simon Marlow
marlowsd at gmail.com
Fri Oct 18 11:06:13 UTC 2013
I'm not keen on losing the changelog from the description. The idea of
having the changelog in the description is:
- it is prominent on the Hackage page for the package
- it's next to the version in the .cabal file, so you're more likely
to update it when updating the version.
I don't mind splitting it into two - maybe the first few entries in the
description and the rest in a separate file, with a link from the
description.
Cheers,
Simon
On 14/10/2013 22:38, git at git.haskell.org wrote:
> Repository : ssh://git@git.haskell.org/stm
>
> On branch : master
> Link : http://git.haskell.org/packages/stm.git/commitdiff/aa4774b7d5f65cbf007803ff54995921a36fbaeb
>
>> ---------------------------------------------------------------
>
> commit aa4774b7d5f65cbf007803ff54995921a36fbaeb
> Author: Herbert Valerio Riedel <hvr at gnu.org>
> Date: Mon Oct 14 22:02:35 2013 +0200
>
> Refactor & update `stm.cabal` to `cabal-version>=1.10`
>
> As the current code fails to build with GHC 6.10, I've updated the Cabal
> meta-data to declare support for GHC>=6.12 and dropped support for
> base3. This also moves the changelog from the Cabal description field
> into a separate `changelog` file and adds a few entries.
>
> The code compiles warning-free for all tested GHC versions.
>
> Signed-off-by: Herbert Valerio Riedel <hvr at gnu.org>
>
>
>> ---------------------------------------------------------------
>
> aa4774b7d5f65cbf007803ff54995921a36fbaeb
> Control/Concurrent/STM/TVar.hs | 5 --
> Control/Sequential/STM.hs | 18 -------
> changelog | 38 +++++++++++++++
> stm.cabal | 103 ++++++++++++++++++----------------------
> 4 files changed, 83 insertions(+), 81 deletions(-)
>
> diff --git a/Control/Concurrent/STM/TVar.hs b/Control/Concurrent/STM/TVar.hs
> index d15896b..6435e17 100644
> --- a/Control/Concurrent/STM/TVar.hs
> +++ b/Control/Concurrent/STM/TVar.hs
> @@ -43,11 +43,6 @@ import GHC.Weak
> import Control.Sequential.STM
> #endif
>
> -#if ! (MIN_VERSION_base(4,2,0))
> -readTVarIO = atomically . readTVar
> -#endif
> -
> -
> -- Like 'modifyIORef' but for 'TVar'.
> -- | Mutate the contents of a 'TVar'. /N.B./, this version is
> -- non-strict.
> diff --git a/Control/Sequential/STM.hs b/Control/Sequential/STM.hs
> index 468e7bd..a644e67 100644
> --- a/Control/Sequential/STM.hs
> +++ b/Control/Sequential/STM.hs
> @@ -40,35 +40,17 @@ instance Monad STM where
> x <- m r
> unSTM (k x) r
>
> -#ifdef BASE4
> atomically :: STM a -> IO a
> atomically (STM m) = do
> r <- newIORef (return ())
> m r `onException` do
> rollback <- readIORef r
> rollback
> -#else
> -atomically :: STM a -> IO a
> -atomically (STM m) = do
> - r <- newIORef (return ())
> - m r `catch` \ ex -> do
> - rollback <- readIORef r
> - rollback
> - throw ex
> -#endif
>
> -#ifdef BASE4
> throwSTM :: Exception e => e -> STM a
> -#else
> -throwSTM :: Exception -> STM a
> -#endif
> throwSTM = STM . const . throwIO
>
> -#ifdef BASE4
> catchSTM :: Exception e => STM a -> (e -> STM a) -> STM a
> -#else
> -catchSTM :: STM a -> (Exception -> STM a) -> STM a
> -#endif
> catchSTM (STM m) h = STM $ \ r -> do
> old_rollback <- readIORef r
> writeIORef r (return ())
> diff --git a/changelog b/changelog
> new file mode 100644
> index 0000000..1296a41
> --- /dev/null
> +++ b/changelog
> @@ -0,0 +1,38 @@
> +-*-changelog-*-
> +
> +2.4.2.1 Oct 2013
> +
> + * Updated behaviour of `newBroadcastTChanIO` to match
> + `newBroadcastTChan` in causing an error on a read from
> + the broadcast channel
> +
> + * Add `mkWeakTVar`
> +
> + * Add `isFullTBQueue`
> +
> + * Fix `TChan` created via `newBroadcastTChanIO` to throw same
> + exception on a `readTChan` as when created via `newBroadcastTChan`
> +
> +2.4.2 Nov 2012
> +
> + * Add "Control.Concurrent.STM.TSem" (transactional semaphore)
> +
> + * Add Applicative/Alternative instances of STM for GHC <7.0
> +
> + * Throw proper exception when `readTChan` called on a broadcast
> + `TChan`
> +
> +2.4 Jul 2012
> +
> + * Add "Control.Concurrent.STM.TQueue" (a faster `TChan`)
> +
> + * Add "Control.Concurrent.STM.TBQueue" (a bounded channel based on
> + `TQueue`)
> +
> + * Add `Eq` instance for `TChan`
> +
> + * Add `newBroadcastTChan` and `newBroadcastTChanIO`
> +
> + * Some performance improvements for `TChan`
> +
> + * Add `cloneTChan`
> diff --git a/stm.cabal b/stm.cabal
> index 568b8a3..998bb24 100644
> --- a/stm.cabal
> +++ b/stm.cabal
> @@ -1,68 +1,55 @@
> -name: stm
> +name: stm
> version: 2.4.2.1
> -license: BSD3
> -license-file: LICENSE
> -maintainer: libraries at haskell.org
> -synopsis: Software Transactional Memory
> +license: BSD3
> +license-file: LICENSE
> +maintainer: libraries at haskell.org
> +bug-reports: http://ghc.haskell.org/trac/ghc/newticket?component=libraries%20%28other%29&keywords=stm
> +synopsis: Software Transactional Memory
> category: Concurrency
> -description:
> - A modular composable concurrency abstraction.
> - .
> - Changes in version 2.4.2.1
> - .
> - * Updated behaviour of @newBroadcastTChanIO@ to match
> - @newBroadcastTChan@ in causing an error on a read from
> - the broadcast channel.
> - .
> - Changes in version 2.4.2
> - .
> - * Added "Control.Concurrent.STM.TSem" (transactional semaphore)
> - .
> - Changes in version 2.4.1
> - .
> - * Added Applicative/Alternative instances of STM for GHC <7.0
> - .
> - Changes in version 2.4
> - .
> - * Added "Control.Concurrent.STM.TQueue" (a faster @TChan@)
> - .
> - * Added "Control.Concurrent.STM.TBQueue" (a bounded channel based on @TQueue@)
> - .
> - * @TChan@ has an @Eq@ instances
> - .
> - * Added @newBroadcastTChan@ and @newBroadcastTChanIO@
> - .
> - * Some performance improvements for @TChan@
> - .
> - * Added @cloneTChan@
> -
> +description: A modular composable concurrency abstraction.
> build-type: Simple
> -cabal-version: >=1.6
> +cabal-version: >=1.10
> +tested-with: GHC==7.6.3, GHC==7.6.2, GHC==7.6.1, GHC==7.4.2, GHC==7.4.1, GHC==7.2.2, GHC==7.2.1, GHC==7.0.4, GHC==7.0.3, GHC==7.0.2, GHC==7.0.1, GHC==6.12.3
> +
> +extra-source-files:
> + changelog
>
> source-repository head
> type: git
> location: http://git.haskell.org/packages/stm.git
>
> -flag base4
> +source-repository this
> + type: git
> + location: http://git.haskell.org/packages/stm.git
> + tag: stm-2.4.2.1-release
>
> library
> - exposed-modules:
> - Control.Concurrent.STM
> - Control.Concurrent.STM.TArray
> - Control.Concurrent.STM.TVar
> - Control.Concurrent.STM.TChan
> - Control.Concurrent.STM.TMVar
> - Control.Concurrent.STM.TQueue
> - Control.Concurrent.STM.TBQueue
> - Control.Concurrent.STM.TSem
> - Control.Monad.STM
> - other-modules:
> - Control.Sequential.STM
> - build-depends: base < 5, array
> - if flag(base4)
> - build-depends: base >=4
> - cpp-options: -DBASE4
> - else
> - build-depends: base <4
> - if impl(ghc >= 6.10)
> - build-depends: base >=4
> + default-language: Haskell98
> + other-extensions:
> + CPP
> + DeriveDataTypeable
> + FlexibleInstances
> + MagicHash
> + MultiParamTypeClasses
> + UnboxedTuples
> + if impl(ghc >= 7.2)
> + other-extensions: Trustworthy
> +
> + build-depends:
> + base >= 4.2 && < 4.8,
> + array >= 0.3 && < 0.6
> +
> + exposed-modules:
> + Control.Concurrent.STM
> + Control.Concurrent.STM.TArray
> + Control.Concurrent.STM.TVar
> + Control.Concurrent.STM.TChan
> + Control.Concurrent.STM.TMVar
> + Control.Concurrent.STM.TQueue
> + Control.Concurrent.STM.TBQueue
> + Control.Concurrent.STM.TSem
> + Control.Monad.STM
> + other-modules:
> + Control.Sequential.STM
> +
> + ghc-options: -Wall
> \ No newline at end of file
>
> _______________________________________________
> ghc-commits mailing list
> ghc-commits at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-commits
>
More information about the ghc-devs
mailing list