]> Git — Sourcephile - haskell/symantic.git/blob - symantic.cabal
init
[haskell/symantic.git] / symantic.cabal
1 author: Julien Moutinho <julm+symantic@autogeree.net>
2 -- bug-reports: http://doc.autogeree.net/symantic/bugs
3 build-type: Simple
4 cabal-version: >= 1.10
5 category: Language
6 -- data-dir: data
7 -- data-files:
8 description:
9 Library gathering important ideas from the
10 <http://okmij.org/ftp/tagless-final/ Tagless-Final>
11 approach of embedded DSL (Domain-Specific Language)
12 developed by Jacques Carette, Oleg Kiselyov and Chung-chieh Shan,
13 and pursuing their work to make it usable as a non-embedded DSL.
14 .
15 A so-called /symantic/ type class defines a /syntax/
16 and each of its instances defines a new /semantic/
17 (computing a Haskell term, serializing, optimizing, …).
18 .
19 Combining the methods of those /symantic/ type classes
20 gives rise to a DSL within which one can
21 write /symantic/ expressions at developing time;
22 but in order to handle such expression when entered by an end-user,
23 one has to be able to construct it at runtime.
24 .
25 This library (including its Test.hs files) demonstrates this
26 for a few usual types and methods, by:
27 .
28 * Parsing a /symantic/ expression
29 from an AST (Abstract Syntax Tree).
30 .
31 * Removing or adding /symantic/ parsers
32 by fully reusing old parsers
33 (i.e. without copying or altering them).
34 .
35 * Interpreting a /symantic/ expression
36 multiple times and with different interpreters
37 without reparsing the expression.
38 .
39 Hence, one can select all or a few expressions (and associated types)
40 of this library, add its own, parse them at runtime from its own AST,
41 and then interpret them at will.
42 .
43 Your comments, problem reports, or questions are very welcome! :-)
44 extra-source-files:
45 extra-tmp-files:
46 -- homepage: http://pad.autogeree.net/informatique/symantic/
47 license: GPL-3
48 license-file: COPYING
49 maintainer: Julien Moutinho <julm+symantic@autogeree.net>
50 name: symantic
51 stability: experimental
52 synopsis: Library for Typed Tagless-Final Higher-Order Extensible DSL
53 tested-with: GHC==7.10.3
54 version: 1.20161008
55
56 Source-Repository head
57 location: git://git.autogeree.net/symantic
58 type: git
59
60 Flag dev
61 Default: False
62 Description: Turn on development settings.
63 Manual: True
64
65 Flag dump
66 Default: False
67 Description: Dump some intermediate files.
68 Manual: True
69
70 Flag prof
71 Default: False
72 Description: Turn on profiling settings.
73 Manual: True
74
75 Flag threaded
76 Default: False
77 Description: Enable threads.
78 Manual: True
79
80 Library
81 default-extensions:
82 ghc-options: -Wall -fno-warn-tabs
83 if flag(dev)
84 cpp-options: -DDEVELOPMENT
85 ghc-options:
86 -- -ddump-splices
87 -- -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures
88 -- -fno-warn-type-defaults -fno-warn-orphans
89 if flag(dump)
90 ghc-options: -ddump-simpl -ddump-stg -ddump-to-file
91 if flag(prof)
92 cpp-options: -DPROFILING
93 ghc-options: -fprof-auto
94 default-language: Haskell2010
95 exposed-modules:
96 Language.Symantic
97 Language.Symantic.Expr
98 Language.Symantic.Expr.Bool
99 Language.Symantic.Expr.Common
100 Language.Symantic.Expr.Eq
101 Language.Symantic.Expr.If
102 Language.Symantic.Expr.Int
103 Language.Symantic.Expr.Lambda
104 Language.Symantic.Expr.List
105 Language.Symantic.Expr.Map
106 Language.Symantic.Expr.Maybe
107 Language.Symantic.Expr.Ord
108 Language.Symantic.Expr.Tuple
109 Language.Symantic.Lib.Control.Monad
110 Language.Symantic.Lib.Data.Peano
111 Language.Symantic.Repr
112 Language.Symantic.Repr.Dup
113 Language.Symantic.Repr.Host
114 Language.Symantic.Repr.Text
115 Language.Symantic.Trans
116 Language.Symantic.Trans.Bool
117 Language.Symantic.Trans.Bool.Const
118 Language.Symantic.Trans.Common
119 Language.Symantic.Type
120 Language.Symantic.Type.Bool
121 Language.Symantic.Type.Common
122 Language.Symantic.Type.Fun
123 Language.Symantic.Type.Int
124 Language.Symantic.Type.List
125 Language.Symantic.Type.Map
126 Language.Symantic.Type.Maybe
127 Language.Symantic.Type.Ordering
128 Language.Symantic.Type.Tuple
129 Language.Symantic.Type.Unit
130 Language.Symantic.Type.Var
131 build-depends:
132 base >= 4.6 && < 5
133 , containers
134 , ghc-prim
135 -- , monad-classes >= 0.3.1.1
136 , transformers
137 , text
138
139 Test-Suite symantic-test
140 type: exitcode-stdio-1.0
141 default-extensions:
142 OverloadedStrings
143 default-language: Haskell2010
144 ghc-options: -Wall -fno-warn-tabs
145 -main-is Test
146 hs-source-dirs: Language/Symantic
147 main-is: Test.hs
148 other-modules:
149 AST.Test
150 Expr.Bool.Test
151 Expr.Eq.Test
152 Expr.If.Test
153 Expr.Int.Test
154 Expr.Lambda.Test
155 Expr.List.Test
156 Expr.Maybe.Test
157 Expr.Test
158 Repr.Host.Test
159 Repr.Test
160 Repr.Text.Test
161 Trans.Bool.Const.Test
162 Trans.Bool.Test
163 Trans.Test
164 Type.Test
165 if flag(threaded)
166 ghc-options: -threaded -rtsopts -with-rtsopts=-N
167 if flag(dev)
168 cpp-options: -DDEVELOPMENT
169 ghc-options:
170 if flag(prof)
171 cpp-options: -DPROFILING
172 ghc-options: -fprof-auto
173 build-depends:
174 base >= 4.6 && < 5
175 , transformers
176 , tasty >= 0.11
177 , tasty-hunit
178 , text
179 , symantic