Kenton Varda wrote:
> Here's the major changes (from CHANGES.txt):
>
>   General
>   * Repeated fields of primitive types (types other that string,
> group, and
>     nested messages) may now use the option [packed = true] to get a more
>     efficient encoding.  In the new encoding, the entire list is written
>     as a single byte blob using the "length-delimited" wire type.  Within
>     this blob, the individual values are encoded the same way they would
>     be normally except without a tag before each value (thus, they are
>     tightly "packed").
I see http://code.google.com/apis/protocolbuffers/docs/proto.html has
been updated.
I will add Haskell support for this.
>   * For each field, the generated code contains an integer constant
> assigned
>     to the field number.  For example, the .proto file:
>       message Foo { optional int bar_baz = 123; }
>     would generate the following constants, all with the integer value
> 123:
>       C++:     Foo::kBarBazFieldNumber
>       Java:    Foo.BAR_BAZ_FIELD_NUMBER
>       Python:  Foo.BAR_BAZ_FIELD_NUMBER
>     Constants are also generated for extensions, with the same naming
> scheme.
>     These constants may be used as switch cases.
Currently the wire layer has the field number baked in; it is never
exposed except through the reflection API.

Not hard to define a bunch of Int values.  But in Haskell these cannot
be used as case targets.  To do that I have to create the Int values as
Enum constructors.  Which is less good.

For now I'll just ignore them, and add a note about it to the user. 
This will be a demand driven feature.
>     other version of Google Test if needed.
>   * It is now an error to define a default value for a repeated field.
>     Previously, this was silently ignored (it had no effect on the
> generated
>     code).
easy
>   * Fields can now be marked deprecated like:
>       optional int32 foo = 1 [deprecated = true];
>     Currently this does not have any actual effect, but in the future
> the code
>     generators may generate deprecation annotations in each language.
easy
>   protoc
>   * The type name resolver will no longer resolve type names to
> fields.  For
>     example, this now works:
>       message Foo {}
>       message Bar {
>         optional int32 Foo = 1;
>         optional Foo baz = 2;
>       }
>     Previously, the type of "baz" would resolve to "Bar.Foo", and
> you'd get
>     an error because Bar.Foo is a field, not a type.  Now the type of
> "baz"
>     resolves to the message type Foo.  This change is unlikely to make a
>     difference to anyone who follows the Protocol Buffers style guide.

Ack, the Haskell version needs to be updated to track this change.
This means I have to go back and understand the name resolution module
in my Haskell implementation.
Hmmm....
It currently has a "resolve in environment" that returns the first hit. 
I'll have to update that.
>   C++
>   * DescriptorPool::AllowUnknownDependencies() may be used to tell
>     DescriptorPool to create placeholder descriptors for unknown entities
>     referenced in a FileDescriptorProto.  This can allow you to parse
> a .proto
>     file without having access to other .proto files that it imports, for
>     example.
hmmm....odd.
>   Java
>   * New I/O methods parseDelimitedFrom(), mergeDelimitedFrom(), and
>     writeDelimitedTo() read and write "delemited" messages from/to a
> stream,
>     meaning that the message size precedes the data.  This way, you
> can write
>     multiple messages to a stream without having to worry about delimiting
>     them yourself.
This will help responding to that FAQ.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to