Skip to content

Commit be4c97a

Browse files
authored
Merge pull request #24 from packetloop/add-deepseq-support-use-hpack
Add deepseq support to XmlCursor. Use hpack.
2 parents 0f11298 + 6b56c87 commit be4c97a

File tree

6 files changed

+146
-152
lines changed

6 files changed

+146
-152
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ cabal.sandbox.config
1414
*.prof
1515
*.aux
1616
*.hp
17+
*.cabal
1718

1819
/*.submodules
1920
/.stack-work/

circle.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ jobs:
33
build:
44
working_directory: ~/hw-xml
55
docker:
6-
- image: fpco/stack-build:latest
6+
- image: quay.io/haskell_works/stack-build-cabal
77

88
steps:
99
- checkout
@@ -49,7 +49,7 @@ jobs:
4949
##### Building library
5050
- restore_cache:
5151
keys:
52-
- dot-stack-{{ checksum "stack.yaml" }}-{{ checksum "hw-xml.cabal" }}
52+
- dot-stack-{{ checksum "stack.yaml" }}-{{ checksum "package.yaml" }}
5353
- dot-stack-{{ checksum "stack.yaml" }}-build
5454
- dot-stack-{{ checksum "stack.yaml" }}-setup
5555

@@ -74,7 +74,7 @@ jobs:
7474
command: stack --stack-yaml stack-ci.yaml build --test --no-run-tests
7575

7676
- save_cache:
77-
key: dot-stack-{{ checksum "stack.yaml" }}-{{ checksum "hw-xml.cabal" }}
77+
key: dot-stack-{{ checksum "stack.yaml" }}-{{ checksum "package.yaml" }}
7878
paths:
7979
- ~/.stack
8080
- save_cache:

hw-xml.cabal

Lines changed: 0 additions & 136 deletions
This file was deleted.

package.yaml

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
name: hw-xml
2+
version: '0.1.0.1'
3+
synopsis: Conduits for tokenizing streams.
4+
description: Please see README.md
5+
category: Data, XML
6+
author:
7+
- John Ky
8+
- Alexey Raga
9+
maintainer: [email protected]
10+
copyright:
11+
- 2016 John Ky
12+
- Alexey Raga
13+
license: BSD3
14+
github: haskell-works/hw-xml
15+
homepage: http://github.com/haskell-works/hw-xml#readme
16+
extra-source-files:
17+
- README.md
18+
dependencies:
19+
- base >=4 && <5
20+
- bytestring
21+
- vector
22+
library:
23+
source-dirs: src
24+
ghc-options:
25+
- -Wall
26+
- -O2
27+
- -msse4.2
28+
exposed-modules:
29+
- HaskellWorks.Data.Xml
30+
- HaskellWorks.Data.Xml.Blank
31+
- HaskellWorks.Data.Xml.CharLike
32+
- HaskellWorks.Data.Xml.Conduit
33+
- HaskellWorks.Data.Xml.Conduit.Blank
34+
- HaskellWorks.Data.Xml.Conduit.Words
35+
- HaskellWorks.Data.Xml.Decode
36+
- HaskellWorks.Data.Xml.DecodeError
37+
- HaskellWorks.Data.Xml.DecodeResult
38+
- HaskellWorks.Data.Xml.Grammar
39+
- HaskellWorks.Data.Xml.Index
40+
- HaskellWorks.Data.Xml.Lens
41+
- HaskellWorks.Data.Xml.Succinct
42+
- HaskellWorks.Data.Xml.Succinct.Cursor
43+
- HaskellWorks.Data.Xml.Succinct.Cursor.BalancedParens
44+
- HaskellWorks.Data.Xml.Succinct.Cursor.BlankedXml
45+
- HaskellWorks.Data.Xml.Succinct.Cursor.InterestBits
46+
- HaskellWorks.Data.Xml.Succinct.Cursor.Internal
47+
- HaskellWorks.Data.Xml.Succinct.Cursor.Token
48+
- HaskellWorks.Data.Xml.Succinct.Index
49+
- HaskellWorks.Data.Xml.RawDecode
50+
- HaskellWorks.Data.Xml.RawValue
51+
- HaskellWorks.Data.Xml.Token.Tokenize
52+
- HaskellWorks.Data.Xml.Token.Types
53+
- HaskellWorks.Data.Xml.Token
54+
- HaskellWorks.Data.Xml.Type
55+
- HaskellWorks.Data.Xml.Value
56+
dependencies:
57+
- array
58+
- ansi-wl-pprint
59+
- attoparsec
60+
- cereal
61+
- conduit
62+
- containers
63+
- deepseq
64+
- ghc-prim
65+
- hw-balancedparens >=0.1.0.0
66+
- hw-bits >=0.4.0.0
67+
- hw-conduit >=0.2.0.2
68+
- hw-parser
69+
- hw-prim >=0.4.0.0
70+
- hw-rankselect >=0.7.0.0
71+
- hw-rankselect-base >=0.2.0.0
72+
- lens
73+
- mtl
74+
- resourcet
75+
- transformers
76+
- word8
77+
executables:
78+
hw-xml-example:
79+
main: Main.hs
80+
source-dirs: app
81+
ghc-options:
82+
- -threaded
83+
- -rtsopts
84+
- -with-rtsopts=-N
85+
- -O2
86+
- -Wall
87+
- -msse4.2
88+
dependencies:
89+
- hw-balancedparens >=0.2.0.1
90+
- hw-bits >=0.7.0.2
91+
- hw-prim >=0.5.0.0
92+
- hw-rankselect >=0.10.0.3
93+
- hw-xml
94+
tests:
95+
hw-xml-test:
96+
main: Spec.hs
97+
source-dirs: test
98+
ghc-options:
99+
- -threaded
100+
- -rtsopts
101+
- -with-rtsopts=-N
102+
dependencies:
103+
- attoparsec
104+
- conduit
105+
- hspec
106+
- hw-balancedparens >=0.1.0.0
107+
- hw-bits >=0.4.0.0
108+
- hw-conduit >=0.2.0.2
109+
- hw-xml
110+
- hw-prim >=0.4.0.0
111+
- hw-rankselect >=0.7.0.0
112+
- hw-rankselect-base >=0.2.0.0
113+
- QuickCheck
114+
benchmarks:
115+
bench:
116+
main: Main.hs
117+
source-dirs: bench
118+
ghc-options:
119+
- -O2
120+
- -Wall
121+
- -msse4.2
122+
dependencies:
123+
- conduit
124+
- criterion
125+
- hw-balancedparens >=0.1.0.0
126+
- hw-bits >=0.4.0.0
127+
- hw-conduit >=0.2.0.2
128+
- hw-xml
129+
- hw-prim >=0.4.0.0
130+
- mmap
131+
- resourcet
132+
data-files:
133+
- data/catalog.xml

src/HaskellWorks/Data/Xml/Succinct/Cursor/Internal.hs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
{-# LANGUAGE DeriveAnyClass #-}
2+
{-# LANGUAGE DeriveGeneric #-}
3+
{-# LANGUAGE DerivingStrategies #-}
14
{-# LANGUAGE FlexibleContexts #-}
25
{-# LANGUAGE FlexibleInstances #-}
36
{-# LANGUAGE InstanceSigs #-}
@@ -9,10 +12,12 @@ module HaskellWorks.Data.Xml.Succinct.Cursor.Internal
912
, xmlCursorPos
1013
) where
1114

15+
import Control.DeepSeq (NFData)
1216
import Data.ByteString.Internal as BSI
1317
import Data.String
1418
import Data.Word
1519
import Foreign.ForeignPtr
20+
import GHC.Generics
1621
import HaskellWorks.Data.Bits.BitShown
1722
import HaskellWorks.Data.FromByteString
1823
import HaskellWorks.Data.FromForeignRegion
@@ -37,7 +42,8 @@ data XmlCursor t v w = XmlCursor
3742
, balancedParens :: !w
3843
, cursorRank :: !Count
3944
}
40-
deriving (Eq, Show)
45+
deriving (Eq, Show, Generic)
46+
deriving anyclass NFData
4147

4248
instance (FromBlankedXml (XmlInterestBits a), FromBlankedXml (CBP.XmlBalancedParens b))
4349
=> FromByteString (XmlCursor BS.ByteString a b) where

stack.yaml

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
1-
resolver: lts-9.1
1+
resolver: lts-10.9
22

33
packages:
44
- '.'
55

66
extra-deps:
7-
- hedgehog-0.5
8-
- hw-balancedparens-0.2.0.1
9-
- hw-bits-0.7.0.2
10-
- hw-conduit-0.2.0.2
11-
- hw-excess-0.2.0.0
12-
- hw-int-0.0.0.3
13-
- hw-parser-0.0.0.3
14-
- hw-prim-0.5.0.0
15-
- hw-rankselect-0.10.0.3
16-
- hw-rankselect-base-0.2.0.2
17-
- hw-string-parse-0.0.0.4
7+
- hedgehog-0.5.3
188

199
flags: {}
2010

0 commit comments

Comments
 (0)