Fix arithmetic for ghc8.8.2
This commit is contained in:
parent
00270d4bc7
commit
22fc3bb148
@ -9,8 +9,8 @@ import Data.Bits
|
||||
|
||||
buildStaticMap :: (StaticElement i,StaticElement e,Ord i) => [(i,e)] -> String
|
||||
buildStaticMap lst = let step :: Int -> [(i,e)] -> [(Int,(i,e))]
|
||||
step n chunk = let ss = findSplitSize (length chunk)
|
||||
(h,d:t) = splitAt ss chunk
|
||||
step n chunk = let ss = findSplitSize (genericLength chunk)
|
||||
(h,d:t) = genericSplitAt ss chunk
|
||||
in if null chunk
|
||||
then []
|
||||
else (n,d):((step (n*2) h)++(step (n*2+1) t))
|
||||
@ -24,19 +24,19 @@ buildStaticMap lst = let step :: Int -> [(i,e)] -> [(Int,(i,e))]
|
||||
len = length heap
|
||||
in "StaticMap ("++buildStaticArray (1,len) (map fst heap)++") ("++buildStaticArray (1,len) (map snd heap)++")"
|
||||
|
||||
maxSize :: Int -> Int
|
||||
maxSize d = (1 `shiftL` d) - 1
|
||||
maxSize :: Integer -> Integer
|
||||
maxSize d = (floor $ 2^^d) - 1
|
||||
|
||||
treeDepth :: Int -> Int
|
||||
treeDepth :: Integer -> Integer
|
||||
treeDepth sz = find' [0..]
|
||||
where
|
||||
find' (x:xs) = if 1 `shiftL` x > sz
|
||||
find' (x:xs) = if (floor $ 2^^x) > sz
|
||||
then x
|
||||
else find' xs
|
||||
|
||||
findSplitSize :: Int -> Int
|
||||
findSplitSize :: Integer -> Integer
|
||||
findSplitSize len = let depth = treeDepth len
|
||||
free = (maxSize depth) - len
|
||||
in if free <= (1 `shiftL` (depth - 2))
|
||||
in if free <= (floor $ 2 ^^ (depth - 2))
|
||||
then maxSize (depth - 1)
|
||||
else len - (maxSize (depth - 2)) - 1
|
||||
|
||||
@ -36,11 +36,12 @@ Source-Repository this
|
||||
|
||||
Custom-Setup
|
||||
Setup-Depends: base >=3 && <5,
|
||||
Cabal >=1.24 && <2.5,
|
||||
Cabal >=1.24 && <4,
|
||||
containers,
|
||||
filepath,
|
||||
ghc-prim,
|
||||
HaXml >=1.22 && <1.26
|
||||
HaXml >=1.22 && <1.26,
|
||||
deepseq
|
||||
|
||||
Library
|
||||
Build-Depends: array >=0.4 && <0.6,
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
# resolver:
|
||||
# name: custom-snapshot
|
||||
# location: "./custom-snapshot.yaml"
|
||||
resolver: lts-14.6
|
||||
resolver: lts-15.0
|
||||
|
||||
# User packages to be built.
|
||||
# Various formats can be used as shown in the example below.
|
||||
|
||||
@ -13,7 +13,7 @@ packages:
|
||||
hackage: HaXml-1.25.5
|
||||
snapshots:
|
||||
- completed:
|
||||
size: 524127
|
||||
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/14/6.yaml
|
||||
sha256: dc70dfb45e2c32f54719819bd055f46855dd4b3bd2e58b9f3f38729a2d553fbb
|
||||
original: lts-14.6
|
||||
size: 488576
|
||||
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/15/0.yaml
|
||||
sha256: e4b6a87b47ec1cf63a7f1a0884a3b276fce2b0d174a10e8753c4f618e7983568
|
||||
original: lts-15.0
|
||||
|
||||
Loading…
Reference in New Issue
Block a user