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 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