OLD | NEW |
1 2015-08-26 version 3.0.0-beta-1 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaSr
ipt) | 1 2016-05-16 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaSc
ript) |
2 General | 2 General |
3 * Intorduced a new language implementaion: JavaScript. | 3 * Supported Proto3 lite-runtime in C++/Java for mobile platforms. |
| 4 * Any type now supports APIs to specify prefixes other than |
| 5 type.googleapis.com |
| 6 * Removed javanano_use_deprecated_package option; Nano will always has its own |
| 7 ".nano" package. |
| 8 |
| 9 C++ (Beta) |
| 10 * Improved hash maps. |
| 11 - Improved hash maps comments. In particular, please note that equal hash |
| 12 maps will not necessarily have the same iteration order and |
| 13 serialization. |
| 14 - Added a new hash maps implementation that will become the default in a |
| 15 later release. |
| 16 * Arenas |
| 17 - Several inlined methods in Arena were moved to out-of-line to improve |
| 18 build performance and code size. |
| 19 - Added SpaceAllocatedAndUsed() to report both space used and allocated |
| 20 - Added convenient class UnsafeArenaAllocatedRepeatedPtrFieldBackInserter |
| 21 * Any |
| 22 - Allow custom type URL prefixes in Any packing. |
| 23 - TextFormat now expand the Any type rather than printing bytes. |
| 24 * Performance optimizations and various bug fixes. |
| 25 |
| 26 Java (Beta) |
| 27 * Introduced an ExperimentalApi annotation. Annotated APIs are experimental |
| 28 and are subject to change in a backward incompatible way in future releases. |
| 29 * Introduced zero-copy serialization as an ExperimentalApi |
| 30 - Introduction of the `ByteOutput` interface. This is similar to |
| 31 `OutputStream` but provides semantics for lazy writing (i.e. no |
| 32 immediate copy required) of fields that are considered to be immutable. |
| 33 - `ByteString` now supports writing to a `ByteOutput`, which will directly |
| 34 expose the internals of the `ByteString` (i.e. `byte[]` or `ByteBuffer`) |
| 35 to the `ByteOutput` without copying. |
| 36 - `CodedOutputStream` now supports writing to a `ByteOutput`. `ByteString` |
| 37 instances that are too large to fit in the internal buffer will be |
| 38 (lazily) written to the `ByteOutput` directly. |
| 39 - This allows applications using large `ByteString` fields to avoid |
| 40 duplication of these fields entirely. Such an application can supply a |
| 41 `ByteOutput` that chains together the chunks received from |
| 42 `CodedOutputStream` before forwarding them onto the IO system. |
| 43 * Other related changes to `CodedOutputStream` |
| 44 - Additional use of `sun.misc.Unsafe` where possible to perform fast |
| 45 access to `byte[]` and `ByteBuffer` values and avoiding unnecessary |
| 46 range checking. |
| 47 - `ByteBuffer`-backed `CodedOutputStream` now writes directly to the |
| 48 `ByteBuffer` rather than to an intermediate array. |
| 49 * Improved lite-runtime. |
| 50 - Lite protos now implement deep equals/hashCode/toString |
| 51 - Significantly improved the performance of Builder#mergeFrom() and |
| 52 Builder#mergeDelimitedFrom() |
| 53 * Various bug fixes and small feature enhancement. |
| 54 - Fixed stack overflow when in hashCode() for infinite recursive oneofs. |
| 55 - Fixed the lazy field parsing in lite to merge rather than overwrite. |
| 56 - TextFormat now supports reporting line/column numbers on errors. |
| 57 - Updated to add appropriate @Override for better compiler errors. |
| 58 |
| 59 Python (Beta) |
| 60 * Added JSON format for Any, Struct, Value and ListValue |
| 61 * [ ] is now accepted for both repeated scalar fields and repeated message |
| 62 fields in text format parser. |
| 63 * Numerical field name is now supported in text format. |
| 64 * Added DiscardUnknownFields API for python protobuf message. |
| 65 |
| 66 Objective-C (Beta) |
| 67 * Proto comments now come over as HeaderDoc comments in the generated sources |
| 68 so Xcode can pick them up and display them. |
| 69 * The library headers have been updated to use HeaderDoc comments so Xcode can |
| 70 pick them up and display them. |
| 71 * The per message and per field overhead in both generated code and runtime |
| 72 object sizes was reduced. |
| 73 * Generated code now include deprecated annotations when the proto file |
| 74 included them. |
| 75 |
| 76 C# (Beta) |
| 77 In general: some changes are breaking, which require regenerating messages. |
| 78 Most user-written code will not be impacted *except* for the renaming of enum |
| 79 values. |
| 80 |
| 81 * Allow custom type URL prefixes in `Any` packing, and ignore them when |
| 82 unpacking |
| 83 * `protoc` is now in a separate NuGet package (Google.Protobuf.Tools) |
| 84 * New option: `internal_access` to generate internal classes |
| 85 * Enum values are now PascalCased, and if there's a prefix which matches the |
| 86 name of the enum, that is removed (so an enum `COLOR` with a value |
| 87 `COLOR_BLUE` would generate a value of just `Blue`). An option |
| 88 (`legacy_enum_values`) is temporarily available to disable this, but the |
| 89 option will be removed for GA. |
| 90 * `json_name` option is now honored |
| 91 * If group tags are encountered when parsing, they are validated more |
| 92 thoroughly (although we don't support actual groups) |
| 93 * NuGet dependencies are better specified |
| 94 * Breaking: `Preconditions` is renamed to `ProtoPreconditions` |
| 95 * Breaking: `GeneratedCodeInfo` is renamed to `GeneratedClrTypeInfo` |
| 96 * `JsonFormatter` now allows writing to a `TextWriter` |
| 97 * New interface, `ICustomDiagnosticMessage` to allow more compact |
| 98 representations from `ToString` |
| 99 * `CodedInputStream` and `CodedOutputStream` now implement `IDisposable`, |
| 100 which simply disposes of the streams they were constructed with |
| 101 * Map fields no longer support null values (in line with other languages) |
| 102 * Improvements in JSON formatting and parsing |
| 103 |
| 104 Javascript (Alpha) |
| 105 * Better support for "bytes" fields: bytes fields can be read as either a |
| 106 base64 string or UInt8Array (in environments where TypedArray is supported). |
| 107 * New support for CommonJS imports. This should make it easier to use the |
| 108 JavaScript support in Node.js and tools like WebPack. See js/README.md for |
| 109 more information. |
| 110 * Some significant internal refactoring to simplify and modularize the code. |
| 111 |
| 112 Ruby (Alpha) |
| 113 * JSON serialization now properly uses camelCased names, with a runtime option |
| 114 that will preserve original names from .proto files instead. |
| 115 * Well-known types are now included in the distribution. |
| 116 * Release now includes binary gems for Windows, Mac, and Linux instead of just |
| 117 source gems. |
| 118 * Bugfix for serializing oneofs. |
| 119 |
| 120 C++/Java Lite (Alpha) |
| 121 A new "lite" generator parameter was introduced in the protoc for C++ and |
| 122 Java for Proto3 syntax messages. Example usage: |
| 123 |
| 124 ./protoc --cpp_out=lite:$OUTPUT_PATH foo.proto |
| 125 |
| 126 The protoc will treat the current input and all the transitive dependencies |
| 127 as LITE. The same generator parameter must be used to generate the |
| 128 dependencies. |
| 129 |
| 130 In Proto3 syntax files, "optimized_for=LITE_RUNTIME" is no longer supported. |
| 131 |
| 132 |
| 133 2015-12-30 version 3.0.0-beta-2 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaSc
ript) |
| 134 General |
| 135 * Introduced a new language implementation: JavaScript. |
4 * Added a new field option "json_name". By default proto field names are | 136 * Added a new field option "json_name". By default proto field names are |
5 converted to "lowerCamelCase" in proto3 JSON format. This option can be | 137 converted to "lowerCamelCase" in proto3 JSON format. This option can be |
6 used to override this behavior and specify a different JSON name for the | 138 used to override this behavior and specify a different JSON name for the |
7 field. | 139 field. |
8 * Added conformance tests to ensure implementations are following proto3 JSON | 140 * Added conformance tests to ensure implementations are following proto3 JSON |
9 specification. | 141 specification. |
10 | 142 |
11 C++ (Beta) | 143 C++ (Beta) |
12 * Various bug fixes and improvements to the JSON support utility: | 144 * Various bug fixes and improvements to the JSON support utility: |
13 - Duplicate map keys in JSON are now rejected (i.e., translation will | 145 - Duplicate map keys in JSON are now rejected (i.e., translation will |
(...skipping 14 matching lines...) Expand all Loading... |
28 - Fixed a thread-safety bug. | 160 - Fixed a thread-safety bug. |
29 - Added a new option “preservingProtoFieldNames” to JsonFormat. | 161 - Added a new option “preservingProtoFieldNames” to JsonFormat. |
30 - Added a new option “includingDefaultValueFields” to JsonFormat. | 162 - Added a new option “includingDefaultValueFields” to JsonFormat. |
31 - Updated the JSON utility to comply with proto3 JSON specification. | 163 - Updated the JSON utility to comply with proto3 JSON specification. |
32 | 164 |
33 Python (Beta) | 165 Python (Beta) |
34 * Added proto3 JSON format utility. It includes support for all field types | 166 * Added proto3 JSON format utility. It includes support for all field types |
35 and a few well-known types except for Any and Struct. | 167 and a few well-known types except for Any and Struct. |
36 * Added runtime support for Any, Timestamp, Duration and FieldMask. | 168 * Added runtime support for Any, Timestamp, Duration and FieldMask. |
37 * [ ] is now accepted for repeated scalar fields in text format parser. | 169 * [ ] is now accepted for repeated scalar fields in text format parser. |
| 170 * Map fields now have proper O(1) performance for lookup/insert/delete |
| 171 when using the Python/C++ implementation. They were previously using O(n) |
| 172 search-based algorithms because the C++ reflection interface didn't |
| 173 support true map operations. |
38 | 174 |
39 Objective-C (Beta) | 175 Objective-C (Beta) |
40 * Various bug-fixes and code tweaks to pass more strict compiler warnings. | 176 * Various bug-fixes and code tweaks to pass more strict compiler warnings. |
41 * Now has conformance test coverage and is passing all tests. | 177 * Now has conformance test coverage and is passing all tests. |
42 | 178 |
43 C# (Beta) | 179 C# (Beta) |
44 * Various bug-fixes. | 180 * Various bug-fixes. |
45 * Code generation: Files generated in directories based on namespace. | 181 * Code generation: Files generated in directories based on namespace. |
46 * Code generation: Include comments from .proto files in XML doc | 182 * Code generation: Include comments from .proto files in XML doc |
47 comments (naively) | 183 comments (naively) |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 General | 305 General |
170 * Introduced two new language implementations (Objective-C, C#) to proto3. | 306 * Introduced two new language implementations (Objective-C, C#) to proto3. |
171 * Explicit "optional" keyword are disallowed in proto3 syntax, as fields are | 307 * Explicit "optional" keyword are disallowed in proto3 syntax, as fields are |
172 optional by default. | 308 optional by default. |
173 * Group fields are no longer supported in proto3 syntax. | 309 * Group fields are no longer supported in proto3 syntax. |
174 * Changed repeated primitive fields to use packed serialization by default in | 310 * Changed repeated primitive fields to use packed serialization by default in |
175 proto3 (implemented for C++, Java, Python in this release). The user can | 311 proto3 (implemented for C++, Java, Python in this release). The user can |
176 still disable packed serialization by setting packed to false for now. | 312 still disable packed serialization by setting packed to false for now. |
177 * Added well-known type protos (any.proto, empty.proto, timestamp.proto, | 313 * Added well-known type protos (any.proto, empty.proto, timestamp.proto, |
178 duration.proto, etc.). Users can import and use these protos just like | 314 duration.proto, etc.). Users can import and use these protos just like |
179 regular proto files. Addtional runtime support will be added for them in | 315 regular proto files. Additional runtime support will be added for them in |
180 future releases (in the form of utility helper functions, or having them | 316 future releases (in the form of utility helper functions, or having them |
181 replaced by language specific types in generated code). | 317 replaced by language specific types in generated code). |
182 * Added a "reserved" keyword in both proto2 and proto3 syntax. User can use | 318 * Added a "reserved" keyword in both proto2 and proto3 syntax. User can use |
183 this keyword to declare reserved field numbers and names to prevent them | 319 this keyword to declare reserved field numbers and names to prevent them |
184 from being reused by other fields in the same message. | 320 from being reused by other fields in the same message. |
185 | 321 |
186 To reserve field numbers, add a reserved declaration in your message: | 322 To reserve field numbers, add a reserved declaration in your message: |
187 | 323 |
188 message TestMessage { | 324 message TestMessage { |
189 reserved 2, 15, 9 to 11, 3; | 325 reserved 2, 15, 9 to 11, 3; |
(...skipping 21 matching lines...) Expand all Loading... |
211 support, parsing and serialization. It’s compatible with ARC and non-ARC | 347 support, parsing and serialization. It’s compatible with ARC and non-ARC |
212 usage. Besides, user can also access it via the swift bridging header. | 348 usage. Besides, user can also access it via the swift bridging header. |
213 | 349 |
214 See objectivec/README.md for details. | 350 See objectivec/README.md for details. |
215 | 351 |
216 C# | 352 C# |
217 * C# protobufs are based on project | 353 * C# protobufs are based on project |
218 https://github.com/jskeet/protobuf-csharp-port. The original project was | 354 https://github.com/jskeet/protobuf-csharp-port. The original project was |
219 frozen and all the new development will happen here. | 355 frozen and all the new development will happen here. |
220 * Codegen plugin for C# was completely rewritten to C++ and is now an | 356 * Codegen plugin for C# was completely rewritten to C++ and is now an |
221 intergral part of protoc. | 357 integral part of protoc. |
222 * Some refactorings and cleanup has been applied to the C# runtime library. | 358 * Some refactorings and cleanup has been applied to the C# runtime library. |
223 * Only proto2 is supported in C# at the moment, proto3 support is in | 359 * Only proto2 is supported in C# at the moment, proto3 support is in |
224 progress and will likely bring significant breaking changes to the API. | 360 progress and will likely bring significant breaking changes to the API. |
225 | 361 |
226 See csharp/README.md for details. | 362 See csharp/README.md for details. |
227 | 363 |
228 C++ | 364 C++ |
229 * Added runtime support for Any type. To use Any in your proto file, first | 365 * Added runtime support for Any type. To use Any in your proto file, first |
230 import the definition of Any: | 366 import the definition of Any: |
231 | 367 |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 type called Any. | 511 type called Any. |
376 4. Fix semantics for unknown enum values. | 512 4. Fix semantics for unknown enum values. |
377 5. Addition of maps. | 513 5. Addition of maps. |
378 6. Addition of a small set of standard types for representation of time, | 514 6. Addition of a small set of standard types for representation of time, |
379 dynamic data, etc. | 515 dynamic data, etc. |
380 7. A well-defined encoding in JSON as an alternative to binary proto | 516 7. A well-defined encoding in JSON as an alternative to binary proto |
381 encoding. | 517 encoding. |
382 | 518 |
383 This release (v3.0.0-alpha-1) includes partial proto3 support for C++ and | 519 This release (v3.0.0-alpha-1) includes partial proto3 support for C++ and |
384 Java. Items 6 (well-known types) and 7 (JSON format) in the above feature | 520 Java. Items 6 (well-known types) and 7 (JSON format) in the above feature |
385 list are not impelmented. | 521 list are not implemented. |
386 | 522 |
387 A new notion "syntax" is introduced to specify whether a .proto file | 523 A new notion "syntax" is introduced to specify whether a .proto file |
388 uses proto2 or proto3: | 524 uses proto2 or proto3: |
389 | 525 |
390 // foo.proto | 526 // foo.proto |
391 syntax = "proto3"; | 527 syntax = "proto3"; |
392 message Bar {...} | 528 message Bar {...} |
393 | 529 |
394 If omitted, the protocol compiler will generate a warning and "proto2" will | 530 If omitted, the protocol compiler will generate a warning and "proto2" will |
395 be used as the default. This warning will be turned into an error in a | 531 be used as the default. This warning will be turned into an error in a |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 memory and at most one field can be set at the same time. Use the | 612 memory and at most one field can be set at the same time. Use the |
477 oneof keyword to define a oneof like: | 613 oneof keyword to define a oneof like: |
478 message SampleMessage { | 614 message SampleMessage { |
479 oneof test_oneof { | 615 oneof test_oneof { |
480 string name = 4; | 616 string name = 4; |
481 YourMessage sub_message = 9; | 617 YourMessage sub_message = 9; |
482 } | 618 } |
483 } | 619 } |
484 * Files, services, enums, messages, methods and enum values can be marked | 620 * Files, services, enums, messages, methods and enum values can be marked |
485 as deprecated now. | 621 as deprecated now. |
486 * Added Support for list values, including lists of mesaages, when | 622 * Added Support for list values, including lists of messages, when |
487 parsing text-formatted protos in C++ and Java. | 623 parsing text-formatted protos in C++ and Java. |
488 For example: foo: [1, 2, 3] | 624 For example: foo: [1, 2, 3] |
489 | 625 |
490 C++ | 626 C++ |
491 * Enhanced customization on TestFormat printing. | 627 * Enhanced customization on TestFormat printing. |
492 * Added SwapFields() in reflection API to swap a subset of fields. | 628 * Added SwapFields() in reflection API to swap a subset of fields. |
493 Added SetAllocatedMessage() in reflection API. | 629 Added SetAllocatedMessage() in reflection API. |
494 * Repeated primitive extensions are now packable. The | 630 * Repeated primitive extensions are now packable. The |
495 [packed=true] option only affects serializers. Therefore, it is | 631 [packed=true] option only affects serializers. Therefore, it is |
496 possible to switch a repeated extension field to packed format | 632 possible to switch a repeated extension field to packed format |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
556 directly. | 692 directly. |
557 * ByteString now supports more operations: substring(), prepend(), and | 693 * ByteString now supports more operations: substring(), prepend(), and |
558 append(). The implementation of ByteString uses a binary tree structure | 694 append(). The implementation of ByteString uses a binary tree structure |
559 to support these operations efficiently. | 695 to support these operations efficiently. |
560 * New method findInitializationErrors() that lists all missing required | 696 * New method findInitializationErrors() that lists all missing required |
561 fields. | 697 fields. |
562 * Various code size and speed optimizations. | 698 * Various code size and speed optimizations. |
563 | 699 |
564 Python | 700 Python |
565 * Added support for dynamic message creation. DescriptorDatabase, | 701 * Added support for dynamic message creation. DescriptorDatabase, |
566 DescriptorPool, and MessageFactory work like their C++ couterparts to | 702 DescriptorPool, and MessageFactory work like their C++ counterparts to |
567 simplify Descriptor construction from *DescriptorProtos, and MessageFactory | 703 simplify Descriptor construction from *DescriptorProtos, and MessageFactory |
568 provides a message instance from a Descriptor. | 704 provides a message instance from a Descriptor. |
569 * Added pickle support for protobuf messages. | 705 * Added pickle support for protobuf messages. |
570 * Unknown fields are now preserved after parsing. | 706 * Unknown fields are now preserved after parsing. |
571 * Fixed bug where custom options were not correctly populated. Custom | 707 * Fixed bug where custom options were not correctly populated. Custom |
572 options can be accessed now. | 708 options can be accessed now. |
573 * Added EnumTypeWrapper that provides better accessibility to enum types. | 709 * Added EnumTypeWrapper that provides better accessibility to enum types. |
574 * Added ParseMessage(descriptor, bytes) to generate a new Message instance | 710 * Added ParseMessage(descriptor, bytes) to generate a new Message instance |
575 from a descriptor and a byte string. | 711 from a descriptor and a byte string. |
576 | 712 |
577 2011-05-01 version 2.4.1: | 713 2011-05-01 version 2.4.1: |
578 | 714 |
579 C++ | 715 C++ |
580 * Fixed the frendship problem for old compilers to make the library now gcc 3 | 716 * Fixed the friendship problem for old compilers to make the library now gcc 3 |
581 compatible again. | 717 compatible again. |
582 * Fixed vcprojects/extract_includes.bat to extract compiler/plugin.h. | 718 * Fixed vcprojects/extract_includes.bat to extract compiler/plugin.h. |
583 | 719 |
584 Java | 720 Java |
585 * Removed usages of JDK 1.6 only features to make the library now JDK 1.5 | 721 * Removed usages of JDK 1.6 only features to make the library now JDK 1.5 |
586 compatible again. | 722 compatible again. |
587 * Fixed a bug about negative enum values. | 723 * Fixed a bug about negative enum values. |
588 * serialVersionUID is now defined in generated messages for java serializing. | 724 * serialVersionUID is now defined in generated messages for java serializing. |
589 * Fixed protoc to use java.lang.Object, which makes "Object" now a valid | 725 * Fixed protoc to use java.lang.Object, which makes "Object" now a valid |
590 message name again. | 726 message name again. |
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
837 | 973 |
838 Java | 974 Java |
839 * Fixed bug where Message.mergeFrom(Message) failed to merge extensions. | 975 * Fixed bug where Message.mergeFrom(Message) failed to merge extensions. |
840 * Message interface has new method toBuilder() which is equivalent to | 976 * Message interface has new method toBuilder() which is equivalent to |
841 newBuilderForType().mergeFrom(this). | 977 newBuilderForType().mergeFrom(this). |
842 * All enums now implement the ProtocolMessageEnum interface. | 978 * All enums now implement the ProtocolMessageEnum interface. |
843 * Setting a field to null now throws NullPointerException. | 979 * Setting a field to null now throws NullPointerException. |
844 * Fixed tendency for TextFormat's parsing to overflow the stack when | 980 * Fixed tendency for TextFormat's parsing to overflow the stack when |
845 parsing large string values. The underlying problem is with Java's | 981 parsing large string values. The underlying problem is with Java's |
846 regex implementation (which unfortunately uses recursive backtracking | 982 regex implementation (which unfortunately uses recursive backtracking |
847 rather than building an NFA). Worked around by making use of possesive | 983 rather than building an NFA). Worked around by making use of possessive |
848 quantifiers. | 984 quantifiers. |
849 * Generated service classes now also generate pure interfaces. For a service | 985 * Generated service classes now also generate pure interfaces. For a service |
850 Foo, Foo.Interface is a pure interface containing all of the service's | 986 Foo, Foo.Interface is a pure interface containing all of the service's |
851 defined methods. Foo.newReflectiveService() can be called to wrap an | 987 defined methods. Foo.newReflectiveService() can be called to wrap an |
852 instance of this interface in a class that implements the generic | 988 instance of this interface in a class that implements the generic |
853 RpcService interface, which provides reflection support that is usually | 989 RpcService interface, which provides reflection support that is usually |
854 needed by RPC server implementations. | 990 needed by RPC server implementations. |
855 * RPC interfaces now support blocking operation in addition to non-blocking. | 991 * RPC interfaces now support blocking operation in addition to non-blocking. |
856 The protocol compiler generates separate blocking and non-blocking stubs | 992 The protocol compiler generates separate blocking and non-blocking stubs |
857 which operate against separate blocking and non-blocking RPC interfaces. | 993 which operate against separate blocking and non-blocking RPC interfaces. |
858 RPC implementations will have to implement the new interfaces in order to | 994 RPC implementations will have to implement the new interfaces in order to |
859 support blocking mode. | 995 support blocking mode. |
860 * New I/O methods parseDelimitedFrom(), mergeDelimitedFrom(), and | 996 * New I/O methods parseDelimitedFrom(), mergeDelimitedFrom(), and |
861 writeDelimitedTo() read and write "delemited" messages from/to a stream, | 997 writeDelimitedTo() read and write "delimited" messages from/to a stream, |
862 meaning that the message size precedes the data. This way, you can write | 998 meaning that the message size precedes the data. This way, you can write |
863 multiple messages to a stream without having to worry about delimiting | 999 multiple messages to a stream without having to worry about delimiting |
864 them yourself. | 1000 them yourself. |
865 * Throw a more descriptive exception when build() is double-called. | 1001 * Throw a more descriptive exception when build() is double-called. |
866 * Add a method to query whether CodedInputStream is at the end of the input | 1002 * Add a method to query whether CodedInputStream is at the end of the input |
867 stream. | 1003 stream. |
868 * Add a method to reset a CodedInputStream's size counter; useful when | 1004 * Add a method to reset a CodedInputStream's size counter; useful when |
869 reading many messages with the same stream. | 1005 reading many messages with the same stream. |
870 * equals() and hashCode() now account for unknown fields. | 1006 * equals() and hashCode() now account for unknown fields. |
871 | 1007 |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1037 contain extra zeros. | 1173 contain extra zeros. |
1038 * Fix Python service CallMethod() implementation. | 1174 * Fix Python service CallMethod() implementation. |
1039 | 1175 |
1040 Other | 1176 Other |
1041 * Improved readmes. | 1177 * Improved readmes. |
1042 * VIM syntax highlighting improvements. | 1178 * VIM syntax highlighting improvements. |
1043 | 1179 |
1044 2008-07-07 version 2.0.0: | 1180 2008-07-07 version 2.0.0: |
1045 | 1181 |
1046 * First public release. | 1182 * First public release. |
OLD | NEW |