summaryrefslogtreecommitdiffstats
path: root/CHANGES.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGES.txt')
-rw-r--r--CHANGES.txt207
1 files changed, 1 insertions, 206 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index 0d0ac81..eebd57d 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,209 +1,4 @@
-2014-10-20 version 2.6.1:
-
- C++
- * Added atomicops support for Solaris.
- * Released memory allocated by InitializeDefaultRepeatedFields() and
- GetEmptyString(). Some memory sanitizers reported them as memory leaks.
-
- Java
- * Updated DynamicMessage.setField() to handle repeated enum values
- correctly.
- * Fixed a bug that caused NullPointerException to be thrown when
- converting manually constructed FileDescriptorProto to
- FileDescriptor.
-
- Python
- * Fixed WhichOneof() to work with de-serialized protobuf messages.
- * Fixed a missing file problem of Python C++ implementation.
-
-2014-08-15 version 2.6.0:
-
- General
- * Added oneofs(unions) feature. Fields in the same oneof will share
- memory and at most one field can be set at the same time. Use the
- oneof keyword to define a oneof like:
- message SampleMessage {
- oneof test_oneof {
- string name = 4;
- YourMessage sub_message = 9;
- }
- }
- * Files, services, enums, messages, methods and enum values can be marked
- as deprecated now.
- * Added Support for list values, including lists of mesaages, when
- parsing text-formatted protos in C++ and Java.
- For example: foo: [1, 2, 3]
-
- C++
- * Enhanced customization on TestFormat printing.
- * Added SwapFields() in reflection API to swap a subset of fields.
- Added SetAllocatedMessage() in reflection API.
- * Repeated primitive extensions are now packable. The
- [packed=true] option only affects serializers. Therefore, it is
- possible to switch a repeated extension field to packed format
- without breaking backwards-compatibility.
- * Various speed optimizations.
-
- Java
- * writeTo() method in ByteString can now write a substring to an
- output stream. Added endWith() method for ByteString.
- * ByteString and ByteBuffer are now supported in CodedInputStream
- and CodedOutputStream.
- * java_generate_equals_and_hash can now be used with the LITE_RUNTIME.
-
- Python
- * A new C++-backed extension module (aka "cpp api v2") that replaces the
- old ("cpp api v1") one. Much faster than the pure Python code. This one
- resolves many bugs and is recommended for general use over the
- pure Python when possible.
- * Descriptors now have enum_types_by_name and extension_types_by_name dict
- attributes.
- * Support for Python 3.
-
-2013-02-27 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.
- Note: We plan to flip the default value to "false" in a future release.
- Projects using enum aliases should set the option to "true" in their .proto
- files.
-
- 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.PARSER.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++
- * Fixed the frendship problem for old compilers to make the library now gcc 3
- compatible again.
- * Fixed vcprojects/extract_includes.bat to extract compiler/plugin.h.
-
- Java
- * Removed usages of JDK 1.6 only features to make the library now JDK 1.5
- compatible again.
- * Fixed a bug about negative enum values.
- * serialVersionUID is now defined in generated messages for java serializing.
- * Fixed protoc to use java.lang.Object, which makes "Object" now a valid
- message name again.
-
- Python
- * Experimental C++ implementation now requires C++ protobuf library installed.
- See the README.txt in the python directory for details.
-
-2011-02-02 version 2.4.0:
-
- General
- * The RPC (cc|java|py)_generic_services default value is now false instead of
- true.
- * Custom options can have aggregate types. For example,
- message MyOption {
- optional string comment = 1;
- optional string author = 2;
- }
- extend google.protobuf.FieldOptions {
- optional MyOption myoption = 12345;
- }
- This option can now be set as follows:
- message SomeType {
- optional int32 field = 1 [(myoption) = { comment:'x' author:'y' }];
- }
-
- C++
- * Various speed and code size optimizations.
- * Added a release_foo() method on string and message fields.
- * Fixed gzip_output_stream sub-stream handling.
-
- Java
- * Builders now maintain sub-builders for sub-messages. Use getFooBuilder() to
- get the builder for the sub-message "foo". This allows you to repeatedly
- modify deeply-nested sub-messages without rebuilding them.
- * Builder.build() no longer invalidates the Builder for generated messages
- (You may continue to modify it and then build another message).
- * Code generator will generate efficient equals() and hashCode()
- implementations if new option java_generate_equals_and_hash is enabled.
- (Otherwise, reflection-based implementations are used.)
- * Generated messages now implement Serializable.
- * Fields with [deprecated=true] will be marked with @Deprecated in Java.
- * Added lazy conversion of UTF-8 encoded strings to String objects to improve
- performance.
- * Various optimizations.
- * Enum value can be accessed directly, instead of calling getNumber() on the
- enum member.
- * For each enum value, an integer constant is also generated with the suffix
- _VALUE.
-
- Python
- * Added an experimental C++ implementation for Python messages via a Python
- extension. Implementation type is controlled by an environment variable
- PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION (valid values: "cpp" and "python")
- The default value is currently "python" but will be changed to "cpp" in
- future release.
- * Improved performance on message instantiation significantly.
- Most of the work on message instantiation is done just once per message
- class, instead of once per message instance.
- * Improved performance on text message parsing.
- * Allow add() to forward keyword arguments to the concrete class.
- E.g. instead of
- item = repeated_field.add()
- item.foo = bar
- item.baz = quux
- You can do:
- repeated_field.add(foo=bar, baz=quux)
- * Added a sort() interface to the BaseContainer.
- * Added an extend() method to repeated composite fields.
- * Added UTF8 debug string support.
-
-2010-01-08 version 2.3.0:
+2009-01-08 version 2.3.0:
General
* Parsers for repeated numeric fields now always accept both packed and