-
Notifications
You must be signed in to change notification settings - Fork 0
/
simplecompiler.cabal
119 lines (114 loc) · 4.68 KB
/
simplecompiler.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
name: simplecompiler
version: 0.1.0.0
-- synopsis:
-- description:
homepage: https://github.com/glaebhoerl/simplecompiler
license: MIT
license-file: LICENSE
author: Gábor Lehel
maintainer: [email protected]
copyright: 2017 Gábor Lehel
category: Compilers
build-type: Simple
cabal-version: >=1.10
-- extra-source-files: README.md
executable simplecompiler
hs-source-dirs: src
main-is: Main.hs
other-modules: MyPrelude, Pretty, Token, AST, Name, Type, IR, LLVM
-- Here we define the language dialect we will be using:
default-language: Haskell2010
default-extensions: AllowAmbiguousTypes,
-- ^^^^^^^^^^^^^^^^^^^ sounds scary, but just means you can define functions which you need `TypeApplications` to use
ApplicativeDo,
AutoDeriveTypeable,
BangPatterns,
BinaryLiterals,
BlockArguments,
-- ^^^^^^^^^^^^^^ <3
ConstrainedClassMethods,
ConstraintKinds,
DataKinds,
DefaultSignatures,
DeriveFoldable,
DeriveFunctor,
DeriveGeneric,
DeriveTraversable,
DerivingVia,
EmptyCase,
ExistentialQuantification,
FlexibleContexts,
FlexibleInstances,
GADTs,
GeneralizedNewtypeDeriving,
InstanceSigs,
KindSignatures,
LambdaCase,
-- ^^^^^^^^^^ <3
MultiParamTypeClasses,
NamedFieldPuns,
NegativeLiterals,
NoImplicitPrelude,
-- ^^^^^^^^^^^^^^^^^ `import MyPrelude` instead!
NumericUnderscores,
OverloadedStrings,
PartialTypeSignatures,
PatternSynonyms,
PolyKinds,
QuantifiedConstraints,
RankNTypes,
ScopedTypeVariables,
StandaloneDeriving,
StrictData,
-- ^^^^^^^^^^ NOTE!!
TupleSections,
TypeApplications,
TypeFamilies,
TypeOperators,
TypeSynonymInstances,
ViewPatterns
-- NOTABLY MISSING:
-- CPP, TemplateHaskell:
-- Would like to avoid these if at all possible. Use a local `LANGUAGE` pragma if/where we can't.
-- DeriveAnyClass:
-- Would be nice, but in GHC 8.0 it's badly implemented and conflicts with GeneralizedNewtypeDeriving.
-- FunctionalDependencies:
-- Use TypeFamilies instead.
-- OverloadedLists:
-- I got a type ambiguity error that I think was caused by this, and otherwise haven't needed it.
-- RecordWildCards:
-- Tryna keep it obvious where names are coming from.
-- RoleAnnotations:
-- Seems niche and it's quite possible we won't ever need it.
-- TypeInType:
-- Very new and fancy and powerful. Give it some time.
-- UndecidableInstances, UndecidableSuperClasses:
-- Not evil, but use a local `LANGUAGE` pragma to call it out if it's necessary.
-- RecursiveDo:
-- Every time I have tried to use this, I eventually got undebuggable <<loop>>s.
build-depends: base >= 4.7 && < 5,
bytestring,
containers,
directory,
Earley,
generic-lens,
lexer-applicative,
llvm-hs,
llvm-hs-pure,
managed,
mtl,
pretty-simple,
prettyprinter,
prettyprinter-ansi-terminal,
process,
profunctors,
regex-applicative,
srcloc,
text
ghc-options: -O
-W -Wall -Wcompat
-Wincomplete-uni-patterns -Wincomplete-record-updates -Wredundant-constraints
-Wno-name-shadowing
source-repository head
type: git
location: https://github.com/glaebhoerl/simplecompiler