packages feed

hoopl 3.10.0.2 → 3.10.1.0

raw patch · 10 files changed

+64/−38 lines, 10 filesnew-uploaderPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Compiler.Hoopl: [bp_lattice] :: BwdPass m n f -> DataflowLattice f
- Compiler.Hoopl: [bp_rewrite] :: BwdPass m n f -> BwdRewrite m n f
- Compiler.Hoopl: [bp_transfer] :: BwdPass m n f -> BwdTransfer n f
- Compiler.Hoopl: [fact_bot] :: DataflowLattice a -> a
- Compiler.Hoopl: [fact_join] :: DataflowLattice a -> JoinFun a
- Compiler.Hoopl: [fact_name] :: DataflowLattice a -> String
- Compiler.Hoopl: [fp_lattice] :: FwdPass m n f -> DataflowLattice f
- Compiler.Hoopl: [fp_rewrite] :: FwdPass m n f -> FwdRewrite m n f
- Compiler.Hoopl: [fp_transfer] :: FwdPass m n f -> FwdTransfer n f
- Compiler.Hoopl: [getBRewrite3] :: BwdRewrite m n f -> (n C O -> f -> m (Maybe (Graph n C O, BwdRewrite m n f)), n O O -> f -> m (Maybe (Graph n O O, BwdRewrite m n f)), n O C -> FactBase f -> m (Maybe (Graph n O C, BwdRewrite m n f)))
- Compiler.Hoopl: [getBTransfer3] :: BwdTransfer n f -> (n C O -> f -> f, n O O -> f -> f, n O C -> FactBase f -> f)
- Compiler.Hoopl: [getFRewrite3] :: FwdRewrite m n f -> (n C O -> f -> m (Maybe (Graph n C O, FwdRewrite m n f)), n O O -> f -> m (Maybe (Graph n O O, FwdRewrite m n f)), n O C -> f -> m (Maybe (Graph n O C, FwdRewrite m n f)))
- Compiler.Hoopl: [getFTransfer3] :: FwdTransfer n f -> (n C O -> f -> f, n O O -> f -> f, n O C -> f -> FactBase f)
- Compiler.Hoopl.Internals: [bp_lattice] :: BwdPass m n f -> DataflowLattice f
- Compiler.Hoopl.Internals: [bp_rewrite] :: BwdPass m n f -> BwdRewrite m n f
- Compiler.Hoopl.Internals: [bp_transfer] :: BwdPass m n f -> BwdTransfer n f
- Compiler.Hoopl.Internals: [fact_bot] :: DataflowLattice a -> a
- Compiler.Hoopl.Internals: [fact_join] :: DataflowLattice a -> JoinFun a
- Compiler.Hoopl.Internals: [fact_name] :: DataflowLattice a -> String
- Compiler.Hoopl.Internals: [fp_lattice] :: FwdPass m n f -> DataflowLattice f
- Compiler.Hoopl.Internals: [fp_rewrite] :: FwdPass m n f -> FwdRewrite m n f
- Compiler.Hoopl.Internals: [fp_transfer] :: FwdPass m n f -> FwdTransfer n f
- Compiler.Hoopl.Internals: [getBRewrite3] :: BwdRewrite m n f -> (n C O -> f -> m (Maybe (Graph n C O, BwdRewrite m n f)), n O O -> f -> m (Maybe (Graph n O O, BwdRewrite m n f)), n O C -> FactBase f -> m (Maybe (Graph n O C, BwdRewrite m n f)))
- Compiler.Hoopl.Internals: [getBTransfer3] :: BwdTransfer n f -> (n C O -> f -> f, n O O -> f -> f, n O C -> FactBase f -> f)
- Compiler.Hoopl.Internals: [getFRewrite3] :: FwdRewrite m n f -> (n C O -> f -> m (Maybe (Graph n C O, FwdRewrite m n f)), n O O -> f -> m (Maybe (Graph n O O, FwdRewrite m n f)), n O C -> f -> m (Maybe (Graph n O C, FwdRewrite m n f)))
- Compiler.Hoopl.Internals: [getFTransfer3] :: FwdTransfer n f -> (n C O -> f -> f, n O O -> f -> f, n O C -> f -> FactBase f)
- Compiler.Hoopl.Passes.Dominator: instance GHC.Show.Show Compiler.Hoopl.Passes.Dominator.DPath
- Compiler.Hoopl.Passes.Dominator: instance GHC.Show.Show Compiler.Hoopl.Passes.Dominator.DominatorNode
- Compiler.Hoopl.Passes.Dominator: instance GHC.Show.Show Compiler.Hoopl.Passes.Dominator.DominatorTree
+ Compiler.Hoopl: bp_lattice :: BwdPass m n f -> DataflowLattice f
+ Compiler.Hoopl: bp_rewrite :: BwdPass m n f -> BwdRewrite m n f
+ Compiler.Hoopl: bp_transfer :: BwdPass m n f -> BwdTransfer n f
+ Compiler.Hoopl: fact_bot :: DataflowLattice a -> a
+ Compiler.Hoopl: fact_join :: DataflowLattice a -> JoinFun a
+ Compiler.Hoopl: fact_name :: DataflowLattice a -> String
+ Compiler.Hoopl: fp_lattice :: FwdPass m n f -> DataflowLattice f
+ Compiler.Hoopl: fp_rewrite :: FwdPass m n f -> FwdRewrite m n f
+ Compiler.Hoopl: fp_transfer :: FwdPass m n f -> FwdTransfer n f
+ Compiler.Hoopl: getBRewrite3 :: BwdRewrite m n f -> (n C O -> f -> m (Maybe (Graph n C O, BwdRewrite m n f)), n O O -> f -> m (Maybe (Graph n O O, BwdRewrite m n f)), n O C -> FactBase f -> m (Maybe (Graph n O C, BwdRewrite m n f)))
+ Compiler.Hoopl: getBTransfer3 :: BwdTransfer n f -> (n C O -> f -> f, n O O -> f -> f, n O C -> FactBase f -> f)
+ Compiler.Hoopl: getFRewrite3 :: FwdRewrite m n f -> (n C O -> f -> m (Maybe (Graph n C O, FwdRewrite m n f)), n O O -> f -> m (Maybe (Graph n O O, FwdRewrite m n f)), n O C -> f -> m (Maybe (Graph n O C, FwdRewrite m n f)))
+ Compiler.Hoopl: getFTransfer3 :: FwdTransfer n f -> (n C O -> f -> f, n O O -> f -> f, n O C -> f -> FactBase f)
+ Compiler.Hoopl.Internals: bp_lattice :: BwdPass m n f -> DataflowLattice f
+ Compiler.Hoopl.Internals: bp_rewrite :: BwdPass m n f -> BwdRewrite m n f
+ Compiler.Hoopl.Internals: bp_transfer :: BwdPass m n f -> BwdTransfer n f
+ Compiler.Hoopl.Internals: fact_bot :: DataflowLattice a -> a
+ Compiler.Hoopl.Internals: fact_join :: DataflowLattice a -> JoinFun a
+ Compiler.Hoopl.Internals: fact_name :: DataflowLattice a -> String
+ Compiler.Hoopl.Internals: fp_lattice :: FwdPass m n f -> DataflowLattice f
+ Compiler.Hoopl.Internals: fp_rewrite :: FwdPass m n f -> FwdRewrite m n f
+ Compiler.Hoopl.Internals: fp_transfer :: FwdPass m n f -> FwdTransfer n f
+ Compiler.Hoopl.Internals: getBRewrite3 :: BwdRewrite m n f -> (n C O -> f -> m (Maybe (Graph n C O, BwdRewrite m n f)), n O O -> f -> m (Maybe (Graph n O O, BwdRewrite m n f)), n O C -> FactBase f -> m (Maybe (Graph n O C, BwdRewrite m n f)))
+ Compiler.Hoopl.Internals: getBTransfer3 :: BwdTransfer n f -> (n C O -> f -> f, n O O -> f -> f, n O C -> FactBase f -> f)
+ Compiler.Hoopl.Internals: getFRewrite3 :: FwdRewrite m n f -> (n C O -> f -> m (Maybe (Graph n C O, FwdRewrite m n f)), n O O -> f -> m (Maybe (Graph n O O, FwdRewrite m n f)), n O C -> f -> m (Maybe (Graph n O C, FwdRewrite m n f)))
+ Compiler.Hoopl.Internals: getFTransfer3 :: FwdTransfer n f -> (n C O -> f -> f, n O O -> f -> f, n O C -> f -> FactBase f)
+ Compiler.Hoopl.Passes.Dominator: instance [safe] Show DPath
+ Compiler.Hoopl.Passes.Dominator: instance [safe] Show DominatorNode
+ Compiler.Hoopl.Passes.Dominator: instance [safe] Show DominatorTree
- Compiler.Hoopl: bodyList :: NonLocal (block n) => Body' block n -> [(Label, block n C C)]
+ Compiler.Hoopl: bodyList :: Body' block n -> [(Label, block n C C)]
- Compiler.Hoopl: joinOutFacts :: (NonLocal node) => DataflowLattice f -> node O C -> FactBase f -> f
+ Compiler.Hoopl: joinOutFacts :: NonLocal node => DataflowLattice f -> node O C -> FactBase f -> f
- Compiler.Hoopl: showGraph :: (NonLocal n) => Showing n -> Graph n e x -> String
+ Compiler.Hoopl: showGraph :: Showing n -> Graph n e x -> String
- Compiler.Hoopl.Internals: bodyList :: NonLocal (block n) => Body' block n -> [(Label, block n C C)]
+ Compiler.Hoopl.Internals: bodyList :: Body' block n -> [(Label, block n C C)]

Files

− README
@@ -1,28 +0,0 @@-This repository contains things related to--              Hoopl: A Higher-Order OPtimization Library--** The closest thing we have to a SAMPLE CLIENT is in ./testing **--Directory     Contents--paper/        A paper about Hoopl-prototypes/   A sampling of prototypes and early designs-src/          The current official sources to the Cabal package-testing/      Tests, including a sample client.  See ./testing/README.--To build the library, change to the src directory and run--  cabal configure --prefix=$HOME --user   # we have no idea what this means-  cabal build-  cabal install --enable-documentation--You'll need a Haskell Platform, which should include appropriate-versions of Cabal and GHC.--To upload to Hackage,--  cabal sdist-  cabal upload dist/something.tar.gz--Developers, please see HOWTO-BRANCHES
+ README.md view
@@ -0,0 +1,43 @@+The `hoopl` Package  [![Hackage](https://img.shields.io/hackage/v/hoopl.svg)](https://hackage.haskell.org/package/hoopl) [![Build Status](https://travis-ci.org/haskell/hoopl.svg)](https://travis-ci.org/haskell/hoopl)+===================++## Hoopl: A Higher-Order OPtimization Library++API documentation can be found on [Hackage](https://hackage.haskell.org/package/hoopl).++| Directory      | Contents+| -------------- | ---------+| `paper/`       | A paper about Hoopl+| `prototypes/`  | A sampling of prototypes and early designs+| `src/`         | The current official sources to the Cabal package+| `testing/`     | Tests, including a sample client.  See [`testing/README`](testing/README)++### Development Notes++To build the library, change to the src directory and run++    cabal configure --prefix=$HOME --user   # we have no idea what this means+    cabal build+    cabal install --enable-documentation++You'll need a Haskell Platform, which should include appropriate+versions of Cabal and GHC.++### Checklist for Making Releases++In order to facilitate GHC development's workflow, the version in [`hoopl.cabal`](hoopl.cabal) is to be bumped as soon as a change requires a respective version bump (according to the PVP) relative to the last released `hoopl` version.++1. Make sure `hoopl` passes Travis for all GHC versions in the build-matrix+2. Update Changelog (& `git commit`)+3. Generate source tarball via `cabal sdist` and upload a candidate to Hackage (see note below), and inspect the result. +4. If everything checks out, make an annotated and GPG-signed Git release tag: `git tag -a -s v${VER} -m "hoopl ${VER}"`+5. Publish (there's a button for that on Hackage) the package candidate+6. Work on next release++Note: To upload to Hackage,++    cabal sdist+    cabal upload dist/hoopl-*.tar.gz++However, it's recommended use the Hackage feature for+[uploading a candidate](http://hackage.haskell.org/packages/candidates/upload).
changelog.md view
@@ -1,5 +1,11 @@ # Changelog for [`hoopl` package](http://hackage.haskell.org/package/hoopl) +## 3.10.1.0 *Apr 2015*++ - Re-export runWithFuel from Compiler.Hoopl.++ - Remove redundant constraints+ ## 3.10.0.2  *Dec 2014*   - Add support for `base-4.8.0.0` package version
hoopl.cabal view
@@ -1,5 +1,5 @@ Name:                hoopl-Version:             3.10.0.2+Version:             3.10.1.0 -- NOTE: Don't forget to update ./changelog.md Description:   Higher-order optimization library@@ -10,7 +10,7 @@ License:             BSD3 License-File:        LICENSE Author:              Norman Ramsey, Joao Dias, Simon Marlow and Simon Peyton Jones-Maintainer:          nr@cs.tufts.edu+Maintainer:          nr@cs.tufts.edu, andreas.voellmy@gmail.com, email@ningwang.org Homepage:            http://ghc.cs.tufts.edu/hoopl/ Bug-Reports:         http://ghc.haskell.org/trac/ghc/newticket?component=libraries/hoopl Build-Type:          Simple@@ -18,7 +18,7 @@ Synopsis:            A library to support dataflow analysis and optimization Category:            Compilers/Interpreters Tested-With:         GHC>=7.0.1-Extra-Source-Files:  README, hoopl.pdf, changelog.md+Extra-Source-Files:  README.md, hoopl.pdf, changelog.md  Source-repository head   Type:       git
src/Compiler/Hoopl.hs view
@@ -27,7 +27,7 @@ import Compiler.Hoopl.Dataflow hiding ( wrapFR, wrapFR2, wrapBR, wrapBR2                                       ) import Compiler.Hoopl.Debug-import Compiler.Hoopl.Fuel hiding (withFuel, getFuel, setFuel, runWithFuel)+import Compiler.Hoopl.Fuel hiding (withFuel, getFuel, setFuel) import Compiler.Hoopl.Block import Compiler.Hoopl.Graph hiding (splice, gSplice) import Compiler.Hoopl.Label hiding (uniqueToLbl, lblToUnique)
src/Compiler/Hoopl/Dataflow.hs view
@@ -736,7 +736,7 @@           exitFacts (JustO (DBlock f b)) = mapSingleton (entryLabel b) f           bodyFacts :: LabelMap (DBlock f n C C) -> FactBase f           bodyFacts body = mapFoldWithKey f noFacts body-            where f :: forall t a x. (NonLocal t) => Label -> DBlock a t C x -> LabelMap a -> LabelMap a+            where f :: forall t a x. Label -> DBlock a t C x -> LabelMap a -> LabelMap a                   f lbl (DBlock f _) fb = mapInsert lbl f fb  --- implementation of the constructors (boring)
src/Compiler/Hoopl/Fuel.hs view
@@ -21,7 +21,9 @@ import Compiler.Hoopl.Checkpoint import Compiler.Hoopl.Unique +#if !MIN_VERSION_base(4,8,0) import Control.Applicative (Applicative(..))+#endif import Control.Monad (ap,liftM)  class Monad m => FuelMonad m where
src/Compiler/Hoopl/Graph.hs view
@@ -46,7 +46,9 @@ import Compiler.Hoopl.Block import Compiler.Hoopl.Label +#if !MIN_VERSION_base(4,8,0) import Control.Applicative (Applicative(..))+#endif import Control.Monad (ap,liftM,liftM2)  -- -----------------------------------------------------------------------------@@ -65,7 +67,7 @@ bodyUnion = mapUnionWithKey nodups   where nodups l _ _ = error $ "duplicate blocks with label " ++ show l -bodyList :: NonLocal (block n) => Body' block n -> [(Label,block n C C)]+bodyList :: Body' block n -> [(Label,block n C C)] bodyList body = mapToList body  addBlock :: NonLocal thing@@ -306,8 +308,7 @@ -- Better to get [A,B,C,D]  -graphDfs :: (NonLocal (block n))-         => (LabelMap (block n C C) -> block n O C -> LabelSet -> [block n C C])+graphDfs :: (LabelMap (block n C C) -> block n O C -> LabelSet -> [block n C C])          -> (Graph' block n O x -> [block n C C]) graphDfs _     (GNil)    = [] graphDfs _     (GUnit{}) = []
src/Compiler/Hoopl/Show.hs view
@@ -20,9 +20,9 @@ type Showing n = forall e x . n e x -> String   -showGraph :: forall n e x . (NonLocal n) => Showing n -> Graph n e x -> String+showGraph :: forall n e x . Showing n -> Graph n e x -> String showGraph node = g-  where g :: (NonLocal n) => Graph n e x -> String+  where g :: Graph n e x -> String         g GNil = ""         g (GUnit block) = b block         g (GMany g_entry g_blocks g_exit) =
src/Compiler/Hoopl/Unique.hs view
@@ -24,7 +24,9 @@ import qualified Data.IntMap as M import qualified Data.IntSet as S +#if !MIN_VERSION_base(4,8,0) import Control.Applicative+#endif import Control.Monad (ap,liftM)  -----------------------------------------------------------------------------