-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhabs-runtime.cabal
130 lines (115 loc) · 3.75 KB
/
habs-runtime.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: habs-runtime
version: 0.0.2
license: BSD3
license-file: LICENSE
author: Nikolaos Bezirgiannis
maintainer: Nikolaos Bezirgiannis <bezirgia@cwi.nl>
copyright: Copyright (c) 2013-2016, Envisage Consortium
homepage: http://abs-models.org
bug-reports: https://github.com/abstools/habs-runtime/issues
stability: provisional
tested-with: GHC == 8.0.1, GHC == 8.0.2
build-type: Simple
cabal-version: >= 1.8
category: Concurrency, Distributed Computing
synopsis: The runtime of the Haskell-ABS (habs) backend as a library
description:
The runtime of the Haskell-ABS (habs) backend as a library.
See also the <http://abstools.github.io/habs-runtime/bench-cog-results.html benchmark comparison> of different Haskell implementations of the ABS primitives.
extra-source-files:
README.md
source-repository head
type: git
location: git://github.com/abstools/habs-runtime.git
branch: master
Flag wait-all-cogs
Description: If enabled, the ABS program will not exit when the main-block process exits, but instead when all COGS cannot progress anymore
Default: False
library
build-depends:
-- base<=4.6 (i.e. GHC<=7.6.3) not supported because of no `tryReadMVar`
-- base<=4.7 (i.e. GHC<=7.8.4) not supported because of generated code relies on PartialTypeSignatures
-- base==4.8 has a bug on PartialTypeSignatures, so we allow base>=4.9, i.e. GHC>=8
base >= 4.9 && < 5,
-- for the continuation ContT monad transformer
transformers>=0.4,
-- we use STM's TQueue for our mailbox datastructure
stm>=2.4,
-- generating fmap for n-functors (functor,bifunctor,trifunctor...) and thus implementing covariance of subtyping
-- genifunctors>=0.3,
-- for lifting exceptions to ABS monad and so to implement the exceptions extension for ABS
exceptions,
-- for soft-realtime extension
clock,
-- for implementing the random eff-exp
random,
-- for StdLib and non-StdLib coercive subtyping by generalized fmap
genifunctors>=0.4,
-- for the REST HTTP API
containers,
scotty,
cmdargs
exposed-modules:
-- name-clash-avoiding wrapper module used by the codegen
ABS.Runtime,
-- the ABS standard library and the DC extesion to the standard library
ABS.StdLib,
ABS.DC
other-modules:
-- data structures used by the Runtime
ABS.Runtime.Base,
-- runtime building-blocks that reflect the ABS primitives
ABS.Runtime.Prim,
-- cmdline options for the runtime
ABS.Runtime.CmdOpt,
-- extension for basic input/output from inside ABS
ABS.Runtime.Extension.IO,
-- the extension for exception constructs (try/catch/finally) and certain builtin exception datatypes
ABS.Runtime.Extension.Exception,
-- a runtime & syntax (in habs-parser) extension to support Promises
ABS.Runtime.Extension.Promise,
ABS.Runtime.TQueue
ghc-options: -Wall -fno-warn-orphans
hs-source-dirs: src
if flag(wait-all-cogs)
cpp-options: -DWAIT_ALL_COGS
-- TEST SUITE
-------------
test-suite unit
type: exitcode-stdio-1.0
main-is: unit.hs
build-depends:
base,
habs-runtime,
tasty,
tasty-hunit,
tasty-html,
transformers,
-- for capturing&testing stdout
silently
ghc-options: -fno-ignore-asserts -threaded "-with-rtsopts=-N4"
hs-source-dirs: tests
-- BENCHMARKS
-------------
benchmark cog
type: exitcode-stdio-1.0
main-is: cog.hs
build-depends:
base,
habs-runtime,
transformers,
unagi-chan,
stm,
criterion
hs-source-dirs: bench
ghc-options: -O -fno-ignore-asserts -threaded "-with-rtsopts=-N4"
benchmark future
type: exitcode-stdio-1.0
main-is: future.hs
build-depends:
base,
habs-runtime,
stm,
criterion
hs-source-dirs: bench
ghc-options: -O -fno-ignore-asserts -threaded "-with-rtsopts=-N4"