Skip to content

Commit 57efc0e

Browse files
committed
Merge branch 'main' into getting-started
# Conflicts: # _config.yml # api/all.md
2 parents 8e84db6 + 15b3f6f commit 57efc0e

File tree

78 files changed

+4837
-177
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+4837
-177
lines changed

Gemfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,8 +251,8 @@ GEM
251251
rb-fsevent (0.11.2)
252252
rb-inotify (0.10.1)
253253
ffi (~> 1.0)
254-
rexml (3.2.8)
255-
strscan (>= 3.0.9)
254+
rexml (3.3.6)
255+
strscan
256256
rouge (3.30.0)
257257
ruby2_keywords (0.0.5)
258258
rubyzip (2.3.2)

_config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ keywords:
1515
- Document
1616
- Guide
1717

18-
scala-version: 2.13.14
19-
scala-212-version: 2.12.19
18+
scala-version: 2.13.15
19+
scala-212-version: 2.12.20
2020
scala-3-version: 3.5.1
2121

2222
collections:

_data/compiler-options.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -469,10 +469,6 @@
469469
schema:
470470
type: "Boolean"
471471
description: "Don't perform exhaustivity/unreachability analysis. Also, ignore @switch annotation."
472-
- option: "-Xno-uescape"
473-
schema:
474-
type: "Boolean"
475-
description: "Disable handling of \\u unicode escapes."
476472
- option: "-Xnojline"
477473
schema:
478474
type: "Boolean"

_data/doc-nav-header.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
- title: Getting Started
2-
url: "/getting-started/index.html"
2+
url: "#"
3+
submenu:
4+
- title: Install Scala
5+
url: "/getting-started/install-scala.html"
6+
- title: Scala IDEs
7+
url: "/getting-started/scala-ides.html"
38
- title: Scala 3
49
url: "#"
510
submenu:

_data/overviews.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,9 @@
161161
description: "A diverse and comprehensive set of libraries is important to any productive software ecosystem. While it is easy to develop and distribute Scala libraries, good library authorship goes beyond just writing code and publishing it. In this guide, we cover the important topic of Binary Compatibility."
162162
icon: puzzle-piece
163163
url: "core/binary-compatibility-for-library-authors.html"
164+
- title: Nightly Versions of Scala
165+
description: "We regularly publish 'nightlies' of both Scala 3 and Scala 2 so that users can preview and test the contents of upcoming releases. Here's how to find and use these versions."
166+
url: "core/nightlies.html"
164167

165168
- category: "Tools"
166169
description: "Reference material on core Scala tools like the Scala REPL and Scaladoc generation."

_data/setup-scala.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ linux-x86-64: curl -fL https://github.com/coursier/coursier/releases/latest/down
22
linux-arm64: curl -fL https://github.com/VirtusLab/coursier-m1/releases/latest/download/cs-aarch64-pc-linux.gz | gzip -d > cs && chmod +x cs && ./cs setup
33
macOS-x86-64: curl -fL https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-apple-darwin.gz | gzip -d > cs && chmod +x cs && (xattr -d com.apple.quarantine cs || true) && ./cs setup
44
macOS-arm64: curl -fL https://github.com/VirtusLab/coursier-m1/releases/latest/download/cs-aarch64-apple-darwin.gz | gzip -d > cs && chmod +x cs && (xattr -d com.apple.quarantine cs || true) && ./cs setup
5-
macOS-brew: brew install coursier/formulas/coursier && cs setup
5+
macOS-brew: brew install coursier && coursier setup
66
windows-link: https://github.com/coursier/coursier/releases/latest/download/cs-x86_64-pc-win32.zip

_includes/_markdown/install-cask.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{% altDetails require-info-box 'Getting Cask' %}
2+
3+
{% tabs cask-install class=tabs-build-tool %}
4+
5+
{% tab 'Scala CLI' %}
6+
You can declare a dependency on Cask with the following `using` directive:
7+
```scala
8+
//> using dep "com.lihaoyi::cask::0.9.2"
9+
```
10+
{% endtab %}
11+
12+
{% tab 'sbt' %}
13+
In your `build.sbt`, you can add a dependency on Cask:
14+
```scala
15+
lazy val example = project.in(file("example"))
16+
.settings(
17+
scalaVersion := "3.4.2",
18+
libraryDependencies += "com.lihaoyi" %% "cask" % "0.9.2",
19+
fork := true
20+
)
21+
```
22+
{% endtab %}
23+
24+
{% tab 'Mill' %}
25+
In your `build.sc`, you can add a dependency on Cask:
26+
```scala
27+
object example extends RootModule with ScalaModule {
28+
def scalaVersion = "3.3.3"
29+
def ivyDeps = Agg(
30+
ivy"com.lihaoyi::cask::0.9.2"
31+
)
32+
}
33+
```
34+
{% endtab %}
35+
36+
{% endtabs %}
37+
{% endaltDetails %}

_includes/_markdown/install-munit.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@ Alternatively, you can require just a specific version of MUnit:
1616
{% tab 'sbt' %}
1717
In your build.sbt file, you can add the dependency on toolkit-test:
1818
```scala
19-
lazy val example = project.in(file("example"))
19+
lazy val example = project.in(file("."))
2020
.settings(
2121
scalaVersion := "3.3.3",
2222
libraryDependencies += "org.scala-lang" %% "toolkit-test" % "0.1.7" % Test
2323
)
2424
```
25-
Here the `Test` configuration means that the dependency is only used by the source files in `example/src/test`.
25+
26+
Here the `Test` configuration means that the dependency is only used by the source files in `src/test`.
2627

2728
Alternatively, you can require just a specific version of MUnit:
2829
```scala

_includes/_markdown/install-os-lib.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Alternatively, you can require just a specific version of OS-Lib:
1515
{% tab 'sbt' %}
1616
In your `build.sbt`, you can add a dependency on the toolkit:
1717
```scala
18-
lazy val example = project.in(file("example"))
18+
lazy val example = project.in(file("."))
1919
.settings(
2020
scalaVersion := "3.3.3",
2121
libraryDependencies += "org.scala-lang" %% "toolkit" % "0.1.7"

_includes/_markdown/install-sttp.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Alternatively, you can require just a specific version of sttp:
1515
{% tab 'sbt' %}
1616
In your build.sbt file, you can add a dependency on the Toolkit:
1717
```scala
18-
lazy val example = project.in(file("example"))
18+
lazy val example = project.in(file("."))
1919
.settings(
2020
scalaVersion := "3.3.3",
2121
libraryDependencies += "org.scala-lang" %% "toolkit" % "0.1.7"

_includes/_markdown/install-upickle.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Alternatively, you can require just a specific version of UPickle:
1515
{% tab 'sbt' %}
1616
In your build.sbt file, you can add the dependency on the Toolkit:
1717
```scala
18-
lazy val example = project.in(file("example"))
18+
lazy val example = project.in(file("."))
1919
.settings(
2020
scalaVersion := "3.3.3",
2121
libraryDependencies += "org.scala-lang" %% "toolkit" % "0.1.7"

_ja/overviews/macros/paradise.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ title: マクロパラダイス
1919
マクロパラダイス (Macro paradise) とは Scala の複数のバージョンをサポートするコンパイラプラグインで、一般向けにリリースされている <code>scalac</code> と共に正しく動作するように設計されている。
2020
これによって、将来の Scala に取り込まれるよりもいち早く最新のマクロ機能を使えるようになっている。
2121
[サポートされている機能とバージョンの一覧](/ja/overviews/macros/roadmap.html))に関してはロードマップページを、
22-
動作の保証に関しては[マクロパラダイスのアナウンスメント](https://scalamacros.org/news/2013/08/07/roadmap-for-macro-paradise.html)を参照してほしい。
22+
動作の保証に関しては[マクロパラダイスのアナウンスメント](hxxps://scalamacros.org/news/2013/08/07/roadmap-for-macro-paradise.html)を参照してほしい。
2323

2424
~/210x $ scalac -Xplugin:paradise_*.jar -Xshow-phases
2525
phase name id description

_ja/overviews/macros/typemacros.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ title: 型マクロ
99
**Eugene Yokota 訳**
1010

1111
型マクロ (type macro) は[マクロパラダイス](/ja/overviews/macros/paradise.html)の以前のバージョンから利用可能だったが、マクロパラダイス 2.0 ではサポートされなくなった。
12-
[the paradise 2.0 announcement](https://scalamacros.org/news/2013/08/05/macro-paradise-2.0.0-snapshot.html) に説明と移行のための戦略が書かれている。
12+
[the paradise 2.0 announcement](hxxps://scalamacros.org/news/2013/08/05/macro-paradise-2.0.0-snapshot.html) に説明と移行のための戦略が書かれている。
1313

1414
## 直観
1515

_ja/overviews/macros/untypedmacros.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ title: 型指定の無いマクロ
99
**Eugene Yokota 訳**
1010

1111
型指定の無いマクロ (untyped macro) は[マクロパラダイス](/ja/overviews/macros/paradise.html)の以前のバージョンから利用可能だったが、マクロパラダイス 2.0 ではサポートされなくなった。
12-
[the paradise 2.0 announcement](https://scalamacros.org/news/2013/08/05/macro-paradise-2.0.0-snapshot.html) に説明と移行のための戦略が書かれている。
12+
[the paradise 2.0 announcement](hxxps://scalamacros.org/news/2013/08/05/macro-paradise-2.0.0-snapshot.html) に説明と移行のための戦略が書かれている。
1313

1414
## 直観
1515

_ja/overviews/macros/usecases.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Scala の商用ユーザと研究ユーザの両方がマクロを利用して
2020
ここ EPFL においても我々はマクロを活用して研究を行っている。Lightbend 社もマクロを数々のプロジェクトに採用している。
2121
マクロはコミュニティー内でも人気があり、既にいくつかの興味深い応用が現れている。
2222

23-
最近行われた講演の ["What Are Macros Good For?"](https://scalamacros.org/paperstalks/2014-02-04-WhatAreMacrosGoodFor.pdf) では Scala 2.10 ユーザのマクロの利用方法を説明し、システム化した。講演の大筋はマクロはコード生成、静的な検査、および DSL に有効であるということで、これを研究や産業からの例を交えながら説明した。
23+
最近行われた講演の ["What Are Macros Good For?"](https://github.com/scalamacros/scalamacros.github.com/blob/5904f7ef88a439c668204b4bf262835e89fb13cb/paperstalks/2014-02-04-WhatAreMacrosGoodFor.pdf) では Scala 2.10 ユーザのマクロの利用方法を説明し、システム化した。講演の大筋はマクロはコード生成、静的な検査、および DSL に有効であるということで、これを研究や産業からの例を交えながら説明した。
2424

25-
Scala'13 ワークショップにおいて ["Scala Macros: Let Our Powers Combine!"](https://scalamacros.org/paperstalks/2013-04-22-LetOurPowersCombine.pdf) という論文を発表した。これは Scala 2.10 における最先端のマクロ論をより学問的な視点から説明した。
25+
Scala'13 ワークショップにおいて ["Scala Macros: Let Our Powers Combine!"](https://github.com/scalamacros/scalamacros.github.com/blob/5904f7ef88a439c668204b4bf262835e89fb13cb/paperstalks/2013-04-22-LetOurPowersCombine.pdf) という論文を発表した。これは Scala 2.10 における最先端のマクロ論をより学問的な視点から説明した。
2626
この論文では Scala のリッチな構文と静的な型がマクロと相乗することを示し、また既存の言語機能をマクロによって新しい方法で活用できることを考察する。

_ja/overviews/reflection/overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ Scala コンパイラが持つ型情報を全ては入手できない可能性
8181

8282
上の例では、まず `scala.reflect.runtime.universe` をインポートして
8383
(型タグを使うためには必ずインポートされる必要がある)、`l` という名前の `List[Int]` を作る。
84-
次に、context bound を持った型パラメータ `T` を持つ `getTypeTag` というメソッドは定義する
84+
次に、context bound を持った型パラメータ `T` を持つ `getTypeTag` というメソッドを定義する
8585
(REPL が示すとおり、これは暗黙の evidence パラメータを定義することに等価であり、コンパイラは `T` に対する型タグを生成する)。
8686
最後に、このメソッドに `l` を渡して呼び出し、`TypeTag` に格納される型を返す `tpe` を呼び出す。
8787
見ての通り、正しい完全な型 (つまり、`List` の具象型引数を含むということ) である `List[Int]` が返ってきた。

_overviews/FAQ/index.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,15 @@ for multiple reasons, most notoriously
273273
For an in-depth treatment of types vs. classes, see the blog post
274274
["There are more types than classes"](https://typelevel.org/blog/2017/02/13/more-types-than-classes.html).
275275

276+
### Should I declare my parameterless method with or without parentheses?
277+
278+
In other words, should one write `def foo()` or just `def foo`?
279+
280+
Answer: by convention, the former is used to indicate that a method
281+
has side effects.
282+
283+
For more details, see the Scala Style Guide, [here](https://docs.scala-lang.org/style/naming-conventions.html#parentheses).
284+
276285
### How can a method in a superclass return a value of the “current” type?
277286

278287
First, note that using `this.type` won't work. People often try that,
@@ -332,14 +341,14 @@ setting in a multi-project build.
332341

333342
For example, if you add this to your `build.sbt`:
334343

335-
scalaVersion := "2.13.14"
344+
scalaVersion := "2.13.15"
336345

337346
that's a "bare" setting, and you might expect it to apply build-wide.
338347
But it doesn't. _It only applies to the root project._
339348

340349
In many cases one should instead write:
341350

342-
ThisBuild / scalaVersion := "2.13.14"
351+
ThisBuild / scalaVersion := "2.13.15"
343352

344353
Other possibilities include:
345354

_overviews/collections-2.13/maps.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ Immutable maps support in addition operations to add and remove mappings by retu
5151
| **Additions and Updates:**| |
5252
| `ms.updated(k, v)`<br>or `ms + (k -> v)` |The map containing all mappings of `ms` as well as the mapping `k -> v` from key `k` to value `v`.|
5353
| **Removals:** | |
54-
| `ms.remove(k)`<br>or `ms - k` |The map containing all mappings of `ms` except for any mapping of key `k`.|
55-
| `ms.removeAll(ks)`<br>or `ms -- ks` |The map containing all mappings of `ms` except for any mapping with a key in `ks`.|
54+
| `ms.removed(k)`<br>or `ms - k` |The map containing all mappings of `ms` except for any mapping of key `k`.|
55+
| `ms.removedAll(ks)`<br>or `ms -- ks` |The map containing all mappings of `ms` except for any mapping with a key in `ks`.|
5656

5757
Mutable maps support in addition the operations summarized in the following table.
5858

_overviews/collections-2.13/trait-iterable.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ res7: List[Int] = List(3, 4, 5)
133133
| `xs.count(p)` |The number of elements in `xs` that satisfy the predicate `p`.|
134134
| **Folds:** | |
135135
| `xs.foldLeft(z)(op)` |Apply binary operation `op` between successive elements of `xs`, going left to right and starting with `z`.|
136-
| `xs.foldRight(z)(op)` |Apply binary operation `op` between successive elements of `xs`, going right to left and ending with `z`.|
136+
| `xs.foldRight(z)(op)` |Apply binary operation `op` between successive elements of `xs`, going right to left and starting with `z`.|
137137
| `xs.reduceLeft(op)` |Apply binary operation `op` between successive elements of non-empty collection `xs`, going left to right.|
138138
| `xs.reduceRight(op)` |Apply binary operation `op` between successive elements of non-empty collection `xs`, going right to left.|
139139
| **Specific Folds:** | |

_overviews/contribute/bug-reporting-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ If you cannot find your issue in the issue tracker, create a new bug. The detail
6565

6666
Please make sure to fill in as many fields as possible. Make sure you've indicated the following:
6767

68-
1. **Exact Scala version** that you are using. For example, `2.13.14` or `3.3.3`. If the bug happens in multiple versions indicate all of them.
68+
1. **Exact Scala version** that you are using. For example, `2.13.15` or `3.3.3`. If the bug happens in multiple versions indicate all of them.
6969
2. **The component** that is affected by the bug. For example, the Standard Library, Scaladoc, etc.
7070
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.
7171
4. **Running environment**. Are you running on Linux? Windows? What JVM version are you using?

_overviews/contribute/guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ This is the impatient developer's checklist for the steps to submit a bug-fix pu
4747
5. [Fix the bug, or implement the new small feature][hackers-implement], include new tests (yes, for bug fixes too).
4848
6. [Test, rinse][hackers-test] and [test some more][partest-guide] until [all the tests pass][hackers-verify].
4949
7. [Commit your changes][hackers-commit] to your feature branch in your fork. Please choose your commit message based on the [Git Hygiene](https://github.com/scala/scala#user-content-git-hygiene) section of the Scala project README.
50-
8. If necessary [re-write git history](https://git-scm.com/book/en/Git-Branching-Rebasing) so that [commits are organized by major steps to the fix/feature](
50+
8. If necessary [re-write git history](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) so that [commits are organized by major steps to the fix/feature](
5151
https://github.com/scala/scala#git-hygiene). For bug fixes, a single commit is requested, for features several commits may be desirable (but each separate commit must compile and pass all tests)
5252
9. [Submit a pull request][hackers-submit].
5353
10. [Work with a reviewer](https://github.com/scala/scala#reviewing) to [get your pull request merged in][hackers-review].

_overviews/contribute/hacker-guide.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Hacking Scala begins with creating a branch for your work item. To develop Scala
5151
and [GitHub](https://github.com/). This section of the guide provides a short walkthrough, but if you are new to Git,
5252
it probably makes sense to familiarize yourself with Git first. We recommend
5353

54-
* the [Git Pro](https://git-scm.com/book/en/) online book.
54+
* the [Git Pro](https://git-scm.com/book/en/v2) online book.
5555
* the help page on [Forking a Git Repository](https://help.github.com/articles/fork-a-repo).
5656
* this great training tool [LearnGitBranching](https://pcottle.github.io/learnGitBranching/). One-hour hands-on training helps more than 1000 hours reading.
5757

@@ -96,7 +96,7 @@ Since in our example, we're going to fix an existing bug
9696
16:39 ~/Projects/scala (master)$ git checkout -b ticket/6725
9797
Switched to a new branch 'ticket/6725'
9898

99-
If you are new to Git and branching, read the [Branching Chapter](https://git-scm.com/book/en/Git-Branching) in the Git Pro book.
99+
If you are new to Git and branching, read the [Branching Chapter](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell) in the Git Pro book.
100100

101101
### Build
102102

@@ -333,11 +333,11 @@ Let's go into each of these points in more detail.
333333

334334
### Commit
335335

336-
The [Git Basics](https://git-scm.com/book/en/Git-Basics) chapter in the Git online book covers most of the basic workflow during this stage.
336+
The [Git Basics](https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository) chapter in the Git online book covers most of the basic workflow during this stage.
337337
There are two things you should know here:
338338

339339
1. Commit messages are often the only way to understand the intentions of authors of code written a few years ago. Thus, writing a quality is of utmost importance. The more context you provide for the change you've introduced, the larger the chance that some future maintainer understand your intentions. Consult [the pull request policies](https://github.com/scala/scala/blob/2.12.x/CONTRIBUTING.md) for more information about the desired style of your commits.
340-
2. Keeping Scala's git history clean is also important. Therefore we won't accept pull requests for bug fixes that have more than one commit. For features, it is okay to have several commits, but all tests need to pass after every single commit. To clean up your commit structure, you want to [rewrite history](https://git-scm.com/book/en/Git-Branching-Rebasing) using `git rebase` so that your commits are against the latest revision of `master`.
340+
2. Keeping Scala's git history clean is also important. Therefore we won't accept pull requests for bug fixes that have more than one commit. For features, it is okay to have several commits, but all tests need to pass after every single commit. To clean up your commit structure, you want to [rewrite history](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) using `git rebase` so that your commits are against the latest revision of `master`.
341341

342342
Once you are satisfied with your work, synced with `master` and cleaned up your commits you are ready to submit a patch to the central Scala repository. Before proceeding make sure you have pushed all of your local changes to your fork on GitHub.
343343

0 commit comments

Comments
 (0)