You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The name GRIN is short for *Graph Reduction Intermediate Notation*, and it is an intermediate language for graph reduction. GRIN is the optimizer and code generator component of the GRIN Compiler project which includes language frontends for *Haskell*, *Idris* and *Agda*.
7
-
To get the big picture of the project check the [project website](https://grin-compiler.github.io/).
7
+
To get the big picture of the project check the [project website](https://grin-compiler.github.io/).
@@ -15,13 +15,13 @@ Code Optimisation Techniques for Lazy Functional Languages
15
15
16
16
We presented the core ideas of GRIN at Haskell Exchange 2018. [slides](https://docs.google.com/presentation/d/1QsZ3Kyy3XIco-qba1biRmzuMzz8o2uCBqA9DMtnqP2c/edit?usp=sharing)[video](https://skillsmatter.com/skillscasts/12390-grin-an-alternative-haskell-compiler-backend)
17
17
18
-
Read our paper [A modern look at GRIN, an optimizing functional language back end](http://nbviewer.jupyter.org/github/Anabra/grin/blob/fd9de6d3b9c7ec5f4aa7d6be41285359a73494e3/papers/stcs-2019/article/tex/main.pdf) (2019) to get an overview of GRIN related projects and other whole program compilers i.e. *Boquist GRIN, UHC, JHC, LHC, HRC, MLton*
18
+
Read our paper [A modern look at GRIN, an optimizing functional language back end](https://nbviewer.jupyter.org/github/Anabra/grin/blob/65177587f4ea0586801e582f1f3750b2d46351a2/papers/stcs-2019/article/tex/main.pdf) (2019) to get an overview of GRIN related projects and other whole program compilers i.e. *Boquist GRIN, UHC, JHC, LHC, HRC, MLton*
19
19
20
20
Also check the GRIN transformation [example from Boquist PhD](http://nbviewer.jupyter.org/github/grin-compiler/grin/blob/master/papers/boquist.pdf#page=317) and an [example from our implementation](https://github.com/grin-compiler/grin/tree/master/grin/grin/sum-simple-output).
21
21
22
22
## Support
23
23
24
-
The project is supported by these awesome [backers](https://github.com/grin-compiler/grin/blob/master/BACKERS.md).
24
+
The project is supported by these awesome [backers](https://github.com/grin-compiler/grin/blob/master/BACKERS.md).
25
25
If you'd like to join them, please consider become a backer or sponsor on [Patreon](https://www.patreon.com/csaba_hruska).
26
26
27
27
@@ -49,7 +49,7 @@ If you'd like to join them, please consider become a backer or sponsor on [Patre
See: [Issues / Tasks for new contributors](https://github.com/grin-compiler/grin/issues/3)
99
+
See: [Issues / Tasks for new contributors](https://github.com/grin-compiler/grin/issues/3)
100
100
Keep it simple: We follow the fundamentals laid down in [HaskellerZ - Feb 2018 - Getting things done in Haskell](https://www.youtube.com/watch?v=-X1vrxQUETM)
Copy file name to clipboardExpand all lines: grin/app/CLI/Lib.hs
+50-16Lines changed: 50 additions & 16 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
{-# LANGUAGE LambdaCase #-}
2
-
moduleMainwhere
2
+
moduleCLI.Libwhere
3
3
4
4
importControl.Monad
5
5
importData.Map (Map(..))
@@ -17,10 +17,12 @@ import System.IO
17
17
18
18
importGrin.Grin
19
19
importGrin.PrimOpsPrelude
20
-
importGrin.Parsehiding (value)
20
+
importGrin.Parse
21
21
importGrin.NametableasNametable
22
22
importPipeline.Pipeline
23
23
24
+
25
+
24
26
dataOptions=Options
25
27
{optFiles:: [FilePath]
26
28
, optTrans:: [PipelineStep]
@@ -29,6 +31,8 @@ data Options = Options
29
31
, optQuiet::Bool
30
32
, optLoadBinary::Bool
31
33
, optSaveBinary::Bool
34
+
, optCFiles:: [FilePath]
35
+
, optDontFailOnLint::Bool
32
36
}derivingShow
33
37
34
38
flg c l h = flag' c (mconcat [long l, help h])
@@ -118,7 +122,8 @@ pipelineOpts =
118
122
<|> flg (Pass [SharingCompile, SharingOptimise, SharingRunPure]) "sharing-opt""Compiles, optimizes and runs the sharing analysis"
119
123
<|> flg (Pass [LVACompile, CByCompile, RunCByWithLVA]) "cby-with-lva""Compiles the live variable and created-by analyses, then runs the created-by analysis using the LVA result"
0 commit comments