packages feed

aihc-cpp-2.0.0.0: aihc-cpp.cabal

cabal-version: 3.8
name: aihc-cpp
version: 2.0.0.0
build-type: Simple
license: Unlicense
license-file: LICENSE
extra-doc-files: CHANGELOG.md
extra-source-files:
  bench/include/*.h
  test/Test/Fixtures/progress/*.hs
  test/Test/Fixtures/progress/*.tsv
  test/Test/Fixtures/progress/includes/*.inc

author: David Himmelstrup
maintainer: lemmih@gmail.com
category: Development
synopsis: Pure Haskell C preprocessor for aihc
description:
  A pure Haskell C preprocessor for Haskell source files that use CPP. The
  package provides deterministic preprocessing with include continuations and
  oracle-backed tests against cpphs.

homepage: https://github.com/ai-haskell-compiler/aihc-cpp
bug-reports: https://github.com/ai-haskell-compiler/aihc-cpp/issues

source-repository head
  type: git
  location: https://github.com/ai-haskell-compiler/aihc-cpp.git

library
  exposed-modules:
    Aihc.Cpp

  other-modules:
    Aihc.Cpp.Cursor
    Aihc.Cpp.Evaluator
    Aihc.Cpp.Parser
    Aihc.Cpp.Scanner
    Aihc.Cpp.Types

  hs-source-dirs: src
  build-depends:
    base >=4.16 && <5,
    bytestring >=0.11 && <0.13,
    containers >=0.5 && <0.9,
    deepseq >=1.4 && <1.6,
    filepath >=1.3.0.1 && <1.6,
    text >=1.2 && <2.2,

  ghc-options: -Wall
  default-language: Haskell2010

test-suite spec
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Spec.hs
  other-modules:
    Test.Progress

  build-depends:
    aihc-cpp >=2.0 && <2.1,
    base >=4.16 && <5,
    bytestring >=0.11 && <0.13,
    containers >=0.5 && <0.9,
    cpphs >=1.20 && <1.21,
    directory >=1.2.3 && <1.5,
    filepath >=1.3.0.1 && <1.6,
    tasty >=1.5 && <1.6,
    tasty-hunit >=0.10 && <0.11,
    tasty-quickcheck >=0.11.1 && <0.12,
    text >=1.2 && <2.2,

  ghc-options: -Wall
  default-language: Haskell2010

benchmark micro
  type: exitcode-stdio-1.0
  hs-source-dirs: bench
  main-is: Micro.hs
  other-modules: Bench.Corpus
  build-depends:
    aihc-cpp >=2.0 && <2.1,
    base >=4.16 && <5,
    bytestring >=0.10.8 && <0.13,
    containers >=0.5 && <0.9,
    cpphs >=1.20 && <1.21,
    deepseq >=1.4 && <1.6,
    directory >=1.2.3 && <1.5,
    filepath >=1.3.0.1 && <1.6,
    hpp >=0.6 && <0.7,
    tasty-bench >=0.4 && <0.5,
    text >=1.2 && <2.2,
    transformers >=0.5 && <0.7,

  -- -M caps the heap so an oversized corpus fails with a clear heap-overflow
  -- message instead of driving the machine into swap or the OOM killer.
  -- -M caps the heap so a runaway corpus fails with a clear heap-overflow
  -- message rather than driving the machine into swap. -rtsopts lets a full
  -- snapshot sweep raise it: too low a cap does not merely abort, it makes a
  -- tool thrash against the limit and look far slower than it is.
  ghc-options:
    -Wall
    -O2
    -rtsopts
    "-with-rtsopts=-A32m -M1024m -T"

  default-language: Haskell2010