packages feed

flat-0.4.2: flat.cabal

cabal-version:      >=1.10
name:               flat
version:            0.4.2
license:            BSD3
license-file:       LICENSE
copyright:          Copyright: (c) 2016-2020 Pasqualino `Titto` Assini
maintainer:         tittoassini@gmail.com
author:             Pasqualino `Titto` Assini
tested-with:
  GHC ==7.10.3 || ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.3

homepage:           http://quid2.org
synopsis:           Principled and efficient bit-oriented binary serialization.
description:
  Reference implementation of `flat`, a principled and efficient binary serialization format.

category:           Data,Parsing,Serialization
build-type:         Simple
extra-source-files:
  stack.yaml
  stack-6.35.yaml
  stack-9.21.yaml
  README.md
  CHANGELOG

source-repository head
  type:     git
  location: https://github.com/Quid2/flat

library
  exposed-modules:
    Data.ByteString.Convert
    Data.FloatCast
    Data.ZigZag
    Flat
    Flat.Bits
    Flat.Class
    Flat.Decoder
    Flat.Decoder.Prim
    Flat.Decoder.Strict
    Flat.Decoder.Types
    Flat.Encoder
    Flat.Encoder.Prim
    Flat.Encoder.Size
    Flat.Encoder.Strict
    Flat.Encoder.Types
    Flat.Endian
    Flat.Filler
    Flat.Instances
    Flat.Instances.Array
    Flat.Instances.Base
    Flat.Instances.ByteString
    Flat.Instances.Containers
    Flat.Instances.DList
    Flat.Instances.Mono
    Flat.Instances.Test
    Flat.Instances.Text
    Flat.Instances.Unordered
    Flat.Instances.Util
    Flat.Instances.Vector
    Flat.Memory
    Flat.Run
    Flat.Tutorial
    Flat.Types

  hs-source-dirs:   src
  default-language: Haskell2010
  other-extensions:
    NoMonomorphismRestriction
    DataKinds
    DefaultSignatures
    DeriveAnyClass
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveTraversable
    FlexibleContexts
    FlexibleInstances
    OverloadedStrings
    PolyKinds
    ScopedTypeVariables
    TupleSections
    TypeFamilies
    TypeOperators
    UndecidableInstances

  ghc-options:
    -Wall -O2 -funbox-strict-fields -fno-warn-orphans
    -fno-warn-name-shadowing

  --  -Werror

  if impl(eta -any)
    build-depends:
        array                 ==0.5.2.0
      , base
      , bytestring            ==0.10.8.2
      , containers            ==0.5.9.1
      , deepseq               ==1.4.3.0
      , dlist
      , filepath              ==1.4.1.1
      , ghc-prim              ==0.4.0.0
      , hashable              >=1.2.4.0  && <=1.2.7.0
      , HUnit                 ==1.6.0.0
      , memory                >=0.14.10  && <=0.14.14
      , mono-traversable      ==1.0.1
      , pretty                >=1.1.3.4  && <=1.1.3.6
      , primitive             >=0.6.1.0  && <=0.6.4.0
      , QuickCheck            ==2.10
      , tasty                 ==1.1.0.3
      , text                  ==1.2.3.0
      , unordered-containers  >=0.2.7.1  && <=0.2.9.0
      , vector                >=0.11.0.0 && <=0.12.0.1

  else
    build-depends:
        array                 >=0.5.1.0
      , base                  >=4.8     && <5
      , bytestring            >=0.10.6
      , containers
      , deepseq               >=1.4
      , dlist                 >=0.6
      , ghc-prim
      , hashable
      , mono-traversable
      , pretty                >=1.1.2
      , primitive
      , semigroups
      , text
      , unordered-containers
      , vector

-- , base                  >=4.8.2.0 && <5
-- if impl(ghc <8.2)
--   build-depends: semigroups >=0.8.4 && <0.17

test-suite spec
  type:             exitcode-stdio-1.0
  main-is:          Spec.hs
  cpp-options:      -DLIST_BIT -DTEST_DECBITS

  if impl(ghc <8.6)
    cpp-options: -DENUM_LARGE

  -- -DETA_VERSION -Dghcjs_HOST_OS

  -- ghc-options: -O1 
  if impl(ghc >8)
    ghc-options:
      -Wno-unused-top-binds -Wno-type-defaults -Wno-missing-signatures

  hs-source-dirs:   test
  other-modules:
    Test.Data
    Test.Data.Arbitrary
    Test.Data.Flat
    Test.Data.Values
    Test.Data2
    Test.Data2.Flat
    Test.E
    Test.E.Arbitrary
    Test.E.Flat

  default-language: Haskell2010
  build-depends:
      base
    , flat
    , ghc-prim
    , quickcheck-text
    , tasty-hunit
    , tasty-quickcheck
    , text

  if impl(ghc <8)
    build-depends: semigroups

  if impl(eta -any)
    build-depends:
        array             ==0.5.2.0
      , bytestring        ==0.10.8.2
      , containers        ==0.5.9.1
      , deepseq           ==1.4.3.0
      , filepath          ==1.4.1.1
      , HUnit             ==1.6.0.0
      , mono-traversable  ==1.0.1
      , QuickCheck        ==2.10
      , tasty             ==1.1.0.3
      , text              ==1.2.3.0

  else
    build-depends:
        array
      , bytestring
      , containers
      , deepseq
      , filepath
      , mono-traversable
      , QuickCheck
      , tasty
      , text

-- dynamic doctests and generation of static doctests
-- Usable only with recent versions of ghc (no ghcjs or eta)
-- test-suite doc
--   type:             exitcode-stdio-1.0
--   main-is:          DocSpec.hs
--   hs-source-dirs:   test
--   default-language: Haskell2010
--   build-depends:
--       base
--     , directory
--     , doctest    ==0.16.3.1
--     , filemanip  >=0.3.6.3
--     , text

-- static doctests (faster, useful for test coverage and to test ghcjs and eta)
test-suite doc-static
  type:             exitcode-stdio-1.0
  main-is:          DocTests.hs
  hs-source-dirs:   test
  other-modules:
    DocTest
    DocTest.Data.FloatCast
    DocTest.Data.ZigZag
    DocTest.Flat.Bits
    DocTest.Flat.Decoder.Prim
    DocTest.Flat.Endian
    DocTest.Flat.Instances.Array
    DocTest.Flat.Instances.Base
    DocTest.Flat.Instances.ByteString
    DocTest.Flat.Instances.Containers
    DocTest.Flat.Instances.DList
    DocTest.Flat.Instances.Mono
    DocTest.Flat.Instances.Text
    DocTest.Flat.Instances.Unordered
    DocTest.Flat.Instances.Vector
    DocTest.Flat.Tutorial

  default-language: Haskell2010
  build-depends:
      array
    , base
    , bytestring
    , containers
    , dlist
    , flat
    , pretty
    , quickcheck-instances
    , tasty
    , tasty-hunit
    , tasty-quickcheck
    , text
    , unordered-containers
    , vector

  -- >=0.3.22
  --, QuickCheck >= 2.13.2 && < 3
  --, hashable >= 1.2.6.1 && < 1.4
  if impl(ghc <8)
    build-depends: semigroups

--ghc-options: -Wno-unused-top-binds -Wno-type-defaults

-- Additional development time tests and benchmarks
-- test-suite core
--   type:             exitcode-stdio-1.0
--   main-is:          Core.hs
--   hs-source-dirs:   test
--   default-language: Haskell2010
--   ghc-options:      -O2
--   other-modules:
--   other-modules:
--     Test.Data
--     Test.Data.Values
--     Test.Data2
--     Test.Data2.Flat
--     Test.E
--     Test.E.Flat
--     Test.Data.Flat
--   build-depends:
--       base
--     , benchpress
--     , bytestring
--     , containers
--     , deepseq
--     , flat
--     , text
--     ,inspection-testing

-- executable listTest
--   main-is:          ListTest.hs
--   hs-source-dirs:   test
--   default-language: Haskell2010
--   build-depends:
--       base
--     , flat
--     , text
--     , time

-- benchmark microBench
--   type:             exitcode-stdio-1.0
--   main-is:          Micro.hs
--   hs-source-dirs:   benchmarks test
--   other-modules:
--     Common
--     Test.Data
--     Test.Data.Values
--     Test.Data2
--     Test.Data2.Flat
--     Test.E
--     Test.E.Flat
--     Test.Data.Flat

--   default-language: Haskell2010
--   build-depends:
--       base
--     , benchpress
--     , bytestring
--     , containers
--     , deepseq
--     , flat
--     , text

-- benchmark miniBench
--   type:             exitcode-stdio-1.0
--   main-is:          Mini.hs
--   hs-source-dirs:   benchmarks test
--   other-modules:
--     Report
--     Test.Data
--     Test.Data.Values
--     Test.Data2
--     Test.Data2.Flat
--     Test.E
--     Test.E.Flat
--     Test.Data.Flat

--   default-language: Haskell2010
--   ghc-options:      -O2
--   build-depends:
--       base
--     , flat
--     , text

--   if impl(eta -any)
--     build-depends:
--         bytestring         ==0.10.8.2
--       , containers         ==0.5.9.1
--       , criterion          ==1.5.1.0
--       , deepseq            ==1.4.3.0
--       , directory          ==1.3.1.0
--       , filepath           ==1.4.1.1
--       , mono-traversable   ==1.0.1
--       , process            ==1.6.2.0
--       , statistics         ==0.14.0.2
--       , text               ==1.2.3.0
--       , vector-algorithms  ==0.7.0.1

--   else
--     build-depends:
--         bytestring
--       , containers
--       , criterion
--       , deepseq
--       , directory
--       , filepath
--       , mono-traversable
--       , process
--       , statistics
--       , text