Try it 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.
|Union, intersection and literal singleton types||Implemented|
|Fast compilation (phase fusion)||Implemented|
|@@static methods and fields||Implemented|
|Improved REPL with colors||Implemented|
|Sbt incremental build||Implemented|
|Non-blocking lazy vals||Implemented|
|Option-less pattern matching (based on name-based patmat)||Implemented|
|Function arity adaptation||Implemented|
|Exhaustivity checks in pattern matching||Implemented|
|Non-boxed arrays of value classes||In progress|
|Working contravariant implicits||In progress|
|Whole program optimizer||In progress|
|HList & HMaps/Record types||In progress|
|Phantom types||In progress|
|Auto-completion in repl||Considered|
|Spec Option-less pattern matching||Considered|
Talks on Dotty?
- Compilers are Databases by Martin Odersky (slides)
- Exploring the future of Scala by Dmitry Petrashko (slides)
I have more questions!
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?
An automated rewriting tool is planned for Dotty, more on this to come. Scala 2 sources can be compiled to some degree by issuing:
./bin/dotc -language:Scala2 file.scala
when compiling your program.
Who’s working on it?
And a long line of contributors!