Ann: Version 1.2.1 of Protocol-Buffers for Haskell

This is to announce version 1.2.1 of my protocol-buffers, protocol-buffers-descriptor, and hprotoc packages. Note: Code generated by the previous versions of hprotoc will not work with this new version of the library, and vice-versa. These improve on the previous version 1.0.1 in a few ways: * The Enum modules have a new "toMaybe'Enum :: Int -> Maybe TYPE" function which allows for better error handling. * The generated Enum instances have better error messages. * The wireGet deserialization operation on Messages and Groups has better error handling: ** Unrecognized enum value call throwError instead of calling error. ** Incoming strings are checked for valid utf8 encoding, or will call throwError. ** For messages generated with "unknown" support, all field error are caught and then the data is loaded into the unknown map (which might also fail, which won't be caught). * wireGet now uses explicitly generated "Set WireTag" instead of using reflection. This is saner, and might even have helped performance. * A bug inside an error reporting function in hprotoc was fixed (it caused a hang due to lazy self-dependence when showing error information). The main upside to these changes is to remove a the "error" call from 1.0.1's used of toEnum and make the deserialization more robust and predictable. In the future there will be support for the changes in google's upcoming version 2.0.3 of protoc (mainly custom EnumValue options). Cheers, Chris
participants (1)
-
Chris Kuklewicz