diff --git a/Data/Map/Static/Builder.hs b/Data/Map/Static/Builder.hs index 486e19c..abb3ddb 100644 --- a/Data/Map/Static/Builder.hs +++ b/Data/Map/Static/Builder.hs @@ -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 diff --git a/encoding.cabal b/encoding.cabal index 0d14f65..1394a3e 100644 --- a/encoding.cabal +++ b/encoding.cabal @@ -1,16 +1,16 @@ -Name: encoding -Version: 0.8.2 -Author: Henning Günther -Maintainer: daniel@wagner-home.com -License: BSD3 +Name: encoding +Version: 0.8.2 +Author: Henning Günther +Maintainer: daniel@wagner-home.com +License: BSD3 License-File: LICENSE -Synopsis: A library for various character encodings +Synopsis: A library for various character encodings Description: - Haskell has excellect handling of unicode, the Char type covers all unicode chars. Unfortunately, there's no possibility to read or write something to the outer world in an encoding other than ascii due to the lack of support for encodings. This library should help with that. -Category: Codec -Homepage: http://code.haskell.org/encoding/ -Cabal-Version: >=1.8 -Build-Type: Custom + Haskell has excellect handling of unicode, the Char type covers all unicode chars. Unfortunately, there's no possibility to read or write something to the outer world in an encoding other than ascii due to the lack of support for encodings. This library should help with that. +Category: Codec +Homepage: http://code.haskell.org/encoding/ +Cabal-Version: >=1.8 +Build-Type: Custom Extra-Source-Files: CHANGELOG Data/Encoding/Preprocessor/Mapping.hs @@ -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, diff --git a/stack.yaml b/stack.yaml index 156eced..ebf8545 100644 --- a/stack.yaml +++ b/stack.yaml @@ -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. diff --git a/stack.yaml.lock b/stack.yaml.lock index 81a2fc4..4af2634 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -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