From dbed8a015421826d8de7f65f09674fbf0605c317 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Tue, 10 May 2016 14:49:42 -0700 Subject: [PATCH 01/14] Update version numbers for beta3 --- configure.ac | 2 +- java/pom.xml | 2 +- python/google/protobuf/__init__.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index d56a704705ff3..bdc72ee696801 100644 --- a/configure.ac +++ b/configure.ac @@ -12,7 +12,7 @@ AC_PREREQ(2.59) # In the SVN trunk, the version should always be the next anticipated release # version with the "-pre" suffix. (We used to use "-SNAPSHOT" but this pushed # the size of one file name in the dist tarfile over the 99-char limit.) -AC_INIT([Protocol Buffers],[3.0.0-beta-2],[protobuf@googlegroups.com],[protobuf]) +AC_INIT([Protocol Buffers],[3.0.0-beta-3],[protobuf@googlegroups.com],[protobuf]) AM_MAINTAINER_MODE([enable]) diff --git a/java/pom.xml b/java/pom.xml index e8dc5ded257e1..7a1a91f8737e5 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -11,7 +11,7 @@ com.google.protobuf protobuf-parent - 3.0.0-beta-2 + 3.0.0-beta-3 pom Protocol Buffers [Parent] diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py index fcb1734e47e3f..2a3c6771a0f78 100755 --- a/python/google/protobuf/__init__.py +++ b/python/google/protobuf/__init__.py @@ -30,7 +30,7 @@ # Copyright 2007 Google Inc. All Rights Reserved. -__version__ = '3.0.0b2.post2' +__version__ = '3.0.0b3' if __name__ != '__main__': try: From 5dea2017db7ca3faa8d9b3702f4c1a9c29602493 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Tue, 10 May 2016 15:43:39 -0700 Subject: [PATCH 02/14] Update version numbers for other languages --- csharp/Google.Protobuf.Tools.nuspec | 4 ++-- csharp/src/Google.Protobuf/Google.Protobuf.nuspec | 4 ++-- java/core/pom.xml | 2 +- java/lite/pom.xml | 2 +- java/util/pom.xml | 2 +- javanano/pom.xml | 2 +- js/package.json | 2 +- ruby/google-protobuf.gemspec | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/csharp/Google.Protobuf.Tools.nuspec b/csharp/Google.Protobuf.Tools.nuspec index 2b66b081ea8a5..e4240dae87566 100644 --- a/csharp/Google.Protobuf.Tools.nuspec +++ b/csharp/Google.Protobuf.Tools.nuspec @@ -5,7 +5,7 @@ Google Protocol Buffers tools Tools for Protocol Buffers - Google's data interchange format. See project site for more info. - 3.0.0-beta2 + 3.0.0-beta3 Google Inc. protobuf-packages https://github.com/google/protobuf/blob/master/LICENSE @@ -34,4 +34,4 @@ - \ No newline at end of file + diff --git a/csharp/src/Google.Protobuf/Google.Protobuf.nuspec b/csharp/src/Google.Protobuf/Google.Protobuf.nuspec index 2892b8bf73db5..90e3da3d0e5c0 100644 --- a/csharp/src/Google.Protobuf/Google.Protobuf.nuspec +++ b/csharp/src/Google.Protobuf/Google.Protobuf.nuspec @@ -5,7 +5,7 @@ Google Protocol Buffers C# C# runtime library for Protocol Buffers - Google's data interchange format. See project site for more info. - 3.0.0-beta2 + 3.0.0-beta3 Google Inc. protobuf-packages https://github.com/google/protobuf/blob/master/LICENSE @@ -51,4 +51,4 @@ - \ No newline at end of file + diff --git a/java/core/pom.xml b/java/core/pom.xml index 74d5ead3dd9dc..0d4c5c75d07b4 100644 --- a/java/core/pom.xml +++ b/java/core/pom.xml @@ -6,7 +6,7 @@ com.google.protobuf protobuf-parent - 3.0.0-beta-2 + 3.0.0-beta-3 protobuf-java diff --git a/java/lite/pom.xml b/java/lite/pom.xml index 23cb4f78ef8ba..c403dc093df75 100644 --- a/java/lite/pom.xml +++ b/java/lite/pom.xml @@ -6,7 +6,7 @@ com.google.protobuf protobuf-parent - 3.0.0-beta-2 + 3.0.0-beta-3 protobuf-lite diff --git a/java/util/pom.xml b/java/util/pom.xml index 26c12c825b592..9236f90759f48 100644 --- a/java/util/pom.xml +++ b/java/util/pom.xml @@ -6,7 +6,7 @@ com.google.protobuf protobuf-parent - 3.0.0-beta-2 + 3.0.0-beta-3 protobuf-java-util diff --git a/javanano/pom.xml b/javanano/pom.xml index 2c9dd9436cda1..a2eca09d1cb21 100644 --- a/javanano/pom.xml +++ b/javanano/pom.xml @@ -10,7 +10,7 @@ com.google.protobuf.nano protobuf-javanano - 3.0.0-alpha-5 + 3.0.0-alpha-6 bundle Protocol Buffer JavaNano API diff --git a/js/package.json b/js/package.json index c16417cad956a..ae05722a541b7 100644 --- a/js/package.json +++ b/js/package.json @@ -1,6 +1,6 @@ { "name": "google-protobuf", - "version": "3.0.0-alpha.5", + "version": "3.0.0-alpha.6", "description": "Protocol Buffers for JavaScript", "main": "google-protobuf.js", "dependencies": { diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 1fa626feb89e2..c542abf6ab087 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -1,6 +1,6 @@ Gem::Specification.new do |s| s.name = "google-protobuf" - s.version = "3.0.0.alpha.5.0.5" + s.version = "3.0.0.alpha.6.0.0" s.licenses = ["BSD"] s.summary = "Protocol Buffers" s.description = "Protocol Buffers are Google's data interchange format." From 25dd69002ff1cbe766779750f6978ebb43556815 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Tue, 10 May 2016 15:46:41 -0700 Subject: [PATCH 03/14] Fix protoc build artifact script. pbconfig.h has gone. This commit removes the target. --- protoc-artifacts/build-protoc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/protoc-artifacts/build-protoc.sh b/protoc-artifacts/build-protoc.sh index 2f67c5083720d..88e6ae50a04ce 100755 --- a/protoc-artifacts/build-protoc.sh +++ b/protoc-artifacts/build-protoc.sh @@ -212,7 +212,7 @@ export CXXFLAGS LDFLAGS TARGET_FILE=target/protoc.exe cd "$WORKING_DIR"/.. && ./configure $CONFIGURE_ARGS && - cd src && make clean && make google/protobuf/stubs/pbconfig.h $MAKE_TARGET && + cd src && make clean && make $MAKE_TARGET && cd "$WORKING_DIR" && mkdir -p target && (cp ../src/protoc $TARGET_FILE || cp ../src/protoc.exe $TARGET_FILE) || exit 1 From e8737d86764108c18f8fe7c577c5dddf692962a1 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Tue, 10 May 2016 16:20:08 -0700 Subject: [PATCH 04/14] Fix the command line interface unittest again This time move the macro inside namespaces; hopefully will work with the integration script. --- .../protobuf/compiler/command_line_interface_unittest.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/google/protobuf/compiler/command_line_interface_unittest.cc b/src/google/protobuf/compiler/command_line_interface_unittest.cc index ae2900b1a8217..9b504d2524768 100644 --- a/src/google/protobuf/compiler/command_line_interface_unittest.cc +++ b/src/google/protobuf/compiler/command_line_interface_unittest.cc @@ -65,13 +65,14 @@ #include -// Disable the whole test when we use tcmalloc for "draconian" heap checks, in -// which case tcmalloc will print warnings that fail the plugin tests. -#if !GOOGLE_PROTOBUF_HEAP_CHECK_DRACONIAN namespace google { namespace protobuf { namespace compiler { +// Disable the whole test when we use tcmalloc for "draconian" heap checks, in +// which case tcmalloc will print warnings that fail the plugin tests. +#if !GOOGLE_PROTOBUF_HEAP_CHECK_DRACONIAN + #if defined(_WIN32) #ifndef STDIN_FILENO #define STDIN_FILENO 0 From 0e4d1ea1169cd4f0dd3b2d354be10aba09b6e59b Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Tue, 10 May 2016 17:32:35 -0700 Subject: [PATCH 05/14] Initial draft for changelog. --- CHANGES.txt | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index c3503fc8f9d04..9eef08d5221d6 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,55 @@ +2016-05-10 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. + * Any type now supports APIs to specify prefixes other than + type.googleapis.com + + C++ (Beta) + * Improved hash maps. TODO(gpike) + * 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 + - 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. TODO(nathanmittler) + * Improved the performance for lite-runtime. TODO(dweis) + * 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. + + Python (Beta) + * TODO(jieluo) + + Objective-C (Beta) + * TODO(thomasvl) + + C# (Beta) + * TODO(jonskeet) + + Javascript (Alpha) + * TODO(haberman) + + C++/Java Lite (Alpha) + A new "lite" generator parameter was introduced in the protoc for C++ and + Java to 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. From 5668e2e42611717142319e0cc4a22035a8be0364 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Wed, 11 May 2016 14:57:06 -0700 Subject: [PATCH 06/14] Fix typo. --- CHANGES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 9eef08d5221d6..7751c91eaf202 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -39,7 +39,7 @@ C++/Java Lite (Alpha) A new "lite" generator parameter was introduced in the protoc for C++ and - Java to for Proto3 syntax messages. Example usage: + Java for Proto3 syntax messages. Example usage: ./protoc --cpp_out=lite:$OUTPUT_PATH foo.proto From dbdf6d9085297d28d55caf7a35b37d9c2b624f2c Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Wed, 11 May 2016 14:59:55 -0700 Subject: [PATCH 07/14] Bridge vs2008 hashmaps. --- src/google/protobuf/stubs/hash.h | 58 ++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 3 deletions(-) mode change 100755 => 100644 src/google/protobuf/stubs/hash.h diff --git a/src/google/protobuf/stubs/hash.h b/src/google/protobuf/stubs/hash.h old mode 100755 new mode 100644 index bbd8ee650634f..4eac7d5d2584c --- a/src/google/protobuf/stubs/hash.h +++ b/src/google/protobuf/stubs/hash.h @@ -108,8 +108,13 @@ # define GOOGLE_PROTOBUF_HAS_CXX11_HASH # define GOOGLE_PROTOBUF_HASH_COMPARE std::hash_compare # elif _MSC_VER >= 1500 // Since Visual Studio 2008 -# undef GOOGLE_PROTOBUF_HAVE_HASH_MAP -# undef GOOGLE_PROTOBUF_HAVE_HASH_SET +# define GOOGLE_PROTOBUF_HASH_NAMESPACE stdext +# include +# define GOOGLE_PROTOBUF_HASH_MAP_CLASS hash_map +# include +# define GOOGLE_PROTOBUF_HASH_SET_CLASS hash_set +# define GOOGLE_PROTOBUF_HASH_COMPARE stdext::hash_compare +# define GOOGLE_PROTOBUF_CONTAINERS_NEED_HASH_COMPARE # elif _MSC_VER >= 1310 # define GOOGLE_PROTOBUF_HASH_NAMESPACE stdext # include @@ -247,6 +252,52 @@ template <> struct hash : public GOOGLE_PROTOBUF_HASH_COMPARE {}; +#ifdef GOOGLE_PROTOBUF_CONTAINERS_NEED_HASH_COMPARE + +template +struct InternalHashCompare : public GOOGLE_PROTOBUF_HASH_COMPARE { + InternalHashCompare() {} + InternalHashCompare(HashFcn hashfcn, EqualKey equalkey) + : hashfcn_(hashfcn), equalkey_(equalkey) {} + size_t operator()(const Key& key) const { return hashfcn_(key); } + bool operator()(const Key& key1, const Key& key2) const { + return !equalkey_(key1, key2); + } + HashFcn hashfcn_; + EqualKey equalkey_; +}; + +template , + typename EqualKey = std::equal_to, + typename Alloc = std::allocator< std::pair > > +class hash_map + : public GOOGLE_PROTOBUF_HASH_NAMESPACE::GOOGLE_PROTOBUF_HASH_MAP_CLASS< + Key, Data, InternalHashCompare, Alloc> { + typedef GOOGLE_PROTOBUF_HASH_NAMESPACE::GOOGLE_PROTOBUF_HASH_MAP_CLASS< + Key, Data, InternalHashCompare, Alloc> BaseClass; + + public: + hash_map(int a = 0, const HashFcn& b = HashFcn(), + const EqualKey& c = EqualKey(), const Alloc& d = Alloc()) + : BaseClass(InternalHashCompare(b, c), d) {} + + HashFcn hash_function() const { return HashFcn(); } +}; + +template , + typename EqualKey = std::equal_to > +class hash_set + : public GOOGLE_PROTOBUF_HASH_NAMESPACE::GOOGLE_PROTOBUF_HASH_SET_CLASS< + Key, InternalHashCompare > { + public: + hash_set(int = 0) {} + + HashFcn hash_function() const { return HashFcn(); } +}; + +#else // GOOGLE_PROTOBUF_CONTAINERS_NEED_HASH_COMPARE + template , typename EqualKey = std::equal_to, @@ -275,8 +326,9 @@ class hash_set HashFcn hash_function() const { return HashFcn(); } }; +#endif // GOOGLE_PROTOBUF_CONTAINERS_NEED_HASH_COMPARE -#else +#else // defined(_MSC_VER) && !defined(_STLPORT_VERSION) template struct hash : public GOOGLE_PROTOBUF_HASH_NAMESPACE::hash { From 017d390d6510446f1892feb2f407db9b732de78c Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Wed, 11 May 2016 15:09:43 -0700 Subject: [PATCH 08/14] Fix csharp version --- csharp/src/Google.Protobuf/Properties/AssemblyInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/csharp/src/Google.Protobuf/Properties/AssemblyInfo.cs b/csharp/src/Google.Protobuf/Properties/AssemblyInfo.cs index 225ac0ddfd527..0516f18e25bc0 100644 --- a/csharp/src/Google.Protobuf/Properties/AssemblyInfo.cs +++ b/csharp/src/Google.Protobuf/Properties/AssemblyInfo.cs @@ -64,4 +64,4 @@ [assembly: AssemblyVersion("3.0.0.0")] [assembly: AssemblyFileVersion("3.0.0.0")] -[assembly: AssemblyInformationalVersion("3.0.0-alpha4")] +[assembly: AssemblyInformationalVersion("3.0.0-beta3")] From ede9cc4bd575d2c66df65a1d16ed692e533938e4 Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Wed, 11 May 2016 15:30:21 -0700 Subject: [PATCH 09/14] Update comments for csharp, zero-copy and objc. --- CHANGES.txt | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 7751c91eaf202..7254b99cb6817 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -12,13 +12,33 @@ - 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. TODO(nathanmittler) + * 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 the performance for lite-runtime. TODO(dweis) * Various bug fixes and small feature enhancement. - Fixed stack overflow when in hashCode() for infinite recursive oneofs. @@ -29,10 +49,42 @@ * TODO(jieluo) Objective-C (Beta) - * TODO(thomasvl) + * 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) - * TODO(jonskeet) + 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) * TODO(haberman) From e4ca694cdfe8b817f14b07f4d5b88f9dc9e11d4a Mon Sep 17 00:00:00 2001 From: Jie Luo Date: Wed, 11 May 2016 16:39:50 -0700 Subject: [PATCH 10/14] python changes --- CHANGES.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 7254b99cb6817..bc969ecbff87d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -46,7 +46,11 @@ - TextFormat now supports reporting line/column numbers on errors. Python (Beta) - * TODO(jieluo) + * 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 From d346f4998db29239b0cdaa1e3d3beaa2591e7c69 Mon Sep 17 00:00:00 2001 From: Josh Haberman Date: Thu, 12 May 2016 17:55:56 -0700 Subject: [PATCH 11/14] Added release notes for Ruby and JavaScript. --- CHANGES.txt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index bc969ecbff87d..5c6b6d1013965 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -91,7 +91,20 @@ * Improvements in JSON formatting and parsing Javascript (Alpha) - * TODO(haberman) + * 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 From 034867f762f7a41a58836c9a2b0e7d816affb49d Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Fri, 13 May 2016 16:16:14 -0700 Subject: [PATCH 12/14] Update changelogs for C++ maps --- CHANGES.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 5c6b6d1013965..bce03f0a6fe68 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -5,7 +5,12 @@ type.googleapis.com C++ (Beta) - * Improved hash maps. TODO(gpike) + * 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. From 5e7c4cb3f610ff11cb8f97d7cea59e380d4a0bbe Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Fri, 13 May 2016 18:12:57 -0700 Subject: [PATCH 13/14] Remove the comments about iterator validation As it may be implementation dependent. --- src/google/protobuf/map.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/google/protobuf/map.h b/src/google/protobuf/map.h index bb0b14f9c9bc0..6f1a71e4364e4 100644 --- a/src/google/protobuf/map.h +++ b/src/google/protobuf/map.h @@ -504,9 +504,7 @@ class MapPair { // assert(m0.begin()->first == m1.begin()->first); // Bug! // // Map's interface is similar to std::unordered_map, except that Map is not -// designed to play well with exceptions. Mutations to a Map do not invalidate -// a Map's iterators, pointers to elements, or references to elements. Except -// for erase(iterator), any non-const method can reorder iterators. +// designed to play well with exceptions. template class Map { public: From 0ec34bfbc1f213080b3791ecf3865d70ff38b3ae Mon Sep 17 00:00:00 2001 From: Jisi Liu Date: Mon, 16 May 2016 11:20:33 -0700 Subject: [PATCH 14/14] Update changes for lite --- CHANGES.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index bce03f0a6fe68..3459cccfa9cf7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,8 +1,10 @@ -2016-05-10 version 3.0.0-beta-3 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript) +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. * 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. @@ -44,11 +46,15 @@ range checking. - `ByteBuffer`-backed `CodedOutputStream` now writes directly to the `ByteBuffer` rather than to an intermediate array. - * Improved the performance for lite-runtime. TODO(dweis) + * 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