tilia-0.1.2.0: tilia.cabal
cabal-version: 2.4
name: tilia
version: 0.1.2.0
license: BSD-3-Clause
license-file: LICENSE.md
author: Mark Karpov <markkarpov92@gmail.com>
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:
bench/bench.record
corpora/hackage/hackage.manifest
corpora/hackage/hackage.report
corpora/vendored/**/*.hs
corpora/vendored/**/*.hsig
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
common common-ghc-options
ghc-options:
-O2
-Wall
if flag(dev)
ghc-options:
-Werror
-Wredundant-constraints
-Wpartial-fields
-Wunused-packages
-haddock
-Winvalid-haddock
library
import: common-ghc-options
exposed-modules:
Tilia.Cabal.Package
Tilia.Cabal.Plan
Tilia.Cabal.Project
Tilia.Cabal.Target
Tilia.Comments
Tilia.Comments.Attach
Tilia.Comments.Place
Tilia.Cpp
Tilia.Cpp.Directives
Tilia.Cpp.Fragment
Tilia.Cpp.Macros
Tilia.Cpp.Merge
Tilia.Cpp.Place
Tilia.Diff
Tilia.Doc
Tilia.Doc.Body
Tilia.Doc.Combinators
Tilia.Doc.Internal
Tilia.Editor
Tilia.Equivalence
Tilia.Fixity
Tilia.Fixity.Archive
Tilia.Fixity.Cabal
Tilia.Fixity.Cache
Tilia.Fixity.Debug
Tilia.Fixity.HiFile
Tilia.Fixity.Interface
Tilia.Fixity.KnownKeys.Ghc910
Tilia.Fixity.KnownKeys.Ghc912
Tilia.Fixity.KnownKeys.Ghc914
Tilia.Fixity.PackageDb
Tilia.Fixity.Plan
Tilia.Format
Tilia.Gathered
Tilia.Ignore
Tilia.Imports
Tilia.Memo
Tilia.Newline
Tilia.Palette
Tilia.Parser
Tilia.Pragma
Tilia.Process
Tilia.Render
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.Utils
hs-source-dirs: src
default-language: GHC2021
build-depends:
Cabal-syntax >=3.12 && <3.17,
aeson >=2.1 && <3,
array >=0.5 && <0.6,
base >=4.20 && <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,
deepseq >=1.4 && <1.6,
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.8,
text >=2.1 && <3,
time >=1.9 && <1.16,
transformers >=0.5 && <0.7,
zlib >=0.6 && <0.8,
executable tilia
import: common-ghc-options
main-is: Main.hs
hs-source-dirs: app
other-modules: Paths_tilia
autogen-modules: Paths_tilia
default-language: GHC2021
build-depends:
base >=4.20 && <5,
bytestring >=0.11 && <0.13,
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 35 MiB and 0.2s of CPU while
-- formatting nothing. Over this project's 109 files: 2.42s at -N1, 690ms
-- at -N8, 560ms at -N12, 590ms at -N16, and 600ms at -N24. Asking for -N
-- here instead is the same wall time as -N12 give or take noise, for 50%
-- more CPU and 1100 MiB against 680 MiB. Twelve is no worse on a smaller
-- machine either: pinned to four cores it is 4% faster than -N4.
--
-- The nursery is the flag that pays for itself. At the default size the
-- same run takes 810ms rather than 560ms, which is what the extra 270 MiB
-- buys.
ghc-options:
-threaded
-rtsopts
"-with-rtsopts=-N12 -A32m"
test-suite tests
import: common-ghc-options
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.BootFixities
Tilia.Cabal.PackageSpec
Tilia.Cabal.ProjectSpec
Tilia.Cabal.TargetSpec
Tilia.Comments.PlaceSpec
Tilia.CommentsSpec
Tilia.Corpus
Tilia.Corpus.Manifest
Tilia.CorpusSpec
Tilia.Cpp.MacrosSpec
Tilia.Cpp.PropertiesSpec
Tilia.CppSpec
Tilia.DiffSpec
Tilia.Doc.BodySpec
Tilia.Doc.CombinatorsSpec
Tilia.Doc.InternalSpec
Tilia.Doc.PropertiesSpec
Tilia.EditorSpec
Tilia.EquivalenceSpec
Tilia.Fixity.CabalSpec
Tilia.Fixity.CacheSpec
Tilia.Fixity.DebugSpec
Tilia.Fixity.DependenciesSpec
Tilia.Fixity.HiFileSpec
Tilia.Fixity.InterfaceSpec
Tilia.Fixity.PackageDbSpec
Tilia.Fixity.PlanSpec
Tilia.FixitySpec
Tilia.Gen
Tilia.IgnoreSpec
Tilia.NewlineSpec
Tilia.PragmaSpec
Tilia.ProcessSpec
Tilia.Render.OperatorSpec
Tilia.RenderSpec
Tilia.RunSpec
Tilia.TestConfig
Tilia.TestUtils
Tilia.WithProjectPlan
default-language: GHC2021
build-depends:
QuickCheck >=2.14 && <3,
array >=0.5 && <0.6,
base >=4.20 && <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.8,
temporary ^>=1.3,
text >=2.1 && <3,
tilia,
time >=1.9 && <1.16,
zlib >=0.6 && <0.8,
ghc-options:
-threaded
-rtsopts
"-with-rtsopts=-M8G -N"
benchmark bench
import: common-ghc-options
type: exitcode-stdio-1.0
main-is: Main.hs
hs-source-dirs:
bench
tests
other-modules:
Tilia.Bench.Cases
Tilia.Bench.Fixity
Tilia.Bench.Measure
Tilia.Bench.Record
Tilia.BootFixities
Tilia.Corpus
Tilia.TestConfig
Tilia.TestUtils
c-sources: bench/cbits/counter.c
default-language: GHC2021
build-depends:
base >=4.20 && <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,
deepseq >=1.4 && <1.6,
directory ^>=1.3,
filepath >=1.4 && <1.6,
ghc-lib-parser >=9.14 && <9.15,
http-client >=0.7 && <0.8,
optparse-applicative >=0.14 && <0.20,
process >=1.6.12 && <1.7,
req >=3.13 && <4,
tar >=0.6 && <0.8,
text >=2.1 && <3,
tilia,
zlib >=0.6 && <0.8,
ghc-options:
-threaded
-rtsopts
"-with-rtsopts=-N1 -A1g -O1g -C1000 -T"