packages feed

apple-0.2.0.0: apple.cabal

cabal-version:      2.0
name:               apple
version:            0.2.0.0
license:            AGPL-3
license-file:       LICENSE
copyright:          Copyright: (c) 2022 Vanessa McHale
maintainer:         vamchale@gmail.com
author:             Vanessa McHale
synopsis:           Apple array language compiler
description:        Compiler for a typed, APL-inspired array language.
category:           Language, Array
build-type:         Simple
data-files:         ./include/apple_abi.h
extra-source-files:
    include/apple.h
    include/apple_p.h
    test/examples/*.apple
    test/examples/*.apple
    bench/apple/*.apple
    test/data/*.apple
    test/data/*.apple
    test/harness/*.c
    math/*.apple
    math/*.apple

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

source-repository head
    type:     git
    location: https://github.com/vmchale/apple

library
    exposed-modules:
        Dbg
        P
        A
        Ty
        Ty.M
        Nm
        U
        I
        L
        Parser
        CGen
        Hs.A
        Hs.FFI
        Sys.DL
        Prettyprinter.Ext
    build-tool-depends:
        alex:alex >=3.5.0.0, happy:happy, hsc2hs:hsc2hs, c2hs:c2hs

    hs-source-dirs:     src
    other-modules:
        Bits
        CF
        CF.AL
        LI
        R
        LR
        R.Dfn
        R.M
        R.R
        Parser.Rw
        Ty.Clone
        A.Eta
        A.Opt
        Op
        C
        C.Alloc
        C.CF
        C.Trans
        IR
        IR.CF
        IR.Hoist
        IR.Opt
        IR.C
        Class.E
        Data.Copointed
        Asm.Ar
        Asm.Ar.P
        Asm.L
        Asm.LI
        Asm.BB
        Asm.X86
        Asm.X86.B
        Asm.X86.Byte
        Asm.X86.CF
        Asm.X86.Opt
        Asm.X86.Frame
        Asm.X86.P
        Asm.X86.Sp
        Asm.X86.Trans
        Asm.Aarch64
        Asm.Aarch64.B
        Asm.Aarch64.Byte
        Asm.Aarch64.CF
        Asm.Aarch64.Fr
        Asm.Aarch64.P
        Asm.Aarch64.Opt
        Asm.Aarch64.T
        Asm.G
        Asm.M
        Asm.CF
        Nm.IntMap

    default-language:   Haskell2010
    other-extensions:
        DeriveGeneric DeriveAnyClass OverloadedStrings StandaloneDeriving
        RankNTypes FlexibleContexts DeriveFoldable DeriveFunctor
        ScopedTypeVariables TupleSections BinaryLiterals MagicHash
        MultiParamTypeClasses GeneralizedNewtypeDeriving

    ghc-options:
        -Wall -fno-warn-missing-signatures -Wno-x-partial
        -Wincomplete-uni-patterns -Wincomplete-record-updates
        -Wredundant-constraints -Widentities -Wmissing-export-lists
        -Wcpp-undef

    build-depends:
        base >=4.17 && <5,
        prettyprinter >=1.7.0,
        deepseq,
        text,
        mtl >=2.2.2,
        containers >=0.6.0.1,
        microlens,
        microlens-mtl >=0.1.8.0,
        array,
        bytestring,
        transformers,
        unix,
        split >=0.2.0.0,
        extra >=1.7.4,
        composition-prelude >=1.1.0.1,
        dom-lt

    if impl(ghc >=8.10)
        ghc-options: -Wunused-packages

    if impl(ghc >=9.2)
        ghc-options: -Wno-operator-whitespace-ext-conflict

library as
    exposed-modules:
        H
    other-modules: Nasm, As

    hs-source-dirs:   as
    default-language: Haskell2010
    ghc-options:
        -Wall -Wno-x-partial -Wincomplete-uni-patterns
        -Wincomplete-record-updates -Wredundant-constraints -Widentities
        -Wmissing-export-lists -Wcpp-undef

    build-depends:
        base,
        apple,
        process,
        temporary,
        prettyprinter,
        text,
        bytestring

    if impl(ghc >=8.10)
        ghc-options: -Wunused-packages

foreign-library apple
    type:               native-shared
    build-tool-depends: c2hs:c2hs >=0.19.1
    hs-source-dirs:     lib
    other-modules:      E
    default-language:   Haskell2010
    include-dirs:       include
    install-includes:   apple.h
    ghc-options:
        -Wall -Wincomplete-uni-patterns -Wincomplete-record-updates
        -Wredundant-constraints -Wmissing-export-lists

    build-depends:
        base,
        apple,
        bytestring >=0.11.0.0,
        prettyprinter >=1.7.0,
        text

    if os(linux)
        lib-version-info:   1:0:0

    if os(windows)
        options: standalone

    if impl(ghc >=8.10)
        ghc-options: -Wunused-packages

executable atc
    main-is:          Main.hs
    hs-source-dirs:   app
    other-modules:    Paths_apple
    autogen-modules:  Paths_apple
    default-language: Haskell2010
    ghc-options:
        -Wall -Wno-x-partial -Wincomplete-uni-patterns
        -Wincomplete-record-updates -Wredundant-constraints -Widentities
        -Wmissing-export-lists -Wcpp-undef

    build-depends:
        base,
        apple,
        optparse-applicative >=0.13.0.0,
        bytestring

    if impl(ghc >=8.10)
        ghc-options: -Wunused-packages

executable writeo
    main-is:          Main.hs
    hs-source-dirs:   exe
    other-modules:    Paths_apple
    autogen-modules:  Paths_apple
    default-language: Haskell2010
    ghc-options:
        -Wall -Wno-x-partial -Wincomplete-uni-patterns
        -Wincomplete-record-updates -Wredundant-constraints -Widentities
        -Wcpp-undef -Wmissing-export-lists

    build-depends:
        base,
        as,
        optparse-applicative >=0.14.0.0,
        text

    if impl(ghc >=8.10)
        ghc-options: -Wunused-packages

executable arepl
    main-is:          Main.hs
    other-modules:    QC
    hs-source-dirs:   run
    default-language: Haskell2010
    ghc-options:
        -Wall -Wno-missing-signatures -Wno-x-partial
        -Wincomplete-uni-patterns -Wincomplete-record-updates
        -Wredundant-constraints -Widentities -Wmissing-export-lists
        -Wcpp-undef -Wno-operator-whitespace-ext-conflict

    build-depends:
        base,
        apple,
        bytestring,
        libffi,
        criterion,
        prettyprinter,
        haskeline,
        mtl,
        transformers,
        text,
        directory,
        filepath,
        extra,
        QuickCheck,
        containers,
        split >=0.2.0.0

    if impl(ghc >=8.10)
        ghc-options: -Wunused-packages

test-suite apple-test
    type:               exitcode-stdio-1.0
    main-is:            Spec.hs
    build-tool-depends: cpphs:cpphs
    hs-source-dirs:     test
    default-language:   Haskell2010
    ghc-options:
        -threaded -rtsopts "-with-rtsopts=-N -k1k" -Wall
        -fno-warn-missing-signatures -Wincomplete-uni-patterns
        -Wincomplete-record-updates -Wredundant-constraints -Widentities
        -Wmissing-export-lists -Wcpp-undef

    build-depends:
        base,
        apple,
        tasty,
        tasty-hunit,
        bytestring,
        hypergeometric >=0.1.4.0,
        fast-arithmetic,
        QuickCheck,
        tasty-quickcheck

    if impl(ghc >=8.10)
        ghc-options: -Wunused-packages

test-suite apple-o
    type:             exitcode-stdio-1.0
    main-is:          Test.hs
    hs-source-dirs:   of
    default-language: Haskell2010
    ghc-options:
        -rtsopts -with-rtsopts=-k1k -Wall
        -fno-warn-missing-signatures -Wincomplete-uni-patterns
        -Wincomplete-record-updates -Wredundant-constraints -Widentities
        -Wmissing-export-lists -Wcpp-undef

    build-depends:
        base,
        as,
        tasty,
        tasty-hunit,
        temporary,
        process,
        text,
        filepath,
        directory

    if impl(ghc >=8.10)
        ghc-options: -Wunused-packages

benchmark apple-bench
    type:               exitcode-stdio-1.0
    main-is:            Bench.hs
    hs-source-dirs:     bench
    default-language:   Haskell2010
    ghc-options:
        -rtsopts -Wall -Wincomplete-uni-patterns
        -Wincomplete-record-updates -Wredundant-constraints -Widentities
        -Wmissing-export-lists -Wcpp-undef

    build-depends:
        base,
        apple,
        criterion,
        statistics,
        bytestring,
        erf,
        hypergeometric >=0.1.2.0

    if impl(ghc >=8.10)
        ghc-options: -Wunused-packages