Index: third_party/protobuf/CHANGES.txt |
=================================================================== |
--- third_party/protobuf/CHANGES.txt (revision 216642) |
+++ third_party/protobuf/CHANGES.txt (working copy) |
@@ -1,3 +1,61 @@ |
+2012-09-19 version 2.5.0: |
+ |
+ General |
+ * New notion "import public" that allows a proto file to forward the content |
+ it imports to its importers. For example, |
+ // foo.proto |
+ import public "bar.proto"; |
+ import "baz.proto"; |
+ |
+ // qux.proto |
+ import "foo.proto"; |
+ // Stuff defined in bar.proto may be used in this file, but stuff from |
+ // baz.proto may NOT be used without importing it explicitly. |
+ This is useful for moving proto files. To move a proto file, just leave |
+ a single "import public" in the old proto file. |
+ * New enum option "allow_alias" that specifies whether different symbols can |
+ be assigned the same numeric value. Default value is "true". Setting it to |
+ false causes the compiler to reject enum definitions where multiple symbols |
+ have the same numeric value. |
+ |
+ C++ |
+ * New generated method set_allocated_foo(Type* foo) for message and string |
+ fields. This method allows you to set the field to a pre-allocated object |
+ and the containing message takes the ownership of that object. |
+ * Added SetAllocatedExtension() and ReleaseExtension() to extensions API. |
+ * Custom options are now formatted correctly when descriptors are printed in |
+ text format. |
+ * Various speed optimizations. |
+ |
+ Java |
+ * Comments in proto files are now collected and put into generated code as |
+ comments for corresponding classes and data members. |
+ * Added Parser to parse directly into messages without a Builder. For |
+ example, |
+ Foo foo = Foo.getParser().ParseFrom(input); |
+ Using Parser is ~25% faster than using Builder to parse messages. |
+ * Added getters/setters to access the underlying ByteString of a string field |
+ directly. |
+ * ByteString now supports more operations: substring(), prepend(), and |
+ append(). The implementation of ByteString uses a binary tree structure |
+ to support these operations efficiently. |
+ * New method findInitializationErrors() that lists all missing required |
+ fields. |
+ * Various code size and speed optimizations. |
+ |
+ Python |
+ * Added support for dynamic message creation. DescriptorDatabase, |
+ DescriptorPool, and MessageFactory work like their C++ couterparts to |
+ simplify Descriptor construction from *DescriptorProtos, and MessageFactory |
+ provides a message instance from a Descriptor. |
+ * Added pickle support for protobuf messages. |
+ * Unknown fields are now preserved after parsing. |
+ * Fixed bug where custom options were not correctly populated. Custom |
+ options can be accessed now. |
+ * Added EnumTypeWrapper that provides better accessibility to enum types. |
+ * Added ParseMessage(descriptor, bytes) to generate a new Message instance |
+ from a descriptor and a byte string. |
+ |
2011-05-01 version 2.4.1: |
C++ |