packages feed

MultiChor-1.0.0.0: MultiChor.cabal

cabal-version:      3.0
name:               MultiChor
version:            1.0.0.0
license-files:
    , LICENSE
    , LICENSE.inherited
license:            BSD-3-Clause
maintainer: mako.bates@uvm.edu
category: Distributed-Computing
synopsis: Type-safe and efficient choreographies with location-set polymorphism.
description:
    MultiChor is a library for functional choreographic programming in Haskell.

tested-with:
    GHC == 9.4.8

extra-doc-files:
    README.md

source-repository head
  type:     git
  location: https://github.com/ShapeOfMatter/MultiChor


common basic-config
    default-language: GHC2021
    build-depends:
        , base                 >= 4.16 && < 4.20
        , bytestring           >= 0.11 && < 0.13
        , http-client          >= 0.7  && < 0.8
        , mtl                  >= 2.2.2 && < 3.0
        , servant              >= 0.19 && < 0.21
        , servant-client       >= 0.19 && < 0.21
        , servant-server       >= 0.19 && < 0.21
        , template-haskell     >= 2.18 && < 2.22
        , unordered-containers >= 0.2  && < 0.3
        , warp                 >= 3.3  && < 3.4
    ghc-options:
      -Wall
      -Wno-incomplete-uni-patterns
      -fprint-potential-instances
      -haddock
      -Winvalid-haddock
    default-extensions: BlockArguments
                       ,DataKinds
                       ,ExplicitNamespaces
                       ,FunctionalDependencies
                       ,GADTs
                       ,ImpredicativeTypes
                       ,LambdaCase
                       ,LiberalTypeSynonyms
                       ,TypeFamilies

library
    import: basic-config
    hs-source-dirs:   src
    exposed-modules:
        Choreography
        Choreography.Choreography
        Choreography.Choreography.Batteries
        Choreography.Core
        Choreography.Locations
        Choreography.Locations.Batteries
        Choreography.Network
        Choreography.Network.Http
        Choreography.Network.Local
        Choreography.Polymorphism
        Control.Monad.Freer

common lib-dependent
    import: basic-config
    build-depends: MultiChor


common example
    import: lib-dependent
    hs-source-dirs:   examples
    build-depends:
        , async      >= 2.2  && < 2.3
        , binary               >= 0.8.9.0 && < 0.10.1.0
        -- trying to get hls to work with TestSuite
        , Cabal >= 3.6.3 && < 3.7
        , cabal-detailed-quickcheck >= 0.2.0 && < 0.3
        --
        , containers >= 0.6  && < 0.7
        , cryptonite           >= 0.10  && < 0.31
        , finite-field >= 0.10.0 && < 0.11.0
        , split   >= 0.2  && < 0.3
        , random  >= 1.2  && < 1.3
        , time    >= 1.11 && < 1.13
        , transformers >= 0.5  && < 0.7
        , QuickCheck >= 2.14 && < 3
    other-modules: Data
                 , CLI

Test-Suite testExamples
    import: example
    type:             detailed-0.9
    test-module:      Tests
    other-modules: Data
                 , Bank2PC
                 , Bookseller0Network
                 , Bookseller1Simple
                 , Bookseller2HigherOrder
                 , Bookseller3LocPoly
                 , BooksellerFancy
                 , CardGame
                 , ChooseTeams
                 , DelegationFig20
                 , DiffieHellman
                 , GMWReal
                 , Karatsuba
                 , KVS1Simple
                 , KVS2PrimaryBackup
                 , KVS3HigherOrder
                 , KVS4LocPoly
                 , KVS5Fig17
                 , KVS6SizePoly
                 , KVS7SimplePoly
                 , Lottery
                 , MergeSort
                 , MPCFake
                 , ObliviousTransfer
                 , QuickSort
                 , RingLeader

executable bank-2pc
    import: example
    main-is:          Bank2PC.hs
    ghc-options:
      -main-is Bank2PC

executable lottery
    import: example
    main-is:          Lottery.hs
    ghc-options:
      -main-is Lottery


executable bookseller-0-network
    import: example
    main-is:          Bookseller0Network.hs
    ghc-options:
      -main-is Bookseller0Network

executable bookseller-1-simple
    import: example
    main-is:          Bookseller1Simple.hs
    ghc-options:
      -main-is Bookseller1Simple

executable bookseller-2-higher-order
    import: example
    main-is:          Bookseller2HigherOrder.hs
    ghc-options:
      -main-is Bookseller2HigherOrder

executable bookseller-3-loc-poly
    import: example
    main-is:          Bookseller3LocPoly.hs
    ghc-options:
      -main-is Bookseller3LocPoly

executable diffiehellman
    import: example
    main-is:          DiffieHellman.hs
    ghc-options:
      -main-is DiffieHellman

executable gmw-real
    import: example
    main-is:          GMWReal.hs
    ghc-options:
      -main-is GMWReal
    other-modules:
      ObliviousTransfer

executable karatsuba
    import: example
    main-is:          Karatsuba.hs
    ghc-options:
      -main-is Karatsuba

executable kvs1
    import: example
    main-is:          KVS1Simple.hs
    ghc-options:
      -main-is KVS1Simple

executable kvs2
    import: example
    main-is:          KVS2PrimaryBackup.hs
    ghc-options:
      -main-is KVS2PrimaryBackup

executable kvs3
    import: example
    main-is:          KVS3HigherOrder.hs
    ghc-options:
      -main-is KVS3HigherOrder

executable kvs4
    import: example
    main-is:          KVS4LocPoly.hs
    ghc-options:
      -main-is KVS4LocPoly

executable mergesort
    import: example
    main-is:          MergeSort.hs
    ghc-options:
      -main-is MergeSort

executable oblivious-transfer
    import: example
    main-is:          ObliviousTransfer.hs
    ghc-options:
      -main-is ObliviousTransfer

executable quicksort
    import: example
    main-is:          QuickSort.hs
    ghc-options:
      -main-is QuickSort

executable ring-leader
    import: example
    main-is:          RingLeader.hs
    ghc-options:
      -main-is RingLeader