| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
RELNOTES: Persistent workers are now used by default for Java compilation in Bazel, which should speed up your Java builds by ~4x. You can switch back to the old behavior via --strategy=Javac=standalone. Check out http://www.bazel.io/blog/2015/12/10/java-workers.html for more details.
--
MOS_MIGRATED_REVID=128801059
|
|
|
|
|
|
|
|
|
| |
-XX:TieredStopAtLevel=1 instead of -client, as the latter is ignored on 64-bit JVMs since at least JDK 6.
The new flags have been shown to cut down CPU time by 50% due to reduced time spent in JIT and improving overall run time for short running actions, some times also cutting them in half.
--
MOS_MIGRATED_REVID=127536578
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125589653
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-XX:TieredStopAtLevel=1 instead of -client, as the latter is ignored on 64-bit JVMs since at least JDK 6.
The new flags have been shown to cut down CPU time by 50% due to reduced time spent in JIT and improving overall run time for short running actions, some times also cutting them in half.
Here's a benchmark of Bazel building itself, giving a nice 2-4x speedup:
./output/bazel clean && ./output/bazel build //src:bazel
Bazel before this change:
INFO: Elapsed time: 197.783s, Critical Path: 194.10s
INFO: Elapsed time: 198.928s, Critical Path: 195.65s
INFO: Elapsed time: 194.913s, Critical Path: 191.56s
Bazel before this change with --strategy=Javac=worker:
INFO: Elapsed time: 130.436s, Critical Path: 124.27s
INFO: Elapsed time: 116.114s, Critical Path: 112.30s
INFO: Elapsed time: 116.852s, Critical Path: 84.45s
Bazel with this change:
INFO: Elapsed time: 121.625s, Critical Path: 119.08s
INFO: Elapsed time: 119.401s, Critical Path: 115.80s
INFO: Elapsed time: 121.198s, Critical Path: 119.03s
Bazel with this change and --strategy=Javac=worker:
INFO: Elapsed time: 54.456s, Critical Path: 51.28s
INFO: Elapsed time: 53.272s, Critical Path: 51.09s
INFO: Elapsed time: 52.966s, Critical Path: 49.86s
Bazel with this change and --strategy=Javac=worker and stripping -XX:TieredStopAtLevel=1 from JVM flags when using workers:
INFO: Elapsed time: 61.599s, Critical Path: 58.93s
INFO: Elapsed time: 48.695s, Critical Path: 45.02s
INFO: Elapsed time: 46.874s, Critical Path: 43.91s
INFO: Elapsed time: 46.174s, Critical Path: 43.32s
(The latter is a possible optimization for workers and it's also nice to know that the limited tiered compilation does not hurt their performance.)
--
MOS_MIGRATED_REVID=125448089
|
|
|
|
|
|
|
|
| |
This allows --experimental_java_header_compilation=true to be used with Bazel.
It is still off by default.
--
MOS_MIGRATED_REVID=121623213
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Along the path, fix the build for JDK 7 and get rid of
most ugliness in the JDK 7 build. Now simply setting
JAVA_VERSION to 1.7 will build a JDK 7 compatible version.
Fixes #1159.
--
Change-Id: I9599283844a57d9e053f12d37445907f22a9232e
Reviewed-on: https://bazel-review.googlesource.com/#/c/3452
MOS_MIGRATED_REVID=120332747
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change disables --java_langtools, --javabuilder_top, --singlejar_top,
--genclass_top, and --ijar_top, and finishes replacing them with
java_toolchain.{javac,javabuilder,singlejar,genclass,ijar}.
RELNOTES: Replace --java_langtools, --javabuilder_top, --singlejar_top,
--genclass_top, and --ijar_top with
java_toolchain.{javac,javabuilder,singlejar,genclass,ijar}
--
MOS_MIGRATED_REVID=120154954
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks ci.bazel.io
While the basics for fixing the build is easy (just a few typos in packages building), fixing the test is a bit more tricky. I see only one solution for fixing the test: use a select statement that would select the good bazel version but that would always pull JavaBuilder as an external dependency when we do test.
Better roll this back then check the JavaBuilder 0.1.0 as a binary in third_party before rolling forward (a similar change is still needed to decouple running the test and building the binary for JDK 7)
*** Original change description ***
Refactor build for JDK 7
Now the JDK 7 tuning happens all in Bazel, removing logic
from the CI script. It uses remote repositories to access
JDK 7 dependencies.
--
MOS_MIGRATED_REVID=119773123
|
|
|
|
|
|
|
|
|
|
|
| |
Now the JDK 7 tuning happens all in Bazel, removing logic
from the CI script. It uses remote repositories to access
JDK 7 dependencies.
--
Change-Id: Iff590c6642ca5b2343aa15096f8fd837d1c80787
Reviewed-on: https://bazel-review.googlesource.com/#/c/3327
MOS_MIGRATED_REVID=119634530
|
|
|
|
|
|
|
| |
A small step towards the resolution of #276.
--
MOS_MIGRATED_REVID=114330517
|
|
|
|
|
|
|
|
|
| |
tools/jdk are not necessary anymore.
Fixes #508.
--
MOS_MIGRATED_REVID=108123264
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It may be the case that a library used by Java clients is also used
by Android clients, but when used for the latter, it requires a particular
Proguard configuration. This change modifies Java library rules to accept
Proguard specs and pass them up to Android rules.
Note that this does not cause Proguard to be used on normal Java binaries.
RELNOTES[NEW]: java_library now supports the proguard_specs attribute for
passing Proguard configuration up to Android (not Java) binaries.
--
MOS_MIGRATED_REVID=104661799
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change deprecate JDK 7 as JavaBuilder follow changes in Java 9
and might use Java 8 features. We will maintain a build with the
JDK 7 as long as possible but this build won't include updates
in JavaBuilder.
RELNOTES[INC]: Bazel requires JDK 8 to run.
--
MOS_MIGRATED_REVID=103069207
|
|
|
|
|
|
|
| |
--
Change-Id: I4e65cc583e758d2f7e45209ffcb37f6a871e2ed7
Reviewed-on: https://bazel-review.git.corp.google.com/#/c/1840
MOS_MIGRATED_REVID=101462155
|
|
|
|
|
|
|
| |
fix the Skylark rules and tests that so far failed to declare dependencies on the JVM.
--
MOS_MIGRATED_REVID=101215495
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This packager can be called by the release scripts to generate
a self-extractable bash installer for Bazel. This script was
tested by hand as extra arguments can be specified to change
the default install of Bazel (default is system-wide and
with the argument you can make a user install).
This will be the only packager for now since GitHub is offering
the possibility to download the source tree as a ZIP. Hopefully,
before the end of the year we could build some more package kind.
--
Change-Id: I1a2d0cd39b9e4adcaf6c984ec4c855a04213b61a
Reviewed-on: https://bazel-review.googlesource.com/1581
MOS_MIGRATED_REVID=99258828
|
|
|
|
|
|
|
| |
Adds a jar output to Java and Android rules which contains the class files for source files generated from Java annotation processors. For a java_binary foo, the jar will be foo-gen.jar, and for a java_library foo the jar will be libfoo-gen.jar, and similarly for Android. Also adds a binary serialized proto manifest file output to Java and Android rules which describes the contents of the output class jar of those rules, which is used to create the -gen.jar. See src/main/protobuf/java_compilation.proto.
--
MOS_MIGRATED_REVID=97793715
|
|
|
|
|
|
|
| |
-client is now the only default JVM options of JavaBuilder
--
MOS_MIGRATED_REVID=96762330
|
|
|
|
|
|
|
|
|
| |
Now that we are using the error-prone javac, there is no need
to impose Java 8. However, because some of our tests are targetting
Java 8, developer should still use a JDK 8 to tests.
--
MOS_MIGRATED_REVID=96400914
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=96365813
|
|
|
|
|
|
|
|
|
|
| |
Skylark rules now depends completely on the external repository
to access the JDK tooling.
--
Change-Id: I48d461524d63d556bcd4af49f6ba2aecf1ed7068
Reviewed-on: https://bazel-review.googlesource.com/#/c/1500/
MOS_MIGRATED_REVID=95720688
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added target to use java skylark rules to bootstrap
JavaBuilder and SingleJar. Uses thoses target to bootstrap
JavaBuilder and SingleJar and compiles all tools using
Bazel.
--
Change-Id: I5142917c8b31e04015fbab89382df36b4892d8c6
Reviewed-on: https://bazel-review.googlesource.com/#/c/1451/
MOS_MIGRATED_REVID=95281092
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The -extdirs flag sets a search path to the directory containing the JDK's
extension classes, and should always be set explicitly when cross-compiling. If
it is unset, the ext directory of the host JDK will be used instead.
javac requires that -extdirs be a list of directories. The blaze --javac_extdir
flag takes the label of a filegroup with the 'path' attribute set, and passes
the directory path through to JavaBuilder.
--
MOS_MIGRATED_REVID=94001278
|
|
|
|
|
|
|
|
|
| |
It is a first batch of integration tests for Bazel. They tests some
basic behaviors and nominal cases of Bazel rules (especially they tests
the behavior of the examples provided in //examples).
--
MOS_MIGRATED_REVID=89440074
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=88742425
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=88232306
|
|
While attempting to clean up the Bazel examples, I noticed that the example
tests don't actually work because they expect a third_party directory. We could
link third_party/ from the top-level bazel directory, but then we'd have
crossing symlinks (base_workspace/tools->tools and
third_party->base_workspace/third_party). Linking everything in one direction
seemed like a better option, but alternative suggestions are welcome.
--
MOS_MIGRATED_REVID=86703332
|