pesho.petrov | 87e64e1 | 2008-12-24 01:07:22 +0000 | [diff] [blame^] | 1 | version 2.0.4: |
| 2 | |
| 3 | Python |
| 4 | * Added slicing support for repeated scalar fields. Added slice retrieval and |
| 5 | removal of repeated composite fields. |
| 6 | |
kenton@google.com | 9f17528 | 2008-11-25 19:37:10 +0000 | [diff] [blame] | 7 | 2008-11-25 version 2.0.3: |
| 8 | |
| 9 | protoc |
| 10 | * Enum values may now have custom options, using syntax similar to field |
| 11 | options. |
| 12 | * Fixed bug where .proto files which use custom options but don't actually |
| 13 | define them (i.e. they import another .proto file defining the options) |
| 14 | had to explicitly import descriptor.proto. |
| 15 | * Adjacent string literals in .proto files will now be concatenated, like in |
| 16 | C. |
kenton@google.com | 2f669cb | 2008-12-02 05:59:15 +0000 | [diff] [blame] | 17 | * If an input file is a Windows absolute path (e.g. "C:\foo\bar.proto") and |
| 18 | the import path only contains "." (or contains "." but does not contain |
| 19 | the file), protoc incorrectly thought that the file was under ".", because |
| 20 | it thought that the path was relative (since it didn't start with a slash). |
| 21 | This has been fixed. |
kenton@google.com | 9f17528 | 2008-11-25 19:37:10 +0000 | [diff] [blame] | 22 | |
| 23 | C++ |
| 24 | * Generated message classes now have a Swap() method which efficiently swaps |
| 25 | the contents of two objects. |
| 26 | * All message classes now have a SpaceUsed() method which returns an estimate |
| 27 | of the number of bytes of allocated memory currently owned by the object. |
| 28 | This is particularly useful when you are reusing a single message object |
| 29 | to improve performance but want to make sure it doesn't bloat up too large. |
| 30 | * New method Message::SerializeAsString() returns a string containing the |
| 31 | serialized data. May be more convenient than calling |
| 32 | SerializeToString(string*). |
| 33 | * In debug mode, log error messages when string-type fields are found to |
| 34 | contain bytes that are not valid UTF-8. |
| 35 | * Fixed bug where a message with multiple extension ranges couldn't parse |
| 36 | extensions. |
| 37 | * Fixed bug where MergeFrom(const Message&) didn't do anything if invoked on |
| 38 | a message that contained no fields (but possibly contained extensions). |
| 39 | * Fixed ShortDebugString() to not be O(n^2). Durr. |
| 40 | * Fixed crash in TextFormat parsing if the first token in the input caused a |
| 41 | tokenization error. |
| 42 | * Fixed obscure bugs in zero_copy_stream_impl.cc. |
| 43 | * Added support for HP C++ on Tru64. |
| 44 | * Only build tests on "make check", not "make". |
| 45 | * Fixed alignment issue that caused crashes when using DynamicMessage on |
| 46 | 64-bit Sparc machines. |
| 47 | * Simplify template usage to work with MSVC 2003. |
| 48 | * Work around GCC 4.3.x x86_64 compiler bug that caused crashes on startup. |
| 49 | (This affected Fedora 9 in particular.) |
kenton@google.com | 25bc5cd | 2008-12-04 20:34:50 +0000 | [diff] [blame] | 50 | * Now works on "Solaris 10 using recent Sun Studio". |
kenton@google.com | 9f17528 | 2008-11-25 19:37:10 +0000 | [diff] [blame] | 51 | |
| 52 | Java |
| 53 | * New overload of mergeFrom() which parses a slice of a byte array instead |
| 54 | of the whole thing. |
| 55 | * New method ByteString.asReadOnlyByteBuffer() does what it sounds like. |
| 56 | * Improved performance of isInitialized() when optimizing for code size. |
| 57 | |
| 58 | Python |
| 59 | * Corrected ListFields() signature in Message base class to match what |
| 60 | subclasses actually implement. |
| 61 | * Some minor refactoring. |
kenton@google.com | 2f669cb | 2008-12-02 05:59:15 +0000 | [diff] [blame] | 62 | * Don't pass self as first argument to superclass constructor (no longer |
| 63 | allowed in Python 2.6). |
kenton@google.com | 9f17528 | 2008-11-25 19:37:10 +0000 | [diff] [blame] | 64 | |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 65 | 2008-09-29 version 2.0.2: |
| 66 | |
kenton@google.com | 24bf56f | 2008-09-24 20:31:01 +0000 | [diff] [blame] | 67 | General |
| 68 | * License changed from Apache 2.0 to New BSD. |
| 69 | * It is now possible to define custom "options", which are basically |
| 70 | annotations which may be placed on definitions in a .proto file. |
| 71 | For example, you might define a field option called "foo" like so: |
| 72 | import "google/protobuf/descriptor.proto" |
| 73 | extend google.protobuf.FieldOptions { |
| 74 | optional string foo = 12345; |
| 75 | } |
| 76 | Then you annotate a field using the "foo" option: |
| 77 | message MyMessage { |
| 78 | optional int32 some_field = 1 [(foo) = "bar"] |
| 79 | } |
| 80 | The value of this option is then visible via the message's |
| 81 | Descriptor: |
| 82 | const FieldDescriptor* field = |
| 83 | MyMessage::descriptor()->FindFieldByName("some_field"); |
| 84 | assert(field->options().GetExtension(foo) == "bar"); |
| 85 | This feature has been implemented and tested in C++ and Java. |
| 86 | Other languages may or may not need to do extra work to support |
| 87 | custom options, depending on how they construct descriptors. |
| 88 | |
| 89 | C++ |
| 90 | * Fixed some GCC warnings that only occur when using -pedantic. |
| 91 | * Improved static initialization code, making ordering more |
| 92 | predictable among other things. |
| 93 | * TextFormat will no longer accept messages which contain multiple |
| 94 | instances of a singular field. Previously, the latter instance |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 95 | would overwrite the former. |
kenton@google.com | 24bf56f | 2008-09-24 20:31:01 +0000 | [diff] [blame] | 96 | * Now works on systems that don't have hash_map. |
| 97 | |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 98 | Java |
| 99 | * Print @Override annotation in generated code where appropriate. |
| 100 | |
kenton@google.com | 24bf56f | 2008-09-24 20:31:01 +0000 | [diff] [blame] | 101 | Python |
| 102 | * Strings now use the "unicode" type rather than the "str" type. |
| 103 | String fields may still be assigned ASCII "str" values; they will |
| 104 | automatically be converted. |
| 105 | * Adding a property to an object representing a repeated field now |
| 106 | raises an exception. For example: |
| 107 | # No longer works (and never should have). |
| 108 | message.some_repeated_field.foo = 1 |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 109 | |
| 110 | Windows |
| 111 | * We now build static libraries rather than DLLs by default on MSVC. |
| 112 | See vsprojects/readme.txt for more information. |
| 113 | |
temporal | a44f3c3 | 2008-08-15 18:32:02 +0000 | [diff] [blame] | 114 | 2008-08-15 version 2.0.1: |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 115 | |
| 116 | protoc |
| 117 | * New flags --encode and --decode can be used to convert between protobuf text |
| 118 | format and binary format from the command-line. |
| 119 | * New flag --descriptor_set_out can be used to write FileDescriptorProtos for |
| 120 | all parsed files directly into a single output file. This is particularly |
| 121 | useful if you wish to parse .proto files from programs written in languages |
| 122 | other than C++: just run protoc as a background process and have it output |
| 123 | a FileDescriptorList, then parse that natively. |
| 124 | * Improved error message when an enum value's name conflicts with another |
| 125 | symbol defined in the enum type's scope, e.g. if two enum types declared |
| 126 | in the same scope have values with the same name. This is disallowed for |
temporal | a44f3c3 | 2008-08-15 18:32:02 +0000 | [diff] [blame] | 127 | compatibility with C++, but this wasn't clear from the error. |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 128 | * Fixed absolute output paths on Windows. |
temporal | a44f3c3 | 2008-08-15 18:32:02 +0000 | [diff] [blame] | 129 | * Allow trailing slashes in --proto_path mappings. |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 130 | |
| 131 | C++ |
| 132 | * Reflection objects are now per-class rather than per-instance. To make this |
| 133 | possible, the Reflection interface had to be changed such that all methods |
| 134 | take the Message instance as a parameter. This change improves performance |
| 135 | significantly in memory-bandwidth-limited use cases, since it makes the |
| 136 | message objects smaller. Note that source-incompatible interface changes |
| 137 | like this will not be made again after the library leaves beta. |
temporal | a44f3c3 | 2008-08-15 18:32:02 +0000 | [diff] [blame] | 138 | * Heuristically detect sub-messages when printing unknown fields. |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 139 | * Fix static initialization ordering bug that caused crashes at startup when |
temporal | a44f3c3 | 2008-08-15 18:32:02 +0000 | [diff] [blame] | 140 | compiling on Mac with static linking. |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 141 | * Fixed TokenizerTest when compiling with -DNDEBUG on Linux. |
| 142 | * Fixed incorrect definition of kint32min. |
temporal | a44f3c3 | 2008-08-15 18:32:02 +0000 | [diff] [blame] | 143 | * Fix bytes type setter to work with byte sequences with embedded NULLs. |
| 144 | * Other irrelevant tweaks. |
| 145 | |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 146 | Java |
| 147 | * Fixed UnknownFieldSet's parsing of varints larger than 32 bits. |
| 148 | * Fixed TextFormat's parsing of "inf" and "nan". |
| 149 | * Fixed TextFormat's parsing of comments. |
| 150 | * Added info to Java POM that will be required when we upload the |
temporal | a44f3c3 | 2008-08-15 18:32:02 +0000 | [diff] [blame] | 151 | package to a Maven repo. |
| 152 | |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 153 | Python |
| 154 | * MergeFrom(message) and CopyFrom(message) are now implemented. |
| 155 | * SerializeToString() raises an exception if the message is missing required |
| 156 | fields. |
| 157 | * Code organization improvements. |
| 158 | * Fixed doc comments for RpcController and RpcChannel, which had somehow been |
temporal | a44f3c3 | 2008-08-15 18:32:02 +0000 | [diff] [blame] | 159 | swapped. |
kenton@google.com | 9b10f58 | 2008-09-30 00:09:40 +0000 | [diff] [blame] | 160 | * Fixed text_format_test on Windows where floating-point exponents sometimes |
| 161 | contain extra zeros. |
temporal | a44f3c3 | 2008-08-15 18:32:02 +0000 | [diff] [blame] | 162 | * Fix Python service CallMethod() implementation. |
| 163 | |
| 164 | Other |
| 165 | * Improved readmes. |
| 166 | * VIM syntax highlighting improvements. |
| 167 | |
temporal | 40ee551 | 2008-07-10 02:12:20 +0000 | [diff] [blame] | 168 | 2008-07-07 version 2.0.0: |
| 169 | |
| 170 | * First public release. |