hoopl 3.10.2.0 → 3.10.2.1
raw patch · 7 files changed
+38/−39 lines, 7 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- changelog.md +14/−1
- hoopl.cabal +3/−3
- src/Compiler/Hoopl/Block.hs +2/−2
- src/Compiler/Hoopl/Dataflow.hs +4/−0
- src/Compiler/Hoopl/Fuel.hs +5/−12
- src/Compiler/Hoopl/Graph.hs +5/−9
- src/Compiler/Hoopl/Unique.hs +5/−12
changelog.md view
@@ -1,6 +1,19 @@ # Changelog for [`hoopl` package](http://hackage.haskell.org/package/hoopl) -## 3.10.1.1 *Aug 2015*+## 3.10.2.1 *Dec 2015*+ This release includes only non-functional changes.++ - Rewrite Applicative/Monad instances into normal-form++ - Relax the upper bound constraint of base to include 4.9++ - Replace `#if CABAL` macro by no CPP at all++ - Wrap redudant wild card pattens in conditional compilation ++ - Prefix unused type variables with underscores. ++## 3.10.2.0 *Aug 2015* - Add #if CABAL macro to several hoopl source files such that the Cabal generated macro is not included when building in ghci
hoopl.cabal view
@@ -1,5 +1,5 @@ Name: hoopl-Version: 3.10.2.0+Version: 3.10.2.1 -- NOTE: Don't forget to update ./changelog.md Description: Higher-order optimization library@@ -45,7 +45,7 @@ Other-Extensions: Safe Trustworthy Hs-Source-Dirs: src- Build-Depends: base >= 4.3 && < 4.9, containers >= 0.4 && < 0.6+ Build-Depends: base >= 4.3 && < 4.10, containers >= 0.4 && < 0.6 Exposed-Modules: Compiler.Hoopl, Compiler.Hoopl.Internals, Compiler.Hoopl.Wrappers,@@ -78,7 +78,7 @@ Type: exitcode-stdio-1.0 Main-Is: Main.hs Hs-Source-Dirs: testing src- Build-Depends: base >= 4.3 && < 4.9, + Build-Depends: base >= 4.3 && < 4.10, containers >= 0.4 && < 0.6, filepath, mtl >= 2.1.3.1,
src/Compiler/Hoopl/Block.hs view
@@ -58,8 +58,8 @@ -- | Either type indexed by closed/open using type families type family IndexedCO ex a b :: *-type instance IndexedCO C a b = a-type instance IndexedCO O a b = b+type instance IndexedCO C a _b = a+type instance IndexedCO O _a b = b -- | Maybe type indexed by open/closed data MaybeO ex t where
src/Compiler/Hoopl/Dataflow.hs view
@@ -247,7 +247,9 @@ -> Fact e f -> m (DG f n e C, Fact C f) c NothingC (JustO entry) = block entry `cat` body (successors entry) bdy c (JustC entries) NothingO = body entries bdy+#if __GLASGOW_HASKELL__ < 711 c _ _ = error "bogus GADT pattern match failure"+#endif -- Lift from nodes to blocks -- @ start block.tex -2@@ -439,7 +441,9 @@ -> Fact C f -> m (DG f n e C, Fact e f) c NothingC (JustO entry) = block entry `cat` body (successors entry) bdy c (JustC entries) NothingO = body entries bdy+#if __GLASGOW_HASKELL__ < 711 c _ _ = error "bogus GADT pattern match failure"+#endif -- Lift from nodes to blocks block BNil = \f -> return (dgnil, f)
src/Compiler/Hoopl/Fuel.hs view
@@ -21,14 +21,7 @@ import Compiler.Hoopl.Checkpoint import Compiler.Hoopl.Unique -#if CABAL-#if !MIN_VERSION_base(4,8,0)-import Control.Applicative (Applicative(..))-#endif-#else-import Control.Applicative (Applicative(..))-#endif-+import Control.Applicative as AP (Applicative(..)) import Control.Monad (ap,liftM) class Monad m => FuelMonad m where@@ -64,11 +57,11 @@ fmap = liftM instance Monad m => Applicative (CheckingFuelMonad m) where- pure = return+ pure a = FM (\f -> return (a, f)) (<*>) = ap instance Monad m => Monad (CheckingFuelMonad m) where- return a = FM (\f -> return (a, f))+ return = AP.pure fm >>= k = FM (\f -> do { (a, f') <- unFM fm f; unFM (k a) f' }) instance CheckpointMonad m => CheckpointMonad (CheckingFuelMonad m) where@@ -96,11 +89,11 @@ fmap = liftM instance Monad m => Applicative (InfiniteFuelMonad m) where- pure = return+ pure a = IFM $ return a (<*>) = ap instance Monad m => Monad (InfiniteFuelMonad m) where- return a = IFM $ return a+ return = pure m >>= k = IFM $ do { a <- unIFM m; unIFM (k a) } instance UniqueMonad m => UniqueMonad (InfiniteFuelMonad m) where
src/Compiler/Hoopl/Graph.hs view
@@ -46,13 +46,7 @@ import Compiler.Hoopl.Block import Compiler.Hoopl.Label -#if CABAL-#if !MIN_VERSION_base(4,8,0)-import Control.Applicative (Applicative(..))-#endif-#else-import Control.Applicative (Applicative(..))-#endif+import Control.Applicative as AP (Applicative(..)) import Control.Monad (ap,liftM,liftM2) -- -----------------------------------------------------------------------------@@ -199,7 +193,9 @@ sp (GMany e1 b1 NothingO) (GMany NothingO b2 x2) = {-# SCC "sp5" #-} (GMany e1 $! b1 `bodyUnion` b2) x2 +#if __GLASGOW_HASKELL__ < 711 sp _ _ = error "bogus GADT match failure"+#endif gSplice :: NonLocal n => Graph n e a -> Graph n a x -> Graph n e x gSplice = splice blockAppend@@ -358,11 +354,11 @@ fmap = liftM instance Applicative VM where- pure = return+ pure a = VM $ \visited -> (a, visited) (<*>) = ap instance Monad VM where- return a = VM $ \visited -> (a, visited)+ return = AP.pure m >>= k = VM $ \visited -> let (a, v') = unVM m visited in unVM (k a) v' marked :: Label -> VM Bool
src/Compiler/Hoopl/Unique.hs view
@@ -24,14 +24,7 @@ import qualified Data.IntMap as M import qualified Data.IntSet as S -#ifdef CABAL-#if !MIN_VERSION_base(4,8,0)-import Control.Applicative-#endif-#else-import Control.Applicative-#endif-+import Control.Applicative as AP import Control.Monad (ap,liftM) -----------------------------------------------------------------------------@@ -123,11 +116,11 @@ fmap = liftM instance Applicative SimpleUniqueMonad where- pure = return+ pure a = SUM $ \us -> (a, us) (<*>) = ap instance Monad SimpleUniqueMonad where- return a = SUM $ \us -> (a, us)+ return = AP.pure m >>= k = SUM $ \us -> let (a, us') = unSUM m us in unSUM (k a) us' @@ -152,11 +145,11 @@ fmap = liftM instance Monad m => Applicative (UniqueMonadT m) where- pure = return+ pure a = UMT $ \us -> return (a, us) (<*>) = ap instance Monad m => Monad (UniqueMonadT m) where- return a = UMT $ \us -> return (a, us)+ return = pure m >>= k = UMT $ \us -> do { (a, us') <- unUMT m us; unUMT (k a) us' } instance Monad m => UniqueMonad (UniqueMonadT m) where