Commit Graph

16707 Commits

Author SHA1 Message Date
Eugene Yokota eb7d43c363 Refactor RefThenConfig to be an opaque type 2024-11-26 04:55:08 -05:00
Eugene Yokota 320a8c7204 Avoid inline for slash apparently 2024-11-26 01:43:12 -05:00
Eugene Yokota 70d7ddb258 Refactor slash syntax to mostly use methods
**Problem**
Slash syntax is currently implemented via a series of implicit
converters (Conversion), which is not nice, partly because
the behavior is difficult to follow.

**Solution**
This removes all the implicit converters and moves the slashes
into:
1. / methods under Reference for subproject scoping.
2. / methods under ScopeAxis with Reference type constraint
   for the initial Zero scoping.
3. Return RefThenConfig structure for intermediate config scoping.
4. / method under `Scoped`, which is base trait for the keys
   to implement task scoping e.g. `compile / scalacOptions`.
5. Extension methods for ConfigKey.
6. Extension methods for AttributeKey.
2024-11-25 04:54:40 -05:00
Eugene Yokota 19ed461933 Remove conversion from Reference to RichReference 2024-11-24 23:11:55 -05:00
Eugene Yokota 4e3fbcced9 Refactor ScopeAxis to use enum 2024-11-24 23:10:18 -05:00
eugene yokota a30fd384dd
Merge pull request #7907 from eed3si9n/wip/fix-sandwich
[2.x] fix: Fix Scala 3.x - 2.12 sandwich for matrix
2024-11-24 00:08:28 -05:00
Eugene Yokota 56377274b7 fix: Fix Scala 3.x - 2.12 sandwich for matrix
Problem
Currently Scala 3.x - 2.13 sandwich doesn't seem to work for projectMatrix.
This is due to isScala2Scala3Sandwich checking for "3." while projectMatrix
uses scalaBinaryVersion, which is 3.

Solution
This consolidates the implementation of isScala2Scala3Sandwich with the one
in Defaults module, and check for both "3" and "3."
2024-11-23 04:05:28 -05:00
adpi2 546feed6f4
Merge pull request #7893 from xuwei-k/implicit-object-given
[2.x] use `given` instead of `implicit object`
2024-11-18 09:58:02 +01:00
xuwei-k d8705bbac0 use given instead of implicit object 2024-11-18 17:09:03 +09:00
xuwei-k f11d9d76f0 remove more implicit. use given and using 2024-11-18 14:39:00 +09:00
xuwei-k d193c990d1 remove implicit params. change to using 2024-11-18 06:49:22 +09:00
xuwei-k c5b7038f3a use `given` instead of `implicit val` 2024-11-17 17:35:23 +09:00
eugene yokota c572453a35
Merge pull request #7891 from xuwei-k/TaskExtra-extension
[2.x] use `extension` instead of `implicit`
2024-11-17 01:51:53 -05:00
eugene yokota fa8d7a87a8
Merge pull request #7887 from Friendseeker/sbt#7870
[2.x] Remove `enableConsistentCompileAnalysis`, `enableBinaryCompileAnalysis`
2024-11-17 01:51:14 -05:00
friendseeker 1ec08180f7
Remove enableConsistentCompileAnalysis & enableBinaryCompileAnalysis 2024-11-16 21:27:29 -08:00
eugene yokota 312f1a0782
Merge pull request #7888 from xuwei-k/Alternative-CommandBuilder
[2.x] use `extension` instead of `implicit`
2024-11-16 21:03:28 -05:00
eugene yokota 4c345b0dd2
Merge pull request #7877 from Friendseeker/bye-jansi-2
[2.x] Remove direct dependency on `org.fusesource.jansi`
2024-11-16 20:43:52 -05:00
xuwei-k 5dd0ab0e60 use extension instead of implicit 2024-11-17 10:24:33 +09:00
xuwei-k 4da8d942ce use extension instead of implicit 2024-11-17 07:38:40 +09:00
eugene yokota d199f86a44
Merge pull request #7878 from eed3si9n/wip/scalainstance
[2.x] Use ScalaInstance from update
2024-11-14 23:50:08 -05:00
Eugene Yokota d1b6609a33 Mark tests pending 2024-11-14 23:37:30 -05:00
Eugene Yokota 29c77f6f5f Merge branch 'develop' into wip/scalainstance 2024-11-14 22:02:10 -05:00
Eugene Yokota 5329029768 Mark jvm-sandwich pending 2024-11-14 22:01:30 -05:00
adpi2 87e6f66bf8
Merge pull request #7882 from adpi2/2.x-fuse-info
[2.x] Remove instances of `Info` and `BasicAttributeMap`
2024-11-14 06:39:28 +01:00
adpi2 4c66e5a907
Merge branch 'develop' into 2.x-fuse-info 2024-11-13 17:08:37 +01:00
adpi2 f82336d385
Merge pull request #7879 from adpi2/2.x-refactor-settings
[2.x] Refactor `Settings` and optimize indexing of aggregate keys
2024-11-13 17:08:09 +01:00
Adrien Piquerez 0ccf3325c8 Optimize indexing of aggregate keys
To build the index of all aggregate keys, we were computing the reverse
aggregation of each key, before indexing them.
And so each aggregate key was indexed many times, once for each
aggregated project. It was parallelized to reduce the latency.
In this PR, we compute the reverse aggregation of all the keys at once,
removing all duplication. We cannot parallelize this process anymore
but we don't need to, because it is a lot faster. It reduces the total
CPU time by 12%. The impact for the user depends on its number of cores.
2024-11-13 12:25:31 +01:00
Adrien Piquerez f4f185a1c1 Settings as a Map[ScopedKey[x], x]
Settings0 used to be a Map[Scope, AttributeMap], and is now a
Map[ScopedKey[x], x].
This is better because we don't need to decompose all ScopedKey[x]
into a Scope and an AttributeKey[x], for recomposing it back later,
which duplicates all ScopedKey[x]. It reduces the number of long-living
ScopedKey[x] by 8%, and the total number of instances by 1.4%.

Also it improves the performance of Settings0, which was responsible of
2.95% of the total CPU time, and is now responsible of 0.41%.
2024-11-13 12:25:31 +01:00
Adrien Piquerez 327d05e28f Remove unused Structure.taskToKey 2024-11-13 11:22:53 +01:00
Adrien Piquerez 6fbe032517 AttributeMap as an opaque type 2024-11-13 11:09:23 +01:00
Adrien Piquerez d54647a46c Use referential equality on Task 2024-11-13 10:55:29 +01:00
Eugene Yokota cfbc5c078a Merge branch 'develop' into wip/scalainstance 2024-11-13 00:31:53 -05:00
eugene yokota 661f1fa216
Merge pull request #7880 from adpi2/2.x-settings
[2.x] Reduce creation of `Setting` and `Initialize`
2024-11-12 22:41:42 -05:00
Adrien Piquerez e5cedbe56b Fuse Info in Task to reduce instances 2024-11-12 17:05:20 +01:00
Adrien Piquerez 6c226a2afd Reduce settings created by Defaults 2024-11-12 11:51:42 +01:00
Adrien Piquerez 8406fc86a8 Reduce settings created by ProjectMatrix 2024-11-12 11:51:42 +01:00
Adrien Piquerez 07ac8625e5 Reduce settings created by dependency-tree plugins 2024-11-12 11:51:31 +01:00
Adrien Piquerez c838094672 Optimize Previous 2024-11-12 10:56:31 +01:00
Eugene Yokota 258a831b03 Use ScalaInstance from update
**Problem**
doc task currently doesn't work.

**Solution**
For now turn off the optimized ScalaInstance
2024-11-12 03:44:52 -05:00
friendseeker c47d01738f
Remove jansi from WindowsInputStream 2024-11-07 22:08:00 -08:00
friendseeker f864e1c26d
Bye jansi 2024-11-07 22:07:07 -08:00
eugene yokota f7160ba8d8
Merge pull request #7875 from eed3si9n/wip/slash-tests 2024-11-07 12:33:16 -05:00
eugene yokota 583939fc3c
Merge pull request #7874 from xuwei-k/ClassLoaderWarmup-scala-2-universe
[2.x] update ClassLoaderWarmup.scala
2024-11-06 03:47:09 -05:00
Eugene Yokota a34bb4756c Resurrect property-based testing for slash syntax 2024-11-06 03:43:39 -05:00
adpi2 aa5e252d22
Merge pull request #7866 from adpi2/2.x-reduce-heap
[2.x] Reduce number of long-living instances to speed up loading
2024-11-06 08:44:03 +01:00
xuwei-k 6e4c2ea275 update ClassLoaderWarmup.scala 2024-11-06 14:17:13 +09:00
Adrien Piquerez 2f726cddf0 Add comments 2024-11-05 11:36:18 +01:00
eugene yokota af22a5cf0f
Merge pull request #7864 from xuwei-k/delete-deprecated-since-0-x 2024-11-04 10:00:36 -05:00
Adrien Piquerez 9382fc99b7 Use caching in Project.transform 2024-11-04 10:43:42 +01:00
Adrien Piquerez 8b5eaa2cd5 Cache delegates during Load 2024-11-04 10:43:42 +01:00