Skip to content

Commit 9b06094

Browse files
Update stdlib-bootstrapped to 2.13.11 and then 2.13.12 nightly (#18136)
2 parents b94f7ec + dad8cd4 commit 9b06094

File tree

3 files changed

+35
-95
lines changed

3 files changed

+35
-95
lines changed

project/Build.scala

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,15 @@ object Build {
127127
case Bootstrapped => "2.13.10"
128128
}
129129

130+
/** Version of the scala-library for which we will generate TASTy.
131+
*
132+
* We should never use a nightly version here to release.
133+
*
134+
* We can use nightly versions to tests the future compatibility in development.
135+
* Nightly versions: https://scala-ci.typesafe.com/ui/native/scala-integration/org/scala-lang
136+
*/
137+
val stdlibBootstrappedVersion = "2.13.12-bin-364ee69"
138+
130139
val dottyOrganization = "org.scala-lang"
131140
val dottyGithubUrl = "https://github.com/lampepfl/dotty"
132141
val dottyGithubRawUserContentUrl = "https://raw.githubusercontent.com/lampepfl/dotty"
@@ -261,6 +270,9 @@ object Build {
261270
// sbt will complain if we don't exclude them here.
262271
Keys.scalaSource, Keys.javaSource
263272
),
273+
274+
// This is used to download nightly builds of the Scala 2 library in `stdlib-bootstrapped`
275+
resolvers += "scala-integration" at "https://scala-ci.typesafe.com/artifactory/scala-integration/",
264276
)
265277

266278
lazy val disableDocSetting =
@@ -977,7 +989,7 @@ object Build {
977989
ivyConfigurations += SourceDeps.hide,
978990
transitiveClassifiers := Seq("sources"),
979991
libraryDependencies +=
980-
("org.scala-lang" % "scala-library" % stdlibVersion(Bootstrapped) % "sourcedeps"),
992+
("org.scala-lang" % "scala-library" % stdlibBootstrappedVersion % "sourcedeps"),
981993
(Compile / sourceGenerators) += Def.task {
982994
val s = streams.value
983995
val cacheDir = s.cacheDirectory
@@ -1020,18 +1032,18 @@ object Build {
10201032
files.filterNot(_.relativeTo(reference).exists(overwritenSources))
10211033
},
10221034
(Test / managedClasspath) ~= {
1023-
_.filterNot(file => file.data.getName == s"scala-library-${stdlibVersion(Bootstrapped)}.jar")
1035+
_.filterNot(file => file.data.getName == s"scala-library-$stdlibBootstrappedVersion.jar")
10241036
},
10251037
mimaCheckDirection := "both",
10261038
mimaBackwardIssueFilters := MiMaFilters.StdlibBootstrappedBackwards,
10271039
mimaForwardIssueFilters := MiMaFilters.StdlibBootstrappedForward,
1028-
mimaPreviousArtifacts += "org.scala-lang" % "scala-library" % stdlibVersion(Bootstrapped),
1040+
mimaPreviousArtifacts += "org.scala-lang" % "scala-library" % stdlibBootstrappedVersion,
10291041
mimaExcludeAnnotations ++= Seq(
10301042
"scala.annotation.experimental",
10311043
"scala.annotation.specialized",
10321044
"scala.annotation.unspecialized",
10331045
),
1034-
tastyMiMaPreviousArtifacts += "org.scala-lang" % "scala-library" % stdlibVersion(Bootstrapped),
1046+
tastyMiMaPreviousArtifacts += "org.scala-lang" % "scala-library" % stdlibBootstrappedVersion,
10351047
tastyMiMaCurrentClasspath := {
10361048
val javaBootCp = tastyMiMaJavaBootClasspath.value
10371049
val classDir = (Compile / classDirectory).value.toPath()
@@ -1138,7 +1150,7 @@ object Build {
11381150
javaOptions := (`scala3-compiler-bootstrapped` / javaOptions).value,
11391151
Test / javaOptions += "-Ddotty.scala.library=" + (`stdlib-bootstrapped` / Compile / packageBin).value.getAbsolutePath,
11401152
Compile / compile / fullClasspath ~= {
1141-
_.filterNot(file => file.data.getName == s"scala-library-${stdlibVersion(Bootstrapped)}.jar")
1153+
_.filterNot(file => file.data.getName == s"scala-library-$stdlibBootstrappedVersion.jar")
11421154
},
11431155
Compile / compile / dependencyClasspath := {
11441156
// make sure that the scala2-library (tasty of `stdlib-bootstrapped-tasty`) is listed before the scala-library (classfiles)

project/MiMaFilters.scala

Lines changed: 10 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -24,33 +24,11 @@ object MiMaFilters {
2424
)
2525

2626
val StdlibBootstrappedBackwards: Map[String, Seq[ProblemFilter]] = Map(
27-
"2.13.10" -> {
27+
Build.stdlibBootstrappedVersion -> {
2828
Seq(
2929
// Files that are not compiled in the bootstrapped library
3030
ProblemFilters.exclude[MissingClassProblem]("scala.AnyVal"),
3131

32-
// Inferred result type of non-private member differs (fix in Scala 2)
33-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#IteratorWrapper.remove"),
34-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#JCollectionWrapper.iterableFactory"),
35-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#JDictionaryWrapper.mapFactory"),
36-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#JIterableWrapper.iterableFactory"),
37-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#JListWrapper.iterableFactory"),
38-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.convert.JavaCollectionWrappers#JPropertiesWrapper.mapFactory"),
39-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.immutable.BitSet.bitSetFactory"),
40-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.immutable.TreeSet.sortedIterableFactory"),
41-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.mutable.BitSet.bitSetFactory"),
42-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.mutable.TreeMap.sortedMapFactory"),
43-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.View#LeftPartitionMapped.iterator"),
44-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.collection.View#RightPartitionMapped.iterator"),
45-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.concurrent.duration.FiniteDuration.unary_-"),
46-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.math.BigDecimal.underlying"),
47-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.math.Ordering.tryCompare"),
48-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JConcurrentMapWrapper.empty"),
49-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JMapWrapper.empty"),
50-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JPropertiesWrapper.empty"),
51-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.LinkedHashMap.newBuilder"),
52-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.LinkedHashSet.newBuilder"),
53-
5432
// Scala language features
5533
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.language.<clinit>"),
5634
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.language#experimental.<clinit>"),
@@ -62,18 +40,13 @@ object MiMaFilters {
6240

6341
// Value class extension methods
6442
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*$extension"),
65-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.*$extension"),
6643

6744
// Companion module class
6845
ProblemFilters.exclude[FinalClassProblem]("scala.*$"),
6946

7047
// Scala 2 intrinsic macros
7148
ProblemFilters.exclude[FinalMethodProblem]("scala.StringContext.s"),
7249

73-
// scala.math.Ordering.tryCompare
74-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*.tryCompare"),
75-
76-
7750
// Specialization?
7851
ProblemFilters.exclude[MissingFieldProblem]("scala.Tuple1._1"), // field _1 in class scala.Tuple1 does not have a correspondent in current version
7952
ProblemFilters.exclude[MissingFieldProblem]("scala.Tuple2._1"), // field _1 in class scala.Tuple2 does not have a correspondent in current version
@@ -103,7 +76,6 @@ object MiMaFilters {
10376
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.NoPositioner"),
10477
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.RelaxedPosition"),
10578
ProblemFilters.exclude[FinalMethodProblem]("scala.io.Source.RelaxedPositioner"),
106-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.RedBlackTree#EqualsIterator.nextResult"),
10779
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.SortedMapOps.coll"),
10880
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.TreeMap.empty"),
10981
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.TreeMap.fromSpecific"),
@@ -112,73 +84,49 @@ object MiMaFilters {
11284
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.TreeMap.fromSpecific"),
11385
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NothingManifest.newArray"),
11486
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NullManifest.newArray"),
115-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.StringContext.unapplySeq"),
11687
ProblemFilters.exclude[MissingFieldProblem]("scala.collection.ArrayOps#ReverseIterator.xs"),
11788
ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.NonLocalReturnControl.value"),
11889
ProblemFilters.exclude[ReversedMissingMethodProblem]("scala.collection.immutable.SortedMapOps.coll"),
11990
) ++
12091
Seq( // DirectMissingMethodProblem
121-
"scala.collection.immutable.ArraySeq#*.elemTag",
122-
"scala.collection.immutable.HashCollisionSetNode.copy",
123-
"scala.collection.immutable.MapKeyValueTupleHashIterator.next",
12492
"scala.collection.LinearSeqIterator#LazyCell.this",
125-
"scala.collection.mutable.AnyRefMap#ToBuildFrom.newBuilder",
126-
"scala.collection.mutable.ArraySeq#*.elemTag",
127-
"scala.collection.mutable.LinkedHashMap.newBuilder", "scala.collection.mutable.LinkedHashSet.newBuilder",
128-
"scala.collection.mutable.LongMap#ToBuildFrom.newBuilder",
12993
"scala.collection.mutable.PriorityQueue#ResizableArrayAccess.this",
13094
"scala.concurrent.BatchingExecutor#AbstractBatch.this",
13195
"scala.concurrent.Channel#LinkedList.this",
13296
"scala.Enumeration#ValueOrdering.this",
13397
"scala.io.Source#RelaxedPosition.this",
134-
"scala.PartialFunction#OrElse.andThen", "scala.PartialFunction#OrElse.orElse",
135-
"scala.runtime.Rich*.num", "scala.runtime.Rich*.ord",
98+
"scala.collection.IterableOnceOps#Maximized.this", // New in 2.13.11: private inner class
13699
"scala.util.Properties.<clinit>",
137100
"scala.util.Sorting.scala$util$Sorting$$mergeSort$default$5",
138101
).map(ProblemFilters.exclude[DirectMissingMethodProblem])
139102
}
140103
)
141104

142105
val StdlibBootstrappedForward: Map[String, Seq[ProblemFilter]] = Map(
143-
"2.13.10" -> {
106+
Build.stdlibBootstrappedVersion -> {
144107
Seq(
145108
// Scala language features
146109
ProblemFilters.exclude[FinalClassProblem]("scala.languageFeature$*$"),
147110
ProblemFilters.exclude[MissingFieldProblem]("scala.language.experimental"),
148111
ProblemFilters.exclude[MissingFieldProblem]("scala.languageFeature*"),
149112

150-
// Inferred result type of non-private member differs (fix in Scala 2)
151-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JConcurrentMapWrapper.empty"),
152-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JMapWrapper.empty"),
153-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.convert.JavaCollectionWrappers#JPropertiesWrapper.empty"),
154-
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.math.Ordering.tryCompare"),
155-
156113
// https://github.com/scala/scala/blob/v2.13.10/src/library/scala/collection/immutable/Range.scala#LL155C1-L156C1
157114
// Issue #17519: we do not set final on the default methods of final copy method.
158115
ProblemFilters.exclude[FinalMethodProblem]("scala.collection.immutable.Range.copy$default$*"),
159116

160117
// Value class extension methods
161118
ProblemFilters.exclude[DirectMissingMethodProblem]("scala.*$extension"),
162-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.*$extension"),
163119

164120
// Companion module class: Missing type java.io.Serializable
165121
ProblemFilters.exclude[MissingTypesProblem]("scala.*$"),
166122

167-
// abstract method elemTag()scala.reflect.ClassTag in class scala.collection.mutable.ArraySeq does not have a correspondent in other version
168-
ProblemFilters.exclude[DirectAbstractMethodProblem]("scala.collection.immutable.ArraySeq.elemTag"),
169-
ProblemFilters.exclude[DirectAbstractMethodProblem]("scala.collection.mutable.ArraySeq.elemTag"),
170-
171123
// Non-categorized
172124
ProblemFilters.exclude[IncompatibleMethTypeProblem]("scala.collection.mutable.ArrayBuilder#ofUnit.addAll"),
173125

174126
// Non-categorized
175-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.RedBlackTree#EqualsIterator.nextResult"),
176127
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.immutable.SortedMapOps.coll"),
177-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.LinkedHashMap.newBuilder"),
178-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.collection.mutable.LinkedHashSet.newBuilder"),
179128
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NothingManifest.newArray"),
180129
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.reflect.ManifestFactory#NullManifest.newArray"),
181-
ProblemFilters.exclude[IncompatibleResultTypeProblem]("scala.StringContext.unapplySeq"),
182130

183131
// the type hierarchy of class scala.Array is different in other version. Missing types {java.io.Serializable,java.lang.Cloneable}
184132
ProblemFilters.exclude[MissingTypesProblem]("scala.Array"),
@@ -237,6 +185,13 @@ object MiMaFilters {
237185
"scala.util.Properties.coloredOutputEnabled",
238186
"scala.util.Properties.isAvian",
239187
"scala.util.Properties.versionFor",
188+
// New problem in 2.13.11
189+
"scala.collection.IterableOnceOps#Maximized.this", // private inner class
190+
"scala.collection.mutable.LinkedHashMap.defaultLoadFactor", // private[collection] final def
191+
"scala.collection.mutable.LinkedHashMap.defaultinitialSize", // private[collection] final def
192+
"scala.collection.mutable.LinkedHashSet.defaultLoadFactor", // private[collection] final def
193+
"scala.collection.mutable.LinkedHashSet.defaultinitialSize", // private[collection] final def
194+
"scala.collection.mutable.OpenHashMap.nextPositivePowerOfTwo", // private[mutable] def
240195
).map(ProblemFilters.exclude[DirectMissingMethodProblem]) ++
241196
Seq( // MissingFieldProblem: static field ... in object ... does not have a correspondent in other version
242197
"scala.Array.UnapplySeqWrapper",

0 commit comments

Comments
 (0)