[commit: packages/stm] master: Refactor & update `stm.cabal` to `cabal-version>=1.10` (aa4774b)

git at git.haskell.org git at git.haskell.org
Mon Oct 14 20:38:02 UTC 2013


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



More information about the ghc-commits mailing list