packages feed

symbolize-0.1.0.1: 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.1
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 below or 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