| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
This doesn't really expose new information, because one can iterate over the existing getTargets() and recreate the map.
Moreover, the map is immutable, so there's no risk in returning it to the user.
RELNOTES: None
PiperOrigin-RevId: 156349797
|
|
|
|
|
|
|
|
|
|
|
| |
In multi-architecture builds, a target might be built several times,
for the different architectures. Make the target completion events for
those distinguishable by indicating the architecture for which the target
was built. Also add the needed event for the expansion of a target to
target-configuration pairs.
Change-Id: I95ef2c81166077163dd686db4671f672160efe1d
PiperOrigin-RevId: 155491076
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Original CL was rolled backed incorrectly. See post-submit discussion on http://https://github.com/bazelbuild/bazel/commit/7beadb7277453efec7e12b925005e7f0e003b592.
*** Original change description ***
Automated g4 rollback of commit 38b835097f9ae9a6062172b8a33ec2e2d1edde20.
*** Reason for rollback ***
Breaking Bazel build on linux, see http://ci.bazel.io/job/bazel-tests/733/
Repro: bazel build //src/test/java/com/google/devtools/build/lib:packages_test
Found by bisecting.
*** Original change description ***
Only allocate some formerly frequently allocated PathFragment objects once.
This reduces both gc churn and retained memory usage.
RELNOTES: None
PiperOrigin-RevId: 154839279
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaking Bazel build on linux, see http://ci.bazel.io/job/bazel-tests/733/
Repro: bazel build //src/test/java/com/google/devtools/build/lib:packages_test
Found by bisecting.
*** Original change description ***
Only allocate some formerly frequently allocated PathFragment objects once.
This reduces both gc churn and retained memory usage.
RELNOTES: None
PiperOrigin-RevId: 154821457
|
|
|
|
|
|
| |
This reduces both gc churn and retained memory usage.
PiperOrigin-RevId: 154718782
|
|
|
|
|
|
|
|
|
| |
These are two different concepts. Do not remove category overload compatibility in this CL, to keep this change limited to converting the current uses of category.
With some flyby formatting fixes on affected OptionsBases.
RELNOTES: None.
PiperOrigin-RevId: 153390002
|
|
|
|
|
|
|
|
|
| |
latter swallows all filesystem failures, and does not disambiguate missing files from filesystem problems.
The syscall cache now tracks IOExceptions if they are present, just as it does with readdir().
RELNOTES: None
PiperOrigin-RevId: 153185433
|
|
|
|
|
|
|
|
|
|
|
|
| |
'create' method.
This paves the way for changing PathFragment to e.g. an abstract class with multiple subclasses. This way we can split out the windows-specific stuff into one of these concrete classes, making the code more readable and also saving memory (since the shallow heap size of the NonWindowsPathFragment subclass will hopefully be smaller than that of the current PathFragment).
This also lets us pursue gc churn optimizations. We can now do interning in PathFragment#create and can also get rid of unnecessary intermediate PathFragment allocations.
RELNOTES: None
PiperOrigin-RevId: 152145768
|
|
|
|
|
|
|
|
|
|
|
| |
Change the BuildEvent interface to accept a generic class of converters.
In this way, we won't have to change it again in the future, once more
converters are needed. In fact, a new converter is needed right now (will
be added in a follow-up patch) to allow build events to know the name of
named artifact groups already reported in the stream.
Change-Id: Ibb32ea5fff361e21bcf2d34818d8351a1da7a2e3
PiperOrigin-RevId: 152131870
|
|
|
|
|
|
|
|
|
| |
This is useful for IDEs and other tools utilizing command-line aspects
for reflection over build graph.
RELNOTES: None.
PiperOrigin-RevId: 152038248
|
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 151729291
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The error message logged during query (and build) when a package has a
broken Skylark load statement was not specific. Previously, it said
"package contains errors:" and then the package name.
Also, this error message was not emitted when using SkyQueryEnvironment
and evaluating a query containing a "TargetsBelowDirectory" pattern
(such as //foo/...) when a package below the specified directory had
such an error.
The approach taken by this CL is to include any package loading error
message in the SkyValue produced by
CollectPackagesUnderDirectoryFunction, and report them during
evaluation of a TargetsBelowDirectory pattern.
RELNOTES: Evaluation of commands on TargetsBelowDirectory patterns
(e.g. //foo/...) matching packages that fail to load now report more
detailed error messages in keep_going mode.
--
PiperOrigin-RevId: 149802362
MOS_MIGRATED_REVID=149802362
|
|
|
|
|
|
| |
--
PiperOrigin-RevId: 149652245
MOS_MIGRATED_REVID=149652245
|
|
|
|
|
|
|
|
| |
...now that the ExtendedEventHandler can serve the same purpose.
--
PiperOrigin-RevId: 148640618
MOS_MIGRATED_REVID=148640618
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With more specific information to be reported by Skyfunctions, e.g.,
to inform the build-event protocol on missing files, the EventHandler
interface is no longer enough. Therefore, provide an enriched context
for reporting events.
--
Change-Id: I2d06166fe4d5b9054e24ad8c752fafc039e3f9f8
Reviewed-on: https://cr.bazel.build/8794
PiperOrigin-RevId: 148463437
MOS_MIGRATED_REVID=148463437
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This overrides the traditional has(String name, Type<>T> type)
with has(String name) and removes the type check outright from
isConfigurable.
Ideally we'd remove the old version in this same change. But there
are enough uses of it that that's not a risk-free change and
is safer as followup changes.
--
PiperOrigin-RevId: 147513593
MOS_MIGRATED_REVID=147513593
|
|
|
|
|
|
| |
--
PiperOrigin-RevId: 147018240
MOS_MIGRATED_REVID=147018240
|
|
|
|
|
|
|
|
|
|
| |
Two of the functions are never used, several of the parameter are not
used or can be simplified (require callers to convert from Target ->
Label).
--
PiperOrigin-RevId: 146787380
MOS_MIGRATED_REVID=146787380
|
|
|
|
|
|
|
|
|
|
|
| |
Bazel-created files (like log files of test runs) are internally reported
as Paths. However, this is not always the most useful representation of the
location of that artifact for a consumer of build events. Therefore, support
a mapping of paths to more useful URIs.
--
PiperOrigin-RevId: 144843525
MOS_MIGRATED_REVID=144843525
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, correctly report the expansion of a test
suite even if only requested to build (but not test).
--
Change-Id: Ia25305a4f5ed53118cbb1970a8055d156e8e50be
Reviewed-on: https://cr.bazel.build/7535
PiperOrigin-RevId: 141027655
MOS_MIGRATED_REVID=141027655
|
|
|
|
|
|
|
|
| |
This is in preparation for extracting some common reporting code, and also a
step towards interleaving target pattern eval and config creation.
--
MOS_MIGRATED_REVID=139890205
|
|
|
|
|
|
|
|
|
| |
avoid memory blow-up intra-configured-target analysis, use a semaphore to ensure that CPU-bound work only occurs on #CPU-many threads.
RELNOTES: Use --loading_phase_threads to control the number of threads used during the loading/analysis phase.
--
MOS_MIGRATED_REVID=139477645
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=139209942
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=139127910
|
|
|
|
|
|
|
| |
If the --build_tag_filters option is specified, targets built will be filtered according to their tags (at least one included, none excluded)
--
MOS_MIGRATED_REVID=138856195
|
|
|
|
|
|
|
|
|
|
|
| |
...by making TargetParsingCompleteEvent an instance of BuildEvent. The main
value of this event on the event stream is that it is now know which actual
targets to expect.
--
Change-Id: I50b16f825d742d28e719692489de701d16195efa
Reviewed-on: https://bazel-review.googlesource.com/#/c/6278
MOS_MIGRATED_REVID=135661452
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In toolchains that support parse_headers, this is the desired action. For
other toolchains, this change makes blaze try to build a header-only library
which creates the error that the header only library is not a supported target
kind. Seems like either error message is not useful/actionable.
In theory, it would be better to actually analyze whether a parse_headers is
activated, but that requires refactoring a lot of code that is currently C++
specific.
--
MOS_MIGRATED_REVID=135554761
|
|
|
|
|
|
|
| |
The first legacy glob that a package requires will, if this option is enabled, cause up to that many directories to be eagerly visited by a glob(['**']). The results are thrown away for memory reasons.
--
MOS_MIGRATED_REVID=135148361
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is now enabled by default, and this change removes the code path where
it's disabled.
Remove a few tests that were testing the removed code, and rewrite some others
that still seem useful. We still drop configured targets on configuration
changes, so we use that to check that things are dropped from Skyframe.
--
MOS_MIGRATED_REVID=132226208
|
|
|
|
|
|
|
| |
InterruptedException instead of wrapping as a TargetParsingException.
--
MOS_MIGRATED_REVID=130660310
|
|
|
|
|
|
|
| |
now to forbid it, since Skyframe lookups are interruptible.
--
MOS_MIGRATED_REVID=130429286
|
|
|
|
|
|
|
| |
The only place we now don't handle InterruptedException is in the action graph created after analysis, since I'm not sure that will be around for that much longer.
--
MOS_MIGRATED_REVID=130327770
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
execroot change
This is in prep for making the execution root path for external repositories
../repo_name (instead of external/repo_name). Right now, the getRunfilesPath() returns that path, so that is renamed getExecRoot() (since the runfiles are really just a reflection of the execRoot structure). getSourceRoot() replaces getPathFragment, which has always been a confusing name (it's not clear from the name
what the difference is between it and getPackageFragment()). It returns the relative path to source files for external repositories (external/repo_name).
Also renamed/moved to more sensible class a few static RepositoryName fields.
--
MOS_MIGRATED_REVID=128594419
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The execution root currently uses the basename of the workspace directory for
the workspace name, not the name in the WORKSPACE file. (For example, if our
sources were in /path/to/foo and our WORKSPACE file had workspace(name = "bar"),
our execution root would look like execroot/foo.)
This creates a symlink bar -> foo, so that accessing ../repo_name actually works
for the main repository.
RELNOTES[INC]: The main repository's execution root is under the main
repository's workspace name, not the source directory's basename. This shouldn't
have any effect on most builds, but it's possible it could break someone doing
weird things with paths in actions.
--
MOS_MIGRATED_REVID=128175455
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=125160288
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
repositories
One interesting side effect of how this is implemented is that for external
repositories, bin/ and genfiles/ are combined. External repo output is under
bazel-out/local-fastbuild/repo_name for each repo.
Fixes #1262.
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions.
--
MOS_MIGRATED_REVID=125095799
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=124600066
|
|
|
|
|
|
|
| |
preparation for there not being a unique target configuration.
--
MOS_MIGRATED_REVID=124439969
|
|
|
|
|
|
|
| |
Constants.DEFAULT_PACKAGE_PATH.
--
MOS_MIGRATED_REVID=118666575
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it more with respect to the new parse_headers feature, ideas I have about
configurable attributes etc.
I am trying to keep functional changes to a minimum. Functional changes
that couldn't really be easily avoided:
- Find correct rule for headers through filegroups
- Find correct target to build even if sources are missing. A proper error is
reported in the subsequent loading phase
Also remove SrcTargetUtil as it is no longer used.
--
MOS_MIGRATED_REVID=118589517
|
|
|
|
|
|
|
|
|
| |
FileStateValues for output files can make their way into the Skyframe graph if a source file is symlink to an output file.
Also fix a bug where ExternalFilesHelper#isExternalFileSeen would always return true after returning true once in the past. This meant if an external file ever made its way into the Skyframe graph, we would always do a full graph scan at the beginning of each build (iow, we would always waste some CPU time doing nothing interesting).
--
MOS_MIGRATED_REVID=118190190
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=117452774
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, this would get thrown when referring to the same package
from both the main and default repositories:
java.lang.IllegalArgumentException: Multiple entries with same key: tools/cpp=/home/brian/971-Robot-Code and tools/cpp=/home/brian/971-Robot-Code
at com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:136)
at com.google.common.collect.RegularImmutableMap.checkNoConflictInKeyBucket(RegularImmutableMap.java:98)
at com.google.common.collect.RegularImmutableMap.fromEntryArray(RegularImmutableMap.java:84)
at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:295)
at com.google.devtools.build.lib.buildtool.BuildTool.transformPackageRoots(BuildTool.java:301)
at com.google.devtools.build.lib.buildtool.BuildTool.buildTargets(BuildTool.java:209)
at com.google.devtools.build.lib.buildtool.BuildTool.processRequest(BuildTool.java:334)
at com.google.devtools.build.lib.runtime.commands.TestCommand.doTest(TestCommand.java:119)
at com.google.devtools.build.lib.runtime.commands.TestCommand.exec(TestCommand.java:104)
at com.google.devtools.build.lib.runtime.BlazeCommandDispatcher.exec(BlazeCommandDispatcher.java:371)
at com.google.devtools.build.lib.runtime.BlazeRuntime$3.exec(BlazeRuntime.java:1016)
at com.google.devtools.build.lib.server.RPCService.executeRequest(RPCService.java:65)
at com.google.devtools.build.lib.server.RPCServer.executeRequest(RPCServer.java:434)
at com.google.devtools.build.lib.server.RPCServer.serve(RPCServer.java:229)
at com.google.devtools.build.lib.runtime.BlazeRuntime.serverMain(BlazeRuntime.java:975)
at com.google.devtools.build.lib.runtime.BlazeRuntime.main(BlazeRuntime.java:772)
at com.google.devtools.build.lib.bazel.BazelMain.main(BazelMain.java:55)
And this would get thrown for any packages in the main repository loaded
from other repositories:
java.lang.RuntimeException: Unrecoverable error while evaluating node 'PACKAGE:@//tools/build_rules/go/toolchain' (requested by nodes )
at com.google.devtools.build.skyframe.ParallelEvaluator$Evaluate.run(ParallelEvaluator.java:982)
at com.google.devtools.build.lib.concurrent.AbstractQueueVisitor$WrappedRunnable.run(AbstractQueueVisitor.java:499)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Invalid BUILD file name for package '@//tools/build_rules/go/toolchain': /home/brian/bazel/tools/build_rules/go/toolchain/BUILD
at com.google.devtools.build.lib.packages.Package.finishInit(Package.java:299)
at com.google.devtools.build.lib.packages.Package$Builder.finishBuild(Package.java:1308)
at com.google.devtools.build.lib.skyframe.PackageFunction.compute(PackageFunction.java:501)
at com.google.devtools.build.skyframe.ParallelEvaluator$Evaluate.run(ParallelEvaluator.java:933)
... 4 more
Sponsor's comment: note the abundance of new Label.resolveRepositoryRelative() calls. They are ugly, but it's only making existing ugliness explicit. Yes, we should fix it, especially in the implementation of configurable attributes.
Refs #940
--
Change-Id: I8bd7f7b00bec58a7157507595421bc50c81b404c
Reviewed-on: https://bazel-review.googlesource.com/#/c/2591
MOS_MIGRATED_REVID=117429733
|
|
|
|
|
|
|
|
|
| |
all packages were successful.
Also add Preconditions check to ensure we get the expected Package response when retrieving packages in bulk when we know the set of Package identifiers correspond to valid packages.
--
MOS_MIGRATED_REVID=116580093
|
|
|
|
|
|
|
|
|
| |
instead of special-casing it.
This removes the need to deserialize artifacts in FdoSupport, which in turn removes the need to support artifact deserialization at all, which makes our lives simpler and Thoreauvian programming is good.
--
MOS_MIGRATED_REVID=115660698
|
|
|
|
|
|
|
| |
confusingly it only worked on "blaze query".
--
MOS_MIGRATED_REVID=115338436
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor the CommandEnvironment to no longer create a LoadingPhaseRunner
eagerly. Unfortunately, that means we can't reuse the TargetPatternEvaluator
either. Fortunately, the SkyframeTargetPatternEvaluator is a very lightweight
class, which only contains the offset as state, so we just create a new
instance whenever we need one.
On the plus side, the LoadingPhaseRunner API is now stateless, and the
QueryCommand no longer creates a unnecessary LoadingPhaseRunner instance.
--
MOS_MIGRATED_REVID=114519731
|
|
|
|
|
|
|
| |
tests. Replace it in tests with direct Skyframe graph lookups.
--
MOS_MIGRATED_REVID=114335937
|
|
|
|
|
|
|
|
| |
The TargetParsingCompleteEvent was posting the post-expansion targets, and the
LoadingPhaseCompleteEvent was missing the test-suite targets.
--
MOS_MIGRATED_REVID=114312273
|
|
|
|
|
|
|
|
| |
Also fix a bug in the LoadingPhaseRunner - we weren't printing an error for
failed targets, duh!
--
MOS_MIGRATED_REVID=114310591
|