Commit 71dd9c4a authored by Jisi Liu's avatar Jisi Liu

Merge pull request #1515 from pherl/changelog-beta3

Initial draft for changelog.
parents 19472bf5 ede9cc4b
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
- 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 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)
* 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)
* TODO(haberman)
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) 2015-12-30 version 3.0.0-beta-2 (C++/Java/Python/Ruby/Nano/Objective-C/C#/JavaScript)
General General
* Introduced a new language implementation: JavaScript. * Introduced a new language implementation: JavaScript.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment