mirror of
https://github.com/sbt/sbt.git
synced 2026-08-29 01:24:09 +02:00
da8ec496086d2554df50157ac66c3da3eb3a52eb
Resolution.projectCache is not a field: it maps projectCache0 into a version-string-keyed copy on every call. SbtUpdateReport read it once per dependency, and again per parent POM while assembling inherited licence info, so for N modules resolved that is N rebuilds of an N-entry immutable map -- turning a Resolution into an UpdateReport was quadratic in the modules it names. On a 301-project build this was 61.9% of the CPU update spends, 83% of it entering through lookupProject. Read it once per report and reuse it, at every call site including the eviction loop, which read it three times per conflict. The report produced is unchanged; only the number of times the same map is built. Co-authored-by: Claude Opus 5 <[email protected]>
…
sbt
sbt is a build tool for Scala, Java, and more.
For general documentation, see https://www.scala-sbt.org/.
sbt 2.x
This is the 2.x series of sbt. The source code of sbt is split across several GitHub repositories, including this one.
- sbt/io hosts
sbt.iomodule. - sbt/zinc hosts Zinc, an incremental compiler for Scala.
- sbt/sbt, this repository hosts modules that implement the build tool.
Other links
- Setup: Describes getting started with the latest binary release.
- FAQ: Explains how to get help and more.
- sbt/sbt-zero-seven: hosts sbt 0.7.7 and earlier versions
Issues and Pull Requests
Please read CONTRIBUTING carefully before opening a GitHub Issue or a pull request.
If you're looking for an idea for a contribution, issues labeled with good first issue or help wanted might be good starting points.
If you would like to ask questions about sbt, there's sbt channel on Scala Discord, but it would be good to gather questions on Stackoverflow.
license
See LICENSE.
Languages
Scala
94.5%
Java
3.1%
Shell
1.1%
Batchfile
0.9%
Roff
0.2%
Other
0.1%