Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 Name: Protocol Buffers | 1 Name: Protocol Buffers |
| 2 Short Name: protobuf | 2 Short Name: protobuf |
| 3 URL: https://github.com/google/protobuf | 3 URL: https://github.com/google/protobuf |
| 4 License: BSD | 4 License: BSD |
| 5 License File: LICENSE | 5 License File: LICENSE |
| 6 Version: 3.0.0-beta-2 | 6 Version: 3.0.0-beta-3 |
| 7 Revision: d5fb408ddc281ffcadeb08699e65bb694656d0bd | 7 Revision: 3470b6895aa659b7559ed678e029a5338e535f14 |
| 8 Security Critical: yes | 8 Security Critical: yes |
| 9 | 9 |
| 10 Steps used to create the current version: | 10 Steps used to create the current version: |
| 11 1. Pull the release from https://github.com/google/protobuf/releases | 11 1. Pull the release from https://github.com/google/protobuf/releases |
| 12 2. Use the cleanup_release.sh script to remove unnecessary files. | 12 2. Add build files (BUILD.gn, proto_library.gni, protobuf.gyp, |
| 13 3. Add build files (BUILD.gn, proto_library.gni, protobuf.gyp, | |
| 14 protobuf_lite.gypi, protobuf_nacl.gyp). | 13 protobuf_lite.gypi, protobuf_nacl.gyp). |
| 15 | 14 |
| 16 Be sure to update the list of source files, as additional .cc files and | 15 Be sure to update the list of source files, as additional .cc files and |
| 17 headers might have been added -- you need to find the transitive closure of | 16 headers might have been added -- you need to find the transitive closure of |
| 18 include files required by targets. | 17 include files required by targets. |
| 19 | 18 |
| 20 Other things to care about are defines required by protobuf on various | 19 Other things to care about are defines required by protobuf on various |
| 21 platforms, warnings generated by compilers, and new dependencies introduced. | 20 platforms, warnings generated by compilers, and new dependencies introduced. |
| 22 4. Get open-source library six.py from https://pypi.python.org/pypi/six/ and add | 21 3. Get open-source library six.py from https://pypi.python.org/pypi/six/ and add |
| 23 it to protobuf/third_party/six/six.py. | 22 it to protobuf/third_party/six/six.py. |
| 24 5. Apply patches in patches/ (see the description below): | 23 4. Apply patches in patches/ (see the description below): |
| 25 | 24 |
| 26 $ for patch in patches/*; do patch -s -p1 < $patch; done | 25 $ for patch in patches/*; do patch -s -p1 < $patch; done |
| 27 | 26 |
| 28 For future releases, it will be worth looking into which patches still need | 27 For future releases, it will be worth looking into which patches still need |
| 29 to be applied. | 28 to be applied. |
| 30 5. Generate descriptor_pb2.py using something like the following steps. Make | 29 5. Generate descriptor_pb2.py using something like the following steps. Make |
| 31 sure you've regenerated your buildfiles and will build protoc from the | 30 sure you've regenerated your buildfiles and will build protoc from the |
| 32 newly-modified sources above. | 31 newly-modified sources above. |
| 33 | 32 |
| 34 $ cd $SRC_DIR | 33 $ cd $SRC_DIR |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 46 Previous versions of protobuf in Chromium carried a local patch that retained | 45 Previous versions of protobuf in Chromium carried a local patch that retained |
| 47 unknown fields in protobuf_lite mode. It was enabled by setting option | 46 unknown fields in protobuf_lite mode. It was enabled by setting option |
| 48 retain_unknown_fields = true in .proto file. Now that it is enabled by | 47 retain_unknown_fields = true in .proto file. Now that it is enabled by |
| 49 default, this option is no longer recognized by protobuf, and so I had to | 48 default, this option is no longer recognized by protobuf, and so I had to |
| 50 patch it so that I don't have to fix all .proto files in Chromium in a single | 49 patch it so that I don't have to fix all .proto files in Chromium in a single |
| 51 CL. | 50 CL. |
| 52 | 51 |
| 53 I plan to remove those occurences, and then this patch will no longer be | 52 I plan to remove those occurences, and then this patch will no longer be |
| 54 necessary. | 53 necessary. |
| 55 | 54 |
| 55 - 0002-revert-patch-internal-change-111557819.patch | |
| 56 | |
| 57 This reverts the commit 76195058e25d19fc918996d55d3ad69ee55cb77e, which bloats | |
| 58 the Chrome binary by 200 KB. Its purpose was to reduce the memory usage, but | |
| 59 Chrome workloads don't seem to be benefitting from this. | |
|
Peter Kasting
2016/05/24 23:45:34
Did you determine the actual memory savings from t
xyzzyz
2016/05/25 00:15:28
I tried, but the benchmarking results are really f
Peter Kasting
2016/05/25 00:19:50
To me the second link (05-20) looks fairly consist
xyzzyz
2016/05/25 00:25:47
The 05-20 is the optimize-memory-with-larger-binar
Peter Kasting
2016/05/25 01:17:56
Every relevant browser memory stat is improved com
| |
| 60 | |
| 56 - 0003-remove-static-initializers.patch | 61 - 0003-remove-static-initializers.patch |
| 57 | 62 |
| 58 This patch removes all static initializers from Chromium. The change in Status | 63 This patch removes all static initializers from Chromium. The change in Status |
| 59 class is not completely compatible with upstream, but it's compatible enough | 64 class is not completely compatible with upstream, but it's compatible enough |
| 60 to work in Chromium, which doesn't use this functionality yet. The work on | 65 to work in Chromium, which doesn't use this functionality yet. The work on |
| 61 upstreaming the removal of static initializers is in progress: | 66 upstreaming the removal of static initializers is in progress: |
| 62 https://github.com/google/protobuf/issues/1404 | 67 https://github.com/google/protobuf/issues/1404 |
| 63 | 68 |
| 64 - 0004-fix-integer-types-and-shared-library-exports.patch | 69 - 0004-fix-integer-types-and-shared-library-exports.patch |
| 65 | 70 |
| 66 This patch makes protobuf int64 to be int64_t (as opposed to long long in | 71 This patch makes protobuf int64 to be int64_t (as opposed to long long in |
| 67 upstream), and similarly for other integer types. It also allows exporting | 72 upstream), and similarly for other integer types. It also allows exporting |
| 68 protobuf symbols in Linux .so libraries, so that protobuf can be built as a | 73 protobuf symbols in Linux .so libraries, so that protobuf can be built as a |
| 69 component (see http://crrev.com/179806). | 74 component (see http://crrev.com/179806). |
| 70 | 75 |
| 71 - 0005-fix-no-threadlocal-on-mac.patch | 76 - 0005-fix-include-js-generator.protobuf |
| 72 | 77 |
| 73 Apple's Clang doesn't support thread-local variables on Mac. | 78 During merge with internal branch, the <> in one of the #includes were |
| 79 accidentally replaced with "", which results in a failure in checkdeps. | |
| 74 | 80 |
| 75 - 0006-fix-clang-type-errors.patch | 81 Fixed in https://github.com/google/protobuf/pull/1547. |
| 76 | |
| 77 New versions of Clang have type checking semantics that check the conformance | |
| 78 with the C++ standard more thorougly, which makes them a bit more | |
| 79 restrictive. This cherry-picks upstream commits | |
| 80 3cc35adb6dca9057a790d253b9f5e2b9b000a106 and | |
| 81 58f07644eab25f68973ecab4bdc43fc318c26131. | |
| 82 | 82 |
| 83 - 0007-uninline_googleonce.patch | 83 - 0007-uninline_googleonce.patch |
| 84 - 0008-uninline_get_empty_string.patch | 84 - 0008-uninline_get_empty_string.patch |
| 85 - 0009-uninline-arenastring.patch | 85 - 0009-uninline-arenastring.patch |
| 86 - 0010-uninline-generated-code.patch | 86 - 0010-uninline-generated-code.patch |
| 87 | 87 |
| 88 These patches uninline some functions, resulting in a significant reduction | 88 These patches uninline some functions, resulting in a significant reduction |
| 89 (somewhere between 500 KB and 1 MB) of binary size. | 89 (somewhere between 500 KB and 1 MB) of binary size. |
| 90 - 0011-use-offsetof-for-clang.patch | |
| 91 | 90 |
| 92 This patch replaces a few invalid reinterpret_casts with __builtin_offsetof, | 91 - 0011-libprotobuf_export.patch |
| 93 if compiled with Clang. This is a temporary patch, it should be deletd, when | |
| 94 the official github repo is updates with this changes already submitted to | |
| 95 the internal Google repo. | |
| 96 | 92 |
| 97 See also: https://crbug.com/607751 and | 93 During merge with internal branch, the dll export attribute was accidentally |
| 98 https://github.com/google/protobuf/issues/1450 | 94 removed in C++11 mode. |
| 95 | |
| 96 Fixed in https://github.com/google/protobuf/pull/1549 | |
| 97 | |
| OLD | NEW |