kenton@google.com | 24bf56f | 2008-09-24 20:31:01 +0000 | [diff] [blame^] | 1 | 2008-09-24 version 2.0.2: |
| 2 |
|
| 3 | General |
| 4 | * License changed from Apache 2.0 to New BSD. |
| 5 | * It is now possible to define custom "options", which are basically |
| 6 | annotations which may be placed on definitions in a .proto file. |
| 7 | For example, you might define a field option called "foo" like so: |
| 8 | import "google/protobuf/descriptor.proto" |
| 9 | extend google.protobuf.FieldOptions { |
| 10 | optional string foo = 12345; |
| 11 | } |
| 12 | Then you annotate a field using the "foo" option: |
| 13 | message MyMessage { |
| 14 | optional int32 some_field = 1 [(foo) = "bar"] |
| 15 | } |
| 16 | The value of this option is then visible via the message's |
| 17 | Descriptor: |
| 18 | const FieldDescriptor* field = |
| 19 | MyMessage::descriptor()->FindFieldByName("some_field"); |
| 20 | assert(field->options().GetExtension(foo) == "bar"); |
| 21 | This feature has been implemented and tested in C++ and Java. |
| 22 | Other languages may or may not need to do extra work to support |
| 23 | custom options, depending on how they construct descriptors. |
| 24 | |
| 25 | C++ |
| 26 | * Fixed some GCC warnings that only occur when using -pedantic. |
| 27 | * Improved static initialization code, making ordering more |
| 28 | predictable among other things. |
| 29 | * TextFormat will no longer accept messages which contain multiple |
| 30 | instances of a singular field. Previously, the latter instance |
| 31 | would overwrite the former.
|
| 32 | * Now works on systems that don't have hash_map. |
| 33 | |
| 34 | Java
|
| 35 | * Print @Override annotation in generated code where appropriate.
|
| 36 |
|
| 37 | Python |
| 38 | * Strings now use the "unicode" type rather than the "str" type. |
| 39 | String fields may still be assigned ASCII "str" values; they will |
| 40 | automatically be converted. |
| 41 | * Adding a property to an object representing a repeated field now |
| 42 | raises an exception. For example: |
| 43 | # No longer works (and never should have). |
| 44 | message.some_repeated_field.foo = 1 |
| 45 |
|
temporal | a44f3c3 | 2008-08-15 18:32:02 +0000 | [diff] [blame] | 46 | 2008-08-15 version 2.0.1: |
| 47 |
|
| 48 | protoc
|
| 49 | * New flags --encode and --decode can be used to convert between protobuf text
|
| 50 | format and binary format from the command-line.
|
| 51 | * New flag --descriptor_set_out can be used to write FileDescriptorProtos for
|
| 52 | all parsed files directly into a single output file. This is particularly
|
| 53 | useful if you wish to parse .proto files from programs written in languages
|
| 54 | other than C++: just run protoc as a background process and have it output
|
| 55 | a FileDescriptorList, then parse that natively.
|
| 56 | * Improved error message when an enum value's name conflicts with another
|
| 57 | symbol defined in the enum type's scope, e.g. if two enum types declared
|
| 58 | in the same scope have values with the same name. This is disallowed for
|
| 59 | compatibility with C++, but this wasn't clear from the error. |
| 60 | * Fixed absolute output paths on Windows.
|
| 61 | * Allow trailing slashes in --proto_path mappings. |
| 62 |
|
| 63 | C++
|
| 64 | * Reflection objects are now per-class rather than per-instance. To make this
|
| 65 | possible, the Reflection interface had to be changed such that all methods
|
| 66 | take the Message instance as a parameter. This change improves performance
|
| 67 | significantly in memory-bandwidth-limited use cases, since it makes the
|
| 68 | message objects smaller. Note that source-incompatible interface changes
|
| 69 | like this will not be made again after the library leaves beta.
|
| 70 | * Heuristically detect sub-messages when printing unknown fields. |
| 71 | * Fix static initialization ordering bug that caused crashes at startup when
|
| 72 | compiling on Mac with static linking. |
| 73 | * Fixed TokenizerTest when compiling with -DNDEBUG on Linux.
|
| 74 | * Fixed incorrect definition of kint32min.
|
| 75 | * Fix bytes type setter to work with byte sequences with embedded NULLs. |
| 76 | * Other irrelevant tweaks. |
| 77 | |
| 78 | Java
|
| 79 | * Fixed UnknownFieldSet's parsing of varints larger than 32 bits.
|
| 80 | * Fixed TextFormat's parsing of "inf" and "nan".
|
| 81 | * Fixed TextFormat's parsing of comments.
|
| 82 | * Added info to Java POM that will be required when we upload the
|
| 83 | package to a Maven repo. |
| 84 | |
| 85 | Python
|
| 86 | * MergeFrom(message) and CopyFrom(message) are now implemented.
|
| 87 | * SerializeToString() raises an exception if the message is missing required
|
| 88 | fields.
|
| 89 | * Code organization improvements.
|
| 90 | * Fixed doc comments for RpcController and RpcChannel, which had somehow been
|
| 91 | swapped. |
| 92 | * Fixed text_format_test on Windows where floating-point exponents sometimes
|
| 93 | contain extra zeros.
|
| 94 | * Fix Python service CallMethod() implementation. |
| 95 | |
| 96 | Other |
| 97 | * Improved readmes. |
| 98 | * VIM syntax highlighting improvements. |
| 99 | |
temporal | 40ee551 | 2008-07-10 02:12:20 +0000 | [diff] [blame] | 100 | 2008-07-07 version 2.0.0: |
| 101 | |
| 102 | * First public release. |