Re: [protobuf] 2.4.0a released.

2011-02-04 Thread Kenton Varda
On Wed, Feb 2, 2011 at 9:59 PM, David Yu  wrote:

> Where the jars at? (Or do we have to build the jars from source?)
>

Have to build from source.  (Though we're going to try to get the Maven repo
updated.  Long story.)


> I'm trying to benchmark 2.4.0a with its java perf improvements.
> The lazy decoding support is cool (like the activemq impl of protobuf).
>

Note that lazy decoding only applies to strings -- they are decoded from
UTF-8 bytes to String objects on first access.  Sub-messages are still
eagerly decoded, although we've been thinking about adding support for lazy
sub-messages.  (It's not always as great as it seems -- lazy decoding adds a
lot of bookkeeping overhead, especially if you want to be thread-safe.
 We've actually discovered that the lazy UTF-8 decoding is a loss in some
use cases; it will be tuned further for the next release.)

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.



Re: [protobuf] 2.4.0a released.

2011-02-02 Thread David Yu
Where the jars at? (Or do we have to build the jars from source?)
I'm trying to benchmark 2.4.0a with its java perf improvements.
The lazy decoding support is cool (like the activemq impl of protobuf).


On Wed, Feb 2, 2011 at 5:24 PM, Pherl Liu  wrote:

> The final release of 2.4.0a Protobuf is uploaded:
> http://code.google.com/p/protobuf/downloads/list
>
> Note that 2.4.0a fixed a java protobuf-lite build problem in 2.4.0. If you
> are using the 2.4.0 version, please upgrade to 2.4.0a (the only diff is the
> java protobuf-lite problem).
>
> Documentation updates should be live within a day.
>
> Special thanks to Kenton Varda for the support and help.
>
> 2011-02-02 version 2.4.0:
>
>   General
>   * The RPC (cc|java|py)_generic_services default value is now false
> instead of
> true.
>   * Custom options can have aggregate types. For example,
>   message MyOption {
> optional string comment = 1;
> optional string author = 2;
>   }
>   extend google.protobuf.FieldOptions {
> optional MyOption myoption = 12345;
>   }
> This option can now be set as follows:
>   message SomeType {
> optional int32 field = 1 [(myoption) = { comment:'x' author:'y' }];
>   }
>
>   C++
>   * Various speed and code size optimizations.
>   * Added a release_foo() method on string and message fields.
>   * Fixed gzip_output_stream sub-stream handling.
>
>   Java
>   * Builders now maintain sub-builders for sub-messages. Use
> getFooBuilder() to
> get the builder for the sub-message "foo". This allows you to
> repeatedly
> modify deeply-nested sub-messages without rebuilding them.
>   * Builder.build() no longer invalidates the Builder for generated
> messages
> (You may continue to modify it and then build another message).
>   * Code generator will generate efficient equals() and hashCode()
> implementations if new option java_generate_equals_and_hash is enabled.
> (Otherwise, reflection-based implementations are used.)
>   * Generated messages now implement Serializable.
>   * Fields with [deprecated=true] will be marked with @Deprecated in Java.
>   * Added lazy conversion of UTF-8 encoded strings to String objects to
> improve
> performance.
>   * Various optimizations.
>   * Enum value can be accessed directly, instead of calling getNumber() on
> the
> enum member.
>   * For each enum value, an integer constant is also generated with the
> suffix
> _VALUE.
>
>   Python
>   * Added an experimental  C++ implementation for Python messages via a
> Python
> extension. Implementation type is controlled by an environment variable
> PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION (valid values: "cpp" and
> "python")
> The default value is currently "python" but will be changed to "cpp" in
> future release.
>   * Improved performance on message instantiation significantly.
> Most of the work on message instantiation is done just once per message
> class, instead of once per message instance.
>   * Improved performance on text message parsing.
>   * Allow add() to forward keyword arguments to the concrete class.
>   E.g. instead of
> item = repeated_field.add()
> item.foo = bar
> item.baz = quux
>   You can do:
> repeated_field.add(foo=bar, baz=quux)
>   * Added a sort() interface to the BaseContainer.
>   * Added an extend() method to repeated composite fields.
>   * Added UTF8 debug string support.
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To post to this group, send email to protobuf@googlegroups.com.
> To unsubscribe from this group, send email to
> protobuf+unsubscr...@googlegroups.com
> .
> For more options, visit this group at
> http://groups.google.com/group/protobuf?hl=en.
>



-- 
When the cat is away, the mouse is alone.
- David Yu

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.



Re: [protobuf] 2.4.0a released.

2011-02-02 Thread Marc-André Laverdière
That looks great!

Now, is the jar going to be available on Maven soon?
As far as I can tell, the repo is a tad bit outdated:
http://mvnrepository.com/artifact/com.google.protobuf/protobuf-java

Marc-André LAVERDIÈRE
"Perseverance must finish its work so that you may be mature and
complete, not lacking anything." -James 1:4
http://asimplediscipleslife.blogspot.com/
mlaverd.theunixplace.com



2011/2/2 Pherl Liu :
> The final release of 2.4.0a Protobuf is uploaded:
> http://code.google.com/p/protobuf/downloads/list
>
> Note that 2.4.0a fixed a java protobuf-lite build problem in 2.4.0. If you
> are using the 2.4.0 version, please upgrade to 2.4.0a (the only diff is the
> java protobuf-lite problem).
>
> Documentation updates should be live within a day.
>
> Special thanks to Kenton Varda for the support and help.
>
> 2011-02-02 version 2.4.0:
>
>   General
>   * The RPC (cc|java|py)_generic_services default value is now false instead
> of
>     true.
>   * Custom options can have aggregate types. For example,
>   message MyOption {
>     optional string comment = 1;
>     optional string author = 2;
>   }
>   extend google.protobuf.FieldOptions {
>     optional MyOption myoption = 12345;
>   }
>     This option can now be set as follows:
>   message SomeType {
>     optional int32 field = 1 [(myoption) = { comment:'x' author:'y' }];
>   }
>
>   C++
>   * Various speed and code size optimizations.
>   * Added a release_foo() method on string and message fields.
>   * Fixed gzip_output_stream sub-stream handling.
>
>   Java
>   * Builders now maintain sub-builders for sub-messages. Use getFooBuilder()
> to
>     get the builder for the sub-message "foo". This allows you to repeatedly
>     modify deeply-nested sub-messages without rebuilding them.
>   * Builder.build() no longer invalidates the Builder for generated messages
>     (You may continue to modify it and then build another message).
>   * Code generator will generate efficient equals() and hashCode()
>     implementations if new option java_generate_equals_and_hash is enabled.
>     (Otherwise, reflection-based implementations are used.)
>   * Generated messages now implement Serializable.
>   * Fields with [deprecated=true] will be marked with @Deprecated in Java.
>   * Added lazy conversion of UTF-8 encoded strings to String objects to
> improve
>     performance.
>   * Various optimizations.
>   * Enum value can be accessed directly, instead of calling getNumber() on
> the
>     enum member.
>   * For each enum value, an integer constant is also generated with the
> suffix
>     _VALUE.
>
>   Python
>   * Added an experimental  C++ implementation for Python messages via a
> Python
>     extension. Implementation type is controlled by an environment variable
>     PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION (valid values: "cpp" and
> "python")
>     The default value is currently "python" but will be changed to "cpp" in
>     future release.
>   * Improved performance on message instantiation significantly.
>     Most of the work on message instantiation is done just once per message
>     class, instead of once per message instance.
>   * Improved performance on text message parsing.
>   * Allow add() to forward keyword arguments to the concrete class.
>   E.g. instead of
>     item = repeated_field.add()
>     item.foo = bar
>     item.baz = quux
>   You can do:
>     repeated_field.add(foo=bar, baz=quux)
>   * Added a sort() interface to the BaseContainer.
>   * Added an extend() method to repeated composite fields.
>   * Added UTF8 debug string support.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To post to this group, send email to protobuf@googlegroups.com.
> To unsubscribe from this group, send email to
> protobuf+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/protobuf?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.



[protobuf] 2.4.0a released.

2011-02-02 Thread Pherl Liu
The final release of 2.4.0a Protobuf is uploaded:
http://code.google.com/p/protobuf/downloads/list

Note that 2.4.0a fixed a java protobuf-lite build problem in 2.4.0. If you
are using the 2.4.0 version, please upgrade to 2.4.0a (the only diff is the
java protobuf-lite problem).

Documentation updates should be live within a day.

Special thanks to Kenton Varda for the support and help.

2011-02-02 version 2.4.0:

  General
  * The RPC (cc|java|py)_generic_services default value is now false instead
of
true.
  * Custom options can have aggregate types. For example,
  message MyOption {
optional string comment = 1;
optional string author = 2;
  }
  extend google.protobuf.FieldOptions {
optional MyOption myoption = 12345;
  }
This option can now be set as follows:
  message SomeType {
optional int32 field = 1 [(myoption) = { comment:'x' author:'y' }];
  }

  C++
  * Various speed and code size optimizations.
  * Added a release_foo() method on string and message fields.
  * Fixed gzip_output_stream sub-stream handling.

  Java
  * Builders now maintain sub-builders for sub-messages. Use getFooBuilder()
to
get the builder for the sub-message "foo". This allows you to repeatedly
modify deeply-nested sub-messages without rebuilding them.
  * Builder.build() no longer invalidates the Builder for generated messages
(You may continue to modify it and then build another message).
  * Code generator will generate efficient equals() and hashCode()
implementations if new option java_generate_equals_and_hash is enabled.
(Otherwise, reflection-based implementations are used.)
  * Generated messages now implement Serializable.
  * Fields with [deprecated=true] will be marked with @Deprecated in Java.
  * Added lazy conversion of UTF-8 encoded strings to String objects to
improve
performance.
  * Various optimizations.
  * Enum value can be accessed directly, instead of calling getNumber() on
the
enum member.
  * For each enum value, an integer constant is also generated with the
suffix
_VALUE.

  Python
  * Added an experimental  C++ implementation for Python messages via a
Python
extension. Implementation type is controlled by an environment variable
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION (valid values: "cpp" and
"python")
The default value is currently "python" but will be changed to "cpp" in
future release.
  * Improved performance on message instantiation significantly.
Most of the work on message instantiation is done just once per message
class, instead of once per message instance.
  * Improved performance on text message parsing.
  * Allow add() to forward keyword arguments to the concrete class.
  E.g. instead of
item = repeated_field.add()
item.foo = bar
item.baz = quux
  You can do:
repeated_field.add(foo=bar, baz=quux)
  * Added a sort() interface to the BaseContainer.
  * Added an extend() method to repeated composite fields.
  * Added UTF8 debug string support.

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.