Skip to content

0.1.2 series announcement #2627

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 52 commits into from
May 31, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
f6e85c4
Start writing release anouncement.
DarkDimius May 30, 2017
c3d2f79
Fixes to announcement.
DarkDimius May 30, 2017
31300fe
Fix lists.
DarkDimius May 30, 2017
834ab83
Various rewordings/improvements
smarter May 30, 2017
602d4af
Fix version numbers + add a stub version numbers page.
DarkDimius May 30, 2017
0bc9f28
Version number clarifications
smarter May 30, 2017
0aa1d1b
Merge branch 'anounce-0.1.2' of github.com:dotty-staging/dotty into a…
DarkDimius May 30, 2017
bc0509b
Improvement to version numbers
smarter May 30, 2017
ad9d2ce
version-numbers.md: Explain promotion
smarter May 30, 2017
21cbd7d
Add community build section.
DarkDimius May 30, 2017
38a939c
Merge branch 'anounce-0.1.2' of github.com:dotty-staging/dotty into a…
DarkDimius May 30, 2017
5f8b9fe
Slightly improved wording
smarter May 30, 2017
1542551
Start writing release notes.
DarkDimius May 30, 2017
ee90df1
Merge branch 'anounce-0.1.2' of github.com:dotty-staging/dotty into a…
DarkDimius May 30, 2017
21208fa
Mention @vsalvis
DarkDimius May 30, 2017
f1592db
Start adding links to release notes.
DarkDimius May 30, 2017
395152d
Finish adding links.
DarkDimius May 30, 2017
fa04da3
Work on release notes.
DarkDimius May 30, 2017
0f2f4cf
Release notes.
DarkDimius May 30, 2017
2ee841e
0.1.2.md: Fix formatting
smarter May 30, 2017
4e5979a
release notes: Dottydoc + fixes to markdown.
DarkDimius May 30, 2017
0e6d835
Merge branch 'anounce-0.1.2' of github.com:dotty-staging/dotty into a…
DarkDimius May 30, 2017
4543672
Fix markdown.
DarkDimius May 30, 2017
93da79a
release-notes: Slight wording improvements
smarter May 30, 2017
3b7de6a
Update
nicolasstucki May 30, 2017
16d06c7
Add section on IDE
smarter May 30, 2017
fb64db9
Update
nicolasstucki May 30, 2017
c6a26ad
Polish wording
odersky May 30, 2017
dcbbc42
Merge branch 'anounce-0.1.2' of https://github.com/dotty-staging/dott…
odersky May 30, 2017
cd64432
Update 0.1.2.md
nicolasstucki May 30, 2017
1c91058
Update 0.1.2.md
nicolasstucki May 30, 2017
85fb63f
Update 0.1.2.md
nicolasstucki May 30, 2017
9aa9b2b
Update 0.1.2.md
DarkDimius May 30, 2017
e7695b4
Fix github ids
DarkDimius May 31, 2017
e7d4874
Fix github ids
DarkDimius May 31, 2017
9943fda
Fix small typos
DarkDimius May 31, 2017
03a8132
Update
nicolasstucki May 31, 2017
7ff28e9
Update 2017-05-31-first-dotty-milestone-release.md
nicolasstucki May 31, 2017
787d7cc
Update 0.1.2.md
DarkDimius May 31, 2017
3b222c6
Update 0.1.2.md
nicolasstucki May 31, 2017
5e0757c
Update 2017-05-31-first-dotty-milestone-release.md
nicolasstucki May 31, 2017
e093465
Update 2017-05-31-first-dotty-milestone-release.md
nicolasstucki May 31, 2017
3b8f3c7
Update 2017-05-31-first-dotty-milestone-release.md
nicolasstucki May 31, 2017
288042a
Update 2017-05-31-first-dotty-milestone-release.md
DarkDimius May 31, 2017
c458a0b
Polish
DarkDimius May 31, 2017
f12ed54
Update 2017-05-31-first-dotty-milestone-release.md
nicolasstucki May 31, 2017
89441d4
Update 2017-05-31-first-dotty-milestone-release.md
nicolasstucki May 31, 2017
d2182bb
Update 0.1.2.md
nicolasstucki May 31, 2017
8626416
Update
nicolasstucki May 31, 2017
1f3f7b8
Fixes based on feedback.
DarkDimius May 31, 2017
ec21aa9
Merge branch 'anounce-0.1.2' of github.com:dotty-staging/dotty into a…
DarkDimius May 31, 2017
53db509
Fix capitalization.
DarkDimius May 31, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 120 additions & 0 deletions docs/blog/_posts/2017-05-31-first-dotty-milestone-release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
---
layout: blog-page
title: Announcing Dotty 0.1.2-RC1, a major step towards Scala 3
author: Dmytro Petrashko
authorImg: /images/petrashko.jpg
---

Today, we are excited to release Dotty version 0.1.2-RC1. This release
serves as a technology preview that demonstrates new language features
and the compiler supporting them.


<!--more-->

## Why is this important?

_Dotty_ is the project name for a language and compiler that
is slated to become Scala 3.0. This is an ongoing development,
transparently developed as open source software. The Dotty project
started more than 4 years ago. It reached a major milestone in 2015 by
achieving
[bootstrap](http://dotty.epfl.ch/blog/2015/10/23/dotty-compiler-bootstraps.html),
that is, showing that the new compiler could compile itself. Today we
have reached another milestone with this first release of the
codebase. Developments will not stop here, but they will in the future
all be part of regular time-based releases.

## How can you try it out?

You have several alternatives: use the `sbt-dotty` plugin, get a standalone
installation, or try it online on [Scastie].

### sbt
Using sbt 0.13.13 or newer, do:

```
sbt new lampepfl/dotty.g8
```

This will setup a new sbt project with Dotty as compiler. For more details on
using Dotty with sbt, see the
[example project](https://github.com/lampepfl/dotty-example-project).

### Standalone installation

Releases are available for download on the _Releases_
section of the Dotty repository:
https://github.com/lampepfl/dotty/releases

We also provide a [homebrew](https://brew.sh/) package that can be installed by running

```
brew install lampepfl/brew/dotty
```

### Scastie

[Scastie], the online Scala playground,
supports Dotty.
You can try it out there without installing anything.

# What’s in the 0.1.2-RC1 technology preview?
This technology preview demonstrates new language features planned for Scala 3:

- [Intersection Types](http://dotty.epfl.ch/docs/reference/intersection-types.html)
- [Union Types](http://dotty.epfl.ch/docs/reference/union-types.html)
- [Trait Parameters](http://dotty.epfl.ch/docs/reference/trait-parameters.html)
- [Enumerations](http://dotty.epfl.ch/docs/reference/enums.html)
- [Algebraic Data Types](http://dotty.epfl.ch/docs/reference/adts.html)
- [By-Name Implicits](http://dotty.epfl.ch/docs/reference/implicit-by-name-parameters.html)

We also ship with tools that help you try out the Dotty platform:

- [IDE features for Visual Studio Code](http://dotty.epfl.ch/docs/usage/ide-support.html)
- [sbt support, including retro-compatibility with Scala 2](https://github.com/lampepfl/dotty-example-project)

See here for the full [release notes](http://dotty.epfl.ch/docs/release-notes/0.1.2.html).

## Release schedule

Starting from this release, we are adopting a time-based release schedule:
- Nightly builds will be published, for those wanting to be at the forefront of
development.
- Every 6 weeks, a release candidate will be cut based on the latest nightly build.
- Every 6 weeks, the latest release candidate becomes a release.

At the end of 6 weeks, the milestone will be promoted to a stable release.
See here for the full [version number explanation](http://dotty.epfl.ch/docs/usage/version-numbers.html).

## What are the next steps?

Over the coming weeks and months, we plan to work on the following topics:

- [Integrate Local optimizations developed in Dotty linker](https://github.com/lampepfl/dotty/pull/2513);
- [Add Language-level support for HMaps and HLists](https://github.com/lampepfl/dotty/pull/2199);
- [Port global optimizations from Dotty linker](https://github.com/lampepfl/dotty/pull/1840).

If you want to get your hands dirty with any of this, now is a good
moment to get involved! Join the team of contributors, including
Martin Odersky ([@odersky](https://twitter.com/odersky))
Dmitry Petrashko ([@DarkDimius](https://twitter.com/DarkDimius)),
Guillaume Martres ([@smarter](https://github.com/smarter)),
Felix Mulder ([@felixmulder](https://twitter.com/felixmulder)),
Nicolas Stucki ([@nicolasstucki](https://github.com/nicolasstucki)),
Liu Fengyun ([@liufengyun](https://github.com/liufengyun)),
Olivier Blanvillain ([@OlivierBlanvillain](https://github.com/OlivierBlanvillain)),
and others!

## Library authors: Join our community build

Dotty now has a set of libraries that are built against every nightly snapshot.
Currently this includes scalatest, squants and algebra.
Join our [community build](https://github.com/lampepfl/dotty-community-build)
to make sure that our regression suite includes your library.


To get started, see <https://github.com/lampepfl/dotty>.


[Scastie]: https://scastie.scala-lang.org/?target=dotty
194 changes: 194 additions & 0 deletions docs/docs/release-notes/0.1.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,194 @@
---
layout: doc-page
title: 0.1.2 release notes
---

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.

# Required Java Version

Dotty 0.1.2 targets Java 8. We don't have plans to add support for earlier versions of Java.

# IDE support for Dotty

# Reporting Bugs / Known Issues

Please [file](https://github.com/lampepfl/dotty/issues) any bugs you encounter. If you’re unsure whether something is a bug,
please ask on the Dotty [gitter channel](https://github.com/lampepfl/dotty).

# Dotty Doc

Dotty has added support for Dotty Doc.
Actually, the dotty documentation site [http://dotty.epfl.ch/docs/](http://dotty.epfl.ch/docs/) is generated by it.
Looks nice, doesn’t it?

#Other implemented features:

This release ships with the following features:

- TASTY support by [@odersky], [@xeno-by] and [@darkdimius] [\[1\]][1]
- HK-types support by [@odersky], [@smarter] and [@darkdimius] [\[2\]][2]
- Intersection and Union Types by [@odersky] [\[3\]][3] [\[4\]][3]
- Enumerations by [@odersky] [\[4\]][4] [\[5\]][5] [\[6\]][6]
- Implicit By-Name Parameters by [@odersky] [\[7\]][7]
- Miniphases-based design by [@darkdimius], [@odersky] and [@olhotak] [\[8\]][8]
- `@static` methods support by [@darkdmius] [\[9\]][9]
- Non-blocking lazy vals by [@darkdimius] [\[10\]][10]
- JVM code emission by [@magarciaEPFL] and [@darkdimius] [\[11\]][11]
- Efficient multi-dimensional array allocation by [@darkdimius] [\[12\]][12]
- Default-method based trait composition [@odersky] and [@darkdimius] [\[13\]][13] [\[14\]][14]
- Trait parameters by [@odersky] [\[15\]][15]
- Working contravariant implicits by [@odersky] [\[16\]][16]
- Option-less pattern matching by [@odersky], [@darkdimius] and [@OlivierBlanvillain] [\[17\]][17]
- SAM-based anonymous functions by [@magarciaEPFL], [@darkdimius] and [@retronym] [\[18\]][18]
- Pattern matching support by [@darkdimius] [\[19\]][19]
- Value classes support by [@smarter] and [@darkdimius] [\[20\]][20]
- Pattern matching exhaustivity checks by [@liufengyun] [\[21\]][21]
- Tailrec optimization by [@darkdimius] [\[22\]][22] [\[23\]][23]
- Language server protocol implementation by [@smarter] [\[24\]][24]
- VS code plugin by [@smarter] [\[24\]][24]
- Vulpix: new test-suite driver by [@felixmulder] that replaces partest by [@vsalvis] [\[25\]][25]
- Java parser by [@olhotak] [\[26\]][26]
- Local optimizations(-optimise) by [@darkdimius] and [@OlivierBlanvillain] [\[27\]][27]
- sbt support by [@smarter] [\[28\]][28]
- DottyDoc by [@felixmulder] [\[29\]][29]
- Implicit Function Types by [@odersky] [\[30\]][30]
- Phantom Types by [@nicolasstucki] [\[31\]][31]
- Functions with more than 22 parameters by [@odersky] [\[32\]][32]
- Inline keyword by [@odersky] [\[33\]][33]

[@odersky]: https://twitter.com/odersky
[@DarkDimius]: https://twitter.com/DarkDimius
[@smarter]: https://github.com/smarter
[@felixmulder]: https://twitter.com/felixmulder
[@nicolasstucki]: https://github.com/nicolasstucki
[@liufengyun]: https://github.com/liufengyun
[@OlivierBlanvillain]: https://github.com/OlivierBlanvillain
[@olhotak]: https://plg.uwaterloo.ca/~olhotak/
[@retronym]: https://github.com/retronym
[@xeno-by]: https://github.com/xeno-by
[@vsalvis]: https://github.com/vsalvis
[@magarciaEPFL]: https://github.com/magarciaEPFL

[1]: https://docs.google.com/document/d/1h3KUMxsSSjyze05VecJGQ5H2yh7fNADtIf3chD3_wr0/edit
[2]: https://infoscience.epfl.ch/record/222780?ln=en
[3]: http://dotty.epfl.ch/docs/reference/intersection-types.html
[4]: http://dotty.epfl.ch/docs/reference/union-types.html
[5]: http://dotty.epfl.ch/docs/reference/adts.html
[6]: http://dotty.epfl.ch/docs/reference/desugarEnums.html
[7]: http://dotty.epfl.ch/docs/reference/implicit-by-name-parameters.html
[8]: https://infoscience.epfl.ch/record/228518
[9]: http://docs.scala-lang.org/sips/pending/static-members.html
[10]: http://docs.scala-lang.org/sips/pending/improved-lazy-val-initialization.html
[11]: http://magarciaepfl.github.io/scala/
[12]: https://github.com/lampepfl/dotty/commit/b2215ed23311b2c99ea638f9d7fcad9737dba588
[13]: https://github.com/lampepfl/dotty/pull/187
[14]: https://github.com/lampepfl/dotty/pull/217
[15]: http://dotty.epfl.ch/docs/reference/trait-parameters.html
[16]: https://github.com/lampepfl/dotty/commit/89540268e6c49fb92b9ca61249e46bb59981bf5a
[17]: https://github.com/lampepfl/dotty/pull/174
[18]: https://github.com/lampepfl/dotty/pull/488
[19]: https://github.com/lampepfl/dotty/pull/174
[20]: https://github.com/lampepfl/dotty/pull/411
[21]: https://github.com/lampepfl/dotty/pull/1364
[22]: https://github.com/lampepfl/dotty/pull/1227
[23]: https://github.com/lampepfl/dotty/pull/117
[24]: https://github.com/lampepfl/dotty/pull/2532
[25]: https://github.com/lampepfl/dotty/pull/2194
[26]: https://github.com/lampepfl/dotty/pull/213
[27]: https://github.com/lampepfl/dotty/pull/2513
[28]: https://github.com/lampepfl/dotty/pull/2361
[29]: https://github.com/lampepfl/dotty/pull/1453
[30]: http://dotty.epfl.ch/docs/reference/implicit-function-types.html
[31]: https://github.com/lampepfl/dotty/pull/2136
[32]: https://github.com/lampepfl/dotty/pull/1758
[33]: http://dotty.epfl.ch/docs/reference/inline.html

# Contributors
The Dotty team and contributors have closed 750 issues and have merged a total of 1258 pull requests.

Concretely, according to

```
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
```
71 people contributed code, tests, and/or documentation to Dotty 0.1.2-RC1.
The following people have contributed to this release:

| commits | blame lines | Name |
|---------|-------------|-----------------------------|
| 4346 | 82017 | Martin Odersky |
| 1288 | 83070 | Dmitry Petrashko |
| 19 | 35382 | Samuel Gruetter |
| 826 | 20148 | Felix Mulder |
| 567 | 10454 | Guillaume Martres |
| 136 | 5311 | liu fengyun |
| 189 | 4449 | Nicolas Stucki |
| 21 | 3717 | Sébastien Doeraene |
| 30 | 1711 | Ondrej Lhotak |
| 33 | 1094 | Enno Runne |
| 47 | 735 | Olivier Blanvillain |
| 4 | 480 | Valthor Halldorsson |
| 7 | 343 | Aleksander Boruch-Gruszecki |
| 25 | 220 | VladimirNik |
| 3 | 186 | Enno |
| 8 | 143 | Clemens Winter |
| 16 | 133 | Jason Zaugg |
| 3 | 116 | Miron Aseev |
| 4 | 109 | Shane Delmore |
| 5 | 100 | Alexander Myltsev |
| 5 | 96 | Abel Nieto |
| 1 | 92 | Dmitry Melnichenko |
| 22 | 88 | Jonathan Brachthäuser |
| 5 | 87 | Guillaume Massé |
| 20 | 75 | vsalvis |
| 2 | 64 | Tobias Schlatter |
| 4 | 51 | Ólafur Páll Geirsson |
| 4 | 49 | Sebastian Harko |
| 2 | 48 | Andrew Zurn |
| 3 | 44 | jvican |
| 1 | 43 | Jarrod Janssen |
| 1 | 43 | Igor Mielientiev |
| 2 | 35 | Thiago Pereira |
| 5 | 32 | Martijn Hoekstra |
| 1 | 26 | Bartosz Krasiński |
| 1 | 24 | Adam Trousdale |
| 10 | 22 | Aggelos Biboudis |
| 12 | 20 | Paolo G. Giarrusso |
| 1 | 17 | Jon-Anders Teigen |
| 17 | 16 | Vlad Ureche |
| 1 | 16 | Jyotman Singh |
| 4 | 15 | Lucas Burson |
| 1 | 12 | Markus Hauck |
| 3 | 11 | Varunram Ganesh |
| 2 | 11 | Reto Hablützel |
| 3 | 10 | Allan Renucci |
| 4 | 9 | Sarunas Valaskevicius |
| 2 | 9 | Nikolay.Tropin |
| 1 | 9 | Csongor Kiss |
| 2 | 7 | dos65 |
| 2 | 6 | Varunram |
| 6 | 5 | Nada Amin |
| 1 | 4 | ruben |
| 1 | 4 | Kazuyoshi Kato |
| 1 | 3 | Jonathan Rodriguez |
| 1 | 3 | andreaTP |
| 1 | 1 | AlexSikia |
| 3 | 0 | Edmund Noble |
| 2 | 0 | jvican |
| 3 | 0 | Allan Renucci |
| 3 | 0 | Senia-psm |
| 2 | 0 | Lukas Rytz |
| 2 | 0 | Jan Christopher Vogt |
| 2 | 0 | Raymond Tay |
| 1 | 0 | Matthias Sperl |
| 1 | 0 | Herdy Handoko |
| 1 | 0 | Grzegorz Kossakowski |
| 1 | 0 | George Leontiev |
| 1 | 0 | Sandro Stucki |
| 1 | 0 | Adriaan Moors |
| 1 | 0 | Simon Hafner |
17 changes: 17 additions & 0 deletions docs/docs/usage/version-numbers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
layout: doc-page
title: "Version numbers"
---

Dotty uses multiple schemes for version numbering.

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.

Release candidates version numbers have the form `0.${x}.${y}-RC${z}`.
Every 6 weeks, the latest release candidate is promoted to stable and becomes version `0.${x}.${y}`.
The release candidates let library authors test their code in advance of each
release. Multiple release candidates may be released during each 6 weeks
period to fix regressions and are differentiated by `z`.

Nightlies have version numbers of the form `0.${x}.${y}-bin-${date}-${sha}-NIGHTLY`.
Every 6 weeks, the latest nightly is promoted to release candidate becomes version `0.${x}.${y}-RC1`.