-
Notifications
You must be signed in to change notification settings - Fork 1k
/
Copy pathoverviews.yml
355 lines (348 loc) · 17.7 KB
/
overviews.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
- category: Standard Library
description: "Guides and overviews covering the Scala standard library."
overviews:
- title: Scala Collections
by: Martin Odersky and Julien Richard-Foy
icon: sitemap
url: "collections-2.13/introduction.html"
description: "Scala's Collection Library."
subdocs:
- title: Introduction
url: "collections-2.13/introduction.html"
- title: Mutable and Immutable Collections
url: "collections-2.13/overview.html"
- title: Trait Iterable
url: "collections-2.13/trait-iterable.html"
- title: The sequence traits Seq, IndexedSeq, and LinearSeq
url: "collections-2.13/seqs.html"
- title: Concrete Immutable Collection Classes
url: "collections-2.13/concrete-immutable-collection-classes.html"
- title: Concrete Mutable Collection Classes
url: "collections-2.13/concrete-mutable-collection-classes.html"
- title: Arrays
url: "collections-2.13/arrays.html"
- title: Strings
url: "collections-2.13/strings.html"
- title: Performance Characteristics
url: "collections-2.13/performance-characteristics.html"
- title: Equality
url: "collections-2.13/equality.html"
- title: Views
url: "collections-2.13/views.html"
- title: Iterators
url: "collections-2.13/iterators.html"
- title: Creating Collections From Scratch
url: "collections-2.13/creating-collections-from-scratch.html"
- title: Conversions Between Java and Scala Collections
url: "collections-2.13/conversions-between-java-and-scala-collections.html"
- title: Migrating a Project to Scala 2.13's Collections
icon: sitemap
url: "core/collections-migration-213.html"
description: "This page describes the main changes for collection users that migrate to Scala
2.13 and shows how to cross-build projects with Scala 2.11 / 2.12 and 2.13."
- title: The Architecture of Scala Collections
icon: sitemap
url: "core/architecture-of-scala-213-collections.html"
by: Julien Richard-Foy
description: "These pages describe the architecture of the collections framework introduced in Scala 2.13. Compared to the Collections API you will find out more about the internal workings of the framework."
- title: Implementing Custom Collections
icon: building
url: "core/custom-collections.html"
by: Martin Odersky, Lex Spoon and Julien Richard-Foy
description: "In this document you will learn how the collections framework helps you define your own collections in a few lines of code, while reusing the overwhelming part of collection functionality from the framework."
- title: Adding Custom Collection Operations
icon: building
url: "core/custom-collection-operations.html"
by: Julien Richard-Foy
description: "This guide shows how to write operations that can be applied to any collection type and return the same collection type, and how to write operations that can be parameterized by the type of collection to build."
- category: Language
description: "Guides and overviews covering features in the Scala language."
overviews:
- title: "Migration from Scala 2 to Scala 3"
by: Adrien Piquerez
icon: suitcase
root: "scala3/guides/"
url: "migration/compatibility-intro.html"
description: "Everything you need to know about compatibility and migration to Scala 3."
- title: Scala 3 Macros
by: Nicolas Stucki
icon: magic
root: "scala3/guides/"
url: "macros"
description: "A detailed tutorial to cover all the features involved in writing macros in Scala 3."
label-text: new in Scala 3
- title: Value Classes and Universal Traits
by: Mark Harrah
description: "Value classes are a new mechanism in Scala to avoid allocating runtime objects. This is accomplished through the definition of new AnyVal subclasses."
icon: gem
url: "core/value-classes.html"
- title: An Overview of TASTy
by: Alvin Alexander
icon: birthday-cake
label-text: new in Scala 3
root: "scala3/guides/"
url: "tasty-overview.html"
description: "An overview over the TASTy format aimed at end-users of the Scala language."
- title: String Interpolation
icon: dollar-sign
url: "core/string-interpolation.html"
description: >
String Interpolation allows users to embed variable references directly in processed string literals. Here’s an example:
<pre><code>val name = "James"
println(s"Hello, $name") // Hello, James</code></pre>
In the above, the literal <code>s"Hello, $name"</code> is a processed string literal. This means that the compiler does some additional work to this literal. A processed string literal is denoted by a set of characters preceding the ". String interpolation was introduced by SIP-11, which contains all details of the implementation.
- title: Implicit Classes
by: Josh Suereth
description: "Scala 2.10 introduced a new feature called implicit classes. An implicit class is a class marked with the implicit keyword. This keyword makes the class’ primary constructor available for implicit conversions when the class is in scope."
url: "core/implicit-classes.html"
- title: The Scala Book
by: Alvin Alexander
icon: book
label-color: "#899295"
label-text: archived
url: "scala-book/introduction.html"
description: >
A light introduction to the Scala language, focused on Scala 2.
<a href="/scala3/book/introduction.html">Now updated for Scala 3</a>, we are in the process of merging the two.
- category: Authoring Libraries
description: "Guides for contributing open source libraries to the Scala ecosystem."
overviews:
- title: Library Author Guide
by: "Julien Richard-Foy"
icon: tasks
url: "contributors/index.html"
description: "Lists all the tools that library authors should setup to publish and document their libraries."
- category: Parallel and Concurrent Programming
description: "Complete guides covering some of Scala's libraries for parallel and concurrent programming."
overviews:
- title: Futures and Promises
by: "Philipp Haller, Aleksandar Prokopec, Heather Miller, Viktor Klang, Roland Kuhn, and Vojin Jovanovic"
icon: tasks
url: "core/futures.html"
description: "Futures provide a way to reason about performing many operations in parallel– in an efficient and non-blocking way. A Future is a placeholder object for a value that may not yet exist. Generally, the value of the Future is supplied concurrently and can subsequently be used. Composing concurrent tasks in this way tends to result in faster, asynchronous, non-blocking parallel code."
- title: Parallel Collections
by: Aleksandar Prokopec and Heather Miller
icon: rocket
url: "parallel-collections/overview.html"
description: "Scala's Parallel Collections Library."
subdocs:
- title: Overview
url: "parallel-collections/overview.html"
- title: Concrete Parallel Collection Classes
url: "parallel-collections/concrete-parallel-collections.html"
- title: Parallel Collection Conversions
url: "parallel-collections/conversions.html"
- title: Concurrent Tries
url: "parallel-collections/ctries.html"
- title: Architecture of the Parallel Collections Library
url: "parallel-collections/architecture.html"
- title: Creating Custom Parallel Collections
url: "parallel-collections/custom-parallel-collections.html"
- title: Configuring Parallel Collections
url: "parallel-collections/configuration.html"
- title: Measuring Performance
url: "parallel-collections/performance.html"
- category: Compatibility
description: "What works with what (or doesn't)."
overviews:
- title: JDK Version Compatibility
description: "Which Scala versions work on what JDK versions"
icon: coffee
url: "jdk-compatibility/overview.html"
- title: Binary Compatibility of Scala Releases
description: "When two versions of Scala are binary compatible, it is safe to compile your project on one Scala version and link against another Scala version at run time. Safe run-time linkage (only!) means that the JVM does not throw a (subclass of) LinkageError when executing your program in the mixed scenario, assuming that none arise when compiling and running on the same version of Scala. Concretely, this means you may have external dependencies on your run-time classpath that use a different version of Scala than the one you’re compiling with, as long as they’re binary compatible. In other words, separate compilation on different binary compatible versions does not introduce problems compared to compiling and running everything on the same version of Scala."
icon: puzzle-piece
url: "core/binary-compatibility-of-scala-releases.html"
- title: Binary Compatibility for Library Authors
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."
icon: puzzle-piece
url: "core/binary-compatibility-for-library-authors.html"
- title: Nightly Versions of Scala
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."
url: "core/nightlies.html"
- category: "Tools"
description: "Reference material on core Scala tools like the Scala REPL and Scaladoc generation."
overviews:
- title: Scala 2 REPL
icon: terminal
url: "repl/overview.html"
description: |
The Scala REPL is a tool (<code>scala</code>) for evaluating expressions in Scala.
<br><br>
The <code>scala</code> command will execute a source script by wrapping it in a template and then compiling and executing the resulting program
- title: Scaladoc For Scala 3
by: Krzysztof Romanowski, Aleksander Boruch-Gruszecki, Andrzej Ratajczak, Kacper Korban, Filip Zybała
icon: book
root: "scala3/guides/"
url: "scaladoc"
description: "Updates in Scala 3 to Scala’s API documentation generation tool."
label-text: updated
- title: Scaladoc
url: "scaladoc/overview.html"
icon: book
description: "Scala's API documentation generation tool."
subdocs:
- title: Overview
url: "scaladoc/overview.html"
- title: Scaladoc for Library Authors
url: "scaladoc/for-library-authors.html"
- title: Using the Scaladoc Interface
url: "scaladoc/interface.html"
- category: Compiler
description: "Guides and overviews covering the Scala compiler: compiler plugins, reflection, and metaprogramming tools such as macros."
overviews:
- title: Scala 2 Reflection
by: Heather Miller, Eugene Burmako, and Philipp Haller
icon: binoculars
url: "reflection/overview.html"
description: Scala's runtime/compile-time reflection framework.
label-text: removed in Scala 3
subdocs:
- title: Overview
url: "reflection/overview.html"
- title: Environment, Universes, and Mirrors
url: "reflection/environment-universes-mirrors.html"
- title: Symbols, Trees, and Types
url: "reflection/symbols-trees-types.html"
- title: Annotations, Names, Scopes, and More
url: "reflection/annotations-names-scopes.html"
- title: TypeTags and Manifests
url: "reflection/typetags-manifests.html"
- title: Thread Safety
url: "reflection/thread-safety.html"
- title: Changes in Scala 2.11
url: "reflection/changelog211.html"
- title: Scala 2 Macros
by: Eugene Burmako
icon: magic
url: "macros/usecases.html"
description: "Scala's metaprogramming framework."
label-text: removed in Scala 3
subdocs:
- title: Use Cases
url: "macros/usecases.html"
- title: Blackbox Vs Whitebox
url: "macros/blackbox-whitebox.html"
- title: Def Macros
url: "macros/overview.html"
- title: Quasiquotes
url: "quasiquotes/intro.html"
- title: Macro Bundles
url: "macros/bundles.html"
- title: Implicit Macros
url: "macros/implicits.html"
- title: Extractor Macros
url: "macros/extractors.html"
- title: Type Providers
url: "macros/typeproviders.html"
- title: Macro Annotations
url: "macros/annotations.html"
- title: Macro Paradise
url: "macros/paradise.html"
- title: Roadmap
url: "macros/roadmap.html"
- title: Changes in 2.11
url: "macros/changelog211.html"
- title: Quasiquotes in Scala 2
by: Denys Shabalin
icon: quote-left
url: "quasiquotes/setup.html"
description: "Quasiquotes are a convenient way to manipulate Scala syntax trees."
label-text: removed in Scala 3
subdocs:
- title: Dependencies and setup
url: "quasiquotes/setup.html"
- title: Introduction
url: "quasiquotes/intro.html"
- title: Lifting
url: "quasiquotes/lifting.html"
- title: Unlifting
url: "quasiquotes/unlifting.html"
- title: Hygiene
url: "quasiquotes/hygiene.html"
- title: Use cases
url: "quasiquotes/usecases.html"
- title: Syntax summary
url: "quasiquotes/syntax-summary.html"
- title: Expression details
url: "quasiquotes/expression-details.html"
- title: Type details
url: "quasiquotes/type-details.html"
- title: Pattern details
url: "quasiquotes/pattern-details.html"
- title: Definition and import details
url: "quasiquotes/definition-details.html"
- title: Terminology summary
url: "quasiquotes/terminology.html"
- title: Future prospects
url: "quasiquotes/future.html"
- title: Scala 2 Compiler Plugins
by: Lex Spoon and Seth Tisue
icon: puzzle-piece
url: "plugins/index.html"
description: "Compiler plugins permit customizing and extending the Scala compiler. This tutorial describes the plugin facility and walks you through how to create a simple plugin."
- title: Scala 2 Compiler Options
by: Community
icon: cog
url: "compiler-options/index.html"
description: "Various options to control how scalac compiles your code."
- title: Error Formatting
by: Torsten Schmits
icon: cog
url: "compiler-options/errors.html"
description: "A new engine for more user-friendly error messages, printing chains of dependent implicits and colored found/required type diffs."
- title: Optimizer
by: Lukas Rytz and Andrew Marki
icon: cog
url: "compiler-options/optimizer.html"
description: "The compiler can perform various optimizations."
- category: Legacy
description: "Guides covering features no longer relevant to recent Scala versions (2.12+)."
overviews:
- title: Scala 2.8 to 2.12’s Collections
by: Martin Odersky
icon: sitemap
url: "collections/introduction.html"
description: "Scala's Collection Library."
subdocs:
- title: Introduction
url: "collections/introduction.html"
- title: Mutable and Immutable Collections
url: "collections/overview.html"
- title: Trait Traversable
url: "collections/trait-traversable.html"
- title: Trait Iterable
url: "collections/trait-iterable.html"
- title: The sequence traits Seq, IndexedSeq, and LinearSeq
url: "collections/seqs.html"
- title: Sets
url: "collections/sets.html"
- title: Maps
url: "collections/maps.html"
- title: Concrete Immutable Collection Classes
url: "collections/concrete-immutable-collection-classes.html"
- title: Concrete Mutable Collection Classes
url: "collections/concrete-mutable-collection-classes.html"
- title: Arrays
url: "collections/arrays.html"
- title: Strings
url: "collections/strings.html"
- title: Performance Characteristics
url: "collections/performance-characteristics.html"
- title: Equality
url: "collections/equality.html"
- title: Views
url: "collections/views.html"
- title: Iterators
url: "collections/iterators.html"
- title: Creating Collections From Scratch
url: "collections/creating-collections-from-scratch.html"
- title: Conversions Between Java and Scala Collections
url: "collections/conversions-between-java-and-scala-collections.html"
- title: Migrating from Scala 2.7
url: "collections/migrating-from-scala-27.html"
- title: The Architecture of Scala 2.8 to 2.12’s Collections
icon: building
url: "core/architecture-of-scala-collections.html"
by: Martin Odersky and Lex Spoon
description: "These pages describe the architecture of the Scala collections framework in detail. Compared to the Collections API you will find out more about the internal workings of the framework. You will also learn how this architecture helps you define your own collections in a few lines of code, while reusing the overwhelming part of collection functionality from the framework."