Changelog of @hackage/hscdio 0.1.0.0

The Haskell bindings for libcdio follow the Haskell-standard Package Versioning Policy, 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.