{"id":15010901,"url":"https://github.com/haskell/hoopl","last_synced_at":"2025-04-06T18:16:49.116Z","repository":{"id":30362579,"uuid":"33915092","full_name":"haskell/hoopl","owner":"haskell","description":"Higher-order optimization library","archived":false,"fork":false,"pushed_at":"2023-07-12T13:10:30.000Z","size":1886,"stargazers_count":74,"open_issues_count":11,"forks_count":28,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-30T16:12:49.781Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://hackage.haskell.org/package/hoopl","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haskell.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-04-14T06:37:54.000Z","updated_at":"2025-02-28T06:33:35.000Z","dependencies_parsed_at":"2023-09-27T19:35:13.185Z","dependency_job_id":"812e111a-ed7a-4df0-8773-b3c4d1851519","html_url":"https://github.com/haskell/hoopl","commit_stats":{"total_commits":1013,"total_committers":34,"mean_commits":"29.794117647058822","dds":"0.32082922013820336","last_synced_commit":"df22cac9750e057fbd3509a6d4781ca625e0c304"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haskell%2Fhoopl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haskell%2Fhoopl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haskell%2Fhoopl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haskell%2Fhoopl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haskell","download_url":"https://codeload.github.com/haskell/hoopl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247419597,"owners_count":20936010,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T19:37:05.231Z","updated_at":"2025-04-06T18:16:49.088Z","avatar_url":"https://github.com/haskell.png","language":"Haskell","funding_links":[],"categories":["Tools and Frameworks"],"sub_categories":["Haskell"],"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)\n===================\n\n## Hoopl: A Higher-Order OPtimization Library\n\nAPI documentation can be found on\n[Hackage](https://hackage.haskell.org/package/hoopl).  For detailed explanation\nof the library design see paper [\"Hoopl: A Modular, Reusable Library for\nDataflow Analysis and\nTransformation\"](http://research.microsoft.com/en-us/um/people/simonpj/Papers/c--/hoopl-haskell10.pdf)\n\n| Directory      | Contents\n| -------------- | ---------\n| `src/`         | The current official sources to the Cabal package\n| `testing/`     | Tests, including a sample client.  See [`testing/README`](testing/README)\n\n### Development Notes\n\n#### Building and testing\n\nTo build the library run:\n\n    cabal configure\n    cabal build\n    cabal install --enable-documentation\n\nTo run the tests in the `testing/` folder run:\n\n    cabal configure --enable-tests\n    cabal test\n\nTo run the tests with the test coverage report run:\n\n    cabal configure --enable-tests --enable-coverage\n    cabal test\n\nYou'll need a Haskell Platform, which should include appropriate\nversions of Cabal and GHC.\n\n#### Coding style\n\nPlease follow Johan Tibell's\n[Haskell Style Guide](https://github.com/tibbe/haskell-style-guide/blob/master/haskell-style.md)\nfor all new/modified code.\n\n### Checklist for Making Releases\n\nIn 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.\n\n1. Make sure `hoopl` passes Travis for all GHC versions in the build-matrix\n2. Update Changelog (\u0026 `git commit`)\n3. Generate source tarball via `cabal sdist` and upload a candidate to Hackage (see note below), and inspect the result. \n4. If everything checks out, make an annotated and GPG-signed Git release tag: `git tag -a -s v${VER} -m \"hoopl ${VER}\"`\n5. Publish (there's a button for that on Hackage) the package candidate\n6. Work on next release\n\nNote: To upload to Hackage,\n\n    cabal sdist\n    cabal upload dist/hoopl-*.tar.gz\n\nHowever, it's recommended use the Hackage feature for\n[uploading a candidate](http://hackage.haskell.org/packages/candidates/upload).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaskell%2Fhoopl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaskell%2Fhoopl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaskell%2Fhoopl/lists"}