packages feed

symbolize-0.1.0.0: symbolize.cabal

cabal-version: 2.2

-- This file has been generated from package.yaml by hpack version 0.36.0.
--
-- see: https://github.com/sol/hpack

name:           symbolize
version:        0.1.0.0
synopsis:       Efficient global Symbol Table, with Garbage Collection.
description:     Symbols, also known as Atoms or Interned Strings, are a common technique to reduce memory usage and improve performance when using many small strings.
                By storing a single copy of each encountered string in a global table and giving out indexes to that table, it is possible to compare strings for equality in constant time, instead of linear (in string size) time.
                The main advantages of Symbolize over existing symbol table implementations are:
                - Garbage collection: Symbols which are no longer used are automatically cleaned up. - `Symbol`s have a memory footprint of exactly 1 `Word` and are nicely unpacked by GHC. - Support for any `Textual` type, including `String`, (strict and lazy) `Data.Text`, (strict and lazy) `Data.ByteString` etc. - Thread-safe. - Calls to `lookup` and `unintern` are free of atomic memory barriers (and never have to wait on a concurrent thread running `intern`) - Support for a maximum of 2^64 symbols at the same time (you'll probably run out of memory before that point).
                Please see the full README on GitHub at <https://github.com/Qqwy/haskell-symbolize#readme> 
category:       Data, Data Structures
homepage:       https://github.com/Qqwy/haskell-symbolize#readme
bug-reports:    https://github.com/Qqwy/haskell-symbolize/issues
author:         Qqwy / Marten
maintainer:     qqwy@gmx.com
copyright:      2023 Marten Wijnja
license:        BSD-3-Clause
license-file:   LICENSE
build-type:     Simple
extra-source-files:
    README.md
    CHANGELOG.md

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

library
  exposed-modules:
      Symbolize
  other-modules:
      Symbolize.Textual
      Symbolize.Accursed
  hs-source-dirs:
      src
  default-extensions:
      BangPatterns
      OverloadedStrings
      DeriveAnyClass
      TypeApplications
      NamedFieldPuns
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints
  build-depends:
      base >=4.7 && <5
    , bytestring >=0.11.0 && <0.12
    , deepseq >=1.4.0 && <1.5
    , hashable >=1.4.0 && <1.5
    , text >=2.0 && <2.2
    , text-display >=0.0.5 && <0.1
    , text-short >=0.1.0 && <0.2
    , unordered-containers >=0.2.0 && <0.3
  default-language: Haskell2010

test-suite symbolize-doctest
  type: exitcode-stdio-1.0
  main-is: DocTest.hs
  other-modules:
      Paths_symbolize
  autogen-modules:
      Paths_symbolize
  hs-source-dirs:
      test/doctest
  default-extensions:
      BangPatterns
      OverloadedStrings
      DeriveAnyClass
      TypeApplications
      NamedFieldPuns
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.7 && <5
    , bytestring >=0.11.0 && <0.12
    , deepseq >=1.4.0 && <1.5
    , doctest-parallel
    , hashable >=1.4.0 && <1.5
    , symbolize
    , text >=2.0 && <2.2
    , text-display >=0.0.5 && <0.1
    , text-short >=0.1.0 && <0.2
    , unordered-containers >=0.2.0 && <0.3
  default-language: Haskell2010

test-suite symbolize-test
  type: exitcode-stdio-1.0
  main-is: Suite.hs
  other-modules:
      SymbolizeTest
      Paths_symbolize
  autogen-modules:
      Paths_symbolize
  hs-source-dirs:
      test/suite
  default-extensions:
      BangPatterns
      OverloadedStrings
      DeriveAnyClass
      TypeApplications
      NamedFieldPuns
  ghc-options: -Wall -Wcompat -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wmissing-export-lists -Wmissing-home-modules -Wpartial-fields -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N
  build-tool-depends:
      tasty-discover:tasty-discover
  build-depends:
      async
    , base >=4.7 && <5
    , bytestring >=0.11.0 && <0.12
    , deepseq >=1.4.0 && <1.5
    , hashable >=1.4.0 && <1.5
    , hedgehog
    , symbolize
    , tasty
    , tasty-golden
    , tasty-hedgehog
    , tasty-hunit
    , text >=2.0 && <2.2
    , text-display >=0.0.5 && <0.1
    , text-short >=0.1.0 && <0.2
    , unordered-containers >=0.2.0 && <0.3
  default-language: Haskell2010