A next generation compiler for Scala


Try Dotty

If you are a Mac user, you can install Dotty with brew:

brew install lampepfl/brew/dotty

If you are a Linux or Windows user, download the latest release. Optionally add path of the folder bin/ to the system environment variable PATH.

Now you can compile Scala source code:

dotc hello.scala

To start the REPL, run: dotr.

Or, you can try Dotty in your browser with Scastie.

Create a Dotty Project

The fastest way to create a new project in Dotty is using sbt (0.13.15+).

Create a Dotty project:

sbt new lampepfl/dotty.g8

Or a Dotty project that cross compiles with Scala 2:

sbt new lampepfl/dotty-cross.g8

For documentation see the Dotty Example Project.

So, features?

Talks on Dotty?

I have more questions!

That’s great! We have more details on the docs and please join our Gitter channel!

Why Dotty?

Dotty is 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.

Is it the future Scala?

Yes, it will be - eventually.

Can I use it?

You can! But it currently comes with no guarantees of stability.

Is there Scala 2 interop?

Dotty currently interops with libraries compiled with Scala 2.11 - but not 2.12

How do I migrate my code to Dotty?

The automated rewriting tool scalafix is planned for Dotty. Scala 2 sources can be compiled to some degree by issuing:

dotc -language:Scala2 file.scala

when compiling your program.

Who’s working on it?

Martin Odersky
Dmitry Petrashko
Guillaume Martres
Liu Fengyun
Felix Mulder
Nicolas Stucki
Olivier Blanvillain
Aggelos Biboudis
Allan Renucci

And a long line of contributors!