Compare commits

...

4 Commits

Author SHA1 Message Date
Gregor Kleen
22fc3bb148 Fix arithmetic for ghc8.8.2 2020-02-22 20:47:54 +01:00
Gregor Kleen
00270d4bc7 Bump stack 2019-09-23 15:38:10 +02:00
Gregor Kleen
f07769687b Bump Cabal 2018-09-14 20:37:16 +02:00
Gregor Kleen
67bb87ceff Relax upper version bounds on dependencies 2018-02-20 17:46:24 +01:00
5 changed files with 64 additions and 31 deletions

View File

@ -9,8 +9,8 @@ import Data.Bits
buildStaticMap :: (StaticElement i,StaticElement e,Ord i) => [(i,e)] -> String buildStaticMap :: (StaticElement i,StaticElement e,Ord i) => [(i,e)] -> String
buildStaticMap lst = let step :: Int -> [(i,e)] -> [(Int,(i,e))] buildStaticMap lst = let step :: Int -> [(i,e)] -> [(Int,(i,e))]
step n chunk = let ss = findSplitSize (length chunk) step n chunk = let ss = findSplitSize (genericLength chunk)
(h,d:t) = splitAt ss chunk (h,d:t) = genericSplitAt ss chunk
in if null chunk in if null chunk
then [] then []
else (n,d):((step (n*2) h)++(step (n*2+1) t)) 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 len = length heap
in "StaticMap ("++buildStaticArray (1,len) (map fst heap)++") ("++buildStaticArray (1,len) (map snd heap)++")" in "StaticMap ("++buildStaticArray (1,len) (map fst heap)++") ("++buildStaticArray (1,len) (map snd heap)++")"
maxSize :: Int -> Int maxSize :: Integer -> Integer
maxSize d = (1 `shiftL` d) - 1 maxSize d = (floor $ 2^^d) - 1
treeDepth :: Int -> Int treeDepth :: Integer -> Integer
treeDepth sz = find' [0..] treeDepth sz = find' [0..]
where where
find' (x:xs) = if 1 `shiftL` x > sz find' (x:xs) = if (floor $ 2^^x) > sz
then x then x
else find' xs else find' xs
findSplitSize :: Int -> Int findSplitSize :: Integer -> Integer
findSplitSize len = let depth = treeDepth len findSplitSize len = let depth = treeDepth len
free = (maxSize depth) - len free = (maxSize depth) - len
in if free <= (1 `shiftL` (depth - 2)) in if free <= (floor $ 2 ^^ (depth - 2))
then maxSize (depth - 1) then maxSize (depth - 1)
else len - (maxSize (depth - 2)) - 1 else len - (maxSize (depth - 2)) - 1

View File

@ -1,13 +1,25 @@
{-# LANGUAGE CPP #-}
module Main where module Main where
import Distribution.Simple import Distribution.Simple
import Data.Encoding.Preprocessor.Mapping import Data.Encoding.Preprocessor.Mapping
import Data.Encoding.Preprocessor.XMLMappingBuilder import Data.Encoding.Preprocessor.XMLMappingBuilder
#if MIN_VERSION_Cabal(2,0,0)
main = defaultMainWithHooks (simpleUserHooks main = defaultMainWithHooks (simpleUserHooks
{hookedPreProcessors = (("mapping",\_ _ -> mappingPreprocessor) {hookedPreProcessors = ( ("mapping" , \_ _ _ -> mappingPreprocessor)
:("mapping2",\_ _ -> mappingPreprocessor) : ("mapping2", \_ _ _ -> mappingPreprocessor)
:("xml",\_ _ -> xmlPreprocessor) : ("xml" , \_ _ _ -> xmlPreprocessor)
:(hookedPreProcessors simpleUserHooks) : (hookedPreProcessors simpleUserHooks)
) )
}) })
#else
main = defaultMainWithHooks (simpleUserHooks
{hookedPreProcessors = ( ("mapping" , \_ _ -> mappingPreprocessor)
: ("mapping2", \_ _ -> mappingPreprocessor)
: ("xml" , \_ _ -> xmlPreprocessor)
: (hookedPreProcessors simpleUserHooks)
)
})
#endif

View File

@ -1,16 +1,16 @@
Name: encoding Name: encoding
Version: 0.8.2 Version: 0.8.2
Author: Henning Günther Author: Henning Günther
Maintainer: daniel@wagner-home.com Maintainer: daniel@wagner-home.com
License: BSD3 License: BSD3
License-File: LICENSE License-File: LICENSE
Synopsis: A library for various character encodings Synopsis: A library for various character encodings
Description: 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. 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 Category: Codec
Homepage: http://code.haskell.org/encoding/ Homepage: http://code.haskell.org/encoding/
Cabal-Version: >=1.8 Cabal-Version: >=1.8
Build-Type: Custom Build-Type: Custom
Extra-Source-Files: Extra-Source-Files:
CHANGELOG CHANGELOG
Data/Encoding/Preprocessor/Mapping.hs Data/Encoding/Preprocessor/Mapping.hs
@ -36,22 +36,23 @@ Source-Repository this
Custom-Setup Custom-Setup
Setup-Depends: base >=3 && <5, Setup-Depends: base >=3 && <5,
Cabal >=1.24 && <1.25, Cabal >=1.24 && <4,
containers, containers,
filepath, filepath,
ghc-prim, ghc-prim,
HaXml >=1.22 && <1.26 HaXml >=1.22 && <1.26,
deepseq
Library Library
Build-Depends: array >=0.4 && <0.6, Build-Depends: array >=0.4 && <0.6,
base >=4 && <5, base >=4 && <5,
binary >=0.7 && <0.10, binary >=0.7 && <0.10,
bytestring >=0.9 && <0.11, bytestring >=0.9 && <0.11,
containers >=0.4 && <0.6, containers >=0.4 && <0.7,
extensible-exceptions >=0.1 && <0.2, extensible-exceptions >=0.1 && <0.2,
ghc-prim >=0.3 && <0.6, ghc-prim >=0.3 && <0.6,
mtl >=2.0 && <2.3, mtl >=2.0 && <2.3,
regex-compat >=0.71 && <0.95 regex-compat >=0.71 && <0.96
Extensions: CPP Extensions: CPP

View File

@ -15,7 +15,7 @@
# resolver: # resolver:
# name: custom-snapshot # name: custom-snapshot
# location: "./custom-snapshot.yaml" # location: "./custom-snapshot.yaml"
resolver: lts-8.22 resolver: lts-15.0
# User packages to be built. # User packages to be built.
# Various formats can be used as shown in the example below. # Various formats can be used as shown in the example below.
@ -36,10 +36,11 @@ resolver: lts-8.22
# non-dependency (i.e. a user package), and its test suites and benchmarks # non-dependency (i.e. a user package), and its test suites and benchmarks
# will not be run. This is useful for tweaking upstream packages. # will not be run. This is useful for tweaking upstream packages.
packages: packages:
- '.' - '.'
# Dependency packages to be pulled from upstream that are not in the resolver # Dependency packages to be pulled from upstream that are not in the resolver
# (e.g., acme-missiles-0.3) # (e.g., acme-missiles-0.3)
extra-deps: [] extra-deps:
- HaXml-1.25.5
# Override default flag values for local packages and extra-deps # Override default flag values for local packages and extra-deps
flags: {} flags: {}
@ -63,4 +64,4 @@ extra-package-dbs: []
# extra-lib-dirs: [/path/to/dir] # extra-lib-dirs: [/path/to/dir]
# #
# Allow a newer minor version of GHC than the snapshot specifies # Allow a newer minor version of GHC than the snapshot specifies
# compiler-check: newer-minor # compiler-check: newer-minor

19
stack.yaml.lock Normal file
View File

@ -0,0 +1,19 @@
# This file was autogenerated by Stack.
# You should not edit this file by hand.
# For more information, please see the documentation at:
# https://docs.haskellstack.org/en/stable/lock_files
packages:
- completed:
hackage: HaXml-1.25.5@sha256:4f8534cda290b3d0a76b4ca5c4b9aa20902dcf029ddd50998d07c5dd608ad6f6,4420
pantry-tree:
size: 4076
sha256: 9682020b148433c41f5efee327b66708875015df8d4b3d48f875ac21f8222e1b
original:
hackage: HaXml-1.25.5
snapshots:
- completed:
size: 488576
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/15/0.yaml
sha256: e4b6a87b47ec1cf63a7f1a0884a3b276fce2b0d174a10e8753c4f618e7983568
original: lts-15.0