Gentoo Archives: gentoo-commits

From: "Jakov Smolić" <jsmolic@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: profiles/, dev-haskell/chaselev-deque/, dev-haskell/chaselev-deque/files/
Date: Thu, 25 Aug 2022 13:04:02
Message-Id: 1661432501.14efb6f7914eca83c7b8e5fc57a0bf3e6557179b.jsmolic@gentoo
1 commit: 14efb6f7914eca83c7b8e5fc57a0bf3e6557179b
2 Author: Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
3 AuthorDate: Thu Aug 25 13:01:41 2022 +0000
4 Commit: Jakov Smolić <jsmolic <AT> gentoo <DOT> org>
5 CommitDate: Thu Aug 25 13:01:41 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=14efb6f7
7
8 dev-haskell/chaselev-deque: treeclean
9
10 Closes: https://bugs.gentoo.org/860753
11 Signed-off-by: Jakov Smolić <jsmolic <AT> gentoo.org>
12
13 dev-haskell/chaselev-deque/Manifest | 1 -
14 .../chaselev-deque/chaselev-deque-0.5.0.5.ebuild | 38 ---
15 .../bd458b66e1b28c249628e282ff42e8468646c557.patch | 281 ---------------------
16 dev-haskell/chaselev-deque/metadata.xml | 18 --
17 profiles/package.mask | 1 -
18 5 files changed, 339 deletions(-)
19
20 diff --git a/dev-haskell/chaselev-deque/Manifest b/dev-haskell/chaselev-deque/Manifest
21 deleted file mode 100644
22 index 39e79a3b1d61..000000000000
23 --- a/dev-haskell/chaselev-deque/Manifest
24 +++ /dev/null
25 @@ -1 +0,0 @@
26 -DIST chaselev-deque-0.5.0.5.tar.gz 12451 BLAKE2B 79ee460eb84286bbbe0dcd58431d5ab0b7aef1d0d186c2c919b566c6b169ab4069917a61e8bb800af3857c7e3cca09c6f698c6f9a6b5d8efdbdd5902a7042310 SHA512 1561208ec92d7765b126684677cab02ee71bd1f7d2cdc6f2acac065972c241d085a538e14f51c87555f464aadbac2795c64f9063075acdf29217fb2d70a47dfd
27
28 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
29 deleted file mode 100644
30 index 5777bebfaf85..000000000000
31 --- a/dev-haskell/chaselev-deque/chaselev-deque-0.5.0.5.ebuild
32 +++ /dev/null
33 @@ -1,38 +0,0 @@
34 -# Copyright 1999-2022 Gentoo Authors
35 -# Distributed under the terms of the GNU General Public License v2
36 -
37 -EAPI=7
38 -
39 -# ebuild generated by hackport 0.6.6.9999
40 -
41 -CABAL_FEATURES="lib profile haddock hoogle hscolour test-suite"
42 -inherit haskell-cabal
43 -
44 -DESCRIPTION="Chase & Lev work-stealing lock-free double-ended queues (deques)"
45 -HOMEPAGE="https://github.com/rrnewton/haskell-lockfree/wiki"
46 -SRC_URI="https://hackage.haskell.org/package/${P}/${P}.tar.gz"
47 -
48 -LICENSE="BSD"
49 -SLOT="0/${PV}"
50 -KEYWORDS="~amd64 ~ppc64 ~x86"
51 -IUSE="debug"
52 -
53 -PATCHES=( "${FILESDIR}/bd458b66e1b28c249628e282ff42e8468646c557.patch" )
54 -
55 -RDEPEND=">=dev-haskell/abstract-deque-0.3:=[profile?] <dev-haskell/abstract-deque-0.4:=[profile?]
56 - >=dev-haskell/atomic-primops-0.5.0.2:=[profile?]
57 - dev-haskell/vector:=[profile?]
58 - >=dev-lang/ghc-7.8.2:=
59 -"
60 -DEPEND="${RDEPEND}
61 - >=dev-haskell/cabal-1.18.1.3
62 - test? ( >=dev-haskell/abstract-deque-tests-0.3
63 - dev-haskell/hunit
64 - dev-haskell/test-framework
65 - dev-haskell/test-framework-hunit )
66 -"
67 -
68 -src_configure() {
69 - haskell-cabal_src_configure \
70 - $(cabal_flag debug debug)
71 -}
72
73 diff --git a/dev-haskell/chaselev-deque/files/bd458b66e1b28c249628e282ff42e8468646c557.patch b/dev-haskell/chaselev-deque/files/bd458b66e1b28c249628e282ff42e8468646c557.patch
74 deleted file mode 100644
75 index 25b2b732f5dd..000000000000
76 --- a/dev-haskell/chaselev-deque/files/bd458b66e1b28c249628e282ff42e8468646c557.patch
77 +++ /dev/null
78 @@ -1,281 +0,0 @@
79 -From bd458b66e1b28c249628e282ff42e8468646c557 Mon Sep 17 00:00:00 2001
80 -From: Ryan Scott <ryan.gl.scott@×××××.com>
81 -Date: Mon, 24 Feb 2020 10:22:38 -0500
82 -Subject: [PATCH] Import unsafeCoerce# from GHC.Exts, not GHC.Prim
83 -
84 -`atomic-primops` and `chaselev-deque` fail to build on GHC HEAD
85 -(8.11) since `unsafeCoerce#` can no longer be imported from
86 -`GHC.Prim` (see
87 -https://gitlab.haskell.org/ghc/ghc/commit/74ad75e87317196c600dfabc61aee1b87d95c214).
88 -Luckily, `GHC.Exts` provides a backwards-compatible way to import
89 -`unsafeCoerce#`, so we can simply import it from there instead.
90 -
91 -diff --git a/CHANGELOG.md a/CHANGELOG.md
92 -new file mode 100644
93 -index 0000000..c0a4b4b
94 ---- /dev/null
95 -+++ a/CHANGELOG.md
96 -@@ -0,0 +1,25 @@
97 -+## next [????.??.??]
98 -+* Allow building with `base-4.15`.
99 -+
100 -+## 0.5.0.4
101 -+* bugfix
102 -+
103 -+## 0.5.0.3
104 -+* minor bump to change abstract-deque dep.
105 -+
106 -+## 0.5.0.2
107 -+* bump to go along with MAJOR bugfix in atomic-primops 0.5.0.2
108 -+
109 -+## 0.4
110 -+* bump to go along with atomic-primops 0.4
111 -+
112 -+## 0.3
113 -+* bump to go along with atomic-primops 0.3
114 -+
115 -+## 0.1.3
116 -+* small release to fix version deps before atomic-primops api change
117 -+
118 -+## 0.1.2
119 -+
120 -+## 0.1.1
121 -+* bump for fixing bugs! First release candidate.
122 -diff --git a/Data/Concurrent/Deque/ChaseLev.hs a/Data/Concurrent/Deque/ChaseLev.hs
123 -index 7ec2ff0..baf0843 100644
124 ---- a/Data/Concurrent/Deque/ChaseLev.hs
125 -+++ a/Data/Concurrent/Deque/ChaseLev.hs
126 -@@ -39,8 +39,7 @@ import Data.Atomics.Counter
127 - import System.IO.Unsafe (unsafePerformIO)
128 - import Text.Printf (printf)
129 - import System.Mem.StableName (makeStableName, hashStableName)
130 --import GHC.Exts (Int(I#))
131 --import GHC.Prim (reallyUnsafePtrEquality#, unsafeCoerce#)
132 -+import GHC.Exts (Int(I#), reallyUnsafePtrEquality#, unsafeCoerce#)
133 -
134 - --------------------------------------------------------------------------------
135 - -- Instances
136 -diff --git a/Data/Concurrent/Deque/ChaseLevUnboxed.hs a/Data/Concurrent/Deque/ChaseLevUnboxed.hs
137 -index 2817f7a..e1d2fe5 100644
138 ---- a/Data/Concurrent/Deque/ChaseLevUnboxed.hs
139 -+++ a/Data/Concurrent/Deque/ChaseLevUnboxed.hs
140 -@@ -3,7 +3,7 @@
141 - -- TEMPORARY: An experiment in duplicating ChaseLev.hs to support unboxed queue contents.
142 -
143 - -- | Chase-Lev work stealing Deques
144 ----
145 -+--
146 - -- This implementation derives directly from the pseudocode in the 2005 SPAA paper:
147 - --
148 - -- http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.170.1097&rep=rep1&type=pdf
149 -@@ -15,7 +15,7 @@ module Data.Concurrent.Deque.ChaseLevUnboxed
150 - -- The convention here is to directly provide the concrete
151 - -- operations as well as providing the class instances.
152 - ChaseLevDeque(), newQ, nullQ, pushL, tryPopL, tryPopR,
153 -- approxSize,
154 -+ approxSize,
155 - dbgInspectCLD
156 - )
157 - where
158 -@@ -41,14 +41,13 @@ import Data.Atomics.Counter
159 - import System.IO.Unsafe (unsafePerformIO)
160 - import Text.Printf (printf)
161 - import System.Mem.StableName (makeStableName, hashStableName)
162 --import GHC.Exts (Int(I#))
163 --import GHC.Prim (reallyUnsafePtrEquality#, unsafeCoerce#)
164 -+import GHC.Exts (Int(I#), reallyUnsafePtrEquality#, unsafeCoerce#)
165 -
166 - --------------------------------------------------------------------------------
167 - -- Instances
168 -
169 - {-
170 --instance PC.DequeClass ChaseLevDeque where
171 -+instance PC.DequeClass ChaseLevDeque where
172 - newQ = newQ
173 - nullQ = nullQ
174 - pushL = pushL
175 -@@ -57,7 +56,7 @@ instance PC.DequeClass ChaseLevDeque where
176 - leftThreadSafe _ = False
177 - rightThreadSafe _ = True
178 -
179 --instance PC.PopL ChaseLevDeque where
180 -+instance PC.PopL ChaseLevDeque where
181 - tryPopL = tryPopL
182 - -}
183 -
184 -@@ -93,7 +92,7 @@ dbgInspectCLD CLD{top,bottom,activeArr} = do
185 - | isInfixOf "uninitialised element" (show e) -> return "<uninit>"
186 - | otherwise -> return$ "<"++ show e ++">"
187 - Right val' -> return (show val')
188 --
189 -+
190 -
191 -
192 - --------------------------------------------------------------------------------
193 -@@ -108,7 +107,7 @@ dbgInspectCLD CLD{top,bottom,activeArr} = do
194 - {-# INLINE slc #-}
195 - #ifndef DEBUGCL
196 - dbg = False
197 --nu a = MV.unsafeNew a
198 -+nu a = MV.unsafeNew a
199 - rd a b = MV.unsafeRead a b
200 - wr a b c = MV.unsafeWrite a b c
201 - slc a b c = MV.unsafeSlice a b c
202 -@@ -116,13 +115,13 @@ cpy a b = MV.unsafeCopy a b
203 - #else
204 - #warning "Activating DEBUGCL!"
205 - dbg = True
206 --nu a = MV.new a
207 -+nu a = MV.new a
208 - rd a b = MV.read a b
209 - wr a b c = MV.write a b c
210 - slc a b c = MV.slice a b c
211 - cpy a b = MV.copy a b
212 - -- Temp, debugging: Our own bounds checking, better error:
213 ---- wr v i x =
214 -+-- wr v i x =
215 - -- if i >= MV.length v
216 - -- then error (printf "ERROR: Out of bounds of top of vector index %d, vec length %d\n" i (MV.length v))
217 - -- else MV.write v i x
218 -@@ -131,8 +130,8 @@ cpy a b = MV.copy a b
219 -
220 - #ifdef DEBUGCL
221 - -- This simply localizes exceptions better:
222 --tryit msg action = Control.Exception.catch action
223 -- (\e -> do putStrLn$ "ERROR inside "++msg++" "++ show e
224 -+tryit msg action = Control.Exception.catch action
225 -+ (\e -> do putStrLn$ "ERROR inside "++msg++" "++ show e
226 - throw (e::SomeException))
227 - #else
228 - {-# INLINE tryit #-}
229 -@@ -145,9 +144,9 @@ tryit msg action = action
230 -
231 - -- TODO: make a "grow" that uses memcpy.
232 - growCirc :: V.Unbox a => Int -> Int -> MV.IOVector a -> IO (MV.IOVector a)
233 --growCirc !strt !end !oldarr = do
234 -+growCirc !strt !end !oldarr = do
235 - -- let len = MV.length oldarr
236 -- -- strtmod = strt`mod` len
237 -+ -- strtmod = strt`mod` len
238 - -- endmod = end `mod` len
239 - -- newarr <- nu (len + len)
240 - -- if endmod < strtmod then do
241 -@@ -165,7 +164,7 @@ growCirc !strt !end !oldarr = do
242 - -- return newarr
243 - ----------------------------------------
244 - -- Easier version first:
245 -- ----------------------------------------
246 -+ ----------------------------------------
247 - let len = MV.length oldarr
248 - elems = end - strt
249 - when dbg $ putStrLn$ "Grow to size "++show (len+len)++", copying over "++show elems
250 -@@ -176,8 +175,8 @@ growCirc !strt !end !oldarr = do
251 - ++" had only initialized "++show elems++" elems: "
252 - ++show(strt`mod`(len+len),end`mod`(len+len))))
253 - -- Strictly matches what's in the paper:
254 -- for_ strt end $ \ind -> do
255 -- x <- getCirc oldarr ind
256 -+ for_ strt end $ \ind -> do
257 -+ x <- getCirc oldarr ind
258 - evaluate x
259 - putCirc newarr ind x
260 - return $! newarr
261 -@@ -206,7 +205,7 @@ copyOffset !from !to !iFrom !iTo !len =
262 - newQ :: V.Unbox elt => IO (ChaseLevDeque elt)
263 - newQ = do
264 - -- Arbitrary Knob: We start as size 32 and double from there:
265 -- v <- MV.new 32
266 -+ v <- MV.new 32
267 - r1 <- newCounter 0
268 - r2 <- newCounter 0
269 - r3 <- newIORef v
270 -@@ -217,8 +216,8 @@ nullQ :: ChaseLevDeque elt -> IO Bool
271 - nullQ CLD{top,bottom} = do
272 - -- This should get a LOWER bound on size at some point in logic time, right?
273 - b <- readCounter bottom
274 -- t <- readCounter top
275 -- let size = b - t
276 -+ t <- readCounter top
277 -+ let size = b - t
278 - return $! size <= 0
279 -
280 - {-# INLINE approxSize #-}
281 -@@ -226,7 +225,7 @@ nullQ CLD{top,bottom} = do
282 - approxSize :: ChaseLevDeque elt -> IO Int
283 - approxSize CLD{top,bottom} = do
284 - b <- readCounter bottom
285 -- t <- readCounter top
286 -+ t <- readCounter top
287 - return $! b - t
288 -
289 - {-# INLINE pushL #-}
290 -@@ -237,12 +236,12 @@ pushL CLD{top,bottom,activeArr} obj = tryit "pushL" $ do
291 - b <- readCounter bottom
292 - t <- readCounter top
293 - arr <- readIORef activeArr
294 -- let len = MV.length arr
295 -+ let len = MV.length arr
296 - size = b - t
297 -
298 - -- when (dbg && size < 0) $ error$ "pushL: INVARIANT BREAKAGE - bottom, top: "++ show (b,t)
299 -
300 -- arr' <- if (size >= len - 1) then do
301 -+ arr' <- if (size >= len - 1) then do
302 - arr' <- growCirc t b arr -- Double in size, don't change b/t.
303 - -- Only a single thread will do this!:
304 - writeIORef activeArr arr'
305 -@@ -268,7 +267,7 @@ pushL CLD{top,bottom,activeArr} obj = tryit "pushL" $ do
306 - tryPopR :: V.Unbox elt => ChaseLevDeque elt -> IO (Maybe elt)
307 - tryPopR CLD{top,bottom,activeArr} = tryit "tryPopR" $ do
308 - -- NB. these loads must be ordered, otherwise there is a race
309 -- -- between steal and pop.
310 -+ -- between steal and pop.
311 - tt <- readCounterForCAS top
312 - loadLoadBarrier
313 - b <- readCounter bottom
314 -@@ -277,14 +276,14 @@ tryPopR CLD{top,bottom,activeArr} = tryit "tryPopR" $ do
315 -
316 - let t = peekCTicket tt
317 - size = b - t
318 -- if size <= 0 then
319 -+ if size <= 0 then
320 - return Nothing
321 -- else do
322 -+ else do
323 - obj <- getCirc arr t
324 - (b,_) <- casCounter top tt (t+1)
325 -- if b then
326 -+ if b then
327 - return $! Just obj
328 -- else
329 -+ else
330 - return Nothing -- Someone beat us, abort
331 -
332 - {-# INLINE tryPopL #-}
333 -@@ -298,14 +297,14 @@ tryPopL CLD{top,bottom,activeArr} = tryit "tryPopL" $ do
334 - -- very important that the following read of q->top does not occur
335 - -- before the earlier write to q->bottom.
336 - storeLoadBarrier
337 --
338 -+
339 - tt <- readCounterForCAS top
340 - -- when (dbg && b < t) $ error$ "tryPopL: INVARIANT BREAKAGE - bottom < top: "++ show (b,t)
341 -
342 - let t = peekCTicket tt
343 -- size = b - t
344 -+ size = b - t
345 - if size < 0 then do
346 -- writeCounter bottom t
347 -+ writeCounter bottom t
348 - return Nothing
349 - else do
350 - obj <- getCirc arr b
351 -@@ -315,7 +314,7 @@ tryPopL CLD{top,bottom,activeArr} = tryit "tryPopL" $ do
352 - (b,ol) <- casCounter top tt (t+1)
353 - writeCounter bottom (t+1)
354 - if b then return $! Just obj
355 -- else return $ Nothing
356 -+ else return $ Nothing
357 -
358 - ------------------------------------------------------------
359 -
360
361 diff --git a/dev-haskell/chaselev-deque/metadata.xml b/dev-haskell/chaselev-deque/metadata.xml
362 deleted file mode 100644
363 index 6ea644ec8df6..000000000000
364 --- a/dev-haskell/chaselev-deque/metadata.xml
365 +++ /dev/null
366 @@ -1,18 +0,0 @@
367 -<?xml version="1.0" encoding="UTF-8"?>
368 -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
369 -<pkgmetadata>
370 - <maintainer type="project">
371 - <email>haskell@g.o</email>
372 - <name>Gentoo Haskell</name>
373 - </maintainer>
374 - <use>
375 - <flag name="debug">Enable the extra internal checks.</flag>
376 - </use>
377 - <longdescription>
378 - A queue that is push/pop on one end and pop-only on the other. These are commonly
379 - used for work-stealing.
380 - This implementation derives directly from the pseudocode in the 2005 SPAA paper:
381 -
382 - http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.170.1097&amp;rep=rep1&amp;type=pdf
383 - </longdescription>
384 -</pkgmetadata>
385
386 diff --git a/profiles/package.mask b/profiles/package.mask
387 index 47163c0f5786..f420bd921b28 100644
388 --- a/profiles/package.mask
389 +++ b/profiles/package.mask
390 @@ -305,7 +305,6 @@ dev-python/aioredis
391 # Last-rite for removal in 30 days. Has no reverse dependencies
392 # and is unmaintained upstream.
393 dev-haskell/bytestring-handle
394 -dev-haskell/chaselev-deque
395
396 # Marek Szuba <marecki@g.o> (2022-07-13)
397 # Upstream has switched from CMake to hand-crafted Makefiles (yes, TO them),