The hoopl package

[maintain]
Warnings:

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]

Properties

Versions3.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
Dependenciesbase (>=4.3 && <4.11), containers (==0.5.*) [details]
LicenseBSD3
AuthorNorman Ramsey, Joao Dias, Simon Marlow and Simon Peyton Jones
MaintainerNing Wang <email@ningwang.org>, Michal Terepeta <michal.terepeta@gmail.com>, Norman Ramsey <nr@cs.tufts.edu>
CategoryCompilers/Interpreters
Home pagehttps://github.com/haskell/hoopl
Bug trackerhttps://github.com/haskell/hoopl/issues/
Source repositoryhead: git clone http://git.haskell.org/packages/hoopl.git
UploadedSat Feb 11 23:18:41 UTC 2017 by NingWang

Modules

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for hoopl-3.10.2.2

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.