cabal-version: 3.0 -- The cabal-version field refers to the version of the .cabal specification, -- and can be different from the cabal-install (the tool) version and the -- Cabal (the library) version you are using. As such, the Cabal (the library) -- version used must be equal or greater than the version stated in this field. -- Starting from the specification version 2.2, the cabal-version field must be -- the first thing in the cabal file. -- Initial package description 'gigaparsec' generated by -- 'cabal init'. For further documentation, see: -- http://haskell.org/cabal/users-guide/ -- -- The name of the package. name: gigaparsec -- The package version. -- See the Haskell package versioning policy (PVP) for standards -- guiding when and how versions should be incremented. -- https://pvp.haskell.org -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change version: 0.3.0.0 -- A short (one-line) description of the package. synopsis: Refreshed parsec-style library for compatibility with Scala parsley -- A longer description of the package. description: This is a monadic parser combinator designed to be easy to use, especially for beginners, and have API parity with the @[parsley](https://github.com/j-mie6/parsley)@ library. It supports design patterns introduced in /Design Patterns for Parser Combinators/. -- URL for the project homepage or repository. homepage: https://github.com/j-mie6/gigaparsec -- The license under which the package is released. license: BSD-3-Clause -- The file containing the license text. license-file: LICENSE -- The package author(s). author: Jamie Willis -- An email address to which users can send suggestions, bug reports, and patches. maintainer: j.willis19@imperial.ac.uk -- A copyright notice. copyright: (c) 2023-present Jamie Willis, Gigaparsec Maintainers category: Text build-type: Simple -- Extra doc files to be distributed with the package, such as a CHANGELOG or a README. -- Don't add README.md here, because it contains stuff specific to the repo itself extra-doc-files: CHANGELOG.md stability: alpha -- Extra source files to be distributed with the package, such as examples, or a tutorial module. -- extra-source-files: common warnings ghc-options: -Weverything -Wno-unsafe -Wno-implicit-prelude -Wno-missing-local-signatures -Wno-star-is-type common extensions -- Extensions we want enabled without having to specify them default-extensions: ScopedTypeVariables, RankNTypes, BangPatterns, TypeApplications, MultiWayIf, DerivingStrategies, InstanceSigs, StandaloneKindSignatures, ImportQualifiedPost, RecordWildCards common base -- Other library packages from which modules are imported. -- 4.14 is GHC 8.10 (the 2022 State of Haskell indicates 41% still use 8.10) build-depends: base >=4.14 && < 5 source-repository head type: git location: git://github.com/j-mie6/gigaparsec.git library import: warnings, extensions, base -- Modules exported by the library. exposed-modules: Text.Gigaparsec, Text.Gigaparsec.Char, Text.Gigaparsec.Combinator, Text.Gigaparsec.Combinator.NonEmpty, Text.Gigaparsec.Debug, Text.Gigaparsec.Errors.Combinator, Text.Gigaparsec.Errors.DefaultErrorBuilder, Text.Gigaparsec.Errors.ErrorBuilder, Text.Gigaparsec.Errors.ErrorGen, Text.Gigaparsec.Errors.Patterns, Text.Gigaparsec.Errors.TokenExtractors, Text.Gigaparsec.Expr, Text.Gigaparsec.Expr.Chain, Text.Gigaparsec.Expr.Infix, Text.Gigaparsec.Expr.Subtype, Text.Gigaparsec.Patterns, Text.Gigaparsec.Position, Text.Gigaparsec.State, Text.Gigaparsec.Token.Descriptions, Text.Gigaparsec.Token.Errors, Text.Gigaparsec.Token.Lexer, Text.Gigaparsec.Token.Patterns, -- Internals Text.Gigaparsec.Internal, Text.Gigaparsec.Internal.Errors, Text.Gigaparsec.Internal.Errors.CaretControl, Text.Gigaparsec.Internal.Errors.DefuncBuilders, Text.Gigaparsec.Internal.Errors.DefuncError, Text.Gigaparsec.Internal.Errors.DefuncHints, Text.Gigaparsec.Internal.Errors.DefuncTypes, Text.Gigaparsec.Internal.Errors.ErrorItem, Text.Gigaparsec.Internal.Errors.ParseError, Text.Gigaparsec.Internal.Require, Text.Gigaparsec.Internal.Token.BitBounds, Text.Gigaparsec.Internal.Token.Errors, Text.Gigaparsec.Internal.Token.Generic, Text.Gigaparsec.Internal.Token.Lexer, Text.Gigaparsec.Internal.Token.Names, Text.Gigaparsec.Internal.Token.Numeric, Text.Gigaparsec.Internal.Token.Symbol, Text.Gigaparsec.Internal.Token.Text, -- this can probably be loosened? build-depends: containers >= 0.6 && < 0.7, selective >= 0.6 && < 0.8, pretty-terminal >= 0.1.0 && < 0.2, template-haskell >= 2.16 && < 3, rt >= 0.1 && < 0.2 -- Modules included in this library but not exported. -- other-modules: -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- Directories containing source files. hs-source-dirs: src include-dirs: includes install-includes: includes/portable-unlifted.h -- Base language which the package is written in. default-language: Haskell2010 test-suite gigaparsec-test import: warnings, extensions, base default-extensions: OverloadedStrings, TypeOperators, BlockArguments, GADTs -- Base language which the package is written in. default-language: Haskell2010 -- Modules included in this executable, other than Main. other-modules: Text.Gigaparsec.GigaparsecTests, Text.Gigaparsec.PrimitiveTests, Text.Gigaparsec.CharTests, Text.Gigaparsec.CombinatorTests, Text.Gigaparsec.DebugTests, Text.Gigaparsec.ExprTests, Text.Gigaparsec.ErrorsTests, Text.Gigaparsec.Expr.ChainTests, Text.Gigaparsec.Expr.InfixTests, Text.Gigaparsec.TokenTests, Text.Gigaparsec.Token.NamesTests, Text.Gigaparsec.Internal.Test, Text.Gigaparsec.Internal.TestError, Text.Gigaparsec.Internal.PlainString ghc-options: -Wno-missing-export-lists -Wno-missing-safe-haskell-mode -Wno-safe -Wno-missing-import-lists -Wno-all-missed-specialisations -Wno-type-defaults -Wno-missing-kind-signatures -Wno-orphans -Wno-monomorphism-restriction -- The interface type and version of the test suite. type: exitcode-stdio-1.0 -- Directories containing source files. hs-source-dirs: test -- The entrypoint to the test suite. main-is: Main.hs -- Test dependencies. build-depends: gigaparsec, containers >= 0.6 && < 0.7, deepseq >= 1.4 && < 1.6, bytestring >= 0.9 && < 0.13, --deriving-compat >= 0.6 && < 0.7, tasty >=1.1 && <1.6, tasty-expected-failure >=0.11 && <0.13, tasty-hunit >=0.9 && <0.11, --TODO: property based testing will be useful when we optimise combinators -- to test against their base implementations --tasty-quickcheck --TODO: performance testing with tasty-bench? --tasty-bench -- we'd need to keep the basefile files somewhere, cache in CI or keep in repo? knob >=0.1.1 && <0.3, rt >= 0.1 && < 0.2, benchmark perf-test import: warnings, extensions, base type: exitcode-stdio-1.0 default-extensions: OverloadedStrings, TypeOperators, BlockArguments, GADTs -- Base language which the package is written in. default-language: Haskell2010 hs-source-dirs: benchmarks build-depends: gigaparsec, --containers >= 0.6 && < 0.7, gauge >= 0.1 && < 0.3, deepseq >= 1.4 && < 1.6 main-is: Main.hs