Skip to content

Commit 5f79684

Browse files
fmeumcopybara-github
authored andcommitted
Add a native image of turbine to the prebuilt Java tools
A simple local experiment shows that the time for all Java header compilation actions required for `//src:bazel-dev` decreases by a factor of 4.5 when using a native image of turbine instead of jar. The time taken for an incremental build of `//src/main/java/com/google/devtools/build/lib/bazel:BazelServer` after adding a public method to `Label` decreases by a factor of 2 with `--experimental_java_classpath=bazel`. As a first step towards using the native image in Java toolchains, ship it as part of the prebuilt Java tools by using rules_graalvm. Closes #19361. PiperOrigin-RevId: 582531539 Change-Id: If71d8ec86fecbc1363a748d197f88962bd489fb4
1 parent 5125cdd commit 5f79684

7 files changed

Lines changed: 250 additions & 86 deletions

File tree

MODULE.bazel

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module(
1313
# =========================================
1414

1515
bazel_dep(name = "rules_license", version = "0.0.7")
16-
bazel_dep(name = "bazel_skylib", version = "1.4.1")
16+
bazel_dep(name = "bazel_skylib", version = "1.5.0")
1717
bazel_dep(name = "protobuf", version = "21.7", repo_name = "com_google_protobuf")
1818
bazel_dep(name = "grpc", version = "1.48.1.bcr.1", repo_name = "com_github_grpc_grpc")
1919
bazel_dep(name = "platforms", version = "0.0.8")
@@ -24,6 +24,7 @@ bazel_dep(name = "blake3", version = "1.3.3.bcr.1")
2424
bazel_dep(name = "zlib", version = "1.3")
2525
bazel_dep(name = "rules_cc", version = "0.0.9")
2626
bazel_dep(name = "rules_java", version = "7.1.0")
27+
bazel_dep(name = "rules_graalvm", version = "0.10.3")
2728
bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
2829
bazel_dep(name = "rules_jvm_external", version = "5.2")
2930
bazel_dep(name = "rules_python", version = "0.26.0")
@@ -52,7 +53,7 @@ local_path_override(
5253

5354
# The following Bazel modules are not direct dependencies for building Bazel,
5455
# but are required for visibility from DIST_ARCHIVE_REPOS in repositories.bzl
55-
bazel_dep(name = "apple_support", version = "1.5.0")
56+
bazel_dep(name = "apple_support", version = "1.8.1")
5657
bazel_dep(name = "abseil-cpp", version = "20220623.1")
5758
bazel_dep(name = "c-ares", version = "1.15.0")
5859
bazel_dep(name = "rules_go", version = "0.39.1")
@@ -297,6 +298,16 @@ use_repo(bazel_rbe_deps, "rbe_ubuntu2004_java11")
297298
remote_coverage_tools_extension = use_extension("//tools/test:extensions.bzl", "remote_coverage_tools_extension")
298299
use_repo(remote_coverage_tools_extension, "remote_coverage_tools")
299300

301+
gvm = use_extension("@rules_graalvm//:extensions.bzl", "graalvm")
302+
gvm.graalvm(
303+
name = "graalvm",
304+
distribution = "ce",
305+
java_version = "20",
306+
version = "20.0.2",
307+
)
308+
use_repo(gvm, "graalvm_toolchains")
309+
register_toolchains("@graalvm_toolchains//:gvm")
310+
300311
# =========================================
301312
# Register platforms & toolchains
302313
# =========================================

0 commit comments

Comments
 (0)