The hoopl package

[ Tags: 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]

Properties

Versions 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.11), containers (==0.5.*) [details]
License BSD3
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>
Category Compilers/Interpreters
Home page https://github.com/haskell/hoopl
Bug tracker https://github.com/haskell/hoopl/issues/
Source repository head: git clone http://git.haskell.org/packages/hoopl.git
Uploaded Sun Oct 29 03:38:52 UTC 2017 by NingWang
Distributions Arch:3.10.2.2, LTSHaskell:3.10.2.1, NixOS:3.10.2.2, Stackage:3.10.2.2
Downloads 15749 total (1187 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-10-29 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


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.