Skip to content

Commit dac7df2

Browse files
authored
Merge pull request #2627 from dotty-staging/anounce-0.1.2
0.1.2 series announcement
2 parents 56f8705 + 53db509 commit dac7df2

File tree

3 files changed

+331
-0
lines changed

3 files changed

+331
-0
lines changed
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
---
2+
layout: blog-page
3+
title: Announcing Dotty 0.1.2-RC1, a major step towards Scala 3
4+
author: Dmytro Petrashko
5+
authorImg: /images/petrashko.jpg
6+
---
7+
8+
Today, we are excited to release Dotty version 0.1.2-RC1. This release
9+
serves as a technology preview that demonstrates new language features
10+
and the compiler supporting them.
11+
12+
13+
<!--more-->
14+
15+
## Why is this important?
16+
17+
_Dotty_ is the project name for a language and compiler that
18+
is slated to become Scala 3.0. This is an ongoing development,
19+
transparently developed as open source software. The Dotty project
20+
started more than 4 years ago. It reached a major milestone in 2015 by
21+
achieving
22+
[bootstrap](http://dotty.epfl.ch/blog/2015/10/23/dotty-compiler-bootstraps.html),
23+
that is, showing that the new compiler could compile itself. Today we
24+
have reached another milestone with this first release of the
25+
codebase. Developments will not stop here, but they will in the future
26+
all be part of regular time-based releases.
27+
28+
## How can you try it out?
29+
30+
You have several alternatives: use the `sbt-dotty` plugin, get a standalone
31+
installation, or try it online on [Scastie].
32+
33+
### sbt
34+
Using sbt 0.13.13 or newer, do:
35+
36+
```
37+
sbt new lampepfl/dotty.g8
38+
```
39+
40+
This will setup a new sbt project with Dotty as compiler. For more details on
41+
using Dotty with sbt, see the
42+
[example project](https://github.com/lampepfl/dotty-example-project).
43+
44+
### Standalone installation
45+
46+
Releases are available for download on the _Releases_
47+
section of the Dotty repository:
48+
https://github.com/lampepfl/dotty/releases
49+
50+
We also provide a [homebrew](https://brew.sh/) package that can be installed by running
51+
52+
```
53+
brew install lampepfl/brew/dotty
54+
```
55+
56+
### Scastie
57+
58+
[Scastie], the online Scala playground,
59+
supports Dotty.
60+
You can try it out there without installing anything.
61+
62+
# What’s in the 0.1.2-RC1 technology preview?
63+
This technology preview demonstrates new language features planned for Scala 3:
64+
65+
- [Intersection Types](http://dotty.epfl.ch/docs/reference/intersection-types.html)
66+
- [Union Types](http://dotty.epfl.ch/docs/reference/union-types.html)
67+
- [Trait Parameters](http://dotty.epfl.ch/docs/reference/trait-parameters.html)
68+
- [Enumerations](http://dotty.epfl.ch/docs/reference/enums.html)
69+
- [Algebraic Data Types](http://dotty.epfl.ch/docs/reference/adts.html)
70+
- [By-Name Implicits](http://dotty.epfl.ch/docs/reference/implicit-by-name-parameters.html)
71+
72+
We also ship with tools that help you try out the Dotty platform:
73+
74+
- [IDE features for Visual Studio Code](http://dotty.epfl.ch/docs/usage/ide-support.html)
75+
- [sbt support, including retro-compatibility with Scala 2](https://github.com/lampepfl/dotty-example-project)
76+
77+
See here for the full [release notes](http://dotty.epfl.ch/docs/release-notes/0.1.2.html).
78+
79+
## Release schedule
80+
81+
Starting from this release, we are adopting a time-based release schedule:
82+
- Nightly builds will be published, for those wanting to be at the forefront of
83+
development.
84+
- Every 6 weeks, a release candidate will be cut based on the latest nightly build.
85+
- Every 6 weeks, the latest release candidate becomes a release.
86+
87+
At the end of 6 weeks, the milestone will be promoted to a stable release.
88+
See here for the full [version number explanation](http://dotty.epfl.ch/docs/usage/version-numbers.html).
89+
90+
## What are the next steps?
91+
92+
Over the coming weeks and months, we plan to work on the following topics:
93+
94+
- [Integrate Local optimizations developed in Dotty linker](https://github.com/lampepfl/dotty/pull/2513);
95+
- [Add Language-level support for HMaps and HLists](https://github.com/lampepfl/dotty/pull/2199);
96+
- [Port global optimizations from Dotty linker](https://github.com/lampepfl/dotty/pull/1840).
97+
98+
If you want to get your hands dirty with any of this, now is a good
99+
moment to get involved! Join the team of contributors, including
100+
Martin Odersky ([@odersky](https://twitter.com/odersky))
101+
Dmitry Petrashko ([@DarkDimius](https://twitter.com/DarkDimius)),
102+
Guillaume Martres ([@smarter](https://github.com/smarter)),
103+
Felix Mulder ([@felixmulder](https://twitter.com/felixmulder)),
104+
Nicolas Stucki ([@nicolasstucki](https://github.com/nicolasstucki)),
105+
Liu Fengyun ([@liufengyun](https://github.com/liufengyun)),
106+
Olivier Blanvillain ([@OlivierBlanvillain](https://github.com/OlivierBlanvillain)),
107+
and others!
108+
109+
## Library authors: Join our community build
110+
111+
Dotty now has a set of libraries that are built against every nightly snapshot.
112+
Currently this includes scalatest, squants and algebra.
113+
Join our [community build](https://github.com/lampepfl/dotty-community-build)
114+
to make sure that our regression suite includes your library.
115+
116+
117+
To get started, see <https://github.com/lampepfl/dotty>.
118+
119+
120+
[Scastie]: https://scastie.scala-lang.org/?target=dotty

docs/docs/release-notes/0.1.2.md

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
---
2+
layout: doc-page
3+
title: 0.1.2 release notes
4+
---
5+
6+
0.1.2 will be the first public release of Dotty.
7+
Being the first one, these notes are incomplete.
8+
This document is a work in progress until 0.1.2-final is released.
9+
These notes are up-to-date based on 0.1.2-RC1 and will be updated
10+
with changes that happen during the RC stabilization cycle.
11+
12+
# Required Java Version
13+
14+
Dotty 0.1.2 targets Java 8. We don't have plans to add support for earlier versions of Java.
15+
16+
# IDE support for Dotty
17+
18+
# Reporting Bugs / Known Issues
19+
20+
Please [file](https://github.com/lampepfl/dotty/issues) any bugs you encounter. If you’re unsure whether something is a bug,
21+
please ask on the Dotty [gitter channel](https://github.com/lampepfl/dotty).
22+
23+
# Dotty Doc
24+
25+
Dotty has added support for Dotty Doc.
26+
Actually, the dotty documentation site [http://dotty.epfl.ch/docs/](http://dotty.epfl.ch/docs/) is generated by it.
27+
Looks nice, doesn’t it?
28+
29+
#Other implemented features:
30+
31+
This release ships with the following features:
32+
33+
- TASTY support by [@odersky], [@xeno-by] and [@darkdimius] [\[1\]][1]
34+
- HK-types support by [@odersky], [@smarter] and [@darkdimius] [\[2\]][2]
35+
- Intersection and Union Types by [@odersky] [\[3\]][3] [\[4\]][3]
36+
- Enumerations by [@odersky] [\[4\]][4] [\[5\]][5] [\[6\]][6]
37+
- Implicit By-Name Parameters by [@odersky] [\[7\]][7]
38+
- Miniphases-based design by [@darkdimius], [@odersky] and [@olhotak] [\[8\]][8]
39+
- `@static` methods support by [@darkdmius] [\[9\]][9]
40+
- Non-blocking lazy vals by [@darkdimius] [\[10\]][10]
41+
- JVM code emission by [@magarciaEPFL] and [@darkdimius] [\[11\]][11]
42+
- Efficient multi-dimensional array allocation by [@darkdimius] [\[12\]][12]
43+
- Default-method based trait composition [@odersky] and [@darkdimius] [\[13\]][13] [\[14\]][14]
44+
- Trait parameters by [@odersky] [\[15\]][15]
45+
- Working contravariant implicits by [@odersky] [\[16\]][16]
46+
- Option-less pattern matching by [@odersky], [@darkdimius] and [@OlivierBlanvillain] [\[17\]][17]
47+
- SAM-based anonymous functions by [@magarciaEPFL], [@darkdimius] and [@retronym] [\[18\]][18]
48+
- Pattern matching support by [@darkdimius] [\[19\]][19]
49+
- Value classes support by [@smarter] and [@darkdimius] [\[20\]][20]
50+
- Pattern matching exhaustivity checks by [@liufengyun] [\[21\]][21]
51+
- Tailrec optimization by [@darkdimius] [\[22\]][22] [\[23\]][23]
52+
- Language server protocol implementation by [@smarter] [\[24\]][24]
53+
- VS code plugin by [@smarter] [\[24\]][24]
54+
- Vulpix: new test-suite driver by [@felixmulder] that replaces partest by [@vsalvis] [\[25\]][25]
55+
- Java parser by [@olhotak] [\[26\]][26]
56+
- Local optimizations(-optimise) by [@darkdimius] and [@OlivierBlanvillain] [\[27\]][27]
57+
- sbt support by [@smarter] [\[28\]][28]
58+
- DottyDoc by [@felixmulder] [\[29\]][29]
59+
- Implicit Function Types by [@odersky] [\[30\]][30]
60+
- Phantom Types by [@nicolasstucki] [\[31\]][31]
61+
- Functions with more than 22 parameters by [@odersky] [\[32\]][32]
62+
- Inline keyword by [@odersky] [\[33\]][33]
63+
64+
[@odersky]: https://twitter.com/odersky
65+
[@DarkDimius]: https://twitter.com/DarkDimius
66+
[@smarter]: https://github.com/smarter
67+
[@felixmulder]: https://twitter.com/felixmulder
68+
[@nicolasstucki]: https://github.com/nicolasstucki
69+
[@liufengyun]: https://github.com/liufengyun
70+
[@OlivierBlanvillain]: https://github.com/OlivierBlanvillain
71+
[@olhotak]: https://plg.uwaterloo.ca/~olhotak/
72+
[@retronym]: https://github.com/retronym
73+
[@xeno-by]: https://github.com/xeno-by
74+
[@vsalvis]: https://github.com/vsalvis
75+
[@magarciaEPFL]: https://github.com/magarciaEPFL
76+
77+
[1]: https://docs.google.com/document/d/1h3KUMxsSSjyze05VecJGQ5H2yh7fNADtIf3chD3_wr0/edit
78+
[2]: https://infoscience.epfl.ch/record/222780?ln=en
79+
[3]: http://dotty.epfl.ch/docs/reference/intersection-types.html
80+
[4]: http://dotty.epfl.ch/docs/reference/union-types.html
81+
[5]: http://dotty.epfl.ch/docs/reference/adts.html
82+
[6]: http://dotty.epfl.ch/docs/reference/desugarEnums.html
83+
[7]: http://dotty.epfl.ch/docs/reference/implicit-by-name-parameters.html
84+
[8]: https://infoscience.epfl.ch/record/228518
85+
[9]: http://docs.scala-lang.org/sips/pending/static-members.html
86+
[10]: http://docs.scala-lang.org/sips/pending/improved-lazy-val-initialization.html
87+
[11]: http://magarciaepfl.github.io/scala/
88+
[12]: https://github.com/lampepfl/dotty/commit/b2215ed23311b2c99ea638f9d7fcad9737dba588
89+
[13]: https://github.com/lampepfl/dotty/pull/187
90+
[14]: https://github.com/lampepfl/dotty/pull/217
91+
[15]: http://dotty.epfl.ch/docs/reference/trait-parameters.html
92+
[16]: https://github.com/lampepfl/dotty/commit/89540268e6c49fb92b9ca61249e46bb59981bf5a
93+
[17]: https://github.com/lampepfl/dotty/pull/174
94+
[18]: https://github.com/lampepfl/dotty/pull/488
95+
[19]: https://github.com/lampepfl/dotty/pull/174
96+
[20]: https://github.com/lampepfl/dotty/pull/411
97+
[21]: https://github.com/lampepfl/dotty/pull/1364
98+
[22]: https://github.com/lampepfl/dotty/pull/1227
99+
[23]: https://github.com/lampepfl/dotty/pull/117
100+
[24]: https://github.com/lampepfl/dotty/pull/2532
101+
[25]: https://github.com/lampepfl/dotty/pull/2194
102+
[26]: https://github.com/lampepfl/dotty/pull/213
103+
[27]: https://github.com/lampepfl/dotty/pull/2513
104+
[28]: https://github.com/lampepfl/dotty/pull/2361
105+
[29]: https://github.com/lampepfl/dotty/pull/1453
106+
[30]: http://dotty.epfl.ch/docs/reference/implicit-function-types.html
107+
[31]: https://github.com/lampepfl/dotty/pull/2136
108+
[32]: https://github.com/lampepfl/dotty/pull/1758
109+
[33]: http://dotty.epfl.ch/docs/reference/inline.html
110+
111+
# Contributors
112+
The Dotty team and contributors have closed 750 issues and have merged a total of 1258 pull requests.
113+
114+
Concretely, according to
115+
116+
```
117+
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
118+
```
119+
71 people contributed code, tests, and/or documentation to Dotty 0.1.2-RC1.
120+
The following people have contributed to this release:
121+
122+
| commits | blame lines | Name |
123+
|---------|-------------|-----------------------------|
124+
| 4346 | 82017 | Martin Odersky |
125+
| 1288 | 83070 | Dmitry Petrashko |
126+
| 19 | 35382 | Samuel Gruetter |
127+
| 826 | 20148 | Felix Mulder |
128+
| 567 | 10454 | Guillaume Martres |
129+
| 136 | 5311 | liu fengyun |
130+
| 189 | 4449 | Nicolas Stucki |
131+
| 21 | 3717 | Sébastien Doeraene |
132+
| 30 | 1711 | Ondrej Lhotak |
133+
| 33 | 1094 | Enno Runne |
134+
| 47 | 735 | Olivier Blanvillain |
135+
| 4 | 480 | Valthor Halldorsson |
136+
| 7 | 343 | Aleksander Boruch-Gruszecki |
137+
| 25 | 220 | VladimirNik |
138+
| 3 | 186 | Enno |
139+
| 8 | 143 | Clemens Winter |
140+
| 16 | 133 | Jason Zaugg |
141+
| 3 | 116 | Miron Aseev |
142+
| 4 | 109 | Shane Delmore |
143+
| 5 | 100 | Alexander Myltsev |
144+
| 5 | 96 | Abel Nieto |
145+
| 1 | 92 | Dmitry Melnichenko |
146+
| 22 | 88 | Jonathan Brachthäuser |
147+
| 5 | 87 | Guillaume Massé |
148+
| 20 | 75 | vsalvis |
149+
| 2 | 64 | Tobias Schlatter |
150+
| 4 | 51 | Ólafur Páll Geirsson |
151+
| 4 | 49 | Sebastian Harko |
152+
| 2 | 48 | Andrew Zurn |
153+
| 3 | 44 | jvican |
154+
| 1 | 43 | Jarrod Janssen |
155+
| 1 | 43 | Igor Mielientiev |
156+
| 2 | 35 | Thiago Pereira |
157+
| 5 | 32 | Martijn Hoekstra |
158+
| 1 | 26 | Bartosz Krasiński |
159+
| 1 | 24 | Adam Trousdale |
160+
| 10 | 22 | Aggelos Biboudis |
161+
| 12 | 20 | Paolo G. Giarrusso |
162+
| 1 | 17 | Jon-Anders Teigen |
163+
| 17 | 16 | Vlad Ureche |
164+
| 1 | 16 | Jyotman Singh |
165+
| 4 | 15 | Lucas Burson |
166+
| 1 | 12 | Markus Hauck |
167+
| 3 | 11 | Varunram Ganesh |
168+
| 2 | 11 | Reto Hablützel |
169+
| 3 | 10 | Allan Renucci |
170+
| 4 | 9 | Sarunas Valaskevicius |
171+
| 2 | 9 | Nikolay.Tropin |
172+
| 1 | 9 | Csongor Kiss |
173+
| 2 | 7 | dos65 |
174+
| 2 | 6 | Varunram |
175+
| 6 | 5 | Nada Amin |
176+
| 1 | 4 | ruben |
177+
| 1 | 4 | Kazuyoshi Kato |
178+
| 1 | 3 | Jonathan Rodriguez |
179+
| 1 | 3 | andreaTP |
180+
| 1 | 1 | AlexSikia |
181+
| 3 | 0 | Edmund Noble |
182+
| 2 | 0 | jvican |
183+
| 3 | 0 | Allan Renucci |
184+
| 3 | 0 | Senia-psm |
185+
| 2 | 0 | Lukas Rytz |
186+
| 2 | 0 | Jan Christopher Vogt |
187+
| 2 | 0 | Raymond Tay |
188+
| 1 | 0 | Matthias Sperl |
189+
| 1 | 0 | Herdy Handoko |
190+
| 1 | 0 | Grzegorz Kossakowski |
191+
| 1 | 0 | George Leontiev |
192+
| 1 | 0 | Sandro Stucki |
193+
| 1 | 0 | Adriaan Moors |
194+
| 1 | 0 | Simon Hafner |

docs/docs/usage/version-numbers.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
layout: doc-page
3+
title: "Version numbers"
4+
---
5+
6+
Dotty uses multiple schemes for version numbering.
7+
8+
Stable releases have version numbers of the form `0.${x}.${y}`, where `x` is a main version and `y` is a bug-fix update id.
9+
10+
Release candidates version numbers have the form `0.${x}.${y}-RC${z}`.
11+
Every 6 weeks, the latest release candidate is promoted to stable and becomes version `0.${x}.${y}`.
12+
The release candidates let library authors test their code in advance of each
13+
release. Multiple release candidates may be released during each 6 weeks
14+
period to fix regressions and are differentiated by `z`.
15+
16+
Nightlies have version numbers of the form `0.${x}.${y}-bin-${date}-${sha}-NIGHTLY`.
17+
Every 6 weeks, the latest nightly is promoted to release candidate becomes version `0.${x}.${y}-RC1`.

0 commit comments

Comments
 (0)