Index: third_party/protobuf/CHANGES.txt |
diff --git a/third_party/protobuf/CHANGES.txt b/third_party/protobuf/CHANGES.txt |
index 3459cccfa9cf7c572d55b34fc5635d2c221bb20b..7fb2da2e22089ef9b520227855efb2745153bcb1 100644 |
--- a/third_party/protobuf/CHANGES.txt |
+++ b/third_party/protobuf/CHANGES.txt |
@@ -1,3 +1,235 @@ |
+2016-09-23 version 3.1.0 (C++/Java/Python/PHP/Ruby/Objective-C/C#/JavaScript/Lite) |
+ General |
+ * Proto3 support in PHP (alpha). |
+ * Various bug fixes. |
+ |
+ C++ |
+ * Added MessageLite::ByteSizeLong() that’s equivalent to |
+ MessageLite::ByteSize() but returns the value in size_t. Useful to check |
+ whether a message is over the 2G size limit that protobuf can support. |
+ * Moved default_instances to global variables. This allows default_instance |
+ addresses to be known at compile time. |
+ * Adding missing generic gcc 64-bit atomicops. |
+ * Restore New*Callback into google::protobuf namespace since these are used |
+ by the service stubs code |
+ * JSON support. |
+ * Fixed some conformance issues. |
+ * Fixed a JSON serialization bug for bytes fields. |
+ |
+ Java |
+ * Fixed a bug in TextFormat that doesn’t accept empty repeated fields (i.e., |
+ “field: [ ]”). |
+ * JSON support |
+ * Fixed JsonFormat to do correct snake_case-to-camelCase conversion for |
+ non-style-conforming field names. |
+ * Fixed JsonFormat to parse empty Any message correctly. |
+ * Added an option to JsonFormat.Parser to ignore unknown fields. |
+ * Experimental API |
+ * Added UnsafeByteOperations.unsafeWrap(byte[]) to wrap a byte array into |
+ ByteString without copy. |
+ |
+ Python |
+ * JSON support |
+ * Fixed some conformance issues. |
+ |
+ PHP (Alpha) |
+ * We have added the proto3 support for PHP via both a pure PHP package and a |
+ native c extension. The pure PHP package is intended to provide usability |
+ to wider range of PHP platforms, while the c extension is intended to |
+ provide higher performance. Both implementations provide the same runtime |
+ APIs and share the same generated code. Users don’t need to re-generate |
+ code for the same proto definition when they want to switch the |
+ implementation later. The pure PHP package is included in the php/src |
+ directory, and the c extension is included in the php/ext directory. |
+ |
+ Both implementations provide idiomatic PHP APIs: |
+ * All messages and enums are defined as PHP classes. |
+ * All message fields can only be accessed via getter/setter. |
+ * Both repeated field elements and map elements are stored in containers |
+ that act like a normal PHP array. |
+ |
+ Unlike several existing third-party PHP implementations for protobuf, our |
+ implementations are built on a "strongly-typed" philosophy: message fields |
+ and array/map containers will throw exceptions eagerly when values of the |
+ incorrect type (not including those that can be type converted, e.g., |
+ double <-> integer <-> numeric string) are inserted. |
+ |
+ Currently, pure PHP runtime supports php5.5, 5.6 and 7 on linux. C |
+ extension runtime supports php5.5 and 5.6 on linux. |
+ |
+ See php/README.md for more details about installment. See |
+ https://developers.google.com/protocol-buffers/docs/phptutorial for more |
+ details about APIs. |
+ |
+ Objective-C |
+ * Helpers are now provided for working the the Any well known type (see |
+ GPBWellKnownTypes.h for the api additions). |
+ * Some improvements in startup code (especially when extensions aren’t used). |
+ |
+ Javascript |
+ * Fixed missing import of jspb.Map |
+ * Fixed valueWriterFn variable name |
+ |
+ Ruby |
+ * Fixed hash computation for JRuby's RubyMessage |
+ * Make sure map parsing frames are GC-rooted. |
+ * Added API support for well-known types. |
+ |
+ C# |
+ * Removed check on dependency in the C# reflection API. |
+ |
+2016-09-06 version 3.0.2 (C++/Java/Python/Ruby/Objective-C/C#/JavaScript/Lite) |
+ General |
+ * Various bug fixes. |
+ |
+ Objective C |
+ * Fix for oneofs in proto3 syntax files where fields were set to the zero |
+ value. |
+ * Fix for embedded null character in strings. |
+ * CocoaDocs support |
+ |
+ Ruby |
+ * Fixed memory corruption bug in parsing that could occur under GC pressure. |
+ |
+ Javascript |
+ * jspb.Map is now properly exported to CommonJS modules. |
+ |
+ C# |
+ * Removed legacy_enum_values flag. |
+ |
+ |
+2016-07-27 version 3.0.0 (C++/Java/Python/Ruby/Objective-C/C#/JavaScript/Lite) |
+ General |
+ * This log only contains changes since the beta-4 release. Summarized change |
+ log since the last stable release (v2.6.1) can be found in the github |
+ release page. |
+ |
+ Compatibility Notice |
+ * v3.0.0 is the first API stable release of the v3.x series. We do not expect |
+ any future API breaking changes. |
+ * For C++, Java Lite and Objective-C, source level compatibility is |
+ guaranteed. Upgrading from v3.0.0 to newer minor version releases will be |
+ source compatible. For example, if your code compiles against protobuf |
+ v3.0.0, it will continue to compile after you upgrade protobuf library to |
+ v3.1.0. |
+ * For other languages, both source level compatibility and binary level |
+ compatibility are guaranteed. For example, if you have a Java binary built |
+ against protobuf v3.0.0. After switching the protobuf runtime binary to |
+ v3.1.0, your built binary should continue to work. |
+ * Compatibility is only guaranteed for documented API and documented |
+ behaviors. If you are using undocumented API (e.g., use anything in the C++ |
+ internal namespace), it can be broken by minor version releases in an |
+ undetermined manner. |
+ |
+ Ruby |
+ * When you assign a string field `a.string_field = "X"`, we now call |
+ #encode(UTF-8) on the string and freeze the copy. This saves you from |
+ needing to ensure the string is already encoded as UTF-8. It also prevents |
+ you from mutating the string after it has been assigned (this is how we |
+ ensure it stays valid UTF-8). |
+ * The generated file for `foo.proto` is now `foo_pb.rb` instead of just |
+ `foo.rb`. This makes it easier to see which imports/requires are from |
+ protobuf generated code, and also prevents conflicts with any `foo.rb` file |
+ you might have written directly in Ruby. It is a backward-incompatible |
+ change: you will need to update all of your `require` statements. |
+ * For package names like `foo_bar`, we now translate this to the Ruby module |
+ `FooBar`. This is more idiomatic Ruby than what we used to do (`Foo_bar`). |
+ |
+ JavaScript |
+ * Scalar fields like numbers and boolean now return defaults instead of |
+ `undefined` or `null` when they are unset. You can test for presence |
+ explicitly by calling `hasFoo()`, which we now generate for scalar fields. |
+ |
+ Java Lite |
+ * Java Lite is now implemented as a separate plugin, maintained in the |
+ `javalite` branch. Both lite runtime and protoc artifacts will be available |
+ in Maven. |
+ |
+ C# |
+ * Target platforms now .NET 4.5, selected portable subsets and .NET Core. |
+ * legacy_enum_values option is no longer supported. |
+ |
+2016-07-15 version 3.0.0-beta-4 (C++/Java/Python/Ruby/Objective-C/C#/JavaScript) |
+ General |
+ * Added a deterministic serialization API for C++. The deterministic |
+ serialization guarantees that given a binary, equal messages will be |
+ serialized to the same bytes. This allows applications like MapReduce to |
+ group equal messages based on the serialized bytes. The deterministic |
+ serialization is, however, NOT canonical across languages; it is also |
+ unstable across different builds with schema changes due to unknown fields. |
+ Users who need canonical serialization, e.g. persistent storage in a |
+ canonical form, fingerprinting, etc, should define their own |
+ canonicalization specification and implement the serializer using reflection |
+ APIs rather than relying on this API. |
+ * Added OneofOptions. You can now define custom options for oneof groups. |
+ import "google/protobuf/descriptor.proto"; |
+ extend google.protobuf.OneofOptions { |
+ optional int32 my_oneof_extension = 12345; |
+ } |
+ message Foo { |
+ oneof oneof_group { |
+ (my_oneof_extension) = 54321; |
+ ... |
+ } |
+ } |
+ |
+ C++ (beta) |
+ * Introduced a deterministic serialization API in |
+ CodedOutputStream::SetSerializationDeterministic(bool). See the notes about |
+ deterministic serialization in the General section. |
+ * Added google::protobuf::Map::swap() to swap two map fields. |
+ * Fixed a memory leak when calling Reflection::ReleaseMessage() on a message |
+ allocated on arena. |
+ * Improved error reporting when parsing text format protos. |
+ * JSON |
+ - Added a new parser option to ignore unknown fields when parsing JSON. |
+ - Added convenient methods for message to/from JSON conversion. |
+ * Various performance optimizations. |
+ |
+ Java (beta) |
+ * File option "java_generate_equals_and_hash" is now deprecated. equals() and |
+ hashCode() methods are generated by default. |
+ * Added a new JSON printer option "omittingInsignificantWhitespace" to produce |
+ a more compact JSON output. The printer will pretty-print by default. |
+ * Updated Java runtime to be compatible with 2.5.0/2.6.1 generated protos. |
+ |
+ Python (beta) |
+ * Added support to pretty print Any messages in text format. |
+ * Added a flag to ignore unknown fields when parsing JSON. |
+ * Bugfix: "@type" field of a JSON Any message is now correctly put before |
+ other fields. |
+ |
+ Objective-C (beta) |
+ * Updated the code to support compiling with more compiler warnings |
+ enabled. (Issue 1616) |
+ * Exposing more detailed errors for parsing failures. (PR 1623) |
+ * Small (breaking) change to the naming of some methods on the support classes |
+ for map<>. There were collisions with the system provided KVO support, so |
+ the names were changed to avoid those issues. (PR 1699) |
+ * Fixed for proper Swift bridging of error handling during parsing. (PR 1712) |
+ * Complete support for generating sources that will go into a Framework and |
+ depend on generated sources from other Frameworks. (Issue 1457) |
+ |
+ C# (beta) |
+ * RepeatedField optimizations. |
+ * Support for .NET Core. |
+ * Minor bug fixes. |
+ * Ability to format a single value in JsonFormatter (advanced usage only). |
+ * Modifications to attributes applied to generated code. |
+ |
+ Javascript (alpha) |
+ * Maps now have a real map API instead of being treated as repeated fields. |
+ * Well-known types are now provided in the google-protobuf package, and the |
+ code generator knows to require() them from that package. |
+ * Bugfix: non-canonical varints are correctly decoded. |
+ |
+ Ruby (alpha) |
+ * Accessors for oneof fields now return default values instead of nil. |
+ |
+ Java Lite |
+ * Java lite support is removed from protocol compiler. It will be supported |
+ as a protocol compiler plugin in a separate code branch. |
+ |
2016-05-16 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript) |
General |
* Supported Proto3 lite-runtime in C++/Java for mobile platforms. |