Announcing Haskell protocol-buffers version 1.2.2
Chris Kuklewicz
haskell at list.mightyreason.com
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 :
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/protocol-buffers
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/protocol-buffers-descriptor
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hprotoc
The darcs repository with all 3 packages is at
http://darcs.haskell.org/packages/protocol-buffers2/
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
http://code.google.com/apis/protocolbuffers/docs/overview.html and generate code
for C++, Python, and Java. Other languages are listed on the wiki at
http://code.google.com/p/protobuf/wiki/OtherLanguages (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
changed.
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
sure).
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.
Cheers,
Chris Kuklewicz
More information about the Libraries
mailing list