hoopl: A library to support dataflow analysis and optimization

[ bsd3, compilers-interpreters, library ] [ Propose Tags ]

Higher-order optimization library

See Norman Ramsey, Joao Dias, and Simon Peyton Jones. "Hoopl: A Modular, Reusable Library for Dataflow Analysis and Transformation" (2010) for more details.


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Versions [RSS] 3.7.0.0, 3.7.1.0, 3.7.2.2, 3.7.3.3, 3.7.3.4, 3.7.3.5, 3.7.4.0, 3.7.7.0, 3.7.8.0, 3.7.12.1, 3.8.3.0, 3.8.6.0, 3.8.7.0, 3.8.7.1, 3.8.7.3, 3.8.7.4, 3.9.0.0, 3.10.0.0, 3.10.0.1, 3.10.0.2, 3.10.1.0, 3.10.2.0, 3.10.2.1, 3.10.2.2
Change log changelog.md
Dependencies base (>=4.3 && <4.12), containers (>=0.5 && <0.6) [details]
License BSD-3-Clause
Author Norman Ramsey, Joao Dias, Simon Marlow and Simon Peyton Jones
Maintainer Ning Wang <email@ningwang.org>, Michal Terepeta <michal.terepeta@gmail.com>, Norman Ramsey <nr@cs.tufts.edu>
Revised Revision 2 made by NingWang at 2018-03-16T00:12:28Z
Category Compilers/Interpreters
Home page https://github.com/haskell/hoopl
Bug tracker https://github.com/haskell/hoopl/issues/
Source repo head: git clone http://git.haskell.org/packages/hoopl.git
Uploaded by NingWang at 2017-10-29T03:38:52Z
Distributions NixOS:3.10.2.2
Reverse Dependencies 9 direct, 13916 indirect [details]
Downloads 31470 total (50 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-10-29 [all 1 reports]

Readme for hoopl-3.10.2.2

[back to package description]

The hoopl Package Hackage Build Status

Hoopl: A Higher-Order OPtimization Library

API documentation can be found on Hackage. For detailed explanation of the library design see paper "Hoopl: A Modular, Reusable Library for Dataflow Analysis and Transformation"

Directory Contents
src/ The current official sources to the Cabal package
testing/ Tests, including a sample client. See testing/README

Development Notes

Building and testing

To build the library run:

cabal configure
cabal build
cabal install --enable-documentation

To run the tests in the testing/ folder run:

cabal configure --enable-tests
cabal test

To run the tests with the test coverage report run:

cabal configure --enable-tests --enable-coverage
cabal test

You'll need a Haskell Platform, which should include appropriate versions of Cabal and GHC.

Coding style

Please follow Johan Tibell's Haskell Style Guide for all new/modified code.

Checklist for Making Releases

In order to facilitate GHC development's workflow, the version in 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.