Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
22fc3bb148 | ||
|
|
00270d4bc7 | ||
|
|
f07769687b | ||
|
|
67bb87ceff |
@ -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
|
||||||
|
|||||||
20
Setup.hs
20
Setup.hs
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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
19
stack.yaml.lock
Normal 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
|
||||||
Loading…
Reference in New Issue
Block a user