-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathrelease-notes-0.1.2.html
451 lines (451 loc) · 53.9 KB
/
release-notes-0.1.2.html
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
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
<!DOCTYPE html><html data-githubContributorsUrl="https://api.github.com/repos/scala/scala3" data-githubContributorsFilename="/docs/_docs/release-notes-0.1.2.md" data-pathToRoot="" data-rawLocation="release-notes-0.1.2" data-dynamicSideMenu="false"><head><meta charset="utf-8"></meta><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"></meta><title>0.1.2 release notes</title><link rel="shortcut icon" type="image/x-icon" href="favicon.ico"></link><script type="text/javascript" src="scripts/theme.js"></script><script type="text/javascript" src="scripts/searchData.js" defer="true"></script><script type="text/javascript" src="scripts/scastieConfiguration.js" defer="true"></script><link rel="stylesheet" href="styles/theme/bundle.css"></link><link rel="stylesheet" href="styles/theme/components/bundle.css"></link><link rel="stylesheet" href="styles/theme/components/button/bundle.css"></link><link rel="stylesheet" href="styles/theme/layout/bundle.css"></link><link rel="stylesheet" href="styles/nord-light.css"></link><link rel="stylesheet" href="styles/dotty-icons.css"></link><link rel="stylesheet" href="styles/filter-bar.css"></link><link rel="stylesheet" href="styles/code-snippets.css"></link><link rel="stylesheet" href="styles/searchbar.css"></link><link rel="stylesheet" href="styles/social-links.css"></link><link rel="stylesheet" href="styles/versions-dropdown.css"></link><link rel="stylesheet" href="styles/content-contributors.css"></link><link rel="stylesheet" href="styles/fontawesome.css"></link><script type="text/javascript" src="hljs/highlight.pack.js" defer="true"></script><script type="text/javascript" src="scripts/hljs-scala3.js" defer="true"></script><script type="text/javascript" src="scripts/ux.js" defer="true"></script><script type="text/javascript" src="scripts/common/component.js" defer="true"></script><script type="text/javascript" src="scripts/common/utils.js" defer="true"></script><script type="text/javascript" src="scripts/components/FilterBar.js" defer="true"></script><script type="text/javascript" src="scripts/components/DocumentableList.js" defer="true"></script><script type="text/javascript" src="scripts/components/Input.js" defer="true"></script><script type="text/javascript" src="scripts/components/FilterGroup.js" defer="true"></script><script type="text/javascript" src="scripts/components/Filter.js" defer="true"></script><script type="text/javascript" src="scripts/scaladoc-scalajs.js" defer="true"></script><script type="text/javascript" src="scripts/contributors.js" defer="true"></script><script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js" defer="true"></script><script type="text/javascript" src="https://d3js.org/d3.v6.min.js" defer="true"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/graphlib-dot@0.6.2/dist/graphlib-dot.min.js" defer="true"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/dagre-d3/0.6.1/dagre-d3.min.js" defer="true"></script><script type="text/javascript" src="https://scastie.scala-lang.org/embedded.js" defer="true"></script><script type="text/javascript" src="scripts/data.js" defer="true"></script><link rel="stylesheet" href="styles/staticsitestyles.css"></link><script>var pathToRoot = "";</script><script>var versionsDictionaryUrl = "https://scala-lang.org/api/versions.json";</script><link rel="dns-prefetch" href="//fonts.googleapis.com">
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="/css/dottydoc.css"></head><body><div id=""><div id="header" class="body-small"><div class="header-container-left"><a href="" class="logo-container"><span id="project-logo" class="project-logo"><img src="project-logo/logo.svg"></img></span><span id="dark-project-logo" class="project-logo"><img src="project-logo/logo_dark.svg"></img></span><span class="project-name h300">Scala 3</span></a><span onclick="dropdownHandler(event)" class="text-button with-arrow" id="dropdown-trigger"><a><div class="projectVersion">3.7.0-RC1-bin-20250118-b801042-NIGHTLY</div></a></span><div id="version-dropdown" class="dropdown-menu"></div></div><div class="header-container-right"><button id="search-toggle" class="icon-button"></button><a href="https://docs.scala-lang.org/" class="text-button">Learn</a><a href="https://www.scala-lang.org/download/" class="text-button">Install</a><a href="https://scastie.scala-lang.org" class="text-button">Playground</a><a href="https://index.scala-lang.org" class="text-button">Find A Library</a><a href="https://www.scala-lang.org/community/" class="text-button">Community</a><a href="https://www.scala-lang.org/blog/" class="text-button">Blog</a><span id="theme-toggle" class="icon-button"></span><span id="mobile-menu-toggle" class="icon-button hamburger"></span></div></div><div id="mobile-menu"><div class="mobile-menu-header body-small"><span class="mobile-menu-logo"><span id="project-logo" class="project-logo"><img src="project-logo/logo.svg"></img></span><span id="dark-project-logo" class="project-logo"><img src="project-logo/logo_dark.svg"></img></span><span class="project-name h300">Scala 3</span></span><button id="mobile-menu-close" class="icon-button close"></button></div><div class="mobile-menu-container body-medium"><input id="mobile-scaladoc-searchbar-input" class="scaladoc-searchbar-input" type="search" placeholder="Find anything"></input><a href="https://docs.scala-lang.org/" class="mobile-menu-item">Learn</a><a href="https://www.scala-lang.org/download/" class="mobile-menu-item">Install</a><a href="https://scastie.scala-lang.org" class="mobile-menu-item">Playground</a><a href="https://index.scala-lang.org" class="mobile-menu-item">Find A Library</a><a href="https://www.scala-lang.org/community/" class="mobile-menu-item">Community</a><a href="https://www.scala-lang.org/blog/" class="mobile-menu-item">Blog</a><span id="mobile-theme-toggle" class="mobile-menu-item mode"></span></div></div><span id="mobile-sidebar-toggle" class="floating-button"></span><div id="leftColumn" class="body-small"><div class="switcher-container"><a id="docs-nav-button" class="switcher h100 " href="index.html">Docs</a><a id="api-nav-button" class="switcher h100 " href="api/index.html">API</a></div><nav id="docs-nav" class="side-menu"><div class="ni n0"><span class="nh de"><button class="ar icon-button "></button><a href="docs/reference/index.html"><span>Reference</span></a></span><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/reference/new-types/index.html"><span>New Types</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/reference/new-types/intersection-types.html"><span>Intersection Types</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/new-types/union-types.html"><span>Union Types</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/new-types/type-lambdas.html"><span>Type Lambdas</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/new-types/match-types.html"><span>Match Types</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/new-types/dependent-function-types.html"><span>Dependent Function Types</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/new-types/polymorphic-function-types.html"><span>Polymorphic Function Types</span></a></span></div></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/reference/enums/index.html"><span>Enums</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/reference/enums/enums.html"><span>Enumerations</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/enums/adts.html"><span>Algebraic Data Types</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/enums/desugarEnums.html"><span>Translation of Enums and ADTs</span></a></span></div></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/reference/contextual/index.html"><span>Contextual Abstractions</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/givens.html"><span>Given Instances</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/using-clauses.html"><span>Using Clauses</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/context-bounds.html"><span>Context Bounds</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/deferred-givens.html"><span>Deferred Givens</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/given-imports.html"><span>Importing Givens</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/more-givens.html"><span>Other Forms Of Givens</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/extension-methods.html"><span>Extension Methods</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/right-associative-extension-methods.html"><span>Right-Associative Extension Methods: Details</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/type-classes.html"><span>Implementing Type classes</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/derivation.html"><span>Type Class Derivation</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/derivation-macro.html"><span>How to write a type class `derived` method using macros</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/multiversal-equality.html"><span>Multiversal Equality</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/context-functions.html"><span>Context Functions</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/conversions.html"><span>Implicit Conversions</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/by-name-context-parameters.html"><span>By-Name Context Parameters</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/contextual/relationship-implicits.html"><span>Relationship with Scala 2 Implicits</span></a></span></div></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/reference/metaprogramming/index.html"><span>Metaprogramming</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/reference/metaprogramming/inline.html"><span>Inline</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/metaprogramming/compiletime-ops.html"><span>Compile-time operations</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/metaprogramming/macros.html"><span>Macros</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/metaprogramming/simple-smp.html"><span>The Meta-theory of Symmetric Metaprogramming</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/metaprogramming/staging.html"><span>Run-Time Multi-Stage Programming</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/metaprogramming/reflection.html"><span>Reflection</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/metaprogramming/tasty-inspect.html"><span>TASTy Inspection</span></a></span></div></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/reference/other-new-features/index.html"><span>Other New Features</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/trait-parameters.html"><span>Trait Parameters</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/transparent-traits.html"><span>Transparent Traits and Classes</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/creator-applications.html"><span>Universal Apply Methods</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/export.html"><span>Export Clauses</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/opaques.html"><span>Opaque Type Aliases</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/opaques-details.html"><span>Opaque Type Aliases: More Details</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/open-classes.html"><span>Open Classes</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/parameter-untupling.html"><span>Parameter Untupling</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/kind-polymorphism.html"><span>Kind Polymorphism</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/matchable.html"><span>The Matchable Trait</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/threadUnsafe-annotation.html"><span>The @threadUnsafe annotation</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/targetName.html"><span>The @targetName annotation</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/control-syntax.html"><span>New Control Syntax</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/indentation.html"><span>Optional Braces</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/safe-initialization.html"><span>Safe Initialization</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/type-test.html"><span>TypeTest</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/experimental-defs.html"><span>Experimental Definitions</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/other-new-features/binary-literals.html"><span>Binary Integer Literals</span></a></span></div></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/reference/changed-features/index.html"><span>Other Changed Features</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/numeric-literals.html"><span>Numeric Literals</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/structural-types.html"><span>Programmatic Structural Types</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/operators.html"><span>Rules for Operators</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/wildcards.html"><span>Wildcard Arguments in Types</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/imports.html"><span>Imports</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/type-inference.html"><span>Changes in Type Inference</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/implicit-resolution.html"><span>Changes in Implicit Resolution</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/implicit-conversions.html"><span>Implicit Conversions</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/overload-resolution.html"><span>Changes in Overload Resolution</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/match-syntax.html"><span>Match Expressions</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/vararg-splices.html"><span>Vararg Splices</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/pattern-bindings.html"><span>Pattern Bindings</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/pattern-matching.html"><span>Option-less pattern matching</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/eta-expansion.html"><span>Automatic Eta Expansion</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/compiler-plugins.html"><span>Changes in Compiler Plugins</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/lazy-vals-init.html"><span>Lazy Vals Initialization</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/main-functions.html"><span>Main Methods</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/changed-features/interpolation-escapes.html"><span>Escapes in interpolations</span></a></span></div></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/reference/dropped-features/index.html"><span>Dropped Features</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/delayed-init.html"><span>Dropped: DelayedInit</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/macros.html"><span>Dropped: Scala 2 Macros</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/existential-types.html"><span>Dropped: Existential Types</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/type-projection.html"><span>Dropped: General Type Projection</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/do-while.html"><span>Dropped: Do-While</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/procedure-syntax.html"><span>Dropped: Procedure Syntax</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/package-objects.html"><span>Dropped: Package Objects</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/early-initializers.html"><span>Dropped: Early Initializers</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/class-shadowing.html"><span>Dropped: Class Shadowing</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/limit22.html"><span>Dropped: Limit 22</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/xml.html"><span>Dropped: XML Literals</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/symlits.html"><span>Dropped: Symbol Literals</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/auto-apply.html"><span>Dropped: Auto-Application</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/weak-conformance.html"><span>Dropped: Weak Conformance</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/nonlocal-returns.html"><span>Deprecated: Nonlocal Returns</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/this-qualifier.html"><span>Dropped: private[this] and protected[this]</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/dropped-features/wildcard-init.html"><span>Dropped: Wildcard Initializer</span></a></span></div></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/reference/experimental/index.html"><span>Experimental</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/canthrow.html"><span>CanThrow Capabilities</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/erased-defs.html"><span>Erased Definitions</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/named-typeargs.html"><span>Named Type Arguments</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/numeric-literals.html"><span>Numeric Literals</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/explicit-nulls.html"><span>Explicit Nulls</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/main-annotation.html"><span>MainAnnotation</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/into-modifier.html"><span>The `into` Type Modifier</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/cc.html"><span>Capture Checking</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/purefuns.html"><span>Pure Function Syntax</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/tupled-function.html"><span>Tupled Function</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/named-tuples.html"><span>Named Tuples</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/modularity.html"><span>Modularity Improvements</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/typeclasses.html"><span>Better Support for Type Classes</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/runtimeChecked.html"><span>The runtimeChecked method</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/experimental/better-fors.html"><span>Better fors</span></a></span></div></div><div class="ni n1 "><span class="nh de"><a href="docs/reference/syntax.html"><span>Scala 3 Syntax Summary</span></a></span></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/reference/language-versions/index.html"><span>Language Versions</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/reference/language-versions/source-compatibility.html"><span>Source Compatibility</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/reference/language-versions/binary-compatibility.html"><span>Binary Compatibility</span></a></span></div></div><div class="ni n1 "><span class="nh de"><a href="docs/reference/soft-modifier.html"><span>Soft Keywords</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/reference/features-classification.html"><span>A Classification of Proposed Language Features</span></a></span></div></div><div class="ni n0"><span class="nh de"><button class="ar icon-button "></button><a href="docs/contributing/index.html"><span>Contributing</span></a></span><div class="ni n1 "><span class="nh de"><a href="docs/contributing/getting-started.html"><span>Getting Started</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/contributing/setting-up-your-ide.html"><span>Setting up your IDE</span></a></span></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/contributing/diagnosing-your-issue/index.html"><span>Diagnosing your issue</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/contributing/diagnosing-your-issue/reproduce.html"><span>Reproducing an Issue</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/contributing/diagnosing-your-issue/cause.html"><span>Finding the Cause of an Issue</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/contributing/diagnosing-your-issue/areas.html"><span>Common Issue Locations</span></a></span></div></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/contributing/debugging-the-compiler/index.html"><span>Debugging the Compiler</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/contributing/debugging-the-compiler/ide-debugging.html"><span>Debugging with your IDE</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/contributing/debugging-the-compiler/inspection.html"><span>How to Inspect Values</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/contributing/debugging-the-compiler/other-debugging.html"><span>Other Debugging Techniques</span></a></span></div></div><div class="ni n1 "><span class="nh de"><a href="docs/contributing/testing.html"><span>Testing Your Changes</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/contributing/scaladoc.html"><span>Scaladoc</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/contributing/community-build.html"><span>Community Build</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/contributing/sending-in-a-pr.html"><span>Sending in a pull request</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/contributing/cheatsheet.html"><span>Command Cheatsheet</span></a></span></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/contributing/procedures/index.html"><span>Procedures</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/contributing/procedures/release.html"><span>Release Procedure</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/contributing/procedures/vulpix.html"><span>Test Vulpix Framework</span></a></span></div></div><div class="ni n1"><span class="nh de"><button class="ar icon-button "></button><a href="docs/contributing/architecture/index.html"><span>High Level Architecture</span></a></span><div class="ni n2 "><span class="nh de"><a href="docs/contributing/architecture/lifecycle.html"><span>Compiler Overview</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/contributing/architecture/context.html"><span>Contexts</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/contributing/architecture/phases.html"><span>Compiler Phases</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/contributing/architecture/types.html"><span>Compiler Types</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/contributing/architecture/time.html"><span>Time in the Compiler</span></a></span></div><div class="ni n2 "><span class="nh de"><a href="docs/contributing/architecture/symbols.html"><span>Symbols</span></a></span></div></div></div><div class="ni n0"><span class="nh de"><button class="ar icon-button "></button><a href="docs/internals/index.html"><span>Internals</span></a></span><div class="ni n1 "><span class="nh de"><a href="docs/internals/backend.html"><span>Backend Internals</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/classpaths.html"><span>Classpaths</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/contexts.html"><span>Contexts</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/dotc-scalac.html"><span>Differences between Scalac and Dotty</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/higher-kinded-v2.html"><span>Higher-Kinded Types in Dotty</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/overall-structure.html"><span>Dotty Overall Structure</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/explicit-nulls.html"><span>Explicit Nulls</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/periods.html"><span>Dotc's concept of time</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/syntax.html"><span>Scala 3 Syntax Summary</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/type-system.html"><span>Type System</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/dotty-internals-1-notes.html"><span>Dotty Internals 1: Trees & Symbols (Meeting Notes)</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/debug-macros.html"><span>Debug Macros</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/gadts.html"><span>GADTs - Broad overview</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/coverage.html"><span>Code Coverage for Scala 3</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="docs/internals/best-effort-compilation.html"><span>Best Effort Compilation</span></a></span></div></div><div class="ni n0"><span class="nh de"><button class="ar icon-button "></button><a href="blog/index.html"><span>Blog (archive)</span></a></span><div class="ni n1 "><span class="nh de"><a href="blog/2021/06/25/scala301-rc2.html"><span>Scala 3.0.1-RC2 – backports of critical bugfixes</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2021/06/07/scala3.0.1-rc1-release.html"><span>Scala 3.0.1-RC1 – further stabilising the compiler</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2021/04/21/scala3-rc3.html"><span>Scala 3.0.0-RC3 – bug fixes for 3.0.0 stable</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2021/03/31/scala3-rc2.html"><span>Scala 3.0.0-RC2 – getting ready for 3.0.0</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2021/02/17/scala3-rc1.html"><span>Scala 3.0.0-RC1 – first release candidate is here</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2020/12/18/scala3-m3.html"><span>Scala 3.0.0-M3: developer's preview before RC1</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2020/11/09/scala3-m1.html"><span>Scala 3.0.0-M1 is here</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2020/09/21/naming-schema-change.html"><span>Dotty becomes Scala 3</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2020/08/31/27th-dotty-milestone-release.html"><span>Announcing Dotty 0.27.0-RC1 - ScalaJS, performance, stability</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2020/07/27/26th-dotty-milestone-release.html"><span>Announcing Dotty 0.26.0-RC1 - unified extension methods and more</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2020/06/22/25th-dotty-milestone-release.html"><span>Announcing Dotty 0.25.0-RC2 - speed-up of givens and change in the tuple API</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2020/04/29/24th-dotty-milestone-release.html"><span>Announcing Dotty 0.24.0-RC1 - 2.13.2 standard library, better error messages and more</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2020/03/18/23rd-dotty-milestone-release.html"><span>Announcing Dotty 0.23.0-RC1 - safe initialization checks, type-level bitwise operations and more</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2020/02/05/22nd-dotty-milestone-release.html"><span>Announcing Dotty 0.22.0-RC1 - syntactic enhancements, type-level arithmetic and more</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2019/12/20/21th-dotty-milestone-release.html"><span>Announcing Dotty 0.21.0-RC1 - explicit nulls, new syntax for `match` and conditional givens, and more</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2019/11/04/20th-dotty-milestone-release.html"><span>Announcing Dotty 0.20.0-RC1 – `with` starting indentation blocks, inline given specializations and more</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2019/09/23/19th-dotty-milestone-release.html"><span>Announcing Dotty 0.19.0-RC1 – further refinements of the syntax and the migration to 2.13.1 standard library</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2019/08/30/18th-dotty-milestone-release.html"><span>Announcing Dotty 0.18.1-RC1 – switch to the 2.13 standard library, indentation-based syntax and other experiments</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2019/07/25/17th-dotty-milestone-release.html"><span>Announcing Dotty 0.17.0-RC1 – new implicit scoping rules and more</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2019/06/11/16th-dotty-milestone-release.html"><span>Announcing Dotty 0.16.0-RC3 – the Scala Days 2019 Release</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2019/05/23/15th-dotty-milestone-release.html"><span>Announcing Dotty 0.15.0-RC1 – the fully bootstrapped compiler</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2019/04/15/14th-dotty-milestone-release.html"><span>Announcing Dotty 0.14.0-RC1 with export, immutable arrays, creator applications and more</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2019/03/05/13th-dotty-milestone-release.html"><span>Announcing Dotty 0.13.0-RC1 with Spark support, top level definitions and redesigned implicits</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2019/01/21/12th-dotty-milestone-release.html"><span>Announcing Dotty 0.12.0-RC1</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2018/11/30/11th-dotty-milestone-release.html"><span>Announcing Dotty 0.11.0-RC1</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2018/10/10/10th-dotty-milestone-release.html"><span>Announcing Dotty 0.10.0-RC1</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2018/07/06/ninth-dotty-milestone-release.html"><span>Announcing Dotty 0.9.0-RC1</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2018/04/27/eighth-dotty-milestone-release.html"><span>Announcing Dotty 0.7.0 and 0.8.0-RC1</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2018/03/05/seventh-dotty-milestone-release.html"><span>Announcing Dotty 0.6.0 and 0.7.0-RC1</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2017/12/01/fifth-dotty-milestone-release.html"><span>Announcing Dotty 0.5.0-RC1</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2017/10/16/fourth-dotty-milestone-release.html"><span>Announcing Dotty 0.4.0-RC1</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2017/09/07/third-dotty-milestone-release.html"><span>Announcing Dotty 0.3.0-RC2</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2017/07/12/second-dotty-milestone-release.html"><span>Announcing Dotty 0.2.0-RC1, with new optimizations, improved stability and IDE support</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2017/05/31/first-dotty-milestone-release.html"><span>Announcing Dotty 0.1.2-RC1, a major step towards Scala 3</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2016/12/05/implicit-function-types.html"><span>Implicit Function Types</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2016/05/05/multiversal-equality.html"><span>Multiversal Equality for Scala</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2016/02/17/scaling-dot-soundness.html"><span>Scaling DOT to Scala - Soundness</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2016/02/03/essence-of-scala.html"><span>The Essence of Scala</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2016/01/02/new-year-resolutions.html"><span>New Year Resolutions</span></a></span></div><div class="ni n1 "><span class="nh de"><a href="blog/2015/10/23/dotty-compiler-bootstraps.html"><span>We got liftoff!</span></a></span></div></div></nav></div><div id="footer" class="body-small"><div class="left-container">Generated with</div><div class="right-container"><a href="https://github.com/scala/scala3"><button class="icon-button gh"></button></a><a href="https://discord.com/invite/scala"><button class="icon-button discord"></button></a><a href="https://twitter.com/scala_lang"><button class="icon-button twitter"></button></a><div class="text">Copyright (c) 2002-2025, LAMP/EPFL</div></div><div class="text-mobile">Copyright (c) 2002-2025, LAMP/EPFL</div></div><div id="scaladoc-searchBar"></div><div id="main"><div class="breadcrumbs container"><a href="index.html">Scala 3</a>/<a href="release-notes-0.1.2.html">0.1.2 release notes</a></div><div id="content" class="body-medium"><div><div id="content-wrapper">
<div class="site-container">
<div id="site-header"></div>
<main>
<header>
<a class="text-button with-link body-small" href="https://github.com/scala/scala3/edit/main/docs/_docs/release-notes-0.1.2.md">Edit this page on GitHub</a>
<h1 class="h600">0.1.2 release notes</h1>
</header>
<p class="body-large first-p">0.1.2 will be the first public release of Dotty. Being the first one, these notes are incomplete. This document is a work in progress until 0.1.2-final is released. These notes are up-to-date based on 0.1.2-RC1 and will be updated with changes that happen during the RC stabilization cycle.</p>
<section id="required-java-version-1">
<h1 class="h500"><a href="#required-java-version-1" class="anchor"></a>Required Java Version</h1>
<p>Dotty 0.1.2 targets Java 8. We don't have plans to add support for earlier versions of Java.</p>
</section>
<section id="ide-support-for-dotty-1">
<h1 class="h500"><a href="#ide-support-for-dotty-1" class="anchor"></a>IDE support for Dotty</h1>
</section>
<section id="reporting-bugs--known-issues-1">
<h1 class="h500"><a href="#reporting-bugs--known-issues-1" class="anchor"></a>Reporting Bugs / Known Issues</h1>
<p>Please <a href="https://github.com/scala/scala3/issues">file</a> any bugs you encounter. If you’re unsure whether something is a bug, please ask on the Dotty <a href="https://github.com/lampepfl/dotty">gitter channel</a>.</p>
</section>
<section id="dotty-doc-1">
<h1 class="h500"><a href="#dotty-doc-1" class="anchor"></a>Dotty Doc</h1>
<p>Dotty has added support for Dotty Doc. Actually, the dotty documentation site <a href="https://dotty.epfl.ch/docs/">https://dotty.epfl.ch/docs/</a> is generated by it. Looks nice, doesn’t it?</p>
<p>#Other implemented features:</p>
<p>This release ships with the following features:</p>
<ul>
<li>TASTY support by <a href="https://twitter.com/odersky">@odersky</a>, <a href="https://github.com/xeno-by">@xeno-by</a> and <a href="https://twitter.com/DarkDimius">@darkdimius</a> <a href="https://docs.google.com/document/d/1h3KUMxsSSjyze05VecJGQ5H2yh7fNADtIf3chD3_wr0/edit">[1]</a></li>
<li>HK-types support by <a href="https://twitter.com/odersky">@odersky</a>, <a href="https://github.com/smarter">@smarter</a> and <a href="https://twitter.com/DarkDimius">@darkdimius</a> <a href="https://infoscience.epfl.ch/record/222780?ln=en">[2]</a></li>
<li>Intersection and Union Types by <a href="https://twitter.com/odersky">@odersky</a> <a href="docs/reference/new-types/intersection-types.html">[3]</a> <a href="docs/reference/new-types/intersection-types.html">[4]</a></li>
<li>Enumerations by <a href="https://twitter.com/odersky">@odersky</a> <a href="docs/reference/new-types/union-types.html">[4]</a> <a href="docs/reference/enums/adts.html">[5]</a> <a href="docs/reference/enums/desugarEnums.html">[6]</a></li>
<li>Implicit By-Name Parameters by <a href="https://twitter.com/odersky">@odersky</a> <a href="docs/reference/contextual/by-name-context-parameters.html">[7]</a></li>
<li>Miniphases-based design by <a href="https://twitter.com/DarkDimius">@darkdimius</a>, <a href="https://twitter.com/odersky">@odersky</a> and <a href="https://plg.uwaterloo.ca/~olhotak/">@olhotak</a> <a href="https://infoscience.epfl.ch/record/228518">[8]</a></li>
<li><code>@static</code> methods support by [@darkdmius] <a href="http://docs.scala-lang.org/sips/pending/static-members.html">[9]</a></li>
<li>Non-blocking lazy vals by <a href="https://twitter.com/DarkDimius">@darkdimius</a> <a href="http://docs.scala-lang.org/sips/pending/improved-lazy-val-initialization.html">[10]</a></li>
<li>JVM code emission by <a href="https://github.com/magarciaEPFL">@magarciaEPFL</a> and <a href="https://twitter.com/DarkDimius">@darkdimius</a> <a href="http://magarciaepfl.github.io/scala/">[11]</a></li>
<li>Efficient multi-dimensional array allocation by <a href="https://twitter.com/DarkDimius">@darkdimius</a> <a href="https://github.com/scala/scala3/commit/b2215ed23311b2c99ea638f9d7fcad9737dba588">[12]</a></li>
<li>Default-method based trait composition <a href="https://twitter.com/odersky">@odersky</a> and <a href="https://twitter.com/DarkDimius">@darkdimius</a> <a href="https://github.com/scala/scala3/pull/187">[13]</a> <a href="https://github.com/scala/scala3/pull/217">[14]</a></li>
<li>Trait parameters by <a href="https://twitter.com/odersky">@odersky</a> <a href="docs/reference/other-new-features/trait-parameters.html">[15]</a></li>
<li>Working contravariant implicits by <a href="https://twitter.com/odersky">@odersky</a> <a href="https://github.com/scala/scala3/commit/89540268e6c49fb92b9ca61249e46bb59981bf5a">[16]</a></li>
<li>Option-less pattern matching by <a href="https://twitter.com/odersky">@odersky</a>, <a href="https://twitter.com/DarkDimius">@darkdimius</a> and <a href="https://github.com/OlivierBlanvillain">@OlivierBlanvillain</a> <a href="https://github.com/scala/scala3/pull/174">[17]</a></li>
<li>SAM-based anonymous functions by <a href="https://github.com/magarciaEPFL">@magarciaEPFL</a>, <a href="https://twitter.com/DarkDimius">@darkdimius</a> and <a href="https://github.com/retronym">@retronym</a> <a href="https://github.com/scala/scala3/pull/488">[18]</a></li>
<li>Pattern matching support by <a href="https://twitter.com/DarkDimius">@darkdimius</a> <a href="https://github.com/scala/scala3/pull/174">[19]</a></li>
<li>Value classes support by <a href="https://github.com/smarter">@smarter</a> and <a href="https://twitter.com/DarkDimius">@darkdimius</a> <a href="https://github.com/scala/scala3/pull/411">[20]</a></li>
<li>Pattern matching exhaustivity checks by <a href="https://github.com/liufengyun">@liufengyun</a> <a href="https://github.com/scala/scala3/pull/1364">[21]</a></li>
<li>Tailrec optimization by <a href="https://twitter.com/DarkDimius">@darkdimius</a> <a href="https://github.com/scala/scala3/pull/1227">[22]</a> <a href="https://github.com/scala/scala3/pull/117">[23]</a></li>
<li>Language server protocol implementation by <a href="https://github.com/smarter">@smarter</a> <a href="https://github.com/scala/scala3/pull/2532">[24]</a></li>
<li>VS code plugin by <a href="https://github.com/smarter">@smarter</a> <a href="https://github.com/scala/scala3/pull/2532">[24]</a></li>
<li>Vulpix: new test-suite driver by <a href="https://twitter.com/felixmulder">@felixmulder</a> that replaces partest by <a href="https://github.com/vsalvis">@vsalvis</a> <a href="https://github.com/scala/scala3/pull/2194">[25]</a></li>
<li>Java parser by <a href="https://plg.uwaterloo.ca/~olhotak/">@olhotak</a> <a href="https://github.com/scala/scala3/pull/213">[26]</a></li>
<li>Local optimizations(-optimise) by <a href="https://twitter.com/DarkDimius">@darkdimius</a> and <a href="https://github.com/OlivierBlanvillain">@OlivierBlanvillain</a> <a href="https://github.com/scala/scala3/pull/2513">[27]</a></li>
<li>sbt support by <a href="https://github.com/smarter">@smarter</a> <a href="https://github.com/scala/scala3/pull/2361">[28]</a></li>
<li>DottyDoc by <a href="https://twitter.com/felixmulder">@felixmulder</a> <a href="https://github.com/scala/scala3/pull/1453">[29]</a></li>
<li>Implicit Function Types by <a href="https://twitter.com/odersky">@odersky</a> <a href="docs/reference/contextual/context-functions.html">[30]</a></li>
<li>Phantom Types by <a href="https://github.com/nicolasstucki">@nicolasstucki</a> <a href="https://github.com/scala/scala3/pull/2136">[31]</a></li>
<li>Functions with more than 22 parameters by <a href="https://twitter.com/odersky">@odersky</a> <a href="https://github.com/scala/scala3/pull/1758">[32]</a></li>
<li>Inline keyword by <a href="https://twitter.com/odersky">@odersky</a> <a href="docs/reference/metaprogramming/inline.html">[33]</a></li>
</ul>
</section>
<section id="contributors-15">
<h1 class="h500"><a href="#contributors-15" class="anchor"></a>Contributors</h1>
<p>The Dotty team and contributors have closed 750 issues and have merged a total of 1258 pull requests.</p>
<p>Concretely, according to</p>
<div class="snippet mono-small-block">
<pre><code class="language-"><span line-number="1" class=""><span class="tooltip-container"></span>git ls-tree -r -z --name-only HEAD -- |egrep -z -Z -E '\.(scala)$'| xargs -0 -n1 git blame --line-porcelain |grep "^author "|sort|uniq -c|sort -nr
</span></code></pre>
<div class="buttons"></div>
</div>
<p>71 people contributed code, tests, and/or documentation to Dotty 0.1.2-RC1. The following people have contributed to this release:</p>
<table>
<thead>
<tr>
<th>commits</th>
<th>blame lines</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>4346</td>
<td>82017</td>
<td>Martin Odersky</td>
</tr>
<tr>
<td>1288</td>
<td>83070</td>
<td>Dmitry Petrashko</td>
</tr>
<tr>
<td>19</td>
<td>35382</td>
<td>Samuel Gruetter</td>
</tr>
<tr>
<td>826</td>
<td>20148</td>
<td>Felix Mulder</td>
</tr>
<tr>
<td>567</td>
<td>10454</td>
<td>Guillaume Martres</td>
</tr>
<tr>
<td>136</td>
<td>5311</td>
<td>liu fengyun</td>
</tr>
<tr>
<td>189</td>
<td>4449</td>
<td>Nicolas Stucki</td>
</tr>
<tr>
<td>21</td>
<td>3717</td>
<td>Sébastien Doeraene</td>
</tr>
<tr>
<td>30</td>
<td>1711</td>
<td>Ondrej Lhotak</td>
</tr>
<tr>
<td>33</td>
<td>1094</td>
<td>Enno Runne</td>
</tr>
<tr>
<td>47</td>
<td>735</td>
<td>Olivier Blanvillain</td>
</tr>
<tr>
<td>4</td>
<td>480</td>
<td>Valthor Halldorsson</td>
</tr>
<tr>
<td>7</td>
<td>343</td>
<td>Aleksander Boruch-Gruszecki</td>
</tr>
<tr>
<td>25</td>
<td>220</td>
<td>VladimirNik</td>
</tr>
<tr>
<td>3</td>
<td>186</td>
<td>Enno</td>
</tr>
<tr>
<td>8</td>
<td>143</td>
<td>Clemens Winter</td>
</tr>
<tr>
<td>16</td>
<td>133</td>
<td>Jason Zaugg</td>
</tr>
<tr>
<td>3</td>
<td>116</td>
<td>Miron Aseev</td>
</tr>
<tr>
<td>4</td>
<td>109</td>
<td>Shane Delmore</td>
</tr>
<tr>
<td>5</td>
<td>100</td>
<td>Alexander Myltsev</td>
</tr>
<tr>
<td>5</td>
<td>96</td>
<td>Abel Nieto</td>
</tr>
<tr>
<td>1</td>
<td>92</td>
<td>Dmitry Melnichenko</td>
</tr>
<tr>
<td>22</td>
<td>88</td>
<td>Jonathan Brachthäuser</td>
</tr>
<tr>
<td>5</td>
<td>87</td>
<td>Guillaume Massé</td>
</tr>
<tr>
<td>20</td>
<td>75</td>
<td>vsalvis</td>
</tr>
<tr>
<td>2</td>
<td>64</td>
<td>Tobias Schlatter</td>
</tr>
<tr>
<td>4</td>
<td>51</td>
<td>Ólafur Páll Geirsson</td>
</tr>
<tr>
<td>4</td>
<td>49</td>
<td>Sebastian Harko</td>
</tr>
<tr>
<td>2</td>
<td>48</td>
<td>Andrew Zurn</td>
</tr>
<tr>
<td>3</td>
<td>44</td>
<td>jvican</td>
</tr>
<tr>
<td>1</td>
<td>43</td>
<td>Jarrod Janssen</td>
</tr>
<tr>
<td>1</td>
<td>43</td>
<td>Igor Mielientiev</td>
</tr>
<tr>
<td>2</td>
<td>35</td>
<td>Thiago Pereira</td>
</tr>
<tr>
<td>5</td>
<td>32</td>
<td>Martijn Hoekstra</td>
</tr>
<tr>
<td>1</td>
<td>26</td>
<td>Bartosz Krasiński</td>
</tr>
<tr>
<td>1</td>
<td>24</td>
<td>Adam Trousdale</td>
</tr>
<tr>
<td>10</td>
<td>22</td>
<td>Aggelos Biboudis</td>
</tr>
<tr>
<td>12</td>
<td>20</td>
<td>Paolo G. Giarrusso</td>
</tr>
<tr>
<td>1</td>
<td>17</td>
<td>Jon-Anders Teigen</td>
</tr>
<tr>
<td>17</td>
<td>16</td>
<td>Vlad Ureche</td>
</tr>
<tr>
<td>1</td>
<td>16</td>
<td>Jyotman Singh</td>
</tr>
<tr>
<td>4</td>
<td>15</td>
<td>Lucas Burson</td>
</tr>
<tr>
<td>1</td>
<td>12</td>
<td>Markus Hauck</td>
</tr>
<tr>
<td>3</td>
<td>11</td>
<td>Varunram Ganesh</td>
</tr>
<tr>
<td>2</td>
<td>11</td>
<td>Reto Hablützel</td>
</tr>
<tr>
<td>3</td>
<td>10</td>
<td>Allan Renucci</td>
</tr>
<tr>
<td>4</td>
<td>9</td>
<td>Sarunas Valaskevicius</td>
</tr>
<tr>
<td>2</td>
<td>9</td>
<td>Nikolay.Tropin</td>
</tr>
<tr>
<td>1</td>
<td>9</td>
<td>Csongor Kiss</td>
</tr>
<tr>
<td>2</td>
<td>7</td>
<td>dos65</td>
</tr>
<tr>
<td>2</td>
<td>6</td>
<td>Varunram</td>
</tr>
<tr>
<td>6</td>
<td>5</td>
<td>Nada Amin</td>
</tr>
<tr>
<td>1</td>
<td>4</td>
<td>ruben</td>
</tr>
<tr>
<td>1</td>
<td>4</td>
<td>Kazuyoshi Kato</td>
</tr>
<tr>
<td>1</td>
<td>3</td>
<td>Jonathan Rodriguez</td>
</tr>
<tr>
<td>1</td>
<td>3</td>
<td>andreaTP</td>
</tr>
<tr>
<td>1</td>
<td>1</td>
<td>AlexSikia</td>
</tr>
<tr>
<td>3</td>
<td>0</td>
<td>Edmund Noble</td>
</tr>
<tr>
<td>2</td>
<td>0</td>
<td>jvican</td>
</tr>
<tr>
<td>3</td>
<td>0</td>
<td>Allan Renucci</td>
</tr>
<tr>
<td>3</td>
<td>0</td>
<td>Senia-psm</td>
</tr>
<tr>
<td>2</td>
<td>0</td>
<td>Lukas Rytz</td>
</tr>
<tr>
<td>2</td>
<td>0</td>
<td>Jan Christopher Vogt</td>
</tr>
<tr>
<td>2</td>
<td>0</td>
<td>Raymond Tay</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>Matthias Sperl</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>Herdy Handoko</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>Grzegorz Kossakowski</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>George Leontiev</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>Sandro Stucki</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>Adriaan Moors</td>
</tr>
<tr>
<td>1</td>
<td>0</td>
<td>Simon Hafner</td>
</tr>
</tbody>
</table>
</section>
</main>
<div class="divider"></div>
<nav class="arrow-navigation" aria-label="Page navigation">
</nav>
<div class="content-contributors hidden">
<h1 class="h200">Contributors to this page</h1>
<div id="documentation-contributors" class="contributors-container"></div>
<div class="github-edit-button">
<a class="text-button with-link body-small" href="https://github.com/scala/scala3/edit/main/docs/_docs/release-notes-0.1.2.md"> Edit this page on GitHub </a>
</div>
</div>
</div>
</div></div><div id="toc" class="body-small"><div id="toc-container"><span class="toc-title h200">In this article</span><nav class="toc-nav"><ul class="toc-list"><li><a href="#required-java-version-1">Required Java Version</a></li><li><a href="#ide-support-for-dotty-1">IDE support for Dotty</a></li><li><a href="#reporting-bugs--known-issues-1">Reporting Bugs / Known Issues</a></li><li><a href="#dotty-doc-1">Dotty Doc</a></li><li><a href="#contributors-15">Contributors</a></li></ul></nav></div></div></div><div id="footer" class="body-small mobile-footer"><div class="left-container">Generated with</div><div class="right-container"><a href="https://github.com/scala/scala3"><button class="icon-button gh"></button></a><a href="https://discord.com/invite/scala"><button class="icon-button discord"></button></a><a href="https://twitter.com/scala_lang"><button class="icon-button twitter"></button></a><div class="text">Copyright (c) 2002-2025, LAMP/EPFL</div></div><div class="text-mobile">Copyright (c) 2002-2025, LAMP/EPFL</div></div></div></div></body></html>