packages feed

packed-dawg 0.2.0.7 → 0.2.0.8

raw patch · 4 files changed

+60/−12 lines, 4 filesdep ~binarydep ~vectordep ~vector-binary-instancesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: binary, vector, vector-binary-instances

API changes (from Hackage documentation)

- Data.DAWG.Packed: instance Binary Node
- Data.DAWG.Packed: instance Eq Node
- Data.DAWG.Packed: instance NFData Node
- Data.DAWG.Packed: instance Show Node
+ Data.DAWG.Packed: instance Control.DeepSeq.NFData Data.DAWG.Packed.Node
+ Data.DAWG.Packed: instance Data.Binary.Class.Binary Data.DAWG.Packed.Node
+ Data.DAWG.Packed: instance GHC.Classes.Eq Data.DAWG.Packed.Node
+ Data.DAWG.Packed: instance GHC.Show.Show Data.DAWG.Packed.Node

Files

Benchmarks.hs view
@@ -10,7 +10,7 @@     ws <- fmap lines $ readFile dictPath     let dawg = fromList ws     test [-        bench "dawg generation" $ whnf (char . fromList) ws,+        bench "dawg generation" $ whnf fromList ws,         bench "enlist suffixes" $ nf toList dawg,         bench "serialize"       $ nfIO $ toFile "twl06.dawg" dawg,         bench "deserialize"     $ nfIO $ fromFile "twl06.dawg"
Data/DAWG/Packed.hs view
@@ -48,8 +48,15 @@     ) where  import qualified Data.Vector.Unboxed as V++ import qualified Data.HashMap.Strict as HM import qualified Control.Monad.State.Strict as S++import Control.Monad.ST.Strict+import Data.STRef++import Data.Function import Control.DeepSeq import Control.Arrow import Data.Binary@@ -218,6 +225,38 @@     go n = [[char n] | endOfWord n] ++ (map (char n:) . go =<< children n)  +-- trieToNode :: Trie -> Node+-- trieToNode n = runST $ do+--   m <- HT.new :: ST s (HashTable s [Word32] Int)+--   HT.insert m [] 0  +--   iref <- newSTRef (0 :: Int)++--   let adjustChd = \case+--         []   -> (0, [])+--         [x]  -> (1, [x .|. 2])+--         x:xs -> (succ *** (x:)) (adjustChd xs)++--   root <- ($ n) $ fix $ \go node@TrieNode{..} -> do+--     xs <- mapM go chd+--     let (len, xs') = adjustChd xs+--     i <- readSTRef iref+--     pack val False eow `fmap`+--       (maybe+--         (do HT.insert m xs' $! (i + 1)+--             writeSTRef iref $! (i + len)+--             pure $! (i + 1))+--         pure+--         =<< (HT.lookup m xs'))++--   i <- readSTRef iref+--   mlist <- HT.toList m+--   let assocs = (i + 1, root .|. 2):+--         [(i', x) | (xs, i) <- mlist,+--                    (i', x) <- zip [i..] xs]+--       vec = V.unsafeAccum (flip const) (V.replicate (i + 2) 0) assocs++--   pure $ unpack (V.unsafeLast vec) vec+ reduce :: Trie -> S.State (HM.HashMap [Word32] Int, Int) Word32 reduce !node@TrieNode{..} = do     xs <- mapM reduce chd@@ -240,7 +279,7 @@                                              (i', x) <- zip [i..] xs]     vec = V.unsafeAccum (flip const) (V.replicate (i + 2) 0) assocs     in unpack (V.unsafeLast vec) vec-+    -- | Allows for faster DAWG generation than 'fromList'. The input list must be in ascending order, but this is not checked. fromAscList :: [String] -> Node
packed-dawg.cabal view
@@ -1,7 +1,7 @@   name:                packed-dawg-version:             0.2.0.7+version:             0.2.0.8 synopsis:            Generation and traversal of highly compressed directed acyclic word graphs.  description:         Generation and traversal of highly compressed directed acyclic word graphs. license:             BSD3@@ -11,7 +11,7 @@ category:            Data build-type:          Simple cabal-version:       >=1.8-data-files:          TWL06.txt+data-files:          TWL06.txt, ridyhew.txt  Source-Repository head     Type: git@@ -19,25 +19,34 @@  library   exposed-modules:      Data.DAWG.Packed      -  build-depends:        base >= 4.6.0 && <= 4.9, vector == 0.10.*, mtl >=2.1, -                        vector-binary-instances == 0.2.1.*, binary == 0.7.*, deepseq>=1.3, unordered-containers >= 0.2+  build-depends:        base >= 4.6.0 && <= 4.9,+                        binary >= 0.7.0,+                        deepseq>=1.3,+                        mtl >=2.1,+                        unordered-containers >= 0.2,+                        vector >= 0.10.0,+                        vector-binary-instances >= 0.2.1.0  test-suite test   main-is:            Tests.hs   type:               exitcode-stdio-1.0 -  build-depends:      base >= 4.6.0 && <= 4.9, vector == 0.10.*, mtl >=2.1, -                      vector-binary-instances == 0.2.1.*, binary == 0.7.*, deepseq>=1.3, unordered-containers >= 0.2,-                      QuickCheck >= 2.5, HUnit >= 1.2, tasty >= 0.3, tasty-quickcheck >= 0.3, tasty-hunit >= 0.2+  build-depends:      base >= 4.6.0 && <= 4.9, vector >= 0.10.0, mtl >=2.1, +                      vector-binary-instances >= 0.2.1.0, binary >= 0.7.0, +                      deepseq>=1.3, unordered-containers >= 0.2,+                      QuickCheck >= 2.5, HUnit >= 1.2, tasty >= 0.3, +                      tasty-quickcheck >= 0.3, tasty-hunit >= 0.2    ghc-options:        -O2 -rtsopts  benchmark bench-dawg-gen     main-is:            Benchmarks.hs-    Build-depends:      base >= 4.6.0 && <= 4.9, vector == 0.10.*, mtl >=2.1, -                        vector-binary-instances == 0.2.1.*, binary == 0.7.*, deepseq>=1.3, unordered-containers >= 0.2,-+    Build-depends:      base >= 4.6.0 && <= 4.9, vector >= 0.10.0, mtl >=2.1, +                        vector-binary-instances >= 0.2.1.0, binary >= 0.7.0, +                        deepseq >= 1.3, unordered-containers >= 0.2,                         criterion >= 1.0++      ghc-options:        -O2 -rtsopts     type:               exitcode-stdio-1.0
+ ridyhew.txt view

file too large to diff