ruby_memprofiler_pprof 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) hide show
  1. checksums.yaml +7 -0
  2. data/ext/ruby_memprofiler_pprof/backtrace.c +429 -0
  3. data/ext/ruby_memprofiler_pprof/collector.c +1055 -0
  4. data/ext/ruby_memprofiler_pprof/compat.c +182 -0
  5. data/ext/ruby_memprofiler_pprof/extconf.rb +72 -0
  6. data/ext/ruby_memprofiler_pprof/pprof.upb.c +170 -0
  7. data/ext/ruby_memprofiler_pprof/pprof.upb.h +848 -0
  8. data/ext/ruby_memprofiler_pprof/pprof_out.c +285 -0
  9. data/ext/ruby_memprofiler_pprof/ruby_memprofiler_pprof.c +11 -0
  10. data/ext/ruby_memprofiler_pprof/ruby_memprofiler_pprof.h +301 -0
  11. data/ext/ruby_memprofiler_pprof/strtab.c +391 -0
  12. data/ext/ruby_memprofiler_pprof/vendor/upb/BUILD +719 -0
  13. data/ext/ruby_memprofiler_pprof/vendor/upb/CONTRIBUTING.md +37 -0
  14. data/ext/ruby_memprofiler_pprof/vendor/upb/DESIGN.md +201 -0
  15. data/ext/ruby_memprofiler_pprof/vendor/upb/LICENSE +26 -0
  16. data/ext/ruby_memprofiler_pprof/vendor/upb/README.md +78 -0
  17. data/ext/ruby_memprofiler_pprof/vendor/upb/WORKSPACE +58 -0
  18. data/ext/ruby_memprofiler_pprof/vendor/upb/bazel/BUILD +53 -0
  19. data/ext/ruby_memprofiler_pprof/vendor/upb/bazel/amalgamate.py +129 -0
  20. data/ext/ruby_memprofiler_pprof/vendor/upb/bazel/build_defs.bzl +160 -0
  21. data/ext/ruby_memprofiler_pprof/vendor/upb/bazel/lua.BUILD +127 -0
  22. data/ext/ruby_memprofiler_pprof/vendor/upb/bazel/protobuf.patch +54 -0
  23. data/ext/ruby_memprofiler_pprof/vendor/upb/bazel/py_proto_library.bzl +137 -0
  24. data/ext/ruby_memprofiler_pprof/vendor/upb/bazel/python_downloads.bzl +84 -0
  25. data/ext/ruby_memprofiler_pprof/vendor/upb/bazel/system_python.bzl +101 -0
  26. data/ext/ruby_memprofiler_pprof/vendor/upb/bazel/upb_proto_library.bzl +388 -0
  27. data/ext/ruby_memprofiler_pprof/vendor/upb/bazel/workspace_deps.bzl +89 -0
  28. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/BUILD +252 -0
  29. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/BUILD.googleapis +54 -0
  30. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/benchmark.cc +333 -0
  31. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/build_defs.bzl +88 -0
  32. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/compare.py +118 -0
  33. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/descriptor.proto +888 -0
  34. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/descriptor_sv.proto +890 -0
  35. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/empty.proto +6 -0
  36. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/gen_protobuf_binary_cc.py +64 -0
  37. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/gen_synthetic_protos.py +118 -0
  38. data/ext/ruby_memprofiler_pprof/vendor/upb/benchmarks/gen_upb_binary_c.py +65 -0
  39. data/ext/ruby_memprofiler_pprof/vendor/upb/cmake/BUILD.bazel +102 -0
  40. data/ext/ruby_memprofiler_pprof/vendor/upb/cmake/README.md +23 -0
  41. data/ext/ruby_memprofiler_pprof/vendor/upb/cmake/build_defs.bzl +73 -0
  42. data/ext/ruby_memprofiler_pprof/vendor/upb/cmake/make_cmakelists.py +340 -0
  43. data/ext/ruby_memprofiler_pprof/vendor/upb/cmake/staleness_test.py +57 -0
  44. data/ext/ruby_memprofiler_pprof/vendor/upb/cmake/staleness_test_lib.py +186 -0
  45. data/ext/ruby_memprofiler_pprof/vendor/upb/docs/render.py +43 -0
  46. data/ext/ruby_memprofiler_pprof/vendor/upb/docs/style-guide.md +65 -0
  47. data/ext/ruby_memprofiler_pprof/vendor/upb/docs/vs-cpp-protos.md +255 -0
  48. data/ext/ruby_memprofiler_pprof/vendor/upb/docs/wrapping-upb.md +444 -0
  49. data/ext/ruby_memprofiler_pprof/vendor/upb/python/BUILD +216 -0
  50. data/ext/ruby_memprofiler_pprof/vendor/upb/python/convert.c +394 -0
  51. data/ext/ruby_memprofiler_pprof/vendor/upb/python/convert.h +63 -0
  52. data/ext/ruby_memprofiler_pprof/vendor/upb/python/descriptor.c +1694 -0
  53. data/ext/ruby_memprofiler_pprof/vendor/upb/python/descriptor.h +80 -0
  54. data/ext/ruby_memprofiler_pprof/vendor/upb/python/descriptor_containers.c +704 -0
  55. data/ext/ruby_memprofiler_pprof/vendor/upb/python/descriptor_containers.h +114 -0
  56. data/ext/ruby_memprofiler_pprof/vendor/upb/python/descriptor_pool.c +650 -0
  57. data/ext/ruby_memprofiler_pprof/vendor/upb/python/descriptor_pool.h +48 -0
  58. data/ext/ruby_memprofiler_pprof/vendor/upb/python/dist/BUILD.bazel +193 -0
  59. data/ext/ruby_memprofiler_pprof/vendor/upb/python/dist/dist.bzl +190 -0
  60. data/ext/ruby_memprofiler_pprof/vendor/upb/python/extension_dict.c +247 -0
  61. data/ext/ruby_memprofiler_pprof/vendor/upb/python/extension_dict.h +39 -0
  62. data/ext/ruby_memprofiler_pprof/vendor/upb/python/map.c +522 -0
  63. data/ext/ruby_memprofiler_pprof/vendor/upb/python/map.h +66 -0
  64. data/ext/ruby_memprofiler_pprof/vendor/upb/python/message.c +1909 -0
  65. data/ext/ruby_memprofiler_pprof/vendor/upb/python/message.h +101 -0
  66. data/ext/ruby_memprofiler_pprof/vendor/upb/python/minimal_test.py +183 -0
  67. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/BUILD +70 -0
  68. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/README.md +11 -0
  69. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/descriptor_database_test_wrapper.py +30 -0
  70. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/descriptor_pool_test_wrapper.py +45 -0
  71. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/descriptor_test_wrapper.py +46 -0
  72. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/generator_test_wrapper.py +30 -0
  73. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/json_format_test_wrapper.py +30 -0
  74. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/keywords_test_wrapper.py +30 -0
  75. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/message_factory_test_wrapper.py +37 -0
  76. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/message_test_wrapper.py +52 -0
  77. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/proto_builder_test_wrapper.py +32 -0
  78. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/pyproto_test_wrapper.bzl +36 -0
  79. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/reflection_test_wrapper.py +45 -0
  80. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/service_reflection_test_wrapper.py +30 -0
  81. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/symbol_database_test_wrapper.py +30 -0
  82. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/text_encoding_test_wrapper.py +30 -0
  83. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/text_format_test_wrapper.py +30 -0
  84. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/unknown_fields_test_wrapper.py +30 -0
  85. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/well_known_types_test_wrapper.py +36 -0
  86. data/ext/ruby_memprofiler_pprof/vendor/upb/python/pb_unit_tests/wire_format_test_wrapper.py +30 -0
  87. data/ext/ruby_memprofiler_pprof/vendor/upb/python/protobuf.c +350 -0
  88. data/ext/ruby_memprofiler_pprof/vendor/upb/python/protobuf.h +230 -0
  89. data/ext/ruby_memprofiler_pprof/vendor/upb/python/py_extension.bzl +55 -0
  90. data/ext/ruby_memprofiler_pprof/vendor/upb/python/python_api.h +61 -0
  91. data/ext/ruby_memprofiler_pprof/vendor/upb/python/repeated.c +828 -0
  92. data/ext/ruby_memprofiler_pprof/vendor/upb/python/repeated.h +69 -0
  93. data/ext/ruby_memprofiler_pprof/vendor/upb/python/unknown_fields.c +404 -0
  94. data/ext/ruby_memprofiler_pprof/vendor/upb/python/unknown_fields.h +39 -0
  95. data/ext/ruby_memprofiler_pprof/vendor/upb/python/version_script.lds +6 -0
  96. data/ext/ruby_memprofiler_pprof/vendor/upb/third_party/lunit/LICENSE +32 -0
  97. data/ext/ruby_memprofiler_pprof/vendor/upb/third_party/lunit/README.google +9 -0
  98. data/ext/ruby_memprofiler_pprof/vendor/upb/third_party/lunit/console.lua +156 -0
  99. data/ext/ruby_memprofiler_pprof/vendor/upb/third_party/lunit/lunit.lua +725 -0
  100. data/ext/ruby_memprofiler_pprof/vendor/upb/third_party/utf8_range/BUILD +19 -0
  101. data/ext/ruby_memprofiler_pprof/vendor/upb/third_party/utf8_range/LICENSE +21 -0
  102. data/ext/ruby_memprofiler_pprof/vendor/upb/third_party/utf8_range/naive.c +92 -0
  103. data/ext/ruby_memprofiler_pprof/vendor/upb/third_party/utf8_range/range2-neon.c +157 -0
  104. data/ext/ruby_memprofiler_pprof/vendor/upb/third_party/utf8_range/range2-sse.c +170 -0
  105. data/ext/ruby_memprofiler_pprof/vendor/upb/third_party/utf8_range/utf8_range.h +9 -0
  106. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/BUILD.bazel +129 -0
  107. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/README.md +8 -0
  108. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/def.c +939 -0
  109. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/lua_proto_library.bzl +138 -0
  110. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/main.c +83 -0
  111. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/msg.c +1118 -0
  112. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/test.proto +69 -0
  113. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/test_upb.lua +846 -0
  114. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/upb.c +258 -0
  115. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/upb.h +132 -0
  116. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/upb.lua +58 -0
  117. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/bindings/lua/upbc.cc +134 -0
  118. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/collections.c +192 -0
  119. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/collections.h +174 -0
  120. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/conformance_upb.c +346 -0
  121. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/conformance_upb_failures.txt +1 -0
  122. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/decode.c +1221 -0
  123. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/decode.h +94 -0
  124. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/decode_fast.c +1055 -0
  125. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/decode_fast.h +153 -0
  126. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/decode_internal.h +211 -0
  127. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/def.c +3262 -0
  128. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/def.h +414 -0
  129. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/def.hpp +438 -0
  130. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/empty.proto +1 -0
  131. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/encode.c +604 -0
  132. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/encode.h +71 -0
  133. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/fuzz/BUILD +13 -0
  134. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/fuzz/file_descriptor_parsenew_fuzzer.cc +43 -0
  135. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/json_decode.c +1509 -0
  136. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/json_decode.h +47 -0
  137. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/json_encode.c +776 -0
  138. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/json_encode.h +62 -0
  139. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/mini_table.c +1147 -0
  140. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/mini_table.h +189 -0
  141. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/mini_table.hpp +112 -0
  142. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/mini_table_accessors.c +363 -0
  143. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/mini_table_accessors.h +263 -0
  144. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/mini_table_accessors_internal.h +59 -0
  145. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/mini_table_accessors_test.cc +425 -0
  146. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/mini_table_test.cc +230 -0
  147. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/msg.c +428 -0
  148. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/msg.h +114 -0
  149. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/msg_internal.h +836 -0
  150. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/msg_test.cc +491 -0
  151. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/msg_test.proto +195 -0
  152. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/port_def.inc +261 -0
  153. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/port_undef.inc +62 -0
  154. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/reflection.c +323 -0
  155. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/reflection.h +109 -0
  156. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/reflection.hpp +37 -0
  157. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/table.c +926 -0
  158. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/table_internal.h +385 -0
  159. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/test.proto +74 -0
  160. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/test_cpp.cc +186 -0
  161. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/test_cpp.proto +12 -0
  162. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/test_generated_code.cc +977 -0
  163. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/test_table.cc +580 -0
  164. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/text_encode.c +472 -0
  165. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/text_encode.h +64 -0
  166. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/upb.c +362 -0
  167. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/upb.h +378 -0
  168. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/upb.hpp +115 -0
  169. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/upb_internal.h +68 -0
  170. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/BUILD +121 -0
  171. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/README.md +7 -0
  172. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/compare.c +300 -0
  173. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/compare.h +66 -0
  174. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/compare_test.cc +236 -0
  175. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/def_to_proto.c +572 -0
  176. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/def_to_proto.h +62 -0
  177. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/def_to_proto_public_import_test.proto +32 -0
  178. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/def_to_proto_regular_import_test.proto +36 -0
  179. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/def_to_proto_test.cc +143 -0
  180. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/def_to_proto_test.proto +119 -0
  181. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/def_to_proto_weak_import_test.proto +28 -0
  182. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/def_to_proto_wweak_import_test.proto +28 -0
  183. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/required_fields.c +311 -0
  184. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/required_fields.h +94 -0
  185. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/required_fields_test.cc +202 -0
  186. data/ext/ruby_memprofiler_pprof/vendor/upb/upb/util/required_fields_test.proto +48 -0
  187. data/ext/ruby_memprofiler_pprof/vendor/upb/upbc/BUILD +78 -0
  188. data/ext/ruby_memprofiler_pprof/vendor/upb/upbc/common.cc +77 -0
  189. data/ext/ruby_memprofiler_pprof/vendor/upb/upbc/common.h +112 -0
  190. data/ext/ruby_memprofiler_pprof/vendor/upb/upbc/protoc-gen-upb.cc +1997 -0
  191. data/ext/ruby_memprofiler_pprof/vendor/upb/upbc/protoc-gen-upbdefs.cc +193 -0
  192. data/lib/ruby_memprofiler_pprof/atfork.rb +77 -0
  193. data/lib/ruby_memprofiler_pprof/block_flusher.rb +61 -0
  194. data/lib/ruby_memprofiler_pprof/file_flusher.rb +45 -0
  195. data/lib/ruby_memprofiler_pprof/profile_app.rb +30 -0
  196. data/lib/ruby_memprofiler_pprof/profile_data.rb +18 -0
  197. data/lib/ruby_memprofiler_pprof/version.rb +5 -0
  198. data/lib/ruby_memprofiler_pprof.rb +8 -0
  199. data/libexec/ruby_memprofiler_pprof_profile +16 -0
  200. metadata +257 -0
@@ -0,0 +1,719 @@
1
+ # Copyright (c) 2009-2021, Google LLC
2
+ # All rights reserved.
3
+ #
4
+ # Redistribution and use in source and binary forms, with or without
5
+ # modification, are permitted provided that the following conditions are met:
6
+ # * Redistributions of source code must retain the above copyright
7
+ # notice, this list of conditions and the following disclaimer.
8
+ # * Redistributions in binary form must reproduce the above copyright
9
+ # notice, this list of conditions and the following disclaimer in the
10
+ # documentation and/or other materials provided with the distribution.
11
+ # * Neither the name of Google LLC nor the
12
+ # names of its contributors may be used to endorse or promote products
13
+ # derived from this software without specific prior written permission.
14
+ #
15
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16
+ # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
+ # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ # DISCLAIMED. IN NO EVENT SHALL Google LLC BE LIABLE FOR ANY
19
+ # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20
+ # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21
+ # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22
+ # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24
+ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25
+
26
+ load(
27
+ "//bazel:build_defs.bzl",
28
+ "UPB_DEFAULT_COPTS",
29
+ "UPB_DEFAULT_CPPOPTS",
30
+ "make_shell_script",
31
+ )
32
+ load(
33
+ "//bazel:upb_proto_library.bzl",
34
+ "upb_fasttable_enabled",
35
+ "upb_proto_library",
36
+ "upb_proto_library_copts",
37
+ "upb_proto_reflection_library",
38
+ )
39
+
40
+ # begin:github_only
41
+ load(
42
+ "//bazel:build_defs.bzl",
43
+ "upb_amalgamation",
44
+ )
45
+ # end:github_only
46
+
47
+ licenses(["notice"])
48
+
49
+ exports_files(["LICENSE"])
50
+
51
+ exports_files(
52
+ [
53
+ "BUILD",
54
+ "WORKSPACE",
55
+ ],
56
+ visibility = ["//cmake:__pkg__"],
57
+ )
58
+
59
+ config_setting(
60
+ name = "windows",
61
+ constraint_values = ["@bazel_tools//platforms:windows"],
62
+ visibility = ["//visibility:public"],
63
+ )
64
+
65
+ upb_fasttable_enabled(
66
+ name = "fasttable_enabled",
67
+ build_setting_default = False,
68
+ visibility = ["//visibility:public"],
69
+ )
70
+
71
+ config_setting(
72
+ name = "fasttable_enabled_setting",
73
+ flag_values = {"//:fasttable_enabled": "true"},
74
+ )
75
+
76
+ upb_proto_library_copts(
77
+ name = "upb_proto_library_copts__for_generated_code_only_do_not_use",
78
+ copts = UPB_DEFAULT_COPTS,
79
+ visibility = ["//visibility:public"],
80
+ )
81
+
82
+ # Public C/C++ libraries #######################################################
83
+
84
+ cc_library(
85
+ name = "port",
86
+ copts = UPB_DEFAULT_COPTS,
87
+ textual_hdrs = [
88
+ "upb/port_def.inc",
89
+ "upb/port_undef.inc",
90
+ ],
91
+ visibility = ["//:__subpackages__"],
92
+ )
93
+
94
+ cc_library(
95
+ name = "upb",
96
+ srcs = [
97
+ "upb/decode.c",
98
+ "upb/decode_internal.h",
99
+ "upb/encode.c",
100
+ "upb/msg.c",
101
+ "upb/msg_internal.h",
102
+ "upb/table.c",
103
+ "upb/table_internal.h",
104
+ "upb/upb.c",
105
+ "upb/upb_internal.h",
106
+ ],
107
+ hdrs = [
108
+ "upb/decode.h",
109
+ "upb/encode.h",
110
+ "upb/msg.h",
111
+ "upb/upb.h",
112
+ "upb/upb.hpp",
113
+ ],
114
+ copts = UPB_DEFAULT_COPTS,
115
+ visibility = ["//visibility:public"],
116
+ deps = [
117
+ ":fastdecode",
118
+ ":port",
119
+ "//third_party/utf8_range",
120
+ ],
121
+ )
122
+
123
+ cc_library(
124
+ name = "mini_table_internal",
125
+ hdrs = ["upb/msg_internal.h"],
126
+ deps = [
127
+ ":port",
128
+ ":table",
129
+ ":upb",
130
+ ],
131
+ )
132
+
133
+ cc_library(
134
+ name = "mini_table",
135
+ srcs = [
136
+ "upb/mini_table.c",
137
+ ],
138
+ hdrs = [
139
+ "upb/mini_table.h",
140
+ "upb/mini_table.hpp",
141
+ ],
142
+ copts = UPB_DEFAULT_COPTS,
143
+ visibility = ["//visibility:public"],
144
+ deps = [
145
+ ":mini_table_internal",
146
+ ":port",
147
+ ":upb",
148
+ ],
149
+ )
150
+
151
+ cc_library(
152
+ name = "mini_table_accessors",
153
+ srcs = [
154
+ "upb/mini_table_accessors.c",
155
+ "upb/mini_table_accessors_internal.h",
156
+ ],
157
+ hdrs = [
158
+ "upb/mini_table_accessors.h",
159
+ ],
160
+ copts = UPB_DEFAULT_COPTS,
161
+ visibility = ["//video/youtube/utils/elements/javascript/client/proto/upb/native:__pkg__"],
162
+ deps = [
163
+ ":collections",
164
+ ":mini_table",
165
+ ":mini_table_internal",
166
+ ":port",
167
+ ":upb",
168
+ ],
169
+ )
170
+
171
+ cc_test(
172
+ name = "mini_table_test",
173
+ srcs = ["upb/mini_table_test.cc"],
174
+ deps = [
175
+ ":mini_table",
176
+ ":mini_table_internal",
177
+ ":upb",
178
+ "@com_google_absl//absl/container:flat_hash_set",
179
+ "@com_google_googletest//:gtest_main",
180
+ "@com_google_protobuf//:protobuf",
181
+ ],
182
+ )
183
+
184
+ cc_test(
185
+ name = "mini_table_accessors_test",
186
+ srcs = ["upb/mini_table_accessors_test.cc"],
187
+ deps = [
188
+ ":collections",
189
+ ":mini_table",
190
+ ":mini_table_accessors",
191
+ ":mini_table_internal",
192
+ ":test_messages_proto2_proto_upb",
193
+ ":test_messages_proto3_proto_upb",
194
+ ":test_upb_proto",
195
+ ":upb",
196
+ "@com_google_absl//absl/container:flat_hash_set",
197
+ "@com_google_googletest//:gtest_main",
198
+ "@com_google_protobuf//:protobuf",
199
+ ],
200
+ )
201
+
202
+ cc_library(
203
+ name = "fastdecode",
204
+ srcs = [
205
+ "upb/decode.h",
206
+ "upb/decode_fast.c",
207
+ "upb/decode_fast.h",
208
+ "upb/decode_internal.h",
209
+ "upb/msg.h",
210
+ "upb/msg_internal.h",
211
+ "upb/upb_internal.h",
212
+ ],
213
+ copts = UPB_DEFAULT_COPTS,
214
+ deps = [
215
+ ":port",
216
+ ":table",
217
+ "//third_party/utf8_range",
218
+ ],
219
+ )
220
+
221
+ # Common support routines used by generated code. This library has no
222
+ # implementation, but depends on :upb and exposes a few more hdrs.
223
+ #
224
+ # This is public only because we have no way of visibility-limiting it to
225
+ # upb_proto_library() only. This interface is not stable and by using it you
226
+ # give up any backward compatibility guarantees.
227
+ cc_library(
228
+ name = "generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me",
229
+ hdrs = [
230
+ "upb/decode.h",
231
+ "upb/decode_fast.h",
232
+ "upb/encode.h",
233
+ "upb/msg.h",
234
+ "upb/msg_internal.h",
235
+ "upb/port_def.inc",
236
+ "upb/port_undef.inc",
237
+ ],
238
+ copts = UPB_DEFAULT_COPTS,
239
+ visibility = ["//visibility:public"],
240
+ deps = [
241
+ ":table",
242
+ ":upb",
243
+ ],
244
+ )
245
+
246
+ cc_library(
247
+ name = "generated_reflection_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me",
248
+ hdrs = [
249
+ "upb/def.h",
250
+ "upb/port_def.inc",
251
+ "upb/port_undef.inc",
252
+ ],
253
+ copts = UPB_DEFAULT_COPTS,
254
+ visibility = ["//visibility:public"],
255
+ deps = [
256
+ ":descriptor_upb_proto",
257
+ ":reflection",
258
+ ":table",
259
+ ],
260
+ )
261
+
262
+ upb_proto_library(
263
+ name = "descriptor_upb_proto",
264
+ visibility = ["//visibility:public"],
265
+ deps = ["@com_google_protobuf//:descriptor_proto"],
266
+ )
267
+
268
+ upb_proto_reflection_library(
269
+ name = "descriptor_upb_proto_reflection",
270
+ visibility = ["//visibility:public"],
271
+ deps = ["@com_google_protobuf//:descriptor_proto"],
272
+ )
273
+
274
+ cc_library(
275
+ name = "collections",
276
+ srcs = [
277
+ "upb/collections.c",
278
+ ],
279
+ hdrs = [
280
+ "upb/collections.h",
281
+ ],
282
+ copts = UPB_DEFAULT_COPTS,
283
+ visibility = ["//visibility:public"],
284
+ deps = [
285
+ ":descriptor_upb_proto",
286
+ ":mini_table",
287
+ ":port",
288
+ ":table",
289
+ ":upb",
290
+ ],
291
+ )
292
+
293
+ cc_library(
294
+ name = "reflection",
295
+ srcs = [
296
+ "upb/def.c",
297
+ "upb/msg.h",
298
+ "upb/reflection.c",
299
+ ],
300
+ hdrs = [
301
+ "upb/def.h",
302
+ "upb/def.hpp",
303
+ "upb/reflection.h",
304
+ "upb/reflection.hpp",
305
+ ],
306
+ copts = UPB_DEFAULT_COPTS,
307
+ visibility = ["//visibility:public"],
308
+ deps = [
309
+ ":collections",
310
+ ":descriptor_upb_proto",
311
+ ":mini_table",
312
+ ":port",
313
+ ":table",
314
+ ":upb",
315
+ ],
316
+ )
317
+
318
+ cc_library(
319
+ name = "textformat",
320
+ srcs = [
321
+ "upb/text_encode.c",
322
+ "upb/upb_internal.h",
323
+ ],
324
+ hdrs = [
325
+ "upb/text_encode.h",
326
+ ],
327
+ copts = UPB_DEFAULT_COPTS,
328
+ visibility = ["//visibility:public"],
329
+ deps = [
330
+ ":port",
331
+ ":reflection",
332
+ ":table",
333
+ ],
334
+ )
335
+
336
+ cc_library(
337
+ name = "json",
338
+ srcs = [
339
+ "upb/json_decode.c",
340
+ "upb/json_encode.c",
341
+ "upb/upb_internal.h",
342
+ ],
343
+ hdrs = [
344
+ "upb/json_decode.h",
345
+ "upb/json_encode.h",
346
+ ],
347
+ copts = UPB_DEFAULT_COPTS,
348
+ visibility = ["//visibility:public"],
349
+ deps = [
350
+ ":port",
351
+ ":reflection",
352
+ ":upb",
353
+ ],
354
+ )
355
+
356
+ # Tests ########################################################################
357
+
358
+ cc_test(
359
+ name = "test_generated_code",
360
+ srcs = ["upb/test_generated_code.cc"],
361
+ deps = [
362
+ ":empty_upbdefs_proto",
363
+ ":test_messages_proto2_proto_upb",
364
+ ":test_messages_proto3_proto_upb",
365
+ ":test_upb_proto",
366
+ ":upb",
367
+ "@com_google_googletest//:gtest_main",
368
+ ],
369
+ )
370
+
371
+ proto_library(
372
+ name = "test_proto",
373
+ testonly = 1,
374
+ srcs = ["upb/test.proto"],
375
+ )
376
+
377
+ upb_proto_library(
378
+ name = "test_upb_proto",
379
+ testonly = 1,
380
+ deps = [":test_proto"],
381
+ )
382
+
383
+ proto_library(
384
+ name = "empty_proto",
385
+ srcs = ["upb/empty.proto"],
386
+ )
387
+
388
+ upb_proto_reflection_library(
389
+ name = "empty_upbdefs_proto",
390
+ testonly = 1,
391
+ deps = [":empty_proto"],
392
+ )
393
+
394
+ upb_proto_library(
395
+ name = "test_messages_proto2_proto_upb",
396
+ testonly = 1,
397
+ deps = ["@com_google_protobuf//:test_messages_proto2_proto"],
398
+ )
399
+
400
+ upb_proto_library(
401
+ name = "test_messages_proto3_proto_upb",
402
+ testonly = 1,
403
+ deps = ["@com_google_protobuf//:test_messages_proto3_proto"],
404
+ )
405
+
406
+ cc_test(
407
+ name = "msg_test",
408
+ srcs = ["upb/msg_test.cc"],
409
+ deps = [
410
+ ":json",
411
+ ":msg_test_upb_proto",
412
+ ":msg_test_upb_proto_reflection",
413
+ ":reflection",
414
+ ":test_messages_proto3_proto_upb",
415
+ ":upb",
416
+ "@com_google_googletest//:gtest_main",
417
+ ],
418
+ )
419
+
420
+ proto_library(
421
+ name = "msg_test_proto",
422
+ testonly = 1,
423
+ srcs = ["upb/msg_test.proto"],
424
+ deps = ["@com_google_protobuf//:test_messages_proto3_proto"],
425
+ )
426
+
427
+ upb_proto_library(
428
+ name = "msg_test_upb_proto",
429
+ testonly = 1,
430
+ deps = [":msg_test_proto"],
431
+ )
432
+
433
+ upb_proto_reflection_library(
434
+ name = "msg_test_upb_proto_reflection",
435
+ testonly = 1,
436
+ deps = [":msg_test_proto"],
437
+ )
438
+
439
+ proto_library(
440
+ name = "test_cpp_proto",
441
+ srcs = ["upb/test_cpp.proto"],
442
+ deps = ["@com_google_protobuf//:timestamp_proto"],
443
+ )
444
+
445
+ upb_proto_library(
446
+ name = "test_cpp_upb_proto",
447
+ deps = ["test_cpp_proto"],
448
+ )
449
+
450
+ upb_proto_reflection_library(
451
+ name = "test_cpp_upb_proto_reflection",
452
+ deps = ["test_cpp_proto"],
453
+ )
454
+
455
+ upb_proto_library(
456
+ name = "timestamp_upb_proto",
457
+ deps = ["@com_google_protobuf//:timestamp_proto"],
458
+ )
459
+
460
+ upb_proto_reflection_library(
461
+ name = "timestamp_upb_proto_reflection",
462
+ deps = ["@com_google_protobuf//:timestamp_proto"],
463
+ )
464
+
465
+ cc_test(
466
+ name = "test_cpp",
467
+ srcs = ["upb/test_cpp.cc"],
468
+ copts = UPB_DEFAULT_CPPOPTS,
469
+ deps = [
470
+ ":test_cpp_upb_proto",
471
+ ":test_cpp_upb_proto_reflection",
472
+ ":timestamp_upb_proto",
473
+ ":timestamp_upb_proto_reflection",
474
+ "//:json",
475
+ "//:port",
476
+ "//:reflection",
477
+ "//:upb",
478
+ "@com_google_googletest//:gtest_main",
479
+ ],
480
+ )
481
+
482
+ cc_test(
483
+ name = "test_table",
484
+ srcs = ["upb/test_table.cc"],
485
+ copts = UPB_DEFAULT_CPPOPTS,
486
+ deps = [
487
+ "//:port",
488
+ "//:table",
489
+ "//:upb",
490
+ "@com_google_googletest//:gtest_main",
491
+ ],
492
+ )
493
+
494
+ upb_proto_library(
495
+ name = "conformance_proto_upb",
496
+ testonly = 1,
497
+ deps = ["@com_google_protobuf//conformance:conformance_proto"],
498
+ )
499
+
500
+ upb_proto_reflection_library(
501
+ name = "conformance_proto_upbdefs",
502
+ testonly = 1,
503
+ deps = ["@com_google_protobuf//conformance:conformance_proto"],
504
+ )
505
+
506
+ upb_proto_reflection_library(
507
+ name = "test_messages_proto2_upbdefs",
508
+ testonly = 1,
509
+ deps = ["@com_google_protobuf//:test_messages_proto2_proto"],
510
+ )
511
+
512
+ upb_proto_reflection_library(
513
+ name = "test_messages_proto3_upbdefs",
514
+ testonly = 1,
515
+ deps = ["@com_google_protobuf//:test_messages_proto3_proto"],
516
+ )
517
+
518
+ cc_binary(
519
+ name = "conformance_upb",
520
+ testonly = 1,
521
+ srcs = ["upb/conformance_upb.c"],
522
+ copts = UPB_DEFAULT_COPTS,
523
+ data = ["upb/conformance_upb_failures.txt"],
524
+ deps = [
525
+ ":conformance_proto_upb",
526
+ ":conformance_proto_upbdefs",
527
+ ":test_messages_proto2_upbdefs",
528
+ ":test_messages_proto3_upbdefs",
529
+ "//:json",
530
+ "//:port",
531
+ "//:reflection",
532
+ "//:textformat",
533
+ "//:upb",
534
+ ],
535
+ )
536
+
537
+ make_shell_script(
538
+ name = "gen_test_conformance_upb",
539
+ out = "test_conformance_upb.sh",
540
+ contents = "external/com_google_protobuf/conformance/conformance_test_runner " +
541
+ " --enforce_recommended " +
542
+ " --failure_list ./upb/conformance_upb_failures.txt" +
543
+ " ./conformance_upb",
544
+ )
545
+
546
+ sh_test(
547
+ name = "test_conformance_upb",
548
+ srcs = ["test_conformance_upb.sh"],
549
+ data = [
550
+ "upb/conformance_upb_failures.txt",
551
+ ":conformance_upb",
552
+ "@com_google_protobuf//conformance:conformance_test_runner",
553
+ ],
554
+ deps = ["@bazel_tools//tools/bash/runfiles"],
555
+ )
556
+
557
+ cc_binary(
558
+ name = "conformance_upb_dynamic_minitable",
559
+ testonly = 1,
560
+ srcs = ["upb/conformance_upb.c"],
561
+ copts = UPB_DEFAULT_COPTS + [
562
+ "-DREBUILD_MINITABLES",
563
+ ],
564
+ data = ["upb/conformance_upb_failures.txt"],
565
+ deps = [
566
+ ":conformance_proto_upb",
567
+ ":conformance_proto_upbdefs",
568
+ ":test_messages_proto2_upbdefs",
569
+ ":test_messages_proto3_upbdefs",
570
+ "//:json",
571
+ "//:port",
572
+ "//:reflection",
573
+ "//:textformat",
574
+ "//:upb",
575
+ ],
576
+ )
577
+
578
+ make_shell_script(
579
+ name = "gen_test_conformance_upb_dynamic_minitable",
580
+ out = "test_conformance_upb_dynamic_minitable.sh",
581
+ contents = "external/com_google_protobuf/conformance/conformance_test_runner " +
582
+ " --enforce_recommended " +
583
+ " --failure_list ./upb/conformance_upb_failures.txt" +
584
+ " ./conformance_upb_dynamic_minitable",
585
+ )
586
+
587
+ sh_test(
588
+ name = "test_conformance_upb_dynamic_minitable",
589
+ srcs = ["test_conformance_upb_dynamic_minitable.sh"],
590
+ data = [
591
+ "upb/conformance_upb_failures.txt",
592
+ ":conformance_upb_dynamic_minitable",
593
+ "@com_google_protobuf//conformance:conformance_test_runner",
594
+ ],
595
+ deps = ["@bazel_tools//tools/bash/runfiles"],
596
+ )
597
+
598
+ # Internal C/C++ libraries #####################################################
599
+
600
+ cc_library(
601
+ name = "table",
602
+ hdrs = [
603
+ "upb/table_internal.h",
604
+ "upb/upb.h",
605
+ ],
606
+ visibility = [
607
+ "//python:__pkg__",
608
+ "//tests:__pkg__",
609
+ ],
610
+ deps = [
611
+ ":port",
612
+ ],
613
+ )
614
+
615
+ # Amalgamation #################################################################
616
+
617
+ # begin:github_only
618
+
619
+ upb_amalgamation(
620
+ name = "gen_amalgamation",
621
+ outs = [
622
+ "upb.c",
623
+ "upb.h",
624
+ ],
625
+ libs = [
626
+ ":collections",
627
+ ":descriptor_upb_proto",
628
+ ":fastdecode",
629
+ ":mini_table",
630
+ ":port",
631
+ ":reflection",
632
+ ":upb",
633
+ ],
634
+ )
635
+
636
+ cc_library(
637
+ name = "amalgamation",
638
+ srcs = ["upb.c"],
639
+ hdrs = ["upb.h"],
640
+ copts = UPB_DEFAULT_COPTS,
641
+ deps = ["//third_party/utf8_range"],
642
+ )
643
+
644
+ upb_amalgamation(
645
+ name = "gen_php_amalgamation",
646
+ outs = [
647
+ "php-upb.c",
648
+ "php-upb.h",
649
+ ],
650
+ libs = [
651
+ ":collections",
652
+ ":descriptor_upb_proto",
653
+ ":descriptor_upb_proto_reflection",
654
+ ":fastdecode",
655
+ ":json",
656
+ ":mini_table",
657
+ ":port",
658
+ ":reflection",
659
+ ":upb",
660
+ ],
661
+ prefix = "php-",
662
+ )
663
+
664
+ cc_library(
665
+ name = "php_amalgamation",
666
+ srcs = ["php-upb.c"],
667
+ hdrs = ["php-upb.h"],
668
+ copts = UPB_DEFAULT_COPTS,
669
+ deps = ["//third_party/utf8_range"],
670
+ )
671
+
672
+ upb_amalgamation(
673
+ name = "gen_ruby_amalgamation",
674
+ outs = [
675
+ "ruby-upb.c",
676
+ "ruby-upb.h",
677
+ ],
678
+ libs = [
679
+ ":collections",
680
+ ":descriptor_upb_proto",
681
+ ":fastdecode",
682
+ ":json",
683
+ ":mini_table",
684
+ ":port",
685
+ ":reflection",
686
+ ":upb",
687
+ ],
688
+ prefix = "ruby-",
689
+ )
690
+
691
+ cc_library(
692
+ name = "ruby_amalgamation",
693
+ srcs = ["ruby-upb.c"],
694
+ hdrs = ["ruby-upb.h"],
695
+ copts = UPB_DEFAULT_COPTS,
696
+ deps = ["//third_party/utf8_range"],
697
+ )
698
+
699
+ exports_files(
700
+ [
701
+ "third_party/lunit/console.lua",
702
+ "third_party/lunit/lunit.lua",
703
+ ],
704
+ visibility = ["//upb/bindings/lua:__pkg__"],
705
+ )
706
+
707
+ filegroup(
708
+ name = "cmake_files",
709
+ srcs = glob([
710
+ "google/**/*",
711
+ "upbc/**/*",
712
+ "upb/**/*",
713
+ "tests/**/*",
714
+ "third_party/**/*",
715
+ ]),
716
+ visibility = ["//cmake:__pkg__"],
717
+ )
718
+
719
+ # end:github_only