hw-succinct 0.0.0.1 → 0.0.0.2
raw patch · 6 files changed
+48/−25 lines, 6 filesdep ~basedep ~conduitdep ~resourcetPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, conduit, resourcet, vector
API changes (from Hackage documentation)
- HaskellWorks.Data.Time: measure :: a -> IO a
+ HaskellWorks.Diagnostics.Time: measure :: a -> IO a
Files
- README.md +1/−1
- app/Main.hs +20/−1
- hw-succinct.cabal +13/−9
- src/HaskellWorks/Data/Json/Succinct/Cursor/BlankedJson.hs +1/−1
- src/HaskellWorks/Data/Time.hs +0/−13
- src/HaskellWorks/Diagnostics/Time.hs +13/−0
README.md view
@@ -92,7 +92,7 @@ jsonTokenAt $ J.nextSibling $ J.firstChild $ J.nextSibling $ J.firstChild $ J.firstChild cursor ## References-* [Original Pull Request](https://github.com/snoyberg/conduit/pull/244)+* [Succinct Data Structures talk by Edward Kmett](https://www.youtube.com/watch?v=uA0Z7_4J7u8) * [Typed Tagless Final Interpreters](http://okmij.org/ftp/tagless-final/course/lecture.pdf) * [Conduit Overview](https://www.schoolofhaskell.com/school/to-infinity-and-beyond/pick-of-the-week/conduit-overview)
app/Main.hs view
@@ -1,4 +1,23 @@+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE ScopedTypeVariables #-}+ module Main where +import qualified Data.ByteString as BS+import qualified Data.Vector.Storable as DVS+import Data.Word+import GHC.Conc+import HaskellWorks.Data.Bits.BitShown+import HaskellWorks.Data.FromByteString+import HaskellWorks.Data.Json.Succinct.Cursor+import HaskellWorks.Data.Succinct.BalancedParens.Simple+import HaskellWorks.Diagnostics.Time+ main :: IO ()-main = print "Hello world"+main = do+ bs <- BS.readFile "/Users/jky/Downloads/78mbs.json"+ !cursor <- measure (fromByteString bs :: JsonCursor BS.ByteString (BitShown (DVS.Vector Word64)) (SimpleBalancedParens (DVS.Vector Word64)))+ print (jsonTokenAt (firstChild cursor))+ threadDelay 100000000+ print (jsonTokenAt cursor)+ return ()
hw-succinct.cabal view
@@ -1,5 +1,5 @@ name: hw-succinct-version: 0.0.0.1+version: 0.0.0.2 synopsis: Conduits for tokenizing streams. description: Please see README.md homepage: http://github.com/haskell-works/hw-succinct#readme@@ -12,16 +12,20 @@ build-type: Simple extra-source-files: README.md cabal-version: >= 1.10+data-dir: test-data executable hw-succinct-example hs-source-dirs: app main-is: Main.hs- ghc-options: -threaded -rtsopts -with-rtsopts=-N- build-depends: base- , attoparsec >= 0.10- , conduit >= 1.1 && < 1.3- , hw-succinct- , resourcet >= 1.1+ ghc-options: -threaded -rtsopts -with-rtsopts=-N -O2 -Wall -msse4.2+ build-depends: base >= 4 && < 5 ,+ bytestring ,+ conduit ,+ criterion >= 1.1.0.0 && < 1.2 ,+ hw-succinct ,+ mmap ,+ resourcet ,+ vector >= 0.6 && < 0.12 default-language: Haskell2010 library@@ -88,13 +92,13 @@ , HaskellWorks.Data.Succinct.RankSelect.Binary.Basic.Select1 , HaskellWorks.Data.Succinct.RankSelect.Binary.Poppy512 , HaskellWorks.Data.Succinct.RankSelect.Internal- , HaskellWorks.Data.Time , HaskellWorks.Data.Vector.BoxedVectorLike , HaskellWorks.Data.Vector.Storable.ByteString , HaskellWorks.Data.Vector.StorableVectorLike , HaskellWorks.Data.Vector.VectorLike- , HaskellWorks.Function , HaskellWorks.Data.Word+ , HaskellWorks.Function+ , HaskellWorks.Diagnostics.Time build-depends: base >= 4.7 && < 5 , array , attoparsec >= 0.10
src/HaskellWorks/Data/Json/Succinct/Cursor/BlankedJson.hs view
@@ -20,4 +20,4 @@ fromBlankedJson :: BlankedJson -> a instance FromByteString BlankedJson where- fromByteString bs = BlankedJson (runListConduit blankJson (chunkedBy 4096 bs))+ fromByteString bs = BlankedJson (runListConduit blankJson (chunkedBy 4064 bs))
− src/HaskellWorks/Data/Time.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE BangPatterns #-}--module HaskellWorks.Data.Time where--import System.CPUTime--measure :: a -> IO a-measure a = do- start <- getCPUTime- let !b = a- end <- getCPUTime- print (end - start)- return b
+ src/HaskellWorks/Diagnostics/Time.hs view
@@ -0,0 +1,13 @@+{-# LANGUAGE BangPatterns #-}++module HaskellWorks.Diagnostics.Time where++import System.CPUTime++measure :: a -> IO a+measure a = do+ start <- getCPUTime+ let !b = a+ end <- getCPUTime+ print (end - start)+ return b