packages feed

rcu 0.2.4 → 0.2.5

raw patch · 13 files changed

+36/−108 lines, 13 filesdep −doctestdep ~basedep ~parallelsetup-changed

Dependencies removed: doctest

Dependency ranges changed: base, parallel

Files

+ .hlint.yaml view
@@ -0,0 +1,8 @@+- arguments: [--cpp-define=HLINT, --cpp-ansi]++- ignore: {name: Reduce duplication}+- ignore: {name: Redundant lambda}+- ignore: {name: Use >=>}+- ignore: {name: Use const}+- ignore: {name: Eta reduce}+- ignore: {name: Avoid lambda}
CHANGELOG.markdown view
@@ -1,3 +1,10 @@+## 0.2.5 [2021.02.17]+---------------------+* The build-type has been changed from `Custom` to `Simple`.+  To achieve this, the `doctests` test suite has been removed in favor of using+  [`cabal-docspec`](https://github.com/phadej/cabal-extras/tree/master/cabal-docspec)+  to run the doctests.+ ## 0.2.4 [2019.05.02] --------------------- * Support building with `base-4.13` (GHC 8.8).
− HLint.hs
@@ -1,8 +0,0 @@-import "hint" HLint.HLint--ignore "Reduce duplication"-ignore "Redundant lambda"-ignore "Use >=>"-ignore "Use const"-ignore "Eta reduce"-ignore "Avoid lambda"
README.markdown view
@@ -1,6 +1,6 @@ ## rcu -[![Hackage](https://img.shields.io/hackage/v/rcu.svg)](https://hackage.haskell.org/package/rcu) [![Build Status](https://secure.travis-ci.org/ekmett/rcu.png?branch=master)](http://travis-ci.org/ekmett/rcu)+[![Hackage](https://img.shields.io/hackage/v/rcu.svg)](https://hackage.haskell.org/package/rcu) [![Build Status](https://github.com/ekmett/rcu/workflows/Haskell-CI/badge.svg)](https://github.com/ekmett/rcu/actions?query=workflow%3AHaskell-CI)  This package is an exploration of Read-Copy Update in Haskell based on [Relativistic Programming in Haskell](http://web.cecs.pdx.edu/~theod/papers/haskell2015.pdf) by Cooper and Walpole.  It includes a sound QSBR-based implementation and an attempt at an STM-based implementation. 
Setup.lhs view
@@ -1,34 +1,7 @@-\begin{code}-{-# LANGUAGE CPP #-}-{-# OPTIONS_GHC -Wall #-}-module Main (main) where--#ifndef MIN_VERSION_cabal_doctest-#define MIN_VERSION_cabal_doctest(x,y,z) 0-#endif--#if MIN_VERSION_cabal_doctest(1,0,0)--import Distribution.Extra.Doctest ( defaultMainWithDoctests )-main :: IO ()-main = defaultMainWithDoctests "doctests"--#else--#ifdef MIN_VERSION_Cabal--- If the macro is defined, we have new cabal-install,--- but for some reason we don't have cabal-doctest in package-db------ Probably we are running cabal sdist, when otherwise using new-build--- workflow-import Warning ()-#endif--import Distribution.Simple--main :: IO ()-main = defaultMain+#!/usr/bin/runhaskell+> module Main (main) where -#endif+> import Distribution.Simple -\end{code}+> main :: IO ()+> main = defaultMain
− Warning.hs
@@ -1,5 +0,0 @@-module Warning-  {-# WARNING ["You are configuring this package without cabal-doctest installed.",-               "The doctests test-suite will not work as a result.",-               "To fix this, install cabal-doctest before configuring."] #-}-  () where
examples/IncCounterExperiment.hs view
@@ -11,6 +11,7 @@ -- -- Which counter increment is faster? -----------------------------------------------------------------------------+module Main where  import Control.Monad (forM_) import Control.Monad.Primitive (primitive)
examples/MoveString.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-}+module Main where  import Control.Concurrent.RCU.MODE import Control.Concurrent.RCU.Class
examples/TimeSynchronize.hs view
@@ -3,6 +3,8 @@ {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-}+module Main where+ import Control.Concurrent import Control.Concurrent.RCU.MODE.Internal import Control.Concurrent.RCU.Class@@ -11,7 +13,9 @@ import Control.Monad import Data.Bits ((.&.), (.|.), shiftL) import Data.List (intercalate)+#if !(MIN_VERSION_base(4,13,0)) import Data.Monoid ((<>))+#endif import Data.Word (Word64) import Options.Applicative (auto, execParser, fullDesc, help, info, long, metavar, option, progDesc, short) import Prelude hiding (read)@@ -126,7 +130,7 @@   let nReaders = fromIntegral nCaps - nReserved   putStrLn $ "reserved: " ++ show nReserved ++ ", readers: " ++ show nReaders ++ ", updates: " ++ show nUpdates   let nTotal = fromIntegral $ nUpdates * nReaders :: Double-  (ods, wfrd, wd, wfd) <- runOnRCU 0 $ RCU $ \ s -> do+  (ods, _wfrd, wd, wfd) <- runOnRCU 0 $ RCU $ \ s -> do     -- initialize list     hd  <- unRCU testList s     -- initialize flag writer uses to stop readers
rcu.cabal view
@@ -1,6 +1,6 @@ name:          rcu category:      Data-version:       0.2.4+version:       0.2.5 license:       BSD3 cabal-version: 1.22 license-file:  LICENSE@@ -10,32 +10,27 @@ homepage:      http://github.com/ekmett/rcu/ bug-reports:   http://github.com/ekmett/rcu/issues copyright:     Copyright (C) 2015 Edward A. Kmett, Theodore Rhys Cooper-build-type:    Custom+build-type:    Simple tested-with:   GHC == 7.10.3              , GHC == 8.0.2              , GHC == 8.2.2              , GHC == 8.4.4              , GHC == 8.6.5-             , GHC == 8.8.1+             , GHC == 8.8.3+             , GHC == 8.10.1 synopsis:      Read-Copy-Update for Haskell description:   Read-Copy-Update for Haskell.  extra-source-files:+  .hlint.yaml   examples/*.hs   CHANGELOG.markdown   README.markdown-  HLint.hs-  Warning.hs  source-repository head   type: git   location: git://github.com/ekmett/rcu.git --- You can disable the doctests test suite with -f-test-doctests-flag test-doctests-  default: True-  manual: True- -- Include unstable and/or potentially incorrect implementations. flag unstable   default: False@@ -47,12 +42,6 @@   default: False   manual: True -custom-setup-  setup-depends:-    base          >= 4 && < 5,-    Cabal,-    cabal-doctest >= 1 && < 1.1- library   build-depends:     atomic-primops >= 0.8,@@ -76,6 +65,8 @@     pause.h     pause_impl.h   ghc-options: -Wall -fwarn-tabs -feager-blackholing+  if impl(ghc >= 8.6)+    ghc-options: -Wno-star-is-type   hs-source-dirs: src   default-language: Haskell2010 @@ -451,19 +442,3 @@   hs-source-dirs: examples   ghc-options: -threaded -Wall -fwarn-tabs -feager-blackholing -rtsopts "-with-rtsopts=-N -qa -A1g -I0 -s"   default-language: Haskell2010--test-suite doctests-  type:           exitcode-stdio-1.0-  main-is:        doctests.hs-  ghc-options:    -Wall -threaded-  hs-source-dirs: tests-  default-language: Haskell2010--  if !flag(test-doctests)-    buildable: False-  else-    build-depends:-      base >= 4.8,-      doctest >= 0.11.1 && < 0.17,-      parallel,-      rcu
src/Control/Concurrent/RCU/GC/Internal.hs view
@@ -3,7 +3,6 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DeriveFunctor #-}-{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE ScopedTypeVariables #-}
src/Control/Concurrent/RCU/QSBR/Internal.hs view
@@ -301,9 +301,7 @@     storeLoadBarrier      -- Spawn the new thread, whose return value goes in @result@.-    let frk = case rcuStatePinned of-                   Just i -> forkOn i-                   Nothing -> forkIO+    let frk = maybe forkIO forkOn rcuStatePinned     tid <- frk $ do       x <- m $ s { rcuStateMyCounter = threadCounter }       putMVar result x
− tests/doctests.hs
@@ -1,25 +0,0 @@--------------------------------------------------------------------------------- |--- Module      :  Main (doctests)--- Copyright   :  (C) 2012-14 Edward Kmett--- License     :  BSD-style (see the file LICENSE)--- Maintainer  :  Edward Kmett <ekmett@gmail.com>--- Stability   :  provisional--- Portability :  portable------ This module provides doctests for a project based on the actual versions--- of the packages it was built with. It requires a corresponding Setup.lhs--- to be added to the project-------------------------------------------------------------------------------module Main where--import Build_doctests (flags, pkgs, module_sources)-import Data.Foldable (traverse_)-import Test.DocTest--main :: IO ()-main = do-    traverse_ putStrLn args-    doctest args-  where-    args = flags ++ pkgs ++ module_sources