aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages
Commit message (Collapse)AuthorAge
* @AutoCodec SkylarkComputedDefaultTemplate and dependencies.Gravatar janakr2018-03-23
| | | | PiperOrigin-RevId: 190284631
* Remove a unused parameter in PackageFactory#evaluateBuildFile().Gravatar lberki2018-03-23
| | | | | RELNOTES: None. PiperOrigin-RevId: 190207183
* Victory lap: Remove all code that used to support the three-argument form of ↵Gravatar lberki2018-03-23
| | | | | | | vardef(). RELNOTES: None. PiperOrigin-RevId: 190196933
* Remove RuleClass.Builder#depsCfg().Gravatar lberki2018-03-23
| | | | | | | The only user of it was Android resource trimming, which just got deleted. RELNOTES: None. PiperOrigin-RevId: 190193627
* Use an immutable Attribute factory in objects that are persisted to ↵Gravatar janakr2018-03-22
| | | | | | Skyframe, rather than the potentially mutable builder, and @AutoCodec SkylarkAttr.Descriptor. PiperOrigin-RevId: 190118565
* Remove the --incompatible_disallow_uncalled_set_constructor flagGravatar vladmos2018-03-22
| | | | | | | | RELNOTES[INC]: The --incompatible_disallow_uncalled_set_constructor flag is no longer available, the `set` constructor` is completely removed from Skylark. Use `depset` instead. PiperOrigin-RevId: 190053331
* Remove the flag --incompatible_show_all_print_messagesGravatar vladmos2018-03-22
| | | | | | | | RELNOTES[INC]: The flag --incompatible_show_all_print_messages is removed. Messages generated by `print` statements from any package will be displayed as DEBUG messages. PiperOrigin-RevId: 190043451
* Store RuleClassType in RuleClass. Shouldn't use much more memory, and allows ↵Gravatar janakr2018-03-21
| | | | | | serialization to preserve the type when reconstituting the RuleClass. PiperOrigin-RevId: 190015323
* Precompute Attribute#hashCode to remove gc churn from the Object[] ↵Gravatar nharmata2018-03-21
| | | | | | | | | allocation done by Attribute#hashCode. Attribute#hashCode is called a lot by the visitation done by e.g. Rule#getTransition. RELNOTES: None PiperOrigin-RevId: 189947421
* Remove no-op flag 'incompatible_load_argument_is_label'.Gravatar laurentlb2018-03-21
| | | | | | | No relnotes, because deletion was already announced. RELNOTES: None. PiperOrigin-RevId: 189934041
* Add ability to shallow-freeze individual objectsGravatar brandjon2018-03-20
| | | | | | | | | Clarify that the IMMUTABLE Mutability should only be used for deeply immutable things, not tuples. Created a new SHALLOW_IMMUTABLE Mutability for them. Note that the new shallow-freezing functionality marks things as deeply IMMUTABLE without traversing its contents. I.e., it lies, and it is up to the caller to ensure this doesn't cause problems. RELNOTES: NONE PiperOrigin-RevId: 189767422
* Add more documentation for rule.outputsGravatar brandjon2018-03-20
| | | | | | | | | We want to simplify/remove this API, but let's document it in the meantime. Also fix harmless bug that annoyed me. It used rawTemplate instead of formatStr when there are no placeholders. This would theoretically fail to properly escape % symbols, except that the code path luckily short-circuits later on if there are no placeholders. RELNOTES: PiperOrigin-RevId: 189760809
* Make "legacy globber" threads daemon.Gravatar carmi2018-03-19
| | | | | | | This allows an executable that uses PackageFactory (e.g., through PackageLoader) to exit immediately once it's done without waiting for these threads to finish. RELNOTES: None PiperOrigin-RevId: 189634305
* Remove unnecessary @VisibleForTestingGravatar michajlo2018-03-15
| | | | | | I imagine it was used at some point, can't find any usages now. PiperOrigin-RevId: 189226615
* Allow BazelPackageLoader to load external repositories.Gravatar carmi2018-03-13
| | | | | | | | | Also, disallow BazelPackageLoader from fetching missing external repos. Integration tests for BazelPackageLoader wrt external repos will be left for a follow-up CL. RELNOTES: None. PiperOrigin-RevId: 188967694
* Integrate memoization into standard serialization. This involves a number of ↵Gravatar janakr2018-03-13
| | | | | | | | | | | | | | | | large changes: 1. SerializationContext and DeserializationContext become the owners of the Memoizer if requested. They produce new versions of themselves on demand that are memoization-aware. Because of intricacies of Skylark that I do not fully understand, we inject a Mutability object when starting memoization, and so to be conservative, that injection starts up a new memoization frame, nested if we were already memoizing, just like before. It would be nice to decouple this injection from memoization in the future. 2. MemoizingCodec is deleted, but really ObjectCodec becomes MemoizingCodec, so it lives on. BaseCodec is deleted since it now has only one implementation. 3. The simplified model of registering MemoizingCodecs is adopted for ObjectCodecs: all codecs are registered based on their #getEncodedClass and #additionalEncodedSubclasses. This also allows us to register codecs that are defined using tricky parameter types, since we're no longer trying to reflectively examine them. This required a clean-up of such codecs, and the addition of ArrayListCodec to stop NullableListCodec from making lists unmodifiable when they shouldn't be. 4. @AutoCodec is extended to allow users to specify that memoization should start with this codec. To ensure bit-equivalence, SkyKeySerializer disables memoization. PiperOrigin-RevId: 188918251
* Fix toolchain and execution platform registration to use patterns.Gravatar John Cater2018-03-12
| | | | | | | | This allows more flexibility in registering toolchains and execution platforms, both in the WORKSPACE and from the command-line. Change-Id: I6fe75507d1a74de74085b7c927fdf093c152b894 PiperOrigin-RevId: 188813688
* Tag Attribute, SkylarkDefinedAspect and some other Skylark classes withGravatar mjhalupka2018-03-12
| | | | | | | | | @AutoCodec. Remove Environment from SkylarkDefinedAspect. Add a note to BuiltInFunction that we shouldn't need to serialize it because all instances should be constant. PiperOrigin-RevId: 188763259
* Remove all dynamic type checking overhead for struct field accesses. These ↵Gravatar nharmata2018-03-08
| | | | | | | checks are unnecessary by construction; see the codepaths that construct SkylarkInfo instances. RELNOTES: None PiperOrigin-RevId: 188373688
* Tag SkylarkComputedDefault with @AutoCodecGravatar mjhalupka2018-03-08
| | | | PiperOrigin-RevId: 188367892
* Fix PackageFunction's call to Package.Builder.Helper#onLoadingComplete to passGravatar nharmata2018-03-07
| | | | | | | | | | along the wall time of the load, even when the package in question was in PackageFunction's internal cache (e.g. the current #compute call is a PackageFunction Skyframe restart). Also clarify the intent of the 'loadTimeMs' param in #onLoadingComplete. RELNOTES: None PiperOrigin-RevId: 188253198
* Fix stale comment about selector entry orderGravatar mschaller2018-03-07
| | | | | RELNOTES: None. PiperOrigin-RevId: 188221536
* Expose an actions provider on RuleConfiguredTarget instances.Gravatar cparsons2018-03-06
| | | | | | | | | Given a target (for example from a skylark aspect), one will be able to access a list of actions that the target generated using "target.actions". This is without additional memory footprint. Actions themselves are not fully exposed to skylark (and thus there isn't much meaning to gather from them in skylark yet). Access methods will follow soon. RELNOTES: None. PiperOrigin-RevId: 188098079
* Add proper serialization constructor and equals/hashCode for EnvironmentLabels.Gravatar janakr2018-03-06
| | | | PiperOrigin-RevId: 188078054
* Add a command line option to disallow vardef()s with three arguments.Gravatar lberki2018-03-06
| | | | | RELNOTES: None. PiperOrigin-RevId: 188038131
* @AutoCodec for TypeGravatar shahan2018-03-05
| | | | | | Needed for Attribute serialization. PiperOrigin-RevId: 187907727
* Automated rollback of commit 96145511b34a2d7be834e3eb05927674e875c813.Gravatar janakr2018-03-05
| | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Fixed issue that led to rollback. RELNOTES: None *** Original change description *** Automated rollback of commit eee53d3a33dde441f7e7adaecde81ef2d3db7c1b. *** Reason for rollback *** breaks Blaze_CorpTest *** Original change description *** @AutoCodec ConfiguredTargetValue. PiperOrigin-RevId: 187869560
* Automated rollback of commit eee53d3a33dde441f7e7adaecde81ef2d3db7c1b.Gravatar dannark2018-03-04
| | | | | | | | | | | | *** Reason for rollback *** breaks Blaze_CorpTest *** Original change description *** @AutoCodec ConfiguredTargetValue. PiperOrigin-RevId: 187783702
* Get rid of almost all Skylark codecs. We need to introduce a wrapper to turn ↵Gravatar janakr2018-03-03
| | | | | | | | ObjectCodec into a MEMOIZE_AFTER MemoizingCodec. I think that this is safe, because all the codecs that are being wrapped this way weren't memoizing anything internally that I could see. In order to @AutoCodec the WithValue type, which is generic and can have null elements in lists, add functionality to @AutoCodec to deal with generic type static instantiators, matching generic type arguments (although I'm not sure why that wasn't already working), and null elements in lists. PiperOrigin-RevId: 187740461
* @AutoCodec ConfiguredTargetValue.Gravatar cpeyser2018-03-02
| | | | PiperOrigin-RevId: 187635570
* Make JavaCompileAction and friends emit new-style arguments.Gravatar tomlu2018-03-01
| | | | | | | | | Instead of --direct_dependency, --indirect_dependency args we now emit --direct_dependencies. We no longer need to emit any jar owner information since that is baked into the jar by JavaBuilder. This CL also contains the deletion of CustomMultiArgv and the injecting_rule_kind aspect parameter, as the deleted code was the last remaining usage. RELNOTES: None PiperOrigin-RevId: 187558628
* Create --incompatible_disable_objc_provider_resources to disable deprecated ↵Gravatar cparsons2018-03-01
| | | | | | | | | objc provider skylark fields. This flag is not fully implemented -- there should also be a way to disable the provider getters using this flag, but, since @SkylarkCallable does not allow for evaluation of SkylarkSemantics, this is not yet possible. RELNOTES: None. PiperOrigin-RevId: 187542004
* Migrate some users of useAst to useLocationGravatar cparsons2018-03-01
| | | | | | | (It's good to avoid passing around more information than one needs, and FuncallExpression is pretty heavy when only a Location is necessary) RELNOTES: None. PiperOrigin-RevId: 187529568
* Make the distinction between "global frame" and "lexical frame" explicit. As ↵Gravatar nharmata2018-03-01
| | | | | | | a nice consequence, this lets us reduce GC churn since we no longer need to create a frame instance for the lexical frame at a callsite of either a function when the environment is frozen or a builtin function (since builtins cannot modify bindings in their lexical frame). RELNOTES: None PiperOrigin-RevId: 187495787
* Remove --incompatible_load_argument_is_label flagGravatar laurentlb2018-03-01
| | | | | | RELNOTES: Removed flag `--incompatible_load_argument_is_label`. PiperOrigin-RevId: 187479614
* Deprecate native git_repositoryGravatar Klaus Aehlig2018-03-01
| | | | | | | | | | | | | | The skylark implementation of git_repository is a drop-in replacement for the native workspace rule. So deprecate the latter to avoid having two implementations of the same. Also, the native rule pulls in quite some dependencies. RELNOTES: The native git_repository rule is deprecated. Use the Skylark version available via load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") instead. Change-Id: Id75d8e7b7377acd1092c4ba993f488be86c03fa0 PiperOrigin-RevId: 187466931
* Deletes CODEC fields now that they are no longer needed.Gravatar shahan2018-02-28
| | | | PiperOrigin-RevId: 187397314
* Introduce an Extrema aggregator.Gravatar nharmata2018-02-28
| | | | | RELNOTES: None PiperOrigin-RevId: 187370833
* Deprecate and remove several uses of the 'values' map in NativeInfo subclasses.Gravatar cparsons2018-02-28
| | | | | | | | | | These subclasses should be using @SkylarkCallable(structField = true) instead This is a bit of a memory win, as there is now no need to store field information twice. There are still a couple of stragglers that are more difficult, namely ToolchainInfo and DefaultInfo. Their APIs will likely need some more extensive revamping before proceeding. RELNOTES: None. PiperOrigin-RevId: 187364392
* Tag RuleClassNamePredicate with @AutoCodec by switching to lazyGravatar mjhalupka2018-02-28
| | | | | | | initialization of the Predicates, and storing the set of strings the predicates are based on. PiperOrigin-RevId: 187351700
* Replace PackageDeserializationException with SerializationExceptionGravatar michajlo2018-02-27
| | | | PiperOrigin-RevId: 187273881
* @AutoCodec TreeArtifactValue and FileArtifactValue.Gravatar janakr2018-02-27
| | | | PiperOrigin-RevId: 187243942
* Optimize GC churn of Attribute#getAspects by lazily allocating a builder.Gravatar shreyax2018-02-26
| | | | PiperOrigin-RevId: 187113491
* native.package_name() stops relying on "dynamic" environment variables.Gravatar laurentlb2018-02-26
| | | | | | | | | | Dynamic environment variables are going away. This also fixes a crashing bug. Fixes #3983 RELNOTES: None. PiperOrigin-RevId: 187008011
* Set default of --incompatible_disable_glob_tracking to trueGravatar laurentlb2018-02-21
| | | | | RELNOTES: None. PiperOrigin-RevId: 186470386
* Deletes POLYMORPHIC strategy. ObjectCodec now uses runtime type information ↵Gravatar shahan2018-02-20
| | | | | | to select a codec. PiperOrigin-RevId: 186378153
* Decprecate native http_archiveGravatar Klaus Aehlig2018-02-20
| | | | | | | | | | | | | | | Since the skylark implementation of http_archive provides all the features available in the native http_archive and a few more (patching), there is no need to have to rule implementations doing the same thing. Hence deprecate the native one as part of our plan of moving more functionality to skylark. RELNOTES: The native http_archive rule is deprecated. Use the Skylark version available via load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") instead. Change-Id: I107c2f25f5a37c67f56b4362e7c9d9ade8428c16 PiperOrigin-RevId: 186314624
* Expose WorkspaceFactoryTestHelper for testing properties of the "external" ↵Gravatar janakr2018-02-16
| | | | | | package. PiperOrigin-RevId: 186029598
* Remove old flags.Gravatar laurentlb2018-02-16
| | | | | | RELNOTES: Removed flags `--incompatible_checked_arithmetic`, `--incompatible_dict_literal_has_no_duplicates`, `--incompatible_disallow_keyword_only_args`, and ` --incompatible_comprehension_variables_do_not_leak`. PiperOrigin-RevId: 185977740
* Don't intern PathFragments when we create PackageIdentifiers. This should be ↵Gravatar shreyax2018-02-15
| | | | | | | | a strict win: There are only two places Canonicalizer did PathFragment interning: PackageIdentifier creation and Package creation. PackageIdentifiers are always interned by a separate interner, and so the underlying PathFragment will be in 1-1 correspondence with PackageIdentifiers (per repo). Moreover, Packages are created with a PackageIdentifier already existing, so it will use the same PathFragment of the unique PackageIdentifier. PiperOrigin-RevId: 185877942