Thursday 7 September 2017
Today, we are excited to release Dotty version 0.3.0-RC2. This release serves as a technology preview that demonstrates new language features and the compiler supporting them.
If you’re not familiar with Dotty, it’s a platform to try out new language concepts and compiler technologies for Scala. The focus is mainly on simplification. We remove extraneous syntax (e.g. no XML literals), and try to boil down Scala’s types into a smaller set of more fundamental constructors. The theory behind these constructors is researched in DOT, a calculus for dependent object types. You can learn more about Dotty on our website.
This is our third scheduled release according to our 6-week release schedule. The previous technology preview improved stability and reliability:
- substantial improvement of quality of generated code for pattern matching
- improvements in VS Code IDE stability
- support Windows in VS Code IDE
- improved compatibility with scalac
- initial support for reproducible builds
What’s in the 0.3.0-RC2 technology preview?
This technology preview further improves stability and reliability. Some highlighted PRs are:
How can you try it out?
We ship with tools that help you try out the Dotty platform:
- IDE features for Visual Studio Code
- sbt support, including retro-compatibility with Scala 2
You have several alternatives; use the
sbt-dotty plugin, get a standalone
installation, or try it online on Scastie.
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.
Releases are available for download on the Releases section of the Dotty repository: https://github.com/lampepfl/dotty/releases
We also provide a homebrew package that can be installed by running:
brew install lampepfl/brew/dotty
In case you have already installed Dotty via brew, you should instead update it:
brew upgrade dotty
Scastie, the online Scala playground, supports Dotty. You can try it out there without installing anything.
What are the next steps?
Over the coming weeks and months, we plan to work on the following topics:
- Add support for using Dotty generated classes with Scala 2.12
- Add Language-level support for HMaps and HLists;
- Upstream more optimizations from Dotty Linker
- Add support for existing in the same classpath with Scala 2.12
- Add native Dotty REPL
Questions / Reporting Bugs
Thank you to all the contributors who made this release possible!
git shortlog -sn --no-merges 0.2.0-RC1..0.3.0-RC2 these are:
138 Martin Odersky 36 Nicolas Stucki 12 Guillaume Martres 7 Dmitry Petrashko 5 liu fengyun 4 Allan Renucci 4 Felix Mulder 2 Lorand Szakacs 1 Lukas Ciszewski 1 Max Ovsiankin 1 Lanny Ripple 1 Serhii Pererva 1 Georg Schmid
If you want to get your hands dirty with any of this, now is a good moment to get involved! You can have a look at our Getting Started page, our Awesome Error Messages or some of the simple Dotty issues. They make perfect entry-points into hacking on the compiler.
We are looking forward to having you join the team of contributors.
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 to make sure that our regression suite includes your library.
To get started, see https://github.com/lampepfl/dotty.