Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/haskell/hoopl
Higher-order optimization library
https://github.com/haskell/hoopl
Last synced: about 1 month ago
JSON representation
Higher-order optimization library
- Host: GitHub
- URL: https://github.com/haskell/hoopl
- Owner: haskell
- License: other
- Created: 2015-04-14T06:37:54.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-07-12T13:10:30.000Z (over 1 year ago)
- Last Synced: 2024-04-16T00:49:06.980Z (7 months ago)
- Language: Haskell
- Homepage: http://hackage.haskell.org/package/hoopl
- Size: 1.8 MB
- Stars: 70
- Watchers: 14
- Forks: 27
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
README
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). For detailed explanation
of the library design see paper ["Hoopl: A Modular, Reusable Library for
Dataflow Analysis and
Transformation"](http://research.microsoft.com/en-us/um/people/simonpj/Papers/c--/hoopl-haskell10.pdf)| Directory | Contents
| -------------- | ---------
| `src/` | The current official sources to the Cabal package
| `testing/` | Tests, including a sample client. See [`testing/README`](testing/README)### Development Notes
#### Building and testing
To build the library run:
cabal configure
cabal build
cabal install --enable-documentationTo run the tests in the `testing/` folder run:
cabal configure --enable-tests
cabal testTo run the tests with the test coverage report run:
cabal configure --enable-tests --enable-coverage
cabal testYou'll need a Haskell Platform, which should include appropriate
versions of Cabal and GHC.#### Coding style
Please follow Johan Tibell's
[Haskell Style Guide](https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md)
for all new/modified code.### 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 releaseNote: To upload to Hackage,
cabal sdist
cabal upload dist/hoopl-*.tar.gzHowever, it's recommended use the Hackage feature for
[uploading a candidate](http://hackage.haskell.org/packages/candidates/upload).