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.3 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 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 , containers >=0.6.0 && <0.7 , 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 , containers >=0.6.0 && <0.7 , 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 , containers >=0.6.0 && <0.7 , 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