packages feed

tilia-0.0.1.0: tilia.cabal

cabal-version: 2.4
name: tilia
version: 0.0.1.0
license: BSD-3-Clause
license-file: LICENSE.md
maintainer: Mark Karpov <markkarpov92@gmail.com>
tested-with:
  ghc ==9.10.3
  ghc ==9.12.4
  ghc ==9.14.1

homepage: https://github.com/mrkkrp/tilia
bug-reports: https://github.com/mrkkrp/tilia/issues
synopsis: A formatter for Haskell source code
description: A formatter for Haskell source code.
category: Development, Formatting
build-type: Simple
extra-source-files:
  corpora/hackage/hackage.manifest
  corpora/hackage/hackage.report
  corpora/vendored/**/*.hs

extra-doc-files:
  CHANGELOG.md
  README.md

source-repository head
  type: git
  location: https://github.com/mrkkrp/tilia.git

flag dev
  description: Turn on development settings.
  default: False
  manual: True

library
  exposed-modules:
    Tilia.Comments
    Tilia.Comments.Attach
    Tilia.Comments.Place
    Tilia.Cpp
    Tilia.Cpp.Macros
    Tilia.Diff
    Tilia.Doc
    Tilia.Doc.Body
    Tilia.Doc.Combinators
    Tilia.Doc.Internal
    Tilia.Equivalence
    Tilia.Fixity
    Tilia.Fixity.Builtin
    Tilia.Fixity.ByHand
    Tilia.Fixity.Cabal
    Tilia.Fixity.Cache
    Tilia.Fixity.Debug
    Tilia.Fixity.Interface
    Tilia.Fixity.PackageDb
    Tilia.Fixity.Plan
    Tilia.Format
    Tilia.Imports
    Tilia.Newline
    Tilia.Package
    Tilia.Palette
    Tilia.Parser
    Tilia.Pragma
    Tilia.Process
    Tilia.Project
    Tilia.Render
    Tilia.Render.Body
    Tilia.Render.Class
    Tilia.Render.Context
    Tilia.Render.Data
    Tilia.Render.Declaration
    Tilia.Render.Expression
    Tilia.Render.Haddock
    Tilia.Render.Header
    Tilia.Render.Layout
    Tilia.Render.Literal
    Tilia.Render.Name
    Tilia.Render.Operator
    Tilia.Render.Pattern
    Tilia.Render.Pragma
    Tilia.Render.Signature
    Tilia.Render.Type
    Tilia.Run
    Tilia.Source
    Tilia.Source.Lines
    Tilia.Span
    Tilia.Span.Ghc
    Tilia.Target
    Tilia.Utils

  hs-source-dirs: src
  default-language: GHC2021
  build-depends:
    Cabal-syntax >=3.12 && <3.17,
    Diff >=0.4 && <2,
    aeson >=2.1 && <3,
    base >=4.14 && <5,
    base16-bytestring >=1 && <2,
    bytestring >=0.11 && <0.13,
    choice >=0.2 && <0.3,
    containers >=0.5 && <0.9,
    cryptohash-sha256 >=0.11 && <0.12,
    directory ^>=1.3,
    filepath >=1.4 && <1.6,
    ghc-lib-parser >=9.14 && <9.15,
    process >=1.6 && <1.7,
    syb >=0.7 && <0.8,
    tar >=0.6 && <0.7,
    text >=2.1 && <3,
    transformers >=0.5 && <0.7,
    zlib >=0.6 && <0.8,

  if flag(dev)
    ghc-options:
      -O2
      -Wall
      -Werror
      -Wredundant-constraints
      -Wpartial-fields
      -Wunused-packages
      -haddock
      -Winvalid-haddock
  else
    ghc-options:
      -O2
      -Wall

executable tilia
  main-is: Main.hs
  hs-source-dirs: app
  other-modules: Paths_tilia
  autogen-modules: Paths_tilia
  default-language: GHC2021
  build-depends:
    base >=4.14 && <5,
    choice >=0.2 && <0.3,
    directory ^>=1.3,
    optparse-applicative >=0.14 && <0.20,
    text >=2.1 && <3,
    tilia,

  -- Twelve capabilities rather than -N, because formatting a project stops
  -- getting faster well before a machine runs out of cores and every
  -- capability past that point costs about 40 MiB and 0.15s of CPU while
  -- formatting nothing. Over this project's 43 files: 1.88s at -N1, 575ms
  -- at -N8, 518ms at -N12, 499ms at -N16, and back to 509ms at -N24. Asking
  -- for -N here instead is the same wall time as -N12 give or take noise,
  -- for 50% more CPU and 940 MiB against 520 MiB. Twelve is no worse on a
  -- smaller machine either: pinned to four cores it lands within 3% of -N4.
  --
  -- The nursery is the flag that pays for itself. At the default size the
  -- same run takes 828ms rather than 522ms, which is what the extra 320 MiB
  -- buys.
  ghc-options:
    -threaded
    -rtsopts
    "-with-rtsopts=-N12 -A32m"

  if flag(dev)
    ghc-options:
      -O2
      -Wall
      -Werror
      -Wredundant-constraints
      -Wpartial-fields
      -Wunused-packages
      -haddock
      -Winvalid-haddock
  else
    ghc-options:
      -O2
      -Wall

test-suite tests
  type: exitcode-stdio-1.0
  main-is: Main.hs
  build-tool-depends: hspec-discover:hspec-discover >=2 && <3
  hs-source-dirs: tests
  other-modules:
    Spec
    Tilia.Comments.PlaceSpec
    Tilia.CommentsSpec
    Tilia.Corpus
    Tilia.Corpus.Manifest
    Tilia.CorpusSpec
    Tilia.Cpp.MacrosSpec
    Tilia.Cpp.PropertiesSpec
    Tilia.CppSpec
    Tilia.Doc.BodySpec
    Tilia.Doc.CombinatorsSpec
    Tilia.Doc.InternalSpec
    Tilia.Doc.PropertiesSpec
    Tilia.EquivalenceSpec
    Tilia.Fixity.CabalSpec
    Tilia.Fixity.CacheSpec
    Tilia.Fixity.DebugSpec
    Tilia.Fixity.DependenciesSpec
    Tilia.Fixity.InterfaceSpec
    Tilia.Fixity.PackageDbSpec
    Tilia.Fixity.PlanSpec
    Tilia.FixitySpec
    Tilia.Gen
    Tilia.NewlineSpec
    Tilia.PackageSpec
    Tilia.PragmaSpec
    Tilia.ProcessSpec
    Tilia.ProjectSpec
    Tilia.Render.OperatorSpec
    Tilia.RenderSpec
    Tilia.RunSpec
    Tilia.TargetSpec
    Tilia.TestConfig

  default-language: GHC2021
  build-depends:
    QuickCheck >=2.14 && <3,
    base >=4.14 && <5,
    base16-bytestring >=1 && <2,
    bytestring >=0.11 && <0.13,
    choice >=0.2 && <0.3,
    containers >=0.5 && <0.9,
    cryptohash-sha256 >=0.11 && <0.12,
    directory ^>=1.3,
    filepath >=1.4 && <1.6,
    ghc-lib-parser >=9.14 && <9.15,
    hspec >=2 && <3,
    http-client >=0.7 && <0.8,
    req >=3.13 && <4,
    tar >=0.6 && <0.7,
    temporary ^>=1.3,
    text >=2.1 && <3,
    tilia,
    zlib >=0.6 && <0.8,

  ghc-options:
    -threaded
    -rtsopts
    "-with-rtsopts=-M8G -N"

  if flag(dev)
    ghc-options:
      -O2
      -Wall
      -Werror
      -Wredundant-constraints
      -Wpartial-fields
      -Wunused-packages
      -haddock
      -Winvalid-haddock
  else
    ghc-options:
      -O2
      -Wall