packages feed

bv-0.5: CHANGES.md

0.5.0
=====

Note that changes in `fromInteger` and `toInteger` implementations break backwards compatibility.
I hope this will not cause major problems, let me know otherwise.

* Make _bv_ with compatible with GHC 8.4.1 (_base_ 4.11). Thanks to Kosyrev Serge!
* Define `toInteger` as `int` rather than `nat`.
* Make `fromInteger` consistent and always encode in two's complement, also positive integers.
* As a result of the two previous changes, now `toInteger . fromInteger == id`, as it should be.
* Add `Read BV` instance (based on `Text.Read`, so GHC-only).
* Fix a few bugs in the non-GMP implementation. (Fortunately, GMP is the default.)
* Remove upper bounds on testing dependencies.

0.4.1
=====

Another maintenance release:

* Fix compilation error with GHC 8.0.1.
* Add `check-bounds' flag so the user decides whether to perform bounds checking.

0.4.0
=====

This is a maintenance release, but it introduces changes to the API that required a new major version.
In summary, I have fixed a few bugs, optimized a few functions, and added a few more properties (tests).
Apart from that, and the usual clean up, there are also a handful of new API functions that I judged useful.

For performance reasons, this release introduces GMP specific optimizations.
The GMP-based backend is automatically used if available, unless _-f -gmp_ is specified.

Dependencies
-----------

Only if the library is compiled with _-fgmp_ (it will, by default, if possible):

* Depend on the _ghc-prim_ package, the GHC's internal representation of primitive types.
* Depend on the _integer-gmp_ package, the Haskell bindings for GNU's GMP library.
* Use _MagicHash_ extension to work with unboxed machine integers.

Interface
---------

* Added _bitVecs_ (list of bit-vector literals).
* Added _@:_ (indexing of multiple bits).
* Added _pow_ as an optimized exponentiation function.
* Fixed _bitVec_ (value must fit bit-with).
* Fixed _negate_ (wrong on zero bit-vector).
* Define _and_ and _or_ for the case of an empty list.
* Declared Monoid instance for bit-vector (monoid under concanetation).
* Define _join_ for the case of an empty list (it must be equivalent to _mconcat_).
* Optimized when using the GMP backend: _fromBits_, _fromInteger_, and _lg2_.
* Remove uninteresting _maxNat_ function from export list.

0.3.0
=====

This is a maintenance release, but it introduces changes to the API that required a new major version.

Dependencies
-----------

* Increase base version to 4.6.
* Support base 4.7 (new methods were added to the _Bits_ type-class).
* Use of _CPP_ extension for conditional compilation.

Interface
---------

* Replace assertions by errors when checking preconditions of exported functions.
* Use proper names for functions and encourage qualified import, names ended with underscore are now deprecated.
* Add _lsb1_ function to complement _msb1_.
* Tweak code and documentation.