Announcing Haskell protocol-buffers version 1.2.2

Chris Kuklewicz haskell at
Sun Dec 7 16:17:04 EST 2008

Hi everyone,

To keep up with protocol-buffers 2.0.3 here is an improved Haskell "hprotoc" 
version 1.2.2 :

The darcs repository with all 3 packages is at

These ought to be compatible with the previous version 1.2.1.

As usual, this code read a ".proto" file which describes message formats and 
generates Haskell modes to encode and decode corresponding data type to the 
binary wire format.  Google's original protocol buffers are at and generate code 
for C++, Python, and Java.  Other languages are listed on the wiki at (including Haskell).

The two changes are support for the field-option-like syntax for 
EnumValueOptions, and adjacent string literals are concatenated.  Note that 
strings are checked for valid utf8 encoding after concatenation, not 
individually.  But backslash escape codes are decoded for each individual 
string, not after concatenation.  If these quirks become problems they can be 

The protoc bug fixed in 2.0.3:
 >   * Fixed bug where .proto files which use custom options but don't actually
 >     define them (i.e. they import another .proto file defining the options)
 >     had to explicitly import descriptor.proto."
did not affect hprotoc, which already did the Right Thing™ (I just tested to be 

The protoc bug fixed in 2.0.3:
 >   * If an input file is a Windows absolute path (e.g. "C:\foo\bar.proto") and
 >     the import path only contains "." (or contains "." but does not contain
 >     the file), protoc incorrectly thought that the file was under ".", because
 >     it thought that the path was relative (since it didn't start with a slash).
 >     This has been fixed.
is unlikely to be be present in hprotoc.  But since I never run or test on 
Windows I make no promises hprotoc is finding the correct relative paths on Windows.

  Chris Kuklewicz

More information about the Libraries mailing list