Announcing Dotty 0.3.0-RC2
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 constructs. The theory behind these constructs 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:
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.
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 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
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
If you have questions or any sort of feedback, feel free to send us a message on our Gitter channel. If you encounter a bug, please open an issue on GitHub.
Contributing
Thank you to all the contributors who made this release possible!
According to 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.