packages feed

smirk-0.1.0.0: smirk.cabal

cabal-version:      3.0
name:               smirk
version:            0.1.0.0
synopsis:           Pure, effectful, resumable, step-budgeted PCRE interpreter for Haskell
description:
    Smirk (;-P / ;-) is a pure, native Haskell PCRE regular expression engine
    featuring step-bounded execution (ReDoS defense), pausable/resumable matching,
    dual algebraic effect interpreters (effectful & polysemy), and mono-traversable
    sequence polymorphism (Text, ByteString, Seq, Vector, NonEmpty).
license:            Apache-2.0
license-file:       LICENSE
author:             Nadia Yvette Chambers
maintainer:         Nadia Chambers <nadia.yvette.chambers@ik.me>
homepage:           https://github.com/NadiaYvette/smirk
bug-reports:        https://github.com/NadiaYvette/smirk/issues
category:           Text, Regex, Effects
build-type:         Simple
extra-doc-files:
    README.md
  , CHANGELOG.md
  , LICENSE

source-repository head
    type:     git
    location: https://github.com/NadiaYvette/smirk.git
    subdir:   packages/smirk

common common-options
    default-language:   GHC2021
    default-extensions:
        DataKinds
        DeriveAnyClass
        DeriveGeneric
        DerivingStrategies
        DuplicateRecordFields
        GADTs
        GeneralizedNewtypeDeriving
        LambdaCase
        MultiParamTypeClasses
        OverloadedRecordDot
        OverloadedStrings
        RankNTypes
        RecordWildCards
        ScopedTypeVariables
        TypeApplications
        TypeFamilies
        TypeOperators
    ghc-options:
        -Wall
        -Wcompat
        -Widentities
        -Wincomplete-record-updates
        -Wincomplete-uni-patterns
        -Wpartial-fields
        -Wredundant-constraints

library
    import:             common-options
    hs-source-dirs:     src
    exposed-modules:
        Smirk
        Smirk.Core.AST
        Smirk.Core.Parser
        Smirk.Core.Bytecode
        Smirk.Core.Compiler
        Smirk.Core.Quote
        Smirk.Engine.Sequence
        Smirk.Engine.VM
        Smirk.Glob
    build-depends:
        base >= 4.16 && < 5,
        containers >= 0.6 && < 1,
        bytestring >= 0.11 && < 1,
        megaparsec >= 9.0 && < 10,
        mono-traversable >= 1.0 && < 2,
        parser-combinators >= 1.3 && < 2,
        template-haskell >= 2.18 && < 3,
        text >= 2.0 && < 3,
        vector >= 0.12 && < 1

test-suite smirk-test
    import:             common-options
    type:               exitcode-stdio-1.0
    hs-source-dirs:     test
    main-is:            Spec.hs
    other-modules:
        ParserSpec
        VMSpec
        SequenceSpec
        QuoteSpec
        GlobSpec
    build-depends:
        base >= 4.16 && < 5,
        bytestring >= 0.11 && < 1,
        containers >= 0.6 && < 1,
        hspec >= 2.10 && < 3,
        smirk,
        text >= 2.0 && < 3,
        vector >= 0.12 && < 1