packages feed

atomic-primops 0.8.0.4 → 0.8.1

raw patch · 4 files changed

+67/−100 lines, 4 filesdep ~basesetup-changednew-uploaderPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: base

API changes (from Hackage documentation)

- Data.Atomics: readArrayElem :: MutableArray RealWorld a -> Int -> IO (Ticket a)
+ Data.Atomics: readArrayElem :: forall a. MutableArray RealWorld a -> Int -> IO (Ticket a)
- Data.Atomics.Internal: casIntArray# :: MutableByteArray# d -> Int# -> Int# -> Int# -> State# d -> (# State# d, Int# #)
+ Data.Atomics.Internal: casIntArray# :: MutableByteArray# d -> Int# -> Int# -> Int# -> State# d -> (# VoidRep, IntRep, State# d, Int# #)
- Data.Atomics.Internal: fetchAddIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# State# d, Int# #)
+ Data.Atomics.Internal: fetchAddIntArray# :: MutableByteArray# d -> Int# -> Int# -> State# d -> (# VoidRep, IntRep, State# d, Int# #)

Files

+ CHANGELOG.md view
@@ -0,0 +1,59 @@+## 0.8.1+* Simplify `Setup.hs` to support `Cabal-2.0`/GHC 8.2+* Properly link `store_load_barrier` and friends against the GHC RTS on Windows+  when using GHC 8.2 or later++## 0.8.0.4+* Internal changes to support forthcoming GHC 8.0++## 0.8+* Implements additional fetch primops available in GHC 7.10++## 0.7+* This release adds support for GHC 7.10 and its expanded library of (now inline) primops.++## 0.6.1+* This is a good version to use for GHC 7.8.3.  It includes portability and bug fixes+  and adds atomicModifyIORefCAS.++## 0.6.0.5+* fix for GHC 7.8++## 0.6.0.1+* minor ghc 7.8 fix++## 0.6+* add atomicModifyIORefCAS, and bump due to prev bugfixes++## 0.5.0.2+* IMPORTANT BUGFIXES - don't use earlier versions.  They have been marked deprecated.++## 0.5+* Nix Data.Atomics.Counter.Foreign and the bits-atomic dependency.++## 0.4.1+* Add advance support for GHC 7.8++## 0.4+* Further internal changes, duplicate 'cas' routine well as barriers.+* Add `fetchAddByteArrayInt`+* Add an `Unboxed` counter variant that uses movable "ByteArray"s on the GHC heap.++## 0.3+* Major internal change.  Duplicate the barrier code from the GHC RTS and thus+  enable support for executables that are NOT built with '-threaded'.++## 0.2.2.1+* Minor, add warning.++## 0.2.2+* Add more counters++## 0.2+* Critical bugfix and add Counter.++## 0.1.0.2+* disable profiling++## 0.1.0.0+* initial release
Data/Atomics.hs view
@@ -448,7 +448,7 @@  -- GHC 7.8 consistently exposes these symbols while linking: -#if MIN_VERSION_base(4,7,0) && !defined(mingw32_HOST_OS)+#if MIN_VERSION_base(4,7,0) && !(defined(mingw32_HOST_OS) && __GLASGOW_HASKELL__ < 802) #warning "Assuming that store_load_barrier and friends are defined in the GHC RTS."  -- | Memory barrier implemented by the GHC rts (see SMP.h).
Setup.hs view
@@ -1,29 +1,2 @@--import Control.Monad (when)-import Language.Haskell.TH-import Distribution.Simple                (defaultMainWithHooks, simpleUserHooks, UserHooks(postConf), Args)-import Distribution.Simple.Utils          (cabalVersion)-import Distribution.Simple.LocalBuildInfo-import Distribution.Simple.Setup          (ConfigFlags)-import Distribution.Version               (Version(..))-import Distribution.PackageDescription    (PackageDescription)-import Debug.Trace---- I couldn't figure out a way to do this check from the cabal file, so we drop down--- here to do it instead:-checkGoodVersion :: IO ()-checkGoodVersion =-  if   cabalVersion >= Version [1,17,0] []-  then putStrLn (" [Setup.hs] This version of Cabal is ok for profiling: "++show cabalVersion)-  else error (" [Setup.hs] This package should not be used in profiling mode with cabal version "++-                        show (versionBranch cabalVersion)++" < 1.17.0\n"++-                        " It will break, see cabal issue #1284")--main :: IO ()-main = do-  let myPostConf :: Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()-      myPostConf _args confFlags _descr lbi =-        when (withProfLib lbi)-          checkGoodVersion-      hooks = simpleUserHooks { postConf = myPostConf }-  defaultMainWithHooks hooks+import Distribution.Simple+main = defaultMain
atomic-primops.cabal view
@@ -1,42 +1,16 @@ Name:                atomic-primops-Version:             0.8.0.4+Version:             0.8.1 License:             BSD3 License-file:        LICENSE Author:              Ryan Newton Maintainer:          rrnewton@gmail.com Category:            Data -- Portability:         non-portabile (x86_64)-Build-type:          Custom--- TODO: This requirement needs to be bumped to 1.17 when the latest cabal is--- released.  This package triggers issue #1284:--- Cabal-version:       >=1.18-Cabal-version:       >=1.10--- Egad!  Requiring cabal version 1.18 triggers a seemingly spurious failure on Mac OS:--- http://tester-lin.soic.indiana.edu:8080/job/Haskell-LockFree_master/JENKINS_GHC=7.6.3,label=macos/346/console--- So for now I'm backing off about the cabal requirement.  Setup.hs will catch it later IF an early version--- of cabal is used WITH profiling mode.-+Build-type:          Simple+Cabal-version:       >=1.18 HomePage: https://github.com/rrnewton/haskell-lockfree/wiki Bug-Reports: https://github.com/rrnewton/haskell-lockfree/issues --- Version History:--- 0.1.0.0 -- initial release--- 0.1.0.2 -- disable profiling--- 0.2 -- Critical bugfix and add Counter.--- 0.2.2 -- Add more counters--- 0.2.2.1 -- Minor, add warning.--- 0.3 -- Major internal change.  Duplicate GHC RTS barriers and support non -threaded.--- 0.4 -- Duplicate 'cas' as well as barriers.  Add fetchAdd on ByteArray, Counter.Unboxed.--- 0.4.1 -- Add advance support for GHC 7.8--- 0.5 -- Nix Data.Atomics.Counter.Foreign and the bits-atomic dependency.--- 0.5.0.2 -- IMPORTANT Bugfix release.--- 0.6 -- add atomicModifyIORefCAS, and bump due to prev bugfixes--- 0.6.0.1 -- minor ghc 7.8 fix--- 0.6.0.5 -- fix for GHC 7.8--- 0.6.1   -- several bug fixes, mainly re: platform portability--- 0.8     -- support for GHC 7.10 and several new primops--- 0.8.0.4 -- support for GHC 8.0 series-    Synopsis: A safe approach to CAS and other atomic ops in Haskell.  Description:@@ -53,47 +27,8 @@   Note that as of GHC 7.8, the relevant primops have been included in GHC itself.   This library is engineered to work pre- and post-GHC-7.8, while exposing the   same interface.- .- Changes in 0.3:- .- * Major internal change.  Duplicate the barrier code from the GHC RTS and thus-   enable support for executables that are NOT built with '-threaded'.- .- Changes in 0.4:- .- * Further internal changes, duplicate 'cas' routine well as barriers.- .- * Add `fetchAddByteArrayInt`- .- * Add an `Unboxed` counter variant that uses movable "ByteArray"s on the GHC heap.- .- Changes in 0.5:- .- * Remove dependency on bits-atomic unless a flag is turned on.- .- Changes in 0.5.0.2:- .- * IMPORTANT BUGFIXES - don't use earlier versions.  They have been marked deprecated.- .- Changes in 0.6.1- .- * This is a good version to use for GHC 7.8.3.  It includes portability and bug fixes-   and adds atomicModifyIORefCAS.- .- Changes in 0.7:- .- * This release adds support for GHC 7.10 and its expanded library of (now inline) primops.- .- Changes in 0.8:- .- * Implements additional fetch primops available in GHC 7.10- .- Changes in 0.8.0.4:- .- * Internal changes to support forthcoming GHC 8.0 - -Extra-Source-Files:  DEVLOG.md,+Extra-Source-Files:  CHANGELOG.md, DEVLOG.md,                      testing/Test.hs, testing/test-atomic-primops.cabal, testing/ghci-test.hs                      testing/Makefile, testing/CommonTesting.hs, testing/Counter.hs, testing/CounterCommon.hs, testing/hello.hs                      testing/Issue28.hs@@ -114,7 +49,7 @@    -- casMutVar# had a bug in GHC 7.2, thus we require GHC 7.4 or greater   -- (base 4.5 or greater). We also need the "Any" kind.-  build-depends:     base >= 4.6.0.0 && < 4.10, ghc-prim, primitive+  build-depends:     base >= 4.6.0.0 && < 4.11, ghc-prim, primitive    -- TODO: Try to push support back to 7.0, but make it default to an implementation   -- other than Unboxed.