diff --git a/Gemfile.lock b/Gemfile.lock index 77e4acdf9c..8c4594c786 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -57,6 +57,7 @@ GEM logger faraday-net_http (3.4.0) net-http (>= 0.5.0) + ffi (1.17.1-aarch64-linux-gnu) ffi (1.17.1-arm64-darwin) ffi (1.17.1-x64-mingw-ucrt) ffi (1.17.1-x86_64-linux-gnu) @@ -264,6 +265,8 @@ GEM minitest (5.25.4) net-http (0.6.0) uri + nokogiri (1.18.9-aarch64-linux-gnu) + racc (~> 1.4) nokogiri (1.18.9-arm64-darwin) racc (~> 1.4) nokogiri (1.18.9-x64-mingw-ucrt) @@ -318,6 +321,7 @@ GEM zeitwerk (2.7.2) PLATFORMS + aarch64-linux arm64-darwin-22 arm64-darwin-23 arm64-darwin-24 diff --git a/_config.yml b/_config.yml index 4739a1d24d..c774d59e17 100644 --- a/_config.yml +++ b/_config.yml @@ -15,9 +15,9 @@ keywords: - Document - Guide -scala-version: 2.13.17 +scala-version: 2.13.18 scala-212-version: 2.12.20 -scala-3-version: 3.7.3 +scala-3-version: 3.7.4 collections: style: diff --git a/_ja/getting-started/install-scala.md b/_ja/getting-started/install-scala.md index a85f87263c..76695cf17d 100644 --- a/_ja/getting-started/install-scala.md +++ b/_ja/getting-started/install-scala.md @@ -178,4 +178,4 @@ IDE の使用に慣れている場合は、IDE から _Main.scala_ のコード 他の Scala ユーザーとすぐに連絡を取りたい場合は、多くのメーリングリストやリアルタイムのチャットルームがあります。これらのリソースのリストや、どこに問い合わせればよいかについては、[コミュニティページ](https://scala-lang.org/community/)をご覧ください。 ### (日本語のみ追記) -Scala について日本語で質問したい場合、Twitterでつぶやくと気づいた人が教えてくれます。 +Scala について日本語で質問したい場合、X(旧Twitter)でつぶやくと気づいた人が教えてくれます。 diff --git a/_overviews/FAQ/index.md b/_overviews/FAQ/index.md index 1316dbdda5..fbb4fe4183 100644 --- a/_overviews/FAQ/index.md +++ b/_overviews/FAQ/index.md @@ -362,14 +362,14 @@ setting in a multi-project build. For example, if you add this to your `build.sbt`: - scalaVersion := "2.13.17" + scalaVersion := "2.13.18" that's a "bare" setting, and you might expect it to apply build-wide. But it doesn't. _It only applies to the root project._ In many cases one should instead write: - ThisBuild / scalaVersion := "2.13.17" + ThisBuild / scalaVersion := "2.13.18" Other possibilities include: diff --git a/_overviews/contribute/bug-reporting-guide.md b/_overviews/contribute/bug-reporting-guide.md index 485a2994e1..5ccecd2137 100644 --- a/_overviews/contribute/bug-reporting-guide.md +++ b/_overviews/contribute/bug-reporting-guide.md @@ -65,7 +65,7 @@ If you cannot find your issue in the issue tracker, create a new bug. The detail Please make sure to fill in as many fields as possible. Make sure you've indicated the following: - 1. **Exact Scala version** that you are using. For example, `2.13.17` or `3.3.4`. If the bug happens in multiple versions indicate all of them. + 1. **Exact Scala version** that you are using. For example, `2.13.18` or `3.3.4`. If the bug happens in multiple versions indicate all of them. 2. **The component** that is affected by the bug. For example, the Standard Library, Scaladoc, etc. 3. **Labels** related to your issue. For example, if you think your issue is related to the typechecker, and if you have successfully minimized your issue, label your bug as "typechecker" and "minimized". Issue tracker will suggest names for existing labels as you type them so try not to create duplicates. 4. **Running environment**. Are you running on Linux? Windows? What JVM version are you using? diff --git a/_overviews/core/binary-compatibility-of-scala-releases.md b/_overviews/core/binary-compatibility-of-scala-releases.md index ba58a3482a..fb4de2be19 100644 --- a/_overviews/core/binary-compatibility-of-scala-releases.md +++ b/_overviews/core/binary-compatibility-of-scala-releases.md @@ -20,10 +20,10 @@ We distinguish forward and backward compatibility (think of these as properties Thus, backward compatibility precludes the removal of (non-private) methods, as older versions could call them, not knowing they would be removed, whereas forward compatibility disallows adding new (non-private) methods, because newer programs may come to depend on them, which would prevent them from running on older versions (private methods are exempted here as well, as their definition and call sites must be in the same source file). #### Guarantees and Versioning -For Scala 2, the *minor* version is the *third* number in a version, e.g., 17 in v2.13.17. +For Scala 2, the *minor* version is the *third* number in a version, e.g., 18 in v2.13.18. The major version is the second number, which is 13 in our example. -Scala 2 up to 2.13.17 guarantees both backward and forward compatibility across *minor* releases within a single major release. +Scala 2 up to 2.13.18 guarantees both backward and forward compatibility across *minor* releases within a single major release. This is about to change now that [SIP-51 has been accepted](https://docs.scala-lang.org/sips/drop-stdlib-forwards-bin-compat.html), future Scala 2.13 releases may be backward compatible only. For Scala 3, the minor version is the *second* number in a version, e.g., 2 in v3.2.1. diff --git a/_overviews/core/futures.md b/_overviews/core/futures.md index 9f01a43710..b092d21172 100644 --- a/_overviews/core/futures.md +++ b/_overviews/core/futures.md @@ -1181,7 +1181,7 @@ object Test extends App { completion match { case Failure(exception) if exception.getCause != null => println(s" caused by ${exception.getCause}") - _ => () + case _ => () } } } catch { diff --git a/_overviews/jdk-compatibility/overview.md b/_overviews/jdk-compatibility/overview.md index 2ffebe457c..77a17691dc 100644 --- a/_overviews/jdk-compatibility/overview.md +++ b/_overviews/jdk-compatibility/overview.md @@ -4,21 +4,46 @@ title: JDK Compatibility permalink: /overviews/jdk-compatibility/overview.html --- -Scala's primary platform is the Java Virtual Machine (JVM). (Other supported platforms: [Scala.js](https://www.scala-js.org/), [Scala Native](https://scala-native.org/).) +Scala's primary platform is the Java Virtual Machine (JVM). Other supported platforms are [Scala.js](https://www.scala-js.org/) and [Scala Native](https://scala-native.org/). Sometimes new JVM and JDK (Java Development Kit) versions require us to update Scala to remain compatible. -## Scala compatibility table +## Scala 3 compatibility -Minimum Scala versions: +Scala 3 versions from 3.3 LTS through Scala 3.7 support JDK 8 and above. -| JDK | 3 | 3 LTS | 2.13 | 2.12 | 2.11 | -|:-----------:|:--------:|:--------:|:---------:|:---------:|:----------:| -| 25 (LTS) | 3.7.1 | 3.3.6 | 2.13.17 | 2.12.21* | | -| 21 (LTS) | 3.4.0 | 3.3.1 | 2.13.11 | 2.12.18 | | -| 17 (LTS) | 3.0.0 | 3.3.0 | 2.13.6 | 2.12.15 | | -| 11 (LTS) | 3.0.0 | 3.3.0 | 2.13.0 | 2.12.4 | 2.11.12 | -| 8 (LTS) | 3.0.0 | 3.3.0 | 2.13.0 | 2.12.0 | 2.11.0 | +As per [this blog post](https://www.scala-lang.org/news/next-scala-lts-jdk.html), +Scala 3.8 will have a new minimum JDK version of 17. + +The next Scala 3 LTS release will be Scala 3.9. + +Minimum Scala 3 versions for each JDK: + +| JDK | 3.8* | 3.4+ | 3.3 LTS | +|:-----------:|:------:|:--------:|:--------:| +| 25 (LTS) | 3.8.0* | 3.7.1 | 3.3.6 | +| 21 (LTS) | 3.8.0* | 3.4.0 | 3.3.1 | +| 17 (LTS) | 3.8.0* | 3.4.0 | 3.3.0 | +| 11 (LTS) | | 3.4.0 | 3.3.0 | +| 8 (LTS) | | 3.4.0 | 3.3.0 | + +\* = forthcoming; support available in [nightly builds](https://docs.scala-lang.org/overviews/core/nightlies.html) + +Even when a version combination isn't listed as supported, most features might still work. + +Using the latest patch version of your chosen Scala version line is always recommended. + +## Scala 2 compatibility + +Minimum Scala 2 versions for each JDK: + +| JDK | 2.13 | 2.12 | +|:-----------:|:---------:|:---------:| +| 25 (LTS) | 2.13.17 | 2.12.21* | +| 21 (LTS) | 2.13.11 | 2.12.18 | +| 17 (LTS) | 2.13.6 | 2.12.15 | +| 11 (LTS) | 2.13.0 | 2.12.4 | +| 8 (LTS) | 2.13.0 | 2.12.0 | \* = forthcoming; support available in [nightly builds](https://docs.scala-lang.org/overviews/core/nightlies.html) @@ -34,7 +59,7 @@ Minimum working versions: | JDK | scala-cli | sbt | mill | |:-----------:|:-----------:|:---------:|:-----------| -| 25 (LTS) | forthcoming | 1.9.0 | 1.0.0 | +| 25 (LTS) | 1.10.0 | 1.9.0 | 1.0.0 | | 21 (LTS) | 1.0.0 | 1.9.0 | 0.11.5 | | 17 (LTS) | 1.0.0 | 1.6.0 | 0.7.0 | | 11 (LTS) | 1.0.0 | 1.1.0 | 0.1.5 | @@ -50,11 +75,11 @@ Using a different build tool, such as Gradle or Maven? We invite pull requests a ## Running versus compiling -JDK 8, 11, 17, 21, and 25 are all reasonable choices both for *compiling* and *running* Scala code. +JDK 17, 21, and 25 are all good choices both for *compiling* and *running* Scala code. -Since the JVM is normally backwards compatible, it is usually safe to use a newer JVM for *running* your code than the one it was compiled on, especially if you are not using JVM features designated "experimental" or "unsafe". +JDK 8 and 11 are also possible choices. As of 2025, these versions remain in use at some shops, but usage has declined greatly and many projects are dropping support. If you compile on JDK 17+ but want to allow your users to stay on 8, use `--release 8` to avoid using APIs and features that don't exist in 8. Another option is to use a newer JDK for your daily work but do release builds on JDK 8. -JDK 8 remains in use at some shops (as of 2023), but usage is declining and some projects are dropping support. If you compile on JDK 11+ but want to allow your users to stay on 8, additional care is needed to avoid using APIs and features that don't exist in 8. (For this reason, some Scala developers use a newer JDK for their daily work but do release builds on JDK 8.) +Since the JVM is normally backwards compatible, it is usually safe to use a newer JVM for *running* your code than the one it was compiled on, especially if you are not using JVM features designated "experimental" or "unsafe". As per [this blog post](https://www.scala-lang.org/news/next-scala-lts-jdk.html), Scala 3.8 will have a new minimum JDK version of 17. @@ -74,15 +99,13 @@ In almost every case, you're free to use the JDK and JVM of your choice. JDK 8 users typically use the Oracle JDK or some flavor of OpenJDK. -Most JDK 11+ users are using OpenJDK, or GraalVM which runs in the context of OpenJDK. GraalVM performs well on the Scala benchmarks, and it benefits from GraalVM runtime and runs faster too. - OpenJDK comes in various flavors, offered by different providers. We typically build and test Scala using [Temurin](https://adoptium.net) or [Zulu](https://www.azul.com/downloads/), but the differences are unlikely to matter to most users. ## JDK 11 compatibility notes The Scala test suite and Scala community build are green on JDK 11. -In general, Scala works on JDK 11+, including GraalVM, but may not take special advantage of features that were added after JDK 8. +In general, Scala works on JDK 11+, but may not take special advantage of features that were added after JDK 8. For example, the Scala compiler does not enforce the restrictions of the Java Platform Module System, which means that code that typechecks may incur linkage errors at runtime. Scala 2.13.x will eventually provide [rudimentary support](https://github.com/scala/scala/pull/7218) for this (perhaps only in nightlies built on JDK 11). @@ -132,8 +155,6 @@ For information on timing of the forthcoming release, see: * https://contributors.scala-lang.org/t/scala-2-12-21-release-planning/6753 - - For possible Scala 3 issues, see the [area:jdk](https://github.com/scala/scala3/labels/area%3Ajdk) and [compat:java](https://github.com/scala/scala3/labels/compat%3Ajava) labels in [the Scala 3 issue tracker](https://github.com/scala/scala3/issues). For possible Scala 2 issues, see the [jdk11](https://github.com/scala/bug/labels/jdk11), [jdk17](https://github.com/scala/bug/labels/jdk17), [jdk21](https://github.com/scala/bug/labels/jdk21), and [jdk25](https://github.com/scala/bug/labels/jdk25) labels in [the Scala 2 bug tracker](https://github.com/scala/bug/issues). @@ -147,10 +168,3 @@ A few sbt plugins are offering support for GraalVM Native Image compilation: - [sbt-native-packager](https://www.scala-sbt.org/sbt-native-packager/formats/graalvm-native-image.html) - [sbt-native-image](https://github.com/scalameta/sbt-native-image) - -## Scala 3 - -At present, both Scala 3.3 LTS and Scala Next support JDK 8, as well as 11 and beyond. - -As per [this blog post](https://www.scala-lang.org/news/next-scala-lts-jdk.html), -Scala 3.8 will have a new minimum JDK version of 17. This can already be tested in Scala 3.8 nightlies. diff --git a/_overviews/scala3-book/scala-for-python-devs.md b/_overviews/scala3-book/scala-for-python-devs.md index c62c7f486c..ae4a18821c 100644 --- a/_overviews/scala3-book/scala-for-python-devs.md +++ b/_overviews/scala3-book/scala-for-python-devs.md @@ -40,7 +40,7 @@ At a high level, Scala shares these *similarities* with Python: - Both have a relatively simple, concise syntax - Both support a [functional style of programming][fp-intro] - Both are object-oriented programming (OOP) languages -- Both have comprehensions: Python has list comprehensions and Scala has `for` comprehensions +- Both have comprehensions: Python has list comprehensions, dict comprehensions and generator expressions and Scala has `for` comprehensions - Both languages have support for lambdas and [higher-order functions][hofs] - Both can be used with [Apache Spark](https://spark.apache.org) for big data processing - Both have a wealth of terrific libraries @@ -693,6 +693,26 @@ Scala also has `match` expressions. +### Lazily evaluated comprehensions: + + + + + + + + + + +
+ from itertools import count +
all_squares = (n**2 for n in count())  # generator expression +
# all_squares: <generator object <genexpr> at ...>
+
+ val allSquares = for n <- LazyList.from(0) yield n * n +
// allSquares: LazyList(<not computed>)
+
+ ### `match` expressions: diff --git a/_overviews/scala3-migration/tooling-scala2-xsource3.md b/_overviews/scala3-migration/tooling-scala2-xsource3.md index ca23203026..e48b4c1205 100644 --- a/_overviews/scala3-migration/tooling-scala2-xsource3.md +++ b/_overviews/scala3-migration/tooling-scala2-xsource3.md @@ -125,7 +125,7 @@ class C(x: Int) { ### Changes affecting binary encoding -As of Scala 2.13.17, there are 3 changes in `-Xsource-features` that affect binary encoding of classfiles: +As of Scala 2.13.18, there are 3 changes in `-Xsource-features` that affect binary encoding of classfiles: 1. `case-apply-copy-access`: the constructor modifiers of case classes (`case class C private[p] (x: Int)`) are copied to the synthetic `apply` and `copy` methods. 1. `case-companion-function`: the synthetic companion objects of case classes no longer extend `FunctionN`. diff --git a/_overviews/toolkit/http-client-request-body.md b/_overviews/toolkit/http-client-request-body.md index b54357e1cb..2d39e08fc1 100644 --- a/_overviews/toolkit/http-client-request-body.md +++ b/_overviews/toolkit/http-client-request-body.md @@ -18,7 +18,7 @@ To send a POST request with a string body, you can chain `post` and `body` on a import sttp.client4.quick._ val response = quickRequest - .post(uri"https://example.com/") + .post(uri"https://httpbin.org/post") .body("Lorem ipsum") .send() @@ -31,7 +31,7 @@ println(response.code) import sttp.client4.quick.* val response = quickRequest - .post(uri"https://example.com/") + .post(uri"https://httpbin.org/post") .body("Lorem ipsum") .send() @@ -51,7 +51,7 @@ The `body` method can also take a `Array[Byte]`, a `ByteBuffer` or an `InputStre {% tab 'Scala 2 and 3' %} ```scala mdoc val bytes: Array[Byte] = "john".getBytes -val request = quickRequest.post(uri"https://example.com/").body(bytes) +val request = quickRequest.post(uri"https://httpbin.org/post").body(bytes) ``` {% endtab %} {% endtabs %} diff --git a/_overviews/toolkit/http-client-what-else.md b/_overviews/toolkit/http-client-what-else.md index c467c7687a..98557527ea 100644 --- a/_overviews/toolkit/http-client-what-else.md +++ b/_overviews/toolkit/http-client-what-else.md @@ -55,6 +55,7 @@ import scala.concurrent.{Await, Future} import scala.concurrent.ExecutionContext.Implicits.global import sttp.client4._ +import sttp.client4.ws.async._ import sttp.ws.WebSocket val asyncBackend = DefaultFutureBackend() @@ -83,6 +84,7 @@ import scala.concurrent.{Await, Future} import scala.concurrent.ExecutionContext.Implicits.global import sttp.client4.* +import sttp.client4.ws.async.* import sttp.ws.WebSocket val asyncBackend = DefaultFutureBackend() diff --git a/_overviews/tutorials/binary-compatibility-for-library-authors.md b/_overviews/tutorials/binary-compatibility-for-library-authors.md index cb5807a068..cdfac174d1 100644 --- a/_overviews/tutorials/binary-compatibility-for-library-authors.md +++ b/_overviews/tutorials/binary-compatibility-for-library-authors.md @@ -255,7 +255,6 @@ alice match Later in time, you can amend the original case class definition to, say, add an optional `address` field. You * add a new field `address` and a custom `withAddress` method, * update the public `apply` method in the companion object to initialize all the fields, - * tell MiMa to [ignore](https://github.com/lightbend-labs/mima#filtering-binary-incompatibilities) changes to the class constructor. This step is necessary because MiMa does not yet ignore changes in private class constructor signatures (see [#738](https://github.com/lightbend-labs/mima/issues/738)). {% tabs case_class_compat_4 class=tabs-scala-version %} {% tab 'Scala 2' %} @@ -284,28 +283,6 @@ object Person: {% endtab %} {% endtabs %} -And, in your build definition: - -{% tabs case_class_compat_5 %} -{% tab 'sbt' %} -~~~ scala -import com.typesafe.tools.mima.core._ -mimaBinaryIssueFilters += ProblemFilters.exclude[DirectMissingMethodProblem]("Person.this") -~~~ -{% endtab %} -{% endtabs %} - -Otherwise, MiMa would fail with an error like “method this(java.lang.String,Int)Unit in class Person does not have a correspondent in current version”. - -> Note that an alternative solution, instead of adding a MiMa exclusion filter, consists of adding back the previous -> constructor signatures as secondary constructors: -> ~~~ scala -> case class Person private (name: String, age: Int, address: Option[String]): -> ... -> // Add back the former primary constructor signature -> private[Person] def this(name: String, age: Int) = this(name, age, None) -> ~~~ - The original users can use the case class `Person` as before, all the methods that existed before are present unmodified after this change, thus the compatibility with the existing usage is maintained. The new field `address` can be used as follows: diff --git a/_ru/overviews/collections-2.13/iterators.md b/_ru/overviews/collections-2.13/iterators.md index 3d43d76a8f..2c472e918f 100644 --- a/_ru/overviews/collections-2.13/iterators.md +++ b/_ru/overviews/collections-2.13/iterators.md @@ -177,7 +177,7 @@ language: ru def zipWithIndex[A](i: Iterator[A]): Iterator[(Int, A)] = Iterator.from(0).zip(i) -### Буферезированные итераторы +### Буферизированные итераторы Иногда вам нужен итератор, который может "заглянуть вперед", чтобы вы могли оценить следующий элемент, который будет возвращен без перемещения позиции. Рассмотрим, например, задачу пропуска впереди идущих пустых строк из итератора, который возвращает последовательность строк. У вас может возникнуть соблазн написать следующее diff --git a/_sass/layout/cheatsheet.scss b/_sass/layout/cheatsheet.scss index 691a34b38b..a9acf9a5db 100644 --- a/_sass/layout/cheatsheet.scss +++ b/_sass/layout/cheatsheet.scss @@ -4,7 +4,7 @@ .content-primary.cheatsheet { code { - font-family: 'Consolas'; + font-family: 'Inconsolata'; } pre.highlight { diff --git a/_sass/layout/type-md.scss b/_sass/layout/type-md.scss index 6548b1ff60..76b737d048 100755 --- a/_sass/layout/type-md.scss +++ b/_sass/layout/type-md.scss @@ -163,7 +163,7 @@ dt, dd { code { - font-family: 'Consolas'; + font-family: 'Inconsolata'; background-color: #fff; color: #859900; @include border-radius($border-radius-medium); @@ -174,7 +174,7 @@ tr, td{ code { - font-family: 'Consolas'; + font-family: 'Inconsolata'; font-size: 0.9375rem; } } diff --git a/_sass/vendors/bourbon/addons/_font-stacks.scss b/_sass/vendors/bourbon/addons/_font-stacks.scss index 57128f422a..351f5df5f2 100755 --- a/_sass/vendors/bourbon/addons/_font-stacks.scss +++ b/_sass/vendors/bourbon/addons/_font-stacks.scss @@ -22,7 +22,7 @@ $lucida-grande: "Lucida Grande", "Tahoma", "Verdana", "Arial", sans-serif; /// /// @type List -$monospace: "Bitstream Vera Sans Mono", "Consolas", "Courier", monospace; +$monospace: "Bitstream Vera Sans Mono", "Inconsolata", "Courier", monospace; /// Verdana font stack. /// diff --git a/_sips/results/2025-01-24-meeting.md b/_sips/results/2025-01-24-meeting.md new file mode 100644 index 0000000000..19c6b7cf0a --- /dev/null +++ b/_sips/results/2025-01-24-meeting.md @@ -0,0 +1,7 @@ +--- +layout: sip-meeting-results +title: SIP Meeting Results - 24th January 2025 +partof: results +proposals: [] +--- +SIP-51, SIP-60, SIP-62, SIP-63, SIP-66, SIP-67, SIP-68, and SIP-69 were discussed but no vote was held. diff --git a/_sips/results/2025-02-21-meeting.md b/_sips/results/2025-02-21-meeting.md new file mode 100644 index 0000000000..c88390710d --- /dev/null +++ b/_sips/results/2025-02-21-meeting.md @@ -0,0 +1,13 @@ +--- +layout: sip-meeting-results +title: SIP Meeting Results - 21st February 2025 +partof: results +proposals: + - url: https://github.com/scala/improvement-proposals/pull/58 + name: SIP-52 - Binary APIs + result: accepted + - url: https://github.com/scala/improvement-proposals/pull/97 + name: SIP-67 - Strict equality + result: accepted +--- +SIP-62 and SIP-68 were discussed but no vote was held. diff --git a/_sips/results/2025-03-21-meeting.md b/_sips/results/2025-03-21-meeting.md new file mode 100644 index 0000000000..f78e0caa82 --- /dev/null +++ b/_sips/results/2025-03-21-meeting.md @@ -0,0 +1,10 @@ +--- +layout: sip-meeting-results +title: SIP Meeting Results - 21st March 2025 +partof: results +proposals: + - url: https://github.com/scala/improvement-proposals/pull/54 + name: SIP-51 - Drop Forwards Binary Compatibility of the Scala 2.13 Standard Library + result: accepted +--- +SIP-36, SIP-49, SIP-51, SIP-52, SIP-55, SIP-57, SIP-59, SIP-61, and SIP-70 were discussed but no vote was held. diff --git a/_sips/results/2025-04-25-meeting.md b/_sips/results/2025-04-25-meeting.md new file mode 100644 index 0000000000..c92bbec4f9 --- /dev/null +++ b/_sips/results/2025-04-25-meeting.md @@ -0,0 +1,7 @@ +--- +layout: sip-meeting-results +title: SIP Meeting Results - 25th April 2025 +partof: results +proposals: [] +--- +SIP-71 was discussed but no vote was held. diff --git a/_sips/results/2025-05-23-meeting.md b/_sips/results/2025-05-23-meeting.md new file mode 100644 index 0000000000..aba801a1a2 --- /dev/null +++ b/_sips/results/2025-05-23-meeting.md @@ -0,0 +1,13 @@ +--- +layout: sip-meeting-results +title: SIP Meeting Results - 21st March 2025 +partof: results +proposals: + - url: https://github.com/scala/improvement-proposals/pull/67 + name: SIP-57 - Replace non-sensical @unchecked annotations + result: accepted + - url: https://github.com/scala/improvement-proposals/pull/109 + name: SIP-71 - Allow fully implicit conversions in Scala 3 with into + result: accepted +--- +No other SIP was discussed. diff --git a/api/all.md b/api/all.md index b5dfde2f05..a655d74c1b 100644 --- a/api/all.md +++ b/api/all.md @@ -12,10 +12,10 @@ redirect_from: * [Library API](https://www.scala-lang.org/api/{{site.scala-3-version}}/) * Scala 3.3.7 LTS * [Library API](https://www.scala-lang.org/api/3.3.7/) -* Scala 2.13.17 - * [Library API](https://www.scala-lang.org/api/2.13.17/) - * [Compiler API](https://www.scala-lang.org/api/2.13.17/scala-compiler/scala/) - * [Reflection API](https://www.scala-lang.org/api/2.13.17/scala-reflect/scala/reflect/) +* Scala 2.13.18 + * [Library API](https://www.scala-lang.org/api/2.13.18/) + * [Compiler API](https://www.scala-lang.org/api/2.13.18/scala-compiler/scala/) + * [Reflection API](https://www.scala-lang.org/api/2.13.18/scala-reflect/scala/reflect/) * Scala 2.12.20 * [Library API](https://www.scala-lang.org/api/2.12.20/) * [Compiler API](https://www.scala-lang.org/api/2.12.20/scala-compiler/scala/) @@ -64,6 +64,8 @@ https://scala-ci.typesafe.com/artifactory/scala-integration/org/scala-lang/ ## Previous releases +* Scala 3.7.3 + * [Library API](https://www.scala-lang.org/api/3.7.3/) * Scala 3.7.2 * [Library API](https://www.scala-lang.org/api/3.7.2/) * Scala 3.7.1 @@ -122,6 +124,10 @@ https://scala-ci.typesafe.com/artifactory/scala-integration/org/scala-lang/ * [Library API](https://www.scala-lang.org/api/3.0.1/) * Scala 3.0.0 * [Library API](https://www.scala-lang.org/api/3.0.0/) +* Scala 2.13.17 + * [Library API](https://www.scala-lang.org/api/2.13.17/) + * [Compiler API](https://www.scala-lang.org/api/2.13.17/scala-compiler/scala/) + * [Reflection API](https://www.scala-lang.org/api/2.13.17/scala-reflect/scala/reflect/) * Scala 2.13.16 * [Library API](https://www.scala-lang.org/api/2.13.16/) * [Compiler API](https://www.scala-lang.org/api/2.13.16/scala-compiler/scala/) diff --git a/resources/css/highlightjs.css b/resources/css/highlightjs.css index 1db8a26ed4..acbdceed9d 100644 --- a/resources/css/highlightjs.css +++ b/resources/css/highlightjs.css @@ -5,7 +5,7 @@ github.com style (c) Vasily Polovnyov */ .hljs { - font-family: 'Consolas'; + font-family: 'Inconsolata'; display: block; overflow-x: auto; padding: 0.5em; diff --git a/resources/css/monospace.css b/resources/css/monospace.css index 67e622e269..661410f641 100644 --- a/resources/css/monospace.css +++ b/resources/css/monospace.css @@ -2,41 +2,29 @@ --- @font-face { - font-family: 'Consolas'; - src: url('{{ site.baseurl }}/resources/glyphs/Consolas.eot'); - src: url('{{ site.baseurl }}/resources/glyphs/Consolas.eot?#iefix') format('embedded-opentype'), - url('{{ site.baseurl }}/resources/glyphs/Consolas.woff') format('woff'), - url('{{ site.baseurl }}/resources/glyphs/Consolas.ttf') format('truetype'); + font-family: 'Inconsolata'; + src:url('{{ site.baseurl }}/resources/glyphs/Inconsolata_SemiExpanded-SemiBold.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { - font-family: 'Consolas'; - src: url('{{ site.baseurl }}/resources/glyphs/Consolas-BoldItalic.eot'); - src: url('{{ site.baseurl }}/resources/glyphs/Consolas-BoldItalic.eot?#iefix') format('embedded-opentype'), - url('{{ site.baseurl }}/resources/glyphs/Consolas-BoldItalic.woff') format('woff'), - url('{{ site.baseurl }}/resources/glyphs/Consolas-BoldItalic.ttf') format('truetype'); + font-family: 'Inconsolata'; + src: url('{{ site.baseurl }}/resources/glyphs/Inconsolata_SemiExpanded-Bold.ttf') format('truetype'); font-weight: bold; font-style: italic; } @font-face { - font-family: 'Consolas'; - src: url('{{ site.baseurl }}/resources/glyphs/Consolas-Italic.eot'); - src: url('{{ site.baseurl }}/resources/glyphs/Consolas-Italic.eot?#iefix') format('embedded-opentype'), - url('{{ site.baseurl }}/resources/glyphs/Consolas-Italic.woff') format('woff'), - url('{{ site.baseurl }}/resources/glyphs/Consolas-Italic.ttf') format('truetype'); + font-family: 'Inconsolata'; + src: url('{{ site.baseurl }}/resources/glyphs/Inconsolata_SemiExpanded-SemiBold.ttf') format('truetype'); font-weight: normal; font-style: italic; } @font-face { - font-family: 'Consolas'; - src: url('{{ site.baseurl }}/resources/glyphs/Consolas-Bold.eot'); - src: url('{{ site.baseurl }}/resources/glyphs/Consolas-Bold.eot?#iefix') format('embedded-opentype'), - url('{{ site.baseurl }}/resources/glyphs/Consolas-Bold.woff') format('woff'), - url('{{ site.baseurl }}/resources/glyphs/Consolas-Bold.ttf') format('truetype'); + font-family: 'Inconsolata'; + src: url('{{ site.baseurl }}/resources/glyphs/Inconsolata_SemiExpanded-Bold.ttf') format('truetype'); font-weight: bold; font-style: normal; } diff --git a/resources/glyphs/Consolas-Bold.eot b/resources/glyphs/Consolas-Bold.eot deleted file mode 100644 index 1981119648..0000000000 Binary files a/resources/glyphs/Consolas-Bold.eot and /dev/null differ diff --git a/resources/glyphs/Consolas-Bold.ttf b/resources/glyphs/Consolas-Bold.ttf deleted file mode 100644 index 231576b0e9..0000000000 Binary files a/resources/glyphs/Consolas-Bold.ttf and /dev/null differ diff --git a/resources/glyphs/Consolas-Bold.woff b/resources/glyphs/Consolas-Bold.woff deleted file mode 100644 index 1899dbd063..0000000000 Binary files a/resources/glyphs/Consolas-Bold.woff and /dev/null differ diff --git a/resources/glyphs/Consolas-BoldItalic.eot b/resources/glyphs/Consolas-BoldItalic.eot deleted file mode 100644 index 107dc0bef7..0000000000 Binary files a/resources/glyphs/Consolas-BoldItalic.eot and /dev/null differ diff --git a/resources/glyphs/Consolas-BoldItalic.ttf b/resources/glyphs/Consolas-BoldItalic.ttf deleted file mode 100644 index 2a98047bd3..0000000000 Binary files a/resources/glyphs/Consolas-BoldItalic.ttf and /dev/null differ diff --git a/resources/glyphs/Consolas-BoldItalic.woff b/resources/glyphs/Consolas-BoldItalic.woff deleted file mode 100644 index 828c0282dc..0000000000 Binary files a/resources/glyphs/Consolas-BoldItalic.woff and /dev/null differ diff --git a/resources/glyphs/Consolas-Italic.eot b/resources/glyphs/Consolas-Italic.eot deleted file mode 100644 index deeed93678..0000000000 Binary files a/resources/glyphs/Consolas-Italic.eot and /dev/null differ diff --git a/resources/glyphs/Consolas-Italic.ttf b/resources/glyphs/Consolas-Italic.ttf deleted file mode 100644 index 9966bed49f..0000000000 Binary files a/resources/glyphs/Consolas-Italic.ttf and /dev/null differ diff --git a/resources/glyphs/Consolas-Italic.woff b/resources/glyphs/Consolas-Italic.woff deleted file mode 100644 index 9828b0da82..0000000000 Binary files a/resources/glyphs/Consolas-Italic.woff and /dev/null differ diff --git a/resources/glyphs/Consolas.eot b/resources/glyphs/Consolas.eot deleted file mode 100644 index 3506f34f1e..0000000000 Binary files a/resources/glyphs/Consolas.eot and /dev/null differ diff --git a/resources/glyphs/Consolas.ttf b/resources/glyphs/Consolas.ttf deleted file mode 100644 index 743cbfaf1a..0000000000 Binary files a/resources/glyphs/Consolas.ttf and /dev/null differ diff --git a/resources/glyphs/Consolas.woff b/resources/glyphs/Consolas.woff deleted file mode 100644 index 6078102f80..0000000000 Binary files a/resources/glyphs/Consolas.woff and /dev/null differ diff --git a/resources/glyphs/Inconsolata_SemiExpanded-Bold.ttf b/resources/glyphs/Inconsolata_SemiExpanded-Bold.ttf new file mode 100644 index 0000000000..7e9e39ac34 Binary files /dev/null and b/resources/glyphs/Inconsolata_SemiExpanded-Bold.ttf differ diff --git a/resources/glyphs/Inconsolata_SemiExpanded-SemiBold.ttf b/resources/glyphs/Inconsolata_SemiExpanded-SemiBold.ttf new file mode 100644 index 0000000000..6036377d37 Binary files /dev/null and b/resources/glyphs/Inconsolata_SemiExpanded-SemiBold.ttf differ diff --git a/resources/images/scala3-book/hierarchy.dot b/resources/images/scala3-book/hierarchy.dot index 24e6c2a896..d6e1ff8783 100644 --- a/resources/images/scala3-book/hierarchy.dot +++ b/resources/images/scala3-book/hierarchy.dot @@ -1,7 +1,7 @@ digraph unix { rankdir = BT; size="6,6"; - node [color=lightblue2, style=filled, fontname="Consolas"]; + node [color=lightblue2, style=filled, fontname="Inconsolata"]; {rank=same; "AnyVal"; "AnyRef / Object"} diff --git a/resources/images/scala3-book/hierarchy.svg b/resources/images/scala3-book/hierarchy.svg index 013848749e..5f83fcf2b8 100644 --- a/resources/images/scala3-book/hierarchy.svg +++ b/resources/images/scala3-book/hierarchy.svg @@ -13,13 +13,13 @@ AnyVal -AnyVal +AnyVal Matchable -Matchable +Matchable @@ -31,7 +31,7 @@ AnyRef / Object -AnyRef / Object +AnyRef / Object @@ -43,7 +43,7 @@ Unit -Unit +Unit @@ -55,7 +55,7 @@ Boolean -Boolean +Boolean @@ -67,7 +67,7 @@ Int -Int +Int @@ -79,7 +79,7 @@ ... (value types) -... (value types) +... (value types) @@ -91,7 +91,7 @@ String -String +String @@ -103,7 +103,7 @@ List[Int] -List[Int] +List[Int] @@ -115,7 +115,7 @@ ... (reference types) -... (reference types) +... (reference types) @@ -127,7 +127,7 @@ Any -Any +Any @@ -139,7 +139,7 @@ Null -Null +Null @@ -163,7 +163,7 @@ Nothing -Nothing +Nothing diff --git a/scripts/run-mdoc.sh b/scripts/run-mdoc.sh index 80e431cd42..11228c4ea8 100755 --- a/scripts/run-mdoc.sh +++ b/scripts/run-mdoc.sh @@ -1,14 +1,14 @@ #!/bin/bash set -eux -cs launch --scala-version 2.13.17 org.scalameta::mdoc:2.3.3 -- \ +cs launch --scala-version 2.13.18 org.scalameta::mdoc:2.3.3 -- \ --in . \ --out /tmp/mdoc-out/ \ --classpath \ - $(cs fetch --scala-version 2.13.17 -p \ + $(cs fetch --scala-version 2.13.18 -p \ com.chuusai::shapeless:2.3.10 \ - org.scala-lang::toolkit:0.1.7 \ - org.scala-lang::toolkit-test:0.1.7 \ + org.scala-lang::toolkit:0.7.0 \ + org.scala-lang::toolkit-test:0.7.0 \ ) \ --scalac-options "-Xfatal-warnings -feature" \ --no-link-hygiene \