commit:     14efb6f7914eca83c7b8e5fc57a0bf3e6557179b
Author:     Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 25 13:01:41 2022 +0000
Commit:     Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
CommitDate: Thu Aug 25 13:01:41 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=14efb6f7

dev-haskell/chaselev-deque: treeclean

Closes: https://bugs.gentoo.org/860753
Signed-off-by: Jakov Smolić <jsmolic <AT> gentoo.org>

 dev-haskell/chaselev-deque/Manifest                |   1 -
 .../chaselev-deque/chaselev-deque-0.5.0.5.ebuild   |  38 ---
 .../bd458b66e1b28c249628e282ff42e8468646c557.patch | 281 ---------------------
 dev-haskell/chaselev-deque/metadata.xml            |  18 --
 profiles/package.mask                              |   1 -
 5 files changed, 339 deletions(-)

diff --git a/dev-haskell/chaselev-deque/Manifest 
b/dev-haskell/chaselev-deque/Manifest
deleted file mode 100644
index 39e79a3b1d61..000000000000
--- a/dev-haskell/chaselev-deque/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST chaselev-deque-0.5.0.5.tar.gz 12451 BLAKE2B 
79ee460eb84286bbbe0dcd58431d5ab0b7aef1d0d186c2c919b566c6b169ab4069917a61e8bb800af3857c7e3cca09c6f698c6f9a6b5d8efdbdd5902a7042310
 SHA512 
1561208ec92d7765b126684677cab02ee71bd1f7d2cdc6f2acac065972c241d085a538e14f51c87555f464aadbac2795c64f9063075acdf29217fb2d70a47dfd

diff --git a/dev-haskell/chaselev-deque/chaselev-deque-0.5.0.5.ebuild 
b/dev-haskell/chaselev-deque/chaselev-deque-0.5.0.5.ebuild
deleted file mode 100644
index 5777bebfaf85..000000000000
--- a/dev-haskell/chaselev-deque/chaselev-deque-0.5.0.5.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# ebuild generated by hackport 0.6.6.9999
-
-CABAL_FEATURES="lib profile haddock hoogle hscolour test-suite"
-inherit haskell-cabal
-
-DESCRIPTION="Chase & Lev work-stealing lock-free double-ended queues (deques)"
-HOMEPAGE="https://github.com/rrnewton/haskell-lockfree/wiki";
-SRC_URI="https://hackage.haskell.org/package/${P}/${P}.tar.gz";
-
-LICENSE="BSD"
-SLOT="0/${PV}"
-KEYWORDS="~amd64 ~ppc64 ~x86"
-IUSE="debug"
-
-PATCHES=( "${FILESDIR}/bd458b66e1b28c249628e282ff42e8468646c557.patch" )
-
-RDEPEND=">=dev-haskell/abstract-deque-0.3:=[profile?] 
<dev-haskell/abstract-deque-0.4:=[profile?]
-       >=dev-haskell/atomic-primops-0.5.0.2:=[profile?]
-       dev-haskell/vector:=[profile?]
-       >=dev-lang/ghc-7.8.2:=
-"
-DEPEND="${RDEPEND}
-       >=dev-haskell/cabal-1.18.1.3
-       test? ( >=dev-haskell/abstract-deque-tests-0.3
-               dev-haskell/hunit
-               dev-haskell/test-framework
-               dev-haskell/test-framework-hunit )
-"
-
-src_configure() {
-       haskell-cabal_src_configure \
-               $(cabal_flag debug debug)
-}

diff --git 
a/dev-haskell/chaselev-deque/files/bd458b66e1b28c249628e282ff42e8468646c557.patch
 
b/dev-haskell/chaselev-deque/files/bd458b66e1b28c249628e282ff42e8468646c557.patch
deleted file mode 100644
index 25b2b732f5dd..000000000000
--- 
a/dev-haskell/chaselev-deque/files/bd458b66e1b28c249628e282ff42e8468646c557.patch
+++ /dev/null
@@ -1,281 +0,0 @@
-From bd458b66e1b28c249628e282ff42e8468646c557 Mon Sep 17 00:00:00 2001
-From: Ryan Scott <[email protected]>
-Date: Mon, 24 Feb 2020 10:22:38 -0500
-Subject: [PATCH] Import unsafeCoerce# from GHC.Exts, not GHC.Prim
-
-`atomic-primops` and `chaselev-deque` fail to build on GHC HEAD
-(8.11) since `unsafeCoerce#` can no longer be imported from
-`GHC.Prim` (see
-https://gitlab.haskell.org/ghc/ghc/commit/74ad75e87317196c600dfabc61aee1b87d95c214).
-Luckily, `GHC.Exts` provides a backwards-compatible way to import
-`unsafeCoerce#`, so we can simply import it from there instead.
-
-diff --git a/CHANGELOG.md a/CHANGELOG.md
-new file mode 100644
-index 0000000..c0a4b4b
---- /dev/null
-+++ a/CHANGELOG.md
-@@ -0,0 +1,25 @@
-+## next [????.??.??]
-+* Allow building with `base-4.15`.
-+
-+## 0.5.0.4
-+* bugfix
-+
-+## 0.5.0.3
-+* minor bump to change abstract-deque dep.
-+
-+## 0.5.0.2
-+* bump to go along with MAJOR bugfix in atomic-primops 0.5.0.2
-+
-+## 0.4
-+* bump to go along with atomic-primops 0.4
-+
-+## 0.3
-+* bump to go along with atomic-primops 0.3
-+
-+## 0.1.3
-+* small release to fix version deps before atomic-primops api change
-+
-+## 0.1.2
-+
-+## 0.1.1
-+* bump for fixing bugs!  First release candidate.
-diff --git a/Data/Concurrent/Deque/ChaseLev.hs 
a/Data/Concurrent/Deque/ChaseLev.hs
-index 7ec2ff0..baf0843 100644
---- a/Data/Concurrent/Deque/ChaseLev.hs
-+++ a/Data/Concurrent/Deque/ChaseLev.hs
-@@ -39,8 +39,7 @@ import Data.Atomics.Counter
- import System.IO.Unsafe (unsafePerformIO)
- import Text.Printf (printf)
- import System.Mem.StableName (makeStableName, hashStableName)
--import GHC.Exts (Int(I#))
--import GHC.Prim (reallyUnsafePtrEquality#, unsafeCoerce#)
-+import GHC.Exts (Int(I#), reallyUnsafePtrEquality#, unsafeCoerce#)
- 
- 
--------------------------------------------------------------------------------
- -- Instances
-diff --git a/Data/Concurrent/Deque/ChaseLevUnboxed.hs 
a/Data/Concurrent/Deque/ChaseLevUnboxed.hs
-index 2817f7a..e1d2fe5 100644
---- a/Data/Concurrent/Deque/ChaseLevUnboxed.hs
-+++ a/Data/Concurrent/Deque/ChaseLevUnboxed.hs
-@@ -3,7 +3,7 @@
- -- TEMPORARY: An experiment in duplicating ChaseLev.hs to support unboxed 
queue contents.
- 
- -- | Chase-Lev work stealing Deques
---- 
-+--
- -- This implementation derives directly from the pseudocode in the 2005 SPAA 
paper:
- --
- --   
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.170.1097&rep=rep1&type=pdf
-@@ -15,7 +15,7 @@ module Data.Concurrent.Deque.ChaseLevUnboxed
-     -- The convention here is to directly provide the concrete
-     -- operations as well as providing the class instances.
-     ChaseLevDeque(), newQ, nullQ, pushL, tryPopL, tryPopR,
--    approxSize, 
-+    approxSize,
-     dbgInspectCLD
-   )
-  where
-@@ -41,14 +41,13 @@ import Data.Atomics.Counter
- import System.IO.Unsafe (unsafePerformIO)
- import Text.Printf (printf)
- import System.Mem.StableName (makeStableName, hashStableName)
--import GHC.Exts (Int(I#))
--import GHC.Prim (reallyUnsafePtrEquality#, unsafeCoerce#)
-+import GHC.Exts (Int(I#), reallyUnsafePtrEquality#, unsafeCoerce#)
- 
- 
--------------------------------------------------------------------------------
- -- Instances
- 
- {-
--instance PC.DequeClass ChaseLevDeque where 
-+instance PC.DequeClass ChaseLevDeque where
-   newQ  = newQ
-   nullQ = nullQ
-   pushL = pushL
-@@ -57,7 +56,7 @@ instance PC.DequeClass ChaseLevDeque where
-   leftThreadSafe  _ = False
-   rightThreadSafe _ = True
- 
--instance PC.PopL ChaseLevDeque where 
-+instance PC.PopL ChaseLevDeque where
-   tryPopL = tryPopL
- -}
- 
-@@ -93,7 +92,7 @@ dbgInspectCLD CLD{top,bottom,activeArr} = do
-          | isInfixOf "uninitialised element" (show e) -> return "<uninit>"
-          | otherwise -> return$ "<"++ show e ++">"
-        Right val' -> return (show val')
--     
-+
- 
- 
- 
--------------------------------------------------------------------------------
-@@ -108,7 +107,7 @@ dbgInspectCLD CLD{top,bottom,activeArr} = do
- {-# INLINE slc #-}
- #ifndef DEBUGCL
- dbg = False
--nu a      = MV.unsafeNew a 
-+nu a      = MV.unsafeNew a
- rd a b    = MV.unsafeRead a b
- wr a b c  = MV.unsafeWrite a b c
- slc a b c = MV.unsafeSlice a b c
-@@ -116,13 +115,13 @@ cpy a b   = MV.unsafeCopy a b
- #else
- #warning "Activating DEBUGCL!"
- dbg = True
--nu a      = MV.new a 
-+nu a      = MV.new a
- rd a b    = MV.read a b
- wr a b c  = MV.write a b c
- slc a b c = MV.slice a b c
- cpy a b   = MV.copy a b
- -- Temp, debugging: Our own bounds checking, better error:
---- wr v i x = 
-+-- wr v i x =
- --   if i >= MV.length v
- --   then error (printf "ERROR: Out of bounds of top of vector index %d, vec 
length %d\n" i (MV.length v))
- --   else MV.write v i x
-@@ -131,8 +130,8 @@ cpy a b   = MV.copy a b
- 
- #ifdef DEBUGCL
- -- This simply localizes exceptions better:
--tryit msg action = Control.Exception.catch action 
--                              (\e -> do putStrLn$ "ERROR inside "++msg++" "++ 
show e 
-+tryit msg action = Control.Exception.catch action
-+                              (\e -> do putStrLn$ "ERROR inside "++msg++" "++ 
show e
-                                           throw (e::SomeException))
- #else
- {-# INLINE tryit #-}
-@@ -145,9 +144,9 @@ tryit msg action = action
- 
- -- TODO: make a "grow" that uses memcpy.
- growCirc :: V.Unbox a => Int -> Int -> MV.IOVector a -> IO (MV.IOVector a)
--growCirc !strt !end !oldarr = do  
-+growCirc !strt !end !oldarr = do
-   -- let len = MV.length oldarr
--  --     strtmod = strt`mod` len 
-+  --     strtmod = strt`mod` len
-   --     endmod  = end `mod` len
-   -- newarr <- nu (len + len)
-   -- if endmod < strtmod then do
-@@ -165,7 +164,7 @@ growCirc !strt !end !oldarr = do
-   -- return newarr
-   ----------------------------------------
-   -- Easier version first:
--  ----------------------------------------  
-+  ----------------------------------------
-   let len   = MV.length oldarr
-       elems = end - strt
-   when dbg $ putStrLn$ "Grow to size "++show (len+len)++", copying over 
"++show elems
-@@ -176,8 +175,8 @@ growCirc !strt !end !oldarr = do
-                                                           ++" had only 
initialized "++show elems++" elems: "
-                                                           
++show(strt`mod`(len+len),end`mod`(len+len))))
-   -- Strictly matches what's in the paper:
--  for_ strt end $ \ind -> do 
--    x <- getCirc oldarr ind 
-+  for_ strt end $ \ind -> do
-+    x <- getCirc oldarr ind
-     evaluate x
-     putCirc newarr ind x
-   return $! newarr
-@@ -206,7 +205,7 @@ copyOffset !from !to !iFrom !iTo !len =
- newQ :: V.Unbox elt => IO (ChaseLevDeque elt)
- newQ = do
-   -- Arbitrary Knob: We start as size 32 and double from there:
--  v  <- MV.new 32 
-+  v  <- MV.new 32
-   r1 <- newCounter 0
-   r2 <- newCounter 0
-   r3 <- newIORef v
-@@ -217,8 +216,8 @@ nullQ :: ChaseLevDeque elt -> IO Bool
- nullQ CLD{top,bottom} = do
-   -- This should get a LOWER bound on size at some point in logic time, right?
-   b   <- readCounter bottom
--  t   <- readCounter top  
--  let size = b - t  
-+  t   <- readCounter top
-+  let size = b - t
-   return $! size <= 0
- 
- {-# INLINE approxSize #-}
-@@ -226,7 +225,7 @@ nullQ CLD{top,bottom} = do
- approxSize :: ChaseLevDeque elt -> IO Int
- approxSize CLD{top,bottom} = do
-   b   <- readCounter bottom
--  t   <- readCounter top  
-+  t   <- readCounter top
-   return $! b - t
- 
- {-# INLINE pushL #-}
-@@ -237,12 +236,12 @@ pushL CLD{top,bottom,activeArr} obj = tryit "pushL" $ do
-   b   <- readCounter bottom
-   t   <- readCounter top
-   arr <- readIORef activeArr
--  let len = MV.length arr 
-+  let len = MV.length arr
-       size = b - t
- 
- --  when (dbg && size < 0) $ error$ "pushL: INVARIANT BREAKAGE - bottom, top: 
"++ show (b,t)
- 
--  arr' <- if (size >= len - 1) then do 
-+  arr' <- if (size >= len - 1) then do
-             arr' <- growCirc t b arr -- Double in size, don't change b/t.
-             -- Only a single thread will do this!:
-           writeIORef activeArr arr'
-@@ -268,7 +267,7 @@ pushL CLD{top,bottom,activeArr} obj = tryit "pushL" $ do
- tryPopR :: V.Unbox elt => ChaseLevDeque elt -> IO (Maybe elt)
- tryPopR CLD{top,bottom,activeArr} =  tryit "tryPopR" $ do
-   -- NB. these loads must be ordered, otherwise there is a race
--  -- between steal and pop.  
-+  -- between steal and pop.
-   tt  <- readCounterForCAS top
-   loadLoadBarrier
-   b   <- readCounter bottom
-@@ -277,14 +276,14 @@ tryPopR CLD{top,bottom,activeArr} =  tryit "tryPopR" $ do
- 
-   let t = peekCTicket tt
-       size = b - t
--  if size <= 0 then 
-+  if size <= 0 then
-     return Nothing
--   else do 
-+   else do
-     obj   <- getCirc  arr t
-     (b,_) <- casCounter top tt (t+1)
--    if b then 
-+    if b then
-       return $! Just obj
--     else 
-+     else
-       return Nothing -- Someone beat us, abort
- 
- {-# INLINE tryPopL #-}
-@@ -298,14 +297,14 @@ tryPopL CLD{top,bottom,activeArr} = tryit "tryPopL" $ do
-   -- very important that the following read of q->top does not occur
-   -- before the earlier write to q->bottom.
-   storeLoadBarrier
--  
-+
-   tt   <- readCounterForCAS top
- --  when (dbg && b < t) $ error$ "tryPopL: INVARIANT BREAKAGE - bottom < top: 
"++ show (b,t)
- 
-   let t = peekCTicket tt
--      size = b - t 
-+      size = b - t
-   if size < 0 then do
--    writeCounter bottom t 
-+    writeCounter bottom t
-     return Nothing
-    else do
-     obj <- getCirc arr b
-@@ -315,7 +314,7 @@ tryPopL CLD{top,bottom,activeArr} = tryit "tryPopL" $ do
-       (b,ol) <- casCounter top tt (t+1)
-       writeCounter bottom (t+1)
-       if b then return $! Just obj
--           else return $  Nothing 
-+           else return $  Nothing
- 
- ------------------------------------------------------------
- 

diff --git a/dev-haskell/chaselev-deque/metadata.xml 
b/dev-haskell/chaselev-deque/metadata.xml
deleted file mode 100644
index 6ea644ec8df6..000000000000
--- a/dev-haskell/chaselev-deque/metadata.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
-<pkgmetadata>
-       <maintainer type="project">
-               <email>[email protected]</email>
-               <name>Gentoo Haskell</name>
-       </maintainer>
-       <use>
-               <flag name="debug">Enable the extra internal checks.</flag>
-       </use>
-       <longdescription>
-               A queue that is push/pop on one end and pop-only on the other.  
These are commonly
-               used for work-stealing.
-               This implementation derives directly from the pseudocode in the 
2005 SPAA paper:
-               
-               
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.170.1097&amp;rep=rep1&amp;type=pdf
-       </longdescription>
-</pkgmetadata>

diff --git a/profiles/package.mask b/profiles/package.mask
index 47163c0f5786..f420bd921b28 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -305,7 +305,6 @@ dev-python/aioredis
 # Last-rite for removal in 30 days. Has no reverse dependencies
 # and is unmaintained upstream.
 dev-haskell/bytestring-handle
-dev-haskell/chaselev-deque
 
 # Marek Szuba <[email protected]> (2022-07-13)
 # Upstream has switched from CMake to hand-crafted Makefiles (yes, TO them),

Reply via email to