make quasiquoter (and haskell-src-exts dependency) optional
This commit is contained in:
parent
eaf07f8981
commit
9269caacb7
2 changed files with 30 additions and 9 deletions
|
@ -34,6 +34,11 @@ common build-settings
|
||||||
default-language: Haskell2010
|
default-language: Haskell2010
|
||||||
ghc-options: -Wall -Wunused-packages
|
ghc-options: -Wall -Wunused-packages
|
||||||
|
|
||||||
|
flag quoter
|
||||||
|
manual: True
|
||||||
|
description: Include the quasiquoter
|
||||||
|
default: True
|
||||||
|
|
||||||
flag checked
|
flag checked
|
||||||
manual: True
|
manual: True
|
||||||
description: Add bounds-checking to primitive array operations
|
description: Add bounds-checking to primitive array operations
|
||||||
|
@ -48,7 +53,6 @@ library
|
||||||
Data.Bytes.Builder.Bounded.Class
|
Data.Bytes.Builder.Bounded.Class
|
||||||
Data.Bytes.Builder.Bounded.Unsafe
|
Data.Bytes.Builder.Bounded.Unsafe
|
||||||
Data.Bytes.Builder.Class
|
Data.Bytes.Builder.Class
|
||||||
Data.Bytes.Builder.Template
|
|
||||||
Data.Bytes.Builder.Unsafe
|
Data.Bytes.Builder.Unsafe
|
||||||
|
|
||||||
other-modules:
|
other-modules:
|
||||||
|
@ -60,17 +64,21 @@ library
|
||||||
, base >=4.17.0.0 && <4.21
|
, base >=4.17.0.0 && <4.21
|
||||||
, byteslice >=0.2.6 && <0.3
|
, byteslice >=0.2.6 && <0.3
|
||||||
, bytestring >=0.10.8.2 && <0.13
|
, bytestring >=0.10.8.2 && <0.13
|
||||||
, haskell-src-meta >=0.8.13
|
|
||||||
, integer-logarithms >=1.0.3 && <1.1
|
, integer-logarithms >=1.0.3 && <1.1
|
||||||
, natural-arithmetic >=0.1 && <0.3
|
, natural-arithmetic >=0.1 && <0.3
|
||||||
, primitive-offset >=0.2 && <0.3
|
, primitive-offset >=0.2 && <0.3
|
||||||
, run-st >=0.1.2 && <0.2
|
, run-st >=0.1.2 && <0.2
|
||||||
, template-haskell >=2.16
|
|
||||||
, text >=2.0 && <2.2
|
, text >=2.0 && <2.2
|
||||||
, text-short >=0.1.3 && <0.2
|
, text-short >=0.1.3 && <0.2
|
||||||
, wide-word >=0.1.0.9 && <0.2
|
, wide-word >=0.1.0.9 && <0.2
|
||||||
, zigzag
|
, zigzag
|
||||||
|
|
||||||
|
if flag(quoter)
|
||||||
|
build-depends:
|
||||||
|
haskell-src-meta >=0.8.13
|
||||||
|
, template-haskell >=2.16
|
||||||
|
exposed-modules: Data.Bytes.Builder.Template
|
||||||
|
|
||||||
if impl(ghc >=9.2)
|
if impl(ghc >=9.2)
|
||||||
hs-source-dirs: src-9.2
|
hs-source-dirs: src-9.2
|
||||||
|
|
||||||
|
@ -112,9 +120,14 @@ test-suite test
|
||||||
, tasty-hunit >=0.10.0.2 && <0.11
|
, tasty-hunit >=0.10.0.2 && <0.11
|
||||||
, tasty-quickcheck >=0.10.1 && <0.11
|
, tasty-quickcheck >=0.10.1 && <0.11
|
||||||
, text >=2.0 && <2.2
|
, text >=2.0 && <2.2
|
||||||
, text-short
|
|
||||||
, wide-word >=0.1.0.9 && <0.2
|
, wide-word >=0.1.0.9 && <0.2
|
||||||
|
|
||||||
|
default-extensions: CPP
|
||||||
|
|
||||||
|
if flag(quoter)
|
||||||
|
cpp-options: -DQUOTER
|
||||||
|
build-depends: text-short
|
||||||
|
|
||||||
benchmark bench
|
benchmark bench
|
||||||
import: build-settings
|
import: build-settings
|
||||||
type: exitcode-stdio-1.0
|
type: exitcode-stdio-1.0
|
||||||
|
|
18
test/Main.hs
18
test/Main.hs
|
@ -12,13 +12,10 @@ import Prelude hiding (replicate)
|
||||||
import Control.Applicative (liftA2)
|
import Control.Applicative (liftA2)
|
||||||
import Control.Monad.ST (runST)
|
import Control.Monad.ST (runST)
|
||||||
import Data.Bytes.Builder
|
import Data.Bytes.Builder
|
||||||
import Data.Bytes.Builder.Template (bldr)
|
|
||||||
import Data.Bytes.Types (MutableBytes (MutableBytes))
|
import Data.Bytes.Types (MutableBytes (MutableBytes))
|
||||||
import Data.Char (chr, ord)
|
import Data.Char (chr, ord)
|
||||||
import Data.IORef (IORef, newIORef, readIORef, writeIORef)
|
import Data.IORef (IORef, newIORef, readIORef, writeIORef)
|
||||||
import Data.Maybe (fromMaybe)
|
|
||||||
import Data.Primitive (ByteArray, PrimArray)
|
import Data.Primitive (ByteArray, PrimArray)
|
||||||
import Data.Text.Short (ShortText)
|
|
||||||
import Data.WideWord (Word128 (Word128), Word256 (Word256))
|
import Data.WideWord (Word128 (Word128), Word256 (Word256))
|
||||||
import Data.Word
|
import Data.Word
|
||||||
import Numeric.Natural (Natural)
|
import Numeric.Natural (Natural)
|
||||||
|
@ -28,16 +25,20 @@ import Test.Tasty (TestTree, defaultMain, testGroup)
|
||||||
import Test.Tasty.HUnit ((@=?))
|
import Test.Tasty.HUnit ((@=?))
|
||||||
import Text.Printf (printf)
|
import Text.Printf (printf)
|
||||||
|
|
||||||
|
#ifdef QUOTER
|
||||||
|
import Data.Bytes.Builder.Template (bldr)
|
||||||
|
import Data.Maybe (fromMaybe)
|
||||||
|
import Data.Text.Short (ShortText)
|
||||||
|
#endif
|
||||||
|
|
||||||
import qualified Arithmetic.Nat as Nat
|
import qualified Arithmetic.Nat as Nat
|
||||||
import qualified Data.Bits as Bits
|
import qualified Data.Bits as Bits
|
||||||
import qualified Data.ByteString as ByteString
|
import qualified Data.ByteString as ByteString
|
||||||
import qualified Data.ByteString.Builder as BB
|
import qualified Data.ByteString.Builder as BB
|
||||||
import qualified Data.ByteString.Lazy.Char8 as LB
|
import qualified Data.ByteString.Lazy.Char8 as LB
|
||||||
import qualified Data.Bytes as Bytes
|
import qualified Data.Bytes as Bytes
|
||||||
import qualified Data.Bytes.Builder as Builder
|
|
||||||
import qualified Data.Bytes.Builder.Bounded as Bounded
|
import qualified Data.Bytes.Builder.Bounded as Bounded
|
||||||
import qualified Data.Bytes.Chunks as Chunks
|
import qualified Data.Bytes.Chunks as Chunks
|
||||||
import qualified Data.Bytes.Text.Ascii as Ascii
|
|
||||||
import qualified Data.Bytes.Text.Latin1 as Latin1
|
import qualified Data.Bytes.Text.Latin1 as Latin1
|
||||||
import qualified Data.List as L
|
import qualified Data.List as L
|
||||||
import qualified Data.Primitive as PM
|
import qualified Data.Primitive as PM
|
||||||
|
@ -48,6 +49,11 @@ import qualified Test.Tasty.HUnit as THU
|
||||||
import qualified Test.Tasty.QuickCheck as TQC
|
import qualified Test.Tasty.QuickCheck as TQC
|
||||||
import qualified Prelude
|
import qualified Prelude
|
||||||
|
|
||||||
|
#ifdef QUOTER
|
||||||
|
import qualified Data.Bytes.Builder as Builder
|
||||||
|
import qualified Data.Bytes.Text.Ascii as Ascii
|
||||||
|
#endif
|
||||||
|
|
||||||
import qualified HexWord64
|
import qualified HexWord64
|
||||||
import qualified Word16Tree
|
import qualified Word16Tree
|
||||||
|
|
||||||
|
@ -329,6 +335,7 @@ tests =
|
||||||
]
|
]
|
||||||
@=? map Exts.toList (Exts.toList res)
|
@=? map Exts.toList (Exts.toList res)
|
||||||
]
|
]
|
||||||
|
#ifdef QUOTER
|
||||||
, testGroup
|
, testGroup
|
||||||
"bytes templates"
|
"bytes templates"
|
||||||
[ THU.testCase "A" $ do
|
[ THU.testCase "A" $ do
|
||||||
|
@ -352,6 +359,7 @@ tests =
|
||||||
msg = Chunks.concat . Builder.run 200 $ msgBuilder
|
msg = Chunks.concat . Builder.run 200 $ msgBuilder
|
||||||
in Ascii.fromString "there are 137 lights!" @=? msg
|
in Ascii.fromString "there are 137 lights!" @=? msg
|
||||||
]
|
]
|
||||||
|
#endif
|
||||||
]
|
]
|
||||||
|
|
||||||
bytesOntoRef ::
|
bytesOntoRef ::
|
||||||
|
|
Loading…
Add table
Reference in a new issue