packages feed

bv-little 1.3.0 → 1.3.1

raw patch · 3 files changed

+36/−3 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

README.md view
@@ -19,8 +19,31 @@ For an implementation of *little-endian, mutable* bit vectors, use the [`bitvec`](https://hackage.haskell.org/package/bitvec) package.  -#### Tests+### Accessing type-class instances +This package utilizes the ["multiple sub-libraries"][0] feature of Cabal.+The intended usage is an "opt-in" dependency footprint for the `bv-little` package, as not all type-class instances which are defined are exposed by default.+Therefore package consumers can select which, if any, type-class instances outside of the [core libraries][1] they wish to have exposed and transitively depend on the associated package(s).++#### New type-class instance exposure procedure:++1. All `BitVector` instances of type-classes defined in `base` are exported by default from the `Data.BitVector.LittleEndian` module.++2. Each `BitVector` instance of a type-class defined in a package *other than* `base` is exposed through a specific sub-library dependency and a special exposing module.++To access an instance of a type-class defined *outside* `base`, add the requisite sub-library to your `build-depends` and `import`  the corresponding exposing module within your code-base.++| Sub-library Dependency                      | Exposing Module                               | Type-class Instance(s)       |+|:--------------------------------------------|:----------------------------------------------|:-----------------------------|+| `bv-little:instances-binary`                | `Data.BitVector.LittleEndian.Binary`          | <ul><li>`Binary`</li></ul>   |+| `bv-little:instances-mono-traversable`      | `Data.BitVector.LittleEndian.MonoTraversable` | <ul><li>`MonoFoldable`</li><li>`MonoFunctor`</li><li>`MonoTraversable`</li></ul> |+| `bv-little:instances-mono-traversable-keys` | `Data.BitVector.LittleEndian.MonoKeyed`       | <ul><li>`MonoAdjustable`</li><li>`MonoFoldableWithKey`</li><li>`MonoIndexable`</li><li>`MonoKeyed`</li><li>`MonoLookup`</li><li>`MonoTraversableWithKey`</li><li>`MonoZip`</li><li>`MonoZipWithKey`</li></ul> |+| `bv-little:instances-quickcheck`            | `Data.BitVector.LittleEndian.QuickCheck`      | <ul><li>`Arbitrary`</li><li>`CoArbitrary`</li></ul> |+| `bv-little:instances-text-show`             | `Data.BitVector.LittleEndian.TextShow`        | <ul><li>`TextShow`</li></ul> |+++### Tests+ The test suite ensures that all type-class instances are "lawful" and that data-structure–specific functionality is well defined.  The `TestSuite.hs` file contains the specification. It can be run by invoking any of the following commands:@@ -30,7 +53,7 @@   * `stack test`  -#### Benchmarks+### Benchmarks  The benchmarks provide an empyrical check for the asymptotic complexity of data structure operations and also provide easy metrics for detecting performance regressions. @@ -39,3 +62,7 @@   * `cabal bench`    * `stack bench`+++[0]: https://cabal.readthedocs.io/en/3.4/cabal-package.html?highlight=visibility#sublibs+[1]: https://github.com/haskell/core-libraries-committee#core-libraries
bv-little.cabal view
@@ -1,6 +1,6 @@ Cabal-Version:      3.0 Name:               bv-little-Version:            1.3.0+Version:            1.3.1 Stability:          Stable Build-Type:         Simple Tested-With:
changelog.md view
@@ -1,6 +1,11 @@ `bv-little` *follows semantic versioning [(SemVer)](https://semver.org/).*  +## [v1.3.1][8]++  * Fixed Haddock documentation rendering in sub-libraries++ ## [v1.3.0][7]    * Added back `TextShow` instance@@ -105,3 +110,4 @@ [5]: https://github.com/recursion-ninja/bv-little/tree/v1.1.0 [6]: https://github.com/recursion-ninja/bv-little/tree/v1.1.1 [7]: https://github.com/recursion-ninja/bv-little/tree/v1.3.0+[8]: https://github.com/recursion-ninja/bv-little/tree/v1.3.1