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