]> Git — Sourcephile - haskell/symantic.git/blob - lol-symantic.cabal
init
[haskell/symantic.git] / lol-symantic.cabal
1 author: Julien Moutinho <julm+lol@autogeree.net>
2 -- bug-reports: http://doc.autogeree.net/lol/bugs
3 build-type: Simple
4 cabal-version: >= 1.10
5 category: Language
6 -- data-dir: data
7 -- data-files:
8 description:
9 Demonstration code gathering important ideas from
10 the <http://okmij.org/ftp/tagless-final/ Tagless-Final> approach
11 to Embedded DSL (Domain-Specific Language)
12 of Oleg Kiselyov, Jacques Carette and Chung-chieh Shan,
13 also implementing a way to use it as non-Embedded DSL.
14 .
15 For a few examples types (function, boolean, integer)
16 a so-called /symantic/ type class defines a /syntax/
17 whose instances are interpreters
18 defining each one a new /semantic/
19 (computing a Haskell term, serializing, optimizing, …).
20 .
21 Combining the methods of those /symantic/ type classes
22 form an EDSL in which one can write /symantic expressions/ at developing time,
23 a next step is then to be able to write such /symantic expressions/ at runtime,
24 while preserving their extensibility and interpretability.
25 .
26 In this direction, the main improvements are:
27 .
28 * Reading /symantic expressions/
29 from a raw AST (Abstract Syntax Tree);
30 including /call-by-value/ and /call-by-need/ (lazy)
31 lambda abstractions.
32 .
33 * Keeping this reading recombinable
34 and extensible with new /symantic expressions/;
35 reusing previous readers without alterating them.
36 .
37 * Keeping those read /symantic expressions/
38 usable with multiple interpreters.
39 .
40 Your comments, problem reports, questions are very welcome!
41 extra-source-files:
42 extra-tmp-files:
43 -- homepage: http://pad.autogeree.net/informatique/lol/symantic/
44 license: GPL-3
45 license-file: COPYING
46 maintainer: Julien Moutinho <julm+lol@autogeree.net>
47 name: lol-symantic
48 stability: experimental
49 synopsis: Demo of Typed Tagless-Final Higher-Order Extensible DSL
50 tested-with: GHC==7.10.3
51 version: 1.20160919
52
53 Source-Repository head
54 location: git://git.autogeree.net/lol
55 type: git
56
57 Flag dev
58 Default: False
59 Description: Turn on development settings.
60 Manual: True
61
62 Flag dump
63 Default: False
64 Description: Dump some intermediate files.
65 Manual: True
66
67 Flag prof
68 Default: False
69 Description: Turn on profiling settings.
70 Manual: True
71
72 Flag threaded
73 Default: False
74 Description: Enable threads.
75 Manual: True
76
77 Library
78 default-extensions:
79 ghc-options: -Wall -fno-warn-tabs
80 if flag(dev)
81 cpp-options: -DDEVELOPMENT
82 ghc-options:
83 -- -ddump-splices
84 -- -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures
85 -- -fno-warn-type-defaults -fno-warn-orphans
86 if flag(dump)
87 ghc-options: -ddump-simpl -ddump-stg -ddump-to-file
88 if flag(prof)
89 cpp-options: -DPROFILING
90 ghc-options: -fprof-auto
91 default-language: Haskell2010
92 exposed-modules:
93 Language.LOL.Symantic.Lib.Control.Monad
94 Language.LOL.Symantic.Expr
95 Language.LOL.Symantic.Expr.Bool
96 Language.LOL.Symantic.Expr.Common
97 Language.LOL.Symantic.Expr.Lambda
98 Language.LOL.Symantic.Expr.Int
99 Language.LOL.Symantic.AST
100 Language.LOL.Symantic.Repr
101 Language.LOL.Symantic.Repr.Dup
102 Language.LOL.Symantic.Repr.Host
103 Language.LOL.Symantic.Repr.String
104 Language.LOL.Symantic.Type
105 Language.LOL.Symantic.Type.Bool
106 Language.LOL.Symantic.Type.Common
107 Language.LOL.Symantic.Type.Fun
108 Language.LOL.Symantic.Type.Int
109 Language.LOL.Symantic.Trans
110 Language.LOL.Symantic.Trans.Common
111 Language.LOL.Symantic.Trans.Bool
112 build-depends:
113 base >= 4.6 && < 5
114 , ghc-prim
115 , monad-classes >= 0.3.1.1
116 , peano
117 , transformers
118 , text
119
120 Test-Suite lol-symantic-test
121 type: exitcode-stdio-1.0
122 default-extensions:
123 OverloadedStrings
124 default-language: Haskell2010
125 ghc-options: -Wall -fno-warn-tabs
126 -main-is Test
127 hs-source-dirs: Language/LOL/Symantic
128 main-is: Test.hs
129 other-modules:
130 Expr.Bool.Test
131 Expr.Lambda.Test
132 Expr.Test
133 AST.Test
134 Repr.Host.Test
135 Repr.String.Test
136 Repr.Test
137 Type.Test
138 if flag(threaded)
139 ghc-options: -threaded -rtsopts -with-rtsopts=-N
140 if flag(dev)
141 cpp-options: -DDEVELOPMENT
142 ghc-options:
143 if flag(prof)
144 cpp-options: -DPROFILING
145 ghc-options: -fprof-auto
146 build-depends:
147 base >= 4.6 && < 5
148 , transformers
149 , tasty >= 0.11
150 , tasty-hunit
151 , lol-symantic