| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
Context implementations are currently empty, just doing the plumbing in this
change. Once this is in we can start passing along the ObjectCodecRegistry, which
will allow runtime codec resolution for classes not known at compile time.
We'll also inevitably add some memoization helpers, allowing us to optimize the
serialization process further.
PiperOrigin-RevId: 185305674
|
|
|
|
|
|
|
|
| |
either a Label or a List<Label>. We can easily enforce this through static type checking, so do it.
This will help with LateBoundDefault serialization, since we don't have to serialize an arbitrary object.
PiperOrigin-RevId: 184347100
|
|
|
|
|
|
| |
Generalizes @AutoCodec.Constructor to @AutoCodec.Instantiator.
PiperOrigin-RevId: 183702768
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 182271042
|
|
|
|
|
|
|
|
|
| |
- Info now has one protected constructor. (Would've preferred the builder pattern, but inheritance makes it much more verbose.)
- Direct SkylarkInfo subclass access is replaced by factory methods and an isCompact() accessor.
- Added/simplified tests
RELNOTES: None
PiperOrigin-RevId: 181616757
|
|
|
|
|
|
|
|
| |
This is a rollforward -- the previous attempt was rolled back due to incorrectly adding test sources.
In addition, the newly checked in tests do not work on Windows, and are thus disabled on the Windows platform. I suspect this is due to a bug in the compile-testing library.
RELNOTES: None.
PiperOrigin-RevId: 181482589
|
|
|
|
|
|
| |
handled separately).
PiperOrigin-RevId: 180974083
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
causes github #4375 and #4373
*** Original change description ***
Use an annotation preprocessor to validate SkylarkConfigurationField.
RELNOTES: None.
PiperOrigin-RevId: 180535458
|
|
|
|
| |
PiperOrigin-RevId: 180202221
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 179845261
|
|
|
|
| |
PiperOrigin-RevId: 179785531
|
|
|
|
|
|
| |
make cmdline and vfs depend on serialization. This allows a class to have a pointer to its codec, which simplifies automatic recursive composite codecs.
PiperOrigin-RevId: 178683500
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 177337384
|
|
|
|
|
|
|
| |
CcToolchainProvider. Toolchain information must be removed from
CppConfiguration to allow the c++ rules to use hermetic platforms.
PiperOrigin-RevId: 177163880
|
|
|
|
|
|
|
|
|
|
| |
Add CompactSkylarkInfo, which stores its values as an array instead of
a map. The space savings will probably not be dramatic because
providers usually have a limited amount of keys. But, there are a lot
of them!
Change-Id: Idd452a5e3982f773b1c5202c73f3d7031ec022c6
PiperOrigin-RevId: 176995376
|
|
|
|
|
|
|
|
| |
Blaze had its own class to avoid GC from varargs array creation for the precondition happy path. Guava now (mostly) implements these, making it unnecessary to maintain our own.
This change was almost entirely automated by search-and-replace. A few BUILD files needed fixing up since I removed an export of preconditions from lib:util, which was all done by add_deps. There was one incorrect usage of Preconditions that was caught by error prone (which checks Guava's version of Preconditions) that I had to change manually.
PiperOrigin-RevId: 175033526
|
|
|
|
|
| |
RELNOTES: Late-bound attributes are exposed to skylark. This is a new API (`configuration_field()`) to depend on certain configuration-defined targets from skylark rules.
PiperOrigin-RevId: 174534104
|
|
|
|
| |
PiperOrigin-RevId: 173618971
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AppleConfiguration.Loader.
This is a roll-forward of https://github.com/bazelbuild/bazel/commit/f9a379157d1e992390c5b6f0b75ef853e0870689, which was rolled back in https://github.com/bazelbuild/bazel/commit/0446714686119dd97f8d1f99290f98db91a65e44.
Fixes #3424 (again!)
RELNOTES[INC]: Selecting on "xcode_version" and
"{ios,tvos,macos,watchos}_sdk_version" is not supported anymore. What was config_setting(values={"$FOO_version": $VALUE}) is now config_setting(flag_values={"@bazel_tools//tools/osx:$FOO_versi...
PiperOrigin-RevId: 173505814
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks a single, but very important target :(
*** Original change description ***
Remove OS/Xcode versions (and thus package loading) from AppleConfiguration.Loader.
Fixes #3424.
RELNOTES[INC]: Selecting on "xcode_version" and
"{ios,tvos,macos,watchos}_sdk_version" is not supported anymore. What was config_setting(values={"$FOO_version": $VALUE}) is now config_setting(flag_values={"@bazel_tools//tools/osx:$FOO_version_flag": $VALUE}).
PiperOrigin-RevId: 173085962
|
|
|
|
|
|
|
|
|
|
|
| |
AppleConfiguration.Loader.
Fixes #3424.
RELNOTES[INC]: Selecting on "xcode_version" and
"{ios,tvos,macos,watchos}_sdk_version" is not supported anymore. What was config_setting(values={"$FOO_version": $VALUE}) is now config_setting(flag_values={"@bazel_tools//tools/osx:$FOO_version_flag": $VALUE}).
PiperOrigin-RevId: 172714477
|
|
|
|
|
|
|
|
|
|
| |
ctx.fragments.apple .
Progress towards #3424.
RELNOTES[INC]: the target_apple_env and apple_host_system_env methods on ctx.fragments.apple are not supported anymore. The same information is accessible through apple_common.target_apple_env and apple_common.apple_host_system_env . They need the Xcode configuration as an argument, which can be obtained by declaring an implicit dependency on it (i.e. attr.label(default=Label("@bazel_tools//tools/osx:current_xcode_config")) and then calling e.g. apple_common.apple_host_system_env(ctx.attr._xcode_config[apple_common.XcodeVersionConfig]).
PiperOrigin-RevId: 172430475
|
|
|
|
|
|
|
|
|
| |
opposed to only through ctx.fragments.apple)
Progress towards #3424.
RELNOTES: None.
PiperOrigin-RevId: 172299240
|
|
|
|
|
|
|
| |
instead of the one computed based on xcode_config.
RELNOTES: None.
PiperOrigin-RevId: 172064337
|
|
|
|
|
|
|
|
| |
Progress towards #3424.
RELNOTES[INC]: ctx.fragments.apple.sdk_version_for_platform is not supported anymore. The same information is accessible through the target @bazel_tools//tools/osx:current_xcode_config: point an implicit attribute to it (i.e. attr.label(default=Label("@bazel_tools//tools/osx:current_xcode_config")) then use ctx.attr._xcode_config[apple_common].XcodeVersionConfig].sdk_version_for_platform .
PiperOrigin-RevId: 171652446
|
|
|
|
|
|
|
|
| |
Progress towards #3424.
RELNOTES[INC]: ctx.fragments.apple.minimum_os_for_platform_type is not supported anymore. The same information is accessible through the target @bazel_tools//tools/osx:current_xcode_config: point an implicit attribute to it (i.e. attr.label(default=Label("@bazel_tools//tools/osx:current_xcode_config")) then use ctx.attr._xcode_config[apple_common].XcodeVersionConfig].minimum_os_for_platform_type .
PiperOrigin-RevId: 171648040
|
|
|
|
|
|
|
|
|
|
|
| |
rules only add the minimum version of the OS to the output directory name if the configuration is behind an AppleBinaryTransition, or if a minimum_os flag (such as --ios_minimum_os) is specified on the command line.
This is necessary so that the only time the minimum OS version affects the output directory name is when it's explicitly specified and therefore is accessible without looking at the xcode_config rule.
Progress towards #3424.
RELNOTES: None.
PiperOrigin-RevId: 171641295
|
|
|
|
|
|
|
|
|
|
| |
These are now accessible using ctx.attr._xcode_config[apple_common.XcodeVersionConfig].
Progress towards #3424.
RELNOTES[INC]: ctx.fragments.apple.{xcode_version,ios_minimum_os} is not supported anymore. The same information is accessible through the target @bazel_tools//tools/osx:current_xcode_config: point an implicit attribute to it (i.e. attr.label(default=Label("@bazel_tools//tools/osx:current_xcode_config")) then use ctx.attr._xcode_config[apple_common].XcodeVersionConfig].
PiperOrigin-RevId: 171517550
|
|
|
|
|
|
|
|
| |
Opens the door to swapping in different implementations without needing to
touch a ton of code.
RELNOTES: None
PiperOrigin-RevId: 171412555
|
|
|
|
| |
PiperOrigin-RevId: 171017483
|
|
|
|
|
|
|
| |
and apple_static_library no longer propagate ObjcProvider.
RELNOTES: None.
PiperOrigin-RevId: 169690934
|
|
|
|
| |
PiperOrigin-RevId: 169428146
|
|
|
|
|
|
|
| |
This change misses the corner case of builds which are entirely 32-bit (as opposed to mixed 32&64 bit) due to no legitimate place to report the error of such a build; execution will fail for such builds at the action level.
RELNOTES: None.
PiperOrigin-RevId: 169397354
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, there is no way to enforce that LateBoundDefaults only access
the fragments that they declare. This means that LateBoundDefaults can
fail to declare fragments at all, or declare the wrong ones, and still
have no troubles.
But when trimming, these fragments must be declared, because otherwise
they will not necessarily be available.
This change refactors LateBoundDefault to declare a single fragment type,
not a set. All existing LateBoundDefaults use sets with a single element
or no elements at all for their set of fragment classes, so this does not
limit anything being done currently.
To account for LateBoundDefaults which do not use configuration at all,
typically those which only want to access the configured attribute map,
it is possible for Void to be the fragment class which is requested.
To account for LateBoundDefaults which need to access methods of the
BuildConfiguration instance itself, it is possible for BuildConfiguration
to be the fragment class which is requested; however, this is unsafe, so
it is only a temporary state until a way to do this without also giving
access to all of the fragments can be added.
Drive-by refactoring: LateBoundDefaults' values are now typed. All actual
production LateBoundDefaults were Label or List<Label> typed, through the
LateBoundLabel and LateBoundLabelList subclasses. These subclasses have
been removed, and LateBoundDefault has two type parameters, one for the
type of its input, and one for the type of its output.
RELNOTES: None.
PiperOrigin-RevId: 169242278
|
|
|
|
|
|
|
|
|
|
|
| |
Before this cl each linking and compilation action would contain a full copy of
all build variables. However, some build variables can be reused, for the
memory consumption benefit. With this cl, we contruct a Variables instance in
the CcToolchain, and make it a parent of all per-linking and per-compilation
variables.
RELNOTES: None.
PiperOrigin-RevId: 169233756
|
|
|
|
|
|
| |
This is a trivial change with a large file footprint.
PiperOrigin-RevId: 169169864
|
|
|
|
|
|
|
| |
getPotentialSplitTransitions() from FragmentOptions.
RELNOTES: None.
PiperOrigin-RevId: 168218102
|
|
|
|
|
|
|
|
|
| |
Split collect, concurrent, vfs, windows into package-level BUILD files.
Move clock classes out of "util", into their own Java package.
Move CompactHashSet into its own Java package to break a dependency cycle.
Give nestedset and inmemoryfs their own package-level BUILD files.
PiperOrigin-RevId: 167702127
|
|
|
|
|
|
|
|
|
|
| |
- require_defined_versions is deprecated and a no-op. A version must match existing defined versions if any exist
- default label must be present in versions labels if any are defined
- default label may not exist if no versions are defined
- when --xcode_version is specified on the command line, it must match a defined version if any are defined. If none are defined, this flag is a no-op
RELNOTES: None.
PiperOrigin-RevId: 167616628
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 167143657
|
|
|
|
|
|
|
| |
also, AppleConfiguration no longer throws NPE with invalid cpu.
RELNOTES: None.
PiperOrigin-RevId: 167013760
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 166888780
|
|
|
|
|
|
|
|
|
|
|
| |
rule in use and expose data in XcodeConfigProvider to Skylark.
This gives us a way to discover Xcode version information from Skylark in a way other than by AppleConfiguration, which in turn makes it possible to remove said data (and thus dependencies on BUILD files) from AppleConfiguration.
Work towards https://github.com/bazelbuild/bazel/issues/3424 .
RELNOTES: None.
PiperOrigin-RevId: 166311454
|
|
|
|
|
|
|
|
| |
Prerequisite to implementing shape-declaration and shape-sharing
for declared providers, and cleaning up NativeInfo interface.
RELNOTES: None.
PiperOrigin-RevId: 166057070
|
|
|
|
| |
PiperOrigin-RevId: 165622047
|
|
|
|
|
|
| |
as a pilot. Currently not hooked up to anything, but will be shortly.
PiperOrigin-RevId: 165583517
|
|
|
|
|
|
|
| |
This is part of splitting up the build-base library into separate libraries for
analysis, exec, and rules.
PiperOrigin-RevId: 164446955
|
|
|
|
|
|
|
|
| |
Follows
https://docs.google.com/document/d/1aAIVWvHPERDz2cv_PCFGwr8dvh5FcAkENFoRsNS4clk/.
RELNOTES: None.
PiperOrigin-RevId: 163728291
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 163114020
|
|
|
|
|
|
|
|
| |
Documentation was not being generated for the Apple "platform" module because it collided with a configuration fragment of the same name.
This should be a harmless change because the underlying module name should not be used by anyone; the name isn't exported as a top-level type and would only be seen in debug output and in the string returned by the type() function.
PiperOrigin-RevId: 163079704
|