moonlight-pale-0.1.0.1: moonlight-pale.cabal
cabal-version: 3.0
name: moonlight-pale
version: 0.1.0.1
homepage: https://github.com/PaleRoses/moonlight
bug-reports: https://github.com/PaleRoses/moonlight/issues
synopsis: Shared diagnostics, law testing, and GHC/HIE tooling for Moonlight.
description: Role-specific public libraries for diagnostics, law testing, benchmarking, GHC/HIE source tooling, and compile-diagnostic support.
license: MIT
license-file: LICENSE
author: Blue Rose
maintainer: rosaliafialkova@gmail.com
category: Development
build-type: Simple
tested-with: GHC == 9.10.3, GHC == 9.12.4, GHC == 9.14.1
extra-doc-files:
README.md
CHANGELOG.md
extra-source-files:
test/compile-diagnostics/fixtures/Trivial.hs
common shared-properties
default-language: GHC2024
ghc-options:
-Wall
-Wcompat
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wredundant-constraints
-Wpartial-fields
-Wno-missing-import-lists
common test-properties
import: shared-properties
library ghc-surface
import: shared-properties
visibility: public
hs-source-dirs: src-ghc-surface
if impl(ghc < 9.14)
buildable: False
exposed-modules:
Moonlight.Pale.Ghc.Expr
Moonlight.Pale.Ghc.Expr.Parse
Moonlight.Pale.Ghc.Hie.Oracle
Moonlight.Pale.Ghc.Hie.Read
Moonlight.Pale.Ghc.Hie.SourceKey
Moonlight.Pale.Ghc.Hie.TypeWords
Moonlight.Pale.Ghc.ModuleSurface
other-modules:
Moonlight.Pale.Ghc.Expr.Equivalence
Moonlight.Pale.Ghc.Expr.Render
Moonlight.Pale.Ghc.Expr.Render.Analysis
Moonlight.Pale.Ghc.Expr.Render.Annotation
Moonlight.Pale.Ghc.Expr.Render.Binding
Moonlight.Pale.Ghc.Expr.Render.Carrier
Moonlight.Pale.Ghc.Expr.Render.Document
Moonlight.Pale.Ghc.Expr.Render.Expression
Moonlight.Pale.Ghc.Expr.Render.Literal
Moonlight.Pale.Ghc.Expr.Render.Module
Moonlight.Pale.Ghc.Expr.Render.Name
Moonlight.Pale.Ghc.Expr.Render.Pattern
Moonlight.Pale.Ghc.Expr.Render.Refusal
Moonlight.Pale.Ghc.Expr.Convert.Coalgebra
Moonlight.Pale.Ghc.Expr.Convert.Declaration
Moonlight.Pale.Ghc.Expr.Convert.Dependencies
Moonlight.Pale.Ghc.Expr.Convert.Expression
Moonlight.Pale.Ghc.Expr.Convert.FreeScopes
Moonlight.Pale.Ghc.Expr.Convert.Metrics
Moonlight.Pale.Ghc.Expr.Convert.Obstruction
Moonlight.Pale.Ghc.Expr.Convert.Pattern
Moonlight.Pale.Ghc.Expr.Convert.Projection
Moonlight.Pale.Ghc.Expr.Convert.Row
Moonlight.Pale.Ghc.Expr.Convert.Source
Moonlight.Pale.Ghc.Expr.Convert.State
Moonlight.Pale.Ghc.Expr.NameRender
Moonlight.Pale.Ghc.Expr.Opaque
Moonlight.Pale.Ghc.Expr.Scope
Moonlight.Pale.Ghc.Expr.Syntax
Moonlight.Pale.Ghc.Hie.TypeWords.Internal
build-depends:
base >= 4.22 && < 5
, array >= 0.5 && < 0.6
, bytestring >= 0.12 && < 0.13
, containers >= 0.8 && < 0.9
, directory >= 1.3 && < 1.4
, filepath >= 1.5 && < 1.6
, ghc >= 9.14 && < 9.16
, ghc-boot-th >= 9.14 && < 9.16
, moonlight-core >= 0.1 && < 0.2
, mtl >= 2.3 && < 2.4
, primitive >= 0.9 && < 0.10
, prettyprinter >= 1.7 && < 1.8
, transformers >= 0.6 && < 0.7
, text >= 2.1 && < 2.2
, vector >= 0.13 && < 0.14
library diagnostic
import: shared-properties
visibility: public
hs-source-dirs: src-diagnostic
if impl(ghc < 9.14)
buildable: False
exposed-modules:
Moonlight.Pale.Diagnostic.Core
Moonlight.Pale.Diagnostic.Topology.Boundary
Moonlight.Pale.Diagnostic.Topology.Homotopy
Moonlight.Pale.Diagnostic.Topology.Cohomology
Moonlight.Pale.Diagnostic.Summary.Structural
Moonlight.Pale.Diagnostic.Local.Propagation
Moonlight.Pale.Diagnostic.Local.Replay
Moonlight.Pale.Diagnostic.Local.Rewrite
Moonlight.Pale.Diagnostic.Local.Saturation
Moonlight.Pale.Diagnostic.Views.Rewrite
Moonlight.Pale.Diagnostic.Aggregation.Propagation
Moonlight.Pale.Diagnostic.Aggregation.Algebra
build-depends:
base >= 4.22 && < 5
, containers >= 0.8 && < 0.9
library test
import: shared-properties
visibility: public
hs-source-dirs: src-test
if impl(ghc < 9.14)
buildable: False
exposed-modules:
Moonlight.Pale.Test.Core
Moonlight.Pale.Test.Assertions
Moonlight.Pale.Test.Resources
Moonlight.Pale.Test.Recursion
build-depends:
base >= 4.22 && < 5
, containers >= 0.8 && < 0.9
, directory >= 1.3 && < 1.4
, filepath >= 1.5 && < 1.6
, tasty-hunit >= 0.10 && < 0.11
library measurement
import: shared-properties
visibility: public
hs-source-dirs: src-bench
if impl(ghc < 9.14)
buildable: False
exposed-modules:
Moonlight.Pale.Bench.Measure
build-depends:
base >= 4.22 && < 5
, deepseq >= 1.5 && < 1.6
test-suite moonlight-pale-bench-measure-test
import: test-properties
type: exitcode-stdio-1.0
hs-source-dirs: test/bench-measure
main-is: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-T
build-depends:
base >= 4.22 && < 5
, moonlight-pale:measurement
, tasty >= 1.5 && < 1.6
, tasty-hunit >= 0.10 && < 0.11
library test-surface
import: shared-properties
visibility: public
hs-source-dirs: src-test-surface
if impl(ghc < 9.14)
buildable: False
exposed-modules:
Moonlight.Pale.Test.ImportDiscipline
Moonlight.Pale.Test.ImportDiscipline.Registry
build-depends:
base >= 4.22 && < 5
, Cabal-syntax >= 3.16 && < 3.17
, containers >= 0.8 && < 0.9
, directory >= 1.3 && < 1.4
, filepath >= 1.5 && < 1.6
, tasty-hunit >= 0.10 && < 0.11
, text >= 2.1 && < 2.2
, moonlight-pale:ghc-surface
, moonlight-pale:test
library test-laws
import: shared-properties
visibility: public
hs-source-dirs: src-test-laws
default-extensions: OverloadedStrings
exposed-modules:
Moonlight.Pale.Test.Laws.Algebraic
Moonlight.Pale.Test.Laws.Lattice
Moonlight.Pale.Test.Laws.Restriction
Moonlight.Pale.Test.Laws.Suite
build-depends:
base >= 4.20 && < 5
, containers >= 0.8 && < 0.9
, hedgehog >= 1.7 && < 1.8
, moonlight-core >= 0.1.0.3 && < 0.2
, tasty >= 1.5 && < 1.6
, tasty-hedgehog >= 1.4 && < 1.5
, tasty-hunit >= 0.10 && < 0.11
, tasty-quickcheck >= 0.11 && < 0.12
, vector >= 0.13 && < 0.14
library diagnostic-ghc
import: shared-properties
visibility: public
hs-source-dirs: src-diagnostic-ghc
if impl(ghc < 9.14)
buildable: False
exposed-modules:
Moonlight.Pale.TestSupport.CompileDiagnostics
Moonlight.Pale.TestSupport.CompileHieFixture
build-depends:
base >= 4.22 && < 5
, aeson >= 2.3 && < 2.4
, bytestring >= 0.12 && < 0.13
, directory >= 1.3 && < 1.4
, filepath >= 1.5 && < 1.6
, moonlight-pale:ghc-surface
, process >= 1.6 && < 1.7
, temporary >= 1.3 && < 1.4
, text >= 2.1 && < 2.2
, moonlight-pale:test
test-suite moonlight-pale-ghc-surface-test
import: test-properties
type: exitcode-stdio-1.0
hs-source-dirs: test/ghc-surface
main-is: Main.hs
other-modules:
Hie.OracleSpec
Hie.TypeWordsSpec
ModuleSurfaceSpec
Expr.RenderRoundTripSpec
Expr.SourceCoordinatesSpec
build-depends:
base >= 4.22 && < 5
, array >= 0.5 && < 0.6
, bytestring >= 0.12 && < 0.13
, containers >= 0.8 && < 0.9
, directory >= 1.3 && < 1.4
, filepath >= 1.5 && < 1.6
, ghc >= 9.14 && < 9.16
, moonlight-core >= 0.1 && < 0.2
, moonlight-pale:diagnostic-ghc
, moonlight-pale:ghc-surface
, moonlight-pale:test
, process >= 1.6 && < 1.7
, tasty >= 1.5 && < 1.6
, tasty-hunit >= 0.10 && < 0.11
, text >= 2.1 && < 2.2
, vector >= 0.13 && < 0.14
test-suite moonlight-pale-diagnostic-test
import: test-properties
type: exitcode-stdio-1.0
hs-source-dirs: test/diagnostic
main-is: Main.hs
other-modules:
WriterSpec
OutcomeSpec
RefinementSpec
CohomologySpec
build-depends:
base >= 4.22 && < 5
, containers >= 0.8 && < 0.9
, tasty >= 1.5 && < 1.6
, tasty-hunit >= 0.10 && < 0.11
, moonlight-pale:diagnostic
test-suite moonlight-pale-test-laws-test
import: test-properties
type: exitcode-stdio-1.0
hs-source-dirs: test/laws
main-is: Main.hs
default-extensions: OverloadedStrings
other-modules:
AlgebraicSpec
LatticeSpec
RestrictionSpec
SuiteSpec
build-depends:
base >= 4.22 && < 5
, containers >= 0.8 && < 0.9
, moonlight-core >= 0.1 && < 0.2
, tasty >= 1.5 && < 1.6
, tasty-hunit >= 0.10 && < 0.11
, tasty-quickcheck >= 0.11 && < 0.12
, moonlight-pale:test-laws
test-suite moonlight-pale-test-support-test
import: test-properties
type: exitcode-stdio-1.0
hs-source-dirs: test/test-support
main-is: Main.hs
other-modules:
Assertions.AssertionSpec
Recursion.RecursionSpec
Resources.ResourceSpec
build-depends:
base >= 4.22 && < 5
, containers >= 0.8 && < 0.9
, hedgehog >= 1.7 && < 1.8
, tasty >= 1.5 && < 1.6
, tasty-hedgehog >= 1.4 && < 1.5
, tasty-hunit >= 0.10 && < 0.11
, tasty-quickcheck >= 0.11 && < 0.12
, moonlight-pale:test
test-suite moonlight-pale-test-surface-test
import: test-properties
type: exitcode-stdio-1.0
hs-source-dirs: test/import-discipline
main-is: Main.hs
other-modules:
DisciplineSpec
RegistrySpec
build-depends:
base >= 4.22 && < 5
, containers >= 0.8 && < 0.9
, tasty >= 1.5 && < 1.6
, tasty-hunit >= 0.10 && < 0.11
, moonlight-pale:test-surface
test-suite moonlight-pale-diagnostic-ghc-test
import: test-properties
type: exitcode-stdio-1.0
hs-source-dirs: test/compile-diagnostics
main-is: Main.hs
other-modules:
CompileDiagnosticsSpec
build-depends:
base >= 4.22 && < 5
, aeson >= 2.3 && < 2.4
, directory >= 1.3 && < 1.4
, tasty >= 1.5 && < 1.6
, tasty-hunit >= 0.10 && < 0.11
, moonlight-pale:diagnostic-ghc
, moonlight-pale:test
common moonlight-pale-benchmark-properties
default-language: GHC2024
-- Benchmarks are opt-in; their measurement contract requires optimized code.
ghc-options: -Wall -Wcompat -O2 -rtsopts
build-depends:
base >= 4.22 && < 5
, deepseq >= 1.5 && < 1.6
, tasty-bench >= 0.5 && < 0.6
benchmark moonlight-pale-diagnostic-bench
import: moonlight-pale-benchmark-properties
type: exitcode-stdio-1.0
hs-source-dirs:
bench/diagnostic
bench/support
main-is: Main.hs
other-modules:
DiagnosticBench
BenchSupport
build-depends:
moonlight-pale:diagnostic
benchmark moonlight-pale-ghc-surface-bench
import: moonlight-pale-benchmark-properties
type: exitcode-stdio-1.0
hs-source-dirs:
bench/ghc-surface
bench/support
main-is: Main.hs
other-modules:
GhcSurfaceBench
HieBench
BenchSupport
build-depends:
array >= 0.5 && < 0.6
, containers >= 0.8 && < 0.9
, ghc >= 9.14 && < 9.16
, moonlight-core >= 0.1 && < 0.2
, moonlight-pale:ghc-surface
, text >= 2.1 && < 2.2
benchmark moonlight-pale-laws-bench
import: moonlight-pale-benchmark-properties
type: exitcode-stdio-1.0
hs-source-dirs:
bench/laws
bench/support
main-is: Main.hs
other-modules:
LawBench
BenchSupport
build-depends:
moonlight-pale:test-laws
benchmark moonlight-pale-equivalence-receipts
import: moonlight-pale-benchmark-properties
type: exitcode-stdio-1.0
hs-source-dirs:
bench/receipts
bench/diagnostic
bench/ghc-surface
bench/support
main-is: Main.hs
ghc-options: -threaded -with-rtsopts=-T
other-modules:
DiagnosticBench
GhcSurfaceBench
BenchSupport
build-depends:
moonlight-core >= 0.1 && < 0.2
, moonlight-pale:diagnostic
, moonlight-pale:ghc-surface
, moonlight-pale:measurement
, text >= 2.1 && < 2.2
benchmark moonlight-pale-bench
import: moonlight-pale-benchmark-properties
type: exitcode-stdio-1.0
hs-source-dirs:
bench/aggregate
bench/diagnostic
bench/ghc-surface
bench/laws
bench/support
main-is: Main.hs
other-modules:
DiagnosticBench
GhcSurfaceBench
HieBench
LawBench
BenchSupport
build-depends:
array >= 0.5 && < 0.6
, containers >= 0.8 && < 0.9
, ghc >= 9.14 && < 9.16
, moonlight-core >= 0.1 && < 0.2
, moonlight-pale:diagnostic
, moonlight-pale:ghc-surface
, moonlight-pale:test-laws
, text >= 2.1 && < 2.2
source-repository head
type: git
location: https://github.com/PaleRoses/moonlight.git
subdir: moonlight-pale
source-repository this
type: git
location: https://github.com/PaleRoses/moonlight.git
tag: moonlight-pale-0.1.0.1
subdir: moonlight-pale