| 
 | 1 | +2018-06-01 version 3.6.0 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)  | 
 | 2 | + | 
 | 3 | +  C++  | 
 | 4 | +  * Starting from this release, we now require C++11. For those we cannot yet  | 
 | 5 | +    upgrade to C++11, we will try to keep the 3.5.x branch updated with  | 
 | 6 | +    critical bug fixes only. If you have any concerns about this, please  | 
 | 7 | +    comment on issue #2780.  | 
 | 8 | +  * Moved to C++11 types like std::atomic and std::unique_ptr and away from our  | 
 | 9 | +    old custom-built equivalents.  | 
 | 10 | +  * Added support for repeated message fields in lite protos using implicit  | 
 | 11 | +    weak fields. This is an experimental feature that allows the linker to  | 
 | 12 | +    strip out more unused messages than previously was possible.  | 
 | 13 | +  * Fixed SourceCodeInfo for interpreted options and extension range options.  | 
 | 14 | +  * Fixed always_print_enums_as_ints option for JSON serialization.  | 
 | 15 | +  * Added support for ignoring unknown enum values when parsing JSON.  | 
 | 16 | +  * Create std::string in Arena memory.  | 
 | 17 | +  * Fixed ValidateDateTime to correctly check the day.  | 
 | 18 | +  * Fixed bug in ZeroCopyStreamByteSink.  | 
 | 19 | +  * Various other cleanups and fixes.  | 
 | 20 | + | 
 | 21 | +  Java  | 
 | 22 | +  * Dropped support for Java 6.  | 
 | 23 | +  * Added a UTF-8 decoder that uses Unsafe to directly decode a byte buffer.  | 
 | 24 | +  * Added deprecation annotations to generated code for deprecated oneof  | 
 | 25 | +    fields.  | 
 | 26 | +  * Fixed map field serialization in DynamicMessage.  | 
 | 27 | +  * Cleanup and documentation for Java Lite runtime.  | 
 | 28 | +  * Various other fixes and cleanups  | 
 | 29 | +  * Fixed unboxed arraylists to handle an edge case  | 
 | 30 | +  * Improved performance for copying between unboxed arraylists  | 
 | 31 | +  * Fixed lite protobuf to avoid Java compiler warnings  | 
 | 32 | +  * Improved test coverage for lite runtime  | 
 | 33 | +  * Performance improvements for lite runtime  | 
 | 34 | + | 
 | 35 | +  Python  | 
 | 36 | +  * Fixed bytes/string map key incompatibility between C++ and pure-Python  | 
 | 37 | +    implementations (issue #4029)  | 
 | 38 | +  * Added __init__.py files to compiler and util subpackages  | 
 | 39 | +  * Use /MT for all Windows versions  | 
 | 40 | +  * Fixed an issue affecting the Python-C++ implementation when used with  | 
 | 41 | +    Cython (issue #2896)  | 
 | 42 | +  * Various text format fixes  | 
 | 43 | +  * Various fixes to resolve behavior differences between the pure-Python and  | 
 | 44 | +    Python-C++ implementations  | 
 | 45 | + | 
 | 46 | +  PHP  | 
 | 47 | +  * Added php_metadata_namespace to control the file path of generated metadata  | 
 | 48 | +    file.  | 
 | 49 | +  * Changed generated classes of nested message/enum. E.g., Foo.Bar, which  | 
 | 50 | +    previously generates Foo_Bar, now generates Foo/Bar  | 
 | 51 | +  * Added array constructor. When creating a message, users can pass a php  | 
 | 52 | +    array whose content is field name to value pairs into constructor. The  | 
 | 53 | +    created message will be initialized according to the array. Note that  | 
 | 54 | +    message field should use a message value instead of a sub-array.  | 
 | 55 | +  * Various bug fixes.  | 
 | 56 | + | 
 | 57 | +  Objective-C  | 
 | 58 | +  * We removed some helper class methods from GPBDictionary to shrink the size  | 
 | 59 | +    of the library, the functionary is still there, but you may need to do some  | 
 | 60 | +    specific +alloc / -init… methods instead.  | 
 | 61 | +  * Minor improvements in the performance of object field getters/setters by  | 
 | 62 | +    avoiding some memory management overhead.  | 
 | 63 | +  * Fix a memory leak during the raising of some errors.  | 
 | 64 | +  * Make header importing completely order independent.  | 
 | 65 | +  * Small code improvements for things the undefined behaviors compiler option  | 
 | 66 | +    was flagging.  | 
 | 67 | + | 
 | 68 | +  Ruby  | 
 | 69 | +  * Added ruby_package file option to control the module of generated class.  | 
 | 70 | +  * Various bug fixes.  | 
 | 71 | + | 
 | 72 | +  Javascript  | 
 | 73 | +  * Allow setting string to int64 field.  | 
 | 74 | + | 
 | 75 | +  Csharp  | 
 | 76 | +  * Unknown fields are now parsed and then sent back on the wire. They can be  | 
 | 77 | +    discarded at parse time via a CodedInputStream option.  | 
 | 78 | +  * Movement towards working with .NET 3.5 and Unity  | 
 | 79 | +  * Expression trees are no longer used  | 
 | 80 | +  * AOT generics issues in Unity/il2cpp have a workaround (see this commit for  | 
 | 81 | +    details)  | 
 | 82 | +  * Floating point values are now compared bitwise (affects NaN value  | 
 | 83 | +    comparisons)  | 
 | 84 | +  * The default size limit when parsing is now 2GB rather than 64MB  | 
 | 85 | +  * MessageParser now supports parsing from a slice of a byte array  | 
 | 86 | +  * JSON list parsing now accepts null values where the underlying proto  | 
 | 87 | +    representation does  | 
 | 88 | + | 
1 | 89 | 2017-12-20 version 3.5.1 (C++/Java/Python/PHP/Objective-C/C#/Ruby/JavaScript)  | 
2 | 90 |   Planned Future Changes  | 
3 | 91 |   * Make C++ implementation C++11 only: we plan to require C++11 to build  | 
 | 
0 commit comments