hscdio-0.1.0.0: CHANGELOG.md
The Haskell bindings for libcdio follow the Haskell-standard [Package
Versioning Policy](https://pvp.haskell.org), where the first three numbers
indicate version (types/presence of exported symbols), the fourth number
indicates patch (underlying behaviour and/or backend code), and the fifth
indicates revision (docs, packaging, etc.) This is in contrast to the C
libcdio itself, which (recently) uses Semantic Versioning; the only real
difference is that the first *two* numbers of the bindings signal a breaking
change, while the base library signals that with only *one*.
## v/0.1.0.0. Unreleased
Initial release with nearly all of 'cdio/cdio.h' translated, but not necessarily
tested, documented, or stabilized.
### Added
* f/1.1.1. Translate all core symbols brought in by simply using `#include "cdio/cdio.h`.
For the full list of headers this includes, see `FEATURES`.
Also note that several symbols were left untranslated; see the documentation of `Foreign.Libcdio` for the list.
* f/1.1.3.1. Translate `cdio/cd_types.h` as it's used in some bitmasks above.
* f/1.1.3.2. Integrate log messages with the monad rather than (impurely) printing output.
* f/1.1.4.2. Translate `cdio/util.h` as it provides the conversion functions for `Bcd` values.
* f/1.3.1. f/1.3.3.1. f/1.3.3.2. f/1.3.4.2. Rewrite the documentation of the above to be more clear, more comprehensive, and (occasionally) more correct.
* (some of) f/1.4.1. Just enough of the upstream tests to be sure the bindings are not going *completely* off the rails.
* f/3.1. f/3.3. i/008. Provide a smoother means of accessing the library to Haskell users.
* i/002. Close the low-hanging memory leaks from being returned allocated strings, without obfuscating the type system.
* i/003. i/009. Enforce a bit more type safety by binding integral/string types with typesafe wrappers.
### Known issues
* i/011. On some systems, opening a Cdio session stops the drive from recognizing a manual (push-button) request to open the drive. This also occurs with other libraries, so it's not purely a libcdio problem, Haskell bindings or otherwise, but I come across it much more frequently with the bindings than anywhere else.
* i/021. A `readLog` call will occasionally return unexpected entries.