| Commit message (Collapse) | Author | Age |
... | |
|
|
|
| |
PiperOrigin-RevId: 190277450
|
|
|
|
| |
PiperOrigin-RevId: 190258675
|
|
|
|
|
|
|
|
|
| |
'rbuildfiles': this query function takes a comma-separated list of strings, which it interprets as paths.
Also fix an issue with the documented semantics of 'rbuildfiles': it only returns BUILD file targets, not bzl file targets.
RELNOTES: None
PiperOrigin-RevId: 190257359
|
|
|
|
| |
PiperOrigin-RevId: 190256860
|
|
|
|
|
|
|
|
| |
part of primary codepath somewhere around https://github.com/bazelbuild/bazel/commit/bde43ec8a96a62b8fbf67ad60d5154cf121647d9 (and killed entirely in unknown commit.
Force copying of a ByteString read from CodedInputStream in NestedSetCodec and persisted, since otherwise we might hang onto the entire buffer indefinitely.
PiperOrigin-RevId: 190256337
|
|
|
|
|
|
| |
If inlining is off, fixes a bug where null return values resulted in an error.
PiperOrigin-RevId: 190255818
|
|
|
|
|
| |
RELNOTES: none
PiperOrigin-RevId: 190253911
|
|
|
|
|
|
|
|
|
|
|
| |
The number of *unique* Class instances that will be used as keys in these caches over the lifetime of a Bazel server is small-ish, and bounded by the size of the set of unique Classes used as the Java runtime representation of Skylark objects.
The bookkeeping done by LocalCache when the cache's size is bounded is therefore pure CPU overhead.
While we're here, just use the default capacity (16); a smaller initial capacity seems silly considering these caches are live for the duration of the Bazel server.
RELNOTES: None
PiperOrigin-RevId: 190238099
|
|
|
|
|
|
|
|
|
|
|
| |
BazelPackageBuilderHelperForTesting#sanityCheckBazelPackageLoader.
I should have written this comment more precisely. I am sorry I didn't. I vaguely recall some issues where the PackageFactory usage would do some scan of all the skylark classes and do some mutation to global state (this wouldn't normally be a problem since for blaze/bazel, there's one PackageFactory instance created per blaze/bazel server, and it's created at the beginning of the server).
Nevertheless, I do not see any problems now.
RELNOTES: None
PiperOrigin-RevId: 190229913
|
|
|
|
| |
PiperOrigin-RevId: 190224987
|
|
|
|
|
|
|
|
|
| |
work done by BazelPackageBuilderHelperForTesting#sanityCheckBazelPackageLoader.
We fix this flakiness by _not_ having RepositoryDelegatorFunction unconditionally 'fetch' local repos. We then have to make a change to BazelPackageLoader test to reinstate these mutations, since it was only working before due to the unconditional filesystem mutations done here :p
RELNOTES: None
PiperOrigin-RevId: 190222830
|
|
|
|
|
|
|
| |
third_party/gtest can go away after this.
RELNOTES: None.
PiperOrigin-RevId: 190221581
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove Optional<> where it's not needed. It's nice for return values, but IMHO it was overused in this code (e.g. Optional<List<X>> is an anti-pattern, as the list itself can already signal that it is empty).
- Use Bazel's own Path class when dealing with paths, not String or java.io.File.
- Move LinuxSandboxUtil into the "sandbox" package.
- Remove dead code and unused fields.
- Migrate deprecated VFS method calls to their replacements.
- Fix a bug in ExecutionStatistics where a FileInputStream was not closed.
Closes #4868.
PiperOrigin-RevId: 190217476
|
|
|
|
|
|
|
|
|
|
| |
- fix negatives + prefixes
- fix boundary cases (min int value)
The only remaining relevant differences from Python are that we disallow int() with zero args, we don't allow whitespace in strings, and we take Python 3's view on prohibiting leading 0s when base is 0.
RELNOTES: None
PiperOrigin-RevId: 190216646
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Closes #4781.
Fix https://github.com/bazelbuild/bazel/issues/4149
RELNOTES:
Users can now pass --experimental_shortened_obj_file_path=true to have a shorter object file path, the object file paths (and all other related paths) will be constructed as following:
If there's no two or more source files with the same base name:
<bazel-bin>/<target_package_path>/_objs/<target_name>/<source_base_name>.<extension>
otherwise:
<bazel-bin>/<target_package_path>/_objs/<target_name>/N/<source_base_name>.<extension>
N = the file?s order among the source files with the same basename, starts from 0.
Examples:
1. Output names for ["lib1/foo.cc", "lib2/bar.cc"] are ["foo", "bar"]
2. Output names for ["foo.cc", "bar.cc", "foo.cpp", "lib/foo.cc"] are
["0/foo", "bar", "1/foo", "2/foo"]
The default value of --experimental_shortened_obj_file_path option is false, but we plan to flip it to true and eventually remove this option.
You shouldn't depend on the format of generated object file path, but if you do and this change breaks you, please use --experimental_shortened_obj_file_path=false to work around it.
PiperOrigin-RevId: 190214375
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 190207183
|
|
|
|
|
|
|
| |
DirectTargetProvider works with WalkableGraph directly. If it fails to find target, then last try to use delegate TargetProvider which supposed to be PackageManager from SkyframeExecutor.
RELNOTES:none
PiperOrigin-RevId: 190204106
|
|
|
|
| |
PiperOrigin-RevId: 190200144
|
|
|
|
|
|
|
| |
vardef().
RELNOTES: None.
PiperOrigin-RevId: 190196933
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 190196203
|
|
|
|
|
|
|
|
|
|
| |
The product name was previously propagated to all sandboxed spawn runners
unconditionally, even when the majority did not need it. Also, these
same spawn runners had obsolete constructors that were not used at all or
were only used in tests. Remove both for simplicity.
RELNOTES: None.
PiperOrigin-RevId: 190195305
|
|
|
|
|
|
|
| |
The only user of it was Android resource trimming, which just got deleted.
RELNOTES: None.
PiperOrigin-RevId: 190193627
|
|
|
|
|
|
|
| |
This is the convention, and tools that only read manifests may optimize
assuming that the manifest is at the beginning.
PiperOrigin-RevId: 190167351
|
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 190154101
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This only modifies the DarwinSandboxedSpawnRunner for now and leaves behind
the Linux version.
The latter is a bit more complex to do because of the need to deal with tmpfs
and bind-mount interactions. We expect sandboxfs to have the biggest impact
on macOS anyway, not Linux, so this can wait until this has proven that it
deserves staying for the long-term.
Tested: Manually ran a self-build of Bazel on a version of Bazel built with
these changes and the build passed.
RELNOTES: None.
PiperOrigin-RevId: 190133429
|
|
|
|
|
|
|
| |
no issues of Skyframe-native in production.
RELNOTES: None
PiperOrigin-RevId: 190129810
|
|
|
|
|
|
|
| |
@SkylarkSignature
RELNOTES: None.
PiperOrigin-RevId: 190129404
|
|
|
|
|
|
|
|
|
| |
contains before invoking the heavier add. This reduces cpu-work and contention.
When blaze is invoked on a large fileset and the build is already up-to-date,
this makes things about 1.9s (33%) faster.
PiperOrigin-RevId: 190125803
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AndroidManifest represents a new class to handle decoupled Android manifest
processing (as opposed to the existing ApplicationManifest, which handles
manifests, resources, and assets all together). This new manifest processing
pipeline will be used by the Skylark Android Data API.
AndroidManifest wraps the manifest and related information, so we don't just
pass around untyped Artifacts all the time. Additionally, the
StampedAndroidManifest subclass explicitly states that a manifest has been
stamped with the correct package (previous confusion between passing around the
stamped and unstamped manifests has led to bugs in Blaze).
Unlike the old manifest processing pipeline, AndroidManifest:
- Does not support the old legacy manifest merger
- Is decoupled from resource and asset processing
- Does incremental merges
- Always has the package defined at analysis time
- Can be run without an input manifest (for rules which don't specify their own
manifest but either inherit manifests that should be merged or to provide a
dummy manifest for tooling)
RELNOTES: none
PiperOrigin-RevId: 190119992
|
|
|
|
|
|
| |
Skyframe, rather than the potentially mutable builder, and @AutoCodec SkylarkAttr.Descriptor.
PiperOrigin-RevId: 190118565
|
|
|
|
|
|
| |
from the provided defaults in Options classes. These are used to create BuildOptionsDiffForReconstruction, which lets us store only the diffs in our BuildConfigurationValue.Keys.
PiperOrigin-RevId: 190117455
|
|
|
|
|
|
|
| |
at end of basename.
RELNOTES: None
PiperOrigin-RevId: 190115344
|
|
|
|
|
|
|
|
|
| |
This is the only difference in action implementation required for the new Skylark Android Data API design. Even if rules have resources or assets, after this API is adopted, they will no longer have to specify a primary manifest. Instead, a dummy manifest will be generated (either to merge with dependency manifests, or for use by IDEs if there are no dependency manifests).
Support this in the ManifestMergerAction by supporting not having a --manifest value passed.
RELNOTES: None
PiperOrigin-RevId: 190095623
|
|
|
|
|
|
| |
This avoids redundancy in memory when multiple NestedSets share a member
PiperOrigin-RevId: 190085907
|
|
|
|
|
|
| |
Fixes bazelbuild/bazel#4899
PiperOrigin-RevId: 190083263
|
|
|
|
|
|
|
|
|
|
|
| |
specifically get a semantics object
This is slightly redundant with useEnvironment, yes (as one can easily obtain the semantics object with Environment), but we intend on restricting useEnvironment so that structField=true methods cannot specify useEnvironment, but *can* specify useSkylarkSemantics.
In general, we can also ween off non structField methods to use useSkylarkSemantics instead of useEnvironment in cases where this is feasible.
RELNOTES: None.
PiperOrigin-RevId: 190082547
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 190079798
|
|
|
|
|
|
|
|
|
| |
This provider is the first part of the Skylark Android Data API.
This provider is not yet used by the native android_* rules, and is subject to change if needed to implement the rest of the Skylark Android data API.
RELNOTES: none
PiperOrigin-RevId: 190078860
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Set the usePicForLtoBackend bit on the link action builder when we create
static link actions. Before https://github.com/bazelbuild/bazel/commit/8c5e290dfab3cab378a9ca107ecdd6267403cd4b this wasn't required for static
library link actions, as the LTO backend actions weren't created until the
dependent binary's link action, which set this flag for the binary static link.
However, with that change, we now create shared non-LTO backend actions early,
when creating the library link action, for use later when we create the binary
link action. So that flag needs to be set properly on the static library link
action to get the -fPIC flag set as needed on the shared non-LTO backends.
RELNOTES: None
PiperOrigin-RevId: 190074918
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 190073818
|
|
|
|
|
|
|
| |
@SkylarkSignature
RELNOTES: None.
PiperOrigin-RevId: 190073508
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 190071755
|
|
|
|
|
|
|
| |
Param.allowedTypes is used.
RELNOTES: None.
PiperOrigin-RevId: 190070309
|
|
|
|
| |
PiperOrigin-RevId: 190069001
|
|
|
|
|
|
|
|
| |
This class is about to get bigger in a major way, so let's put it in its own class.
This also moves the tests to their own test class, since that class is about to get a lot bigger too.
RELNOTES: None.
PiperOrigin-RevId: 190065717
|
|
|
|
|
|
|
| |
Bazel stopped passing it in https://github.com/bazelbuild/bazel/commit/1a6ca6f47aef36d56b5cb2f9da114af75dde583d.
RELNOTES: None
PiperOrigin-RevId: 190064697
|
|
|
|
|
|
|
| |
This is helpful for testing the behavior of rules underneath the flag setter without going around Bazel internals.
RELNOTES: None.
PiperOrigin-RevId: 190064449
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 190062172
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The file is left as an empty file, so make upgrades easier. Site administrators can add their own content as needed, still.
Fixes #4850.
Closes #4857.
TESTED: Created a Debian VM and tested installing the new version as an upgrade and as the first Bazel, observed that the global bazelrc had the expected content.
RELNOTES: Remove the default content of the global bazelrc.
Change-Id: I5f285f0c59d18179005ffe5bfc35931299635bbb
PiperOrigin-RevId: 190060838
|
|
|
|
|
|
|
|
|
|
| |
Under Windows, the default permissions used when writing to the local disk cache prevent the files from being overwritten.
This CR adds a check: if the target file already exists, return early. This is a performance improvement and will fix the error described above as existing files will no longer need to be overwritten. Similar features have been implemented on the remote gRPC cache implementations, see bazel issue #4789.
Closes #4886.
PiperOrigin-RevId: 190060233
|