@@ -22,45 +22,20 @@ import HaskellWorks.Data.Json.Standard.Cursor.Load.Cursor
2222import HaskellWorks.Data.MQuery
2323import HaskellWorks.Data.MQuery.Micro
2424import HaskellWorks.Data.RankSelect.CsPoppy
25- import HaskellWorks.Data.Vector.AsVector8
25+ import HaskellWorks.Data.Vector.Storable
2626import Options.Applicative hiding (columns )
2727
2828import qualified App.Commands.Types as Z
29- import qualified Data.ByteString as BS
3029import qualified Data.ByteString.Internal as BSI
3130import qualified Data.ByteString.Lazy as LBS
3231import qualified Data.DList as DL
33- import qualified Data.Vector.Storable as DVS
34- import qualified Data.Vector.Storable.Mutable as DVSM
3532import qualified HaskellWorks.Data.BalancedParens.RangeMin as RM
3633import qualified HaskellWorks.Data.ByteString.Lazy as LBS
3734import qualified HaskellWorks.Data.Json.Simd.Index.Standard as S
3835import qualified Options.Applicative as OA
3936import qualified System.IO as IO
4037import qualified System.IO.MMap as IO
4138
42- constructUnzipN :: Int -> [(BS. ByteString , BS. ByteString )] -> (DVS. Vector Word64 , DVS. Vector Word64 )
43- constructUnzipN nBytes xs = (DVS. unsafeCast ibv, DVS. unsafeCast bpv)
44- where [ibv, bpv] = DVS. createT $ do
45- let nW64s = (nBytes + 7 ) `div` 8
46- let capacity = nW64s * 8
47- ibmv <- DVSM. new capacity
48- bpmv <- DVSM. new capacity
49- (ibmvRemaining, bpmvRemaining) <- go ibmv bpmv xs
50- return
51- [ DVSM. take (((DVSM. length ibmv - ibmvRemaining) `div` 8 ) * 8 ) ibmv
52- , DVSM. take (((DVSM. length bpmv - bpmvRemaining) `div` 8 ) * 8 ) bpmv
53- ]
54- go :: DVSM. MVector s Word8 -> DVSM. MVector s Word8 -> [(BS. ByteString , BS. ByteString )] -> ST s (Int , Int )
55- go ibmv bpmv ((ib, bp): ys) = do
56- DVS. copy (DVSM. take (BS. length ib) ibmv) (asVector8 ib)
57- DVS. copy (DVSM. take (BS. length bp) bpmv) (asVector8 bp)
58- go (DVSM. drop (BS. length ib) ibmv) (DVSM. drop (BS. length bp) bpmv) ys
59- go ibmv bpmv [] = do
60- DVSM. set (DVSM. take 8 ibmv) 0
61- DVSM. set (DVSM. take 8 bpmv) 0
62- return (DVSM. length (DVSM. drop 8 ibmv), DVSM. length (DVSM. drop 8 bpmv))
63-
6439runDemo :: Z. DemoOptions -> IO ()
6540runDemo opts = do
6641 let filePath = opts ^. the @ " filePath"
@@ -76,7 +51,7 @@ runDemo opts = do
7651 let ! bs = BSI. fromForeignPtr (castForeignPtr fptr) offset size
7752 case S. makeStandardJsonIbBps (LBS. resegmentPadded 512 (LBS. fromStrict bs)) of
7853 Right ibBps -> do
79- let (! ib, ! bp) = constructUnzipN size ibBps
54+ let (! ib, ! bp) = construct64UnzipN size ibBps
8055 let ! cursor = GenericCursor bs (makeCsPoppy ib) (RM. mkRangeMin bp) 1
8156 let ! json = lightJsonAt cursor
8257 let q = MQuery (DL. singleton json)
0 commit comments