raw-feldspar 0.3 → 0.3.1
raw patch · 3 files changed
+34/−18 lines, 3 filesdep ~arraydep ~constraintsdep ~containers
Dependency ranges changed: array, constraints, containers, data-default-class, data-hash, language-c-quote, mtl, template-haskell
Files
- README.md +9/−5
- raw-feldspar.cabal +15/−12
- src/Data/Inhabited/TH.hs +10/−1
README.md view
@@ -6,15 +6,15 @@ ## Installation -RAW-Feldspar can be installed directly from [Hackage](http://hackage.haskell.org/package/raw-feldspar), preferably in a [sandbox](https://www.haskell.org/cabal/users-guide/installing-packages.html#developing-with-sandboxes):+RAW-Feldspar can be installed directly from [Hackage](http://hackage.haskell.org/package/raw-feldspar): - cabal install raw-feldspar+ cabal new-install raw-feldspar The installation can be sped up a bit (and the size of the installation reduced) by adding a flag to `language-c-quote` (a dependency of RAW-Feldspar): - cabal install --constraint="language-c-quote -full-haskell-antiquotes" raw-feldspar+ cabal new-install --constraint="language-c-quote -full-haskell-antiquotes" raw-feldspar -However, this flag should normally only be used when installing in a sandbox that has no other packages depending `language-c-quote`.+However, this flag is less relevant now with Cabal's Nix-style local builds. ## Getting started @@ -112,7 +112,7 @@ Note how the whole `sumSq` computation has been fused into a single loop without any array allocation. -## External libraries+## External libraries and uses of RAW-Feldspar ### Zeldspar @@ -129,6 +129,10 @@ [feldspar-synch](https://github.com/emilaxelsson/feldspar-synch) is a library that extends Feldspar with Yampa-style synchronous streams. It contains a simple polyphonic synthesizer as a demonstration. The synthesizer may serve as a simple example of a complete (toy) application written in RAW-Feldspar. It also demonstrates how to make bindings to an external C library (the ALSA sound library).++### feldspar-mpeg1-decoder++[feldspar-mpeg1-decoder](https://github.com/mightynerd/feldspar-mpeg1-decoder) is a partially complete MPEG-1 video decoder written in RAW-Feldspar. See also the associated [masters thesis](https://odr.chalmers.se/bitstream/20.500.12380/301392/1/CSE%2020-66%20Heurlin%20Zwierzchowski.pdf). ## Why RAW-Feldspar?
raw-feldspar.cabal view
@@ -1,5 +1,5 @@ name: raw-feldspar-version: 0.3+version: 0.3.1 synopsis: Resource-Aware Feldspar description: An implementation of the Feldspar EDSL with focus on resource-awareness.@@ -92,20 +92,20 @@ ViewPatterns build-depends:- array,+ array < 0.6, base < 5,- constraints,- containers,- data-default-class,- data-hash,+ constraints < 0.12,+ containers < 0.7,+ data-default-class < 0.2,+ data-hash < 0.3, imperative-edsl >= 0.8 && < 0.9,- language-c-quote,- mtl,+ language-c-quote < 0.13,+ mtl < 2.3, operational-alacarte, prelude-edsl >= 0.4, syntactic >= 3.8, -- That version fixes overlap bugs- template-haskell+ template-haskell < 2.17 if impl(ghc == 8.0.*) build-depends:@@ -149,7 +149,8 @@ mtl, raw-feldspar - ghc-options: -Wno-simplifiable-class-constraints+ if impl(ghc >= 8.0)+ ghc-options: -Wno-simplifiable-class-constraints test-suite Semantics type: exitcode-stdio-1.0@@ -172,7 +173,8 @@ tasty-quickcheck, tasty-th - ghc-options: -Wno-simplifiable-class-constraints+ if impl(ghc >= 8.0)+ ghc-options: -Wno-simplifiable-class-constraints test-suite Examples type: exitcode-stdio-1.0@@ -204,5 +206,6 @@ tasty-hunit, tasty-quickcheck - ghc-options: -Wno-simplifiable-class-constraints+ if impl(ghc >= 8.0)+ ghc-options: -Wno-simplifiable-class-constraints
src/Data/Inhabited/TH.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ module Data.Inhabited.TH where @@ -8,6 +10,13 @@ +mkTupE :: [Exp] -> Exp+#if __GLASGOW_HASKELL__ >= 810+mkTupE = TupE . map Just+#else+mkTupE = TupE+#endif+ inhabitedTupleInstances :: Int -> DecsQ inhabitedTupleInstances n = return [ instD@@ -20,7 +29,7 @@ (mkName "example") [ Clause []- (NormalB $ TupE $ map VarE $ replicate w (mkName "example"))+ (NormalB $ mkTupE $ map VarE $ replicate w (mkName "example")) [] ] ]