Re: [protobuf] 2.4.0a released.

2011-02-04 Thread Kenton Varda
On Wed, Feb 2, 2011 at 9:59 PM, David Yu david.yu@gmail.com 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.



[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.



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 liuj...@google.com:
 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.



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 liuj...@google.com 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.comprotobuf%2bunsubscr...@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.