From 22eec97266ac822a50c8eb26a680c195bb5dfd16 Mon Sep 17 00:00:00 2001 From: Evgenii Slutckii Date: Wed, 2 Oct 2024 15:51:51 +0000 Subject: [PATCH] compiling java 8 using java 11 In a preparation for arm builds that require java 11 toolchains (as it is arm unlike java 8), migrating java/scala and code generation to java 11. (arm follow up diff https://phabricator.twitter.biz/D1171895) Main idea of the diff is to propagate -release 8 flag into `javac` and `scalac` that would compile classes into java 8 bytecode level as well as will use only java 8 API and won't leak java 11 APIs. One limitation of it is one cannot open up private packages like `sun.annotation.processor`. This makes targets that are using those private jdk packages uncompilable so I am just using java 8 for compilation of those (should not be a big deal and long term we should just get rid of java 8). Code generation tools are using java 11 as the runtime platform. In this diff: - adding java 11 toolchain with release 8 and propagating it through target_field_transforms.bzl that takes care of jdk transformations - using java8-do-not-use for targets that have private jdk packages. Have to override java8-do-not-use to java8 for scala_library as it has some REPL modules where one cannot override runtime_platform - making scrooge code generation use java 11 at runtime cls is failing because of unrelated diff: https://phabricator.twitter.biz/D1173582 Differential Revision: https://phabricator.twitter.biz/D1173098 --- util-validator/src/main/scala/com/twitter/util/validation/BUILD | 2 +- .../src/main/scala/com/twitter/util/validation/internal/BUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/util-validator/src/main/scala/com/twitter/util/validation/BUILD b/util-validator/src/main/scala/com/twitter/util/validation/BUILD index b715b02ab6..917474ec39 100644 --- a/util-validator/src/main/scala/com/twitter/util/validation/BUILD +++ b/util-validator/src/main/scala/com/twitter/util/validation/BUILD @@ -1,7 +1,7 @@ scala_library( sources = ["*.scala"], compiler_option_sets = ["fatal_warnings"], - platform = "java8", + platform = "java8-do-not-use", provides = scala_artifact( org = "com.twitter", name = "util-validation-core", diff --git a/util-validator/src/main/scala/com/twitter/util/validation/internal/BUILD b/util-validator/src/main/scala/com/twitter/util/validation/internal/BUILD index 577f8846a6..63a2a193e6 100644 --- a/util-validator/src/main/scala/com/twitter/util/validation/internal/BUILD +++ b/util-validator/src/main/scala/com/twitter/util/validation/internal/BUILD @@ -1,7 +1,7 @@ scala_library( sources = ["*.scala"], compiler_option_sets = ["fatal_warnings"], - platform = "java8", + platform = "java8-do-not-use", provides = scala_artifact( org = "com.twitter", name = "util-validation-internal",