Protocol Compiler
- Fix the generated source information for reserved values in Enums.
C++
- Fix -Wunused-parameter in map<string, int> fields (fixes #8494) (#8500)
- Use byteswap.h when building against musl libc (#8503)
- Fix -Wundefined-inline error when using SharedCtor() or SharedDtor() (#8532)
- Fix bug where
Descriptor::DebugString()
printed proto3 synthetic oneofs. - Provide stable versions of
SortAndUnique()
. - Make sure to cache proto3 optional message fields when they are cleared.
- Expose UnsafeArena methods to Reflection.
- Use std::string::empty() rather than std::string::size() > 0.
Kotlin
- Restrict extension setter and getter operators to non-nullable T.
Java
- updating GSON and Guava to more recent versions (#8524)
- Reduce the time spent evaluating isExtensionNumber by storing the extension
ranges in a TreeMap for faster queries. This is particularly relevant for
protos which define a large number of extension ranges, for example when
each tag is defined as an extension. - Fix java bytecode estimation logic for optional fields.
- Optimize Descriptor.isExtensionNumber.
Python
- [python-runtime] Add MethodDescriptor.CopyToProto() (#8327)
- Remove unused python_protobuf.{cc,h} (#8513)
- Start publishing python aarch64 manylinux wheels normally (#8530)
- Fix constness issue detected by MSVC standard conforming mode (#8568)
- Make JSON parsing match C++ and Java when multiple fields from the same
oneof are present and all but one is null.
Ruby
- Ruby: Add support for proto3 json_name in compiler and field definitions (#8356)
- Fixed memory leak of Ruby arena objects. (#8461)
- Fix source gem compilation (#8471)
- fix(ruby): Fix various exceptions in Ruby on 64-bit Windows (#8563)
- fix(ruby): Fix crash when calculating Message hash values on 64-bit Windows (#8565)
Conformance Tests
- Added a conformance test for the case of multiple fields from the same
oneof.