Index: third_party/protobuf/CHANGES.txt |
diff --git a/third_party/protobuf/CHANGES.txt b/third_party/protobuf/CHANGES.txt |
index c710cd5e7f130e282bb059a9c3d98b9d1bf418ac..3459cccfa9cf7c572d55b34fc5635d2c221bb20b 100644 |
--- a/third_party/protobuf/CHANGES.txt |
+++ b/third_party/protobuf/CHANGES.txt |
@@ -1,6 +1,138 @@ |
-2015-08-26 version 3.0.0-beta-1 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaSript) |
+2016-05-16 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript) |
General |
- * Intorduced a new language implementaion: JavaScript. |
+ * Supported Proto3 lite-runtime in C++/Java for mobile platforms. |
+ * Any type now supports APIs to specify prefixes other than |
+ type.googleapis.com |
+ * Removed javanano_use_deprecated_package option; Nano will always has its own |
+ ".nano" package. |
+ |
+ C++ (Beta) |
+ * Improved hash maps. |
+ - Improved hash maps comments. In particular, please note that equal hash |
+ maps will not necessarily have the same iteration order and |
+ serialization. |
+ - Added a new hash maps implementation that will become the default in a |
+ later release. |
+ * Arenas |
+ - Several inlined methods in Arena were moved to out-of-line to improve |
+ build performance and code size. |
+ - Added SpaceAllocatedAndUsed() to report both space used and allocated |
+ - Added convenient class UnsafeArenaAllocatedRepeatedPtrFieldBackInserter |
+ * Any |
+ - Allow custom type URL prefixes in Any packing. |
+ - TextFormat now expand the Any type rather than printing bytes. |
+ * Performance optimizations and various bug fixes. |
+ |
+ Java (Beta) |
+ * Introduced an ExperimentalApi annotation. Annotated APIs are experimental |
+ and are subject to change in a backward incompatible way in future releases. |
+ * Introduced zero-copy serialization as an ExperimentalApi |
+ - Introduction of the `ByteOutput` interface. This is similar to |
+ `OutputStream` but provides semantics for lazy writing (i.e. no |
+ immediate copy required) of fields that are considered to be immutable. |
+ - `ByteString` now supports writing to a `ByteOutput`, which will directly |
+ expose the internals of the `ByteString` (i.e. `byte[]` or `ByteBuffer`) |
+ to the `ByteOutput` without copying. |
+ - `CodedOutputStream` now supports writing to a `ByteOutput`. `ByteString` |
+ instances that are too large to fit in the internal buffer will be |
+ (lazily) written to the `ByteOutput` directly. |
+ - This allows applications using large `ByteString` fields to avoid |
+ duplication of these fields entirely. Such an application can supply a |
+ `ByteOutput` that chains together the chunks received from |
+ `CodedOutputStream` before forwarding them onto the IO system. |
+ * Other related changes to `CodedOutputStream` |
+ - Additional use of `sun.misc.Unsafe` where possible to perform fast |
+ access to `byte[]` and `ByteBuffer` values and avoiding unnecessary |
+ range checking. |
+ - `ByteBuffer`-backed `CodedOutputStream` now writes directly to the |
+ `ByteBuffer` rather than to an intermediate array. |
+ * Improved lite-runtime. |
+ - Lite protos now implement deep equals/hashCode/toString |
+ - Significantly improved the performance of Builder#mergeFrom() and |
+ Builder#mergeDelimitedFrom() |
+ * Various bug fixes and small feature enhancement. |
+ - Fixed stack overflow when in hashCode() for infinite recursive oneofs. |
+ - Fixed the lazy field parsing in lite to merge rather than overwrite. |
+ - TextFormat now supports reporting line/column numbers on errors. |
+ - Updated to add appropriate @Override for better compiler errors. |
+ |
+ Python (Beta) |
+ * Added JSON format for Any, Struct, Value and ListValue |
+ * [ ] is now accepted for both repeated scalar fields and repeated message |
+ fields in text format parser. |
+ * Numerical field name is now supported in text format. |
+ * Added DiscardUnknownFields API for python protobuf message. |
+ |
+ Objective-C (Beta) |
+ * Proto comments now come over as HeaderDoc comments in the generated sources |
+ so Xcode can pick them up and display them. |
+ * The library headers have been updated to use HeaderDoc comments so Xcode can |
+ pick them up and display them. |
+ * The per message and per field overhead in both generated code and runtime |
+ object sizes was reduced. |
+ * Generated code now include deprecated annotations when the proto file |
+ included them. |
+ |
+ C# (Beta) |
+ In general: some changes are breaking, which require regenerating messages. |
+ Most user-written code will not be impacted *except* for the renaming of enum |
+ values. |
+ |
+ * Allow custom type URL prefixes in `Any` packing, and ignore them when |
+ unpacking |
+ * `protoc` is now in a separate NuGet package (Google.Protobuf.Tools) |
+ * New option: `internal_access` to generate internal classes |
+ * Enum values are now PascalCased, and if there's a prefix which matches the |
+ name of the enum, that is removed (so an enum `COLOR` with a value |
+ `COLOR_BLUE` would generate a value of just `Blue`). An option |
+ (`legacy_enum_values`) is temporarily available to disable this, but the |
+ option will be removed for GA. |
+ * `json_name` option is now honored |
+ * If group tags are encountered when parsing, they are validated more |
+ thoroughly (although we don't support actual groups) |
+ * NuGet dependencies are better specified |
+ * Breaking: `Preconditions` is renamed to `ProtoPreconditions` |
+ * Breaking: `GeneratedCodeInfo` is renamed to `GeneratedClrTypeInfo` |
+ * `JsonFormatter` now allows writing to a `TextWriter` |
+ * New interface, `ICustomDiagnosticMessage` to allow more compact |
+ representations from `ToString` |
+ * `CodedInputStream` and `CodedOutputStream` now implement `IDisposable`, |
+ which simply disposes of the streams they were constructed with |
+ * Map fields no longer support null values (in line with other languages) |
+ * Improvements in JSON formatting and parsing |
+ |
+ Javascript (Alpha) |
+ * Better support for "bytes" fields: bytes fields can be read as either a |
+ base64 string or UInt8Array (in environments where TypedArray is supported). |
+ * New support for CommonJS imports. This should make it easier to use the |
+ JavaScript support in Node.js and tools like WebPack. See js/README.md for |
+ more information. |
+ * Some significant internal refactoring to simplify and modularize the code. |
+ |
+ Ruby (Alpha) |
+ * JSON serialization now properly uses camelCased names, with a runtime option |
+ that will preserve original names from .proto files instead. |
+ * Well-known types are now included in the distribution. |
+ * Release now includes binary gems for Windows, Mac, and Linux instead of just |
+ source gems. |
+ * Bugfix for serializing oneofs. |
+ |
+ C++/Java Lite (Alpha) |
+ A new "lite" generator parameter was introduced in the protoc for C++ and |
+ Java for Proto3 syntax messages. Example usage: |
+ |
+ ./protoc --cpp_out=lite:$OUTPUT_PATH foo.proto |
+ |
+ The protoc will treat the current input and all the transitive dependencies |
+ as LITE. The same generator parameter must be used to generate the |
+ dependencies. |
+ |
+ In Proto3 syntax files, "optimized_for=LITE_RUNTIME" is no longer supported. |
+ |
+ |
+2015-12-30 version 3.0.0-beta-2 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript) |
+ General |
+ * Introduced a new language implementation: JavaScript. |
* Added a new field option "json_name". By default proto field names are |
converted to "lowerCamelCase" in proto3 JSON format. This option can be |
used to override this behavior and specify a different JSON name for the |
@@ -35,6 +167,10 @@ |
and a few well-known types except for Any and Struct. |
* Added runtime support for Any, Timestamp, Duration and FieldMask. |
* [ ] is now accepted for repeated scalar fields in text format parser. |
+ * Map fields now have proper O(1) performance for lookup/insert/delete |
+ when using the Python/C++ implementation. They were previously using O(n) |
+ search-based algorithms because the C++ reflection interface didn't |
+ support true map operations. |
Objective-C (Beta) |
* Various bug-fixes and code tweaks to pass more strict compiler warnings. |
@@ -176,7 +312,7 @@ |
still disable packed serialization by setting packed to false for now. |
* Added well-known type protos (any.proto, empty.proto, timestamp.proto, |
duration.proto, etc.). Users can import and use these protos just like |
- regular proto files. Addtional runtime support will be added for them in |
+ regular proto files. Additional runtime support will be added for them in |
future releases (in the form of utility helper functions, or having them |
replaced by language specific types in generated code). |
* Added a "reserved" keyword in both proto2 and proto3 syntax. User can use |
@@ -218,7 +354,7 @@ |
https://github.com/jskeet/protobuf-csharp-port. The original project was |
frozen and all the new development will happen here. |
* Codegen plugin for C# was completely rewritten to C++ and is now an |
- intergral part of protoc. |
+ integral part of protoc. |
* Some refactorings and cleanup has been applied to the C# runtime library. |
* Only proto2 is supported in C# at the moment, proto3 support is in |
progress and will likely bring significant breaking changes to the API. |
@@ -382,7 +518,7 @@ |
This release (v3.0.0-alpha-1) includes partial proto3 support for C++ and |
Java. Items 6 (well-known types) and 7 (JSON format) in the above feature |
- list are not impelmented. |
+ list are not implemented. |
A new notion "syntax" is introduced to specify whether a .proto file |
uses proto2 or proto3: |
@@ -483,7 +619,7 @@ |
} |
* Files, services, enums, messages, methods and enum values can be marked |
as deprecated now. |
- * Added Support for list values, including lists of mesaages, when |
+ * Added Support for list values, including lists of messages, when |
parsing text-formatted protos in C++ and Java. |
For example: foo: [1, 2, 3] |
@@ -563,7 +699,7 @@ |
Python |
* Added support for dynamic message creation. DescriptorDatabase, |
- DescriptorPool, and MessageFactory work like their C++ couterparts to |
+ DescriptorPool, and MessageFactory work like their C++ counterparts to |
simplify Descriptor construction from *DescriptorProtos, and MessageFactory |
provides a message instance from a Descriptor. |
* Added pickle support for protobuf messages. |
@@ -577,7 +713,7 @@ |
2011-05-01 version 2.4.1: |
C++ |
- * Fixed the frendship problem for old compilers to make the library now gcc 3 |
+ * Fixed the friendship problem for old compilers to make the library now gcc 3 |
compatible again. |
* Fixed vcprojects/extract_includes.bat to extract compiler/plugin.h. |
@@ -844,7 +980,7 @@ |
* Fixed tendency for TextFormat's parsing to overflow the stack when |
parsing large string values. The underlying problem is with Java's |
regex implementation (which unfortunately uses recursive backtracking |
- rather than building an NFA). Worked around by making use of possesive |
+ rather than building an NFA). Worked around by making use of possessive |
quantifiers. |
* Generated service classes now also generate pure interfaces. For a service |
Foo, Foo.Interface is a pure interface containing all of the service's |
@@ -858,7 +994,7 @@ |
RPC implementations will have to implement the new interfaces in order to |
support blocking mode. |
* New I/O methods parseDelimitedFrom(), mergeDelimitedFrom(), and |
- writeDelimitedTo() read and write "delemited" messages from/to a stream, |
+ writeDelimitedTo() read and write "delimited" 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. |