packages feed

foundation-0.0.2: foundation.cabal

Name:                foundation
Version:             0.0.2
Synopsis:            Alternative prelude with batteries and no dependencies
Description:
    A custom prelude with no dependencies apart from base.
    .
    This package has the following goals:
    .
    * provide a base like sets of modules that provide a consistent set of features and bugfixes across multiple versions of GHC (unlike base).
    .
    * provide a better and more efficient prelude than base's prelude.
    .
    * be self-sufficient: no external dependencies apart from base.
    .
    * provide better data-types: packed unicode string by default, arrays.
    .
    * Better numerical classes that better represent mathematical thing (No more all-in-one Num).
    .
    * Better I/O system with less Lazy IO
    .
    * Usual partial functions distinguished through type system
License:             BSD3
License-file:        LICENSE
Copyright:           Vincent Hanquez <vincent@snarc.org>
Author:              Vincent Hanquez <vincent@snarc.org>
Maintainer:          vincent@snarc.org
Category:            foundation
Stability:           experimental
Build-Type:          Simple
Homepage:            https://github.com/haskell-foundation/foundation
Bug-Reports:         https://github.com/haskell-foundation/foundation/issues
Cabal-Version:       >=1.10
tested-with:         GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1
extra-source-files:  README.md
                     cbits/*.h

source-repository head
  type: git
  location: https://github.com/haskell-foundation/foundation

Flag bench-all
  Description:       Add some comparaison benchmarks against other haskell libraries
  Default:           False
  Manual:            True

Flag bounds-check
  Description:       Add extra friendly boundary check for unsafe array operations
  Default:           False
  Manual:            True

Library
  Exposed-modules:   Foundation
                     Foundation.Numerical
                     Foundation.Array
                     Foundation.Array.Internal
                     Foundation.Bits
                     Foundation.Class.Bifunctor
                     Foundation.Class.Storable
                     Foundation.Convertible
                     Foundation.String
                     Foundation.String.ASCII
                     Foundation.IO
                     Foundation.IO.FileMap
                     Foundation.VFS
                     Foundation.VFS.Path
                     Foundation.VFS.FilePath
                     Foundation.VFS.URI
                     Foundation.Math.Trigonometry
                     Foundation.Hashing
                     Foundation.Foreign
                     Foundation.Collection
                     Foundation.Primitive
                     Foundation.System.Info
                     Foundation.Strict
                     Foundation.Parser
                     Foundation.Random
                     Foundation.System.Entropy
  Other-modules:     Foundation.String.Internal
                     Foundation.String.UTF8
                     Foundation.String.Encoding.Encoding
                     Foundation.String.Encoding.UTF16
                     Foundation.String.Encoding.UTF32
                     Foundation.String.Encoding.ASCII7
                     Foundation.String.Encoding.ISO_8859_1
                     Foundation.String.UTF8Table
                     Foundation.String.ModifiedUTF8
                     Foundation.Tuple
                     Foundation.Hashing.FNV
                     Foundation.Hashing.SipHash
                     Foundation.Hashing.Hasher
                     Foundation.Hashing.Hashable
                     Foundation.Collection.Buildable
                     Foundation.Collection.List
                     Foundation.Collection.Element
                     Foundation.Collection.InnerFunctor
                     Foundation.Collection.Collection
                     Foundation.Collection.Sequential
                     Foundation.Collection.Keyed
                     Foundation.Collection.Indexed
                     Foundation.Collection.Foldable
                     Foundation.Collection.Mutable
                     Foundation.Collection.Zippable
                     Foundation.Internal.Base
                     Foundation.Internal.CallStack
                     Foundation.Internal.Environment
                     Foundation.Internal.Primitive
                     Foundation.Internal.IsList
                     Foundation.Internal.Identity
                     Foundation.Internal.Proxy
                     Foundation.Internal.Types
                     Foundation.Internal.PrimTypes
                     Foundation.Internal.MonadTrans
                     Foundation.Internal.Natural
                     Foundation.Internal.NumLiteral
                     Foundation.Numerical.Primitives
                     Foundation.Numerical.Number
                     Foundation.Numerical.Additive
                     Foundation.Numerical.Subtractive
                     Foundation.Numerical.Multiplicative
                     Foundation.Numerical.Floating
                     Foundation.IO.File
                     Foundation.IO.Terminal
                     Foundation.Primitive.Types
                     Foundation.Primitive.Monad
                     Foundation.Primitive.Utils
                     Foundation.Primitive.FinalPtr
                     Foundation.Array.Chunked.Unboxed
                     Foundation.Array.Common
                     Foundation.Array.Unboxed
                     Foundation.Array.Unboxed.Mutable
                     Foundation.Array.Unboxed.ByteArray
                     Foundation.Array.Boxed
                     Foundation.Array.Bitmap
                     Foundation.Foreign.MemoryMap
                     Foundation.Foreign.MemoryMap.Types
                     Foundation.Partial
                     Foundation.System.Entropy.Common

  include-dirs:      cbits
  C-sources:         cbits/foundation_random.c

  if os(windows)
    Other-modules:   Foundation.Foreign.MemoryMap.Windows
                     Foundation.System.Entropy.Windows
  else
    Other-modules:   Foundation.Foreign.MemoryMap.Posix
                     Foundation.System.Entropy.Unix

  if impl(ghc >= 7.10)
    Exposed-modules: Foundation.Tuple.Nth

  Default-Extensions: NoImplicitPrelude
                      RebindableSyntax
                      TypeFamilies
                      BangPatterns
                      DeriveDataTypeable
  Build-depends:     base >= 4 && < 5
                   , ghc-prim
  -- FIXME add suport for armel mipsel
  --  CPP-options: -DARCH_IS_LITTLE_ENDIAN
  -- FIXME add support for powerpc powerpc64 armeb mipseb
  --  CPP-options: -DARCH_IS_BIG_ENDIAN
  if (arch(i386) || arch(x86_64))
    CPP-options: -DARCH_IS_LITTLE_ENDIAN
  else
    CPP-options: -DARCH_IS_UNKNOWN_ENDIAN
  if os(windows)
    Build-depends:    Win32
  ghc-options:       -Wall -fwarn-tabs
  default-language:  Haskell2010
  if impl(ghc >= 8.0)
    ghc-options:     -Wno-redundant-constraints
  if flag(bounds-check)
    CPP-options: -DFOUNDATION_BOUNDS_CHECK

Test-Suite test-foundation
  type:              exitcode-stdio-1.0
  hs-source-dirs:    tests
  Main-is:           Tests.hs
  Other-modules:     Test.Utils.Foreign
                     Test.Data.List
                     Test.Data.Unicode
                     Test.Data.ASCII
                     Test.Foundation.Collection
                     Test.Foundation.Bits
                     Test.Foundation.ChunkedUArray
                     Test.Foundation.Number
                     Test.Foundation.Encoding
                     Test.Foundation.Parser
                     Test.Foundation.Array
                     Test.Foundation.String
                     Test.Foundation.Storable
                     Test.Foundation.Random
                     Imports
  Default-Extensions: NoImplicitPrelude
                      RebindableSyntax
  Build-Depends:     base >= 3 && < 5
                   , mtl
                   , QuickCheck
                   , tasty
                   , tasty-quickcheck
                   , tasty-hunit
                   , foundation
  ghc-options:       -Wall -fno-warn-orphans -fno-warn-missing-signatures
  default-language:  Haskell2010
  if impl(ghc >= 8.0)
    ghc-options:     -Wno-redundant-constraints

Test-Suite doctest
  type:              exitcode-stdio-1.0
  hs-source-dirs:    tests
  default-language:  Haskell2010
  Main-is:           DocTest.hs
  Build-Depends:     base >= 3 && < 5
                   , doctest >= 0.11
  Default-Extensions: NoImplicitPrelude
                      RebindableSyntax
  if impl(ghc < 7.6)
    Buildable:       False
  Buildable:         False

Benchmark bench
  Main-Is:           Main.hs
  Other-modules:     BenchUtil.Common
                     BenchUtil.RefData
                     Sys
                     Fake.ByteString
                     Fake.Text
  hs-source-dirs:    benchs
  default-language:  Haskell2010
  type:              exitcode-stdio-1.0
  Default-Extensions: NoImplicitPrelude
                      BangPatterns
  Build-depends:     base >= 4, criterion, foundation
  if flag(bench-all)
    CPP-Options:     -DBENCH_ALL
    Build-depends:   text, attoparsec, vector, bytestring