| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
| |
InetAddress.getLocalHost().getHostName() can take seconds to complete as it
performs reverse DNS lookup. Prior to this cl hostname lookup was performed on
every build, noticeably slowing down null builds especially. This cl caches
computed hostname so null builds are faster for the lifetime of the server.
--
Reviewed-on: https://bazel-review.googlesource.com/#/c/5432/
MOS_MIGRATED_REVID=130441617
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OrderedSetMultimap. This maintains insertion order while eliminating duplicates.
Certain rules, in particular, otherwise break this invariant:
https://github.com/bazelbuild/bazel/blo[]e3e28274cca5b87f48abe33884edb84016dd3/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java#L403
There's no reason (to my knowledge) to need multiple instances of the same <Attribute, Dependency> pair.
More context from Google code review:
(Michael Staib):
> There are many things which pass around a dependentNodeMap or help construct one or modify one. We want an interface which has the right guarantees.
> ListMultimap is not the right interface because it has no guarantee of unique elements, which we want - we don't want the problem that this CL ran into, and there's no reason (that we know of, to be confirmed) that anyone would want multiple identical Dependencies.
> SetMultimap is not the right interface because it has no guarantee of deterministic iteration order or efficient iteration, which we want - dependency order sometimes matters (e.g., Java classpath or C++ link order).
> We agreed that the best way to get what we want is to define our own interface with its own simultaneous uniqueness and iterability guarantees. Unspoken in the discussion was why we wouldn't just use LinkedHashMultimap as the thing we pass around. IMO the reason for that is that we don't care that it be a LinkedHashMultimap specifically; if tomorrow Guava comes out with a faster cooler map that has deterministic and efficient iteration and guarantees element uniqueness, we want it.
> In this case we're going to make the "interface" be a (final?) class: OrderedSetMultimap, an extension of ForwardingSetMultimap which delegates to LinkedHashMultimap, an implementation which does support both of those guarantees.
> I had mentioned in the conversation that none of the Multimap implementations make guarantees about key iteration order, but this is not true - LinkedHashMultimap preserves key insertion order. We should perhaps declare this as part of the OrderedSetMultimap contract as well.
--
MOS_MIGRATED_REVID=130037643
|
|
|
|
|
|
|
| |
Removes a noticeable hotspot from LabelValidator.validateTargetName().
--
MOS_MIGRATED_REVID=128359980
|
|
|
|
|
|
|
|
|
|
| |
The naive algorithm was O(n*m) where n = number of precompiled libraries and
m = number of libraries linked during this rule. Ugly!
This one provides hopefully much more reasonable performance.
--
MOS_MIGRATED_REVID=128206057
|
|
|
|
|
|
|
| |
This minimizes API divergence and allows us to make use of performance enhancements in guava, such as https://github.com/google/guava/issues/1197.
--
MOS_MIGRATED_REVID=127108107
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Apparently we now try to open output files for the process twice: once when we are constructing the output streams, and the second time when we tell the process to redirect its outputs. This causes the outputs to be empty on Windows
*** Original change description ***
Do redirection of stdout / stderr in Java instead of reimplementing it in every process wrapper again.
--
MOS_MIGRATED_REVID=126801016
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=126566280
|
|
|
|
|
|
|
|
|
| |
that's what it does.
In particular, it affects Windows.
--
MOS_MIGRATED_REVID=126293339
|
|
|
|
|
|
|
| |
every process wrapper again.
--
MOS_MIGRATED_REVID=126279021
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=126177747
|
|
|
|
|
|
|
| |
they actually return a Path and not a File.
--
MOS_MIGRATED_REVID=126102820
|
|
|
|
|
|
|
|
|
| |
This is the first actual use of Windows JNI!
Also a cleanup of ProcessUtils. Injecting a mock implementation was never used.
--
MOS_MIGRATED_REVID=126068832
|
|
|
|
|
|
|
|
|
|
|
| |
- change options to print --foo=value
- allow option to specify what "value" should be
- update the documentation for the startup options
- add some indentation to the descriptions
- add some spacing between flag texts
--
MOS_MIGRATED_REVID=125960618
|
|
|
|
|
|
|
|
|
| |
...so that it can be used by the main code base.
--
Change-Id: Ibf59d74ab1b0cca9bd9406bb76ee6e71189653bf
Reviewed-on: https://bazel-review.googlesource.com/#/c/3903
MOS_MIGRATED_REVID=125950656
|
|
|
|
|
|
|
| |
This is to simplify the contract of BuildConfiguration.Fragment, thus making it simpler to create BuildConfigurations without unnecessary fragments and eventually create configuration fragments from Skylark.
--
MOS_MIGRATED_REVID=125137625
|
|
|
|
|
|
|
|
|
| |
CompactPersistentActionCache didn't work because it trys to rename a file to an existing file which JavaIoFileSystem doesn't support. Solution is deleting the file before renaming.
--
Change-Id: I8d476cd2835c8cddbeed8f556361e0e35d1a2bd4
Reviewed-on: https://bazel-review.googlesource.com/#/c/3802
MOS_MIGRATED_REVID=124828957
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=124744073
|
|
|
|
|
|
|
| |
It works for both labels on the command-line and labels in BUILD files.
--
MOS_MIGRATED_REVID=123967347
|
|
|
|
|
|
|
| |
This will be used later to detect typos and provide suggestions.
--
MOS_MIGRATED_REVID=123761611
|
|
|
|
|
|
|
|
|
| |
BlazeRuntime#getProductName() or a reference to TestConstants.PRODUCT_NAME for tests.
This CL prepares the codebase in order to delete the constant.
--
MOS_MIGRATED_REVID=122993568
|
|
|
|
|
|
|
|
|
|
| |
- mark the addDependencies method as @VisibleForTesting, and don't round-trip
through PathFragment
- use Path.getRelative(String) instead of Path.getRelative(PathFragment), which
may do additional optimizations
--
MOS_MIGRATED_REVID=122720947
|
|
|
|
|
|
|
| |
conversion is unnecessary and wasteful. In the remaining cases, the set conversion can be explicit.
--
MOS_MIGRATED_REVID=122294939
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
This is breaking ~1,000 tests in the latest Blaze nightly:
[]
Per sheriff policy, we need to either roll back or provide a quick fix tonight.
*** Original change description ***
Optimize hotspot in DependencySet.process().
--
MOS_MIGRATED_REVID=122220429
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=122050015
|
|
|
|
|
|
|
|
| |
Since file path is case-insensitive on Windows, we need to support this.
Also fixed .d file inclusions check in CppCompileAction.java on Windows
--
MOS_MIGRATED_REVID=121823250
|
|
|
|
|
|
|
| |
allowing for future work that may want to access a particular group in the GroupedList without advancing the iterator.
--
MOS_MIGRATED_REVID=120933039
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=120325869
|
|
|
|
|
|
|
|
| |
Consists of adding @Immutable annotations, adding final modifiers, and changing
the types of fields to immutable types.
--
MOS_MIGRATED_REVID=120221067
|
|
|
|
|
|
|
|
|
|
| |
...by only starting the new line, if needed and not already if the last
usable character of the line is written.
--
Change-Id: I86519389fe64fe74ba9045be07483ce5f55d5e9a
Reviewed-on: https://bazel-review.googlesource.com/#/c/3384
MOS_MIGRATED_REVID=119949042
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When generating output targeted for a specific terminal width, it is
important to know the current position in order to appropriately shorten
the message still to be added to the current line. So make it possible to
add this functionality to the terminal writer itself, to avoid too many
lengthy position computations at call site.
--
Change-Id: I03400b9544c32567fc6ea7ab35e742c4ccd7b610
Reviewed-on: https://bazel-review.googlesource.com/#/c/3373
MOS_MIGRATED_REVID=119946982
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=119813568
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=119053259
|
|
|
|
|
|
|
|
|
| |
Windows.
Progress towards #930.
--
MOS_MIGRATED_REVID=117799006
|
|
|
|
|
|
|
|
|
|
|
| |
This was a leftover from the global cleanup change to replace
the usages of static final fields on Guava's CharMatcher with
their equivalent static factory methods.
--
Change-Id: I9ee765a2545eabdd01b00e4ea924801b7a88898a
Reviewed-on: https://bazel-review.googlesource.com/#/c/3060
MOS_MIGRATED_REVID=117160725
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=116569594
|
|
|
|
|
|
|
| |
save memory. This is a partial rollback of f745e99db7632cfb2145b6926f961e85f9084bc5, but that part of the change was unnecessary -- we are already ensuring that an element isn't added twice in GroupedListHelper#add by adding it to elements.
--
MOS_MIGRATED_REVID=116560479
|
|
|
|
|
|
|
|
|
| |
...so that it can be used by other event handlers as well.
--
Change-Id: Ic7b37f9041aab63611d05bdb5f18e72bb0c8f1d9
Reviewed-on: https://bazel-review.googlesource.com/#/c/3040
MOS_MIGRATED_REVID=116012068
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to update Bazel's progress bar, the old one has to be removed
first; this requires knowledge about the number of lines it currently
uses. For small terminals, this requires us to take line breaks into
account. While this normally works well, there are situations where our
believe about the terminal width is smaller that the actual width of the
terminal, causing the deletion of too many lines. This wrapper class provides
a solution for this case by explicitly breaking lines at the given width.
--
Change-Id: I9d33e389730568ab8c15ee082594de9b35abb71c
Reviewed-on: https://bazel-review.googlesource.com/#/c/3023
MOS_MIGRATED_REVID=115827354
|
|
|
|
|
|
|
|
|
|
|
|
| |
Providing only access to this interface rather than handing
out a full AnsiTerminal allows a more controlled access. In
particular, it will be easier to track the state the terminal
will end up in.
--
Change-Id: Ic47b14a045ece2a84113698632a61daf7948c3b4
Reviewed-on: https://bazel-review.googlesource.com/#/c/3013
MOS_MIGRATED_REVID=115533760
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=112472854
|
|
|
|
|
|
|
| |
Another step towards no C++ compilation outside of Bazel for bootstrapping.
--
MOS_MIGRATED_REVID=112399835
|
|
|
|
|
|
|
|
|
| |
returning a ResolvedTargets set.
This is the second step in a series to allow processing large sets of targets in query target patterns via streaming batches rather than all at once. This should also be a functional no-op.
--
MOS_MIGRATED_REVID=111611858
|
|
|
|
|
|
|
|
|
| |
returning a ResolvedTargets set.
This is the first step in a series to allow processing large sets of targets in query target patterns via streaming batches rather than all at once. This should be a functional no-op.
--
MOS_MIGRATED_REVID=111609309
|
|
|
|
|
|
|
| |
classes in because we thought we would need them, but they ended up not being needed.
--
MOS_MIGRATED_REVID=111534289
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=110709069
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=110155243
|
|
|
|
|
|
|
| |
Reduces garbage.
--
MOS_MIGRATED_REVID=109914243
|
|
|
|
|
|
|
| |
Reduces garbage.
--
MOS_MIGRATED_REVID=109898521
|
|
|
|
|
|
|
|
|
| |
Presize GroupedListHelper sets when initialized from collections. Use
CompactHashSets throughout. Avoid primitive autoboxing in Precondition
statements.
--
MOS_MIGRATED_REVID=109835986
|
|
|
|
|
|
|
|
|
| |
Also, in GroupedList, short-circuit expensive group equality check
with a reference check, saving time and garbage when groups are the
same object.
--
MOS_MIGRATED_REVID=109795332
|