]> 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 build-depends:
110 base >= 4.6 && < 5
111 , ghc-prim
112 , monad-classes >= 0.3.1.1
113 , peano
114 , transformers
115 , text
116
117 Test-Suite lol-symantic-test
118 type: exitcode-stdio-1.0
119 default-extensions:
120 OverloadedStrings
121 default-language: Haskell2010
122 ghc-options: -Wall -fno-warn-tabs
123 -main-is Test
124 hs-source-dirs: Language/LOL/Symantic
125 main-is: Test.hs
126 other-modules:
127 Expr.Bool.Test
128 Expr.Lambda.Test
129 Expr.Test
130 AST.Test
131 Repr.Host.Test
132 Repr.String.Test
133 Repr.Test
134 Type.Test
135 if flag(threaded)
136 ghc-options: -threaded -rtsopts -with-rtsopts=-N
137 if flag(dev)
138 cpp-options: -DDEVELOPMENT
139 ghc-options:
140 if flag(prof)
141 cpp-options: -DPROFILING
142 ghc-options: -fprof-auto
143 build-depends:
144 base >= 4.6 && < 5
145 , transformers
146 , tasty >= 0.11
147 , tasty-hunit
148 , lol-symantic