Good enough, these things happen. Thanks for your continuous support
and hard work!
-h
Yes, native support for this kind of feature would be very welcome.
--
Wbr,
Antony Dovgal
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.
Kenton Varda wrote:
> On Sun, May 17, 2009 at 6:57 AM, Chris Kuklewicz <turin...@gmail.com
> <mailto:turin...@gmail.com>> wrote:
>
>
> What do people think?
>
>
> You're right, this should have been handled too. Oh well, I'll stick
> it on my TODO list for a later release.
I am quite happy to have helped. The two name resolution functions were
side by side in my code; making the decision to fix only one looked
odd. I will immediately support resolving extendee names to Messages,
ignoring Fields and other things.
As for the "packed" fields, I just now got my Haskell version to the
next stage:
(1) new new runtime and converter both compile with "packed" support
(2) it can convert the new unittest.proto into Haskell code with
"packed" support
(3) the generated Haskell code compiles against new runtime with
"packed" support
(4) it has regenerated its own descriptor.proto and been recompiled
(enums needed an extra line to get packed fields efficiently)
So the next stage is to test the behavior and see if it can
inter-operate with itself and with packed files from protobuf-2.1.0.
Making the extension fields also "packable" was tedious but did not
require redesigning anything. Whew. The "unknown" field support did
not need updating at all.
As for the newly exposed field number constants: I cannot make them a
proper enum data type in Haskell because those are closed definitions
and so could not include any of the extension fields outside the
message's own proto file. I could still make them type safe constants,
but these could not be used as targets of a case statement. The data is
available through reflection, so I will wait to implement anything else
until an actual person comes to me with a use case that I can make
design decisions for.
As for delimiting messages by prepending the length: I already had these
commands, so all I did was change the documentation from "author's
extension" to "compatible with protobuf-2.1.0". Not that I actually
tested it...
--
Chris