aboutsummaryrefslogtreecommitdiff
path: root/CHANGES.txt
diff options
context:
space:
mode:
authorJisi Liu <jisi.liu@gmail.com>2016-05-11 15:30:21 -0700
committerJisi Liu <jisi.liu@gmail.com>2016-05-11 15:30:21 -0700
commitede9cc4bd575d2c66df65a1d16ed692e533938e4 (patch)
treebe1c4e765ed08d3dc3410f46aa36808f99b5601e /CHANGES.txt
parent5668e2e42611717142319e0cc4a22035a8be0364 (diff)
downloadprotobuf-ede9cc4bd575d2c66df65a1d16ed692e533938e4.tar.gz
protobuf-ede9cc4bd575d2c66df65a1d16ed692e533938e4.tar.bz2
protobuf-ede9cc4bd575d2c66df65a1d16ed692e533938e4.zip
Update comments for csharp, zero-copy and objc.
Diffstat (limited to 'CHANGES.txt')
-rw-r--r--CHANGES.txt58
1 files changed, 55 insertions, 3 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index 7751c91e..7254b99c 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)